如何检测移动设备是否支持J2ME中特定语言的unicode

时间:2012-10-03 09:12:22

标签: unicode java-me transliteration

我正在J2me中设计一个应用程序,我只需要用特定语言提供界面,比如乌尔都语。我正在做的是使用Unicode字符打印标签,如“欢迎”到我的语言,并以正确的方式显示。 由于这个应用程序应该在不同的移动模型上运行,我只想知道如果程序化的话可以检查运行我的应用程序的特定移动设备是否支持我的语言的unicode?因为如果没有,那么它将以默认的英语显示标签。除了将英文字母转换为我的语言字符外,我没有编码,我只是想知道并且如果可能的话找到一种方法来执行此检查。在此先感谢:)

1 个答案:

答案 0 :(得分:1)

有一个System属性,您可以在其中阅读手机上选择的当前语言。

String locale = System.getProperty("microedition.locale");

前两个字母表示语言,而后两个字母表示国家。例如,"en-US"代表美利坚合众国的英语,而"pt-BR"代表巴西的葡萄牙语 一件好事就是根据当前语言加载所有GUI String。 假设您将所有这些字符串存储在一个数组中并按如下方式初始化:

String messages [] = null;

if (locale.startsWith("pt")) {
    messages = new String [] {
        "Novo Jogo",
        "Configurações",
        "Ajuda"
    };
} else { // default language is English
    messages = new String [] {
        "New Game",
        "Settings",
        "Help"
    };
}

然后定义一些常量来标识每个索引。

static final int MSG_NEW_GAME = 0;
static final int MSG_SETTINGS = 1;
static final int MSG_HELP = 2;

并像这样使用它们(其中menuList是List的一个实例):

menuList.append(messages[MSG_NEW_GAME], null);
menuList.append(messages[MSG_SETTINGS], null);
menuList.append(messages[MSG_HELPS], null);

通过这种方式,您可以在应用程序中支持两种语言。根据区域设置启动邮件的情况越多,对最终用户的影响就越大。

http://smallandadaptive.blogspot.com.br/2008/12/internationalization-or-just-i18n-count.html