Added Support right-to-left languages 18/92718/4
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Tue, 18 Oct 2016 09:16:56 +0000 (12:16 +0300)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Tue, 18 Oct 2016 11:19:05 +0000 (14:19 +0300)
Change-Id: I791653140d1937815f490fd3006de7b38bb91328
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/MainApp/MainApp.cpp
src/MainApp/MainApp.h
src/Settings/Controller/src/Settings.cpp

index 50d3b806963b6b284433c04888e9659adf60fdba..6e6404fa5f48a8cd1fd60eddab72520e7cda0293 100644 (file)
@@ -29,6 +29,7 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <system_settings.h>
+#include <utils_i18n_ulocale.h>
 
 using namespace Msg;
 
@@ -120,6 +121,7 @@ bool MainApp::onAppCreate()
 
     elm_app_base_scale_set(2.6);
     elm_config_accel_preference_set("3d");
+    updateCharacterOrientation();
 
     m_pWindow = new StandardWindow;
     m_pWindow->show();
@@ -183,14 +185,38 @@ void MainApp::onLanguageChanged(app_event_info_h appEvent)
 {
     TRACE;
 
-    char *languageSet = nullptr;
-    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &languageSet);
+    char *lang = nullptr;
+    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &lang);
 
-    if(languageSet)
+    if(lang)
     {
-        MSG_LOG("Language: ", languageSet);
-        elm_language_set(languageSet);
-        free(languageSet);
+        MSG_LOG("Language: ", lang);
+        elm_language_set(lang);
+        updateCharacterOrientation();
+        free(lang);
+    }
+}
+
+void MainApp::updateCharacterOrientation()
+{
+    char *lang = nullptr;
+    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &lang);
+    if(lang)
+    {
+        MSG_LOG("Language: ", lang);
+        i18n_ulocale_layout_type_e layout = I18N_ULOCALE_LAYOUT_UNKNOWN;
+        if(i18n_ulocale_get_character_orientation(lang, &layout) == I18N_ERROR_NONE)
+        {
+            if(layout == I18N_ULOCALE_LAYOUT_LTR)
+                elm_config_mirrored_set(false);
+            else if(layout == I18N_ULOCALE_LAYOUT_RTL)
+                elm_config_mirrored_set(true);
+            else
+            {
+                MSG_LOG_ERROR("Unsupported character orientation type: ", layout);
+            }
+        }
+        free(lang);
     }
 }
 
index 439075f4cb66ca56a394b4b5f0d936884734d5ab..07bf8c31a4c84206b3821b4a39149c5b5290b6c6 100644 (file)
@@ -43,6 +43,7 @@ namespace Msg
 
         private:
             virtual void terminate();
+            void updateCharacterOrientation();
 
             // App cbs:
             bool onAppCreate();
index 5d519fd71c88b81a64dcbf8928a7f236ece882ba..562766d79830ebb1a19f24a9c7de6d531567fb3b 100644 (file)
@@ -183,8 +183,8 @@ void Settings::appendMsgOnSimItem()
     (
         SettingsListViewItem::multiLineStyle,
         &Settings::msgOnSimItemHandler,
-        dgettext(PROJECT_NAME, "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"),
-        dgettext(PROJECT_NAME, "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD")
+        "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD",
+        "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
     );
 }