@@ -62,6 +62,7 @@ func main() {
62
62
63
63
// use old en-US as the base, and copy the new translations to the old locales
64
64
enUsOld := inisOld ["options/locale/locale_en-US.ini" ]
65
+ brokenWarned := map [string ]bool {}
65
66
for path , iniOld := range inisOld {
66
67
if iniOld == enUsOld {
67
68
continue
@@ -77,11 +78,14 @@ func main() {
77
78
if secNew .HasKey (keyEnUs .Name ()) {
78
79
oldStr := secOld .Key (keyEnUs .Name ()).String ()
79
80
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" ))
85
89
continue
86
90
}
87
91
secOld .Key (keyEnUs .Name ()).SetValue (newStr )
@@ -90,4 +94,25 @@ func main() {
90
94
}
91
95
mustNoErr (iniOld .SaveTo (path ))
92
96
}
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
+ }
93
118
}
0 commit comments