2011-03-14 185 views
2

是否存在用於小型嵌入式系統的最小gettext實現?我需要將我的應用程序翻譯成幾種不同的語言。該應用程序運行在具有FreeRTOS和最小libc的50MHz ARM7 CPU上,但沒有文件系統。我已經看過GNU gettext工具,但是在我的平臺上移植libintl的任務看起來有點令人生畏。有任何想法嗎?嵌入式系統gettext?

回答

5

本地化可能是嵌入式系統中的巨大痛苦。首先要考慮幾件事情:您的翻譯語言是否需要替代字符集?你是否將文本顯示到圖形顯示器或類似串行控制檯的東西?

如果翻譯語言的集合相對較小,並且文本字符串的集合已定義良好,則可以避免使用完整的翻譯庫。我繼承了一個使用了一組特定語言字符串表的嵌入式產品。每個文本元素在表格中都有一個位置,因此可以通過語言在2D表格中查找特定的已翻譯文本片段,然後按元素查找。 (在這個應用程序中,這些表存儲在ROM中)。

如果你走這條路線,還有其他許多問題需要考慮。有些語言可以比英語簡單地表達內容。德語是一個很好的例子 - 簡單的短語可以採用類似句子的長度。因此,您應該準備好從一種語言到一種文本元素在長度上有很大差異的情況。在我繼承的應用程序中,這是通過將表格擴展爲3D來完成的,這樣文本元素可以有多個「行」。當然,文字佈局(縮寫,句子長度,分頁等)也是如此。

如果ROM空間有限,您可能會考慮翻譯短語片段,然後根據需要將它們粘貼在一起。這種所謂的字符串整合方法可能會非常棘手,因爲所需的本地化短語可能會笨拙地轉化爲片段。換句話說,如果您將翻譯的文本片段粘貼在一起,請爲「Engrish」做好準備。 Babelfish等可以提供幫助 - 但防禦措施是由母語人士對最終產品進行的國內審查。 (注意:母語應代表一種「平均」方言。)

1

如果您駕駛的是液晶顯示器,可能需要查看EasyGui - www.easygui.com - 因爲它有一個翻譯模塊,使其非常容易管理翻譯。

您可以查看PC上的顯示佈局,並隨時更改語言,檢查文本是否適合分配的空間。

還有一個翻譯插件,這是一個可以發送給翻譯的EXE,以便他們可以看到各種語言以及它在屏幕上的工作方式。