Discussing Brazilian portuguese (pt_BR) translations

Following the recommendation on Translation and proofreading disabled for some languages I’m posting here some strings that were changed to something (IMHO) worse than before.

Some examples: js.actions_codes.{autoclosed,closed,archived,pinned,pinned_globally,visible} from Update translations · discourse/discourse@4b9390b · GitHub

Taking the js.action_codes.closed example:
Previously it was “(renato) fechou 4 dias atrás”, now it’s shown as:

  1. Verbs translated to past participle instead of simple past
    Considering these verbs are after a user avatar, I read them as (user) (verb) (when), so the previous version looks more natural.

  2. Topics/posts don’t need gender flexion, hence fechado(a) with the suffix (a) for the female variant doesn’t make sense.

  3. The {when} variable with a “em” prefix generates some odd results, like the one in the screenshot, specially because these dates are always in the past.

Maybe 3 is subject to a request on its own, when the date is in the past, {when} is e.g. “4 dias atrás”, when it’s in the future, it’s just “4 dias”, so using “em” as a prefix works with future dates but becomes odd on past dates, and removing the “em” is OK on past dates, but odd on future dates.

Maybe the ideal – and breaking – solution would be to automatically have {when} prefixed with “em” on future dates, the same it’s currently suffixed with “atrás” on past dates. However, there are cases like js.badges.granted_on, translated to “Concedido em {date}”, that generate strings like “Concedido em 6 d”, giving the wrong impression of a future date, but is fine when outside of the relative date window, e.g. “Concedido em 19 mar”.



Oh my, that is awful…

Can we forward this feedback @gerhard ?


@renato Thanks for the feedback. I forwarded it to the translator.


Hi @gerhard,

I believe these strings should not have the “atrás” suffix, basically reverting to how it was before these changes. The suffix is already present when the date is in the past and shown as relative and it doesn’t make sense with absolute dates.

Some examples in production:

Also, there are some strings interpolating a time variable that we are unable to translate properly for all scenarios using the current approach, like the js.badges.granted_on mentioned before. It has {date} as a variable which may resolve to e.g. “11 d” (relative, missing the “atrás” suffix that is implicit on {when}) or to “24 mai” (absolute), so the current pt_BR value for this key “Concedido em {date}” isn’t correct for the relative variant (and personally I don’t see any value that would work for both cases).


Another example: js.topic.status_update_notice was changed to add “em” before the {timeLeft} variable, so it’s duplicated now: “Este tópico será automaticamente excluído em em 7 dias.”.


It looks like we will need to make adjustments in code to account for relative and absolute dates. Otherwise it’s kinda hard to translate these strings properly. We have an internal todo for it.