首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AngularJS和Angular Translate如何检查字符串是否已被翻译?

使用AngularJS和Angular Translate如何检查字符串是否已被翻译?
EN

Stack Overflow用户
提问于 2013-12-02 00:00:17
回答 3查看 6.8K关注 0票数 8

如何检查字符串是否有翻译值?我使用的是AngularJS和AngularTranslate。

我只想显示一个值,如果它已经被翻译。如果没有可用的翻译,Angular Translate将显示未翻译的字符串。

我开始这样做:

代码语言:javascript
运行
复制
<div ng-if="question.text | translate != question.text">{{ question.text | translate }}</div>

但这不起作用,因为比较发生在翻译过滤器完成其工作之前。(至少我认为这是发生的事情)。

我最终做的是:

代码语言:javascript
运行
复制
  .filter('isTranslated', function(){
return function(translatedVal, originalVal){
  return (translatedVal === originalVal) ? false : true;
}

})

代码语言:javascript
运行
复制
<div ng-if="question.text | translate | isTranslated:question.text">{{ question.text | translate }}</div>

这很好用,但我想知道有没有更好的方法?

EN

回答 3

Stack Overflow用户

发布于 2013-12-06 22:24:53

Angular-translate还提供了a service,因此您可以围绕它构建自己的过滤器:

代码语言:javascript
运行
复制
.filter('myTranslate', function($translate){
   return function(key){
      var translation = $translate(key);
      if(translation==key) {
         return "";
      } else {
         return translation;
   }  
}

这将使您的HTML更加整洁:

代码语言:javascript
运行
复制
<div>{{ question.text | myTranslate }}</div>
票数 7
EN

Stack Overflow用户

发布于 2018-01-16 23:35:37

现在,如果找不到翻译,您可以使用a custom error handlerhttps://angular-translate.github.io/docs/#/guide/17_custom-error-handler返回一个空字符串。

票数 0
EN

Stack Overflow用户

发布于 2019-01-09 19:07:25

翻译“!(question.text|*ngIf=)”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20314095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档