标准化语言转换
Standardised Language conversion?
编程中的语言转换有标准吗?如果这是一个广泛的问题,那么专门针对我的例子:
我用c ++和硬编码英语单词设计了一个程序,但我希望对其进行调整以适应意大利语中等效单词的显示。我正在考虑使用像这样一个简单的 Lang.ini 文件;
English=Language
Do=Fare
Column=Colonna
etc
加载这个并在运行时交换单词。没有任何与网络相关的内容。
有没有更好的方法来做到这一点以及我应该注意的任何问题?
谢谢。
编辑:澄清一下:我希望将我在程序中使用的英语单词自动转换为用户PC上使用的任何语言。
你正在寻找的东西被描述为"国际化"(或者,对于那些欣赏一点讽刺的人来说,被描述为"国际化")。 使用谷歌可以找到相当数量的介绍性材料。
该主题涉及的不仅仅是翻译单词。 还有关于如何输出数值、货币表示等的考虑因素。
标准 C 和 C++ 支持此类功能。 一篇关于该主题的文章(来自 C/C++ Users Journal)正在 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
可以加载语言资源,并将字符串保存在资源中。https://msdn.microsoft.com/en-us/library/cc194810.aspx
可用的标准宏:
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函数,可能的写包装函数,以便于使用,如下所示:http://www.codeproject.com/Tips/86496/Load-a-Windows-string-resource-into-a-std-string-o
- 将 C 函数转换为C++语言
- C++ 将字符串数据包转换为 iphdr语言 - 字符串数据包的格式应该是什么?
- 我如何将此C语言语法转换为C
- 将提升 (ASIO) 错误消息转换为自然语言
- (C语言)将RGB转换为HSV和HSV的算法在两者的范围为0-255范围内
- 对于不确定值的无符号字符类型,标准中特殊语言对于左值到右值的转换有什么意义?
- 将代码片段转换为另一种语言 不必要的 = OP
- constchar***是什么意思?它是如何从C语言转换为Java语言的
- OpenGL 着色器语言初始化错误无法从 GLChar 转换为 const
- 在 C 语言中转换C++向量的实现
- 标准化语言转换
- 如何将用Java编写的"ArrayList<ClassNod>"转换为C++程序语言?
- 将C#系统转换为跨平台应用程序的最佳编程语言
- Win32 Api将2个字母(中性)的标识符转换为语言
- Boost语言环境转换
- FormatMessage转换为另一种语言
- 如何在c语言中将void*转换为float**,将void指针转换为float指针
- 使用.net或任何其他语言在内存中进行ghostscript转换
- c语言中的类型提升和转换
- C语言的类型转换