如何根据网站的PHP语言制作php if / switch语句?

时间:2011-08-07 09:07:58

标签: php if-statement switch-statement

我的网站有一种更改语言的方式,每次我更改它时,我都会在源代码的顶部看到类似的内容:

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

我认为使用网址也可能有效:

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 个答案:

答案 0 :(得分:2)

如果你有?lang=en,你只需通过$_GET全局变量即可。但是,您应该首先将逻辑封装在函数中。

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

// ...

if (getLang() == 'en') {
    // ...
}

答案 1 :(得分:1)

要编写一个开关(可以很容易地在他们的documentation中查找):

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

虽然这可能不是进行网站翻译的最佳方法。我自己没有做太多的多语言工作,但我看到很多框架在函数中包装文本块,如

echo T("sample text");

然后T函数将用翻译的文本替换该文本。这样你就没有整个网站散落着switch语句。翻译可以存储在数据库中。如果缺少翻译,可以将其作为空白条目记录或插入到您的数据库中,以便您知道需要在以后填写/翻译的内容,而无需浏览您的网站,试图找到需要翻译文本的所有位置。