背水一战 Windows 10 (81) - 全球化

简介: 原文:背水一战 Windows 10 (81) - 全球化[源码下载] 背水一战 Windows 10 (81) - 全球化 作者:webabcd介绍背水一战 Windows 10 之 全球化 Demo 格式化数字 示例1、演示全球化的基本应用Localization/GlobalizationDemo.
原文: 背水一战 Windows 10 (81) - 全球化

[源码下载]


背水一战 Windows 10 (81) - 全球化



作者:webabcd


介绍
背水一战 Windows 10 之 全球化

  • Demo
  • 格式化数字



示例
1、演示全球化的基本应用
Localization/GlobalizationDemo.xaml

<Page
    x:Class="Windows10.Localization.GlobalizationDemo"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows10.Localization"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="Transparent">
        <StackPanel Margin="10 0 10 10">

            <TextBlock Name="lblMsg" />

        </StackPanel>
    </Grid>
</Page>

Localization/GlobalizationDemo.xaml.cs

/*
 * 演示全球化的基本应用
 * 
 * 
 * 注:本地化和全球化的区别
 * 1、全球化的产品应该适用于任何一个本地市场
 * 2、本地化通常会有 UI 的调整,语言的翻译,甚至是针对本地开发的一些特殊的功能
 * 3、一个全球化的产品做本地化时,一般只做语言翻译
 */

using System;
using Windows.Globalization;
using Windows.System.UserProfile;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

namespace Windows10.Localization
{
    public sealed partial class GlobalizationDemo : Page
    {
        public GlobalizationDemo()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // 首选语言
            lblMsg.Text = "Current Languages: " + string.Join(", ", GlobalizationPreferences.Languages);
            lblMsg.Text += Environment.NewLine;
            // 首选日历(比如:GregorianCalendar 提供了世界上大多数国家/地区使用的标准日历系统)
            lblMsg.Text += "Current Calendars: " + string.Join(", ", GlobalizationPreferences.Calendars); 
            lblMsg.Text += Environment.NewLine;
            // 时钟显示(比如:24HourClock)
            lblMsg.Text += "Current Clocks: " + string.Join(", ", GlobalizationPreferences.Clocks);
            lblMsg.Text += Environment.NewLine;
            // 区域(比如:CN)
            lblMsg.Text += "Current HomeGeographicRegion: " + GlobalizationPreferences.HomeGeographicRegion;
            lblMsg.Text += Environment.NewLine;
            // 一周的第一天是周几(比如:中国是 Monday)
            lblMsg.Text += "Current WeekStartsOn: " + GlobalizationPreferences.WeekStartsOn.ToString();
            lblMsg.Text += Environment.NewLine;
            lblMsg.Text += Environment.NewLine;


            // Language - 语言对象,通过指定 BCP-47 语言标记来实例化语言对象
            Windows.Globalization.Language language = new Windows.Globalization.Language("zh-Hans-CN");
            // 判断指定的 BCP-47 语言标记的格式是否正确
            lblMsg.Text += "zh-Hans-CN IsWellFormed: " + Windows.Globalization.Language.IsWellFormed("zh-Hans-CN");
            lblMsg.Text += Environment.NewLine;
            // 语言的本地化名称
            lblMsg.Text += "zh-Hans-CN Language DisplayName: " + language.DisplayName;
            lblMsg.Text += Environment.NewLine;
            // 语言本身的名称
            lblMsg.Text += "zh-Hans-CN Language NativeName: " + language.NativeName;
            lblMsg.Text += Environment.NewLine;
            // 语言的 BCP-47 语言标记
            lblMsg.Text += "zh-Hans-CN Language LanguageTag: " + language.LanguageTag;
            lblMsg.Text += Environment.NewLine;
            // 语言的 ISO 15924 脚本代码
            lblMsg.Text += "zh-Hans-CN Language Script: " + language.Script;
            lblMsg.Text += Environment.NewLine;
            // 获取当前输入法编辑器 (IME) 的 BCP-47 语言标记
            lblMsg.Text += "zh-Hans-CN Language CurrentInputMethodLanguageTag: " + Windows.Globalization.Language.CurrentInputMethodLanguageTag;
            lblMsg.Text += Environment.NewLine;
            lblMsg.Text += Environment.NewLine;


            // GeographicRegion - 区域对象(关于 ISO 3166-1 请参见:http://zh.wikipedia.org/zh-cn/ISO_3166-1
            GeographicRegion geographicRegion = new GeographicRegion(); // 获取当前的区域对象。
            // 区域的本地化名称
            lblMsg.Text += "Current Region DisplayName: " + geographicRegion.DisplayName;
            lblMsg.Text += Environment.NewLine;
            // 区域本身的名称
            lblMsg.Text += "Current Region NativeName: " + geographicRegion.NativeName;
            lblMsg.Text += Environment.NewLine;
            // 该区域内使用的货币类型
            lblMsg.Text += "Current Region CurrenciesInUse: " + string.Join(",", geographicRegion.CurrenciesInUse);
            lblMsg.Text += Environment.NewLine;
            // 该区域的 ISO 3166-1 二位字母标识
            lblMsg.Text += "Current Region CodeTwoLetter: " + geographicRegion.CodeTwoLetter;
            lblMsg.Text += Environment.NewLine;
            // 该区域的 ISO 3166-1 三位字母标识
            lblMsg.Text += "Current Region CodeThreeLetter: " + geographicRegion.CodeThreeLetter;
            // 该区域的 ISO 3166-1 数字标识
            lblMsg.Text += Environment.NewLine;
            lblMsg.Text += "Current Region CodeThreeDigit: " + geographicRegion.CodeThreeDigit;
            lblMsg.Text += Environment.NewLine;
            lblMsg.Text += Environment.NewLine;


            // Calendar - 日历对象,默认返回当前系统的默认日历
            Calendar calendarDefault = new Calendar();
            // 第一个参数:将日历转换为字符串时,优先使用的语言标识列表;第二个参数:指定日历的类型;第三个参数:指定是12小时制还是24小时制
            Calendar calendarHebrew = new Calendar(new[] { "zh-CN" }, CalendarIdentifiers.Hebrew, ClockIdentifiers.TwentyFourHour);
            lblMsg.Text += "Gregorian Day: " + calendarDefault.DayAsString(); // 公历的日期
            lblMsg.Text += Environment.NewLine;
            lblMsg.Text += "Hebrew Day: " + calendarHebrew.DayAsString(); // 希伯来历的日期
            // Calendar 还有很多属性和方法,不再一一介绍,需要时查 msdn
        }
    }
}


2、演示不同语言环境下对数字的格式化
Localization/NumberFormatting.xaml

<Page
    x:Class="Windows10.Localization.NumberFormatting"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows10.Localization"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="Transparent">
        <StackPanel Margin="10 0 10 10">

            <TextBlock Name="lblMsg" />

        </StackPanel>
    </Grid>
</Page>

Localization/NumberFormatting.xaml.cs

/*
 * 演示不同语言环境下对数字的格式化
 */

using System;
using Windows.Globalization.NumberFormatting;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

namespace Windows10.Localization
{
    public sealed partial class NumberFormatting : Page
    {
        public NumberFormatting()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // 百分比格式化
            PercentFormatter percentFormatter = new PercentFormatter();
            // PercentFormatter percentFormatter = new PercentFormatter(new[] { "zh-Hans-CN" }, "CN");
            lblMsg.Text = percentFormatter.Format(3.1415926);
            lblMsg.Text += Environment.NewLine;

            // 千分比格式化
            PermilleFormatter permilleFormatter = new PermilleFormatter();
            //  PermilleFormatter permilleFormatter = new PermilleFormatter(new[] { "zh-Hans-CN" }, "CN");
            lblMsg.Text += permilleFormatter.Format(3.1415926);
            lblMsg.Text += Environment.NewLine;

            // 数字格式化
            DecimalFormatter decimalFormatter = new DecimalFormatter();
            // DecimalFormatter decimalFormatter = new DecimalFormatter(new[] { "zh-Hans-CN" }, "CN");
            lblMsg.Text += decimalFormatter.Format(3.1415926);
            lblMsg.Text += Environment.NewLine;

            // 货币格式化
            CurrencyFormatter currencyFormatter = new CurrencyFormatter("CNY");
            // CurrencyFormatter currencyFormatter = new CurrencyFormatter("CNY", new[] { "zh-Hans-CN" }, "CN");
            lblMsg.Text += currencyFormatter.Format(3.1415926);
        }
    }
}



OK
[源码下载]

目录
相关文章
|
Windows
Windows Phone 应用程序的全球化“.NET研究”
  Windows Phone 应用程序的全球化跟Silverlight做法一样,如果大家熟悉Silverlight的全球化,可以不看此文。本文一个具体的Demo介绍wp7应用程序如何实现本地化,并在本地化的一些注意点。
1051 0
|
Windows
重新想象 Windows 8 Store Apps (57) - 本地化和全球化
原文:重新想象 Windows 8 Store Apps (57) - 本地化和全球化 [源码下载] 重新想象 Windows 8 Store Apps (57) - 本地化和全球化 作者:webabcd介绍重新想象 Windows 8 Store Apps 之 本地化和全球化 本地化 - ...
882 0
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
1月前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
87 3
|
1月前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
|
2月前
|
边缘计算 安全 网络安全
|
2月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
2月前
|
网络协议 Windows
Windows Server 2019 DHCP服务器搭建
Windows Server 2019 DHCP服务器搭建