jelix / simplelocalization
A simple class to manipulate localized messages
Installs: 40 799
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=7.4.0
Requires (Dev)
- phpunit/phpunit: ^8.5.30
This package is not auto-updated.
Last update: 2024-11-07 19:08:43 UTC
README
This is a simple class to load and give translated strings, for localization.
It was formerly used in the Jelix Framework.
installation
You can install it from Composer. In your project:
composer require "jelix/simplelocalization"
Usage
First create lang files. You can store strings of all lang into a single file, or in one file per lang. Each file is a PHP array, and each strings have a key.
Example. Here is a file translation.en.php
for english strings:
<?php return array( 'welcome' => 'Hello world', 'thank.you' => 'Thank you' );
Now translation.fr.php
for french strings:
<?php return array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' );
Or if you choose to have a single file translation.php
:
<?php return array( 'en' => array( 'welcome' => 'Hello world', 'thank.you' => 'Thank you' ), 'fr' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ) );
Now in your PHP code, instanciate a container:
// with multiple files $locales = new \Jelix\SimpleLocalization\Container('translation.%LANG%.php'); // note that %LANG% in the path will be replace by a lang code // with a single file $locales = new \Jelix\SimpleLocalization\Container('translation.php'); // with an array of file name. You can mix path with `%LANG%` tag and path without it $locales = new \Jelix\SimpleLocalization\Container(array('translation.%LANG%.php', 'other_translation.php')); // with an array of strings $locales = new \Jelix\SimpleLocalization\Container(array( 'en' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ), 'fr' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ) ));
As second parameter to the constructor, you can give a lang code. If not given
the current lang will be guessed from $_SERVER['HTTP_ACCEPT_LANGUAGE']
;
Now, to retrieve a string from its key:
$str = $locales->get('welcome');
That's it...