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) });
}
}
}
I18N的更多相关文章
- Java国际化(i18n)
Java国际化(i18n) 最近在做一个网站国际化的功能.用Java做开发,使用spring+velocity. Java提供了对i18n的支持,spring对其做了集成,可以很方便的配置.主要思想就 ...
- Java的国际化(i18n)
http://blog.csdn.net/csuliky/article/details/4225800 1. Java国际化简介 Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用, ...
- I18N 国际化
http://blog.sina.com.cn/s/blog_6c7e59770101p7w9.html 一.I18N 在 J2EE 中的应用 [转载:http://blog.csdn.net/cha ...
- i18n国际化
<% request.setAttribute("date", new Date()); request.setAttribute("salary", ...
- 国际化支持(I18N)
本章译者:@nixil 使用国际化支持(I18N)能够使你的应用根据用户所在地区的不同选择不同的语言.下面介绍如何在引用中使用国际化. 只允许使用UTF-8 Play只支持UTF-8一种字符编码.这是 ...
- JSTL I18N 格式标签库
<%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c ...
- yii框架详解 之 国际化 (I18N)
我们要开启组件中们关于语言的配置,默认的就是CPhpMessageSource,也可以改为其他的方式. #组件配置中 'messages' => array( 'class'=> ...
- Django1.9开发博客(12)- i18n国际化
国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...
- I18N、L10N、G11N
I18N --是“Internationalization” 的缩写,由于 “Internationalization” 单词较长,所以为了书写简便,通常缩写为“I18N” .中间的 18 代表在首字 ...
随机推荐
- HDU1978 记忆化搜索
How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- Jquery 捕捉页面关闭事件
(http://www.php100.com/html/program/jquery/2013/0905/6052.html) $(window).bind('beforeunload',functi ...
- Java中的Bigdecimal类型运算
Java中的Bigdecimal类型运算 双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.Java在java.math包中提 供的API类BigD ...
- JSP中乱码问题
一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大 ...
- 杭电ACM 1196
#include<stdio.h>int main(){ int num,j,k,s,f; int a[7]={0,0,0,0,0,0,0}; while(scanf("%d&q ...
- C#中 MD5和SHA1加密代码
Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(entity.Pwd, "MD5"); Pwd = For ...
- 一步一步来做WebQQ机器人-(三)(登录QQ并保持在线)
× 本篇的目的是让你的QQ真正的上线:挤下你的PCQQ,和让好友状态栏显示webqq在线 目前总进度大概50% 全系列预计会有这些步骤,当然某些步骤可能会合并: 验证码 第一次登陆 第二次登陆 保持在 ...
- HTML中div以及span等元素获取焦点
在js操作html的时候如果想让某个元素获取焦点,一般去掉用其.focus()方法. 但如果为非表单元素的div span等,必须要添加属性tabIndex=1这个属性后调用.focus()方法即可! ...
- How to prevent SQL injection attacks?
In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...
- iOS沙盒目录
出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...