Google Web Fonts 字体中的“latin”与“latin-extended”字形支持的语言?
Posted
技术标签:
【中文标题】Google Web Fonts 字体中的“latin”与“latin-extended”字形支持的语言?【英文标题】:Languages supported by "latin" vs "latin-extended" glyphs in fonts on Google Web Fonts? 【发布时间】:2012-12-27 12:59:21 【问题描述】:Google Web Fonts 上的某些字体支持多个“字符集”。问题是,如果我使用的网络字体只提供“拉丁”字形,那么将页面翻译成字形不受支持的语言的用户会清楚地注意到混乱的文本。
我希望我的网络字体支持除英语之外的世界上最流行的语言,例如西班牙语、德语、法语等。
为此,我想知道“拉丁语”和“拉丁语扩展”究竟分别适合哪些语言。
我希望答案看起来像:
Latin Character Set & Supported Languages:
- ..........
- ..........
- ..........
Latin-Extended Character Set & Supported Languages:
- ..........
- ..........
- ..........
我在 Google Web Fonts 文档或谷歌搜索中找不到此信息。
【问题讨论】:
在比较字母表时,我现在可以说字体的“拉丁”子集至少完全支持英语、西班牙语、德语和法语。 【参考方案1】:拉丁文
又名 Unicode Latin1-Supplement(U+0080 到 U+00FF)旨在主要支持西欧语言(正如您提到的法语、德语、西班牙语、葡萄牙语、意大利语、爱尔兰语、冰岛语、斯堪的纳维亚国家的语言和无意的以及下面列表中提到的其他语言)。标准 ASCII 支持英语。 ASCII(前 127 个字符,其中 95 个是 U+0020 到 U+007E 的字形)被放置为 Unicode 中名为 Basic Latin 的第一个块。这个块被认为是“Latin”的一部分,即使在非拉丁字体中也通常被支持,允许它们用作系统字体(大多数非本地化的低级程序都有 ASCII 硬编码)。
拉丁扩展
在 Google 字体上扩展的拉丁语实际上意味着阻止 Latin-Extended-A(U+0100 到 U+017F),它应该(与“拉丁语”结合)支持所有基于欧洲的拉丁语书写文本。互联网出现在美国,因此 ASCII 是它的本机代码。然后定义了 8 位代码页上半部分的 ISO-8859-1 (Latin1) 标准以支持西欧,并将其转换为 Latin1-Supplement Unicode 块。其他 8 位 ISO-8859 欧洲拉丁标准(Latin 2 East、Latin 3 South、Latin 4 North)被合并并移至 Latin-Extended-A 块。这些拉丁语标准与拉丁语 1 共享许多字符,因此“拉丁语扩展”范围内的几乎所有欧洲语言(马耳他语、拉脱维亚语、立陶宛语除外)也需要 Latin1-Supplement。这意味着“Latin-Extended”字体通常但不一定是“Latin”类别的超集。
在 Unicode 中,还有 Latin-Extended-B 块,主要增加了对非欧洲拉丁字母、阿塞拜疆语 Ə 和罗马尼亚语 Ș, Ț 的支持(至fix previous mistake),但这些字符通常被替换为 Ä, Ş , Ţ 来自 Extended-A(尽管我的罗马尼亚朋友告诉我这是不可接受的替代品)。支持还包括越南语Ơ、Ư(但这在 Google 字体上有自己的类别)和一些非洲语言,它们也需要拉丁扩展附加块。
Google 的拉丁语扩展类别大多不支持非洲拉丁语(兼容的 Google 字体列表如下)。还有更多奇特的 C、D 和 E 扩展名(总共 252 个字符),其中包含过时且如今大多无用的字母和符号。下表总结了这一点(不是 100% 正确,只是为了了解块的主要意图):
--------------------------------------------------------------------
| Unicode Latin Set | Latin Support | Google Name |
|==================================================================|
| Basic Latin (aka ASCII) | English | |
| Latin1-Supplement | Western European | Latin |
|------------------------------------------------------------------|
| Latin Extended A | European based | Latin Extended |
|------------------------------------------------------------------|
| Latin Extended B | non-European | Vietnamese |
|------------------------------------------------------------------|
| Latin Extended Additional | African | |
|------------------------------------------------------------------|
| Latin Extended C, D, E | Historical, Exotic | |
--------------------------------------------------------------------
Google 如何对字体进行分类
大多数作者通过 Unicode 块创建他们的字体,其中一些只支持选定的语言。如果语言包含拉丁语扩展 A 块中的某些字符,Google 会将其置于拉丁语扩展类别中。例如,Lato 字体仅支持波兰字符(作者是波兰人),但它属于 Google 的“拉丁扩展”类别,并且在网络上没有关于它的信息。 (现在字体详细信息中有 字形 选项卡,但它不会显示字体中的所有字形。)
Google 字体上的“语言”过滤器相当混乱和不清楚:它包含梵文(不是语言,而是书写系统和 Unicode 块)、“拉丁语”和“扩展拉丁语”(不是语言,而是Google 的伪块)和一些使用其他块中的某些字符的语言。那里没有明确的区分块支持和语言支持,也没有完全或部分支持。目前,唯一的方法是尝试显示下面列表中的字符。
语言支持
来自list of latin-written alphabets 下面在Omniglot 和其他来源进行了检查,我不算数:
拉丁扩展的二合字母,通常被单独的字符替换(Æ 受 Latin1-Supplement 支持,ß 曾经是二合字母) 非拉丁字母,因为问题是关于拉丁语与拉丁语扩展的。有些语言使用两种书写系统:我不包括那些拉丁语很少见的语言(如阿布哈兹语),直到正式采取措施(如哈萨克语) 少数民族和死语言(Adyghe、Aragonese、Archi、Arrernte、旧波罗的海语言、Bislama、Cimbrian、Chamorro、Chuvash、Cypriot、Dalecarlian、Extremaduran、Fala、Elfdalian、Faroese、Frisian、Gilbertese、Genoese、格洛萨语、海达语和爱斯基摩-阿留申语、Ikizu、Iñupiaq、Latgalian、Istriot、Livonian、Ladin、Kashubian、Marshallese、Mirandese、Old Norse、Nuxalk、Occitan、Rotokas、萨米语、萨摩亚语、上下索布语、大溪地语、 Tawlu、Tetum、Tongan、Ulithian、Yapese、Zuni、印度本土拉丁字母) 政治上宣布的语言,它们只是其他语言的方言并且具有相同的拼写法(美式英语、波斯尼亚语、黑山语) 洋泾浜和克里奥尔语(如阿尔萨斯语),因为它们很难在两种语言之间进行分类和混合,而字母是这两种语言的子集(它们往往会在其原始语言中及时溶解) 历史字符在最新版本的字母表中未使用(如双重音符、ſ、ĸ) 货币符号不是语言的组成部分 音译字符几乎是语言学家独有的,即拼音、国际音标、UPA如果缺少重要内容或在电子通信中使用了某些少数民族语言,请发表评论。 粗体是全国主要的官方语言。在此列表中,至少有数十万人使用的语言。
ASCII(基本拉丁语,即使在非拉丁字体中也经常支持)
古典拉丁语、艾马拉语(玻利维亚)南非荷兰语(南非)、阿斯图里亚斯语(西班牙)、科苏语(法国)、荷兰语、斐济语 , 英语, 格陵兰语, Gaelic (苏格兰), Gilbertese (基里巴斯), 海地语, Hiligaynon (菲律宾),伦巴第(意大利)、马来语、绍纳语(津巴布韦)、西西里语、斯瓦希里语(中非)。
拉丁文
罗马尼亚语(巴尔干)à 布列塔尼(法国)Â、Ê、Î、Ô、Û、Ù、Ü、Ñ 阿尔巴尼亚语 Ç, Ë(Ç 不是阿尔巴尼亚方言) 加泰罗尼亚语 À, É, È, Í, Ï, Ŀ, Ó, Ò, Ú, Ü, Ç(Ext-A 中的 Ŀ 可以写成 L 并带有间断·字符) 宿务(菲律宾)Ñ 丹麦语 Æ, Å, Ø 芬兰语 Å, Ä, Ö, Š, Ž(Š, Ž 来自 Ext-A 很少使用,可以使用 S, Z) 菲律宾语 Á, À, Â, É, È, Ê, Ë, Í, Ì, Î, Ñ, Ó, Ò, Ô, Ú, Ù, Û 法语 Æ, Œ, Â, À, É, È, Ê, Ë, Ç, Î, Ï, Ô, Ù, Û, Ü, Ÿ, », « (Œ 来自 Ext-A 使用在路标上,但人们通常在消息中使用 oe,很少使用来自 Ext-A 的 Ÿ 仅在法语名称中,其余包括 ÿ 在 Latin1-supplement、story behind this [fr]、note on Wikipedia [en]) 德语 Ä、Ö、Ü、ß 冰岛语 Æ, Á, É, Í, Ó, Ö, Ú, Ý, Þ, Ð 爱尔兰语 Á, É, Í, Ó, Ú 意大利语 Ì, Ù, ª, º(最后两个有时加下划线,在英语中也流行于 Numero - Nº) 卡西(印度)Ñ, Ï 卢森堡语 Ä、Ë、É 挪威语 Æ, Å, Ø 皮埃蒙特语(意大利)Ë, Ò 盖丘亚语(玻利维亚)Ñ 葡萄牙语 Á, Â, Ã, À, Ç, É, Ê, Ó, Ô, Õ, Ú, ª, º 撒丁岛(意大利)Ç 西班牙语,加利西亚语和巴斯克语(又名 Eskara)(西班牙)Ñ、¿、¡、ª、º 瑞典语 Å、Ä、Ö拉丁扩展
阿塞拜疆 Ç、Ğ、I(无点小写)、İ、Ö、Ş、Ü、Ə(Ext-B 中的Ə 可替换为 Ä,然后与土耳其语相同) 克里米亚鞑靼语(俄罗斯)Â、Ç、Ğ、I(无点小写)、İ、Ñ、Ö、Ş、Ü 捷克语 Á, Č, Ď, Ě, É, Í, Ň, Ó, Ř, Š, Ť, Ú, Ů, Ý, Ž 爱沙尼亚语 Ä, Ö, Õ, Ü, Š, Ž 世界语(国际)Ĉ、Ĝ、Ĥ、Ĵ、Ŝ、Ŭ 弗留利语(意大利) Â、Ê、Î、Ô、Û Gagauz(摩尔达维亚)Ä、Ç、Ê、I(无点小写)、İ、Ö、Ş、Ţ、Ü 瓜拉尼 (巴拉圭) Á, Í, Ó, Ã, Ẽ, G̃, Ĩ, Ñ, Õ, Ũ, Ỹ (Ĩ, Ũ 来自 Ext-A, Ẽ, Ỹ 来自 Ext-Additional, G̃在 Unicode 中,只有组合变音符号)Ext-A 范围之外的字符通常用抑扬符(Ê、Ĝ、Î、Û、Ŷ)转录 夏威夷语 Ā, Ē, Ī 匈牙利语 Á, É, Í, Ó, Ö, Ő, Ú, Ü, Ű 哈萨克语(2017-2025 计划从西里尔字母迁移)Ä、Ç、Ğ、I(无点小写)、İ、Ŋ、Ö、Ş、Ü(多次修订,2019 version)李> 库尔德语 Ç, Ê, Î, Ş, Û 拉脱维亚语 Ā, Č, Ē, Ģ, Ķ, Ī, Ļ, Ņ, Ō, Ū, Ŗ, Š, Ž 立陶宛语 Ą, Č, Ę, Ė, Į, Š, Ų, Ū, Ž 马耳他语 Ċ, Ġ, Ħ 毛利人 Ā、Ē、Ī、Ō、Ū(少数民族,但自 2015 年以来更广为人知和流行) 波兰语 Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż 罗曼语(国际)Č、Š、Ž(口语,但很少使用书面语言) 罗马尼亚语 Ă, Â, Î, Ș, Ț(Ș, Ț 来自拉丁文 Ext-B,可以使用 Ş, Ţ 来自 Ext-A) 萨米语(北方,少数民族语言,但在 Ext-A 中有一个专属的 Ŧ)Á, Č, Đ, Ŋ, Š, Ŧ, Ž 塞尔维亚-克罗地亚语 Ć, Č, Đ, Š, Ž 斯洛伐克语 Ä, Á, Č, Ď, É, Í, Ĺ, Ľ, Ň, Ó, Ô, Ú, Š, Ŕ, Ť, Ý, Ž 斯洛文尼亚Č,Š,Ž 鞑靼语(自 2012 年起)Ä、Ç、Ğ、İ、I(无点小写)、Ñ、Ö、Ş、Ü 土耳其语 Ç、Ğ、I(无点小写)、İ、Ö、Ş、Ü 越南语 Ă, Â, Đ, Ê, Ô, Ơ, Ư (Ơ, Ư 在 Ext-B 中加上组合音调 0x300 重音 À, 0x301 锐音 Á, 0x303 波浪线 Ã, 0x309 钩在 Ả , Ạ 下面的 0x323 点,请参阅下面的组合变音符号,在 Google 字体上有一个特殊类别) 威尔士语 Â、Ê、Î、Ô、Û、Ŵ、Ŷ拉丁扩展,非洲(拉丁扩展字体大多不支持)。完全支持Africa alphabet 有 Ubuntu、Fira Sans、EB Garamond、Tinos、News Cycle、Didact Gothic、M Plus、Sawarabi、Cousine、Caudex、Judson、Andika(当然还有 Noto,见下文)
巴里(刚果)Ŋ、Ö Bambara(马里)Ɛ、Ɲ、Ɔ(全部来自 Ext-B) 柏柏尔语(图阿雷格)(撒哈拉)Ă, Ḍ, Ɣ, Ǝ, Š, Ž, Ḥ, Ḷ, Ṣ, Ṭ, Ẓ(Ɣ, Ǝ 来自 Ext-B,带有点的字符来自 Ext -附加) 奇切瓦(切瓦)(东非)Ŵ Dagbani(刚果)Ɛ、Ɣ、Ɔ、Ŋ、Ʒ(Ɛ、Ɣ、Ɔ 来自 Ext-B) 丁卡语 (苏丹) Ä, Ë, Ɛ, Ɛ̈, Ɣ, Ï, Ŋ, Ö, Ɔ, Ɔ̈ (Ɛ, Ɣ, Ɔ from Ext-B, Ɛ̈, Ɔ̈ 不在 Unicode 中,仅与结合变音符号) Fula(西非)Ɓ、Ɗ、Ƴ、Ŋ(Ŋ 来自 Ext-A,其余来自 Ext-B) 豪萨语(乍得)Ɓ, Ɗ, Ƴ, Ƙ, R̃(R̃ 不在 Unicode 中,只有组合变音符号,其余来自 Ext-B) 伊博语(尼日利亚)Ṅ、Ị(扩展) 马达加斯加语(马达加斯加语)N̈(非Unicode,只能结合变音符号,可以用拉丁语中的Ñ代替) 泛尼日利亚语 Ɓ、Ɗ、Ǝ、Ẹ、Ị、Ƙ、Ṣ、Ụ(Ɓ、Ɗ、Ǝ、Ƙ 来自 Ext-B,Ẹ、Ị、Ṣ、Ụ 来自 Ext-Additional) Wolof(塞内加尔)À、É、Ë、Ñ、Ŋ、Ó 约鲁巴语(西非)Ẹ, Ọ, Ṣ(加音+组合音调Á、À、Ā)组合变音符号
或者,字体可能支持组合变音符号块:U+0300 到 U+036F。例如,Ř 可以键入为 U+0158(又名 预组合字符)或 R + U+030C。支持 Unicode 的程序应该同时显示和处理相同的内容,并提供一些 API 来处理它——比如 String.normalize() 来分解变音符号——但是如果程序或字体不支持 repertoire,则组合变音符号可能最终会有点错位(就像Ɛ̈上的变音符号太低它似乎在这个字体中得到了修复),请参阅这个非常详细的Unicode Q&A关于这个主题。
拉丁语言中的非拉丁字符
许多拉丁字体支持拉丁范围之外的一些字符,因为它们在拉丁文本中很常见,即:
greek μ(用作希腊和科普特 Unicode 块 U+0370 到 U+03FF 中的 micro)以及可能用作常用符号的其他一些字母(λ、π、α、 β, γ, δ, ε, Σ, Ω) - Google 的拉丁文扩展字体中有一半缺乏对这一字体的支持 bullet(用于从 Unicode 块 U+2000 到 U+206F 的列表中) 开始和结束引号 “, ”, ', ' 以及它们的低开始版本 „ 和 ‚ - 请参阅引号的正确使用 on Wikipedia 破折号 U+2010到U+2015,看破折号的正确使用on Wikipedia 可能是一些货币符号,从 U+20A0 到 U+20CF(欧元最常见,并且在 Google 字体上得到很好的支持)如果您的字体不支持它们,我建议您尝试看看它如何与这句话中的后备字体结合(复制和粘贴,包括项目符号)
• “我们销售 μF–mF 范围内的‘廉价’电容器,每包 2 欧元”
自定义字体
您可能希望通过Font Squirrel 服务自定义一些字体(如果他们的许可允许)或将它们用作备份。
包含大量字符的字体:
我真的很喜欢漂亮的衬线Quivira 11+k 字符的开放式字体,1.5 MB 许多计算机都安装了 Arial Unicode(MS Office 的一部分,50+k 个字符,22 MB) Google 有一个 Noto project,其中包含衬线、无衬线和 UI 字体中的所有但最新的 unicode 字符,按块支持 (1.1 GB) 很好地排序 作为最后的备用字体,您可能会考虑丑陋的Unifont(50+k 个字符,但只有 11 MB 和嵌入式设备友好)如果你真的很喜欢一些不支持某些变音符号的字体,使用 Font Forge 很容易添加支持。在那种情况下,请仔细阅读字体许可:从法律的角度来看,字体就是软件。
【讨论】:
您知道 Google 网络字体上的“拉丁扩展”字符集是否包含 Latin1-Extended-A 和 Latin1-Extended-B 字符,还是仅包含其中一个? 在 Google 网络字体中,“Latin-Extended”表示该字体包含来自 Latin1-Extended-A 和 Latin1-Extended-B 的部分或全部字形。 @MatTheCat(或任何其他阅读本文的人)您可以提供链接以引用您声明中关于 Google Web Fonts Latin-Extended 定义为“Latin1-Extended-的部分或全部字形的声明” A 和/或 Latin1-Extended-B"? 根据regardsfromPoland 在这个answer 中缺少一个额外的波兰符号:“Ą”(应该是评论) Š, Ž 在芬兰语中很少使用,只有奇怪的导入词,例如“šekki”(意思是支票,可以使用普通的 s)。我会说它们没有必要。以上是关于Google Web Fonts 字体中的“latin”与“latin-extended”字形支持的语言?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Widget - Font自定义字体(google_fonts)
使用 Google Fonts Roboto 的字体粗细,正常 (400) 和粗体 (700) 有效,浅色 (300) 无效