标签: angular-translate

角度翻译:显示动态找到的翻译密钥的翻译

我的角度控制器可能会生成消息,我打算使用角度转换进行翻译.

在控制器中,我当前将一个变量分配给翻译键,例如:

    $scope.info = "core.projectconfig.created"; 
Run Code Online (Sandbox Code Playgroud)

其中该键的转换指定为

 core.projectconfig.created <=> 'Project {{projectName}} created successfully'
Run Code Online (Sandbox Code Playgroud)

如您所见,我还需要在翻译中替换projectName.

在我看来,我尝试过这样的事情

 <P translate="{{info}}", translate-values="{projectName : projectData.ProjectName}"></p>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我如何翻译动态找到的翻译密钥,并在翻译的行中添加范围变量?

javascript angularjs angular-translate

7
推荐指数
1
解决办法
4765
查看次数

从angular-translate获取特定命名空间中的所有翻译

为了使用数据填充服务,我想从angular-translate的$ translate服务获取特定命名空间下的所有翻译.

基本上我正在寻找的是这样的东西(不支持):

$translate('SOME.NAMESPACE.*').then(...);
Run Code Online (Sandbox Code Playgroud)

由于这不存在,我想我此时最好的方法是解析我自己同步提供的后备翻译表吗?

angular-translate

7
推荐指数
0
解决办法
592
查看次数

使用angular-translate在已翻译的字符串中添加<strong> /粗体文本

我目前正在寻找一种解决方案,将一个粗体字放入由angular-translate过滤器翻译的字符串中.下面的示例代码:(我确定解决方案很简单......我似乎无法想象这一个!)

我的语言JSON文件如下所示:

"AUTHENTICATE-ENTER-CODE": "blah blah blah"
Run Code Online (Sandbox Code Playgroud)

在我的html文件中,我有这个(根据键:值正确翻译):

{{'AUTHENTICATE-ENTER-CODE' | translate}}
Run Code Online (Sandbox Code Playgroud)

结果:"等等等等"

我要找的结果是" 等等等等"

我可以将它分成多个翻译键,但特定翻译由几个句子中的多个粗体词组成......我被告知要尽量将翻译键保持在最低限度,因为我们在这个项目中有几百个.

我已经尝试将粗体HTML标签放在我想要粗体的字体周围(知道它不会起作用)并且没有......它不起作用!我还浏览了angular-translate API,但也找不到我想要的内容.

任何输入都会很棒!

javascript translation angularjs angular-translate

7
推荐指数
1
解决办法
3481
查看次数

Angular-translate的localStorage:未知提供者:$ translateLocalStorageProvider

我在我的Angular(v1.x)应用程序中使用angular-translate以及使用$ translateProvider.useStaticFilesLoader从文件加载翻译

angular.module('myApp',['pascalprecht.translate'])

.config(function($translateProvider) {

     $translateProvider.useStaticFilesLoader(
          prefix: window.location.pathname.replace(/[\\\/][^\\\/]*$/, '') + '/__languages/',  // absolute path + language path
          suffix: '.json'
     });

     // $translateProvider.useLocalStorage();
}
Run Code Online (Sandbox Code Playgroud)

Angular-translate工作得很好,但在使用时:

  $translateProvider.useLocalStorage();
Run Code Online (Sandbox Code Playgroud)

(在上面的代码中评论)如本指南中提出的,我收到以下错误:

未捕获错误:[$ injector:unpr]未知提供者:$ translateLocalStorageProvider < - $ translateLocalStorage < - $ translate

当然,我包含了所有需要的js文件:

<script src="bower_components/angular-translate/angular-translate.min.js"></script>
<script src="bower_components/angular-translate-loader-url/angular-translate-loader-url.min.js"></script>
<script src="bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我甚至试图:

  • 添加'angular-translate-storage-local'作为app.JS中的依赖项
  • .config块中添加$ translateUrlLoader,$ translateStaticFilesLoader.

angularjs angular-translate

7
推荐指数
1
解决办法
6880
查看次数

角度翻译消毒/逃脱

我有一个奇怪的或可能是有角度翻译的行为.
我们的价值战略是

$translateProvider.useSanitizeValueStrategy('sanitize');
Run Code Online (Sandbox Code Playgroud)

我们主要使用在我们的应用程序的转换过滤器,但是当涉及到特殊字符,我们得到例如不是ÜberschriftÜ berschrift.
如果我使用该指令它是有效的.
如果我使用过滤器,这仅在清理策略设置为"转义"时有效.

是否有另一种解决方案,而不是将所有翻译过滤器重写为指令?

这是我的plnkr http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v

为了您的信息,我不能简单地使用"转义"策略,因为我们也使用角度转换变量,这些变量有时甚至包含html标签.

谢谢!

javascript sanitization angularjs angular-translate

7
推荐指数
1
解决办法
8188
查看次数

angular $ translate中interpolationId的用途是什么?

来自Angular翻译文档:

$translate(translationId[, interpolateParams], interpolationId);

interpolationId参数的目的是什么,你能举个例子吗?

interpolation angularjs angular-translate

7
推荐指数
1
解决办法
349
查看次数

Angular translate指令vs filter:XSS可能吗?

我有一个翻译密钥,实际上是一个HTML代码,编码和未编码.

   $scope.translations = {
    "html_code" : "&lt;script&gt;alert('Alert!');&lt;/script&gt;",
    "html_code_full" : "<script>alert('Alert!');</script>",
    "greeting" : "Welcome!" 
  }
Run Code Online (Sandbox Code Playgroud)

当我使用这些值来显示视图中的翻译文本时,我使用两种方法:

  1. 作为指示 <span translate>{{translations.html_code}}</span>
  2. 作为过滤器 {{translations.html_code|translate}}

我尝试相同的translations.html_code_full.这是视图的代码:

translations.html_code = {{translations.html_code|translate}}
translations.html_code = <span translate>{{translations.html_code}}</span>

translations.html_code_full = {{translations.html_code_full|translate}}
translations.html_code_full = <span translate>{{translations.html_code_full}}</span>
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

translations.html_code = &lt;script&gt;alert('Alert!');&lt;/script&gt; 
translations.html_code = <script>alert('Alert!');</script> 


translations.html_code_full = <script>alert('Alert!');</script> 
translations.html_code_full =
Run Code Online (Sandbox Code Playgroud)

很明显,指令实现是将转换键编码为HTML,但过滤器不是.为什么指令与过滤器实现之间的输出存在差异?如果它呈现HTML,为什么我没有收到警报?

这是我为演示创建的插件.

xss angularjs angular-translate

7
推荐指数
1
解决办法
497
查看次数

在控制器中使用Angular转换,用于服务带来的数据

我有以下场景:

我有一个包含这种数据的JSON文件:

"IOS_TABLET_DOWNLOAD_URL": {
  "type": "string",
  "minLength": "5",
  "title": "IOS_TABLET_DOWNLOAD_URL",
  "description": "$filter('translate')('configuration.IOS_TABLET_DOWNLOAD_URL')"
},
Run Code Online (Sandbox Code Playgroud)

描述字段需要使用Angular Translate进行翻译,我正在将服务注入到我的控制器中

ConfigController.$inject = ['$scope', '$filter', '$compile', 'MyService'];
function ConfigController($scope, $filter, $compile, MyService) {

  // And using compile
  $scope.schema = elements; // Where element is the object from MyService
  $compile($scope.schema)($scope);

}
Run Code Online (Sandbox Code Playgroud)

但是,$ filter将作为视图中的描述进行未处理打印

"$过滤器( '翻译')( 'configuration.IOS_TABLET_DOWNLOAD_URL')"

编辑

我正在使用Angular Schema Form生成表单.所以基本上我在视图中有这样的东西

<div ng-controller="FormController">
   <form sf-schema="schema" sf-form="form" sf-model="model"></form>
</div>
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

javascript json angularjs angular-translate angular-schema-form

6
推荐指数
1
解决办法
1866
查看次数

如何使用angular-translate动态翻译输入文本(datepicker)值?

我正在使用angular-translate为我的应用程序提供i18n,我能够正确翻译标签,按钮文本等.我面临的问题是当我尝试根据所选语言区域设置更改日期时.日期从日期选择器中选择.

日期被选入输入元素:

<input type="text" class="form-control" required="" ng-model="date" placeholder="{{ 'DATE_PLACEHOLDER' | translate }}" translate="{{ 'select_date'|translate:{date:date} }}"/>
Run Code Online (Sandbox Code Playgroud)

占位符转换工作正常,但是当我更改语言时,日期格式没有发生变化.我创建了一个描述当前场景的plunkr.

Plunker Link

请建议一种方法,我可以在其中翻译插入的值或表单中的文本.此外,我想知道如何在加载页面之前克服键值的闪烁.

datepicker angularjs angular-translate

6
推荐指数
1
解决办法
980
查看次数

6
推荐指数
1
解决办法
1170
查看次数