关于本地化,我研究了开发人员指南,部分"Localization & Internationalization (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);
}
1 回答
本地化工具与GUI构建器无关 . 它是设计工具的一部分,它还可以处理主题,多图像和其他功能,所有这些功能对于手持式应用程序和视觉应用程序一样有用 .
该视频中唯一的GUI构建器特定功能是从GUI表单自动生成密钥 .
由于本地化只是一个查找映射,因此您可以使用属性文件,而不必将数据保留在应用程序源中 .