scn/deepl-api-connector

Unofficial PHP Client for the API of deepl.com

Maintainers

πŸ‘ scn

Package info

github.com/SC-Networks/deepl-api-connector

pkg:composer/scn/deepl-api-connector

Statistics

Installs: 286 131

Dependents: 7

Suggesters: 1

Stars: 16

Open Issues: 2

v4.0.0 2025-02-06 14:14 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT df03ebc47ef46fc0ddaf6e6a2f68d7dd0cf10458

translationdeepl


README

πŸ‘ Monthly Downloads
πŸ‘ License
πŸ‘ Build status

Requirements

Compatibility

Connector-Version PHP-Version(s)
master (dev) 8.2, 8.3
3.x (features and bugfixes) 7.4, 8.0, 8.1, 8.2, 8.3
2.x (EOL) 7.3, 7.4, 8.0, 8.1
1.x (EOL) 7.2, 7.3, 7.4

Install

Via Composer

$ composer require scn/deepl-api-connector

Usage

Api client creation

The DeeplClientFactory supports auto-detection of installed psr17/psr18 implementations. Just call the create method and you are ready to go

require_once __DIR__ . '/vendor/autoload.php';

use \Scn\DeeplApiConnector\DeeplClientFactory;

$deepl = DeeplClientFactory::create('your-api-key');

Optionally, you can provide already created instances of HttpClient, StreamFactory and RequestFactory as params to the create method.

require_once __DIR__ . '/vendor/autoload.php';

use \Scn\DeeplApiConnector\DeeplClientFactory;

$deepl = DeeplClientFactory::create(
 'your-api-key',
 $existingHttpClientInstance,
 $existingStreamFactoryInstance,
 $existingRequestFactoryInstance,
);

If a custom HTTP client implementation is to be used, this can also be done via the DeeplClientFactory::create method. The Client must support PSR18.

Get Usage of API Key

require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $usageObject = $deepl->getUsage();
}

Get Translation

require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $translation = new \Scn\DeeplApiConnector\Model\TranslationConfig(
 'My little Test',
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE
 ...,
 ...,
 );

 $translationObject = $deepl->getTranslation($translation);
}
require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $translation = new \Scn\DeeplApiConnector\Model\TranslationConfig(
 'My little Test',
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE
 );
 
 $translationObject = $deepl->translate('some text', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE);
}

Optional you also can translate a batch of texts as once, see example/translate_batch.php

Add File to Translation Queue

require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig(
 file_get_contents('test.txt'),
 'test.txt',
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN,
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE
 );

 $fileSubmission = $deepl->translateFile($fileTranslation);

 $fileSubmission->getDocumentId() 
}

Check File Translation Status

All translation states are available in FileStatusEnum

require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig(
 file_get_contents('test.txt'),
 'test.txt',
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN,
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE
 );

 $fileSubmission = $deepl->translateFile($fileTranslation);

 $translationStatus = $deepl->getFileTranslationStatus($fileSubmission);
}

Get Translated File Content

require_once __DIR__ . '/vendor/autoload.php';

$deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key');

try {
 $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig(
 file_get_contents('test.txt'),
 'test.txt',
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN,
 \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE
 );

 $fileSubmission = $deepl->translateFile($fileTranslation);

 $file = $deepl->getFileTranslation($fileSubmission);

 echo $file->getContent();
}

Retrieve supported languages

See example/retrieve_supported_languages.php

Working with glossaries

See use_glossaries.php

Testing

$ composer test

Credits

License

The MIT License (MIT). Please see License File for more information.