Blackberry 10 каскадирует изменение названия InvokeActionItem при переключении языка

Пожалуйста, найдите приведенный ниже код Qml,

actions: [

                ActionItem {
                    title: qsTr("Custom Market Watch") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.dropSymbols(1); // Drop Req for Tadawul
                        lightTimer.stop();
                        _app.GenerateCustWatch(1, translate.text);

                    }
                },

                ActionItem {

                    title: qsTr("Alerts") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.dropSymbols(1); // Drop Req for Tadawul
                        lightTimer.stop();
                        _app.AddAlerts(1, translate.text);

                    }
                    imageSource: "asset:///images/alert_title_icon.png"
                },
                ActionItem {
                    title: qsTr("Portfolio")+Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.dropSymbols(1); // Drop Req for Tadawul
                        lightTimer.stop();
                        _app.CreatePortfolio(1, translate.text);
                    }
                    imageSource: "asset:///images/portfolio_title_icon.png"

                },
                ActionItem {
                    title: qsTr( "News Feeds")+Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.dropSymbols(1); // Drop Req for Tadawul
                        lightTimer.stop();
                        var feeds = newsFeeds.createObject();
                        feeds.navId = {
                            'id': navTab,
                            'langSettings': translate.text
                        }
                        navTab.push(feeds);
                    }
                    imageSource: "asset:///images/news_feed_icon.png"

                },
                ActionItem {
                    title: qsTr("Language")+ Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        //_app.ChangeAppLanguage();
                        var go = langsettings.createObject();
                        go.lang = {
                            'lang': _app.getCurrentLocale()
                        }
                        go.setLanguage(_app.getCurrentLocale());
                        navTab.push(go);
                        //_app.changeOrientation();
                    }
                    imageSource: "asset:///images/language_icon.png"
                },
               /* ActionItem {
                    title: qsTr("Support") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        invoke.query.setUri("pin:2ADAEE2D")
                        invoke.trigger("bb.action.INVITEBBM")
                    }//InvokeActionItem
                    imageSource: "asset:///images/support_icon.png"
                },*/
                InvokeActionItem {
                    id:supportBBM          
                    title: qsTr("Support") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.OnBar

                    imageSource: "asset:///images/support_icon.png"
                    query {
                        invokeActionId: "bb.action.INVITEBBM"
                        uri: "pin:2ADAEE2D"
                    }
                },

                InvokeActionItem {
                    id:shareBB
                    title: qsTr("Share to Friends") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.OnBar

                    query {
                        mimeType: "text/plain"
                        // invokeTargetId: "sys.bbm.sharahandler"
                        invokeActionId: "bb.action.SHARE"
                    }
                    onTriggered: {

                        data = "Hi I am using Trading App, you can download it form the link http://appworld.blackberry.com/webstore/?&lid=in:bb:apps&lpos=in:bb:apps&countrycode=IN&lang=en!";
                    }
                },
                ActionItem {
                    title: qsTr("Subscription") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.getSubscriptionStatus(1);
                    }
                    imageSource: "asset:///images/status_icon.png"
                },
                ActionItem {
                    title: qsTr("About mTadawul") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        var about= mTadawulNote.createObject();

                        about.navId = {
                            'id': navTab
                        }
                        navTab.push(about);

                    }
                    imageSource: "asset:///images/about_icon.png"
                },

                ActionItem {
                    title: qsTr("Exit Application") + Retranslate.onLanguageChanged
                    ActionBar.placement: ActionBarPlacement.InOverflow
                    onTriggered: {
                        _app.exitApp();
                    }
                    imageSource: "asset:///images/app_exit.png"
                }

            ]

Я показываю арабские заголовки для вышеуказанного qml после перехода на «с английского на арабский». но он не работает для InvokeActionItem. Зачем? что мне не хватает?

помогите, спасибо!!!


person Sharath    schedule 31.10.2013    source источник


Ответы (1)


В зависимости от специфики запроса в вашем InvokeActionItem это может привести к от 0 до многих элементов в меню. Я предполагаю, но возможно, что из-за этого действие наличия + Retranslate.onLanguageChanged не распространяется на конечный объект пользовательского интерфейса, который система создает для вас.

Другая возможность заключается в том, что система перевода не может найти соответствующие языковые строки для этих объектов по той же причине.

person Richard    schedule 10.11.2013