@@ -942,6 +942,39 @@ def assert_name_record_in_list(name_record, name_record_list):
942942 )
943943
944944
945+ def test_font_info_fallback_should_skip_english_in_localized (ufo_module , data_dir ):
946+ designspace = designspaceLib .DesignSpaceDocument .fromfile (
947+ data_dir / "BagelFatOne-Regular.designspace"
948+ )
949+ designspace .loadSourceFonts (openFontFactory (ufo_module = ufo_module ))
950+
951+ # fontmake calls `splitInterpolable` before constructing the Instantiator.
952+ # It does that to split a v5 designspace which may contain discrete axes into
953+ # 'interpolable' sub-designspaces. This code also handles generating instance
954+ # names from STAT-related elements like axis <labelname>. As part of this, it
955+ # can sometimes add "en" (English) names to the sub-doc instances' localized
956+ # names (English names are normally defined in the instance attributes, but
957+ # subsequent designspaceLib code wants to access all the instance names via
958+ # the same localized* interface).
959+ # The uf2ft code in Instantiator._generate_instance_info that handles
960+ # the localized instance names currently does not distinguish between the
961+ # true localized names and these "en" name duplicates, and ends up
962+ # writing unnecessary openTypeNameRecords for the latter.
963+ [(_ , designspace2 )] = designspaceLib .split .splitInterpolable (designspace )
964+ assert designspace .instances [0 ].localisedFamilyName == {}
965+ assert designspace2 .instances [0 ].localisedFamilyName == {"en" : "Bagel Fat One" }
966+
967+ generator = ufo2ft .instantiator .Instantiator .from_designspace (
968+ designspace2 , round_geometry = True
969+ )
970+
971+ instance_font = generator .generate_instance (designspace2 .instances [0 ])
972+
973+ assert instance_font .info .familyName == "Bagel Fat One"
974+ assert instance_font .info .styleName == "Regular"
975+ assert instance_font .info .openTypeNameRecords is None
976+
977+
945978def test_data_independence (ufo_module , data_dir ):
946979 designspace = designspaceLib .DesignSpaceDocument .fromfile (
947980 data_dir / "DesignspaceTest" / "DesignspaceTest.designspace"
0 commit comments