我正在考虑创建一个语言表'对于我客户的网上商店,可以轻松编辑。
想法就是拥有这样的表格:
id - key - en - fr - es
____________________________________
1 - greet - Hello - Bonjour - Ola
然后在我的PHP代码中,我只想使用:
来引用它<h1><? echo i18n('greet'); ?></h1>
语言表大约有500行,有时是单词,有时是句子。
每次调用i18n函数时,我都不想进行SQL调用,每页可能需要30..40次。
有没有办法分析当前页面,用所需的键进行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。