2017-01-14 4 views
0

Я добавил пропущенный переводчик в моем приложении AngularJS для печати на консоли любого отсутствующего перевода для строки. Однако кажется, что все сообщения печатаются на консоли несколько раз.Несколько журнальных сообщений для недостающих переводов в Angular-Translate

Вот лог:

Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 
Translation for deleteMyAccount doesn't exist angular.min.js:118 

Это код AngularJS на app.module.js файла:

translateConfig.$inject = ['$translateProvider', '$translatePartialLoaderProvider']; 
    function translateConfig($translateProvider, $translatePartialLoaderProvider) { 

     $translatePartialLoaderProvider.addPart('header'); 
     $translatePartialLoaderProvider.addPart('index'); 

     $translateProvider 
      .useLoader('$translatePartialLoader', { 
       urlTemplate: 'i18n/{lang}/{part}.json' 
      }) 
     .useSanitizeValueStrategy('escape') 
     .preferredLanguage('en') 
     .useMissingTranslationHandlerLog(); 
    }; 

Как рыть больше и найти источник этой проблемы?

AngularJS 1.5.8

радиально-Перевести 2.13.1

ответ

0

Ответ адаптирован из моего reddit comment.

У вас недостаточно кода. Как ты это используешь? Если вы используете трансляционный фильтр и не используете одноразовые привязки, он попытается перевести ваши строки на каждый дайджест и, таким образом, спамить вашу консоль. Это фактически показывает возможную проблему с производительностью.

Вы используете директиву атрибута translate="deleteMyAccount" или {{ 'deleteMyAccount' | translate }} фильтр? В последнем случае Angular пытается перевести строку каждый раз, когда что-то изменяется в вашем приложении, вызывая сообщение об ошибке многократно. Чтобы исправить это, вы можете превратить его в одноразовую привязку, добавив :: после стартового кронштейна: {{:: 'deleteMyAccount' | translate }}. Я думаю, что это хорошая идея всегда использовать одноразовые привязки, если вы не ожидаете, что ваше значение изменится динамически.

0

Это, кажется, говорит вам есть 404 для файла перевода «i18n/ен/deleteMyAccount.json», поэтому убедитесь, что она существует ,

Что касается повторяющейся ошибки, то, что я заметил, заключается в том, что после того, как частичный файл не может найти маршрут, он попытается загрузить его снова при каждом изменении маршрута, вызывая несколько из этих 404 журналов.

+0

deleteMyAccount - это не файл, а строка в файле header.json. Что касается нескольких строк, я нахожусь на одном пути без изменения состояний. И появляется сообщение> 5 раз. – Tasos

+0

Правильно, извините, неправильно понял вопрос. В этом случае, если файл перевода правильно загружен, выполняются ли какие-либо другие строки перевода, определенные в файле JSON? – mattm

+0

Строки, которые находятся в файле. Этот отсутствует, но он должен появляться только один раз в журнале консоли. – Tasos

Смежные вопросы