Page MenuHomePhabricator

Make it more clear when a translation provides bad variants
ClosedPublic

Authored by epriestley on Mar 29 2016, 12:31 PM.
Tags
None
Referenced Files
F13183717: D15545.id.diff
Fri, May 10, 11:26 AM
F13175955: D15545.id37479.diff
Wed, May 8, 9:06 AM
Unknown Object (File)
Tue, May 7, 7:52 AM
Unknown Object (File)
Mon, May 6, 10:37 AM
Unknown Object (File)
Fri, May 3, 7:32 AM
Unknown Object (File)
Thu, Apr 25, 1:36 AM
Unknown Object (File)
Fri, Apr 19, 9:53 PM
Unknown Object (File)
Tue, Apr 16, 11:03 AM
Subscribers
None

Details

Summary

Ref T10688. When you have a translation like "I saw %s dog(s)", you can provide multiple variants in the translation file that are selected based on the argument's plurality or gender.

However, if you pass something which is not a number and not gendered, we can't use it to choose a variant (we have no idea which variant we should select for a phutil_tag() or arbitrary string).

An example of bad variant data is:

'%s touched %s %s time(s).' => array(
  array(
    '%s touched %s once.',
    '%s touched %s %s times.',
  )
)

This data intends to vary on the third parameter (the number of touches) but actually varies on the second parameter (the touched thing).

Unless that second parameter is a number or a person, this data is incorrect and tries to vary on a non-gendered, non-plural value.

The correct data uses an extra array to vary on the third parameter instead of the second parameter:

'%s touched %s %s time(s).' => array(
  array(
    array(
      '%s touched %s once.',
      '%s touched %s %s times.',     
    )
  )
)
Test Plan

Screen Shot 2016-03-29 at 5.26.49 AM.png (640×1 px, 171 KB)

Diff Detail

Repository
rPHU libphutil
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Make it more clear when a translation provides bad variants.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added reviewers: chad, lpriestley.
chad edited edge metadata.
This revision is now accepted and ready to land.Mar 29 2016, 1:47 PM
This revision was automatically updated to reflect the committed changes.