【问题标题】:How to dynamically change locale in uploadcare widget in angularjs based project如何在基于angularjs的项目中动态更改uploadcare小部件中的语言环境
【发布时间】:2014-06-26 12:26:19
【问题描述】:

我在基于 angularjs 的应用程序中使用 uploadcare widget。我将此小部件集成为角度指令。

文档说,我应该设置全局变量来更改语言环境:

<script>
    UPLOADCARE_LOCALE = 'ru';
</script>

但我对 Angular 不是很熟悉。所以,我不知道如何动态地做到这一点。

我会很高兴得到任何帮助。

更新


我尝试将 $rootScope 添加到我的 uploadcare 指令中,并在那里设置 UPLOADCARE_LOCALE 变量:

angular.module("project").directive 'projectUploadcare', ($uploadcare, $rootScope) ->
   restrict: 'E'
   replace: true
   template: '''
                <span>
                   <span class="uploadcare-preview"></span>
                   <input type="hidden">
                </span>
             '''
   link: (scope, element, attrs) ->
      $rootScope.UPLOADCARE_LOCALE = 'ru'
      ... other code ...

但它没有帮助。

【问题讨论】:

  • 澄清一下 - 您的目标是在前端即时更改语言环境,而不重新加载页面?
  • @DavidAvs 没错!对不起,如果我的解释不是很清楚。

标签: javascript angularjs file-upload locale uploadcare


【解决方案1】:

在页面加载时一次性读取所有全局设置。 Locale 是全局设置,不能为特定小部件覆盖。但是according to source 有一个 hack 允许在运行时重建翻译。

首先,您需要获取内部 Uploadcare API。

var internalUploadcare;
uploadcare.plugin(function(internal) {
  internalUploadcare = internal;
});

然后您可以使用内部internalUploadcare.locale.rebuild 方法来重建区域设置。第三步是重新初始化页面上现有的小部件。例如:

$('#uploader').html(
  $('#uploader input:eq(0)')
);
uploadcare.initialize($('#uploader'));

全部加起来:http://jsbin.com/comone/1/watch

【讨论】:

  • 非常感谢!你真的帮了我=)
【解决方案2】:

你应该手动使用

UPLOADCARE_LOCALE_TRANSLATIONS = {
  errors: {
    'portrait': 'Landscape images only'  // message for widget
  },
  dialog: {tabs: {preview: {error: {
    'portrait': {  // messages for dialog's error page
      title: 'No portrait images are allowed.',
      text: 'We are sorry but image should be landscape.',
      back: 'Back'
    }
  } } } }
};

是的:

UPLOADCARE_LOCALE = 'en';

请务必在之前设置此变量。

但这与AngularJS无关

【讨论】:

  • 不,你误解了我的意思。我不想自定义语言环境。我只想在我的应用程序中更改它(例如,从“en”更改为“ru”)。
  • 所以试试我回答的第二部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多