varLib: use addMultilingualName method to support localized axes 'labelname'

now that addMultilingualName method also adds mac names by default, we can use it in
varLib instead of addName.
The language identifiers are expected to be minimized, i.e. not contain default script/region
subtags -- until we implement the minimizeSubtags algorithm from ICU/CLDR:
https://github.com/fonttools/fonttools/issues/930
This commit is contained in:
Cosimo Lupo 2019-01-13 13:39:15 +00:00
parent b920b3b36f
commit acbc65c1a9
No known key found for this signature in database
GPG Key ID: 59D54DB0C9976482
2 changed files with 7 additions and 13 deletions

View File

@ -753,8 +753,7 @@ class BaseDocReader(LogMixin):
# '{http://www.w3.org/XML/1998/namespace}lang' # '{http://www.w3.org/XML/1998/namespace}lang'
for key, lang in labelNameElement.items(): for key, lang in labelNameElement.items():
if key == XML_LANG: if key == XML_LANG:
labelName = labelNameElement.text axisObject.labelNames[lang] = tounicode(labelNameElement.text)
axisObject.labelNames[lang] = labelName
self.documentObject.axes.append(axisObject) self.documentObject.axes.append(axisObject)
self.axisDefaults[axisObject.name] = axisObject.default self.axisDefaults[axisObject.name] = axisObject.default
self.documentObject.defaultLoc = self.axisDefaults self.documentObject.defaultLoc = self.axisDefaults

View File

@ -76,12 +76,7 @@ def _add_fvar(font, axes, instances):
axis.axisTag = Tag(a.tag) axis.axisTag = Tag(a.tag)
# TODO Skip axes that have no variation. # TODO Skip axes that have no variation.
axis.minValue, axis.defaultValue, axis.maxValue = a.minimum, a.default, a.maximum axis.minValue, axis.defaultValue, axis.maxValue = a.minimum, a.default, a.maximum
axis.axisNameID = nameTable.addName(tounicode(a.labelNames['en'])) axis.axisNameID = nameTable.addMultilingualName(a.labelNames, font)
# TODO:
# Replace previous line with the following when the following issues are resolved:
# https://github.com/fonttools/fonttools/issues/930
# https://github.com/fonttools/fonttools/issues/931
# axis.axisNameID = nameTable.addMultilingualName(a.labelname, font)
fvar.axes.append(axis) fvar.axes.append(axis)
for instance in instances: for instance in instances:
@ -662,10 +657,10 @@ def load_designspace(designspace):
instances = ds.instances instances = ds.instances
standard_axis_map = OrderedDict([ standard_axis_map = OrderedDict([
('weight', ('wght', {'en':'Weight'})), ('weight', ('wght', {'en': u'Weight'})),
('width', ('wdth', {'en':'Width'})), ('width', ('wdth', {'en': u'Width'})),
('slant', ('slnt', {'en':'Slant'})), ('slant', ('slnt', {'en': u'Slant'})),
('optical', ('opsz', {'en':'Optical Size'})), ('optical', ('opsz', {'en': u'Optical Size'})),
]) ])
# Setup axes # Setup axes
@ -684,7 +679,7 @@ def load_designspace(designspace):
else: else:
assert axis.tag is not None assert axis.tag is not None
if not axis.labelNames: if not axis.labelNames:
axis.labelNames["en"] = axis_name axis.labelNames["en"] = tounicode(axis_name)
axes[axis_name] = axis axes[axis_name] = axis
log.info("Axes:\n%s", pformat([axis.asdict() for axis in axes.values()])) log.info("Axes:\n%s", pformat([axis.asdict() for axis in axes.values()]))