@@ -62,6 +62,7 @@ func main() {
6262
6363 // use old en-US as the base, and copy the new translations to the old locales
6464 enUsOld := inisOld ["options/locale/locale_en-US.ini" ]
65+ brokenWarned := map [string ]bool {}
6566 for path , iniOld := range inisOld {
6667 if iniOld == enUsOld {
6768 continue
@@ -77,11 +78,14 @@ func main() {
7778 if secNew .HasKey (keyEnUs .Name ()) {
7879 oldStr := secOld .Key (keyEnUs .Name ()).String ()
7980 newStr := secNew .Key (keyEnUs .Name ()).String ()
80- if oldStr != "" && strings .Count (oldStr , "%" ) != strings .Count (newStr , "%" ) {
81- fmt .Printf ("WARNING: locale %s [%s]%s has different number of arguments, skipping\n " , path , secEnUS .Name (), keyEnUs .Name ())
82- fmt .Printf ("\t old: %s\n " , oldStr )
83- fmt .Printf ("\t new: %s\n " , newStr )
84- fmt .Println ("---- " )
81+ broken := oldStr != "" && strings .Count (oldStr , "%" ) != strings .Count (newStr , "%" )
82+ broken = broken || strings .Contains (oldStr , "\n " ) || strings .Contains (oldStr , "\n " )
83+ if broken {
84+ brokenWarned [secOld .Name ()+ "." + keyEnUs .Name ()] = true
85+ fmt .Println ("----" )
86+ fmt .Printf ("WARNING: skip broken locale: %s , [%s] %s\n " , path , secEnUS .Name (), keyEnUs .Name ())
87+ fmt .Printf ("\t old: %s\n " , strings .ReplaceAll (oldStr , "\n " , "\\ n" ))
88+ fmt .Printf ("\t new: %s\n " , strings .ReplaceAll (newStr , "\n " , "\\ n" ))
8589 continue
8690 }
8791 secOld .Key (keyEnUs .Name ()).SetValue (newStr )
@@ -90,4 +94,25 @@ func main() {
9094 }
9195 mustNoErr (iniOld .SaveTo (path ))
9296 }
97+
98+ fmt .Println ("========" )
99+
100+ for path , iniNew := range inisNew {
101+ for _ , sec := range iniNew .Sections () {
102+ for _ , key := range sec .Keys () {
103+ str := sec .Key (key .Name ()).String ()
104+ broken := strings .Contains (str , "\n " )
105+ broken = broken || strings .HasPrefix (str , "`" ) != strings .HasSuffix (str , "`" )
106+ broken = broken || strings .HasPrefix (str , "\" `" )
107+ broken = broken || strings .HasPrefix (str , "`\" " )
108+ broken = broken || strings .Count (str , `"` )% 2 == 1
109+ broken = broken || strings .Count (str , "`" )% 2 == 1
110+ if broken && ! brokenWarned [sec .Name ()+ "." + key .Name ()] {
111+ fmt .Printf ("WARNING: found broken locale: %s , [%s] %s\n " , path , sec .Name (), key .Name ())
112+ fmt .Printf ("\t str: %s\n " , strings .ReplaceAll (str , "\n " , "\\ n" ))
113+ fmt .Println ("----" )
114+ }
115+ }
116+ }
117+ }
93118}
0 commit comments