이 플러그인은 최근 3개의 주요 워드프레스 출시와 시험 되지 않았습니다. 워드프레스의 좀 더 최근 버전으로 이용할 때 더 이상 관리되지 않고 지원되지 않고 호환성 문제가 있을 수 있습니다.

Yard DeepL

설명

This plugin registers secure API endpoints that allow you to request translations directly from DeepL without exposing your Deepl API-key. These endpoints are only accessible when a valid nonce is provided. When providing translations to website visitors, you can configure which languages are supported for translation.

Caching Mechanism

Each object that is translated will store its cached translation in the wp_postmeta table within the database. This caching mechanism ensures that translations are efficiently reused, reducing unnecessary API requests to DeepL and saving costs.

  • Serving Cached Translations: If a cached translation is newer than the post_modified date of the object, the cached version is served.
  • Fetching New Translations: When the post_modified date of the object is more recent than the cached translation, a new translation is fetched from DeepL. Once retrieved, this translation is immediately cached for future use.

This approach minimizes the number of API calls to DeepL, ensuring translations are kept up to date only when necessary.

External Services

This plugin connects to the DeepL API to provide translations for content.

  • Service: DeepL API (https://www.deepl.com)
  • Purpose: To translate text from one language to another based on the provided target language.
  • Data Sent: Text content for translation, the target language code, and the DeepL API key (handled securely and never exposed to users).
  • Conditions: Data is sent when a request for translation is initiated.
  • Privacy Policy: DeepL Privacy Policy
  • Terms of Service: DeepL Terms of Service

Usage

Security

The API endpoints registered by this plugin are secured using a WordPress nonce. The nonce is passed to the front-end using the wp_localize_script function and is stored in a global JavaScript object ydpl which contains the following properties:

  • ydpl_translate_post_id: The ID of the post to be translated.
  • ydpl_rest_translate_url: The URL of the API endpoint for translation requests.
  • ydpl_supported_languages: The list of languages supported for translation.
  • ydpl_api_request_nonce: The nonce used for API validation.

When making requests to the API, ensure that the nonce is included in the request headers. The header should be named nonce, and it should contain the value of ydpl_api_request_nonce.

Example

Request

var xhr = new XMLHttpRequest();
xhr.open('POST', ydpl.ydpl_rest_translate_url, true);

// Set request headers
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('nonce', ydpl.ydpl_api_request_nonce);

// Handle response
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        console.log('Translation:', JSON.parse(xhr.responseText));
    } else if (xhr.readyState === 4) {
        console.error('Error:', xhr.statusText);
    }
};

// Prepare and send the request body
var data = JSON.stringify({
    text: ["Look another test"],
    target_lang: "DE"
});

xhr.send(data);

Response

[
    {
        "text": "Look another test!",
        "translation": "Sehen Sie sich einen weiteren Test an!"
    }
]

설치

  1. Upload plugin directory to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

후기

이 플러그인에 대한 평가가 없습니다.

기여자 & 개발자

“Yard DeepL”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

“Yard DeepL”(이)가 1 개 언어로 번역되었습니다. 기여해 주셔서 번역자님께 감사드립니다.

자국어로 “Yard DeepL”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하세요.

변경이력

1.1.0: Jan 31, 2025

  • Add: disable DeepL translation cache metabox
  • Change: use init hook in plugin bootstrap construct, fixes translations for WordPress 6.7

1.0.2: Jan 08, 2025

  • Change: update all occurrences of ‘deepl’ to ‘DeepL’ for consistency

1.0.1: Jan 07, 2025

  • Change: processed corrections

1.0.0: Oct 18, 2024

  • Init: first release!