/localise-bundle

Localise.biz Symfony bundle

Primary LanguagePHPMIT LicenseMIT

Localise Bundle for Symfony

PHP Symfony wrapper for Localise service.

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

Applications that use Symfony Flex

Open a command console, enter your project directory and execute:

$ composer req cosavostra/localise-bundle

Applications that don't use Symfony Flex

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

$ composer req cosavostra/localise-bundle

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    CosaVostra\LocaliseBundle\CosaVostraLocaliseBundle::class => ['all' => true],
];

Step 3: Set the API key

Finally, update your .env file by setting the Localise API key of your account:

###> cosavostra/localise-bundle ###
LOCALISE_EXPORT_KEY=XXXXXXXXXXXXXXX
###> cosavostra/localise-bundle ###

Usage

This bundle is very useful to import translation files from Localise.biz, after installation you'll be able to access to the command:

$ php bin/console localise:translation:import --extension=yaml --purge

The output will be similar to below:

 ----------------- ------ ------------ -------------- 
  Name              Code   Translated   Untranslated  
 ----------------- ------ ------------ -------------- 
  English US        en     3            0             
  French (France)   fr     3            0             
 ----------------- ------ ------------ --------------                                                                                                                
 [OK] The translations was successfully imported.   

NOTE: Don't forget to clear the cache of your application after running the command, and consider using the right environment option, in your prod environment you should run:

NOTE: The following extensions are supported:

  • Yaml
  • PHP
  • XLF
$ php bin/console --env=prod localise:translation:import --extension=yaml --purge

You can also use the CosaVostra\LocaliseBundle\LocaliseManager service to import translations manually (for example in a controller) like below:

use CosaVostra\LocaliseBundle\LocaliseManager;
use Symfony\Component\HttpFoundation\Response;

public function action(LocaliseManager $localiseManager): Response 
{
    $extension = 'yaml';
    $purge = true; // This flag should be "TRUE" to purge translation directory and remove old files.
    
    $localiseManager->import($extension, $purge);
    
    // Clear the cache manually here ...

    return new Response('Translations imported.');
}

Questions?

If you have any questions please open an issue.

License

This library is released under the MIT License. See the bundled LICENSE file for details.