gpt4 book ai didi

java - Spring Boot 项目中的多元化问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:04 25 4
gpt4 key购买 nike

目前我正在使用 Spring-boot + Thymeleaf 和多种语言。我找不到任何简单的方法来使用 ICU4j 与这些。本质上,据我所知,所需要做的就是用 ICU4J 变体替换 ResourceBundleMessageSource 及其 MessageFormat 。但我无法让它一起工作。

也许 Spring 中有一些此类项目的示例或任何其他多元化功能的示例(例如 this )。

最佳答案

通过典型的 Spring Boot 2 + Thymeleaf 项目,可以通过 this project 来实现以及以下配置:

@Configuration
public class YourConfigFile ...

@Bean
public ICUMessageSource messageSource() {
ICUReloadableResourceBundleMessageSource messageSource = new ICUReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages/messages");
messageSource.setCacheSeconds(3600);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}

您还需要从 Maven 添加 ICU4J 依赖项。

在您的 messages.properties 中(在我的例子中为 messages_ru.properties):

plural={0} {0, plural, one{пользователь}few{пользователя}other{пользователей}}

使用:

<span th:text="#{plural(0)}"></span>
<span th:text="#{plural(1)}"></span>
<span th:text="#{plural(2)}"></span>
<span th:text="#{plural(10)}"></span>

如果您在查找 messages.properties 时遇到问题,最终会出现 ??plural_ru?? 之类的错误,请检查这些文件的位置和名称messageSource.setBasename("classpath:messages/messages").

关于java - Spring Boot 项目中的多元化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com