Інтернаціоналізація, також називається i18n, чому саме така назва? Оскільки інтернаціоналізація англійської — це інтернаціоналізація, між i та n є 18 літер, тому це називається i18n. Якщо наш додаток інтернаціоналізований, його можна легко перемикати в різних мовних середовищах, найпоширенішим є перемикання між китайською та англійською, а функція інтернаціоналізації також досить поширена.
Наприклад, при відправленні конкретного запиту встановіть пару ключ-значення в заголовку: "Accept-Language":"zh", через відповідне значення Accept-Language сервер може вирішити, яку мову регіону використовувати, знайти відповідний ресурсний файл, відформатувати його та повернути клієнту.
Створіть новий проект Spring Boot, створіть файл i18n у папці ресурсів і створіть новий конфігураційний файл у цій папці у форматі "Language Abbreviation Table", як показано на рисунку нижче:
message.властивості
message_en.властивості
Не забудьте додати параметри конфігурації для редагування application.properties, щоб наша конфігурація була ефективною:
Визначення SpringДжерело повідомленняінтерфейси для доступу до інтернаціоналізованої інформації.
getMessage(Рядковий код, Object[] args, String defaultMessage, Locale locale) getMessage(Рядковий код, Object[] args, Locale locale) getMessage(MessageSourceResolvable resolvevable, Locale locale)
Створіть новий контролер і спробуйте викликати інший файл ресурсу, щоб повернути запит із наступним кодом:
Проєкт розгортається на Windows-сервері китайською мовою, і немає проблем із доступом китайських користувачів. Під час розгортання на англійській версії Linux китайські користувачі виставлятимуть англійський запит (прочитайте конфігурацію англомовного ресурсного файлу).
Причина цього — через насНового китайського .properties файлу взагалі немає, наразі програма читає файл ресурсів, що відповідає поточній системній мові, і якщо його не можна прочитати знову, вона не зможе прочитати жодної ідентифікованої конфігурації файлів властивостей。 Коли ми публікуємо проєкт на Linux English системі, хоча програма не може прочитати китайську конфігурацію, вона читає конфігураційний файл _en.properties, тому інтерфейс повертає китайський запит.
Рішення, налаштуванняFallbackToSystemLocaleНеправда, код виглядає так:
(Кінець)
|