Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML语言标记显示语言_Php_Html_Lang - Fatal编程技术网

Php HTML语言标记显示语言

Php HTML语言标记显示语言,php,html,lang,Php,Html,Lang,我问这个纯粹是为了教育目的,在浏览HTML5的一些参考信息时,我遇到了lang属性,而我理解这是定义语言的一种方式,如果我说创建一个多语言网站,我认为这是一种基于浏览器语言隐藏各种div的方法,而不是重新创建每个页面 <div lang='en'>Hello</div> <div lang='ja'>こんいちは</div> 虽然我已经做了很多年的程序员,但是有很多像这样的小事情我以前从来没有遇到过 关于您可以使用CSS根据元素的lang属性来显示

我问这个纯粹是为了教育目的,在浏览HTML5的一些参考信息时,我遇到了
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
函数中。