あなたの質問は「言語を作成する方法」を尋ねるので、私は新しい言語(より正確には書記体系)のために配置する必要があるすべての部分を説明します。あなたはエリトリアのアルファベットについて具体的に質問するので、それが現代のシステムでどのようにサポートされているかについて具体的な例を示し、不足している部分へのポインタを提供しようとします。答えは長く、2つの説明をサポートするために多くのリンクを提供します。
Ge'ez(エチオピアとも呼ばれます。エチオピアのアムハラ語とエリトリアのティグリニャ語を書くために使用されるスクリプト)のようなスクリプトを使用するには、いくつかのことが必要です。1つ目は、文字をエンコードする方法です。コンピュータがテキストを表すために使用できる、各文字を表す一連の数字。幸いなことに、Unicodeは広く普及しており、Unicodeは、世界中のすべての言語を含むユニバーサル文字セットになるように設計されています。Unicode 3.0では、U + 1200-U + 137Fの範囲でEthiopicが導入され、それ以降のバージョンでは、 U + 1380-U + 1394、U + 2D80-U + 2DDF、およびU + AB00-U+AB2Fの範囲でよりあいまいな文字の補足が追加されました。。Unicodeがまだサポートしていない言語をサポートしたい場合は、私用領域を使用してコードポイントへの文字の独自のマッピングを定義するか、スクリプトをUnicodeに追加する提案を送信する必要があります。たとえば、エチオピアの提案を参照してください。
現在、Unicodeは単なる文字セットです。文字と数字の間の抽象的なマッピング。これらの文字を一連のバイトとして実際に送信するには、文字エンコードを使用します。多くのエンコーディングがあります。ASCIIやISO-8859-1などの一部は、完全なUnicode文字セットのサブセットのみをカバーしますが、UTF-8やUTF-16などの他の文字セットはカバーします。、全範囲をカバーします。Web上のドキュメントの場合、UTF-8が推奨される文字エンコードです。あなたがそれを助けることができるならば、あなたは決して他のものを使うべきではありません。UTF-8では、Ge'ezをドキュメントに直接書き込むことができます(例:ኤርትራ)。注意すべき点の1つは、一部のプログラム(特にWindows)では、UTF-16を意味する場合、エンコーディングとして「Unicode」が提供されることです。UTF-8はより効率的で、さまざまなソフトウェアとの互換性が高いため、必ずUTF-8を選択する必要があります。
Unicodeの全範囲をカバーしていないエンコーディングを使用している場合、またはそれらの文字を入力する適切な方法がなく、HTMLまたはXMLを記述している場合は、代わりに数値文字参照を使用できます。&#
これを行うには、との間で参照する文字のUnicodeコードポイントを記述します;
。数値は、10進数、または接頭辞.を付けた16進数で書き込むことができますx
。たとえば、ሀと書くことができますሀ
(ሀ
最後のセミコロンは重要です。コメントでは、セミコロンが欠落しているため、機能していませんでした)。
文字セットとそれをエンコードする方法ができたので、それを表示する方法が必要です。一部のスクリプトは、他のスクリプトで表示しやすいです。すべてのスクリプトで、フォントが必要です。各文字がどのように見えるかを定義するファイル。フォントには、各文字のグリフまたは描画のコレクションが含まれています。ラテンアルファベット(英語およびほとんどのヨーロッパ言語で使用されるアルファベット)などの一部のスクリプトは、比較的単純です。各文字は個別のグリフであり、それらがどのように描画されるかは、前後の文字に依存しません(ただし、発音区別符号と合字によって少し複雑になる可能性があります)。その他、アラビア語やインド語のスクリプトなど筆記体で書かれており、文字が互いに結合しているため、文字がどのように描かれるかは、近くの文字によって異なります。これらの言語には、WindowsのUniscribeやDirectWrite 、LinuxのPangoなどの特別なレンダリングサポート、またはAppleAdvancedTypographyやGraphiteなどの高度なフォントテクノロジーが必要です。
幸いなことに、Ge'ezはかなり単純な書記体系であり、特別なレンダリングサポートや高度なフォントシステムを必要としません。各文字は個別のグリフであり、並べ替える必要はありません。したがって、ほとんどのコンピュータですでに利用可能なレンダリングシステムで表示される通常のOpenTypeフォントがその役割を果たします。ただし、文字を表示できるようにするには、フォントが必要です。独自のフォントを作成するには、FontForge(無料/オープンソースツール)、Fontographer、FontLab Studio、またはその他の同様のソフトウェアを使用できます。
エチオピアの場合、独自に作成する必要はありません。エチオピア文字を含むフォントは多数ありますが、私がお勧めするのは、SIL (Summer Institute of Linguistics)のAbyssinica SILです。これは、少数言語や書記体系で多くの優れた機能を発揮します。それらのフォントは無料ライセンスの下で利用可能であり、フォントの使用、フォントの再配布、およびフォントの変更が可能であるため、フォントは非常に柔軟で、さまざまな状況で使用できます。Windowsには、Windows Vista以降のエチオピア文字を含むNyala、およびEbrimaが付属しています。、Windows8でエチオピア文字のサポートを追加しました。したがって、Windows Vista以降のユーザーは、すでにエチオピアの文字を表示できるはずです。Mac OS Xは、10.6の時点でKefaに同梱されています。
フォントを入手すると、エチオピアの文字を表示できるようになります。ただし、ドキュメントを読んでいる他の人はそれらのフォントを持っていない可能性があります(古いバージョンのWindowsまたはMac OS Xを使用している場合、Windowsに付属しているすべてのフォントをインストールしていない場合など)。文字は、おそらくマシン上でボックスまたは疑問符として表示されます。それらの人々にAbyssinicaSILのような再配布可能なフォントを提供したり、エチオピア文字を含むフォントを購入したりすることもできますが、それは不便な場合があります。ワードプロセッサのドキュメントやプレーンテキストを操作する場合は、おそらくそれが最善の方法です。テキストを表示できるようにするには、コンピューターにフォントをインストールする必要があります。コンピューターでPDFを作成する場合は、テキストを表示するために必要なフォントを埋め込む必要があります。
Webページでは、Webフォントを使用してスタイルシートのフォントにリンクし、ユーザーのWebブラウザがそのWebページのフォントをロードできるようにすることができます。Webフォントは、IE 6まで、および他のほとんどのWebブラウザーの最近のバージョンでサポートされているため、実際には非常に広くサポートされています。異なるWebブラウザーは、異なるフォントファイル形式(EOT、TTF、OpenType、SVG、およびWOFF)、およびCSSのわずかに異なる構文(古いバージョンのIEは古いドラフトに基づいています)をサポートしているため、作成するのが少し難しい場合がありますすべてのブラウザと互換性のあるページ。幸いなことに、人々はそのプロセスを自動化しました。一部のWebフォントは、次のサイトからオンラインで入手できます。Google Web FontsまたはFontSquirrelですが、残念ながら、すでにホストされているEthiopicフォントは見つかりませんでした。ただし、フォントをFontSquirrelにアップロードすると、すべての主要な形式に変換され、最新のすべてのブラウザーで機能するCSSの例が提供されます。これは、Web埋め込みを許可するフォントでのみ行う必要があることに注意してください。すべてのフォントがそうするわけではありません。AbyssinicaSILはOpenFontLicenseの下で利用できるので、あなたはそれを使うことができます、そして私はあなたのためにFontSquirrelを通してそれを実行しました。それがどのように機能するかを確認するか([グリフと言語]タブを確認してください)、キットをダウンロードしてください。使用するには、フォントファイル(.ttf
、、、、および.eot
.svg
.woff
)サーバーのCSSと同じディレクトリにあり、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を使用している場合は、上記の数字参照を入力するだけです。他のドキュメントでは、ウィキペディアのページのように、すべてのチャートから文字をコピーして貼り付けることができます。しかし、それはかなり面倒になります。システムと設定によっては、Unicode 16進入力を使用して任意のUnicode文字を入力することもできますが、これも面倒です。
コンピューターでのスクリプトの入力を完全にサポートするには、キーボードレイアウトまたは入力方式が必要です。一部のスクリプトは、どのキーがどの文字に対応するかを示す単純なキーボードレイアウトで入力できます。スクリプトにキーボードのキーよりも多くの文字が含まれている場合は、ShiftとAlt(またはMacの場合はOption)を使用して、より多くの文字にマップできます。デッドキーを使用して、入力する文字の範囲を拡大することもできます。デッドキーは、単一のグリフを生成する2つ以上のキーストロークのシーケンスです。たとえば、Mac OS Xでは、「á」と入力するには、と入力しOption-E Aます。Windowsでキーボードレイアウトを作成するには、 Microsoft KeyboardLayoutCreatorを使用できます。MacOSXはXML形式を使用しますキーボードレイアウトの場合、直接作成するか、SILのUkeleleを使用してより簡単に作成できます。X11を使用するシステム(Linuxなど)では、独自のXKBレイアウトを作成できます。
中国語や日本語の入力など、修飾子やデッドキーでサポートできるよりも多くの文字が必要な場合は、本格的な入力方法が必要です。inputメソッドを使用すると、任意のコードを実行して、誰かが入力した内容を生成するテキストにマッピングできます。たとえば、日本語入力方式では、書いているものの音声表現を入力すると、その表現に一致する可能性のある文字のドロップダウンリストが表示され、適切な文字を選択できます。Windowsには入力メソッドを作成するための入力メソッドマネージャーが用意されており、Mac OS Xには入力メソッドキットが用意されており、X11にはSCIMやiBusなどのいくつかの方法があります。
Ethiopicの標準的な入力方法では、デッドキーを多用します。Ethiopicで最も人気のある既存の入力方法は、MacとWindowsで機能する商用入力方法であるKeymanであるように見えます。さらに、Linuxで機能する無料のバリアントKMFLがあります。SILには、この入力方式のキーボードダウンロードがあります。また、デッドキーを使用して同じことを実現するMacOSX用のキーボードレイアウトもあります。Mac OS Xはより広範なデッドキーサポートを備えているため、この形式の入力をサポートするために入力メソッドは必要ありませんが、Windowsでは、この方法で入力を入力できるようにするには、Keymanなどの入力メソッドを使用する必要があります。Googleには、Windows用の無料の入力方法、Windows用のGoogle入力ツールがあります、アムハラ語をサポートし、入力スキームをカスタマイズできるようにします; ティグリニャ語に対するアムハラ語のサポートを適応させてみることができます。
Webサイトでの入力をサポートする必要がある場合は、JavaScriptで入力メソッドを記述して、誰かが入力したものからエチオピアに変換することで、これを行うことができます。私はこれを行うための既存のフレームワークを知りません。ただし、JavaScriptで実装されている韓国語と日本語の入力メソッドを見つけました。それらがどのように実装されているかを見ることができます。さらに調べてみると、Keymanを作成しているTavultesoftには、JavaScriptベースの入力メソッドであるKeymanWebもあり、購入してサイトに埋め込むことができます。MediaWikiには入力メソッド拡張機能Narayamもあります、ウィキペディアのようなMediaWikiベースのサイト用のJavaScriptベースの入力メソッドが含まれています。これには実験的なアムハラ語の入力メソッドが含まれています。ドラフトW3CIMEAPIもあります。これは、WebアプリとネイティブIME、およびJavaScriptベースのIME間のインターフェイスを提供するのに役立ちます。それがまだドラフトであることを考えると、それがまだどこでもサポートされているかどうかはわかりません。
上記のすべて(文字セット、エンコード、フォント、レンダリングサポート、および入力方法)を使用すると、スクリプトでドキュメントを作成、共有、および表示できます。それがあなたが必要とするすべてであるならば、素晴らしい。上記を使用すると、特定のスクリプトでドキュメントを操作できます。ただし、スクリプトや書記体系だけでなく、コンピューター上の言語を完全にサポートするには、ロケールと、言語に合わせてローカライズ(変換および適合)するソフトウェアの2つが必要です。
ロケールは、プログラムが特定のスクリプト、言語、カルチャ、および/またはエンコーディングでテキストを操作する方法を指定します。プログラムが実行する一般的なテキスト処理操作は多数あります。数値の表示、日付と時刻の表示、文字列または名前の並べ替えなどです。これらがどのように機能するかは、プログラムを使用する人の言語、スクリプト、および文化によって異なります。たとえば、スウェーデン語では「ü」は「y」と一緒に並べ替えられますが、英語とドイツ語では「u」と一緒に並べ替えられます。違いは言語に基づくものではない場合があります。メキシコとスペインはどちらもスペイン語を使用しますが、メキシコで.
は小数点記号として数字が表示されます(1½は「1.5」と表記されます)が、スペインでは,
小数点記号として使用されます(1½は「1,5」と表記されます)。ロケールは、これらすべてのルールを指定します。ロケールは言語、文化、および場合によっては他の要因によって異なる可能性があるため、通常、言語と国を使用してロケールを指定し、他の情報も使用できます。
ロケールの命名に最も広く使用されている標準はRFC4646(BCP 47)です。ロケールは通常、言語コードlnおよび国コードCCの「 ln -- CC 」として指定されます。米国英語はen-US、英国英語はen-UK、フランスのフランス語はfr-FRです。さらに情報を指定する必要がある場合は、それを含めることができます。たとえば、セルビア語はラテン文字またはキリル文字で記述できるため、セルビア語のセルビア語はsr-Latn-CSまたはsr-Cyrl-CSのいずれかになります。エリトリアのティグリニャ語はti-ERと書かれています。
特定のロケールが持つルールを定義するには、さまざまな形式があります。Windowsは、 MicrosoftLocaleBuilderで作成できるカスタム形式であるNLPファイルを使用します。POSIX(Unix / Linux)ロケールは、localedefを使用して作成できます。最近の多くのシステムは、Unicode Common Locale Data Registryに移行しています。これは、ロケールデータの標準化された形式と、多くの世界の言語のロケールの包括的なデータベースを指定します。ICUは、Unicodeルールとロケールデータに従ってUnicodeテキストを操作するためのCおよびJava用のライブラリです(他の多くの環境で使用されています)。彼らは良いブラウザを持っていますCLDRからのデータと独自のロケールデータ用。たとえば、ti-ERのエントリを見てください。
最後に、言語を完全にサポートするには、ソフトウェア自体をその言語に翻訳する必要があります。もちろん、多くのソフトウェアがあり、それぞれに翻訳が必要な多くの文字列が含まれています。一部のソフトウェアは、翻訳されるように設計されていません。それは国際化されていません。一部のソフトウェアは、それを作成した人だけが翻訳できます。文字列はプログラムに組み込まれており、サードパーティが簡単に変更することはできません。ただし、一部のソフトウェアをローカライズして、言語や文化に変換することは可能です。ソフトウェアがすでに他のいくつかの言語や文化にローカライズされている場合は、新しい言語をサポートするのに十分な柔軟性があり、ローカリゼーション情報のために簡単に変更できる形式を使用している場合は、サードパーティが変更できます。
たとえば、Mac OS Xのアプリケーションは、ローカリゼーションデータをアプリケーションバンドル内の個別のファイルに保存します。AppleGlotと呼ばれるツールがあり(Mac Developer Programに登録し、ダウンロードエリアに移動して見つける必要があります)、そのデータを抽出し、変換する必要のあるすべての文字列をファイルに提供し、一度持ったら、それをアプリケーションと再び組み合わせることができます。Linuxで利用可能な多くのソフトウェアなどのオープンソースソフトウェアの場合、開発者と協力して翻訳を提供できます。一部のソフトウェアは、翻訳文字列にgettextを使用します。これは、 poeditを使用して編集できるPOファイル形式を使用します。Qtを使用するものもあり、 Qt言語学者を使用できます。または、さまざまな形式を処理するために、SwordfishやTransifexなどの商用製品を使用できます。
もちろん、1人で上記のすべてを実行することはできません。現代のコンピュータシステムで新しい言語のサポートを構築するには、多くの人々が協力して取り組む必要があります。これはすべて、特定の言語の言語サポートに入るすべてのコンポーネントの高レベルのツアーであり、作業したい側面をフォローアップするのに役立つリファレンスと、すでに何を示しているかを示すことを目的としています。ティグリニャ語とゲエズ文字で動作します。