代号一:访问本地化的字符串资源

Codename One: accessing localized string resources

我正在通过代号一将我的 Android 应用程序移植到它的跨平台版本(以获得 iOS 版本)。

我想像 Android 版本一样使用字符串资源。

我创建了一个本地化包(名为 "Localization (L10N) 1"),目前只有英文单词。

在主窗体中我这样写:

theme = UIManager.initFirstTheme("/theme");
String lang= L10NManager.getInstance().getLanguage();
UIManager.getInstance().setBundle(theme.getL10N("Localization (L10N) 1",lang));

在另一个容器中 class 我有:

String StringRes(String id)
{
String result;
result=UIManager.getInstance().getBundle().get(id);
return result;
}

当我需要一个字符串时,例如:

add(new Label(StringRes("title_string")));

我在 StringRes 方法中遇到空指针错误。

我知道这只是一种管理字符串资源的尝试。

正确的方法是什么?

你想多了...Codename One 默认是可本地化的,这与我个人知道的任何其他框架不同。

设置捆绑包值后,您需要做的就是使用带有正确键的标签,例如:

add(new Label("title_string"));

会"just work"。您也可以使用:

String value = getUIManager().localize("title_string", "This will show if title_string is missing from the bundle");

所以StringRes不是正确的方向。