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 *default_filename;
|
||||||
extern const char *existing_filename;
|
extern const char *existing_filename;
|
||||||
extern const char *subsurface_default_filename(void);
|
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_init(gint *, gchar ***);
|
||||||
extern void subsurface_command_line_exit(gint *, gchar ***);
|
extern void subsurface_command_line_exit(gint *, gchar ***);
|
||||||
#define AIR_PERMILLE 209
|
#define AIR_PERMILLE 209
|
||||||
|
|
8
linux.c
8
linux.c
|
@ -84,9 +84,15 @@ const char *subsurface_default_filename()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *subsurface_gettext_domainpath()
|
const char *subsurface_gettext_domainpath(char *argv0)
|
||||||
{
|
{
|
||||||
|
if (argv0[0] == '.') {
|
||||||
|
/* we're starting a local copy */
|
||||||
return "./share/locale";
|
return "./share/locale";
|
||||||
|
} else {
|
||||||
|
/* subsurface is installed, so system dir should be fine */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void subsurface_ui_setup(GtkSettings *settings, GtkWidget *menubar,
|
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];
|
static char buffer[256];
|
||||||
const char *resource_path = quartz_application_get_resource_path();
|
const char *resource_path = quartz_application_get_resource_path();
|
||||||
if (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
|
/* set up l18n - the search directory needs to change
|
||||||
* so that it uses the correct system directory when
|
* so that it uses the correct system directory when
|
||||||
* subsurface isn't run from the local directory */
|
* subsurface isn't run from the local directory */
|
||||||
path = subsurface_gettext_domainpath();
|
path = subsurface_gettext_domainpath(argv[0]);
|
||||||
setlocale( LC_ALL, "" );
|
setlocale( LC_ALL, "" );
|
||||||
bindtextdomain("subsurface", path);
|
bindtextdomain("subsurface", path);
|
||||||
bind_textdomain_codeset("subsurface", "utf-8");
|
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];
|
char buffer[80];
|
||||||
snprintf(buffer, sizeof(buffer), "LANGUAGE=%s.UTF-8", g_win32_getlocale());
|
snprintf(buffer, sizeof(buffer), "LANGUAGE=%s.UTF-8", g_win32_getlocale());
|
||||||
putenv(buffer);
|
putenv(buffer);
|
||||||
|
/* always use translation directory relative to install location, regardless of argv0 */
|
||||||
return "./share/locale";
|
return "./share/locale";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue