2014-10-02 76 views
0

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

例如: 我从服务器得到了这句话。 “托尼猫$ EATED两个鼠标$ $ $ 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'); 

}]); 

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

朗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); 

但它只返回一个函数。

回答

1

如果您希望在句子中有变量,则需要使用{{value}}语法而不是$value。然后,你可以,你是这样的:

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

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

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

希望这将帮助!

+1

那么,首先你不能翻译部分句子。如果需要,您需要为整个句子键入参数。因此,您必须创建像'WHOLE_SENTENCE'这样的翻译:“Toni the cat {{EATED TWO MOUSES}} {{BASED_ON}} {{SMELL}}”'然后使用'{{'WHOLE_SENTENCE'|翻译:{'EATED TWO MOUSES':value1,...}}}'。 – 2014-10-02 14:12:34

+0

太棒了!谢谢!! – Aviade 2014-10-03 11:20:41