2017 © Pedro Peláez
 

library translation-discovery

image

soundasleep/translation-discovery

  • Tuesday, March 3, 2015
  • by soundasleep
  • Repository
  • 1 Watchers
  • 0 Stars
  • 108 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 2 % Grown

The README.md

translation-discovery

translation-discovery is a Composer-enabled PHP script to locate translations across multiple PHP components from JSON files, which can then be combined together into single translations for project runtime., (*1)

Based on asset-discovery., (*2)

Configuring

First include translation-discovery as a requirement in your project composer.json, and run composer update to install it into your project:, (*3)

{
  "require": {
    "soundasleep/translation-discovery": "dev-master"
  }
}

Now create a translation-discovery.json in your project, to define the types of assets to discover, and where to place source files:, (*4)

{
  "src": ["vendor/*/*", "core"],
  "locales": {
    "fr": "generated/locales/fr.json",
    "de": "generated/locales/de.json"
  },
  "generate_php": true
}

translation-discovery will look in all the src folders for files called locales.json to find matching assets. Wildcards are supported. For example, in your vendor/my/package/locales.json:, (*5)

{
  "fr": "locales/fr.json",
  "de": ["locales/de/*.json"]
}

Building

Run the generate script, either with your build script or manually, with a given root directory:, (*6)

php -f vendor/soundasleep/translation-discovery/generate.php .

translation-discovery will then load all identified locale JSON files, combine all of the locale strings into one large JSON file, and then write this out to each locale destination JSON., (*7)

If generate_php is set to true, a .php file will also be generated which returns the locale strings in a format suitable for PHP require()., (*8)

These files can then be passed along to the next step in a build chain., (*9)

Discovering translation strings

Particularly if you are using the openclerk/i18n project, you can use the find script to locale potentially matching translation strings and output them into a template file in JSON., (*10)

Update translation-discovery.json in your project, to define the source locations:, (*11)

{
  "templates": ["vendor/openclerk", "core", "site"],
  "template": "site/locale/template.json"
}

Run the find script, either with your build script or manually, with a given root directory:, (*12)

php -f vendor/soundasleep/translation-discovery/find.php .

This script will find all instances of the following translation strings, and output them to the template JSON folder:, (*13)

  1. t("string")
  2. ht("string")
  3. plural("string", 1) and plural("string", "strings", 1)
  4. "string" /* i18n */
  5. And the single-quote versions of these patterns

Example projects

  1. Openclerk

TODOs

  1. More documentation, especially default translation-discovery.json parameters
  2. Create grunt task grunt-php-translation-discovery to wrap the manual PHP command
  3. Release 0.1 version

See also

  1. asset-discovery
  2. component-discovery
  3. openclerk/i18n

The Versions

03/03 2015

dev-master

9999999-dev

  Sources   Download

The Development Requires