# 讨论巴西葡萄牙语（pt\_BR）的翻译

**URL:** <https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899>\
**Category:** Translations\
**Created:** [2021年七月22日 18:30 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899 "2021-07-22T18:30:12Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)\
**Post date:** [2021年七月22日 18:30 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/1 "2021-07-22T18:30:12Z")

</div>

根据 [Translation and proofreading disabled for some languages](https://meta.discourse.org/t/translation-and-proofreading-disabled-for-some-languages/193901) 上的建议，我在此发布一些被改为（在我看来）不如以前好的字符串。

一些示例：`js.actions_codes.{autoclosed,closed,archived,pinned,pinned_globally,visible}`，来自 [Update translations · discourse/discourse@4b9390b · GitHub](https://github.com/discourse/discourse/commit/4b9390bcc9e407e7257650034db79cfade2b1965)

以 `js.action_codes.closed` 为例：  
之前显示为 “**(renato) 4 天前关闭**”，现在显示为：

 ![image](https://global.discourse-cdn.com/meta/original/3X/0/f/0fe1f6def2b14b749c3934101846054f96fc0969.png)

1. 动词被翻译为过去分词而非一般过去时  
考虑到这些动词位于用户头像之后，我将其理解为“（用户）（动词）（时间）”，因此之前的版本看起来更自然。

2. 主题/帖子不需要性别变位，因此带有女性变体后缀 `(a)` 的 `fechado(a)` 没有意义。

3. 带有 “em” 前缀的 `{when}` 变量生成了一些奇怪的结果，如截图所示，特别是因为这些日期总是过去的。

也许第 3 点可以单独提出请求：当日期在过去时，`{when}` 例如是 “4 天前”；当日期在未来时，则只是 “4 天”。因此，使用 “em” 作为前缀适用于未来日期，但在过去日期时显得奇怪；而移除 “em” 在过去日期时没问题，但在未来日期时又显得奇怪。

也许最理想（但会破坏兼容性）的解决方案是：让 `{when}` 在未来日期时自动添加 “em” 前缀，就像目前它在过去日期时自动添加 “atrás” 后缀一样。然而，也存在一些例外情况，例如 `js.badges.granted_on` 被翻译为 “于 {date} 授予”，会生成类似 “于 6 天前授予” 的字符串，给人未来日期的错误印象；但在超出相对日期范围时（例如 “于 3 月 19 日授予”）则没有问题。

谢谢。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年七月22日 19:05 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/2 "2021-07-22T19:05:15Z")

</div>

> [@renato](#):
>
> 之前显示的是“ **(renato) 4 天前关闭**"，现在显示为：
> 
> ![image](https://global.discourse-cdn.com/meta/original/3X/0/f/0fe1f6def2b14b749c3934101846054f96fc0969.png)

天哪，这太糟糕了……

@gerhard，我们可以转发这条反馈吗？

---

<div class="post-metadata">

**Author:** ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)\
**Post date:** [2021年七月22日 19:47 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/3 "2021-07-22T19:47:23Z")

</div>

@renato 感谢您的反馈。我已将其转交给翻译人员。

---

<div class="post-metadata">

**Author:** ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)\
**Post date:** [2021年七月28日 18:37 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/5 "2021-07-28T18:37:33Z")

</div>

你好 @gerhard，

> <https://github.com/discourse/discourse/blob/2503d38dd2abd6fc4ae349066c3120342518f7d4/config/locales/client.pt_BR.yml#L137-L154>

我认为这些字符串不应包含“atrás”后缀，基本上应恢复为这些更改之前的状态。当日期为过去且以相对形式显示时，后缀已经存在，而对于绝对日期来说，加上后缀是不合理的。

生产环境中的一些示例：

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/e/1ecb93608d6066f29cac65a37d9fb7dacf2d2a4f.png)  
 ![image](https://global.discourse-cdn.com/meta/original/3X/6/6/664a7a43f7dffcda789478434106bbf34d459c66.png)

此外，还有一些字符串插入了时间变量，使用当前的方法无法在所有场景下正确翻译，例如之前提到的 `js.badges.granted_on`。它包含 `{date}` 变量，该变量可能解析为“11 d”（相对时间，缺少 `{when}` 中隐含的“atrás”后缀）或“24 mai”（绝对时间）。因此，当前 pt\_BR 中该键的值“Concedido em {date}"对于相对时间变体是不正确的（而且我个人认为没有任何值能同时适用于这两种情况）。

---

<div class="post-metadata">

**Author:** ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)\
**Post date:** [2021年八月4日 13:57 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/6 "2021-08-04T13:57:27Z")

</div>

另一个例子：`js.topic.status_update_notice` 被修改为在 `{timeLeft}` 变量前添加了 “em”，导致现在出现重复：“此主题将在 **在** 7 天后自动删除”。

> <https://github.com/discourse/discourse/blob/6b87ae3d4c6c3be4ebe077b5b16d163eb0b3b5b4/config/locales/client.pt_BR.yml#L2379-L2385>

---

<div class="post-metadata">

**Author:** ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)\
**Post date:** [2021年八月9日 16:04 UTC](https://meta.discourse.org/t/discussing-brazilian-portuguese-pt-br-translations/197899/7 "2021-08-09T16:04:24Z")

</div>

看起来我们需要在代码中做一些调整，以处理相对日期和绝对日期。否则，这些字符串很难正确翻译。我们内部已将其列入待办事项。
