1. 什么是小程序I18n?
I18n,全称Internationalization,通常被称作国际化。它是指将一个软件或程序的界面和功能进行本地化改造,从而适应不同的国家和语言环境。针对微信小程序,小程序I18n则是指将微信小程序进行国际化改造,使其在不同语言环境下展示适宜的内容,提供更便捷的用户体验。
小程序I18n总体而言可以分为两步:国际化和本地化。国际化是基于语言、文化的认知差异,适应不同目标用户的习惯,使用通用的技术框架,实现一套可以多语言复用的开发模式。本地化则是在全球范围内,根据不同区域特色、习惯、规律,进行定制化的个性化产品适配,以达到近乎完美的用户体验。
2. 小程序I18n的必要性
小程序I18n之所以必要,是因为微信小程序开发者在国际化方面存在一些共性问题。比如说,当一个小程序的主要用户群体为中文用户时,其界面设计、文字表述等可能会与中文语言习惯相符。但如果要将这个小程序推广到全球范围内,用户不再是中文用户一种语言文化体验习惯,需要进行语言和文化的适配,从而提升用户黏性和推广效果。
3. 小程序I18n的最佳实践案例
3.1 在小程序中确立内部统一的语言项目
要进行小程序I18n的改造,第一步需要确立内部统一的语言项目。建议使用JSON文件进行存储和管理。开发人员可以将所有字符串信息转化成JSON格式,存储到一个独立的JSON文件中,从而可以便捷地进行不同语言版本的复制和翻译。譬如我们建立了一个zh-CN.json文件,负责中文语言翻译,那么我们在代码中用到的字符串就可以使用JSON文件中的键值对进行映射。如下所示:
//在JSON文件(zh-CN.json)中进行句子翻译
{
"welcome":"欢迎来到小程序XX",
"title":"XX详情",
"buttonText":"提交"
}
//JS文件中使用对应翻译方法
var zhCN=require('/language/zh-CN.json');
var buttonText=zhCN.buttonText;
开发人员可以将所有字符串信息转化成JSON格式,存储到一个独立的JSON文件中,从而可以便捷地进行不同语言版本的复制和翻译。为了避免代码出现乱码,可以在JSON文件中指定字符串编码方式。示例中我们使用的是UTF-8编码格式。
3.2 使用小程序官方API进行语言切换
有了内部统一的语言项目后,就需要在小程序中进行语言切换了。在小程序中,可以使用函数wx.T()来进行翻译和切换。当我们使用wx.T()函数时,微信小程序会根据当前设备上用户设置的语言环境,自动匹配相应的语言内容。如下所示,我们可以将wx.T()函数直接应用在对应DOM节点上:
Page({
data: {
lang: 'zh'
},
onLoad: function () {
this.setData({lang: wx.getLanguage()})
},
onTap: function () {
var btn=this.data.btnText;
console.log(btn);
},
changeLanguage: function () {
var lang = this.data.lang === 'zh' ? 'en' : 'zh';
this.setData({ lang: lang });
wx.T.setLocale(lang);
}
});
3.3 实现代码分离控制
随着语言版本的增加,将所有相关字符串存储到一个JSON文件中,可能会导致文件和代码冗余性增加。因此我们需要一个机制,来避免冗余的代码和数据。响应式reactive是一种分离控制机制,其中各自负责数据和状态的编写。在小程序设计中,由于wx.T()函数的存在,语言状态便从DOM中抽离出来,成为一种独立的状态。而我们仅需要用一种固定语言,进行开发和调试。在实际切换语言时,只需要重新渲染出新的语言状态即可。
3.4 合理进行图片资源翻译
除了文本和界面设计之外,图片等视觉媒介也是小程序中广泛用于展现信息和功能的元素之一。在I18n方面,针对这一情况,需要对图片资源进行相应翻译和适配。开发者可以针对不同设备的屏幕密度和相应语言环境下的字体特点,将图片资源进行定制和优化。为了不对代码整体性能造成影响,建议将文本和图片分别进行I18n,并尽可能减少图片资源翻译的数量。
3.5 对字体和排版进行规范化处理
字体和排版在小程序I18n中也是需要谨慎处理的。合理的字体设计和排版可以帮助用户更好地理解应用程序的内容和功能。但对于不同语言文字而言,字体和排版依据的原则就可能不同。比如说,英文文本适合使用Serif体系下的字体,而中文文本则可能更适合使用Sans-serif体系下的字体。建议开发者在国际化欠缺或不足时,可以通过参考资源相关资料,从中学习和借鉴,加强对不同语言文本需求的规范化处理。
4. 总结
I18n是微信小程序优化的重要步骤之一。开发I18n小程序可以使它的功能在全球范围内展示更多的优势,并可以得到更好的用户接受。要想更好地运用小程序I18n,我们一定需要进行大量的开发实践和学习。同时要在代码中保持良好的规范,合理使用技术手段,最终实现更加灵活、高效、便捷的开发流程。