@@ -26,35 +26,47 @@ import adoptionInsightsTranslationJa from '../../plugins/adoption-insights/src/t
2626
2727export type InsightsMessages = typeof adoptionInsightsMessages ;
2828
29- function transform ( messages : typeof adoptionInsightsTranslationDe . messages ) {
30- const result = Object . keys ( messages ) . reduce ( ( res , key ) => {
29+ function transformFlatMessagesIntoTree (
30+ flatMessages : typeof adoptionInsightsTranslationDe . 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 InsightsMessages ;
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 InsightsMessages ;
4244}
4345
4446export function getTranslations ( locale : string ) {
4547 switch ( locale ) {
4648 case 'en' :
4749 return adoptionInsightsMessages ;
4850 case 'de' :
49- return transform ( adoptionInsightsTranslationDe . messages ) ;
51+ return transformFlatMessagesIntoTree (
52+ adoptionInsightsTranslationDe . messages ,
53+ ) ;
5054 case 'es' :
51- return transform ( adoptionInsightsTranslationEs . messages ) ;
55+ return transformFlatMessagesIntoTree (
56+ adoptionInsightsTranslationEs . messages ,
57+ ) ;
5258 case 'fr' :
53- return transform ( adoptionInsightsTranslationFr . messages ) ;
59+ return transformFlatMessagesIntoTree (
60+ adoptionInsightsTranslationFr . messages ,
61+ ) ;
5462 case 'it' :
55- return transform ( adoptionInsightsTranslationIt . messages ) ;
63+ return transformFlatMessagesIntoTree (
64+ adoptionInsightsTranslationIt . messages ,
65+ ) ;
5666 case 'ja' :
57- return transform ( adoptionInsightsTranslationJa . messages ) ;
67+ return transformFlatMessagesIntoTree (
68+ adoptionInsightsTranslationJa . messages ,
69+ ) ;
5870 default :
5971 return adoptionInsightsMessages ;
6072 }
0 commit comments