Angular translate static-loader-file PascalPrecht - программирование
Подтвердить что ты не робот

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

Извините, я не думаю, что это должно сработать.

4b9b3361

Ответ 1

Убедитесь, что ваш сервер отправляет .json как json, а не как обычный текст. Кроме того, убедитесь, что имена файлов .json зависят от соответствующего языкового ключа.

Как вы можете прочитать здесь: http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading ( "Использование staticFilesLoader" )

Код выглядит хорошо для меня, поэтому, как только вы исправили проблему, что ваш сервер не отправляет json как json, все должно работать.

Ответ 2

Я исправил его. Как сказал Паскаль в комментариях, проблема заключалась в том, что файл json имел неправильный формат. Вы должны поместить все значения между двойными кавычками.

Путь был прав.