如何为本地化做准备 (HTML)

01/28/2016

本文内容

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

遵循此处描述的步骤和最佳实践来为将应用本地化做出准备。 在开始前,请确保通读全球化清单以保证你的应用为其他市场、区域或语言做好准备。

说明

使用资源文件和限定符

确保在资源文件中指定字符串资源。若要了解详细信息,请参阅快速入门:翻译 UI 资源。

在其文件或文件夹中指定带有相应语言标记的图像或其他文件资源。请注意,本地化图像、音频和视频需要占用大量的系统资源,因此最好是在可能的情况下尽量使用中性媒体资产。若要了解详细信息,请参阅如何使用限定符命名资源。

添加上下文注释

将本地化注释添加到应用的资源文件。本地化人员可以看到注释,并且注释应提供用于帮助本地化人员准确翻译资源的上下文信息。注释还应提供有关资源的充足约束信息,以便翻译不会破坏软件。 可使用 Makepri.exe 工具对注释进行日志记录(可选)。

ResJSON 允许字段中的元数据以下划线开始,例如注释:

{

"String" : "Hello World",

"_String1.comment" : "This is a comment to the localizer"

}

本地化语句,而不要本地化词

请考虑以下字符串:"{0} 无法进行同步。"

大量的字词都可能会替换 {0},如约会、任务或文档。虽然此示例似乎适用于英语,但它绝不适用于德语的相应语句。请注意以下德语语句,模板字符串中的某些词("Der"、"Die"、"Das")需要与参数化的词匹配:

英语

德语

The appointment could not be synchronized.

Der Termin konnte nicht synchronisiert werden.

The task could not be synchronized.

Die Aufgabe konnte nicht synchronisiert werden.

The document could not be synchronized.

Das Dokument konnte nicht synchronisiert werden.

如另一示例,考虑语句 "Remind me in {0} minute(s)"(请在 {0} 分钟后提醒我)。虽然 "minute(s)" 适用于英语,但其他语言可能会使用不同的术语。例如,波兰语使用 "minuta"、"minuty" 或 "minut",具体使用取决于上下文。

若要解决此问题,则应本地化整个语句,而不应只本地化单个词。这么做看似增加了额外工作量且是个不明智的解决方案,但其实是最佳解决方案,原因如下:

会针对所有语言显示一个清晰明确的错误消息。

本地化人员无需询问该字符串将会被什么词替代。

当应用完成后出现类似于此界面的问题时,也无需实施昂贵的代码修复。

确保正确的参数顺序

请勿假设所有语言以相同顺序使用参数。 例如,考虑字符串 "Every %s %s",其中第一个 %s 将由月份名称替代,而第二个 %s 将有月份的日期替代。此示例适用于英语,但在应用本地化为德语时会遇到问题,其中日期和月份是按相反顺序显示的。

若要解决此问题,则将字符串更改为 "Every %1 %2",以便顺序根据语言进行交换。

请勿过度翻译

本地化特定字符串,不是标记。请考虑以下示例:

过度本地化的字符串

正确本地化的字符串

使用条款

使用条款

隐私策略

隐私策略

在资源中包括以上 标记表示它也将被本地化。这样就使标记无效。应仅本地化字符串自身。通常,应将标记视为应与可本地化内容分离的代码。 但是,某些长字符串应包含标记以保留上下文和确保顺序。

请勿在不同的上下文中使用相同的字符串

重用字符串看上去像是最佳解决方案,但如果同一词或短语具有不同的含义和上下文,则会导致本地化问题。

在两个上下文相同的情况下可以重用字符串。例如,你可以在声音效果音量和音乐音量两种情况下重用字符串 "Volume",因为二者均指声音的强度。但不应该在指硬盘卷时使用同一字符串,因为二者的上下文和含义是不同的,因此该词可能会具有不同的翻译。

另一示例是字符串 "on" 和 "off" 的使用。在英语中,"on" 和 "off" 可用于飞行模式、Bluetooth 和设备的切换。但在意大利语中,翻译取决于要打开和关闭的内容的上下文。可能需要为每个上下文创建一对字符串。

此外,诸如 "text" 或 "fax" 之类的字符串在英语中可用作动词和名词,在翻译过程中这可能会因此混淆。因此,为动词和名词格式创建单独的字符串。 在不确定上下文是否相同时,应稳妥起见使用不同的字符串。

用唯一特性标识资源

资源标识符区分大小写,并且对于每个资源文件应是唯一的。 在访问一个资源时,应使用资源标识符,而不是实际的资源值。资源标识符不会更改,但实际的资源值会根据语言进行更改。

请确保使用有意义的资源标识符,为翻译提供额外的上下文。

请勿在字符串资源送去翻译后更改资源标识符。本地化团队使用资源标识符来跟踪资源内的添加、删除和更新。资源标识符中的更改 — 也称为"资源标识符转换"— 需要翻译字符串,因为尽管字符串可能会被删除并且会添加其他字符串,但会显示这些字符串。

选择合适的翻译方法

在字符串分为资源文件后,就可以对其进行翻译了。翻译字符串的理想时间为在项目中的字符串敲定后,这通常发生在项目的后期。 可以采用多种方法完成翻译流程。这可能要取决于待翻译的字符串的量、待翻译的语言数以及如何完成翻译(例如,内部翻译或雇用外部供应商)。

请考虑以下选项:

**资源文件可通过在项目中直接打开的方式进行翻译。**这种方法适用于字符串的量较少并且只需要翻译为两种或三种语言的项目。在开发人员使用多种语言并且愿意处理翻译过程的情况下,可以使用这种方法。这种方法的优势在于快速、无需工具并且误译的风险最小,但这种方法不可扩展。特别是,不同语言中的资源很容易不同步,这会导致不好的用户体验和维护困难。

**字符串资源文件采用 XML 或 ResJSON 文本格式,以便可以下发以使用任意文本编辑器进行翻译。随后,翻译后的文件可复制放回项目。**这种方法存在翻译人员意外编辑 XML 标记的风险,但它可使翻译工作发生在 Microsoft Visual Studio 项目之外。这种方法适用于需要翻译为少数语言的项目。XLIFF 格式为专门设计用于本地化使用的 XML 格式,并且某些本地化供应商或本地化工具可以提供很好的支持。可使用多语言应用工具包从其他资源文件(例如 .resw 或 .resjson)中生成 XLIFF 文件。

对于其他文件(例如,图像或音频文件),可能需要下发给本地化人员。通常,我们不建议创建依赖于文化的文件,因为这会给进行本地化带来困难。

此外,请考虑以下建议:

**使用本地化工具。**有很多本地化工具可用于解析资源文件,并仅允许翻译人员编辑可翻译的字符串。这种方法减少了翻译人员意外编辑 XML 标记的风险。但它的缺点是向本地化流程中引入了新的工具和流程。本地化工具适合具有大量字符串但需要翻译为少数语言的项目。若要了解详细信息,请参阅多语言应用工具包。

**使用本地化供应商。**如果项目包含大量字符串并需要翻译为多种语言,请考虑使用本地化供应商。本地化供应商可提供有关工具和流程的建议,并可翻译你的资源文件。这是一种理想的解决方案,但也是最贵的选择,并且会增加翻译内容的检查时间。

**通知本地化人员相关信息。**通知本地化人员有关字符串可视为名词还是动词的信息。使用术语工具向本地化人员解释生造词。保持字符串的语法正确性,清晰性以及尽可能使用非技术术语以避免混淆。

访问键和标签

将用于辅助功能的访问键与本地化的访问键的显示"同步"比较困难,因为这两个字符串资源被分类为两个单独的部分。请务必遵循下面显示的实现方法,并正确注释标签字符串以将其链接到访问键定义。

The Label

确保提供注释,例如: Make sure that L is synchronized with the access key "theLabelAccessKey"

为可排序的日语字符串提供假名注音

日语日文汉字字符具有包含多个发音的唯一属性,具体发音取决于所用于的词和上下文。 这在尝试排序日语命名对象(例如,应用程序名称、文件、歌曲等)时会引发问题。 以前,日语日文汉字通常采用名为 XJIS 的计算机可理解的顺序进行排序。 但是,由于此排序顺序是非注音的,因此使用并不人性化。

假名注音允许用户或创建者指定所使用字符的注音,因而可解决此问题。 如果使用以下过程向应用名称添加假名注音,则可以确保该名称排序在应用列表的适当位置。 如果应用名称包含日文汉字字符并且没有提供假名注音,则当用户的 UI 语言或排序顺序设置为日语时,Windows 将尽量生成适当的发音。 然而,也可能会依据较常见的读音对包含少见或独特读音的应用名称进行排序。因此,用于日语应用程序(尤其是名称中包含汉字字符的应用程序)的最佳做法是:在日语本地化过程中提供其应用名称的汉字注音版本。

添加 "ms-resource:Appname" 以作为程序包显示名称和应用程序显示名称。

在字符串下创建 ja-JP 文件夹并添加两个资源文件,如下所示:

strings\

en-us\

ja-jp\

Resources.altform-msft-phonetic.resw

Resources.resw

在用于常规 ja-JP 的 Resources.resw 中:添加用于应用名称"希蒼"的字符串资源

在用于日语汉字注音资源的 Resources.altform-msft-phonetic.resw 中:添加用于应用名称"のあ"的汉字注音值

用户可以搜索应用名称 "希蒼",方法是:使用假名注音值 "のあ" (noa),也可以使用注音值(通过输入法编辑器 (IME) 使用 GetPhonetic 功能) "まれあお" (mare-ao)。

按照“区域”控制面板格式排序:

在日语用户区域设置下,

如果启用假名注音,则 "希蒼" 排序在 "の" 下。

如果没有假名注音,则 "希蒼" 排序在 "ま" 下。

在非日语用户区域设置下,

如果启用假名注音,则 "希蒼" 排序在 "の" 下。

如果没有假名注音,则 "希蒼" 排序在 "漢字" 下。

html本地化软件,如何为本地化做准备 (HTML)相关推荐

  1. 软件访问转向本地_我是如何从完整的初学者转向软件开发人员的,以及如何做到的...

    软件访问转向本地 by Madison Kanna 麦迪逊·卡纳(Madison Kanna) 我是如何从完整的初学者转向软件开发人员的,以及如何做到的 (How I went from comple ...

  2. 千千静听安卓版是百度音乐旗下一款手机音乐软件,集本地歌曲播放

    千千静听安卓版是百度音乐旗下一款手机音乐软件,集本地歌曲播放 千千静听 千千静听安卓版是百度音乐旗下一款手机音乐软件,集本地歌曲播放.在线歌曲试听下载于一身.拥有自动匹配封面歌词.绚丽桌面widget ...

  3. Remix本地化,加载本地合约文件,本地链接Remix

    智能合约IDE,在线的比较卡,而且切换网络面临文件丢失的风险,选择本地搭建Solidity本地编辑环境,Remix-IDE + Remixd组合,加载本地合约代码.这里用到两个工具: Remix ID ...

  4. TCP通讯中:客户端软件如何指定本地端口号?

    TCP通讯中:客户端如何指定软件的本地端口号? 最近在Socket 通讯中用 Socket完成了对客户端 接收服务端信息以及 往服务端发送信息的功能.具体方法介绍如下: 通过Load方法 加载到指定的 ...

  5. python制作查询软件_python 制作本地应用搜索工具

    一.准备工作 请确保已经安装tkinter.pyperclip.threading 二.预览 1.启动 这是程序启动的主界面. 2.运行 搜索之后的界面. 3.结果 选择应用,右击鼠标复制它的下载链接 ...

  6. mac上卸载软件后,本地文件为什么没有被删除

    Mac 软件的安装方式和 Windows 不一样,通常情况下,Mac 软件会将程序本身和所需的资源文件都放在一个叫做"应用程序"的文件夹中. 当你在 Mac 上卸载软件时,只会删除 ...

  7. 2017/06/23 linux软件管理构建本地源

    构建本地光盘源 1.将本地光盘挂载/mnt下, mount   /dev/cdrom    /mnt 2.在/etc/yum.repos.d/目录下创建自己的源文件,文件名称自定义,必须以repo结尾 ...

  8. Linux中的软件源详解,linux软件管理构建本地源实例详解

    构建本地光盘源 1.将本地光盘挂载/mnt下, mount /dev/cdrom /mnt 2.在/etc/yum.repos.d/目录下创建自己的源文件,文件名称自定义,必须以repo结尾, 3.此 ...

  9. win10 网络通的 网页视频一直缓冲 音乐软件无法播放 本地视频播放不出声音的解决方案

    win10下 多媒体设备播放不出声音的解决方案_墨晓白的博客-CSDN博客_win10播放mkv没有声音      最近win10系统更新后,经常会出现多媒体设备播放不出生意的情况,显示声卡服务器异常 ...

最新文章

  1. 企业应用开发平台-GAP平台
  2. IIS和.net framework 4.0的安装顺序导致的问题
  3. C语言实验——打印金字塔_JAVA
  4. 最常用的决策树算法(一):ID3、C4.5、CART
  5. 重温3 Activity Intent 向下传递数据 向上传递数据
  6. 【转载】(Git)用动图展示10大Git命令
  7. Webpack 学习记录
  8. mysql的with rollup
  9. 201312-2-ISBN号码
  10. Android移动应用开发大作业——日程管理+邮件反馈
  11. 最新大数据案例分享:2019微信数据报告(图集)
  12. 同一个接口返回多种数据类型
  13. 数字电子技术-数字逻辑概论
  14. Mac Electron App 签名后打开闪退
  15. C#中操作Word(9)—— 向Word中插入图表的三种方法(二)
  16. 医疗器械生物相容性评价
  17. 服务器重启后,docker安装的mysql怎么重启
  18. 程序猿小白应该注意什么 1
  19. 究竟是什么限制了电池的容量
  20. hmcl离线登陆_hmcl启动器正版-hmcl启动器手机版下载hmclv1.0.0-七度网

热门文章

  1. Java网课基础笔记(20)19-08-02
  2. MP FILTRI FMP0394BAA6M25NP01
  3. 【电脑配置】三、解决ubuntu16.04系统无法连接wifi的错误
  4. 安卓期末大作业——售票APP源码和设计报告
  5. python好用的软件_比python好用的分析软件_财务分析报表怎么做_企业财务报表分析软件-帆软...
  6. Linux命令行如何编辑word文档,在Linux平台下用命令行工具显示Word文档
  7. java 不要科学计数法_java – 设置Jackson ObjectMapper类不要使用科学记数法来表示double...
  8. 统计学习第十四周-方差分析
  9. PPT文件不能编辑,什么情况?
  10. 怎么关闭计算机桌面的弹窗,电脑桌面弹出的广告怎么设置关闭