【问题标题】:angular translate service for sentence句子的角度翻译服务
【发布时间】:2014-10-02 21:56:26
【问题描述】:

我想通过角度翻译服务翻译一个错误句子。 该句子包含字典中的单词。

例如: 我从服务器得到了句子。 “托尼猫$吃了两只老鼠$$BASED_ON$他们的$SMELL$”

var app = angular.module('app', ['pascalprecht.translate']);

app .config(["$translateProvider",
function ($translateProvider) {
            $translateProvider.useStaticFilesLoader({
                prefix: "common/lang/lang-",
                suffix: ".json"
            });
            $translateProvider.preferredLanguage('en');

}]);

我有两个文件要翻译 - 英语和葡萄牙语词典:

lang-en.json:

{
"$EATED TWO MOUSES$" : "eated Two Mouses",
"$BASED_ON$": "based on",
"$SMELL$": "smell"
}

我还有一个葡萄牙语的 json 文件。

我有一个 div,我放了:

<div class="headline" ng-bind-html="element.headline">{{element.headline | translate}}</div>

有什么建议吗? 也许我需要拆分句子并翻译特定的单词? 我尝试使用

  $scope.translated = $translate($scope.element.headline);

但它只返回一个函数。

【问题讨论】:

    标签: angularjs angularjs-directive angular-translate


    【解决方案1】:

    如果您想在句子中包含变量,您需要使用{{value}} 语法而不是$value。那么你可以这样:

    {{element.headline | translate: {value: 'value'} }}
    

    如果你想在你的控制器/服务中使用翻译,那么你最好使用instant 方法:

    var options = {value: 'value'};
    $translate.instant(element.headline, options);
    

    希望这会有所帮助!

    【讨论】:

    • 嗯,首先你不能翻译句子的一部分。您需要 key 获取整个句子并在需要时对其进行参数化。所以你必须创建像'WHOLE_SENTENCE' : "Toni the cat {{EATED TWO MOUSES}} {{BASED_ON}} their {{SMELL}}" 这样的翻译,然后使用{{'WHOLE_SENTENCE' | translate: { 'EATED TWO MOUSES': value1, ...} }}
    • 太好了!!谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多