Автор Гілка: Переклади: як це робиться?  (Прочитано 5437 раз)

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Гаразд. Ви потрапили на цей форум. Вам казали, вас попереджали: тут мешкає натовп русофобів, які не дають слова російською написати, тут пихаті українці один одного обзивають «панами» і розмовляють на «ви». Ви не послухалися і зареєстрували тут свій обліковий запис.

Так, тут пишуть і спілкуються українською мовою. Це не сюрприз, розглянемо правила, скажімо, LOR:
Цитата
5. Оскорбительные и личные сообщения
Сообщения, содержащие нецензурные слова
Сообщения, содержащие непосредственные оскорбления конкретных участников дискуссии или групп участников
Сообщения, провоцирующие национальные и политические споры.
Сообщения, неинтересные другим участникам обсуждения за исключением 2-3 человек, т.е. сугубо личная переписка, не содержащая полезной информации для других участников форума.
Преднамеренное искажение слов, замена букв на похожие по написанию символы и буквы других языков. Преднамеренное нарушение правил русского языка. Пункт правил действует в случае, когда искаженные слова преобладают в сообщении. Пункт не распространяется на сообщения, целиком написанные в корректном "транслите".
Оскільки спілкування українською навряд чи буде особистим, повідомлення українською трактуються цими правилами як образливі («оскорбительные»). Ну, ви зрозуміли...

Подібні ж правила існують на кожному (sic!) форумі чи у кожному списку листування. Можете поекспериментувати з повідомленнями українською мовою на форумах, що базуються поза межами цієї країни. Я гарантую, ви не протримаєтеся там довго.

Про пихатість: якщо ваше его вже не може пролізти у двері, вас не бадьорить здоровий дух ввічливої дискусії, заснуйте собі днявочку, наприклад, тут (форум, RSS і фігняний переклад (by me) додаються). Ви зможете самі банити всіх, хто вам не сподобається, вступати у групи, виходити з них, слати «пасібки» і паскудити будь-кого.

Добре, і це вас теж не зупинило. Куди ж ви потрапили? Погляньмо на те, що пишуть про це тут.
Цитата
www.linux.org.ua — сайт о локализации Linux
Оце тобі... Ну, оскільки сайти з локалізації російською існують вже давно, очевидно, і цей сайт є сайтом локалізації російською? Мені вас жаль: ні, це сайт локалізації українською (сюрприз!!!).

Отже, ви маєте намір локалізувати Linux українською. Але народ тут сумирний і всім, здебільшого, байдуже, маєте чи не маєте. Тут обговорюють Linux українською. Крапка.

Нехай, ви продовжуєте капризувати, і все ж хочете той самий Linux достеменно таки локалізувати. І саме українською...

Ну, що ж, у цій гілці я спробую якнайповніше викласти те, що про це знаю. Якщо я десь помилюся або викладу щось неповно, я думаю досвідченіші відвідувачі цього форуму (тут, як це не дивно, учасниками є всі (принаймні всі відомі мені) серйозні локалізатори Linux українською) мене з легкістю доповнять.

Отже, у викладі я спробую притримуватися класичної тріади:

1) Що локалізувати?
  а) загальноприйняті формати файлів локалізації;
  б) адреси, за якими можна звантажити шаблони цих файлів для популярних дистрибутивів;
  в) локалізація окремих програм, проблема синхронізації;
2) Як локалізувати?
  а) сучасні інструменти локалізації;
  б) словники, пам’ять перекладів, запозичення перекладів з інших програм;
  в) автоматичний переклад (чим ви кращі за Google?);
  г) контроль якості (піпли і так схавають?).
3) Що робити з готовими перекладами?
  а) періоди життя дистрибутивів та програм;
  б) автори програм та встановлення з ними зв’язку;
  в) списки листування програм та дистрибутивів, написання звітів про вади перекладу;
  г) команди локалізації дистрибутивів (проблеми вступу та участі), середовищ, окремих великих програм.

Як бачите, питань досить багато, а на мені зараз висять (окрім другого життя) штуки три термінових переклади, тому писатиму все поволеньки, коли буде час. Охочих до читання всіляких нісенітниць, які я тут понаписую, набагато більше, ніж тих, хто взявся б, наприклад, довести до ладу Вікі KDE.  :(
« Змінено: 2009-08-18 19:26:29 від yurchor »
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Re: Переклади: як це робиться?
« Відповідей #1 : 2009-08-19 10:39:00 »
Off-topic:
тут пихаті українці один одного обзивають «панами» і розмовляють на «ви»
yurchor, по ходу справи, найпихатіший пан  ;)
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #2 : 2009-08-19 17:51:29 »
As far as I can tell
It doesn't matter who you are
If you can believe there's something worth fighting for
The color of an eye
The glory of a sudden view
The baby in your arms
The smile he always shoots at you


Ширлі Менсон

1. Що перекладати?

З дитинства ми стикаємося з різноманітними написами, які визначають характер нашої поведінки у тих чи інших ситуаціях. Ми вчимося їх розпізнавати, вивчаємо мови, зрештою пишемо ними щось самі. Більшість людей зупиняється на вивченні однієї мови і способу її запису — ця мова і вважається рідною. Те, що хтось не знає якоїсь мови, не обов’язково є фатальною вадою. Сучасне суспільство вимагає високого рівня спеціалізації і повної зосередженості заради досягнення успіху. Отже за ваші переклади хтось теж вам чимось віддячить.

Ви, певно, і самі розумієте, що перекладати можна, власне, все що написано не рідною мовою. Найпростішим (і водночас найскладнішим випадком) є переклад художньої літератури. Тут майже не діють шаблони і відсутні просторові обмеження перекладів. Хоча розуміння художнього тексту і важлива, але зовсім не обов’язкова частина роботи перекладача технічних текстів. Питання технічного перекладу, мабуть передусім спирається на знання матеріалу, з чим ви працюєте, словниковий запас і знання власне того, з якими даними ви працюєте.

а) Загальноприйняті формати файлів локалізації.

  • Звичайний текст. Під «звичайним» текстом будемо розуміти текст з мінімумом розмітки (оскільки всі файли локалізації так чи інакше залишаються звичайними текстовими файлами, принаймні у своєму початковому стані). З подібними файлами (чи-то фрагментами тексту) можна зустрітися у Вікіпедії. До подібного класу належать файли анонсів (якщо відкинути теґи PHP). Подібні формати файлів локалізації ми зустрічаємо і у деяких програмах.


Приклади: TeXmacs, Image Analyzer, SciTE, 2ManDVD і Opera (якщо ви наважитеся на пряме порушення ліцензії, яка забороняє сторонні переклади).

Не сказати, що все це зручно було перекладати. Окрім нестандартного формату ви не можете скористатися майже нічим. Ні пам’ять перекладів, ні глосарій тут не працюють. Ви не зможете легко визначати зміни, які відбулися у перекладі. Деякі автори таких програм намагаються якось подбати про користувача і пхають нові рядки у кінець файла. Іншим на все начхати, і вони ліплять їх, де попало. Отже, у такому випадку вам нічого не залишається, як запустити щось подібне до KDiff3 і розпочати порівняння перекладів, які ви робили раніше з сучасною формою.

Крім того, можливі сюрпризи. Наприклад, кодування. TeXmacs використовує, на перший погляд, щось подібне до cp1251 (типового кодування кирилиці у Windows), але насправді це T2A (кодування TeX), тому вас чекають незабутні пригоди. ;)

  • Файли PO/POT. Ці файли уже більше десяти років є стандартними файлами перекладу ВПЗ (і не лише ВПЗ). Що принесло їм популярність? Надзвичайна простота: скрипти, додані до програми створюють шаблон перекладу (файл .pot), який шляхом нескладних маніпуляцій перетворюється на файл перекладу (файл .po). Приклад (ліворуч файл шаблону, праворуч — переклад):
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR This_file_is_part_of_KDE
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
    "POT-Creation-Date: 2009-07-30 06:55+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=UTF-8\n"
    "Content-Transfer-Encoding: 8bit\n"

    #: kfortunoid.cpp:105
    msgid "Cannot find "
    msgstr ""

    #: kfortunoid.cpp:224
    msgid "Fortunoid Settings"
    msgstr ""

    #. i18n: file: form/fortunoidsettings.ui:26
    #. i18n: ectx: property (text), widget (QLabel, label_3)
    #: rc.cpp:3
    msgid "arguments"
    msgstr ""

    #. i18n: file: form/fortunoidsettings.ui:40
    #. i18n: ectx: property (text), widget (QLabel, label)
    #: rc.cpp:6
    msgid "delay quote (sec)"
    msgstr ""
    # translation of plasma_applet_fortunoid.po to Ukrainian
    # Copyright (C) YEAR This_file_is_part_of_KDE
    # This file is distributed under the same license as the PACKAGE package.
    #
    # Yuri Chornoivan <yurchor@ukr.net>, 2009.
    msgid ""
    msgstr ""
    "Project-Id-Version: plasma_applet_fortunoid\n"
    "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
    "POT-Creation-Date: 2009-07-30 06:55+0200\n"
    "PO-Revision-Date: 2009-04-29 18:16+0300\n"
    "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
    "Language-Team: Ukrainian <translation@linux.org.ua>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=UTF-8\n"
    "Content-Transfer-Encoding: 8bit\n"
    "X-Generator: Lokalize 0.3\n"
    "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
    "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

    #: kfortunoid.cpp:105
    msgid "Cannot find "
    msgstr "Не вдалося знайти "

    #: kfortunoid.cpp:224
    msgid "Fortunoid Settings"
    msgstr "Параметри фортуноїда"

    #. i18n: file: form/fortunoidsettings.ui:26
    #. i18n: ectx: property (text), widget (QLabel, label_3)
    #: rc.cpp:3
    msgid "arguments"
    msgstr "аргументи"

    #. i18n: file: form/fortunoidsettings.ui:40
    #. i18n: ectx: property (text), widget (QLabel, label)
    #: rc.cpp:6
    msgid "delay quote (sec)"
    msgstr "затримка цитати (у сек.)"

    #~ msgid "no quote"
    #~ msgstr "немає цитати"

    #~ msgid "fortune not found"
    #~ msgstr "fortune не знайдено"

    #~ msgid "show background"
    #~ msgstr "показувати тло"

    Декілька коментарів: перші декілька рядків (до #: kfortunoid.cpp:105) визначають заголовок файла перекладу. У заголовку визначаються важливі параметри перекладу (ім’я перекладача, права поширення перекладу, дата створення шаблону перекладу та дата самого перекладу, адреса, куди вдячні користувачі напишуть «змініть A на B!» (sic! з малої літери, без коментарів і підпису) ;) та адреса списку листування (туди все одно ніхто не пише, тому у GNOME тупо пишуть щось типу uk@li.org (куди попало)), і ще дві абсолютно важливі речі: кодування (charset) перекладу і форми множини мови (Plural-Forms). Хоча Unicode повсюдно переміг, залишається ще повно файлів у інших кодуваннях. Приклади: файли перекладів wxWidgets і Freeciv мають кодування KOI8-U. Врегульовується це питання за допомогою команди:iconv -f koi8u -t utf8 файл_перекладу.po>новий_файл.poАле, увага не забудьте відповідним чином змінити рядок Content-Type: text/plain; charset=UTF-8

    Якщо ви вирішите не довіряти долю свого перекладу ніяким хитромудрим програмкам, які писала зовсім незнайома вам людина і надасте перевагу теплому ламповому Vim, вам доведеться повписувати все це руками. Програми-помічники самі вписують потрібні дані (найкраща з цих програм зробила це у цьому випадку так: X-Generator: Lokalize 0.3.

    Після завершення перекладу програми з файла po створюється командою (в загальному випадку) msgfmt -o назва_програми.mo файл_перекладу.poфайл (файл .mo) зрозумілий системі перекладу Linux (gettext), який і буде прочитано програмою під час завантаження. Такі файли зберігаються у /usr/share/locale/uk/LC_MESSAGES Для запису до цієї теки потрібні права доступу адміністратора.

    Lokalize 1.0 здатен владнати справу (тимчасово) простіше. Програма записує файли до локальної теки користувача. Для перевірки перекладу вам не потрібні будуть права адміністратора.

    Але корисність файлів PO виходить за межі простого перекладу інтерфейсу програм. За допомогою цих файлів (звичайно ж, без перетворення на MO-файл) можна перекладати документацію, сайти, корисні системні файли тощо.

    Простота файлів PO сполучається з граничною гнучкістю. Як ви можете помітити, рядки, що починаються з символу # є коментарями (окрім одного особливого випадку, про який поговоримо пізніше), отже у них можна записувати корисні для перекладача і програми обробки дані. Крім того, за належної обробки зберігаються навіть застарілі рядки, які вже було перекладено (хто знає, а раптом ще згодяться). Ці рядки записано наприкінці файла перекладу.

    Загалом кажучи, сучасні файли PO поділяються за належністю до стільничних середовищ, тому доцільно розглянути два випадки окремо.

    а) Gtk/GNOME
    Файли перекладу сучасних Gtk-програм включають все (записи у SVG-вікнах вітання програми, записи з desktop-файлів, з яких формується локалізоване меню і підписи до піктограмок на стільниці, записи у скриптах). Через цю складність часто шаблони цих файлів можна зібрати, лише зібравши саму програму (наприклад. Inkscape). Через зосередженість програмістів на користувачах часто на перекладачів їм глибоко начхати. Коментарі до перекладів у файлах Gtk знайдеш не часто. Тому вам доведеться зібрати програму і дивитися, де і що випливе у результаті перекладу. Крім того, ви часто можете зустріти у перекладах Gtk-програм ось такі конструкції
    Цитата
    msgid ""
    "<b>Ellipse</b>: %s - %s (constrained to ratio %d:%d); with <b>Shift</b> "
    "to draw around the starting point"
    Позначки %s під час роботи програми буде замінено текстовими рядками, %d — на цілі числа, %f — на дійсні. Отже, ніколи, ніколи їх не змінюйте! Крім того, зверніть увагу на конструкцію «%s × %s» (від неї мабуть плачуть всі носії мов з непрямим порядком слів). Якщо вам заманеться поміняти місцями першу %s з другою, нічого у вас не вийде. Ось так. Але не переймайтеся, зрештою всі написи буде замінено картинками, кнопки буде вилучено, а потреба у перекладі написів у Gtk відпаде. ;) Теґи у кутових дужках теж не потрібно перекладати: це позначки розмітки XML (у нашому прикладі вони позначають напівжирний стиль).

    Ще однією специфічною рисою є використання позначень клавіатурної прив’язки. У Gtk-програмах традиційно клавіатурні скорочення позначаються підкресленням
    Цитата
    msgid "_Symmetry"
    Будь ласка, не вилучайте такі підкреслювання. Підкресліть якусь з літер у слові перекладу, ось так:
    Цитата
    msgstr "Си_метрія"
    Але робіть це обережно: у одному меню чи діалоговому вікні не повинно бути двох однакових прив’язок!
Далі буде...
« Змінено: 2009-08-19 18:11:00 від yurchor »
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Переклади: як це робиться?
« Відповідей #3 : 2009-08-19 19:20:47 »
Цитата
Крім того, зверніть увагу на конструкцію <<%s  * %s>> (від неї мабуть плачуть всі носії мов з непрямим порядком слів). Якщо вам заманеться поміняти місцями першу %s з другою, нічого у вас не вийде.
Цитата
If the word order in the above German translation would be correct one
would have to write

     "%2$d Zeichen lang ist die Zeichenkette `%1$s'"

The routines in `msgfmt' know about this special notation.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #4 : 2009-08-19 19:38:46 »
Цитата
Крім того, зверніть увагу на конструкцію <<%s  * %s>> (від неї мабуть плачуть всі носії мов з непрямим порядком слів). Якщо вам заманеться поміняти місцями першу %s з другою, нічого у вас не вийде.
Цитата
If the word order in the above German translation would be correct one
would have to write

     "%2$d Zeichen lang ist die Zeichenkette `%1$s'"

The routines in `msgfmt' know about this special notation.
Дякую. Треба частіше читати man...

Про альтернативний варіант, для якого подібні виверти не потрібні, трохи пізніше.
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #5 : 2009-08-26 17:26:31 »
Коментарі. Донедавна у основному інструменті перекладу GNOME (GTranslator)не було передбачено показу коментарів. Тому доводилося певним чином викручуватися. Як вже зазначав вище Михайло, у стандарті PO-файлів передбачено деякі можливості з додавання у змінні (власне, формати змінних) додаткових позначень. Приклад 1:
Цитата
Change "%(amount)s" %(unit)s to "%(text)s" %(unit)s only _where the ingredient key is %(key)s
Як бачите, тут пояснення призначення рядків вкладено до самих рядків.
Приклад 2:
Цитата
#: common/player.c:760
msgid "?diplomatic_state:War"
Тут у першій частині повідомлення міститься опис призначення повідомлення. Цей опис перекладати не потрібно. Загалом кажучи, програми з великими файлами перекладу (тут FreeCiv) використовують власні правила щодо коментарів. Вам завжди варто ознайомитися з цими правилами (їх часто розміщено у Вікі проектів), перш ніж братися за переклад.

Форми множини. Ми вже торкалися цього питання: в українській мові існує три форми сполучення іменників з числівниками. У Gtk/GNOME використовується стандартна форма:
Цитата
msgid "You conquer %s; your lootings accumulate to %d gold!"
msgid_plural "You conquer %s; your lootings accumulate to %d gold!"
msgstr[0] "Ви захопили %s, здобич склала %d гривню!"
msgstr[1] "Ви захопили %s, здобич склала %d гривні!"
msgstr[2] "Ви захопили %s, здобич склала %d гривень!"

б) KDE. Файли перекладів KDE поділено на дві частини: файл з префіксом desktop_ (у ньому містяться повідомлення з назви програми, коментарів та пунктів меню файла .desktop) та власне самого файла перекладу програми. Саме тому переклад desktop_ файлів за допомогою Rosetta (LaunchPad) абсолютно позбавлений сенсу, якщо ви не маєте наміру потім передати переклад до сховища KDE.

Кожного ранку основний скрипт KDE (scripty) обробляє всі .desktop-файли середовища і видобуває з них рядки повідомлень. Одночасно цей скрипт додає у файли вже перекладені повідомлення з файлів desktop_ всіх мов, якими було зроблено переклад. Після цього файл набуває вигляду:
Цитата
[Desktop Entry]
Type=Application
Exec=konversation -caption "%c" %i
Icon=konversation
X-DocPath=konversation/index.html
GenericName=IRC Client
GenericName[be]=Кліент IRC
GenericName[bg]=IRC клиент
GenericName[cs]=IRC klient
GenericName[da]=IRC-klient
GenericName[de]=IRC-Programm
GenericName[el]=Πελάτης IRC
GenericName[es]=Cliente de IRC
GenericName[et]=IRC klient
GenericName[eu]=IRC bezeroa
GenericName[fr]=Client IRC
GenericName[ga]=Cliant IRC
GenericName[gl]=Cliente de IRC
GenericName[hne]=आईआरसी क्लायंट
GenericName[it]=Client IRC
GenericName[lt]=IRC klientas
GenericName[nb]=IRC-klient
GenericName[nds]=IRC-Client
GenericName[nl]=IRC-client
GenericName[pa]=IRC ਕਲਾਇਟ
GenericName[pt]=Cliente de IRC
GenericName[pt_BR]=Cliente IRC
GenericName[ro]=Client IRC
GenericName[ru]=Клиент IRC
GenericName[sv]=IRC-klient
GenericName[tr]=IRC İstemcisi
GenericName[uk]=Клієнт IRC

Змінні. Змінні у KDE, починаючи з версії 4, не позначаються, а нумеруються:
Цитата
<span style='color: %1;'>[Who:%2] <b><u>Username</u></b>: %3, <b><u>Address</
u></b>: %4, <b><u>Server</u></b>: %5, <b><u>Nick</u></b>: %6, <b><u>Flags</
u></b>: %7, <b><u>Hops</u></b>: %8, <b><u>Real Name</u></b>: %9</span>
Таким чином, переплутати два рядки чи два числа просто неможливо.

Коментарі. З введенням нумерації виникає проблема призначення змінних. Цю проблему вирішують коментарі:
Цитата
#: statusbar/StatusBar.cpp:339
#, kde-format
msgctxt "%1 is number of tracks, %2 is time"
msgid "%1 track (%2)"
msgid_plural "%1 tracks (%2)"
Як бачимо, коментар описує все що потрібно. На щастя, сучасні програми для перекладу (автономні: Lokalize, Gtranslator, Virtaal, PoEdit та серверні: Pootle, Rosetta, Narro) підтримують показ коментарів, тому можна спокійно перекладати повідомлення, не зазираючи повсякчас до коду програми.

Форми множини. У KDE 3 була жахливо неочевидна форма запису форм множини:
Цитата
#: kilestdtools.cpp:171
#, c-format
msgid ""
"_n: %n error\n"
"%n errors"
msgstr ""
"%n помилка\n"
"%n помилки\n"
"%n помилок"
Зараз від цієї форми позбулися. Тепер форма запису повністю збігається зі стандартною:
Цитата
#: kilestdtools.cpp:204
#, kde-format
msgid "1 error"
msgid_plural "%1 errors"
msgstr[0] "%1 помилка"
msgstr[1] "%1 помилки"
msgstr[2] "%1 помилок"

Далі буде...
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #6 : 2009-08-30 11:07:12 »
  • Файли перекладу Qt (TS). Бібліотека Qt має власну систему перекладу інтерфейсів програм, власний формат файлів пам’яті перекладів і власні теки для зберігання таких перекладів.

    Отже основним матеріалом, з яким має справу перекладач, є файл .ts. Приклад:
    Цитата
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE TS>
    <TS version="2.0" language="uk_UA">
    <context>
        <name>@default</name>
        <message>
            <source>File does not exist</source>
            <translation>Файла не існує</translation>
        </message>
        <message>
            <source>The file %1 could not be found. Please check this and try again.</source>
            <translation>Не вдалося знайти файл %1. Будь ласка, перевірте його наявність і спробуйте ще раз.</translation>
        </message>
    </context>
    </TS>
    Як бачите, файл записано у форматі XML, отже напряму редагувати такі файли незручно. Бібліотека має власний інструмент для перекладу таких файлів — Linguist.

    Після завершення перекладу файл перетворюється або вручну, або за допомогою команди:
    Цитата
    lrelease -removeidentical -compress файл.ts -qm файл.qm
    на файл, який власне і буде використано самою програмою (файл .qm). Втім виконувати цю операцію вручну, навряд чи варто: з цим добре впорається і сам Linguist. Цей файл скрипт встановлення копіює до теки /usr/share/назва_програми/translations (можливі варіації). Отже для бойової перевірки перекладу слід використовувати саме подібну схему.
  • Файли XLIFF. Файли для перекладу серйозної документації. Якщо за типової схеми перекладу ВПЗ, переклад відбувається у форматі
    Цитата
    Переклад → Перекладач → Координатор → СмітникСховище коду програми
    , то з перекладом XLIFF все набагато складніше:
    Цитата
    Переклад → Перекладач → Рецензент  → Підтверджувач → Координатор → Сховище коду програми → Нові рядки для перекладу → Перекладач...
    з можливістю повернення на попередній етап на кожному з кроків. Якщо ви надумаєте заробити грошей перекладом, ймовірно вам доведеться працювати з цим форматом.

  • Перетворення файлів з одного формату на інший. Загалом кажучи, цього без кончої потреби робити не слід. Кожен з форматів перекладу певним чином пасує до програми чи остаточного вигляду перекладу. Але...

    Отже все це можна зробити десь так: гномерів не полишає ідея повної уніфікації всього і єдиної КНОПКИ. Тому у певний період нападу уніфікації було розроблено програми для перетворення майже всіх даних перекладу з одного формату на інший і назад. Тепер це все трохи забуто і libtranslate повільно вкривається пилом. Втім, ВПЗ ніколи не помирає остаточно, тому результатами роботи можна скористатися і зараз (хоча творці Launchpad про це і досі не знають). Достатньо просто звантажити найсвіжішу версію Translate toolkit звідси або встановити зі сховища вашого улюбленого дистрибутива (можна навіть того, назва якого починається на «Win»). Після цього ви можете обробити відповідним інструментом, наприклад ось так:
    Цитата
    html2po autoupdate.html >autoupdate.po
    ваш файл HTML, перекласти його у звичний спосіб, а потім виконати команду
    Цитата
    po2html -i autoupdate.po -t autoupdate.html -o autoupdate.html
    в результаті матимете аж дві переваги: звичайний спосіб перекладу і переклад без втрат уже перекладених повідомлень. Можливі такі перетворення:
    • moz2po — перетворення файлів Mozilla .properties і .dtd. Працює у Firefox і Thunderbird
    • oo2po — перетворення OpenOffice.org SDF (див. також oo2xliff).
    • csv2po — перетворення файлів значень, відокремлених комами (Comma Separated Value або CSV). Корисні для перекладів електронних таблиць.
    • csv2tbx — створення файлів TBX (TermBase eXchange) на основі файлів CSV
    • html2po — перетворення HTML
    • ical2po — перетворення файлів iCalendar
    • ini2po — перетворення файлів Windows INI
    • odf2xliff — перетворення файлів OpenDocument (ODF) на XLIFF і навпаки
    • php2po — перетвоерння файлів PHP з рядками для локалізації
    • po2wordfast — перетворення пам’яті перекладів Wordfast
    • po2tmx — перетворення TMX (Translation Memory Exchange)
    • pot2po — ініціалізація файлів шаблонів PO для перекладу
    • prop2po — перетворення файлів властивостей Java (.properties)
    • web2py2po — перетворення перекладів web2py на PO
    • rc2po — перетворення файлів ресурсів Windows .rc
    • sub2po — перетворення різноманітних файлів субтитрів
    • symb2po — перетворення перекладів у стилі Symbian на PO
    • tiki2po — перетворення файлів TikiWiki мова.php
    • ts2po — перетворення файлів .ts Qt Linguist
    • txt2po — перетворення звичайного тексту на PO
    • xliff2po — перетворення XLIFF (XML Localisation Interchange File Format)
    Як бачите перетворюється майже все. Але один нюанс: перетворюється досить добре, але кінцевий результат (після зворотного злиття) місцями нагадує машинний код (хоча і є повністю функціональним).
Далі буде...
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #7 : 2009-09-03 20:07:45 »
б) Адреси, за якими можна звантажити шаблони файлів перекладу або незавершених перекладів для популярних дистрибутивів

Зрозуміло, наведений нижче список є неповним, тому буду радий, якщо ви доповните його власними посиланнями.

  • Debian
    Адреса сторінки локалізації: http://www.debian.org/international/l10n/po/uk
    Система подання/перекладу: -/ddts
    Відповідальний перекладач: -
    Переваги: Нульовий рівень входження (перекладати може будь-хто і будь-що).
    Недоліки: Увага: ОЧІ!!! Поєднання некрасивого з непотрібним. Нелюдська система порівняння попереднього перекладу пакунків з поточним шаблоном. Жах Web 1.0, що летить на крилах ночі. Актуальність представлених шаблонів на рівні актуальності стабільної версії Debian.

  • Fedora
    Адреса сторінки локалізації: https://translate.fedoraproject.org/languages/uk/
    Система подання перекладу:Transifex (Python)
    Відповідальний перекладач: Максим Дзюманенко
    Переваги: Найсучасніша багаторівнева система потокового перекладу з можливостями гуглоперекладу (у перспективі). Представлені файли та шаблони не губляться по дорозі до сховищ програм. Представлено файли і шаблони перекладу, які або є характерними лише для Fedora, або такі, які Fedora гарантовано розповсюдить до всіх дистрибутивів.
    Недоліки: Зайнятість основного перекладача, нестача перекладачів.

  • Mandriva
    Адреса сторінки локалізації: http://mdk.jack.kiev.ua/stats/gui/trunk/team/uk/
    Система подання перекладу: KDE WebSVN (PHP)
    Відповідальний перекладач: Тарас Бойчук
    Переваги: Проста форма подання статистики, простий доступ до файлів. Відсутність зайвих компонентів.
    Недоліки: Неочевидність того, що з цим усім робити.

  • OpenSUSE
    Адреса сторінки локалізації: http://i18n.opensuse.org/stats/trunk/uk/index.php
    Система подання перекладу: YAML
    Відповідальний перекладач: Іван Петрущак
    Переваги: Наочне подання даних, докладна довідка щодо дій з перекладеними файлами. Відсутність «зайвих» файлів, що не є невід’ємною складовою дистрибутива.
    Недоліки: Занудна система звантаження окремих файлів.

  • Ubuntu
    Адреса сторінки локалізації: https://translations.launchpad.net/ubuntu/karmic/+lang/uk
    Система подання/перекладу: Launchpad/Rosetta
    Відповідальний перекладач: -
    Переваги: Нульовий рівень входження (часто навіть не обов’язково знати мову, якою перекладаєш). Наочне подання даних, система потокового перекладу.
    Недоліки: Жахлива мішанина всього чого попало (перекладачам важко розібратися, що саме належить до дистрибутива, а що ні). Незрозуміла ліцензія на переклади. Повна відсутність контролю за якістю перекладу (причиною цього є гігантський об’єм перекладу, хоча він не набагато більший за обсягом за переклад, скажімо, KDE та GNOME разом взятих). Відсталість перекладів від основної гілки розробки програм. Постійне перевантаженість системи перекладу через перевищення навантаження на сервери Launchpad. Складна система отримання доступу до вивантаження файлів перекладу. Загалом, якщо поглянути на систему перекладу Debian, є її логічним розвитком (такий собі ddts 2.0). ;) І, що найжахливіше, за винятком декількох програм, переклади з Launchpad не потрапляють до основних гілок програм. Це суперечить проголошеним цілям Launchpad. Будь ласка, перш ніж перекладати на Launchpad, ознайомтеся з цим, цим і цим.
    Цитата
    We want everyone's work in Launchpad Translations to have a chance of making it into software that people use. That's why we insist that anyone opening a project in Launchpad for translation must either represent the upstream project or otherwise have permission from the project. We'd hate to see people make translations only for them not to stand a chance of being used in the project.
У подальших розділах, коли ми говоритимемо про окремі системи перекладу, я спробую навести знімки вікон систем потокового перекладу дистрибутивів та спробувати порадити, як усім цим добре скористатися.

P.S. Якщо хтось почувається після написаного мною ображеним, вибачте. Я лише виклав свою думку, у коментарях ви можете її спростувати або підтвердити.
« Змінено: 2009-09-03 20:28:41 від yurchor »
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #8 : 2009-09-06 13:23:30 »
в) Локалізація окремих програм, проблема синхронізації.

1) Почнемо з основи, того, без чого не може обійтися майже будь-який пристойний дистрибутив, консольних програм.

Загалом кажучи, універсального рецепту не існує, але існує більш-менш пристойне сховище шаблонів та неповних перекладів подібних програм: http://translationproject.org/team/uk.html

Зрозуміло, там є не лише консольні програми, але перевага цього сховища у автоматизації: робот надішле вам повідомлення про нову версію, ви її перекладете і надішлете роботу, робот покладе переклад куди потрібно. Швидко і весело.  ;)

2) Ви скажете, що далі має йти літера G. Так, я знаю, але мене чомусь тягне на літеру K. ;)

Отже, графічну оболонку сховища KDE можна знайти за адресою http://l10n.kde.org/stats/gui/trunk-kde4/team/uk/

Переклади документації можна знайти за адресою http://l10n.kde.org/stats/doc/trunk-kde4/team/uk/

Долучитися офіційно можна за цією адресою. Якщо ви не бажаєте надовго з цим зв’язуватися, можете просто надіслати переклад або ваші зауваження мені або координаторові проекту. Відповідні адреси можна знайти у файлах перекладу та тут. Там же можна знайти інструкції зі звантаження сховищ перекладів (може знадобитися для згодовування у вашу пам’ять перекладів).

3) Офіційна графічна оболонка сховища перекладів GNOME називається Damned Lies (Максим переклав «Повна брехня», з чим я вас і вітаю ;)).

Адреса української сторінки: http://l10n.gnome.org/teams/uk

Не знаю як можна звантажити все разом, але ви можете насмикати перекладів поодинці.

Команді потрібні перекладачі, але, здається, насамперед рецензенти та відповідальні перекладачі. Зареєструйтеся (вгорі сторінки є кнопочка «Увійти») і перекладайте (тут вам буде де розгулятися).

4) Переклади XFCE переведено у систему Transifex.

Шаблони та самі переклади можна знайти за адресою https://translations.xfce.org/languages/uk/

Приєднатися до проекту досить просто, на відміну від перекладу за допомогою Transifex Fedora (втім долучення до Fedora надасть вам змогу сильно прокачати ваші скіли: ви дізнаєтеся як створити цифровий підпис, як вивантажити його на відкритий сервер, як підписувати листи власним ключем, як писати у Вікі тощо — коротше, матимете чим зайнятися пару днів ;)) .

Та сама проблема, що і у GNOME. Оскільки картинок тут ще не було, дозволю собі трохи розмочити текст (це страх як повчально):

Що ж, епітафія майже до будь-якого перекладу українською.  :'(

5) Окремі програми.

У кожної вартої програми (окрім, gkrellm  ;)) має бути пристойний сайт. Якщо ви принциповий противник (чи противниця) натискання клавіші F1, знайти цей сайт можна за допомогою Google. На цьому сайті, зазвичай, є посилання на останній стабільний випуск програми і сховище з кодами. Виникає питання: що ж обрати? Якщо ви прочитали все, що було написано вище, ви певно вже знаєте, що обрати слід сховище кодів. Звантажте коди і знайдіть шаблон файла перекладу — файл POT, або незавершений переклад (зазвичай, uk.po). Не соромтеся написати авторові чи авторці попереднього перекладу, можливо, він чи вона вже готують нову версію, а ви лише витратите свій час на те, що Launchpad так ненавидить (hate). ;)

Часто у кодах трапляються застарілі шаблони (ну, не встигли автори оновити). Спробуйте налаштувати програму на збирання скриптом configure або відповідною командою cmake (подивіться у файлі README або INSTALL). Пошукайте створені під час цієї процедури файли pot або оновлені файли PO. Можливо, доведеться виконати деяке шаманство на зразок виконання команди make update-po у каталозі файлів перекладів (./po).

Якщо до ваших рук потрапила програма на Qt4, процедура може бути трохи іншою. Дозволю собі процитувати автора чудової програми DjView і загалом коду, за допомогою якого ви можете переглядати DJVU, Леона Воту (Leon Bottou):
Цитата
HOW TO CREATE NEW TRANSLATION FILES FOR DJVIEW.
-----------------------------------------------


- Determine the language code for your language.
  Sometimes language codes have suffixes in capital letters
  for describing variants. But we always use lowercase.
  For instance, use 'zh_cn' or 'zh_tw' for the two variants of chinese.
  In the following explanation we assume 'de' for german.

- Go to directory 'src'
        $ cd src

- Add the following line into file 'djview.pro'
        TRANSLATIONS += djview_de.ts

- Run the Qt program 'lupdate'
        $ lupdate djview.pro

- A file named djview_de.ts must have been created.
  You must edit the translations using the Qt program 'linguist'.
        $ linguist djview_de.ts
  See the linguist documentation in the Qt documentation.
  Alternatively you can use 'kbabel' to edit the ts file.

- Run the Qt program 'lrelease'
        $ lrelease djview.pro

- You should have now a file named 'djview_de.qm'.
  To test your translations, type
        $ LANGUAGE=de ./djview

- Once you are satisfied,
  send me your translation file 'djview_de.ts'
  by email


Thanks.
З цієї чудової інструкції все має стати зрозумілим. ;)


І на завершення цього розділу трохи прикладів того, що робити не слід.

Прихильники людських облич певно вже давно помітили: на LP все вже є. То навіщо бігати туди-сюди — перекладай на LP і буде тобі щастя. Це правда, але далеко не вся. Stellarium, Deluge, Bilbo Blogger і ще декілька програм можна перекладати лише за допомогою Launchpad. Але безліч інших програм чхати хотіли на переклади з Launchpad (часто цінність цих перекладів дорівнює цінності віршів написаних 7 сліпими поетами на газетному листі, причину дивись на малюнку вище).

І ось мій приклад: є така програмка для ведення мікроблогів, choqoK. Поважні Ubuntero перетягли переклад цієї програми на LP, російський перекладач натрапив на цей шаблон і переклав його, але шаблон був від версії 0.5, а актуальною була версія 0.6.7. Переклад був повним, але зовсім, зовсім нікому не потрібним. Результат у малюнках:


Не робіть таких помилок. Завжди все перевірте. Підпишіться на список листування програми і запитайте про переклад, напишіть авторові чи створіть повідомлення про ваду, принаймні пошукайте у Google. Це збереже ваші сили і сили інших людей.

Ще трохи про переклади на LP. Цикл життя програми можна поділити на такі періоди:
1) Інтенсивна розробка. Починається одразу або трохи згодом після випуску стабільної версії. Переклад у цей період можна розпочинати, лише якщо файл перекладу величезний і ви боїтеся не встигнути.
2) Замороження рядків. Після настання цього періоду вам слід зосередитися на перекладі і довести його до 100%. У цей час рядки не змінюються (або майже не змінюються), слідкуйте за повідомленнями у списку листування програми або середовища, яке перекладаєте.
3) Замороження сховища для створення пакунків і випуск. Все, пізно пити боржомі. Якщо ви спробуєте встромити ваш переклад, нехай і найповніший і найточніший, його вже не буде у випуску програми. Ви можете встромити його до Ubuntu і тішитися з того, що у інших дистрибутивах його немає (але LP вас тихо ненавидітиме (hate), див. вище ;)).

Будь ласка, слідкуйте за цим, щоб уникнути марних зусиль.
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #9 : 2009-09-09 19:57:33 »
Every artist is a cannibal, every poet is a thief
All kill their inspiration and sing about the grief


Боно

<i>Timer Finished!</i>
<i>Таймер закінчив!</i>


Launchpad

2. Як перекладати?

а) Сучасні інструменти локалізації

а.1 Потокові мережеві сервери.
а.1.1 Launchpad/Rosetta
Найпоширеніший за кількістю перекладачів, але не перекладів ресурс.

Отже вам слід:
1) Зареєструватися.
2) Перекласти скажімо стільки повідомлень, щоб ваша карма досягла 50 (в ідеалі, хоча цього ніхто досі в українській команді не вимагав, це всесвітня практика). Не здумайте, навіть жартома, відмовлятися від BSD. Якщо ви це зробите, вам, як і мені, буде назавжди закрито шлях до перекладу Ubuntu.  ;D
3) Вступити до команди.
4) Зачекати трошки (декілька годин).
5) Отримати звання адміністратора і калічитиперекладати далі, підтверджуючи власні переклади.
Такий сучасний стан речей. Основну ідею з коректорами і рецензентами міцно поховано на триметровій глибині. Переклади вкрай неоднорідні і дуже криві.

Оскільки рецензентів все одно немає, а переклад за допомогою веб-інтерфейсу може себе виправдати, лише якщо у вас конче немає часу на переклад взагалі (навіщо тоді перекладати?), варто скористатися послугами локальних програм, які нададуть вам змогу перекладати ефективно і послідовно (ви зможете у декілька клацань змінити всі частини перекладу так, щоб він був однорідним, скористатися автоматичним перекладом, перевірити правопис, коректність перекладу тощо, але про це ми поговоримо пізніше). Втім, це ваша справа, але пам’ятайте, наприклад, Opera не перевіряє правопис у однорядкових формах без додаткового вмикання. Будьте уважні!

Для локального перекладу вам слід звантажити файл (велика кнопка «Download» вгорі посередині). На відміну від Pootle, Rosetta не передає файли через веб-інтерфейс. Можливо, вам доведеться чекати декілька годин, доки файл надійде на електронну пошту.

Після завершення перекладу ви можете вивантажити переклад назад (кнопки «Upload» на знімку немає — я не є учасником команди перекладу Ubuntu). Ось і все.

Окрім перекладу програм, на Rosetta зберігається багато перекладів документації для Ubuntu. Якщо ви є розробником або уповноваженим представником розробника, ви можете розмістити сторінку перекладу своєї програми на LP. Але, будь ласка, не робіть цього, якщо ніхто вас не просив! Правила LP прямо про це говорять (див. вище).
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #10 : 2009-09-14 17:52:23 »
Продовження читайте тут.
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній btr

  • Письменник
  • *****
  • дописів: 653
  • Карма: +0/-0
Re: Переклади: як це робиться?
« Відповідей #11 : 2009-09-15 08:04:55 »
цитата: "при найменшій помилці у імені автора, імені файлу"...

Потрібна допомога у вичитуванні?

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #12 : 2009-09-15 08:12:08 »
цитата: "при найменшій помилці у імені автора, імені файлу"...

Потрібна допомога у вичитуванні?
Потрібна. Але акуратніше. По всьому, у нас є певні неузгодженості з перекладачами GNOME, а працювати треба спільно без сварки щодо «імен файлів» та закінчень у родовому відмінку.
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law

Відсутній btr

  • Письменник
  • *****
  • дописів: 653
  • Карма: +0/-0
Re: Переклади: як це робиться?
« Відповідей #13 : 2009-09-15 10:40:53 »
чи-то фрагментами тексту
Не сказати, що все це зручно було перекладати.
(GTranslator)не було
оригінали рядків (msgid) повинні бути унікальні(ими) у(в) межах файлу(а)
кнопка "Update", та діалогове вікно з назвою "Update" - без коми
англійський оригінал однаковий контекст різний - тире або кома
відобрадався
Наприклад, може застосовувати(ся) для перекладу man-сторінок
Після перекладу файлу uk.po
Відсутність «зайвих» файлів, що не є невід’ємною складовою дистрибутива. - що на які

далі буде...

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3628
  • Карма: +2/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Переклади: як це робиться?
« Відповідей #14 : 2009-09-15 19:09:04 »
чи-то фрагментами тексту
Не сказати, що все це зручно було перекладати.
(GTranslator)не було
оригінали рядків (msgid) повинні бути унікальні(ими) у(в) межах файлу(а)
кнопка "Update", та діалогове вікно з назвою "Update" - без коми
англійський оригінал однаковий контекст різний - тире або кома
відобрадався
Наприклад, може застосовувати(ся) для перекладу man-сторінок
Після перекладу файлу uk.po
Відсутність «зайвих» файлів, що не є невід’ємною складовою дистрибутива. - що на які
Дякую, виправив.
далі буде...
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law