WordPress 4.0で追加された言語選択機能の簡単な説明がMake WordPress CoreのWordPress › Language chooser in 4.0にあったので抄訳でご紹介。
英語版のWordPressのインストール時、最初に言語選択の画面が表示されるようになりました(日本語版では表示されません)。
以降はWordPress › Language chooser in 4.0の抄訳です。
最初の画面で言語を選択すると、WordPressはオンザフライで言語パックをダウンロードし、インストールします。そして残りのインストールプロセスは選択した言語で行われます。
サマリー
これを可能にするため、ヘルパー関数をいくつか導入し、既存の関数を変更しました。
translations_api()
はplugins_api()
/themes_api()
をベースをしたもので、WordPress Translation APIから翻訳を取得します。最初の引き数$type
はコア、テーマ、プラグインのいずれかでなくてはなりません。$args
は追加の引き数として使われます。例えば、$args['version']
はすべてのタイプで指定する必要があります。theme
とplugin
のタイプではslug
もセットします。
wp_get_available_translations()
関数はtranslations_api()
のラッパーで、インストールしているバージョンのコアの翻訳を返します。 API 結果 は3時間キャッシュされます。言語が選択され、「続ける」ボタンがクリックされるとWordPressはその言語パックをバックグラウンドでダウンロードします。
wp_download_language_pack()
が Automatic_Upgrader_Skin と Language_Pack_Upgraderの助けを借りてこの作業を実施します。翻訳はオンザフライでインストールされるので既存の
load_default_textdomain()
関数を拡張する必要がありました。デフォルトの翻訳をスイッチできるようにするためのオプションの$locale
パラメータをサポートするようになりました ([29630])。WPLANGオプションがシングルサイトでもセットされるようになり、アップグレード時にWPLANG定数の値をもとに追加されます(この定数は非推奨(廃止予定)になりました – 参照[29630])。
get_locale()
はグローバルの$wp_local_package
変数を含むようになり(ローカライズ版パッケージで使われます)、空のWPLANGオプションはen_US同等なので、既存で空のWPLANGオプションはWPLANG定数をオーバーライドできます。同一言語の別種版(例えば、en, en_GB, en_CA と en_AU)をサポートしていないなどの多くの問題のあった
mu_dropdown_languages()
はwp_dropdown_languages()
に置き換えられました。新しいドロップダウンは translation APIによって追加されます。非同期の翻訳アップデート
WordPress 3.7ではLanguage_Pack_Upgrader::async_upgrade()を導入しました。非同期翻訳アップデートはテーマやプラグインのインストール後もしくはアップデート後に実行されます。非同期アップデートの目的ななんでしょう? テーマやプラグインをインストールもしくはアップデートした時、そのテーマやプラグインの翻訳もアップデートされると期待するでしょう。しかし、古くなった翻訳はすべてここでアップデートされます(プラグインやテーマがすでに最新であっても)。それはファイルシステムの接続があるということ(それはユーザーがFTP情報を入力したからかもしれません)を最大限活用するためでした。
WordPress 4.0ではこの非同期アップデートはバージョンコントロールされたインストールでは実行されなくなります。とはいえ、
async_update_translation
フィルター(auto_update_translation
フィルターとまったく同じ)を使ってこれを無効にすることもできます( [29694]を参照)。
123// 非同期で自動のバックグラウンドでの翻訳のアップデートを無効にする
add_filter(
'async_update_translation'
,
'__return_false'
);
add_filter(
'auto_update_translation'
,
'__return_false'
);
その他