← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1307476] Re: contextual-markers under-usage leads to babble looking translations

 

** Changed in: horizon
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1307476

Title:
  contextual-markers under-usage leads to babble looking translations

Status in OpenStack Dashboard (Horizon):
  Fix Released

Bug description:
  Contextual markers: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#contextual-markers
  are used only in horizon.tables.actions.BatchAction._get_action_name in the whole code, and even there, the translation lacks of context.

  Indeed, we have::

              if action_type == "past":
                  msgstr = pgettext_lazy("past", "%(action)s %(data_type)s")
              else:
                  msgstr = pgettext_lazy("present", "%(action)s %(data_type)s")

  But "%(action)s and %(data_type)s" use "action" and "data_types" are already translations coming from a context agnostic translation.
  This leads to buttons in French like "Redémarrage à Chaud Instances" (which is incorrect and should be "Redémarrage à chaud des instances") and "Terminer Instances" (which should be "Terminer les instances") (both the missing "les" (plural) and "l'" (singular) and the Camel-Case in the sentence, looks more like babbling rather than speaking in French, but I'm sure many other languages are impacted).
  Currently The translators can do nothing about it and can not be blamed at all, simply because because the context is not handled, so they have to make a compromise of the "less babbling looking translation".

  So BatchAction sublcasses should also use contextual-markers for their
  action_* and data_type_* attributes, because even there, translations
  are correct in a context, and wrong in an other (depending where it
  will be rendered) since "Instance" needs to be translated either
  "Instance" or "L'instance" depending on the context (and only Proper
  nouns have a capital letter inside a sentence in many languages like
  French so "L'instance" will also have to be "l'instance", etc...).

  Many Translation errors are due to lack of contextual-markers in the
  translatable strings.

  We should therefore add more contextual-markers in the translation
  strings and handle words which will be isolated or inside a sentence
  (for the capital letter on non-Nouns).

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1307476/+subscriptions


References