Java 代码名一:访问本地化字符串资源
我正在通过代号One将我的Android应用程序移植到其跨平台版本(即iOS版本) 我想使用Android版本中的字符串资源 我创建了一个本地化包(名为“本地化(L10N)1”),目前只使用英语单词 在主要形式中,我提出:Java 代码名一:访问本地化字符串资源,java,localization,internationalization,codenameone,resourcebundle,Java,Localization,Internationalization,Codenameone,Resourcebundle,我正在通过代号One将我的Android应用程序移植到其跨平台版本(即iOS版本) 我想使用Android版本中的字符串资源 我创建了一个本地化包(名为“本地化(L10N)1”),目前只使用英语单词 在主要形式中,我提出: theme = UIManager.initFirstTheme("/theme"); String lang= L10NManager.getInstance().getLanguage(); UIManager.getInstance().setBundle(theme.
theme = UIManager.initFirstTheme("/theme");
String lang= L10NManager.getInstance().getLanguage();
UIManager.getInstance().setBundle(theme.getL10N("Localization (L10N) 1",lang));
在另一个容器类中,我有:
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"));
它将“起作用”。您还可以使用:
String value = getUIManager().localize("title_string", "This will show if title_string is missing from the bundle");
因此,StringRes
不是正确的方向。你考虑得太多了。。。与我个人所知的任何其他框架不同,Codename One在默认情况下是可本地化的
设置束值后,只需使用带有正确键的标签即可,例如:
add(new Label("title_string"));
它将“起作用”。您还可以使用:
String value = getUIManager().localize("title_string", "This will show if title_string is missing from the bundle");
所以StringRes
不是正确的方向。对不起,我想在Android中使用类似的东西,用于不可翻译的字符串。您的示例似乎表明,当字符串不在bunde中时,“en”语言没有退路。我几乎可以肯定,必须有一种类似于Android的方法来管理未翻译的字符串。我错了吗?第二个方法允许您手动执行此操作,请注意,第二个参数包括回退字符串。然而,按照惯例,这在代号1中被大大简化了。不要使用像“title\u string”这样的无意义字符串,只需使用实际值“My title”。然后,en
成为代码中的合理默认值,而翻译只是将一个英语短语更改为另一个英语短语的过程。有一些例外,但它们非常罕见,可以使用我的示例中的第二种翻译形式来处理,这对我来说非常奇怪。我记不起每根弦和我用过的每一个地方,通常钥匙都有这个用途。实际上,字符串可以在开发过程中多次更改。我不明白。如果我在bundle(某种自动重构)中更改字符串,那么每次出现时,代码中的字符串可能都会更改?bundle在资源文件中。你不需要硬编码。如果为了方便起见,希望将字符串全部放在一个地方,则可以使用接口将其包含在一个地方。在未来,我们计划引入自动绑定,它将在运行模拟器时自动建议字符串。那么StringRes方法是正确的吗?否则我想我不明白。我想使用这些键,我知道如果我放了字符串,它就可以工作,但是我仍然需要一个方法来提取“en”字符串,但是我有一个空指针错误。对不起,我想在Android中有一些类似的东西,用于不可翻译的字符串。您的示例似乎表明,当字符串不在bunde中时,“en”语言没有退路。我几乎可以肯定,必须有一种类似于Android的方法来管理未翻译的字符串。我错了吗?第二个方法允许您手动执行此操作,请注意,第二个参数包括回退字符串。然而,按照惯例,这在代号1中被大大简化了。不要使用像“title\u string”这样的无意义字符串,只需使用实际值“My title”。然后,en
成为代码中的合理默认值,而翻译只是将一个英语短语更改为另一个英语短语的过程。有一些例外,但它们非常罕见,可以使用我的示例中的第二种翻译形式来处理,这对我来说非常奇怪。我记不起每根弦和我用过的每一个地方,通常钥匙都有这个用途。实际上,字符串可以在开发过程中多次更改。我不明白。如果我在bundle(某种自动重构)中更改字符串,那么每次出现时,代码中的字符串可能都会更改?bundle在资源文件中。你不需要硬编码。如果为了方便起见,希望将字符串全部放在一个地方,则可以使用接口将其包含在一个地方。在未来,我们计划引入自动绑定,它将在运行模拟器时自动建议字符串。那么StringRes方法是正确的吗?否则我想我不明白。我想使用键,我知道如果我放入字符串,它就可以工作,但是我仍然需要一个方法来提取“en”字符串,但是我有空指针错误。