`
longgangbai
  • 浏览: 7330940 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Titanium实现国际化

 
阅读更多

            我这里介绍的方法就可以解决直接在app里随时更换语言的问题,实现起来也很简单,原来其实与官方的差不多,也是要通过读取不同的xml语言文件来显示相关语言。OK,废话少说,直接上代码吧:

  1. functionL(text){ 
  2.  
  3. varlangFile=Ti.App.Properties.getString('lang'); 
  4.  
  5. varfile=Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'languages/'+langFile+'.xml'); 
  6.  
  7. varxmltext=file.read().text; 
  8.  
  9. varxmldata=Ti.XML.parseString(xmltext); 
  10.  
  11. vardata=xmldata.documentElement.getElementsByTagName(text); 
  12.  
  13. Ti.API.info('lang:'+JSON.stringify(data.item(0).text)); 
  14.  
  15. if(data!=null
  16.  
  17. returndata.item(0).text; 
  18.  
  19. return""
  20.  

以上一个简单的function就可以实现我们想要的效果了,呵呵,接下来让我慢慢解释一下吧。首先第一句

Ti.App.Properties.getString(‘lang’);

就是从当前appsession里获取语言设置,当然这个可放到数据库里保存起来也行,否则关了应用下次再开就没了。第二句

varfile=Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,’languages/’+langFile+‘.xml’);

就是直接获取相关的语言文件,因此xml的命名规则要和你设置的语言名称一致,如en-US.xml,zh-CN.xml…

后面几句也不需多解释了,一看就知道是读取XML然后获取其属性值的意思。但这里要注意的是XML文件的格式,必须要有一个根,然后才可填写键值对的语言文字,我刚开始就在这里被卡住了,以下是en-US.xml的内容:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <lang> 
  3. <title>title</title> 
  4. </lang> 
  5.  
  6.   

OK,就是调用此函数,如以上语言key是title,那么只需直接使用:

Ti.App.Properties.setString(‘lang’,'en-US’);//设置当前语言

Ti.API.info(‘title:’+L(‘title’));

就可以获取当前语言的文字了,用此方法就可实现让用户随时更换当前语言

分享到:
评论

相关推荐

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

    了解如何实现应用的国际化和本地化,能让你的应用更好地服务于全球用户。 12. **发布与分发**:最后,学习如何打包、签名和发布应用到 App Store 或 Google Play,以及如何进行持续集成和持续部署(CI/CD),是将...

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

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

    alloy-localizer:钛合金国际化插件,可遍历项目目录以创建i18nen子文件夹

    **铝合金定位器(Alloy-Localizer):深入理解国际化插件** 在现代软件开发中,国际化(i18n)是确保应用在全球范围内可用性的重要环节。...同时,对JavaScript的深入理解和使用也是实现国际化不可或缺的基础。

    serge-plugins:Serge(连续本地化平台https:serge.io)插件

    它旨在简化全球化团队的工作,通过自动化和标准化过程,使得翻译和国际化内容的管理变得更加高效。而**serge-plugins** 则是与 Serge 平台配套的一系列插件,这些插件扩展了 Serge 的功能,使其能够更好地集成到各种...

    2024年俄罗斯钛铁市场机会及渠道调研报告Sample.pdf

    - **国际贸易关系**:特别是中俄之间的经贸关系,对钛铁市场的未来发展具有重要影响。 - **政策变化**:俄罗斯政府的政策调整将直接影响到钛铁产业的投资环境和发展前景。 - **技术创新能力**:企业的研发能力和技术...

    chinese_chess:象棋(象棋)的javascript实现,界面西化

    【标题】"chinese_chess: 象棋的JavaScript实现,界面西化"揭示了这是一个使用JavaScript编程语言实现的中国象棋游戏项目,它的特色在于界面设计上采用了西方化的风格,使得用户界面更加国际化。 【描述】"中国象棋...

    chess-react:国际象棋游戏

    "chess-react"项目就是这样一个示例,它将React的组件化思想与TypeScript的强大类型系统结合在一起,为用户提供了丰富的交互式国际象棋体验。 首先,让我们了解一下React。React是由Facebook开发的JavaScript库,...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    市场上相应的检测平台诸如检测通、凡特网等皆为pc端检测网站,并且操作繁琐不够人性化,用户在实地使用中存在很多问题。昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业...

    UG材料库对应国内材料牌号

    这些软件不仅帮助设计师实现产品设计,还能通过模拟分析来优化设计并确保其符合实际生产要求。对于材料属性的准确设置是确保模拟结果可靠性的关键之一。UG软件内置了一个丰富的材料库,其中包含了各种材料的数据信息...

    springmvc3.2_practice

    七、验证与国际化 SpringMVC集成Hibernate Validator,支持表单验证。同时,通过`@Valid`注解可以实现数据校验。利用`ResourceBundle`和`MessageSource`可以实现本地化,提供多语言支持。 八、文件上传与下载 ...

    phpMySetiStats-开源

    多语言支持使得phpMySetiStats更加国际化,增强了其在全世界范围内的适用性。 总的来说,phpMySetiStats是一款功能强大的开源工具,它巧妙地结合了MySQL数据库和Crontab的任务调度,为SETI @ home的参与者提供了...

    libptp (Picture Transfer Protocol lib)-开源

    PTP 是一种由国际标准化组织(ISO)制定的通信协议,广泛应用于数码相机、智能手机和其他图像捕捉设备与计算机之间的图像数据传输。libptp 提供了对 PTP 协议的支持,使得开发者可以方便地在他们的应用中集成这种...

    nextjs

    8. **国际化 (i18n) 支持**: Next.js 提供了内置的国际化支持,通过配置 `next.config.js` 文件,你可以轻松地切换不同语言版本。 9. **样式处理**: Next.js 集成了对CSS-in-JS库(如 styled-components)和CSS模块...

    Daboyeo-Android

    8. **国际化**: - **资源文件夹**:不同的语言和地区的字符串资源分别存放在values目录下的对应子目录。 9. **安全性**: - **加密解密**:可能涉及对敏感数据的加密处理,如使用Android Keystore System。 - *...

    Accessibility-Checker:提供pdf文档的辅助功能报告

    通过这个工具,开发者和内容创作者能够遵循WCAG(Web Content Accessibility Guidelines)等国际标准,提升数字内容的包容性。 无障碍访问检查器的源代码位于名为 "Accessibility-Checker-master" 的压缩包中,这...

    ComSocial:社会交流

    9. **国际化的支持**:如果ComSocial面向全球用户,那么HTML的`lang`属性和`&lt;script&gt;`的`charset`属性的正确使用就显得尤为重要,以支持多语言内容和字符编码。 10. **性能优化**:通过压缩和合并HTML、CSS和...

    Assorted projects-开源

    文件名“icfpc2007-lazybottoms”可能指向一个特定的编程竞赛——国际计算机程序设计竞赛(International Collegiate Programming Contest)2007年的参赛项目,"lazybottoms"可能是团队名称或者项目代号。...

    ai-informetrics.github.io

    通过分析源代码,我们可以学习到如何用HTML和JavaScript实现数据的图表化展示。 10. **学术交流与合作**:研讨会通常促进跨学科的交流,AII2021展示了AI和信息计量学如何协同工作,推动了这两个领域的学术界和实践...

    C32:学习时区

    在“AngryBirdsStage7”这个描述中,虽然没有明确的IT关联,但通常游戏开发会涉及到各种编程技术,包括JavaScript,可能是在讨论游戏的某个阶段或关卡的实现,其中可能有与时间、日期相关的逻辑。 JavaScript中的...

Global site tag (gtag.js) - Google Analytics