Update default macOS fonts

This commit is contained in:
Jeremy Soller 2022-10-14 10:39:08 -06:00
parent 9519696a5b
commit 4b98970436
2 changed files with 47 additions and 8 deletions

View file

@ -5,40 +5,81 @@ pub fn common_fallback() -> &'static [&'static str] {
&[ &[
".SF NS", ".SF NS",
"Apple Color Emoji", "Apple Color Emoji",
"Geneva",
"Arial Unicode MS",
] ]
} }
// Fallbacks to never use // Fallbacks to never use
pub fn forbidden_fallback() -> &'static [&'static str] { pub fn forbidden_fallback() -> &'static [&'static str] {
&[] &[
".LastResort",
]
}
fn han_unification(locale: &str) -> &'static [&'static str] {
match locale {
// Japan
"ja" => &["Hiragino Sans"],
// Korea
"ko" => &["Apple SD Gothic Neo"],
// Hong Kong
"zh-HK" => &["PingFang HK"],
// Taiwan
"zh-TW" => &["PingFang TC"],
// Simplified Chinese is the default (also catches "zh-CN" for China)
_ => &["PingFang SC"],
}
} }
// Fallbacks to use per script // Fallbacks to use per script
pub fn script_fallback(script: &Script, locale: &str) -> &'static [&'static str] { pub fn script_fallback(script: &Script, locale: &str) -> &'static [&'static str] {
//TODO: abstract style (sans/serif/monospaced) //TODO: abstract style (sans/serif/monospaced)
//TODO: pull more data from about:config font.name-list.sans-serif in Firefox
match script { match script {
Script::Adlam => &["Noto Sans Adlam"], Script::Adlam => &["Noto Sans Adlam"],
Script::Arabic => &["Geeza Pro"],
Script::Armenian => &["Noto Sans Armenian"], Script::Armenian => &["Noto Sans Armenian"],
Script::Bengali => &["Bangla Sangam MN"],
Script::Buhid => &["Noto Sans Buhid"], Script::Buhid => &["Noto Sans Buhid"],
Script::Canadian_Aboriginal => &["Euphemia UCAS"],
Script::Chakma => &["Noto Sans Chakma"], Script::Chakma => &["Noto Sans Chakma"],
Script::Devanagari => &["Devanagari Sangam MN"],
Script::Ethiopic => &["Kefa"],
Script::Gothic => &["Noto Sans Gothic"], Script::Gothic => &["Noto Sans Gothic"],
Script::Grantha => &["Grantha Sangam MN"],
Script::Gujarati => &["Gujarati Sangam MN"],
Script::Gurmukhi => &["Gurmukhi Sangam MN"],
Script::Han => han_unification(locale),
Script::Hangul => han_unification("ko"),
Script::Hanunoo => &["Noto Sans Hanunoo"], Script::Hanunoo => &["Noto Sans Hanunoo"],
Script::Hebrew => &["Arial"],
Script::Hiragana => han_unification("ja"),
Script::Javanese => &["Noto Sans Javanese"], Script::Javanese => &["Noto Sans Javanese"],
Script::Kannada => &["Noto Sans Kannada"], Script::Kannada => &["Noto Sans Kannada"],
Script::Katakana => han_unification("ja"),
Script::Khmer => &["Khmer Sangam MN"],
Script::Lao => &["Lao Sangam MN"],
Script::Malayalam => &["Malayalam Sangam MN"],
Script::Mongolian => &["Noto Sans Mongolian"], Script::Mongolian => &["Noto Sans Mongolian"],
Script::Myanmar => &["Noto Sans Myanmar"], Script::Myanmar => &["Noto Sans Myanmar"],
Script::Oriya => &["Noto Sans Oriya"], Script::Oriya => &["Noto Sans Oriya"],
Script::Sinhala => &["Sinhala Sangam MN"],
Script::Syriac => &["Noto Sans Syriac"], Script::Syriac => &["Noto Sans Syriac"],
Script::Tagalog => &["Noto Sans Tagalog"], Script::Tagalog => &["Noto Sans Tagalog"],
Script::Tagbanwa => &["Noto Sans Tagbanwa"], Script::Tagbanwa => &["Noto Sans Tagbanwa"],
Script::Tai_Le => &["Noto Sans Tai Le"], Script::Tai_Le => &["Noto Sans Tai Le"],
Script::Tai_Tham => &["Noto Sans Tai Tham"], Script::Tai_Tham => &["Noto Sans Tai Tham"],
Script::Tai_Viet => &["Noto Sans Tai Viet"], Script::Tai_Viet => &["Noto Sans Tai Viet"],
Script::Tamil => &["InaiMathi"],
Script::Telugu => &["Telugu Sangam MN"],
Script::Thaana => &["Noto Sans Thaana"], Script::Thaana => &["Noto Sans Thaana"],
Script::Thai => &["Ayuthaya"],
Script::Tibetan => &["Kailasa"],
Script::Tifinagh => &["Noto Sans Tifinagh"], Script::Tifinagh => &["Noto Sans Tifinagh"],
Script::Vai => &["Noto Sans Vai"], Script::Vai => &["Noto Sans Vai"],
//TODO: Use han_unification? //TODO: Use han_unification?
Script::Yi => &["Noto Sans Yi"], Script::Yi => &["Noto Sans Yi", "PingFang SC"],
_ => &[], _ => &[],
} }
} }

View file

@ -24,13 +24,11 @@ fn han_unification(locale: &str) -> &'static [&'static str] {
"ja" => &["Noto Sans CJK JA"], "ja" => &["Noto Sans CJK JA"],
// Korea // Korea
"ko" => &["Noto Sans CJK KR"], "ko" => &["Noto Sans CJK KR"],
// China
"zh-CN" => &["Noto Sans CJK SC"],
// Hong Kong // Hong Kong
"zh-HK" => &["Noto Sans CJK HK"], "zh-HK" => &["Noto Sans CJK HK"],
// Taiwan // Taiwan
"zh-TW" => &["Noto Sans CJK TC"], "zh-TW" => &["Noto Sans CJK TC"],
// Simplified Chinese is the default // Simplified Chinese is the default (also catches "zh-CN" for China)
_ => &["Noto Sans CJK SC"], _ => &["Noto Sans CJK SC"],
} }
} }
@ -50,19 +48,19 @@ pub fn script_fallback(script: &Script, locale: &str) -> &'static [&'static str]
Script::Deseret => &["Noto Sans Deseret"], Script::Deseret => &["Noto Sans Deseret"],
Script::Devanagari => &["Noto Sans Devanagari"], Script::Devanagari => &["Noto Sans Devanagari"],
Script::Ethiopic => &["Noto Sans Ethiopic"], Script::Ethiopic => &["Noto Sans Ethiopic"],
Script::Hangul => &["Noto Sans CJK KR"],
Script::Georgian => &["Noto Sans Georgian"], Script::Georgian => &["Noto Sans Georgian"],
Script::Gothic => &["Noto Sans Gothic"], Script::Gothic => &["Noto Sans Gothic"],
Script::Grantha => &["Noto Sans Grantha"], Script::Grantha => &["Noto Sans Grantha"],
Script::Gujarati => &["Noto Sans Gujarati"], Script::Gujarati => &["Noto Sans Gujarati"],
Script::Gurmukhi => &["Noto Sans Gurmukhi"], Script::Gurmukhi => &["Noto Sans Gurmukhi"],
Script::Han => han_unification(locale), Script::Han => han_unification(locale),
Script::Hangul => han_unification("ko"),
Script::Hanunoo => &["Noto Sans Hanunoo"], Script::Hanunoo => &["Noto Sans Hanunoo"],
Script::Hebrew => &["Noto Sans Hebrew"], Script::Hebrew => &["Noto Sans Hebrew"],
Script::Hiragana => &["Noto Sans CJK JP"], Script::Hiragana => han_unification("ja"),
Script::Javanese => &["Noto Sans Javanese"], Script::Javanese => &["Noto Sans Javanese"],
Script::Kannada => &["Noto Sans Kannada"], Script::Kannada => &["Noto Sans Kannada"],
Script::Katakana => &["Noto Sans CJK JP"], Script::Katakana => han_unification("ja"),
Script::Khmer => &["Noto Sans Khmer"], Script::Khmer => &["Noto Sans Khmer"],
Script::Lao => &["Noto Sans Lao"], Script::Lao => &["Noto Sans Lao"],
Script::Malayalam => &["Noto Sans Malayalam"], Script::Malayalam => &["Noto Sans Malayalam"],