[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Lennart Regebro
On Wed, Jul 16, 2008 at 20:22, Stephan Richter
[EMAIL PROTECTED] wrote:
 On Wednesday 16 July 2008, Lennart Regebro wrote:
 Log message for revision 88417:
   Changed the API. It's unwieldy as it is, so better have separate method
   for plurals.

 It looks to me as if you only support one singular and one plural form.

Nope. Although I currently only test that case.

 I have read some commentary a long time ago, that some languages, like 
 Polish, have
 multiple plural forms. Is that supported?

Should be, but it's not tested yet.

While talking about this, what would a ZPT implementation of this best
look like? An i18n:count statement that takes expressions?

   p i18n:translate= i18n:count=view/file_countThere are %d files/p

Or?

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Stephan Richter
On Wednesday 16 July 2008, Lennart Regebro wrote:
 While talking about this, what would a ZPT implementation of this best
 look like? An i18n:count statement that takes expressions?

    p i18n:translate= i18n:count=view/file_countThere are %d files/p

 Or?

Good question! The ZPT above is not correct; once we write a correct one, it 
becomes more obvious:

p i18n:translate=There are span tal:content=view/num i18n:name=num 
i18n:count=view/num10/span files./p

Alternatively we could just evaluate the tal:content or tal:replace 
expression.

Regards,
Stephan
-- 
Stephan Richter
Web Software Design, Development and Training
Google me. Zope Stephan Richter
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Hanno Schlichting

Hi.

It's awesome to see some progress on this. You are aware of the Gettext 
manual at 
http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms right?


Stephan Richter wrote:

On Wednesday 16 July 2008, Lennart Regebro wrote:

While talking about this, what would a ZPT implementation of this best
look like? An i18n:count statement that takes expressions?

   p i18n:translate= i18n:count=view/file_countThere are %d files/p

Or?


Good question! The ZPT above is not correct; once we write a correct one, it 
becomes more obvious:


p i18n:translate=There are span tal:content=view/num i18n:name=num 
i18n:count=view/num10/span files./p


Alternatively we could just evaluate the tal:content or tal:replace 
expression.


So here's a set of additional use-cases:

p i18n:translate=
You selected the book called
span tal:content=title i18n:name=titlePython for dummies/span.
/p

In this case, the i18n:name shouldn't be treated as a number, so I think 
we need an explicit statement like i18n:count to signal this. We could 
have the i18n:count default to taking the expression if it is empty.



p i18n:translate=
You have to pay
span tal:content=view/formatted_amount i18n:name=amount 
i18n:count=view/amount6 dollars/span.

/p

In this case the underlying value is a simple integer, but the actual 
presentation might be locale dependent, like currency formatting.



p i18n:translate=
You selected
span tal:content=num i18n:name=num5/span
out of
span tal:content=total i18n:name=total10/span
files.
/p

I'm not sure what to do with this actually. How does multiple numbers in 
the same sentence are handled? I think this is just not allowed and 
should cause a syntax error, as there's no general way to translate 
those sentences with Gettext. Or does it result in a n-dimensional matrix?


br i18n:attributes=
You selected
span tal:content=num i18n:name=num5/span
out of
span tal:content=total i18n:name=total10/span
files.
/p


Can someone think about an example involving i18n:attributes? In TAL I 
cannot construct a dynamic one it seems.



How does this behave in regard to zope.i18nmessageid?

from zope.i18nmessageid import MessageFactory
_ = MessageFactory('domain')


mapping=dict(num=10)
foo = _(u'There are ${num} files.', mapping=mapping)


mapping=dict(num=10, name='/foo/bar')
foo = _(u'There are ${num} files in the folder named ${name}.', 
mapping=mapping)



So I think we need to signal to the messageid which variable in the 
mapping is significant for the i18n count, right?


Hanno

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Hanno Schlichting

Sorry.

There's some garbage in my last message. Disregard the following bits.

Hanno Schlichting wrote:

br i18n:attributes=
You selected
span tal:content=num i18n:name=num5/span
out of
span tal:content=total i18n:name=total10/span
files.
/p

Can someone think about an example involving i18n:attributes? In TAL I 
cannot construct a dynamic one it seems.


Hanno

P.S. There isn't someone working on msgctxt support, is there ;)
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Lennart Regebro
On Wed, Jul 16, 2008 at 20:55, Stephan Richter
[EMAIL PROTECTED] wrote:
 Good question! The ZPT above is not correct; once we write a correct one, it
 becomes more obvious:

 p i18n:translate=There are span tal:content=view/num i18n:name=num
 i18n:count=view/num10/span files./p

Ah, well, right. Of course all the examples you a %d substitution, but
I just realized that gettext in itself does no substituation at all,
so this is better. We should use the standard ${name} substitution for
this too. However, you can't have more than one number per message, so

p i18n:translate=There are span tal:content=view/num
i18n:name=num  i18n:count=view/num10/span files and span
tal:content=view/num i18n:name=num
i18n:count=view/dirs10/spandirectories./p

wouldn't make any sense. Which number should be used? So I actually
think i18n:count still should be on the main tag.

 Alternatively we could just evaluate the tal:content or tal:replace
 expression.

But then we wouldn't know if we have a plural substitution or not, and
we would have to start guessing...

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Lennart Regebro
On Wed, Jul 16, 2008 at 22:36, Hanno Schlichting [EMAIL PROTECTED] wrote:
 p i18n:translate=
 You have to pay
 span tal:content=view/formatted_amount i18n:name=amount
 i18n:count=view/amount6 dollars/span.
 /p

 In this case the underlying value is a simple integer, but the actual
 presentation might be locale dependent, like currency formatting.

Ah. Yes, that's a nice usecase I hadn't thought about.

 I'm not sure what to do with this actually. How does multiple numbers in the
 same sentence are handled? I think this is just not allowed and should cause
 a syntax error, as there's no general way to translate those sentences with
 Gettext. Or does it result in a n-dimensional matrix?

No, gettext only supports one number per message.

 How does this behave in regard to zope.i18nmessageid?

There will need to be some extension of the API, I think.

 So I think we need to signal to the messageid which variable in the mapping
 is significant for the i18n count, right?

It's easier to just pass in the i18n count separately, IMO.

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Checkins] SVN: zope.i18n/branches/regebro-pluralsupport/src/zope/i18n/ Changed the API. It's unwieldy as it is, so better have separate methods

2008-07-16 Thread Hanno Schlichting

Lennart Regebro wrote:

On Wed, Jul 16, 2008 at 22:36, Hanno Schlichting [EMAIL PROTECTED] wrote:

p i18n:translate=
You have to pay
span tal:content=view/formatted_amount i18n:name=amount
i18n:count=view/amount6 dollars/span.
/p

In this case the underlying value is a simple integer, but the actual
presentation might be locale dependent, like currency formatting.


Ah. Yes, that's a nice usecase I hadn't thought about.


How does this behave in regard to zope.i18nmessageid?


There will need to be some extension of the API, I think.


So I think we need to signal to the messageid which variable in the mapping
is significant for the i18n count, right?


It's easier to just pass in the i18n count separately, IMO.


Right. Since otherwise you won't be able to support the same use-case I 
outlined above in regard to the currency formatting. There the count 
variable might not be contained in the mapping at all.


Hanno

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )