Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/579465df5003dfdecf74228557bd927557fb3b7a
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/579465df5003dfdecf74228557bd927557fb3b7a
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/579465df5003dfdecf74228557bd927557fb3b7a

The branch, master has been updated
       via  579465df5003dfdecf74228557bd927557fb3b7a (commit)
      from  bec6428c6c1ad720cc41a7b3428b9b2d26c1dbeb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=579465df5003dfdecf74228557bd927557fb3b7a
commit 579465df5003dfdecf74228557bd927557fb3b7a
Author: François Revol <[email protected]>
Commit: François Revol <[email protected]>

    Haiku: use the native locale API to get the language name
    
    We used getenv() on LC_MESSAGES but we currently set it incorrectly
    anyway... We keep this as a fallback.

diff --git a/frontends/beos/gui.cpp b/frontends/beos/gui.cpp
index 19f8eac..e9ab973 100644
--- a/frontends/beos/gui.cpp
+++ b/frontends/beos/gui.cpp
@@ -42,6 +42,9 @@
 #include <Roster.h>
 #include <Screen.h>
 #include <String.h>
+#ifdef __HAIKU__
+#include <LocaleRoster.h>
+#endif
 
 extern "C" {
 
@@ -519,9 +522,18 @@ static BPath get_messages_path()
 
        BPath p;
        f.FindPath(B_FIND_PATH_APPS_DIRECTORY, "netsurf/res", p);
-       // TODO: use Haiku's BLocale stuff
-       BString lang(getenv("LC_MESSAGES"));
-       lang.Truncate(2);
+       BString lang;
+#ifdef __HAIKU__
+       BMessage preferredLangs;
+       if (BLocaleRoster::Default()->GetPreferredLanguages(&preferredLangs) == 
B_OK) {
+               preferredLangs.FindString("language", 0, &lang);
+               lang.Truncate(2);
+       }
+#endif
+       if (lang.Length() < 1) {
+               lang.SetTo(getenv("LC_MESSAGES"));
+               lang.Truncate(2);
+       }
        BDirectory d(p.Path());
        if (!d.Contains(lang.String(), B_DIRECTORY_NODE))
                lang = "en";
@@ -1040,9 +1052,19 @@ int main(int argc, char** argv)
        BResources resources;
        resources.SetToImage((const void*)main);
        size_t size = 0;
-       
+
+       BString lang;
+#ifdef __HAIKU__
+       BMessage preferredLangs;
+       if (BLocaleRoster::Default()->GetPreferredLanguages(&preferredLangs) == 
B_OK) {
+               preferredLangs.FindString("language", 0, &lang);
+       }
+#endif
+       if (lang.Length() < 1)
+               lang.SetTo(getenv("LC_MESSAGES"));
+
        char path[12];
-       sprintf(path,"%.2s/Messages", getenv("LC_MESSAGES"));
+       sprintf(path,"%.2s/Messages", lang.String());
        NSLOG(netsurf, INFO, "Loading messages from resource %s\n", path);
 
        const uint8_t* res = (const uint8_t*)resources.LoadResource('data', 
path, &size);


-----------------------------------------------------------------------

Summary of changes:
 frontends/beos/gui.cpp |   32 +++++++++++++++++++++++++++-----
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/frontends/beos/gui.cpp b/frontends/beos/gui.cpp
index 19f8eac..e9ab973 100644
--- a/frontends/beos/gui.cpp
+++ b/frontends/beos/gui.cpp
@@ -42,6 +42,9 @@
 #include <Roster.h>
 #include <Screen.h>
 #include <String.h>
+#ifdef __HAIKU__
+#include <LocaleRoster.h>
+#endif
 
 extern "C" {
 
@@ -519,9 +522,18 @@ static BPath get_messages_path()
 
        BPath p;
        f.FindPath(B_FIND_PATH_APPS_DIRECTORY, "netsurf/res", p);
-       // TODO: use Haiku's BLocale stuff
-       BString lang(getenv("LC_MESSAGES"));
-       lang.Truncate(2);
+       BString lang;
+#ifdef __HAIKU__
+       BMessage preferredLangs;
+       if (BLocaleRoster::Default()->GetPreferredLanguages(&preferredLangs) == 
B_OK) {
+               preferredLangs.FindString("language", 0, &lang);
+               lang.Truncate(2);
+       }
+#endif
+       if (lang.Length() < 1) {
+               lang.SetTo(getenv("LC_MESSAGES"));
+               lang.Truncate(2);
+       }
        BDirectory d(p.Path());
        if (!d.Contains(lang.String(), B_DIRECTORY_NODE))
                lang = "en";
@@ -1040,9 +1052,19 @@ int main(int argc, char** argv)
        BResources resources;
        resources.SetToImage((const void*)main);
        size_t size = 0;
-       
+
+       BString lang;
+#ifdef __HAIKU__
+       BMessage preferredLangs;
+       if (BLocaleRoster::Default()->GetPreferredLanguages(&preferredLangs) == 
B_OK) {
+               preferredLangs.FindString("language", 0, &lang);
+       }
+#endif
+       if (lang.Length() < 1)
+               lang.SetTo(getenv("LC_MESSAGES"));
+
        char path[12];
-       sprintf(path,"%.2s/Messages", getenv("LC_MESSAGES"));
+       sprintf(path,"%.2s/Messages", lang.String());
        NSLOG(netsurf, INFO, "Loading messages from resource %s\n", path);
 
        const uint8_t* res = (const uint8_t*)resources.LoadResource('data', 
path, &size);


-- 
NetSurf Browser

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to