Iskander Sitdikov

+28
с 2020
0 подписчиков
28 подписок

Есть рабочее решение в рамках текущего функционала. Можно добавлять в конец слов/фраз, у которых есть разные переводы, спец-символ https://unicode-table.com/en/#2060 в необходимом кол-ве (по сути, кол-во - это номер контекста, начиная с нуля). Тогда потом в таблице им будут соответствовать две разных записи. Это еще и решает проблему возможных двойных вхождений перевода выделенной части в общий перевод. Записал небольшую демонстрацию:

2

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

Да, плагин нормализует тексты перед переводом, заменяя переносы на пробелы, удаляя потом лишние. Проблем вообще не возникает, если формировать список фраз автоматически через плагин, а не руками. Основной аргумент в пользу такого подхода - дизайнеры могут расставлять ручные переносы в текстах, зачастую оставляя висящие пробелы перед переносом, так что после замены его на пробел (а не заменять нельзя - слова сольются) сложно понять, сколько по задумке тут было пробелов.

1

Я пока не понимаю, о каких переносах идет речь. В рамках одного параграфа? С какой целью?

Плагин уже это делает. В некотором виде. Если не хватает каких-то переводов (например, можно изначально передать пустой словарь, в котором есть только заголовок), то внизу появляется список ошибок с ссылками, а вот в самом низу - раздел "We suggest to translate the following phrases", где приведен список фраз, которые достаточно перевести, чтобы все было ок. Его можно скопировать. Пока мы сами делаем именно так.

1

Вопрос очень хороший. Есть несколько соображений.

Во-первых, "сохранить разрывы как в оригинальном тексте" - хотелка понятная, но неосуществимая, так как при переводе слова часто меняют порядок непредсказуемым образом.

Во-вторых, у меня уже было желание использовать разделитель параграфов http://www.unicode-symbol.com/u/2029.html (вводится через Shift+Enter) для таких целей, но против этого есть пара сильных доводов. Если дизайнер решил из эстетических соображений добавить ручные переносы в оригинальные тексты (что очень разумно), то абсолютно не ясно, как потом отличить их от разделения текста на параграфы. К тому же, формировать TSV-словарь для таких многострочных текстов сложно в любом редакторе.

TL;DR. Чтобы "сохранить переносы" в идеале нужно разбить оригинальный текст на параграфы, вынеся их в отдельные ноды и связав их в auto layout. Это заметно прибавит вам гибкости и позволит переводить каждый параграф отдельно, в одну строчку.

1

Дело в том, что при загрузке словаря плагин обрезает пробелы в начале и конце каждого поля. Поэтому оба пробела превратятся в пустые строки. Это было сделано, чтобы меньше зависеть от произвола переводчиков (те изредка добавляли лишние пробелы после фразы). Но замечание хорошее, уходит в гайд. Спасибо!

Привет! Ставить нужно через community (гайд был написан до публикации - спасибо, поправил). Видимо, при последней публикации код частично не доехал, и сообщения об ошибках сломались :( Уже исправил. Еще раз спасибо!

1

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

Вещь нужная, но у каждого свои потребности в именовании фреймов, так что правильнее воспользоваться для переименования плагином Layer Names Transform.

1

И над интеграцией с Google/Yandex Translate обязательно поработаем)

Правда, есть. И у Crowdin есть. Но есть много но. Например, Crowdin вообще не поддерживает тексты с гибридным форматированием: https://support.crowdin.com/figma-plugin/#uploading-translations-back-to-figma (видно прямо на скринах). Lokalise поддерживает крайне урезанный вариант с разметкой bold/italic/underlined при помощи тэгов в самой платформе Lokalise. И конечно же, никто не заморачивался по поводу отображения переводов на RTL языки.

Еще в нашем случае не требуется разметка всех текстов ключами. Это может стрелять, когда одно и то же слово в разных контекстах нужно перевести по-разному. Но для и для этого можно придумать обходные пути (добавление скрытых символов или внедрение тех же опциональных ключей локализации).

1

Еще раз. Плагин вообще ничего не трогает, если хоть что-то из выбранного не переводится. Иначе можно забыть нажать Cmd+Z и потом споткнуться о частичный перевод. Обжигались уже)

1

Удивительно, но иконка - та еще боль :) Сейчас используется стандартная иконка upload, что кажется разумным, но все равно вызывает сомнения. Стрелка вниз - это download, тоже сомнительный вариант. Если назовете какую-то "железную" альтернативу, то я буду очень рад.

Ясно. Это просто. Плагин не может перевести слово "hello" с русского, потому что в столбце RU такого слова нет и оно не попадает ни под одно исключение. Если разрешить подобные "допереводы", то это повысит вероятность ошибки.

А это чекбокс для RTL. То есть, если перевод происходит на арабский, то нужно проставить этот флажок.

1

1. Стрелочка - не чекбокс, просто стрелочка. Обычно мы переводим с какого-то базового языка на другие, поэтому обратный перевод почти никогда не требуется (хотя возможен).
2. Да, подразумевается, что словарь подгружается из файла или вставляется копипастой. В крайнем случае можно отдельно скопировать символ табуляции откуда-нибудь и вставлять его через Cmd+V где требуется.
3. Выгрузить словарь нельзя, потому что это поле не столько для редактирования, сколько для вставки/загрузки.
4. Словарь и исключения загружаются отдельно, потому что они в разных форматах. Исключения - это просто список регулярок (по одной на строку). Плюс, список исключений меняется редко, а вот переводы правятся и часто перезаливаются в плагин.
5. Перевод не происходит вообще, если плагин понял, что есть проблемы в выделенных нодах.

2

Да! Если у вас возникнут проблемы, то смело пишите сюда - мы поможем, улучшим документацию (она пока сырая) и пофиксим баги (ну а вдруг) 😊

12