핵심에서 사용되는 용어에 대해 플러그인 텍스트 도메인을 남겨 둘 수 있습니까?


10

내가있어 플러그인 풋 게시물에 admin을 입력 메뉴에 상태를 추가하도록합니다. 나는 국제화의 중간에 있으며이 상황을 어떻게 처리 해야하는지 궁금합니다.

플러그인은 다음과 같은 텍스트 도메인을 얻는 고유 한 문자열을 사용합니다.

__( 'Select the post statuses to <strong>exclude</strong> from post type admin menus', 'csmpmsi' )

그러나 핵심 관련 단어에 핵심 관련 단어를 다음과 같이 사용하는 경우도 있습니다 __( 'Pages' ). 이 상황에서 텍스트 도메인을 제외하고 이미 현지화 된 용어를 활용하는 것이 완벽하게 이해되는 것 같습니다. 그러나 코덱은 매우 명시 적으로 보입니다.

플러그인을 번역하려는 경우 위와 동일한 조언이 적용됩니다.

  • 플러그인의 후크에로드 된 도메인을 사용해야합니다

  • 모든 번역 호출은 __ ( 'text', 'domain-name')이되어야합니다.

이 WP- 코셔입니까?


1
생각을 불러 일으키는 질문을 해주셔서 감사합니다. (toscho와 Mark Kaplun의 답변)는 흥미롭고 유용했습니다!
webaware

답변:


14

번역에 핵심 문자열을 사용하지 마십시오 context. 언제든지 매개 변수를 변경하거나 가져올 수 있습니다 . 그런 일이 발생하면 사용자는 부분적으로 번역 된 인터페이스를 얻게되며 번역가는이를 해결할 방법이 없습니다.

또한 동일한 단어로 모든 곳에서 동일한 문자열을 번역 할 필요는 없습니다. 컨텍스트 매개 변수가 없어도 일부 언어에서는 플러그인에 다른 번역을 사용하는 것이 유용 할 수 있습니다. 그러나 플러그인에 문자열을 포함시키지 않으면 불가능합니다.

이 주제에 관해 며칠 전에 있었던 대화 토론 을 보십시오 .


또한 문자열은 텍스트 도메인이 없어도 POT 파일에 계속 표시됩니다.
scribu

@scribu 파서에 따라 다릅니다. 코드 스타일링 현지화 플러그인은이를 무시합니다.
fuxia

거의 동일한 질문에 대한 이 답변 과이 답변 사이에 약간의 의견 차이가있는 것 같습니다 ...
mrwweb

4

예,하지만 제발하지 마십시오. 이것은 코딩 표준과 비슷하며, 우회하여 작은 이점을 얻을 수있는 경우에도 따르는 것이 좋습니다.

더 나은 이유 :

  1. 버전 3.5 WordPress에는 모놀리스 번역 파일이 없으며 성능상의 이유로 3 부분으로 나뉩니다. 이 추세가 계속되면 기본 도메인을 사용하려고 할 때 기본 도메인이 전혀로드 될 것 __('Pages')입니까?

  2. 작업을 로컬 라이저에 저장하지 않습니다. poedit와 같은 번역 도구는 하나의 파일에서 두 개의 번역 도메인을 처리하는 방법을 모르며, 예를 들어, 'Pages'라는 단어가 포함 된 .po 파일을 생성합니다. 기본 도메인을 사용하십시오. 로컬 라이저는 문맥을 이해해야 할 필요가없는 한 번역하는 문자열의 실제 사용법을 확인하지 않으므로 다른 도메인을 인식하지 못하고 단어를 번역합니다. 또한 로컬 라이저가 자신의 도구를 알고 있으면 poedit가 'Pages'와 같은 단어를 자동으로 번역 할 수있는 방식으로 WordPress 핵심 번역 파일을 기반으로하는 번역 DB를 갖게됩니다.


0

당신은 그것을 시도 할 수 있습니다

add_action('wp',function(){
    load_default_textdomain();
    _e('Settings');
});

또는

add_action('wp',function(){
    $locale = is_admin() ? get_user_locale() : get_locale();
    load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
    load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo" );

    // WPMU
    //load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo" );
    //load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo" );

    _e('Settings');
    _e('First Name');
    _e('Last Name');
});

참조 : https://v123.tw/use-wordpress-core-translation/

행운을 빕니다!!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.