编程中是否有语言转换标准?如果这是一个广泛的问题,那么特别是我的例子:
我用c ++& amp ;;设计了一个程序。硬编码的英语单词,但我希望适应这一点,以适应在意大利语中显示相同的单词。我正在考虑使用像这样的简单Lang.ini文件;
English=Language
Do=Fare
Column=Colonna
etc
加载此&并在运行时换掉单词。没有与网络相关的内容。
有没有更好的方法来做到这一点&我应该注意哪些问题?
感谢。
编辑: 澄清: 我希望在我的程序中使用硬编码的英文单词自动转换为用户PC上使用的任何语言。
答案 0 :(得分:0)
可以为语言加载资源,并在资源中保存字符串。 https://msdn.microsoft.com/en-us/library/cc194810.aspx
可用的标准lnaguage宏:
WORD lang_id = MAKELANGID( primary, sublang )
BYTE primary = PRIMARYLANGID( lang_id )
BYTE sublang = SUBLANGID( lang_id )
加载资源:
HRSRC hrsrc = FindResourceEx(hMod, RT_ICON, id, langID );
HGLOBAL hglb = LoadResource(hMod, hrsrc);
LPVOID lpsz = LockResource(hglb);
语言初始化代码:
static DWORD dwJapanese =
MAKELCID(MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT));
// load Japanese resource
SetThreadLocale(dwJapanese, SORT_DEFAULT)
使用LoadString函数,可能的写包装函数,方便使用像tihs: http://www.codeproject.com/Tips/86496/Load-a-Windows-string-resource-into-a-std-string-o
答案 1 :(得分:0)
你所寻找的东西被描述为“国际化”(或者,对于那些有点讽刺的人来说,就是“国际化”)。使用谷歌可以找到相当数量的介绍性材料。
该主题不仅仅涉及翻译单词。还有关于如何输出数值,表示货币等等的考虑因素。
标准C和C ++支持此类功能。关于该主题的文章(来自C / C ++用户期刊)是http://www.angelikalanger.com/Articles/Cuj/Internationalization/I18N.html
与C ++不同,Windows也有自己的功能,可用于应用程序的国际化。一个起点是https://msdn.microsoft.com/en-au/library/windows/desktop/dd318661%28v=vs.85%29.aspx