Localization CN1-激活css后无法使用本地化

Localization CN1-激活css后无法使用本地化,localization,codenameone,Localization,Codenameone,最近,我通过CN1首选项对话框从传统的css集成切换到使用当前的css支持方法。从那以后,我在访问本地化资源文件中的字符串时遇到了多次问题 有几点很重要: 我有两个主题文件,但即使将字符串作为csv文件导入css生成的主题也不起作用 我尝试了所有可能的主题初始化组合,包括仅初始化其中一个主题文件,但没有获得一致的成功(有时会成功,但如果修改css并重新生成主题文件,则会再次停止工作) 我创建了一个全新的项目,将我的代码复制到其中,导入字符串文件,然后它就开始工作了——直到我启用了css支持。然

最近,我通过CN1首选项对话框从传统的css集成切换到使用当前的css支持方法。从那以后,我在访问本地化资源文件中的字符串时遇到了多次问题

有几点很重要:

  • 我有两个主题文件,但即使将字符串作为csv文件导入css生成的主题也不起作用
  • 我尝试了所有可能的主题初始化组合,包括仅初始化其中一个主题文件,但没有获得一致的成功(有时会成功,但如果修改css并重新生成主题文件,则会再次停止工作)
  • 我创建了一个全新的项目,将我的代码复制到其中,导入字符串文件,然后它就开始工作了——直到我启用了css支持。然后我又回到了原点
  • 当它无法工作时,方法
    UIManager.getL10NResourceNames()
    返回一个空数组

任何帮助都将不胜感激

CSS控制该文件,因此您不能再通过其他方式更改theme.res文件。您需要保留一个单独的localization.res文件,并严格按照应用程序的本地化功能加载该文件。您可以使用
Resources.open(“/localization.res”)
加载任意资源文件。

CSS控制该文件,因此您不能再通过其他方式更改theme.res文件。您需要保留一个单独的localization.res文件,并严格按照应用程序的本地化功能加载该文件。您可以使用
Resources.open(“/localization.res”)
来加载任意资源文件。

经过反复研究,我找到了解决方案。事实证明,我的处境是我做了一些不标准的事情的结果。首先,我有一个
主题.res
文件,我使用IntelliJ的
重构>>重命名
函数重命名了该文件,该函数将
build.xml
文件中的硬编码css主题名称重命名为我的新名称。我需要手动还原该字符串,以防止css编译任务覆盖我的主题文件。我注意到的第二件事是,有时(我不清楚是什么原因造成的)在本地运行应用程序时,
/out
目录中的主题文件没有被刷新。例如,当我在主题文件中添加一个图像时,这会表现出来,但是当运行代码时,它将无法在
参考资料
哈希表中找到它。每次发生这种情况时,我现在知道只需删除
/out
的内容,从而迫使IDE重建/重新复制主题文件(我可能只需手动将其复制到
/out
目录,但我认为删除它是最安全的)。

经过反复研究,我找到了解决方案。事实证明,我的处境是我做了一些不标准的事情的结果。首先,我有一个
主题.res
文件,我使用IntelliJ的
重构>>重命名
函数重命名了该文件,该函数将
build.xml
文件中的硬编码css主题名称重命名为我的新名称。我需要手动还原该字符串,以防止css编译任务覆盖我的主题文件。我注意到的第二件事是,有时(我不清楚是什么原因造成的)在本地运行应用程序时,
/out
目录中的主题文件没有被刷新。例如,当我在主题文件中添加一个图像时,这会表现出来,但是当运行代码时,它将无法在
参考资料
哈希表中找到它。每次发生这种情况时,我现在知道只需删除
/out
的内容,从而迫使IDE重新构建/复制主题文件(我可能只需手动将其复制到
/out
目录,但我认为删除它是最安全的)。

我可以使用
Resources.open()
加载主题文件,但是本地化表仍然是空的。这需要是一个独立的资源文件,与CSSI生成的资源文件无关。我可以使用
Resources.open()
加载主题文件,但本地化表仍然是空的。这需要是一个独立的资源文件,与CSS生成的资源文件无关