示例
包括:用户自定义选择目录式、内部加载文件嵌入式、读取配置文件加载式。
示例 1:用户自定义选择 & 目录式
首次运行后转向 Worldwide 目录,选择后转向匹配的语言目录,带记忆功能。
- 1. 主索引脚本。
<?php
includeonce_DIR . '/routes/lp-class.php';
/ 初始化应用程序 */
$app = new lp();
/ 创建和配置应用程序 /
$app->useURL = true;
/** 运行应用程序 /
$app->run();
?>
- 源码:latest.zip -> /01-directory/index.php
示例 2:内部加载文件 & 嵌入式
自动搜索匹配目录下的文件,没有搜索到则选择默认调用文件。
- 1. 主索引脚本。
-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 创建和配置应用程序 /
$app->useURL = true;/* 运行应用程序 /
$app->run();
?>
源码:latest.zip -> /02-embed/index.php- 2. 在 routes 下创建匹配的语言文件。例如:
-
en-us.php
<html>
<body>
Embedded en-us.php files;
</body>
</html>zh-cn.php
<html>
<body>
嵌入 zh-cn.php 文件;
</body>
</html>
请参阅 latest.zip -> /02-embed/routes 目录下的文件。- 3. 创建新页面!
使用模板 02-embed/templet.php 文件,用户自行更改为新文件名(示例为:newpage.php)。-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 创建和配置应用程序 /
$app->masterCatalogue = "routes/{newpage}";/* 运行应用程序 /
$app->run();
?>
创建目录及匹配的语言-
进入 02-embed/module/newpage,创建目录必须与 {newpage} 变量名一致。
创建主题皮肤-
进入 02-embed/themes 并创建 newpage.php 文件。
访问模式-
02-embed/newpage.php
02-embed/?load=newpage
示例 3:读取配置文件 & 加载式
自动搜索匹配的语言文件并加载后调用,包括:字串符、参数等。
- 1. 加载脚本(index.php)。
-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 创建和配置应用程序 /
$app->useURL = true;/* 运行应用程序 /
$app->run();
?>
源码:latest.zip -> /03-load/index.php- 2. Html 与 PHP 语言混排,例如:
-
<?php echo $lpvar['lang_available']; ?>
请参阅 latest.zip -> /03-load/languages/ 目录下的 en-us.php & zh-cn.php 文件。- 3. 创建可匹配的语言模板。例如:
-
en-us.php
<?php
$lpvar = array (
'lang_available' => 'Available Languages:',
);
?>zh-cn.php
<?php
$lpvar = array (
'lang_available' => '可用语言:',
);
?>
请参阅 latest.zip -> /03-load/languages/ 目录下的 en-us.php, zh-cn.php 文件。- 4. 创建新页面!
使用模板 03-load/templet.php 文件,用户自行更改为新文件名(示例为:newpage.php)。-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 创建和配置应用程序 /
$app->masterCatalogue = 'languages/{newpage}';
$app->userThemes = '{newpage}';/* 运行应用程序 /
$app->run();
?>
创建目录及匹配的语言-
进入 03-load/module/newpage,创建目录必须与 {newpage} 变量名一致。
访问模式-
03-load/newpage.php
03-load/?load=newpage
示例 4:保存设置 & 配置式
该示例与动态读写 Cookies 不同;将配置保存到 xml 或 cfg,通过读取来选择可用的首选语言包,不接受浏览器默认语言来优先选择。
- 1. 主索引脚本。
-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 运行应用程序 /
$app->run();
?>
源码:latest.zip -> /04-settings/index.php- 2. 创建一个可用的全局参数。例如:
-
<?php
$Global_DFLT_Lang="zh-CN";
?>
请参阅 latest.zip -> /04-settings/lang-cfg-sample.php 文件。- 3. 创建新页面!
使用模板 04-settings/templet.php 文件,用户自行更改为新文件名(示例为:newpage.php)。-
<?php
includeonce_DIR . '/routes/lp-class.php';/* 初始化应用程序 /
$app = new lp();/* 创建和配置应用程序 /
$app->masterCatalogue = "routes/{newpage}";/* 运行应用程序 /
$app->run();
?>
创建目录及匹配的语言-
进入 04-settings/module/newpage,创建目录必须与 {newpage} 变量名一致。
示例 5:数据库 & 数组式
通过 PDO 方式连接 SQL 数据库,支持 MySQL、SQLite。并使用数组(Array)功能列出所有可用的数据。
- 1. lp-load 脚本。
-
<?php
require_once('lp-load.php');/* Browser session /
if (!session_id()) session_start();
header('Cache-control: private');$db = new db();
if(isSet($_GET['lang'])) {
$lang = strtolower($_GET['lang']);/** Cookie: Setting, Register */
$_SESSION['lang'] = $lang;
$_COOKIE["lang"] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30), '/');
$current_lng = $db->select(DB_PREFIX."language", "code = '$lang'");
if ($current_lng) {
$_COOKIE["lang"] = $lang;
$lng = $lang;
} else {
$lng = "en-us";
}
} else if(isSet($_COOKIE['lang'])) {
$lang = $_COOKIE["lang"];
$current_lng = $db->select(DB_PREFIX."language", "code = '$lang'");
if ($current_lng) {
$_COOKIE["lang"] = $lang;
$lng = $lang;
} else {
$lng = "en-us";
}
} else {
preg_match('/^([a-z-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = strtolower($matches[1]);
$_COOKIE["lang"] = $lang;
setcookie("lang", $lang, time() + (3600 24 30), '/');$current_lng = $db->select(DB_PREFIX."language", "code = '$lang'");
if ($current_lng) {
$_COOKIE["lang"] = $lang;
$lng = $lang;
} else {
$lng = "en-us";
}
}
?>
源码:latest.zip -> /05-database/lp-load.php- 2. lp-config 配置。
-
<?php
/ SQL 连接模式 */
define('Database_Mode', 'mysql');
/ 可接受值: mysql , sqlite *//* MySQL 主机 /
define('DB_HOST', 'localhost');/* MySQL 数据库名称 /
define('DB_NAME', 'lang-php');/* MySQL 用户 /
define('DB_USER', 'root');/* MySQL 密码 /
define('DB_PWD', '');/* 数据库前缀 /
define('DBPREFIX', 'lp');/* 数据库编码 /
define('DB_CHARSET', 'utf8');
?>
源码:latest.zip -> /05-database/lp-config.php- 3. 当前页面连接字串。
-
<?php
require_once('lp-load.php');/* 设置当前页面变量 /
$page_team = 'homepage';/* SQL 连接字串符 /
$current_lng = $db->select(DB_PREFIX."translate", "section = '$page_team'");
$lpna = $db->arraymodify($current_lng, $lng);
?>
请参阅 latest.zip -> /05-database/index.php 文件。- 数组调用方法。
-
<?php echo $lpna['lang_use_title1']['lp_variable']; ?>
- 使用 print_r 命令输出所有数组。
-
<?php print_r($lpna); ?>
- 4. 创建新页面!
使用模板 05-database/templet.php 文件,用户自行更改为新文件名(示例为:newpage.php)。-
修改当前页面名称,以便索引。
/* Main Folder /
$page_team = 'newpage';
示例 6:独立版 & 便携式
利用 array() 语言结构建一个数组,通过函数来完成所有操作;相对其它版本,便携版是由一个文件来完成。
- 1. 便携式主脚本(index.php)。
-
<?php
/* 添加并设置可用的语言包 /
$global_lp_all = array('en-us', 'zh-cn', 'zh-tw', 'de-de', 'ja-jp', 'ko-kr', 'ru-ru');11/* 浏览器 session /
if (!session_id()) session_start();
header('Cache-control: private');if(isSet($_GET['lang'])) {
$lang = strtolower($_GET['lang']);/** Cookie: Setting, Register */
$_SESSION['lang'] = $lang;
$_COOKIE["lang"] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30), '/');
if (in_array($lang, $global_lp_all)) {
$_COOKIE["lang"] = $lang;
$_SESSION['lang'] = $lang;
$lng = $lang;
}
} else if(isSet($_COOKIE['lang'])) {
if (in_array($_COOKIE['lang'], $global_lp_all)) {
$lng = $_COOKIE['lang'];
} else {
$lng = 'en-us';
}
} else {
preg_match('/^([a-z-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = strtolower($matches[1]);
setcookie("lang", $lang, time() + (3600 24 30), '/');
$_COOKIE["lang"] = $lang;if (in_array($lang, $global_lp_all)) {
$_COOKIE["lang"] = $lang;
$_SESSION['lang'] = $lang;
$lng = $lang;
}
}
$lpna = array (
'lang_page_title' => array (
'en-us' => 'United States - English',
'zh-cn' => '简体中文 - 中国')
);
?>
使用时请注意数组写法,数组演示仅列出部分,请查阅源代码:latest.zip -> /06-portable/index.php- 2. 预先设置可用的语言包,通过查询条件来完成。
- 数组示例:
-
$global_lp_all = array('en-us', 'zh-cn', 'zh-tw', 'de-de', 'ja-jp', 'ko-kr', 'ru-ru');
- 查询条件:
-
<?
if (in_array($_GET['lang'], $global_lp_all)) {
$lng = $_GET['lang'];
} else {
$lng = 'en-us';
}
?>
- 3. 数组调用方法。
-
<?php echo $lpna['lang_page_title'][$lng]; ?>
- 使用 print_r 命令输出所有数组。
-
<?php print_r($lpna); ?>
- 4. 资源转换。
在使用便携版过程中,例如:图片、ICO,需要转换成 base64 编码。javascript、CSS 等资源,用嵌入代码来完成,缩短可以使用精简工具。- 离线完成转换资源为 base64 编码
- PHP 脚本
-
<?php
$path = 'assets/logo/logo.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);echo $base64;
?>
- C# 脚本
-
using (Image image = Image.FromFile(Path)) {
using (MemoryStream m = new MemoryStream()) {
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
- JAVA 脚本
-
public static String encodeToString(BufferedImage image, String type) {
String base64String = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
ImageIO.write(image, type, bos);
byte[] imageBytes = bos.toByteArray();
BASE64Encoder encoder = new BASE64Encoder();
base64String = encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return base64String;
}
- PYTHON 脚本
-
import base64
imgdata = base64.b64decode(imgstring)
filename = 'assets/logo/logo.png'
with open(filename, 'wb') as f:
f.write(imgdata)
- RUBY 脚本
-
#!/usr/bin/env ruby
include_once'base64'
File.open('assets/logo/logo.png', 'r') do|image_file|1
puts Base64.encode64(image_file.read)
end
- 在线转换网站推荐