Я использую angular-translate в моем угловом применении. Я установил язык по умолчанию для немецкого языка
$translateProvider.preferredLanguage('de')
Я также использую $translate.use(langKey)
который устанавливает языки во время выполнения.
Но когда я устанавливаю язык на english
во время выполнения, а затем после этого, когда я перезагружаю страницу, он снова устанавливает язык на German
. я хочу, чтобы после обновления страница должна быть загружена на том языке, на котором она была установлена раньше.
Есть что-то в угловом, которое я могу использовать, или я должен написать свою собственную логику для реализации вышеизложенного.
Есть уже некоторые реализации для хранения выбранного языка, встроенного в angular-translate (через дополнительные модули). Посмотрите на https://angular-translate.github.io/docs/#/guide/10_storages, который предоставляет встроенные решения для файлов cookie и localstorage. Работа с этим вручную не настолько тривиальна, как кажется на первый взгляд.
С модулем это так же просто, как сброс в один файл javascript и добавление следующего вызова при настройке поставщика перевода:
$translateProvider.useLocalStorage();
вы можете использовать localstorage для сохранения значения в кеше, просто введите окно службы $ в ваш контроллер и используйте этот sintax:
$window.localStorage.setItem('lan', 'en');
кеш сохраняет значение даже после закрытия браузера. Когда вы обновляете страницу, просто проверьте, присутствует ли ключ.
if($window.localStorage.getItem('lan') === 'en'){
//do something
}
Локальное хранилище привязано к определенному домену,
Вы можете использовать ресурсы вкладки хром-веб-инструментов для проверки существующих пар ключ-значение
Дополнительная информация в документе https://developer.mozilla.org/it/docs/Web/API/Window/localStorage