-1

我正在使用Rails 4和Sublime Text。我有几百个视图(模板),我需要将纯文本字符串转换为可翻译的密钥。例如:有没有更快的方法来将Rails视图中的文本字符串转换为I18n键?

<p>Hello world!</p> 

需要被改为:

<%= t '.hello_world' %> 

...和相应的行需要被添加到我的I18n YAML文件,像这样:

helo_world: "Hello world!" 

有比手动编辑文本更快的方法吗?

+0

为什么人们非常讨厌这个问题/答案? –

回答

-1

如果您使用的是Mac,则可以设置一个简单的Automator脚本来为您处理大部分操作。

开放的Automator,使一个新的“服务”,并用下面的代码添加一个“运行AppleScript”行动:

on run {input} 
    -- Convert any capital letters to lower case 
    set lowerCaseString to do shell script "echo " & input & " | tr [:upper:] [:lower:]" 
    -- Convert any non letters/numbers to underscores 
    set key_name to do shell script "echo " & lowerCaseString & " | sed -e 's/[^a-zA-Z0-9]/_/g' -e 's/[0-9]/N/g'" 
    -- Add the new key inside the neccesary view syntax for Rails I18n 
    set new_text to "<%= t '." & key_name & "' %>" 
    -- Copy the key name and original string to the clipboard (for quick pasting into your I18n YAML file) 
    set the clipboard to key_name & ": \"" & input & "\"" 
    return new_text 
end run 

这将做到以下几点:

  1. 采取任何选择的文本作为输入
  2. 将它转换为蛇的情况下(即创建一个I18n密钥名称)
  3. 用所需的Rails代码替换所选文本以通过Rails I18n呈现该文本。
  4. 将密钥和原始文本复制到剪贴板,以便轻松粘贴到YAML文件中。

最后一步是为服务指定一个键盘快捷键。您可以通过转至系统偏好设置 - >键盘 - >快捷方式 - >服务,选择您刚刚创建的新服务并为其提供快捷方式来完成此操作(在Mac上)。

相关问题