summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-11-14 22:20:26 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-11-14 22:20:26 +0200
commitd368b2b41bf45b3a3a8a2ab5f8b61fb3dac5b7ea (patch)
treef1390e1fd47f044ba5a94069756875cc110c765a
parent7de74d5ed0b1424defcbe41342f6c544f0a813a2 (diff)
Localized language names in Preferences
Each dropdown item now uses its own language. This avoids the need to translate all language names to every language, and also helps the user to find the language(s) they understand. The name strings are incorporated as C11 u8"" string literals, which hopefully won't cause compatibility issues as the_Foundation already requires C11. Note that the Translation dialog retains the localized language labels because the user may not speak the source language, so they need to see it in their own language. IssueID #391
-rw-r--r--CMakeLists.txt1
-rw-r--r--po/en.po59
-rw-r--r--src/ui/util.c42
3 files changed, 33 insertions, 69 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08b4c053..314505c5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -281,6 +281,7 @@ endif ()
281 281
282# Target. 282# Target.
283add_executable (app ${SOURCES} ${RESOURCES}) 283add_executable (app ${SOURCES} ${RESOURCES})
284set_property (TARGET app PROPERTY C_STANDARD 11)
284if (TARGET ext-deps) 285if (TARGET ext-deps)
285 add_dependencies (app ext-deps) 286 add_dependencies (app ext-deps)
286endif () 287endif ()
diff --git a/po/en.po b/po/en.po
index 24fed59f..80fee8ae 100644
--- a/po/en.po
+++ b/po/en.po
@@ -1050,87 +1050,50 @@ msgstr "From:"
1050msgid "dlg.translate.to" 1050msgid "dlg.translate.to"
1051msgstr "To:" 1051msgstr "To:"
1052 1052
1053# A language choice in the Translation dialog.
1053msgid "lang.ar" 1054msgid "lang.ar"
1054msgstr "Arabic" 1055msgstr "Arabic"
1055 1056
1057# A language choice in the Translation dialog.
1056msgid "lang.zh" 1058msgid "lang.zh"
1057msgstr "Chinese" 1059msgstr "Chinese"
1058 1060
1059msgid "lang.zh.hans" 1061# A language choice in the Translation dialog.
1060msgstr "Chinese (Simplified)"
1061
1062msgid "lang.zh.hant"
1063msgstr "Chinese (Traditional)"
1064
1065msgid "lang.de" 1062msgid "lang.de"
1066msgstr "German" 1063msgstr "German"
1067 1064
1065# A language choice in the Translation dialog.
1068msgid "lang.en" 1066msgid "lang.en"
1069msgstr "English" 1067msgstr "English"
1070 1068
1071msgid "lang.ia" 1069# A language choice in the Translation dialog.
1072msgstr "Interlingua"
1073
1074msgid "lang.ie"
1075msgstr "Interlingue"
1076
1077msgid "lang.fi"
1078msgstr "Finnish"
1079
1080msgid "lang.fr" 1070msgid "lang.fr"
1081msgstr "French" 1071msgstr "French"
1082 1072
1083msgid "lang.gl" 1073# A language choice in the Translation dialog.
1084msgstr "Galician"
1085
1086msgid "lang.hi" 1074msgid "lang.hi"
1087msgstr "Hindi" 1075msgstr "Hindi"
1088 1076
1077# A language choice in the Translation dialog.
1089msgid "lang.it" 1078msgid "lang.it"
1090msgstr "Italian" 1079msgstr "Italian"
1091 1080
1081# A language choice in the Translation dialog.
1092msgid "lang.ja" 1082msgid "lang.ja"
1093msgstr "Japanese" 1083msgstr "Japanese"
1094 1084
1095msgid "lang.pl" 1085# A language choice in the Translation dialog.
1096msgstr "Polish"
1097
1098msgid "lang.pt" 1086msgid "lang.pt"
1099msgstr "Portuguese" 1087msgstr "Portuguese"
1100 1088
1089# A language choice in the Translation dialog.
1101msgid "lang.ru" 1090msgid "lang.ru"
1102msgstr "Russian" 1091msgstr "Russian"
1103 1092
1104msgid "lang.hu" 1093# A language choice in the Translation dialog.
1105msgstr "Hungarian"
1106
1107msgid "lang.uk"
1108msgstr "Ukrainian"
1109
1110msgid "lang.eo"
1111msgstr "Esperanto"
1112
1113msgid "lang.es" 1094msgid "lang.es"
1114msgstr "Spanish" 1095msgstr "Spanish"
1115 1096
1116msgid "lang.es.mx"
1117msgstr "Spanish (Mexico)"
1118
1119msgid "lang.cs"
1120msgstr "Czech"
1121
1122msgid "lang.sk"
1123msgstr "Slovak"
1124
1125msgid "lang.sr"
1126msgstr "Serbian"
1127
1128msgid "lang.isv"
1129msgstr "Interslavic"
1130
1131msgid "lang.tok"
1132msgstr "Toki Pona"
1133
1134msgid "heading.newident" 1097msgid "heading.newident"
1135msgstr "NEW IDENTITY" 1098msgstr "NEW IDENTITY"
1136 1099
diff --git a/src/ui/util.c b/src/ui/util.c
index 88348ff8..2624bf2b 100644
--- a/src/ui/util.c
+++ b/src/ui/util.c
@@ -2199,27 +2199,27 @@ iWidget *makeDialog_Widget(const char *id,
2199 2199
2200iWidget *makePreferences_Widget(void) { 2200iWidget *makePreferences_Widget(void) {
2201 /* Common items. */ 2201 /* Common items. */
2202 const iMenuItem langItems[] = { { "${lang.cs} - cs", 0, 0, "uilang id:cs" }, 2202 const iMenuItem langItems[] = { { u8"Čeština - cs", 0, 0, "uilang id:cs" },
2203 { "${lang.de} - de", 0, 0, "uilang id:de" }, 2203 { u8"Deutsch - de", 0, 0, "uilang id:de" },
2204 { "${lang.en} - en", 0, 0, "uilang id:en" }, 2204 { u8"English - en", 0, 0, "uilang id:en" },
2205 { "${lang.es} - es", 0, 0, "uilang id:es" }, 2205 { u8"Español - es", 0, 0, "uilang id:es" },
2206 { "${lang.es.mx} - es", 0, 0, "uilang id:es_MX" }, 2206 { u8"Español (México) - es", 0, 0, "uilang id:es_MX" },
2207 { "${lang.eo} - eo", 0, 0, "uilang id:eo" }, 2207 { u8"Esperanto - eo", 0, 0, "uilang id:eo" },
2208 { "${lang.fi} - fi", 0, 0, "uilang id:fi" }, 2208 { u8"Suomi - fi", 0, 0, "uilang id:fi" },
2209 { "${lang.fr} - fr", 0, 0, "uilang id:fr" }, 2209 { u8"Français - fr", 0, 0, "uilang id:fr" },
2210 { "${lang.gl} - gl", 0, 0, "uilang id:gl" }, 2210 { u8"Galego - gl", 0, 0, "uilang id:gl" },
2211 { "${lang.hu} - hu", 0, 0, "uilang id:hu" }, 2211 { u8"Magyar - hu", 0, 0, "uilang id:hu" },
2212 { "${lang.ia} - ia", 0, 0, "uilang id:ia" }, 2212 { u8"Interlingua - ia", 0, 0, "uilang id:ia" },
2213 { "${lang.ie} - ie", 0, 0, "uilang id:ie" }, 2213 { u8"Interlingue - ie", 0, 0, "uilang id:ie" },
2214 { "${lang.isv} - isv", 0, 0, "uilang id:isv" }, 2214 { u8"Interslavic - isv", 0, 0, "uilang id:isv" },
2215 { "${lang.pl} - pl", 0, 0, "uilang id:pl" }, 2215 { u8"Polski - pl", 0, 0, "uilang id:pl" },
2216 { "${lang.ru} - ru", 0, 0, "uilang id:ru" }, 2216 { u8"Русский - ru", 0, 0, "uilang id:ru" },
2217 { "${lang.sk} - sk", 0, 0, "uilang id:sk" }, 2217 { u8"Slovak - sk", 0, 0, "uilang id:sk" },
2218 { "${lang.sr} - sr", 0, 0, "uilang id:sr" }, 2218 { u8"Српски - sr", 0, 0, "uilang id:sr" },
2219 { "${lang.tok} - tok", 0, 0, "uilang id:tok" }, 2219 { u8"Toki pona - tok", 0, 0, "uilang id:tok" },
2220 { "${lang.uk} - uk", 0, 0, "uilang id:uk" }, 2220 { u8"Українська - uk", 0, 0, "uilang id:uk" },
2221 { "${lang.zh.hans} - zh", 0, 0, "uilang id:zh_Hans" }, 2221 { u8"简体中文 - zh", 0, 0, "uilang id:zh_Hans" },
2222 { "${lang.zh.hant} - zh", 0, 0, "uilang id:zh_Hant" }, 2222 { u8"繁體/正體中文 - zh", 0, 0, "uilang id:zh_Hant" },
2223 { NULL } }; 2223 { NULL } };
2224 const iMenuItem returnKeyBehaviors[] = { 2224 const iMenuItem returnKeyBehaviors[] = {
2225 { "${prefs.returnkey.linebreak} " uiTextAction_ColorEscape shift_Icon return_Icon 2225 { "${prefs.returnkey.linebreak} " uiTextAction_ColorEscape shift_Icon return_Icon