提示语词条在英文环境下显示中文解决方案
解决思路:
1.先在多语言平台查看是否翻译
2.若有翻译,查看是否进入语言包
3.若有进入语言包,再查找具体原因,代码程序,进程问题等等
操作方法:
一般问题会出在程序提示语和界面词条
1.程序提示语
1)先在多语言平台查看是否翻译
先在对应领域代码找到词条编号,例如:this.View.ShowErrMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("未选择要撤消拆分的资产卡片", "003268000006106", BOS.Resource.SubSystemType.FIN));
可以根据汉字,或者编号查找
然后登录多语言平台,搜索该词条是否翻译
http://172.17.xx.xx/k3cloud/silverlight/ML.aspx
kingdee 用户名 密码
若没翻译,提bug,并云之家立即通知国际化平台部杨媛媛\罗娟去翻译
若有翻译,执行第二步
2)若有翻译,看是否进入语言包
语言包地址:\\172.17.32.30\PkgWH\History\K3Cloud_V7_ML,找到最新的语言包去解压(F2解压),找到对应的领域的resource文件,拖到一个工具上上打开,去查找
F2解压,或者去svn上看,解压之后里面的内容就在D:\svn\k3cloud_std\branches\k3cloud_std_v7.0_bl\K3MultilangTrans\1.0\1033
我们打包的时候就是把D:\svn\k3cloud_std\branches\k3cloud_std_v7.0_bl\K3MultilangTrans\1.0\1033里面的这些东西塞到包里的
若查不到,就是没进入语言包,那就是语言包的问题
若有查到,执行第三步
3)如词条进入语言包,就说明语言包没问题,剩下的就是业务代码逻辑问题,就要查找为什么显示中文了
一般有代码程序问题,或者线程进程问题,得调试代码了
调试方法:要拉取bos代码加载工程:Kingdee.BOS.DataEntity,工程所在路径:http://192.168.16.99/svn/k3cloud_bos/branches/k3cloud_bos_v7.0_bl/BOS/Common/Src/Kingdee.BOS.DataEntity
Kingdee.BOS.Resource.ResManager.LoadKDString("表体为空!","002073030022258",Kingdee.BOS.Resource.SubSystemType.BOS)
线程问题:
或者以下方式调用
Task.Factory.StartNew(() =>
{
CultureInfoUtils.SetCurrentLanguage(this.Context);
DoYourAction();
};
或者以下方式调用
Var task = new Task(()=>{
CultureInfoUtils.SetCurrentLanguage(this.Context);
DoYourAction();
}
或者Action.BeginInvoke的方式调用异步线程都需要设置线程环境!
…...
总而言之, 必须在线程函数中调用CultureInfoUtils.SetCurrentLanguage(ctx)设置当前线程上下文语言环境!
如果在代码里开启了新的线程,在新线程里获取翻译的字符串有可能会有问题,需要在开启线程的时候(MainWorker.QuequeTask),加一句CultureInfoUtils.SetCurrentLanguage(this.Cotext);
提示语词条在英文环境下显示中文解决方案
本文2024-09-16 19:09:23发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26765.html