* --lang also sets LC_ALL, along with LANG, for all locales

* --lang switch checking sorted by locale (for easier code maintenance)
This commit is contained in:
William Kendrick 2003-03-14 08:48:22 +00:00
parent c5e36ff29d
commit c9360eb1fe

View file

@ -7,12 +7,12 @@
bill@newbreedsoftware.com bill@newbreedsoftware.com
http://www.newbreedsoftware.com/tuxpaint/ http://www.newbreedsoftware.com/tuxpaint/
June 14, 2002 - February 28, 2003 June 14, 2002 - March 14, 2003
*/ */
#define VER_VERSION "0.9.11" #define VER_VERSION "0.9.11"
#define VER_DATE "2003.02.28" #define VER_DATE "2003.03.14"
/* #define DEBUG */ /* #define DEBUG */
@ -3671,147 +3671,173 @@ void setup(int argc, char * argv[])
if (langstr != NULL) if (langstr != NULL)
{ {
if (strcmp(langstr, "english") == 0 || if (strcmp(langstr, "english") == 0 ||
strcmp(langstr, "american-english") == 0) strcmp(langstr, "american-english") == 0)
{ {
putenv("LANG=C"); putenv("LANG=C");
} putenv("LC_ALL=C");
else if (strcmp(langstr, "spanish") == 0 || }
strcmp(langstr, "espanol") == 0) else if (strcmp(langstr, "catalan") == 0 ||
{ strcmp(langstr, "catala") == 0)
putenv("LANG=es_ES@euro"); {
} putenv("LANG=ca_ES");
else if (strcmp(langstr, "french") == 0 || putenv("LC_ALL=ca_ES");
strcmp(langstr, "francais") == 0) }
{ else if (strcmp(langstr, "czech") == 0 ||
putenv("LANG=fr_FR@euro"); strcmp(langstr, "cesky") == 0)
} {
else if (strcmp(langstr, "icelandic") == 0 || putenv("LANG=cs_CZ");
strcmp(langstr, "islenska") == 0) putenv("LC_ALL=cs_CZ");
{ }
putenv("LANG=is_IS"); else if (strcmp(langstr, "danish") == 0 ||
} strcmp(langstr, "dansk") == 0)
else if (strcmp(langstr, "german") == 0 || {
strcmp(langstr, "deutsch") == 0) putenv("LANG=da_DK");
{ putenv("LC_ALL=da_DK");
putenv("LANG=de_DE@euro"); }
} else if (strcmp(langstr, "german") == 0 ||
else if (strcmp(langstr, "finnish") == 0 || strcmp(langstr, "deutsch") == 0)
strcmp(langstr, "suomi") == 0) {
{ putenv("LANG=de_DE@euro");
putenv("LANG=fi_FI@euro"); putenv("LC_ALL=de_DE@euro");
} }
else if (strcmp(langstr, "turkish") == 0) else if (strcmp(langstr, "greek") == 0)
{ {
putenv("LANG=tr_TR@euro"); putenv("LANG=el_GR.UTF8");
} putenv("LC_ALL=el_GR.UTF8");
else if (strcmp(langstr, "norwegian") == 0 || }
strcmp(langstr, "nynorsk") == 0 || else if (strcmp(langstr, "british-english") == 0 ||
strcmp(langstr, "norsk") == 0) strcmp(langstr, "british") == 0)
{ {
putenv("LANG=nn_NO"); putenv("LANG=en_GB");
} putenv("LC_ALL=en_GB");
else if (strcmp(langstr, "italian") == 0 || }
strcmp(langstr, "italiano") == 0) else if (strcmp(langstr, "spanish") == 0 ||
{ strcmp(langstr, "espanol") == 0)
putenv("LANG=it_IT@euro"); {
} putenv("LANG=es_ES@euro");
else if (strcmp(langstr, "dutch") == 0) putenv("LC_ALL=es_ES@euro");
{ }
putenv("LANG=nl_NL@euro"); else if (strcmp(langstr, "finnish") == 0 ||
} strcmp(langstr, "suomi") == 0)
else if (strcmp(langstr, "czech") == 0 || {
strcmp(langstr, "cesky") == 0) putenv("LANG=fi_FI@euro");
{ putenv("LC_ALL=fi_FI@euro");
putenv("LANG=cs_CZ"); }
} else if (strcmp(langstr, "french") == 0 ||
else if (strcmp(langstr, "danish") == 0 || strcmp(langstr, "francais") == 0)
strcmp(langstr, "dansk") == 0) {
{ putenv("LANG=fr_FR@euro");
putenv("LANG=da_DK"); putenv("LC_ALL=fr_FR@euro");
} }
else if (strcmp(langstr, "swedish") == 0 || else if (strcmp(langstr, "hungarian") == 0 ||
strcmp(langstr, "svenska") == 0) strcmp(langstr, "magyar") == 0)
{ {
putenv("LANG=sv_SE@euro"); putenv("LANG=hu_HU");
} putenv("LC_ALL=hu_HU");
else if (strcmp(langstr, "slovak") == 0) }
{ else if (strcmp(langstr, "indonesian") == 0 ||
putenv("LANG=sk_SK"); strcmp(langstr, "bahasa-indonesia") == 0)
} {
else if (strcmp(langstr, "british-english") == 0 || putenv("LANG=id_ID");
strcmp(langstr, "british") == 0) putenv("LC_ALL=id_ID");
{ }
putenv("LANG=en_GB"); else if (strcmp(langstr, "icelandic") == 0 ||
} strcmp(langstr, "islenska") == 0)
else if (strcmp(langstr, "hungarian") == 0 || {
strcmp(langstr, "magyar") == 0) putenv("LANG=is_IS");
{ putenv("LC_ALL=is_IS");
putenv("LANG=hu_HU"); }
} else if (strcmp(langstr, "italian") == 0 ||
else if (strcmp(langstr, "japanese") == 0) strcmp(langstr, "italiano") == 0)
{ {
putenv("LANG=ja_JP.UTF-8"); putenv("LANG=it_IT@euro");
} putenv("LC_ALL=it_IT@euro");
else if (strcmp(langstr, "korean") == 0) }
{ else if (strcmp(langstr, "japanese") == 0)
putenv("LANG=ko_KR.UTF-8"); {
} putenv("LANG=ja_JP.UTF-8");
else if (strcmp(langstr, "lithuanian") == 0 || putenv("LC_ALL=ja_JP.UTF-8");
strcmp(langstr, "lietuviu") == 0) }
{ else if (strcmp(langstr, "korean") == 0)
putenv("LANG=lt_LT"); {
putenv("LC_ALL=lt_LT"); putenv("LANG=ko_KR.UTF-8");
} putenv("LC_ALL=ko_KR.UTF-8");
else if (strcmp(langstr, "chinese") == 0) }
{ else if (strcmp(langstr, "lithuanian") == 0 ||
putenv("LANG=zh_CN.UTF-8"); strcmp(langstr, "lietuviu") == 0)
} {
else if (strcmp(langstr, "indonesian") == 0 || putenv("LANG=lt_LT");
strcmp(langstr, "bahasa-indonesia") == 0) putenv("LC_ALL=lt_LT");
{ }
putenv("LANG=id_ID"); else if (strcmp(langstr, "dutch") == 0)
} {
else if (strcmp(langstr, "polish") == 0 || putenv("LANG=nl_NL@euro");
strcmp(langstr, "polski") == 0) putenv("LC_ALL=nl_NL@euro");
{ }
putenv("LANG=pl_PL"); else if (strcmp(langstr, "norwegian") == 0 ||
} strcmp(langstr, "nynorsk") == 0 ||
else if (strcmp(langstr, "greek") == 0) strcmp(langstr, "norsk") == 0)
{ {
putenv("LANG=el_GR.UTF8"); putenv("LANG=nn_NO");
} putenv("LC_ALL=nn_NO");
else if (strcmp(langstr, "romanian") == 0) }
{ else if (strcmp(langstr, "polish") == 0 ||
putenv("LANG=ro_RO"); strcmp(langstr, "polski") == 0)
} {
else if (strcmp(langstr, "catalan") == 0 || putenv("LANG=pl_PL");
strcmp(langstr, "catala") == 0) putenv("LC_ALL=pl_PL");
{ }
putenv("LANG=ca_ES"); else if (strcmp(langstr, "brazilian-portuguese") == 0 ||
} strcmp(langstr, "portugues-brazilian") == 0 ||
else if (strcmp(langstr, "portuguese") == 0 || strcmp(langstr, "brazilian") == 0)
{
putenv("LANG=pt_BR");
putenv("LC_ALL=pt_BR");
}
else if (strcmp(langstr, "portuguese") == 0 ||
strcmp(langstr, "portugues") == 0) strcmp(langstr, "portugues") == 0)
{ {
putenv("LANG=pt_PT@euro"); putenv("LANG=pt_PT@euro");
} putenv("LC_ALL=pt_PT@euro");
else if (strcmp(langstr, "brazilian-portuguese") == 0 || }
strcmp(langstr, "portugues-brazilian") == 0 || else if (strcmp(langstr, "romanian") == 0)
strcmp(langstr, "brazilian") == 0) {
{ putenv("LANG=ro_RO");
putenv("LANG=pt_BR"); putenv("LC_ALL=ro_RO");
} }
else else if (strcmp(langstr, "slovak") == 0)
{ {
fprintf(stderr, "%s is an invalid language\n", langstr); putenv("LANG=sk_SK");
show_usage(stderr, (char *) getfilename(argv[0])); putenv("LC_ALL=sk_SK");
free(langstr); }
exit(1); else if (strcmp(langstr, "swedish") == 0 ||
} strcmp(langstr, "svenska") == 0)
{
setlocale(LC_ALL, ""); putenv("LANG=sv_SE@euro");
putenv("LC_ALL=sv_SE@euro");
}
else if (strcmp(langstr, "turkish") == 0)
{
putenv("LANG=tr_TR@euro");
putenv("LC_ALL=tr_TR@euro");
}
else if (strcmp(langstr, "chinese") == 0)
{
putenv("LANG=zh_CN.UTF-8");
putenv("LC_ALL=zh_CN.UTF-8");
}
else
{
fprintf(stderr, "%s is an invalid language\n", langstr);
show_usage(stderr, (char *) getfilename(argv[0]));
free(langstr); free(langstr);
} exit(1);
}
setlocale(LC_ALL, "");
free(langstr);
}
bindtextdomain("tuxpaint", LOCALEDIR); bindtextdomain("tuxpaint", LOCALEDIR);