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
Unknown Object (File)
Wed, Dec 11, 4:46 PM
Unknown Object (File)
Sat, Dec 7, 3:45 PM
Unknown Object (File)
Tue, Dec 3, 10:06 AM
Unknown Object (File)
Fri, Nov 29, 7:24 AM
Unknown Object (File)
Tue, Nov 26, 7:37 AM
Unknown Object (File)
Nov 20 2024, 4:51 AM
Unknown Object (File)
Nov 19 2024, 10:31 AM
Unknown Object (File)
Nov 15 2024, 2:48 PM
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.