[dev] [commits] Horde branch master updated. 0b14c18084d8fc19f2f20a316fdabef73fb1f570

Michael M Slusarz slusarz at horde.org
Wed Jan 29 19:19:13 UTC 2014


Quoting Jan Schneider <jan at horde.org>:

> 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".

That's fine.  (Yes, I was trying to pick a unique name that wouldn't  
conflict with an existing function name.)

michael

___________________________________
Michael Slusarz [slusarz at horde.org]



More information about the dev mailing list