快速指南

本快速指南将指导您如何使用并创建,从而达到掌握及精通教程。

目录

示例

包括:提供了不同的,以便您选择并使用。

示例 1:用户自定义选择 & 目录式

首次运行后转向 'choose-country-region' 目录,选择后转向匹配的语言目录,带记忆功能。
源码:latest.zip -> /example/01-directory

示例 2:内部加载文件 & 嵌入式

自动搜索匹配目录下的文件,没有搜索到则选择默认调用文件。
源码:latest.zip -> /example/02-embed

1. 在 themes 下创建匹配的语言文件。例如:

en-us.php

Embedded en-us.php files;

zh-cn.php

嵌入 zh-cn.php 文件;

请参阅 latest.zip -> /example/02-embed/themes/homepage 目录下的文件。

2. 创建新页面!

     使用模板 02-embed/templets.php 文件,用户自行更改为新文件名(示例为:newpage.php)。

$lp = new lp();

$lp->masterCatalogue = "themes/{newpage}";

$lp->run();

     创建目录及匹配的语言

进入 02-embed/themes/newpage,创建目录必须与 {newpage} 变量名一致。

     目录结构

02-embed/newpage.php
02-embed/themes/newpage

示例 3:读取配置文件 & 加载式

自动搜索匹配的语言文件并加载后调用,包括:字串符、参数等。
源码:latest.zip -> /example/03-load

1. 创建新页面!

     使用模板 03-load/templets.php 文件,用户自行更改为新文件名(示例为:newpage.php)。

$lp = new lp();

$lp->masterCatalogue = 'languages/{newpage}';
$lp->userThemes      = '{newpage}';

$lp->run();

请参阅 latest.zip -> /example/03-load/template.php

     创建主题皮肤

进入 03-load/themes 并创建 {newpage}.php

     创建可匹配的语言模板。例如:

en-us.php

$lpvar = array (
	'lang_available'   => 'Available Languages:',
);

zh-cn.php

$lpvar = array (
	'lang_available'   => '可用语言:',
);

请参阅 latest.zip -> /example/03-load/languages/ 目录下的 en-us.php & zh-cn.php 文件。

     目录结构

03-load/{newpage}.php
03-load/languages/{newpage}
03-load/themes/{newpage}

2. Html 与 PHP 语言混排,例如:

<?php echo $lpvar['lang_available']; ?>

示例 4:保存设置 & 配置式

该示例与动态读写 Cookies 不同;将配置保存到 xml 或 cfg,通过读取来选择可用的首选语言包,不接受浏览器默认语言来优先选择。
源码:latest.zip -> /example/04-settings

1. 创建一个可用的全局参数。例如:

XML
<?xml version="1.0" encoding="UTF-8" ?>
<setting>
	<languages>
		en-us
	</languages>
</setting>

请参阅 latest.zip -> /example/04-settings/lp.xml 文件。

lp.cfg
Global_DFLT_Lang=en-us

请参阅 latest.zip -> /example/04-settings/lp.cfg 文件。

2. 创建新页面!

     使用模板 04-settings/templets.php 文件,用户自行更改为新文件名(示例为:newpage.php)。

$lp = new lp();

$lp->masterCatalogue = "themes/{newpage}";

$lp->run();

     创建目录及匹配的语言

进入 04-settings/themes/newpage,创建目录必须与 {newpage} 变量名一致。

     目录结构

04-settings/newpage.php
04-settings/themes/newpage

示例 5:数据库 & 数组式

通过 PDO 方式连接 SQL 数据库,支持 MySQL、SQLite。并使用数组(Array)功能列出所有可用的数据。
源码:latest.zip -> /example/05-database

1. 创建数据库全局配置文件。

     使用模板 latest.zip -> /example/05-database/lp-config.sample.php 文件,更改为新文件名:lp-config.php

2. 更改参数与你的服务器配置相同。

define('Database_Mode', '');

define('DB_HOST',       'localhost');

define('DB_NAME',       'lang-php');

define('DB_USER',       'username');

define('DB_PWD',        'password');

define('DB_PREFIX',     'lp_');

define('DB_CHARSET',    'utf8mb4');

3. 动态页连接代码。

include_once('lp-load.php');

$page_team = 'homepage';

$current_lng = $db->select(DB_PREFIX."translate", "section = '$page_team'");
$lpna = $db->arraymodify($current_lng, $lng);

请参阅 latest.zip -> /example/05-database/index.php 文件。

     数组调用方法。

<?php echo $lpna['lang_use_title1']['lp_variable']; ?>

      使用 print_r 命令输出所有数组。

print_r($current_page);
print_r($lpna);

4. 创建新页面!

使用模板 latest.zip -> /example/05-database/templets.php 文件,用户自行更改为新文件名(示例为:newpage.php)。

修改当前页面名称,以便索引。
$page_team = 'newpage';

示例 6:独立版 & 便携式

利用 array() 语言结构建一个数组,通过函数来完成所有操作;相对其它版本,便携版是由一个文件来完成。
源码:latest.zip -> /example/06-portable

1. 预先设置可用的语言包,通过查询条件来完成。

$global_lp_all = array('en-us', 'zh-cn', 'zh-tw', 'ja-jp', 'ko-kr', 'ru-ru');

2. 创建数组。

$lpna = array (
    'template' => array (
        'en-us' => 'template',
        'zh-cn' => '模板',
        'zh-tw' => '模板',
        'ja-jp' => '模板',
        'ko-kr' => '模板',
        'ru-ru' => '模板'),
    'end' => array (
        'en-us' => 'end',
        'zh-cn' => 'end',
        'zh-tw' => 'end',
        'ja-jp' => 'end',
        'ko-kr' => 'end',
        'ru-ru' => 'end')
);

3. 数组调用方法。

<?php echo $lpna['lang_page_title'][$lng]; ?>

使用时请注意数组写法,数组演示仅列出部分,请查阅源代码:latest.zip -> /example/06-portable/index.php

      使用 print_r 命令输出所有数组。

print_r($lpna);

4. 资源转换。

在使用便携版过程中,例如:图片、ICO,需要转换成 base64 编码。javascript、CSS 等资源,用嵌入代码来完成,缩短可以使用精简工具。

5. 在线转换网站推荐

其它补充

补充,是指使用中隐藏用法及其它功能等。

如何使用动态 URL 功能

将所有请求提交给 index.php 处理,包括 Nginx、Apache、IIS 等。

  1、Nginx 配置示例:

location / {
	try_files $uri $uri/ /index.php?$uri&$args;
}

  2、Apache,在网站主目录下创建 .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

  3、打开 index.php 后,启用 URL 功能。

$lp->isDynamic = true;

使用 Javascript (JS) 切换语言并隐藏参数

什么叫通过 Javascript (JS) 来切换语言并隐藏参数?目的就是去掉后缀。
使用模式 1 前:https://lang-php.com/?lang=zh-cn;
使用模式 2 后:https://lang-php.com,后缀没有了。

1. HTML 模板。

<html>
<headl>
	<script src="assets/js/lp.js"></script>
</headl>
<body>
	<a href="?lang=en-us">切换</a>
</body>
</html>

源码:latest.zip -> /example/*/assets/js/lp.js

跳转到指定的域名

什么是跳转到指定的域名?部分示例都是通过读取并匹配目录下的文件,想实现跳转到指定的域名,请参考以下代码:

添加代码到需要跳转的页面!

/* sample 1

header("Location: http://us.lang-php.com");

/* sample 2

public $globalDomain = 'https://lang-php.com/';

function loading($lang)
{
	header("Location:" . $this->globalDomain . $lang);
}

/* sample 3

function loading($lang)
	switch ($lang) {
		case 'zh-cn': header("Location: https://cn.lang-php.com"); break;
		case 'zh-tw': header("Location: https://tw.lang-php.com"); break;
		case 'en-us': header("Location: https://us.lang-php.com"); break;
		case 'ru-ru': header("Location: https://ru.lang-php.com"); break;
		case 'ja-jp': header("Location: https://jp.lang-php.com"); break;
		case 'ko-kr': header("Location: https://kr.lang-php.com"); break;
		default: header("Location: https://global.lang-php.com"); break;
	}
}