diff options
author | andybarcia <andybarcia4@gmail.com> | 2021-03-19 19:50:53 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-19 12:47:44 +0200 |
commit | 553f4f8dcea90eb6241f7906479f5e7d24f02abd (patch) | |
tree | 2ea632a58c9d6d6921393ef2ad215d356bb760af /tests/core/string/test_translation.h | |
parent | 7188ed5f9140f6e2a38a24ac3364bba741b45135 (diff) | |
download | redot-engine-553f4f8dcea90eb6241f7906479f5e7d24f02abd.tar.gz |
Improve error reporting when parsing CSV translation file
Fixes #46682.
Also fix unit test suite to separate generic FileAccess CSV testing
from using CSV as translation. And add more CSV translation tests.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Diffstat (limited to 'tests/core/string/test_translation.h')
-rw-r--r-- | tests/core/string/test_translation.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/tests/core/string/test_translation.h b/tests/core/string/test_translation.h index 3519f3050b..bf9674d6b1 100644 --- a/tests/core/string/test_translation.h +++ b/tests/core/string/test_translation.h @@ -151,7 +151,7 @@ TEST_CASE("[OptimizedTranslation] Generate from Translation and read messages") } #ifdef TOOLS_ENABLED -TEST_CASE("[Translation] CSV import") { +TEST_CASE("[TranslationCSV] CSV import") { Ref<ResourceImporterCSVTranslation> import_csv_translation = memnew(ResourceImporterCSVTranslation); HashMap<StringName, Variant> options; @@ -163,17 +163,39 @@ TEST_CASE("[Translation] CSV import") { Error result = import_csv_translation->import(TestUtils::get_data_path("translations.csv"), "", options, nullptr, &gen_files); CHECK(result == OK); - CHECK(gen_files.size() == 2); + CHECK(gen_files.size() == 4); + + TranslationServer *ts = TranslationServer::get_singleton(); for (const String &file : gen_files) { Ref<Translation> translation = ResourceLoader::load(file); CHECK(translation.is_valid()); - TranslationServer::get_singleton()->add_translation(translation); + ts->add_translation(translation); } - TranslationServer::get_singleton()->set_locale("de"); + ts->set_locale("en"); + + // `tr` can be called on any Object, we reuse TranslationServer for convenience. + CHECK(ts->tr("GOOD_MORNING") == "Good Morning"); + CHECK(ts->tr("GOOD_EVENING") == "Good Evening"); + + ts->set_locale("de"); + + CHECK(ts->tr("GOOD_MORNING") == "Guten Morgen"); + CHECK(ts->tr("GOOD_EVENING") == "Good Evening"); // Left blank in CSV, should source from 'en'. + + ts->set_locale("ja"); + + CHECK(ts->tr("GOOD_MORNING") == String::utf8("おはよう")); + CHECK(ts->tr("GOOD_EVENING") == String::utf8("こんばんは")); + + /* FIXME: This passes, but triggers a chain reaction that makes test_viewport + * and test_text_edit explode in a billion glittery Unicode particles. + ts->set_locale("fa"); - CHECK(Object().tr("GOOD_MORNING", "") == "Guten Morgen"); + CHECK(ts->tr("GOOD_MORNING") == String::utf8("صبح بخیر")); + CHECK(ts->tr("GOOD_EVENING") == String::utf8("عصر بخیر")); + */ } #endif // TOOLS_ENABLED |