mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Find translation files on Linux after Subsurface was installed
So far we only looked in the a local subdirectory, but once Subsurface has been installed, we don't need to change the search path for translation files anymore. Fixes #2 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c78bf18998
commit
834825f406
5 changed files with 17 additions and 6 deletions
2
dive.h
2
dive.h
|
@ -440,7 +440,7 @@ extern const char *star_strings[];
|
|||
extern const char *default_filename;
|
||||
extern const char *existing_filename;
|
||||
extern const char *subsurface_default_filename(void);
|
||||
extern const char *subsurface_gettext_domainpath(void);
|
||||
extern const char *subsurface_gettext_domainpath(char *);
|
||||
extern void subsurface_command_line_init(gint *, gchar ***);
|
||||
extern void subsurface_command_line_exit(gint *, gchar ***);
|
||||
#define AIR_PERMILLE 209
|
||||
|
|
10
linux.c
10
linux.c
|
@ -84,9 +84,15 @@ const char *subsurface_default_filename()
|
|||
}
|
||||
}
|
||||
|
||||
const char *subsurface_gettext_domainpath()
|
||||
const char *subsurface_gettext_domainpath(char *argv0)
|
||||
{
|
||||
return "./share/locale";
|
||||
if (argv0[0] == '.') {
|
||||
/* we're starting a local copy */
|
||||
return "./share/locale";
|
||||
} else {
|
||||
/* subsurface is installed, so system dir should be fine */
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void subsurface_ui_setup(GtkSettings *settings, GtkWidget *menubar,
|
||||
|
|
4
macos.c
4
macos.c
|
@ -104,8 +104,10 @@ const char *subsurface_default_filename()
|
|||
}
|
||||
}
|
||||
|
||||
const char *subsurface_gettext_domainpath()
|
||||
const char *subsurface_gettext_domainpath(char *argv0)
|
||||
{
|
||||
/* on a Mac we ignore the argv0 argument and instead use the resource_path
|
||||
* to figure out where to find the translation files */
|
||||
static char buffer[256];
|
||||
const char *resource_path = quartz_application_get_resource_path();
|
||||
if (resource_path) {
|
||||
|
|
2
main.c
2
main.c
|
@ -230,7 +230,7 @@ int main(int argc, char **argv)
|
|||
/* set up l18n - the search directory needs to change
|
||||
* so that it uses the correct system directory when
|
||||
* subsurface isn't run from the local directory */
|
||||
path = subsurface_gettext_domainpath();
|
||||
path = subsurface_gettext_domainpath(argv[0]);
|
||||
setlocale( LC_ALL, "" );
|
||||
bindtextdomain("subsurface", path);
|
||||
bind_textdomain_codeset("subsurface", "utf-8");
|
||||
|
|
|
@ -151,11 +151,14 @@ const char *subsurface_default_filename()
|
|||
}
|
||||
}
|
||||
|
||||
const char *subsurface_gettext_domainpath()
|
||||
const char *subsurface_gettext_domainpath(char *argv0)
|
||||
{
|
||||
/* first hackishly make sure that the LANGUAGE information is correctly set up
|
||||
* in the environment */
|
||||
char buffer[80];
|
||||
snprintf(buffer, sizeof(buffer), "LANGUAGE=%s.UTF-8", g_win32_getlocale());
|
||||
putenv(buffer);
|
||||
/* always use translation directory relative to install location, regardless of argv0 */
|
||||
return "./share/locale";
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue