`
rensanning
  • 浏览: 3553204 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38226
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607650
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682835
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89562
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:402165
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69770
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91861
社区版块
存档分类
最新评论

在Titanium里实现多语言

阅读更多
虽然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’));
就可以获取当前语言的文字了,用此方法就可实现让用户随时更换当前语言
分享到:
评论

相关推荐

    Titanium中文版开发手册

    这份翻译版的手册覆盖了Alloy框架的多个核心概念,为开发者提供了一个全面的参考。 1. **Alloy框架** Alloy是Titanium的一个MVC(模型-视图-控制器)框架,它提高了代码的可维护性和复用性。通过Alloy,开发者可以...

    前端开源库-node-titanium-sdk

    在实际开发过程中,使用`node-titanium-sdk`时,开发者需要熟悉Titanium的API,理解如何通过JavaScript代码调用这些API来实现原生功能。同时,还需要掌握基本的移动应用设计原则,以确保应用在不同平台上拥有良好的...

    Titanium开发者平台介绍

    而Titanium打破了这一限制,开发者可以用自己熟悉的语言进行开发,同时保持接近原生性能的表现。 - **跨平台开发**:无论是移动设备还是桌面系统,开发者都能通过单一代码库实现跨平台的应用开发。 - **强大的API...

    TITANIUM智能手机应用开发教程

    - **跨平台兼容性**:通过一次编写代码即可在多个平台上运行,如iOS和Android。 - **JavaScript支持**:使用广泛流行的JavaScript语言进行开发,降低了学习曲线。 - **社区资源丰富**:拥有活跃的开发者社区,提供了...

    titanium_weatherSample

    开发者需要确保代码在不同操作系统上表现一致,可能需要使用Titanium的条件编译或设备检测来实现。 7. **错误处理**:网络请求可能会失败,API调用也可能出错,因此错误处理是必不可少的。开发者应确保程序在遇到...

    Titanium学习教程

    它通过一套统一的API接口,允许开发者用JavaScript编写一次代码就能在iOS、Android等多个平台上运行。这大大简化了移动应用的开发流程,并降低了维护成本。 #### 二、移动应用跨平台开发 移动应用跨平台开发是指...

    前端开源库-titanium

    这个开源库的出现极大地简化了前端开发者的工作,使得他们能够以一种熟悉的编程语言,快速开发出性能优异的多平台应用程序。 钛的全称是Appcelerator Titanium,由Appcelerator公司开发并维护。它的核心理念是提供...

    Titanium使用JavaScript来开发原生iOSAndroid和Windows应用

    这个框架的核心理念是提供一个跨平台的解决方案,让开发者可以用一种语言编写代码,然后在多个操作系统上运行,极大地提高了开发效率。 ### JavaScript开发 JavaScript是一种广泛应用于前端开发的动态编程语言,...

    titanium-good-practices:Titanium中文教程.Make titanium easily and powerfully

    11. **国际化与本地化**:Titanium 提供了支持多语言的机制。了解如何实现应用的国际化和本地化,能让你的应用更好地服务于全球用户。 12. **发布与分发**:最后,学习如何打包、签名和发布应用到 App Store 或 ...

    通过Titanium将Metro UI移植到iOS/Android的“ TiMetro”

    总的来说,TiMetro是一个有价值的工具,它扩展了Titanium的功能,使得开发者能够在非Windows平台上实现Metro UI的设计理念。通过掌握TiMetro,开发者可以为用户创造出更一致、更具吸引力的跨平台移动应用体验。

    推荐一个非常棒的Titanium MVC框架

    开发者在面对多语言环境的应用时,可能需要自行实现相应的多语言处理机制。此外,ChariTi框架在页面转换动画上也略显不足,缺少了动画效果可能会降低应用的视觉吸引力。虽然添加动画效果可能需要开发者具备一定的...

    Titanium-module-baiduspeechrecognizer:Titanium modules 百度语音

    Titanium 模块“baiduspeechrecognizer”是专门为 Titanium 应用程序设计的,它集成了百度的语音识别服务,允许开发者在 Titanium 平台上轻松实现语音到文本的转换。 ### 功能特性 1. **在线语音识别**:该模块的...

    arduino-android-titanium:用于使用 Arduino Android 库的 Titanium 模块

    它允许开发者使用一种熟悉的语言来创建多平台应用,包括 iOS、Android 和其他平台。Titanium 提供了一套 API,使得开发者可以通过 JavaScript 调用原生设备功能,比如摄像头、GPS 和传感器等。 **项目核心功能** 1...

    titanium:MobGeek Titanium 4 周课程代码

    1. **跨平台开发**:钛合金的核心优势在于其跨平台能力,通过JavaScript API与原生平台API交互,开发者只需编写一次代码,即可实现多平台的兼容性。 2. **Titanium SDK**:SDK包含了大量的模块和工具,提供了丰富的...

    titanium_samples:钛样品采集

    描述中的"钛の样品集"可能是指一系列展示了Titanium特性和功能的代码样本,这些样本可能包括各种功能的实现,如用户界面设计、数据持久化、网络请求、多媒体处理、推送通知等。通过这些示例,开发者可以直观地了解...

    learning-titanium

    这种技术的优势在于,开发者可以用一种熟悉的语言,实现多平台的兼容性,降低了学习新语言(如 Swift 或 Java)的成本。 1. **JavaScript 基础** - 作为 Titanium 开发的核心,JavaScript 是一门广泛使用的脚本...

    TitaniumMobile开发跨平台iOS和Android应用

    5. **原生性能:** 尽管使用Web技术开发,但Titanium Mobile仍能实现接近原生应用的性能。 **劣势:** 1. **新功能延迟:** 由于不是官方支持的开发语言,因此在iOS等平台的新特性支持上可能会有所延迟。 2. **...

    program_with_appcelerator_titanium:如果你做到了,你就会明白! 钛移动编程SDK3兼容学习

    通过Titanium,开发者可以利用单一的代码库实现多平台的应用程序,大大提高了开发效率。 二、Titanium SDK 3 Titanium SDK 3 是该框架的一个重要版本,它支持当时的主流移动操作系统,包括iOS和Android。这个版本...

    Android Phone book

    在这个专题中,我们将深入探讨如何使用Titanium Studio来设计和实现一个Android Phone Book应用,并重点关注XML和JSON这两种数据格式在其中的应用。 首先,让我们了解Titanium Studio。这是一个基于Eclipse的集成...

Global site tag (gtag.js) - Google Analytics