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 代表在首字 ...
随机推荐
- hdu Remainder
这道题是道很明显的bfs题.因为对数论没什么研究 ,所以这道题目里的两个关键点并不知道,看了别人的题解才知道 . 1.为避免取模后出现负数,采用:x%y=(x%y+y)%y 2.全部采用对m*k取模后 ...
- 所有设备的CSS像素
mydevice.io Mobile devices, in Responsive Web Design, relate to a core value which is the value of C ...
- 允许浏览器跨域访问web服务端的解决方案
今天和同事探讨了前后端如何真正实现隔离开发的问题,如果前端单独作为服务发布,势必会涉及到无法直接调用后端的接口的问题,因为浏览器是不允许跨域提交请求的. 所谓跨域访问,就是在浏览器窗口,和某个服务端通 ...
- jquery ui dialog去掉右上角的叉号
var dialog = $("#id").dialog({ resizable:false, height:, width:, zIndex:, modal:true, open ...
- 在OSX下卸载Xamarin
To uninstall Xamarin Studio, you'll want to run the following commands from a Terminal: sudo rm -rf ...
- Windows Server 2003修改远程桌面最大连接数的方法
Windows Server 2003远程桌面允许的终端连接数默认情况下只有2个线程,也就是2个用户,当我们需要多人同时登录服务器的时候,就需要适当增加远程连接同时在线的用户数. 修改远程桌面最大连接 ...
- Ruby--strftime
-- [17 Oct 2016 05:37:18AM]:%e %b %Y %H:%M:%S%p -- [Oct 17, 2016]:%b %d, %Y -- [10-17-16 05:37]:%m-% ...
- LeetCode Generalized Abbreviation
原题链接在这里:https://leetcode.com/problems/generalized-abbreviation/ 题目: Write a function to generate the ...
- ubuntu14.04安装注意事项
1.虚拟机: 选择桥接2.设置静态IP sudo vi /etc/network/interfaces 修改为: # The loopback network interface auto lo if ...
- 旋转toast 自定义toast方向,支持多个方向的显示,自定义View
package com.example.canvasdemo; import java.security.InvalidAlgorithmParameterException; import andr ...