Skip to content

Localization uk UA

ArchiBot edited this page Dec 17, 2022 · 35 revisions

Локалізація

ASF використовує сервіс Crowdin, що дає можливість усім бажаючим допомогти перекладати ASF на мови всього світу. Для більш детального пояснення як працює Crowdin, ознайомтеся будь ласка з вступом до Crowdin.

Якщо вам цікаво, що зараз робиться стосовно перекладу, ви можете подивитися журнал активності ASF на Crowdin.


Покриття

Наша платформа підтримує локалізацію основної программи ASF, а також усього контенту який ми поставляємо разом з нею. Це включає наш ASF-WebConfigGenerator, ASF-ui, а також нашу wiki. Усе це можливо перекласти за допомогою зручного інтерфейсу crowdin.


Реєстрація

Якщо ви бажаєте допомогти ASF, чи то перекладом, чи то рецензуванням, чи то погодженням перекладів, будь ласка, зареєструйтеся на сторінці проекту Crowdin. Реєстрація проста та цілком безкоштовна! Після входу ви можете обрати мови, якими бажаєте займатися, а потім перейти до рядків ASF і допомогти решті спільноти перекладати ASF на усі популярні мови!


Переклад

Якщо мові, яку ви обрали, все ще бракує деяких рядків, ви можете узяти їх та почати працювати над перекладом. Ми намагалися зробити процес перекладу якомога гнучкішим, тому у багатьох рядках присутні додаткові змінні, які ASF буде заповнювати протягом роботи - вони оточені дужками з числом, як наприклад {0}. Це дозволяє вам змінити формат рядка ASF за замовчанням, наприклад перемістити змінну ASF у інше місце, яке більш підходить для вашого перекладу, замість того щоб бути змушеним дотримуватися жорсткого контексту та формату. Це особливо важливо для мов з написанням літер справа наліво, таких як Іврит.

Наприклад, ви маєте такий рядок:

We have {0} games to farm.

Але у вашій мові більше сенсу буде мати таке речення:

The number of games to farm is equal to {0}.

Або:

{0} is the number of games to farm.

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


Рецензування

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

Вам не потрібно погодження коректора щоб побачити ваш переклад у ASF. Погодження лише означає що хтось, кому ми довіряємо, перевірив контент, тобто обрав остаточну версію перекладу. Цілком нормально мати непогоджений переклад від спільноти, у якому ви проголосували за найкращій варіант. Якщо рядок перекладений, то все гаразд! А якщо ви вважаєте що поточний переклад поганий, ви завжди маєте можливість проголосувати за кращій, або внести свою пропозицію.


Коректура

Було б добре мати одноманітний переклад, навіть якщо де може потенційно обмежити свободу спільноти у рецензуванні/голосуванні, які описані вище. Це потрібно головним чином тому, що невірно перекладені рядки, які не обов'язково погані, можуть отримати так багато голосів "за", ща майже неможливо запропонувати кращій переклад, навіть якщо в когось він є.

Якщо ви маєте досвід участі у перекладах на Crowdin, або будь якій іншій платформі/сервісу локалізації, і ви можете надати нам можливість перевірити, що ви надійні, ми з радістю надамо вам доступ до коректури обраної мови, участь у перекладі якої ви берете, і ви зможете погоджувати переклади і слідкувати, щоб вони були одноманітні. Коректура це непроста задача, особливо у зв'язку з тим що ASF може час від часу бути досить "технічним" та складним для перекладу, але ми розуміємо що це необхідно для досконалого перекладу. Тому, якщо ви бажаєте допомогти у коректурі якоїсь мови, повідомте нам про це, але пам'ятайте що вам потрібно буде навести приклади минулої участі у локалізації, які ми зможемо перевірити (наприклад, попередню участь у локалізації ASF на Crowdin, або у будь-якомусь іншому проекті). Ми можемо також надати право попередньої коректури більш досвідченим користувачам, якщо ми знаємо їх особисто і вони здатні співпрацювати з рештою спільноти з метою локалізувати ASF на їхню мову якнайкраще.

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


Проблеми

Якщо у вас виникли проблеми з якимось перекладом, наприклад, ви не знаєте як його перекласти, або погоджений переклад невірний, чи вам потрібно знати контекст, чи щось інше - будь ласка, залишіть коментар до конкретного рядку, і поставте йому відмітку [X] Issue.

Будь ласка, уникайте використання відмітки "issue" якщо вам не потрібне техничне пояснення або дії адміністрації. You're free to use comments for discussion related to translation of given string, but issue should be used only when you need further technical explanation or admin correction, and it will typically involve somebody who does not even speak the language you're translating to, so please stick with English when writing issue comment (so we can understand what the issue is).

Наразі для issue підтримується 4 типа:

  • General question (Загальні питання) - для усього, що не підпадає під жоден з типів нижче. Зазвичай цього типу слід уникати, бо якщо ваша проблема не підпадає під категорії, дуже ймовірно що це не проблема перекладу. Тим не менш, ця опція доступна для усіх інших випадків.
  • Поточний переклад невірний - цей тип треба обирати лише якщо переклад вже погоджений коректором, але ви вважаєте що він невірний, наприклад має помилку, або у вас є краща пропозиція, як це треба перекласти. Цей тип ніколи не треба використовувати для перекладів, які обрані спільнотою (голосування), бо у цьому випадку ви маєте зв'язатися с користувачем, який запропонував цей переклад, та попрохати його внести виправлення, або просто проголосувати за кращій переклад, як це зазначено у розділі "рецензування". We'll remove the approval of the translation and notify the appropriate proof-reader in charge of the language to take into account your comment and verify again.
  • Lack of contextual information (Відсутність контекстної інформації) - цей тип слід обирати якщо вам не зрозуміло, яку частину ASF ви перекладаєте, у якому контексті використовується цей рядок, чи з якою метою. Цей тип слід використовувати лише для розробки ASF, він означає що вам потрібна технічна допомога через те що ви не розумієте як слід перекладати цей рядок.
  • Mistake in the source string (помилка у вихідному рядку) - цей тип потрібно обрати лише якщо ви впевнені що оригінальній (англійський) рядок невірний. Quite rare, but not all of us are speaking English natively either, so feel free to use it if you have a general idea how it could be improved. Alternatively, since this is strictly related to the development, you may use our GitHub issues for that purpose, if you'd like to.

Просування перекладу

Для кожної мови є дві стадії завершення - переклад та коректура.

Мова вважається перекладеною коли прогрес перекладу сягає 100%. На цей момент усі рядки, які можливо локалізувати у ASF мають вірне значення, і це чудово. Однак це не означає що нема що вдосконалити - весь час іде голосування спільноти та лишається можливість запропонувати кращій переклад для вже перекладених частин а також проголосувати за існуючий. Майте на увазі, що навіть цілком перекладена мова може опуститися нижче 100% коли ми змінимо якісь рядки, чи додамо нові під час розробки. Ви можете налаштувати відповідні повідомлення від crowdin щоб отримувати e-mail коли це відбувається.

Деякі мови можуть мати коректорів, які перевіряють переклад та погоджують остаточну версію. Це останній етап після перекладу, і він не лишає місця для подальшого вдосконалення локалізації.

Обрану мову буде додано до ASF якнайшвидше, тобто не потрібно щоб переклад був погоджений, чи навіть закінчений на 100%. Фактично завжди будуть використані рядки, які наразі найбільш популярні згідно с голосуванням, якщо коректор не вирішив інакше (зрідка). Тому ви зможете побачити результати ваших зусиль вже у наступній версії ASF - наші автоматичні систему щодня об'єднують переклад з Crowdin з репозиторієм ASF.


Відсутні мови

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

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


Множина

У кожній мові є власні правила формування множини. Ці правила можна знайти на сайті CLDR, який вказує їх число та умови для певної мови.

Ми намагаємось надати вам гнучкість у перекладі, тому якщо це можливо ми додаємо правила формування множини. Наприклад, ми перекладаємо наступний рядок на польську:

Released {PLURAL:n|{n} month|{n} months} ago

Ключове слово PLURAL тут обробляється особливим чином, і тому надає вам можливість додати усі форми множини, які є у вашій мові. Якщо ви подивитесь на CLDR, ви побачите що у англійській є лише 2 основні (cardinal) форми - "one" та "other". Як легко побачити вище, обидві вони обрані - {n} month та {n} months.

Однак у польській мові насправді 4 форми - "one", "few", "many" та "other". Це означає що ми маємо задати усі з них для повноти перекладу. Наші інструменти локалізації досить розумні щоб обрати форму множини відповідно до правил мови, тому вам лише потрібно додати всі форми до перекладу:

Wydany {PLURAL:n|{n} miesiąc|{n} miesiące|{n} miesięcy|{n} miesiąca} temu

Таким чином ми обрали всі 4 форми множини для польської мови, і оскільки нашій бібліотеці відомі правила для кожної мови, вона буде використовувати відповідну форму згідно з потрібним числом {n}.

Не обов'язково задавати усі форми множини для вашої мови. Якщо якоїсь не вистачає, наша бібліотека локалізації використовуватиме останню задану форму замість неї. Найкраще задати усі форми множини, які існують для вашої мови, але у деяких випадках деякі форми такі ж, як попередні, у цьому випадку не потрібно їх повторуювати. У нашому прикладі вище це було потрібно, бо форма "other" у польській для слова місяць це "miesiąca", а не "miesięcy" як для форми "many".


Wiki

Наша платформа crowdin також дає можливість локалізувати саму wiki. Це дуже потужний інструмент, бо він дозволяє вам створити повну документацію ASF на вашій рідній мові, вирішуючи останню проблему локалізації ASF. Разом з перекладом програми та усіх її частин, це робить локалізацію повною.

Wiki дещо особлива у цьому плані, бо це онлайн допомога у якій вам не треба занадто точно слідувати вихідним реченням. Себто, що ви маєте можливість користуватися природною мовою аби донести первинне значення - не обов'язково дотримуватися вихідних рядків, використаних слів чи пунктуації. Не лякайтеся переписати рядок у щось більш природне для вашої мови, головне щоб було збережено загальний напрямок і допомога, присутні в реченні.


Загальні посилання

Наша платформа crowdin також дозволяє вам адаптувати вихідний текст щоб він посилався на нові (локалізовані) адреси.

ASF майже на кожній сторінці має посилання для зручної навігації, а також бічну панель праворуч. Чудова новина у тому, що ви маєте можливість редагувати усе це, "виправляючи" посилання на адресу вірних локалізованих сторінок на вашій мові. Це вимагає бути трохи обережним, але це можливо.

Наприклад, на головній сторінці ASF є такий текст:

Якщо ви новий користувач, ми радимо вам почати з посібника по налаштуванню.

Який спочатку був записаний як:

If you're a new user, we recommend starting with **[setting up](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Setting-up)** guide.

У системі crowdin, спочатку вам потрібно перейти до налаштувань редактору та переконатися що перемикач "HTML tags displaying" встановлено у положення "Show". Це дуже важливо якщо ви збираєтесь локалізувати wiki.


Crowdin


Далі, під час роботи над перекладом на crowdin, в залежності від формату, ви побачите посилання ASF у тексті в одному з виглядів:

  • String to translate together with HTML tags (majority of strings, where only a part of the sentence is a link)
  • Alone string to translate, with link included in Hidden texts -> Link addresses (rare, where entire string is a link, most common in sidebar - those require proofreader access to translate, sadly)

У прикладі вище ми маємо перший випадок (оскільки посилання це лише слова "setting up"), тож у crowdin ми побачимо таке:


Crowdin 2


У будь-якому випадку, спочатку потрібно скопіювати вихідний рядок та перекласти його як звичайно, залишивши увесь HTML (якщо він є) неторканим. Ось приклад перекладу на польську мову:


Crowdin 3


Далі, якщо це загальне посилання, яке веде назовні wiki (наприклад, на останній випуск ASF), ви можете лишити його як є, якщо ви не маєте бажання його редагувати. Ви можете зберегти рядок і рухатися далі.

Однак, якщо це посилання насправді вказує кудись всередині wiki, як у прикладі вище, ви можете виправити його щоб воно посилалося на нове (локалізоване) положення. Щоб зробити це, треба обережно додати -locale до цільового URL у тегу <a>, як показано нижче:


Crowdin 4


Будьте дуже обережні з цим, і переконайтеся що ваш новий URL насправді існує, бо якщо ви припустите помилку, це посилання припинить працювати. Якщо вам вдалося, у вас буде цілком функціональне посилання на перекладену сторінку (у нашому прикладі - Setting-up-pl-PL).

Виконання вище приведених кроків дозволить правильно перекодувати HTML назад до markdown:

Jeśli jesteś nowym użytkownikiem, zalecamy rozpoczęcie od korzystania z **[przewodnika po konfiguracji](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Setting-up-pl-PL)**.

І, з рештою, до тексту у wiki:

Jeśli jesteś nowym użytkownikiem, zalecamy rozpoczęcie od korzystania z przewodnika po konfiguracji.

When no HTML is present (second case), this is even easier since you can just go to Hidden texts -> Link addresses.


Crowdin 5


І звідти ви можете легко виправити посилання на нову адресу, навіть взагалі не турбуючись про HTML:


Crowdin 6


Локальні посилання

На сторінках wiki ви також зустрінете локальні посилання, які вказують на окремий розділ документу. Ці посилання включають символ #, це вказівка веб-браузеру що потрібно перейти до певного розділу у документі.

Це особливий випадок, оскільки ці посилання залежать від назви розділів поточного документа. Якщо для URL ми маємо загальне правило додавання -locale до адреси, і це працює усюди, то назви розділів будуть перекладені вами та іншими людьми, тому вам потрібно переконатися що вони вказують на правильне розташування.

Наприклад, ви можете знайти посилання #introduction на сторінці configuration:


Crowdin 7


Оскільки ми збираємося перекласти "Introduction" як "Wprowadzenie" для польської мови, нам потрібно буде змінити це посилання, або воно припинить працювати як тільки ми зробимо переклад.


Crowdin 8


Таким чином наші локальні посилання продовжать працювати, оскільки тепер вони вказують на назву розділу, яку ми використовуємо. Так само можна виправити і посилання всередині HTML-тегів.


Блоки коду

Будьте вкрай обережні коли перекладаєте речення з блоками коду <code></code> всередині. Блоки коду вказують на фіксовані кодові назви ASF, або терміни які не повинні перекладатися. Наприклад:

This is especially useful if you have a lot of keys to redeem and you're guaranteed to hit RateLimited status before you're done with your entire batch.

Як бачите, слово RateLimited взяте у блок коду і відображує внутрішній статус ASF, який не треба перекладати. Так само, не потрібно перекладати і інші блокі коду, такі як назви параметрів конфігурації (наприклад TradingPreferences), члени переліків enum (наприклад опції Stable та Experimental у параметрі UpdateChannel) і таке інше.

Однак, тільки через те що ці слова не треба перекладати, не означає що ви не можете додати до них відповідний переклад, наприклад у дужках.

Ta funkcja jest wyjątkowo użyteczna w przypadku aktywacji dużej ilości kluczy i gwarancji napotkania statusu RateLimited (zbyt częstej aktywacji) przed ukończeniem całej partii.

Як ви бачите вище, ми додали "zbyt częstej aktywacji", що означає "занадто часта активація" поруч з RateLimited для того щоб перекласти цей статус, і у той самий час лишили вихіндне значення ASF, яке користувач побачить під час користування програмою. Так само ви можете перекладати/пояснювати інші, схожі випадки різноманітних слів чи речень.

Якщо ви вважаєте що якась частина тексту взята у блок коду безпідставно, або навпаки, є текст якій має бути взятий у блок коду, не зволікайте запитати на crowdin або зробіть відповідний коментар з поміткою issue. Це також практичний приклад використання локального посилання.


Зала слави

Ми хочемо висловити нашу нескінченну подяку людям, які витратили значний обсяг свого часу намагаючись зробити локалізацію ASF краще. Їхні зусилля неймовірні, і ви можете насолоджуватися повним перекладом, включно з wiki, переважно завдяки їм. As a token of appreciation, all people listed here are offered free access to MatchActively feature upon a request.

Співробітник Мови
Astaroth LOLCAT, Spanish
Dead_Sam Португальська (BR)
deluxghost Китайська (CN)
DragonTaki Chinese (TW)
LittleFreak Німецька
Ryzhehvost Українська та російська
MrBurrBurr LOLCAT, German
XinxingChen Китайська (HK)

Дякуємо вам усім за вдосконалення якості локалізації ASF!

Clone this wiki locally