"더블 언더스코어"와 "언더스코어 x"의 차이점은 무엇입니까?
PHP에서, 특히 워드프레스에서, 다음과 같은 차이점은 무엇입니까?__('string')그리고._x('string')?
워드프레스 자료를 읽고 있는데 헷갈리네요.다음의 혼동의 좋은 예는 Wordpress 문서의 예제 코드에서 도출됩니다.register_post_type():
$labels = array(
'name' => _x( 'Books', 'post type general name', 'your-plugin-textdomain' ),
'singular_name' => _x( 'Book', 'post type singular name', 'your-plugin-textdomain' ),
'menu_name' => _x( 'Books', 'admin menu', 'your-plugin-textdomain' ),
'name_admin_bar' => _x( 'Book', 'add new on admin bar', 'your-plugin-textdomain' ),
'add_new' => _x( 'Add New', 'book', 'your-plugin-textdomain' ),
'add_new_item' => __( 'Add New Book', 'your-plugin-textdomain' ),
'new_item' => __( 'New Book', 'your-plugin-textdomain' ),
'edit_item' => __( 'Edit Book', 'your-plugin-textdomain' ),
'view_item' => __( 'View Book', 'your-plugin-textdomain' ),
'all_items' => __( 'All Books', 'your-plugin-textdomain' ),
'search_items' => __( 'Search Books', 'your-plugin-textdomain' ),
'parent_item_colon' => __( 'Parent Books:', 'your-plugin-textdomain' ),
'not_found' => __( 'No books found.', 'your-plugin-textdomain' ),
'not_found_in_trash' => __( 'No books found in Trash.', 'your-plugin-textdomain' )
);
WordPress에서 둘 다_x()그리고.__()번역 함수 입니다._x()변환의 컨텍스트를 지정할 수 있습니다.
<?php _x( $text, $context, $domain ); ?>
반면에.__()그렇지 않습니다.
<?php __( $text, $domain ); ?>
context 옵션은 리터럴 변환이 원하는 결과를 얻지 못하는 다양한 상황에서 유용합니다.
'읽기'라는 문자열 자체가 영어에서 여러 가지 다른 의미 중 하나를 가질 수 있기 때문에, 번역자들이 "내가 읽은 책"을 의미하는 단기를 제공해야 한다는 것을 알 수 있도록 문맥이 주어집니다.
다른 예로는 "날짜", "유형", "오른쪽", "잎" 등이 있습니다.
출처 : 워드프레스 코덱스
__(..)문자열 A에서 문자열 B로 직접 번역합니다.
_x(..)컨텍스트를 제공할 수 있습니다.예를 들어, 당신이 영어에서 같은 의미를 가진 2개의 문자열을 가지고 있지만 다른 언어에서는 같은 의미를 가지고 있지 않을 수 있고, 그러면 당신은 사용할 수 있습니다._x당신의 문자열이 영어로 동일하더라도 다른 언어로 2개의 다른 문자열로 번역할 수 있도록 컨텍스트를 제공합니다.
그래서 당신의 질문의 예로서 당신은
__( 'All Books', 'your-plugin-textdomain' ),
어떤 것을 사용합니까?__작가는 '모든 책'은 이 용어가 사용되는 모든 맥락에서 항상 '모든 책'을 의미할 것이라고 생각했을 것이기 때문입니다.그러나 다음에 대한 사용 사례를 고려해 보겠습니다._x:
_x( 'Books', 'post type general name', 'your-plugin-textdomain' )
그래서 여기서 저자는 "'책'은 매우 일반적인 용어이며, 앱에서 '책'이라는 용어를 사용한 맥락에 따라 이 용어를 다르게 번역하고 싶을 수도 있다"고 생각하고 있었습니다. 따라서 추가적인 매개 변수가 맥락으로 사용됩니다.위 행에서 'Books'를 다른 언어로 번역할 때, 우리는 플러그인의 텍스트 도메인의 맥락에서 책에 대해 이야기한다는 것을 알 수 있습니다.
출처 : http://wpengineer.com/2237/whats-the-difference-between-__-_e-_x-and-_ex/
언급URL : https://stackoverflow.com/questions/30113638/whats-the-difference-between-double-underscore-and-underscore-x
'programing' 카테고리의 다른 글
| 블록과 시도/잡기 블록을 제외한 __try/__를 사용하는 것이 더 나을까요? (0) | 2023.09.24 |
|---|---|
| content_main.xml과 activity_main.xml의 차이점은 무엇입니까? (0) | 2023.09.24 |
| MariaDB Galera 클러스터 고유 키를 신뢰할 수 있습니까? (0) | 2023.09.24 |
| XMLEMENT Oracle을 사용할 때 ' 또는 에서 특수 문자를 대체하는 방법 (0) | 2023.09.24 |
| 관리자 사용자 목록 페이지를 확장하는 방법? (0) | 2023.09.24 |