CJK line breaking: правила верстки китайського й японського тексту

Як працюють переноси, кінісоку та вирівнювання китайського й японського тексту в перекладених документах. Перевірте правила, шрифти й макет.

Також: EN UK RU
CJK line breaking: правила верстки китайського й японського тексту

Коли рядок у перекладеному документі раптом виглядає неправильно

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

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

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

Тут важливо не плутати три задачі: визначити дозволені місця розриву, вибрати конкретне місце переносу й вирівняти рядок по краях текстового блока. Unicode описує першу задачу, але не визначає за редактор дві інші. Тому перевірка лише тексту чи одного зображення сторінки може не показати всіх проблем.

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

Що таке CJK line breaking і чому переноси не схожі на англійські

CJK line breaking - це правила, за якими програма вирішує, де текст китайською, японською чи корейською мовою може перейти на новий рядок. Для англійського речення часто достатньо орієнтуватися на пробіли. У звичайному китайському й японському письмі таких роздільників немає, тож редактор має враховувати інші підказки. Microsoft пояснює, що в китайській, японській і тайській системах письма межі слів не позначають пробілами.

Unicode UAX #14 описує алгоритм перенесення рядків. Він визначає можливі місця розриву, але не вибирає точну позицію кожного переносу. Це робить програма, яка компонуватиме текст у конкретному блоці: вона враховує доступну ширину та розмір тексту. У специфікації Unicode UAX #14 це пояснено прямо:

“The selection of actual line break positions from the set of break opportunities is not covered by the Unicode Line Breaking Algorithm, but is in the domain of higher level software with knowledge of the available width and the display size of the text.”

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

UAX #14 розрізняє обов’язкові розриви, безпосередні можливості переносу, місця, де перенос можливий за наявності проміжного пробілу, та заборонені розриви. Тобто правило не зводиться до «перенось після кожного символу». Програма має зіставити класи символів із правилами, а тоді вкласти текст у доступний простір.

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

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

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

Як програма вибирає місце переносу на практиці

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

Розрізняй дві речі: «тут перенос дозволений» і «саме тут редактор перенесе». Перша стосується властивостей символів та алгоритму. Друга залежить від того, як рядок уміщується в конкретному текстовому блоці. Два редактори можуть розпізнати ті самі можливості переносу, але вибрати різні місця через відмінності в компонуванні.

На ширину рядка впливає й тип символів. Unicode UAX #11 задає властивість East_Asian_Width із шістьма можливими значеннями: Ambiguous, Fullwidth, Halfwidth, Narrow, Wide та Neutral. Документ UAX #11 пояснює ці класи, але не встановлює всі правила верстки чи дизайну шрифтів.

Широкі символи в багатьох східноазійських контекстах поводяться подібно до ідеограм, і між ними часто можна переносити. Вузькі символи зазвичай залишають групами, а у вертикальному тексті вони можуть повертатися. Але ширина - лише один із чинників: на набір також впливають інші властивості символів і рішення конкретної програми.

Змішаний текст потребує окремої уваги до значення Ambiguous. Латинська літера, математичний знак чи інший символ може поводитися по-різному залежно від операції та контексту. Не вважай, що всі знаки в одному рядку мають однакову ширину або однакові правила переносу. Перевіряй разом увесь фрагмент із китайськими символами, латинською назвою бренду й числовим значенням.

UAX #14 описує також службові символи, здатні змінити місця переносу. Word Joiner і символи нерозривного з’єднання забороняють розриви навколо себе, а Zero Width Space створює можливість перенести рядок. Ці знаки не завжди видно, тож причина дивного переносу може бути в текстових даних, а не в тому, що бачить редактор.

Не вставляй такі символи навмання, щоб «підправити» рядок. Прихований нерозривний знак може прибрати один небажаний перенос, але після редагування завадити вміститися іншому рядку. Спершу перевір, чи є символ у вихідному матеріалі, і з’ясуй, яке правило або налаштування застосовує редактор.

Приклад: у рядку є суцільний японський текст, латинська назва продукту й закривальна дужка. Редактор може дозволити перенос перед назвою або після неї, але заборонити відривати дужку від попереднього вмісту. Коли текстовий блок звужується, програма шукає інше місце для розриву. На результат впливають дозволені точки переносу, ширина символів і параметри компонування - не лише межі слів.

У Word є параметр рівня переносу для далекосхідних мов. Документація Microsoft про FarEastLineBreakLevel уточнює: значення параметра ігнорується, якщо вимкнено FarEastLineBreakControl. Отже, зміна рівня сама по собі не обов’язково вплине на документ, якщо головне керування далекосхідними переносами вимкнене.

Не оцінюй редактор лише за назвою параметра. Реалізація правил може відрізнятися, а однакові налаштування не гарантують однакового результату в різному програмному забезпеченні. Microsoft описує розбіжності між правилами згаданого стандарту й поведінкою Word; у певних випадках overflowPunct може мати перевагу над кінісоку для того самого символу. Примітка Microsoft про реалізацію - ще одна причина перевірити готовий документ у програмі, де його відкриватимуть.

Кінісоку та пунктуація: що не можна відривати від рядка

Кінісоку-сьорі - це японські правила, які визначають, які символи можуть стояти на початку чи наприкінці рядка та що не можна розділяти між рядками. Microsoft пов’язує ці правила зі стандартом JIS X 4051 у своєму поясненні перенесення рядків. Для перекладача й верстальника це означає, що пунктуацію треба враховувати під час компонування, а не додавати як декоративний елемент після набору тексту.

Закривальна пунктуація - простий приклад. Клас CL (Close Punctuation) у Unicode охоплює закривальні знаки; UAX #14 забороняє розрив рядка перед ними. Саме тому закривальна дужка чи подібний знак не мають опинятися самі на початку нового рядка. Для інших знаків правила можуть бути складнішими й залежати від мовної норми та налаштувань.

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

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

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

Для китайського набору W3C описує вимоги до компонування та пов’язує особливості китайської верстки з наявними стандартами, зокрема Unicode. Документ W3C Chinese Layout Requirements пояснює, зокрема, стискання пунктуації: зайвий простір коригують на початку чи наприкінці рядка або між сусідніми знаками. Так можна вписати рядок, не розтягуючи механічно всі проміжки.

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

Як вирівнювати китайський і японський текст без пробілів між словами

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

Microsoft розрізняє вирівнювання між словами або кластерами й вирівнювання між ідеографічними символами. У другому випадку програма може додавати проміжки між китайськими чи японськими ідеограмами, не розтягуючи так само латинські літери. Опис вирівнювання тексту від Microsoft пояснює цю різницю та її роль у східноазійському наборі.

У японському рядку для корекції можуть використовувати проміжки біля пунктуації, на межах зміни письма й між символами. Microsoft пояснює це так:

“For example, even though the Japanese writing system doesn’t use spaces between words, spacing can be adjusted around punctuation, script-change boundaries, and between characters.”

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

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

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

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

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

Типові помилки у верстці перекладених CJK-документів

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

Друга помилка - шукати пробіли й тільки їх. Такий підхід підходить для багатьох англійських речень, але не описує звичайний китайський чи японський текст. У CJK треба перевірити можливості переносу між символами й обмеження, які не дозволяють розривати окремі поєднання.

Третя помилка - рахувати символи, не зважаючи на їхню ширину. East_Asian_Width має шість можливих значень, а Ambiguous може залежати від контексту операції. Однакова кількість знаків у двох рядках не гарантує, що вони займуть однакову ширину. Перевіряй макет у вибраному шрифті.

Четверта помилка - змінити рівень переносу в Word і вирішити, що роботу закінчено. Налаштування FarEastLineBreakLevel ігнорується, якщо FarEastLineBreakControl вимкнено, як зазначено в документації Microsoft. Після зміни параметрів відкрий документ знову й перевір, чи змінилося перенесення.

П’ята помилка - очікувати однакової реалізації правил у всіх редакторах. Microsoft описує відмінності між стандартом і поведінкою Word, а також конфлікт між overflowPunct і кінісоку для деяких символів. Примітка про реалізацію нагадує: перевір результат у цільовій програмі, а не припускай, що всі редактори однаково застосовують правила.

Шоста помилка - виправляти кожен невдалий рядок ручним пробілом або зміною шрифту. Така латка може зіпсувати сусідній рядок після редагування або пересунути символ на іншу сторінку. Спершу з’ясуй причину: заборонений перенос, невдале вирівнювання, ширина текстового блока, властивість символу чи різниця між програмами.

Ось короткий список, за яким можна перевірити весь документ, а не лише основний текст:

  1. Перевір заголовки, підписи, таблиці, колонтитули й текст у вузьких колонках.
  2. Переглянь початки та кінці проблемних рядків, особливо біля пунктуації.
  3. Знайди латинські назви, коди й числа всередині CJK-тексту та перевір їхні межі.
  4. Переконайся, що короткий останній рядок абзацу не розтягнувся неприродно.
  5. Перевір параметри східноазійського переносу в редакторі, зокрема головне керування й рівень переносу.
  6. Відкрий фінальну версію в програмі, де документ використовуватимуть, і ще раз переглянь сторінки після останнього редагування.

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

Перед передаванням документа до друку або клієнтові перевір формат окремо. Переконайся, що у фінальному файлі збережено потрібні шрифти й параметри компонування, а сторінки виглядають так само, як у цільовому редакторі. Особливо уважно переглянь таблиці й блоки з фіксованою шириною: небажаний перенос там швидше змінить відступи й висоту рядка.

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

Перед завершенням перевірки запиши, у якому редакторі та з якими налаштуваннями переглядав файл. Так простіше відрізнити проблему вихідного документа від особливостей відображення в іншій програмі. Для наступних випусків порівнюй не тільки текст, а й сторінки, де раніше змінювали переноси, ширину колонок або шрифти.

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

FAQ

Чим переноси в китайському й японському тексті відрізняються від англійських?

Китайська та японська не позначають межі слів пробілами в звичайному суцільному тексті. Програма враховує дозволені межі між символами й правила, які забороняють розрив у певних місцях. Для англійського тексту орієнтиром часто є пробіли між словами, але в CJK його зазвичай немає.

Як не допустити японський знак пунктуації на початку рядка?

Увімкни правила східноазійського переносу, зокрема кінісоку, і перевір результат у цільовій програмі. Клас CL у Unicode UAX #14 забороняє розрив перед закривальною пунктуацією, але редактори можуть по-різному реалізовувати ці правила.

Як вирівнювати китайський і японський текст без пробілів між словами?

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

Чому перекладений текст CJK виходить за межі рядка?

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

Що перевірити в макеті документа китайською або японською?

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

Спробуйте ChatsControl

AI-платформа для професійних перекладачів

Спробувати безкоштовно →