Оптимизировать сценарий интернационализации, я сделал хороший выбор? - PullRequest
1 голос
/ 11 сентября 2011

Я собираюсь разработать файлы локализации для своего проекта, и я не уверен, что делаю правильный выбор.

<?php
$translation= array(
    "sentence" => array ("fr" => "phrase", "it" => "frase")
);

function _($toTranslate = '', $lang = 'en'){

    if($toTranslate != ''){

        if(!array_key_exists($toTranslate[$lang], $translation))
            return $toTranslate;

        else 
            return ${$lang}[$toTranslate];
    }
}
?>

Я явно не знаю, хорошо ли я это делаю.

1 Ответ

0 голосов
/ 11 сентября 2011

Недостаточно хорошо.

  1. Улучшение вашей реализации.

Поместите каждый язык в один файл, что будет лучше для производительности и обслуживания.Например, создайте папку с именем «language», она содержит «fr.inc.php», «de.inc.php» и так далее.В файле конфигурации у вас есть строка типа

$config['language'] = 'de';

. Вы также можете загрузить код языка из параметра GET:

$config['language'] = htmlspecialchars($_GET['lang']);

Не забудьте проверить, существует ли языковой файл или нет(file_exists())

В коде начальной загрузки вы загружаете языковой файл (проверьте его раньше)

require_once LANGUANGE_DIR . '/' . $config['language'] . '.inc.php';

, а когда вам нужна строка языкового ресурса, вы называете "_"функция, теперь она должна выглядеть следующим образом, phpMyAdmin, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...