言語辞書の階層をディレクトリに配置する

良い読書時間、habrahabr.ruの親愛なる参加者。



就学前および学齢期の子供たちにプログラミングを教えることに対する客観的な障害はありません。



現時点での主な歴史的障害は

1.演算子として、およびエラーメッセージにANSI文字のみを使用する

2.各国語を使用するイデオロギーが未発達



たとえば、ロシアでは次の階層が便利です。英語->ロシア語->タタール語



この記事では、アプリケーションで使用するためのディレクトリ階層、またはANSIエンコードされた単語からの継承を使用して、各国語をサポートするプログラミング言語のローカライズを提案しています。



各国語のプログラミング(たとえば、ロシア、ユーラシア、または地球上で利用可能なすべての言語の記述、印刷不可能な単語の使用など)の開発のために、各国の記号と辞書を使用した翻訳システムが提案されています。 システムには、ディレクトリ構造と、母国語でのプログラムの記述を明らかにするアプローチが含まれており、プログラムのソースコードを各国語からANSIへ、またはその逆に-説明がある他の言語に転送することができます。 したがって、アルゴリズムの記述は任意の言語で形成され、言語の階層を使用します。



主な基本タイプ(汎用祖先)はdraftで 、英語の単語とアンダースコアのみが含まれ、スペースはアンダースコアに置き換えられます。 他のANSI文字の代わりに、それらの口頭での説明が使用されます: dotcommanなど ドラフト言語は、単語や表現を翻訳するための普遍的な基礎として使用されます。 包括的プログラム(翻訳者)のすべての行は、このエンコーディングで表現する必要があります。



メッセージに使用される次のタイプの言語はansiです。 これは、アルファベットを使用する言語の祖先であり、エンコードテーブルの1〜127の範囲の任意の文字を含めることができます。 英語の一般的な表現を保持することは論理的です。 このレベルおよびドラフト以外の他のレベルの文字列定数には、XMLマークアップ言語(OEM、utf8、utf16、utf32)でサポートされるエンコーディングの任意の文字を含めることができます。 言語ごとに、執筆の方向が示される場合があります。

-左から右へ上から下(英語、ロシア語など-デフォルト)

-上から下へ右から左(アラビア語、ヘブライ語)

-上から下へ左から右(日本語、中国語)



ディレクトリ構造
最上位の辞書を含むディレクトリ構造では、言語が属する大陸の指定が使用され、サブディレクトリには国または言語の名前が含まれます。



したがって、最上位ディレクトリは次のリストに制限されます。



culture / af-アフリカ-アフリカの文化

culture / an-南極大陸-ユニバーサルプロトタイプ-ユニバーサル南極文化

文化/ au-オーストラリア-オーストラリアの文化

文化/ EA-ユーラシア-Evrasianの文化

culture / na-北米-北米の文化

文化/ sa-南アメリカ-サワーアメリカ文化



ドラフトおよびANSIエンコーディングは、英国本土および南極大陸から削除され、英国、米国、およびその他の国の話された方言との違いを示しています。

文化/アン/ドラフト

文化/ an / ansi



この説明では、 カルチャは言語の階層を含むディレクトリを指します。 特定のプログラムの場合、辞書は、アプリケーションに対応するファイル名で、言語に対応するサブディレクトリに作成されます。 また、最も一般的な単語の場合、 common.xmlファイルは言語ディレクトリに作成されます。 たとえば、英語の場合、ファイルになります



culture / ea / en / common.xml





言語の継承
draftを除く各言語について、継承された言語は1つしか示されません。 言語ドラフトは、どの言語からも継承しません。 この言語の継承元の言語は、ディクショナリ記述ファイルlang.xmlで指定されています。



ソースコードまたは言語プリプロセッサの作業結果を表示すると、継承された言語のチェーン全体を表示できます。 これは、たとえば、ロシア語から継承された各国語のプログラムをチェックする場合、国語を十分に話せない情報学教師として便利です。 さらに、同じ辞書上で、ある国の言語から別の言語へのプログラムのソースコードの機械翻訳が可能です。



言語ごとに、互いに独立したいくつかの異なる継承チェーンが存在する場合があります。 たとえば、ロシア語の場合、 ansi-> ruまたはdraft-> ruなどのチェーン可能です。

それらはディレクトリに含まれます:



文化/ EA / RUS / ru_ansi

文化/ EA / RUS / ru_draft



さらに、多言語の国では、国のサブディレクトリに言語カタログを作成できます。



文化/ EA / RUS / tatar_ru



ここで:

culture-国際化サポートのルートディレクトリ

ea-ユーラシア

rus-ロシア

tatar_ru-ロシア語から翻訳されたタタール語辞書



同様に、言語文化/ ea / eng / en_ansiに基づいて、方言文化/ na / usa / en_enアメリカ英語を作成できます。





ファイル構造
辞書の説明へのエントリポイントは、各ディレクトリに含まれているlang.xmlファイルです。 このファイルには、継承された言語へのリンク、デフォルトで接続されている一般的な辞書ファイルの名前が含まれます。また、OEMテキストファイルに置かれた辞書のエンコードなど、他の機能の説明も含まれる場合があります。



言語の説明は、lang.xmlファイルのcultureセクションに保存されます



<culture> <language>   </language> <codepage>         </codepage> <from>      culture </from> <include> <file codepage="    ">         xml  txt </file> <file>         xml  txt </file> </include> </culture>
      
      







ドラフトfromセクションは空のままです。



ターゲット言語の単語と継承言語への翻訳で構成される簡単な辞書をテキストファイルに保存できますが、XMLファイルを使用することをお勧めします。 テキストファイルの場合、単語はスペースによって継承言語への翻訳から分離され、1行に1組の単語が含まれます。 フレーズを使用してオプションを検討できます。フレーズは引用符で囲み、翻訳とスペースで区切ります。



XMLファイルの単語を翻訳するリンクは単語セクションにあり、1つの辞書ファイルには、 インクルードセクションに同じ辞書の別のファイルへのリンクが含まれている場合があります。 XML形式の辞書の場合、プログラミング言語のキーワードに関連するプロパティを追加することが可能になります。



 <include> <file codepage="    ">         xml  txt </file> </include> <words> <word> <value>     </value> <from>     </from> <tip>         </tip> </keyword> </words>
      
      







含まれるXMLインクルードファイルには、他のファイルへのリンクを含めることもできます。これにより、モジュール式の翻訳構造を作成できます。 翻訳の矛盾(同じフレーズの異なる翻訳)の場合、ファイルの再包含は無視され、最初の翻訳が優先されます。 継承された言語のチェーンのいずれかからの翻訳がない場合、最後に見つかった言語の翻訳が正しい翻訳と見なされます。 各国語からANSIエンコードに切り替えるには、辞書に単語がない場合、音訳を使用できます。





いくつかのプログラムがある場合



プログラムごとに異なる翻訳オプションが必要になる場合があります。 したがって、プログラムごとに、アプリケーションの名前に対応する独自の辞書を作成し、最初に接続してから、同じディレクトリ(common.xmlなど)の共通辞書を接続できます。 アプリケーションは、辞書ファイルへのパス、使用する言語、初期辞書ファイルなどを、たとえば構成ファイルを通じて指定する必要があります。 与えられたモジュラーディレクトリ構造での作業は、ライブラリの形で実装できます。



提案されたディレクトリ構造は、パラメータ化可能な文字列を考慮していませんが、たとえばGitリポジトリを使用して、多くの言語でローカライズを作成するのに十分な透明性があります。



参照:

habrahabr.ru/post/176243-「National 」プログラミング言語

habrahabr.ru/post/136272-学校で勉強するときに最初にすべきプログラミング言語は何ですか?

habrahabr.ru/post/20541-アプリケーションの国際化について

habrahabr.ru/post/165705-アプリケーションの国際化に関するいくつかの言葉

habrahabr.ru/company/alconost/blog/173467-LinkedInが1泊で19言語にローカライズする方法

habrahabr.ru/post/267501-Google Chrome拡張機能のローカライズ-必要かつシンプル



英語以外のキーワードプログラミング言語



特に、 www.robomind.netへのリンクは興味深い-英語とオランダ語のロボット学習環境



All Articles