【问题标题】:Localization without the (old or new) Gui Builder?没有(旧的或新的)Gui Builder 的本地化?
【发布时间】:2017-06-09 12:34:48
【问题描述】:

关于本地化,我研究了开发者指南,“本地化和国际化(L10N 和 I18N)”部分,位于: https://www.codenameone.com/manual/misc-features.html

还有这个视频: http://www.codenameone.com/how-do-i---localizetranslate-my-application-apply-i18nl10n-internationalizationlocalization-to-my-app.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


    【解决方案1】:

    本地化工具与 GUI 构建器无关。它是设计器工具的一部分,它还处理主题、多图像和其他功能,所有这些对于手动编码应用程序和视觉应用程序一样有用。

    该视频中唯一的 GUI 构建器特定功能是从 GUI 表单自动生成密钥。

    由于本地化只是一个查找图,您可以使用属性文件,而不必将数据保存在您的应用源中。

    【讨论】:

    • 好的,谢谢。请您提供一个代码示例,以使本地化在我的应用程序中工作(使用本地化工具)?
    • 你已经写过了:UIManager.getInstance().setBundle(res.getL10N("l10n", local));
    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多