为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Winforms中制作多语言应用

如何在Winforms中制作多语言应用

哔哔one 2019-12-05 16:10:54
我有一个应用程序,需要在该应用程序中使用两种语言(例如,英语和阿拉伯语),但是我不知道该怎么做。有人可以帮我吗?我需要C#Windows窗体中的一些示例。
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

在某些情况下,使用资源文件可能会更容易。

  1. 将新的资源文件添加到Visual Studio中的项目。例如。en.resx对于英语,fr.resx对于法语。

  2. 打开资源文件,在字符串中,命名您的字符串,然后在值单元格中放置其他翻译。例如:next station的在值en.resx就是next stationfr.resx可以Prochaine station

  3. 在代码中,用于public static ResourceManager rm = new ResourceManager("WindowsFormsApp1.en_local", Assembly.GetExecutingAssembly()); 选择语言资源。

  4. 当您需要向应用程序输出任何字符串时,请使用function GetString(),例如label1.Text = rm.GetString("welcome");


查看完整回答
反对 回复 2019-12-05
?
开心每一天1111

TA贡献1836条经验 获得超12个赞

wwjih123的答案中缺少一些内容。


在VS2017中


首先,首先在项目根文件夹(不在Resources文件夹中)中创建资源。命名为lang_en,lang_tr,lang_fr等...


2-然后对象属性窗口将“生成”操作保留为“嵌入式资源”


在lang_tr.resx文件的3边添加土耳其语的新字符串lbl_error和值“ Hata”(无论您喜欢什么)


4-在类内部定义变量为:


    ResourceManager res_man;    // declare Resource manager to access to specific cultureinfo

在InitializeComponent()之后进行5 in类初始化;


Console.WriteLine("You are speaking {0}", 

System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName);

res_man = new ResourceManager("MyApp.lang_"+ System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, Assembly.GetExecutingAssembly());


lblError.Text = res_man.GetString("lbl_error");

如果您的ui语言是土耳其语,它将自动加载lang_tr.resx,如果是英语,则将加载lang_en.resx文件,依此类推...


祝好运


查看完整回答
反对 回复 2019-12-05
  • 3 回答
  • 0 关注
  • 497 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信