动态内容国际化,数据库设计

简介:

一个系统同时可以支持多种文字,简单说,同一个网站,既有中文版,英文版,法文版......
那么这里就存在一个语言选择的问题,软件本身的语言选择就是我们耳熟能详的“国际化”,根据用户的区域,或者设置选择对应的语言。但是软件中有很多内容是靠用户维护进去的,比如网站首页的“公司新闻”,这样的“内容”要做到选择相应的语言显示就不是前面说的软件“国际化”可以做到的了。

 

根据各位兄弟的意见,我总结了一下,主要分两类解决方法:
1。 使用智能翻译。根据用户的设置,把内容翻译成对应的语言,即内容只需输入一次,如输入中文,当日文用户浏览的时候,显示对应日文内容;当英文用户浏览时,对应显示英文内容。

Google Translate API For PHP是一个基于Google Translate开发的翻译类,可以帮助PHP程序员实现多国文字的翻译。本类使用到了Google的AJAX Translate API和Snoopy类,以模拟HTTP请求的方式实现数据的翻译。

2。 为每个语种设计一套数据库,维护“内容”时,每种语言都维护进去,table_cn, table _en 
3。 设计一套适用多种语言的数据库。例如使用一个数据字典来定义每一种语言,然后在维护每一种语言进去,建立两张表,Language和Content,Language相当于一个数据字典,列出系统用到的所有语种。Content表就是维护的内容——也就是我们想解决的多语种显示的东西。两张表表样如下:

Language
  id----|---langeuage-----|---description----
  1-----|---------zh--------|------中文---------
  2-----|---------en--------|------英文---------
  3-----|---------fr---------|------法文---------

 

 

Content
id----|---content----------------|---languageId------
1-----|----你好!----------------|------1------------
2-----|----How are you!---------|------2------------
3-----|----fa wen bu hui---------|------3------------
这样Content表中就保存了需要语种的所有的语言信息(当然要维护进去),然后再根据用户的需要,对应Language表选择出对应语种的Content内容。

 

开启curl, charset=gb2312

Java代码   收藏代码
  1. <?php  
  2. header("Content-Type:text/html; charset=gb2312");  
  3. class Google_API_translator{  
  4.     public $opts = array("text" => """language_pair" => "en|it");  
  5.     public $out = "";  
  6.     function setOpts($opts) {  
  7.         if($opts["text"] != "") $this->opts["text"] = $opts["text"];  
  8.         if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];  
  9.     }  
  10.   
  11.     function translate() {  
  12.         $this->out = "";  
  13.         $google_translator_data ='';  
  14.         $google_translator_url = "http://translate.google.com/translate_t?langpair=".($this->opts["language_pair"])."&";  
  15.         $google_translator_data .= "text=".($this->opts["text"]);  
  16.   
  17.         $gphtml = $this->postPage(array("url" => $google_translator_url, "data" => $google_translator_data));  
  18.         $out = substr($gphtml, strpos($gphtml, "<span id=result_box class=\"short_text\">"));  
  19.         $out = substr($out, 29);  
  20.         $out = substr($out, 0, strpos($out, "</span>"));  
  21.         $this->out = str_replace("ort_text\">","",strip_tags(utf8_encode($out)));  
  22.         return ($this->out);  
  23.     }  
  24.   
  25.     function postPage($opts) {  
  26.         $html ='';  
  27.         if($opts["url"] != ""&&$opts["data"]!= "") {  
  28.             $ch = curl_init($opts["url"]);  
  29.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  30.             curl_setopt($ch, CURLOPT_HEADER, 1);  
  31.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
  32.             curl_setopt($ch, CURLOPT_TIMEOUT, 15);  
  33.             curl_setopt($ch, CURLOPT_POST, 1);  
  34.             curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);  
  35.             $html = curl_exec($ch);  
  36.             if(curl_errno($ch)) $html = "";  
  37.             curl_close ($ch);  
  38.         }  
  39.         return $html;  
  40.     }  
  41. }  
  42. $g = new Google_API_translator();  
  43. $g->setOpts(array("text" => "这是一个测试""language_pair" => "zh-CN|en"));  
  44. $g->translate();  
  45. print_r($g->out);  
  46. ?>  
相关文章
|
5天前
|
存储 自然语言处理
平台设计-代码字段与标签
在平台里描述对象的属性可以使用代码和标签
|
3月前
【突破常规:让函数规范成为注目的亮点】(下)
【突破常规:让函数规范成为注目的亮点】
|
3月前
【突破常规:让函数规范成为注目的亮点】(上)
【突破常规:让函数规范成为注目的亮点】
|
7月前
|
JSON 前端开发 Shell
重点内容回顾-DRF
重点内容回顾-DRF
|
前端开发 开发工具 开发者
挑战21天手写前端框架 day11 应用元数据与约定式路由
挑战21天手写前端框架 day11 应用元数据与约定式路由
117 0
|
Java API
JavaWeb开发——软件国际化(动态元素国际化)
JavaWeb开发——软件国际化(动态元素国际化)
189 0
|
存储 自然语言处理 数据可视化
云巧动态表单的国际化方案解密
介绍云巧动态表单以及解决的问题和价值,解密云巧动态表单的国际化能力和整体方案
345 0
|
前端开发 网络架构
前端工作总结151-动态路由和表结构无关
前端工作总结151-动态路由和表结构无关
73 0
|
算法 数据库
【自然框架】元数据的数据库结构的详细说明和示例(一):项目描述部分
自然框架在线演示:  http://pthuanyu.com/   【自然框架】PowerDesigner 格式的元数据的表结构   自然框架的源码、Demo、数据库、说明文档的下载,还是老地方:自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.
933 0
移动端UI设计规范模板参考以及设计规范的好处
2018也快要过完了(-_-),我们的移动端的UI设计规范也层出不穷。很多APP设计师也要在年底给公司或者是团队做一个总结。那么一个像样的APP ui设计规范也是很有必要的作品回顾。
1841 0