我感觉这里的第一个动词应该是“are”而不是“is”。在目前的句子(有点混乱)中,两者看起来都不完美。
在这种情况下,我认为你是对的。我会使用“are”。但我可以接受界面上出现类似情况——我想总有比各种可能组合的完美语法逻辑更紧急的代码要写。
当然。
有两个文本包含“,或浏览”。这是其中一个。显然,它经过了深思熟虑。
{ 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 行文本,当我将其粘贴到这里的帖子中时,我没有仔细检查。我认为你提出的修改读起来也不太好。整个句子措辞都很糟糕,最好还是重新组织一下。
但那样的话,您需要匹配复数:“there are… topics remaining”……我想?
等等,不对。那样的话,我们就会遇到“1 new topics”——即使“topics”指的是未读和新的集合。
唉,看了几分钟后,感觉没有什么完全正确。这句话可能是一个陷阱。![]()
同样,这些小问题不会困扰我——但如果我必须重新组织一下,可能会是这样的:
查看 [xx] 个未读主题、[xx] 个新主题,或浏览其他主题……
我认为这很难翻译成所有语言。那有多种复数的语言怎么办?
“还有 1 个未读主题和 1 个新主题剩余”怎么样?
德语翻译使用了类似的东西:“1 个未读 主题和 1 个新 主题剩余。”
Crowdin 在测试这些字符串方面非常有帮助,因为您可以选择参数并查看文本预览。例如

您可以在此处找到文本: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 个未读主题和 4 个新主题,或浏览…