diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-14 22:20:26 +0200 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-14 22:20:26 +0200 |
commit | d368b2b41bf45b3a3a8a2ab5f8b61fb3dac5b7ea (patch) | |
tree | f1390e1fd47f044ba5a94069756875cc110c765a | |
parent | 7de74d5ed0b1424defcbe41342f6c544f0a813a2 (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.txt | 1 | ||||
-rw-r--r-- | po/en.po | 59 | ||||
-rw-r--r-- | src/ui/util.c | 42 |
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. |
283 | add_executable (app ${SOURCES} ${RESOURCES}) | 283 | add_executable (app ${SOURCES} ${RESOURCES}) |
284 | set_property (TARGET app PROPERTY C_STANDARD 11) | ||
284 | if (TARGET ext-deps) | 285 | if (TARGET ext-deps) |
285 | add_dependencies (app ext-deps) | 286 | add_dependencies (app ext-deps) |
286 | endif () | 287 | endif () |
@@ -1050,87 +1050,50 @@ msgstr "From:" | |||
1050 | msgid "dlg.translate.to" | 1050 | msgid "dlg.translate.to" |
1051 | msgstr "To:" | 1051 | msgstr "To:" |
1052 | 1052 | ||
1053 | # A language choice in the Translation dialog. | ||
1053 | msgid "lang.ar" | 1054 | msgid "lang.ar" |
1054 | msgstr "Arabic" | 1055 | msgstr "Arabic" |
1055 | 1056 | ||
1057 | # A language choice in the Translation dialog. | ||
1056 | msgid "lang.zh" | 1058 | msgid "lang.zh" |
1057 | msgstr "Chinese" | 1059 | msgstr "Chinese" |
1058 | 1060 | ||
1059 | msgid "lang.zh.hans" | 1061 | # A language choice in the Translation dialog. |
1060 | msgstr "Chinese (Simplified)" | ||
1061 | |||
1062 | msgid "lang.zh.hant" | ||
1063 | msgstr "Chinese (Traditional)" | ||
1064 | |||
1065 | msgid "lang.de" | 1062 | msgid "lang.de" |
1066 | msgstr "German" | 1063 | msgstr "German" |
1067 | 1064 | ||
1065 | # A language choice in the Translation dialog. | ||
1068 | msgid "lang.en" | 1066 | msgid "lang.en" |
1069 | msgstr "English" | 1067 | msgstr "English" |
1070 | 1068 | ||
1071 | msgid "lang.ia" | 1069 | # A language choice in the Translation dialog. |
1072 | msgstr "Interlingua" | ||
1073 | |||
1074 | msgid "lang.ie" | ||
1075 | msgstr "Interlingue" | ||
1076 | |||
1077 | msgid "lang.fi" | ||
1078 | msgstr "Finnish" | ||
1079 | |||
1080 | msgid "lang.fr" | 1070 | msgid "lang.fr" |
1081 | msgstr "French" | 1071 | msgstr "French" |
1082 | 1072 | ||
1083 | msgid "lang.gl" | 1073 | # A language choice in the Translation dialog. |
1084 | msgstr "Galician" | ||
1085 | |||
1086 | msgid "lang.hi" | 1074 | msgid "lang.hi" |
1087 | msgstr "Hindi" | 1075 | msgstr "Hindi" |
1088 | 1076 | ||
1077 | # A language choice in the Translation dialog. | ||
1089 | msgid "lang.it" | 1078 | msgid "lang.it" |
1090 | msgstr "Italian" | 1079 | msgstr "Italian" |
1091 | 1080 | ||
1081 | # A language choice in the Translation dialog. | ||
1092 | msgid "lang.ja" | 1082 | msgid "lang.ja" |
1093 | msgstr "Japanese" | 1083 | msgstr "Japanese" |
1094 | 1084 | ||
1095 | msgid "lang.pl" | 1085 | # A language choice in the Translation dialog. |
1096 | msgstr "Polish" | ||
1097 | |||
1098 | msgid "lang.pt" | 1086 | msgid "lang.pt" |
1099 | msgstr "Portuguese" | 1087 | msgstr "Portuguese" |
1100 | 1088 | ||
1089 | # A language choice in the Translation dialog. | ||
1101 | msgid "lang.ru" | 1090 | msgid "lang.ru" |
1102 | msgstr "Russian" | 1091 | msgstr "Russian" |
1103 | 1092 | ||
1104 | msgid "lang.hu" | 1093 | # A language choice in the Translation dialog. |
1105 | msgstr "Hungarian" | ||
1106 | |||
1107 | msgid "lang.uk" | ||
1108 | msgstr "Ukrainian" | ||
1109 | |||
1110 | msgid "lang.eo" | ||
1111 | msgstr "Esperanto" | ||
1112 | |||
1113 | msgid "lang.es" | 1094 | msgid "lang.es" |
1114 | msgstr "Spanish" | 1095 | msgstr "Spanish" |
1115 | 1096 | ||
1116 | msgid "lang.es.mx" | ||
1117 | msgstr "Spanish (Mexico)" | ||
1118 | |||
1119 | msgid "lang.cs" | ||
1120 | msgstr "Czech" | ||
1121 | |||
1122 | msgid "lang.sk" | ||
1123 | msgstr "Slovak" | ||
1124 | |||
1125 | msgid "lang.sr" | ||
1126 | msgstr "Serbian" | ||
1127 | |||
1128 | msgid "lang.isv" | ||
1129 | msgstr "Interslavic" | ||
1130 | |||
1131 | msgid "lang.tok" | ||
1132 | msgstr "Toki Pona" | ||
1133 | |||
1134 | msgid "heading.newident" | 1097 | msgid "heading.newident" |
1135 | msgstr "NEW IDENTITY" | 1098 | msgstr "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 | ||
2200 | iWidget *makePreferences_Widget(void) { | 2200 | iWidget *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 |