代号一:访问本地化的字符串资源
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
不是正确的方向。
我正在通过代号一将我的 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
不是正确的方向。