폴리랑:커스텀 문자열을 번역하는 방법
문제:Polylang을 사용하여 웹 사이트를 번역하고 있습니다만, 커스텀 문자열 번역에 어려움을 겪고 있습니다.문자열이 WP 대시보드의 "Strings translation" 메뉴에 표시되지 않습니다.
중요:저는 PHP에 대해 잘 모르기 때문에 pll_register_string 함수는 매우 혼란스럽습니다.
Polylang 문서에서 인용:
https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/
pll_register_string
플러그인이 "문자열 변환" 패널에 자체 문자열을 추가할 수 있습니다.함수는 관리자 측에서 호출해야 합니다(함수).테마에 대해서는 php 파일이 OK입니다).빈 문자열(예를 들어 옵션에서 가져온 문자열)을 등록할 수 있지만 목록 테이블에 나타나지 않습니다.
사용방법:
pll_register_string => (필수) 정렬 편의를 위해 제공된 이름(예: 'myplugin') '$string' => (필수) 문자열이 등록된 그룹(옵션)은 기본적으로 'polylang' '$line'으로 설정됩니다.번역 텍스트 필드는 여러 줄이며 기본값은 false입니다.
pl_
는 이전에 pll_register_string에 등록된 문자열을 변환합니다.사용방법:
pll_($string);고유 파라미터가 필요합니다.
'$string' => 변환할 문자열은 변환된 문자열을 반환합니다.
pl_e
이전에 pll_register_string에 등록된 변환된 문자열을 에코합니다.사용방법:
pll_e-string);고유 파라미터가 필요합니다.
'$string' => 번역할 문자열
안부 전합니다
먼저 이 모든 문자열을 번역용으로 등록해야 합니다.
예를 들어 다음과 같은 템플릿파일로 "Hello world"를 에코합니다.
<?php pll_e('Hello world'); ?>
Strings translation에 문자열을 표시하려면functions.php
:
add_action('init', function() {
pll_register_string('mytheme-hello', 'Hello world');
});
이 함수에 변환할 모든 사용자 지정 문자열을 추가합니다.
Polylang 문서에서는 Polylang 함수의 존재를 먼저 확인하는 것이 좋다고 합니다.따라서 Polylang 플러그인 업데이트 시 사이트가 중단되지 않습니다. 오래된 파일을 먼저 삭제하기 때문입니다.
그래서 저는 이 접근방식을 제안합니다.functions.php
플러그인의 파일내의 테마에 대해서는, 폴리랭이 삭제되었을 경우에 폴백을 가지는 필요한 폴리랭 함수의 래퍼를 작성할 수 있습니다.또는 WP가 정의되지 않은 함수 에러로 크래쉬 하지 않게 갱신할 수 있습니다.
/**
* Outputs localized string if polylang exists or output's not translated one as a fallback
*
* @param $string
*
* @return void
*/
function pl_e( $string = '' ) {
if ( function_exists( 'pll_e' ) ) {
pll_e( $string );
} else {
echo $string;
}
}
/**
* Returns translated string if polylang exists or output's not translated one as a fallback
*
* @param $string
*
* @return string
*/
function pl__( $string = '' ) {
if ( function_exists( 'pll__' ) ) {
return pll__( $string );
}
return $string;
}
// these function prefixes can be either you are comfortable with.
하나의 요.l
pl__
★★★★★★★★★★★★★★★★★」pl_e
는 및 and and and are are are are are are are are are are and and입니다.pll__
★★★★★★★★★★★★★★★★★」pll_e
.
이것들은, 테마내에서 변환된 문자열을 출력 또는 반환하기 위해서 사용됩니다.
앞에서 설명한 바와 같이 이러한 문자열을 등록해야 폴리랑에서 번역해야 한다는 것을 알 수 있습니다.
테마로 작업하는 경우는, 아마, 로 초기화하는 것이 좋을 것입니다.after_setup_theme
뭇매를 맞다
function your_prefix_after_setup_theme() {
// register our translatable strings - again first check if function exists.
if ( function_exists( 'pll_register_string' ) ) {
pll_register_string( 'ToggleNavigation', 'Toggle navigation', 'YourThemeName', false );
pll_register_string( 'ToggleSearch', 'Toggle Search', 'YourThemeName', false );
pll_register_string('404Message', 'It looks like nothing was found. Try getting back to the <a href="%s">home page</a>.', 'YourThemeName', true);
}
}
add_action( 'after_setup_theme', 'your_prefix_after_setup_theme' );
안녕하세요, 이름을 사용해서 번역할 수 있는 방법이 있나요?
add_action('init', function() {
pll_register_string('footer-Newsletter-form', 'Subscribe to Newsletter');
});
$translated_string = pll_translate_string('footer-Newsletter-form', $lang);
감사합니다!이 설정을 추가한 후 다른 함수에 번역 가능한 텍스트를 추가할 수 있는 다른 트릭을 찾았습니다.php 파일:
__(pll__('string to translate'), 'text-domain')
언급URL : https://stackoverflow.com/questions/46557981/polylang-how-to-translate-custom-strings
'programing' 카테고리의 다른 글
노드 + 익스프레스 + 옥에서 클라이언트에 개체를 전달하고 있습니까? (0) | 2023.04.03 |
---|---|
어레이가 포함된 오브젝트 어레이의 시리얼화 해제 (0) | 2023.04.03 |
mongodb 컬렉션에서 최신 레코드 가져오기 (0) | 2023.04.03 |
WordPress는 사용자 지정 URL을 함수에 매핑합니다. (0) | 2023.04.03 |
2개의 필드(하나는 역방향)로 정렬 (0) | 2023.03.29 |