Php 代码内容结构中的多语言网站
试图找到制作多语言网站的最佳方法。这就是我在这一刻所做的:Php 代码内容结构中的多语言网站,php,arrays,Php,Arrays,试图找到制作多语言网站的最佳方法。这就是我在这一刻所做的: <?php if (isset($_GET['lang'])) { $lang = $_GET['lang']; } $content = array( 'bg' => array( 'word1' => 'Начало', 'word2' => 'Тест'
<?php
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
$content = array(
'bg' => array(
'word1' => 'Начало',
'word2' => 'Тест'
),
'en' => array(
'word1' => 'Home',
'word2' => 'Test'
),
);
?>
然后按以下方式打印内容:
<?= $content[$lang]['word1'] ?>
<?= $content[$lang]['word2'] ?>
我是第一次这样做,所以可能我做错了什么。如何改进此结构?此外,我正在对页面上显示的所有内容进行transalte,而不仅仅是内容,因此我认为将其放入数据库是错误的。您目前的做法完全正确,但我建议您将翻译与代码分开,以保持文件干净 这样做,您仍然可以对翻译文件使用PHP,但您不必在每个文件中声明翻译(并且可能多次声明) bg.php
<?php
return [
'word1' => '...',
'word2' => '...'
];
?>
进行此操作时,还应检查给定的语言是否有效
$valid_languages = ['bg', 'en'];
if (!in_array($lang, $valid_languages)) die('usefull message');
您目前的做法是完全正确的,但我建议您将翻译与代码分开,以保持文件干净 这样做,您仍然可以对翻译文件使用PHP,但您不必在每个文件中声明翻译(并且可能多次声明) bg.php
<?php
return [
'word1' => '...',
'word2' => '...'
];
?>
进行此操作时,还应检查给定的语言是否有效
$valid_languages = ['bg', 'en'];
if (!in_array($lang, $valid_languages)) die('usefull message');
哦,这真是个好主意!谢谢。最后一个问题:单词1、单词2、单词n是最佳实践吗?因为这样的代码不是很清楚。你应该给他们一些更有意义的全名。一个想法是一个简单的键,另一个想法是原始字符串,因此如果没有给出翻译,您将得到一个简单的回退。但是这样做会有一些困难,如果你以后改变字符串的话。哦,这真是个好主意!谢谢。最后一个问题:单词1、单词2、单词n是最佳实践吗?因为这样的代码不是很清楚。你应该给他们一些更有意义的全名。一个想法是一个简单的键,另一个想法是原始字符串,因此如果没有给出翻译,您将得到一个简单的回退。但是如果以后更改字符串,这样做会带来一些困难