diff options
author | Steve Block <steveblock@google.com> | 2009-11-05 09:23:40 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-11-10 22:41:12 +0000 |
commit | cac0f67c402d107cdb10971b95719e2ff9c7c76b (patch) | |
tree | d182c7f87211c6f201a5f038e332336493ebdbe7 /WebCore/platform/gtk/Language.cpp | |
parent | 4b2ef0f288e7c6c4602f621b7a0e9feed304b70e (diff) | |
download | external_webkit-cac0f67c402d107cdb10971b95719e2ff9c7c76b.zip external_webkit-cac0f67c402d107cdb10971b95719e2ff9c7c76b.tar.gz external_webkit-cac0f67c402d107cdb10971b95719e2ff9c7c76b.tar.bz2 |
Merge webkit.org at r50258 : Initial merge by git.
Change-Id: I1a9e1dc4ed654b69174ad52a4f031a07240f37b0
Diffstat (limited to 'WebCore/platform/gtk/Language.cpp')
-rw-r--r-- | WebCore/platform/gtk/Language.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/WebCore/platform/gtk/Language.cpp b/WebCore/platform/gtk/Language.cpp index 171cd84..fea2df6 100644 --- a/WebCore/platform/gtk/Language.cpp +++ b/WebCore/platform/gtk/Language.cpp @@ -21,16 +21,37 @@ #include "Language.h" #include "CString.h" +#include "GOwnPtr.h" #include "PlatformString.h" #include <gtk/gtk.h> +#include <locale.h> #include <pango/pango.h> namespace WebCore { +// Using pango_language_get_default() here is not an option, because +// it doesn't support changing the locale in runtime, so it returns +// always the same value. String defaultLanguage() { - return pango_language_to_string(gtk_get_default_language()); + char* localeDefault = setlocale(LC_CTYPE, NULL); + + if (!localeDefault) + return String("c"); + + GOwnPtr<gchar> normalizedDefault(g_ascii_strdown(localeDefault, -1)); + char* ptr = strchr(normalizedDefault.get(), '_'); + + if(ptr) + *ptr = '-'; + + ptr = strchr(normalizedDefault.get(), '.'); + + if(ptr) + *ptr = '\0'; + + return String(normalizedDefault.get()); } } |