【问题标题】:Rails 3.0.12 translation file won't parse with "couldn't parse YAML at line 1 column 0"Rails 3.0.12 翻译文件不会解析为“无法在第 1 行第 0 列解析 YAML”
【发布时间】:2012-04-18 17:35:57
【问题描述】:

我相信我有一个有效的 yml 翻译文件,由于特殊字符而无法解析。例如“switchfrench: 'Français'”加载失败并出现错误,无法在第 1 行第 0 列解析 YAML。yml 文件“switchfrench: 'Francais'”正确加载。

https://gist.github.com/2415270

关于如何解析它的任何想法?

【问题讨论】:

  • File.read('config/locales/app.fr.yml') 给你什么?也许更好:Rails.root.read('config/locales/app.fr.yml')
  • 我更新了gist.github.com/2415270。 File.read 正确读取文件,但 Rails.root.read 引发“TypeError: can't convert String into Integer”
  • 啊,我的意思是说 Rails.root.join('config/locales/app.fr.yml').read
  • 正确读取文件
  • 看起来读取添加了一个不会解析的转义字符:YAML.parse("switchfrench: Fran\xE7ais\n")

标签: ruby-on-rails internationalization yaml language-translation


【解决方案1】:

好的,这样就可以了:

1.9.3p125 :008 > YAML.load("switchfrench: Français\n")
 => {"switchfrench"=>"Français"} 

如果您尝试从控制台将其写入磁盘会怎样,如下所示:

File.open('config/locales/app.fr.yml', 'w') {|f| f << "switchfrench: Français\n" }

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 2017-01-09
    • 2011-06-24
    • 2011-02-12
    • 2021-03-25
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多