Примечание: я не являюсь разработчиком RoR, поэтому, если в вопросе есть что-то неточное, поправьте меня.
RoR имеет собственную библиотеку i18n. Эта библиотека (опционально) использует формат YAML для файлов локализации. В этих файлах локализации пары ключ-значение используются там, где значением является предоставленный перевод, но эти пары ключ-значение могут находиться в пределах области (пространства имен), вот примеры:
Один пример отсюда - http://guides.rubyonrails.org/i18n.html
pt:
foo:
bar: baz
... ключ верхнего уровня - локаль. : foo - это ключ пространства имен и: bar
является ключом для перевода «Баз».
И еще один пример - http://ruby -on-rails-tutorials.blogspot.com / 2010/11 / i18n-in-rails3.html
en:
contact:
prices:
show_price: "%{price_dollar}$"
quote: "Coordinator: & quot;Crucifixion?& quot? & lt;br /& gt; Mr. Cheeky: & quot;Er, no, freedom actually.& quot;"
attributes:
created_at: "Created at"
updated_at: "Updated at"
helpers:
submit:
contact:
create: "Order"
update: "Modify"
label:
contact:
name: "Your name"
company_name: "Company name"
phone: "Phone number"
email: "E-mail"
comment: "Comment"
Пожалуйста, проверьте указатели для лучшего объяснения.
Альтернативный стиль, который можно придумать, - это сгладить атрибуты области действия: например, в последней цитате мы можем сказать:
helpers.label.contact.company_name: "Company name"
Я считаю, что вложенный стиль может быть очень запутанным при редактировании больших или глубоко вложенных файлов локализации. И действительно, я нашел пару мест, где поднимается эта проблема:
Причиной этого были сложности, с которыми я столкнулся, работая над огромным
часть данных во вложенных файлах yml. Имея несколько тысяч ключей в нескольких
переводы файлов, меня бесило, когда мне нужно было переименовать
переводить ключи, перемещать их в другое пространство имен и т. д. и пришлось
прокручивать много, глядя и задаваясь вопросом, что такое пространство имен ключа.
Кроме того, разрешение конфликтов слияния, проверка отсутствующих переводов в
другие файлы локали намного проще, когда вы видите полный ключ.
Мой вопрос: каковы преимущества наличия вложенного стиля. Есть ли какие-либо проблемы с плоским стилем, которые заставили разработчиков использовать вложенный стиль, несмотря на недостатки?