We do this by parsing out the format specifiers and making sure the
translation has the correct number, type, and order of specifiers.
Percent literals ('%%') are ignored.
Mis-matched formats can lead to much badness, so to be safe, use the
untranslated string instead and flag it as a problem on the translation
site.
Change-Id: Ib48c2e5c3502735b1c724dd3621549faa8b602b7
A lot of our translations have voice phrases that are identical
to English, even though they are translated in the display text.
In these scenarios, just use the translated text when generating
the voice files. These will still be flagged as problems by the
translation web site!
Change-Id: I39a9888eaad650e4c847cccc60bd89cf44ae150a
When a prase is translated but the voice is not, default to using
the translated phrase over the untranslated English voice
Change-Id: Ie2cb1c6d0c370f450586b8a4653f1a073f8aec9d
For example, English would say "231" as "two hundred thirty one" but
many other languages would say "two hundred one and thirty"
So, if VOICE_NUMERIC_TENS_SWAP_SEPARATOR is not an empty string, swap
the tens and ones position and use that string ("and" in the above
example) as the voiced separator.
Change-Id: I69f8064d44b3995827327cabae6ad352bf257d04