happyr/translation-bundle

此包已被废弃,不再维护。作者建议使用php-translation/symfony-bundle包。

将Symfony与如http://localise.biz的翻译SaaS集成

安装: 88 688

依赖者: 1

建议者: 0

安全: 0

星标: 52

关注者: 9

分支: 24

开放问题: 9

类型:symfony-bundle

0.4.3 2017-06-08 14:46 UTC

This package is auto-updated.

Last update: 2022-02-01 12:54:08 UTC


README

Latest Version Build Status Code Coverage Quality Score Total Downloads

已弃用: 使用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。

New translations to SaaS

您还可以从同一WebProfiler页面更改翻译并标记它们。

Manage translations with SaaS

当您想要从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(),
    );
}

此包要求您注册一个HttpClientMessageFactory的服务,然后将服务名称设置如下。这样做最简单的方法是使用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