programing

load_plugin_text 도메인이 작동하지 않습니다.

starjava 2023. 9. 19. 20:41
반응형

load_plugin_text 도메인이 작동하지 않습니다.

안녕하세요. 도너트 플러스(기술적으로 현지화된)라는 플러그인을 현지화하려고 합니다.

플러그인은 en_CA 및 de_DE 파일과 함께 제공되었습니다. he_를 생성해 보았습니다.IL 파일이 성공하지 못했습니다.그래서 플러그인과 함께 제공된 defiles로 시도해 보았지만 작동하지 않았습니다.

WP-config에 WPLANG을 설정했습니다.php to de_DE는 아직 코드를 바꾸지 않습니다.

설정 코드는 다음과 같습니다.

load_plugin_textdomain( 'dplus', '/wp-content/plugins/donate-plus' );

그리고 모든 문자열이 현지화로 설정되어 있는지 확인했습니다.

단서를 아는 사람?

방금 비슷한 문제가 있었는데, 파일 이름을 de_DE.po와 de_DE.mo에서 name-of-plugin-DE.mo로 바꾸셨나요? (물론 name-of-plugin-DE.po로 변경)

dplus-de_DE.mo 및 dplus-de_DE.po 작동해야 합니다 ;)

load_plugin_textdomain은 세 가지 매개 변수를 사용합니다.당신의 경우는 이와 같습니다(.po 및 .mo 파일이 'languages'라는 서브디어에 있다고 가정하면).

load_plugin_textdomain( 'dplus', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

DonatePlus Plugin의 출처를 확인해보니 Plugin이 현지화를 잘못하고 있습니다.

load_plugin_textdomain() 호출은 DonatePlus 클래스 생성기 내에서 이루어집니다.그러나 'init' 후크 안에 있어야 합니다.init 함수 안에 다음 코드(파일의 에 있음)를 추가하려고 합니다.

if( class_exists('DonatePlus') )
    $donateplus = new DonatePlus();

번역 파일을 로드할 때도 비슷한 문제가 있었습니다.load_plugin_textdomainPSR-4를 사용하는 서비스 클래스 내에서 기능합니다.이것은 그들이 그들이dirname( plugin_basename( __FILE__ ) )string이 잘못된 경로를 반환했습니다.

  • 올바른 경로는 상대 경로입니다.your-plugin/languages(assuming에서 번역 파일을 로드합니다./languages디렉토리(directory.
  • 다음과 같은 절대 경로/var/www/html/wp-content/plugins/my-plugin/languages안 될 겁니다

플러그인 파일 구조는 다음과 같습니다.

- my-plugin
    - assets
    - languages
    - services
        - Api
        - Base
            Translation.php
        - ...
        Plugin.php
    - vendor
    - views
    composer.json
    composer.lock
    index.php
    my-plugin.php
    uninstall.php

내 번역 서비스가 에 배치되어 있기 때문에/services/Base/디렉토리, 이것은 나에게 효과가 있었습니다.

$root = plugin_basename(dirname(__FILE__, 3));
load_plugin_textdomain( 'my-plugin', false, "$root/languages/");

그리고 액션 훅을 전혀 사용하지 않았습니다.init아니면plugins_loaded그리고 발사했습니다.load_plugin_textdomain플러그인의 시작 부분에서 작동합니다. 관리 메뉴와 작업 링크가 번역될 수 있을 정도로 후크가 일찍 시작되지 않기 때문입니다.

.po 및 .mo 파일은 모두 어디에 저장됩니까?/wp-content/plugins/donate-plus 폴더 자체 안에 있습니까?그렇지 않은 경우 경로를 변경하거나 파일을 이동합니다.

사용: load_textdomain( TEXT_DOMAIN, WP_PLUGIN_DIR .'/'.dirname(플러그인_basename(FILE)) . '/languages/' get_locale() .'.mo' );

언급URL : https://stackoverflow.com/questions/10235232/load-plugin-textdomain-not-working

반응형