gpt4 book ai didi

java - 当他访问网站并以用户语言显示页面时,如何在jsp页面中获取用户语言环境

转载 作者:行者123 更新时间:2023-11-30 07:14:08 25 4
gpt4 key购买 nike

当他访问我的网站并以该语言显示网站时,我正在尝试获取用户区域设置语言。如何检测用户区域设置并附加到浏览器 url,就像我们访问 http://www.microsoft.com 时一样来自印度然后它自动将 url 显示为 http://www.microsoft.com/en-in/default.aspx例如,我的网站名称是 http://www.myweb.com那么如何将 url 设置为 http://www.myweb.com?language=en在页面加载..?因为我在我的 web.xml 中将 home.jsp 设置为欢迎文件所以当我从 netbeans 运行我的网络应用程序时它显示 localhost:8080/Myweb/所以如果我想发送页面用户怎么知道该页面是英语还是荷兰语链接到我在荷兰的 friend ?简而言之,当用户打开我的网站时,我想在 URL 中显示语言参数 http://www.myweb.com?language=nl即自动检测用户语言环境并将该语言设置为参数

这是我的代码....

  <%@page import="java.util.Locale"%>
<%@ page pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String userLocale = request.getHeader("Accept-Language");
//out.println(userLocale);
Locale locale = request.getLocale();
String userlanguage = locale.getDisplayLanguage();
out.println("LANG :" + locale.getLanguage());
%>

<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale.language}" scope="session" />
<fmt:setLocale value="${language}" />

// here depending on user locale i am setting basename is this good approach?
<c:choose>
<c:when test="${language == 'nl'}">
<fmt:setBundle basename="com.example.i18n.text_nl" />
</c:when>
<c:otherwise>
<fmt:setBundle basename="com.example.i18n.text" />
</c:otherwise>
</c:choose>


<html lang="${language}">
<nav>
<ul>
<li>
<a href="<c:url value='Aboutus.jsp?language=${language}'/>"
title="<fmt:message key="nav.label.aboutus" />">
<fmt:message key="nav.label.aboutus" />
</a>
</li>
<li class="shad">
<a href="<c:url value='Contactus.jsp?language=${language}'/>" // and also is this good way to append language as parameter to url here ?
title="<fmt:message key="nav.label.contactus" />">
<fmt:message key="nav.label.contactus" />
</a>
</li>
</ul>
</nav>
</html>

最佳答案

编写一个 HttpFilter 来处理这个并将其映射到 web.xml 中。

 if(request.getParameter("language")==null) {
String userLocale = request.getHeader("Accept-Language");
Locale locale = request.getLocale();

if(req.getRequestUrl().contains("?")) {
response.sendRedirect(req.getRequestUrl()+"&language="_locale.getLanguage());
} else {
response.sendRedirect(req.getRequestUrl()+"?language="_locale.getLanguage());
}
}

关于java - 当他访问网站并以用户语言显示页面时,如何在jsp页面中获取用户语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656223/

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