【问题标题】:How to use angular-gettext in a config phase?如何在配置阶段使用 angular-gettext?
【发布时间】:2015-04-15 17:28:56
【问题描述】:

我正在使用angular-gettextangular-breadcrumbangular-ui-router

我的应用配置类似于:

app.config(function($stateProvider) {

  $stateProvider.state('welcome', {
     url : '/',
     templateUrl: 'index.html',
     ncyBreadcrumb : {
        label : 'Home'
     }
  });

});

我希望能够通过 angular-gettext 翻译面包屑 ('Home') 的标签。为此,我需要将 gettext 工具包含到 app.config() 函数中。像这样的东西会很理想,但是 gettextCatalog 在配置阶段不可用:

app.config(function($stateProvider, gettextCatalog) {

  $stateProvider.state('welcome', {
     url : '/',
     templateUrl: 'index.html',
     ncyBreadcrumb : {
        label : gettextCatalog.getString('Home')
     }
  });

});

有没有其他方法可以使用这些插件实现这一点,尤其是angular-gettext

【问题讨论】:

    标签: javascript angularjs gettext breadcrumbs angular-gettext


    【解决方案1】:

    根据angular-breadcrumb 文档:

    ncyBreadcrumbLabel 属性可以包含根据当前状态控制器的范围进行评估的绑定。

    我尚未对此进行测试,但我认为您可以在控制器中使用 gettextCatalog 模块:

    $stateProvider.state('home', {
      url: '/',
      templateUrl: 'index.html',
      controller: function($scope, gettextCatalog) {
        $scope.label = gettextCatalog.getString('Home');
      },
      ncyBreadcrumb: {
        label: '{{label}}'
      }
    })
    

    【讨论】:

    • 这可能是最好的解决方案。另一种可能性是this one。即使label: '{{label|translate}}' 也可以,但是grunt-angular-gettext 提取没有检测到这两个表达式,因此它们没有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多