diff --git a/gnucash/gnucash-cli.cpp b/gnucash/gnucash-cli.cpp index a679b5af64..8ab5b54f6b 100644 --- a/gnucash/gnucash-cli.cpp +++ b/gnucash/gnucash-cli.cpp @@ -129,14 +129,14 @@ Gnucash::GnucashCli::start ([[maybe_unused]] int argc, [[maybe_unused]] char **a { if (*m_quotes_cmd != "get") { - std::cerr << bl::format (bl::translate("Unknown quotes command '{1}'")) % *m_quotes_cmd << "\n\n" + std::cerr << bl::format (std::string{_("Unknown quotes command '{1}'")}) % *m_quotes_cmd << "\n\n" << *m_opt_desc_display.get(); return 1; } if (!m_file_to_load || m_file_to_load->empty()) { - std::cerr << bl::translate("Missing data file parameter") << "\n\n" + std::cerr << _("Missing data file parameter") << "\n\n" << *m_opt_desc_display.get(); return 1; } @@ -150,7 +150,7 @@ Gnucash::GnucashCli::start ([[maybe_unused]] int argc, [[maybe_unused]] char **a { if (!m_file_to_load || m_file_to_load->empty()) { - std::cerr << bl::translate("Missing data file parameter") << "\n\n" + std::cerr << _("Missing data file parameter") << "\n\n" << *m_opt_desc_display.get(); return 1; } @@ -174,7 +174,7 @@ Gnucash::GnucashCli::start ([[maybe_unused]] int argc, [[maybe_unused]] char **a else if (*m_report_cmd == "show") if (!m_report_name || m_report_name->empty()) { - std::cerr << bl::translate("Missing --name parameter") << "\n\n" + std::cerr << _("Missing --name parameter") << "\n\n" << *m_opt_desc_display.get(); return 1; } @@ -182,13 +182,13 @@ Gnucash::GnucashCli::start ([[maybe_unused]] int argc, [[maybe_unused]] char **a return Gnucash::report_show (m_file_to_load, m_report_name); else { - std::cerr << bl::format (bl::translate("Unknown report command '{1}'")) % *m_report_cmd << "\n\n" + std::cerr << bl::format (std::string{_("Unknown report command '{1}'")}) % *m_report_cmd << "\n\n" << *m_opt_desc_display.get(); return 1; } } - std::cerr << bl::translate("Missing command or option") << "\n\n" + std::cerr << _("Missing command or option") << "\n\n" << *m_opt_desc_display.get(); return 1; diff --git a/gnucash/gnucash-commands.cpp b/gnucash/gnucash-commands.cpp index 3a5edb8f36..0befa04c23 100644 --- a/gnucash/gnucash-commands.cpp +++ b/gnucash/gnucash-commands.cpp @@ -89,7 +89,7 @@ scm_add_quotes(void *data, [[maybe_unused]] int argc, [[maybe_unused]] char **ar if (!gnc_quote_source_fq_installed()) { - std::cerr << bl::translate ("No quotes retrieved. Finance::Quote isn't " + std::cerr << _("No quotes retrieved. Finance::Quote isn't " "installed properly.") << "\n"; scm_cleanup_and_exit_with_failure (nullptr); } diff --git a/gnucash/gnucash-core-app.cpp b/gnucash/gnucash-core-app.cpp index eb47165532..7e9962a589 100644 --- a/gnucash/gnucash-core-app.cpp +++ b/gnucash/gnucash-core-app.cpp @@ -78,12 +78,12 @@ gnc_print_unstable_message(void) { if (!is_development_version) return; - std::cerr << bl::translate ("This is a development version. It may or may not work.") << "\n" - << bl::translate ("Report bugs and other problems to gnucash-devel@gnucash.org") << "\n" + std::cerr << _("This is a development version. It may or may not work.") << "\n" + << _("Report bugs and other problems to gnucash-devel@gnucash.org") << "\n" /* Translators: {1} will be replaced with an URL*/ - << bl::format (bl::translate ("You can also lookup and file bug reports at {1}")) % PACKAGE_BUGREPORT << "\n" + << bl::format (std::string{_("You can also lookup and file bug reports at {1}")}) % PACKAGE_BUGREPORT << "\n" /* Translators: {1} will be replaced with an URL*/ - << bl::format (bl::translate ("To find the last stable version, please refer to {1}")) % PACKAGE_URL << "\n"; + << bl::format (std::string{_("To find the last stable version, please refer to {1}")}) % PACKAGE_URL << "\n"; } static void @@ -100,8 +100,8 @@ Gnucash::gnc_load_scm_config (void) if (!is_system_config_loaded) { /* Translators: Guile is the programming language of the reports */ - auto msg = bl::translate ("Loading system wide Guile extensions…").str (gnc_get_boost_locale()); - update_message (msg.c_str()); + auto msg = _("Loading system wide Guile extensions…"); + update_message (msg); auto system_config_dir = gnc_path_get_pkgsysconfdir (); auto system_config = g_build_filename (system_config_dir, "config", nullptr); is_system_config_loaded = gfec_try_load (system_config); @@ -112,8 +112,8 @@ Gnucash::gnc_load_scm_config (void) static auto is_user_config_loaded = false; if (!is_user_config_loaded) { - auto msg = bl::translate ("Loading user specific Guile extensions…").str (gnc_get_boost_locale()); - update_message (msg.c_str()); + auto msg = _("Loading user specific Guile extensions…"); + update_message (msg); auto config_filename = g_build_filename (gnc_userconfig_dir (), "config-user.scm", nullptr); is_user_config_loaded = gfec_try_load (config_filename); g_free (config_filename); @@ -210,6 +210,7 @@ Gnucash::CoreApp::CoreApp () gnc_init_boost_locale (localedir); std::cerr.imbue (gnc_get_boost_locale()); + std::cout.imbue (gnc_get_boost_locale()); g_free(localedir); } @@ -221,9 +222,9 @@ Gnucash::CoreApp::CoreApp (const char* app_name) m_app_name = std::string(app_name); // Now that gettext is properly initialized, set our help tagline. - m_tagline = bl::translate("- GnuCash, accounting for personal and small business finance").str(gnc_get_boost_locale()); + m_tagline = _("- GnuCash, accounting for personal and small business finance"); m_opt_desc_display = std::make_unique - ((bl::format (bl::gettext ("{1} [options] [datafile]", gnc_get_boost_locale())) % m_app_name).str() + std::string(" ") + m_tagline); + ((bl::format (std::string{_("{1} [options] [datafile]")}) % m_app_name).str() + std::string(" ") + m_tagline); add_common_program_options(); } @@ -267,15 +268,15 @@ Gnucash::CoreApp::parse_command_line (int argc, char **argv) if (m_show_version) { - bl::format rel_fmt (bl::translate ("GnuCash {1}")); - bl::format dev_fmt (bl::translate ("GnuCash {1} development version")); + bl::format rel_fmt (std::string{_("GnuCash {1}")}); + bl::format dev_fmt (std::string{_("GnuCash {1} development version")}); if (is_development_version) std::cout << dev_fmt % gnc_version () << "\n"; else std::cout << rel_fmt % gnc_version () << "\n"; - std::cout << bl::translate ("Build ID") << ": " << gnc_build_id () << "\n"; + std::cout << _("Build ID") << ": " << gnc_build_id () << "\n"; exit(0); } diff --git a/gnucash/gnucash.cpp b/gnucash/gnucash.cpp index dd7257116f..d32c21018a 100644 --- a/gnucash/gnucash.cpp +++ b/gnucash/gnucash.cpp @@ -170,8 +170,8 @@ scm_run_gnucash (void *data, [[maybe_unused]] int argc, [[maybe_unused]] char ** gnc_hook_add_dangler(HOOK_UI_SHUTDOWN, (GFunc)gnc_file_quit, NULL, NULL); /* Install Price Quote Sources */ - auto msg = bl::translate ("Checking Finance::Quote...").str(gnc_get_boost_locale()); - gnc_update_splash_screen (msg.c_str(), GNC_SPLASH_PERCENTAGE_UNKNOWN); + auto msg = _("Checking Finance::Quote..."); + gnc_update_splash_screen (msg, GNC_SPLASH_PERCENTAGE_UNKNOWN); scm_c_use_module("gnucash price-quotes"); scm_c_eval_string("(gnc:price-quotes-install-sources)"); @@ -179,8 +179,8 @@ scm_run_gnucash (void *data, [[maybe_unused]] int argc, [[maybe_unused]] char ** if (!user_file_spec->nofile && (fn = get_file_to_load (user_file_spec->file_to_load)) && *fn ) { - auto msg = bl::translate ("Loading data...").str(gnc_get_boost_locale()); - gnc_update_splash_screen (msg.c_str(), GNC_SPLASH_PERCENTAGE_UNKNOWN); + auto msg = _("Loading data..."); + gnc_update_splash_screen (msg, GNC_SPLASH_PERCENTAGE_UNKNOWN); gnc_file_open_file(gnc_get_splash_screen(), fn, /*open_readonly*/ FALSE); g_free(fn); } @@ -309,11 +309,11 @@ Gnucash::Gnucash::start ([[maybe_unused]] int argc, [[maybe_unused]] char **argv // Will be removed in 5.0 if (m_add_quotes) { - std::cerr << bl::translate ("The '--add-price-quotes' option to gnucash has been deprecated and will be removed in GnuCash 5.0. " - "Please use 'gnucash-cli --quotes get ' instead.") << "\n"; + std::cerr << _("The '--add-price-quotes' option to gnucash has been deprecated and will be removed in GnuCash 5.0. " + "Please use 'gnucash-cli --quotes get ' instead.") << "\n"; if (!m_file_to_load || m_file_to_load->empty()) { - std::cerr << bl::translate("Missing data file parameter") << "\n\n" + std::cerr << _("Missing data file parameter") << "\n\n" << *m_opt_desc_display.get(); return 1; } @@ -345,10 +345,10 @@ main(int argc, char ** argv) /* We need to initialize gtk before looking up all modules */ if(!gtk_init_check (&argc, &argv)) { - std::cerr << bl::format (bl::translate ("Run '{1} --help' to see a full list of available command line options.")) % *argv[0] + std::cerr << bl::format (std::string{("Run '{1} --help' to see a full list of available command line options.")}) % *argv[0] << "\n" // Translators: Do not translate $DISPLAY! It is an environment variable for X11 - << bl::translate ("Error: could not initialize graphical user interface and option add-price-quotes was not set.\n" + << _("Error: could not initialize graphical user interface and option add-price-quotes was not set.\n" "Perhaps you need to set the $DISPLAY environment variable?"); return 1; } diff --git a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp index 8c499d93a2..983ee7f51b 100644 --- a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp +++ b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp @@ -2122,7 +2122,7 @@ CsvImpTransAssist::assist_summary_page_prepare () try { /* Translators: {1} will be replaced with a filename */ - text += (bl::format (bl::translate ("The transactions were imported from file '{1}'.")) % m_file_name).str(gnc_get_boost_locale()); + text += (bl::format (std::string{_("The transactions were imported from file '{1}'.")}) % m_file_name).str(); text += ""; } catch (const bl::conv::conversion_error& err) diff --git a/gnucash/import-export/csv-imp/gnc-imp-props-price.cpp b/gnucash/import-export/csv-imp/gnc-imp-props-price.cpp index b92e2a7231..cbeedfce94 100644 --- a/gnucash/import-export/csv-imp/gnc-imp-props-price.cpp +++ b/gnucash/import-export/csv-imp/gnc-imp-props-price.cpp @@ -235,16 +235,16 @@ void GncImportPrice::set (GncPricePropType prop_type, const std::string& value, } catch (const std::invalid_argument& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_price_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_price_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); } catch (const std::out_of_range& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_price_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_price_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); diff --git a/gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp b/gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp index 4b3dee706e..8196856c67 100644 --- a/gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp +++ b/gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp @@ -289,16 +289,16 @@ void GncPreTrans::set (GncTransPropType prop_type, const std::string& value) } catch (const std::invalid_argument& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); } catch (const std::out_of_range& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); @@ -508,16 +508,16 @@ void GncPreSplit::set (GncTransPropType prop_type, const std::string& value) } catch (const std::invalid_argument& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); } catch (const std::out_of_range& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); @@ -571,16 +571,16 @@ void GncPreSplit::add (GncTransPropType prop_type, const std::string& value) } catch (const std::invalid_argument& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); } catch (const std::out_of_range& e) { - auto err_str = (bl::format (bl::translate ("Column '{1}' could not be understood.\n")) % - bl::translate (gnc_csv_col_type_strs[prop_type])).str(gnc_get_boost_locale()) + + auto err_str = (bl::format (std::string{_("Column '{1}' could not be understood.\n")}) % + std::string{_(gnc_csv_col_type_strs[prop_type])}).str() + e.what(); m_errors.emplace(prop_type, err_str); throw std::invalid_argument (err_str); diff --git a/libgnucash/core-utils/gnc-filepath-utils.cpp b/libgnucash/core-utils/gnc-filepath-utils.cpp index fff18878cc..d65038a2ff 100644 --- a/libgnucash/core-utils/gnc-filepath-utils.cpp +++ b/libgnucash/core-utils/gnc-filepath-utils.cpp @@ -671,35 +671,35 @@ static std::string migrate_gnc_datahome() /* Step 3: inform the user of additional changes */ if (full_copy || !succeeded.empty() || !conf_exist_vec.empty() || !failed.empty()) - migration_msg << bl::translate ("Notice") << std::endl << std::endl; + migration_msg << _("Notice") << std::endl << std::endl; if (full_copy) { migration_msg - << bl::translate ("Your gnucash metadata has been migrated.") << std::endl << std::endl + << _("Your gnucash metadata has been migrated.") << std::endl << std::endl /* Translators: this refers to a directory name. */ - << bl::translate ("Old location:") << " " << old_dir.string() << std::endl + << _("Old location:") << " " << old_dir.string() << std::endl /* Translators: this refers to a directory name. */ - << bl::translate ("New location:") << " " << gnc_userdata_home.string() << std::endl << std::endl + << _("New location:") << " " << gnc_userdata_home.string() << std::endl << std::endl // Translators {1} will be replaced with the package name (typically Gnucash) at runtime - << bl::format (bl::translate ("If you no longer intend to run {1} 2.6.x or older on this system you can safely remove the old directory.")) + << bl::format (std::string{_("If you no longer intend to run {1} 2.6.x or older on this system you can safely remove the old directory.")}) % PACKAGE_NAME; } if (full_copy && (!succeeded.empty() || !conf_exist_vec.empty() || !failed.empty())) migration_msg << std::endl << std::endl - << bl::translate ("In addition:"); + << _("In addition:"); if (!succeeded.empty()) { migration_msg << std::endl << std::endl; if (full_copy) - migration_msg << bl::format (bl::translate ("The following file has been copied to {1} instead:", + migration_msg << bl::format (std::string{ngettext("The following file has been copied to {1} instead:", "The following files have been copied to {1} instead:", - succeeded.size())) % gnc_userconfig_home.string().c_str(); + succeeded.size())}) % gnc_userconfig_home.string().c_str(); else - migration_msg << bl::format (bl::translate ("The following file in {1} has been renamed:")) + migration_msg << bl::format (std::string{_("The following file in {1} has been renamed:")}) % gnc_userconfig_home.string().c_str(); migration_msg << std::endl; @@ -708,8 +708,8 @@ static std::string migrate_gnc_datahome() } if (!conf_exist_vec.empty()) { - migration_msg << std::endl << std::endl - << bl::translate ("The following file has become obsolete and will be ignored:", + migration_msg << "\n\n" + << ngettext("The following file has become obsolete and will be ignored:", "The following files have become obsolete and will be ignored:", conf_exist_vec.size()) << std::endl; @@ -719,9 +719,9 @@ static std::string migrate_gnc_datahome() if (!failed.empty()) { migration_msg << std::endl << std::endl - << bl::format (bl::translate ("The following file could not be moved to {1}:", + << bl::format (std::string{ngettext("The following file could not be moved to {1}:", "The following files could not be moved to {1}:", - failed.size())) % gnc_userconfig_home.string().c_str() + failed.size())}) % gnc_userconfig_home.string().c_str() << std::endl; for (auto failed_file : failed) migration_msg << "- " << failed_file << std::endl;