此包的最新版本(v0.0.3)没有可用的许可证信息。

PHP 5.3+ 翻译框架,类似于 Gettext

v0.0.3 2014-02-11 14:14 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:08:24 UTC


README

PHP 5.3+ 兼容的翻译框架,支持多种翻译后端。

安装

可以通过将 Tee 添加到依赖项来通过 Composer 安装 Tee,如下所示

{
	"require": {
		"jamwaffles/tee": "dev-master"
	}
}

配置

请确保包含 Composer 自动加载器。然后可以全局配置 Tee 如下

require_once 'vendor/autoload.php';

use \Tee\Translator as Trans;

Trans::configure(array(
	'adapter' => '\\Tee\\Adapter\\JSON',
	'adapterConfig' => array('translations' => 'example_translations/'),
	'locale' => 'de'
));

在这里 Tee 被别名设置为 Trans 以简化操作。

Tee 默认捆绑了基于 \Tee\Adapter\JSON 的 JSON 适配器。你可以通过扩展 \Tee\TeeAdapter 接口来编写自己的适配器。

用法

可以像这样使用命名空间静态类 \Tee\Translator

\Tee\Translator::configure(array( ... ));

$username = 'JamWaffles';
$someString = \Tee\Translator::translate("Hello, %s", $username);

或者使用方便的方法 T(),在你的模板中如下所示

<h1><?= T("Account for %s", $username) ?></h1>

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>

适配器

JSON

JSON 适配器使用标准 JSON 文件以 "original": "translation" 格式存储翻译。例如

{
	"Hello world, my name is %s": "Hallo Welt, mein Name ist %s"
}

如下配置 Tee 以使用 \Tee\Adapter\JSON 适配器

Trans::configure(array(
	'adapter' => '\\Tee\\Adapter\\JSON',
	'adapterConfig' => array('translations' => 'resources/languages/'),
	'locale' => 'de'		// Or whatever else
));

adapterConfig 传递一个数组以指定翻译将存储的位置。locale 值是不带 .json 扩展名的翻译文件名。上面的配置将查找以下文件

resources/languages/de.json

待办事项

  • 维基百科上的文档
  • 修改 JSON 适配器文件格式,以便有一个小的配置部分,可以指定回退语言
  • 添加对多种缓存机制的支持。将研究支持最常见的现有缓存库。APC(u) 将首先实现。
  • 更好的错误报告。是否允许传递日志实例?