На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > [RoR] Поиск неактуальных переводов текста Globalize
      Имеется проект, написанный на Rails 2.3 с локализацией разных языков. Для локализации используется Globalize (если я не ошибаюсь, версии 1.1).

      В связи с тем, что исходный текст строк (для view/model) нередко изменяется, то база данных переводов стала распухать из-за постоянного её пополнения, но, при этом, старые, неактуальные, переводы, всё ещё имеются.

      Задача: найти и удалить в БД те строки текста переводов (исходного и переводимых языков), которые уже не встречаются в исходных кодах проекта.

      Все строки в проекте, подлежащие локализации, в общем виде имеют формат "text".t или 'text'.t (t - translate). Но есть много строк вида "Found %d results".t и даже
      "Found #{x} results".t (местами в проекте), то есть с интерполяцией строки.

      Вот и думаю как быть. Банальный поиск в редакторе, пусть даже с регулярками, не спасёт (проект огромный). Даже приходила мысль о том, что нужно писать специальный парсер Ruby для поиска таких строк в коде (в урезанном виде, конечно).
      Что вы можете посоветовать?
      Сообщение отредактировано: Romtek -
        Может проще перейти на I18n и грохнуть потом базу?
          Цитата Мохнатый @
          Может проще перейти на I18n и грохнуть потом базу?

          Насчёт "проще" я полагаю, что не всё так просто.
            Некоторые части проекта привязаны к функциональности Globalize: страны, валюта, валидация полей. По ходу дела еще решались некоторые недоработки плагина (другими людьми). Так что просто не получится.
              I18n легко решит и вопросы валюты и валидаций и тп. Это муторная работа, но несложная.
                Цитата Мохнатый @
                I18n легко решит и вопросы валюты и валидаций и тп. Это муторная работа, но несложная.

                Предположим, что это так. Но как это избавит от необходимости дальнейших зачисток неиспользуемых переводов в БД?
                  I18n не хранит переводы в БД, он хранит их в YAML. Таблицу можно будет просто грохнуть, если нет именно полей в моделях, которые локализуются.
                    Цитата Мохнатый @
                    I18n не хранит переводы в БД, он хранит их в YAML. Таблицу можно будет просто грохнуть, если нет именно полей в моделях, которые локализуются.

                    Хранение переводов возможно только в БД.
                    Хранить их в Yaml могут себе позволить лишь мелкие сайты. Тем более, что переводы осуществляются через веб-интерфейс.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0221 ]   [ 16 queries used ]   [ Generated: 25.04.24, 11:28 GMT ]