[GRASS-SVN] r40533 - grass/trunk/lib/init
svn_grass at osgeo.org
svn_grass at osgeo.org
Mon Jan 18 10:36:40 EST 2010
Author: glynn
Date: 2010-01-18 10:36:38 -0500 (Mon, 18 Jan 2010)
New Revision: 40533
Added:
grass/trunk/lib/init/winlocale.c
Modified:
grass/trunk/lib/init/Makefile
grass/trunk/lib/init/init.bat
Log:
Set LANG on Windows
Modified: grass/trunk/lib/init/Makefile
===================================================================
--- grass/trunk/lib/init/Makefile 2010-01-18 15:02:10 UTC (rev 40532)
+++ grass/trunk/lib/init/Makefile 2010-01-18 15:36:38 UTC (rev 40533)
@@ -56,6 +56,7 @@
FILES += \
$(ARCH_BINDIR)/$(START_UP).py \
$(ARCH_BINDIR)/$(START_UP).bat \
+ $(ETC)/winlocale$(EXE) \
$(ETC)/Init.bat
else
FILES += \
@@ -124,6 +125,9 @@
$(ETC)/clean_temp$(EXE) $(ETC)/lock$(EXE): $(ETC)/%$(EXE): $(OBJDIR)/%.o
$(call linker)
+$(ETC)/winlocale$(EXE): $(OBJDIR)/winlocale.o
+ $(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@ $^ -lkernel32
+
$(ETC)/VERSIONNUMBER:
rm -f $@
@if [ -n "$(GRASS_VERSION_SVN)" ] ; then \
Modified: grass/trunk/lib/init/init.bat
===================================================================
--- grass/trunk/lib/init/init.bat 2010-01-18 15:02:10 UTC (rev 40532)
+++ grass/trunk/lib/init/init.bat 2010-01-18 15:36:38 UTC (rev 40533)
@@ -38,6 +38,10 @@
rem Generate GISBASE by converting dirsep characters from \ to /
FOR /F "usebackq delims==" %%i IN (`g.dirseps -g "%WINGISBASE%"`) DO @set GISBASE=%%i
+if not "%LANG%"=="" goto langset
+FOR /F "usebackq delims==" %%i IN (`"%WINGISBASE%\etc\winlocale"`) DO @set LANG=%%i
+:langset
+
set GRASS_PAGER=more
if "%GRASS_WISH%"=="" set GRASS_WISH=wish.exe
if "%GRASS_SH%"=="" set GRASS_SH=c:\msys\1.0\bin\sh.exe
Added: grass/trunk/lib/init/winlocale.c
===================================================================
--- grass/trunk/lib/init/winlocale.c (rev 0)
+++ grass/trunk/lib/init/winlocale.c 2010-01-18 15:36:38 UTC (rev 40533)
@@ -0,0 +1,210 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <windows.h>
+
+static struct locale {
+ unsigned int code;
+ const char name[8];
+} locales[] = {
+ {0x0004, "zh_CHS"}, /* Chinese - Simplified */
+ {0x0401, "ar_SA"}, /* Arabic - Saudi Arabia */
+ {0x0402, "bg_BG"}, /* Bulgarian */
+ {0x0403, "ca_ES"}, /* Catalan */
+ {0x0404, "zh_TW"}, /* Chinese - Taiwan */
+ {0x0405, "cs_CZ"}, /* Czech */
+ {0x0406, "da_DK"}, /* Danish */
+ {0x0407, "de_DE"}, /* German - Germany */
+ {0x0408, "el_GR"}, /* Greek */
+ {0x0409, "en_US"}, /* English - United States */
+ {0x040a, "es_ES"}, /* Spanish - Spain */
+ {0x040b, "fi_FI"}, /* Finnish */
+ {0x040c, "fr_FR"}, /* French - France */
+ {0x040d, "he_IL"}, /* Hebrew */
+ {0x040e, "hu_HU"}, /* Hungarian */
+ {0x040f, "is_IS"}, /* Icelandic */
+ {0x0410, "it_IT"}, /* Italian - Italy */
+ {0x0411, "ja_JP"}, /* Japanese */
+ {0x0412, "ko_KR"}, /* Korean */
+ {0x0413, "nl_NL"}, /* Dutch - The Netherlands */
+ {0x0414, "nb_NO"}, /* Norwegian - Bokmal */
+ {0x0415, "pl_PL"}, /* Polish */
+ {0x0416, "pt_BR"}, /* Portuguese - Brazil */
+ {0x0417, "rm_CH"}, /* Raeto-Romanese */
+ {0x0418, "ro_RO"}, /* Romanian - Romania */
+ {0x0419, "ru_RU"}, /* Russian */
+ {0x041a, "hr_HR"}, /* Croatian */
+ {0x041b, "sk_SK"}, /* Slovak */
+ {0x041c, "sq_AL"}, /* Albanian */
+ {0x041d, "sv_SE"}, /* Swedish - Sweden */
+ {0x041e, "th_TH"}, /* Thai */
+ {0x041f, "tr_TR"}, /* Turkish */
+ {0x0420, "ur_PK"}, /* Urdu */
+ {0x0421, "id_ID"}, /* Indonesian */
+ {0x0422, "uk_UA"}, /* Ukrainian */
+ {0x0423, "be_BY"}, /* Belarusian */
+ {0x0424, "sl_SI"}, /* Slovenian */
+ {0x0425, "et_EE"}, /* Estonian */
+ {0x0426, "lv_LV"}, /* Latvian */
+ {0x0427, "lt_LT"}, /* Lithuanian */
+ {0x0429, "fa_IR"}, /* Persian */
+ {0x042a, "vi_VN"}, /* Vietnamese */
+ {0x042b, "hy_AM"}, /* Armenian */
+ {0x042c, "az_AZ"}, /* Azeri Latin */
+ {0x042d, "eu_ES"}, /* Basque */
+ {0x042f, "mk_MK"}, /* FYRO Macedonian */
+ {0x0432, "tn_ZA"}, /* Setswana - Southern Africa */
+ {0x0434, "xh_ZA"}, /* Xhosa - South Africa */
+ {0x0435, "zu_ZA"}, /* Zulu */
+ {0x0436, "af_ZA"}, /* Afrikaans */
+ {0x0437, "ka_GE"}, /* Georgian */
+ {0x0438, "fo_FO"}, /* Faroese */
+ {0x0439, "hi_IN"}, /* Hindi */
+ {0x043a, "mt_MT"}, /* Maltese */
+ {0x043b, "se_NO"}, /* Sami Northern Norway */
+ {0x043e, "ms_MY"}, /* Malay - Malaysia */
+ {0x043f, "kk_KZ"}, /* Kazakh */
+ {0x0440, "ky_KG"}, /* Kyrgyz */
+ {0x0441, "sw_KE"}, /* Swahili */
+ {0x0443, "uz_UZ"}, /* Uzbek - Latin */
+ {0x0444, "tt_RU"}, /* Tatar */
+ {0x0445, "bn_IN"}, /* Begali */
+ {0x0446, "pa_IN"}, /* Punjabi */
+ {0x0447, "gu_IN"}, /* Gujarati */
+ {0x0448, "or_IN"}, /* Oriya - India */
+ {0x0449, "ta_IN"}, /* Tamil */
+ {0x044a, "te_IN"}, /* Telugu */
+ {0x044b, "kn_IN"}, /* Kannada - India */
+ {0x044c, "ml_IN"}, /* Malayalam - India */
+ {0x044e, "mr_IN"}, /* Marathi */
+ {0x044f, "sa_IN"}, /* Sanskrit */
+ {0x0450, "mn_MN"}, /* Mongolian */
+ {0x0452, "cy_GB"}, /* Welsh */
+ {0x0456, "gl_ES"}, /* Galician */
+ {0x0457, "kok_IN"}, /* Konkani */
+ {0x045a, "syr_SY"}, /* Syriac */
+ {0x045d, "iu_CA"}, /* Inuktitut */
+ {0x0461, "ne_NP"}, /* Nepali */
+ {0x0462, "fy_NL"}, /* Frisian - Netherlands */
+ {0x0463, "ps_AF"}, /* Pashto - Afghanistan */
+ {0x0464, "fil_PH"}, /* Filipino */
+ {0x0465, "div_MV"}, /* Divehi - Maldives */
+ {0x046b, "quz_BO"}, /* Quechua (Bolivia) */
+ {0x046c, "ns_ZA"}, /* Northern Sotho */
+ {0x046e, "lb_LU"}, /* Luxembourgish */
+ {0x047a, "arn_CL"}, /* Mapudungun */
+ {0x047c, "moh_CA"}, /* Mohawk - Canada */
+ {0x047e, "br_FR"}, /* Breton - France */
+ {0x0481, "mi_NZ"}, /* Maori */
+ {0x0482, "oc_FR"}, /* Occitan - France */
+ {0x048c, "gbz_AF"}, /* Dari - Afghanistan */
+ {0x0801, "ar_IQ"}, /* Arabic - Iraq */
+ {0x0804, "zh_CN"}, /* Chinese - PRC */
+ {0x0807, "de_CH"}, /* German - Switzerland */
+ {0x0809, "en_GB"}, /* English - United Kingdom */
+ {0x080a, "es_MX"}, /* Spanish - Mexico */
+ {0x080c, "fr_BE"}, /* French - Belgium */
+ {0x0810, "it_CH"}, /* Italian - Switzerland */
+ {0x0813, "nl_BE"}, /* Dutch - Belgium */
+ {0x0814, "nn_NO"}, /* Norwegian - Nynorsk */
+ {0x0816, "pt_PT"}, /* Portuguese - Portugal */
+ {0x081a, "sr_SP"}, /* Serbian - Latin */
+ {0x081d, "sv_FI"}, /* Swedish - Finland */
+ {0x0820, "ur_IN"}, /* Urdu - India */
+ {0x082c, "az_AZ"}, /* Azeri - Cyrillic */
+ {0x083b, "se_SE"}, /* Sami Northern Sweden */
+ {0x083c, "ga_IE"}, /* Irish - Ireland */
+ {0x083e, "ms_BN"}, /* Malay - Brunei */
+ {0x0843, "uz_UZ"}, /* Uzbek - Cyrillic */
+ {0x085d, "iu_CA"}, /* Inuktitut - Latin */
+ {0x086b, "quz_EC"}, /* Quechua (Ecuador) */
+ {0x0c01, "ar_EG"}, /* Arabic - Egypt */
+ {0x0c04, "zh_HK"}, /* Chinese - Hong Kong S.A.R. */
+ {0x0c07, "de_AT"}, /* German - Austria */
+ {0x0c09, "en_AU"}, /* English - Australia */
+ {0x0c0a, "es_ES"}, /* Spanish - Spain (Modern) */
+ {0x0c0c, "fr_CA"}, /* French - Canada */
+ {0x0c1a, "sr_SP"}, /* Serbian - Cyrillic */
+ {0x0c3b, "se_FI"}, /* Sami Northern Finland */
+ {0x0c6b, "quz_PE"}, /* Quechua (Peru) */
+ {0x1001, "ar_LY"}, /* Arabic - Libya */
+ {0x1004, "zh_SG"}, /* Chinese - Singapore */
+ {0x1007, "de_LU"}, /* German - Luxembourg */
+ {0x1009, "en_CA"}, /* English - Canada */
+ {0x100a, "es_GT"}, /* Spanish - Guatemala */
+ {0x100c, "fr_CH"}, /* French - Switzerland */
+ {0x101a, "hr_BA"}, /* Croatian - Bosnia */
+ {0x103b, "smj_NO"}, /* Sami Norway */
+ {0x1401, "ar_DZ"}, /* Arabic - Algeria */
+ {0x1404, "zh_MO"}, /* Chinese - Macao S.A.R. */
+ {0x1407, "de_LI"}, /* German - Liechtenstein */
+ {0x1409, "en_NZ"}, /* English - New Zealand */
+ {0x140a, "es_CR"}, /* Spanish - Costa Rica */
+ {0x140c, "fr_LU"}, /* French - Luxembourg */
+ {0x141a, "bs_BA"}, /* Bosnian - Cyrillic */
+ {0x143b, "smj_SE"}, /* Sami Sweden */
+ {0x1801, "ar_MA"}, /* Arabic - Morocco */
+ {0x1809, "en_IE"}, /* English - Ireland */
+ {0x180a, "es_PA"}, /* Spanish - Panama */
+ {0x180c, "fr_MC"}, /* French - Monaco */
+ {0x181a, "sr_BA"}, /* Serbian - Bosnia Latin */
+ {0x183b, "sma_NO"}, /* Sami Southern Norway */
+ {0x1c01, "ar_TN"}, /* Arabic - Tunisia */
+ {0x1c09, "en_ZA"}, /* English - South Africa */
+ {0x1c0a, "es_DO"}, /* Spanish - Dominican Republic */
+ {0x1c1a, "sr_BA"}, /* Serbian - Bosnia Cyrillic */
+ {0x1c3b, "sma_SE"}, /* Sami Southern Sweden */
+ {0x2001, "ar_OM"}, /* Arabic - Oman */
+ {0x2009, "en_JA"}, /* English - Jamaica */
+ {0x200a, "es_VE"}, /* Spanish - Venezuela */
+ {0x201a, "bs_BA"}, /* Bosnian */
+ {0x203b, "sms_FI"}, /* Sami Skolt */
+ {0x2401, "ar_YE"}, /* Arabic - Yemen */
+ {0x2409, "en_CB"}, /* English - Carribbean */
+ {0x240a, "es_CO"}, /* Spanish - Colombia */
+ {0x243b, "smn_FI"}, /* Sami Finland */
+ {0x2801, "ar_SY"}, /* Arabic - Syria */
+ {0x2809, "en_BZ"}, /* English - Belize */
+ {0x280a, "es_PE"}, /* Spanish - Peru */
+ {0x2c01, "ar_JO"}, /* Arabic - Jordan */
+ {0x2c09, "en_TT"}, /* English - Trinidad */
+ {0x2c0a, "es_AR"}, /* Spanish - Argentina */
+ {0x3001, "ar_LB"}, /* Arabic - Lebanon */
+ {0x3009, "en_ZW"}, /* English - Zimbabwe */
+ {0x300a, "es_EC"}, /* Spanish - Ecuador */
+ {0x3401, "ar_KW"}, /* Arabic - Kuwait */
+ {0x3409, "en_PH"}, /* English - Phillippines */
+ {0x340a, "es_CL"}, /* Spanish - Chile */
+ {0x3801, "ar_AE"}, /* Arabic - United Arab Emirates */
+ {0x380a, "es_UR"}, /* Spanish - Uruguay */
+ {0x3c01, "ar_BH"}, /* Arabic - Bahrain */
+ {0x3c0a, "es_PY"}, /* Spanish - Paraguay */
+ {0x4001, "ar_QA"}, /* Arabic - Qatar */
+ {0x400a, "es_BO"}, /* Spanish - Bolivia */
+ {0x440a, "es_SV"}, /* Spanish - El Salvador */
+ {0x480a, "es_HN"}, /* Spanish - Honduras */
+ {0x4c0a, "es_NI"}, /* Spanish - Nicaragua */
+ {0x500a, "es_PR"}, /* Spanish - Puerto Rico */
+ {0x7c04, "zh_CHT"}, /* Chinese - Traditional */
+};
+
+static int num_locales = sizeof(locales) / sizeof(locales[0]);
+
+static int compare(const void *pkey, const void *pval)
+{
+ LCID code = *(const LCID *)pkey;
+ const struct locale *loc = pval;
+ return code - loc->code;
+}
+
+int main(void)
+{
+ LCID code = GetUserDefaultLCID();
+ struct locale *loc = bsearch(&code,
+ locales, num_locales, sizeof(locales[0]),
+ compare);
+ if (!loc)
+ return 1;
+ fprintf(stdout, "%s\n", loc->name);
+ return 0;
+}
More information about the grass-commit
mailing list