如何使用两种不同语言的两种字体,如英语和波斯语(波斯语)?

时间:2014-12-25 21:53:11

标签: html css font-face lang

想象一下,你想设计一个向伊朗人学习英语的网站(波斯语(波斯语))。英语和波斯语(波斯语)在字母表中没有任何相似之处,因为波斯语是左倾的,英语是左倾的,完全不同。我没有找到任何标签为所有波斯语(波斯语)单词设置一种字体,为所有英语单词设置其他字体。例如,为波斯语设置B-Nazanin并自动设置Times New Roman为英语,不需要每次都为每个单词定义字体。只需定义一次这些字体。我们能做什么 ? 感谢名单

6 个答案:

答案 0 :(得分:8)

一种可能的选择是,当网站以波斯语显示时,为lang="fa-IR"或文档中的任何其他元素提供<html>属性/值。

因此,您可以使用[lang|="fa"]选择器覆盖CSS声明。

例如:

[lang|="fa"] p { font-family: "B-Nazanin"; }
<html lang="fa-IR">
  <p> سلام دنیا </p> 
</html>

或者:

p[lang|="fa"] { font-family: "B-Nazanin"; }
<p>Hello World!</p>
<p lang="fa-IR">سلام دنیا!</p>

答案 1 :(得分:3)

在HTML中使用语言样式内容是在CSS样式表中使用:lang选择器。例如:

:lang(ta)   {
    font-family: Latha, "Tamil MN", serif;
    font-size: 120%;
    }

并且不要忘记在HTML代码中使用lang

<p lang="en">Ceci est un paragraphe.</p>

答案 2 :(得分:2)

如果您真的想为两种不同的语言使用两种不同的字体,您可以选择:

1)使用一些区分语言的标记。这可能是class属性或(更符合逻辑,但略有限制的浏览器支持)lang属性。当然,您可以将它用于频率较低的语言。这当然是很多工作。根据内容生成系统,它可能会也可能不会自动化。

2)选择字体,使主字体不包含其他语言字符的字形。例如,如果您设置* { font-family: foo, bar }foo包含拉丁字母但不包含阿拉伯字符,则foo将用于英语,bar将用于Farsi。标点字符仍然是个问题。更重要的是,很难找到这样的字体。

3)使用通过Unicode范围选择字体系列的CSS代码。我不会详细介绍,因为这种方法对浏览器的支持太有限,实际上还没有用。

但是,您似乎正在尝试创建问题而不是解决问题。按照印刷原则,如果可能,应使用相同的字体复制文本。您应该选择适合英语和波斯语的 a 字体,或者更好的是这些字体的列表(因为所有计算机上都没有字体),或者是可下载的字体。如果做不到这一点,你可以选择两种字体,或两种字体列表,经过精心挑选,这样你就可以将它们全部列出来,浏览器会以自然的方式使用它们:对于每个字符,使用列表中包含的第一个字体它

答案 3 :(得分:1)

您可以为此使用以下链接:

Display text with two language in webpage with different fonts with font-face at rule in css

@font-face { /* Persian Font */
        font-family: 'MyFont';
        src: url(Fonts/BYekan.ttf);
        unicode-range:U+0600-06FF;
    }
@font-face { /* english font */
        font-family: 'MyFont';
        src: url(Fonts/ALGER.TTF);
        unicode-range: U+0020-007F;
    }

用法:

 body{
  font-family: 'MyFont';}

提示:对于不同的语言,您可以使用不同的“ unicode-range”。

答案 4 :(得分:0)

B-Nazanin或其他人用于波斯语内容,并使用Open sans作为英语版本。

如果您想为persian设置B-nazanin并为英语设置open sans,请在css中尝试以下代码:

body{
  font-family: "Open sans","B-nazanin";
}

答案 5 :(得分:0)

如果我理解你的问题,你会在一个网站上混合波斯语和英语。

使用适当的font-family声明分配两个类,可能是“farsi”和“english”。然后将Farsi文本放在<div class="farsi">内,将英文放在<div class="english">

编辑以处理混合语言:您将<div>放在主要语言周围,并使用<span>用于其他语言的单词。

我认为没有一种简单的方法可以将语言与不同的字母表进行精细混合,甚至可以编写方向。也许您可以在HTML组合工具中使用宏来完成添加必要的标记。