Я создаю приложение Angular7, и я хотел бы получить совет ...
Я пытаюсь выяснить, где лучше всего хранить текст.
Я должен поддерживать:
- Несколько языков,
- Несколько брендов, которые нуждаются в небольших вариациях в тексте. (пример: для канадских пользователей: «Кто является премьер-министром?», но для американцев: «Кто президент?»)
- Некоторым брендам нужны дополнительные опции в интерфейсе. (например: 3 варианта для канадского бренда, но 4 для США)
В настоящее время я использую ngx-translate, и я планирую создать языковой перевод бренда для каждого возможного сценария. (напр .: Канада-англ, Канада-франц, США-англ). Это позволяет мне удовлетворить все 3 требования, перечисленные выше. Однако я слышал, что в будущем ngx-translate устареет. Можно ли удовлетворить вышеперечисленные требования с помощью встроенного в Angular i18n? Возможна модернизация проекта.
Мой следующий вопрос о том, где хранить текст. Локально в папке активов приложения или Удаленно в API:
- Мой коллега предпочитает обслуживать текст перевода из API, такчто другие сотрудники компании могут просто загрузить переведенный текст в базу данных, и разработчикам приложений не придется иметь с ними дело.
- Я за локально, потому что:
- Удаленные файлы переводавозможная точка отказа.
- Файлы удаленного перевода исключат любую возможность для использования i18n, верно?
- Новые переводы будут относительно редким явлением и копированием-вставкой файловпереводчики дают нам легко.
- Я бы сказал, что мы должны создать разделение между DATA-text и App-text и всем текстом, который принадлежитприложение должно оставаться в приложении (например: «Нажмите ниже, пожалуйста»), а API должен предоставлять только «данные».
Что такое наилучшая практика?
В настоящее время реализованоРешение - компромисс, я загружаю ngx-translate json из папки assets и затем вызываю api, таким образом, пользователь никогда не видит уродливые строки перевода, такие как «Hello {{file.parameter}}», пока мы ждем, пока APIвернуться.