From 48e72dab9bbf397c47f51197ff8870b5ff9dbb3d Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Sun, 13 Jan 2019 14:57:10 +0000 Subject: [PATCH] varLib: use addMultilingualName for localised instance style names designspaceLib: ensure instance localised names are set as unicode strings --- Lib/fontTools/designspaceLib/__init__.py | 8 ++++---- Lib/fontTools/varLib/__init__.py | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Lib/fontTools/designspaceLib/__init__.py b/Lib/fontTools/designspaceLib/__init__.py index 6a4f6e145..3209feb3f 100644 --- a/Lib/fontTools/designspaceLib/__init__.py +++ b/Lib/fontTools/designspaceLib/__init__.py @@ -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) diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 7ee1906f0..884c8550c 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -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)