Вы не должны использовать библиотеку YAML, как предложено в других ответах.Он испортит форматирование длинных строковых значений, удалит ваши комментарии и выплюнет нечитаемые экранированные символы, когда вы используете акценты и специальные символы (что вы и сделаете, поскольку вы делаете i18n).Используйте этот драгоценный камень, который я создал:
https://github.com/redealumni/i18n_yaml_sorter
Он будет сортировать только строки в файле, поэтому все останется таким же, как и на исходном yaml (ваши акценты, YAMLконструкция, которую вы использовали для ввода строк, отступов и т. д.).Это будет работать с глубоко вложенными ямлами, и результаты довольно солидны.Драгоценный камень включает в себя тесты и подходит для ruby 1.8 или 1.9.
Он поставляется с пакетом TextMate (Shift + Command + S) и рейк-рейком, так что вы можете легко и быстро сортировать файлы в редакторе.Это действительно быстро.
Чтобы проиллюстрировать разницу:
Оригинал:
pt-BR:
# Note how this is a nice way of inputing
# paragraphs of text in YAML.
apples: >
Maçãs são boas,
só não coma
seus iPods!
grapes: Não comemos elas.
bananas: |
Bananas são "legais":
- Elas são <b> doces </b>.
isto: não é chave
Por isto todos gostam de bananas!
Результаты по YAML :: dump:
pt-BR:
apples: "Ma\xC3\xA7\xC3\xA3s s\xC3\xA3o boas, s\xC3\xB3 n\xC3\xA3o coma seus iPods!\n"
bananas: "Bananas s\xC3\xA3o \"legais\":\n - Elas s\xC3\xA3o <b> doces </b>.\n isto: n\xC3\xA3o \xC3\xA9 chave\n\n\ Por isto todos gostam de bananas!\n"
grapes: "N\xC3\xA3o comemos elas."
Результаты поi18n_yaml_sorter:
pt-BR:
# Note how this is a nice way of inputing
# paragraphs of text in YAML.
apples: >
Maçãs são boas,
só não coma
seus iPods!
bananas: |
Bananas são "legais":
- Elas são <b> doces </b>.
isto: não é chave
Por isto todos gostam de bananas!
grapes: Não comemos elas.