【发布时间】:2017-06-09 12:34:48
【问题描述】:
关于本地化,我研究了开发者指南,“本地化和国际化(L10N 和 I18N)”部分,位于: https://www.codenameone.com/manual/misc-features.html
他们似乎都指的是旧的 gui builder。 我正在编写一个新应用程序而不使用(旧的或新的)gui builder,所以我的问题是我是否可以使用 Codename One Designer 中的本地化工具本地化我的应用程序。
我有两个带有“LOGIN-Button”和“SIGNUP-Button”标签的按钮,但它们不会自动翻译。我无法按照开发人员指南中的建议使用以下代码行,因为我没有提到“res”:
UIManager.getInstance().setBundle(res.getL10N("l10n", local));
我能够使用以下手动代码翻译我的应用程序。有没有什么方法可以在 Codename One Designer 中使用本地化工具而无需手动编码?
// 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);
}
【问题讨论】:
标签: codenameone