Контроль засобами програм з графічним інтерфейсом
Загалом кажучи, всі програми для перекладу, окрім хіба Linguist, обладнано інструментами перевірки правопису.
Але для того, щоб ці інструменти працювали, їх має бути встановлено у вашій системі і належним чином налаштовано. Вам слід встановити бібліотеки aspell (чи hunspell у новітніх дистрибутивах) і правильно налаштувати локаль середовища. У KDE останню з дій можна виконати за допомогою сторінки «Країна/Регіон і мова» -> «Перевірка правопису» «Системних параметрів».
Однак не слід повністю покладатися на такий контроль:
Cujusvis hominis est errare; nullius, nisi insipientis in errore perseverare. (Цицерон)
Завжди користуйтеся подвійною або краще потрійною перевіркою. Скрипти вас не підведуть. ;)
Скрипти контролю якості
Pology
Цілий набір скриптів мовою Python надає у ваше розпорядження Pology. Звантажте комплекс скриптів командою
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-support/pology
Додайте відповідний шлях до змінної PATH
export PATH=$PWD/pology/scripts:$PATH
export PYTHONPATH=$PWD:$PYTHONPATH
Довідкові матеріали можна знайти у самих файлах скриптів (каталог /scripts). За допомогою цих скриптів ви зможете отримувати статистичні дані щодо перекладу проекту, контролювати точність і послідовність перекладу.
Перевірка правопису
Перевірка правопису у всіх файлах PO поточного каталогу:
#!/bin/bash
for i in *.po; do
sed "s/[A-Za-z&_]//g"<$i|sed "s/’/'/g"|hunspell -d uk_UA -l|sort|uniq>"${i%.*}.err"
done
Pofilter
Контроль відповідності елементів початкового рядка та елементів перекладу доцільно здійснювати за допомогою програми pofilter з комплекту TranslateTolkit.
Фільтри
| Фільтр | Перевірка
:------------------ | :--------------------------------------------------------------------
accelerators | перевірити відповідність акселераторів у рядках
acronyms | перевірити, чи не змінено абревіатури
blank | перевірити, чи не складається «переклад» лише з пробілів
brackets | перевірити, чи збігається кількість дужок у початковому рядку та у перекладі
compendiumconflicts | перевірити наявність конфліктів з резюме Gettext (#-#-#-#-#)
credits | перевірити, чи містяться у рядках дані щодо перекладачів замість звичайних (неправильних перекладів).
doublequoting | перевірити парність лапок у обох рядках
doublespacing | перевірити наявність зайвих подвійних пробілів, порівняно з початковим рядком
doublewords | перевірити наявність повторів слів у перекладах
emails | перевірити, чи не перекладено адреси електронної пошти
endpunc | перевірити, чи збігається пунктуація наприкінці рядків
endwhitespace | перевірити, чи немає зайвих пробілів наприкінці рядків
escapes | перевірити правильність екранування керівних послідовностей
filepaths | перевірити, чи не перекладено адреси файлів
functions | перевірити, чи не перекладено назви функцій
hassuggestion | знайти модулі з пропозиціями перекладу
isfuzzy | знайти модулі модуль, які перекладений неточно
isreview | знайти модулі, позначені для коригування
kdecomments | перевірити, чи не залишилося у перекладах коментарів KDE (застаріло)
long | перевірити, чи не є переклад значно довшим за початковий рядок
musttranslatewords | перевірити, чи перекладено слова, спеціально позначені для перекладу
newlines | перевірити, чи збігаються позначки розривів рядків
notranslatewords | перевірити, чи наявні у перекладах слова, позначені як такі, які не можна перекладати
nplurals | перевірити, чи правильною є кількість форм множини
numbers | перевірити, чи відповідають числа у початковому рядку та рядку перекладу
options | перевірити, чи не перекладено назви параметрів
printf | перевірити, чи збігаються рядки форматування printf
puncspacing | перевірити, чи належним чином розставлено пробіли після знаків пунктуації
purepunc | перевірити, чи не змінено рядки, що складаються лише зі знаків пунктуації
sentencecount | перевірити, чи збігається кількість речень у початковому рядку та рядку перекладу
short | перевірити, чи не є переклад набагато коротшим за оригінал
simplecaps | перевірити, чи не є регістр літер значно розбіжним
simpleplurals | знайти для редагування форми множини
singlequoting | перевірити відповідність одинарних лапок у рядках
spellcheck | знайти слова, що не відповідають правилам правопису
startcaps | перевірити, чи використано великі літери на початку речення
startpunc | перевірити, чи збігається пунктуація на початку рядків
startwhitespace | перевірити, чи збігається кількість пробілів на початку рядків
tabs | перевірити, чи збігається табуляція у обох рядках
unchanged | знайти «переклади», які збігаються з початковими рядками
untranslated | знайти рядки, які не перекладено
urls | перевірити, чи не перекладено адреси URL
validchars | перевірити, чи у перекладі використано лише коректні символи
variables | перевірити, чи у перекладі віикористано відповідні форми змінних
xmltags | перевірити, чи не перекладено теґи XML/HTML
Параметри програми
| Параметр | Опис
:--------------------------- | :-------------------------------------------------------------------
--version | показати версію і завершити роботу
-h, --help | показати довідку з програми
--manpage | створити сторінку довідки на основі параметра -h
--progress=ПОСТУП | показати поступ за допомогою: dots (крапок), none (не показувати), bar (смужка), names (назви), verbose (докладно)
--errorlevel=РІВЕНЬ | показувати помилки: none (не показувати), message (повідомлення), exception (виключення), traceback (зворотне трасування)
-iINPUT, --input=INPUT | читати дані з INPUT у форматах pot, po, xlf, tmx
-xEXCLUDE, --exclude=EXCLUDE | виключити файли з назвами, що відповідають шаблону EXCLUDE з пошуку
-oOUTPUT, --output=OUTPUT | записати виведені дані до OUTPUT у форматах po, pot, xlf, tmx
--psyco=РЕЖИМ | використати psyco для пришвидшення дії
-l, --listfilters | показати список фільтрів (наведено вище)
--review | включити елементи, позначені для коригування (типова поведінка)
--noreview | виключити елементи, позначені для коригування
--fuzzy | включити елементи, позначені як перекладені неточно (типова поведінка
--nofuzzy | виключити елементи, позначені як перекладені неточно
--header | включити до виведених даних заголовок PO
--nonotes | не додавати нотаток щодо помилок
--autocorrect | за можливості, автоматично виправляти помилки
--language=МОВА | вказати мову перекладу (наприклад, uk_UA) [потрібно для перевірки правопису]
--openoffice | використати стандартні перевірки для перекладів OpenOffice
--mozilla | використати стандартні перевірки для перекладів Mozilla
--drupal | використати стандартні перевірки для перекладів Drupal
--gnome | використати стандартні перевірки для перекладів Gnome
--kde | використати стандартні перевірки для перекладів KDE
--wx | використати стандартні перевірки для перекладів wxWidgets (те саме, що і --kde)
--excludefilter=ФІЛЬТР | не використовувати ФІЛЬТР
-tФІЛЬТР, --test=ФІЛЬТР | використати лише вказаний ФІЛЬТР
--notranslatefile=ФАЙЛ | прочитати список слів, які не слід перекладати, з ФАЙЛа
--musttranslatefile=ФАЙЛ | прочитати список слів, які слід перекласти, з ФАЙЛа
--validcharsfile=ФАЙЛ | прочитати список всіх можливих символів з ФАЙЛа (має бути у кодуванні UTF-8)
Приклади
pofilter --openoffice uk uk-check
Використати типові параметри перевірки для OpenOffice.org. Перевірити всі PO-файли у каталозі uk і вивести всі повідомлення про помилки до каталогу uk-check (створити каталог, якщо його не існує).
pofilter -t isfuzzy -t untranslated uk uk-check
Виконати лише перевірки isfuzzy і untranslated. Програма створити файли з повідомленнями, які або було позначено, як перекладені неточно, або не було перекладено.
pofilter --excludefilter=simplecaps --nofuzzy uk uk-check
Виконати фільтрування за всіма фільтрами, окрім simplecaps. Крім того, перевірку буде виконано лише для повідомлень, які не було позначено, як перекладені неточно.
pofilter --language=uk dir dir-check
Перевірити за допомогою pofilter українські переклади з врахуванням правил мови (пунктуації, пробілів, лапок тощо). Деякі з фільтрів буде вимкнено.
pofilter --excludefilter=untranslated
Наказати pofilter пропустити неперекладені повідомлення.
Контроль відповідності мовним правилам
Завданням хорошого перекладача програм є не лише простий переклад інтерфейсу чи довідки до програми, але і певне виховання культури користування програмою.
Таке виховання неможливе без чіткого дотримання мовленнєвої культури. Звичайно ж, дуже добре, якщо ви сам письменник чи поет, читач класичної літератури тощо. Але що робити, якщо це не зовсім так? Очевидно, скористатися настановами відомих знавців мови. У цьому вам допоможуть книги, у яких висвітлюються питання культури мовлення:
- Як ми говоримо Бориса Антоненка-Давидовича;
- Уроки державної мови Бориса Рогози.
Корисно також дослухатися до порад, які надає радіожурнал «Слово» (Перший канал радіо у неділю о 10 годині).