起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4311|回复: 4

[处理中3] 国际化在门户界面设置切换多语言

[复制链接]

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
发表于 2021-7-27 08:51:22 | 显示全部楼层 |阅读模式
X5目前可以在登录的时候选择多语言,现在想在门户上加上多语言的选择,如下图,选择框的值改变后如何设置生效语言包。


多语言切换.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2021-7-27 17:57:17 | 显示全部楼层
把语言拼接到首页的url上刷新首页看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2021-7-28 08:53:05 | 显示全部楼层
jishuang 发表于 2021-7-27 17:57
把语言拼接到首页的url上刷新首页看看

用了下面两种方法都会跳转到登录页面
  1. $(this.getElementByXid("lang")).on('change', function() {
  2.                         var search = window.location.search;
  3.                         if (search) {
  4.                                 search = search.substring(1);
  5.                                 search = search.split('&');
  6.                                 var newSearch = [];
  7.                                 for (var i = 0; i < search.length; i++) {
  8.                                         if (search[i].indexOf(LangParamName + "=") != 0)
  9.                                                 newSearch.push(search[i]);
  10.                                 }
  11.                                 newSearch.push(LangParamName + "=" + this.value);
  12.                                 search = "?" + newSearch.join("&");
  13.                         } else
  14.                                 search = "?" + LangParamName + "=" + this.value;
  15.                         /**方法一**/
  16. //                        window.location.href = window.location.origin + window.location.pathname + search + window.location.hash;
  17.                         /**方法一**/
  18.                        
  19.                         /**方法二**/
  20.                         var newUrl = window.location.origin + window.location.pathname + search + window.location.hash;
  21.             history.pushState(null,null,newUrl);
  22. //            alert(_this.getContext().getLanguage());
  23.             window.location.reload();
  24.             /**方法二**/
  25.                 });
复制代码




回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2021-7-29 18:36:58 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2021-7-30 13:44:46 | 显示全部楼层
本帖最后由 qweasdzxc 于 2021-8-2 17:44 编辑

修改后用下面代码可以在首页切换多语言了
  1. var _language = _this.getContext().getLanguage();
  2.                 $(this.getElementByXid("lang")).val(_language).on('change', function() {
  3.                         var newUrl = new justep.URL(window.location.href);
  4.                         newUrl.setParam(LangParamName,this.value);
  5.                         newUrl.setParam("bsessionid",_this.bsessionid);
  6.             window.location.href = newUrl.toString();
  7.                 });
复制代码

但是切换后,有两个问题:
1、在JAVA里获取登录语言时获取到都是第一次从登录页设置后的语言,首页切换的不起作用,我实在base.js的_doInit调用avtion,在后台获取语言的。应该如何修改后台获取的语言才是正确的?
  1. ContextHelper.getOperator().getLanguage()
复制代码
2、切换语言后,注销登录,返回登录页再重新登陆的话,首页不会重新加载相应人员信息,不会加载功能树,怎么处理?



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-26 16:22 , Processed in 0.065419 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表