[Phpmyadmin-devel] localization

Sebastian Mendel lists at sebastianmendel.de
Wed Sep 12 08:18:39 CEST 2007


Marc Delisle schrieb:
> Sebastian Mendel a écrit :
>> Hi,
>>
>> i know we discussed this already - but i will bring it up again
>>
>> currently any string needs to be in the locale files, even original english
>>
>> this makes it harder for external developers with own plugins - whether they
>> completely ignore our string files or they need to put their strings into
>> our locale files
>>
>> i think it would be nice to have a function for this - like many other project
>>
>> i would suggest something like:
>>
>> _('query executed successfully');
>>
>>
>>  - at least an english message is always displayed, even if not defined in
>> locale files
>>
>>  - we could better handle placeholders, escaping,
>>
>>
>> _('query %1 executed successfully', $array_strings, 'html');
>> _('query {1} executed successfully', $array_strings, 'js');
>> _('query {{1}} executed successfully', $array_strings, 'plain');
>>
>> we could split up language files into different parts - no need to always
>> load all lang strings
>>
>> we do not need to put english messages in foreign lang files if not translated
>>
>> we could easily apply filters if required
>>
>> $str* does not pollute global name space
>>
>> ...
>>
> 
> Sebastian,
> please give an example of the new calling sequence in this snippet:
> 
> if (PMA_PHP_INT_VERSION < 50200) {
>      echo '<div class="warning">' . sprintf($strUpgrade, 'PHP', '5.2.0') 
> . '</div>' . "\n";
> }

_('You should upgrade to {{1}} or newer.', 'html', 'PHP 5.2.0');
or
_('You should upgrade to {{1}} or newer.', 'html', array('PHP 5.2.0'));

or with html as default third parameter

_('You should upgrade to {{1}} or newer.', array('PHP 5.2.0'));
  You <u>should</u> upgrade to "<strong>PHP 5.2.0</strong>" or newer.

_('You should upgrade to {{1}} or newer.', array('PHP 5.2.0'), 'js');
  You <u>should</u> upgrade to \"<strong>PHP 5.2.0</strong>\" or newer.

_('You should upgrade to {{1}} or newer.', array('PHP 5.2.0'), 'plain');
  You _should_ upgrade to "*PHP 5.2.0*" or newer.

_('You should upgrade to {{1}} or newer.', array('PHP 5.2.0'), 'plain|js');
  You _should_ upgrade to \"*PHP 5.2.0*\" or newer.


or

_('Upgrade to {{1}}.', 'html', array('PHP 5.2.0'));

at least the shortest possible but still meaningful text

at least for simple words and short terms

longer texts, explanations, helptexts a.s.o. still could use some sort of
abbrevation

_('query_cache_size explanation.', 'html', array('PHP 5.2.0'));


en-US.inc.php
[You should upgrade to {{1}} or newer.]
You [u]should[/u] upgrade to "[b]{{1}}[/b]" or newer.
...

de-DE.inc.php
[You should upgrade to {{1}} or newer.]
Sie [u]sollten[/u] auf "[b]{{1}}[/b]" oder neuer umsteigen.
...


an optional call to PMA_lang_setContext() could be used for ambiguous words
or as an additional parameter to _()



gettext is also widely used tool for translation

http://www.debian.org/doc/manuals/intro-i18n/ch-library.en.html#s-gettext

(even in PHP)

http://php.net/gettext
http://pear.php.net/package/Translation2
http://php-flp.sourceforge.net/getting_started_english.htm

-- 
Sebastian




More information about the Developers mailing list