fix default language
[apps/core/preloaded/settings.git] / setting-phone / src / setting-phone.c
index 1d136cb..2c050ca 100755 (executable)
@@ -32,6 +32,7 @@
 #include <setting-phone.h>
 #include <libxml/xmlmemory.h>
 #include <Ecore_X.h>
+#include "unicode/unum.h"
 
 #ifndef UG_MODULE_API
 #define UG_MODULE_API __attribute__ ((visibility("default")))
@@ -301,6 +302,24 @@ char *setting_phone_lang_get_by_pattern(const char *locale,
        return ret_str;
 }
 
+static char *__setting_phone_number_format_get(const char *region)
+{
+       setting_retvm_if(region == NULL, NULL, "region parameter is NULL");
+       UNumberFormat *fmt = NULL;
+       UErrorCode status = U_ZERO_ERROR;
+       UChar number_uchar[MAX_DISPLAY_NAME_LEN_ON_UI] = {0,};
+       char number_char[MAX_DISPLAY_NAME_LEN_ON_UI] = {0,};
+       double example_number = 1234567.89;
+
+       fmt = unum_open(UNUM_DEFAULT, NULL, -1, region, NULL, &status);
+       unum_formatDouble(fmt, example_number, number_uchar, MAX_DISPLAY_NAME_LEN_ON_UI, NULL, &status);
+       u_austrcpy(number_char, number_uchar);
+       SETTING_TRACE("number_char = %s", number_char);
+       unum_close(fmt);
+
+       return g_strdup(number_char); /* should be freed by caller */
+}
+
 char *setting_phone_lang_get_example_desc(const char *region, void *data)
 {
        setting_retvm_if(region == NULL, NULL, "region parameter is NULL");
@@ -323,18 +342,22 @@ char *setting_phone_lang_get_example_desc(const char *region, void *data)
 
        char *time = setting_phone_lang_get_by_pattern(region, time_skeleton, data);
 
+       char *number = __setting_phone_number_format_get(region);
+
        Eina_Strbuf *temp_str = eina_strbuf_new();
        char *r_str_text = NULL;
        eina_strbuf_append_printf(temp_str,
                                  "%s", _("IDS_ST_BODY_REGIONAL_EXAMPLE"));
        eina_strbuf_append_printf(temp_str, "<br>%s : %s", _("IDS_ST_BODY_DATE"), date);
        eina_strbuf_append_printf(temp_str, "<br>%s : %s", _("IDS_COM_BODY_DETAILS_TIME"), time);
+       eina_strbuf_append_printf(temp_str, "<br>%s : %s", _("IDS_ST_BODY_NUMBER"), number);
 
        r_str_text = eina_strbuf_string_steal(temp_str);
        /* eina_strbuf_string_free(temp_str); */
        eina_strbuf_free(temp_str);
        G_FREE(date);
        G_FREE(time);
+       G_FREE(number);
        return r_str_text;      /* will be freed in calling place */
 }
 
@@ -374,7 +397,7 @@ static void *setting_phone_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
                return NULL;
        }
        /* set launguage */
-       appcore_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
+       setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
        FREE(pa_path);
        /* ---------------------------------------------------------     */
        int value = 0;
@@ -422,7 +445,7 @@ static void *setting_phone_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
        setting_create_Gendial_itc("dialogue/1text.1icon/expandable2",
                                   &(phoneUG->itc_1icon_1text_sub));
 
-       phoneUG->itc_seperator.item_style = "dialogue/separator/21/with_line";
+       phoneUG->itc_seperator.item_style = "dialogue/separator";
        phoneUG->itc_seperator.func.text_get = NULL;
        phoneUG->itc_seperator.func.content_get = NULL;
        phoneUG->itc_seperator.func.state_get = NULL;
@@ -632,25 +655,15 @@ UG_MODULE_API int setting_plugin_reset(service_h service, void *priv)
 #else
        if (0 == safeStrCmp(ug_type, "language")) {
                // INT_SLP_SETTING_LANG
-               ret += vconf_set_int(VCONFKEY_SETAPPL_LANG_INT, SETTING_LANG_ENGLISH);
-               ret += vconf_set_str(VCONFKEY_LANGSET, "en_US.UTF-8");
-               ret += vconf_set_str(VCONFKEY_REGIONFORMAT,"en_US.UTF-8");
+               ret += vconf_set_int(VCONFKEY_SETAPPL_LANG_INT, 9);
+               ret += vconf_set_str(VCONFKEY_LANGSET, "en_GB.UTF-8");
+               ret += vconf_set_str(VCONFKEY_REGIONFORMAT,"en_GB.UTF-8");
        }
 
 #endif
        if (0 == safeStrCmp(ug_type, "language"))
        {
                SETTING_TRACE("Begin to reset language & region...");
-               //a. notify system language changed
-               char lang_changed_sys_noti_name[SYS_NOTI_NAME_LEN];
-               int res = -1;
-               res = heynoti_get_snoti_name("LANG_CHANGED",
-                                          lang_changed_sys_noti_name,
-                                          sizeof(lang_changed_sys_noti_name));
-               if (res == 0) {
-                       heynoti_publish(lang_changed_sys_noti_name);
-               }
-               ret += res;
 
                //b .reset default localeid
                int err = -1;