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プラグインの典型的なヘッダーです。最初のパラメーター$ドメインはテキストドメインである必要があります。 $ abs_rel_pathは非推奨であり、falseに設定する必要があります。最後に、$ plugin_rel_pathは、翻訳ファイルへの相対パスです
翻訳MOファイルがプラグインの独自のディレクトリにある場合、次のように使用してください。load_plugin_textdomain関数を呼び出すだけでなく、このようなplugins_loadedアクションと同じくらい早くプラグインで呼び出す必要があります。
プラグイン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>
ログイン後にコピーログイン後にコピーログイン後にコピーに深く潜ります
テキストドメインとドメインパスヘッダーが設定されたので、プラグインを国際化する方法を学ぶ時が来ました。チュートリアルのこのセグメントは、次のように分割されます。
- 文字列翻訳 プレースホルダーを使用して
- html翻訳
- 複数形に対処します
- コンテキストによる の曖昧性
- 翻訳文字列の脱出
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>
ログイン後にコピーログイン後にコピーログイン後にコピーPHPおよびWordPress開発者として、プレースホルダーが何であるかを知っていると思います。詳細については、Sprintfとprintf()Phpドキュメントをすばやくスキミングできます。
以下の例のような文字列で変数を使用している場合は、プレースホルダーを使用する必要があります。<span><span><?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?></span></span>
ログイン後にコピーログイン後にコピー正しい方法は、printf()関数を次のように使用することです。
WordPressプラグインリポジトリでホストされているいくつかのプラグインのコードを使用すると、このようなことがわかります。
これは悪い練習です。翻訳者が変数を誤って変更したり、悪意のあるコードをプラグインコードベースに挿入したりする可能性があるため、最終的にプラグインが誤動作します。<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>
ログイン後にコピー<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>
ログイン後にコピー翻訳可能な文字列にHTMLを含めることは、コンテキストに依存します<span>$text = __( 'Hello, SitePoint Readers!', 'espw-plugin' );</span>
ログイン後にコピー例はリンクです(それを囲むテキストから分離):
別の例は、段落のリンクです(周囲のテキストから分離されていません):
4。複数項
を扱う_n()関数を使用して、アイテムの変更数を変更できるときに変更される文字列。
この関数は、4つの引数、すなわちを受け入れます<span>_e( 'Hello, SitePoint Readers!', 'espw-plugin' );</span>
ログイン後にコピー<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>
ログイン後にコピーログイン後にコピーログイン後にコピー_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。このメソッドを使用する両方の場合、元のバージョンの文字列コメントが取得されますが、翻訳者には翻訳の2つのコメント文字列が表示されます。<span><span><?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?></span></span>
ログイン後にコピーログイン後にコピー関数によって翻訳可能になった文字列_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このチュートリアルの最初の部分は、基本的にプラグイン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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











最近、ユーザーがお気に入りの投稿をパーソナライズされたライブラリに保存できるようにすることで、ユーザー向けのパーソナライズされたエクスペリエンスを作成する方法を示しました。一部の場所で名前を使用することで、パーソナライズされた結果を別のレベルに引き上げることができます(つまり、ウェルカム画面)。幸いなことに、WordPressにより、ユーザーのログインに関する情報を簡単に入手できます。この記事では、現在ログインしているユーザーに関連する情報を取得する方法を紹介します。 get_currentuserinfo()を使用します。 関数。これは、テーマ(ヘッダー、フッター、サイドバー、ページテンプレートなど)のどこでも使用できます。それが機能するためには、ユーザーをログインする必要があります。したがって、使用する必要があります

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

ブログは、人々が自分の意見、意見、意見をオンラインで表現するための理想的なプラットフォームです。多くの初心者は自分のウェブサイトを構築することに熱心ですが、技術的な障壁やコストの問題を心配することをためらっています。ただし、プラットフォームが初心者の能力とニーズを満たすために進化し続けるにつれて、今まで以上に容易になり始めています。 この記事では、テーマの選択からプラグインの使用まで、セキュリティとパフォーマンスを向上させ、独自のWebサイトを簡単に作成できるように、WordPressブログを構築する方法を段階的に導きます。 ブログのトピックと方向を選択してください ドメイン名を購入したり、ホストを登録する前に、カバーする予定のトピックを特定することをお勧めします。個人的なウェブサイトは、旅行、料理、製品のレビュー、音楽、またはあなたの興味を引き起こす趣味を中心に展開できます。あなたが本当に興味を持っている領域に焦点を当てることは継続的な執筆を奨励することができます

親カテゴリアーカイブページに子カテゴリを表示する方法を知りたいですか?分類アーカイブページをカスタマイズするときは、訪問者にとってより便利にするためにこれを行う必要がある場合があります。この記事では、親カテゴリアーカイブページに子カテゴリを簡単に表示する方法を示します。サブカテゴリが親カテゴリアーカイブページに表示されるのはなぜですか?親カテゴリアーカイブページにすべての子カテゴリを表示することにより、訪問者にとってより一般的で便利になります。たとえば、本に関するWordPressのブログを実行し、「テーマ」と呼ばれる分類法を持っている場合、「小説」、「ノンフィクション」などのサブ課題を追加して、読者ができるようにすることができます。

過去には、拡張後のプラグインを使用してWordPressの投稿を期限切れにする方法を共有してきました。さて、Activity List Webサイトを作成するとき、このプラグインは非常に便利であることがわかりました。期限切れのアクティビティリストを簡単に削除できます。第二に、このプラグインのおかげで、有効期限後の日付までに投稿を並べ替えることも非常に簡単です。この記事では、WordPressの有効期限後の日付で投稿を並べ替える方法を紹介します。プラグインの変更を反映してカスタムフィールド名を変更するためのコードを更新しました。コメントで私たちに知らせてくれたTajimに感謝します。特定のプロジェクトでは、イベントをカスタムポストタイプとして使用します。今

WordPress Webサイトやソーシャルメディアアカウントを自動化する方法をお探しですか? 自動化を使用すると、WordPressのブログ投稿やFacebook、Twitter、LinkedIn、Instagramなどで自動的に共有できます。 この記事では、IFTTT、Zapier、およびUncanny Automatorを使用してWordPressとソーシャルメディアを簡単に自動化する方法を紹介します。 WordPressとソーシャルメディアを自動化する理由 WordPreを自動化します

WordPressホストを使用してWebサイトを構築するには、次のようにする必要があります。信頼できるホスティングプロバイダーを選択します。ドメイン名を購入します。 WordPressホスティングアカウントを設定します。トピックを選択します。ページと記事を追加します。プラグインをインストールします。ウェブサイトをカスタマイズします。あなたのウェブサイトを公開します。

ユーザーの1人が、フッターにクエリの数とページの読み込み時間を表示する方法を他のWebサイトに尋ねました。これをウェブサイトのフッターでよく見ることがよくあり、「1.248秒で64クエリ」のようなものを表示する場合があります。この記事では、WordPressにクエリの数とページの読み込み時間を表示する方法を紹介します。テーマファイル(たとえば、footer.php)で好きな場所に次のコードを貼り付けます。クエリエシン
