【问题标题】:How to get same variable from multiple resource files如何从多个资源文件中获取相同的变量
【发布时间】:2015-03-06 08:40:04
【问题描述】:

我正在开发一个关于使用多种语言的小项目。

我有三个资源文件

  1. MainForm.resx // 默认版本 => 英文
  2. MainForm.US.resx //英文版

我定义

  1. MainForm.JP.resx // 日文版

我定义

我想获取每个变量的值(btnCancel,btnLogin,lbPassword,lbUsername,...)

现在,我愿意

  • 从 MainForm.US.resx,我构建到 MainForm.US.designer.cs(MainForm_US 类)
  • 从 MainForm.JP.resx,我构建到 MainForm.JP.designer.cs(MainForm_JP 类)
  • 我创建了另一个类 MainFormResource.cs。在这里,我将检查 Thread.CurrentThread.CurrentUICulture.Name 值
  • 如果等于“ja-JP”,我会从 MainForm.JS.designer.cs(MainForm_JP 类)中获取值

  • 如果等于“en-US”,我从 MainForm.US.designer.cs(MainForm_US 类)中获取值

但如果我的项目很大,我会花更多时间去做。

如何获取 lbUsername, lbPassword, ...的值?

p/s:我在 Visual Studio Ultimate 2012

中使用 Windows 窗体应用程序

【问题讨论】:

  • 你试过阅读documentation吗?
  • 感谢@NightOwl888,但我的应用程序使用的是winform。

标签: c# .net resx multiple-languages


【解决方案1】:

创建 RESX 文件时,您只需要激活根文件(在您的情况下为 MainForm.resx)上的自动代码生成。

Visual Studio 将生成包含RescourceManager 用法的代码。

附属程序集也将自动生成。

正如 NightOwl888 已经提到的,您应该阅读有关使用 Resx 文件和globalization / .NET 本地化功能的文档

【讨论】:

  • 感谢您的分享。但是文档的 NightOwl888 与 ASP.NET 一起使用
  • 看看这个question,它应该可以解决你的一般问题。
  • 回复:“附属程序集也将自动生成。”根据我对附属程序集的(有限)经验,情况并非如此。您的解决方案中的每个附属程序集必须有一个项目。
  • 不,包含每种文化(de、en、en-US 等)资源的附属程序集将自动生成。
  • 再次感谢@RobinGüldenpfennig。它对我有用(以上评论 +1)
猜你喜欢
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 2019-10-24
  • 2017-03-23
  • 2015-01-12
相关资源
最近更新 更多