stanislav-web / phalcon-translate
Phalcon Translate 服务。简单地将您的自定义模板部分翻译成其他语言 :-)
1.3.1-stable
2015-07-12 15:30 UTC
Requires
- php: >=5.4.0
Suggests
- stanislav-web/phalcon-searcher: Phalcon Database Searcher. This is the search service is designed to search multiple SQL tables. Convenient to use autocomplete, search documents, search the whole site.
- stanislav-web/phalcon-ulogin: Phalcon ULogin. The authorization form uLogin through social networks
- stanislav-web/phalcon-uploader: Phalcon files uploader. Handling and downloading files for Phalcon projects. Allowed multiple files download, filters etc...
This package is not auto-updated.
Last update: 2024-09-14 16:13:40 UTC
README
Phalcon Translate 服务。简单地将您的自定义模板部分翻译成其他语言 :-)
变更日志
- 1.3.1 [修复] 默认语言使用
- 1.3 [修复] 支持 Phalcon 2.x // [小修复] 翻译适配器 Native offsetGet 在 2.0 中不工作
- 1.2 [修复,功能] 能够在各个服务中重用一组翻译
- 1.1 添加了 setDefault() 方法来监视未定义的语言
兼容性
- PSR-1,PSR-2,PSR-4 标准
系统要求
- PHP 5.4.x >
- Phalcon 扩展 1.3.x,2.x
安装
首先通过 composer 更新依赖项。将以下内容添加到您的 composer.json 中
"require": { "stanislav-web/phalcon-translate": "1.*" }
php composer.phar install
或者
php composer.phar require stanislav-web/phalcon-translate 1.*
(不要忘记包含 composer 自动加载器)
或者在您的加载器服务中手动 require
$loader->registerNamespaces([ 'Translate\Translator' => 'path to src' ]);
您可以创建一个可注入的服务
$this->di['translate'] = function() { return new Translate\Translator(); };
用法
推荐的翻译目录配置(例如)
/app/languages/{LANG}/{PART}.php
LANG meant "ru", "en", "de"
PART meant "menu", "header", "footer"
翻译文件
<?php return [ 'MY ACCOUNT' => 'My Account', 'LOGIN' => 'Log in', 'LOGOUT' => 'Log out', 'WELCOME' => 'Welcome, %s! We glad to see you! You are %d', ];
配置和使用
// get translate service $translate = $this->di->get('translate'); // forward slash must be... // lang can get from headers or cookies $translate->setTranslatePath('/app/Modules/Frontend/languages/')->setLanguage('en'); // 1.1-stable Added setDefault() method to watch undefined languages $translate->setDefault('en'); // so now you have a directory for "English".. // Next you need to choise a part of translate. // I do something like this $this->view->setVars('t', $translate); // ... in my view or layout i get a part of translate echo $t->assign('menu')->translate('MY ACCOUNT'); // My Account // or use otherwise $this->partial('sidebar', ['t' => $t->assign('sidebar')]); echo $t->translate('LOGIN'); // translate by template variable printf($t->translate('WELLCOME'), 'User', 100); // Output: Welcome,User! We glad to see you! You are 100
##问题