@@ -31,6 +31,7 @@ class TokenIDESheet:
31
31
32
32
def __init__ (self , sheet : dict [str ] = None ):
33
33
self .sheet = sheet or {"tokens" : {}, "meta" : []}
34
+ self .sheet ["tokens" ] |= {"$00" : {"string" : "" , "variants" : set (), "attrib" : {}, "tokens" : {}}}
34
35
35
36
@staticmethod
36
37
def from_xml_string (xml_str : str ) -> 'TokenIDESheet' :
@@ -137,7 +138,11 @@ def for_version(self, *, version: OsVersion = None, lang: str = 'en') -> 'TokenI
137
138
with open (os .path .join (os .path .dirname (__file__ ), "../8X.xml" ), encoding = "UTF-8" ) as file :
138
139
tokens = Tokens .from_xml_string (file .read (), version or OsVersions .LATEST )
139
140
140
- for byte , token in tokens .bytes .items ():
141
+ all_bytes = tokens .bytes
142
+ all_names = [name for token in all_bytes .values ()
143
+ for name in {* token .langs .get (lang , "en" ).names (), token .langs .get (lang , "en" ).display }]
144
+
145
+ for byte , token in all_bytes .items ():
141
146
if version is not None and token .since > version :
142
147
continue
143
148
@@ -160,9 +165,7 @@ def for_version(self, *, version: OsVersion = None, lang: str = 'en') -> 'TokenI
160
165
translation = token .langs .get (lang , "en" )
161
166
display = translation .display
162
167
163
- if new [value ]["string" ] not in [* translation .names (), display ]:
164
- new [value ]["string" ] = translation .accessible
165
-
168
+ new [value ]["string" ] = display if all_names .count (display ) == 1 else translation .accessible
166
169
new [value ]["variants" ] |= {* translation .names ()}
167
170
new [value ]["variants" ] -= {new [value ]["string" ]}
168
171
0 commit comments