From e11a40a28f354d88f84316c55cdd269e838f0ada Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Wed, 4 Jan 2017 09:37:50 +0100 Subject: [PATCH] Add convenience functions for i18n_get_string + unit tests --- src/i18n.cpp | 24 ++++++++++++++++++++++++ src/i18n.h | 3 +++ test/test_i18n.cpp | 18 ++++++++++++++++++ 3 files changed, 45 insertions(+), 0 deletions(-) diff --git a/src/i18n.cpp b/src/i18n.cpp index f7dfa43..91a9156 100644 --- a/src/i18n.cpp +++ b/src/i18n.cpp @@ -188,6 +188,30 @@ string i18n_get_string(const std::string &source, const vector &data) return i18n_get_string (source.c_str(), data); } +string i18n_get_string (const string &source, const string &arg0) +{ + vector data; + data.push_back(arg0); + return i18n_get_string (source.c_str(), data); +} + +string i18n_get_string (const string &source, const string &arg0, const string &arg1) +{ + vector data; + data.push_back(arg0); + data.push_back(arg1); + return i18n_get_string (source.c_str(), data); +} + +string i18n_get_string (const string &source, const string &arg0, const string &arg1, const string &arg2) +{ + vector data; + data.push_back(arg0); + data.push_back(arg1); + data.push_back(arg2); + return i18n_get_string (source.c_str(), data); +} + // convert locale to language (de_DE -> de) string i18n_locale2language(const string &locale) { diff --git a/src/i18n.h b/src/i18n.h index d23f07b..2ed1ea8 100644 --- a/src/i18n.h +++ b/src/i18n.h @@ -42,6 +42,9 @@ std::string i18n_get_default_language(void); std::string i18n_get_string (const char *source, const std::vector &data); std::string i18n_get_string (const std::string &source, const std::vector &data); +std::string i18n_get_string (const std::string &source, const std::string &arg0); +std::string i18n_get_string (const std::string &source, const std::string &arg0, const std::string &arg1); +std::string i18n_get_string (const std::string &source, const std::string &arg0, const std::string &arg1, const std::string &arg2); std::string i18n_locale2language(const std::string &locale); diff --git a/test/test_i18n.cpp b/test/test_i18n.cpp index c43ea7d..6ce50e2 100644 --- a/test/test_i18n.cpp +++ b/test/test_i18n.cpp @@ -129,4 +129,22 @@ BOOST_AUTO_TEST_CASE(PluralStringWithParamter2) BOOST_CHECK_EQUAL("500 new messages", i18n_get_string(i18n_plural("$0 new message", "$0 new messages", 500), data)); } +BOOST_AUTO_TEST_CASE(Convenience0) +{ + string result = i18n_get_string("$0!", "Energize"); + BOOST_CHECK_EQUAL("Energize!", result); +} + +BOOST_AUTO_TEST_CASE(Convenience1) +{ + string result = i18n_get_string("Make $0 $1!", "it", "so"); + BOOST_CHECK_EQUAL("Make it so!", result); +} + +BOOST_AUTO_TEST_CASE(Convenience2) +{ + string result = i18n_get_string("$0, $1, $2!", "Tea", "Earl Grey", "hot"); + BOOST_CHECK_EQUAL("Tea, Earl Grey, hot!", result); +} + BOOST_AUTO_TEST_SUITE_END() -- 1.7.1