mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
more i18n fixes, this time removing a hack that broke i18n in bundles, and also only initializing NLS stuff if ENABLE_NLS is in effect. note that if translations are disabled by the user, we set the localedir used to look for message catalogs to a dir that is assumed to not exist (/this/cannot/exist) which should block all translation from happening.
git-svn-id: svn://localhost/ardour2/branches/3.0@13975 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9d29fb8e0a
commit
a8bf2e9402
4 changed files with 36 additions and 34 deletions
|
|
@ -148,14 +148,22 @@ fixup_bundle_environment (int, char* [])
|
||||||
|
|
||||||
bundle_dir = Glib::path_get_dirname (exec_dir);
|
bundle_dir = Glib::path_get_dirname (exec_dir);
|
||||||
|
|
||||||
/* force localedir into the bundle */
|
#ifdef ENABLE_NLS
|
||||||
|
if (ARDOUR::translations_are_disabled ()) {
|
||||||
vector<string> lpath;
|
localedir = "/this/cannot/exist";
|
||||||
lpath.push_back (bundle_dir);
|
export_search_path (bundle_dir, "GTK_LOCALEDIR", "/Resources/locale");
|
||||||
lpath.push_back ("share");
|
} else {
|
||||||
lpath.push_back ("locale");
|
/* force localedir into the bundle */
|
||||||
localedir = strdup (Glib::build_filename (lpath).c_str());
|
|
||||||
|
vector<string> lpath;
|
||||||
|
lpath.push_back (bundle_dir);
|
||||||
|
lpath.push_back ("share");
|
||||||
|
lpath.push_back ("locale");
|
||||||
|
localedir = strdup (Glib::build_filename (lpath).c_str());
|
||||||
|
export_search_path (bundle_dir, "GTK_LOCALEDIR", "/Resources/locale");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
export_search_path (bundle_dir, "ARDOUR_DLL_PATH", "/lib");
|
export_search_path (bundle_dir, "ARDOUR_DLL_PATH", "/lib");
|
||||||
|
|
||||||
/* inside an OS X .app bundle, there is no difference
|
/* inside an OS X .app bundle, there is no difference
|
||||||
|
|
@ -177,10 +185,6 @@ fixup_bundle_environment (int, char* [])
|
||||||
|
|
||||||
unsetenv ("GTK_RC_FILES");
|
unsetenv ("GTK_RC_FILES");
|
||||||
|
|
||||||
if (!ARDOUR::translations_are_disabled ()) {
|
|
||||||
export_search_path (bundle_dir, "GTK_LOCALEDIR", "/Resources/locale");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* write a pango.rc file and tell pango to use it. we'd love
|
/* write a pango.rc file and tell pango to use it. we'd love
|
||||||
to put this into the PROGRAM_NAME.app bundle and leave it there,
|
to put this into the PROGRAM_NAME.app bundle and leave it there,
|
||||||
but the user may not have write permission. so ...
|
but the user may not have write permission. so ...
|
||||||
|
|
@ -232,13 +236,20 @@ fixup_bundle_environment (int /*argc*/, char* argv[])
|
||||||
std::string dir_path = Glib::path_get_dirname (Glib::path_get_dirname (argv[0]));
|
std::string dir_path = Glib::path_get_dirname (Glib::path_get_dirname (argv[0]));
|
||||||
std::string userconfigdir = user_config_directory();
|
std::string userconfigdir = user_config_directory();
|
||||||
|
|
||||||
/* force localedir into the bundle */
|
#ifdef ENABLE_NLS
|
||||||
|
if (ARDOUR::translations_are_disabled ()) {
|
||||||
vector<string> lpath;
|
localedir = "/this/cannot/exist";
|
||||||
lpath.push_back (dir_path);
|
export_search_path (dir_path, "GTK_LOCALEDIR", "/this/cannot/exist");
|
||||||
lpath.push_back ("share");
|
} else {
|
||||||
lpath.push_back ("locale");
|
/* force localedir into the bundle */
|
||||||
localedir = realpath (Glib::build_filename (lpath).c_str(), NULL);
|
vector<string> lpath;
|
||||||
|
lpath.push_back (dir_path);
|
||||||
|
lpath.push_back ("share");
|
||||||
|
lpath.push_back ("locale");
|
||||||
|
localedir = realpath (Glib::build_filename (lpath).c_str(), NULL);
|
||||||
|
export_search_path (dir_path, "GTK_LOCALEDIR", "/share/locale");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* note that this function is POSIX/Linux specific, so using / as
|
/* note that this function is POSIX/Linux specific, so using / as
|
||||||
a dir separator in this context is just fine.
|
a dir separator in this context is just fine.
|
||||||
|
|
@ -259,10 +270,6 @@ fixup_bundle_environment (int /*argc*/, char* argv[])
|
||||||
|
|
||||||
unsetenv ("GTK_RC_FILES");
|
unsetenv ("GTK_RC_FILES");
|
||||||
|
|
||||||
if (!ARDOUR::translations_are_disabled ()) {
|
|
||||||
export_search_path (dir_path, "GTK_LOCALEDIR", "/share/locale");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tell fontconfig where to find fonts.conf. Use the system version
|
/* Tell fontconfig where to find fonts.conf. Use the system version
|
||||||
if it exists, otherwise use the stuff we included in the bundle
|
if it exists, otherwise use the stuff we included in the bundle
|
||||||
*/
|
*/
|
||||||
|
|
@ -388,7 +395,9 @@ int main (int argc, char *argv[])
|
||||||
Glib::thread_init();
|
Glib::thread_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
gtk_set_locale ();
|
gtk_set_locale ();
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WINDOWS_VST_SUPPORT
|
#ifdef WINDOWS_VST_SUPPORT
|
||||||
/* this does some magic that is needed to make GTK and Wine's own
|
/* this does some magic that is needed to make GTK and Wine's own
|
||||||
|
|
@ -406,7 +415,6 @@ int main (int argc, char *argv[])
|
||||||
we use that when handling them.
|
we use that when handling them.
|
||||||
*/
|
*/
|
||||||
(void) bind_textdomain_codeset (PACKAGE,"UTF-8");
|
(void) bind_textdomain_codeset (PACKAGE,"UTF-8");
|
||||||
(void) textdomain (PACKAGE);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0);
|
pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0);
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,9 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir
|
||||||
// this really should be in PBD::init..if there was one
|
// this really should be in PBD::init..if there was one
|
||||||
Gio::init ();
|
Gio::init ();
|
||||||
|
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
(void) bindtextdomain(PACKAGE, localedir);
|
(void) bindtextdomain(PACKAGE, localedir);
|
||||||
|
#endif
|
||||||
|
|
||||||
PBD::ID::init ();
|
PBD::ID::init ();
|
||||||
SessionEvent::init_event_pool ();
|
SessionEvent::init_event_pool ();
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,9 @@ using namespace std;
|
||||||
void
|
void
|
||||||
Gtkmm2ext::init (const char* localedir)
|
Gtkmm2ext::init (const char* localedir)
|
||||||
{
|
{
|
||||||
// Necessary for gettext
|
#ifdef ENABLE_NLS
|
||||||
(void) bindtextdomain(PACKAGE, localedir);
|
(void) bindtextdomain(PACKAGE, localedir);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -51,15 +51,6 @@ export LD_LIBRARY_PATH=$INSTALL_DIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
sed "s?@ROOTDIR@/modules?$LIB_DIR/modules?" < $ETC_DIR/pango.modules.in > $USER_ARDOUR_DIR/pango.modules
|
sed "s?@ROOTDIR@/modules?$LIB_DIR/modules?" < $ETC_DIR/pango.modules.in > $USER_ARDOUR_DIR/pango.modules
|
||||||
sed "s?@ROOTDIR@/loaders?$LIB_DIR/loaders?" < $ETC_DIR/gdk-pixbuf.loaders.in > $USER_ARDOUR_DIR/gdk-pixbuf.loaders
|
sed "s?@ROOTDIR@/loaders?$LIB_DIR/loaders?" < $ETC_DIR/gdk-pixbuf.loaders.in > $USER_ARDOUR_DIR/gdk-pixbuf.loaders
|
||||||
|
|
||||||
|
|
||||||
# Hack to fix i18n issue where the grid button gets translated even when translations are disabled.
|
|
||||||
|
|
||||||
if [ ! -e $USER_ARDOUR_DIR/.love_is_the_language_of_audio ]; then
|
|
||||||
# Translations are disabled. Force english
|
|
||||||
export LANG=C
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ "T" = "$DEBUG" ]; then
|
if [ "T" = "$DEBUG" ]; then
|
||||||
export ARDOUR_INSIDE_GDB=1
|
export ARDOUR_INSIDE_GDB=1
|
||||||
exec gdb $INSTALL_DIR/bin/ardour-3.0
|
exec gdb $INSTALL_DIR/bin/ardour-3.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue