关于本地化,我研究了开发者指南,“本地化和国际化(L10N& I18N)”部分,位于: https://www.codenameone.com/manual/misc-features.html
他们两个似乎都指老gui建设者。 我正在编写一个新的应用程序,而不使用(旧的或新的)gui构建器,所以我的问题是我是否可以使用Codename One Designer中的Localization工具本地化我的应用程序。
我有两个按钮,标签为“LOGIN-Button”和“SIGNUP-Button”,但它们不会自动翻译。我无法使用开发人员指南中建议的以下代码行,因为我没有提及“res”:
UIManager.getInstance().setBundle(res.getL10N("l10n", local));
我能够使用以下手动代码翻译我的应用程序。有没有办法在没有手动编码的情况下使用Codename One Designer中的Localization工具?
// LOCALIZATION
// Retrive the device language (as an ISO 639 two letter code)
String local = L10NManager.getInstance().getLanguage();
Log.p("The device language is: " + local);
//Creates the bundle that maps strings in the local language
HashMap EnglishBundle = new HashMap<String, String>();
EnglishBundle.put("LOGIN-Button", "LOG IN");
EnglishBundle.put("SIGNUP-Button", "SIGN UP");
EnglishBundle.put("@rtl", "false");
HashMap ItalianBudle = new HashMap<String, String>();
ItalianBudle.put("LOGIN-Button", "ENTRA");
ItalianBudle.put("SIGNUP-Button", "REGISTRATI");
ItalianBudle.put("@rtl", "false");
switch (local) {
case "it":
UIManager.getInstance().setBundle(ItalianBudle);
break;
default:
UIManager.getInstance().setBundle(EnglishBundle);
}
答案 0 :(得分:1)
本地化工具与GUI构建器无关。它是设计工具的一部分,它还可以处理主题,多图像和其他功能,所有这些功能对于手持式应用程序和视觉应用程序一样有用。
该视频中唯一的GUI构建器特定功能是从GUI表单自动生成密钥。
由于本地化只是一个查找地图,您可以使用属性文件,而不必将数据保留在您的应用程序源中。