[dev] [commits] Horde branch master updated. 0b14c18084d8fc19f2f20a316fdabef73fb1f570
Jan Schneider
jan at horde.org
Wed Jan 29 11:08:18 UTC 2014
Zitat von Michael M Slusarz <slusarz at horde.org>:
> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>
>>> Quoting Michael M Slusarz <slusarz at horde.org>:
>>>
>>>> commit e8e8c48d6fffb73c3d9252a8ea3656cf1efb0cc1
>>>> Author: Michael M Slusarz <slusarz at horde.org>
>>>> Date: Tue Jan 28 00:07:33 2014 -0700
>>>>
>>>> [mms] Add Horde_Translation#gettext_define().
>>>>
>>>> Allows access to the original (English) text while still allowing text
>>>> to be translated.
>>>>
>>>> framework/Translation/lib/Horde/Translation.php |
>>>> 31 ++++++++-
>>>> framework/Translation/package.xml | 12 ++--
>>>> framework/Translation/test/Horde/Translation/WrapperTest.php | 3 +
>>>> 3 files changed, 36 insertions(+), 10 deletions(-)
>>>>
>>>> http://github.com/horde/horde/commit/e8e8c48d6fffb73c3d9252a8ea3656cf1efb0cc1
>>>
>>> Read the gettext/PHP documentation for hours, and I believe this
>>> is necessary since there is no built-in (or previously Horde
>>> implemented) way of being able to both:
>>>
>>> 1. Grab the original English gettext message in PHP code
>>> 2. Have the string be recognized by the translation extraction script.
>>>
>>> Please let me know if I have missed something.
>>>
>>> michael
>>>
>>> ___________________________________
>>> Michael Slusarz [slusarz at horde.org]
>>
>> The question is what are using this for? What we currently do when
>> we need English text, e.g. to be able to parse certain messages, is
>> to temporarily switch the locale to C. Works fine and switching
>> locales is really a no-brainer, performance-wise.
>
> We need this for logging purposes. i.e. Horde_Imap_Client returns
> translated messages as the error messages for Exceptions. This is
> correct, since there is an outside chance that this Exception
> message may slip through and be presented to the user ... and it
> eliminates the need for duplicate translations in every package that
> uses the library. But we don't want to log the exception details in
> the translated message, since everything else we log is in English.
>
> Otherwise, the only way I can think of to get the original error
> string (and without manipulating locales, since that's not something
> we ever do in a package) is to explicitly write all of the strings
> twice ... once as a non-gettext string, and once as a gettext
> string. That is just a waste of time and asking for transcription
> errors.
>
> Now we can do this:
>
> new Horde_Imap_Client_Exception(
> Horde_Imap_Client_Translation::gettext_string("FOO")
> );
>
> And the exception constructor can both translate the message
> (Exception->getMessage()), store the original English string
> (Exception->raw_msg property), and "FOO" will correctly appear in
> the gettext translation files as extracted by horde-translation.
>
> michael
>
> ___________________________________
> Michael Slusarz [slusarz at horde.org]
Understood. Can we make this method a bit shorter though? You probably
picked a verbose name to reduce the chance of the translation tool
picking up other methods of the same name. But a method name of the
scheme we already use in Horde_Translation (one-char methods) would
probably do the same. I suggest r() for "raw".
--
Jan Schneider
The Horde Project
http://www.horde.org/
https://www.facebook.com/hordeproject
More information about the dev
mailing list