Jump to content

Extension:UniversalLanguageSelector

From mediawiki.org
This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 90% complete.
Outdated translations are marked like this.
MediaWiki 拡張機能マニュアル
UniversalLanguageSelector
リリースの状態: 安定
実装 ユーザー インターフェイス, 外装 , ベータ版機能
説明 利用者が言語やその設定の変更を簡単に行うのを支援するツール。
作者 ウィキメディア言語チーム
最新バージョン 2024-07-16
互換性の方針 master は後方互換性を維持しています。
MediaWiki >= 1.41.0
Composer mediawiki/universal-language-selector
ライセンス
ダウンロード 言語拡張機能バンドル (MLEB) に含まれます
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoImeSelectors
  • $wgULSPosition
Internet Explorer 8 以前とは互換性がありません.
四半期ごとのダウンロード数 241 (Ranked 26th)
使用中の公開ウィキ 1,237 (Ranked 214th)
translatewiki.net で翻訳を利用できる場合は、UniversalLanguageSelector 拡張機能の翻訳にご協力ください
問題点 未解決のタスク · バグを報告

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

使用法

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

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

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

フォントの追加

言語に適したフォントをコードに追加するだけで、さらに多くの言語をサポートできます。しかし、追加するのはGNU GPL、SIL OFLなどの「オープンソース ライセンス」で提供されるフォントのみであることにご注意ください。このようなオープンソース フォントの一例は、Google Fonts [1] です (この拡張機能の作者による完全な検証/利用はまだ行われていません)。詳細は、Open Font Library も参照してください。

まずはじめに、そのような自由なフォントを見つけるか作成する必要があります (これが最も重要な部分で、自分で行う必要があります)。その後、それをwoff2 フォーマットに変換する必要があります。最後に、そのフォントを拡張機能に追加するために、Phabricator でリクエストを提出できます。

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

Webフォントの準備

.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
request-url=https://phabricator.wikimedia.org/[Task Number]
woff2=AbyssinicaSIL.woff2
bold=AbyssinicaSIL Bold

[AbyssinicaSIL Bold]
woff2=AbyssinicaSIL-Bold.woff2
fontweight=bold

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

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

  1. data/fontrepo/fonts 内にフォント用ディレクトリを作成します。
  2. そのディレクトリに woff2、font.ini ファイルを配置し、ソース リポジトリに追加します (git add)。
  3. scripts/ に移動し、php compile-font-repo.php を実行します。
  4. 変更をリポジトリにコミットし (git commit -a) 、Git のワークフローに従って投入します。

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

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

インストール

  • ダウンロードして、ファイルをextensions/フォルダー内のUniversalLanguageSelectorという名前のディレクトリ内に配置します。
    開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
  • 以下のコードを LocalSettings.php ファイルの末尾に追加します:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。


Vagrantでのインストール:

  • Vagrant を使用している場合は、vagrant roles enable uls --provisionでインストールしてください。

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 の種類を追加するとよいかもしれません。こちらの説明を参照してみてください。

AddType font/woff2 .woff2

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

  • $wgULSGeoService - ULS は衛星の位置測位サービスを用いると、利用者の所在する国や地域の位置に基づき言語を提案できる。 これを「false」に設定すると、組み込み位置測位サービスを使用しない。 ご自分自身のジオロケーションは設定窓で指定してください。 オブジェクトの地理的位置に付属のキーは 'country_code' もしくは 'country' です。 true に設定した場合、ウィキメディアの geoip サービスにクエリをかけます。 同サービスからは入力したコールバック・パラメータを採用している jsonp を返すはずです。 既定では http://freegeoip.net/json/ であり、同じフォーマットを期待。(注意:このウェブサイトのAPIは閉鎖済み)
  • $wgULSEnable - 下記の設定変数によって動作が上書きされない限り、言語選択、コンパクトな言語リンク、すべての人のための入力メソッドと Web フォントが有効。「false」の場合も他の拡張機能を使うために、クラスとリソース ローダー モジュールを登録。cookie またはsetlang クエリ パラメーターを使った言語の変更は不可能。
  • $wgULSAnonCanChangeLanguage - 匿名利用者が cookie と setlang クエリパラメータを使って言語を変更できるようします クッキーを考慮せずに匿名のページビューをキャッシュしている場合は使用しないでください。 $wgULSEnable または $wgULSEnableAnonfalse に設定されている場合は、何の効果もありません。
  • $wgULSIMEEnabled - 既定ではすべての利用者の入力メソッド機能が無効。その場合も利用者は手動で有効にできる。
  • $wgULSPosition - 言語選択トリガーの位置と形状。可能な値は以下の通りです: personal: ユーザ名の近くのリンク、または個人ツールバーのログインリンク(デフォルト)。 interlanguage: interlanguage:サイドバーの言語間リンクリストのヘッダー付近にアイコンを表示。
  • $wgULSNoImeSelectors - IMEを有効にしてはならない要素のjQueryセレクタの配列。例: [ '#wpCaptchaWord' ];
  • $wgULSLanguageDetection - Accept-Language ヘッダを手掛かりに利用者の使用言語を自動で検出するかどうか。

ULSトリガーの位置

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

interlanguage: as an icon near the header of the list of interlanguage links in the sidebar.

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

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

ULS が Web フォントとして提供するフォント リポジトリは広汎で、ときとして1言語に対応するフォントが何種類もあったり、言語や文字ごとに既定のフォントがあったりします。フォントの順位や既定のフォントはオーバーライド可能で、以下のように汎用スクリプトの利用(MediaWiki:Common.js) または個人のスクリプト (Special:MyPage/common.js) を用います。 Sometimes, there are multiple fonts for a language, and there is a default font for each language/script. The order of fonts or default font can be overridden as follows using global scripts (MediaWiki:Common.js) or personal scripts (Special:MyPage/common.js):

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

Here, languageCode should be a valid langauge code(eg: en, hi, nl). FontA and FontB are fonts available in font repository. In the above example for languageCode, we set a font available in local computer as default font. ie No default webfont.

設定をキャッシュする

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

  • 関連ディレクトリの FilesMatch の FileTimes 正規表現に、フォントファイルの拡張子を追加する例。
<FilesMatch "\.(gif|jpe?g|png|css|js|woff2|svg)$">
  • ExpiresByType の値は画像の MIME タイプ同様、関連の MIME タイプに追加する。
    • TTF には標準的な MIME タイプはない。ウィキメディアでは application/x-font-ttf を使用。
  • MIME タイプの追加方法。
AddType font/woff2 .woff2

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

ページ翻訳

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

Webフォントの使用

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

利用者のローカル システムでフォントが利用可能な場合、フォントは MediaWiki サーバーからダウンロードされません。利用者のコンピューターから取得されます。フォントが利用者のシステムにない場合、フォントはサーバーから初回に一度だけダウンロードされます。以降はフォントがローカルのキャッシュから取得されます。

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

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

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

言語を指定

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

例:

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

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

𒄖𒉈𒅁𒌨𒅎

関連項目