翻译者通过将所有内容复制到单词中来完全弄乱了yaml文件(不要问)。
我已经使用正则表达式清理了文件,但现在缺少缩进(间距);一切都从第一个字符开始:
es:
default_blocks:
thank_you_html: "thank you text"
而不是
en:
default_blocks:
thank_you_html: "thank you text"
您是否知道如何自动将格式/结构/缩进从正确的文件(例如en.yml)复制到损坏的文件(例如es.yml)? (我使用textmate 2.0作为编辑器)
谢谢!
答案 0 :(得分:0)
假设原始和翻译每行包含完全相同的字符串(缩进问题除外),扫描前导空格的快速和脏脚本可以解决这个问题:
#!/usr/bin/env ruby
# encoding: UTF-8
indented = File.readlines(ARGV[0]).map do |l|
l.scan(/^\s+/)[0]
end.zip(File.readlines(ARGV[1])).map { |e| e.join }.join
File.open(ARGV[1], "w") { |io| io.write(indented) }
保存,使其可执行并调用
./script_name.rb en.yml es.yml
如果这不是常规任务,不会弄乱Textmate,但是您可以轻松地将其转换为命令,并通过对话框提示输出两个文件,或者在文件浏览器中选择两个文件,在其中打开其中一个当前选项卡并通过环境变量区分它们($ TM_FILEPATH,$ TM_SELECTED_FILES)