On Jul 12, 2010, at 4:02 PM, mdipierro wrote:

> How about ## instead? ((...)) looks better but as I tried to implement
> it I realized that it ((opens and closes)) but there is no need to
> close unless we want to allow more than one set of ((..)). Do we?
> moreover it requires nasty regex.

That would reduce the likelihood of a collision, yes. And you're right; the 
close is superfluous, given that there's nothing following the variant string.

> 
> 
> 
> 
> 
> On 12 Lug, 17:56, Jonathan Lundell <jlund...@pobox.com> wrote:
>> On Jul 12, 2010, at 3:50 PM, mdipierro wrote:
>> 
>>> As a test, I implemented this in trunk
>> 
>>>        T(' hello world ') -> ' hello world
>>> '
>>>        T(' hello world # token') -> 'hello
>>> world'
>>>        T('hello # world # token') -> 'hello # world'
>> 
>>> I.e. if no # nothing changes. If one '#', everything on its right is
>>> not translated, everything is stripped. More than one '#' is ignored
>>> and this would allow to have '#' in the translated string.
>> 
>> That seems about right. I'm a *little* wary of using #, since it's pretty 
>> likely that there are existing T strings with a # in them, and they'll have 
>> to be fixed, no?
>> 
>> 
>> 
>>> What do you think?
>> 
>>> On 12 Lug, 17:30, Jonathan Lundell <jlund...@pobox.com> wrote:
>>>> On Jul 12, 2010, at 3:26 PM, mdipierro wrote:
>> 
>>>>> I like ((...)). If I understand you suggest stripping the whitespaces
>>>>> ONLY inside ((..)). Did I understand?
>> 
>>>> Stripping the main string, too--wasn't that the point of this exercise in 
>>>> the first place? I don't have a strong opinion, though.
>> 
>>>>> On 12 Lug, 17:22, Jonathan Lundell <jlund...@pobox.com> wrote:
>>>>>> On Jul 12, 2010, at 3:15 PM, mdipierro wrote:
>> 
>>>>>>> Ok but can I propose we use
>> 
>>>>>>> T('canto /* my room */') instead of [[...]] to avoid confusion with
>>>>>>> markmin syntax? This would b easy to implement.
>> 
>>>>>> Or ((my room)).
>> 
>>>>>> Or <<my room>>.
>> 
>>>>>> Regardless, you'd want to specify what happens to white space. Strip 
>>>>>> everything, I think, so T(' canto /* my room */') is equivalent to 
>>>>>> T('canto/*my room*/').
>> 
>>>>>> (That's why I don't much like /*...*/, though; it's sort of ugly without 
>>>>>> extra spaces.)
>> 
>>>>>>> On 12 Lug, 15:39, Jonathan Lundell <jlund...@pobox.com> wrote:
>>>>>>>> On Jul 12, 2010, at 1:32 PM, Álvaro Justen wrote:
>> 
>>>>>>>>> On Mon, Jul 12, 2010 at 17:16, Jonathan Lundell <jlund...@pobox.com> 
>>>>>>>>> wrote:
>>>>>>>>>> On Jul 12, 2010, at 12:51 PM, mdipierro wrote:
>> 
>>>>>>>>>>> suggestions? :-)
>> 
>>>>>>>>>> Ideally (from a usability pov), a variant="something" argument to 
>>>>>>>>>> T(), I suppose. But I can't think of a non-messy way to do it.
>> 
>>>>>>>>>> How about something like this:
>> 
>>>>>>>>>> T('string to translate [[VARIANT something]]')
>>>>>>>>>> T('string to translate [[VARIANT something else]]')
>> 
>>>>>>>>>> If there's no translation in effect, then [[VARIANT .*?]] *$ gets 
>>>>>>>>>> stripped from the string. Otherwise it's part of the lookup. It 
>>>>>>>>>> could just be
>> 
>>>>>>>>>> [[something]]
>>>>>>>>>> [[something else]]
>> 
>>>>>>>>>> ...keeping in mind that if you really wanted that at the end of a 
>>>>>>>>>> T() string, you could write:
>> 
>>>>>>>>>> T('blah blah [[blah]][[]]')
>> 
>>>>>>>>>> ...and only the trailing [[]] would be stripped.
>> 
>>>>>>>>>> BTW, there's a typo in languages.py:
>> 
>>>>>>>>>> # patter for a valid accept_language
>> 
>>>>>>>>>> (and the pattern could use a comment or three)
>> 
>>>>>>>>> I don't like the idea of changing the string to be translated. We can
>>>>>>>>> use a 'context' parameter as I said in other email some time ago,
>>>>>>>>> like:
>>>>>>>>> T('canto', context='my room') #translating from pt-BR to English
>>>>>>>>> should be 'corner'
>>>>>>>>> T('canto', context='music') #translating from pt-BR to English should 
>>>>>>>>> be 'sing'
>> 
>>>>>>>> That is, btw, my 'variant=' suggestion, above. If it's practical, I'd 
>>>>>>>> prefer it. But embedding the variant/context into the string would be 
>>>>>>>> (I think) less disruptive.
>> 
>>>>>>>> T('canto [[my room]]')
>>>>>>>> T('canto [[music]]')
>> 
>>>>>>>> Not as pretty, but almost identical in effect.


Reply via email to