Android 国际化

由于公司的项目是投放 google play store , 所以要做国际化。国际化遇到的两个大问题

  • 字符串国际化
  • 布局样式国际化

 

一:字符串国际化

       解决这个问题很简单,在res目录下放不同国家的value文件夹,在相应文件夹里的 strings.xml 文件放对应的语言即可。比如

      

二:布局样式国际化

      中国人的阅读习惯是从左往右阅读、阿拉伯国家的阅读习惯是从右往左读。所以同一个布局在不同的语言环境下,显示的样式是不一样的。比如:

      默认情况下的布局

       

       

      阿拉伯语言情况下的布局

       

          例子中的布局很简单,左边是一个文本,文本的后面有一张图片。 

          可以看到在阿拉伯语言环境下的页面布局,文本跑到了屏幕的右侧,而图片却不见了。(前面已经说过阿拉伯国家的阅读习惯是从右往左的)

 解决方案:

  • 方案一:建立多个layout 文件夹,从新布局
  • 方案二:Android  4.2系统之后,Google在Android中引入了RTL布局  

对于方案一,这个方法比较老了,而且几乎要把所有的布局重写一遍,所以推荐使用第二种方法。在Android  4.2系统之后,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的显示,为了更好的兼容RTL布局,google推荐使用MarginStart和MarginEnd来替代MarginLeft和MarginRight,这样应用可以在正常的屏幕和由右到左显示文字的屏幕上都保持一致的用户体验。

主要的属性有

      android:layout_marginStart
      android:layout_marginEnd
      android:paddingStart
      android:paddingEnd
      android:layout_toStartOf
      android:layout_toEndOf

 

用RTL写的布局为:

 

 注意:

   在使用的时候RTL布局的时候,AndroidManifest.xml 中添加RTL的支持

 <application
        android:name="com.yiba.sharewe.application.APP"
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

  

 

时间: 2024-10-28 07:16:58

Android 国际化的相关文章

Android国际化资源文件自动化生成工具

一.工具起源            如果在做一个产品的过程当中,可能会涉及到多个apk的开发,而且要求实现多国语言.而这些apk可能会由多人分工共同完成.但如果这样的话,每个人都需要整理各自apk所要显示的文字交给专人来翻译.专人负责收集和翻译文字,翻译完了之后再交给每个开发者.比如这个产品中的所有apk都需要支持10国语言,也就是说每个开发人员,要拿着翻译好的文字,在各自负责的项目中创建这10个语种的资源文件,并且将这10个语种的文字依次放入到不同语种目录下的资源文件中.而且当apk写完后,后

【Android】Android国际化

1. Android程序的国际化 -----------------------        国际化的英文单词是Internationalization,因为这个单词太长了,有时也简称为I18N,其中的I是这个单词的第一个字符,18表示中间省略的字母个数,而N代表这个单词的最后一个字母.所以,I18N也就是国际化的意思.Android程序国际化,也就是程序可以根据系统所使用的语言,将界面中的文字翻译成与之对应的语言.这样,可以让程序更加通用.Android可以通过资源文件非常方便的实现程序的国

Android国际化中用到的国家/地区 语言缩写代码

原文:http://blog.csdn.net/landi_web/article/details/6864230 internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n. 一般用语言_地区的形式表示一种语言,如  zh_CN, zh_TW.   各国语言缩写  http://www.loc.gov/standards/iso639-2/php/code_list.php 国家和地区简写 http:/

6.4 Android国际化和本地化

何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言的文件,这些国家语言的文件命名是有规定的,具体参见表6-1.当用户设置手机的语言时,程序能根据用户选择的语言情况,而加载相对应的语言文件.用户感受到是程序的本地化,而对于开发人员来讲就是程序实现了国际化. 在本例中实现了一个注册的界面,它可以实现中文简体和中文繁体的本地化过程,编写的string.xml和文件夹命名如表6-1.表6-1 文件命名对比表values/strings.xml 默认values-zh-rCN/strings.

《Android开发案例驱动教程》

<Android开发案例驱动教程>   作者:关东升,赵志荣Java或C++程序员转变成为Android程序员 采用案例驱动模式展开讲解知识点,即介绍案例->案例涉及技术->展开知识点->总结的方式 本书作者从事多年一线开发和培训,讲解知识点力求细致,深入浅出 目    录 前言 第1章  Android操作系统概述 1 1.1  Android历史介绍 1 1.2  Android架构 1 1.3  Android平台介绍 2 1.4  现有智能手机操作系统比较 4 第2章

有没有好的数据库国际化解决方案?

问题描述 有没有好的数据库国际化解决方案? 国际化是软件实现多语言支持的要求. 如果只是界面的一些标题和提示语,很好实现,不多说. 但假如数据库里的字段要实现国际化就犯难了,我一直没有想好一个最佳实践,求大神指教. 解决方案 Android的国际化就实现的挺好,参考文章如下 android国际化(多语言) 很大程度上,为什么我们能如此方便的实现国际化.分辨率匹配等? 主要就是得益于 Android 中这种独特的资源管理方式.程序员的代码可以不直接和资源发生关系.Android 中,我们通常通过

AdMob移动广告市场报告:Android逼宫iOS

移动广告网络公司http://www.aliyun.com/zixun/aggregation/9429.html">AdMob(现为Google公司所有)发布了最终的Mobile Metrics报告,AdMob从数百万台手机.移动设备中收集数据,用于服务自己的广告.调查的数据中包括4400万台iOS设备 (iPhone,iPod Touch与iPad).不过,AdMob并没有正式发布该报告,这可能与新主人Google有关.不论如何,AdMob的报告对于移动网络平台来说都是 重要的数据.

android-Android string中msgid是怎么生成的?

问题描述 Android string中msgid是怎么生成的? 手动 msgid是怎么生成的,和android国际化有关系! 解决方案 随机生成的,随机的目的是为了不重复.然后每个字符串有个id,便于翻译. 解决方案二: 系统生成,我们用就可以了.就像我们每个人都有一个身份证号.

Android学习----自适应国际化语言

[前言] 自适应的知识与编程无关,关键在于配置文件的修改.自适应的内容包括:语言.屏幕.平台.今天就来说一下如何自适应国际化言. internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n. 一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文.   操作方法: 为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,va