• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Localization and plural rules revisited
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Localization and plural rules revisited


  • Subject: Re: Localization and plural rules revisited
  • From: Peter Edberg <email@hidden>
  • Date: Tue, 20 May 2008 10:08:48 -0700

CLDR (Common Locale Data Repository) has some draft data on plural forms for various languages. See
<http://unicode.org/cldr/data/charts/supplemental/language_plural_rules.html > for specific rules
and
<http://unicode.org/draft/reports/tr35/ tr35.html#Language_Plural_Rules> for background info.


-Peter Edberg

On May 20, 2008, at 1:48 AM, email@hidden wrote:

----------------------------------------------------------------------

Message: 1
Date: Mon, 19 May 2008 22:02:08 -0500
From: Ricky Sharp <email@hidden>
Subject: Localization and plural rules revisited

There was a very short thread on NSLocalizedString regarding plural
rules:

<http://lists.apple.com/archives/cocoa-dev/2007/Oct/msg01208.html>


My app is mainly localization ready, but I still need to modify some problem code regarding plurals. Specifically, I have code which takes some quantity 'n' and pulls an appropriate localized string.

But, in English, there are only two plural rules and thus I currently
only have two separate strings.  While this exact code would work for
a few languages (e.g. Spanish), it would fail for languages with
different quantities of plural rules.

I looked at several of Apple's apps (iTunes, Address Book, Safari) and
there seems to be a different strategy regarding plural rules.  For
example, in English .strings, you have this:

1 song
%d songs

In Russian (which has three plural rules), they kind of "cheated" by
still only having two strings:

1 song
songs: %d


Is this really the common practice? To basically force all languages to just use two strings?


I thought of doing the following instead:

Figure out plural rules for given locale.  This rule theoretically
could be an entry in the .strings file itself that could be parsed to
denote a function.  Such a function would return the ordinal "plural
rule" value given some quantity "n".  The ordinal value would then get
appended to the base key.

So, in languages with two rules, you'd have something like this:

"%d song_0" = "%d song";
"%d song_1" = "%d songs";

In languages with 5 plural rules, you'd then have 5 keys ("%d
song_0" .. "%d song_4").

Has anyone else tackled this problem?

___________________________________________________________
Ricky A. Sharp         mailto:email@hidden
Instant Interactive(tm)   http://www.instantinteractive.com

\
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Localization and plural rules revisited
      • From: Ricky Sharp <email@hidden>
  • Prev by Date: Rendering issues with Core Animation and setWantsLayer:
  • Next by Date: Re: Programmatically get treecontroller selection
  • Previous by thread: Re: Localization and plural rules revisited
  • Next by thread: Re: Localization and plural rules revisited
  • Index(es):
    • Date
    • Thread