(Поддерживается версией 1.6.0 и выше)
Для сценариев с несколькими языками EasyFile предоставляет встроенный Executor с поддержкой многоязычия.
Если требуется поддержка нескольких языков для названий столбцов при экспорте, можно использовать метку ${key}
в атрибуте value
аннотации @ExcelProperty
, например: ${student.name}
.
Тогда для student.name
можно конфигурировать файлы пакета i18n
.
При экспорте следует запросить LocaleContextHolder
, который интегрирован в среду Spring с поддержкой i18n, и настроить соответствующий класс MessageResource
, чтобы он был внедрен в контейнер Spring.
Подробное описание реализации можно найти в примере EasyFile-example-local.
@ExcelProperty
, установите метку ${key}
в атрибуте value
, например: ${student.name}
.public class Student {
@Id
@ExcelProperty("ID")
private Long id;
@ExcelProperty(value = "${student.name}", width = 8 * 512)
private String name;
@ExcelProperty(value = "${student.age}")
private Integer age;
}
resources
. Например: messages_zh.properties
, messages_en.properties
.
messages_zh.propertiesstudent.name=姓名
student.age=年龄
messages_en.properties
student.name=Student Name
student.age=Student Age
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:i18n/messages"); // Укажите базовое имя, которое указывает на расположение ресурсов
messageSource.setDefaultEncoding("UTF-8"); // Установите кодировку по умолчанию
return messageSource;
}
```- 4\. Настройте среду Spring для работы с несколькими языками.
```java
/**
* Установите парсер языка Spring. Установите язык по умолчанию.
*/
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.US); // Язык по умолчанию
return slr;
}
/**
* Указание языка с помощью параметра `lang` в URL.
* Также можно использовать сессию, cookie или заголовки запроса.
* Пример: http://localhost:9999/student/export/page?lang=ru
*/
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang"); // имя параметра URL
return lci;
}
/**
* Устанавливает мультиязычный информационный передаточный парсер
* @param registry регистратор перехватов
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
Пример выполнения мультиязычной экспортации:
http://localhost:9999/student/export/page?lang=zh
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )