Skip to content

A set of extra tools for symfony2: a translation extractor, a locale date parser/formatter, a unit converter...

Notifications You must be signed in to change notification settings

michelsalib/BCCExtraToolsBundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f5de5d0 · Nov 21, 2012

History

66 Commits
Jul 11, 2011
Oct 28, 2011
Jul 9, 2012
Nov 21, 2012
Jul 15, 2011
Jul 9, 2012
Nov 21, 2012
Mar 3, 2012
Mar 3, 2012
Mar 4, 2012
Oct 28, 2011
Mar 4, 2012
Mar 3, 2012
Mar 3, 2012

Repository files navigation

Intro to ExtraTools

It a bundle that contains some usefull symfony2 tools.

Build Status

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:update command 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 BCC\ExtraToolsBundle\BCCExtraToolsBundle(),
            // ...
        );
    }

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: BCC\ExtraToolsBundle\Twig\TwigExtension
        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 MyBundle\Resources\translations directory:

    bcc:trans:update --force fr MyBundle

  • In another language:

    bcc:trans:update --force en MyBundle

  • Specify the output format with the --output-format option (either yml, xliff, php or pot):

    bcc:trans:update --output-format="xliff" --force en MyBundle

  • Change the prefix used for newly added messages with the --prefix option:

    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.

About

A set of extra tools for symfony2: a translation extractor, a locale date parser/formatter, a unit converter...

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages