Select the region in the easysetup wizard based on device's regional
authorSergio Villar Senín <svillar@igalia.com>
Tue, 24 Nov 2009 19:22:47 +0000 (20:22 +0100)
committerSergio Villar Senín <svillar@igalia.com>
Tue, 24 Nov 2009 19:31:21 +0000 (20:31 +0100)
settings

Now we use the name of the country in en_GB to properly select the current
region. It works now for every language, even for those that don't have
translations for osso-countries

Fixes NB#143546

src/modest-init.c
src/modest-main.c
src/modest-plugin-factory.c
src/modest-utils.c

index 44add04..88d9459 100644 (file)
@@ -195,7 +195,6 @@ force_ke_recv_load (void)
        return TRUE;
 }
 
-
 gboolean
 modest_init (int argc, char *argv[])
 {
@@ -204,8 +203,8 @@ modest_init (int argc, char *argv[])
        if (_is_initialized) {
                g_printerr ("modest: %s may only be invoked once\n", __FUNCTION__);
                return FALSE;
-       } 
-       
+       }
+
        init_i18n();
 
        if (!force_ke_recv_load()) {
@@ -221,25 +220,25 @@ modest_init (int argc, char *argv[])
 
        /* initialize the prng, we need it when creating random files */
        srandom((int)getpid());
-       
+
        if (!gnome_vfs_initialized()) {
                if (!gnome_vfs_init ()) {
                        g_printerr ("modest: failed to init gnome-vfs\n");
                        return FALSE;
                }
        }
-       
+
        if (!modest_runtime_init()) {
                modest_init_uninit ();
                g_printerr ("modest: failed to initialize the modest runtime\n");
                return FALSE;
        }
-       
+
        modest_plugin_factory_load_all (modest_runtime_get_plugin_factory ());
 
        /* do an initial guess for the device name */
        init_device_name (modest_runtime_get_conf());
-       
+
        if (!modest_platform_init(argc, argv)) {
                modest_init_uninit ();
                g_printerr ("modest: failed to run platform-specific initialization\n");
@@ -257,19 +256,19 @@ modest_init (int argc, char *argv[])
        }
 
        init_default_settings (modest_runtime_get_conf ());
-       
+
        if (!modest_init_local_folders(NULL)) {
                modest_init_uninit ();
                g_printerr ("modest: failed to init local folders\n");
                return FALSE;
        }
-       
+
        if (!init_default_account_maybe (modest_runtime_get_account_mgr ())) {
                modest_init_uninit ();
                g_printerr ("modest: failed to init default account\n");
                return FALSE;
-       }       
-       
+       }
+
        if (!init_ui (argc, argv)) {
                modest_init_uninit ();
                g_printerr ("modest: failed to init ui\n");
@@ -591,14 +590,12 @@ init_debug_logging (void)
        }
 #endif
 
-       
        if (mflags & MODEST_RUNTIME_DEBUG_ABORT_ON_WARNING)
                g_log_set_always_fatal (G_LOG_LEVEL_ERROR |
                                        G_LOG_LEVEL_CRITICAL |
                                        G_LOG_LEVEL_WARNING);
 }
 
-
 static void
 init_i18n (void)
 {
@@ -607,12 +604,14 @@ init_i18n (void)
        if (!lc_messages) {
                setenv ("LANGUAGE", "en_GB", 1);
                setenv ("LC_MESSAGES", "en_GB", 1);
+#ifdef MODEST_PLATFORM_GNOME
        } else {
                gchar *new_lc_messages;
                new_lc_messages = g_strconcat (lc_messages, ":en_GB", NULL);
                setenv ("LANGUAGE", new_lc_messages, 1);
                setenv ("LC_MESSAGES", new_lc_messages, 1);
                g_free (new_lc_messages);
+#endif
        }
 
        bindtextdomain (GETTEXT_PACKAGE, MODEST_LOCALE_DIR);
index e84b2de..a74f619 100644 (file)
@@ -188,7 +188,6 @@ main (int argc, char *argv[])
                goto cleanup;
        }
 
-
        /* Create the account store & launch send queues */
        acc_store = modest_runtime_get_account_store ();
        modest_tny_account_store_start_send_queues (acc_store);
index a94bf9a..fb55b2a 100644 (file)
@@ -131,7 +131,7 @@ modest_plugin_factory_new (void)
 }
 
 void
-modest_plugin_factory_load_all (ModestPluginFactory *self) 
+modest_plugin_factory_load_all (ModestPluginFactory *self)
 {
        ModestPluginFactoryPrivate *priv;
        GError *error = NULL;
@@ -159,7 +159,7 @@ modest_plugin_factory_load_all (ModestPluginFactory *self)
        while ((dirent = g_dir_read_name (d))) {
                if (g_str_has_suffix (dirent, PLUGIN_EXT)) {
                        gchar *plugin_file;
-                       ModestPlugin *plugin;
+                       ModestPlugin *plugin = NULL;
 
                        plugin_file = g_build_filename (MODEST_MAILPLUGINDIR, dirent, NULL);
                        plugin = modest_plugin_factory_load (plugin_file);
@@ -169,7 +169,6 @@ modest_plugin_factory_load_all (ModestPluginFactory *self)
                                priv->plugins = g_slist_prepend (priv->plugins, plugin);
                }
        }
-
        priv->plugins = g_slist_reverse (priv->plugins);
 
        g_dir_close (d);
index 278d035..791f2af 100644 (file)
@@ -935,7 +935,9 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc)
        }
 
        /* Get the territory specified for the current locale */
-       territory = nl_langinfo (_NL_ADDRESS_COUNTRY_NAME);
+       territory = nl_langinfo (_NL_IDENTIFICATION_TERRITORY);
+
+       setlocale (LC_MESSAGES, "en_GB");
 
        while (fgets (line, MCC_FILE_MAX_LINE_LEN, file) != NULL) {
                int mcc;
@@ -960,6 +962,8 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc)
                }
        }
 
+       setlocale (LC_MESSAGES, "");
+
        /* Now we fill the model */
        rewind (file);
        country_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);