现在的位置: 首页 > 综合 > 正文

android开发实战系列(12)– 多语言支持

2013年12月05日 ⁄ 综合 ⁄ 共 1621字 ⁄ 字号 评论关闭

在学习Android的过程中,有一种很好的练习方式就是从应用程序的代码中提取字符串并把它们保存在外部文件中.Android在每个项目中创建了一个资源文件目录,让这一起变的简单易操作. 如果使用Android的SDK工具包创建工程创建Android工程-Creating
an Android Project
,那么在工程项目文件的最上一级会有一个res/目录中也包含了少量的默认文件,比如可以保持字符串值的res/values/strings.xml文件.

创建本地语言环境目录和字符串文件

为了支持更多的语言,需要在values目录的名称需要以连字符“—”和国家的ISO码结尾.举个例子,values-es/目录中包含了语言代码和语言环境为“ES”的简单资源。Android在运行时会根据设备的语言环境设置来装载适当的资源.

  1. MyProject/
  2. res/
  3. values/
  4. strings.xml
  5. values-es/
  6. strings.xml
  7. values-fr/
  8. strings.xml

:向适当的文件中添加每一个语言环境的字符串值.在运行的时候,Android系统会根据用户设备的当前设置提取适当的字符串资源. :举个例子,下面是不同语言的字符串资源文件. :英语(默认的语言环境), /values/strings.xml:

  1. <?xml version"utf-8"?>
  2. <resources>
  3. <string name="title">My Application</string>
  4. <string name="hello_world">Hello World!</string>
  5. </resources>

:西班牙语 /values/strings-es.xml:

  1. <?xml version"utf-8"?>
  2. <resources>
  3. <string name="title">Mi Aplicación</string>
  4. <string name="hello_world">Hola Mundo!</string>
  5. </resources>

:法语 /values/strings-fr.xml:

  1. <?xml version"utf-8"?>
  2. <resources>
  3. <string name="title">Mon Application</string>
  4. <string name="hello_world">Bonjour le monde !</string>
  5. </resources>

注意 你可以在任何资源类型上使用区域限制符(或者任意的配置限制符).比如为位图图像资源提供本地化的版本.查看Localization|本地化-Localization获取更多信息.

使用字符串资源


在源代码和XML文件中通过资源名称引用字符串资源。资源名称由name属性定义.

在源代码中,可以使用语法R.string.<string_name>引用字符串资源.在这种方式中,怎么接受字符串资源有多种的方法,示例如下:

  1. // Get a string resource from your app's Resources
  2. String hello = getResources().getString(R.string.hello_world);
  3.  
  4. // Or supply a string resource to a method that requires a string
  5. TextView textView = new TextView(this);
  6. textView.setText(R.string.hello_world);

在其他的XML文件中,只要XML的属性能够接受字符串,就可以使用@string/<string_name>的语法引用字符串,示例如下:

  1. <TextView
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="@string/hello_world" />

抱歉!评论已关闭.