I’m creating an open-source cms and was just wondering that which is the best way to add localizations? I already decided to have them in files similar to lang.en.php. I would assume arrays, but in which form?
$lang['xyz'] = "Text goes here!";
$lang['Text goes here!'] = "Translated text!";
Or should I create my custom parser and add localizations to a file, like this:
"Text goes here!" = "Translated text!";
And then just parse it.
What would you suggest? I tried to search but no results for me.
Martti Laine
I know the Gettext library for Desktop applications does something similar to your custom parser. Gettext has a module in PHP, but I’m not sure if it’s installed in most PHP installations by default.
Basically, you would write every string with it with a function name
tr("How are you?"). Then create a function to translate it:And in lang.es.php, have:
You would probably want to do
printf(tr("How are you, %s?"), $name);for variables, or proper nouns that should not be translated.