[name] make addMultilingualName() also add Mac names by default.

This commit is contained in:
justvanrossum 2018-11-02 11:56:22 +01:00
parent 364a578c1d
commit 8841d98652
3 changed files with 45 additions and 10 deletions

View File

@ -161,7 +161,8 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
raise ValueError("nameID must be less than 32768")
return nameID
def addMultilingualName(self, names, ttFont=None, nameID=None):
def addMultilingualName(self, names, ttFont=None, nameID=None,
windows=True, mac=True):
"""Add a multilingual name, returning its name ID
'names' is a dictionary with the name in multiple languages,
@ -176,6 +177,9 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
'nameID' is the name ID to be used, or None to let the library
pick an unused name ID.
If 'windows' is True, a platformID=3 name record will be added.
If 'mac' is True, a platformID=1 name record will be added.
"""
if not hasattr(self, 'names'):
self.names = []
@ -184,15 +188,16 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
# TODO: Should minimize BCP 47 language codes.
# https://github.com/fonttools/fonttools/issues/930
for lang, name in sorted(names.items()):
# Apple platforms have been recognizing Windows names
# since early OSX (~2001), so we only add names
# for the Macintosh platform when we cannot not make
# a Windows name. This can happen for exotic BCP47
# language tags that have no Windows language code.
if windows:
windowsName = _makeWindowsName(name, nameID, lang)
if windowsName is not None:
self.names.append(windowsName)
else:
# We cannot not make a Windows name: make sure we add a
# Mac name as a fallback. This can happen for exotic
# BCP47 language tags that have no Windows language code.
mac = True
if mac:
macName = _makeMacName(name, nameID, lang, ttFont)
if macName is not None:
self.names.append(macName)

View File

@ -109,6 +109,21 @@
</OS_2>
<name>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
HelloTestFont
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
TotallyNormal
</namerecord>
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
HelloTestFont-TotallyNormal
</namerecord>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x4" unicode="True">
HalloTestFont
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x4" unicode="True">
TotaalNormaal
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
HelloTestFont
</namerecord>

View File

@ -201,6 +201,21 @@
</glyf>
<name>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
HelloTestFont
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
TotallyNormal
</namerecord>
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
HelloTestFont-TotallyNormal
</namerecord>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x4" unicode="True">
HalloTestFont
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x4" unicode="True">
TotaalNormaal
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
HelloTestFont
</namerecord>