@@ -26,35 +26,37 @@ import bulkImportTranslationJa from '../../plugins/bulk-import/src/translations/
2626
2727export type BulkImportMessages = typeof bulkImportMessages ;
2828
29- function transform ( messages : typeof bulkImportTranslationDe . messages ) {
30- const result = Object . keys ( messages ) . reduce ( ( res , key ) => {
29+ function transformFlatMessagesIntoTree (
30+ flatMessages : typeof bulkImportTranslationDe . 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 BulkImportMessages ;
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 BulkImportMessages ;
4244}
4345
4446export function getTranslations ( locale : string ) : BulkImportMessages {
4547 switch ( locale ) {
4648 case 'en' :
4749 return bulkImportMessages ;
4850 case 'de' :
49- return transform ( bulkImportTranslationDe . messages ) ;
51+ return transformFlatMessagesIntoTree ( bulkImportTranslationDe . messages ) ;
5052 case 'es' :
51- return transform ( bulkImportTranslationEs . messages ) ;
53+ return transformFlatMessagesIntoTree ( bulkImportTranslationEs . messages ) ;
5254 case 'fr' :
53- return transform ( bulkImportTranslationFr . messages ) ;
55+ return transformFlatMessagesIntoTree ( bulkImportTranslationFr . messages ) ;
5456 case 'it' :
55- return transform ( bulkImportTranslationIt . messages ) ;
57+ return transformFlatMessagesIntoTree ( bulkImportTranslationIt . messages ) ;
5658 case 'ja' :
57- return transform ( bulkImportTranslationJa . messages ) ;
59+ return transformFlatMessagesIntoTree ( bulkImportTranslationJa . messages ) ;
5860 default :
5961 return bulkImportMessages ;
6062 }
0 commit comments