「言語を作成する方法」を尋ねるので、新しい言語(またはより正確には、システムを書く)のために必要なすべての部分について説明します。あなたはEritreanのアルファベットについて具体的に尋ねるので、現代のシステムでそれがどのようにサポートされているかの具体的な例を提供し、欠落している部分のポインタを提供しようとします。答えは長く、2つの説明をサポートするために多くのリンクを提供します。
Ge'ez(エチオピア語、エチオピアのアムハラ語とエリトリアのティグリニャ語を書くスクリプト)は、いくつか必要です。最初は文字をエンコードする方法です。コンピュータがテキストを表現するために使用できる各文字を表す一連の数字。幸いにも、Unicodeが広く普及し、Unicodeは世界のすべての言語を含む普遍的な文字セットとして設計されています。 Unicode 3.0はrange U+1200-U+137FにEthiopicを導入し、それ以降のバージョンでは、U+1380-U+1394、U+2D80-U+2DDF、およびU+AB00-U+AB2Fの範囲で、より明白でない文字のサプリメントを追加しました。 Unicodeがまだサポートしていない言語をサポートしたい場合は、private use areaを使用してコードポイントへの文字のマッピングを定義するか、submit a proposalを使用してスクリプトをUnicodeに追加する必要があります。たとえば、Ethiopicの提案を参照してください。
現在、ユニコードはcharacter setです。文字と数字の間の抽象マッピング。実際にこれらの文字を一連のバイトとして送信するには、character encodingを使用します。多くのエンコーディングがあります。 ASCIIとISO-8859-1のようなものは、完全なUnicode文字セットのサブセットのみをカバーし、UTF-8やUTF-16のようなものはフルレンジをカバーします。 Web上のドキュメントでは、UTF-8が推奨される文字エンコーディングです。あなたがそれを助けることができるなら、他に何も使用してはいけません。 UTF-8では、ドキュメントにGe'ezを直接書くことができます。例:ኤርትራ。注意すべき点の1つは、UTF-16を意味するときに、いくつかのプログラム(特にWindows上)が "Unicode"をエンコーディングとして提供することです。より効率的でより幅広い種類のソフトウェアと互換性があるため、UTF-8を確実に選択したいと考えています。
Unicodeの全範囲をカバーしていないエンコーディングを使用している場合、またはそれらの文字を入力する良い方法がなく、HTMLまたはXMLを記述している場合は、代わりにnumeric character referencesを使用できます。これを行うには、参照する文字のUnicodeコードポイントを&#
と;
の間に記述します。数字は10進数で、または接頭辞はx
の16進数で書くことができます。たとえば、ሀ ሀ
またはሀ
と書くことができます(最後のセミコロンは重要です;あなたが欠けていたためコメントにあなたが役に立たなかった)。
文字セットがあり、それをエンコードする方法があるので、それを表示する方法が必要です。一部のスクリプトは他のスクリプトに表示する方が簡単です。すべてのスクリプトでは、fontが必要です。各文字の見た目を定義するファイル。フォントには、グリフの集まり、または各文字の図が含まれています。 Latin alphabet(英語とほとんどのヨーロッパ言語で使用されるアルファベット)のような一部のスクリプトは比較的シンプルです。各文字は別のグリフであり、どのように描画されるかは前後の文字に依存しません(ただしdiacriticsとligaturesは少し複雑になります)。 ArabicとIndic scriptsのようなものは、筆記体で書かれています。筆記体は互いに結合しているので、描かれる方法は、それらの近くの文字に依存する可能性があります。これらの言語には、Windowsの場合はUniscribeまたはDirectWrite、Linuxの場合はPango、Apple Advanced TypographyやGraphiteなどの高度なフォント技術が必要です。
幸いなことに、Ge'ezは、特別なレンダリングサポートや高度なフォントシステムを必要としない、かなりシンプルなライティングシステムです。それぞれの文字は別のグリフであり、並べ替えは必要ありません。したがって、ほとんどのコンピュータで既に利用可能なレンダリングシステムで表示される通常のOpenTypeフォントがその仕事をします。しかし、文字を表示できるようにするにはフォントが必要です。独自のフォントを作成するには、FontForge(フリー/オープンソースツール)、Fontographer、FontLab Studio、または他の同様のソフトウェアを使用できます。
エチオピアに関しては、自分で作成する必要はありません。エチオピア文字を含むnumerous fonts availableがありますが、私がお勧めするのは、からSIL(夏期言語学研究所)です。これは、少数民族言語と執筆システムで多くの優れた作業を行います。それらのフォントはfree licenseで利用でき、フォントの使用、フォントの再配布、フォントの変更を行うことができ、フォントは非常に柔軟性があり、さまざまな状況で使用できます。 WindowsはNyalaで出荷されています。これにはエイリアス文字(Windows Vista以降)とEbrima(Windows 8ではエチオピア文字のサポートが追加されています)が含まれています。 Windows Vista以降のユーザーはすでにエチオピア文字を見ることができるはずです。 Mac OS XにはKefa as of 10.6が付属しています。
フォントを取得すると、エチオピア文字を表示できます。しかし、あなたの文書を読んでいる他の人は、それらのフォントを持っていないかもしれません(WindowsやMac OS Xの古いバージョンを使っている場合、Windowsに付属のフォントをすべてインストールしなかった場合など)。文字はおそらくマシンにボックスや疑問符として表示されます。これらの人々にAbyssinica SILのような再配布可能なフォントを与えることも、エチオピア文字を含むフォントを購入することもできますが、それは不便かもしれません。ワードプロセッサ文書やプレーンテキストを扱う場合は、おそらく最善の方法です。テキストを表示するには、コンピュータにフォントがインストールされている必要があります。あなたのコンピュータ上でPDFを作成する場合は、テキストを表示するために必要なフォントが埋め込まれている必要があります。そのため、PDFを作成すると、珍しいフォントをドキュメントに含めることができます。
ウェブページでは、web fontsを使用してスタイルシートのフォントにリンクすることができ、ユーザーのウェブブラウザがそのウェブページのフォントをロードできるようになります。 Webフォントはall the way back to IE 6と他のほとんどのWebブラウザの最近のバージョンでサポートされているので、実際にはかなり広くサポートされています。異なるWebブラウザでは異なるフォントファイル形式(EOT,TTF,OpenType、SVG、およびWOFF)がサポートされていますが、CSSの構文は若干異なります(古いバージョンのIEは古いドラフトに基づいています)。すべてのブラウザと互換性のあるページ。幸いにも、人々はそのプロセスを自動化しています。一部のWebフォントはGoogle Web FontsまたはFontSquirrelからオンラインで入手できますが、残念ながら既にホストされているEthiopicフォントは見つかりませんでした。しかし、あなたはupload a font to FontSquirrelとすることができ、すべての主要なフォーマットに変換し、現代のすべてのブラウザで動作するCSSの例を提供します。 Web埋め込みを許可するフォントでのみこれを行うべきであることに注意してください。すべてのフォントではありません。 Abyssinica SILはOpen Font Licenseの下で利用できるので、あなたはそれを使うことができます。私はFontSquirrelを通してそれを実行しました。 see how it works(グリフ&の[言語]タブを参照してください)、またはdownload the kitとすることができます。 、それを使用するだけで、あなたのCSSと同じディレクトリに、サーバー上のフォントファイル(.ttf
、.eot
、.svg
、および.woff
)を入れて、あなたのCSSに以下を含めるには:
@font-face {
font-family: 'abyssinica_silregular';
src: url('abyssinicasil-r.eot');
src: url('abyssinicasil-r.eot?#iefix') format('embedded-opentype'),
url('abyssinicasil-r.woff') format('woff'),
url('abyssinicasil-r.ttf') format('truetype'),
url('abyssinicasil-r.svg#abyssinica_silregular') format('svg');
font-weight: normal;
font-style: normal;
}
今、あなたはどのように知っていることエチオピアをエンコードしたり、エチオピア文字を表示したり、エチオピア文字を含むドキュメントを共有したりするには、ドキュメントに入力する必要があります。 HTMLを使用している場合は、上記の数値文字参照を入力するだけです。他のドキュメントでは、Wikipediaのページのように、それらのすべてのチャートから文字をコピーして貼り付けることができます。しかし、それはかなり面倒になるでしょう。あなたのシステムと設定に応じて、Unicode Hex Inputを使って任意のUnicode文字を入力することもできますが、それも面倒です。
コンピュータにスクリプトを入力することを完全にサポートするには、keyboard layoutまたはinput methodが必要です。一部のスクリプトは、どのキーがどの文字に対応しているかを示す単純なキーボードレイアウトで入力することができます。スクリプトにキーボード上のキーより多くの文字がある場合、ShiftキーとAltキー(またはMacのOptionキー)を使用してより多くの文字にマッピングできます。 Dead keysは、入力する文字の範囲を拡大するためにも使用できます。デッドキーは、1つのグリフを生成する2つ以上のキーストロークのシーケンスです。たとえば、Mac OS Xでは「á」と入力すると、オプション-EAと入力できます。 Windowsでキーボードレイアウトを作成するには、Microsoft Keyboard Layout Creatorを使用します。 Mac OS Xではキーボードレイアウトにan XML formatを使用しているため、直接作成することも、SILのUkeleleを使用して簡単に作成することもできます。 X11(Linuxなど)を使用しているシステムでは、create your own XKB layoutsとすることができます。
中国語や日本語などの修飾語やデッドキーでサポートできる文字以上が必要な場合は、本格的な入力方法が必要です。入力メソッドを使用すると、任意のコードを実行して、作成したテキストに誰かが入力したものをマップすることができます。たとえば、日本語の入力方法では、あなたが書いているものの表音的な表現を入力することができます。また、その表現に一致する可能性のある文字のドロップダウンリストが表示され、適切なものを選択できます。 Windowsでは入力方法の書き込みにInput Method Manager、Mac OS XにはInput Method Kit、X11にはSCIMとiBusなどのいくつかの方法があります。
エチオピアのstandard input methodはデッドキーを大量に使用します。 Ethiopicの最も普及している既存の入力方法は、MacとWindowsで動作する市販の入力方法であるKeymanです。さらに、Linuxで動作するフリーのバリアントKMFLがあります。この入力方法ではSILはkeyboard downloadsです。彼らはまた、同じことを達成するためにデッドキーを使用するMac OS X用のキーボードレイアウトを持っています。Mac OS Xはより広範なデッドキーをサポートしているので、このような入力方法をサポートするための入力方法は必要ありません.Windowsでは、このように入力するにはKeymanのような入力方法を使用する必要があります。 Googleには無料のWindows用入力方法(Google Input Tools for Windows)があり、これはAmharicをサポートしており、customize its input schemesに対応しています。 Tigrinyaに対するAmharicのサポートを適応させることができます。
ウェブサイトの入力をサポートするだけであれば、JavaScriptで入力メソッドを書くことで、これを行うことができます。JavaScriptを使用すると、エイリアスに入力されたものから変換されます。私はこれを行うための既存のフレームワークについて知らない。しかし、私はKoreanとJapaneseの入力メソッドがJavaScriptで実装されていることがわかりました。それらがどのように実装されているかを見ることができます。さらに見ると、Keymanを作ったTavultesoftにはKeymanWebというJavaScriptベースの入力メソッドがあり、これを購入してサイトに埋め込むことができます。 MediaWikiには、WikipediaのようなMediaWikiベースのサイト用のJavaScriptベースの入力メソッドが含まれている入力メソッド拡張Narayamもあります。これには実験的なAmharic入力メソッドが含まれています。 もあり、WebアプリケーションとネイティブIME、およびJavaScriptベースのIME間のインターフェイスを提供します。まだドラフトであることを考えると、どこにでもまだサポートされているかどうかはわかりません。
上記のすべて(文字セット、エンコーディング、フォント、レンダリングサポート、および入力メソッド)を使用すると、スクリプト内でドキュメントを作成、共有、表示することができます。それがあなたの必要なものなら大丈夫です。上記のようにすると、指定されたスクリプト内のドキュメントを扱うことができます。しかし、スクリプトや書記体系だけでなく、コンピュータ上の言語を完全にサポートするためには、さらに2つの部分が必要です:locale、およびあなたの言語にローカライズされた(翻訳され適応された)ソフトウェア。
ロケールは、特定のスクリプト、言語、文化、および/またはエンコーディングでプログラムがテキストを操作する方法を指定します。プログラムでは、数字の表示、日付と時刻の表示、文字列や名前のソートなど、多くの一般的なテキスト処理操作があります。これらの仕組みは、プログラムを使用する人の言語、スクリプト、および文化に基づいて異なる可能性があります。例えば、スウェーデン語では "ü"は "y"とともにソートされ、英語とドイツ語では "u"と共にソートされます。メキシコとスペインの両方でスペイン語が使用されていますが、メキシコでは小数点区切り文字として.
が表示されます(スペイン語では1/2が1.5と書かれています)。,
は小数点記号として使用されます「1,5」)。ロケールはこれらすべてのルールを指定します。ロケールは言語、文化、および時にはその他の要因に基づいて異なる可能性があるため、言語と国は通常ロケールの指定に使用され、その他の情報も同様に使用できます。
ロケールの名前として最も広く使用されている標準はRFC 4646 (BCP 47)です。ロケールは通常のように指定されている - 言語コードLNと国コードCCと " LN CC":US英語はEN-USで、イギリス英語は、EN-英国で、フランスでは、FR-FRであります。より多くの情報を指定する必要がある場合は、それを含めることができます。例えば、Serbianは、ラテンまたはのいずれかで書くことができます。したがって、セルビアのセルビア語は、sr-Latn-CSまたはsr-Cyrl-CSのいずれかです。エリトリアのTigrinyaはti-ERと書かれています。
特定のロケールのルールを定義するためのさまざまな形式があります。 WindowsはNLPファイルを使用します。カスタム形式はMicrosoft Locale Builderで作成できます。 POSIX(Unix/Linux)ロケールは、localedefを使用して作成できます。現在、多くのシステムは、Unicode Common Locale Data Registryに向かっています。これは、ロケールデータの標準化されたフォーマットと、多くの世界の言語のロケールの包括的なデータベースを規定しています。ICUは、Unicode規則とロケールデータに従ってUnicodeテキストを操作するために、CとJavaのライブラリです(他の多くの環境でも使用されています)。彼らはCLDRからのデータと独自のロケールデータのために良いbrowserを持っています。たとえば、ti-ERのエントリを見てください。
最後に、言語を完全にサポートするには、ソフトウェア自体をその言語に翻訳する必要があります。もちろん、多くのソフトウェアがあり、それぞれには翻訳が必要な多くの文字列が含まれています。一部のソフトウェアは翻訳されるようには設計されていません。それはinternationalizedではありませんでした。一部のソフトウェアは、誰でも作成できます。ストリングはプログラムに組み込まれており、第三者によって容易に変更することはできません。しかし、いくつかのソフトウェアをローカライズして、あなたの言語と文化に翻訳することは可能です。ソフトウェアが既に他のいくつかの言語や文化のためにローカライズされている場合、新しい言語をサポートするのに十分な柔軟性があり、ローカリゼーション情報のために容易に変更可能なフォーマットを使用する場合は、第三者が変更することができます。
例えば、Mac OS X上のアプリケーションは、ローカライゼーションデータをアプリケーションバンドル内の別々のファイルに保存します。 AppleGlotと呼ばれるツールがあります(Mac Developer Programに登録してダウンロードエリアに移動してください)、そのデータを抽出したり、翻訳する必要のあるすべての文字列をファイルに提供したり、それをもう一度アプリケーションと組み合わせてください。 Linuxで利用できる多くのソフトウェアなどのオープンソースソフトウェアでは、開発者と協力して翻訳を提供することができます。一部のソフトウェアではgettextを翻訳文字列に使用しますが、これはpoeditを使用して編集できるPOファイル形式を使用します。 Qtを使用するものもありますが、Qt Linguistを使用できます。また、さまざまなフォーマットを扱う場合は、SwordfishまたはTransifexのような商用サービスを使用できます。
もちろん、誰も上記のことを行うことはできません。最新のコンピュータシステム上で新しい言語のサポートを構築するには、多くの人々が協力して作業しています。これはすべて、特定の言語の言語サポートに入るすべてのコンポーネントのハイレベルなツアーであり、あなたが作業したいと思っていることをフォローアップしたり、 TigrinyaとGe'ezスクリプトで動作します。
これらの文字はすべてUnicodeで定義されているようです。 http://en.wikipedia.org/wiki/Tigrinya_language ウェブコンテンツ(UTF-8エンコーディング)にこれらを含めることができるようにするか、 'ቘ'にቘなどのHTMLエンティティを使用することができます。 – ddoxey
これらの文字には、エイリアス文字(Unicode Code Charts(http://www.unicode.org/charts/)からダウンロード可能)とU + 1200..U + 137Cの範囲のコードが共通していますか? U + 1380..U + 1399、U + 2D80..U + 2DDE、およびU + AB00..U + AB2E?そうでなければ、Eritrean文字が認識されるまで、プライベート用の文字範囲(U + E000..U + F8FF、またはU + F0000..U + 10FFFF)を使用する必要がありますUnicodeによる。 –
@ddoxey - 私はいつも、文字をどのPCでも表示可能にするためには、いくつかのソフトウェアプログラムが必要だと思っていました。そうでなければ、文字を見ることができません。しかし、あなたのPCで '&#4696'を見ることができれば、ソフトウェアをインストールせずにすべてのブラウザで見ることができるので、間違っていたようです。私は今までにユニコードが何を意味しているかを知らなかった。これは、小さな画像をhtmlコードに変更して文字を投稿するスクリプトを自分のサイトで作成できることを意味しますか?もしそうなら、それは命を救うアイデアだろう。 – samayo