网站一般都是根据什么来实现国际化?

KG071 2013-12-28 07:52:03
访问这个网址http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp,我在用公司的电脑访问,显示的是英文页面。但是在家里访问,我改了浏览器的locale,也改了系统的时区和区域,甚至还用了美国的代理,但是显示的依然是英文。

请问一般如何来实现国际化,我该如果操作才能让这个页面显示英文?
...全文
433 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
qxyywy 2013-12-30
  • 打赏
  • 举报
回复
首先要网站做了多语言支持才可以的 有这个功能之后一般就是再根据用户的Accept-Language来响应
qxyywy 2013-12-30
  • 打赏
  • 举报
回复


/// <summary>
///登录验证,demo用户权限验证, 读取语言设置
/// </summary>
/// <param name="ac"></param>
protected override void OnAuthorization(AuthorizationContext ac)
{
routeValue = RouteData.Values;
//读取设置
if (Request.Cookies["USER_LANGUAGE_KEY"] == null)
{
string userLanguage = "";
if (Request.UserLanguages != null)
userLanguage = Request.UserLanguages[0].ToString().ToLower();
int languageKey = (int)LanguageType.En;
if(userLanguage.Contains("en")){ }
else if (userLanguage.Contains("ru"))
{
languageKey = (int)LanguageType.Ru;

}
else if (userLanguage.Contains("pt"))
languageKey = (int)LanguageType.Pt;
Response.Cookies["USER_LANGUAGE_KEY"].Value = languageKey.ToString();
Response.Cookies["USER_LANGUAGE_KEY"].Expires = DateTime.Now.AddMonths(1);
Response.Cookies["USER_LANGUAGE_KEY"].Domain = "/";
}
}
  • 打赏
  • 举报
回复
引用 15 楼 KG071 的回复:
[quote=引用 9 楼 fangmingshijie 的回复:] 你的问题是什么?不都是英文了吗?是否有国际化,要看网站本身是否支持国际化的功能。不是说你改下浏览器设置就行的。
我帖子写错了,但是没权限改了。 这个网站做过国际化,会根据不同的请求来显示中文或者英文。我想知道它是根据哪个属性来确定什么时候显示那种文字。根据楼上的回答,应该是根据Accept-Language这个属性。但是浏览器是如何确定Accept-Language的值的?比如公司浏览器,Accept-Language是en-us,en,而家里的电脑是zh-CN,zh[/quote]是头信息
KG071 2013-12-30
  • 打赏
  • 举报
回复
引用 14 楼 beichui 的回复:
[quote=引用 13 楼 KG071 的回复:] [quote=引用 11 楼 beichui 的回复:]
这个Accept-Language是根据什么来确定的?比如某一台电脑访问,request的时候是en,另一台又是zh-CN,浏览器是如何确定这个发送给网站的值的?[/quote] 这个都是浏览器的设置。 [/quote] 多谢,已结帖
KG071 2013-12-30
  • 打赏
  • 举报
回复
引用 9 楼 fangmingshijie 的回复:
你的问题是什么?不都是英文了吗?是否有国际化,要看网站本身是否支持国际化的功能。不是说你改下浏览器设置就行的。
我帖子写错了,但是没权限改了。 这个网站做过国际化,会根据不同的请求来显示中文或者英文。我想知道它是根据哪个属性来确定什么时候显示那种文字。根据楼上的回答,应该是根据Accept-Language这个属性。但是浏览器是如何确定Accept-Language的值的?比如公司浏览器,Accept-Language是en-us,en,而家里的电脑是zh-CN,zh
北吹 2013-12-30
  • 打赏
  • 举报
回复
引用 13 楼 KG071 的回复:
[quote=引用 11 楼 beichui 的回复:]
这个Accept-Language是根据什么来确定的?比如某一台电脑访问,request的时候是en,另一台又是zh-CN,浏览器是如何确定这个发送给网站的值的?[/quote] 这个都是浏览器的设置。
KG071 2013-12-30
  • 打赏
  • 举报
回复
引用 11 楼 beichui 的回复:
这个Accept-Language是根据什么来确定的?比如某一台电脑访问,request的时候是en,另一台又是zh-CN,浏览器是如何确定这个发送给网站的值的?
gaofuqi 2013-12-30
  • 打赏
  • 举报
回复
自己写个拦截器,你可以自己定义,不要使用默认的,比如url的目录包含了"/en/"或者"/zh/"这样的字符串,或者加个参数自己判断。这样你就可以自己定义各种情况的处理,比如只支持中英文,其他语言的就一律显示英文。
北吹 2013-12-30
  • 打赏
  • 举报
回复
北吹 2013-12-30
  • 打赏
  • 举报
回复
引用 6 楼 webwiki 的回复:
[quote=引用 2 楼 KG071 的回复:] [quote=引用 1 楼 lsh009 的回复:] 问题的核心是你系统做了国际化的处理没有,而不是你客户端改了local就会帮你把英文都变成中文的
做了国际化处理肯定需要根据某个东西来判断我该显示英文还是中文,我现在不确定这个东西是什么[/quote] 根据http协议定义的Accept-Language请求报头信息。 Accept-Language Accept-Language请求报头用于指定一种自然语言。如:Accept-Language:zh-cn。 如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。[/quote] 正解! Accept-Language 不一定是一个语言,可以是多个语言的locale编号,但是多个语言是有排序的,服务端通依次检查,优先使用靠前的编号。
  • 打赏
  • 举报
回复
你的问题是什么?不都是英文了吗?是否有国际化,要看网站本身是否支持国际化的功能。不是说你改下浏览器设置就行的。
别闹腰不好 2013-12-30
  • 打赏
  • 举报
回复
struts 1,2都能国际化。
放纵的青春 2013-12-30
  • 打赏
  • 举报
回复
这种依据有很多咯 一般是用系统使用的语言来判断咯 毕竟一个中国人很少会用纯英文的系统语言吧
zaz770977934 2013-12-30
  • 打赏
  • 举报
回复
也可以根据电脑系统使用的语音
  • 打赏
  • 举报
回复
学习了1
KG071 2013-12-29
  • 打赏
  • 举报
回复
引用 3 楼 huxiweng 的回复:
判断locale是一种方法。还有就是根据IP地址可以获取到国家代码的。根据不同国家来设置也可以
对啊,但是我已经改了locale,而且也用了美国的IP,可还是显示中文。
teemai 2013-12-29
  • 打赏
  • 举报
回复
判断locale是一种方法。还有就是根据IP地址可以获取到国家代码的。根据不同国家来设置也可以
KG071 2013-12-29
  • 打赏
  • 举报
回复
引用 1 楼 lsh009 的回复:
问题的核心是你系统做了国际化的处理没有,而不是你客户端改了local就会帮你把英文都变成中文的
做了国际化处理肯定需要根据某个东西来判断我该显示英文还是中文,我现在不确定这个东西是什么
coolbamboo2008 2013-12-29
  • 打赏
  • 举报
回复
struts2不是可以国际化的吗
webwiki 2013-12-29
  • 打赏
  • 举报
回复
引用 2 楼 KG071 的回复:
[quote=引用 1 楼 lsh009 的回复:] 问题的核心是你系统做了国际化的处理没有,而不是你客户端改了local就会帮你把英文都变成中文的
做了国际化处理肯定需要根据某个东西来判断我该显示英文还是中文,我现在不确定这个东西是什么[/quote] 根据http协议定义的Accept-Language请求报头信息。 Accept-Language Accept-Language请求报头用于指定一种自然语言。如:Accept-Language:zh-cn。 如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。
加载更多回复(2)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧