zoukankan      html  css  js  c++  java
  • I18N

    App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="Languages" value="en-US.xaml"/>
      </appSettings>
    </configuration>

    App.xaml.cs

    protected override void OnStartup(StartupEventArgs e)
            {
                base.OnStartup(e);
    
                //第一种方式就是用配置文件 配置
                string appLang = ConfigurationManager.AppSettings.Get("Languages");
                App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(appLang, UriKind.RelativeOrAbsolute) });
                //第二种方式 就是获取当前系统的语言
                string lang = System.Globalization.CultureInfo.InstalledUICulture.Name.ToString(CultureInfo.InvariantCulture);
                switch (lang)
                {
                    case "zh-CN":
                        App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("zh-CN.xaml", UriKind.RelativeOrAbsolute) });
    
                        break;
                    case "en-US":
                        App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
    
                        break;
                    default:
                        App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
    
                        break;
                }
            }

    en-US.xaml

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:sys="clr-namespace:System;assembly=mscorlib">
    
      <sys:String x:Key="Window1Title">Window</sys:String>
      <sys:String x:Key="UserLog">UserLogin</sys:String>
      <sys:String x:Key="UserCode">UserCode</sys:String>
      <sys:String x:Key="UserName">UserPwd</sys:String>
      <sys:String x:Key="BtnLoginOk">Login</sys:String>
      <sys:String x:Key="BtnLoginCancel">Cancel</sys:String>
      <sys:String x:Key="BtnzhCN">Chinese</sys:String>
      <sys:String x:Key="BtnenUS">English</sys:String>
    
    </ResourceDictionary>

    zh-CN.xaml

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:sys="clr-namespace:System;assembly=mscorlib">
    
      <sys:String x:Key="Window1Title">窗体</sys:String>
      <sys:String x:Key="UserLog">用户登录</sys:String>
      <sys:String x:Key="UserCode">用户名</sys:String>
      <sys:String x:Key="UserName">密码</sys:String>
      <sys:String x:Key="BtnLoginOk">登录</sys:String>
      <sys:String x:Key="BtnLoginCancel">取消</sys:String>
      <sys:String x:Key="BtnzhCN">中文</sys:String>
      <sys:String x:Key="BtnenUS">英文</sys:String>
    
    </ResourceDictionary>

    MainWindow.xaml

    <Window x:Class="I18N.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="{DynamicResource Window1Title}">
      <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
        <GroupBox Header="{DynamicResource UserLog}">
          <Grid>
            <Grid.RowDefinitions>
              <RowDefinition Height="45*" />
              <RowDefinition Height="48*" />
              <RowDefinition Height="58*" />
              <RowDefinition Height="100*" />
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="1"
                       Margin="36,22,0,0"
                       HorizontalAlignment="Left"
                       VerticalAlignment="Top"
                       Text="{DynamicResource UserCode}"
                       TextWrapping="Wrap" />
            <TextBlock Grid.Row="2"
                       Margin="36,23,0,0"
                       HorizontalAlignment="Left"
                       VerticalAlignment="Top"
                       Text="{DynamicResource UserName}"
                       TextWrapping="Wrap" />
            <TextBox Grid.Row="1"
                     Width="120"
                     Height="23"
                     Margin="125,22,0,0"
                     HorizontalAlignment="Left"
                     VerticalAlignment="Top"
                     Text="TextBox"
                     TextWrapping="Wrap" />
            <TextBox Grid.Row="2"
                     Width="120"
                     Height="23"
                     Margin="125,23,0,0"
                     HorizontalAlignment="Left"
                     VerticalAlignment="Top"
                     Text="TextBox"
                     TextWrapping="Wrap" />
            <Button Grid.Row="3"
                    Width="75"
                    Margin="78,29,0,0"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Content="{DynamicResource BtnLoginOk}" />
            <Button Grid.Row="3"
                    Width="75"
                    Margin="192,29,0,0"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Content="{DynamicResource BtnLoginCancel}" />
            <Button Name="btnenUS"
                    Width="75"
                    Margin="301,10,0,0"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Click="btnenUS_Click"
                    Content="{DynamicResource BtnenUS}" />
            <Button Name="btnzhCN"
                    Width="75"
                    Margin="221,10,0,0"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Click="btnzhCN_Click"
                    Content="{DynamicResource BtnzhCN}" />
    
          </Grid>
        </GroupBox>
      </Grid>
    </Window>

    MainWindow.xaml.cs

    using System;
    using System.Windows;
    
    namespace I18N
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void btnzhCN_Click(object sender, RoutedEventArgs e)
            {
                App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("zh-CN.xaml", UriKind.RelativeOrAbsolute) });
            }
    
            private void btnenUS_Click(object sender, RoutedEventArgs e)
            {
                App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
            }
        }
    }
  • 相关阅读:
    VMware搭建VMware ESXi 6.7
    77. Combinations
    47. Permutations II
    system design
    37. Sudoku Solver
    12月9日学习日志
    12月8日学习日志
    12月7日学习日志
    12月6日学习日志
    12月5日学习日志
  • 原文地址:https://www.cnblogs.com/zisezhixin/p/4264690.html
Copyright © 2011-2022 走看看