Wpf 我需要更新一个应用程序,使其在法语中可用,只需按下一个按钮,即可使用存储在.resx文件中的预翻译单词

Wpf 我需要更新一个应用程序,使其在法语中可用,只需按下一个按钮,即可使用存储在.resx文件中的预翻译单词,wpf,vb.net,xaml,resx,Wpf,Vb.net,Xaml,Resx,我得到了两个.resx文件,它们提供了我在英语和法语中需要使用的所有单词。现在,该应用程序只有英文版本,我需要创建一个按钮,将标签内容更改为指向法语.resx而不是英语,反之亦然。如果法语是当前语言,按钮将显示英语;如果英语是当前语言,按钮将显示法语 按照目前编写程序的方式,该语言是硬编码的,因此标签只显示English.resx,而不依赖于所选语言。我对这种编程还不熟悉,我很困惑 <Label Margin="12,2.222,0,0" Content="{Resx ResxName=L

我得到了两个.resx文件,它们提供了我在英语和法语中需要使用的所有单词。现在,该应用程序只有英文版本,我需要创建一个按钮,将标签内容更改为指向法语.resx而不是英语,反之亦然。如果法语是当前语言,按钮将显示英语;如果英语是当前语言,按钮将显示法语

按照目前编写程序的方式,该语言是硬编码的,因此标签只显示English.resx,而不依赖于所选语言。我对这种编程还不熟悉,我很困惑

<Label Margin="12,2.222,0,0" Content="{Resx ResxName=LegalServicesTimesheets.Labels, Key=ApplicationTitleDASH}"/>

''Both .resx files have words associated with the key ApplicationTitleDash
''The French .resx file is called Labels.fr-CA.resx


''两个.resx文件都有与关键字ApplicationTitleDash关联的单词
''French.resx文件称为Labels.fr-CA.resx

如您所见,英语设置当前是硬编码的,我需要使.resx文件取决于当前使用的语言。

{resx…}
是标记扩展名。看起来您正在使用Grant Frisken提供的:

<TextBlock Text="{Resx ResxName=MyApp.TestWindow, Key=MyText}"/>
但是,按照.resx的工作方式,它从与资源对象的
区域性
最匹配的任何资源文件中提取,即在您的情况下:

LegalServicesTimesheets.Culture = CultureInfo.GetCultureInfo("fr-CA")
如果将区域性设置为没有.resx文件的区域性,则它应返回到“中立的.resx内容”。由于您确实有一个
.fr-CA.resx
文件,因此从
LegalServicesTimeSheets
中提取的所有资源现在都将从
.fr-CA.resx
文件中提取

在代码隐藏中,您可以通过
ResourceManager
临时检索资源字符串,方法是为
GeteString
方法指定
CultureInfo
参数:

foo = LegalServicesTimesheets.ResourceManager.GetString("Labels", CultureInfo.CurrentUICulture)

{Resx…}
是一个标记扩展。看起来您正在使用Grant Frisken提供的:

<TextBlock Text="{Resx ResxName=MyApp.TestWindow, Key=MyText}"/>
但是,按照.resx的工作方式,它从与资源对象的
区域性
最匹配的任何资源文件中提取,即在您的情况下:

LegalServicesTimesheets.Culture = CultureInfo.GetCultureInfo("fr-CA")
如果将区域性设置为没有.resx文件的区域性,则它应返回到“中立的.resx内容”。由于您确实有一个
.fr-CA.resx
文件,因此从
LegalServicesTimeSheets
中提取的所有资源现在都将从
.fr-CA.resx
文件中提取

在代码隐藏中,您可以通过
ResourceManager
临时检索资源字符串,方法是为
GeteString
方法指定
CultureInfo
参数:

foo = LegalServicesTimesheets.ResourceManager.GetString("Labels", CultureInfo.CurrentUICulture)

如果您使用的是Visual Studio,您没有编写VBA代码-更可能是VB.NET。查看帮助如果您使用的是Visual Studio,您没有编写VBA代码-更可能是VB.NET。查看帮助我是否不需要使用ResourceManager,但这真的很有帮助,所以谢谢!我不需要使用ResourceManager,但这真的很有帮助,所以谢谢!