Php HTML语言标记显示语言
我问这个纯粹是为了教育目的,在浏览HTML5的一些参考信息时,我遇到了Php HTML语言标记显示语言,php,html,lang,Php,Html,Lang,我问这个纯粹是为了教育目的,在浏览HTML5的一些参考信息时,我遇到了lang属性,而我理解这是定义语言的一种方式,如果我说创建一个多语言网站,我认为这是一种基于浏览器语言隐藏各种div的方法,而不是重新创建每个页面 <div lang='en'>Hello</div> <div lang='ja'>こんいちは</div> 虽然我已经做了很多年的程序员,但是有很多像这样的小事情我以前从来没有遇到过 关于您可以使用CSS根据元素的lang属性来显示
lang
属性,而我理解这是定义语言的一种方式,如果我说创建一个多语言网站,我认为这是一种基于浏览器语言隐藏各种div的方法,而不是重新创建每个页面
<div lang='en'>Hello</div>
<div lang='ja'>こんいちは</div>
虽然我已经做了很多年的程序员,但是有很多像这样的小事情我以前从来没有遇到过
关于您可以使用CSS根据元素的lang
属性来显示或隐藏元素。你只会浪费很多带宽
语言标签
语言标签的目的是使您能够标记链接、引用或类似内容,以便您可以设置它们的样式,例如,在指向日语博客文章中英文文章的链接上添加英国国旗,并使屏幕阅读器能够提供正确的发音
翻译
如果希望根据参数提供翻译后的文本,则应在HTML代码之外进行翻译(就像任何其他处理一样)。这种混合只会让代码变得难以辨认,成为维护的噩梦
常见的解决方案是在单独的语言文件中提供翻译数据,主要是.ini
文件。在您的情况下,它们可能看起来像:
语言/ja.ini
:
LANG="ja"
HELLO="こんいちは"
LANG="en"
HELLO="Hello"
语言/en.ini
:
LANG="ja"
HELLO="こんいちは"
LANG="en"
HELLO="Hello"
现在,您可以在HTML文件中使用这些
index.php
:
<?php
$language = $_GET['lang'] ?: 'en';
$translation = "languages/{$language}.ini";
if (!is_readable($translation)) {
throw new \RuntimeException("Language file {$translation} not found");
}
$_ = parse_ini_file($translation);
?>
<div lang="<?= $_['LANG']; ?>"><?= $_['HELLO']; ?></div>
PHP和HTML代码都更容易理解,语言文件也更容易维护。您可以使用一个帮助器来实现这一点,这样您就不需要在PHP HTML中做这些事情了。类似于
或更好的
,$\u GET['lang']
将位于translate
函数中。