虽然这里已经问了很多类似的问题,但我没有找到我要找的答案..开发多语言应用程序的最佳方法是什么,它应该非常快..而且我不知道我要翻译多少文本。方法1:为我想要支持的每种语言创建所有文本并将其保存在一个数组中,并将该文件包含在任何地方。方法2:使用gettext(.MO、.PO文件)方法3:将所有翻译存储在一个文本文件中并编写一个函数来遍历所有文本并在匹配时显示其值方法4:将所有文本及其翻译存储在数据库中,但我认为它不会比存储在文件系统中更快。方法5:与方法1相同,但我将为每种语言创建多个文件,以保持一切结构化。虽然所有这些都可行,但你们认为哪种方法最快,如果我错过任何方法,请告诉我。
我正在使用gettext设置多语言。因为来自其他语言的所有文本都在编译的.mo文件中。我应该如何攻击网站的搜索功能?任何帮助或方向点将不胜感激。请注意,我之前没有编写过搜索引擎代码...... 最佳答案 据我了解,您希望提供对存储在.mo文件中的信息的搜索;键值对的文本文件。问题在于将特定.mo中的k-v对映射到特定URI。如果你能做到这一点,你可以运行一个脚本来解析.mo文件,并将短语与相关的URI(或其他资源标识符)一起存储在某种数据存储中,例如ApacheSolr或MySQLdetabase(带有全文索引列)。另一种选择是使用
我正在尝试使用支持多种语言的php和javascript(jquery)开发一个网站。我正在尝试获得以下内容:高效:我需要尽可能减少此操作的后端处理。可扩展:在翻译中添加新字符串必须简单实用问题是:我的javascript代码在DOM中动态生成各种元素,需要打印语言文件中的一些字符串。我的实际解决方案是使用gettext在php中,在文档中打印javascript必须使用的字符串:......varLANG={"string1":"","string2":"","string3":"",...};然后我在我的js源中访问LANG,但我不认为这是最好的解决方案...我的问题是:使用与ph
我正在使用Zymic,它是一个很棒的主机,但它不支持phpgettext扩展。我打算在未来购买一些主机,但从现在开始我想要最简单的解决方案来取代gettext的功能,在这种情况下我想显示不同的文本(英语、西类牙语、中文等...)无需修改文件太多(至少不必为每种语言创建分离文件)。我试过这样的事情:当我更改$lang变量时,它起作用了。我是PHP初学者,我想不出一种方法来在浏览器中更改它(通过单击链接)。或者有更好的方法吗? 最佳答案 我会说Zend_translate是当今国际化的最佳选择。它甚至比gettext更好。参见thisS
我负责一个需要*i18n*ed的项目。唯一的问题是原始开发人员在编写代码时没有想到这一点,因此所有字符串都只是“硬编码”。真是一团糟,我一直在看代码,发现了所有这些情况:echo调用中的字符串:echo"我是一个字符串";echo调用中的字符串并与HTML混合:echo"我是一个字符串";代码的非PHP(纯HTML)部分中的字符串。echo调用中的字符串,其中包含PHP变量:echo"此列表中有$number个项目";我的问题是:您知道有什么程序可以自动完成将所有这些转换为gettext_()调用的繁琐工作吗?项目比较大,想自己写(以后肯定还会遇到这个问题),但又不想重新发明轮子。非常
我正在使用gettext对我的php文件进行国际化。我有两台服务器;一个沙箱服务器和一个发布服务器。在沙箱服务器中,locale/LC_MESSAGES/en之类的目录不起作用,我应该改用locale/LC_MESSAGES/en_GB。但是对于“en_GB”,它在我的生产服务器上不起作用,而“en”工作正常。对于葡萄牙语等某些语言,我有pt_PT和pt_BR(巴西葡萄牙语)。所以我更喜欢使用“A_B”结构。我不知道gettext是如何检测到这些文件夹的。是否有使用相同文件夹结构的标准方法? 最佳答案 如果您在Linux上运行您的代
如何从.po或.mo文件中提取所有翻译?我需要创建一个包含所有翻译的数组。 最佳答案 您可以使用ZendTranslate来自ZendFramework的模块。$translate=newZend_Translate('gettext','/path/to/english.mo','en');$translate->addTranslation('/path/to/german.mo','de');echo$translate->_("Example");$translate->setLocale('de');echo$transl
在寻找快速但舒适的Web服务器时,我进入了EmbedThis(TM)AppWeb(TM)HTTP服务器的主页。这个有2个许可模型,GPLv2和一个带有支持的商业模型。乍一看它看起来不错:占用空间不是太大,速度很快并且有很多配置选项。最重要的是使用内置PHP库快速执行PHP。不幸的是,这个PHP库并不包含所有选项,尤其是我需要I18N的“gettext”。我的目标平台是基于ARMCPU的嵌入式设备上的Linux。有没有人有上述问题的经验?亲切的问候,安迪 最佳答案 不是lighttpd在嵌入式平台上运行?它通过FastCGI支持PHP
我有一个关于gettext的问题,在我的本地测试机器上它工作得很好,在生产服务器上它没有。gettext似乎避免显示任何类型的错误,无论它是否有效。有什么方法可以调试,或者强制它记录它所做的一切?谢谢 最佳答案 如果有人从搜索引擎遇到这个问题。在我的例子中,问题是php没有安装任何语言环境!没有语言环境它就不能工作,所以总是检查这个,因为有时更新php会重置语言环境。 关于phpgettext调试,我们在StackOverflow上找到一个类似的问题: htt
我目前正在努力使用PHP中的gettext。Gettext使用缓存。这是一件好事,但当我更新我的翻译时,我无法访问它们,这很烦人。我读到,除了重新启动网络服务器之外,我们无法刷新缓存,这不是一个可行的解决方案。其他人使用不同名称的.mo文件的副本来强制重新加载它们。第一个问题我正在搜索gettext将文件缓存在内存中的时间,以考虑我的应用程序在字符串出现之前等待该时间是否可以接受。但是我找不到那个信息...持续时间是无限的吗?第二个问题我无法想象像gettext这样受欢迎的项目还没有解决这个问题的方法。它是特定于PHP的吗?提前感谢您的答复。问候。 最佳答案