GithubHelp home page GithubHelp logo

kilikfr / translationbundle Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 8.0 73 KB

Symfony Tool to help Import/Export (missing) translations

PHP 98.13% Shell 1.87%
translation missing-translations symfony export-translations

translationbundle's Introduction

Kilik Translation Bundle

KTB (Kilik Translation Bundle) is a tool to be used with Symfony Translator. It tries to simplify the exchanges with the (human) translators.

Note for Symfony 3.4+ / Symfony 4+ projects

Since symfony applications are not a bundle, we use the special bundle name 'app' to handle import and export of application translations not located into a bundle

From the command line you can export translations (filtering with bundles names, domains, and locales) to CSV (Tab separators).

Your translator (colleague, service provider, etc...) can open CSV files with specific translator tools (or with Office Software).

Then, you can import updated translations to your project.

The translations made in vendors are also supported (useful when you have to work on big applications with a lot of bundles).

Concepts:

  • your project is fully translated in a locale (locale reference, fallback)
  • it aims to simplify the process to translate missing translations with non-team people

Add this bundle to your application

composer require kilik/translation-bundle

Than, add this line to your AppKernel.php:

    $bundles = [
        // ...
        new Kilik\TranslationBundle\KilikTranslationBundle(),
        // ...
    ];

Export translations

Export translations to CSV:

export translations, with EN locale as reference, and match missing translations to FR or ES to a file:

./bin/console kilik:translation:export en fr,es AcmeBundle ~/translations.csv

work on some bundles at the same time:

./bin/console kilik:translation:export en fr,es AcmeBundle,MyOtherBundle ~/translations.csv

export only lines with missing translations:

./bin/console kilik:translation:export en fr,es AcmeBundle --only-missing ~/translations.csv

export only some domains:

./bin/console kilik:translation:export en fr,es AcmeBundle --domains messages,validators ~/translations.csv

export application only translations (Symfony 3.4+ / Symfony 4+1):

./bin/console kilik:translation:export en fr app ~/translations.csv

Import translations

Import translations from CSV (translations are merged with your current project translations).

import all translations from your CSV file, for a given locales:

./bin/console kilik:translation:import fr ~/translations.csv

import all translations from your CSV file, overriding existing translation keys:

./bin/console kilik:translation:import fr ~/translations.csv -o

import translations from your CSV file, for a specific bundle, for a given locales:

./bin/console kilik:translation:import fr --bundles AcmeBundle ~/translations.csv

import translations from your CSV file, for domains, for a given locales:

./bin/console kilik:translation:import fr --domains messages,validators AcmeBundle ~/translations.csv

you can also import translations with many locales:

./bin/console kilik:translation:import fr,es,nl ~/translations.csv

import translations from your CSV file, for application only translations (Symfony 3.4+ / Symfony 4+1):

./bin/console kilik:translation:import fr --bundles app ~/translations.csv

For bundle developpers

# prepare tests
./prepare-tests.sh

# run tests
./run-tests.sh

# launch composer
./scripts/composer.sh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.