繁体   English   中英

c# - 本地化 - 在wpf app中更改语言

[英]c# - localization - changing language in wpf app

我正在制作一些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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM