Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_config.c e_intl.c e_ipc.c e_ipc.h e_remote_main.c Log Message: you can change language on the fly by enlightenment_remote and it saves the settings etc. lists available languages etc. etc. works nicely here... =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- e_config.c 2 May 2005 10:16:31 -0000 1.34 +++ e_config.c 3 May 2005 08:06:48 -0000 1.35 @@ -199,7 +199,10 @@ /* apply config */ if ((e_config->language) && (strlen(e_config->language) > 0)) - e_intl_language_set(e_config->language); + { + printf("SET LANG %s\n", e_config->language); + e_intl_language_set(e_config->language); + } { Evas_List *l; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_intl.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_intl.c 2 May 2005 06:48:38 -0000 1.25 +++ e_intl.c 3 May 2005 08:06:50 -0000 1.26 @@ -38,21 +38,21 @@ * vs. traditional chinese) we may refer to them as separate languages * entirely. */ - ADD_LANG("C"); - ADD_LANG("en"); - ADD_LANG("ja"); - ADD_LANG("fr"); - ADD_LANG("es"); - ADD_LANG("pt"); - ADD_LANG("fi"); - ADD_LANG("ru"); - ADD_LANG("bg"); - ADD_LANG("de"); - ADD_LANG("pl"); - ADD_LANG("zh_CN"); - ADD_LANG("hu"); - ADD_LANG("sl"); - ADD_LANG("it"); + ADD_LANG(""); + ADD_LANG("en_US.UTF-8"); + ADD_LANG("ja_JP.UTF-8"); + ADD_LANG("fr_FR.UTF-8"); + ADD_LANG("es_AR.UTF-8"); + ADD_LANG("pt_BR.UTF-8"); + ADD_LANG("fi_FI.UTF-8"); + ADD_LANG("ru_RU.UTF-8"); + ADD_LANG("bg_BG.UTF-8"); + ADD_LANG("de_DE.UTF-8"); + ADD_LANG("pl_PL.UTF-8"); + ADD_LANG("zh_CN.UTF-8"); + ADD_LANG("hu_HU.UTF-8"); + ADD_LANG("sl_SI.UTF-8"); + ADD_LANG("it_IT.UTF-8"); /* FIXME: NULL == use LANG. make this read a config value if it exists */ e_intl_language_set(getenv("LANG")); @@ -82,7 +82,15 @@ { _e_intl_language = NULL; } - setlocale(LC_ALL, ""); + if (setlocale(LC_ALL, "") == NULL) + { + perror("setlocale() :"); + if (_e_intl_language) + printf("An error occured when trying to use the locale: %s\nDetails:\n", + _e_intl_language); + else + printf("An error occured trying to use the default locale\n"); + } bindtextdomain(PACKAGE, LOCALE_DIR); textdomain(PACKAGE); // XSetLocaleModifiers(""); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- e_ipc.c 2 May 2005 10:16:31 -0000 1.16 +++ e_ipc.c 3 May 2005 08:06:50 -0000 1.17 @@ -15,7 +15,6 @@ ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_enc); ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_default_list_enc); ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_font_default_enc); -//ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_string_list_enc); /* local subsystem globals */ static Ecore_Ipc_Server *_e_ipc_server = NULL; @@ -416,6 +415,7 @@ data, bytes); free(data); } + break; case E_IPC_OP_LANG_SET: { char *lang; @@ -426,6 +426,7 @@ e_intl_language_set(e_config->language); e_config_save_queue(); } + break; case E_IPC_OP_LANG_GET: { char *lang; @@ -485,6 +486,10 @@ return data; } +/** + * Encode a list of strings into a flattened data block that looks like + * <str>0<str>0... (ie string chars - nul byte in between until the end) + */ static char * _e_ipc_str_list_get(Evas_List *strs, int *bytes) { @@ -620,16 +625,3 @@ ECORE_IPC_PUT32(size); ECORE_IPC_ENC_STRUCT_FOOT(); } - -/* -ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_string_list_enc) -{ - ECORE_IPC_ENC_EVAS_LIST_HEAD_START(E_String); - ECORE_IPC_CNTS(str); - ECORE_IPC_ENC_EVAS_LIST_HEAD_FINISH(); - int l1; - ECORE_IPC_SLEN(l1, str); - ECORE_IPC_PUTS(str, l1); - ECORE_IPC_ENC_EVAS_LIST_FOOT(); -} -*/ =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_ipc.h 2 May 2005 10:16:31 -0000 1.11 +++ e_ipc.h 3 May 2005 08:06:50 -0000 1.12 @@ -3,7 +3,8 @@ */ #ifdef E_TYPEDEFS -typedef enum _E_Ipc_Domain { +typedef enum _E_Ipc_Domain +{ E_IPC_DOMAIN_NONE, E_IPC_DOMAIN_SETUP, E_IPC_DOMAIN_REQUEST, @@ -12,7 +13,8 @@ E_IPC_DOMAIN_LAST } E_Ipc_Domain; -typedef enum _E_Ipc_Op { +typedef enum _E_Ipc_Op +{ E_IPC_OP_NONE, E_IPC_OP_MODULE_LOAD, E_IPC_OP_MODULE_UNLOAD, =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_remote_main.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- e_remote_main.c 2 May 2005 10:16:31 -0000 1.14 +++ e_remote_main.c 3 May 2005 08:06:50 -0000 1.15 @@ -27,6 +27,8 @@ static void _e_help(void); +static Evas_List *_e_ipc_str_list_dec(char *data, int bytes); + ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_module_list_dec); ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_font_available_list_dec); ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_dec); @@ -433,7 +435,7 @@ E_Font_Default *efd; defaults = _e_ipc_font_default_list_dec(e->data, e->size); - while(defaults) + while (defaults) { efd = defaults->data; printf("REPLY: DEFAULT TEXT_CLASS=\"%s\" NAME=\"%s\" SIZE=%d\n", @@ -448,10 +450,27 @@ case E_IPC_OP_LANG_LIST_REPLY: if (e->data) { + Evas_List *langs; + + langs = _e_ipc_str_list_dec(e->data, e->size); + if (langs) + { + Evas_List *l; + + for (l = langs; l; l = l->next) + printf("REPLY: LANG=\"%s\"\n", l->data); + evas_list_free(langs); + } } else printf("REPLY: AVAILABLE NONE\n"); break; + case E_IPC_OP_LANG_GET_REPLY: + if (e->data) + { + printf("REPLY: %s\n", e->data); + } + break; default: break; } @@ -504,6 +523,23 @@ } } +/* generic encoding functions */ +static Evas_List * +_e_ipc_str_list_dec(char *data, int bytes) +{ + Evas_List *strs = NULL; + char *p; + + /* malformed list? */ + if (data[bytes - 1] != 0) return NULL; + p = data; + while (p < (data + bytes)) + { + strs = evas_list_append(strs, p); + p += strlen(p) + 1; + } + return strs; +} /* list/struct encoding functions */ ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_module_list_dec) ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs