From 9eb9ab9529161b5b52837487a00bb77678cda13e Mon Sep 17 00:00:00 2001 From: rsheeter Date: Mon, 7 Oct 2024 21:27:12 -0700 Subject: [PATCH] Expose and fix name processing discrepency --- glyphs-reader/src/font.rs | 4 +++- resources/testdata/glyphs3/TheBestNames.glyphs | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/glyphs-reader/src/font.rs b/glyphs-reader/src/font.rs index f2a41aef..744aba91 100644 --- a/glyphs-reader/src/font.rs +++ b/glyphs-reader/src/font.rs @@ -2133,7 +2133,8 @@ impl TryFrom for Font { let mut names = BTreeMap::new(); for name in from.properties { - // TODO: we only support dflt, .glyphs l10n names are ignored + // We don't support full l10n of names, just the limited capability of glyphsLib + // See name.value .or_else(|| { name.values @@ -2141,6 +2142,7 @@ impl TryFrom for Font { .find(|v| v.language == "dflt") .map(|v| v.value.clone()) }) + .or_else(|| name.values.first().map(|v| v.value.clone())) .and_then(|value| names.insert(name.key, value)); } names.insert("familyNames".into(), from.family_name); diff --git a/resources/testdata/glyphs3/TheBestNames.glyphs b/resources/testdata/glyphs3/TheBestNames.glyphs index 62c331b2..1f214ede 100644 --- a/resources/testdata/glyphs3/TheBestNames.glyphs +++ b/resources/testdata/glyphs3/TheBestNames.glyphs @@ -294,6 +294,10 @@ value = "A trade in marks"; key = manufacturers; values = ( { +language = ENG; +value = "Who made you?!"; +}, +{ language = dflt; value = "Who made you?!"; } @@ -307,8 +311,12 @@ value = "https://example.com/manufacturer"; key = designers; values = ( { -language = dflt; +language = IT_CAN_BE_ANYTHING; value = "Designed by me!"; +}, +{ +language = NOT_THIS_ONE; +value = "Designed by ... you?!"; } ); },