package Ġcom . eny . i 1 8 n . plugin . utils . generator . translation Ċ Ċ class ĠJson Translation Generator : ĠTranslation Generator Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġext (): ĠString Ġ= Ġ" json " ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Content ( key : ĠString , Ġvalue : ĠString ): ĠString Ġ= Ġ""" ĊĠĠĠ Ġ{ ĠĊĠĠĠĠĠĠĠ Ġ"$ key ": Ġ"$ value " ĠĠĊĠĠĠ Ġ} ĠĠĠĊĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Content ( root : ĠString , Ġkey : ĠString , Ġvalue : ĠString ): ĠString Ġ= Ġ""" ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ"$ root ": Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ key ": Ġ"$ value " ĠĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĠĠĠĊĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Content ( root : ĠString , Ġfirst : ĠString , Ġkey : ĠString , Ġvalue : ĠString ): ĠString Ġ= Ġ""" { ĊĠ Ġ"$ root ": Ġ{ ĊĠĠĠ Ġ"$ first ": Ġ{ ĊĠĠĠĠĠ Ġ"$ key ": Ġ"$ value " ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } """ ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Content ( root : ĠString , Ġfirst : ĠString , Ġsecond : ĠString , Ġkey : ĠString , Ġvalue : ĠString ): ĠString Ġ= Ġ""" ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ"$ root ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ first ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ second ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 1 ": Ġ" ref 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ key ": Ġ"$ value " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" subsection 2 ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 1 ": Ġ" Ref ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 2 ": Ġ" E tw as " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĠĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Pl ural ( root : ĠString , Ġfirst : ĠString , Ġkey : ĠString , Ġvalue 1 : ĠString , Ġvalue 2 : ĠString , Ġvalue 5 : ĠString ): ĠString Ġ= Ġ""" ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ"$ root ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ first ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ key - 1 ": Ġ"$ value 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ key - 2 ": Ġ"$ value 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ key - 5 ": Ġ"$ value 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" second ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" tt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĠĠĠĠĠĠĠĠĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Invalid (): ĠString Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ" ref ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" section ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key ": Ġ" Reference Ġin Ġjson ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" invalid ": ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Invalid Root (): ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Branch By List ( list : ĠList < String >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Value Ġ= Ġlist . take Last ( 2 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop Last ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold Right ( Pair ("${ " ĠĠ Ġ". repeat ( list . size - 1 )} Ġ Ġ\" ${ key Value [ 0 ] }\ ": Ġ\" ${ key Value [ 1 ]} \"", Ġ 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem , Ġacc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtabs Ġ= Ġ" ĠĠ Ġ". repeat ( list . size - acc . second - 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ("$ tabs Ġ Ġ\" ${ item }\ ": Ġ{\ n ${ acc . first }${ tabs }\ n $ tabs ĠĠ Ġ} ", Ġacc . second + 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate ( root : ĠString , Ġvar arg Ġbranches : ĠArray < String >): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ" {\ n ĠĠ Ġ\"$ root \": Ġ${ generate (* branches )}}" ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate ( var arg Ġbranches : ĠArray < String >): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ" {\ n ${ branches . map { generate Branch By List ( it . toList ()) }. join ToString (", \ n ") }\ n ĠĠ Ġ}" ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Named Block ( key : ĠString , Ġblock : ĠString , Ġlevel : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġ" Ġ Ġ". repeat ( level ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠ Ġreturn Ġ""" { ĊĠ Ġ$ tab "$ key ": Ġ$ block Ċ $ tab } """ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Named Blocks ( var arg Ġblocks : ĠPair < String , ĠString >): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ${ blocks . map {( name , Ġblock ) Ġ-> Ġformat Block ( name , Ġblock )}. join ToString (", \ n ")} ĊĠĠĠĠĠĠĠ Ġ} """ ĊĊĠĠĠ Ġprivate Ġfun Ġformat Block ( name : ĠString , Ġblock : ĠString ): ĠString Ġ= Ġ""" "$ name ": Ġ$ block """ Ċ Ċ } Ċ