全球化指南

设计和开发应用,使其能够在具有不同语言和文化配置的系统上正常运行。 使用全球化 API 设置数据格式,并避免在代码中对语言、地区、字符分类、写入系统、日期/时间格式、数字、货币、重量和排序规则进行假设。

建议 说明
处理和比较字符串时要考虑文化因素。 例如,在比较字符串之前,不更改其大小写。 请参阅字符串用法建议
对字符串和其他数据进行整理(排序)时,请勿假定其总是按字母顺序进行的。 对于不使用拉丁语脚本的语言,整理是基于诸如发音、笔划数等因素进行的。 即使是使用拉丁语脚本的语言也不是始终使用字母顺序排序的。 例如,在某些文化中,电话簿可能不是按照字母顺序排序。 Windows 可以为你处理排序问题,但如果自行创建排序算法,请确保将目标市场使用的排序方法考虑在内。
相应地设置数字、日期、时间、地址和电话号码格式。 这些格式因文化、地区、语言和市场而异。 如果要显示这些数据,则使用全球化 API 获取适合特定受众的格式。 请参阅全球化日期/时间/数字格式。 家庭和给定名字的显示顺序以及地址格式也可能有所不同。 采用标准日期、时间和数字显示。 采用标准日期和时间选取器控件。 使用标准地址信息。
支持国际度量单位和货币单位。 尽管最流行的度量单位为公制和英制,但不同的国家/地区会采用不同的度量单位和尺度。 如果在处理度量(如长度、温度和面积),请确保支持正确的系统度量。 使用 GeographicRegion.CurrenciesInUse 属性获取在区域内使用的一组货币。
使用 Unicode 进行字符编码。 默认情况下,Microsoft Visual Studio 针对所有文档使用 Unicode 字符编码。 如果使用的是不同的编辑器,则请确保在适当的 Unicode 字符编码中保存源文件。 所有 Windows 运行时 API 均返回 UTF-16 编码字符串。
支持国际纸张尺寸。 最常用的纸张尺寸因国家/地区而异,因此如果包含打印等依赖纸张尺寸的功能,则请确保支持和测试常用国际尺寸。
记录键盘或输入法的语言。 应用要求用户输入文本时,请记录当前启用的键盘布局或输入法编辑器(输入法)的语言标记。 这将确保在稍后显示输入时,将为用户采用正确的格式进行显示。 使用 Language.CurrentInputMethodLanguageTag 属性获取当前输入语言。
请勿通过语言假定用户所在的地区,并且请勿通过地区假定用户的语言。 语言和地区是独立的概念。 用户可以使用某种语言的特定区域变体(例如在英国使用的 en-GB 形式的英语),而自身位于完全不同的国家或地区。 请考虑应用是否需要有关用户语言的知识(例如 UI 文本)或有关地区的知识(例如许可)。 有关详细信息,请参阅了解用户配置文件语言和应用清单语言
语言标记的比较规则并不重要。 BCP-47 语言标记非常复杂。 在比较语言标记时会存在许多问题,包括匹配脚本信息、旧标记以及多个地区变体的问题。 Windows 中的资源管理系统负责进行匹配。 你可以指定一组资源(以任何语言),而系统将为用户和应用选择合适的资源。 请参阅应用资源和资源管理系统资源管理系统匹配语言标记的方式
设计 UI,使其适应标签和文本输入控件的不同文本长度和字号。 不同语言的译文长度可能存在很大差异,因此需要 UI 控件根据其内容动态调整带下。 其他语言中的常用字符包括英语常用字符上方或下方的标记(例如 Å 或 Ņ)。 使用标准字号和行高提供足够的垂直空间。 请注意,其他语言的字体可能需要较大的最小字号才能保持内容的清晰显示。 请参阅 Windows.Globalization.Fonts 命名空间中的类。
支持读取顺序的镜像。 文本对齐和读取顺序可以采用从左到右的方式(如英语采用的方式)或者从右到左 (RTL) 的方式(如阿拉伯语或希伯来语采用的方式)。 如果要将产品本地化为使用与你本身语言读取顺序不同的语言,则请确保 UI 元素的布局支持镜像。 甚至诸如后退按钮、UI 过渡效果以及图像之类的项都可能需要镜像。 有关详细信息,请参阅调整布局和字体,并支持 RTL
正确地显示文本和字体。 理想的字体、字号和文本方向因市场而异。 有关详细信息,请参阅调整布局和字体,并支持 RTL国际字体

重要的 API

 

示例