diff --git a/src/Forms/HTMLEditor/TinyMCEConfig.php b/src/Forms/HTMLEditor/TinyMCEConfig.php index a2f90546c..1c06c8a09 100644 --- a/src/Forms/HTMLEditor/TinyMCEConfig.php +++ b/src/Forms/HTMLEditor/TinyMCEConfig.php @@ -34,7 +34,7 @@ class TinyMCEConfig extends HTMLEditorConfig 'cy_GB' => 'cy', 'da_DK' => 'da', 'da_GL' => 'da', - 'de_AT' => 'de', + 'de_AT' => 'de_AT', 'de_BE' => 'de', 'de_CH' => 'de', 'de_DE' => 'de', @@ -56,7 +56,7 @@ class TinyMCEConfig extends HTMLEditorConfig 'es_GQ' => 'es', 'es_GT' => 'es', 'es_HN' => 'es', - 'es_MX' => 'es', + 'es_MX' => 'es_MX', 'es_NI' => 'es', 'es_PA' => 'es', 'es_PE' => 'es', @@ -69,11 +69,9 @@ class TinyMCEConfig extends HTMLEditorConfig 'es_AD' => 'es', 'es_BZ' => 'es', 'es_US' => 'es', - 'fa_AF' => 'fa', - 'fa_IR' => 'fa', - 'fa_PK' => 'fa', - 'fi_FI' => 'fi', - 'fi_SE' => 'fi', + 'fa_AF' => 'fa_IR', + 'fa_IR' => 'fa_IR', + 'fa_PK' => 'fa_IR', 'fr_BE' => 'fr_FR', 'fr_BF' => 'fr_FR', 'fr_BI' => 'fr_FR', @@ -117,12 +115,11 @@ class TinyMCEConfig extends HTMLEditorConfig 'fr_YT' => 'fr_FR', 'fr_GB' => 'fr_FR', 'fr_US' => 'fr_FR', - 'he_IL' => 'he', - 'hu_HU' => 'hu', - 'hu_AT' => 'hu', - 'hu_RO' => 'hu', - 'hu_RS' => 'hu', - 'is_IS' => 'is', + 'he_IL' => 'he_IL', + 'hu_HU' => 'hu_HU', + 'hu_AT' => 'hu_HU', + 'hu_RO' => 'hu_HU', + 'hu_RS' => 'hu_HU', 'it_CH' => 'it', 'it_IT' => 'it', 'it_SM' => 'it', @@ -131,28 +128,26 @@ class TinyMCEConfig extends HTMLEditorConfig 'it_US' => 'it', 'it_VA' => 'it', 'ja_JP' => 'ja', - 'ko_KP' => 'ko', - 'ko_KR' => 'ko', - 'ko_CN' => 'ko', - 'mi_NZ' => 'mi_NZ', - 'nb_NO' => 'nb', - 'nb_SJ' => 'nb', + 'ko_KP' => 'ko_KR', + 'ko_KR' => 'ko_KR', + 'ko_CN' => 'ko_KR', + 'nb_NO' => 'nb_NO', + 'nb_SJ' => 'nb_NO', 'nl_AN' => 'nl', 'nl_AW' => 'nl', 'nl_BE' => 'nl', 'nl_NL' => 'nl', 'nl_SR' => 'nl', - 'nn_NO' => 'nn', 'pl_PL' => 'pl', 'pl_UA' => 'pl', - 'pt_AO' => 'pt', - 'pt_BR' => 'pt', - 'pt_CV' => 'pt', - 'pt_GW' => 'pt', - 'pt_MZ' => 'pt', - 'pt_PT' => 'pt', - 'pt_ST' => 'pt', - 'pt_TL' => 'pt', + 'pt_AO' => 'pt_PT', + 'pt_BR' => 'pt_BR', + 'pt_CV' => 'pt_PT', + 'pt_GW' => 'pt_PT', + 'pt_MZ' => 'pt_PT', + 'pt_PT' => 'pt_PT', + 'pt_ST' => 'pt_PT', + 'pt_TL' => 'pt_PT', 'ro_MD' => 'ro', 'ro_RO' => 'ro', 'ro_RS' => 'ro', @@ -162,31 +157,26 @@ class TinyMCEConfig extends HTMLEditorConfig 'ru_RU' => 'ru', 'ru_SJ' => 'ru', 'ru_UA' => 'ru', - 'si_LK' => 'si', 'sk_SK' => 'sk', 'sk_RS' => 'sk', - 'sq_AL' => 'sq', - 'sr_BA' => 'sr', - 'sr_ME' => 'sr', - 'sr_RS' => 'sr', - 'sv_FI' => 'sv', - 'sv_SE' => 'sv', + 'sv_FI' => 'sv_SE', + 'sv_SE' => 'sv_SE', 'tr_CY' => 'tr', - 'tr_TR' => 'tr', + 'tr_TR' => 'tr_TR', 'tr_DE' => 'tr', 'tr_MK' => 'tr', - 'uk_UA' => 'uk', - 'vi_VN' => 'vi', - 'vi_US' => 'vi', - 'zh_CN' => 'zh-cn', - 'zh_HK' => 'zh-cn', - 'zh_MO' => 'zh-cn', - 'zh_SG' => 'zh-cn', - 'zh_TW' => 'zh-tw', - 'zh_ID' => 'zh-cn', - 'zh_MY' => 'zh-cn', - 'zh_TH' => 'zh-cn', - 'zh_US' => 'zn-cn', + 'uk_UA' => 'uk_UA', + 'vi_VN' => 'vi_VN', + 'vi_US' => 'vi_VN', + 'zh_CN' => 'zh_CN', + 'zh_HK' => 'zh_CN', + 'zh_MO' => 'zh_CN', + 'zh_SG' => 'zh_CN', + 'zh_TW' => 'zh_TW', + 'zh_ID' => 'zh_CN', + 'zh_MY' => 'zh_CN', + 'zh_TH' => 'zh_CN', + 'zh_US' => 'zh_CN', ]; /** diff --git a/tests/php/Forms/HTMLEditor/TinyMCEConfigTest.php b/tests/php/Forms/HTMLEditor/TinyMCEConfigTest.php new file mode 100644 index 000000000..7178945a3 --- /dev/null +++ b/tests/php/Forms/HTMLEditor/TinyMCEConfigTest.php @@ -0,0 +1,40 @@ +get('base_dir'); + if (!$configDir) { + $this->markTestSkipped("Test skipped without TinyMCE resources folder being installed"); + } + + $langs = Director::baseFolder().'/'.ModuleResourceLoader::resourcePath($configDir).'/langs'; + + // Test all langs exist as real files + foreach (TinyMCEConfig::config()->get('tinymce_lang') as $locale => $resource) { + // Check valid + $this->assertFileExists( + "{$langs}/{$resource}.js", + "Locale code {$locale} maps to {$resource}.js which exists" + ); + // Check we don't simplify to locale when a specific version exists + if (strpos($resource, '_') === false) { + $this->assertFileNotExists( + "{$langs}/{$locale}.js", + "Locale code {$locale} doesn't map to simple {$resource}.js when a better {$locale}.js is available" + ); + } + } + } +}