This is a small presentation of a Static Translations Bundle I wrote for Symfony that made my hand hurt less.

If you are not using something like LexikTranslationBundle or IbrowsSonataTranslationBundle (LexikTranslationBundle integrated to Sonata Admin) then this is a bundle for you.

If you ever created a Multilingual website with Symfony, you know that for every language you can create an xml file for hard coded strings. In every language file, there is a same trans-unit element for every string that needs translation where the target is the only different thing based on language.

en
<trans-unit id="post">
<source>Post</source>
<target>Post</target>
</trans-unit>
es
<trans-unit id="post">
<source>Post</source>
<target>Enviar</target>
</trans-unit>

Instead of copying every translation for every word in every language (that is a lot of Ctrl+C and Ctrl+V) you create a simple google sheet that looks like this and forward it to whoever is in charge of providing translations. After you get filled excel you use the command that bundle provided:

php app/console generate:static:translations /path/to/excel/file languages