Angular 翻译,使用 staticFilesLoader 不起作用
Angular translate, Using staticFilesLoader not working
我正在尝试使用 angular 翻译来本地化我的应用程序。
这是我的模块:
angular.module('myapp', [
'angular-meteor',
'ui.router',
'ngMaterial',
'ngMessages',
'ngAnimate',
'ngCookies',
'pascalprecht.translate'
]);
然后我的配置:
angular.module('myapp').config(['$translateProvider', function ($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: 'client/lib/translation/',
suffix: '.json'
});
$translateProvider.preferredLanguage('en-US');
}]);
我的en-US.json文件内容:
{
"TITLE" : "hello"
}
我正在用这个 html 进行测试:
<h1> {{"TITLE" | translate}}</h1>
我用变量中的 table 测试了它,它运行良好,问题似乎是我的 .json 没有找到或忽略,因为它显示
TITLE
而不是
hello
我目前正在处理同样的问题。似乎是摘要周期 运行 太早了,因为外部 file/s 正在异步加载。
解决方法:在您的 HTML 中改用属性指令。
示例:
<p data-translate="TITLE"></p>
免责声明:这可能不是最好的解决方案,我仍在学习AngularJS自己!
实际上我发现了问题,我不得不将语言环境文件放在 public 文件夹中。所以这是固定的。
这是一个完整的示例:
http://plnkr.co/edit/Ibq4EaFcvyUPGpqb81Jo?p=preview
要使用翻译,也可以使用
{{"TITLE" | translate}}
或:
<h2 translate="TITLE"></h2>
我在加载文件时也遇到了问题,我最终发现起始路径似乎是 www 文件夹。
然后在没有正斜杠的配置中开始,所以这在我的应用程序配置中对我有用:
.config(function ($translateProvider) {
//$translateProvider.fallbackLanguage("en");
$translateProvider.determinePreferredLanguage();
$translateProvider.useStaticFilesLoader({
prefix: 'js/translations/locale-',
suffix: '.json'
});
$translateProvider.use('en_US');
$translateProvider.preferredLanguage('en_US');
})
我通过使用 chrome 调试器 (chrome://inspect) 找到了它,它在控制台中显示的错误在 运行 时未显示在通常的终端中离子与 -lc.
希望对大家有所帮助:)!
我正在尝试使用 angular 翻译来本地化我的应用程序。
这是我的模块:
angular.module('myapp', [
'angular-meteor',
'ui.router',
'ngMaterial',
'ngMessages',
'ngAnimate',
'ngCookies',
'pascalprecht.translate'
]);
然后我的配置:
angular.module('myapp').config(['$translateProvider', function ($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: 'client/lib/translation/',
suffix: '.json'
});
$translateProvider.preferredLanguage('en-US');
}]);
我的en-US.json文件内容:
{
"TITLE" : "hello"
}
我正在用这个 html 进行测试:
<h1> {{"TITLE" | translate}}</h1>
我用变量中的 table 测试了它,它运行良好,问题似乎是我的 .json 没有找到或忽略,因为它显示
TITLE
而不是
hello
我目前正在处理同样的问题。似乎是摘要周期 运行 太早了,因为外部 file/s 正在异步加载。
解决方法:在您的 HTML 中改用属性指令。
示例:
<p data-translate="TITLE"></p>
免责声明:这可能不是最好的解决方案,我仍在学习AngularJS自己!
实际上我发现了问题,我不得不将语言环境文件放在 public 文件夹中。所以这是固定的。
这是一个完整的示例: http://plnkr.co/edit/Ibq4EaFcvyUPGpqb81Jo?p=preview 要使用翻译,也可以使用
{{"TITLE" | translate}}
或:
<h2 translate="TITLE"></h2>
我在加载文件时也遇到了问题,我最终发现起始路径似乎是 www 文件夹。 然后在没有正斜杠的配置中开始,所以这在我的应用程序配置中对我有用:
.config(function ($translateProvider) {
//$translateProvider.fallbackLanguage("en");
$translateProvider.determinePreferredLanguage();
$translateProvider.useStaticFilesLoader({
prefix: 'js/translations/locale-',
suffix: '.json'
});
$translateProvider.use('en_US');
$translateProvider.preferredLanguage('en_US');
})
我通过使用 chrome 调试器 (chrome://inspect) 找到了它,它在控制台中显示的错误在 运行 时未显示在通常的终端中离子与 -lc.
希望对大家有所帮助:)!