我在我的应用程序中使用了角度gettext.我现在有两种语言,并希望根据用户的喜好在UI中切换语言.我有两种语言的按钮 - DE和EN.
在控制器方法中,我设置了语言:
$scope.changeLang = function (lang) {
gettextCatalog.currentLanguage = lang;
gettextCatalog.debug = true;
};
Run Code Online (Sandbox Code Playgroud)
在这样做时,UI中的语言似乎没有变化.使用angular gettext在UI中动态更改语言的正确方法是什么?
提前致谢.
情况:
我正在为我的应用程序使用angular-translate.
一切都很完美.但我只需要将翻译移动到静态json文件中.
我已按照所有说明进行操作,但无效.
代码(之前):
$translateProvider.translations('en', {
"WELCOME": "Welcome",
});
$translateProvider.translations("tr", {
"WELCOME": "Ho?geldiniz",
});
$translateProvider.translations("it", {
"WELCOME": "Benvenuto",
});
Run Code Online (Sandbox Code Playgroud)
代码(现在):
$translateProvider.useStaticFilesLoader({
prefix: '/translations/',
suffix: '.json'
});
Run Code Online (Sandbox Code Playgroud)
JSON文件:
路径:
www/translations/en.json
www/translations/it.json
www/translations/tr.json
Run Code Online (Sandbox Code Playgroud)
例:
{
"WELCOME": "Benvenuto",
}
Run Code Online (Sandbox Code Playgroud)
错误:
SyntaxError: Unexpected token } in JSON at position 4160
at Object.parse (native)
Run Code Online (Sandbox Code Playgroud)
问题:
如何使用angular-translate从静态json加载翻译?
我的情况有什么不妥?
谢谢!
在以下情况下如何使用角度转换器?
<label class="control-label col-md-3">{{vm.showVat ? Inclusive : Amount}} </label>
Run Code Online (Sandbox Code Playgroud) 我正在将Angular与require.js结合使用.除此之外,我使用angular-translate插件.现在我添加了插件angular-translate-storage-local,我收到了这个错误:Error: [$injector:unpr] Unknown provider: $translateCookieStorageProvider <- $translateCookieStorage <- $translateLocalStorage <- $translate
通常我会说我忘了添加依赖项,但我没有(我猜)!
我的requirejs.config:
requirejs.config({
shim: {
angular: {
exports: 'angular'
},
ngTranslateLoader: ['ngTranslate'],
ngTranslateLocalStorage: ['ngTranslate']
},
paths: {
ngTranslate: '../../vendor/angular-translate/angular-translate',
ngTranslateLoader: '../../vendor/angular-translate-loader-static-files/angular-translate-loader-static-files',
ngTranslateLocalStorage: '../../vendor/angular-translate-storage-local/angular-translate-storage-local'
}
});
Run Code Online (Sandbox Code Playgroud)
我的module:
define(function(require) {
require('ngTranslate');
require('ngTranslateLocalStorage');
require('ngTranslateLoader');
var angular = require('angular');
var app = angular.module('app', [
'pascalprecht.translate'
])
.config([$translateProvider', function ($translateProvider) {
$translateProvider
.useStaticFilesLoader({
prefix: '/language/',
suffix: '.json'
})
.preferredLanguage('en-DK')
.useSanitizeValueStrategy('escape')
.useLocalStorage();
}]);
});
Run Code Online (Sandbox Code Playgroud)
静态文件加载器插件运行良好.我的失败在哪里?
编辑:我在 …
在翻译 json 我有这样的东西
"Take": "The '<b>{{Name}}</b>' is assigned to user <b>{{user}}</b> until <b>{{Date}}</b>"
Run Code Online (Sandbox Code Playgroud)
但是当我在 html 中尝试这样的事情时
<p [innerHTML]="'Take' | translate: '{ Name: options.Name, user: options.user, Date: options.date }'">
</p>
Run Code Online (Sandbox Code Playgroud)
和对象
options = {
Name: John,
user: Rambo,
Date: 22/02/1997
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误 错误语法错误:TranslatePipe 中的参数错误。期望一个有效的对象,收到: 我不知道我哪里出错了?