Интернационализация, также называемая i18n, почему именно так? Поскольку интернационализация — это интернационализация, между i и n есть 18 букв, поэтому это называется i18n. Если наше приложение интернационализировано, его можно легко переключать в разных языковых средах, наиболее распространённым является переключение между китайским и английским, а функция интернационализации тоже довольно распространена.
Например, при отправке конкретного запроса в заголовке установите пару ключ-значение: «Accept-Language»:«zh», через соответствующее значение Accept-Language сервер может выбрать, какой язык региона использовать, найти соответствующий ресурсный файл, отформатировать его и вернуть клиенту.
Создайте новый проект Spring Boot, создайте файл i18n в папке ресурсов и создайте новый конфигурационный файл в этой папке в формате «Language Abbreviation Table», как показано на рисунке ниже:
message.properties
message_en.свойства
Не забудьте добавить параметры конфигурации для редактирования свойства application.properties, чтобы сделать нашу конфигурацию эффективной:
Спринг определяетИсточник сообщенияинтерфейсы для доступа к интернационализированной информации.
getMessage(Строковый код, Object[] args, String defaultMessage, Locale locale) getMessage(Строковый код, Object[] args, Locale locale) getMessage(MessageSourceResolvable resolvable, Locale locale)
Создайте новый контроллер и попробуйте вызвать другой файл ресурсов, чтобы вернуть запрос со следующим кодом:
Проект развернут на китайском сервере Windows, и нет проблем с доступом китайских пользователей к китайскому. При развертывании на английской версии Linux китайские пользователи подают запрос на английском (прочитайте конфигурацию англоязычного ресурсного файла).
Причина этого — мыНового китайского файла .properties вообще нет, в данный момент программа читает файл ресурса, соответствующий текущему системному языку, и если его нельзя прочитать снова, она не сможет прочитать никакие конфигурации идентифицированных файлов свойств。 Когда мы публикуем проект на английской системе Linux, хотя программа не может прочитать китайскую конфигурацию, она читает конфигурационный файл _en.properties, поэтому интерфейс возвращает китайский запрос.
Решение, сеттингFallbackToSystemLocaleFalse, код таков:
(Конец)
|