- ステータス
- 未解決
- 報告対象
- WPML Multilingual CMS 4.5.0
問題の概要
以前は、WordPressとWPMLは常に文字列のデフォルト言語が英語であると想定していました。
現在はWPMLで文字列のデフォルト言語を変更することが可能ですが(そのため、他の言語から英語へ文字列を翻訳することもできます)、.poのインポート / エクスポート セクションでは、依然として英語の文字列をインポートまたはエクスポートすることはできません。
回避策
恒久的な解決策に取り組んでおりますが、それまでの間は以下の手順で問題を解決できます。
-
- 最新のWPMLバージョンを使用していることを確認します。
- …/wp-content/plugins/wpml-string-translation/menu/string-translation.phpファイルを開きます。 3つの異なる場所を変更する必要があります。
- まず、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> - 以下のコードに置き換えます。
<?php foreach($active_languages as $al): ?>
- 次に、655行目を探し、以下のコードを削除します。
if ( $al['code'] == $string_settings['strings_language'] ) { continue;} - 最後に、WPML > 文字列翻訳に移動して.poファイルに従って翻訳も作成するを選択し、ドロップダウンから英語を選択して(コード変更後に表示されます)、インポートします。