2016-08-11 5 views
0

В настоящее время я использую угловой перевод со статическим загрузчиком файлов. В настоящее время я реализую как минимум 3 языка, однако, я заметил, что обычно при попытке загрузить языковой файл иногда требуется больше времени для загрузки языкового файла, чем для самого представления, что приводит к частично переведенному интерфейсу , Большинство предметов на экране будут оставаться нетранслированными, но некоторые из них будут.Угловой перевод - Многоязычный - Статические файлы - Состояние гонки?

Я попытался следующий, без изменений:

  • установки forceAsyncRefresh (истинной) при настройке $ translateProvider.
  • установить $ rootScope часы в контроллере входа в систему (первый вид пользователя увидит), а на translateLoadedSuccess вызвать $ translate.refresh().
  • Модернизированный до последней угловой перевести

99,9% всех переводов в настоящее время осуществляется в виде, например .: {{:: «Мой перевод Key» | translate}}

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

Я использую Angular 1.5.0 и Angular Translate 2.11.1.

TIA!

ответ

0

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

Насколько я мог судить, было доступно два (2) варианта: либо вручную загрузить и настроить языковой файл, либо переместить языковой файл в отдельные файлы меньшего размера. Тем не менее, я всегда хотел гарантировать, что это не будет проблемой, поэтому я решил вручную загрузить и установить языковой файл. Это фактически было довольно простым и требовалось следующее:

1) Языковые файлы загружались в верхней части элементов в файле index.html.

2) Язык файл (ы) будет присвоено переменной в себе - то есть вар Enus = { 'LOGIN': 'Войти', 'USER': 'User'}

3) Язык будет вручную настроить в app.config:

app.config(['$translateProvider', function($translateProvider){ 
    $translateProvider.translations('en_US', enUS); // this is the variable we assigned to the language json in step 2 
    $translateProvider.preferredLanguage('en_US'); 
    $translateProvider.useSanitizeValueStrategy('sanitize'); 
}]); 

Это полностью устранило все проблемы на всех клиентах.

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