[gimp] app: Force a default language on Win32
- From: Mukund Sivaraman <muks src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: Force a default language on Win32
- Date: Tue, 30 Aug 2011 22:25:43 +0000 (UTC)
commit c9a9b1211cab22583e08c3119cce3f85a8bf4684
Author: Jernej SimonÄiÄ <jernej ena si>
Date: Wed Aug 31 03:55:22 2011 +0530
app: Force a default language on Win32
app/app.c | 701 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 701 insertions(+), 0 deletions(-)
---
diff --git a/app/app.c b/app/app.c
index 5db4879..9da1d0f 100644
--- a/app/app.c
+++ b/app/app.c
@@ -15,6 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/* Win32 language lookup table:
+ * Copyright (C) 2007-2008 Dieter Verfaillie <dieterv optionexplicit be>
+ */
+
+
#include "config.h"
#include <stdio.h>
@@ -32,6 +37,11 @@
#include <gegl.h>
+#ifdef G_OS_WIN32
+#include <windows.h>
+#include <winnls.h>
+#endif
+
#include "libgimpbase/gimpbase.h"
#include "libgimpconfig/gimpconfig.h"
@@ -277,6 +287,697 @@ app_init_update_noop (const gchar *text1,
static void
app_init_language (const gchar *language)
{
+#ifdef G_OS_WIN32
+ if (! language)
+ {
+ /* FIXME: This is a hack. gettext doesn't pick the right language
+ by default on Windows, so we enforce the right one. */
+
+ /* ISO 639-1
+ * http:www.loc.gov/standards/iso639-2/
+ * List of existing mui packs:
+ * http:www.microsoft.com/globaldev/reference/win2k/setup/Langid.mspx
+ * List of known id's
+ * http:www.microsoft.com/globaldev/reference/lcid-all.mspx
+ */
+
+ switch (GetUserDefaultUILanguage())
+ {
+ case 1078:
+ language = "af"; /* Afrikaans - South Africa */
+ break;
+ case 1052:
+ language = "sq"; /* Albanian - Albania */
+ break;
+ case 1118:
+ language = "am"; /* Amharic - Ethiopia */
+ break;
+ case 1025:
+ language = "ar"; /* Arabic - Saudi Arabia */
+ break;
+ case 5121:
+ language = "ar"; /* Arabic - Algeria */
+ break;
+ case 15361:
+ language = "ar"; /* Arabic - Bahrain */
+ break;
+ case 3073:
+ language = "ar"; /* Arabic - Egypt */
+ break;
+ case 2049:
+ language = "ar"; /* Arabic - Iraq */
+ break;
+ case 11265:
+ language = "ar"; /* Arabic - Jordan */
+ break;
+ case 13313:
+ language = "ar"; /* Arabic - Kuwait */
+ break;
+ case 12289:
+ language = "ar"; /* Arabic - Lebanon */
+ break;
+ case 4097:
+ language = "ar"; /* Arabic - Libya */
+ break;
+ case 6145:
+ language = "ar"; /* Arabic - Morocco */
+ break;
+ case 8193:
+ language = "ar"; /* Arabic - Oman */
+ break;
+ case 16385:
+ language = "ar"; /* Arabic - Qatar */
+ break;
+ case 10241:
+ language = "ar"; /* Arabic - Syria */
+ break;
+ case 7169:
+ language = "ar"; /* Arabic - Tunisia */
+ break;
+ case 14337:
+ language = "ar"; /* Arabic - U.A.E. */
+ break;
+ case 9217:
+ language = "ar"; /* Arabic - Yemen */
+ break;
+ case 1067:
+ language = "hy"; /* Armenian - Armenia */
+ break;
+ case 1101:
+ language = "as"; /* Assamese */
+ break;
+ case 2092:
+ language = NULL; /* Azeri (Cyrillic) */
+ break;
+ case 1068:
+ language = NULL; /* Azeri (Latin) */
+ break;
+ case 1069:
+ language = "eu"; /* Basque */
+ break;
+ case 1059:
+ language = "be"; /* Belarusian */
+ break;
+ case 1093:
+ language = "bn"; /* Bengali (India) */
+ break;
+ case 2117:
+ language = "bn"; /* Bengali (Bangladesh) */
+ break;
+ case 5146:
+ language = "bs"; /* Bosnian (Bosnia/Herzegovina) */
+ break;
+ case 1026:
+ language = "bg"; /* Bulgarian */
+ break;
+ case 1109:
+ language = "my"; /* Burmese */
+ break;
+ case 1027:
+ language = "ca"; /* Catalan */
+ break;
+ case 1116:
+ language = NULL; /* Cherokee - United States */
+ break;
+ case 2052:
+ language = "zh"; /* Chinese - People"s Republic of China */
+ break;
+ case 4100:
+ language = "zh"; /* Chinese - Singapore */
+ break;
+ case 1028:
+ language = "zh"; /* Chinese - Taiwan */
+ break;
+ case 3076:
+ language = "zh"; /* Chinese - Hong Kong SAR */
+ break;
+ case 5124:
+ language = "zh"; /* Chinese - Macao SAR */
+ break;
+ case 1050:
+ language = "hr"; /* Croatian */
+ break;
+ case 4122:
+ language = "hr"; /* Croatian (Bosnia/Herzegovina) */
+ break;
+ case 1029:
+ language = "cs"; /* Czech */
+ break;
+ case 1030:
+ language = "da"; /* Danish */
+ break;
+ case 1125:
+ language = "dv"; /* Divehi */
+ break;
+ case 1043:
+ language = "nl"; /* Dutch - Netherlands */
+ break;
+ case 2067:
+ language = "nl"; /* Dutch - Belgium */
+ break;
+ case 1126:
+ language = NULL; /* Edo */
+ break;
+ case 1033:
+ language = "en"; /* English - United States */
+ break;
+ case 2057:
+ language = "en"; /* English - United Kingdom */
+ break;
+ case 3081:
+ language = "en"; /* English - Australia */
+ break;
+ case 10249:
+ language = "en"; /* English - Belize */
+ break;
+ case 4105:
+ language = "en"; /* English - Canada */
+ break;
+ case 9225:
+ language = "en"; /* English - Caribbean */
+ break;
+ case 15369:
+ language = "en"; /* English - Hong Kong SAR */
+ break;
+ case 16393:
+ language = "en"; /* English - India */
+ break;
+ case 14345:
+ language = "en"; /* English - Indonesia */
+ break;
+ case 6153:
+ language = "en"; /* English - Ireland */
+ break;
+ case 8201:
+ language = "en"; /* English - Jamaica */
+ break;
+ case 17417:
+ language = "en"; /* English - Malaysia */
+ break;
+ case 5129:
+ language = "en"; /* English - New Zealand */
+ break;
+ case 13321:
+ language = "en"; /* English - Philippines */
+ break;
+ case 18441:
+ language = "en"; /* English - Singapore */
+ break;
+ case 7177:
+ language = "en"; /* English - South Africa */
+ break;
+ case 11273:
+ language = "en"; /* English - Trinidad */
+ break;
+ case 12297:
+ language = "en"; /* English - Zimbabwe */
+ break;
+ case 1061:
+ language = "et"; /* Estonian */
+ break;
+ case 1080:
+ language = "fo"; /* Faroese */
+ break;
+ case 1065:
+ language = NULL; /* Farsi */
+ break;
+ case 1124:
+ language = NULL; /* Filipino */
+ break;
+ case 1035:
+ language = "fi"; /* Finnish */
+ break;
+ case 1036:
+ language = "fr"; /* French - France */
+ break;
+ case 2060:
+ language = "fr"; /* French - Belgium */
+ break;
+ case 11276:
+ language = "fr"; /* French - Cameroon */
+ break;
+ case 3084:
+ language = "fr"; /* French - Canada */
+ break;
+ case 9228:
+ language = "fr"; /* French - Democratic Rep. of Congo */
+ break;
+ case 12300:
+ language = "fr"; /* French - Cote d"Ivoire */
+ break;
+ case 15372:
+ language = "fr"; /* French - Haiti */
+ break;
+ case 5132:
+ language = "fr"; /* French - Luxembourg */
+ break;
+ case 13324:
+ language = "fr"; /* French - Mali */
+ break;
+ case 6156:
+ language = "fr"; /* French - Monaco */
+ break;
+ case 14348:
+ language = "fr"; /* French - Morocco */
+ break;
+ case 58380:
+ language = "fr"; /* French - North Africa */
+ break;
+ case 8204:
+ language = "fr"; /* French - Reunion */
+ break;
+ case 10252:
+ language = "fr"; /* French - Senegal */
+ break;
+ case 4108:
+ language = "fr"; /* French - Switzerland */
+ break;
+ case 7180:
+ language = "fr"; /* French - West Indies */
+ break;
+ case 1122:
+ language = "fy"; /* Frisian - Netherlands */
+ break;
+ case 1127:
+ language = NULL; /* Fulfulde - Nigeria */
+ break;
+ case 1071:
+ language = "mk"; /* FYRO Macedonian */
+ break;
+ case 2108:
+ language = "ga"; /* Gaelic (Ireland) */
+ break;
+ case 1084:
+ language = "gd"; /* Gaelic (Scotland) */
+ break;
+ case 1110:
+ language = "gl"; /* Galician */
+ break;
+ case 1079:
+ language = "ka"; /* Georgian */
+ break;
+ case 1031:
+ language = "de"; /* German - Germany */
+ break;
+ case 3079:
+ language = "de"; /* German - Austria */
+ break;
+ case 5127:
+ language = "de"; /* German - Liechtenstein */
+ break;
+ case 4103:
+ language = "de"; /* German - Luxembourg */
+ break;
+ case 2055:
+ language = "de"; /* German - Switzerland */
+ break;
+ case 1032:
+ language = "el"; /* Greek */
+ break;
+ case 1140:
+ language = "gn"; /* Guarani - Paraguay */
+ break;
+ case 1095:
+ language = "gu"; /* Gujarati */
+ break;
+ case 1128:
+ language = "ha"; /* Hausa - Nigeria */
+ break;
+ case 1141:
+ language = NULL; /* Hawaiian - United States */
+ break;
+ case 1037:
+ language = "he"; /* Hebrew */
+ break;
+ case 1081:
+ language = "hi"; /* Hindi */
+ break;
+ case 1038:
+ language = "hu"; /* Hungarian */
+ break;
+ case 1129:
+ language = NULL; /* Ibibio - Nigeria */
+ break;
+ case 1039:
+ language = "is"; /* Icelandic */
+ break;
+ case 1136:
+ language = "ig"; /* Igbo - Nigeria */
+ break;
+ case 1057:
+ language = "id"; /* Indonesian */
+ break;
+ case 1117:
+ language = "iu"; /* Inuktitut */
+ break;
+ case 1040:
+ language = "it"; /* Italian - Italy */
+ break;
+ case 2064:
+ language = "it"; /* Italian - Switzerland */
+ break;
+ case 1041:
+ language = "ja"; /* Japanese */
+ break;
+ case 1099:
+ language = "kn"; /* Kannada */
+ break;
+ case 1137:
+ language = "kr"; /* Kanuri - Nigeria */
+ break;
+ case 2144:
+ language = "ks"; /* Kashmiri */
+ break;
+ case 1120:
+ language = "ks"; /* Kashmiri (Arabic) */
+ break;
+ case 1087:
+ language = "kk"; /* Kazakh */
+ break;
+ case 1107:
+ language = "km"; /* Khmer */
+ break;
+ case 1111:
+ language = NULL; /* Konkani */
+ break;
+ case 1042:
+ language = "ko"; /* Korean */
+ break;
+ case 1088:
+ language = "ky"; /* Kyrgyz (Cyrillic) */
+ break;
+ case 1108:
+ language = "lo"; /* Lao */
+ break;
+ case 1142:
+ language = "la"; /* Latin */
+ break;
+ case 1062:
+ language = "lv"; /* Latvian */
+ break;
+ case 1063:
+ language = "lt"; /* Lithuanian */
+ break;
+ case 1086:
+ language = "ms"; /* Malay - Malaysia */
+ break;
+ case 2110:
+ language = "ms"; /* Malay - Brunei Darussalam */
+ break;
+ case 1100:
+ language = "ml"; /* Malayalam */
+ break;
+ case 1082:
+ language = "mt"; /* Maltese */
+ break;
+ case 1112:
+ language = NULL; /* Manipuri */
+ break;
+ case 1153:
+ language = "mi"; /* Maori - New Zealand */
+ break;
+ case 1102:
+ language = "mr"; /* Marathi */
+ break;
+ case 1104:
+ language = "mn"; /* Mongolian (Cyrillic) */
+ break;
+ case 2128:
+ language = "mn"; /* Mongolian (Mongolian) */
+ break;
+ case 1121:
+ language = "ne"; /* Nepali */
+ break;
+ case 2145:
+ language = "ne"; /* Nepali - India */
+ break;
+ case 1044:
+ language = "no"; /* Norwegian (Bokmïïl) */
+ break;
+ case 2068:
+ language = "no"; /* Norwegian (Nynorsk) */
+ break;
+ case 1096:
+ language = "or"; /* Oriya */
+ break;
+ case 1138:
+ language = "om"; /* Oromo */
+ break;
+ case 1145:
+ language = NULL; /* Papiamentu */
+ break;
+ case 1123:
+ language = "ps"; /* Pashto */
+ break;
+ case 1045:
+ language = "pl"; /* Polish */
+ break;
+ case 1046:
+ language = "pt"; /* Portuguese - Brazil */
+ break;
+ case 2070:
+ language = "pt"; /* Portuguese - Portugal */
+ break;
+ case 1094:
+ language = "pa"; /* Punjabi */
+ break;
+ case 2118:
+ language = "pa"; /* Punjabi (Pakistan) */
+ break;
+ case 1131:
+ language = "qu"; /* Quecha - Bolivia */
+ break;
+ case 2155:
+ language = "qu"; /* Quecha - Ecuador */
+ break;
+ case 3179:
+ language = "qu"; /* Quecha - Peru */
+ break;
+ case 1047:
+ language = "rm"; /* Rhaeto-Romanic */
+ break;
+ case 1048:
+ language = "ro"; /* Romanian */
+ break;
+ case 2072:
+ language = "ro"; /* Romanian - Moldava */
+ break;
+ case 1049:
+ language = "ru"; /* Russian */
+ break;
+ case 2073:
+ language = "ru"; /* Russian - Moldava */
+ break;
+ case 1083:
+ language = NULL; /* Sami (Lappish) */
+ break;
+ case 1103:
+ language = "sa"; /* Sanskrit */
+ break;
+ case 1132:
+ language = NULL; /* Sepedi */
+ break;
+ case 3098:
+ language = "sr"; /* Serbian (Cyrillic) */
+ break;
+ case 2074:
+ language = "sr"; /* Serbian (Latin) */
+ break;
+ case 1113:
+ language = "sd"; /* Sindhi - India */
+ break;
+ case 2137:
+ language = "sd"; /* Sindhi - Pakistan */
+ break;
+ case 1115:
+ language = "si"; /* Sinhalese - Sri Lanka */
+ break;
+ case 1051:
+ language = "sk"; /* Slovak */
+ break;
+ case 1060:
+ language = "sl"; /* Slovenian */
+ break;
+ case 1143:
+ language = "so"; /* Somali */
+ break;
+ case 1070:
+ language = NULL; /* Sorbian */
+ break;
+ case 3082:
+ language = "es"; /* Spanish - Spain (Modern Sort) */
+ break;
+ case 1034:
+ language = "es"; /* Spanish - Spain (Traditional Sort) */
+ break;
+ case 11274:
+ language = "es"; /* Spanish - Argentina */
+ break;
+ case 16394:
+ language = "es"; /* Spanish - Bolivia */
+ break;
+ case 13322:
+ language = "es"; /* Spanish - Chile */
+ break;
+ case 9226:
+ language = "es"; /* Spanish - Colombia */
+ break;
+ case 5130:
+ language = "es"; /* Spanish - Costa Rica */
+ break;
+ case 7178:
+ language = "es"; /* Spanish - Dominican Republic */
+ break;
+ case 12298:
+ language = "es"; /* Spanish - Ecuador */
+ break;
+ case 17418:
+ language = "es"; /* Spanish - El Salvador */
+ break;
+ case 4106:
+ language = "es"; /* Spanish - Guatemala */
+ break;
+ case 18442:
+ language = "es"; /* Spanish - Honduras */
+ break;
+ case 58378:
+ language = "es"; /* Spanish - Latin America */
+ break;
+ case 2058:
+ language = "es"; /* Spanish - Mexico */
+ break;
+ case 19466:
+ language = "es"; /* Spanish - Nicaragua */
+ break;
+ case 6154:
+ language = "es"; /* Spanish - Panama */
+ break;
+ case 15370:
+ language = "es"; /* Spanish - Paraguay */
+ break;
+ case 10250:
+ language = "es"; /* Spanish - Peru */
+ break;
+ case 20490:
+ language = "es"; /* Spanish - Puerto Rico */
+ break;
+ case 21514:
+ language = "es"; /* Spanish - United States */
+ break;
+ case 14346:
+ language = "es"; /* Spanish - Uruguay */
+ break;
+ case 8202:
+ language = "es"; /* Spanish - Venezuela */
+ break;
+ case 1072:
+ language = NULL; /* Sutu */
+ break;
+ case 1089:
+ language = "sw"; /* Swahili */
+ break;
+ case 1053:
+ language = "sv"; /* Swedish */
+ break;
+ case 2077:
+ language = "sv"; /* Swedish - Finland */
+ break;
+ case 1114:
+ language = NULL; /* Syriac */
+ break;
+ case 1064:
+ language = "tg"; /* Tajik */
+ break;
+ case 1119:
+ language = NULL; /* Tamazight (Arabic) */
+ break;
+ case 2143:
+ language = NULL; /* Tamazight (Latin) */
+ break;
+ case 1097:
+ language = "ta"; /* Tamil */
+ break;
+ case 1092:
+ language = "tt"; /* Tatar */
+ break;
+ case 1098:
+ language = "te"; /* Telugu */
+ break;
+ case 1054:
+ language = "th"; /* Thai */
+ break;
+ case 2129:
+ language = "bo"; /* Tibetan - Bhutan */
+ break;
+ case 1105:
+ language = "bo"; /* Tibetan - People"s Republic of China */
+ break;
+ case 2163:
+ language = "ti"; /* Tigrigna - Eritrea */
+ break;
+ case 1139:
+ language = "ti"; /* Tigrigna - Ethiopia */
+ break;
+ case 1073:
+ language = "ts"; /* Tsonga */
+ break;
+ case 1074:
+ language = "tn"; /* Tswana */
+ break;
+ case 1055:
+ language = "tr"; /* Turkish */
+ break;
+ case 1090:
+ language = "tk"; /* Turkmen */
+ break;
+ case 1152:
+ language = "ug"; /* Uighur - China */
+ break;
+ case 1058:
+ language = "uk"; /* Ukrainian */
+ break;
+ case 1056:
+ language = "ur"; /* Urdu */
+ break;
+ case 2080:
+ language = "ur"; /* Urdu - India */
+ break;
+ case 2115:
+ language = "uz"; /* Uzbek (Cyrillic) */
+ break;
+ case 1091:
+ language = "uz"; /* Uzbek (Latin) */
+ break;
+ case 1075:
+ language = "ve"; /* Venda */
+ break;
+ case 1066:
+ language = "vi"; /* Vietnamese */
+ break;
+ case 1106:
+ language = "cy"; /* Welsh */
+ break;
+ case 1076:
+ language = "xh"; /* Xhosa */
+ break;
+ case 1144:
+ language = NULL; /* Yi */
+ break;
+ case 1085:
+ language = "yi"; /* Yiddish */
+ break;
+ case 1130:
+ language = "yo"; /* Yoruba */
+ break;
+ case 1077:
+ language = "zu"; /* Zulu */
+ break;
+ default:
+ language = NULL;
+ }
+ }
+#endif
+
/* We already set the locale according to the environment, so just
* return early if no language is set in gimprc.
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]