saimons / ud-translator
Nette Framework 的本地化网络插件。
dev-master
2015-06-01 13:47 UTC
Requires
- php: >=5.3.0
- nette/nette: ~2.2
This package is not auto-updated.
Last update: 2024-10-02 08:40:00 UTC
README
插件用于 Nette Framework 的网页本地化。
安装
config.neon
UDTranslator: adminRole: administrator debugMode: TRUE diagnostics: time: +1 day path: %tempDir%/cache/_UDTranslator/ limit: 300
adminRole: Nette\Security\User 的角色名称,该角色在 UDTranslator 中具有管理员权限,NULL 表示所有人都可以编辑
debugMode: TRUE/FALSE 缓存字符串
diagnostics: 用于搜索未使用的字符串
time: 缓存字符串的最小时间,之后使用的字符串将更新显示的状态
path: 用于缓存使用的字符串的文件位置
limit: 如果缓存的字符串数量少于该值,则不再使用缓存,并且当发现新字符串时,将内部存储无效化
使用缓存是为了减轻启用诊断时的初始压力。一旦响应并且未使用的字符串数量达到 limit,则在每次发现新字符串时都会无效化存储。
basepresenter.php
abstract class BasePresenter extends Presenter { /** @persistent */ public $lang; /** @var UDTranslator\NetteTranslator */ protected $translator; /** @var UDTranslator\Services\Editor */ protected $translatorEditor; /** * * @return array */ public static function getPersistentParams() { return array('lang'); } /** * @param GettextTranslator\Gettext */ public function injectUDTranslator(NetteTranslator $translator, Editor $editor) { $this->translator = $translator; $this->translatorEditor = $editor; } /** * * @param type $class * @return type */ public function createTemplate($class = NULL) { $template = parent::createTemplate($class); // if not set, the default language will be used if (!isset($this->lang)) { $this->lang = 'en'; } else { $this->translator->setLang($this->lang); } $template->setTranslator($this->translator); return $template; } /** * Component for editing translation * @return DTranslator\Services\Editor */ protected function createComponentTranslatorEditor() { $this->translatorEditor->setLang($this->lang); return $this->translatorEditor; } }
bootstrap.php
UDTranslator\DI\UDTranslator::register($configurator);
将 layout.latte 文件放置在 html 文件的末尾
{control translatorEditor} </body>
CSS: 从文件中加载样式。