gpt4 book ai didi

c# - 本地化 - 在 wpf 应用程序中更改语言

转载 作者:行者123 更新时间:2023-12-05 06:42:14 24 4
gpt4 key购买 nike

我正在制作一些 wpf 应用程序,我需要更改语言的选项。我的解决方案中有一个名为 Resorces 的文件夹,我在其中存储了所有 resx 文件——实际上是 language.resx 和 language.en-EN.resx。我的 XAML 看起来像:

<Window x:Class="CoinCatalogue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CoinCatalogue"
xmlns:resx="clr-namespace:CoinCatalogue.Resources"
mc:Ignorable="d"
Title="{x:Static resx:language.WindowName}" Height="480" Width="640">
<Grid>
<Menu x:Name="menu" HorizontalAlignment="Left" Height="auto" VerticalAlignment="Top" Width="517">
<MenuItem x:Name="File" Header="{x:Static resx:language.File}">
<MenuItem x:Name="Open" Header="{x:Static resx:language.Open}"/>
</MenuItem>
</Menu>

</Grid>

一切正常 - 我可以访问应用程序中的字符串。在我的主课上,我正试图用这行来改变文化:

language.Culture = new System.Globalization.CultureInfo("en-EN");

但是我的应用程序没有任何反应。这一行在 InitializeComponent(); 之前。

我做错了什么?我正在使用 Visual Studio 2015。/以这种方式更改应用程序语言是个好主意吗?

最佳答案

我认为问题在于您如何改变文化。

我只是将一个快速示例放在一起,其中包含以下 resx 文件:

Resources.en-US.resx

Resources.fr-FR.resx

Resources.resx

如果我在不尝试更改区域性的情况下运行该应用程序,我会从 Resources.en-US.resx 文件中获取字符串,因为这是我的默认设置。如果我在 InitializeComponent 之前添加此代码,我的字符串来自 Resources.fr-FR.resx 文件:

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fr-FR");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("fr-FR");

关于c# - 本地化 - 在 wpf 应用程序中更改语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37793952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com