- PVSM.RU - https://www.pvsm.ru -
Перевод поста Eila Stiegler "The Wolfram Language Worldwide Translations Project [1]".
Код, приведенный в статье, можно скачать здесь [2], дополнительный код для поста можно скачать здесь [3].
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko [4] за помощь в переводе и подготовке публикации
Проект по переводу Wolfram Language представляет любым неанглоговорящим программистам лёгкий вход в изучение Wolfram Language. Проект служит для того, чтобы иметь возможность работать с Wolfram Language вне зависимости от навыков владения английским языком.
Как обычно обучаются программированию? Судя по моему опыту, студентам дают кусок кода и объясняют для чего он нужен. Таким образом, у них появляется возможность познакомиться со структурой и различными функциями. Чтобы облегчить этот процесс, Wolfram Research добавила функционал, который проставляет к коду на языке Wolfram Language аннотации на предпочтительном для вас языке. Мы постоянно развиваем это направление и стараемся добавить максимально возможное количество языков. На данный момент уже имеется поддержка японского, китайского традиционного и упрощенного, корейского, испанского, русского, украинского, польского, немецкого, французского и португальского.
Также в рамках этого проекта мы добавили перевод меню на традиционный китайский, испанский языки, добавив их к уже реализованным японскому и упрощенному китайскому.
Снова возвращаясь к своему студенчеству: если бы у меня был код демонстрации “Major Multinational Languages [5]”, — пример с сайта Wolfram Demonstrations Project [6] — я смогла бы увидеть этот код, аннотированный на немецком. Аннотации никак не изменяют код и не ограничивают его функциональность. Он по-прежнему вычисляемый и может редактироваться, а аннотации к нему изменяются на лету:
Эксперимента ради, я могла бы вспомнить свои восемь лет занятия русским и попробовать следующее:
Эту функцию можно включить как для одной ячейки/всего ноутбука, так и глобально. Таким образом, я могу сравнить тот же код, аннотированный на немецком, с его русской версией. Аннотацию кода так же можно заметить и в разделе автодополнения. Для данного случая я выбрала французский.
Один из первых вопросов, который возник при старте этого проекта, заключался в разных длинах слов на разных языках. Описательные конструкции и имена функций в CamelCase (ВерблюжьемРегистре [7]) на английском добавляют проблем при попытке сохранить разумную длину для переводов.
Чтобы проиллюстрировать эту проблему, давайте возьмём испанский. Функция String [8] была переведена как "cadena de caracteres". Этот перевод получился значительно длиннее, чем оригинал на английском. А теперь примем во внимание то, что это слово часто встречается в названиях различных функций, как пример StringFreeQ [9] и StringReplacePart [10]; можно представить, какой длины получатся переводы.
Давайте сравним русский и японский переводы символа $FrontEnd. [11] Переводы доступны не только в интерактивном режиме, но и программно через WolframLanguageData [12] с опцией «Translations»:
Длины строк для двух переводов отличаются на 66 символов. Возникает вопрос: как наши переводы соотносятся по длине с их английскими оригиналами? Для начала, давайте загрузим все зарезервированные имена в Wolfram Language, а так же их переводы.
А теперь рассмотрим, как соотносятся переводы с их оригиналами:
Очевидно, что азиатские письменные системы дают значительно более сжатый по длине перевод. С другой стороны, исследуя глубже максимумы и минимумы в разнице между английским и польским, мы увидим следующее (наведите курсор на ListPlot [13] для появления подсказки о сравнении названий на английском и польском):
Мы получаем 251 случай соответствий элементов в длину. Вот несколько примеров:
Вот пара с самой большой разницей — аж в 75 символов:
Давайте рассмотрим разницы по длинам на различных языках:
Учитывая эти расхождения, мы можем найти некоторые интересные моменты о языках и их связи в этом наборе данных.
К примеру, каков top 5 имён, наиболее близких по длине к оригиналу для всех языков? Это Here [14], Byte [15], ColorQ [16], ListQ [17] и Ball [18]:
В каком языке больше всего пробелов? В корейском:
И в каком языке строки самые длинные? В немецком:
Проиллюстируем это:
Как мы учтём расхождения в длинах переводов в нашем интерфейсе? Вернёмся к коду из примера “Major Multinational Languages” со включенными аннотациями на немецком. В случаях, когда длина аннотации превышает длину оригинала на английском, мы заменяем заголовок на •••. При наведении курсора на аннотацию она разворачивается и выделяется жирным.
Используя новую функцию Wolfram Language WordCloud [19], мы можем получить графическое представление переводов, в котором размеру слов соответствует частота их использования. Взяв переводы 120 наиболее популярных имён, а так же задействовав недавно добавленную функцию GeoGraphics [20], мы можем построить облака из слов по контурам границ этих стран. Вот, к примеру, Германия и Португалия:
Можем пойти дальше и изобразить облака из слов на фигуре, которая описывает границы этой страны. И получается весьма симпатично; вот, к примеру, Испания:
Поигравшись с переводами и рассмотрев их под разными углами, логично было бы продолжить это и попытаться представить переводы не просто в виде аннотаций, а вместо оригинального кода Wolfram Language на английском. Конечно, имея под рукой функцию TranslateCodeCompletely, осуществить подобное не составляет труда. Передав функции фрагмент кода и требуемый язык в качестве аргумента, наша новая функция возвращает полный перевод. И вот этот код в полном виде:
Вот код, который выдаёт гистограмму с различными длинами имён, приведённую выше — теперь на корейском. Определённые пользователям имена находятся там же, где и были, а системные имена полностью переводятся и выделяются серым. В прилагаемом ниже CDF-файле можно наводить курсор мыши на переведённые функции и наблюдать их исходные названия.
Забавный побочный эффект для тех, кто уже хорошо знаком с Wolfram Language: если вы уже достаточно ориентируетесь в именах функций языка, то с помощью нового функционала можете улучшить свои знания в каком-то новом естественном языке.
Надеюсь, этот функционал поможет большому количеству новых пользователей освоиться в мире Wolfram Language. В дальнейшем мы не собирается останавливаться на одном лишь расширении количества языков. Мы планируем добавить переводы и для других разделов Wolfram Language — меню, горячие клавиши и прочее. Будем рады услышать о желаемых для перевода языках, которые бы вы хотели увидеть в Wolfram Language, а так же будем рады услышать ваши пожелания и отзывы.
Автор: Wolfram Research
Источник [21]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/interfejsy/107729
Ссылки в тексте:
[1] The Wolfram Language Worldwide Translations Project: http://blog.wolfram.com/2015/12/18/the-wolfram-language-worldwide-translations-project/
[2] здесь: http://blog.wolfram.com/data/uploads/2015/12/WL-Worldwide-Translations-Project-Post.cdf
[3] здесь: http://blog.wolfram.com/data/uploads/2015/12/Additional-code.cdf
[4] KirillGuzenko: http://habrahabr.ru/users/kirillguzenko/
[5] Major Multinational Languages: http://demonstrations.wolfram.com/MajorMultinationalLanguages/
[6] Wolfram Demonstrations Project: http://demonstrations.wolfram.com/
[7] ВерблюжьемРегистре: https://ru.wikipedia.org/wiki/CamelCase
[8] String: http://reference.wolfram.com/language/ref/String.html
[9] StringFreeQ: http://reference.wolfram.com/language/ref/StringFreeQ.html
[10] StringReplacePart: http://reference.wolfram.com/language/ref/StringReplacePart.html
[11] $FrontEnd.: http://reference.wolfram.com/language/ref/$FrontEnd.html
[12] WolframLanguageData: http://reference.wolfram.com/language/ref/WolframLanguageData.html
[13] ListPlot: http://reference.wolfram.com/language/ref/ListPlot.html
[14] Here: http://reference.wolfram.com/language/ref/Here.html
[15] Byte: http://reference.wolfram.com/language/ref/Byte.html
[16] ColorQ: http://reference.wolfram.com/language/ref/ColorQ.html
[17] ListQ: http://reference.wolfram.com/language/ref/ListQ.html
[18] Ball: http://reference.wolfram.com/language/ref/Ball.html
[19] WordCloud: http://reference.wolfram.com/language/ref/WordCloud.html
[20] GeoGraphics: http://reference.wolfram.com/language/ref/GeoGraphics.html
[21] Источник: http://habrahabr.ru/post/274281/
Нажмите здесь для печати.