diff options
author | Michael Dankov <tryagain@navit-project.org> | 2015-11-15 03:30:59 +0300 |
---|---|---|
committer | Michael Dankov <tryagain@navit-project.org> | 2015-11-15 03:30:59 +0300 |
commit | 142a4dd15b8594359c982e06ace69d5ad0309c0c (patch) | |
tree | 3ada3760c1e4a476a5e9bee7c3f6f9c8a5fb7dfa /navit | |
parent | 316eefa41213edf0e62fa25658674047fbadae95 (diff) | |
download | navit-142a4dd15b8594359c982e06ace69d5ad0309c0c.tar.gz |
Fix navigation messages translations in Android LollipopR6372
Do not set locale to "C" for LC_NUMERIC, and do not call setlocale at all on
Android, because:
- Since Lollipop, Android attempts to do something in setlocale, but its
implementation is far from complete and makes no sense for us at this point.
- Older Android versions used to completely ignore setlocale() calls.
Diffstat (limited to 'navit')
-rw-r--r-- | navit/gui/internal/gui_internal_command.c | 3 | ||||
-rw-r--r-- | navit/main.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/navit/gui/internal/gui_internal_command.c b/navit/gui/internal/gui_internal_command.c index 77d343f09..98a736fb8 100644 --- a/navit/gui/internal/gui_internal_command.c +++ b/navit/gui/internal/gui_internal_command.c @@ -73,8 +73,7 @@ coordinates_geo(const struct coord_geo *gc, char sep) lng_min=fmod(g.lng*60-lng_sec/60.0+0.5,60); lng_deg=g.lng-lng_min/60.0-lng_sec/3600.0+0.5;; - /* Using degree sign directly in g_strdup_printf format string breaks things on Android Lollipop, see trac #1331. */ - return g_strdup_printf("%d%s%d'%d\" %c%c%d%s%d'%d\" %c",lat_deg,"°",lat_min,lat_sec,latc,sep,lng_deg,"°",lng_min,lng_sec,lngc); + return g_strdup_printf("%d°%d'%d\" %c%c%d°%d'%d\" %c",lat_deg,lat_min,lat_sec,latc,sep,lng_deg,lng_min,lng_sec,lngc); } /** diff --git a/navit/main.c b/navit/main.c index 39cedc690..986bcb13b 100644 --- a/navit/main.c +++ b/navit/main.c @@ -339,9 +339,11 @@ main_init(const char *program) #ifdef HAVE_API_WIN32_BASE win_set_nls(); #endif +#ifndef HAVE_API_ANDROID setenv("LC_NUMERIC","C",1); setlocale(LC_ALL,""); setlocale(LC_NUMERIC,"C"); +#endif #if !defined _WIN32 && !defined _WIN32_WCE if (file_exists("navit.c") || file_exists("navit.o") || file_exists("navit.lo") || file_exists("version.h")) { char buffer[PATH_MAX]; |