编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN
使用PHP和MySQL创建一个可供不同语言的人使用的Web网站。关键点为使所有的字符串、图标和图形外部化,修改格式化函数(日期、货币、数字等)的显示。
1.字符集:
字符集,通常根据一种语言中用来定义一个字符所需的字节的数目分为单字节字符集和多字节字符集。单字节字符集最多有256个字符,包括ASCII字符的完整集、重音字符和其他所需的格式字符。多字节字符集拥有多于256个字符,包括所有的单字节字符作为一个子集。
为了以原本的语言正确地解释和显示Web页面中的文本,需要告诉Web浏览器使用的字符集,这通过发送相应的标头来实现。涉及的标头为Content-type和Content-language标头,对应于HTML文档中的META标记。示例:
header("Content-Type: text/html; charset=ISO-8859-1");
header("Content-Language: en");
相应的META标记为:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="content-language" content='en“>
2.创建一个本地化页面结构:
使用PHP使用户可以选择一种目标语言并随后接受相应的文本。示例:
<?php
if ((!isset($_SESSION["lang"]))||(!isset($_GET["lang"]))) {
$_SESSION["lang"]="en";
$currLang="en";
} else {
$currLang=$_GET["lang"];
$_SESSION["lang"]=$currLang;
}
switch ($currLang) {
case "en":
define("CHARSET", "ISO-8859-1");
define("LANGCODE", "en");
break;
case "de":
define("CHARSET", "ISO-8859-1");
define("LANGCODE", "de");
break;
case "ja":
define("CHARSET", "UTF-8");
define("LANGCODE", "ja");
break;
default:
define("CHARSET", "ISO-8859-1");
define("LANGCODE", "en");
break;
}
header("Content-Type: text/html; charset=".CHARSET);
header("Content-Language: ".LANGCODE);
?>
上述代码给出了发送本地相关标头信息的主文件。这个文件保存为define_lang.php并放置在Web网站根目录下,这个文件定义了CHARSET好LANGCODE常量,分别对应本地的字符集和语言代码。显示脚本时,用这些常量创建关于字符集和语言代码的META标记
程序还需要一个函数,存储将要供显示脚本使用的外部化字符串:
<?php
function defineString() {
switch ($_SESSION["lang"]) {
case "en":
define("WELCOME_TXT", "Welcome!");
define("CHOOSE_TXT", "Choose Language");
break;
case "de":
define("WELCOME_TXT", "Willkommen!");
define("CHOOSE_TXT", "Sprache auswahlen");
break;
case "jp":
define("WELCOME_TXT", "[unprintable characters]");
define("CHOOSE_TXT", "[unprintable characters]");
break;
default:
define("WELCOME_TXT", "Welcome!");
define("CHOOSE_TXT", "Choose Language");
break;
}
}
?>
示例中定义了2个常量,用于显示字符串。为了避免结构复杂,常量的定义在另外的函数中。
外部化的PHP主文件为:
<?php
session_start() ;
include("define_lang.php");
include("lang_strings.php");
defineString();
?>
<html>
<head>
<title><?php echo WELCOME_TXT; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />
<meta http-equiv="Content-Language" content="<?php echo LANGCODE; ?>" />
<body>
<h1 align="center"><?php echo WELCOME_TXT; ?></h1>
<p align="center"><strong><?php echo CHOOSE_TXT; ?></strong><br /><br />
<a href="<?php echo $_SERVER["PHP_SELF"]."?lang=en"; ?>">
<img src="en_flag.gif" border="0" /></a>
<a href="<?php echo $_SERVER["PHP_SELF"]."?lang=de"; ?>">
<img src="de_flag.gif" border="0" /></a>
<a href="<?php echo $_SERVER["PHP_SELF"]."?lang=ja"; ?>">
<img src="ja_flag.gif" border="0" /></a>
</p>
</body>
</html>
页面中显示了不同的国旗,点击其中一个,本地设置将变为新选择的本地,所用的字符串将会是新的本地对应的字符串。这些链接包含了lang变量,该变量作为$_GET["lang"]传递给脚本。