Angular translate static-loader-file PascalPrecht
Я использую Angular -транслат (модуль PascalPrecht).
Мне удалось заставить его работать в соответствии с примером в: http://www.ng-newsletter.com/posts/angular-translate.html
Однако я хотел бы иметь все мои переводы в разных json файлах с помощью loader-static файлов, но это не работает для меня. Я не уверен, что я здесь делаю.
В моем модуле angular я только что заменил код, работающий (теперь прокомментированный) с помощью загрузчика-статического вызова:
angular.module('myApp.i18n', ['pascalprecht.translate'])
.config(['$translateProvider', function ($translateProvider) {
/*$translateProvider.translations('en', {
HOME: 'Home',
COMPANIES: 'Companies',
WHAT_TO_DO: 'What to do',
ABOUT: 'About us',
CONTACT: 'Contact'
})
.translations('es', {
HOME: 'Inicio',
COMPANIES: 'Empresas',
WHAT_TO_DO: 'Qué hacer',
ABOUT: 'Nosotros',
CONTACT: 'Contacto'
});*/
$translateProvider.preferredLanguage('es');
$translateProvider.useStaticFilesLoader({
prefix: '/languages/',
suffix: '.json'
});
}]);
Я добавил в папку приложения файлы:
/app/languages/en_US.json
/app/languages/es.json
Когда я загружаю свой домашний сайт, я вижу следующую ошибку в консоли:
http://localhost:1234/languages/es.json 404 (Not Found)
Если я удалю первый '/' в моем префиксе, например:
$translateProvider.useStaticFilesLoader({
prefix: 'languages/',
suffix: '.json'
});
Затем я получаю следующую ошибку в консоли:
Неожиданный токен H
Извините, я не думаю, что это должно сработать.
Ответы
Ответ 1
Убедитесь, что ваш сервер отправляет .json
как json, а не как обычный текст.
Кроме того, убедитесь, что имена файлов .json зависят от соответствующего языкового ключа.
Как вы можете прочитать здесь: http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading ( "Использование staticFilesLoader" )
Код выглядит хорошо для меня, поэтому, как только вы исправили проблему, что ваш сервер не отправляет json как json, все должно работать.
Ответ 2
Я исправил его. Как сказал Паскаль в комментариях, проблема заключалась в том, что файл json имел неправильный формат. Вы должны поместить все значения между двойными кавычками.
Путь был прав.