App.config

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <appSettings>
  4. <add key="Languages" value="en-US.xaml"/>
  5. </appSettings>
  6. </configuration>

App.xaml.cs

  1. protected override void OnStartup(StartupEventArgs e)
  2. {
  3. base.OnStartup(e);
  4.  
  5. //第一种方式就是用配置文件 配置
  6. string appLang = ConfigurationManager.AppSettings.Get("Languages");
  7. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(appLang, UriKind.RelativeOrAbsolute) });
  8. //第二种方式 就是获取当前系统的语言
  9. string lang = System.Globalization.CultureInfo.InstalledUICulture.Name.ToString(CultureInfo.InvariantCulture);
  10. switch (lang)
  11. {
  12. case "zh-CN":
  13. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("zh-CN.xaml", UriKind.RelativeOrAbsolute) });
  14.  
  15. break;
  16. case "en-US":
  17. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
  18.  
  19. break;
  20. default:
  21. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
  22.  
  23. break;
  24. }
  25. }

en-US.xaml

  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:sys="clr-namespace:System;assembly=mscorlib">
  4.  
  5. <sys:String x:Key="Window1Title">Window</sys:String>
  6. <sys:String x:Key="UserLog">UserLogin</sys:String>
  7. <sys:String x:Key="UserCode">UserCode</sys:String>
  8. <sys:String x:Key="UserName">UserPwd</sys:String>
  9. <sys:String x:Key="BtnLoginOk">Login</sys:String>
  10. <sys:String x:Key="BtnLoginCancel">Cancel</sys:String>
  11. <sys:String x:Key="BtnzhCN">Chinese</sys:String>
  12. <sys:String x:Key="BtnenUS">English</sys:String>
  13.  
  14. </ResourceDictionary>

zh-CN.xaml

  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:sys="clr-namespace:System;assembly=mscorlib">
  4.  
  5. <sys:String x:Key="Window1Title">窗体</sys:String>
  6. <sys:String x:Key="UserLog">用户登录</sys:String>
  7. <sys:String x:Key="UserCode">用户名</sys:String>
  8. <sys:String x:Key="UserName">密码</sys:String>
  9. <sys:String x:Key="BtnLoginOk">登录</sys:String>
  10. <sys:String x:Key="BtnLoginCancel">取消</sys:String>
  11. <sys:String x:Key="BtnzhCN">中文</sys:String>
  12. <sys:String x:Key="BtnenUS">英文</sys:String>
  13.  
  14. </ResourceDictionary>

MainWindow.xaml

  1. <Window x:Class="I18N.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="{DynamicResource Window1Title}">
  5. <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
  6. <GroupBox Header="{DynamicResource UserLog}">
  7. <Grid>
  8. <Grid.RowDefinitions>
  9. <RowDefinition Height="45*" />
  10. <RowDefinition Height="48*" />
  11. <RowDefinition Height="58*" />
  12. <RowDefinition Height="100*" />
  13. </Grid.RowDefinitions>
  14. <TextBlock Grid.Row="1"
  15. Margin="36,22,0,0"
  16. HorizontalAlignment="Left"
  17. VerticalAlignment="Top"
  18. Text="{DynamicResource UserCode}"
  19. TextWrapping="Wrap" />
  20. <TextBlock Grid.Row="2"
  21. Margin="36,23,0,0"
  22. HorizontalAlignment="Left"
  23. VerticalAlignment="Top"
  24. Text="{DynamicResource UserName}"
  25. TextWrapping="Wrap" />
  26. <TextBox Grid.Row="1"
  27. Width="120"
  28. Height="23"
  29. Margin="125,22,0,0"
  30. HorizontalAlignment="Left"
  31. VerticalAlignment="Top"
  32. Text="TextBox"
  33. TextWrapping="Wrap" />
  34. <TextBox Grid.Row="2"
  35. Width="120"
  36. Height="23"
  37. Margin="125,23,0,0"
  38. HorizontalAlignment="Left"
  39. VerticalAlignment="Top"
  40. Text="TextBox"
  41. TextWrapping="Wrap" />
  42. <Button Grid.Row="3"
  43. Width="75"
  44. Margin="78,29,0,0"
  45. HorizontalAlignment="Left"
  46. VerticalAlignment="Top"
  47. Content="{DynamicResource BtnLoginOk}" />
  48. <Button Grid.Row="3"
  49. Width="75"
  50. Margin="192,29,0,0"
  51. HorizontalAlignment="Left"
  52. VerticalAlignment="Top"
  53. Content="{DynamicResource BtnLoginCancel}" />
  54. <Button Name="btnenUS"
  55. Width="75"
  56. Margin="301,10,0,0"
  57. HorizontalAlignment="Left"
  58. VerticalAlignment="Top"
  59. Click="btnenUS_Click"
  60. Content="{DynamicResource BtnenUS}" />
  61. <Button Name="btnzhCN"
  62. Width="75"
  63. Margin="221,10,0,0"
  64. HorizontalAlignment="Left"
  65. VerticalAlignment="Top"
  66. Click="btnzhCN_Click"
  67. Content="{DynamicResource BtnzhCN}" />
  68.  
  69. </Grid>
  70. </GroupBox>
  71. </Grid>
  72. </Window>

MainWindow.xaml.cs

  1. using System;
  2. using System.Windows;
  3.  
  4. namespace I18N
  5. {
  6. /// <summary>
  7. /// MainWindow.xaml 的交互逻辑
  8. /// </summary>
  9. public partial class MainWindow : Window
  10. {
  11. public MainWindow()
  12. {
  13. InitializeComponent();
  14. }
  15.  
  16. private void btnzhCN_Click(object sender, RoutedEventArgs e)
  17. {
  18. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("zh-CN.xaml", UriKind.RelativeOrAbsolute) });
  19. }
  20.  
  21. private void btnenUS_Click(object sender, RoutedEventArgs e)
  22. {
  23. App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("en-US.xaml", UriKind.RelativeOrAbsolute) });
  24. }
  25. }
  26. }

I18N的更多相关文章

  1. Java国际化(i18n)

    Java国际化(i18n) 最近在做一个网站国际化的功能.用Java做开发,使用spring+velocity. Java提供了对i18n的支持,spring对其做了集成,可以很方便的配置.主要思想就 ...

  2. Java的国际化(i18n)

    http://blog.csdn.net/csuliky/article/details/4225800 1. Java国际化简介 Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用, ...

  3. I18N 国际化

    http://blog.sina.com.cn/s/blog_6c7e59770101p7w9.html 一.I18N 在 J2EE 中的应用 [转载:http://blog.csdn.net/cha ...

  4. i18n国际化

    <%  request.setAttribute("date", new Date());  request.setAttribute("salary", ...

  5. 国际化支持(I18N)

    本章译者:@nixil 使用国际化支持(I18N)能够使你的应用根据用户所在地区的不同选择不同的语言.下面介绍如何在引用中使用国际化. 只允许使用UTF-8 Play只支持UTF-8一种字符编码.这是 ...

  6. JSTL I18N 格式标签库

    <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c ...

  7. yii框架详解 之 国际化 (I18N)

    我们要开启组件中们关于语言的配置,默认的就是CPhpMessageSource,也可以改为其他的方式. #组件配置中  'messages' => array(     'class'=> ...

  8. Django1.9开发博客(12)- i18n国际化

    国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...

  9. I18N、L10N、G11N

    I18N --是“Internationalization” 的缩写,由于 “Internationalization” 单词较长,所以为了书写简便,通常缩写为“I18N” .中间的 18 代表在首字 ...

随机推荐

  1. HDU3466 背包DP

    Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) ...

  2. php课程---面向对象

    面向对象:一:定义类 class Dog { var $name; var $age; var $pinzhong; function Jiao() { echo "{$this->n ...

  3. FCM算法

    FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小.模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则 ...

  4. Windows下如何安装Python的第三方库

    有下面几个办法: 1. 通过http://www.lfd.uci.edu/~gohlke/pythonlibs/这个网站, 下载whl文件, 解压之后会有三个文件夹, 将最短名字的那个文件夹复制到C: ...

  5. JS控制打印指定div

    <html><head><script language="javascript">function printdiv(printpage){v ...

  6. Java内存泄露及性能调优实例

    内存泄漏及解决方法 1)系统崩溃前的一些现象 每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4.5s:FullGC的次数越来越多,最频繁时隔 ...

  7. Android BLE 蓝牙低功耗教程,中央BluetoothGatt和周边BluetoothGattServer的实现

    http://blog.csdn.net/wave_1102/article/details/39271693 分类: Android(105) 作者同类文章X Android4.3 规范了BLE的A ...

  8. MarkdownPad 2

    摘要 升级到 Windows 10 后 MarkdownPad 2,遇到了html 渲染错误的问题: windows10 MarkdownPad html渲染错误 awesomium 升级到 Wind ...

  9. Spark在Yarn上运行Wordcount程序

    前提条件 1.CDH安装spark服务 2.下载IntelliJ IDEA编写WorkCount程序 3.上传到spark集群执行 一.下载IntellJ IDEA编写Java程序 1.下载IDEA ...

  10. Nginx配置(日志服务器中关于日志的产生)

    一:概括 1.需要配置的概括 定义日志格式 日志的分割字段:^A 日志格式:IP地址^A服务器时间^A请求参数 配置location,记录请求日志到本地磁盘 将数据按照给定的日志格式存储到本地磁盘 二 ...