fdevs / locale
支持不同语言的库
3.0.0
2016-02-05 11:22 UTC
Requires
- php: ~5.5|~7.0
- doctrine/collections: ~1.3
Suggests
- fdevs/locale-bridge: use locale library with symfony components
README
文档
安装和使用
安装和使用是快速的
- 使用composer下载Locale
- 使用库
- 自定义数据提供者
您可以使用 "fdevs/locale-bridge" 与其他库/组件一起使用
步骤 1: 使用composer下载Locale库
运行以下命令下载包
$ php composer.phar require fdevs/locale
Composer会将包安装到您的项目vendor/fdevs
目录下。
步骤 2: 使用库
####基本设置
<?php require DIR . '/../vendor/autoload.php'; use FDevs\Locale\Model\LocaleText; use FDevs\Locale\Translator; // The same text in different languages $englishText = new LocaleText('I am a programmer', 'en'); $chineseText = new LocaleText('我是程序员', 'zh'); $russianText = new LocaleText('Я программист', 'ru'); $supportedTexts = [ $englishText, $russianText, $chineseText, ]; $trans = new Translator();
####设置当前区域
$trans->setLocale('zh');
####获取当前区域的文本
// 1. Get text for current locale - ch (Chinese) $text = $trans->trans($supportedTexts); echo $text?$text->getText():''; // Output: "我是程序员"
####获取区域 - ru 的文本
$text = $trans->trans($supportedTexts, 'ru'); echo $text?$text->getText():''; // Output: "Я программист"
####获取我们未翻译的区域文本
$text = $trans->trans($supportedTexts, 'kk'); echo $text?$text->getText():''; // Output: ""
####使用一组优先区域获取文本:这里可以将它视为区域回退,列表中找到的第一个区域将被选择。
use FDevs\Locale\Model\PriorityLocale; use FDevs\Locale\TranslatorPriority; $priorityLocale = [ new PriorityLocale('uk',['en','ru']), new PriorityLocale('en',['uk']), new PriorityLocale('fa',['zh','en']), ]; $trans = new TranslatorPriority('en',$priorityLocale); $text = $trans->trans($supportedTexts, 'uk'); echo $text?$text->getText():''; // Output: "I am programmer"
步骤 3: 自定义数据提供者
创建您出色的提供者
use FDevs\Locale\DataProvider\DataProviderInterface; class MyProvider implements DataProviderInterface { //implement interface }
添加您的提供者
use FDevs\Locale\DataProvider\DataProviderRegistry; use FDevs\Locale\Translator; use FDevs\Locale\TranslatorPriority; $registry = new DataProviderRegistry([new MyProvider()]); $translator = new Translator('en',$registry); //or $translator = new TranslatorPriority('en', $priorityLocale, $registry);
许可证
此库受MIT许可证的约束。在库中查看完整的许可证。
LICENSE
报告问题或功能请求
问题和功能请求在Github问题跟踪器中跟踪。