2

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

4

1 回答 1

1

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

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

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

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所示

于 2012-10-04T11:41:50.927 回答