我希望有人可以看一下,因为我之前从未翻过任何英文,所以我不确定是否会有语法冲突。
我有:
en:
articles:
name: "Articles"
comments:
name: "Comments"
# things
no_results: "There are no %{things}"
my: "My %{things}"
然后在视图文件中,例如:
#title= t('articles.name')
%ul
%li= link_to t('my', things: t('articles.name')), articles_path(user)
.no_results= t('no_results', things: t('comments.name').downcase)
我正在尝试做的是干掉我的翻译,但也不会因使用方法而陷入困境:
在文本中使用时,似乎最常见的模型形式是大写和多元化,这就是我选择“文章”与“文章”或“文章”的原因。您是否支持视图文件中的上述方法,而不是:
articles:
one: "Article"
other: "Articles"
..可能会发展成这个混乱:
articles:
one: "Article"
other: "Articles"
one_l: "article"
other_l: "articles"
答案 0 :(得分:2)
不同的语言对句子的构建方式有不同的规则。翻译您的翻译可能会导致语法错误的外语句子。我建议一次坚持逻辑文本块。例如段落,句子,表达或单词。
例如,您假设在您希望将您的应用程序翻译成的每种语言中,单词“my”将始终位于“articles”之前,并且“my”只有一个单词。
在某些语言中,“my”的版本可能取决于随附的单词。我会用保加利亚语,因为我很清楚 - “我的车”翻译成“Moiata kola”和“我的卡车”翻译成“Moiat kamion”。不是“我的”直接翻译。
也可能在某些语言中你不得不说“我的文章”之前的“文章”之类的“我的文章”。对于不同的语言,您可以在“my”之前配置“文章”,但如果您的翻译包含多个变量,则可能会出现问题。
对于每一个,我都会有一个单独的行:“我的文章”,“没有文章”,“我的车”,“没有车”等等。
答案 1 :(得分:1)
您在帖子中描述的做法,即:
articles:
one: "Article"
other: "Articles"
是非常有效和正确的。至少我经常在我参与的项目中遇到它。至于"混乱"你提到过:
one_l: "article"
other_l: "articles"
Imho你不应该担心它,因为你基本上可以在任何字符串上调用downcase
。只要你使用给定语言的单数和复数形式,你就会很好。
至于%{things}
的不同位置,这很自然。你把它放在适合的地方。例如,用5种不同的语言:
not_saved:
one: ! '1 fejl medførte at denne %{resource} ikke kunne gemmes:'
other: ! '%{count} fejl medførte at denne %{resource} ikke kunne gemmes:'
not_saved:
one: ! '1 error prohibited this %{resource} from being saved:'
other: ! '%{count} errors prohibited this %{resource} from being saved:'
not_saved:
one: ! '1 virhe esti %{resource} tallentamisen:'
other: ! '%{count} virhettä esti %{resource} tallentamisen:'
not_saved:
one: ! 'Én feil gjorde at %{resource} ikke kunne lagres:'
other: ! '%{count} feil gjorde at %{resource} ikke kunne lagres:'
not_saved:
one: ! '1 fel hindrade denna %{resource} från att sparas:'
other: ! '%{count} fel hindrade denna %{resource} från att sparas:'
希望有所帮助