转换Ionic应用程序以吸引全球受众的5个步骤指南
支持您的移动应用程序的一种简单方法是支持他们的母语。 Apple强烈建议您为全球受众准备您的应用程序。 本教程介绍了如何翻译Ionic应用程序以支持其他语言。 我最近的“工作时间”更新(版本3.2)包括对其他5种语言的支持。 本教程通过5个简单步骤逐步介绍了如何更新应用程序:
- 翻译您的应用程序的内容
- 将Angular Translate模块添加到您的应用中
- 更新您的模板
- 更新您的控制器和服务
- 测试您的翻译
翻译您的应用程序的内容
在更改任何代码之前,我们需要翻译所有应用程序内容。 创建应用程序中所有文本的文本文档。 确保检查所有内容。 以下是一些注意事项:
- 每个模板的文字
- 来自每个控制器的文本
- 每个服务的文字
- 过滤器返回的文字
- App Store说明
- App Store关键字
除非您是多语种,否则您需要使用翻译服务将文本转换为您的首选语言。 我过去曾经使用过一个名为“我可以本地化”的网站。 您也可以在Fiverr上找到负担得起的翻译产品。 我建议找到具有翻译移动应用程序经验的翻译人员。
将Angular Translate模块添加到您的应用中
假设您使用Ionic Framework和AngularJS构建了应用程序,则应使用功能强大的翻译服务Angular Translate。 从他们的仓库中下载最新版本,解压缩文件,然后将angular-translate.min.js
文件移动到项目js
文件夹中。 然后只需将脚本嵌入到www/index.html
文件中,如下所示:
确保将模块作为依赖项注入到您的应用程序中。 这是工作时间的节选:
angular.module('hoursworked', ['pascalprecht.translate'])
然后使用$translateProvider
向应用程序介绍您的$translateProvider
。 以下是工作时间示例:
$translateProvider.translations('en', {
start_label: "Start Time",
end_label: "End Time"
});
$translateProvider.translations('es', {
start_label: "Principio",
end_label: "Fin"
});
$translateProvider.translations('pt', {
start_label: "Hora de Início",
end_label: "Hora de Término"
});
$translateProvider.translations('zh', {
start_label: "开始时间",
end_label: "时间结束"
});
$translateProvider.preferredLanguage("en");
$translateProvider.fallbackLanguage("en");
更新您的模板
既然您的应用已经了解了翻译,则需要从模板中删除所有纯文本。 以“工作时间”中的“开始时间”标签为例。 这是翻译应用程序之前的模板片段:
这是升级为使用翻译过滤器的同一代码段:
更新您的控制器和服务
更新每个模板后,您将需要更新所有返回文本的逻辑。 以下是使用翻译过滤器的“工作时间”日历的控制器示例。 请注意,要使过滤器在控制器内部运行,必须将其作为依赖项注入: .controller('CalendarCtrl', function($filter) {...
更新依赖项列表后,您可以自由使用翻译过滤器:
前控制器逻辑
DayFactory.index().then(function(hours) {
$scope.hours = hours;
if ($scope.allLabel =="View All Hours") {
$scope.limit = hours.length;
$scope.allLabel = "View Less";
} else {
$scope.limit = 5;
$scope.allLabel = "View All Hours";
}
}, function(errors) { console.log(errors); });
转换了相同的控制器逻辑
DayFactory.index().then(function(hours) {
var va1 = $filter('translate')("view_all");
var va2 = $filter('translate')("view_less");
$scope.hours = hours;
if ($scope.allLabel == va1) {
$scope.limit = hours.length;
$scope.allLabel = va2;
} else {
$scope.limit = 5;
$scope.allLabel = va1;
}
}, function(errors) { console.log(errors); });
测试您的翻译
测试您的翻译非常简单,我敢说有点令人愉快。 您将更改要测试的iOS设备的语言和区域。 在这里可以找到设置:
- 设置应用
- 一般
- 语言和地区
- iPhone语言
- 选择您提供翻译的语言
然后,您可以重新打开您的应用以确认内容已转换。 这是我测试葡萄牙语工作时间翻译的截屏视频: