web-dev-qa-db-ja.com

テーマ内で適切な「テキストドメイン」を見つける

ワードプレスをテーマにしたクライアント、 Nevada を持っていますが、組み込みの翻訳をうまく機能させることができません。テーマには、英語、ドイツ語、スロベニア語の.moファイルが含まれており、WPMLプラグインによって検出されるようです。ただし、テーマ内のテンプレートテキストは翻訳されていません。作成したコンテンツの翻訳は問題なく機能しています。

ここの指示に従ってください: http://wpml.org/documentation/getting-started-guide/theme-localization/ 、セクション「オプション2:テーマのローカライズに.moファイルを使う」を見てくださいテーマにtextdomainを入力するだけです。

問題は、それが何であるか、またはそれを見つける方法がわからないということです。私はテーマファイル自体を調べてみましたが、どんなテキスト出力でも多くの層の関数の背後に抽象化されています。さらに悪いことに、私も私のクライアントもテーマプロバイダーとのサポートアカウントを持っていません(しかし私たちは有効なライセンスを持っています!)そして彼らは全く役に立ちません。

WPMLをこのテーマで機能させるためのテキストドメインを見つけるにはどうすればよいですか?

更新

.poファイルの1つを開くと、次のような行が表示されます。

#: template-part-teaser.php:41
#@ Nevada
msgid "404 Error"
msgstr "404 Error"

それで、私はWPMLプラグインのテキストドメインとして "Nevada"を入力しようとしました、しかし、これは私のために何も変えませんでした

1
parker.sikand

コード内で、次のいずれかのような構文を見ることができますか?

__( 'Hello, dear user!', 'my-text-domain' )

_e( 'Your Ad here', 'my-text-domain' )

つまり、__(二重下線)または_eで始まるストリングです。もしそうなら、上記が私のテキストドメインを言うところで、あなたはあなたのテキストドメインの名前を見つけるべきです。

4
vancoder

ほとんどの場合、@ vancoderの答えは絶対に正しいです。私の状況はかなり独特であるように見えますが、それは他の誰かに役立つかもしれないように私の経験を共有したいです。

このNevadaテーマの場合、標準機能はテンプレートファイルでは使用されません。明らかに、NevadaはLambdaフレームワーク(私にとってはまったく異質なもの)を使用しているので、どんなテキスト出力もlambda_translate関数呼び出しで発生します。掘り下げて掘り下げた後、私はこれらの関数を__()または_e()呼び出しにトレースバックすることをやめました。

代わりに、テキストドメインを見つけるために、私は自分のLinux帽子をかぶってNevadaテーマフォルダにこのコマンドを入力しました。

grep -r "load_theme_textdomain" .

もちろん、functions.phpファイルには、load_theme_textdomain関数がtext-domainと共にありました。

1
parker.sikand