summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-01-21 23:14:00 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2013-01-21 23:14:00 +0000
commit2a2b48ef66916f3ac7aafb46b83e1e86a6e15cf8 (patch)
treeb6823d2558fc70c421e3d33e4457f873a094a3e4 /gtk2_ardour
parentc09dc77dfc3a5f0cd6d35b72388a9222e2f2faf3 (diff)
start passing around the (possibly-bundle-modified) localedir so that we call bindtextdomain() correctly, and thus (hopefully) find message catalogs correctly inside a bundle
git-svn-id: svn://localhost/ardour2/branches/3.0@13965 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc6
-rw-r--r--gtk2_ardour/ardour_ui.h2
-rw-r--r--gtk2_ardour/main.cc18
3 files changed, 21 insertions, 5 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 4426605e7c..7a3ecdb2a4 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -131,7 +131,7 @@ sigc::signal<void> ARDOUR_UI::RapidScreenUpdate;
sigc::signal<void> ARDOUR_UI::SuperRapidScreenUpdate;
sigc::signal<void, framepos_t, bool, framepos_t> ARDOUR_UI::Clock;
-ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
+ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
: Gtkmm2ext::UI (PROGRAM_NAME, argcp, argvp)
@@ -167,7 +167,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
, _feedback_exists (false)
{
- Gtkmm2ext::init();
+ Gtkmm2ext::init(localedir);
about = 0;
splash = 0;
@@ -266,7 +266,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
/* lets get this party started */
try {
- if (ARDOUR::init (ARDOUR_COMMAND_LINE::use_vst, ARDOUR_COMMAND_LINE::try_hw_optimization)) {
+ if (ARDOUR::init (ARDOUR_COMMAND_LINE::use_vst, ARDOUR_COMMAND_LINE::try_hw_optimization, localedir)) {
throw failed_constructor ();
}
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index de29082e79..1ab32113b7 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -116,7 +116,7 @@ namespace ARDOUR {
class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
{
public:
- ARDOUR_UI (int *argcp, char **argvp[]);
+ ARDOUR_UI (int *argcp, char **argvp[], const char* localedir);
~ARDOUR_UI();
bool run_startup (bool should_be_new, std::string load_template);
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index cebef59f26..035434216c 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -148,6 +148,14 @@ 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());
+
export_search_path (bundle_dir, "ARDOUR_DLL_PATH", "/lib");
/* inside an OS X .app bundle, there is no difference
@@ -224,6 +232,14 @@ 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 = strdup (Glib::build_filename (lpath).c_str());
+
/* note that this function is POSIX/Linux specific, so using / as
a dir separator in this context is just fine.
*/
@@ -446,7 +462,7 @@ int main (int argc, char *argv[])
}
try {
- ui = new ARDOUR_UI (&argc, &argv);
+ ui = new ARDOUR_UI (&argc, &argv, localedir);
} catch (failed_constructor& err) {
error << _("could not create ARDOUR GUI") << endmsg;
exit (1);