手机App如何走向世界?

本文探讨了手机App本地化的重要性,以安卓为例,详细解释了如何进行本地化,包括设计布局、消除硬编码、翻译字符串的过程,并通过开源app的实践展示了实际操作流程。本地化是app走向世界的关键,确保用户能用当地语言流畅使用产品。
摘要由CSDN通过智能技术生成

本文作者/Leo刘晓诚(舜禹环球通运营总监)

相关商务合作与专业交流  欢迎移步文末加作者为好友

据移动互联网大数据公司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的本地化远比本文所描述的复杂,不过最基本的原理是相似的。我们可以先从最简单的例子开始,建立一些基本的概念,再去解决更具挑战的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值