我对本地化文件进行了一些搜索,看到我们可以使用 .po 文件或 gettext,但是,是否有任何教程或示例可以在 javascript 和 php 中工作的独特解决方案。
我只想为每种语言维护一个本地化文件,该文件适用于 JS 和 PHP 语言。
如果有人可以指出一些链接或示例,将不胜感激...
我对本地化文件进行了一些搜索,看到我们可以使用 .po 文件或 gettext,但是,是否有任何教程或示例可以在 javascript 和 php 中工作的独特解决方案。
我只想为每种语言维护一个本地化文件,该文件适用于 JS 和 PHP 语言。
如果有人可以指出一些链接或示例,将不胜感激...
是的,有。前段时间我成功使用了gettext.js,它在 .json 或 .po 文件上运行。这样,您只需维护一个翻译源。我使用它的网页位于此处,因此您可以查看我是如何做到的。祝你好运!
我发现当可翻译文本在 JS 函数中编码时,这通常表明设计存在问题。JS 旨在实现逻辑,而不是内容。内容应该由 PHP 提供(通常使用模板引擎)并且应该由 JS 使用。这样,您只需要一个 PHP 本地化解决方案。
如果(总是发生异常)你真的需要在 JS 例程中翻译一个短语,你可以使用 ajax 调用来获取翻译。这也简化了对保存翻译标记的字典的访问,因为它再次由 PHP 完成。字典可以保存在一个地方。
首先,尽可能避免使用 gettext。它流行且稳定,但它给翻译维护带来了一些负担:您需要更改源字符串,当这种情况发生时,gettext 需要更新所有消息键,这可能会弄乱现有的翻译。从长远来看,具有恒定消息密钥的方法更容易维护 - 您需要记住删除不再使用的密钥,但这是一个非常小的负担。
您可以为 PHP 和 JavaScript 使用相同的翻译存储格式。如果您按照我的建议使用基于密钥的方法,它可能是一些基于 JSON 的格式。JSON 在 PHP 和 JavaScript 中都很容易访问。
有几个现成的 JavaScript 库用于基于 JSON 的国际化。我碰巧是这样一个库的开发人员:https ://github.com/wikimedia/jquery.i18n 。使其适应 PHP 应该相当容易。