Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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.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, код таков:

(Конец)





Предыдущий:Практическое использование cAdvisor для сбора метрик контейнеров Docker
Следующий:Фронтенд JS преобразует blobs в струны
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com