我有一篇关于这篇文章的帖子只与中东语言相关(我没有得到一个可用的解决方案),但事实证明,当切换到任何非西方语言时会出现同样的问题。
我的Web应用程序应该支持所有字符集的所有语言。从各个方面(数据库,方向等),它工作正常,除了选择例如阿拉伯语,日语,希伯来语等字符的大小明显小于英语。
我知道有一种方法可以全局扩展字体,但不知道如何做到这一点。
我的应用程序是用HTML,JavaScript和AngularJS开发的。
我假设你必须在lang
标签后附加一个html
属性。您可以像这样在该属性的基础上进行样式设置。
body { font-family: "Verdana"; font-size: 12px;} /** global **/
*[lang="ar"] {font-family: "Scheherazade",serif; font-size: 16px !important;} /** for arabic **/
这可能不是一个完美的解决方案,因为您不能将lang属性附加到每个DOM元素,因为您可以为不同的元素使用不同的字体大小。但您可以根据需要调整此解决方案。
我在使用这种技术的一个应用程序中解决了这个问题。但是使用SASS
或LESS
,它更容易处理所有这些。由于您使用的是AngularJS,因此您还可以定义基于语言的类,然后使用指令分配给特定的DOM元素。
您可以指定外来字体。您可能必须下载该语言的字体,但您只需要用英文字体“堆叠”它。让我用这个CSS示例澄清一下:
p {
font-family: 'AsciiSans'
, '游ゴシック体'
, 'Yu Gothic'
, YuGothic
, Meiryo
, 'Hiragino Kaku Gothic Pro'
, sans-serif
}
所以你可以看到他们在这里使用这种方法。 AsciiSans
没有日文字符,因此浏览器将使用下一个字体。
编辑
这很重要的原因;找到与英语字体大小相同的每种语言的字体。或者找一个较小的英文字体。有很多免费字体。希望你可以使用一个国际的(也许是“OpenSans”)
e.x:
http://www.fontspace.com/category/arabic
https://fonts.google.com/specimen/Open+Sans
编辑2
要包含Open Sans,请添加以下内容:
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
并做<font face="Open Sans">my text</font>
或者<span style="font-family: 'Open Sans', sans-serif;">my text</span>
我们有一些开发每种语言CSS样式的经验。这是我们用于正确字体大小的表格。这些字体大小的主要用途是桌面(Web)应用程序。对于移动应用程序,可能需要进行一些调整,但可能会根据这些尺寸进行调整。