【问题标题】:angular-translate service is not translating for first time角度翻译服务不是第一次翻译
【发布时间】:2015-02-27 12:44:10
【问题描述】:

我正在使用 angular-translate $translate 服务根据页面动态翻译标题和元描述标签内容(出于 SEO 目的)。

I have a function that is called when a select combobox component with the language changes:

$scope.changeLanguage = function (langKey) {
            $scope.langKey = langKey;
            $translate.uses(langKey);
            $rootScope.title = $translate('PAGE_TITLE');

            tmhDynamicLocale.set(langKey).then(function (){
                LocationService.setLangKey($scope.langKey);                     
                $window.moment.lang(langKey);    
            });
        };

我所有的应用程序内容都被翻译了,但标题除外。

我的应用程序默认语言是英语。当我(第一次)更改为西班牙语时,它没有翻译。在那之后,如果我改成英语,然后再改成西班牙语,它就可以了。以后的所有时间都将正常工作。

【问题讨论】:

    标签: angularjs angular-translate


    【解决方案1】:

    翻译 service 返回一个承诺

    $translate('PAGE_TITLE').then(function(result) {
        $rootScope.title = result
    });
    

    【讨论】:

    • 我试过了,但在 javascript 中出现未定义的错误。
    • 您使用什么角度翻译版本?编辑:嗯,好的。不要意识到“使用”也会返回对进一步使用 $translate 的承诺
    【解决方案2】:

    我想我已经这样解决了:

    $translate.uses(langKey).then(function() {
         $rootScope.title = $translate('PAGE_TITLE');
    });
    

    【讨论】:

    • 有理由不使用该指令吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多