Настройка поискового фильтра и календаря под кодовым названием One - PullRequest
0 голосов
/ 01 мая 2018

У меня есть поле поиска, но я хочу настроить подсказку к тексту, такую ​​как «Поиск». Я хочу изменить его на свой язык, который будет «Busca», как это сделать в приведенном ниже коде:

Container list = new Container();
hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : list) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : list) {
            Button mb = (Button)cmp;
            String line1 = mb.getText();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);

Кстати, как настроить календарь Codename One для отображения на моем родном языке?

РЕДАКТИРОВАНИЕ:

Я смотрел учебник, но у меня есть проблемы, я думаю, что я не настраиваю его должным образом, посмотрите: theme.res

и вот что я хочу изменить:

Search filter

Должен ли я установить что-то вроде этого?

hi.putClientProperty("Search", hi.getToolbar());

Мой код ниже:

String lang = L10NManager.getInstance().getLanguage();
        if(lang != null) {
            lang = lang.toLowerCase();
            switch(lang) {
            case "en":
                UIManager.getInstance().setBundle(theme.getL10N("portuguese", "pt"));
                break;
            }
        }

Я получаю исключение:

java.lang.NullPointerException
    at com.consultaprodutos.AplicacaoPrincipal.init(AplicacaoPrincipal.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.codename1.impl.javase.Executor$1$1.run(Executor.java:118)
    at com.codename1.ui.Display.processSerialCalls(Display.java:1129)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:924)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)

OBS: я не смог найти параметры виртуальной машины в свойствах моего проекта, чтобы установить -Defuser.language = pt

1 Ответ

0 голосов
/ 02 мая 2018

Ознакомьтесь с этим руководством по локализации . Суть в том, что вы создаете пакет ресурсов и устанавливаете его, после чего все автоматически обновляется до нового локализованного текста.

Ключи соответствуют тексту, поэтому, если текст «Поиск», просто добавьте «Поиск» в комплект ресурсов и значение перевода.

...