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

发布于 2024-11-28 10:49:12 字数 545 浏览 1 评论 0原文

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

<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
}

My site has a way of changing its language, and each time I change it I see something like this at the top of the source code:

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

I think using the URL may also work:

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

or maybe this:

?lang=es
?lang=en

because this works too:

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

I would like to know what's the best way of using that to make a php if statement (or switch statement).
For instance:

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


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霓裳挽歌倾城醉 2024-12-05 10:49:12

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

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

// ...

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

If you have ?lang=en you can simply get via the $_GET global variable. However, you should first encapsulate the logic within a function.

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

// ...

if (getLang() == 'en') {
    // ...
}
菊凝晚露 2024-12-05 10:49:12

编写一个开关(可以在他们的文档中轻松查找) ):

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

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

echo T("sample text");

,然后 T 函数会用翻译后的文本替换该文本。这样你就不会让整个网站都充斥着 switch 语句。翻译可以存储在数据库中。如果缺少翻译,可以将其记录或作为空白条目插入数据库中,以便您知道稍后需要填写/翻译什么,而无需深入您的网站尝试查找所有需要翻译文本的位置。

To write a switch (which could have easily been looked up in their documentation):

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

Although this probably isn't the best approach to doing site translation. I haven't done much multi-language stuff myself, but I see a lot of frameworks wrap blocks of text in functions like

echo T("sample text");

And then the T function would replace that text with the translated text. That way you don't have you entire site littered with switch statements. The translations can be stored in a database. If there's a missing translation, that can be logged or inserted as a blank entry into your DB so that you know what you need to fill in/translate later without digging through your site trying to find all the places where text needs to be translated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文