`
hudeyong926
  • 浏览: 2028592 次
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多

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

 

根据各位兄弟的意见,我总结了一下,主要分两类解决方法:
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

<?php
header("Content-Type:text/html; charset=gb2312");
class Google_API_translator{
    public $opts = array("text" => "", "language_pair" => "en|it");
    public $out = "";
    function setOpts($opts) {
        if($opts["text"] != "") $this->opts["text"] = $opts["text"];
        if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
    }

    function translate() {
        $this->out = "";
		$google_translator_data ='';
        $google_translator_url = "http://translate.google.com/translate_t?langpair=".($this->opts["language_pair"])."&";
        $google_translator_data .= "text=".($this->opts["text"]);

        $gphtml = $this->postPage(array("url" => $google_translator_url, "data" => $google_translator_data));
        $out = substr($gphtml, strpos($gphtml, "<span id=result_box class=\"short_text\">"));
        $out = substr($out, 29);
        $out = substr($out, 0, strpos($out, "</span>"));
        $this->out = str_replace("ort_text\">","",strip_tags(utf8_encode($out)));
        return ($this->out);
    }

    function postPage($opts) {
        $html ='';
		if($opts["url"] != ""&&$opts["data"]!= "") {
			$ch = curl_init($opts["url"]);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_HEADER, 1);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
			curl_setopt($ch, CURLOPT_TIMEOUT, 15);
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
			$html = curl_exec($ch);
            if(curl_errno($ch)) $html = "";
			curl_close ($ch);
        }
        return $html;
    }
}
$g = new Google_API_translator();
$g->setOpts(array("text" => "这是一个测试", "language_pair" => "zh-CN|en"));
$g->translate();
print_r($g->out);
?>
  • 大小: 20.7 KB
分享到:
评论

相关推荐

    国际化与本地化:数据库设计中的多语言支持策略

    本文将详细探讨如何在数据库设计中处理国际化和本地化问题,并提供一些实用的代码示例。 国际化和本地化是数据库设计中的重要考虑因素,它们确保了数据库应用能够适应全球市场。通过采用适当的字符编码、统一的存储...

    数据库设计规范.pdf

    此外,自定义代号应采用英文名称缩写,以确保国际化和专业性。 三、程序编码规范 程序编码规范则关注数据库程序代码的可读性和一致性,包括变量命名规则、代码排版规则、代码注释规则等。代码注释是提高代码可读性...

    数据库设计国籍代码

    数据库设计中的国籍代码是一种标准化的编码方式,用于唯一标识世界上各个国家和地区的代码系统。通常,这些代码在数据库中用来区分和管理与国籍有关的数据,以确保数据的一致性和准确性。在给定文件的描述中提到了...

    国际标准的数据库设计说明书框架

    《国际标准的数据库设计说明书框架》是一份详细指导如何按照国际规范进行数据库设计的重要文档,旨在确保数据库的设计过程规范化、标准化,从而提高数据管理的效率和质量。这份文档的编写目的是为数据库设计师提供一...

    新闻发布系统的数据库设计

    #### 三、新闻发布系统数据库设计的具体内容 1. **新闻表设计**: - **新闻ID**:主键,用于唯一标识每一条新闻记录。 - **标题**:新闻标题,长度通常限制在一定范围内。 - **内容**:新闻正文内容,通常采用...

    国际化代码数据字典表,excel表

    国际化代码数据字典表,excel表,包含id,pid,name三个字段,已建立好id与pid对应关系,可直接导入数据库作为数据字典表使用

    struts数据库国际化

    ### Struts数据库国际化知识点 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)架构实现,它被广泛应用于Java Web应用开发中。Struts框架能够帮助开发者构建出结构清晰、易于维护的应用...

    世界国家城市级联数据库mySql,包含中日英三种语言切换,中国精确到省市县,国外精确到城市,适合国际化项目

    本文将详细介绍一个由腾讯官方提供的,支持中日英三种语言切换的MySQL数据库,其中国内数据精确到省市县,国外数据精确到城市,为国际化项目的实施提供了强大支持。 首先,该数据库的核心特性是其多语言支持。中文...

    数据库管理系统设计的背景说明

    - **性能瓶颈**:分析系统性能的瓶颈所在,通过优化数据库设计或增加硬件资源来提升性能。 - **可扩展性不足**:评估系统的可扩展性,确保未来业务增长时能够顺利扩展。 #### 六、需求与期望 **6.1 领导者与管理...

    汽车销售系统java应用程序+SQL2000数据库设计完整版

    在SQL2000数据库设计方面,主要涵盖以下内容: 1. **数据库概念设计**:首先,需要理解需求,确定实体和它们之间的关系,创建ER(实体关系)图,这是设计数据库的第一步。 2. **逻辑设计**:将ER图转化为关系模型...

    mysql入职项目数据库设计

    通过上述分析,我们了解到在人事管理系统中,MySQL数据库设计的关键在于合理选择字段类型、正确设置主键和唯一键、使用注释提高代码可读性、确保数据安全性,以及选择合适的字符集以支持国际化需求。这些原则不仅...

    国内神通数据库工具,国产化开发

    神通数据库工具是一款针对神通数据库(SuperSQL)设计的管理与开发软件,主要服务于我国的...通过掌握这款工具的使用,无论是数据库管理员还是开发人员,都能更好地适应国产数据库环境,推动国产化数据库技术的发展。

    数据库管理通用平台设计方案.pdf

    数据库管理通用平台设计方案旨在构建一个强大、灵活且适应性强的数据库管理平台,它能够统一管理异构数据库,简化开发流程,增强数据安全性,支持业务系统的动态扩展,并提供全面的管理工具,以满足企业日益增长的...

    世界各国地区国际化SQL脚本.zip

    - 国际化(i18n)的概念和在数据库设计中的应用 - SQL脚本编写,用于创建和管理包含全球化信息的数据库 - 使用级联下拉菜单进行用户输入的优化设计 - 多语言支持的数据库结构设计,如`sys_lang.sql`中的语言设置 - ...

    IETM数据库模型设计方法研究

    IETM数据库模型设计方法研究中,采用统一建模语言(UML)来建立IETM对象模型,确保了模型的标准化和规范化。在设计过程中,需要参照一定的标准,如S1000D标准。S1000D是一个国际性的标准,用于开发和发布交互式电子...

    人体尺寸数据库的界面设计

    在数据库设计方法上,目前有多种工具和技术,如Access、SQL Server、Oracle、Sybase等。不同工具和方法具有不同的特点和适用场景,选择合适的工具是数据库设计的关键之一。 7. 数据库管理系统(DBMS)的主要功能: ...

    全世界地区数据库和中国地区数据库下载

    数据库的结构设计至关重要,因为它直接影响到数据的查询效率和准确性。常见的数据模型有层次模型、关系模型和网络模型。在地区数据库中,关系模型最为常见,通过建立区域之间的关联关系,实现多级行政区域的查询和...

    gis数据库设计1.pdf

    从提供的文件内容来看,该文档可能是一份关于GIS数据库设计的资料,但由于提供的内容并不连续,且包含大量不完整的字符串和数字,无法直接构成连贯的文本。尽管如此,我们仍然可以从这些片段中提炼出一些可能相关的...

Global site tag (gtag.js) - Google Analytics