![](https://habrastorage.org/files/b7a/780/ae7/b7a780ae7c05482db7a40244cb6580c7.png)
Eila Stieglerの投稿「 The Wolfram Language Worldwide Translations Project 」の翻訳 。
記事のコードはここからダウンロードできます 。投稿用の追加コードはここからダウンロードできます 。
Kirill Guzenkoに感謝します。
ドイツの大学を卒業してからかなりの時間が経ちました。 難しい宿題、研究、そして自由時間のほぼ完全な欠如に費やした長い眠れぬ夜を今でもよく覚えています。 しかし、私はクラスをよくプログラミングしたことも覚えています。 できるだけ遅くそれらを開始しようとしました。 しかし、プログラミングがすでに必要な科目のリストに載っていたとき、それを無視する機会はもうありませんでした。 そして、英語は私の母国語ではないので、プログラミングの原則は私にとって難しいものでした。 私は英語で与えられたさまざまな機能の名前の間で絶えず失われました。 そして、たとえすべてが一生懸命になってきたとしても、私は研究を無事に完了しました。そして、数年後、私は大いに役立つプロジェクトの一員です。Wolfram言語をさまざまな言語に翻訳するプロジェクトです。
Wolfram言語翻訳プロジェクトは、英語を話さないプログラマーにWolfram言語の学習への簡単なエントリーを提供します。 このプロジェクトは、英語のスキルに関係なく、Wolfram Languageで作業できるように機能します。
通常、プログラミングをどのように学びますか? 私の経験から判断すると、生徒にはコードが渡され、なぜそれが必要なのかが説明されます。 したがって、彼らは構造やさまざまな機能に精通する機会があります。 このプロセスを容易にするために、Wolfram Researchは、Wolfram言語コードの優先言語に注釈を追加する機能を追加しました。 私たちは常にこの分野を開発しており、できるだけ多くの言語を追加しようとしています。 現在、日本語、中国語(繁体字、簡体字)、韓国語、スペイン語、ロシア語、ウクライナ語、ポーランド語、ドイツ語、フランス語、ポルトガル語のサポートが既にあります。
また、このプロジェクトのフレームワーク内で、メニューの翻訳を繁体字中国語、スペイン語に追加し、すでに実装されている日本語と簡体字中国語に追加しました。
コード注釈
再び学生に戻ります。WolframDemonstrations Projectの Webサイトの例であるデモコード「 Major Multinational Languages 」がある場合、このコードはドイツ語で注釈されています。 注釈は、コードを変更したり、機能を制限したりしません。 それはまだ計算可能であり、編集することができ、その注釈はその場で変更されます:
![](https://habrastorage.org/getpro/habr/post_images/f97/9b1/a82/f979b1a82fa3aa7be4808a22d26e7b0e.png)
実験のために、私はロシアでの8年間の研究を思い出して、次のことを試してみました。
![](https://habrastorage.org/getpro/habr/post_images/32a/10e/d2e/32a10ed2efcf68658ae7a9c7c6ce2647.png)
この機能は、1つのセル/ラップトップ全体、またはグローバルで有効にできます。 したがって、ドイツ語で注釈を付けた同じコードをロシア語バージョンと比較できます。 コード注釈は、オートコンプリートセクションでも確認できます。 この場合、フランス語を選択しました。
![](https://habrastorage.org/getpro/habr/post_images/6e4/119/605/6e41196050cce1371665ae49ac83e242.png)
線の長さについて少し
このプロジェクトの開始時に最初に発生した質問の1つは、異なる言語の異なる長さの単語でした。 英語のCamelCase( Camel Register )の説明的な構造と関数名は、翻訳のために適切な長さを維持しようとするときに問題に追加されます。
この問題を説明するために、スペイン語を考えてみましょう。 文字列関数は、「 cadena de caracteres 」として翻訳されています。 この翻訳は、英語のオリジナルよりもはるかに長いことが判明しました。 そして、この単語がStringFreeQとStringReplacePartの例として、さまざまな関数の名前によく見られることを考慮します。 翻訳の長さを想像できます。
$ FrontEnd symbolのロシア語と日本語の翻訳を比較してみましょう。 翻訳はインタラクティブに利用できるだけでなく、 WolframLanguageDataからオプション「Translations」を使用してプログラムで利用できます。
![](https://habrastorage.org/getpro/habr/post_images/7d8/d21/08d/7d8d2108d4c5f15a11c066b6d2a1af83.png)
2つの翻訳の行の長さは66文字異なります。 疑問が生じます:翻訳の長さと英語の原文の比較はどうですか? 始めるために、すべての予約名とその翻訳をWolfram言語にアップロードしましょう。
![](https://habrastorage.org/getpro/habr/post_images/789/415/c71/789415c71eb26c608ad14cf3e3d4ceba.png)
それでは、翻訳と元の翻訳の関係を見てみましょう。
![](https://habrastorage.org/getpro/habr/post_images/b4e/73d/fa1/b4e73dfa19e083b106f5b5f259acc474.png)
明らかに、アジアの書記体系ははるかに長い翻訳を提供します。 一方、英語とポーランド語の違いの高低をさらに詳しく調べると、次のようになります( ListPlotにカーソルを合わせると、英語とポーランド語の名前の比較に関するヒントが表示されます )。
![](https://habrastorage.org/getpro/habr/post_images/b98/61f/82e/b9861f82e3e769eeba581c19e0497703.png)
![](https://habrastorage.org/getpro/habr/post_images/a04/d4e/a96/a04d4ea9669f445c949979f768d17f26.png)
一致する要素の長さが251ケースになります。 以下に例を示します。
![](https://habrastorage.org/getpro/habr/post_images/476/957/425/47695742560d7d43f3a852f863c15bc7.png)
最大の違いがあるペアは次のとおりです-最大75文字:
![](https://habrastorage.org/getpro/habr/post_images/6e8/8dc/b9d/6e88dcb9dc33439e9d5391ac8ff7858e.png)
異なる言語での長さの違いを見てみましょう。
![](https://habrastorage.org/getpro/habr/post_images/9e1/605/bb4/9e1605bb4aee58bb96734cef694551e7.png)
![](https://habrastorage.org/getpro/habr/post_images/63c/275/f16/63c275f16eedd50f7e7e7fa5f9008b3e.png)
これらの不一致を考えると、このデータセット内の言語とそれらの関係について興味深い点を見つけることができます。
たとえば、すべての言語の元の名前に最も近い上位5つの名前は何ですか? これらは、 Here 、 Byte 、 ColorQ 、 ListQ、およびBallです。
![](https://habrastorage.org/getpro/habr/post_images/359/8e5/aa2/3598e5aa22a7a145cb52016f311809c3.png)
![](https://habrastorage.org/getpro/habr/post_images/345/4e2/6f6/3454e26f65323afce840086d35d9ed4d.png)
最もギャップのある言語はどれですか? 韓国語:
![](https://habrastorage.org/getpro/habr/post_images/927/3e6/740/9273e674069adbde73c6ef2645cc35df.png)
そして、どの言語で行が最長ですか? ドイツ語:
![](https://habrastorage.org/getpro/habr/post_images/d83/2e7/e09/d832e7e0983bd724dea051d80a7a7a30.png)
これを説明します。
![](https://habrastorage.org/getpro/habr/post_images/56d/bcc/55c/56dbcc55c0bee113f614d39c8d88970e.png)
インターフェースで翻訳の長さの違いをどのように説明しますか? ドイツ語の注釈をオンにして、「主要な多国語」の例のコードに戻りましょう。 注釈の長さが英語のオリジナルの長さを超える場合、タイトルを•••に置き換えます。 注釈にカーソルを合わせると、注釈が展開され、太字で強調表示されます。
![](https://habrastorage.org/getpro/habr/post_images/6ac/301/68e/6ac30168eac162e47038c894782960e0.png)
単語の雲
新しいWolfram Language WordCloud関数を使用すると、単語サイズがその使用頻度に対応する翻訳のグラフィカルな表現を取得できます。 120の最も人気のある名前の翻訳を取得し、最近追加されたGeoGraphics機能を使用して、これらの国の国境の輪郭に沿ってワードクラウドを構築できます。 ここで、たとえば、ドイツとポルトガル:
![](https://habrastorage.org/getpro/habr/post_images/c45/7c2/8f1/c457c28f1c8ecdfd8f55796da170a3ea.png)
さらに進んで、この国の国境を表す図に言葉の雲を描くことができます。 そして、それは非常にきれいです。 ここで、たとえばスペイン:
![](https://habrastorage.org/getpro/habr/post_images/bf4/ab7/50f/bf4ab750fd0a205aace7bd96f6355db1.png)
完全な翻訳
翻訳をいじってさまざまな角度から調べたので、これを続けて、注釈の形だけでなく、英語の元のWolfram言語コードの代わりに翻訳を提示しようとするのは論理的です。 もちろん、 TranslateCodeCompletely関数が手元にあれば、これを行うのは難しくありません。 コードフラグメントと必要な言語を関数の引数として渡すと、新しい関数は完全な翻訳を返します。 完全なコードは次のとおりです。
![](https://habrastorage.org/getpro/habr/post_images/b0a/690/722/b0a690722d94b37cadab6e7d04270a8d.png)
次に、上記の名前の長さが異なるヒストグラムを作成するコードを示します-現在は韓国語です。 ユーザー定義名は元の場所であり、システム名は完全に変換されてグレー表示されます。 以下に添付されているCDFファイルでは、翻訳された関数の上にマウスカーソルを移動して、元の名前を確認できます。
![](https://habrastorage.org/getpro/habr/post_images/45f/6b8/8e2/45f6b88e26c896e73f63cdc9c1355404.png)
Wolfram言語にすでに精通している人にとっての面白い副作用:言語関数の名前にすでに精通している場合は、新しい機能を使用すると、新しい自然言語の知識を向上させることができます。
この機能が多くの新しいユーザーがWolfram言語の世界で快適になるのに役立つことを願っています。 将来的には、言語の数を増やすだけでやめるつもりはありません。 メニュー、キーボードショートカットなど、Wolfram言語の他のセクションの翻訳を追加する予定です。 Wolfram言語で見たい翻訳したい言語について喜んでお聞きします。また、あなたの希望やフィードバックを喜んで聞きます。