虽然Titanium里已有实现多语言的API可以非常方便地实现多语言国际化的功能,但其有一定的局限性,即不能在app里随时更换不同的语言,一定要直接更改整个手机里的语言设置才可生效,具体使用可以查看
官方教程。
我这里介绍的方法就可以解决直接在app里随时更换语言的问题,实现起来也很简单,原来其实与官方的差不多,也是要通过读取不同的xml语言文件来显示相关语言。OK,废话少说,直接上代码吧:
function L(text){
var langFile = Ti.App.Properties.getString('lang');
var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'languages/' + langFile + '.xml');
var xmltext = file.read().text;
var xmldata = Ti.XML.parseString(xmltext);
var data = xmldata.documentElement.getElementsByTagName(text);
Ti.API.info('lang:'+ JSON.stringify(data.item(0).text));
if(data != null)
return data.item(0).text;
return "";
}
以上一个简单的function就可以实现我们想要的效果了,呵呵,接下来让我慢慢解释一下吧。首先第一句
Ti.App.Properties.getString(‘lang’);
就是从当前app session里获取语言设置,当然这个可放到数据库里保存起来也行,否则关了应用下次再开就没了。第二句
var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,’languages/’ + langFile + ‘.xml’);
就是直接获取相关的语言文件,因此xml的命名规则要和你设置的语言名称一致,如 en-US.xml, zh-CN.xml …
后面几句也不需多解释了,一看就知道是读取XML然后获取其属性值的意思。但这里要注意的是XML文件的格式,必须要有一个根,然后才可填写键值对的语言文字,我刚开始就在这里被卡住了,以下是en-US.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<lang>
<title>title</title>
</lang>
K,就是调用此函数,如以上语言key是title,那么只需直接使用:
Ti.App.Properties.setString(‘lang’,'en-US’); //设置当前语言
Ti.API.info(‘title:’+ L(‘title’));
就可以获取当前语言的文字了,用此方法就可实现让用户随时更换当前语言
分享到:
相关推荐
这份翻译版的手册覆盖了Alloy框架的多个核心概念,为开发者提供了一个全面的参考。 1. **Alloy框架** Alloy是Titanium的一个MVC(模型-视图-控制器)框架,它提高了代码的可维护性和复用性。通过Alloy,开发者可以...
在实际开发过程中,使用`node-titanium-sdk`时,开发者需要熟悉Titanium的API,理解如何通过JavaScript代码调用这些API来实现原生功能。同时,还需要掌握基本的移动应用设计原则,以确保应用在不同平台上拥有良好的...
而Titanium打破了这一限制,开发者可以用自己熟悉的语言进行开发,同时保持接近原生性能的表现。 - **跨平台开发**:无论是移动设备还是桌面系统,开发者都能通过单一代码库实现跨平台的应用开发。 - **强大的API...
- **跨平台兼容性**:通过一次编写代码即可在多个平台上运行,如iOS和Android。 - **JavaScript支持**:使用广泛流行的JavaScript语言进行开发,降低了学习曲线。 - **社区资源丰富**:拥有活跃的开发者社区,提供了...
开发者需要确保代码在不同操作系统上表现一致,可能需要使用Titanium的条件编译或设备检测来实现。 7. **错误处理**:网络请求可能会失败,API调用也可能出错,因此错误处理是必不可少的。开发者应确保程序在遇到...
它通过一套统一的API接口,允许开发者用JavaScript编写一次代码就能在iOS、Android等多个平台上运行。这大大简化了移动应用的开发流程,并降低了维护成本。 #### 二、移动应用跨平台开发 移动应用跨平台开发是指...
这个开源库的出现极大地简化了前端开发者的工作,使得他们能够以一种熟悉的编程语言,快速开发出性能优异的多平台应用程序。 钛的全称是Appcelerator Titanium,由Appcelerator公司开发并维护。它的核心理念是提供...
这个框架的核心理念是提供一个跨平台的解决方案,让开发者可以用一种语言编写代码,然后在多个操作系统上运行,极大地提高了开发效率。 ### JavaScript开发 JavaScript是一种广泛应用于前端开发的动态编程语言,...
11. **国际化与本地化**:Titanium 提供了支持多语言的机制。了解如何实现应用的国际化和本地化,能让你的应用更好地服务于全球用户。 12. **发布与分发**:最后,学习如何打包、签名和发布应用到 App Store 或 ...
总的来说,TiMetro是一个有价值的工具,它扩展了Titanium的功能,使得开发者能够在非Windows平台上实现Metro UI的设计理念。通过掌握TiMetro,开发者可以为用户创造出更一致、更具吸引力的跨平台移动应用体验。
Titanium 模块“baiduspeechrecognizer”是专门为 Titanium 应用程序设计的,它集成了百度的语音识别服务,允许开发者在 Titanium 平台上轻松实现语音到文本的转换。 ### 功能特性 1. **在线语音识别**:该模块的...
开发者需要自行实现这一功能,可能需要借鉴其他框架或自创解决方案,如提及的作者已经通过他之前的框架实现了一套多语言切换机制。 另一方面,ChariTi在页面转换时缺乏动画效果,这对于提升用户体验至关重要。现代...
它允许开发者使用一种熟悉的语言来创建多平台应用,包括 iOS、Android 和其他平台。Titanium 提供了一套 API,使得开发者可以通过 JavaScript 调用原生设备功能,比如摄像头、GPS 和传感器等。 **项目核心功能** 1...
1. **跨平台开发**:钛合金的核心优势在于其跨平台能力,通过JavaScript API与原生平台API交互,开发者只需编写一次代码,即可实现多平台的兼容性。 2. **Titanium SDK**:SDK包含了大量的模块和工具,提供了丰富的...
描述中的"钛の样品集"可能是指一系列展示了Titanium特性和功能的代码样本,这些样本可能包括各种功能的实现,如用户界面设计、数据持久化、网络请求、多媒体处理、推送通知等。通过这些示例,开发者可以直观地了解...
这种技术的优势在于,开发者可以用一种熟悉的语言,实现多平台的兼容性,降低了学习新语言(如 Swift 或 Java)的成本。 1. **JavaScript 基础** - 作为 Titanium 开发的核心,JavaScript 是一门广泛使用的脚本...
5. **原生性能:** 尽管使用Web技术开发,但Titanium Mobile仍能实现接近原生应用的性能。 **劣势:** 1. **新功能延迟:** 由于不是官方支持的开发语言,因此在iOS等平台的新特性支持上可能会有所延迟。 2. **...
通过Titanium,开发者可以利用单一的代码库实现多平台的应用程序,大大提高了开发效率。 二、Titanium SDK 3 Titanium SDK 3 是该框架的一个重要版本,它支持当时的主流移动操作系统,包括iOS和Android。这个版本...
在这个专题中,我们将深入探讨如何使用Titanium Studio来设计和实现一个Android Phone Book应用,并重点关注XML和JSON这两种数据格式在其中的应用。 首先,让我们了解Titanium Studio。这是一个基于Eclipse的集成...
通过理解JavaScript编程、Titanium框架的使用以及天气API的集成,开发者可以进一步拓展此应用,增加更多功能,比如实时推送天气变化、添加动画效果、优化用户界面等。对于初学者,这个项目提供了宝贵的实践经验,有...