我想我的C#(winforms)应用程序是多语言的。我的想法是:多语言winforms应用程序
- 我将我在一些文本文件(S),每个“句”的翻译或短语都会有它独特的ID(整数)
- 的应用程序,我会的启动遍历我应用中所有窗体上的所有控件(我想这应该在每个窗体的'Load'事件处理函数中完成),并且我将测试它的控件类型
- 即,如果它是按钮或菜单项目,我会读它的默认'文字'属性,找到这个短语在一个文本文件中,读取它的唯一ID,并通过此ID将查找翻译短语在(其他)文本文件
- 然后我将覆盖“文本”与翻译的短语控制的财产
这使我有短语每个语言单独的文本文件(易于维护的个人翻译未来 - 只有1个文本文件)
- 我想听听你的意见 - proffesionals如果有一些更好/更容易/更快/更'亲'的方式如何做到这一点。
- 什么格式的翻译文本文件我应该使用(纯文本,XML,ini ....) - 它应该是人类可读的。我不知道在XML中找到一个词组是否比使用纯文本文件逐行搜索给定短语/字符串更快?
- 编辑 - 我希望用户(社区)要能没有我的交互翻译我的应用程序为他们成他们的母语(这意味着微软的资源是退出游戏)
非常感谢你提前。
CLOSED - 我的解决办法: 看起来像我住在我原来的概念 - 每一个短语将在纯文本文件的单独行 - Unicode编码(和ID在该行的开始)。我在考虑删除ID,也只使用行号,但它需要高级文本编辑器(记事本显示没有行号),如果有人偶然点击“删除行”的快捷方式,并没有注意到,整个应用程序会发疯:)
//sample of my translation text file for one language
0001:Text of my first button
0002:Text of my first label
0003:MessageBox title text
...etc etc
请注意,您可能需要调整标签的位置和按钮也取决于语言,因为与原始文本相比,某些翻译可能会非常长。 (翻译的标准方法已经迎合了) – Kuffs 2012-04-10 07:13:05
是的,我知道。但为了我的目的,可以不时打开应用程序,切换到每种语言并检查外观。我只有几个表格。如果太长,我会编辑视觉并重新编译。这对我来说会比较少工作,比每次有人给我发新短语时重新编译。但无论如何感谢 - 非常好的一点! – Enriqe 2012-04-10 10:35:38