- screwed up the formatting, fix

SVN revision: 14150
This commit is contained in:
Dan Sinclair 2005-04-12 02:47:21 +00:00 committed by Dan Sinclair
parent 39ed7279d7
commit 0b0a77ec23
1 changed files with 82 additions and 82 deletions

View File

@ -15,122 +15,122 @@ static Evas_List *_e_intl_languages = NULL;
int int
e_intl_init(void) e_intl_init(void)
{ {
if (_e_intl_languages) return 1; if (_e_intl_languages) return 1;
/* supporeted languages - as we get translations - add them here */ /* supporeted languages - as we get translations - add them here */
ADD_LANG("C"); ADD_LANG("C");
ADD_LANG("en"); ADD_LANG("en");
ADD_LANG("jp"); ADD_LANG("jp");
/* FIXME: NULL == use LANG. make this read a config value if it exists */ /* FIXME: NULL == use LANG. make this read a config value if it exists */
e_intl_language_set(NULL); e_intl_language_set(NULL);
return 1; return 1;
} }
int int
e_intl_shutdown(void) e_intl_shutdown(void)
{ {
return 1; return 1;
} }
void void
e_intl_language_set(const char *lang) e_intl_language_set(const char *lang)
{ {
char buf[4096]; char buf[4096];
if (_e_intl_language) free(_e_intl_language); if (_e_intl_language) free(_e_intl_language);
if (!lang) lang = getenv("LANG"); if (!lang) lang = getenv("LANG");
/* FIXME: not sure the correct fix, but currenlty segv's if LANG isn't set */ /* FIXME: not sure the correct fix, but currenlty segv's if LANG isn't set */
if (!lang) lang = "en"; if (!lang) lang = "en";
_e_intl_language = strdup(lang); _e_intl_language = strdup(lang);
snprintf(buf, sizeof(buf), "LANG=%s", _e_intl_language); snprintf(buf, sizeof(buf), "LANG=%s", _e_intl_language);
putenv(buf); putenv(buf);
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALE_DIR); bindtextdomain(PACKAGE, LOCALE_DIR);
textdomain(PACKAGE); textdomain(PACKAGE);
// XSetLocaleModifiers(""); // XSetLocaleModifiers("");
bind_textdomain_codeset(PACKAGE, "UTF-8"); bind_textdomain_codeset(PACKAGE, "UTF-8");
} }
const char * const char *
e_intl_language_get(void) e_intl_language_get(void)
{ {
return _e_intl_language; return _e_intl_language;
} }
#define IFL(l) if (!strcmp(lang, l)) return #define IFL(l) if (!strcmp(lang, l)) return
const char * const char *
e_intl_language_name_get(const char *lang) e_intl_language_name_get(const char *lang)
{ {
if (!lang) return "None"; if (!lang) return "None";
/* FIXME: add as many as we can to this */ /* FIXME: add as many as we can to this */
IFL("") "None"; IFL("") "None";
IFL("C") "None"; IFL("C") "None";
IFL("bg") "Bulgarian"; IFL("bg") "Bulgarian";
IFL("bs") "Bosnian"; IFL("bs") "Bosnian";
IFL("ca") "Catalan"; IFL("ca") "Catalan";
IFL("cs") "Czech"; IFL("cs") "Czech";
IFL("cy") "Welsh"; IFL("cy") "Welsh";
IFL("da") "Danish"; IFL("da") "Danish";
IFL("de") "German"; IFL("de") "German";
IFL("el") "Greek"; IFL("el") "Greek";
IFL("en") "English"; IFL("en") "English";
IFL("eu") "Basque"; IFL("eu") "Basque";
IFL("fa") "Persian"; IFL("fa") "Persian";
IFL("fr") "French"; IFL("fr") "French";
IFL("fi") "Finnish"; IFL("fi") "Finnish";
IFL("gl") "Galician"; IFL("gl") "Galician";
IFL("hi") "Hindi"; IFL("hi") "Hindi";
IFL("hr") "Croatian"; IFL("hr") "Croatian";
IFL("hu") "Hungarian"; IFL("hu") "Hungarian";
IFL("id") "Indonesian"; IFL("id") "Indonesian";
IFL("it") "Italian"; IFL("it") "Italian";
IFL("jp") "Japanese"; IFL("jp") "Japanese";
IFL("kr") "Korean"; IFL("kr") "Korean";
IFL("lt") "Lithuanian"; IFL("lt") "Lithuanian";
IFL("lv") "Latvian"; IFL("lv") "Latvian";
IFL("nl") "Dutch"; IFL("nl") "Dutch";
IFL("nn") "Norwegian Bokmall"; IFL("nn") "Norwegian Bokmall";
IFL("no") "Norwegian Nynorsk"; IFL("no") "Norwegian Nynorsk";
IFL("pl") "Polish"; IFL("pl") "Polish";
IFL("pt") "Portuguese"; IFL("pt") "Portuguese";
IFL("pt_BR") "Portuguese (Brazil)"; IFL("pt_BR") "Portuguese (Brazil)";
IFL("ro") "Romanian"; IFL("ro") "Romanian";
IFL("ru") "Russian"; IFL("ru") "Russian";
IFL("sk") "Slovak"; IFL("sk") "Slovak";
IFL("sl") "Slovenian"; IFL("sl") "Slovenian";
IFL("sq") "Albanian"; IFL("sq") "Albanian";
IFL("sr") "Serbian"; IFL("sr") "Serbian";
IFL("sv") "Swedish"; IFL("sv") "Swedish";
IFL("tr") "Tuirkish"; IFL("tr") "Tuirkish";
IFL("uk") "Ukrainian"; IFL("uk") "Ukrainian";
IFL("vi") "Vietnamese"; IFL("vi") "Vietnamese";
IFL("zh") "Chinese (Simplified)"; IFL("zh") "Chinese (Simplified)";
IFL("zh_TW") "Chinese (Traditional)"; IFL("zh_TW") "Chinese (Traditional)";
return "Unknown"; return "Unknown";
} }
#define ISL(l) (!strcasecmp(buf, l)) #define ISL(l) (!strcasecmp(buf, l))
const char * const char *
e_intl_language_simple_get(const char *lang) e_intl_language_simple_get(const char *lang)
{ {
char buf[4096], *p; char buf[4096], *p;
if (!lang) return "C"; if (!lang) return "C";
strncpy(buf, lang, sizeof(buf) - 1); strncpy(buf, lang, sizeof(buf) - 1);
p = strchr(buf, '.'); p = strchr(buf, '.');
if (p) *p = 0; if (p) *p = 0;
if (ISL("en") || ISL("en_US") || ISL("en_GB") || ISL("en_CA") || if (ISL("en") || ISL("en_US") || ISL("en_GB") || ISL("en_CA") ||
ISL("en_AU") || ISL("en_NZ") || ISL("en_RN")) ISL("en_AU") || ISL("en_NZ") || ISL("en_RN"))
return "en"; return "en";
if (ISL("ja") || ISL("ja_JP") || ISL("JP") || ISL("en_CA")) if (ISL("ja") || ISL("ja_JP") || ISL("JP") || ISL("en_CA"))
return "ja"; return "ja";
/* FIXME: add all sorts of fuzzy matching here */ /* FIXME: add all sorts of fuzzy matching here */
return "C"; return "C";
} }
const Evas_List * const Evas_List *
e_intl_language_list(void) e_intl_language_list(void)
{ {
return _e_intl_languages; return _e_intl_languages;
} }