fchris82 / jms-translation-bundle-fork
将Symfony翻译组件提升到极致
1.4.1.2
2018-02-27 13:26 UTC
Requires
- php: ^5.3.3 || ^7.0
- nikic/php-parser: ^1.4 || ^2.0 || ^3.0
- symfony/console: ^2.3 || ^3.0
- symfony/framework-bundle: ^2.3 || ^3.0
- symfony/validator: ^2.3 || ^3.0
- twig/twig: ^1.27 || ^2.0
Requires (Dev)
- matthiasnoback/symfony-dependency-injection-test: ^0.7.6
- nyholm/nsa: ^1.0.1
- phpunit/phpunit: 4.8.27
- psr/log: ^1.0
- sensio/framework-extra-bundle: ^2.3 || ^3.0
- symfony/expression-language: ^2.6 || ^3.0
- symfony/symfony: ^2.3 || ^3.0
README
差异
- 命令性能升级:只扫描文件一次,而不是按语言扫描!
- 排序源代码
- 收集占位符(
<jms:placeholder>
元素) - 将意义移动到
jms:meaning
属性 - 自定义已翻译表单字段(您可以在
jms_translation
-->custom_form_config_names
配置位置设置这些)
jms_translation: custom_form_config_names: - 'title' - 'checkbox_label' - 'minMessage' - 'maxMessage' - 'help' - 'button_label' - 'autolock'
- 处理
addViolation()
、addViolationAt()
和buildViolation()
函数 - 添加新的注解:
AltTrans
。您可以添加基本翻译
<?php /** * @AltTrans("User has been created: <a href=""mailto:%email%"">%email%</a>", locale="en") * @AltTrans("A felhasználó létre lett hozva: <a href=""mailto:%email%"">%email%</a>", locale="hu") */ $this->trans('user.create.success.%email%', ['%email%' => $user->getEmail()]);
在twig模板中
<input type="text" id="username" name="_username" placeholder="{{ 'form.username' | trans() | altTrans('en', 'Username') | altTrans('hu', 'Felhasználónév') }}" />
双引号
""
是AltTrans
注解值中的转义引号
- 添加新的Trans*注解:
TransArrayKeys
、TransArrayValues
、TransString
。您可以在变量中处理字符串
<?php /** @TransArrayValues("error") */ $msgs = [ /** @AltTrans("Error 1", locale="en") */ 'error.msg1', /** @AltTrans("Error 2", locale="en") */ 'error.msg2', /** @AltTrans("Error 3", locale="en") */ 'error.msg3', ]; /** @Ignore */ $this->trans($msgs[$errorId], [], "error");