All Projects → Baby-Markt → deepl-php-lib

Baby-Markt / deepl-php-lib

Licence: MIT license
🧠 DeepL API Client Library supporting PHP >= 7.3

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to deepl-php-lib

deepl-api-connector
Connector library for deepl.com rest translation api
Stars: ✭ 12 (-76%)
Mutual labels:  i18n, translations, translator, deepl, deepl-api, deepl-client
Flutter translate
Flutter Translate is a fully featured localization / internationalization (i18n) library for Flutter.
Stars: ✭ 245 (+390%)
Mutual labels:  i18n, translations, translate
translate
A module grouping multiple translation APIs
Stars: ✭ 321 (+542%)
Mutual labels:  translator, translate, deepl
tr4n5l4te
Use Google Translate without an API key.
Stars: ✭ 32 (-36%)
Mutual labels:  i18n, translator, translate
React Intl Hooks
React hooks for internationalization without the hassle ⚛️🌍
Stars: ✭ 64 (+28%)
Mutual labels:  i18n, translate
Texterify
The localization management system.
Stars: ✭ 37 (-26%)
Mutual labels:  i18n, translate
Eslint Plugin I18n Json
Fully extendable eslint plugin for JSON i18n translation files.
Stars: ✭ 101 (+102%)
Mutual labels:  i18n, translations
Talkr
Talkr is a super small i18n provider for React applications. It supports Typescript, has 0 dependencies, and is very easy to use.
Stars: ✭ 129 (+158%)
Mutual labels:  i18n, translations
Deeply
PHP client for the DeepL.com translation API (unofficial)
Stars: ✭ 152 (+204%)
Mutual labels:  i18n, translate
React Translated
A dead simple way to add complex translations (i18n) in a React (DOM/Native) project 🌎🌍🌏
Stars: ✭ 176 (+252%)
Mutual labels:  i18n, translate
php-google-translate-for-free
Library for free use Google Translator. With attempts connecting on failure and array support.
Stars: ✭ 124 (+148%)
Mutual labels:  translator, translate
Translation
The Translation component provides tools to internationalize your application.
Stars: ✭ 6,196 (+12292%)
Mutual labels:  i18n, translator
I18n Editor
GUI for editing your i18n translation files
Stars: ✭ 290 (+480%)
Mutual labels:  i18n, translations
Translala
Translation Toolbox for your Laravel/Symfony project (translate, stats, commons and dead translations reports, coverage, CI process)
Stars: ✭ 70 (+40%)
Mutual labels:  i18n, translations
Mojito
An automation platform that enables continuous localization.
Stars: ✭ 256 (+412%)
Mutual labels:  i18n, translations
react-text-translator
An experimental way to translate text inside React components with context
Stars: ✭ 15 (-70%)
Mutual labels:  i18n, translate
LibreTranslate
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
Stars: ✭ 3,932 (+7764%)
Mutual labels:  translator, translate
deepl-python
Official Python library for the DeepL language translation API.
Stars: ✭ 548 (+996%)
Mutual labels:  translator, deepl
findadoc-localization
Translations for Findadoc Japan
Stars: ✭ 17 (-66%)
Mutual labels:  i18n, translations
gpytranslate
A Python3 library for translating text using Google Translate API.
Stars: ✭ 34 (-32%)
Mutual labels:  translator, translate

deepl-php-lib


Deprecated Library !

Hello everyone,

in the last couple of months we didn't give much attention to this projekt. DeepL on the other hand has developed client libraries for Python, .NET and Node.js (see: API-Doc).

Since there is a PHP-Library in the works Github and our track record with maintaining our library hasn't been as good as it should have been, we decided to abandon this library and switch internally to the official one.

To make clear that we won't continue to work on this repository, we will archive it. If anyone from the community wants to continue our work we can put a line in the README to point to the new maintained repository.

Otherwise, we recommend you to check out the new library coming from DeepL.

Thank you to everyone who contributed to this project over the years.


Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Simple PHP Library for DeepL API. You can translate one or multiple text strings (up to 50) per request.

🇩🇪🇦🇹🇨🇭🇬🇧🇺🇸🇪🇸🇲🇽🇫🇷🇮🇹🇯🇵🇳🇱🇵🇱🇵🇹🇧🇷🇷🇺🇨🇳🇬🇷🇩🇰🇨🇿🇪🇪🇫🇮🇭🇺🇱🇹🇱🇻🇷🇴🇷🇸🇸🇰🇸🇪

Official DeepL API

CHANGELOG

Install

Use composer if you want to use this library in your project.

composer require babymarkt/deepl-php-lib

Usage

Create an instance with your auth key:

use \BabyMarkt\DeepL\DeepL;

$authKey = '<AUTH KEY>';
$deepl   = new DeepL($authKey);

Use the DeepL API Pro:

use \BabyMarkt\DeepL\DeepL;

$authKey = '<AUTH KEY>';
$deepl   = new DeepL($authKey,2,'api-free.deepl.com');

Translate

Translate one Text:

$translatedText = $deepl->translate('Hallo Welt', 'de', 'en');
echo $translatedText[0]['text'].PHP_EOL;

Translate multiple Texts:

$text = array(
    'Hallo Welt',
    'Wie geht es dir',
    'Macht doch einfach mal'
);

$translations = $deepl->translate($text, 'de', 'en');

foreach ($translations as $translation) {
    echo $translation['text'].PHP_EOL;
}
param Description
$text Text to be translated. Only UTF8-encoded plain text is supported. The parameter may be specified as an Array and translations are returned in the same order as they are requested. Each of the array values may contain multiple sentences. Up to 50 texts can be sent for translation in one request.
$sourceLang Language of the text to be translated.
default: "" (DeepL will auto-detect)
$targetLang The language into which the text should be translated.
default: en
$tagHandling Sets which kind of tags should be handled. Options currently available: "xml"
$ignoreTags Array of XML tags that indicate text not to be translated.
default: null
$formality Sets whether the translated text should lean towards formal or informal language. This feature currently works for all target languages except "EN" (English), "EN-GB" (British English), "EN-US" (American English), "ES" (Spanish), "JA" (Japanese) and "ZH" (Chinese).

Possible options are:
"default" (default)
"more" - for a more formal language
"less" - for a more informal language
$splitSentences Array of XML tags which always cause splits
default: null
$preserveFormatting Sets whether the translation engine should respect the original formatting, even if it would usually correct some aspects. Possible values are:
"0" (default)
"1"
The formatting aspects affected by this setting include:
Punctuation at the beginning and end of the sentence
Upper/lower case at the beginning of the sentence
$nonSplittingTags Comma-separated list of XML tags which never split sentences.
default: null
$outlineDetection See: https://www.deepl.com/docs-api/handling-xml/outline-detection/
default: 1
$splittingTags Array of XML tags which always cause splits.
default: null

Supported languages

In Version 2 we removed the internal List of supported Languages. Instead, you can now get an array with the supported Languages directly form DeepL:

$languagesArray = $deepl->languages();

foreach ($languagesArray as $language) {
    echo 'Name: '.$language['name'].' Api-Shorthand: '.$language['language'].PHP_EOL;
}

You can check for the supported Source-Languages:

$sourceLanguagesArray = $deepl->languages('source');

foreach ($sourceLanguagesArray as $sourceLanguage) {
    echo 'Name: '.$sourceLanguage['name'].' Api-shorthand: '.$sourceLanguage['language'].PHP_EOL;
}

Check for the supported Target-Languages:

$targetLanguagesArray = $deepl->languages('target');

foreach ($targetLanguagesArray as $targetLanguage) {
    echo 'Name: '.$targetLanguage['name'].' Api-Shorthand: '.$targetLanguage['language'].PHP_EOL;
}

Monitoring usage

You can now check how much you translate, as well as the limit:

$usageArray = $deepl->usage();

echo 'You have used '.$usageArray['character_count'].' of '.$usageArray['character_limit'].' in the current billing period.'.PHP_EOL;

Glossary

Create a glossary

$glossary = $deepl->createGlossary('MyGlossary', ['Hallo' => 'Hello'], 'de', 'en');
param Description
$name Glossary name
$entries Array of entries
$sourceLanguage The source language into which the glossary rule apply
$targetLanguage The target language into which the glossary rule apply

Delete a glossary

$glossary = $deepl->deleteGlossary($glossaryId);
param Description
$glossaryId Glossary uuid (set by DeepL when glossary is created)

List glossaries

use \BabyMarkt\DeepL\Glossary;

$glossaries = $deepl->listGlossaries();
foreach ($glossaries as $glossary) {
    var_dump($glossary);
}

Get glossary meta information: creation date, is glossary ready to use ...

use \BabyMarkt\DeepL\Glossary;

$glossaryInformation = $deepl->glossaryInformation($glossaryId);
var_dump($glossaryInformation);
param Description
$glossaryId Glossary uuid (set by DeepL when glossary is created)

Get glossary entries

$entries = $deepl->glossaryEntries($glossaryId);
foreach ($entries as $sourceLangText => $targetLangText) {
    echo $sourceLangText .' > '.$targetLangText;
}
param Description
$glossaryId Glossary uuid (set by DeepL when glossary is created)

Configuring cURL requests

If you need to use a proxy, you can configure the underlying curl client to use one. You can also specify a timeout to avoid waiting for several minutes if Deepl is unreachable

$deepl->setTimeout(10); //give up after 10 seconds
$deepl->setProxy('http://corporate-proxy.com:3128');
$deepl->setProxyCredentials('username:password');

Testing

Run PHP_CodeSniffer Tests:

composer cs

Run PHPMD Tests:

composer md

Run PHPUnit Tests:

composer test

Run all tests:

composer test:all

Credits

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].