undercloud/lang

PHP 多语言系统

dev-master 2016-04-13 19:37 UTC

This package is auto-updated.

Last update: 2024-08-28 07:07:38 UTC


README

#Lang PHP 多语言系统

##安装 composer require undercloud/lang

##翻译

// /en/message.php
return [
	'hello' => 'Hello, :username',
	'hobbies' => 'Your hobbies is: :hobbies'
];

##设置

require 'vendor/autoload.php';

$lang = new Undercloud\Lang([
	// translates path
	'root' => '/path/to/translates',
	// list of user accepted, default parse http header Accept-Language
	'accept' => ['en', 'de'],
	// list of supported translates
	'avail' => ['en','fr','de'],
	// setup translates file handler, default PHP Arrays
	'parser' => new Undercloud\Lang\Parser\AbstractParser
]);

// Hello, John
$lang('message.hello', ['username' => 'John']);

//Your hobbies is: music, football, web
$lang('message.hobbies', ['hobbies': ['music', 'football', 'web']]);

##API

// parse Accept-Language header and return supported locales
$lang->getLangsHttp();

// return primary locale name
$lang->getPrimaryLocale();

// return fallback locale
$lang->getFallBackLocale();

##解析器 默认提供两种语言文件解析器 Undercloud\Lang\Parser\DefaultParserUndercloud\Lang\Parser\JsonParser,您可以定义自己的解析器

// file based parser
use Undercloud\Lang\Parser\AbstractParser;

class MyOwnParser extends AbstractParser
{
	public function parse()
	{
		$path = func_get_arg(0) . '.extension';
		/*...*/
	}
}

或者

// database like parser
use Undercloud\Lang\Parser\AbstractParser;

class MyOwnParser extends AbstractParser
{
	public $buildPath = false;

	public function parse()
	{
		$locale = func_get_arg(0);
		$entity = func_get_arg(1);

		/*...*/
	}
}