关于bs程序,静态变量的国际化处理

软件让生活更美好 2017-09-19 02:16:29
我的BS项目中现在有一个类里边放的是一组static变量,用来做系统提示信息的。我想做国际化,但是这些信息在整个项目中有好几千个调用的地方,一个个改成查找资源文件不太现实,有没有什么办法可以不用修改调用的地方,直接就可以根据当前session中的语言直接获取对应的资源文件中的翻译呢?附截图
调用如下,主要就是调用的地方不想动,因为太多了,那些静态变量改掉也可以,甚至改成不是静态的都行,有没有什么解决的办法呢
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我引申一点再来总结一下设计开发背后模式,就是:一切技术架构要从前端需求出发,而不要从底层数据表、字段值出发。 尽量转变思路,从需求和前端的架构出发来设计各层系统,那么技术会更丰富、更实用。
  • 打赏
  • 举报
回复
原本,你这里的变量值里边存的就是关键 key 信息。现在你把它扔了,改为所谓的“查询资源文件返回结果”,此时你去查询资源文件又要重新定义一套 key 值,这其实就是你把问题想太多了、想复杂了。根本不是在这个 class 上面进行改造。
  • 打赏
  • 举报
回复
晕! 应该在界面相关绑定上改,而不是改什么变量值。变量值是key,也就是说你根据这个才知道去找什么翻译结果。例如假设你原来写绑定是[code=htmltext: Msg001][/code]那么你可以改为
un_text:Msg001
或者
un_text:Msg001, format:BW
或者
text:unText(Msg001)
或者
text: function (){ return unText(Msg001)}
等等,根据你的前端工具的能力和架构而定,但是基本的模式就是这样的,是在界面上根据 Msg001 变量的值(中文)找到对应的其它语言内容。所以变量的值不能变!
正怒月神 2017-09-19
  • 打赏
  • 举报
回复
用管道事件,或者过滤器,根据语言赋值。 http://blog.csdn.net/hanjun0612/article/details/78031763
一品梅 2017-09-19
  • 打赏
  • 举报
回复
引用 2 楼 qq_34102538 的回复:
这样不行的,相当于我还是要改每个调用这个程序的地方,因为是直接点不出来的
AppMessage[ms001]
  • 打赏
  • 举报
回复
这样不行的,相当于我还是要改每个调用这个程序的地方,因为是直接点不出来的
xuzuning 2017-09-19
  • 打赏
  • 举报
回复
dictionary

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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