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.
On 12 Lug, 17:56, Jonathan Lundell <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote: > >>>>>> On Jul 12, 2010, at 1:32 PM, Álvaro Justen wrote: > > >>>>>>> On Mon, Jul 12, 2010 at 17:16, Jonathan Lundell <[email protected]> > >>>>>>> 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.

