PHP优化网站语言包

时间:2014-05-22 19:44:33

标签: php mysql internationalization translation

我正在考虑创建一个语言表'对于我客户的网上商店,可以轻松编辑。

想法就是拥有这样的表格:

id  - key  -  en   -   fr    - es
____________________________________
1  - greet - Hello - Bonjour - Ola

然后在我的PHP代码中,我只想使用:

来引用它
<h1><? echo i18n('greet'); ?></h1>

语言表大约有500行,有时是单词,有时是句子。

每次调用i18n函数时,我都不想进行SQL调用,每页可能需要30..40次。

有没有办法分析当前页面,用所需的键进行1次查询? 我应该每次只加载整个语言表(只是键和使用过的语言)吗?

如何优化此功能?

1 个答案:

答案 0 :(得分:0)

在您开始这个项目时,看看WordPress国际化/本地化(I18N / L10N)系统绝对是值得的。我成功地使用它与翻译工作本地化几个相当复杂的WordPress PHP代码块。 WordPress本身有几十种国家语言版本。

http://codex.wordpress.org/I18n_for_WordPress_Developers

它基于成熟而优秀的GNU gettext系统进行翻译。

http://www.gnu.org/software/gettext/

它基本上是通过定义一组用于封闭文本的函数来实现的。您引用的示例将以这种方式完成

<h1><? echo __('greet'); ?></h1>

或者这样,作为echo __()

的快捷方式
<h1><? _e('greet'); ?></h1>

在他们的功能套件中有相当多的细节,您可以在WordPress文档中阅读。

您将找到优秀的开源和商业软件产品,以协助程序员和翻译人员生成必要的数据。

在WordPress中,各种翻译都存储为文本文件。没有理由你无法适应这种情况将数据放入RDMS。