ローカリゼーションとは何ですか?

ローカリゼーションは、ソフトウェアを翻訳し、その文字列を特定の地域に適応させるプロセスを説明します。ローカリゼーションはl10n(lとnの間に10文字あるため)と略されます。

ソフトウェアのローカリゼーションプロセスには2つのステップがあります。最初のステップは、開発者がプログラムとそのインターフェースを、世界中のユーザーのローカルな好みや言語に合わせて最終的に翻訳するためのメカニズムと方法を提供することです。このプロセスは国際化(i18n)と呼ばれます。WordPressの開発者はすでにこれを行っているため、理論的にはWordPressは任意の言語で使用できます。

2つ目のステップは実際のローカリゼーション(l10n)であり、ページ上のテキストやその他の設定が別の言語と文化に翻訳され、ソフトウェアの開発者によって定められたフレームワークを使用して適応されるプロセスです。WordPressはすでに多くの言語にローカライズされています(詳細についてはポリグロットチームのリストを参照してください)。

WordPress、プラグイン、テーマの翻訳

WordPressやWordPress.orgのテーマおよびプラグインディレクトリにホストされている任意のテーマやプラグインの翻訳を手伝いたい場合は、Translate WordPress.にアクセスしてください。

そこで、すべての翻訳者チームを知り、translate.wordpress.orgについて学ぶことができます。ここでは、世界中の何千人もの翻訳者と協力してオンラインで翻訳作業を行うことができます。

テーマとプラグインの翻訳

WordPress.orgにホストされていないプラグインやテーマを翻訳したい場合、または何らかの理由でテーマやプラグインをオフラインで直接プラグイン/テーマファイル内で翻訳したい場合は、ローカリゼーションファイルを作成および編集することでこれを行うことができます。

ローカリゼーションファイル

プラグイン/テーマを翻訳するために必要なローカリゼーションファイルの種類は3つあります:

  • POTファイル:すべての元の文字列を含むテンプレートファイル
  • POファイル:1つの言語への翻訳を含む編集可能なファイル(言語ごとに1ファイル)
  • MOファイル:実際にアプリケーションで使用されるPOファイルのコンパイル版

POT(ポータブルオブジェクトテンプレート)ファイル

このファイルには、プラグイン/テーマ内の元の文字列(英語)が含まれています。以下はPOTファイルエントリの例です:

  1. #: plugin-name.php:123
  2. msgid "Page Title"
  3. msgstr ""

PO(ポータブルオブジェクト)ファイル

すべての翻訳者はPOTファイルを取り、そのmsgstrセクションを自分の言語に翻訳します。その結果は、POファイルで、POTと同じ形式ですが、翻訳といくつかの特定のヘッダーが含まれています。言語ごとに1つのPOファイルがあります。

MO(マシンオブジェクト)ファイル

すべての翻訳されたPOファイルからMOファイルが構築されます。これらは機械可読のバイナリファイルで、gettext関数が実際に使用します(.POTや.POファイルは気にしません)であり、POファイルの「コンパイル」版です。変換はmsgfmtツールを使用して行われます。一般的に、アプリケーションは1つ以上の大きな論理的翻訳可能モジュールを使用し、それに応じて異なるMOファイルを使用することがあります。テキストドメインは各モジュールのハンドルであり、異なるMOファイルを持っています。

POTファイルの生成

POTファイルは翻訳者に渡す必要があるもので、彼らが作業を行うことができるようにします。POTファイルとPOファイルは、問題なくファイルタイプを変更するために簡単に名前を変更できます。POTファイルをプラグイン/テーマと一緒に提供することは良いアイデアです。そうすれば、翻訳者は特にそれについてあなたに尋ねる必要がなくなります。プラグインのPOTファイルを生成する方法はいくつかあります:

WP-CLI

WP-CLIをインストールし、ドキュメントに従ってwp i18n make-potコマンドを使用します。

コマンドラインを開き、次のようにコマンドを実行します:

  1. wp i18n make-pot path/to/your-plugin-directory

Poedit

翻訳時にローカルでPoeditを使用することもできます。これはすべての主要なOS用のオープンソースツールです。無料のPoeditデフォルト版は、Gettext関数を使用してすべてのソースコードを手動でスキャンすることをサポートしています。プロ版には、WordPressプラグイン用のワンクリックスキャン機能もあります。poファイルを生成した後、ファイル名をPOTに変更できます。moが生成された場合は、そのファイルは不要なので削除できます。プロ版を持っていない場合は、Blank POTを簡単に取得し、それをPOTファイルのベースとして使用できます。空のPOTを言語フォルダに配置したら、Poeditで「更新」をクリックして、文字列でPOTファイルを更新できます。

internationalization-localization-03

Gruntタスク

POTを作成するために使用できるGruntタスクもいくつかあります。grunt-wp-i18ngrunt-pot

設定するには、まずnode.jsをインストールする必要があります。これは簡単なインストールです。その後、Gruntを使用したいディレクトリにgruntをインストールする必要があります。これはコマンドラインを介して行います。example Grunt.js and package.jsonをプラグインのルートに配置できます。コマンドラインで簡単なコマンドを使用してGruntタスクを実行できます。

POファイルの翻訳

POファイルを翻訳する方法はいくつかあります。

最も簡単な方法は、翻訳時にPoeditを使用することです。これはすべての主要なOS用のオープンソースツールです。無料のPoeditデフォルト版は、Gettext関数を使用してすべてのソースコードを手動でスキャンすることをサポートしています。プロ版には、WordPressプラグインやテーマ用のワンクリックスキャン機能もあります。

テキストエディタを使用して翻訳を入力することもできます。テキストエディタでは、文字列は次のように表示されます。

  1. #: plugin-name.php:123
  2. msgid "Page Title"
  3. msgstr ""

翻訳を引用符の間に入力できます。ドイツ語の翻訳の場合、最終結果は次のようになります。

  1. #: plugin-name.php:123
  2. msgid "Page Title"
  3. msgstr "Seitentitel"

3つ目のオプションは、オンライン翻訳サービスを使用することです。一般的なアイデアは、POTファイルをアップロードし、その後、ユーザーや翻訳者にプラグインを翻訳する権限を与えることです。これにより、変更を追跡し、常に最新の翻訳を保持し、翻訳が二重に行われるのを減らすことができます。

POファイルをオンラインで翻訳するために使用できるツールはいくつかあります:

翻訳されたファイルはmy-plugin-{locale}.moとして保存されます。ロケールは、ファイルwp-config.php内の定数WPLANGで定義した言語コードおよび/または国コードです。たとえば、ドイツ語のロケールはde_DEです。上記のコード例から、テキストドメインは「my-plugin」であるため、ドイツ語のMOおよびPOファイルはmy-plugin-de_DE.moおよびmy-plugin-de_DE.poと名付ける必要があります。言語および国コードに関する詳細については、あなたの言語でWordPressをインストールするを参照してください。

MOファイルの生成

コマンドライン

MOファイルを作成するためにmsgfmtプログラムが使用されます。msgfmtはGettextパッケージの一部です。さもなければ、コマンドラインを使用できます。典型的なmsgfmtコマンドは次のようになります:

Unixオペレーティングシステム

  1. msgfmt -o filename.mo filename.po

Windowsオペレーティングシステム

  1. msgfmt -o filename.mo filename.po

複数のPOファイルを一度に変換する

一度に多くのPOファイルを変換する必要がある場合は、バッチとして実行できます。たとえば、bashコマンドを使用して:

Unixオペレーティングシステム

  1. # POファイルを見つけ、msgfmtで処理し、結果をMOにリネームする
  2. for file in `find . -name "*.po"` ; do msgfmt -o ${file/.po/.mo} $file ;
  3. done

Windowsオペレーティングシステム

Windowsの場合、最初にCygwinをインストールする必要があります。

potomo.shという名前のファイルを作成し、次の内容を記述します:

  1. #! /bin/sh # Find PO files, process each with msgfmt and rename the result to MO
  2. for file in `/usr/bin/find . -name '*.po'` ; do /usr/bin/msgfmt -o ${file/.po/.mo} $file ;
  3. done

その後、このコマンドをコマンドラインで実行できます。

  1. cd C:/path/to/language/folder/my-plugin/languages
  2. C:/cygwin/bin/bash -c /cygdrive/c/path/to/script/directory/potomo.sh

Poedit

  1. ![internationalization-localization-04](https://cdn.hedaai.com/projects/wordpress/5663b7f48b9e53f0bc092b5983e43a21.jpeg_big1500.jpeg)
  2. #### Gruntタスク
  3. [grunt-po2mo](https://www.npmjs.org/package/grunt-po2mo)があり、すべてのファイルを変換します。
  4. <a name="tips-for-good-translations"></a>
  5. ## 良い翻訳のためのヒント
  6. <a name="dont-translate-literally-translate-organically"></a>
  7. ### 文字通り翻訳しないで、有機的に翻訳する
  8. バイリンガルまたはマルチリンガルであるあなたは、話す言語が異なる構造、リズム、トーン、イントネーションを持っていることを疑いなく知っています。翻訳されたメッセージは、英語のメッセージと同じ構造である必要はありません:提示されたアイデアを取り、ターゲット言語で自然な方法で同じことを表現するメッセージを考え出してください。これは、等しいメッセージを作成することと同等のメッセージを作成することの違いです:複製するのではなく、置き換えてください。メッセージ内のより構造的な項目であっても、ターゲットオーディエンスにとってより論理的であると感じる場合は、適応し変更するための創造的なライセンスがあります。
  9. <a name="try-to-keep-the-same-level-of-formality-or-informality"></a>
  10. ### 同じレベルのフォーマリティ(またはインフォーマリティ)を維持するように努める
  11. 各メッセージには異なるフォーマリティまたはインフォーマリティのレベルがあります。ターゲット言語の各メッセージに使用するフォーマリティまたはインフォーマリティの正確なレベルは、自分自身(またはチームと)で見つける必要がありますが、WordPressのメッセージ(特に情報メッセージ)は、英語では丁寧でインフォーマルなトーンを持つ傾向があります。ターゲット言語で同等のものを達成するように努めてください。文化的文脈の中で。
  12. <a name="dont-use-slang-or-audience-specific-terms"></a>
  13. ### スラングや特定のオーディエンス用語を使用しない
  14. ブログにはある程度の用語が期待されますが、「イン」な人々だけが理解できる口語を使用するのは控えてください。初心者のブロガーがあなたの言語でWordPressをインストールした場合、その用語が何を意味するかを知っているでしょうか?pingbacktrackbackfeedのような言葉はこのルールの例外です。これらは通常翻訳が難しい用語であり、多くの翻訳者は英語のままにすることを選択します。
  15. <a name="read-other-softwares-localizations-in-your-language"></a>
  16. ### 他のソフトウェアのローカリゼーションをあなたの言語で読む
  17. 行き詰まったり、方向性が必要な場合は、他の人気のあるソフトウェアツールの翻訳を読み、一般的に使用される用語、フォーマリティの扱い方などを把握してみてください。もちろん、WordPressには独自のトーンと感触があるため、他のローカリゼーションを読む際にはそれを考慮してください。ただし、一貫性を保つために、他のソフトウェアのUI用語などを掘り起こすことは自由です。
  18. <a name="using-localizations"></a>
  19. ## ローカリゼーションの使用
  20. ローカリゼーションファイルを言語フォルダに配置します。プラグイン`````languages`````フォルダ内、またはWordPress 3.7以降は通常`````wp-content`````の下にあるプラグイン`````languages`````フォルダ内に配置します。完全なパスは`````wp-content/languages/plugins/my-plugin-fr_FR.mo`````です。
  21. [WordPress 4.0](https://make.wordpress.org/core/2014/09/05/language-chooser-in-4-0/)以降、一般設定で言語を変更できます。オプションが表示されない場合や、切り替えたい言語が表示されない場合は、次の手順を実行してください:
  22. - wp-config.php内でWPLANGを選択した言語に定義します。たとえば、フランス語を使用したい場合は、次のようになります:
  23. ``````bash
  24. define ('WPLANG', 'fr_FR');
  25. `
  • wp-admin/options-general.phpまたは「設定」-
  • 「サイト言語」ドロップダウンで言語を選択します
  • wp-admin/update-core.phpに移動します
  • 利用可能な場合は「翻訳を更新」をクリックします
  • コア翻訳ファイルがダウンロードされます(利用可能な場合)

リソース