@@ -296,29 +296,43 @@ export default class TinyMCE {
296296
297297 async initLanguage ( ) {
298298 const i18n = new I18n ( ) ;
299- let lang = i18n . currentLanguage ;
299+ const lang_parts = i18n . currentLanguage . split ( "-" ) ;
300300
301- // Fix for country specific languages
302- if ( lang . split ( "-" ) . length > 1 ) {
303- lang = lang . split ( "-" ) [ 0 ] + "_" + lang . split ( "-" ) [ 1 ] . toUpperCase ( ) ;
304- }
301+ // Country specific languages in TinyMCE 8 in in the form: `lang-COUNTRY_CODE`
302+ let lang =
303+ lang_parts . length === 1
304+ ? lang_parts [ 0 ]
305+ : `${ lang_parts [ 0 ] } -${ lang_parts [ 1 ] . toUpperCase ( ) } ` ;
305306
306- if ( lang . substr ( 0 , 2 ) !== "en" ) {
307+ debugger ;
308+ if ( lang !== "en" ) {
307309 // load translations from tinymce-i18n
308310 try {
309- await import ( `tinymce-i18n/langs7 /${ lang } ` ) ;
311+ await import ( `tinymce-i18n/langs8 /${ lang } .js ` ) ;
310312 } catch {
311- log . debug ( "Could not load TinyMCE language: " , lang ) ;
312313 try {
313- // expected lang not available, let's fallback to closest one
314- if ( lang . split ( "_" ) . length > 1 ) {
315- lang = lang . split ( "_" ) [ 0 ] ;
316- } else {
317- lang = lang + "_" + lang . toUpperCase ( ) ;
318- }
319- log . debug ( "Trying with: " , lang ) ;
320- await import ( `tinymce-i18n/langs7/${ lang } ` ) ;
314+ log . debug ( "Could not load TinyMCE language: " , lang ) ;
315+
316+ lang = lang_parts [ 0 ] ;
317+ log . debug ( "Fall back to: " , lang ) ;
318+
319+ await import ( `tinymce-i18n/langs8/${ lang } .js` ) ;
321320 } catch {
321+ try {
322+ log . debug ( "Could not load TinyMCE language: " , lang ) ;
323+
324+ // Some languages have the form of `lang-LANG`, etc. `fr-FR`.
325+ lang = `${ lang_parts [ 0 ] } -${ lang_parts [ 0 ] . toUpperCase ( ) } ` ;
326+ log . debug ( "Fall back to: " , lang ) ;
327+
328+ await import ( `tinymce-i18n/langs8/${ lang } .js` ) ;
329+ } catch {
330+ log . debug (
331+ "Could not load TinyMCE language. Fallback to English" ,
332+ ) ;
333+ lang = "en" ;
334+ }
335+
322336 log . debug ( "Could not load TinyMCE language. Fallback to English" ) ;
323337 lang = "en" ;
324338 }
0 commit comments