zoukankan      html  css  js  c++  java
  • 一种特殊的多语言解决方案

    一直以来多语言问题都是个让人头疼的问题,不是这个问题有多难,而是很繁琐,而我们目前的这个项目有点特殊,我希望最大限度的化繁为简,以下是我解决这个问题的方案。
    我们的项目有这样两个前提:
    1、要支持多语言但最多三种语言,一般情况下就两种语言,所以并没有随时切换语言的要求。
    2、我们希望有一种可以初期不用管语言问题,之后统一翻译的方案
    基于这么两点,我们提出了这样的方案:
    1、初期写程序时不用关心多语言的翻译工作,只要将所有使用到中文的地方都用{}扩上
    2、在数据库中Chinese会设置为唯一约束
    3、所有的翻译工作会在BasePage中的Render方法中作
    4、所有的页面会继承BasePage
    5、翻译时会根据当前的语言设置构建以language表中Chinese做key,相应的语言为value的字典,然后查找需要翻译的字符串是不是在字典中,如果不在就生成这一行。

     
    数据库设计四个字段

    ID,Chinese,English,Other

    BasePage源码

    BasePage


    这样设计的
    优点
    1、初期写程序时不用关心多语言的翻译工作,只要将所有使用到中文的地方都用{}扩上
    2、省去了大量命名相应文字的工作
    3、直接用中文标示要显示到页面的文字,容易理解

    缺点
    1、如果中文是一样的翻译,而其他语言翻译却不一样时不好解决,但这种情况似乎不常见


    源码下载

  • 相关阅读:
    MySQL状态变量Aborted_connects与Aborted_clients浅析
    ERROR 1044 (42000): Access denied for user 'root'@'localhost'
    ERROR 3009 (HY000): Column count of mysql.user is wrong…..
    服务器CPU繁忙或内存压力引起网络掉包的浅析与总结
    ORACLE如何找到引起账号锁定的IP的一点思考与总结
    记一次坑爹的ORA-01152&ORA-01110错误
    RMAN restore fails with ORA-01180: can not create datafile 1
    SQL Server的优化器会缓存标量子查询结果集吗
    Snapshot origin volumes can be resized only while inactive: try lvchange -an
    MySQL InnoDB下关于MVCC的一个问题的分析
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1378599.html
Copyright © 2011-2022 走看看