如何在PHP网站中包含不同的语言?

如何在PHP网站中包含不同的语言?,php,Php,在我创建的网站中,我希望包括几种语言 下面是我如何确定我应该展示什么语言 <?php $pagename = $_SERVER["REQUEST_URI"]; if (strpos($pagename,'?en') !== false) { echo 'english'; here is when I have to include a language template file for english langu

在我创建的网站中,我希望包括几种语言

下面是我如何确定我应该展示什么语言

    <?php
    $pagename = $_SERVER["REQUEST_URI"];
       if (strpos($pagename,'?en') !== false) 
         {
            echo 'english';
here is when I have to include a language template file for english language.
         }
    ?>
我应该如何包含一个语言文件才能使其工作

$main_description ="this is the main description written in english"

您可以使用类似于您拥有的if语句的内容,并将特定文件包含在所有变量中

switch ($_GET['lang']) {
    case "en":
        include "lang/en.php";
        break;
    case "es":
        include "lang/es.php";
        break;
    default:
        include "lang/en.php";
}
但是在这里,您的所有字符串都将在变量中,您必须小心不要在其余代码中使用/覆盖这些变量


提供了一个非常简单且易于操作的示例,说明如何使用脚本加载并查找所需文本并返回翻译文本的JSON编码语言文件。

您可以使用类似于if语句的内容,并将特定文件与所有变量一起包含在内

switch ($_GET['lang']) {
    case "en":
        include "lang/en.php";
        break;
    case "es":
        include "lang/es.php";
        break;
    default:
        include "lang/en.php";
}
但是在这里,您的所有字符串都将在变量中,您必须小心不要在其余代码中使用/覆盖这些变量


提供了一个非常简单且易于遵循的示例,说明如何使用脚本加载的JSON编码语言文件,找到所需文本并返回翻译文本。

如果您在开发过程中没有太多进展,我建议使用支持国际化的框架

例如,Codeigniter具有


或者你可以实现一些类似于他们的东西

如果您在开发过程中进展不太快,我建议您使用支持国际化的框架

例如,Codeigniter具有


或者你可以实现一些类似于他们的东西

不要使用文件,创建一个数据库,如下所示:

id               | en              | de             | es
---------------------------------------------------------------------
MAIN_DESCRIPTION | English desc .. | German desc .. | Spanish desc ..
MENU_1           | English des2 .. | German des2 .. | Spanish des2 ..
得到正确的代码后,只需加载正确的表即可

if ( strpos( $pagename, '?en' ) !== false ) {
  $lang_code = 'en';
} elseif ( strpos( $pagename, '?de' ) !== false ) {
  $lang_code = 'de';
...
}

$query = "SELECT " . $lang_code . " FROM texts WHERE id = MAIN_DESCRIPTION";
等等


注意:不要直接在查询中插入变量,这将导致错误的
查询注入
尝试。

不要使用文件,创建如下数据库:

id               | en              | de             | es
---------------------------------------------------------------------
MAIN_DESCRIPTION | English desc .. | German desc .. | Spanish desc ..
MENU_1           | English des2 .. | German des2 .. | Spanish des2 ..
得到正确的代码后,只需加载正确的表即可

if ( strpos( $pagename, '?en' ) !== false ) {
  $lang_code = 'en';
} elseif ( strpos( $pagename, '?de' ) !== false ) {
  $lang_code = 'de';
...
}

$query = "SELECT " . $lang_code . " FROM texts WHERE id = MAIN_DESCRIPTION";
等等


注意:不要直接在查询中插入变量,这将导致错误的
查询注入
尝试。

您可能需要为每个模板编写不同的语言,只包含该文件而不是英文文件

如果我可以推荐的话,你在你的网站上试过这个吗?


可能会使您的工作更轻松。

您可能需要为每个模板编写不同的语言,只需包含该文件而不是英文文件

如果我可以推荐的话,你在你的网站上试过这个吗?


可能会让你的工作更轻松。

事实上的国际化标准方法是()。

事实上的国际化标准方法是()。

你有没有尝试过用谷歌搜索类似
php本地化的东西?
?看看
Gettext
:我对php/GNU Gettext()你有没有试过用谷歌搜索类似于
php本地化
?看看
Gettext
:我对php/GNU Gettext有很好的体验()谢谢你。我想我现在将使用这个解决方案,但是我得到了这个错误
解析错误:语法错误,意外的T_BREAK
啊,是的,默认情况下没有BREAK语句。行也应以分号结尾。我的坏毛病,修好了。谢谢你。我想我现在将使用这个解决方案,但是我得到了这个错误
解析错误:语法错误,意外的T_BREAK
啊,是的,默认情况下没有BREAK语句。行也应以分号结尾。我的坏毛病,修好了。