@@ -26,35 +26,37 @@ import extensionsTranslationJa from '../../plugins/extensions/src/alpha/translat
2626
2727export type ExtensionsMessages = typeof extensionsMessages ;
2828
29- function transform ( messages : typeof extensionsTranslationDe . messages ) {
30- const result = Object . keys ( messages ) . reduce ( ( res , key ) => {
29+ function transformFlatMessagesIntoTree (
30+ flatMessages : typeof extensionsTranslationDe . messages ,
31+ ) {
32+ const messages = { } as Record < string , any > ;
33+ for ( const key of Object . keys ( flatMessages ) ) {
3134 const path = key . split ( '.' ) ;
32- const lastIndex = path . length - 1 ;
33- path . reduce ( ( acc , currentPath , i ) => {
34- acc [ currentPath ] =
35- lastIndex === i ? messages [ key ] : acc [ currentPath ] || { } ;
36- return acc [ currentPath ] ;
37- } , res ) ;
38- return res ;
39- } , { } ) ;
40-
41- return result as ExtensionsMessages ;
35+ let current = messages ;
36+ for ( let i = 0 ; i < path . length - 1 ; i ++ ) {
37+ current [ path [ i ] ] = current [ path [ i ] ] || { } ;
38+ current = current [ path [ i ] ] as Record < string , any > ;
39+ }
40+ current [ path [ path . length - 1 ] ] =
41+ flatMessages [ key as keyof typeof flatMessages ] ;
42+ }
43+ return messages as ExtensionsMessages ;
4244}
4345
4446export function getTranslations ( locale : string ) {
4547 switch ( locale ) {
4648 case 'en' :
4749 return extensionsMessages ;
4850 case 'de' :
49- return transform ( extensionsTranslationDe . messages ) ;
51+ return transformFlatMessagesIntoTree ( extensionsTranslationDe . messages ) ;
5052 case 'es' :
51- return transform ( extensionsTranslationEs . messages ) ;
53+ return transformFlatMessagesIntoTree ( extensionsTranslationEs . messages ) ;
5254 case 'fr' :
53- return transform ( extensionsTranslationFr . messages ) ;
55+ return transformFlatMessagesIntoTree ( extensionsTranslationFr . messages ) ;
5456 case 'it' :
55- return transform ( extensionsTranslationIt . messages ) ;
57+ return transformFlatMessagesIntoTree ( extensionsTranslationIt . messages ) ;
5658 case 'ja' :
57- return transform ( extensionsTranslationJa . messages ) ;
59+ return transformFlatMessagesIntoTree ( extensionsTranslationJa . messages ) ;
5860 default :
5961 return extensionsMessages ;
6062 }
0 commit comments