Английская кнопка Save помещается в узкий столбец, а немецкая Änderungen speichern уже занимает две строки и сдвигает соседний элемент. Переводчики еще не виноваты: интерфейс просто рассчитали под длину исходного текста, а не под реальный язык.
Расширение текста при переводе с английского на немецкий - это ситуация, когда перевод занимает больше места, чем исходная строка, и из-за этого меняется верстка. Проблема заметна в кнопках, меню, уведомлениях, таблицах и формах, но дело не только в длине: немецкие составные слова сложнее переносить, а грамматическая конструкция зависит от контекста.
Что означает расширение текста и почему немецкий интерфейс ломается¶
Расширение текста - это увеличение длины переведенной строки относительно оригинала. Для интерфейса длина важна не сама по себе: значение имеют ширина контейнера, доступная высота, размер шрифта, место переноса и соседние элементы.
Универсального процента расширения именно для немецкого нет. Для предварительного теста Microsoft рекомендует увеличить английские строки на 40%. Это эвристика, то есть практическое приближение для поиска проблем, а не обещание, что немецкий перевод каждой строки станет ровно на 40% длиннее.
По рекомендации Microsoft Learn: “When the source language is English, a good heuristic is to lengthen the text by 40%.”
Перевод: если исходный язык английский, полезная эвристика - удлинить текст на 40%.
Смысл совета не в том, чтобы переводчику механически добавлять слова. Коэффициент нужен разработчикам и специалистам по локализации, чтобы проверить интерфейс до готовности немецких строк. Реальный перевод должен оставаться естественным и точным, а тестовая строка лишь создает нагрузку на макет.
Одинаковое расширение тоже не распределяется равномерно. Длинное предложение может измениться умеренно, а короткая подпись из одного слова - заметно в пропорции. Microsoft указывает, что в крайних случаях отдельная строка может стать длиннее на 200% или даже на 400%, а строки из одного-двух слов часто растут пропорционально сильнее длинных (Microsoft Learn о псевдолокализации). Эти крайние значения полезны как предупреждение: средняя длина перевода не гарантирует, что конкретная кнопка поместится.
Немецкий добавляет еще один фактор. Составные слова обычно пишутся слитно: Duden приводит пример Wasser + Glas = Wasserglas (правила немецких сложных слов). В английской подписи смысловые части могут быть разделены пробелами, а в немецком соответствующее понятие может образовать одно длинное слово. Если ширина кнопки фиксированная и перенос запрещен, браузеру или приложению может не найтись подходящего места для разрыва.
Расширение бывает заметно и без длинных слов. Переводчик может выбрать более полную формулировку, потому что короткий английский ярлык без контекста допускает несколько прочтений. Тексту могут понадобиться дополнительные грамматические элементы, уточнение действия или другая часть речи. Сжатие немецкой строки ради сохранения размеров кнопки иногда меняет смысл, тон или понятность интерфейса.
В результате возникают несколько типичных эффектов:
- подпись обрезается или заменяется многоточием;
- текст переносится, но высота кнопки остается прежней;
- две соседние кнопки сталкиваются;
- ошибка валидации закрывает поле формы или уходит за край;
- длинное слово выступает за границы карточки;
- увеличившийся текст сдвигает другие элементы;
- перевод помещается, но становится слишком тесным для чтения.
Фиксированная координатная верстка особенно уязвима: если контролу заранее выделили место под английскую подпись, длинная строка может обрезаться, пока разработчик не изменит размер или положение элемента. Microsoft описывает этот риск и преимущества адаптивного интерфейса. Гибкий макет умеет менять размеры, переносить подписи или сдвигать элементы в зависимости от длины текста.
Простой пример: меню содержит английскую команду Account settings, а в немецкой версии появляется Kontoeinstellungen. Если пункт меню умеет расширяться по содержимому, подпись займет дополнительное место. Если ширина меню жестко ограничена, слово может быть обрезано или выступить за границу. Проверять нужно не абстрактное «немецкий длиннее», а конкретное поведение компонента при конкретной строке.
Расширение стоит учитывать и в дизайне интерфейсов с сохранением форматирования: ограничения есть не только у кнопок, но и у заголовков, таблиц и документов, которые после перевода должны остаться читаемыми.
Как подготовить интерфейс до передачи строк переводчику¶
Подготовка начинается не с выбора максимального процента, а с устройства проекта. Если текст разбросан по коду и разметке, команде трудно найти все строки, передать их на перевод, собрать версии и проверить, где именно проявилась ошибка.
Храните текст отдельно от кода¶
Microsoft рекомендует хранить переводимые строки в ресурсных файлах, а не в виде жестко заданных литералов в коде или разметке. Такой подход позволяет менять локализованные ресурсы отдельно от собранных бинарных файлов и помогает увидеть перечень строк, которые нужно перевести.
Для каждой строки полезно сохранить не только английский текст, но и сведения, которые объясняют его роль: экран, название элемента, ограничение по длине, допустимость переноса, наличие подстановки или переменной. Фраза Open без контекста может обозначать действие, состояние или команду меню. Переводчик не должен угадывать, какую функцию выполняет слово.
Короткая строка сама по себе не плоха. Microsoft отмечает, что короткие тексты легче переводить, но предостерегает от повторного использования одной и той же строки в разных контекстах: даже простой термин может требовать разных переводов (подготовка приложения к локализации). Поэтому одинаковые английские слова не всегда следует сводить к одному ключу ресурса.
Представьте кнопку Back и подпись back в описании движения. Английское написание совпадает, но функция и грамматическая роль могут различаться. Если системе известна только строка без контекста, переводчик не сможет надежно выбрать немецкий вариант. Добавьте отдельные ключи и описания вроде navigation.back_button и instruction.move_back.
Не собирайте предложения из независимых кусочков¶
Подстановки экономят место в коде, но могут сломать грамматику. Microsoft приводит немецкие примеры: для встречи используется Der Termin, для задачи - Die Aufgabe, для документа - Das Dokument. Артикль меняется вместе с родом существительного, поэтому конструкция из постоянного немецкого фрагмента и подставляемого слова может оказаться неправильной (примеры локализации Microsoft).
Например, код может собирать фразу из общего шаблона «Вы открыли» и названия сущности. Если переводить фрагменты независимо, порядок слов и грамматическая связь между частями предложения могут не совпасть с нормальным немецким предложением. Microsoft советует локализовать предложение целиком, если грамматика зависит от подставляемого значения.
Передавайте переводчику весь шаблон и поясняйте, какие значения подставляет система. Если в интерфейсе меняется число, имя, дата или название объекта, перечислите возможные варианты и задайте правила форматирования. Иначе строка может выглядеть грамматически верно в одном сценарии и неправильно в другом.
Проектируйте элементы, которые могут меняться¶
Гибкая ширина позволяет кнопке занять столько места, сколько требуется подписи. Перенос текста помогает, когда расширение по ширине ограничено, но высота компонента может изменяться. Для группы кнопок может подойти переход на новую строку или изменение расположения элементов.
Гибкость не означает, что каждый экран должен свободно растягиваться без правил. Если элемент разрастается, интерфейс может потерять иерархию: важная кнопка окажется далеко от поля, а таблица станет слишком широкой. Задайте ограничения заранее: где разрешен перенос, какая ширина максимальна, на каком размере экрана элементы перестраиваются и что происходит с соседними компонентами.
Полезно проектировать адаптивно не только под немецкий, но и под разные размеры окна. Рекомендации Microsoft по адаптивному интерфейсу объясняют, что гибкие макеты позволяют подписям и кнопкам менять размер, переноситься или перемещаться вслед за строкой, вместо того чтобы задавать отдельные размеры вручную для каждого языка.
В нативном интерфейсе тоже проверяйте, что делает конкретная платформа. В сессии Apple о локализации SwiftUI показано, как текст в элементах управления может переноситься вместо обрезания, если подпись длиннее; там же обсуждается выравнивание по ведущему краю, а не жесткое выравнивание слева (сессия Apple WWDC21). Поведение зависит от того, как устроен конкретный экран, поэтому полагаться на свойство компонента без проверки приложения не стоит.
Как провести псевдолокализацию и найти проблемы заранее¶
Псевдолокализация - это автоматическое преобразование исходных строк, которое имитирует некоторые эффекты перевода. Результат остается достаточно читаемым для тестирования без знания другого языка. Такой режим помогает проверить длину, работу со шрифтами и обработку границ строк до того, как перевод на немецкий будет готов (описание псевдолокализации Microsoft).
Тестовые строки нужно не просто удлинить. Хорошая псевдолокализация может одновременно добавлять символы с диакритическими знаками или символы другого письма, а также ограничители в начале и конце строки. Диакритические знаки показывают, что шрифт поддерживает нужные символы; дополнительные знаки позволяют заметить, если текст обрезался. Встроенные разделители помогают увидеть ошибки склейки строк (рекомендации Microsoft по псевдолокализации).
Упрощенная тестовая строка может выглядеть так:
[Sëttïngs____]
В реальном тесте длину задает инструмент псевдолокализации, а сами символы выбирают по целям проверки. Квадратные скобки показывают начало и конец значения: если закрывающая скобка пропала, строка могла обрезаться. Если разделители неожиданно оказались внутри соседней фразы, приложение, возможно, склеивает текстовые фрагменты так, как разработчики не ожидали.
Псевдолокализация не должна имитировать немецкую грамматику. Ее задача - нагрузить интерфейс и обнаружить технические ограничения, а не проверить, естественно ли звучит перевод. Английская подпись, искусственно удлиненная на 40%, может оказаться полезным тестом размера, но не заменит реальную строку вроде Kontoeinstellungen.
Microsoft Learn предупреждает: “In practice, there can be extreme cases where a string may be 200% or even 400% longer when translated into a real language.”
Перевод: отдельные строки в реальном переводе в крайних случаях могут стать длиннее на 200% или даже на 400%.
Такие крайние случаи не означают, что все немецкие кнопки вырастут в несколько раз. Они объясняют, почему проверка только средней длины ненадежна: небольшое число особенно неудачных элементов способно испортить экран целиком.
Проведите проверку в несколько проходов:
- Подготовьте ресурсы. Убедитесь, что видимый пользователю текст вынесен из кода и представлен в локализуемых ресурсах.
- Создайте тестовый набор. Удлините строки, добавьте диакритические знаки и обрамляющие разделители; включите заголовки, кнопки, сообщения об ошибках и подписи к полям.
- Запустите приложение с тестовыми ресурсами. Просматривайте именно реальные экраны, а не только список строк: расположение элементов и взаимодействие тоже важны.
- Зафиксируйте поломки. Отмечайте обрезание, наложение, неожиданное увеличение контейнера, выход за границы и проблемы с отображением символов.
- Исправьте макет или строковые ресурсы. Меняйте ширину, высоту, перенос и структуру интерфейса, а не укорачивайте перевод без проверки смысла.
- Проверьте немецкую локализацию отдельно. Псевдострока помогает найти технические проблемы, но не показывает все грамматические, терминологические и контекстные ошибки.
Псевдолокализация показывает и ошибки, не связанные напрямую с шириной. Если приложение встраивает строку в шаблон, разделитель может обнаружить склейку. Если интерфейс отображает символы неправильно, акцентированные буквы помогают заметить проблему шрифта. Если локализуемый ресурс отсутствует, английский фрагмент останется виден среди тестовых символов, и команда увидит, что конкретное место не прошло через систему локализации.
Важна последовательность: сначала выявите проблему, затем выясните причину. Обрезанный текст может появиться из-за фиксированной ширины, запрета переноса, неверного ограничения родительского контейнера или текста, который вообще хранится не в ресурсе. Если сразу уменьшить размер шрифта, одна подпись может поместиться, но весь интерфейс станет менее читаемым.
Microsoft прямо указывает, что псевдоперевод не заменяет проверку настоящего локализованного приложения (документация Microsoft). У тестовой строки нет немецкой грамматики, согласования и естественного выбора термина. После псевдолокализации все равно нужно открыть немецкую версию и проверить ее в контексте.
Как работать с немецкими составными словами и переносами¶
Немецкие составные слова часто дают интерфейсу длинную строку без пробелов в том месте, где макет ожидает обычный перенос. Duden объясняет, что составные слова в немецком обычно пишутся слитно, и приводит пример Wasserglas (Duden о составных словах). Поэтому длину слова нельзя оценивать только по числу слов в английской подписи.
Переводчик может выбрать составное слово, которое точно передает смысл, но требует больше горизонтального места, чем компонент предоставляет. В таком случае проблема не решается автоматическим добавлением пробела: искусственный разрыв способен изменить написание или создать трудночитаемую подпись. Выбор формулировки остается языковой задачей, а решение о ширине и переносе - задачей дизайна и разработки.
Нужны ли дефисы в немецких составных словах¶
Дефис может уточнять состав слова или улучшать читаемость, если сложное написание трудно разобрать. Duden приводит примеры Mehrzweck-Küchenmaschine и Umsatzsteuer-Tabelle в своих правилах написания через дефис. Но это не означает, что любой длинный термин в интерфейсе можно автоматически разделить дефисом.
Переводчик не должен подменять языковое решение визуальным хаком. Если немецкая орфография допускает дефис для конкретного слова и он улучшает читаемость, вариант стоит обсудить. Если дефис нужен только потому, что кнопка слишком узкая, сначала проверьте макет: более широкая кнопка или перенос на две строки могут решить проблему без изменения написания.
Что делает CSS hyphens¶
CSS-свойство hyphens управляет переносом слов. В документации MDN описаны значения none, manual и auto; manual является начальным значением свойства, а auto разрешает браузеру автоматически переносить слова в подходящих местах (справочник MDN по hyphens).
Автоматический перенос зависит от языка и словаря браузера. MDN указывает, что для него нужен атрибут lang и доступный словарь переносов, а поведение может различаться между браузерами. Правила переноса языковые, поэтому нельзя считать, что один и тот же CSS-фрагмент одинаково сработает на всех целевых устройствах.
Например, немецкий язык страницы или отдельного блока следует обозначить через языковой атрибут. Если язык не указан, браузеру может не хватить информации, чтобы подобрать немецкие правила. Если словарь недоступен, автоматический перенос не обязательно сработает так, как ожидает команда. Проверяйте конкретные браузеры и устройства, на которых запускается продукт, а не только локальную сборку разработчика.
MDN также различает видимый дефис U+2010 и мягкий дефис U+00AD. Мягкий дефис не отображается постоянно: браузер показывает место разрыва, когда ему нужно перенести слово. Такой символ может дать разработчику контроль над допустимой точкой переноса, но применять его следует только там, где место разрыва согласовано с языковым специалистом (справочник MDN).
Автоматическая расстановка дефисов не должна быть первым средством от тесного интерфейса. Сначала проверьте, может ли элемент расшириться, перенести строку целиком или изменить положение. Если слово внутри кнопки переносится в непривычном месте, подпись может выглядеть хуже, чем чуть более высокая кнопка с переносом без разрыва слова.
MDN формулирует правило прямо: “Hyphenation rules are language-specific.”
Перевод: правила переноса зависят от языка.
Фраза важна для тестирования: перенос, который выглядит приемлемо для английской строки, нельзя автоматически считать удачным для немецкой. Нужны правильная языковая метка, подходящий словарь и проверка самого результата. Если приложение использует собственный шрифт или нестандартный компонент, убедитесь, что разрыв слова не портит визуальное выравнивание и не скрывает часть подписи.
Как проверить кнопку или поле на длинном слове¶
Используйте не только искусственную длинную строку, но и реальные немецкие переводы, которые появляются в интерфейсе. Проверьте крайние варианты: короткую кнопку, широкую кнопку, подпись с составным словом, сообщение об ошибке и текст, который появляется после выбора значения.
Для каждой кнопки посмотрите на четыре вещи: ширину, высоту, внутренние отступы и поведение соседних элементов. Для поля формы добавьте к проверке подсказку, введенное значение, предупреждение и состояние ошибки. У формы может быть достаточно ширины для поля, но недостаточно вертикального пространства под немецкое сообщение валидации.
Если дефис или мягкий дефис добавили вручную, зафиксируйте причину и проверьте, как слово отображается в узких и широких вариантах экрана. Ручной перенос без документации сложно поддерживать: после изменения перевода старая точка разрыва может оказаться неудачной или сам символ останется в интерфейсе в неподходящем месте.
Как проверить готовый немецкий интерфейс и не пропустить ошибки¶
Успешная проверка текста состоит из нескольких типов контроля. Microsoft разделяет тестирование локализации на функциональную, визуальную и лингвистическую проверку. Визуальная часть включает проверку того, что ресурсы интерфейса полностью локализованы, и оценку удобства использования.
Функциональная проверка отвечает на вопрос, работают ли действия после смены языка: кнопки запускают правильные команды, формы отправляются, переключатели меняют состояние, а ошибки появляются там, где пользователь их ожидает. Удлинение текста может нарушить не только внешний вид. Например, невидимый слой поверх элемента способен перехватить нажатие, если компонент перекрывается соседним блоком.
Визуальная проверка показывает, помещается ли текст, сохранена ли иерархия и доступны ли все элементы. Не ограничивайтесь главной страницей. Посмотрите экраны с таблицами, боковыми панелями, выпадающими меню, длинными уведомлениями, пустыми состояниями и сообщениями об ошибках. В реальном продукте пользователь встречает не только идеальный сценарий с короткой подписью.
Лингвистическая проверка нужна, чтобы подтвердить смысл и естественность немецкого текста. Перевод может полностью поместиться и при этом быть неуместным для кнопки, слишком формальным или грамматически неверным из-за подставляемого значения. Специалисту по языку нужен контекст: снимок экрана, описание действия, ограничение по длине и сведения о том, что происходит после нажатия.
Microsoft отмечает, что проверка внутри работающего приложения находит больше проблем, чем чтение ресурсов по отдельности, и рекомендует завершить раннюю лингвистическую проверку и просмотр в контексте до выпуска (руководство Microsoft по тестированию локализации). Таблица строк не показывает, закрывает ли диалог кнопку, не уходит ли ошибка под клавиатуру и может ли пользователь нажать на нужный элемент.
В сессии Apple WWDC21 о локализации SwiftUI говорится: “controls with Text will wrap it so that it does not clip or truncate in languages with longer labels.”
Перевод: элементы управления с текстом переносят его, чтобы подписи в языках с более длинными строками не обрезались.
Пример Apple показывает полезное направление, а не универсальное решение для любого интерфейса. Перенос помогает только тогда, когда высота элемента и окружающий макет тоже могут измениться. Если кнопка остается низкой, многострочная подпись все равно обрежется. Поведение конкретного приложения нужно проверить на тех версиях системы и устройствах, которые оно поддерживает; сессия была опубликована в 2021 году.
Для локализационной проверки заведите список экранов и сценариев, а не полагайтесь на случайный просмотр. Для каждого проблемного места сохраните исходную строку, немецкий вариант, скриншот, размер окна и ожидаемое поведение. Такое описание помогает отделить языковую причину от ошибки верстки: переводчик может предложить точную альтернативу, а разработчик - изменить компонент.
При разборе дефекта задайте последовательность вопросов:
- Переведена ли строка и подхватился ли нужный ресурс?
- Есть ли у переводчика контекст и понятно ли, что обозначает английская строка?
- Задана ли фиксированная ширина или высота, мешающая элементу расшириться?
- Разрешены ли перенос строки и изменение положения соседних компонентов?
- Есть ли в немецком тексте составное слово, которое не может перенестись естественно?
- Правильно ли задан язык для автоматической расстановки дефисов?
- Не собирается ли предложение из фрагментов, которым нужен грамматический контекст?
Не сокращайте немецкий текст до тех пор, пока не выясните, можно ли исправить макет. Иногда короткий вариант действительно уместнее, например для компактной команды в меню. Но выбор должен учитывать понятность и действие пользователя, а не только число символов. Если локальная подпись перестала точно объяснять, что произойдет после нажатия, интерфейс стал компактнее ценой ясности.
Для команд, которые переводят документы, похожий принцип работает и с файлами: сначала нужно проверить, что сохраняется структура и читаемость, а не только наличие переведенных слов. Практические приемы для документов разобраны в материале о том, как сохранить таблицы при переводе DOCX.
FAQ¶
Насколько немецкий текст длиннее английского в интерфейсе?¶
Универсального коэффициента для немецкого нет. Для предварительного тестирования Microsoft предлагает увеличить английские строки на 40%, но это эвристика, а не измеренный средний показатель немецкого перевода.
Как проверить расширение немецкого текста до готовности перевода?¶
Запустите псевдолокализацию: удлините строки, добавьте диакритические знаки и разделители, затем просмотрите реальные экраны на обрезание, наложение и ошибки отображения. Microsoft описывает этот метод, но он не заменяет проверку готовой немецкой версии.
Как не допустить переполнения немецких составных слов в кнопках?¶
Спроектируйте кнопку так, чтобы она могла расшириться, увеличить высоту или перенести подпись. Для немецкого слова проверяйте реальный перевод в контексте: составные слова обычно пишутся слитно, как объясняет Duden, поэтому нельзя автоматически вставлять пробел в удобном для кнопки месте.
Нужно ли включать автоматический перенос немецких слов через CSS?¶
Свойство hyphens: auto можно проверить, если элементу нужен перенос внутри слова, но результат зависит от атрибута lang, словаря браузера и его реализации. MDN описывает эти условия, поэтому протестируйте целевые браузеры и устройства до выпуска.
Как проектировать кнопки и формы для перевода с английского на немецкий?¶
Не задавайте размеры только по английской подписи. Используйте гибкую ширину, допускайте перенос или перестройку элементов, храните текст в ресурсных файлах и проверяйте немецкие строки внутри работающего приложения.
Почему короткие английские подписи особенно рискованны?¶
Короткая строка может вырасти пропорционально сильнее длинного предложения, а ее перевод зависит от того, где и зачем она используется. Microsoft рекомендует не переиспользовать строки в разных контекстах без проверки: одинаковое английское слово может требовать разных немецких формулировок.