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、如果中文是一样的翻译,而其他语言翻译却不一样时不好解决,但这种情况似乎不常见


    源码下载

  • 相关阅读:
    jmeter的插件安装
    linux下性能监控工具nmon的使用
    kafka如何保证不重复消费又不丢失数据_Kafka写入的数据如何保证不丢失?
    Goroutine和Panic
    go 并发有趣现象和要避开的坑
    Go语言宕机恢复(recover)——防止程序崩溃
    invalid character 'è' looking for beginning of value
    golang实现RPC的几种方式
    channl与select
    我要在栈上。不,你应该在堆上
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1378599.html
Copyright © 2011-2022 走看看