Extension:UniversalLanguageSelector/ja

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

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

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


 * 1) 幅広い言語から柔軟に簡単にひとつ選べる.
 * 2) 地理的位置に基づくウェブ閲覧や検索により選択できる.
 * 3) Search can be based on ISO 言語コード、現在のUIやスクリプトの言語（自称）
 * 4) 言語間検索 - 使用スクリプトに関わらず言語名を検索
 * 5) 言語名のオートコンプリート（自動補完）
 * 6) 検索文字列のつづりの誤りを自動で補正
 * 7) GeoIP から言語をお奨め
 * 8) ユーザーのブラウザやOSによる言語の選択
 * 9) 複数の入力方式
 * 使い方の完全マニュアルはHelp:Extension:UniversalLanguageSelector/Input_methods/jaを参照
 * 1) 使える複数の入力方式から選び、編集ができる欄すべてで使用
 * 2) 幅広い言語群に対応する多様な入力方式
 * 3) * 旧来の入力方式一覧はExtension:Narayam#Supported schemesを参照
 * 4) 言語ごとに入力方式を設定
 * 5) ウェブフォント
 * 6) 言語ごとに多彩なウェブフォントから選び、ページで埋め込みフォントとして用いる
 * 7) * 旧来のウェブフォント一覧は Extension:WebFonts#Supported languagesを参照
 * 8) * 同梱されたフォントの一覧
 * 9) 言語ごとに割り当てるフォントの設定



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

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

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

Webフォントの準備
WOFF とも呼ばれる Web フォント作成にはSfntly ライブラリが必要です（コマンドラインのみ. ）

インストールが完了すると、次のコマンドが使えます.

.woff の作成:

.woff2 の作成:

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

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

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

After creating the files, do the following:
 * 1) Create a directory for the font under data/fontrepo/fonts.
 * 2) Put the ttf, woff, eot and font.ini files in that directory and add them to the source repository.
 * 3) Go to data/fontrepo/scripts and run.
 * 4) Commit the changes to the repository  and submit them according to the Git workflow.

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

LanguageNameIndexの更新
言語間の検索あるいは内名の検索には、言語データを入力する必要があります. ULS に既定で同梱される言語名の索引 (data/langnames.ser) を更新するには、共通ロケールデータリポジトリの拡張機能Extension:CLDRをインストールした後に下記のコマンドで更新をかけます.

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

設定
The following variables are created automatically during initialization and can be used from JavaScript using mw.config.get( NAME ):
 * - 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 The following variables can also be configured:
 * - ULS can use geolocation services to suggest languages based on the country the user is visiting from. 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/ and expects the same format.
 * - Enable language selection, compact language links, input methods and webfonts for everyone, unless the behavior is overridden by the configuration variables below.  Even if false the classes and resource loader modules are registered for the use of other extensions. Language changing via cookie or setlang query parameter is not possible.
 * - Allow anonymous users to change language with cookie and setlang query param. Do not use if you are caching anonymous page views without taking cookies into account. Does not have any effect if either of   or $wgULSEnableAnon is set to false.
 * - Disable the input methods feature for all users by default. Can still be enabled manually by the user.
 * - The location and the form of the language selection trigger. The possible values are: : as a link near the username or the log in link in the personal toolbar (default).  : as an icon near the header of the list of interlanguage links in the sidebar.
 * - Array of jQuery selectors of elements on which IME must not be enabled. eg:

ULSトリガーの位置

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

It is also possible to have ULS trigger anywhere in the screen. An element with  will act as a ULS trigger.

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

この場合 languageCode は有効な言語コード (例：en、hi、nl) を使います. FontA と FontB のフォントがリポジトリにある場合、上記の languageCode の例ではローカルのコンピューターにあるフォントを既定のフォントに設定し、既定の web フォントは使いません.

設定をキャッシュする
Webフォントファイルがクライアントのマシンに確実にキャッシュされるためには、フォントのファイルタイプをWebサーバーの設定に追加する必要があります. Apache2 での手順は次のとおり.
 * 関連ディレクトリの FilesMatch の FileTimes 正規表現に、フォントファイルの拡張子を追加する例.
 * ExpiresByType の値は画像の MIME タイプ同様、関連の MIME タイプに追加する.
 * TTF には標準的な MIME タイプはない. ウィキメディアでは application/x-font-ttf を使用.
 * MIME タイプの追加方法.

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

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

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

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

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

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

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

例:

𒄖𒉈𒅁𒌨𒅎

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

𒄖𒉈𒅁𒌨𒅎

関連項目

 * ユニバーサル言語選択（ULS）
 * Universal Language Selector/Interaction Design Framework（ULS のインタラクション設計フレームワーク）
 * Universal Language Selector/Technical Design（ULS の技術的な設計）
 * Technical details of Webfonts feature of Universal Language Selector（ULS のWebフォント機能の技術詳細）