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