Extension:UniversalLanguageSelector/ja

ユニバーサル言語選択 (ULS: Universal Language Selector) は利用者が簡単に言語を選択しサポートを設定できるツールです. 使用すると および  の拡張機能が同梱されます（両方ともこの拡張機能を優先するため使用されていません）. 背景とその他の情報は を参照してください.

使用法
主目的は、利用者が言語やその設定の変更を簡単に行えるようにすることです.

この拡張機能は以下の機能を提供します.


 * 1) 幅広い言語から柔軟に簡単にひとつ選べる.
 * 2) 地理的位置に基づくウェブ閲覧や検索により選択できる.
 * 3) 検索する要素は ISO 言語コード、現在のUIやスクリプトの言語（自称）
 * 4) 言語間検索 - 使用スクリプトに関わらず言語名を検索
 * 5) 言語名のオートコンプリート（自動補完）
 * 6) 検索文字列のつづりの誤りを自動で補正
 * 7) GeoIP から言語をお奨め
 * 8) ユーザーのブラウザやOSによる言語の選択
 * 9) 複数の入力方式
 * 使い方の完全マニュアルは $1 を参照
 * 1) 使える複数の入力方式から選び、編集ができる欄すべてで使用
 * 2) 幅広い言語群に対応する多様な入力方式
 * 3) * 旧来の入力方式一覧はExtension:Narayam#Supported schemesを参照
 * 4) 言語ごとに入力方式を設定
 * 5) ウェブフォント
 * 6) 言語ごとに多彩なウェブフォントから選び、ページで埋め込みフォントとして用いる
 * 7) * 旧来のウェブフォント一覧は Extension:WebFonts#Supported languagesを参照
 * 8) * [$git-fonts 同梱されたフォント]の一覧
 * 9) 言語ごとに割り当てるフォントの設定
 * 1) Selection can be based on geographical region based browsing, searching.
 * 1) Search can be based on ISO language code, language name written in current user interface language or in its own script(autonym)
 * 1) Cross language search - search language names using any script
 * 1) Autocompletion of language names
 * 1) Auto correction of spelling mistakes in search strings
 * 1) Geo IP based language suggestions
 * 1) Language selection based on users browser/OS language
 * 1) Input methods
 * See for complete instructions.
 * 1) An easily selectable input method collection, readily available in every editable field
 * 1) Provides a large set of input methods for wide range of languages
 * 1) * An outdated list is available at Extension:Narayam#Supported schemes
 * 1) Per-language input method preferences
 * 1) Webfonts
 * 1) A large collection of fonts to choose for each language to use as embedded font for the page
 * 1) * An outdated list is available at Extension:WebFonts#Supported languages
 * 1) * You can browse all the fonts included
 * 1) Per-language font preferences



フォントの追加
言語に適したフォントをコードに追加すると、サポートする言語を増やすことができます. そうは言うものの、追加できるのは無償使用を許可する、たとえば GNU GPL、SIL OFL などの規定に従うフォントに限定されます. Google Fonts はフリーフォントのディレクトリの一例ですが、ULS の作者による検証と利用は未完です. Open Font Libraryも参照してください.

まずはじめにフリーフォントを検索するか作成します（これが最重要ポイントで、必ず自分自身で対処してください）. 次に、eot か ttf、woff の必須フォーマットに変換してください. その後、Phabricatorでフォントを拡張機能に追加するリクエストを提出します.

下記の「#Webフォントの準備」の項目でフォントの変換の方法を説明します. GNU/Linux ベースのOS の基礎知識が欠かせないため、自分でできない場合は Phabricator でフォント追加といっしょに依頼することができます（当然、フォントの追加完了までかかる時間は長引きます. ）

Webフォントの準備
.woff2 の作成:

woff2 の作成には https://github.com/google/woff2 を使います. 作成される woff2 の圧縮ファイルのフォーマットは、最近のブラウザーがサポートしています.

次に作成する font.ini ファイルの例は次のとおり.

言語コードに付けたアスタリスク は、そのフォントがその言語の既定であることを示します. オプションとして使用したい場合は、 を付けないでください.

ファイルを作成したら、以下を実施します:


 * 1) data/fontrepo/fonts 内にフォント用ディレクトリを作成します.
 * 2) そのディレクトリに ttf、woff、eot、font.ini ファイルを配置し、ソース リポジトリに追加します.
 * 3)   に移動し、  を実行します.
 * 4) 変更をリポジトリにコミットし  、Git のワークフローに従って投入します.

新しいキーの関連付けをサポート (入力メソッド)
instructions on the jquery.ime github wiki（入力メソッドの定義）に従いますが、Wikimedia-extensions-UniversalLanguageSelector Phabricator プロダクトにリクエストします.

LanguageNameIndexの更新
For performing cross language search, searching autonyms, language data needs to be populated. ULS comes with a pre-populated language name index(data/langnames.ser). In case you want to update it, install and update the data with the following command.

php UniversalLanguageSelector/data/LanguageNameIndexer.php このとき langnames.serファイルが ULS/data/ フォルダに作成されたか確認してください.

設定
以下の変数が初期化の段階で自動生成され、JavaScript により mw.config.get( NAME ) を用いて使用できます.
 * - 言語コードをキーにした、英語の言語名を値に取る連想配列.
 * - 利用者の Accept-Language 値に由来する言語コードの配列. 利用者がブラウザー設定で選択した言語のこと.


 * - an associative array where the keys are language codes and the values are language names in English.
 * - an array of language codes from the user's Accept-Language value. These are the languages selected in the user's browser preferences.

フォントの提供に合わせ、もし使用しているウェブサーバーに不足しているなら以下の MIME の種類を追加するとよいかもしれません. こちらの説明を参照してみてください.

 application/x-font-woff .woff application/vnd.ms-fontobject .eot application/x-font-ttf .ttf

以下の変数も設定の対象です.


 * - ULS は衛星の位置測位サービスを用いると、利用者の所在する国や地域の位置に基づき言語を提案できる. これを「false」に設定すると、組み込み位置測位サービスを使用しない. キー「country_code」または「country」を持つオブジェクトにwindow.Geo を設定すると、独自の位置測位サービスが提供される. 「true」に設定すると Wikimedia の geoIP サービスに問い合わせ、指定されたコールバック パラメーターを使う jsonp を返す. 既定値は http://freegeoip.net/json/ で、フォーマットは同じ. Setting this to false will prevent builtin geolocation from being used. You can provide your own geolocation by setting window. Geo to object which has key 'country_code' or 'country'. If set to true, it will query Wikimedia's geoip service. The service should return jsonp that uses the supplied callback parameter. Defaults to http://freegeoip.net/json/ (warning: this website has shut down its API) and expects the same format.
 * - 下記の設定変数によって動作が上書きされない限り、言語選択、コンパクトな言語リンク、すべての人のための入力メソッドと Web フォントが有効. 「false」の場合も他の拡張機能を使うために、クラスとリソース ローダー モジュールを登録. cookie またはsetlang クエリ パラメーターを使った言語の変更は不可能.
 * - 匿名利用者は cookie と setlang クエリ パラメーターを使い、言語を変更できる. Cookie を考慮せずに匿名ページ ビューをキャッシュする場合は使用しないこと.  または $wgULSEnableAnon が「false」の場合は無効.
 * - 既定ではすべての利用者の入力メソッド機能が無効. その場合も利用者は手動で有効にできる.
 * - 言語選択トリガーの位置と形式. 選択肢は、 で利用者名または個人設定のツールバーの「ログイン」ボタンの近くにリンクを配置 (既定). または、  でサイドバーの言語間リンク一覧のヘッダー近くにアイコンを配置.
 * - jQuery による要素の選択機能. IME を無効にした場合のみ有効. 例:

ULSトリガーの位置

 * - 言語選択トリガーの位置と形式. 選択肢は、 で利用者名または個人設定のツールバーの「ログイン」ボタンの近くにリンクを配置 (既定). または、  でサイドバーの言語間リンク一覧のヘッダー近くにアイコンを配置.

ULS トリガーは画面上のどこにでも配置でき、 という要素がその役割を果たします.

既定のフォントをオーバーライドする
ULS が Web フォントとして提供するフォント リポジトリは広汎で、ときとして1言語に対応するフォントが何種類もあったり、言語や文字ごとに既定のフォントがあったりします. フォントの順位や既定のフォントはオーバーライド可能で、以下のように汎用スクリプトの利用(MediaWiki:Common.js) または個人のスクリプト (Special:MyPage/common.js) を用います.

設定をキャッシュする
Webフォントファイルがクライアントのマシンに確実にキャッシュされるためには、フォントのファイルタイプをWebサーバーの設定に追加する必要があります. Apache2 での手順は次のとおり.
 * 関連ディレクトリの FilesMatch の FileTimes 正規表現に、フォントファイルの拡張子を追加する例.


 * Adding font file extensions to the FileTimes regex at FilesMatch for the relevant directory, example:
 * ExpiresByType の値は画像の MIME タイプ同様、関連の MIME タイプに追加する.
 * TTF には標準的な MIME タイプはない. ウィキメディアでは application/x-font-ttf を使用.
 * MIME タイプの追加方法.
 * Note that there's no standard MIME type for TTF. application/x-font-ttf is used for Wikimedia.
 * Adding the MIME types:

 AddType application/x-woff .woff AddType application/vnd.ms-fontobject .eot AddType application/x-font-ttf .ttf

すべての例は ウィキメディアのクラスタ設定の更新のキャッシュを参照してください（gerrit ログインが必要）.

ページ翻訳
UniversalLanguageSelector は (翻訳) 拡張機能と依存関係にあり、さまざまな言語選択機能に使われます. ユーザーの UI 言語に依存するリンクのMyLanguageシステムもそのひとつで、その他にも設定できます. ページ翻訳の拡張機能を参照してください.

Webフォントの使用
特定の言語に使う web フォントは「言語設定」→「表示」と進んで設定します. 既定ではそのメニューのいちばん上にあるフォントがそのウィキに適用されます. ユーザーがフォントを変更すると記録され、どのページでもそのフォントが使われます. システムフォントを選択し、フォントの埋め込みを無効にすることもできます.

利用できるフォントが利用者のローカル システムにある場合は、フォントは MediaWiki サーバーからダウンロードされません. 利用者のコンピューターから取得されます. フォントが存在しない場合は、必要になった時点でサーバーから初回に1度だけダウンロードされます. 次回以降は、フォントはローカルのキャッシュから取得されます.

フォントファミリーを指定
ウィキテキスト YourText で web フォント拡張機能は指定されたフォントを備えているかどうかチェックし、クライアントにダウンロードします. たとえ特定のフォントがユーザーのコンピューターになくても、閲覧者は本文を読むのに不自由しません.

言語を指定
ウィキテキスト YourText で web フォント拡張機能は指定されたフォントを備えているかどうかチェックし、クライアントにダウンロードします. たとえ特定のフォントがユーザーのコンピューターになくても、閲覧者は本文を読むのに不自由しません. 言語に複数のフォントが対応する場合は、既定のフォントが使用されます. もし既定のフォントが好みでなかったら、フォントファミリーの手法でフォントを指定します. タグの定義に言語選択とフォントファミリーの両方がある場合はフォントファミリーが優先されます.

例:

𒄖𒉈𒅁𒌨𒅎

この例では、楔形文字でレンダリングしたテキストにアッカド語フォントを使用します.

𒄖𒉈𒅁𒌨𒅎