WPML
ステータス
未解決
報告対象
WPML Multilingual CMS 4.5.0

問題の概要

以前は、WordPressとWPMLは常に文字列のデフォルト言語が英語であると想定していました。

現在はWPMLで文字列のデフォルト言語を変更することが可能ですが(そのため、他の言語から英語へ文字列を翻訳することもできます)、.poのインポート / エクスポート セクションでは、依然として英語の文字列をインポートまたはエクスポートすることはできません。

回避策

恒久的な解決策に取り組んでおりますが、それまでの間は以下の手順で問題を解決できます。



    1. 最新のWPMLバージョンを使用していることを確認します。

    2. …/wp-content/plugins/wpml-string-translation/menu/string-translation.phpファイルを開きます。 3つの異なる場所を変更する必要があります。

 

  1. まず、640行目と748行目を探し、以下の行を:
    <span class="token delimiter important"><?php</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token variable">$active_languages</span> <span class="token keyword">as</span> <span class="token variable">$al</span> <span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$al</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'code'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token variable">$string_settings</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'strings_language'</span><span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">continue</span><span class="token punctuation">;</span><span class="token punctuation">}</span> <span class="token delimiter important">?></span>


  2. 以下のコードに置き換えます。
    <?php foreach($active_languages as $al):  ?>  


  3. 次に、655行目を探し、以下のコードを削除します。
    											if ( $al['code'] == $string_settings['strings_language'] ) {
    												continue;}


  4. 最後に、WPML > 文字列翻訳に移動して.poファイルに従って翻訳も作成するを選択し、ドロップダウンから英語を選択して(コード変更後に表示されます)、インポートします。

すべての既知の問題 →