Add convenience functions for i18n_get_string + unit tests
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 4 Jan 2017 08:37:50 +0000 (09:37 +0100)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Mon, 9 Jan 2017 13:51:34 +0000 (14:51 +0100)
src/i18n.cpp
src/i18n.h
test/test_i18n.cpp

index f7dfa43..91a9156 100644 (file)
@@ -188,6 +188,30 @@ string i18n_get_string(const std::string &source, const vector<string> &data)
     return i18n_get_string (source.c_str(), data);
 }
 
+string i18n_get_string (const string &source, const string &arg0)
+{
+    vector<string> 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<string> 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<string> 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)
 {
index d23f07b..2ed1ea8 100644 (file)
@@ -42,6 +42,9 @@ std::string i18n_get_default_language(void);
 
 std::string i18n_get_string (const char *source, const std::vector<std::string> &data);
 std::string i18n_get_string (const std::string &source, const std::vector<std::string> &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);
 
index c43ea7d..6ce50e2 100644 (file)
@@ -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()