Change navigator.language dynamically
authorJaehun Lim <ljaehun.lim@samsung.com>
Fri, 12 Apr 2013 04:10:17 +0000 (13:10 +0900)
committerJaehun Lim <ljaehun.lim@samsung.com>
Fri, 12 Apr 2013 04:19:04 +0000 (13:19 +0900)
[Title] Change navigator.language dynamically
[Issue#] N/A
[Problem] navigator.language doesn't change after platform's language is changed.
[Cause] Vector for language values is static.
[Solution] Read vconf value whenever navigator.language is requested.

Change-Id: Ie43ca073889a9e2301e5c6fba183561f0544ab40

Source/WebCore/platform/Language.cpp
Source/WebCore/platform/efl/LanguageEfl.cpp

index 47f09f6..d2e0bb0 100644 (file)
@@ -67,7 +67,11 @@ String defaultLanguage()
 
 static Vector<String>& preferredLanguagesOverride()
 {
+#if ENABLE(TIZEN_NAVIGATOR_LANGUAGE_STR)
+    Vector<String>& override = *new Vector<String>();
+#else
     DEFINE_STATIC_LOCAL(Vector<String>, override, ());
+#endif
     return override;
 }
 
index 7649aed..6ecda02 100644 (file)
@@ -32,6 +32,9 @@
 #include "PlatformString.h"
 
 #include <locale.h>
+#if ENABLE(TIZEN_NAVIGATOR_LANGUAGE_STR)
+#include <vconf.h>
+#endif
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -39,7 +42,9 @@ namespace WebCore {
 static String platformLanguage()
 {
 #if ENABLE(TIZEN_NAVIGATOR_LANGUAGE_STR)
-    char* localeDefault = setlocale(LC_MESSAGES, 0);
+    char* localeDefault = vconf_get_str(VCONFKEY_LANGSET);
+    if (!localeDefault)
+        setlocale(LC_MESSAGES, 0);
 #else
     char* localeDefault = setlocale(LC_CTYPE, 0);
 #endif