Как мне сделать оператор php if / switch в соответствии с языком PHP сайта? - PullRequest
0 голосов
/ 07 августа 2011

У моего сайта есть способ изменить свой язык, и каждый раз, когда я меняю его, я вижу что-то подобное в верхней части исходного кода:

<html dir="ltr" lang="en-US">
<html dir="ltr" lang="zh-TW">

Я думаю, что использование URL также может работать:

http://alexchen.info/en
http://alexchen.info/tw

или, может быть, это:

?lang=es
?lang=en

, потому что это тоже работает:

http://alexchen.info/?lang=es
http://alexchen.info/?lang=en

Я хотел бы знать, как лучше всего использовать это, чтобы сделатьоператор php if (или оператор switch).Например:

if(lang=en) {
 // do this
}


if(lang=tw) {
 // do this
}

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Если у вас есть ?lang=en, вы можете просто получить через глобальную переменную $_GET.Однако сначала вы должны инкапсулировать логику внутри функции.

function getLang()
{
    return $_GET['lang'];
}

// ...

if (getLang() == 'en') {
    // ...
}
1 голос
/ 07 августа 2011

Чтобы написать ключ (который можно легко найти в их документации ):

switch($lang) {
    case 'en-US':
        // do this
        break;
    case 'zh-TW':
        // do this
        break;
}

Хотя это, вероятно, не лучший подход к переводу сайта.Я сам не делал многоязычных вещей, но я вижу много фреймворков, заключающих блоки текста в такие функции, как

echo T("sample text");

А затем функция T заменит этот текст переведенным текстом,Таким образом, весь сайт не будет завален заявлениями о переключении.Переводы могут быть сохранены в базе данных.Если отсутствует перевод, его можно зарегистрировать или вставить как пустую запись в вашу БД, чтобы вы знали, что нужно заполнить / перевести позже, не копаясь в своем сайте, пытаясь найти все места, где необходимо перевести текст.

...