Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码名一:访问本地化字符串资源_Java_Localization_Internationalization_Codenameone_Resourcebundle - Fatal编程技术网

Java 代码名一:访问本地化字符串资源

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.

我正在通过代号One将我的Android应用程序移植到其跨平台版本(即iOS版本)

我想使用Android版本中的字符串资源

我创建了一个本地化包(名为“本地化(L10N)1”),目前只使用英语单词

在主要形式中,我提出:

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”字符串,但是我有空指针错误。