Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9087|Відповідь: 0

[Джерело] Spring Boot MessageSource Яма інтернаціоналізованих мов

[Копіювати посилання]
Опубліковано 27.01.2022 14:52:03 | | | |
Інтернаціоналізація, також називається 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Неправда, код виглядає так:

(Кінець)





Попередній:Практичне використання cAdvisor для збору метрик контейнерів Docker
Наступний:Фронтенд JS перетворює плями на струни
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com