嵌入式系统上的gettext?

时间:2011-03-14 14:39:41

标签: c embedded gettext

小型嵌入式系统是否存在最小的gettext实现?我需要将我的应用程序翻译成几种不同的语言。该应用程序在具有FreeRTOS和最小libc的50MHz ARM7 CPU上运行,但没有文件系统。我查看了GNU gettext工具,但在我的平台上移植libintl的任务看起来有点令人生畏。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

本地化可能是嵌入式系统的巨大痛苦。有几件事要先考虑:您的翻译语言是否需要备用字符集?您是在显示文本到图形显示器还是串行控制台?

如果翻译语言集相对较小且文本字符串集定义良好,则可能会避免使用完整的翻译库。我继承了一个使用一组特定于语言的字符串表的嵌入式产品。每个文本元素在表中都有一个位置,因此可以按照语言,然后按元素在2D表中查找特定的翻译文本。 (这些表存储在此应用程序的ROM中。)

如果你走这条路,还有许多其他问题需要考虑。有些语言可以比英语更简洁地表达内容。德语是一个很好的例子 - 简单的短语可以采用句子般的长度。因此,您应该为一个文本元素在语言与语言之间的长度差别很大的情况做好准备。在我继承的应用程序中,这是通过将表扩展到3D以使文本元素可以具有多个“行”来完成的。当然,文本布局(缩写,句子长度,分页等)也是如此。

如果ROM空间有限,您可以考虑翻译短语片段,然后根据需要将它们粘贴在一起。这种所谓的字符串合并方法可能很棘手,因为所需的本地化短语可能会笨拙地转换为片段。换句话说,如果你将翻译文本的片段粘贴在一起,请为“Engrish”做好准备。 Babelfish等人可以提供帮助 - 但是辩护是由母语人士对最终产品进行的良好的国内评估。 (注意:母语人士应该代表“平均”方言。)

答案 1 :(得分:1)

如果你正在驾驶液晶显示器,那么看看EasyGui可能是值得的 - www.easygui.com - 因为它有一个翻译模块,可以很容易地管理翻译。

您可以查看PC上的显示布局并动态更改语言,检查文本是否适合分配的空间。

还有一个翻译插件,您可以将其发送给翻译人员,以便他们可以在屏幕上查看各种语言及其工作方式。