Extension:UniversalLanguageSelector

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 100% complete.

Other languages:
العربية • ‎català • ‎Deutsch • ‎English • ‎español • ‎suomi • ‎français • ‎हिन्दी • ‎magyar • ‎Bahasa Indonesia • ‎italiano • ‎日本語 • ‎한국어 • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎sicilianu • ‎سنڌي • ‎ไทย • ‎中文
MediaWiki 拡張機能マニュアルManual:Extensions
Crystal Clear action run.svg
UniversalLanguageSelector

リリースの状態:Extension status 安定

ULS-Display-Settings.png
実装Template:Extension#type User interface, Skin, Beta Feature
説明Template:Extension#description 利用者が言語やその設定の変更を簡単に行うのを支援するツール。
作者Template:Extension#username ウィキメディア言語チーム
MediaWikiTemplate:Extension#mediawiki 1.26+
データベースの変更Template:Extension#needs-updatephp いいえ
ComposerComposer mediawiki/universal-language-selector
ライセンスTemplate:Extension#license GNU General Public License 2.0 or later, MIT ライセンス
ダウンロード

言語拡張機能バンドル (MLEB) に含まれます

使用するフックTemplate:Extension#hook
BeforePageDisplayManual:Hooks/BeforePageDisplay
PersonalUrlsManual:Hooks/PersonalUrls
ResourceLoaderTestModulesManual:Hooks/ResourceLoaderTestModules
ResourceLoaderGetConfigVarsManual:Hooks/ResourceLoaderGetConfigVars
MakeGlobalVariablesScriptManual:Hooks/MakeGlobalVariablesScript
UserGetLanguageObjectManual:Hooks/UserGetLanguageObject
SkinTemplateOutputPageBeforeExecManual:Hooks/SkinTemplateOutputPageBeforeExec
EnterMobileModeManual:Hooks/EnterMobileMode
GetPreferencesManual:Hooks/GetPreferences
GetBetaFeaturePreferencesManual:Hooks/GetBetaFeaturePreferences

Internet Explorer 8 以前とは互換性がありません.

translatewiki.net で翻訳を利用できる場合は、UniversalLanguageSelector 拡張機能の翻訳にご協力ください

使用状況とバージョン マトリクスを確認してください。

問題点Phabricator

未解決のタスク · バグを報告

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

使用法

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

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

  1. 幅広い言語から柔軟に簡単にひとつ選べる。
    1. 地理的位置に基づくウェブ閲覧や検索により選択できる。
    2. Search can be based on ISO 言語コード、現在のUIやスクリプトの言語(自称)
    3. 言語間検索 - 使用スクリプトに関わらず言語名を検索
    4. 言語名のオートコンプリート(自動補完)
    5. 検索文字列のつづりの誤りを自動で補正
    6. GeoIP から言語をお奨め
    7. ユーザーのブラウザやOSによる言語の選択
  2. 複数の入力方式
    使い方の完全マニュアルはHelp:Extension:UniversalLanguageSelector/Input_methods/jaを参照
    1. 使える複数の入力方式から選び、編集ができる欄すべてで使用
    2. 幅広い言語群に対応する多様な入力方式
    3. 言語ごとに入力方式を設定
  3. ウェブフォント
    1. 言語ごとに多彩なウェブフォントから選び、ページで埋め込みフォントとして用いる
    2. 言語ごとに割り当てるフォントの設定
スペインのユーザーに対して、GeoIP に基づくき言語を提案する ULS(ユニバーサル言語選択)
英語版ウィキペディアの登録利用者は言語設定を使い、UI を母語に変更できる。
自分のコンピューターにフォントを積んでいなくても、ベンガリ語話者はベンガリ語版ウィキペディアの内容を閲覧できる。オープンソースのフォントを利用できる非ラテン文字には、web フォントが自動的に提供される。ユーザーは1言語ごとにシステムフォントを使うかどうか決めることができる。
ヒンディー語のキーボードがなくても入力メソッドを設定すると、自分の言語をタイプ入力できる。
検索をするには英語とヒンディー語を交互に切り換えることができる。

フォントの追加

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

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

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

Webフォントの準備

WOFF とも呼ばれる Web フォント作成にはSfntly ライブラリが必要です(コマンドラインのみ。)

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

.woff の作成:

java -jar /path/to/sfnttool.jar -w xyz.ttf xyz.woff

.woff2 の作成:

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

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

[AbyssinicaSIL]
languages=am*, ti*
version=1.200
license=OFL 1.1
licensefile=OFL.txt
url=http://scripts.sil.org/AbyssinicaSIL

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

ファイルを作成したら、次の設定をします。

  1. data/fontrepo/fonts の下にディレクトリを作成。
  2. そこに ttf、woff、eot および font.ini ファイルを配置し、ソースリポジトリに追加 (git add)。
  3. data/fontrepo/scripts に進み、php compile.php を実行。
  4. リポジトリに変更の更新作業をかけ (git commit -a) 、Git のワークフローに従って投入する。

新しいキーの関連付けをサポート (入力メソッド)

instructions on the jquery.ime github wiki(入力メソッドの定義)に従いますが、Wikimedia-extensions-UniversalLanguageSelector Phabricator プロダクトにリクエストします。

ダウンロード

拡張機能は、Git から直接取得できる場合があります [?]:

  • コードを参照
  • 一部の拡張機能には安定版リリースのタグがあります。
    • タグを参照
    • タグを選択します
    • 「スナップショット」をクリックします
  • 各ブランチは過去の MediaWiki リリースと関連付けられています。 最新のアルファ バージョンを含む「master」ブランチもあります (MediaWiki のアルファ バージョンが必要な場合用)。

スナップショットを展開して、MediaWiki インストレーション内の extensions/UniversalLanguageSelector/ ディレクトリに配置します。

git に馴染みがあり、かつサーバーにシェルでアクセスできる場合は、拡張機能を以下のようにして取得することもできます:

cd extensions/
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/UniversalLanguageSelector.git

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の UniversalLanguageSelector という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  • YesY 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

LanguageNameIndexの更新

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

php UniversalLanguageSelector/data/LanguageNameIndexer.php

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

設定

以下の変数が初期化の段階で自動生成され、JavaScript により mw.config.get( NAME ) を用いて使用できます。

  • wgULSLanguages - 言語コードをキーにした、英語の言語名を値に取る連想配列。
  • wgULSAcceptLanguageList - ユーザーの Accept-Language 値に由来する言語コードの配列。ユーザーがブラウザ設定で選択した言語のこと。

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

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

以下の変数の設定について。

  • $wgULSGeoService- ULS は衛星の位置測位サービスを用いると、ユーザーの所在する国や地域の位置に基づき言語を提案できる。これを「false」に設定すると、組み込み位置測位サービスを使用しない。キー「country_code」または「country」を持つオブジェクトにwindow.Geo を設定すると、独自の位置測位サービスが提供される。「true」に設定すると Wikimedia の geoIP サービスに問い合わせ、指定されたコールバックパラメーターを使う jsonp を返す。既定値は http://freegeoip.net/json/ で、フォーマットは同じ。
  • $wgULSEnable - 下記の設定変数によって動作が上書きされない限り、言語選択、コンパクトな言語リンク、すべての人のための入力メソッドと Web フォントが有効。「false」の場合も他の拡張機能を使うために、クラスとリソースローダーモジュールを登録。cookie またはsetlang クエリパラメーターを使った言語の変更は不可能。
  • $wgULSAnonCanChangeLanguage - 匿名ユーザーは cookie と setlang クエリ・パラメーターを使い、言語を変更できる。Cookie を考慮せずに匿名ページビューをキャッシュする場合は使用しないこと。$wgULSEnable あるいは $wgULSEnableAnon が「false」の場合は無効。
  • $wgULSIMEEnabled - 既定ではすべてのユーザーの入力メソッド機能が無効。その場合もユーザーは手動で有効にできる。
  • $wgULSPosition - 言語選択トリガーの位置と形式。選択肢は、personal でユーザー名もしくは個人設定のツールバーの「ログイン」ボタンの近くにリンクを配置(既定)。もしくは、interlanguage でサイドバーの言語間リンク一覧のヘッダー近くにアイコンを配置。
  • $wgULSNoImeSelectors - jQuery による要素の選択機能。IME を無効にした場合のみ有効。例: array( '#wpCaptchaWord' );

ULSトリガーの位置

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

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

既定のフォントをオーバーライドする

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

$.webfonts.repository.languages.languageCode = ["system", "FontA", "FontB"];

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

設定をキャッシュする

Webフォントファイルがクライアントのマシンに確実にキャッシュされるためには、フォントのファイルタイプをWebサーバーの設定に追加する必要があります。Apache2 での手順は次のとおり。

  • 関連ディレクトリの FilesMatch の FileTimes 正規表現に、フォントファイルの拡張子を追加する例。

<FilesMatch "\.(gif|jpe?g|png|css|js|woff|svg|eot|ttf)$">

  • 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度だけダウンロードされます。次回以降は、フォントはローカルのキャッシュから取得されます。

フォントを読み込む別の方法

フォントファミリーを指定

ウィキテキスト <span style="font-family:'YourFontName';">YourText</span> で web フォント拡張機能は指定されたフォントを備えているかどうかチェックし、クライアントにダウンロードします。たとえ特定のフォントがユーザーのコンピューターになくても、閲覧者は本文を読むのに不自由しません。

言語を指定

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

例:

<span lang=sux>𒄖𒉈𒅁𒌨𒅎</span>

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

𒄖𒉈𒅁𒌨𒅎

関連項目