在Rails的i18N翻译yml文件中,感叹号代表一个重要的警告,它表示该翻译条目缺少必需的翻译。

12
我使用Rails i18n 来本地化我的网站。
在翻译的yml文件中,我看到:
time:
    am: am
    formats:
      default: ! '%a, %d %b %Y %H:%M:%S %z'
      long: ! '%d %B, %Y %H:%M'
      short: ! '%d %b %H:%M'
    pm: pm

感谢您提供的信息(来自https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-GB.yml)。

感叹号代表什么意思?如果去掉感叹号,有什么不同?

谢谢


2
你有试着移除它们看看是否能注意到任何不同吗?冒险精神去哪了? - TheZ
3
在YAML中,单个感叹号用于表示引用anchor的别名。例如,假设您在文档中定义了一个名为"my_anchor"的值,并且希望在文档其他位置引用该值,您可以使用类似于以下的语法:*my_anchor。然后,如果您想要对该值进行修改或更新,只需更新原始定义即可,所有引用该值的地方都将自动更新。 - Stefan
1
我已经阅读了@Stefan发布的链接,但我仍然不明白这如何适用于Rails。 - Andy Waite
1
请看这个答案:https://dev59.com/PWkw5IYBdhLWcg3wwdUS - tigrish
@Stefan - 如果您愿意将解决方案总结为自己的答案,我会删除我的答案。(详见http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments,了解此举有何帮助。)谢谢! - DreadPirateShawn
@DreadPirateShawn 我已将其标记为重复。 - Stefan
2个回答

9

%是YAML中的特殊字符。使用单个感叹号可以避免它被解析为特殊字符,使其作为字符串传递。


2
将整个字符串用引号括起来,是否与在前面使用单个感叹号等效? - Magne

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接