每个开发人员都应该知道5件关于本地化(10n)的事情

每个开发人员都应该知道5件关于本地化(10n)的事情

点击蓝字,关注Java高级部落


作为一名开发人员,你明白要想成长,你需要不断学习,无论是从书籍、访问会议,还是阅读像这样的文章。在新的基本技能中,您现在应该获得的是正确的位置-构建支持本地化的软件的能力。


本地化基本上是使软件易于在不同的语言和地区中使用。世界上任何一个人,说任何语言,都可以开始使用你的应用程序,在你的网站上下订单,或者玩你用母语开发的游戏。想象一下你的软件还会有多少客户。扩大你的产品的目标市场是一件大事,如果你能做到这一点,你作为一个开发人员就会更有价值。


每个开发人员都应该知道5件关于本地化(10n)的事情


在本文中,我将告诉您关于开发能够支持多种语言和地区而不需要翻译的软件(除非您愿意),您应该知道些什么。在与其他开发人员讨论之后,克劳丁我希望有人能早点告诉他们本地化的事情,所以我想出了5条关于本地化的建议,你也应该知道。继续阅读,如果你想用你现在可以学到的新技能来扩展你的简历-构建适合本地化的软件。



1

从一开始就添加对本地化的基本支持

最有可能的是,在某个时候只支持一种语言是不够的。所以你最好为即将到来的事情做好准备。特别是如果已经有了一个将产品推向全球的计划-确保在开始编写代码之前直接与项目经理或客户进行讨论。如果从一开始就没有做好准备,那么您将不得不花费额外的时间重构所有代码,以使其稍后支持本地化。所以最好现在就开始为本地化做准备。


当然,有3.6亿以英语为母语的人和5亿人中的一个把英语作为第二语言。但是那些不会说英语的人呢?根据Babble on的数据,大约有12亿人说中文,4亿人说西班牙语,还有更多的人说其他世界语言。因此,支持多种语言不再是额外的,而是人们对您的产品的期望。



2

外部化所有本地化资源

您可能不希望寻找文本字符串,然后从代码中手动检索它们,以便将它们传递给翻译器。相反,可以考虑一些更快更简单的解决方案,比如本地化文本包装器或使用键作为硬编码文本的替代方案。


例如,在Android开发中,您可以使用资源:getString并以下列方式设置字符串的格式:

每个开发人员都应该知道5件关于本地化(10n)的事情

在这种情况下,您将收到:

每个开发人员都应该知道5件关于本地化(10n)的事情

这里建议的解决方案是使用唯一的字符串键,并为每种语言将实际的文本字符串存储在单独的文件中。为您的产品要支持的每个区域创建一个单独的文件或目录。对于每个本地化的文件,将翻译的版本放置在与根完全相同的路径上,并给出与原始文件相同的名称和区域设置标识符。


例如,Android使用带有“.xml”文件扩展名的文件来保存和获取应用程序中所使用的用于每种支持语言的所有字符串。代码中的简单方法调用将根据设备上使用的当前语言查找并返回所请求的字符串。


你必须把所有的文本都放在你使用的默认语言中,让我们假设它是英语res/values-en/strings.xml.

然后您就可以指定几个res/<qualifiers>/具有不同限定符的目录。每个对应的语言和地区。这样,您的应用程序就可以查看该文件的法语版本。res/values-fr/strings.xml,对于该文件的西班牙版本,它将在res/values-es/strings.xml.



3

添加本地化注释

以后必须使用您提供的字符串文件的翻译程序通常不会获得该文件的额外上下文。因此,在某些情况下添加描述性评论可能对他们有很大帮助。


考虑在下列情况下添加评论:

· 字符串可能会不明确地显示出来。例如,“书签”既可以是名词,也可以是动词,没有上下文就很难猜到。在这种情况下,描述性字符串键也会有所帮助,例如:

每个开发人员都应该知道5件关于本地化(10n)的事情

最好用

每个开发人员都应该知道5件关于本地化(10n)的事情

· 如果字符串包含一个变量-添加一个示例或简短解释它可能是什么。


您还应该考虑到,每个平台都有一个本地化评论的既定格式,所以请确保您的研究和遵循它。由于有许多自动化工具,比如Crowdin,以后可能会解析这些注释,以便于翻译人员访问和使用。



4

使用本地化库简化过程

每种语言都有自己的文本布局、格式设置等细节。这是您不必手动完成的工作,因为它很容易自动化。


强烈建议使用本地化库(例如,您可以将InternationalComponents用于Unicode(加护病房)这将帮助您处理以下方面:

· 支持相同字符串中的从右到左(RTL)和从左到右(LTR)脚本。

· 应用数字、货币、日期和时间格式字符串。例如,日期格式根据语言变化,对于英语则是7/23/2018(恩-美)而对于法语来说,它是.23/07/2018(Fr-FR)

· 复数用法。例子:

每个开发人员都应该知道5件关于本地化(10n)的事情



5

与本地化管理平台的集成

一旦您的客户准备好本地化您构建的软件,您将需要将所有可本地化的文本导出为某种通用文件格式,这些格式将传递给翻译团队。有些公司仍然使用Excel文件进行本地化。但是让我在这里阻止你,不要在Excel中进行本地化。这是一个令人惊奇的工具,但对于其他伟大的事情。想象一下,如何确保.xls.xlsx文件中的所有字符串都是最新的,并且所有的翻译都与您的代码同步。如果你的产品是每月/每周/每天更新的呢?相信我,你不会喜欢手工处理的。


这就是为什么大多数公司用集成或内部工具实现所有这些普通文本字符串交换的自动化。例如,您可以设置APIGit与本地化管理平台的集成。一旦您建立了集成,我们的工具将从您的回购获得本地化文件,并将他们上传到编辑器,在那里字符串将与您提供的评论看起来对用户友好。翻译完成后,系统将它们合并到一个文件中,并将它们与您的代码同步为合并请求或可添加到特定区域设置的目录的文件。



结语

软件本地化是扩展产品目标市场的一种很好的方式,因为人们更有可能用他们的母语使用软件。本地化也是一夜之间不可能完成的事情,所以希望现在,您将做好准备,因为您已经知道了基础知识。




最近这几天我联系来自互联网公司的架构师,为大家准备了几场技术分享的机会。


第一场:9月10日晚上 高并发缓存架构爬坑记,架构师分享缓存中踩过的那个坑

第二场:9月12日晚上 跳出理论怪圈,设计模式实战篇

 

现在扫码进群,即可领取一份技术分享门票以及互联网公司架构视频资料分享。

每个开发人员都应该知道5件关于本地化(10n)的事情


大型互联网公司架构资料


每个开发人员都应该知道5件关于本地化(10n)的事情每个开发人员都应该知道5件关于本地化(10n)的事情


每个开发人员都应该知道5件关于本地化(10n)的事情


每个开发人员都应该知道5件关于本地化(10n)的事情


立即扫码进群,即可免费领取资料和直播分享

 

轻轻一扫,就能获得技能提升机会,赶紧行动起来吧~



长按二维码

关注Java高级部落

每个开发人员都应该知道5件关于本地化(10n)的事情每个开发人员都应该知道5件关于本地化(10n)的事情


点击原文,加入Java技术交流群~