Skip to content

astronom/TranslationBundle

 
 

Repository files navigation

Happyr Translation Bundle

This bundle helps you to integrate with a third party translation service. The bundle has been focused to integrate to the Loco service. If you want to know how Happyr work with this bundle you should check out this blog post.

The key features of this bundle is:

  • Easy to download all translations from
  • Support for multiple projects
  • Create new translation assets by the Symfony WebProfiler
  • Edit, flag and synchronize the translation via the Symfony WebProfiler
  • Auto upload missing translations to SaaS

Usage

To download all translations form logo, simply run:

php app/console happyr:translation:download

When you have added new translations you may submit these to your translation SaaS by the WebProfiler toolbar.

New translations to SaaS

You may also change translations and flag them from the same WebProfiler page.

Manage translations with SaaS

When you want to fetch new translations from your SaaS you should run the synchronize command. This command will keep your current placeholders from missing translations.

php app/console happyr:translation:sync

Install

Install the bundle with composer require happyr/translation-bundle

Configure

If you have one Loco project per domain you may configure the bundle like this:

# /app/config/config.yml
happyr_translation:
  locales: ['en','sv','fr','es']
  projects:
    messages:
      api_key: 'foobar' 
    navigation:
      api_key: 'bazbar' 

If you just doing one project and have tags for all your translation domains you may use this configuration:

# /app/config/config.yml
happyr_translation:
  locales: ['en','sv','fr','es']
  dimensions: ['messages', 'navigation']
  projects:
    acme:
      api_key: 'foobar'  
    

You do also need to configure a development route.

# /app/config/routing_dev.yml
_happyr_translation:
    resource: '@HappyrTranslationBundle/Resources/config/routing_dev.yml'
    

Default configuration

happyr_translation:
  locales: []
  dimensions: []
  translation_service: 'loco'
  target_dir: '%kernel.root_dir%/Resources/translations'
  auto_add_assets: false
  allow_edit: true
  http_adapter: 'guzzle5'

TODO

  • The new page in the WebProfiler needs some design and nice icons.
  • The error handling is not always the best.
    • The Loco class
    • In the HttpAdapters
    • In the javascript

Credits

This bundle is both inspired by and is using some of the code from @damienalexandre / JoliCode and from Cliff Odijk's (@cmodijk) LocoBundle.

I would also thank Tim Whitlock (@timwhitlock) for creating Loco.

About

A bundle to integrate with third party translation platforms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 77.3%
  • HTML 22.7%