我在基于angularjs的应用程序中使用uploadcare widget。我将这个小部件集成为角度指令。
文档说,我应该设置全局变量来改变语言环境:
<script>
UPLOADCARE_LOCALE = 'ru';
</script>
但我对角度不太熟悉。所以,我不知道它是如何动态的。
我会很高兴得到任何帮助。
更新
我尝试将 $ 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 ...
但它没有帮助。
答案 0 :(得分:5)
在页面加载时读取所有全局设置一次。 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'));
答案 1 :(得分:0)
通过手册你应该使用
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
无关