diff options
-rw-r--r-- | gtk2_ardour/main.cc | 56 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/utils.cc | 3 | ||||
-rw-r--r-- | tools/linux_packaging/ardour.sh.in | 9 |
4 files changed, 36 insertions, 34 deletions
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index 5a4bff0167..a8f8db5a38 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -148,14 +148,22 @@ fixup_bundle_environment (int, char* []) bundle_dir = Glib::path_get_dirname (exec_dir); - /* force localedir into the bundle */ - - vector<string> lpath; - lpath.push_back (bundle_dir); - lpath.push_back ("share"); - lpath.push_back ("locale"); - localedir = strdup (Glib::build_filename (lpath).c_str()); - +#ifdef ENABLE_NLS + if (ARDOUR::translations_are_disabled ()) { + localedir = "/this/cannot/exist"; + export_search_path (bundle_dir, "GTK_LOCALEDIR", "/Resources/locale"); + } else { + /* force localedir into the bundle */ + + 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"); /* inside an OS X .app bundle, there is no difference @@ -177,10 +185,6 @@ fixup_bundle_environment (int, char* []) 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 to put this into the PROGRAM_NAME.app bundle and leave it there, 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 userconfigdir = user_config_directory(); - /* force localedir into the bundle */ - - 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); +#ifdef ENABLE_NLS + if (ARDOUR::translations_are_disabled ()) { + localedir = "/this/cannot/exist"; + export_search_path (dir_path, "GTK_LOCALEDIR", "/this/cannot/exist"); + } else { + /* force localedir into the bundle */ + 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 a dir separator in this context is just fine. @@ -259,10 +270,6 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) 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 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(); } +#ifdef ENABLE_NLS gtk_set_locale (); +#endif #ifdef WINDOWS_VST_SUPPORT /* 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. */ (void) bind_textdomain_codeset (PACKAGE,"UTF-8"); - (void) textdomain (PACKAGE); #endif pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0); diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index e750792c5f..c23cb614fe 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -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 Gio::init (); +#ifdef ENABLE_NLS (void) bindtextdomain(PACKAGE, localedir); +#endif PBD::ID::init (); SessionEvent::init_event_pool (); diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index 14f3ba2732..4bc9113875 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -39,8 +39,9 @@ using namespace std; void Gtkmm2ext::init (const char* localedir) { - // Necessary for gettext +#ifdef ENABLE_NLS (void) bindtextdomain(PACKAGE, localedir); +#endif } void diff --git a/tools/linux_packaging/ardour.sh.in b/tools/linux_packaging/ardour.sh.in index 3c8e77fb7f..6545e80b40 100644 --- a/tools/linux_packaging/ardour.sh.in +++ b/tools/linux_packaging/ardour.sh.in @@ -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@/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 export ARDOUR_INSIDE_GDB=1 exec gdb $INSTALL_DIR/bin/ardour-3.0 |