有没有更好的方法在PHP中进行语言字符串表格?

时间:2016-05-18 14:26:35

标签: php arrays string

编辑:使用此post标记为重复 - 但是,这是使用用户选择的cookie sesssion。此方法不是基于cookie或用户选择,而是基于开发人员的决定。是的,它很容易被修改为包含该用户的选项,但在我的问题中并非如此。如果有任何问题只是证实了我这样做的方法。如果主题已关闭,请重新打开。谢谢:))

所以我正在构建一个模板化的网站风格,我希望包含一个语言字符串表,因此构建器可以定义他们的语言或多种语言..

这就是我所拥有的,如果有更好的方法,我很好奇。我没有在网上找到太多关于它的内容,我在这里找到了一个关于设置类来执行此操作的线程,但该信息不起作用。所以这就是我提出来的。

define(LANG,"esp");
global $lang;
$lang = array (
                    "common" => array(
                          "menu" => array("eng"=>"Menu","esp"=>"Menú"),
                          "close"  => array("eng"=>"Close","esp"=>"Cerca"),
                          "home" => array("eng"=>"Home","esp"=>"Casa"),
                    ),
                    "search" => array(
                        "submit" => array("eng"=>"Submit","esp"=>"Enviar"),
                        "notfound" => array("eng"=>"Item not found","esp"=>"Objeto no encontrado"),
                    )   
);

这是我为它写的函数,你也可以使用数组调用,我将在下面显示

    function stringLang($cat,$word,$language = LANG) {
       global $lang;
       $str = $lang[$cat][$word][$language];
       return $str;     
   }

所以它可以被<?php echo $lang['common']['close'][LANG]; ?>;调用,它将返回“Cerca”

或者您可以使用该功能调用将返回“Casa”的<?php echo stringLang('common','home'); ?>

我的问题是,这是一个好的方法吗?没有使用一堆定义,有哪些更好的方法?谢谢!

0 个答案:

没有答案