2014-06-22 45 views
0

我正在創建一個OpenGL遊戲,並且我希望將它打開到更多語言而不僅僅是英語,原因很明顯。從四處觀看並擺弄我的電腦上安裝的遊戲,我可以看到語言環境在這方面起着重要作用,並且.lang文件(例如隨Minecraft附帶的en-US.lang)基本上是具有語言的文本文檔代碼,「 item.iron.ingot」例如,等號,然後它對於給定的語言意味着什麼,英語是en-US,所以在這種情況下將是「Iron Ingot」。嗯,我創建了一個文件,該文件我命名爲en-US.lang,這是它的內容:使用語言環境從.lang文件中讀取C++

item.iron.ingot=Iron Ingot

在我的C++的主要方法,我把:

setlocale(LC_ALL, "en-US");

包括區域設置頭文件之後。所以我想我感到困惑的部分是如何使用語言環境從.lang文件讀取?請幫助,所以一些示例代碼將不勝感激。

+0

在程序開始時調用'setlocale(LC_ALL,「」);'。這將區域設置設置爲用戶首選的區域設置。 –

回答

1

C++不附帶對資源文件/國際化的內置支持。然而,有各種各樣的解決方案。

爲了支持多語言消息,您應該對如何在文件中編碼這些字符串以及如何將其讀入內存有一些基本的瞭解。這是一個基本的介紹,如果你不熟悉: 「http://www.joelonsoftware.com/articles/Unicode.html

爲了保持並加載在運行時正確的文本,您需要使用第三方庫:GNU gettext的http://www.gnu.org/software/gettext/就是這樣一個例子。但是,還有其他解決方案。