On Fri, Jul 24, 2015 at 02:06:07PM +0200, Martin Kolman wrote:
What happens is that we have the following translatable strings:
- "Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]"
- "q"
- "c"
- "r"
All of these strings can be translated *separately* and in many partial translations *some of them are translated while some are not*.
The end result is that we might be telling the user to press say "p" for "pokračovat" but me might actually expect "c" for continue, because the "c" string was not translated to "p".
This affects both the Anaconda and Initial Setup TUIs and can make the UI totally unusable.
The fix for this is to remove the keystrokes from the long strings and replace them by string formatting operators & do the keystroke transformation separately:
_("Please make your choice from above ['%s' to quit | '%s' to continue | '%s' to refresh]") % \ (_("q"), _("c"), _("r"))
This makes sure that we will always ask the user to type the same keystroke that is actually displayed.
Resolves: rhbz#1235617 Signed-off-by: Martin Kolman mkolman@redhat.com
pyanaconda/ui/tui/hubs/__init__.py | 6 ++++-- pyanaconda/ui/tui/hubs/summary.py | 5 ++++- pyanaconda/ui/tui/simpleline/base.py | 4 +++- pyanaconda/ui/tui/spokes/langsupport.py | 4 +++- pyanaconda/ui/tui/spokes/time_spoke.py | 3 ++- pyanaconda/ui/tui/tuiobject.py | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/pyanaconda/ui/tui/tuiobject.py b/pyanaconda/ui/tui/tuiobject.py index 9fbb726..58d3664 100644 --- a/pyanaconda/ui/tui/tuiobject.py +++ b/pyanaconda/ui/tui/tuiobject.py @@ -128,7 +128,7 @@ class YesNoDialog(tui.UIScreen): return True
def prompt(self, args = None):
return _("Please respond 'yes' or 'no': ")
return _("Please respond '%s' or '%s': ") % (_("yes"), _("no"))
Does this also need a translator comment?
I like this patch, barring problems from the translation team it has my ack.