`

本地语言

 
阅读更多
public String getLocaleLanguage() {
    Locale l = Locale.getDefault();
    return String.format("%s-%s", l.getLanguage(), l.getCountry());
}

 

 

本地语言:

中文返回:zh-CN

 

返回en-US(也可能是en-XX)表示英语,zh-CN表示简体中文,zh-TW表示繁体中文,以此类推。

 

http://hkp.iteye.com/blog/1167271

 

 

http://hkp.iteye.com/blog/1167271

 

drawable的:

转载:http://www.fac6.com/205.html

 

Android应用程序的国际化与本地化机制是比较完善的,操作起来也比较方便。我们可以把要用到的所有字符串放在res\values目录下的strings.xml文件中,在程序中以R.string.xx的形式来引用它们。把其他语言的字符串放在形如res\values-zh-rCN、res\values-zh-rTW目录下的strings.xml文件中,应用程序会根据手机语言的设置情况自动选择合适的语言。不只是字符串,程序中所用到的图片、音频、布局等资源文件都可以通过这种形式来实现国际化与本地化。以下示例程序实现了字符串和图片文件的国际化与本地化。

 

程序目录如下:

mulu

res\layout\main.xml文件:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    > <TextView android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="@string/text_a"
    /> <TextView android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="@string/text_b"
    /> <Button android:id="@+id/flag_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    /> </LinearLayout>

src\playboy\test\HelloL10N.java文件:

package playboy.test;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class HelloL10N extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     // assign flag.png to the button, loading correct flag image for current locale
        Button b;
        (b = (Button)findViewById(R.id.flag_button)).setBackgroundDrawable(this.getResources().getDrawable(R.drawable.flag));
        // build dialog box to display when user clicks the flag
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(R.string.dialog_text)
        .setCancelable(false)
        .setTitle(R.string.dialog_title)
        .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
        	public void onClick(DialogInterface dialog, int id) {
        		dialog.dismiss();
        		}
        	});
        final AlertDialog alert = builder.create();
        // set click listener on the flag to show the dialog box
        b.setOnClickListener(new View.OnClickListener() {
        	public void onClick(View v) {
        		alert.show();
        		}
        	});
    }
}

res\values\strings.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="app_name">Hello, L10N</string>
    <string name="text_a">Jay Chou</string>
    <string name="text_b">Andy Lau</string>
    <string name="dialog_ok">Done</string>
    <string name="dialog_title">Already Localisation</string>
    <string name="dialog_text">Support multi-languages.</string>
</resources>

res\values-zh-rCN\strings.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello, L10N</string>
    <string name="text_a">周杰伦</string>
    <string name="text_b">刘德华</string>
    <string name="dialog_ok">确定</string>
    <string name="dialog_title">已经国际化</string>
    <string name="dialog_text">支持多语言</string>
</resources>

res\values-zh-rTW\strings.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello, L10N</string>
    <string name="text_a">周傑倫</string>
    <string name="text_b">劉德華</string>
    <string name="dialog_ok">確定</string>
    <string name="dialog_title">已經國際化</string>
    <string name="dialog_text">支持多語言</string>
</resources>

    drawable实现图片资源的国际化,values实现字符串的国际化。zh-rCN表示的是中文-中国内地,zh-rTW表示的是中文-台湾。hdpi、mdpi、ldpi表示的是不同分辨率的图片,本例中的drawable实现了语言、地区与分辨率的各种组合。

    再来看一看程序的执行情况,分别将模拟器的语言设置成English(United kingdom)、中文(简体)、中文(繁體)以及朝鲜语,程序运行结果如图所示。

English(United kingdom) 

中文(简体)

中文(繁體) 

朝鲜语

    当把模拟器设置为英语和朝鲜语时,由于程序没有实现英语和朝鲜语的本地化,所以会使用默认的语言,程序使用的是res\values\strings.xml文件中的字符串和res\drawable-mdpi目录中的图片(根据模拟器分辨率的具体设置情况,也可能调用res\drawable-zh-rCN-hdpi或者res\drawable-zh-rCN-ldpi目录下的图片)。

分享到:
评论

相关推荐

    《AIX5.3本地语言支持指南和参考大全》

    根据提供的文件信息,我们可以推断出这是一份关于AIX 5.3操作系统本地语言支持的文档。尽管原文中存在大量的非中文字符和难以解析的内容,我们仍然可以从标题、描述和部分可识别的文字中提取一些关键知识点。 ### ...

    易语言取系统缺省本地语言名称

    在IT领域,尤其是在编程实践中,了解如何获取系统默认的本地语言名称是非常重要的。"易语言取系统缺省本地语言名称"是一个这样的功能,它允许程序员获取操作系统当前设置的主要语言环境。易语言是一种中国本土开发的...

    易语言源码易语言取系统缺省本地语言名称源码.rar

    在易语言中,获取系统缺省本地语言名称是一项常见的操作,这对于开发具有多语言支持的应用程序来说非常重要。 首先,我们要理解什么是系统缺省本地语言。在计算机系统中,本地化(Localization)是指使软件适应特定...

    AIX 5L V5.3 本地语言支持指南和参考大全(中文)

    关于本书 &lt;br&gt;本书为应用程序员提供有关启用 AIX® 操作系统本地语言支持的应用程序的完整信息。它还为系统管理员提供有关启用 AIX 操作系统本地语言支持的网络环境的完整信息。程序员和系统管理员可以使用本书...

    软件本地化测试

    - 测试软件能否正确地安装与卸载在本地语言的操作系统上。 - 检查安装/卸载前后文件、快捷方式、图标与注册表的变化是否与源语言程序一致。 2. **软件功能测试**: - 验证本地化软件的功能是否与源语言软件一致。...

    AjaxControlToolKit 显示浏览者本地语言的方法

    ### 使用AjaxControlToolKit显示浏览者本地语言的方法 在Web开发中,为了提供更好的用户体验,很多网站都会根据用户的浏览器设置来展示相应的语言版本。本文将详细介绍如何利用AjaxControlToolKit来实现这一功能。 ...

    C#实现多语言

    2. **资源命名和解析**:资源文件名由根名称、本地语言名称和扩展名组成。例如,`Resource1.en-US.resx`对应美国英语。.NET会根据当前系统环境寻找匹配的资源文件。如果找不到特定语言的资源,会回退到默认语言的...

    c# winform 多语言切换 本地化

    在C# WinForm应用开发中,实现多语言切换和本地化是一项重要的功能,它使得软件能够适应不同国家和地区用户的语言需求。本地化是使应用程序适应特定文化环境的过程,包括文字、日期格式、数字格式以及图像等内容的...

    local-lang-names:标签的本地语言名称(例如 en-us)

    本地语言名称 给定一个 ietf 风格的语言标签,比如en-us 。 它将返回本地语言的语言名称,例如English (United States) 。 像en这样的标签将返回English 。 var langname = require ( 'local-lang-names' )console ....

    Language_Time:一个从尼日利亚的一些基本语言(约鲁巴语,豪萨语,伊博语,埃菲克语和英语)开始将时间转换为等效本地语言的库

    一个将“时间”转换为等效的本地语言的库,从尼日利亚的一些基本语言开始,例如-(约鲁巴语,豪萨语,伊博语,埃菲克语和英语) 配置 相依性 玛文 &lt; groupId&gt; com.crevation.NgTime&lt;/ groupId&gt; &lt; artifactId&gt; ...

    Metabase本地化语言包

    "Metabase本地化语言包"是Metabase为了实现多语言功能而提供的资源集合,这个包包含了不同语言版本的json文件,使得非英语用户可以使用他们熟悉的语言进行操作。 在本地化过程中,`.po`文件是一种常见的翻译存储...

    Java本地调用接口 JNative

    总结,Java本地调用接口(JNI)为Java程序员提供了一个强大而灵活的工具,能够充分利用C/C++等本地语言的优势,解决Java无法直接处理的问题。虽然使用JNI会增加项目的复杂性,但当需要与操作系统底层交互或提升性能时...

    C#(.net)多语言 国际化 本地化示例demo合集

    在.NET框架中,C#语言提供了强大的支持来进行多语言国际化和本地化开发。这使得开发者可以构建出能够适应全球不同地区和语言环境的应用程序。以下是对标题和描述中提到的知识点的详细说明: 1. **多语言(Multi-...

    本地或分本地判别数据集.zip

    在这个上下文中,它可能包含了非本地语言使用者的文本样本,每行可能代表一个单独的样本,列可能包括文本内容、使用者信息、语言水平等元数据。 2. **native.csv**:与non-native.csv类似,这个文件可能包含了本地...

    java访问本地

    Java访问本地,通常指的是Java平台如何通过JNI(Java Native Interface)与本地系统代码进行交互,以便利用C/C++等本地语言的功能。JNI是Java提供的一种标准接口,它允许Java代码和其他语言写的代码进行交互,特别是...

    iOS多语言本地化和切换

    在iOS应用开发中,为了使应用能够适应全球用户的需求,多语言本地化是一个必不可少的环节。这涉及到如何设计和实现应用的国际化功能,使得不同地区的用户可以使用他们熟悉的语言进行交互。本文将深入探讨iOS应用的多...

    LocalSearch:适用于您的本地语言(旧的,错误的PoC代码)PHP搜索引擎

    适用于您的本地语言PHP搜索引擎。 英语非常适合搜索引擎。 用户搜索dog ,将在描述或关键字中看到每个带有dog产品。 这个词不会根据使用的上下文而改变。但是其他语言是不同的。 如果您的一种产品的关键字为pes ...

    C#本地化实现多语言

    ### C#本地化实现多语言 #### 概述 在当今全球化的市场环境中,软件产品的国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)变得越来越重要。本地化是指将一个产品适配到特定语言和...

Global site tag (gtag.js) - Google Analytics