Аз друго правя. gettext го ползвам за малки, много малки текстове -
лейбъли, туй онуй. За текстове като посочения имам една таблица,
сполучливо кръстена fragments:
>> Fragment
SQL (0.000603) SHOW TABLES
Fragment Columns (0.001127) SHOW FIELDS FROM `fragments`
=> Fragment(id: integer, en_content: text, keyword: string,
created_at: datetime, updated_at: datetime, title: string, keywords:
string, bg_content: text, ru_content: text)
>>
Тъй като обикновено такива обяснения ги бара редактора на сайта, и за
целта е хубаво да го прави през админа наместо през геттекста.
И в хелпъра:
def fragment(keyword)
t = Fragment.by_k(keyword)
t.nil? ? "-- #{keyword} is not defined, please create it from the
administrative panel using #{keyword} as identifier --" : bg? ?
t.bg_content : ru? ? t.ru_content : t.en_content
end
Може и по-хитро да се изиграе, сигурно. И не е напълно чисто откъм
това сайта да поддържа неограничено количество езици без да му дреме
за това. Което така или иначе почти винаги е химера.
Разбира се, мислел съм и в насоката на това моделите да са language
aware (за което знам, има плъгини). Но това е друга тема...
On Jul 14, 5:39 pm, "Stefan Kanev" <
stefan.ka...@gmail.com> wrote:
> Second-вам идеяата за паршъли. Ако имаш дълъг текст, който трябва да се
> поддържа на две места, то най-мъдро е да го изнесеш някъде. Така ако го
> промениш на едното място няма да забравиш за другото и всички останали
> облаги на DRY принципът.
>
> Иначе, чудно ми е как не сте се сетили да си дефинирате следната функция:
>
> def _insensitive(text)
> _(text.gsub(/\s+/, ' '))
> end
>
> Така избягваш проблема без парцали.
>