BCCExtraToolsBundle
Tools
PHP
Intro to ExtraTools
It a bundle that contains some usefull symfony2 tools.
Warning
The bcc:trans:update command had been merged into the framework and thus won’t be maintained here anymore. The new name is translation:extract.
Features:
-
a
bcc:trans:updatecommand that extract all your missing i18n message from your twig templates and saves into yaml, xliff, php or pot translation files. - a twig extension that translates dates and contries
- a date formatter that formats and translates dates and also parses multiple forms of localized date string
- a unit converter that is ignly extensible and convert units
Installation and configuration:
Get the bundle
Add to your /deps file :
[BCCExtraToolsBundle]
git=http://github.com/michelsalib/BCCExtraToolsBundle.git
target=/bundles/BCC/ExtraToolsBundle
And make a php bin/vendors install.
Register the namespace
<?php
// app/autoload.php
$loader->registerNamespaces(array(
'BCC' => __DIR__.'/../vendor/bundles',
// your other namespaces
));
Add ExtraToolsBundle to your application kernel
<?php
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new BCCExtraToolsBundleBCCExtraToolsBundle(),
// ...
);
}
Register the twig extension
If you want to use the twig extension you must have the apache intl module installed.
Add to your config.yml:
#BCC configuration
services:
bcc.twig.extension:
class: BCCExtraToolsBundleTwigTwigExtension
tags:
- { name: twig.extension }
Usage examples:
bcc:trans:update command example
You now have the new command. You can use it as follows:
-
To extract messages from your bundle and display in the console:
bcc:trans:update --dump-messages fr MyBundle -
You can save them to the
MyBundleResourcestranslationsdirectory:
bcc:trans:update --force fr MyBundle -
In another language:
bcc:trans:update --force en MyBundle -
Specify the output format with the
--output-formatoption (eitheryml,xliff,phporpot):
bcc:trans:update --output-format="xliff" --force en MyBundle -
Change the prefix used for newly added messages with the
--prefixoption:
bcc:trans:update --output-format="xliff" --force --prefix='myprefix' en MyBundle
Twig extensions examples
Translate a date value :
-
{{ user.createdAt | localeDate }}to have a medium date and no time, in the current locale -
{{ user.createdAt | localeDate('long','medium') }}to have a long date and medium time, in the current locale
Translate a contry :
-
{{ user.country | country }}to have the country, in the current locale -
{{ user.country | country('c ountry does not exist') }}Define the returned value if the country does not exist
DateFormatter examples
Get the service:
<?php
$dateFormatter = $container->get('bcc_extra_tools.date_formatter');
Parse a date:
<?php
$date = $dateFormatter->parse('November 1, 2011', 'en'); // obtains a datetime instance
Format a date:
<?php echo $dateFormatter->format($date, 'long', 'none', 'fr'); // echoes : "1 novembre 2011"
Note that the locale parameter (here ‘fr’ and ‘en’) are optionnal, default is the current locale.
Unit converter examples
Get the service:
<?php
$unitConverter = $container->get('bcc_extra_tools.unit_converter');
Convert a value:
<?php echo $unitConverter->parse(1000, 'm', 'km'); // echoes : 1
Guess the source unit:
<?php
echo $unitConverter->parse('1h', 'm'); // echoes : 60
More examples in the tests: ./Tests/Util/UnitConverterTest.