webtrendi/lexiconic

Utility and classes to facilitate gettext style translations in PHP

v1.0.0 2014-04-14 02:05 UTC

This package is not auto-updated.

Last update: 2024-03-16 12:17:46 UTC


README

Utility and classes to facilitate gettext style translations in PHP

Usage

Example file simple.php:

/* detect current language */
if (isset($_GET['locale'])) {
    $locale = $_GET['locale'];
} else {
    $locale = 'en_CA';
} //if

/* setup environment */
putenv("LANG=" . $locale);
putenv("LANGUAGE=" . $locale);
setlocale(LC_ALL, $locale);

/* setup extractor */
$extractor = new \Lexiconic\Extractor\GettextExtractor('application', __DIR__ .'/locale/');

/* get term functions */
$_ = $extractor->getTermFunction();

/* Use string extractor function */
echo $_('Ok this is simple enough'), PHP_EOL;

To scan files for terms you would run something like:

xgettext --language=PHP \\
  --keyword=_:1 --keyword=_:1,2c \\
  --keyword=_n:1,2 --keyword=_n:1,2,4c \\
  --output=./locale/simple.po  ./simple.php

Features

  • Supports context in strings
  • Abstracts the gettex library to support other methods
  • Does not invade global scope

To Do

  • scripts to extract strings
  • scripts to generate mo
  • classes to manipulate po files
  • implement other extractors
  • unit tests
  • more examples