
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
![]() |
|
![]() |
![]() |
|
Имеется проект, написанный на Rails 2.3 с локализацией разных языков. Для локализации используется Globalize (если я не ошибаюсь, версии 1.1).
В связи с тем, что исходный текст строк (для view/model) нередко изменяется, то база данных переводов стала распухать из-за постоянного её пополнения, но, при этом, старые, неактуальные, переводы, всё ещё имеются. Задача: найти и удалить в БД те строки текста переводов (исходного и переводимых языков), которые уже не встречаются в исходных кодах проекта. Все строки в проекте, подлежащие локализации, в общем виде имеют формат "text".t или 'text'.t (t - translate). Но есть много строк вида "Found %d results".t и даже "Found #{x} results".t (местами в проекте), то есть с интерполяцией строки. Вот и думаю как быть. Банальный поиск в редакторе, пусть даже с регулярками, не спасёт (проект огромный). Даже приходила мысль о том, что нужно писать специальный парсер Ruby для поиска таких строк в коде (в урезанном виде, конечно). Что вы можете посоветовать? |
Сообщ.
#2
,
|
|
|
Может проще перейти на I18n и грохнуть потом базу?
|
![]() |
Сообщ.
#3
,
|
|
Цитата Мохнатый @ Может проще перейти на I18n и грохнуть потом базу? Насчёт "проще" я полагаю, что не всё так просто. |
![]() |
Сообщ.
#4
,
|
|
Некоторые части проекта привязаны к функциональности Globalize: страны, валюта, валидация полей. По ходу дела еще решались некоторые недоработки плагина (другими людьми). Так что просто не получится.
|
Сообщ.
#5
,
|
|
|
I18n легко решит и вопросы валюты и валидаций и тп. Это муторная работа, но несложная.
|
![]() |
Сообщ.
#6
,
|
|
Цитата Мохнатый @ I18n легко решит и вопросы валюты и валидаций и тп. Это муторная работа, но несложная. Предположим, что это так. Но как это избавит от необходимости дальнейших зачисток неиспользуемых переводов в БД? |
Сообщ.
#7
,
|
|
|
I18n не хранит переводы в БД, он хранит их в YAML. Таблицу можно будет просто грохнуть, если нет именно полей в моделях, которые локализуются.
|
![]() |
Сообщ.
#8
,
|
|
Цитата Мохнатый @ I18n не хранит переводы в БД, он хранит их в YAML. Таблицу можно будет просто грохнуть, если нет именно полей в моделях, которые локализуются. Хранение переводов возможно только в БД. Хранить их в Yaml могут себе позволить лишь мелкие сайты. Тем более, что переводы осуществляются через веб-интерфейс. |