diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-03-01 20:13:03 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-03-01 20:13:03 +0000 |
| commit | dd7cf1ef6e860243b80f4c47a99393244f63a3d5 (patch) | |
| tree | a158d4f59dbb9f1806c1aa00104c123edcfbccce /src/tools | |
| parent | f4c18d89c2fd68a0dbf03b4c72e25cc8214a3a5b (diff) | |
| parent | 7b3f53a88e86154587269826064aa4c0a067f253 (diff) | |
Merge master.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dvdomatic.cc | 64 | ||||
| -rw-r--r-- | src/tools/wscript | 10 |
2 files changed, 56 insertions, 18 deletions
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index 4f380b5ad..f5d9bdf18 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -60,6 +60,7 @@ static shared_ptr<Film> film; static std::string log_level; static std::string film_to_load; static wxMenu* jobs_menu = 0; +static wxLocale* locale = 0; static void set_menu_sensitivity (); @@ -68,9 +69,12 @@ class FilmChangedDialog public: FilmChangedDialog () { - stringstream s; - s << "Save changes to film \"" << film->name() << "\" before closing?"; - _dialog = new wxMessageDialog (0, std_to_wx (s.str()), _("Film changed"), wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION); + _dialog = new wxMessageDialog ( + 0, + std_to_wx (String::compose ("Save changes to film \"%1\" before closing?", film->name())), + _("Film changed"), + wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION + ); } ~FilmChangedDialog () @@ -117,9 +121,9 @@ enum Sensitivity { map<wxMenuItem*, Sensitivity> menu_items; void -add_item (wxMenu* menu, std::string text, int id, Sensitivity sens) +add_item (wxMenu* menu, wxString text, int id, Sensitivity sens) { - wxMenuItem* item = menu->Append (id, std_to_wx (text)); + wxMenuItem* item = menu->Append (id, text); menu_items.insert (make_pair (item, sens)); } @@ -153,27 +157,27 @@ void setup_menu (wxMenuBar* m) { wxMenu* file = new wxMenu; - add_item (file, "New...", ID_file_new, ALWAYS); - add_item (file, "&Open...", ID_file_open, ALWAYS); + add_item (file, _("New..."), ID_file_new, ALWAYS); + add_item (file, _("&Open..."), ID_file_open, ALWAYS); file->AppendSeparator (); - add_item (file, "&Save", ID_file_save, NEEDS_FILM); + add_item (file, _("&Save"), ID_file_save, NEEDS_FILM); file->AppendSeparator (); - add_item (file, "&Properties...", ID_file_properties, NEEDS_FILM); + add_item (file, _("&Properties..."), ID_file_properties, NEEDS_FILM); file->AppendSeparator (); - add_item (file, "&Quit", ID_file_quit, ALWAYS); + add_item (file, _("&Quit"), ID_file_quit, ALWAYS); wxMenu* edit = new wxMenu; - add_item (edit, "&Preferences...", ID_edit_preferences, ALWAYS); + add_item (edit, _("&Preferences..."), ID_edit_preferences, ALWAYS); jobs_menu = new wxMenu; - add_item (jobs_menu, "&Make DCP", ID_jobs_make_dcp, NEEDS_FILM); - add_item (jobs_menu, "&Send DCP to TMS", ID_jobs_send_dcp_to_tms, NEEDS_FILM); - add_item (jobs_menu, "S&how DCP", ID_jobs_show_dcp, NEEDS_FILM); + add_item (jobs_menu, _("&Make DCP"), ID_jobs_make_dcp, NEEDS_FILM); + add_item (jobs_menu, _("&Send DCP to TMS"), ID_jobs_send_dcp_to_tms, NEEDS_FILM); + add_item (jobs_menu, _("S&how DCP"), ID_jobs_show_dcp, NEEDS_FILM); jobs_menu->AppendSeparator (); - add_item (jobs_menu, "&Analyse audio", ID_jobs_analyse_audio, NEEDS_FILM); + add_item (jobs_menu, _("&Analyse audio"), ID_jobs_analyse_audio, NEEDS_FILM); wxMenu* help = new wxMenu; - add_item (help, "About", ID_help_about, ALWAYS); + add_item (help, _("About"), ID_help_about, ALWAYS); m->Append (file, _("&File")); m->Append (edit, _("&Edit")); @@ -280,7 +284,7 @@ private: void file_changed (string f) { stringstream s; - s << "DVD-o-matic"; + s << _("DVD-o-matic"); if (!f.empty ()) { s << " - " << f; } @@ -430,6 +434,29 @@ static const wxCmdLineEntryDesc command_line_description[] = { }; #endif +void +setup_i18n () +{ + int language = wxLANGUAGE_DEFAULT; + + if (wxLocale::IsAvailable (language)) { + locale = new wxLocale (language, wxLOCALE_LOAD_DEFAULT); + +#ifdef __WXGTK__ + locale->AddCatalogLookupPathPrefix (wxT (LOCALE_PREFIX "/locale")); +#endif + + locale->AddCatalog (wxT ("libdvdomatic-wx")); + locale->AddCatalog (wxT ("dvdomatic")); + + if (!locale->IsOk()) { + delete locale; + locale = new wxLocale (wxLANGUAGE_ENGLISH); + language = wxLANGUAGE_ENGLISH; + } + } +} + class App : public wxApp { bool OnInit () @@ -443,6 +470,7 @@ class App : public wxApp #endif wxInitAllImageHandlers (); + setup_i18n (); dvdomatic_setup (); @@ -451,7 +479,7 @@ class App : public wxApp film.reset (new Film (film_to_load)); film->log()->set_level (log_level); } catch (exception& e) { - error_dialog (0, std_to_wx (String::compose ("Could not load film %1 (%2)", film_to_load, e.what()))); + error_dialog (0, std_to_wx (String::compose (wx_to_std (_("Could not load film %1 (%2)")), film_to_load, e.what()))); } } diff --git a/src/tools/wscript b/src/tools/wscript index c843c61d8..64d5efe56 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -1,3 +1,8 @@ +import os +import glob +from waflib import Logs +import i18n + def build(bld): for t in ['makedcp', 'servomatic_cli', 'servomatictest']: obj = bld(features = 'cxx cxxprogram') @@ -17,3 +22,8 @@ def build(bld): if bld.env.TARGET_WINDOWS: obj.source += ' ../../windows/dvdomatic.rc' obj.target = t + + i18n.po_to_mo(os.path.join('src', 'tools'), 'dvdomatic', bld) + +def pot(bld): + i18n.pot(os.path.join('src', 'tools'), 'dvdomatic.cc', 'dvdomatic') |
