8ca8aef151
Commits -------d974a4a
Merge pull request #4 from stealth35/test_mo_loadercf05646
delete useless tests19f9de9
[Translation] fix gettext tests965f2bf
Merge pull request #3 from stealth35/test_mo_loader9c2a26d
[Translation] add Mo loader tests9af2342
[Translation] Added the gettext loaders Discussion ---------- [Translation] Added the gettext loaders This is the squashed version of the work done by @xaav in #634. @stealth35 you said you will work on the dumpers. do you have some stuff on it ? --------------------------------------------------------------------------- by drak at 2011/10/24 19:28:43 -0700 Is there any more progress with this? --------------------------------------------------------------------------- by stealth35 at 2011/10/25 00:57:19 -0700 I work on the dumpers, but the Po loader is wrong, caus' the Po ressource can be multiline, msgid "" "Here is an example of how one might continue a very long string\n" "for the common case the string represents multi-line output.\n" http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files Anyway the Po format is an intermediate format to Mo file, (like .txt to .res file for ICU), IMO we can just support the real gettext format : Mo --------------------------------------------------------------------------- by stealth35 at 2011/11/03 02:00:24 -0700 @stof The MO Dumper is ready (stealth35/symfony@f2d1d5b4de), should we keep the PO format ? --------------------------------------------------------------------------- by fabpot at 2011/11/07 08:50:59 -0800 @stealth35: The PO is what people will use for their translations. They will then dump it to MO. So, we need both PO and MO loaders and dumpers. --------------------------------------------------------------------------- by stealth35 at 2011/11/08 01:25:39 -0800 @fabpot, I'm ready for both dumpers, you can merge this, and I'll open a PR for the dumpers --------------------------------------------------------------------------- by fabpot at 2011/11/08 22:37:47 -0800 I've just had a look at this PR code again and I see that the unit tests are pretty slim. Is it possible to add some tests for the mo loader? --------------------------------------------------------------------------- by stealth35 at 2011/11/09 01:15:25 -0800 @fabpot test send to @stof ✌️ --------------------------------------------------------------------------- by stof at 2011/11/09 02:22:55 -0800 and merged in this branch --------------------------------------------------------------------------- by fabpot at 2011/11/09 02:39:09 -0800 The tests do not pass for me: There was 1 error: 1) Symfony\Tests\Component\Translation\Loader\MoFileLoaderTest::testLoadDoesNothingIfEmpty InvalidArgumentException: MO stream content has an invalid format. /Users/fabien/work/symfony/git/symfony/src/Symfony/Component/Translation/Loader/MoFileLoader.php:79 /Users/fabien/work/symfony/git/symfony/src/Symfony/Component/Translation/Loader/MoFileLoader.php:46 /Users/fabien/work/symfony/git/symfony/tests/Symfony/Tests/Component/Translation/Loader/MoFileLoaderTest.php:34 -- There was 1 failure: 1) Symfony\Tests\Component\Translation\Loader\PoFileLoaderTest::testLoad Failed asserting that two arrays are equal. --- Expected +++ Actual @@ @@ Array ( - 'foo' => 'bar' ) /Users/fabien/work/symfony/git/symfony/tests/Symfony/Tests/Component/Translation/Loader/PoFileLoaderTest.php:25
120 lines
6.4 KiB
XML
120 lines
6.4 KiB
XML
<?xml version="1.0" ?>
|
|
|
|
<container xmlns="http://symfony.com/schema/dic/services"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
|
|
|
<parameters>
|
|
<parameter key="translator.class">Symfony\Bundle\FrameworkBundle\Translation\Translator</parameter>
|
|
<parameter key="translator.identity.class">Symfony\Component\Translation\IdentityTranslator</parameter>
|
|
<parameter key="translator.selector.class">Symfony\Component\Translation\MessageSelector</parameter>
|
|
<parameter key="translation.loader.php.class">Symfony\Component\Translation\Loader\PhpFileLoader</parameter>
|
|
<parameter key="translation.loader.yml.class">Symfony\Component\Translation\Loader\YamlFileLoader</parameter>
|
|
<parameter key="translation.loader.xliff.class">Symfony\Component\Translation\Loader\XliffFileLoader</parameter>
|
|
<parameter key="translation.loader.po.class">Symfony\Component\Translation\Loader\PoFileLoader</parameter>
|
|
<parameter key="translation.loader.mo.class">Symfony\Component\Translation\Loader\MoFileLoader</parameter>
|
|
<parameter key="translation.loader.qt.class">Symfony\Component\Translation\Loader\QtTranslationsLoader</parameter>
|
|
<parameter key="translation.loader.csv.class">Symfony\Component\Translation\Loader\CsvFileLoader</parameter>
|
|
<parameter key="translation.loader.rb.class">Symfony\Component\Translation\Loader\ResourceBundleLoader</parameter>
|
|
<parameter key="translation.loader.ini.class">Symfony\Component\Translation\Loader\IniFileLoader</parameter>
|
|
<parameter key="translation.dumper.php.class">Symfony\Component\Translation\Dumper\PhpFileDumper</parameter>
|
|
<parameter key="translation.dumper.xliff.class">Symfony\Component\Translation\Dumper\XliffFileDumper</parameter>
|
|
<parameter key="translation.dumper.yml.class">Symfony\Component\Translation\Dumper\YamlFileDumper</parameter>
|
|
<parameter key="translation.dumper.qt.class">Symfony\Component\Translation\Dumper\QtFileDumper</parameter>
|
|
<parameter key="translation.dumper.csv.class">Symfony\Component\Translation\Dumper\CsvFileDumper</parameter>
|
|
<parameter key="translation.dumper.ini.class">Symfony\Component\Translation\Dumper\IniFileDumper</parameter>
|
|
<parameter key="translation.extractor.php.class">Symfony\Bundle\FrameworkBundle\Translation\PhpExtractor</parameter>
|
|
<parameter key="translation.loader.class">Symfony\Bundle\FrameworkBundle\Translation\TranslationLoader</parameter>
|
|
<parameter key="translation.extractor.class">Symfony\Component\Translation\Extractor\ChainExtractor</parameter>
|
|
<parameter key="translation.writer.class">Symfony\Component\Translation\Writer\TranslationWriter</parameter>
|
|
</parameters>
|
|
|
|
<services>
|
|
<service id="translator.default" class="%translator.class%">
|
|
<argument type="service" id="service_container" />
|
|
<argument type="service" id="translator.selector" />
|
|
<argument type="collection" /> <!-- translation loaders -->
|
|
<argument type="collection">
|
|
<argument key="cache_dir">%kernel.cache_dir%/translations</argument>
|
|
<argument key="debug">%kernel.debug%</argument>
|
|
</argument>
|
|
</service>
|
|
|
|
<service id="translator" class="%translator.identity.class%">
|
|
<argument type="service" id="translator.selector" />
|
|
</service>
|
|
|
|
<service id="translator.selector" class="%translator.selector.class%" public="false" />
|
|
|
|
<service id="translation.loader.php" class="%translation.loader.php.class%">
|
|
<tag name="translation.loader" alias="php" />
|
|
</service>
|
|
|
|
<service id="translation.loader.yml" class="%translation.loader.yml.class%">
|
|
<tag name="translation.loader" alias="yml" />
|
|
</service>
|
|
|
|
<service id="translation.loader.xliff" class="%translation.loader.xliff.class%">
|
|
<tag name="translation.loader" alias="xliff" />
|
|
</service>
|
|
|
|
<service id="translation.loader.po" class="%translation.loader.po.class%">
|
|
<tag name="translation.loader" alias="po" />
|
|
</service>
|
|
|
|
<service id="translation.loader.mo" class="%translation.loader.mo.class%">
|
|
<tag name="translation.loader" alias="mo" />
|
|
</service>
|
|
|
|
<service id="translation.loader.qt" class="%translation.loader.qt.class%">
|
|
<tag name="translation.loader" alias="ts" />
|
|
</service>
|
|
|
|
<service id="translation.loader.csv" class="%translation.loader.csv.class%">
|
|
<tag name="translation.loader" alias="csv" />
|
|
</service>
|
|
|
|
<service id="translation.loader.rb" class="%translation.loader.rb.class%">
|
|
<tag name="translation.loader" alias="rb" />
|
|
</service>
|
|
|
|
<service id="translation.loader.ini" class="%translation.loader.ini.class%">
|
|
<tag name="translation.loader" alias="ini" />
|
|
</service>
|
|
|
|
<service id="translation.dumper.php" class="%translation.dumper.php.class%">
|
|
<tag name="translation.dumper" alias="php" />
|
|
</service>
|
|
|
|
<service id="tranlsation.dumper.xliff" class="%translation.dumper.xliff.class%">
|
|
<tag name="translation.dumper" alias="xliff" />
|
|
</service>
|
|
|
|
<service id="translation.dumper.yml" class="%translation.dumper.yml.class%">
|
|
<tag name="translation.dumper" alias="yml" />
|
|
</service>
|
|
|
|
<service id="translation.dumper.qt" class="%translation.dumper.qt.class%">
|
|
<tag name="translation.dumper" alias="ts" />
|
|
</service>
|
|
|
|
<service id="translation.dumper.csv" class="%translation.dumper.csv.class%">
|
|
<tag name="translation.dumper" alias="csv" />
|
|
</service>
|
|
|
|
<service id="translation.dumper.ini" class="%translation.dumper.ini.class%">
|
|
<tag name="translation.dumper" alias="ini" />
|
|
</service>
|
|
|
|
<service id="translation.extractor.php" class="%translation.extractor.php.class%">
|
|
<tag name="translation.extractor" alias="php" />
|
|
</service>
|
|
|
|
<service id="translation.loader" class="%translation.loader.class%"/>
|
|
|
|
<service id="translation.extractor" class="%translation.extractor.class%"/>
|
|
|
|
<service id="translation.writer" class="%translation.writer.class%"/>
|
|
</services>
|
|
</container>
|