Javascript 爱奥尼亚:当语言改变时,如何让AngleTranslateJS与搜索过滤器一起工作?

Javascript 爱奥尼亚:当语言改变时,如何让AngleTranslateJS与搜索过滤器一起工作?,javascript,angularjs,ionic,angular-filters,angular-translate,Javascript,Angularjs,Ionic,Angular Filters,Angular Translate,解决了这个问题。此问题中编辑了解决方案。谢谢你“praszyk” 我无法使用搜索过滤器进行角度平移。当语言为英语时,列表项可以用英语搜索。但当语言为孟加拉语时,这些项目仍然可以用英语搜索,但不能用孟加拉语搜索。有什么解决办法吗 看法 翻译供应商 .config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider, $translateProvider) { $translateProvider.translati

解决了这个问题。此问题中编辑了解决方案。谢谢你“praszyk”

我无法使用搜索过滤器进行角度平移。当语言为英语时,列表项可以用英语搜索。但当语言为孟加拉语时,这些项目仍然可以用英语搜索,但不能用孟加拉语搜索。有什么解决办法吗

看法

翻译供应商

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider, $translateProvider) {

 $translateProvider.translations('en', {
    Bnd_Nilgiri : 'Nilgiri Tourspot',
    Bnd_Nilachal : 'Nilachal Tourspot',
    Bnd_Bogalake : 'Bogalake Tourspot',    
  });
  $translateProvider.translations('de', {
    // Bandarban Tour Spots

    Bnd_Nilgiri : 'নিলগিরি ট্যুর স্পট',
    Bnd_Nilachal : 'নিলাচল ট্যুর স্পট',
    Bnd_Bogalake : 'বগালেক ট্যুর স্পট',
  });
  $translateProvider.preferredLanguage('en');

这是因为在角度过滤器之后应用了
|translate
过滤器

唯一可能的解决方案是事先翻译数组
。 在将
服务应用于
变量之前,您需要在控制器中使用
$translate
服务:

var en_translations =  {
    Bnd_Nilgiri : 'Nilgiri Tourspot',
    Bnd_Nilachal : 'Nilachal Tourspot',
    Bnd_Bogalake : 'Bogalake Tourspot',    
}

var de_translations = {
    Bnd_Nilgiri : 'নিলগিরি ট্যুর স্পট',
    Bnd_Nilachal : 'নিলাচল ট্যুর স্পট',
    Bnd_Bogalake : 'বগালেক ট্যুর স্পট',
};


var app = angular.module('myApp', ['pascalprecht.translate']);

app.config(['$translateProvider', function ($translateProvider) {
  // add translation table
  $translateProvider
    .translations('en', en_translations)
    .translations('de', de_translations)
    .preferredLanguage('de');
}]);

app.controller('Ctrl', ['$scope', '$translate', function ($scope, $translate) {
  // expose translation via `$translate` service
  $scope.groups =  [
    {
      index: 1,
      index_start_at: 56,
      name:  "Bnd_Nilgiri",
      surname: "Hayes",
      fullname: "Grace Beatty",
      email: "francis@livingston.es",
      bool: false,
      avatar: "img/ionic.png"
    },
    {
      index: 2,
      index_start_at: 57,
      name: "Bnd_Nilachal",
      surname: "Shayes",
      fullname: "Srace Beatty",
      email: "shuvo@livingston.es",
      bool: false,
      avatar: "img/ionic.png"
    }
  ];
  angular.forEach($scope.groups, function(user, index){
    $translate(user.name, {user: user}).then(function(translated){
      $scope.groups[index].name = translated;
    });
  });

}]);
我没有测试代码,但我想这就是在这里运行的方式。 基本上,
filter:input.filterUser
在尚未翻译的
$scope.groups
数组上运行,因此您需要在执行
ng repeat
之前翻译它

编辑:我在这里做了一个plunkr来展示上面的代码:

感谢praszyk抽出时间回答我的问题。我的控制器就像问题的代码,我刚刚编辑过。请看一看。你能发布你的翻译对象的部分吗?1分钟。我又在编辑这个问题了。提前谢谢。很抱歉回复晚了。非常感谢你。它起作用了。
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider, $translateProvider) {

 $translateProvider.translations('en', {
    Bnd_Nilgiri : 'Nilgiri Tourspot',
    Bnd_Nilachal : 'Nilachal Tourspot',
    Bnd_Bogalake : 'Bogalake Tourspot',    
  });
  $translateProvider.translations('de', {
    // Bandarban Tour Spots

    Bnd_Nilgiri : 'নিলগিরি ট্যুর স্পট',
    Bnd_Nilachal : 'নিলাচল ট্যুর স্পট',
    Bnd_Bogalake : 'বগালেক ট্যুর স্পট',
  });
  $translateProvider.preferredLanguage('en');
var en_translations =  {
    Bnd_Nilgiri : 'Nilgiri Tourspot',
    Bnd_Nilachal : 'Nilachal Tourspot',
    Bnd_Bogalake : 'Bogalake Tourspot',    
}

var de_translations = {
    Bnd_Nilgiri : 'নিলগিরি ট্যুর স্পট',
    Bnd_Nilachal : 'নিলাচল ট্যুর স্পট',
    Bnd_Bogalake : 'বগালেক ট্যুর স্পট',
};


var app = angular.module('myApp', ['pascalprecht.translate']);

app.config(['$translateProvider', function ($translateProvider) {
  // add translation table
  $translateProvider
    .translations('en', en_translations)
    .translations('de', de_translations)
    .preferredLanguage('de');
}]);

app.controller('Ctrl', ['$scope', '$translate', function ($scope, $translate) {
  // expose translation via `$translate` service
  $scope.groups =  [
    {
      index: 1,
      index_start_at: 56,
      name:  "Bnd_Nilgiri",
      surname: "Hayes",
      fullname: "Grace Beatty",
      email: "francis@livingston.es",
      bool: false,
      avatar: "img/ionic.png"
    },
    {
      index: 2,
      index_start_at: 57,
      name: "Bnd_Nilachal",
      surname: "Shayes",
      fullname: "Srace Beatty",
      email: "shuvo@livingston.es",
      bool: false,
      avatar: "img/ionic.png"
    }
  ];
  angular.forEach($scope.groups, function(user, index){
    $translate(user.name, {user: user}).then(function(translated){
      $scope.groups[index].name = translated;
    });
  });

}]);