1

Я сейчас в процессе создания сайта i18n-aware. Маркировка жестко заданных строк как переводимых.Автоматический генератор трансляции gettext для тестирования (псевдолокализация)

Интересно, есть ли какой-либо автоматизированный инструмент, который позволит мне просматривать сайт и быстро видеть, какие строки отмечены, а какие еще нет. Я видел несколько проектов, таких как django-i18n-helper, которые пытаются выделить переведенные строки с использованием средств HTML, но это плохо работает с JavaScript.

Так что я думал, что FDЦЖ CУЯНИК, или ʇxǝʇ uʍop-ǝpısdn (или что-то в этом роде) должен сделать трюк. Легко отличить визуально, все еще читаемый, но не зависит от форматирования форматированного текста, кроме поддержки Unicode.

Проблема заключается в том, что я не могу найти какой-либо доступный инструмент, который бы съел gettext .po/.pot файл (ы) и извергнул такой перевод. Тем не менее, я думаю, что идея довольно очевидна, поэтому, должно быть, что-то там уже есть.

В моем случае я использую Python/Django, но, полагаю, этот вопрос относится ко всему, что использует библиотеку, совместимую с текстом. Единственное, что должен знать инструмент, это то, что в строках перевода могут быть фрагменты HTML.

+0

Кажется, что для этого нет хорошего инструмента - никто не доступен для публики. Я использовал msgfilter с sed для нескольких тестовых прогонов, но в настоящее время я закончил использование функции псевдолокализации Кроудина. Оба подхода привели к частично нарушенным файлам перевода (некоторые заполнители были сломаны), но я исправил их вручную. – drdaeman

ответ

1

Программа msgfilter позволит вам выполнять ваши переводы с помощью любой программы, которую вы хотите. Он особенно хорошо работает с GNU sed.

Например, чтобы включить все ваши переводы в верхний регистр (HTML, в основном нечувствительны к регистру, так что это должно работать):

msgfilter -i django.po sed -e 's/\(.*\)/\U\1/' 

Единственные строки в вашем приложении, которые имеют строчные буквы в них бы тогда жестко закодированные.

Если вы действительно хотите использовать искусственную кириллицу, вам просто нужно написать программу или скрипт, который читает латинский язык и выводит его, и подавать эту программу в msgfilter вместо sed.

Если у вашего дистрибутива есть пакет talkfilters, он может предоставить несколько программ, которые могут быть полезны в этом конкретном случае. Все они должны работать как фильтры msgfilter. (Мой главный фаворит chef. Bork bork bork!)

+0

Спасибо. Я думаю, что это решает хотя бы половину проблемы. К сожалению, фильтры/talkfilters не обеспечивают кодировку строки Unicode (например, blackletter/zalgo/вверх дном и т. Д.), А 'chef' /' pirate'/etc не очень визуально различимы, поэтому не совсем то, что я искал. И, более того, все они, похоже, не заботятся о разметке HTML и с радостью делают ' drdaeman

+1

Верхний корпус все равно работал, правда? –

+0

Хорошая идея. Почти, да. За исключением мест, где кто-то решил, что текст должен быть SHOUT AT USER, но, к счастью, это не очень часто. – drdaeman

0

еще не пробовал это, но нашел podebug tool из Translate Toolkit. Основываясь на документации (flipped и unicoderewrite options), это выглядит именно так, как я хотел.