This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Translation
Fabien Potencier feff411dfc Merge branch '2.3'
* 2.3:
  Clear lazy loading initializer after the service is successfully initialized
  [FrameworkBundle] added support for double-quoted strings in the extractor (closes #8797)
  [SecurityBundle] Move format-dependent tests from SecurityExtensionTest
  bumped Symfony version to 2.3.5-DEV
  updated VERSION for 2.3.4
  updated CHANGELOG for 2.3.4
  bumped Symfony version to 2.2.7
  updated VERSION for 2.2.6
  update CONTRIBUTORS for 2.2.6
  updated CHANGELOG for 2.2.6
  clearToken exception is thrown at wrong place.
  fix typo in test skipped message
  [Form] Fixed Form::all() signature for PHP 5.3.3
  [Form] Fixed Form::all() signature for PHP 5.3.3
  [Locale] Fixed: Locale::setDefault() throws no exception when "en" is passed
  [Locale] Fixed: StubLocale::setDefault() throws no exception when "en" is passed
  [Translation] Grammar fix
  [Yaml] fixed embedded folded string parsing
  [Validator] fixed Boolean handling in XML constraint mappings (closes #5603)
  [Translation] Fixed regression: When only one rule is passed to transChoice(), this rule should be used

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
2013-08-29 08:54:01 +02:00
..
Catalogue Enforce sprintf for exceptions 2013-04-11 08:50:46 +02:00
Dumper Fixed typos 2013-04-21 13:23:54 +00:00
Exception [Translation] uniformized the way exception are thrown in LoaderInterface::load() 2012-12-13 11:00:37 +01:00
Extractor CS Fixes - Replaced "array of type" by "Type[]" in PHPDoc block 2012-11-19 13:58:52 +01:00
Loader Merge branch '2.2' into 2.3 2013-08-02 22:53:38 +02:00
Tests Merge branch '2.3' 2013-08-29 08:54:01 +02:00
Writer Fixed most of the docblocks/unused namespaces 2012-12-19 08:09:49 +01:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
CHANGELOG.md updated various CHANGELOG files that were not updated when the PRs were merged 2013-03-23 08:35:36 +01:00
composer.json updated version to 2.4 2013-05-16 09:54:39 +02:00
IdentityTranslator.php [Validation] Fixed IdentityTranslator to pass correct Locale to MessageSelector 2013-08-19 12:15:39 +02:00
Interval.php Fixed most of the docblocks/unused namespaces 2012-12-19 08:09:49 +01:00
LICENSE updated license year 2013-01-04 17:59:43 +01:00
MessageCatalogue.php [Translator] fix metadata 2013-02-14 10:33:29 +01:00
MessageCatalogueInterface.php [Translator] fix phpdoc of MessageCatalogueInterface::add and ::replace 2013-02-14 09:39:14 +01:00
MessageSelector.php [Translation] Fixed regression: When only one rule is passed to transChoice(), this rule should be used 2013-08-23 17:24:14 +02:00
MetadataAwareInterface.php [Translator] fix metadata 2013-02-14 10:33:29 +01:00
phpunit.xml.dist made usage of Composer autoloader for subtree-split unit tests 2012-11-09 14:10:06 +01:00
PluralizationRules.php Fixed most of the docblocks/unused namespaces 2012-12-19 08:09:49 +01:00
README.md updated version to 2.4 2013-05-16 09:54:39 +02:00
Translator.php Merge branch '2.2' 2013-05-10 20:12:13 +02:00
TranslatorInterface.php [Translator] mention that the message id may also be an object that can be cast to string in TranslatorInterface and fix the IdentityTranslator that did not respect this 2013-02-14 09:35:42 +01:00

Translation Component

Translation provides tools for loading translation files and generating translated strings from these including support for pluralization.

use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\MessageSelector;
use Symfony\Component\Translation\Loader\ArrayLoader;

$translator = new Translator('fr_FR', new MessageSelector());
$translator->setFallbackLocales(array('fr'));
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', array(
    'Hello World!' => 'Bonjour',
), 'fr');

echo $translator->trans('Hello World!')."\n";

Resources

Silex integration:

https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/TranslationServiceProvider.php

Documentation:

http://symfony.com/doc/2.4/book/translation.html

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/Translation/
$ composer.phar install --dev
$ phpunit