1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-05 14:49:25 +02:00

String literals for UTF-8 language names using octal escapes only...

... Leaving absolutely no doubt about the portability.

New Perl script in locale emits the required C++ source when LanguageNames.txt
is updated.
This commit is contained in:
Paul Licameli 2018-01-03 17:52:07 -05:00
parent 0df94faad8
commit 815a80846d
3 changed files with 135 additions and 115 deletions

View File

@ -0,0 +1,23 @@
#!/usr/bin/perl
# Take LangugeNames.txt and write C++ string literals to standard out,
# which describe the UTF-8 byte sequence using only the basic coding
# character set.
# Copy and paste that over the table of strings in src/Languages.cpp.
open LANGUAGES, "LanguageNames.txt" or die "Can't open LanguageNames.txt: $!\n";
while( <LANGUAGES> ) {
chop;
print "\"";
@codes = unpack 'C*';
@newCodes = ();
for $code (@codes) {
if ($code <= ord 'z') {
push @newCodes, $code;
}
else {
push @newCodes, unpack('C*', sprintf("\\%03o", $code));
}
}
print pack 'C*', @newCodes;
print "\",\n";
}

View File

@ -1,59 +1,56 @@
// To edit this file, open as UTF-8 encoded Unicode af Afrikaans
// To use the updated file, open as 8-bit ASCII, copy the strings, and paste ar العربية
// over the table of names in src/Languages.cpp be Беларуская
"af Afrikaans", bg Български
"ar العربية", bn বাংলা
"be Беларуская", bs Bosanski
"bg Български", ca Català
"bn বাংলা", ca_ES@valencia Valencià
"bs Bosanski", cs Čeština
"ca Català", cy Cymraeg
"ca_ES@valencia Valencià", da Dansk
"cs Čeština", de Deutsch
"cy Cymraeg", el Ελληνικά
"da Dansk", en English
"de Deutsch", es Español
"el Ελληνικά", eu Euskara
"en English", eu_ES Euskara (Espainiako)
"es Español", fa فارسی
"eu Euskara", fi Suomi
"eu_ES Euskara (Espainiako)", fr Français
"fa فارسی", ga Gaeilge
"fi Suomi", gl Galego
"fr Français", he עברית
"ga Gaeilge", hi हिन्दी
"gl Galego", hr Hrvatski
"he עברית", hu Magyar
"hi हिन्दी", hy Հայերեն
"hr Hrvatski", id Bahasa Indonesia
"hu Magyar", it Italiano
"hy Հայերեն", ja 日本語
"id Bahasa Indonesia", ka ქართული
"it Italiano", km ខេមរភាសា
"ja 日本語", ko 한국어
"ka ქართული", lt Lietuvių
"km ខេមរភាសា", mk Македонски
"ko 한국어", my မြန်မာစာ
"lt Lietuvių", nb Norsk
"mk Македонски", nl Nederlands
"my မြန်မာစာ", oc Occitan
"nb Norsk", pl Polski
"nl Nederlands", pt Português
"oc Occitan", pt_BR Português (Brasil)
"pl Polski", ro Română
"pt Português", ru Русский
"pt_BR Português (Brasil)", sk Slovenčina
"ro Română", sl Slovenščina
"ru Русский", sr_RS Српски
"sk Slovenčina", sr_RS@latin Srpski
"sl Slovenščina", sv Svenska
"sr_RS Српски", ta தமிழ்
"sr_RS@latin Srpski", tg Тоҷикӣ
"sv Svenska", tr Türkçe
"ta தமிழ்", uk Українська
"tg Тоҷикӣ", vi Tiếng Việt
"tr Türkçe", zh_CN 中文
"uk Українська", zh_TW 中文
"vi Tiếng Việt",
"zh_CN 中文",
"zh_TW 中文",

View File

@ -128,62 +128,62 @@ wxString GetSystemLanguageCode()
void GetLanguages(wxArrayString &langCodes, wxArrayString &langNames) void GetLanguages(wxArrayString &langCodes, wxArrayString &langNames)
{ {
static const char *const utf8Names[] = { static const char *const utf8Names[] = {
"af Afrikaans", "af Afrikaans",
"ar العربية", "ar \330\247\331\204\330\271\330\261\330\250\331\212\330\251",
"be Беларуская", "be \320\221\320\265\320\273\320\260\321\200\321\203\321\201\320\272\320\260\321\217",
"bg Български", "bg \320\221\321\212\320\273\320\263\320\260\321\200\321\201\320\272\320\270",
"bn বাংলা", "bn \340\246\254\340\246\276\340\246\202\340\246\262\340\246\276",
"bs Bosanski", "bs Bosanski",
"ca Català", "ca Catal\303\240",
"ca_ES@valencia Valencià", "ca_ES@valencia Valenci\303\240",
"cs Čeština", "cs \304\214e\305\241tina",
"cy Cymraeg", "cy Cymraeg",
"da Dansk", "da Dansk",
"de Deutsch", "de Deutsch",
"el Ελληνικά", "el \316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254",
"en English", "en English",
"es Español", "es Espa\303\261ol",
"eu Euskara", "eu Euskara",
"eu_ES Euskara (Espainiako)", "eu_ES Euskara (Espainiako)",
"fa فارسی", "fa \331\201\330\247\330\261\330\263\333\214",
"fi Suomi", "fi Suomi",
"fr Français", "fr Fran\303\247ais",
"ga Gaeilge", "ga Gaeilge",
"gl Galego", "gl Galego",
"he עברית", "he \327\242\327\221\327\250\327\231\327\252",
"hi हिन्दी", "hi \340\244\271\340\244\277\340\244\250\340\245\215\340\244\246\340\245\200",
"hr Hrvatski", "hr Hrvatski",
"hu Magyar", "hu Magyar",
"hy Հայերեն", "hy \325\200\325\241\325\265\325\245\326\200\325\245\325\266",
"id Bahasa Indonesia", "id Bahasa Indonesia",
"it Italiano", "it Italiano",
"ja 日本語", "ja \346\227\245\346\234\254\350\252\236",
"ka ქართული", "ka \341\203\245\341\203\220\341\203\240\341\203\227\341\203\243\341\203\232\341\203\230",
"km ខេមរភាសា", "km \341\236\201\341\237\201\341\236\230\341\236\232\341\236\227\341\236\266\341\236\237\341\236\266",
"ko 한국어", "ko \355\225\234\352\265\255\354\226\264",
"lt Lietuvių", "lt Lietuvi\305\263",
"mk Македонски", "mk \320\234\320\260\320\272\320\265\320\264\320\276\320\275\321\201\320\272\320\270",
"my မြန်မာစာ", "my \341\200\231\341\200\274\341\200\224\341\200\272\341\200\231\341\200\254\341\200\205\341\200\254",
"nb Norsk", "nb Norsk",
"nl Nederlands", "nl Nederlands",
"oc Occitan", "oc Occitan",
"pl Polski", "pl Polski",
"pt Português", "pt Portugu\303\252s",
"pt_BR Português (Brasil)", "pt_BR Portugu\303\252s (Brasil)",
"ro Română", "ro Rom\303\242n\304\203",
"ru Русский", "ru \320\240\321\203\321\201\321\201\320\272\320\270\320\271",
"sk Slovenčina", "sk Sloven\304\215ina",
"sl Slovenščina", "sl Sloven\305\241\304\215ina",
"sr_RS Српски", "sr_RS \320\241\321\200\320\277\321\201\320\272\320\270",
"sr_RS@latin Srpski", "sr_RS@latin Srpski",
"sv Svenska", "sv Svenska",
"ta தமிழ்", "ta \340\256\244\340\256\256\340\256\277\340\256\264\340\257\215",
"tg Тоҷикӣ", "tg \320\242\320\276\322\267\320\270\320\272\323\243",
"tr Türkçe", "tr T\303\274rk\303\247e",
"uk Українська", "uk \320\243\320\272\321\200\320\260\321\227\320\275\321\201\321\214\320\272\320\260",
"vi Tiếng Việt", "vi Ti\341\272\277ng Vi\341\273\207t",
"zh_CN 中文", "zh_CN \344\270\255\346\226\207",
"zh_TW 中文", "zh_TW \344\270\255\346\226\207",
}; };
wxArrayString tempNames; wxArrayString tempNames;