varLib: use addMultilingualName for localised instance style names

designspaceLib: ensure instance localised names are set as unicode strings
This commit is contained in:
Cosimo Lupo 2019-01-13 14:57:10 +00:00
parent e6d5b5531a
commit 48e72dab9b
No known key found for this signature in database
GPG Key ID: 59D54DB0C9976482
2 changed files with 13 additions and 6 deletions

View File

@ -246,25 +246,25 @@ class InstanceDescriptor(SimpleDescriptor):
filename = posixpath_property("_filename")
def setStyleName(self, styleName, languageCode="en"):
self.localisedStyleName[languageCode] = styleName
self.localisedStyleName[languageCode] = tounicode(styleName)
def getStyleName(self, languageCode="en"):
return self.localisedStyleName.get(languageCode)
def setFamilyName(self, familyName, languageCode="en"):
self.localisedFamilyName[languageCode] = familyName
self.localisedFamilyName[languageCode] = tounicode(familyName)
def getFamilyName(self, languageCode="en"):
return self.localisedFamilyName.get(languageCode)
def setStyleMapStyleName(self, styleMapStyleName, languageCode="en"):
self.localisedStyleMapStyleName[languageCode] = styleMapStyleName
self.localisedStyleMapStyleName[languageCode] = tounicode(styleMapStyleName)
def getStyleMapStyleName(self, languageCode="en"):
return self.localisedStyleMapStyleName.get(languageCode)
def setStyleMapFamilyName(self, styleMapFamilyName, languageCode="en"):
self.localisedStyleMapFamilyName[languageCode] = styleMapFamilyName
self.localisedStyleMapFamilyName[languageCode] = tounicode(styleMapFamilyName)
def getStyleMapFamilyName(self, languageCode="en"):
return self.localisedStyleMapFamilyName.get(languageCode)

View File

@ -81,11 +81,18 @@ def _add_fvar(font, axes, instances):
for instance in instances:
coordinates = instance.location
name = tounicode(instance.styleName)
if "en" not in instance.localisedStyleName:
assert instance.styleName
localisedStyleName = dict(instance.localisedStyleName)
localisedStyleName["en"] = tounicode(instance.styleName)
else:
localisedStyleName = instance.localisedStyleName
psname = instance.postScriptFontName
inst = NamedInstance()
inst.subfamilyNameID = nameTable.addName(name)
inst.subfamilyNameID = nameTable.addMultilingualName(localisedStyleName)
if psname is not None:
psname = tounicode(psname)
inst.postscriptNameID = nameTable.addName(psname)