Project-OSRM / osrm-text-instructions

Text instructions from OSRM route responses
BSD 2-Clause "Simplified" License
90 stars 63 forks source link

Dealing with change in translations #84

Open freenerd opened 8 years ago

freenerd commented 8 years ago

We will soon run into problems with translations getting out of sync with expected formats, since we can't get the translation in fast enough. Candidates for such change are https://github.com/Project-OSRM/osrm-text-instructions/issues/41 and https://github.com/Project-OSRM/osrm-text-instructions/issues/61.

Our gold standard is the english translation, all others follow. Just now, I think don't want to commit to guarantees regarding translations. We should do that eventually (e.g. every major release will include consistent translations).

For now we should establish fallbacks what happens when a translation is not available. I see two options:

  1. Fallback to english translation
  2. Fallback to not announcing the step as expected, but treat it as a turn instead

I guess option 2. might involve some tricky edge case handling around detecting that a translation is not there. It may also result in bad guidance. Option 1. on the other hand will certainly alienate some users. On the other hand, we can check for this case very easily during running tests and detect when a feature is missing. So I'm leaning towards option 1.

Opinions?

1ec5 commented 8 years ago

The iD project manages its localizations in Transifex. The iD project has a script that pulls in the localizations from Transifex. Transifex handles falling back to the original English string when a translation is missing, perhaps with logic for falling back to related languages; not sure. (There’s a special case for one localization to only pull in proofread translations.)

When the structure of a localizable file changes, all the affected messages get marked for retranslation, but Transifex maintains translation memory, so the translator can usually restore each message in one click. When iD releases, it releases, even if some localizations are incomplete. It would also be reasonable to establish a threshold where localizations that have less than (say) 50% coverage or are missing critical messages are automatically omitted from the built library.

/cc @bhousel

bsudekum commented 8 years ago

@1ec5 this seems like a great idea.