gettext的替代方法?
是否有任何一般的本地化/翻译替代gettext?gettext的替代方法?
开源或专有无关紧要。
当我说gettext的替代方法时,我的意思是一个国际化的库,有一个本地化的后端。
我问的原因是(除其他外)我发现gettext的方式稍微麻烦和静态,主要在后端位。
首先我认为gettext
是目前最好的之一。
你可以看看Boost.Locale
,它可以提供更好的API并使用gettext
的字典模型:http://cppcms.sourceforge.net/boost_locale/docs/(不是Boost的官方部分,仍然是测试版)。
编辑:
如果你不喜欢gettext
......
这些翻译技术:
- OASIS XLIFF
- GNU gettext的PO /月文件
- PO SIX目录
- Qt的TS/TM的文件
- Java属性,
- Windows资源。
现在:
- 最后两位总废话...很难使用翻译和维护,不支持复数形式。
- Qt ts/tm - 需要使用Qt框架。有非常相似的模型
gettext
。不错的解决方案,但仅限于Qt。在通用程序中不太有用。 - POSIX目录 - 没有人使用它们,没有复数形式的支持。废话。 OASIX XLIFF - “标准”解决方案取决于XML,即使是ICU也需要编译为特定的ICU资源才能使用。有限的翻译工具,我不知道任何支持XLIFF的库。复数形式不易使用(ICU仅在4.x版本中包含一些支持)。
现在我们有什么?
GNU gettext
,用途广泛,具有很大的工具,具有极大的复数形式的支持,在翻译界很受欢迎...
作出这样的决定,你真的认为gettext的也不是那么好解决办法?
我不这么认为。你还没有和其他解决方案一起工作,所以试着首先了解它是如何工作的。
看,这是我正在寻找的答案。一些实际的选择。无论他们是好还是坏,无关紧要,只是我可以看到不同的做事方式。显然没有那么多,但那不是重点。 ;) – 2010-02-03 07:25:39
翻译这些日子不是在记事本中完成的,有用于本地化和开发的所见即所得工具。 对于Java或Windows资源来说,翻译和维护都比其他任何方面都难。 – 2010-02-03 09:07:01
gettext中的复数形式对于某些语言来说还不够,反正在字符串中填充复数形式只是极客可以处理的东西,而不是普通的翻译(具有语言背景)。 Java属性可以处理复数形式,请参阅MessageFormat 示例:“There {0,choice,0#is no files | 1#is one file | 1
关于gettext()和所有那些pro-gettext()的有趣评论。
我并不是说它在大多数情况下不能正常工作,但我试图用它来管理一个项目,并很快被使用它的难度所压倒。也许今天有翻译的用户界面,但我甚至没有看。字符串的提取和合并只是不适合我。
现在,我感谢Artyom谈论XLIFF,这对我的环境来说是一个更好的解决方案,因为一切都是XML。哦!那里有优秀的编辑。但是如果你喜欢gettext(),你不会找到它们。 8-)
我会建议在看这一个例子:
https://sourceforge.net/projects/wordforge2/
现在,这可以使程序员的梦魇,使这一切工作,但我们要的是一个梦想成对于翻译者来说这是真的(因为我可以告诉你用gettext()我不得不做所有的工作,所以编程人员不需要做任何工作!)
我知道这个帖子是旧的。有非常好的图书馆翻译工具包(http://toolkit.translatehouse.org/)。 gettext的一点是:你如何定义字符串来翻译和字符串不去。你如何提取这些字符串。如何导入长时间保持最新的翻译字符串。这不是关于你用来翻译的编辑器。您可以使用脚本,无需手工将po转换为XLIFF,然后使用Toolkit返回。 – Pihhan 2013-11-05 14:08:59
是啊,我的经历是在2004年左右,当时我不得不手工完成所有的工作以便翻译。今天我们有更好的工具! – 2013-11-06 06:34:15
Zend支持gettext *。 po/* .mo文件和更多格式。 许多Apache服务器都缓存翻译文件,因为gettext是作为模块实现的,必须重新启动服务器才能刷新翻译数据。
在Zend实现避免了这一点,并支持更多的格式:
http://framework.zend.com/manual/1.12/en/zend.translate.html
究竟的gettext的你觉得累赘? – 2010-02-02 16:14:33
很难指出某些特定的东西,但这与它感觉效率低下的工作流程有关。 – 2010-02-02 16:18:56
我不认为你会找到更好的东西。它有非常好的工具来处理翻译和消息提取等等。这是最流行的一种,可能你只需要好好学习。 – Artyom 2010-02-02 16:20:59