Some more...
@JustAMan: The "Off" button in TTS is indeed a .png. This is straight from com.amazon.ebook.booklet.reader.plugin.tts.resourc es.TTSResources:
Code:
}, new Object[] {
"tts.volume.play.img", "resources/play.png"
}, new Object[] {
"tts.volume.pause.img", "resources/pause.png"
}, new Object[] {
"tts.volume.quieter.img", "resources/quieter.png"
}, new Object[] {
"tts.volume.louder.img", "resources/louder.png"
}, new Object[] {
"tts.volume.off.img", "resources/off.png"
}, new Object[] {
"tts.alert.dialog.title", "Text-to-Speech Alert"
I see two options here:
- leave it as it is.
- Somebody creates a graphical button which is language-neutral and can be included in all locale packs.
Option 1) is currently employed, and is only a minor nuisance IMO.
Option 2) would require special handling. That's ok I guess, we do a lot of special cases anyway already. The question is who designs it, and what it should look like. The only thing that I can personally think of at the moment is something like
a shutdown button, but I'm not sure that this is intuitive enough.
Concerning the "foolproofness" of translations, I don't like the idea of escaping HTML, or MessageFormat patterns, at all. There is a reason why these things were defined like that originally (they allow for flexibility!), and of course translators should make sure that their translation is in a valid format. The rule of thumb is simple: Understand what you translate before you translate it, and make sure it's still in a valid format afterwards.
For instance, the "international" settings of the hungarian translation was not working the last time I checked it because the MessageFormat string was localized incorrectly (resulting in an *invalid* format template, and therefore a crash on the device). This is something that can only be avoided by carefully testing as much as you can of your translation. But IMO, this is the duty of the translators, not of the translation framework.
(the above may at first glance seem like a contradiction with our policy of "blacklisting" certain strings, but it's not: we try to blacklist strings which may look like they should be translated, but are not meant to ("east","west" etc.), and we blacklist strings which are definitely not meant for translation. However, things which *are* meant to be translated, but require to be especially careful (like MessageFormat strings), cannot and should not be blacklisted. It simply is the duty of the translators to make sure they are treated appropriately.)