Я використовую Rails 4 та Sublime Text. У мене є кілька сотень подань (шаблонів) із простими рядками тексту, які мені потрібно перетворити на перекладаються ключі. Приклад:
<p>Hello world!</p>
потрібно змінити на:
<%= t ".hello_world" %>
... і відповідний рядок потрібно додати до мого файлу I18n YAML приблизно так:
helo_world: "Hello world!"
Чи існує швидший спосіб зробити це, ніж редагування тексту вручну?
Відповіді:
-1 для відповіді № 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
Це зробить наступне:
- Візьміть будь-який виділений текст як введення
- Перетворіть його на змійний випадок (тобто створіть назву ключа I18n)
- Замініть виділений текст необхідним кодом Rails, щоб відтворити цей текст через Rails I18n.
- Скопіюйте ключ та оригінальний текст у буфер обміну для зручного вставлення у файл YAML.
Останній крок - призначити комбінацію клавішсервіс. Ви можете зробити це (на Mac), перейшовши до Системних налаштувань -> Клавіатури -> Ярлики -> Служби, вибравши нову службу, яку ви щойно створили, і давши їй ярлик.