还有 1 条未读和 4 个新主题,或浏览其他主题中的...

我感觉这里的第一个动词应该是“are”而不是“is”。在目前的句子(有点混乱)中,两者看起来都不完美。

2 个赞

在这种情况下,我认为你是对的。我会使用“are”。但我可以接受界面上出现类似情况——我想总有比各种可能组合的完美语法逻辑更紧急的代码要写。

1 个赞

当然。

有两个文本包含“,或浏览”。这是其中一个。显然,它经过了深思熟虑。

{ HAS_UNREAD_AND_NEW, select,
  true {
    { UNREAD, plural,
         =0 {}
        one {您有 # 条未读消息}
      other {您有 # 条未读消息}
    }
    { NEW, plural,
         =0 {}
        one {还有 # 条新消息,或浏览其他 # 条个人消息}
      other {还有 # 条新消息,或浏览其他 # 条个人消息}
    }
  }
  false {
    { UNREAD, plural,
         =0 {}
        one {您有 # 条未读消息,或浏览其他 # 条个人消息}
      other {您有 # 条未读消息,或浏览其他 # 条个人消息}
    }
    { NEW, plural,
         =0 {}
        one {您有 # 条新消息,或浏览其他 # 条个人消息}
      other {您有 # 条新消息,或浏览其他 # 条个人消息}
    }
  }
  other {}
}

我认为您在第一个帖子中提到的不是文本。关于主题的是

{ HAS_UNREAD_AND_NEW, select,
  true {
    { UNREAD, plural,
         =0 {}
        one {There is # unread}
      other {There are # unread}
    }
    { NEW, plural,
         =0 {}
        one { and # new topic remaining,}
      other { and # new topics remaining,}
    }
  }
  false {
    { UNREAD, plural,
         =0 {}
        one {There is # unread topic remaining,}
      other {There are # unread topics remaining,}
    }
    { NEW, plural,
         =0 {}
        one {There is # new topic remaining,}
      other {There are # new topics remaining,}
    }
  }
  other {}
}
{ HAS_CATEGORY, select,
  true { or browse other topics in {categoryLink}}
  false { or view latest topics}
  other {}
}

此字符串使用 ICU 消息格式。有关翻译指南,请参阅 https://meta.discourse.org/t/7035。
当 HAS_UNREAD_AND_NEW 为 true 时,UNREAD 和 NEW 都大于 0
当 HAS_UNREAD_AND_NEW 为 false 时,UNREAD 或 NEW 中至少有一个大于 0
如果您正确理解了注释,那么第一个 is 需要更改为 are,因为这是针对 1 个未读和至少 1 个新主题的文本。如果更改了,您应该会看到“There are 1 unread and 1 new topic remaining,”
而“There is 1 new topic remaining,”和“There is 1 unread topic remaining,”仍然使用“is”。
如果我没错,您可以在您的论坛上通过将 js.topic.read_more_MF 中的第一个 is 更改为 are 来修复此问题。
然后我们可以在消息的那个上尝试同样的操作,并创建一个拉取请求来修复所有论坛的问题。

我没有意识到“浏览”无法识别正确的消息——我当时在打电话,Discourse 在一个单行字段中显示了大约 20 行文本,当我将其粘贴到这里的帖子中时,我没有仔细检查。我认为你提出的修改读起来也不太好。整个句子措辞都很糟糕,最好还是重新组织一下。

我没有添加那部分,因为我认为如果它说“或者浏览类别中的其他主题”或“或者查看最新主题”来决定开头的is,那就不相关了。构建那部分文本已经够难了。

但那样的话,您需要匹配复数:“there are… topics remaining”……我想?

等等,不对。那样的话,我们就会遇到“1 new topics”——即使“topics”指的是未读和新的集合。

唉,看了几分钟后,感觉没有什么完全正确。这句话可能是一个陷阱。:sweat_smile:

同样,这些小问题不会困扰我——但如果我必须重新组织一下,可能会是这样的:

查看 [xx] 个未读主题、[xx] 个新主题,或浏览其他主题……

我认为这很难翻译成所有语言。那有多种复数的语言怎么办?

“还有 1 个未读主题和 1 个新主题剩余”怎么样?

德语翻译使用了类似的东西:“1 个未读 主题和 1 个新 主题剩余。”

Crowdin 在测试这些字符串方面非常有帮助,因为您可以选择参数并查看文本预览。例如
Screenshot_20251008_025134_Chrome
您可以在此处找到文本:https://discourse.crowdin.com/editor/4/246/en-engb?view=comfortable#73668

啊,这确实让那部分更直接了。选项变得很清楚:

is

  • There is 1 unread topic remaining (还剩 1 个未读主题)
  • There is 1 new topic remaining (还剩 1 个新主题)

are

  • There are 3 unread topics remaining (还剩 3 个未读主题)
  • There are 3 new topics remaining (还剩 3 个新主题)
  • There are [xx] unread topic/s and [xx] new topic/s remaining (还剩 [xx] 个未读主题和 [xx] 个新主题)

那里隐含着“供你阅读”的意思……但当附加“或浏览”部分时,严格来说这很尴尬:“[事实陈述],或 [你可以采取的行动]。”

所以我想更接近一组动作:“现在你可以 x,或者 y。”

嗯。如果你将“There is/are”替换为“See”(我会去掉“remaining”),那么 topic/s 就成了唯一的复数决定:

  • See 1 unread topic, or browse… (查看 1 个未读主题,或浏览…)
  • See 1 new topic, or browse… (查看 1 个新主题,或浏览…)
  • See 3 unread topics, or browse… (查看 3 个未读主题,或浏览…)
  • See 3 new topics, or browse… (查看 3 个新主题,或浏览…)
  • See [xx] unread topic/s and [xx] new topic/s, or browse… (查看 [xx] 个未读主题和 [xx] 个新主题,或浏览…)

(没有强烈的感觉。我只是觉得这很有趣。我可能很奇怪。)

1 个赞

这是我想到的那种重组方式,将其变成一个完整的句子。

回到我不喜欢的文本,它将变成:

查看 1 个未读主题和 4 个新主题,或浏览…