C ++使用locales从.lang文件中读取

时间:2014-06-22 03:27:01

标签: c++

我正在创建一个OpenGL游戏,我想让它开放更多语言,而不仅仅是英语,原因很明显。通过浏览和摆弄我的计算机上安装的游戏,我可以看到语言环境在这方面发挥了重要作用,.lang文件,例如与我的世界一起提供的en-US.lang,基本上是带有语言的文本文档代码,“ item.iron.ingot ”例如,等号,然后它对于给定的语言意味着什么,英语按照en-US,所以在这种情况下将是“Iron Ingot ”。好吧,我创建了一个名为en-US.lang的文件,这是它的内容:

item.iron.ingot=Iron Ingot

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

setlocale(LC_ALL, "en-US");

包含locale头文件后。所以我认为我感到困惑的部分是如何使用locales从.lang文件中读取?请帮助SO和一些示例代码将不胜感激。

1 个答案:

答案 0 :(得分:1)

C ++没有内置的资源文件/国际化支持。然而,有各种各样的解决方案。

要支持多语言消息,您应该对如何在文件中编码这些字符串以及如何读取到内存有一些基本的了解。如果你不熟悉,这是一个基本的介绍: “http://www.joelonsoftware.com/articles/Unicode.html

要在运行时保留并加载正确的文本,您需要使用第三方库:GNU gettext http://www.gnu.org/software/gettext/就是这样一个例子。但是还有其他解决方案。

相关问题