PHP本地化

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP本地化脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个小项目,包括注册,登录,密码重置和后端用户管理.我必须为不同的语言创建翻译文件,而不是使用像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;
}

它工作正常,在这阶段非常快,但我的标记现在充满了PHP语言标签,我不确定我做出了正确的决定.我以前从未这样做过,所以我不知道我期待什么.似乎在我完成所有工作时,这个文件将长达一英里.

这是一个很好的方法吗?你有什么更好的建议吗?

谢谢!

这就是我在我的CMS中做的事情:

>对于我开发的每个插件/程序/实体(您的名字),我创建一个/ translations文件夹.
>我把所有的翻译都放在那里,名字如el.txt,de.txt,uk.txt等所有语言
>我将翻译数据存储在JSON中,因为它易于存储,易于阅读,最容易让每个人发布.
>文件可以在文件中轻松进行UTF8编码,而不会弄乱数据库,从而可以在文件模式下读取它们. (只是JSON.parse他们)
>在安装此类插件时,我只需遍历所有翻译并将它们放入数据库中,每个表格行使用每种语言. (等TEXT数据类型的数据列)
>对于每个页面渲染,我只查询一次数据库获取所选语言的行,并调用json_decode()到整个结果以获取它一次;然后将它放在$_SESSION中,以便下次为当前所选语言获取闪速转换字符串.

整个事情都是在我考虑性能和兼容性的情况下开发的.

在你的情况下,这样的文件中的行可能是:

在en.txt中

{"id":"LNG_1","str":"My word"}

在de.txt中

{"id":"LNG_1","str":"Mein Wort"}

当前语言可以存储在会话中,如$_SESSION [“language”];并使用
以此为出发点.
然后,您可以阅读以下翻译:

lang("LNG_1");

脚本宝典总结

以上是脚本宝典为你收集整理的PHP本地化全部内容,希望文章能够帮你解决PHP本地化所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。