gpt4 book ai didi

java - Spring Boot 子域国际化

转载 作者:搜寻专家 更新时间:2023-11-01 03:03:41 27 4
gpt4 key购买 nike

我正在尝试创建 spring boot(多语言)网络应用。

假设用户从该域访问:“en.mywebsite.com/index.html”-> 将启动英语语言。

从此域:“fr.mywebsite.com/index.html”-> 将启动法语。

我怎样才能做到这一点?我也查了this博客文章,但没有关于子域的其他信息。

最佳答案

像下面这样的东西就可以了。

public class SubDomainLocaleResolver extends AbstractLocaleResolver {


@Override
public Locale resolveLocale(HttpServletRequest request) {
String domain = request.getServerName();
String language = domain.substring(0, domain.indexOf('.'));
Locale locale = StringUtils.parseLocaleString(language);
if (locale == null) {
locale = determineDefaultLocale(request);
}
return locale != null ? locale : determineDefaultLocale(request);
}

protected Locale determineDefaultLocale(HttpServletRequest request) {
Locale defaultLocale = getDefaultLocale();
if (defaultLocale == null) {
defaultLocale = request.getLocale();
}
return defaultLocale;
}

@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
throw new UnsupportedOperationException("Cannot change sub-domain locale - use a different locale resolution strategy");

}
}

您获取服务器名称,解析第一部分并尝试解析一个 Locale ,发现您可以获得默认值。

关于java - Spring Boot 子域国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928404/

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