- 상태
- 미해결
- 보고된 제품
- 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 파일에 따라 번역도 생성을 선택하고 드롭다운에서 영어를 선택한 후(코드 변경 후 표시됨) 가져오기를 실행합니다.