Page MenuHomePhabricator

timestamp in Hebrew and possibly other languages must support more than singular and plural
Closed, DuplicatePublic

Description

When the article was edited 2 days ago, the timestamp in Hebrew literally says "2 days ago" (לפני 2 ימים). It must support the dual number, where the number "2" is embedded in the word (יומיים). This is supported in MediaWiki and CLDR. It is needed for other languages - Arabic, Slovenian and possible others.


Version: Android (alpha)
Severity: normal

Details

Reference
bz63265

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 2:57 AM
bzimport set Reference to bz63265.
bzimport added a subscriber: Unknown Object (MLST).

Is this still an issue for Android? In theory multiple plural numbers should be supported...

Meanwhile looks like there's a couple ways to handle this on iOS:

First is to use a handy third-party library that maps the plural rules to separate messages: https://github.com/Smartling/ios-i18n

Second is to use a new extension in iOS 7, and leave some plurals 'broken' for iOS 6 users:
https://developer.apple.com/library/mac/releasenotes/Foundation/RN-Foundation/#//apple_ref/doc/uid/TP30000742-CH2-SW56

Either way we'll need to extend the Translate extension's AppleFFS module to convert to/from {{PLURAL:}} as used on TWN.

This last one probably maps best to MediaWiki-style {{PLURAL:}} coding in terms of being able to vary individual chunks of messages, but as it requires creating a separate .stringsdict file I'm not sure if that complicates the input/output processing beyond what the Translate FFS interface supports.

My inclination is to go with the second method for now; can use code similar to the AndroidXmlFFS module to flatten/unflatten translations using {{PLURAL:}} on single keys, and the extra messages just go in/out of the same .strings file we're already operating on.

This is supported in MediaWiki
and CLDR.

...not without problems, see bug 64430.

I talked about it to Yuvi at Wikimania.

The problem is that the app uses Android's time formatting, and it apparently doesn't support the dual for Hebrew, and possibly has problems in other languages as well.

There's another problem that arises from using this library, which is that when it has to use an actual date ("August 6"), the correct preposition is not used, because it cannot be translated in the message.

The possible solutions are:

  1. To separate it to two or more messages for different cases (with and without human timestamps and maybe more).
  2. To stop using human timestamps.
  3. To develop Wikimedia's own human timestamps library.
  4. Use JodaTime, although Yuvi doesn't know whether it is localized as well as moment.js.