From 7155216204cb18355f000ffc7dd05d373c0f2cb3 Mon Sep 17 00:00:00 2001 From: tygrysek90 Date: Sat, 9 Aug 2025 22:20:21 +0200 Subject: [PATCH 01/11] Create warning-supression mechanism, modify 'unexpected' output --- .github/workflows/supress_warning.py | 53 ++++++++++++++++++++++++++ .github/workflows/translation_check.py | 6 ++- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/supress_warning.py diff --git a/.github/workflows/supress_warning.py b/.github/workflows/supress_warning.py new file mode 100644 index 0000000000..b22bd00928 --- /dev/null +++ b/.github/workflows/supress_warning.py @@ -0,0 +1,53 @@ +# Dictionary of fields that should not appear in translation check warnings +# per each language +# +# each maintainer kindly PR's STR_nnnn he has checked and found being reported +# incorectly + + +class DictWithoutKeyError(dict): +# this is to eliminate KeyError that could occur when acessing +# language not listed here + def __missing__(self, key): + return [] + +SUPRESS_WARNING = DictWithoutKeyError() + +# example +# SUPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] +# 2996 - 3009 are COLOR-ABC strings used in Banner window +# japanian and ukrainian use different scripts (hentai and cyrilic) + +SUPRESS_WARNING['ar-EG'] = [] +SUPRESS_WARNING['ca-ES'] = [] +SUPRESS_WARNING['cs-CZ'] = [] +SUPRESS_WARNING['da-DK'] = [] +SUPRESS_WARNING['de-DE'] = [] +SUPRESS_WARNING['en-US'] = [] +SUPRESS_WARNING['eo-ZZ'] = [] +SUPRESS_WARNING['es-ES'] = [] +SUPRESS_WARNING['fi-FI'] = [] +SUPRESS_WARNING['fr-CA'] = [] +SUPRESS_WARNING['fr-FR'] = [] +SUPRESS_WARNING['gl-ES'] = [] +SUPRESS_WARNING['hu-HU'] = [] +SUPRESS_WARNING['it-IT'] = [] +SUPRESS_WARNING['ja-JP'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', + 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', + 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', + 'STR_3008', 'STR_3009'] +SUPRESS_WARNING['ko-KR'] = [] +SUPRESS_WARNING['nb-NO'] = [] +SUPRESS_WARNING['nl-NL'] = [] +SUPRESS_WARNING['pl-PL'] = [] +SUPRESS_WARNING['pt-BR'] = [] +SUPRESS_WARNING['ru-RU'] = [] +SUPRESS_WARNING['sv-SE'] = [] +SUPRESS_WARNING['tr-TR'] = [] +SUPRESS_WARNING['uk-UA'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', + 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', + 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', + 'STR_3008', 'STR_3009'] +SUPRESS_WARNING['vi-VN'] = [] +SUPRESS_WARNING['zh-CN'] = [] +SUPRESS_WARNING['zh-TW'] = [] diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index 46be43f6c7..1c4c45d9c8 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -9,6 +9,8 @@ import os import re +from supress_warning import SUPRESS_WARNING + MASTER_LANG_DIR = "master/data/language" PR_LANG_DIR = "pr/data/language" OPENRCT2_EN_GB_FILE = "OpenRCT2/data/language/en-GB.txt" @@ -128,7 +130,7 @@ def count_translations(dir_with_translations, print_info, reference_file): } for base_string in en_gb: - if base_string in KEYS_TO_IGNORE: + if base_string in KEYS_TO_IGNORE and base_string not in SUPRESS_WARNING[lang]: if base_string in translations and en_gb[base_string] != translations[base_string]: messages['unexpected'].append(base_string) elif base_string not in translations: @@ -148,7 +150,7 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'\t{', '.join(messages["missing"])}') print(f'Unnecessary (not in en-GB) ({not_needed[lang]}):') print(f'\t{', '.join(messages["unnecessary"])}') - print(f'Unexpected (should not be translated) ({len(messages["unexpected"])}):') + print(f'Warning: Supossed to remain intact ({len(messages["unexpected"])})\nPlease review and if OK, add to supress_warning.py:') print(f'\t{', '.join(messages["unexpected"])}') print(f'Same as en-GB ({same_counters[lang]}):') print(f'\t{', '.join(messages["same"])}') From 522c242ee3c02b014789ec70ee9b6ae19e2eb95e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Sun, 10 Aug 2025 17:14:18 +0200 Subject: [PATCH 02/11] Update comment Co-authored-by: Tulio Leao --- .github/workflows/supress_warning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/supress_warning.py b/.github/workflows/supress_warning.py index b22bd00928..c706e675f4 100644 --- a/.github/workflows/supress_warning.py +++ b/.github/workflows/supress_warning.py @@ -16,7 +16,7 @@ def __missing__(self, key): # example # SUPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] # 2996 - 3009 are COLOR-ABC strings used in Banner window -# japanian and ukrainian use different scripts (hentai and cyrilic) +# japanese and ukrainian use different scripts (hentai and cyrillic) SUPRESS_WARNING['ar-EG'] = [] SUPRESS_WARNING['ca-ES'] = [] From ff0e54513a2045f5223393b4934971d84c255e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Sun, 10 Aug 2025 17:14:42 +0200 Subject: [PATCH 03/11] Update text Co-authored-by: Tulio Leao --- .github/workflows/translation_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index 1c4c45d9c8..c0cde52d65 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -150,7 +150,7 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'\t{', '.join(messages["missing"])}') print(f'Unnecessary (not in en-GB) ({not_needed[lang]}):') print(f'\t{', '.join(messages["unnecessary"])}') - print(f'Warning: Supossed to remain intact ({len(messages["unexpected"])})\nPlease review and if OK, add to supress_warning.py:') + print(f'Translation not expected ({len(messages["unexpected"])})\nPlease review and if OK, add to supress_warning.py:') print(f'\t{', '.join(messages["unexpected"])}') print(f'Same as en-GB ({same_counters[lang]}):') print(f'\t{', '.join(messages["same"])}') From 99502eb784a02c7b03189154318690385904835b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Sun, 10 Aug 2025 17:17:36 +0200 Subject: [PATCH 04/11] remove unnecessary class that was trying to unnecessarily hide error --- .github/workflows/supress_warning.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/supress_warning.py b/.github/workflows/supress_warning.py index c706e675f4..95a2c74dec 100644 --- a/.github/workflows/supress_warning.py +++ b/.github/workflows/supress_warning.py @@ -5,13 +5,7 @@ # incorectly -class DictWithoutKeyError(dict): -# this is to eliminate KeyError that could occur when acessing -# language not listed here - def __missing__(self, key): - return [] - -SUPRESS_WARNING = DictWithoutKeyError() +SUPRESS_WARNING = dict() # example # SUPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] From 694ef9b7d7592776501028252f7819c267f7a52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Sun, 10 Aug 2025 17:18:29 +0200 Subject: [PATCH 05/11] fix comment wording --- .github/workflows/supress_warning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/supress_warning.py b/.github/workflows/supress_warning.py index 95a2c74dec..9b5a8915ff 100644 --- a/.github/workflows/supress_warning.py +++ b/.github/workflows/supress_warning.py @@ -10,7 +10,7 @@ # example # SUPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] # 2996 - 3009 are COLOR-ABC strings used in Banner window -# japanese and ukrainian use different scripts (hentai and cyrillic) +# japanese and ukrainian use different scripts (hiragana and cyrillic) SUPRESS_WARNING['ar-EG'] = [] SUPRESS_WARNING['ca-ES'] = [] From 5d6f171b6d4e08d1bab4e2a4da53b37ab1148ef7 Mon Sep 17 00:00:00 2001 From: tygrysek90 Date: Sun, 10 Aug 2025 19:22:09 +0200 Subject: [PATCH 06/11] fix typos, improve comments --- .github/workflows/suppress_warning.py | 57 ++++++++++++++++++++++++++ .github/workflows/supress_warning.py | 47 --------------------- .github/workflows/translation_check.py | 4 +- 3 files changed, 59 insertions(+), 49 deletions(-) create mode 100644 .github/workflows/suppress_warning.py delete mode 100644 .github/workflows/supress_warning.py diff --git a/.github/workflows/suppress_warning.py b/.github/workflows/suppress_warning.py new file mode 100644 index 0000000000..2faedbc35d --- /dev/null +++ b/.github/workflows/suppress_warning.py @@ -0,0 +1,57 @@ +""" +Dictionary of fields that should not appear in translation check warnings +per each language + +each maintainer kindly PR's STR_nnnn he has checked and found being reported +incorectly +""" + +SUPPRESS_WARNING = dict() +""" +This gets imported in translation_check.py, which checks it against all +languages present in repo. + +Please note: Failing to add new language in this dictionary will cause +KeyError being raised in translation_check.py and therefore it +will break GitHub Action job + +Example of population: +SUPPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] + +2996 - 3009 are COLOR-ABC strings used in Banner window and were pre-added +for japanese and ukrainian which use different scripts (hiragana and cyrillic) +""" + +SUPPRESS_WARNING['ar-EG'] = [] +SUPPRESS_WARNING['ca-ES'] = [] +SUPPRESS_WARNING['cs-CZ'] = [] +SUPPRESS_WARNING['da-DK'] = [] +SUPPRESS_WARNING['de-DE'] = [] +SUPPRESS_WARNING['en-US'] = [] +SUPPRESS_WARNING['eo-ZZ'] = [] +SUPPRESS_WARNING['es-ES'] = [] +SUPPRESS_WARNING['fi-FI'] = [] +SUPPRESS_WARNING['fr-CA'] = [] +SUPPRESS_WARNING['fr-FR'] = [] +SUPPRESS_WARNING['gl-ES'] = [] +SUPPRESS_WARNING['hu-HU'] = [] +SUPPRESS_WARNING['it-IT'] = [] +SUPPRESS_WARNING['ja-JP'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', + 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', + 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', + 'STR_3008', 'STR_3009'] +SUPPRESS_WARNING['ko-KR'] = [] +SUPPRESS_WARNING['nb-NO'] = [] +SUPPRESS_WARNING['nl-NL'] = [] +SUPPRESS_WARNING['pl-PL'] = [] +SUPPRESS_WARNING['pt-BR'] = [] +SUPPRESS_WARNING['ru-RU'] = [] +SUPPRESS_WARNING['sv-SE'] = [] +SUPPRESS_WARNING['tr-TR'] = [] +SUPPRESS_WARNING['uk-UA'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', + 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', + 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', + 'STR_3008', 'STR_3009'] +SUPPRESS_WARNING['vi-VN'] = [] +SUPPRESS_WARNING['zh-CN'] = [] +SUPPRESS_WARNING['zh-TW'] = [] diff --git a/.github/workflows/supress_warning.py b/.github/workflows/supress_warning.py deleted file mode 100644 index 9b5a8915ff..0000000000 --- a/.github/workflows/supress_warning.py +++ /dev/null @@ -1,47 +0,0 @@ -# Dictionary of fields that should not appear in translation check warnings -# per each language -# -# each maintainer kindly PR's STR_nnnn he has checked and found being reported -# incorectly - - -SUPRESS_WARNING = dict() - -# example -# SUPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] -# 2996 - 3009 are COLOR-ABC strings used in Banner window -# japanese and ukrainian use different scripts (hiragana and cyrillic) - -SUPRESS_WARNING['ar-EG'] = [] -SUPRESS_WARNING['ca-ES'] = [] -SUPRESS_WARNING['cs-CZ'] = [] -SUPRESS_WARNING['da-DK'] = [] -SUPRESS_WARNING['de-DE'] = [] -SUPRESS_WARNING['en-US'] = [] -SUPRESS_WARNING['eo-ZZ'] = [] -SUPRESS_WARNING['es-ES'] = [] -SUPRESS_WARNING['fi-FI'] = [] -SUPRESS_WARNING['fr-CA'] = [] -SUPRESS_WARNING['fr-FR'] = [] -SUPRESS_WARNING['gl-ES'] = [] -SUPRESS_WARNING['hu-HU'] = [] -SUPRESS_WARNING['it-IT'] = [] -SUPRESS_WARNING['ja-JP'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', - 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', - 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', - 'STR_3008', 'STR_3009'] -SUPRESS_WARNING['ko-KR'] = [] -SUPRESS_WARNING['nb-NO'] = [] -SUPRESS_WARNING['nl-NL'] = [] -SUPRESS_WARNING['pl-PL'] = [] -SUPRESS_WARNING['pt-BR'] = [] -SUPRESS_WARNING['ru-RU'] = [] -SUPRESS_WARNING['sv-SE'] = [] -SUPRESS_WARNING['tr-TR'] = [] -SUPRESS_WARNING['uk-UA'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', - 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', - 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', - 'STR_3008', 'STR_3009'] -SUPRESS_WARNING['vi-VN'] = [] -SUPRESS_WARNING['zh-CN'] = [] -SUPRESS_WARNING['zh-TW'] = [] diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index c0cde52d65..c3f05c6366 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -9,7 +9,7 @@ import os import re -from supress_warning import SUPRESS_WARNING +from suppress_warning import SUPPRESS_WARNING MASTER_LANG_DIR = "master/data/language" PR_LANG_DIR = "pr/data/language" @@ -130,7 +130,7 @@ def count_translations(dir_with_translations, print_info, reference_file): } for base_string in en_gb: - if base_string in KEYS_TO_IGNORE and base_string not in SUPRESS_WARNING[lang]: + if base_string in KEYS_TO_IGNORE and base_string not in SUPPRESS_WARNING[lang]: if base_string in translations and en_gb[base_string] != translations[base_string]: messages['unexpected'].append(base_string) elif base_string not in translations: From 37eeb02e45999836d33cb079ffc9a582ae044b68 Mon Sep 17 00:00:00 2001 From: tygrysek90 Date: Sun, 10 Aug 2025 19:33:48 +0200 Subject: [PATCH 07/11] fix typo --- .github/workflows/translation_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index c3f05c6366..398a1761c5 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -150,7 +150,7 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'\t{', '.join(messages["missing"])}') print(f'Unnecessary (not in en-GB) ({not_needed[lang]}):') print(f'\t{', '.join(messages["unnecessary"])}') - print(f'Translation not expected ({len(messages["unexpected"])})\nPlease review and if OK, add to supress_warning.py:') + print(f'Translation not expected ({len(messages["unexpected"])})\nPlease review and if OK, add to suppress_warning.py:') print(f'\t{', '.join(messages["unexpected"])}') print(f'Same as en-GB ({same_counters[lang]}):') print(f'\t{', '.join(messages["same"])}') From dc0bc5f70d24a63a4f7512f80a26f4512aa9651c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Mon, 11 Aug 2025 13:23:34 +0200 Subject: [PATCH 08/11] modify output message, add condition for hint text modify action log message for "unexpected" to "Technical strings modified" add condition for explanation message to be shown only if there are "technical strings modified" --- .github/workflows/translation_check.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index 398a1761c5..49e79097b4 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -150,8 +150,11 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'\t{', '.join(messages["missing"])}') print(f'Unnecessary (not in en-GB) ({not_needed[lang]}):') print(f'\t{', '.join(messages["unnecessary"])}') - print(f'Translation not expected ({len(messages["unexpected"])})\nPlease review and if OK, add to suppress_warning.py:') + print(f'Technical strings modified ({len(messages["unexpected"])}):') print(f'\t{', '.join(messages["unexpected"])}') + if len(messages["unexpected"]): + print(f'\tIt\'s not expected for these to be translated, but if it makes sense for your language,') + print(f'\tadd a waiver for them on suppress_warning.py and open a PR explaining why.') print(f'Same as en-GB ({same_counters[lang]}):') print(f'\t{', '.join(messages["same"])}') print(f'{"-" * 47}\n') From 7ee206ba20550ed560fea07801acbb217bde06af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Tue, 12 Aug 2025 12:20:15 +0200 Subject: [PATCH 09/11] remove redundant function call Co-authored-by: Tulio Leao --- .github/workflows/translation_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index 49e79097b4..c3ca1f76da 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -152,7 +152,7 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'\t{', '.join(messages["unnecessary"])}') print(f'Technical strings modified ({len(messages["unexpected"])}):') print(f'\t{', '.join(messages["unexpected"])}') - if len(messages["unexpected"]): + if messages["unexpected"]: print(f'\tIt\'s not expected for these to be translated, but if it makes sense for your language,') print(f'\tadd a waiver for them on suppress_warning.py and open a PR explaining why.') print(f'Same as en-GB ({same_counters[lang]}):') From 8198fbd6797dc3136f076c240a692c9c2d29e85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Tue, 12 Aug 2025 12:20:55 +0200 Subject: [PATCH 10/11] fix unclear output message Co-authored-by: Tulio Leao --- .github/workflows/translation_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/translation_check.py b/.github/workflows/translation_check.py index c3ca1f76da..57331b2e52 100644 --- a/.github/workflows/translation_check.py +++ b/.github/workflows/translation_check.py @@ -153,7 +153,7 @@ def count_translations(dir_with_translations, print_info, reference_file): print(f'Technical strings modified ({len(messages["unexpected"])}):') print(f'\t{', '.join(messages["unexpected"])}') if messages["unexpected"]: - print(f'\tIt\'s not expected for these to be translated, but if it makes sense for your language,') + print(f'\tIt\'s not expected for the above to be translated, but if it makes sense for your language,') print(f'\tadd a waiver for them on suppress_warning.py and open a PR explaining why.') print(f'Same as en-GB ({same_counters[lang]}):') print(f'\t{', '.join(messages["same"])}') From af35a5727ea263eaaa5f0d8c66376e3ace90c358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=AD=C5=A1a=20Szlachta?= Date: Tue, 12 Aug 2025 12:37:18 +0200 Subject: [PATCH 11/11] purge suppression list to have a clean start --- .github/workflows/suppress_warning.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/suppress_warning.py b/.github/workflows/suppress_warning.py index 2faedbc35d..97b8550de2 100644 --- a/.github/workflows/suppress_warning.py +++ b/.github/workflows/suppress_warning.py @@ -17,9 +17,6 @@ Example of population: SUPPRESS_WARNING['qq-JJ'] = ['STR_0123', 'STR_5678', 'STR_8900'] - -2996 - 3009 are COLOR-ABC strings used in Banner window and were pre-added -for japanese and ukrainian which use different scripts (hiragana and cyrillic) """ SUPPRESS_WARNING['ar-EG'] = [] @@ -36,10 +33,7 @@ SUPPRESS_WARNING['gl-ES'] = [] SUPPRESS_WARNING['hu-HU'] = [] SUPPRESS_WARNING['it-IT'] = [] -SUPPRESS_WARNING['ja-JP'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', - 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', - 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', - 'STR_3008', 'STR_3009'] +SUPPRESS_WARNING['ja-JP'] = [] SUPPRESS_WARNING['ko-KR'] = [] SUPPRESS_WARNING['nb-NO'] = [] SUPPRESS_WARNING['nl-NL'] = [] @@ -48,10 +42,7 @@ SUPPRESS_WARNING['ru-RU'] = [] SUPPRESS_WARNING['sv-SE'] = [] SUPPRESS_WARNING['tr-TR'] = [] -SUPPRESS_WARNING['uk-UA'] = ['STR_2996', 'STR_2997', 'STR_2998', 'STR_2999', - 'STR_3000', 'STR_3001', 'STR_3002', 'STR_3003', - 'STR_3004', 'STR_3005', 'STR_3006', 'STR_3007', - 'STR_3008', 'STR_3009'] +SUPPRESS_WARNING['uk-UA'] = [] SUPPRESS_WARNING['vi-VN'] = [] SUPPRESS_WARNING['zh-CN'] = [] SUPPRESS_WARNING['zh-TW'] = []