标签: angular-translate

angular-translate - determinePreferredLanguage()的后备语言

我在我的应用程序中使用angular-translate.如果determinePreferredLanguage()返回我的代码不知道的语言密钥,如何注册后备语言?

如果瑞典的某个人访问我的网站(语言密钥:sv),我想回到英语.但由于我没有在我的函数中列出svregisterAvailableLanguageKeys,它失败了,语言键显示给用户而不是翻译.

$translateProvider
    .registerAvailableLanguageKeys(['da-dk','en-us'], {
        'en_US': 'en-us',
        'en_UK': 'en-us',
        'da': 'da-dk',
    })
    .determinePreferredLanguage();
Run Code Online (Sandbox Code Playgroud)

angularjs angular-translate

16
推荐指数
2
解决办法
7887
查看次数

与过滤器的一次性绑定

我将我的angularjs应用程序从1.2.0迁移到1.3.0-rc2,我想将我的代码从bindonce更改为新的一次性绑定.我还使用了角度转换.我写下面的代码:

<span data-ng-bind="::'COMMENT'|translate" />
<span>{{::'COMMENT'|translate}}</span>
 <img src="shareBlack.png" alt="{{::'SHARE'|translate}}" data-ng-attr-title="::'SHARE'|translate" data-ng-click="startShare()" />
Run Code Online (Sandbox Code Playgroud)

但在巴塔朗,我可以看到以下手表表达式:

{{::'SHARE'|translate}} | 3.59% | 17.00ms
::'COMMENT'|translate | 2.95% | 14.00ms
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

使用bindonce在以前版本1.2.0中编辑我有以下代码:

<div class="box-container" bindonce>
    ...
       <span data-bo-text="'FEED_ALLOWED_COMMENTS'|translate"/>
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

angularjs angular-translate bindonce

13
推荐指数
1
解决办法
7668
查看次数

angular-translate(PascalPrecht)如何避免在翻译之前加载文本标签

我有一个AngularJS应用程序.对于文本翻译我使用angular-translate.它工作得很好,但是当我请求第一页时,在加载翻译之前有几秒钟,页面会显示标签.

我已经阅读了一些关于它的帖子http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading#asynchronous-loading_fouc---flash-of-untranslated-content但仍然无效.

这是我的翻译模块:

i18n.js:

'use strict';

/* i18n module */

angular.module('myApp.i18n', ['pascalprecht.translate'])
    .config(['$translateProvider', function ($translateProvider) {

        $translateProvider.preferredLanguage('en');

        //$translateProvider.addInterpolation('$translateMessageFormatInterpolation');


        $translateProvider.useStaticFilesLoader({
          prefix: 'languages/locale-',
          suffix: '.json'
        });
}]);
Run Code Online (Sandbox Code Playgroud)

包含在我的app.js主文件中:

'use strict';


// Declare app level module which depends on filters, and services

    angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'myApp.controllers', 'myApp.i18n', 'myApp.properties', 'angularSpinner', 'ngCookies', 'ngSanitize', 'angularCharts', 'ngProgress', 'angularMoment', 'tmh.dynamicLocale'])
      .config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider, $routeParams) {
Run Code Online (Sandbox Code Playgroud)

angularjs angular-translate

12
推荐指数
2
解决办法
1万
查看次数

前端或后端api错误消息的国际化?

我的团队目前正在开发一个Web项目,前端使用后端提供的json api.我们使用的技术是Spring Boot和AngularJS.api具有标准错误格式,如下所示:

{
    "errorCode": "1111",
    "message": "Error occurred: some error message",
    "developerMessage": "message for developer"
}
Run Code Online (Sandbox Code Playgroud)

错误响应还可以包含可选的字段验证错误列表.问题是我们应该在哪里翻译用户错误消息?后端是否应该根据请求的语言环境返回已经翻译的消息,或者前端是否应该使用errorCode和它的i18n机制.我们在后端(Spring i18n支持)和前端(angular-translate)都有i18n机制.

什么是最佳做法?每种方法的优缺点是什么?任何建议表示赞赏.

java spring internationalization angularjs angular-translate

12
推荐指数
2
解决办法
3132
查看次数

Angular Translate HTML标签

我知道之前已经问过这个问题但是没有一个答案似乎适用于我的情况

我买了这个主题Angle,它正在使用Angular 1.4.2和Angular翻译2.6.0(甚至更新到2.7.2)

默认情况下,模板上有Translate模块

这是配置文件

  $translateProvider.useStaticFilesLoader({
      prefix : 'app/i18n/',
      suffix : '.json'
  });
  $translateProvider.preferredLanguage('es');
  $translateProvider.useLocalStorage();
  $translateProvider.usePostCompiling(true);
   // Enable escaping of HTML
  $translateProvider.useSanitizeValueStrategy('sanitize'); // I added this line based on Docs wasn't before
Run Code Online (Sandbox Code Playgroud)

并以JSON格式翻译文件

  {
   "page": {
    "PAGES_WELCOME" : "Welcome to <br> MY APPLICATION, HEY THERE IS A BR TAG BEFORE ME"
  },

  "login": {
    .
    .
    .
    .
  },
Run Code Online (Sandbox Code Playgroud)

但我无法在文本内部,JSON文件中添加HTML标记,而不是获取

欢迎来到我的APP

我越来越

欢迎来到我的APP

我怎样才能解决这个问题?

编辑

我不想删除标签,我的JSON文件被后端修改,它可以并且将包含HTML标签,我希望这些标签能够在输出上工作.

JADE示例内容具有约束力

div(class="col-lg-4 col-md-4 col-sm-4 col-xs-12 footer-left")
  p(class="text-center") 
    {{ 'page.PAGES_WELCOME' | translate }} 
Run Code Online (Sandbox Code Playgroud)

html javascript json angularjs angular-translate

12
推荐指数
2
解决办法
2万
查看次数

用于组织JSON文件中的翻译的工具

我正在为我的Angular应用程序调查不同的翻译工具.到目前为止,angular-translate似乎是一个很好的解决方案.它使用的结构类似于"lang/NAMESPACE/LANG.json"的每种语言JSON文件(例如"lang/user/de.json"),如下所示:

{
  "key1": "Value1",
  "key2": "Value2",
  "key3": "Value3",  
}
Run Code Online (Sandbox Code Playgroud)

可选地,JSON也可以嵌套.

这似乎很容易使用.但是,在实际添加新的或更改现有翻译时稍微不方便.您必须来回更改不同的语言文件,找到某个键​​的翻译很麻烦.比较不同的翻译也是不方便的.

是否有任何工具可以读取本地翻译文件,并且能够为每个键并排显示不同的翻译?应用程序(Mac OS支持是必须的)或基于浏览器的.

json translation localization internationalization angular-translate

11
推荐指数
1
解决办法
1万
查看次数

AngularJS:在Controller或Service的angular-translate中设置语言

我对使用angular-translate很感兴趣.

由于最初在启动时发生了很多设置调用,我无法在配置期间提供语言json.也不可能使用异步加载器.我需要能够在以后指定控制器或服务中的语言.

$translateProvider.translations(.., ...)是使用呼叫,但$translateProvider在控制器或服务中不可用,但似乎只在配置.

$translate 似乎没有能力加载语言JSON.

有没有解决方法?

angularjs angular-translate

10
推荐指数
2
解决办法
3万
查看次数

angular-translate ad ng-options

我正在尝试翻译选择下拉列表,我不喜欢我这样做的方式,因为它很麻烦,它绕过了整个角度转换框架.

区域设置数据看起来像{"lang":{"label":"text","select":{"k1":"var1","k2":"var2"}}}如果我选择"选择"在控制器范围内的成员,我可以在select的ng-options中写一些类似"k as for(k,v)in scopedvar"的内容.

基本上我喜欢翻译来做语言解决,然后开始退出并返回我的选项的本地化地图.如果它有意义,例如:"k为v(for,k,v)in'select'| translate",但当然不会.

有没有人面临(并解决)此问题?

TIA,Edoardo

ng-options angular-translate

9
推荐指数
1
解决办法
8130
查看次数

如何在angular translate的translate-values属性中使用过滤器

我正在尝试使用角度转换来显示类似的内容 - 发布者John Doe于2016年1月1日 - 其中John Doe和2016年1月1日是动态范围变量.

所以,我有类似的东西

<p translate="TRANSLATION-STRING" translate-values='{ name: myname, date:mydate }'></p>
Run Code Online (Sandbox Code Playgroud)

和翻译字符串定义为TRANSLATION-STRING:"在{{date}}上{{name}}上发布"

到目前为止它很好,但我所拥有的是一个非常长的日期,所以我想将一个日期过滤器应用于translate-value,类似于

<p translate="TRANSLATION-STRING" translate-values='{ name: myname, date:mydate|date:'MMM dd , yyyy' }'></p>
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.如何在视图中应用滤镜并将其传递到角度平移值?

angularjs angular-translate

9
推荐指数
1
解决办法
9028
查看次数

Angular-Translate:子模块translatePartialLoader urlTemplate覆盖父模块translatePartialLoader urlTemplate

我必须使用多个translatePartialLoader和不同的urlTemnplate.我正在使用angular-translate-loader-pluggable.似乎子模块urltemplate会覆盖父模块urltemplate

父模块配置

$translateProvider.useLoader('$translatePartialLoader', {
            urlTemplate: __env.hostUrl + '/*****/****/localization/resource_bundle?bundle_name={part}&locale={lang}'
        });
        $translateProvider.useLoader('translatePluggableLoader');
Run Code Online (Sandbox Code Playgroud)

子模块配置

 translatePluggableLoaderProvider.useLoader('$translatePartialLoader', {
            urlTemplate: navigationConfig.rsiDomain + navigationConfig.rsiBaseUrl + navigationConfig.localizationUrl + '?bundle_name={part}&locale={lang}'
        });
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-translate

9
推荐指数
1
解决办法
156
查看次数