网易首页 > 网易号 > 正文 申请入驻

手机app如何走向世界?

0
分享至

以下文章来源:舜禹环球通Transphere

作者:Leo刘晓诚

编者荐语:

作者从APP的设计布局、消除硬编码、翻译字符串和开源app的本地化实践,五个模块的分享。非常值得初做APP国际化和职业译员的同学参考借鉴。

据移动互联网大数据公司QuestMobile发布的《中国移动互联网2021半年大报告》显示,在去年一整年,我国移动互联网全网用户的月人均APP使用数量达26.3个,人均单日app使用时长是5.1小时,基于我国庞大的人口数量,绝大多数app的显示语言为中文。

此外,中国每年有大量的手机销往国外:

小米在印度的市场份额长期占据头名;

传音在非洲拥有40%的市场份额,一直以来都是非洲最大的手机品牌;

一加手机海外销量占比超过70%……

而这些品牌在国外的用户,app显示的语言当然不是中文,而是在本地化后成为了当地人能看懂的语言。

随着互联网和智能手机的发展,终端用户的话语权变大,因此,如何与用户产生共鸣变得至关重要。而本地化则是最基本的工作,试想如果用户根本看不懂界面语言,又怎么会使用产品甚至为此付费呢。可以说,本地化是app走向世界的第一步。

这里的“本地化”包含两层意思:第一,是指把待译文字提取出来,译员翻译完成后再导回原始环境;第二,译文要遵守当地的语言文化习惯,流畅自然。

无论是哪个国家的用户,似乎已经习惯于app上显示的是当地语言。这也是本地化这项任务的初衷:不再让语言成为用户使用产品的障碍。那么,app的本地化是如何实现的呢?

以安卓为例,我们先写一个最简单的安卓app来研究一下。

1. 设计布局

下载Android Studio,用空模板新建一个android项目。Android Studio的组件种类众多,我们通过拖拽和固定,便可将各个组件放置在屏幕上的相应位置。这里只从左侧拖了一个文本框组件和一个按钮组件。

2. 消除硬编码

从上面的截图中我们发现,左下角有黄色三角形的警告标识。警告的原因是什么呢?点击警告标识,出现如下提示:

原来,文本框里面的文字“TextView”是硬编码,所谓硬编码,是指将文字混入了代码之中,而未单独放置。之所以出现警告,是因为将文字和代码混合会给本地化带来诸多不便,例如,如果要翻译这些文字,整个代码都得再编译一遍,哪怕只翻一个字符串也是如此——于是就会有编译失败的风险。此外,还会出现乱码等问题。

为了避免这个问题,若出现硬编码,Android Studio默认会发出警告。修复也很简单,把字符串放在单独的文件中,再在代码中引用该字符串即可。也就是说,将代码与文字分离。

点击“Fix”,出现右侧的对话框:

其中,第一行的“Resource name”是指该字符串的名字,它是不会显示在界面上的,显示在界面上的是字符串的值,即第二行的“TextView”。点击“OK”,这个字符串便保存在了“strings.xml”这个文件中,如第四行所示。

通过“Fix”将所有硬编码的问题修复之后,所有的字符串便被放在了一个单独的文件中。

在Android Studio中,可以通过运行"Analyze > Run Inspection By Name...", 然后输入 "Hardcoded text" 来查找程序中所有的硬编码,再逐一修复。

3. 翻译字符串

在Android Studio中点击“text”最右侧那个小按钮后,将弹出界面:

点击这个界面左上角的“Open Translations Editor”,弹出的界面如下:

我们可以通过这个界面对字符串进行本地化。其中,第一列的“Key”为各个字符串的名字。第二列是指字符串所在文件的路径。若字符串不要翻译(如app名),则勾选第三列。第四列是各个字符串。

要增加语言,点击上方的“Show All Keys”左边的地球符号,选择要添加的语言:

翻译完成后:

第一行的app名无需翻译,因此选中了“Untranslatable”复选框。

我们发现,Android Studio左侧的文件列表中多了一个文件:

这说明,在刚刚添加过语言后,就自动生成了一个包含该语言所有字符串的文件“Strings.xml”。

在将系统语言设置成中文优先后,我们发现app会自动调用相应的中文string,如下所示:

这样,之前的英文界面就变成中文了。

开源app的本地化实践

在上个例子中,我们用Android Studio中自带的Translations Editor进行翻译。这个编辑器的功能有限,如果字符串内容比较多,就需要考虑更为专业的工具。

如果仅仅在刚才那个非常简单的app上多画几个文本框,加几个按钮,从而让字符串的内容增加,意义并不大——只是简单工作的叠加,复杂度并没有增加;并且,这个“app”只是作为一个研究本地化的简单示例,并非真正的app。为了模拟更为现实的情景,我们可以去下载一个开源app,实际动手操作一番。

1. 从github导入app源代码

在github上能找到各种各样的开源app。为了找到比较合适的资源,我们可以将搜索条件限定为:

1. 安卓程序

2. 大小适中

3. 能运行(而非库或插件)

为此,在github上的搜索条件可设置为:

1. language:java(把程序语言限定为java,因为安卓程序大部分都是用java写的),再加个关键字“app”(搜索的是能运行的app)

2. pushed:>2022-01-01(2022年1月1日后有更新。如果app太旧可能与手机上的安卓版本不兼容)

3. size:<100000(限定app的大小,不需要太大)

就这样,搜到了一款待办事项小工具,感觉比较合适:

下面就是把github上的这款app导入安卓程序的开发环境——Android Studio,这样我们就可以看看app的源代码了。

首先,复制该app的地址,一看便知:

Android Studio中,我们可以直接将github上的开源代码导入(选择“File” – “New” – “Project from Version Control”):

将复制的地址贴入:

这样,这个app的源代码就被下载到Android Studio中了。

2. 翻译string文件并导回

(这个app有中文版本,先把中文string所在的文件夹“values-zh”删除)

先添加中文:

添加之后,会出现一个名为“values-zh-rCN”的文件夹,其中的string.xml是存放中文的文件,但由于还没翻译,这个文件是空的。

“values”文件夹中的string.xml是用app的默认语言——英文写的界面词。下面要做的是,把这个文件复制到“values-zh-rCN”并覆盖当前文件,再将其中的英文翻译成中文。

在momoq中直接导入“string.xml”,内置的解析器已经把待译内容提取出来了,译员可直接翻译,十分方便。

翻完之后导出,运行一下:

界面已经成功变成中文了。

在实际项目中,app的本地化远比本文所描述的复杂,不过最基本的原理是相似的。我们可以先从最简单的例子开始,建立一些基本的概念,再去解决更具挑战的问题。

转载编辑:陈雨

关注VX公众号“翻译技术教育与研究”、“语言服务行业”,了解更多语言服务行业与翻译技术相关的资讯和洞察~

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
农村留守妇女的性生活到底有多尴尬?

农村留守妇女的性生活到底有多尴尬?

书画艺术收藏
2024-03-06 19:00:05
44万台军,3.5万美军,4.5万日军!若收台,须做好美日参战的准备

44万台军,3.5万美军,4.5万日军!若收台,须做好美日参战的准备

简读视觉
2024-06-06 19:55:02
英国新晋公爵夫人,除外表外,还在这些方面与凯特王妃惊人相似

英国新晋公爵夫人,除外表外,还在这些方面与凯特王妃惊人相似

译言
2024-06-07 19:43:15
哀求?大帝说即便现在也可和乌签和平条约,想继续和美英法合作

哀求?大帝说即便现在也可和乌签和平条约,想继续和美英法合作

邵旭峰域
2024-06-07 11:39:26
国足伤兵满营!阿兰无缘国足生死战,4人轻伤在身,武磊老伤复发

国足伤兵满营!阿兰无缘国足生死战,4人轻伤在身,武磊老伤复发

奥拜尔
2024-06-07 15:47:17
闹大了!红领巾“新系法”引争议?全国少工委发布佩戴方法说明

闹大了!红领巾“新系法”引争议?全国少工委发布佩戴方法说明

糖果屋主
2024-06-07 23:14:16
黑龙江美女医生遭折磨12个小时,多处部位被咬,作案5人预谋已久

黑龙江美女医生遭折磨12个小时,多处部位被咬,作案5人预谋已久

牧愚君
2024-05-06 00:17:56
1994年湖南女子被拐山村5年生3子,获救时竟不愿回家,全因很幸福

1994年湖南女子被拐山村5年生3子,获救时竟不愿回家,全因很幸福

墨染尘香
2024-05-30 01:11:23
寅虎人 :6.7—6.12,一场令人心跳加速的大喜事正悄悄逼近!

寅虎人 :6.7—6.12,一场令人心跳加速的大喜事正悄悄逼近!

乒坛老将
2024-06-07 20:15:42
国外网友谈月球土壤是否分享,韩印整活,德法看戏,美网友被群嘲

国外网友谈月球土壤是否分享,韩印整活,德法看戏,美网友被群嘲

文雅笔墨
2024-06-07 15:26:32
成龙新片预告被嘲像网大,投资3.5亿,质感还不如20年前《神话》

成龙新片预告被嘲像网大,投资3.5亿,质感还不如20年前《神话》

小咪侃娱圈
2024-06-06 11:22:36
澳大利亚大部队即将来华,要把菲律宾的市场份额,都装进自己口袋

澳大利亚大部队即将来华,要把菲律宾的市场份额,都装进自己口袋

莫将离
2024-06-05 22:27:16
为什么首富必须死?

为什么首富必须死?

汉周读书
2024-05-20 09:52:50
暴跌500亿!中国榴莲大王,踩中了一颗巨雷

暴跌500亿!中国榴莲大王,踩中了一颗巨雷

金错刀
2024-05-30 17:14:30
老公带我去私人影院体验快乐,结果把我们双方带入深渊,不可收拾

老公带我去私人影院体验快乐,结果把我们双方带入深渊,不可收拾

亲爱的落落
2024-06-05 15:50:28
老公每晚带不同的女人回家,直到我生命尽头,他才发现一切都晚了

老公每晚带不同的女人回家,直到我生命尽头,他才发现一切都晚了

小亮侃事儿
2024-04-15 17:36:28
江西发布任前公示,颜小龙拟任设区市委常委

江西发布任前公示,颜小龙拟任设区市委常委

新京报
2024-06-07 20:21:10
参加26世界杯?梅西:我要诚实地看待自己,到时候还有没有竞争力

参加26世界杯?梅西:我要诚实地看待自己,到时候还有没有竞争力

直播吧
2024-06-07 18:56:06
越来越多人得癌症,医生提醒:洗碗时的6个坏习惯,千万别再做了

越来越多人得癌症,医生提醒:洗碗时的6个坏习惯,千万别再做了

DrX说
2024-06-03 13:58:54
北京医院副院长:其实您没病,您只是老了!

北京医院副院长:其实您没病,您只是老了!

华人星光
2024-06-07 12:40:03
2024-06-08 03:14:44
翻译技术千千问
翻译技术千千问
翻译技术、学习分享
886文章数 152关注度
往期回顾 全部

科技要闻

6家大模型抢答高考作文,谁是你心中的Top1

头条要闻

拜登称"一带一路"倡议已成为令人讨厌的计划 中方回应

头条要闻

拜登称"一带一路"倡议已成为令人讨厌的计划 中方回应

体育要闻

优势在我?中国足球有自己的节奏

娱乐要闻

汤唯抵达巴黎将担任奥运火炬手

财经要闻

身陷退市股的投资者:我的钱瞬间没了

汽车要闻

2.0T混动售20.98万元起 福特蒙迪欧运动版上市

态度原创

房产
旅游
时尚
本地
教育

房产要闻

顶流地段+顶级户型!香港半山豪宅,已成为高净值人群的资产压舱石!

旅游要闻

上海迪士尼年卡最高档位卡种八折优惠改为满减

接下来几个月,比看赛事更有意思的是......

本地新闻

我和我的家乡|踏浪营口,心动不止一夏!

教育要闻

高考数学热点题型,x²+y²+z²=1,题目灵活多变

无障碍浏览 进入关怀版