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

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

 
阅读更多

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

 

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

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

    数据库设计国籍代码

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

    数据库课程设计中的国际化与本地化实现策略

    数据库的国际化和本地化是确保软件产品能够适应不同语言和文化环境的关键步骤。通过选择合适的字符集、处理日期和时间格式、管理...在数据库课程设计中,这些实践将帮助学生理解和掌握国际化数据库的设计和实现方法。

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

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

    英语学习助手数据库课程设计

    随着时代的发展,英语已成为国际交流中不可或缺的语言工具。掌握英语,不仅能为个人带来更多的机遇,也能为国家的发展注入新的活力。因此,学习英语成为当下社会的热潮。为满足广大英语学习者的需求,我们设计了一款...

    MySQL数据库设计.pdf

    从给定的文件信息中,我们可以提取并深入探讨多个关于MySQL数据库设计的重要知识点,包括数据库的基本概念、MySQL数据类型、MySQL运算符、SQL语句、数据库设计步骤以及如何使用PHP脚本来操作MySQL服务器。...

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

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

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

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

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

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

    struts数据库国际化

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

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

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

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

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

    mysql入职项目数据库设计

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

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

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

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

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics