代码内容结构中的多语言网站

时间:2017-01-14 14:17:12

标签: php arrays

尝试找到制作多语言网站的最佳方式。这就是我现在所做的:

<?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'] ?>

Here is picture of the code too.我第一次这样做,所以可能我做错了。如何改进这种结构?
此外,我正在对页面上显示的所有内容进行transalte,而不仅仅是内容,因此我认为将其置于数据库中是错误的。

1 个答案:

答案 0 :(得分:0)

您目前的工作方式完全没问题,但我建议您从代码中分离翻译,以保持文件的清洁。

这样做,您仍然可以使用PHP作为翻译文件,但您不必在每个文件中声明翻译(并且可能多次使用它们)

bg.php

<?php
return [
    'word1' => '...',
    'word2' => '...'
];
?>

并包含您的翻译,只需写下这样的内容

$content = require('translations/' . $lang . '.php');
echo $content['word1'];

这样做,你还应该检查给定的语言是否有效。

$valid_languages = ['bg', 'en'];
if (!in_array($lang, $valid_languages)) die('usefull message');