1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/svnee-easy-file

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
I18n.md 4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 16:45 e8971b3

Поддержка международной локализации

(Поддерживается версией 1.6.0 и выше)

Для сценариев с несколькими языками EasyFile предоставляет встроенный Executor с поддержкой многоязычия.

Если требуется поддержка нескольких языков для названий столбцов при экспорте, можно использовать метку ${key} в атрибуте value аннотации @ExcelProperty, например: ${student.name}.
Тогда для student.name можно конфигурировать файлы пакета i18n.
При экспорте следует запросить LocaleContextHolder, который интегрирован в среду Spring с поддержкой i18n, и настроить соответствующий класс MessageResource, чтобы он был внедрен в контейнер Spring.

Подробное описание реализации можно найти в примере EasyFile-example-local.

Шаги использования международной локализации

  • 1. Используйте аннотацию @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;
}
  • 2. Настройте файлы локализации в директории resources. Например: messages_zh.properties, messages_en.properties. messages_zh.properties
student.name=姓名
student.age=年龄

messages_en.properties

student.name=Student Name
student.age=Student Age
  • 3. Внедрите MessageResource в контейнер Spring.
@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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/svnee-easy-file.git
git@api.gitlife.ru:oschina-mirror/svnee-easy-file.git
oschina-mirror
svnee-easy-file
svnee-easy-file
master