検索
ホームページCMS チュートリアル&#&プレスWordPress I18N:プラグインの翻訳を準備します

WordPress I18N:プラグインの翻訳を準備します

以前の投稿では、WordPress Internationalizationの基本について説明しました(I18Nと略されました)。 WordPressのローカライズされたバージョンをインストールする方法と、既存のWordPressサイトをローカライズされたバージョンに簡単に変換する方法。 この記事では、WordPressプラグインを国際化するプロセスを説明します。このプロセスは難しくありません。知識が取得されると、WordPressプラグインを他の言語に簡単に翻訳できます。

キーテイクアウト

Internationalization(I18N)は、他の言語に簡単に翻訳するプラグインを開発するプロセスであり、ローカリゼーション(L10N)は、国際化されたプラグインを新しい言語に変換するその後のプロセスです。

WordPressプラグインの翻訳を準備することは、グローバルな視聴者にリーチし、ユーザーエクスペリエンスを強化し、異なる言語を話すユーザーがアクセスできるようにすることでユーザーベースを増やすために重要です。
    翻訳の準備が整うプロセスには、翻訳ヘッダー(テキストドメインとドメインパス)、テキストドメインの読み込み、文字列、プレースホルダー、HTML、複数形、コンテキスト、翻訳文字列などのさまざまな要素の国際化が含まれます。 >
  • WordPress i18nは、テキストを翻訳するためのツールを提供するGNU GetTextローカリゼーションフレームワークを使用します。これには、すべてのテキスト文字列を__()または_e()関数に包み、プラグインからのすべての翻訳可能な文字列を含む.pot(ポータブルオブジェクトテンプレート)ファイルを作成します。
  • 国際化とローカリゼーションの違い
  • 長年にわたり、開発者はこれらの用語の意味を誤解する傾向があります - 国際化とローカリゼーション。
  • 国際化はプラグインを開発するプロセスであるため、他の言語に簡単に翻訳できます。
  • ローカライズは、国際化されたプラグインを新しい言語に変換するその後のプロセスについて説明します。

国際化は、しばしばi18nとして省略されていること(「i」と「n」の間に18文字があるため)とl10nとして省略されていることに注意してください(「l」と「l」との間に10文字があるためです。 'n'。)

なぜInternationalize?

    答えは簡単です。 WordPressは、多くの異なる言語で世界中で使用されています。プラグインが国際化されると、彼らは自分の言語でプラグインを使用することで明らかに利益を得る世界の他の地域からより多くの視聴者を引き付けます。
  • 開発者として、他の言語を話さないため、ローカライズされたバージョンをプラグインのバージョンを提供する時間がない場合があります。ただし、プラグインを国際化すると、ソースコードを必ずしも変更せずにローカリゼーションを作成するために、他の人がドアを開けたままにしておきます。

    プラグインInternationalization

    プラグインの国際化とローカリゼーションの概念に精通しているので、プラグインを翻訳の準備をするプロセスに飛び込みましょう。

    翻訳ヘッダーを設定

    翻訳可能なプラグインを作成するための最初のステップは、プラグインヘッダーに翻訳ヘッダーを含めることです。

    翻訳ヘッダーはテキストドメインとドメインパスです。

    テキストドメインは、プラグインに属するすべてのテキストを示すために使用されます。 これは、WordPressがすべてのロードされた翻訳を区別できるようにするユニークな識別子です。これにより、既存のWordPressツールを使用すると、移植性が向上し、より良く再生されます。

    テキストドメインは、プラグインのナメクジと一致する必要があります。たとえば、プラグインがsample-plugin.phpという単一のファイルである場合、またはサンプルプラギンと呼ばれるフォルダーに含まれている場合、

    テキストドメイン

    はsample-pluginである必要があります。

    テキストドメインに関するメモ

    テキストドメイン名は、アンダースコアではなくダッシュを使用する必要があります。 テキストドメインはプラグインスラッグと一致する必要があると言ったことを覚えていますか?結局のところ、それは真実ではないかもしれません。プラグインスラッグの代わりに、プラグインの1つで簡単な実験を行いました。ユニークなテキストを使用して、問題なく動作しました。

    モラル:テキストドメインがユニークであることを確認して、他のプラグインのドメインと衝突しないでください。

    ドメインパスは、WordPressが.mo翻訳ファイルを検索するフォルダーです。

    デフォルトでは、WordPressは、使用する翻訳ファイルのプラグインディレクトリを検索します。プラグインのルートフォルダーに翻訳ファイルを置くと、プラグイン構造が乱れている可能性があります。 たとえば、翻訳ファイルをフォルダーに保管したい場合。 /言語、ドメインパスヘッダーを使用してWordPressに通知する必要があります。 以下は、翻訳を含むWordPressプラグインの典型的なヘッダーです。

    テキストドメインを読み込みます

    ここで、load_plugin_textdomain()関数を使用して、ユーザーの言語に存在する場合は翻訳ファイルをロードするようにwordpressに指示します。 以下は関数概要です。

    最初のパラメーター$ドメインはテキストドメインである必要があります。 $ abs_rel_pathは非推奨であり、falseに設定する必要があります。最後に、$ plugin_rel_pathは、翻訳ファイルへの相対パスです

    翻訳MOファイルがプラグインの独自のディレクトリにある場合、次のように使用してください。

    翻訳MOファイルがプラグインの言語サブディレクトリにある場合。次のように使用してください:

    load_plugin_textdomain関数を呼び出すだけでなく、このようなplugins_loadedアクションと同じくらい早くプラグインで呼び出す必要があります。

    <span><span><?php </span></span><span><span>/*
    </span></span><span><span> Plugin Name: Enable Shortcode and PHP in Text widget
    </span></span><span><span> Plugin URI: http://w3guy.com/shortcode-php-support-wordpress-text-widget/
    </span></span><span><span> Description: Enable shortcode support and execute PHP in WordPress's Text Widget
    </span></span><span><span> Author: Agbonghama Collins
    </span></span><span><span> Version: 1.2
    </span></span><span><span> Author URI: http://w3guy.com
    </span></span><span><span> Text Domain: espw-plugin
    </span></span><span><span> Domain Path: /languages/
    </span></span><span><span> */</span></span></span>
    プラグインi18n

    に深く潜ります

    テキストドメインとドメインパスヘッダーが設定されたので、プラグインを国際化する方法を学ぶ時が来ました。

    チュートリアルのこのセグメントは、次のように分割されます。

    1. 文字列翻訳
    2. プレースホルダーを使用して
    3. html翻訳
    4. 複数形に対処します
    5. コンテキストによる
    6. の曖昧性
    7. 翻訳文字列の脱出
    注意:文字列espw-pluginは、このチュートリアルでテキストドメインとして使用されます。

    1。文字列翻訳

    プラグインで文字列を翻訳可能にするには、次のように元の文字列を__()関数呼び出しに巻き付けます。

    2。プレースホルダーを使用
    <span><span><?php </span></span><span><span>/*
    </span></span><span><span> Plugin Name: Enable Shortcode and PHP in Text widget
    </span></span><span><span> Plugin URI: http://w3guy.com/shortcode-php-support-wordpress-text-widget/
    </span></span><span><span> Description: Enable shortcode support and execute PHP in WordPress's Text Widget
    </span></span><span><span> Author: Agbonghama Collins
    </span></span><span><span> Version: 1.2
    </span></span><span><span> Author URI: http://w3guy.com
    </span></span><span><span> Text Domain: espw-plugin
    </span></span><span><span> Domain Path: /languages/
    </span></span><span><span> */</span></span></span>

    PHPおよびWordPress開発者として、プレースホルダーが何であるかを知っていると思います。詳細については、Sprintfとprintf()Phpドキュメントをすばやくスキミングできます。

    以下の例のような文字列で変数を使用している場合は、プレースホルダーを使用する必要があります。
    <span><span><?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?></span></span>

    正しい方法は、printf()関数を次のように使用することです。

    WordPressプラグインリポジトリでホストされているいくつかのプラグインのコードを使用すると、このようなことがわかります。

    文字列は翻訳可能になりましたが、PHP変数$都市も翻訳可能になります。
    <span>load_plugin_textdomain( 'espw-plugin', false, dirname( plugin_basename( __FILE__ ) ) );</span>
    これは悪い練習です。翻訳者が変数を誤って変更したり、悪意のあるコードをプラグインコードベースに挿入したりする可能性があるため、最終的にプラグインが誤動作します。

    sprintf関数はprintfに類似しています。これは、プレースホルダーを使用して文字列をフォーマットし、printfはフォーマットされた文字列を出力し、sprintfは文字列を返します。

    例:次のコードは、フォーマットされた文字列を変数$テキストに割り当てます。
    <span>load_plugin_textdomain( 'espw-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );</span>

    3。 html翻訳
    <span>function load_plugin_textdomain() {
    </span>  <span>load_plugin_textdomain( 'espw-plugin', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
    </span><span>}
    </span>
    <span>add_action( 'plugins_loaded', 'load_plugin_textdomain' );</span>
    <span>$text =  __( 'Hello, SitePoint Readers!', 'espw-plugin' );</span>
    翻訳可能な文字列にHTMLを含めることは、コンテキストに依存します

    例はリンクです(それを囲むテキストから分離):

    別の例は、段落のリンクです(周囲のテキストから分離されていません):

    4。複数項

    を扱う

    _n()関数を使用して、アイテムの変更数を変更できるときに変更される文字列。

    この関数は、4つの引数、すなわち
    <span>_e( 'Hello, SitePoint Readers!', 'espw-plugin' );</span>
    を受け入れます

    単数形 - 文字列の特異形式

    複数 - 文字列の複数形

    count - 特異形式を返すべきかどうかを決定するオブジェクトの数
    <span>echo 'Your city is $city.'</span>
    <span>printf(
    </span>    <span>__( 'Your city is %s.', 'espw-plugin' ),
    </span>    <span>$city
    </span><span>);</span>
    テキストドメイン - プラグインテキストドメイン

    _n()関数がどのように機能するかを理解するためのいくつかの例を見てみましょう。

    英語では、「1つのコメント」と「2つのコメント」があります。他の言語では、複数の複数形式を持つことができます。

      以下のコードは、_n()関数を使用してそのようなシナリオを処理する方法を示しています。
    • コード説明上のコードは、これらの3つの関数で構成されています - printf、_n、number_format_i18n。
    • 簡単な同化のために、関数コードは各関数コンポーネントが説明されて分析されます。
      <span><span><?php </span></span><span><span>/*
      </span></span><span><span> Plugin Name: Enable Shortcode and PHP in Text widget
      </span></span><span><span> Plugin URI: http://w3guy.com/shortcode-php-support-wordpress-text-widget/
      </span></span><span><span> Description: Enable shortcode support and execute PHP in WordPress's Text Widget
      </span></span><span><span> Author: Agbonghama Collins
      </span></span><span><span> Version: 1.2
      </span></span><span><span> Author URI: http://w3guy.com
      </span></span><span><span> Text Domain: espw-plugin
      </span></span><span><span> Domain Path: /languages/
      </span></span><span><span> */</span></span></span>

      _n関数に渡された最初の引数は、コメントの数が特異なときに表示されるテキストです。

      2番目は、コメントの数が1より大きい場合に表示されるテキストです。

      プレースホルダー%sには、number_format_i18n(get_comments_number())の値が含まれます。

      3番目の引数get_comments_number()は、コメント数を返す関数であると想定されています。

      それが1を返す場合、最初の引数1コメントがprintfによって出力されます。

      注意:プレースホルダー%sは、number_format_i18n(get_comments_number()によって返された整数に置き換えられます。

      最後に、4番目の引数は翻訳

      テキストドメイン

      です

      function number_format_i18n()は、ロケールに基づいてコメントカウントをフォーマットに変換します。詳細については、ドキュメントを参照してください。

      number_format_i18n()に類似しているのは、タイムスタンプに基づいてローカライズされた形式で日付を取得する日付_i18nです。 _n()関数については、以下は関数の仕組みについての別のデモンストレーションです。

      変数$ countが1を返す場合、1つのスパムメッセージを削除したテキストが表示されます。ただし、1を超える場合、削除された%Dスパムメッセージは、プレースホルダー%dを$ countの整数値に置き換えて表示されます。

      5。コンテキストによる曖昧性

      いくつかのコンテキストで1つの用語が使用されることがありますが、それは英語では同じ単語であり、他の言語では異なる方法で翻訳する必要があります。 たとえば、「コメントを投稿するにはここをクリックしてください」と「この投稿を編集する」のように、単語の投稿は動詞として使用できます。 このような場合、_xまたは_ex関数を使用する必要があります。

      __()と_e()に似ていますが、追加の引数があります - $ Context。

      <span><span><?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?></span></span>
      このメソッドを使用する両方の場合、元のバージョンの文字列コメントが取得されますが、翻訳者には翻訳の2つのコメント文字列が表示されます。

      関数によって翻訳可能になった文字列_x()がPoEDITなどの翻訳ツールによって解析されると、文脈引数は文字列/テキストが使用されたコンテキストで翻訳者にヒントを提供します。 ドイツ語では、名詞としての投稿はbeitragですが、動詞が動詞です。 以下は、文字列をドイツ語に翻訳するPoEDITのスクリーンショットです。

      _x()翻訳された文字列を取得している間、_ex()はそれを表示します。

      6。翻訳文字列の脱出

      WordPressには、データを検証および消毒するための多くの機能があります。リストの中には、翻訳テキストを逃がすための関数があります - esc_html()、esc_html_e()、esc_html_x()、esc_attr()、esc_attr_e()、esc_attr_x()。 WordPress Codexでこれらの各機能に関する詳細情報を入手できます。

      これらすべてを説明する必要はありませんが、彼らがしていることは基本的に翻訳可能なテキストを逃れることです。

      wlap up

      WordPressの目標の1つは、世界中のユーザーがコンテンツを公開できるようにすることです。プラグイン開発者として、プラグインを国際化するときにユーザーの公開プロセスをさらに緩和するのに役立ちます。

      このチュートリアルの最初の部分は、基本的にプラグインI18nについて知っておくべきすべてのものについてでした。

      結論の部分は、プラグインの翻訳を準備する方法と、プラグインを新しい言語にローカライズする方法を学ぶ方法のウォークスルーです。

      このチュートリアルから何か新しいことを学んだことを願っています。

      ハッピーコーディング!

      WordPress I18Nおよびプラグインの翻訳に関するよくある質問(FAQ) WordPressプラグインの翻訳対応を作成することの重要性は何ですか?

      WordPressプラグイン翻訳を準備することは、グローバルな視聴者にリーチするために重要です。すべてのWordPressユーザーが英語を話すわけではありません。プラグインを国際化することにより、さまざまな言語を話すユーザーがアクセスできるようにし、それによりユーザーベースが増加します。また、ユーザーが母国語でプラグインと対話できるため、ユーザーエクスペリエンスが向上し、よりユーザーフレンドリーになります。

      WordPress I18Nはどのように機能しますか?プラグインのテキスト文字列を他の言語に翻訳できるようにします。これは、これらのテキスト文字列を翻訳できる特別な関数で包むことによって達成されます。 WordPressは、この目的のためにGNU getTextローカリゼーションフレームワークを使用します。これにより、テキストを翻訳するための一連のツールが提供されます。プラグインの翻訳準備には、いくつかのステップが含まれます。まず、すべてのテキスト文字列を__()または_e()関数に巻き付けることにより、プラグインを国際化する必要があります。次に、プラグインからすべての翻訳可能な文字列を含む.pot(ポータブルオブジェクトテンプレート)ファイルを作成する必要があります。このファイルは、翻訳された文字列を含む.po(ポータブルオブジェクト)および.mo(マシンオブジェクト)ファイルを作成するためのテンプレートとして使用されます。 WordPress i18n?

      __()および_e()関数は、両方ともWordPress i18nで使用され、テキスト文字列を翻訳可能にします。それらの主な違いは、__()が翻訳された文字列を返し、_e()が翻訳された文字列を直接エコーまたは出力することです。したがって、変数に翻訳された文字列を保存するときは__()を使用し、翻訳された文字列をユーザーに表示する場合は_e()を使用します。 WordPressプラグインをさまざまな言語に翻訳するにはどうすればよいですか?

      WordPressプラグインを異なる言語に翻訳するには、各言語の.poおよび.moファイルを作成する必要があります。これらのファイルには翻訳された文字列が含まれており、ISO-639言語コード(たとえば、英語のEN_US、フランス語のFR_FR)に従って命名されています。 PoEDITやLoco Translateなどのツールを使用してこれらの翻訳ファイルを作成および管理できます。 PoEDITとLoco Translateは、翻訳ファイルを作成および管理するための人気のあるツールです。 Webベースの翻訳ツールであるGlotPressは、WordPressコミュニティによってWordPressコア、プラグイン、テーマを翻訳するためにも使用しています。 WordPressの設定で言語を変更し、プラグインのテキスト文字列が正しく翻訳されているかどうかを確認することにより、WordPressプラグインを翻訳の準備をテストできます。また、WordPress I18Nチェッカープラグインなどのツールを使用することもできます。これは、一般的なi18nエラーをプラグインでチェックします。 WordPress PolyGlotsチームを通じて。 WordPressをさまざまな言語にローカリングする責任があります。チームに参加して、プラグインとテーマを母国語に翻訳することができます。 .po、および.moファイルは、WordPress i18nで重要な役割を果たします。 .potファイルは、プラグインからすべての翻訳可能な文字列を含むテンプレートです。 .poファイルは、翻訳された文字列を含むヒューマン読み取り可能なファイルであり、.moファイルは、翻訳された文字列を表示するためにWordPressが使用するマシン読み取り可能なファイルです。 Theme Translation-Ready?WordPress Theme Translation-Readyを作成するには、プラグインと同様のプロセスが含まれます。 __()または_e()関数にすべてのテキスト文字列をラップすることにより、テーマを国際化する必要があります。次に、.potファイルを作成し、各言語の.poおよび.moファイルを作成するためのテンプレートとして使用する必要があります。

以上がWordPress I18N:プラグインの翻訳を準備しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
OOPテクニックを備えたWordPressプラグインを作成しますOOPテクニックを備えたWordPressプラグインを作成しますMar 06, 2025 am 10:30 AM

このチュートリアルでは、ドリブルAPIを活用して、オブジェクト指向プログラミング(OOP)の原則を使用してWordPressプラグインを構築します。 元の意味と構造を維持しながら、明確さと簡潔さのためにテキストを洗練しましょう。 オブジェクトオリ

WordPressでPHPデータと文字列をJavaScriptに渡す方法WordPressでPHPデータと文字列をJavaScriptに渡す方法Mar 07, 2025 am 09:28 AM

PHPデータをjavaScriptに渡すためのベストプラクティス:wp_localize_scriptとwp_add_inline_scriptの比較 PHPファイルに静的文字列内にデータを保存することが推奨される練習です。 JavaScriptコードでこのデータが必要な場合は、INCORPORAT

WordPressプラグインでPDFファイルを埋め込み、保護する方法WordPressプラグインでPDFファイルを埋め込み、保護する方法Mar 09, 2025 am 11:08 AM

このガイドは、WordPress PDFプラグインを使用して、WordPressの投稿とページにPDFファイルを埋め込み、保護する方法を示しています。 PDFは、カタログからプレゼンテーションまで、さまざまなコンテンツに対してユーザーフレンドリーで普遍的にアクセス可能な形式を提供します。 この方法は

WordPressは初心者にとって簡単ですか?WordPressは初心者にとって簡単ですか?Apr 03, 2025 am 12:02 AM

WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

なぜWordPressを使用するのはなぜですか?なぜWordPressを使用するのはなぜですか?Apr 02, 2025 pm 02:57 PM

人々は、その力と柔軟性のためにWordPressを使用することを選択します。 1)WordPressは、さまざまなWebサイトのニーズに適した、使いやすさとスケーラビリティを備えたオープンソースのCMSです。 2)豊富なテーマとプラグイン、巨大なエコシステム、強力なコミュニティサポートがあります。 3)WordPressの作業原則は、テーマ、プラグイン、コア関数に基づいており、PHPとMySQLを使用してデータを処理し、パフォーマンスの最適化をサポートします。

WordPressはまだ無料ですか?WordPressはまだ無料ですか?Apr 04, 2025 am 12:06 AM

WordPressのコアバージョンは無料ですが、使用中に他の料金が発生する場合があります。 1。ドメイン名とホスティングサービスには支払いが必要です。 2。高度なテーマとプラグインが充電される場合があります。 3.プロフェッショナルサービスと高度な機能が請求される場合があります。

WordPressの費用はいくらですか?WordPressの費用はいくらですか?Apr 05, 2025 am 12:13 AM

WordPress自体は無料ですが、使用するには余分な費用がかかります。1。WordPress.comは、無料から支払いまでの範囲のパッケージを提供し、価格は月あたり数ドルから数十ドルまでの範囲です。 2。WordPress.orgでは、ドメイン名(年間10〜20米ドル)とホスティングサービス(月額5〜50米ドル)を購入する必要があります。 3.ほとんどのプラグインとテーマは無料で、有料価格は数十から数百ドルです。適切なホスティングサービスを選択し、プラグインとテーマを合理的に使用し、定期的に維持および最適化することにより、WordPressのコストを効果的に制御および最適化できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター