我正在开发一个小项目,包括后端的注册,登录,密码重置和用户管理.我必须为不同的语言创建翻译文件,而不是使用像gettext这样的东西(我一无所知),我决定为每个语言文件使用静态数组实现一个非常简单的方法,如下所示:
function plLang($phrase) {
$trimmed = trim($phrase);
static $lang = array(
/* -----------------------------------
1. REGISTRATION HTML
----------------------------------- */
'LNG_1' => 'some text',
'LNG_2' => 'some other text',
etc. ...
);
$returnedPhrase = (!array_key_exists($trimmed,$lang)) ? $trimmed : $lang[$trimmed];
echo $returnedPhrase;
}
Run Code Online (Sandbox Code Playgroud)
它运行正常,在这个阶段非常快,但我的标记现在充满了php语言标签,我不确定我做出了正确的决定.我以前从未这样做过,所以我不知道我期待什么.似乎在我完成所有工作之后,这个文件将长达一英里.
这是一个很好的方法吗?你有什么更好的建议吗?
谢谢!
小智 6
这就是我在我的cms中做的事情:
each插件/程序/实体(你的名字)我开发,我创建一个/translations文件夹.JSON.parse他们)a data column of TEXT datatype)json_decode()整个结果获取一次; 然后将它放在$ _SESSION中,以便下一次获得当前所选语言的flash-speed翻译字符串.整个事情是在我考虑性能和兼容性的情况下开发的.
在你的情况下,这样的文件中的行可能是这样的:
在en.txt中
{"id":"LNG_1","str":"My word"}
Run Code Online (Sandbox Code Playgroud)
在de.txt中
{"id":"LNG_1","str":"Mein Wort"}
Run Code Online (Sandbox Code Playgroud)
当前语言可以存储在会话中,如$ _SESSION ["language"]; 并以此为出发点.然后,您可以阅读以下翻译:
lang("LNG_1");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10874 次 |
| 最近记录: |