diff options
author | Xiao Xiangquan <xiaoxiangquan@gmail.com> | 2011-07-25 21:05:43 +0400 |
---|---|---|
committer | Xiao Xiangquan <xiaoxiangquan@gmail.com> | 2011-07-25 21:05:43 +0400 |
commit | 8454f2b8b3fc2fc5275773e5d110be98260b7b8e (patch) | |
tree | b5bde8204992bb710a00467b0035ca3781425a11 /source/blender/blenfont | |
parent | 96bbf550b0471d19d37385f62c1ff2b5b42408cb (diff) |
complete the language-select feature
Diffstat (limited to 'source/blender/blenfont')
-rw-r--r-- | source/blender/blenfont/intern/blf_lang.c | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c index ccaab88a248..cc55eb585ed 100644 --- a/source/blender/blenfont/intern/blf_lang.c +++ b/source/blender/blenfont/intern/blf_lang.c @@ -88,7 +88,7 @@ static char locale_serbian[] = "sr_RS"; static char locale_ukrainian[] = "uk_UA"; static char locale_polish[] = "pl_PL"; static char locale_romanian[] = "ro_RO"; -static char locale_arabic[] = "ar_SA"; +static char locale_arabic[] = "ar_EG"; static char locale_bulgarian[] = "bg_BG"; static char locale_greek[] = "el_GR"; static char locale_korean[] = "ko_KR"; @@ -138,33 +138,31 @@ void BLF_lang_init(void) void BLF_lang_set(const char *str) { char *locreturn; - if(str==NULL) { - if( U.language==1 ) - return; + if(str==NULL) str = lang_to_locale[U.language]; - } -#if defined (_WIN32) || defined(__APPLE__) - BLI_setenv("LANG", str); -#else - locreturn= setlocale(LC_ALL, str); - if (locreturn == NULL) { - char *lang= BLI_sprintfN("%s.UTF-8", str); + BLI_setenv("LANG", str); + BLI_setenv("LANGUAGE", str); - locreturn= setlocale(LC_ALL, lang); - if (locreturn == NULL) { - printf("could not change language to %s nor %s\n", str, lang); - } + locreturn= setlocale(LC_ALL, str); + if (locreturn == NULL) { + char *lang= BLI_sprintfN("%s.UTF-8", str); - MEM_freeN(lang); + locreturn= setlocale(LC_ALL, lang); + if (locreturn == NULL) { + printf("could not change language to %s nor %s\n", str, lang); } - setlocale(LC_NUMERIC, "C"); -#endif - textdomain(DOMAIN_NAME); - bindtextdomain(DOMAIN_NAME, global_messagepath); - /* bind_textdomain_codeset(DOMAIN_NAME, global_encoding_name); */ - BLI_strncpy(global_language, str, sizeof(global_language)); - + MEM_freeN(lang); + } + + setlocale(LC_NUMERIC, "C"); + + textdomain(DOMAIN_NAME); + bindtextdomain(DOMAIN_NAME, global_messagepath); + /* bind_textdomain_codeset(DOMAIN_NAME, global_encoding_name); */ + BLI_strncpy(global_language, str, sizeof(global_language)); + +// printf( "<<< %s %s %s \n", setlocale(LC_MESSAGES,NULL), getenv("LANG"), getenv("LANGUAGE") ); } |