happyr / translation-bundle
Requires
- php: ^5.5.9 || ^7.0
- php-http/client-implementation: ^1.0
- php-http/httplug: ^1.0
- php-http/plugins: ^1.0
- psr/log: ^1.0
- sensio/framework-extra-bundle: ^2.7 || ^3.0
- symfony/framework-bundle: ^2.7 || ^3.0
Requires (Dev)
- matthiasnoback/symfony-dependency-injection-test: ^1.0
- php-http/guzzle6-adapter: ~1.0
- php-http/httplug-bundle: ~1.0
- phpunit/phpunit: ^4.5 || ^5.4
- symfony/symfony: ^2.3 || ^3.0
Suggests
- happyr/auto-fallback-translation-bundle: To automatically translate phrases that are missing form your secondary language.
- php-http/httplug-bundle: To easier configure your httplug clients.
README
已弃用: 使用php-translation/symfony-bundle
此包已被弃用,以php-tranlation/symfony-bundle代替。我们将此包的所有功能(以及更多)都放入了php-translation。
此包将永远保留在这里,但不会合并新功能或错误修复。将此仓库分叉或移交给新维护者没有任何意义,因为我们已经在php-translation中做了类似的事情。
此包帮助您集成第三方翻译服务。该包已专注于集成到Loco服务。如果您想了解Happyr如何使用此包,请查看此博客文章。
此包的主要功能包括
- 轻松从所有翻译中下载
- 支持多个项目
- 通过Symfony WebProfiler创建新的翻译资源
- 通过Symfony WebProfiler编辑、标记和同步翻译
- 自动上传缺少的翻译到SaaS
用法
要从Loco下载所有翻译,只需运行
php app/console happyr:translation:download
当您添加了新的翻译后,您可以通过WebProfiler工具栏将这些翻译提交到您的翻译SaaS。
您还可以从同一WebProfiler页面更改翻译并标记它们。
当您想要从SaaS获取新翻译时,应运行同步命令。此命令将保留当前占位符以避免缺少翻译。
php app/console happyr:translation:sync
安装
使用composer require happyr/translation-bundle
安装此包
在发送HTTP消息时,您还需要选择要使用的库。请参考php-http/client-implementation虚拟包以查找要使用的适配器。有关虚拟包的更多信息,请参阅Httplug。示例
composer require php-http/guzzle6-adapter
在您的内核中启用此包
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Happyr\TranslationBundle\HappyrTranslationBundle(),
);
}
此包要求您注册一个HttpClient和MessageFactory的服务,然后将服务名称设置如下。这样做最简单的方法是使用HttplugBundle。
happyr_translation: httplug_client: 'httplug.client' httplug_message_factory: 'httplug.message_factory'
配置
如果您为每个域名有一个Loco项目,可以按以下方式配置此包
# /app/config/config.yml happyr_translation: locales: ['en','sv','fr','es'] projects: messages: api_key: 'foobar' navigation: api_key: 'bazbar'
如果您只有一个项目并且为所有翻译域都有标签,可以使用此配置
# /app/config/config.yml happyr_translation: locales: ['en','sv','fr','es'] domains: ['messages', 'navigation'] projects: acme: api_key: 'foobar'
您还需要配置一个开发路由。
# /app/config/routing_dev.yml _happyr_translation: resource: '@HappyrTranslationBundle/Resources/config/routing_dev.yml'
默认配置
happyr_translation: httplug_client: 'httplug.client' httplug_message_factory: 'httplug.message_factory' file_extension: 'xlf' # could be 'json', 'mo', 'php', 'po', 'yml' and many more locales: [] domains: [] translation_service: 'loco' target_dir: '%kernel.root_dir%/Resources/translations' auto_add_assets: false allow_edit: true
待办事项
- WebProfiler中的新页面需要一些设计和漂亮的图标。
- 错误处理并不总是最佳。
- Loco类
- 在HttpAdapters中
- 在javascript中
致谢
此捆绑包受到了@damienalexandre / JoliCode 的启发,并使用了一些代码,同时也使用了Cliff Odijk (@cmodijk) 的 LocoBundle 中的代码。
我还要感谢Tim Whitlock (@timwhitlock) 创建了 Loco。