kocicak/l10n

本地化、复数处理和简单翻译器

2.0.1 2019-05-03 06:26 UTC

This package is auto-updated.

Last update: 2024-09-06 20:39:57 UTC


README

Build Status Scrutinizer Code Quality Scrutinizer Code Coverage Total Downloads License

l10n

本地化、复数处理和翻译器

关于

l10n 是一个结合了来自 ISO 639-1 (112/185) 的多种语言的包,包括来自 Mozilla 开发者网络 的所有复数处理和简单翻译器。

Packagist

l10n 可在 Packagist.org 上获取,只需将依赖项添加到您的 composer.json 文件中。

{
  "require" : {
    "zemistr/l10n": "1.*"
  }
}

或运行 Composer 命令

php composer.phar require zemistr/l10n

无 composer 的使用方法

<?php
require('src/l10n.php');

使用 PluralRule 的基本翻译器使用方法

<?php
// first we create a new instance of plural rule
$plural = new \l10n\Plural\PluralRule1();

// create new instance of Translator with selected plural rule
$translator = new \l10n\Translator\Translator($plural);

// add translations
//   $translator->setText($key, $text, $plural = 0);
$translator->setText('statistics.users', '%n% person'); // 0 or nothing for singular
$translator->setText('statistics.users', '%n% people', 1);

// get translations
//   $translator->translate($key, $n = 1, array $parameters = array());
//
// or for singular
//   $translator->translate($key, array $parameters = array());
echo $translator->translate('statistics.users', 0) . '<br>'; // 0 people
echo $translator->translate('statistics.users', 1) . '<br>'; // 1 person
echo $translator->translate('statistics.users', 50) . '<br>'; // 50 people
echo $translator->translate('statistics.users', 100) . '<br>'; // 100 people

// we can use %variables% in translations
// in default is available variable %n% for number $n (singular/plural number)

$translator->setText('user', 'I am %firstname% %lastname%');

echo $translator->translate('user', ['%firstname%' => 'John', '%lastname%' => 'Doe']); // I am John Doe

使用 Language 的基本翻译器使用方法

<?php
// first we create a new instance of class based on IPlural
$language = new \l10n\Language\EnglishLanguage();

// create new instance of Translator with selected language
$translator = new \l10n\Translator\Translator($language);

// add translations
//   $translator->setText($key, $text, $plural = 0);
$translator->setText('statistics.users', '%n% person'); // 0 or nothing for singular
$translator->setText('statistics.users', '%n% people', 1);

// get translations
//   $translator->translate($key, $n = 1, array $parameters = array());
//
// or for singular
//   $translator->translate($key, array $parameters = array());
echo $translator->translate('statistics.users', 0) . '<br>'; // 0 people
echo $translator->translate('statistics.users', 1) . '<br>'; // 1 person
echo $translator->translate('statistics.users', 50) . '<br>'; // 50 people
echo $translator->translate('statistics.users', 100) . '<br>'; // 100 people

// we can use %variables% in translations
// in default is available variable %n% for number $n (singular/plural number)

$translator->setText('user', 'I am %firstname% %lastname%');

echo $translator->translate('user', ['%firstname%' => 'John', '%lastname%' => 'Doe']); // I am John Doe

(c) Martin Zeman (Zemistr),2015 (http://zemistr.eu)