Проект по переводу языка Wolfram Language (Mathematica) на различные языки

в 11:17, , рубрики: wolfram cloud, wolfram language, wolfram mathematica, Блог компании Wolfram Research, Занимательные задачки, интерфейсы, мультиязычность, перевод, перевод языка программирования, Программирование
Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 1

Перевод поста Eila Stiegler "The Wolfram Language Worldwide Translations Project".

Код, приведенный в статье, можно скачать здесь, дополнительный код для поста можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации


Довольно много времени прошло с тех пор, как я закончила колледж в Германии. И я до сих пор хорошо помню те длинные бессонные ночи, что проводила за выполнением трудных домашних заданий, исследований, и почти полное отсутствие свободного времени. Но так же я хорошо помню и занятия по программированию. Я старалась приступить к ним как можно позже. Но когда программирование уже вошло в список моих обязательных предметов, у меня уже не было возможности его игнорировать. И так как английский — не мой родной язык, мне тяжело давались принципы программирования, которые были для меня чем-то уж очень абстрактным; я постоянно терялась среди названий различных функций, которые приводились на английском. И пускай мне далось всё это весьма тяжело, я с успехом закончила обучение, и вот теперь, годы спустя, я являюсь частью проекта, который мог бы тогда мне сильно помочь — проекта по переводу Wolfram Language на различные языки.

Проект по переводу Wolfram Language представляет любым неанглоговорящим программистам лёгкий вход в изучение Wolfram Language. Проект служит для того, чтобы иметь возможность работать с Wolfram Language вне зависимости от навыков владения английским языком.

Как обычно обучаются программированию? Судя по моему опыту, студентам дают кусок кода и объясняют для чего он нужен. Таким образом, у них появляется возможность познакомиться со структурой и различными функциями. Чтобы облегчить этот процесс, Wolfram Research добавила функционал, который проставляет к коду на языке Wolfram Language аннотации на предпочтительном для вас языке. Мы постоянно развиваем это направление и стараемся добавить максимально возможное количество языков. На данный момент уже имеется поддержка японского, китайского традиционного и упрощенного, корейского, испанского, русского, украинского, польского, немецкого, французского и португальского.

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

Аннотации к коду

Снова возвращаясь к своему студенчеству: если бы у меня был код демонстрации “Major Multinational Languages”, — пример с сайта Wolfram Demonstrations Project — я смогла бы увидеть этот код, аннотированный на немецком. Аннотации никак не изменяют код и не ограничивают его функциональность. Он по-прежнему вычисляемый и может редактироваться, а аннотации к нему изменяются на лету:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 2

Эксперимента ради, я могла бы вспомнить свои восемь лет занятия русским и попробовать следующее:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 3

Эту функцию можно включить как для одной ячейки/всего ноутбука, так и глобально. Таким образом, я могу сравнить тот же код, аннотированный на немецком, с его русской версией. Аннотацию кода так же можно заметить и в разделе автодополнения. Для данного случая я выбрала французский.

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 4

Немного о разных длинах строк

Один из первых вопросов, который возник при старте этого проекта, заключался в разных длинах слов на разных языках. Описательные конструкции и имена функций в CamelCase (ВерблюжьемРегистре) на английском добавляют проблем при попытке сохранить разумную длину для переводов.

Чтобы проиллюстрировать эту проблему, давайте возьмём испанский. Функция String была переведена как "cadena de caracteres". Этот перевод получился значительно длиннее, чем оригинал на английском. А теперь примем во внимание то, что это слово часто встречается в названиях различных функций, как пример StringFreeQ и StringReplacePart; можно представить, какой длины получатся переводы.

Давайте сравним русский и японский переводы символа $FrontEnd. Переводы доступны не только в интерактивном режиме, но и программно через WolframLanguageData с опцией «Translations»:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 5

Длины строк для двух переводов отличаются на 66 символов. Возникает вопрос: как наши переводы соотносятся по длине с их английскими оригиналами? Для начала, давайте загрузим все зарезервированные имена в Wolfram Language, а так же их переводы.

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 6

А теперь рассмотрим, как соотносятся переводы с их оригиналами:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 7

Очевидно, что азиатские письменные системы дают значительно более сжатый по длине перевод. С другой стороны, исследуя глубже максимумы и минимумы в разнице между английским и польским, мы увидим следующее (наведите курсор на ListPlot для появления подсказки о сравнении названий на английском и польском):

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 8

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 9

Мы получаем 251 случай соответствий элементов в длину. Вот несколько примеров:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 10

Вот пара с самой большой разницей — аж в 75 символов:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 11

Давайте рассмотрим разницы по длинам на различных языках:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 12

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 13

Учитывая эти расхождения, мы можем найти некоторые интересные моменты о языках и их связи в этом наборе данных.

К примеру, каков top 5 имён, наиболее близких по длине к оригиналу для всех языков? Это Here, Byte, ColorQ, ListQ и Ball:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 14

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 15

В каком языке больше всего пробелов? В корейском:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 16

И в каком языке строки самые длинные? В немецком:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 17

Проиллюстируем это:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 18

Как мы учтём расхождения в длинах переводов в нашем интерфейсе? Вернёмся к коду из примера “Major Multinational Languages” со включенными аннотациями на немецком. В случаях, когда длина аннотации превышает длину оригинала на английском, мы заменяем заголовок на •••. При наведении курсора на аннотацию она разворачивается и выделяется жирным.

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 19

Облака из слов

Используя новую функцию Wolfram Language WordCloud, мы можем получить графическое представление переводов, в котором размеру слов соответствует частота их использования. Взяв переводы 120 наиболее популярных имён, а так же задействовав недавно добавленную функцию GeoGraphics, мы можем построить облака из слов по контурам границ этих стран. Вот, к примеру, Германия и Португалия:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 20

Можем пойти дальше и изобразить облака из слов на фигуре, которая описывает границы этой страны. И получается весьма симпатично; вот, к примеру, Испания:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 21

Полные переводы

Поигравшись с переводами и рассмотрев их под разными углами, логично было бы продолжить это и попытаться представить переводы не просто в виде аннотаций, а вместо оригинального кода Wolfram Language на английском. Конечно, имея под рукой функцию TranslateCodeCompletely, осуществить подобное не составляет труда. Передав функции фрагмент кода и требуемый язык в качестве аргумента, наша новая функция возвращает полный перевод. И вот этот код в полном виде:

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 22

Вот код, который выдаёт гистограмму с различными длинами имён, приведённую выше — теперь на корейском. Определённые пользователям имена находятся там же, где и были, а системные имена полностью переводятся и выделяются серым. В прилагаемом ниже CDF-файле можно наводить курсор мыши на переведённые функции и наблюдать их исходные названия.

Проект по переводу языка Wolfram Language (Mathematica) на различные языки - 23

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

Надеюсь, этот функционал поможет большому количеству новых пользователей освоиться в мире Wolfram Language. В дальнейшем мы не собирается останавливаться на одном лишь расширении количества языков. Мы планируем добавить переводы и для других разделов Wolfram Language — меню, горячие клавиши и прочее. Будем рады услышать о желаемых для перевода языках, которые бы вы хотели увидеть в Wolfram Language, а так же будем рады услышать ваши пожелания и отзывы.

Автор: Wolfram Research

Источник

Поделиться новостью

* - обязательные к заполнению поля