我将我的 C++ iOS 游戏引擎移植到了 Android 上,它在返回到 Android 2.2 的设备上运行良好,但在支持本地化时遇到了问题。
C++ 引擎加载使用 poedit 创建的 .po (gettext) 本地化文件,并将它们放入std::wstring
. 这在我支持的其他平台上工作得非常好,但在 Android 上不起作用,因为 NDK 不正确支持 wchar/wstring。有关我当前(非常基本)的实现,请参见github 。
现在,我想我可以手动将多字节字符串转换为自定义的std::basic_string<uint_32>
. 如建议 - Android NDK C++ 'wstring' 支持
这在大多数情况下都很好,但是人们如何处理字符串格式?虽然我的大部分字符串只是文本,不需要任何格式,但有些字符串类似于“干得好 %1$s,你得分 %2$d! ”。
人们如何在没有swprintf
支持的情况下处理这些字符串的格式?
是否有推荐的方法来可靠地处理跨平台本地化而不依赖 wchar/wstring 支持(我认为无论如何都不推荐 - 但似乎没有人建议不依赖不适合的 20MB+ 库的可行替代方案移动的)?
非常感谢。