gelembjuk/locale

PHP应用程序的国际化支持。这是一个简单的类集合,用于管理语言/区域,根据区域翻译文本。该软件包包含一个特质,可以非常容易地将国际化功能包含到任何类中,且代码量最少。

1.1.7 2023-11-29 14:57 UTC

This package is not auto-updated.

Last update: 2024-10-02 19:11:24 UTC


README

PHP应用程序的国际化支持。这是一个简单的类集合,用于管理语言/区域,根据区域翻译文本。该软件包包含一个特质,可以非常容易地将国际化功能包含到任何类中,且代码量最少。

安装

使用composer: gelembjuk/locale require: {"gelembjuk/locale": "1.*"}

配置

不需要配置。

您需要一个包含不同语言的文本的文件夹。为每个区域创建单独的文件夹,如en, ge, it等。每个文件夹应至少包含一个文件default.txt。

翻译文件具有简单的键值格式

用法

require '../vendor/autoload.php';

$translation = new Gelembjuk\Locale\Translate(
	array(
		'localespath' => $lang_folder_path, // path to your translations directory
		'locale' => $locale // current locale, 2 symbol language code
	)
	);
	
echo $translation->getText('hello',''/*default group*/,$username);  // hello = Hello, %s on our site. $username will be put in place of %s

echo $translation->getText('welcome');

echo $translation->getText('backsoon','logoutpage'); // custom texts group in a separate web site

特质用法

class MyClass {
	// include translation functions
	use Gelembjuk\Locale\GetTextTrait;
	
	public function doSomething() {
		echo $this->getText('welcome').'<br>';
	}
	
	public function andAgainWelcome($name) {
		// use short call for getText
		echo $this->_('hello','',$name).'<br>';
	}
}

$obj = new MyClass();

$obj->setTranslation($translation);

$obj->doSomething();

$obj->andAgainWelcome($username);

$obj->setLocale('en');

$obj->andAgainWelcome($username);

语言管理器用法

$langobj = new Gelembjuk\Locale\Languages(array('localespath' => $lang_folder_path));

// list of used languages, used are languages with a folder in $lang_folder_path
$languages = $langobj->getUsedLanguages();

// print language select form

echo '<form name=\'langform\' method=\'GET\' action="index.php">';

echo $langobj->getHTMLSelect(' name="locale" onchange="document.langform.submit()" ',$locale/*current selected locale*/);

echo '</form>';

作者

Roman Gelembjuk (@gelembjuk)