Combinant et comportant différentes API pour la traduction du langage, la recherche de dictionnaire, la correction d'orthographe et la synthèse de la parole (TTS) de manière facile à utiliser et à étendre.
composer require gino-pane/phpolyglot
Créez une copie du fichier .env.example , nommez-le .env et placez vos propres informations d'identification API. Le fichier contient des liens vers des pages qui peuvent être liées aux informations d'identification requises.
Afin d'exécuter des exemples du répertoire d'exemples, vous devez spécifier vos propres informations d'identification API valides.
Le package contient de nombreux exemples prêts à l'emploi dans le répertoire des exemples. Tous les points de terminaison renvoient une réponse valide ou lance une exception pertinente. Toutes les API sont configurées via le fichier config.php qui contient le mappage des classes API par défaut. La prise en charge des configurations dynamiques a été ajoutée dans la mise à jour 1.1.0:
$ phpolyglot = new PHPolyglot ( $ config , $ env );Cela vous permet de transmettre vos propres valeurs de configuration si vous ne souhaitez pas compter sur ceux qui sont stockés dans des fichiers de configuration.
Il y a deux points de terminaison. Pour une seule chaîne:
function translate( string $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseEt pour plusieurs chaînes:
function translateBulk( array $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseÀ titre d'exemple minimum, vous pouvez transmettre du texte et du langage pour traduire en (la langue source sera détectée par API):
$ response = ( new PHPolyglot ())-> translate ( ' Hello world ' , ' it ' )-> getTranslations (); // [ 0 => Ciao mondo ] TranslateResponse a une méthode getTranslations qui renvoie un tableau de traductions.
Les langues prises en charge peuvent varier en fonction de l'API tierce.
Veuillez vérifier la liste des langues prises en charge. L'API Yandex Translate est gratuite avec des limitations (1000 000 caractères par jour, jusqu'à 10 000 000 par mois). Si vous le souhaitez, vous pouvez bien sûr obtenir un plan payant. L'API ne vous permettra pas d'accéder automatiquement au plan payant, il renverra simplement une erreur lorsque la limite sera atteinte. Afin d'utiliser l'API, vous devez obtenir la clé API valide.
Il existe un seul point de terminaison, qui peut être utilisé sous deux formes différentes.
Pour une recherche dans la même langue (obtenir des formulaires de mots):
function lookup( string $ text , string $ languageFrom ): DictionaryResponseet pour la traduction avec l'observation (obtenir plusieurs traductions et des informations supplémentaires, y compris les formulaires de mots, les exemples, les significations, les synonymes, la transcription, etc.):
function lookup( string $ text , string $ languageFrom , string $ languageTo ): DictionaryResponseÀ titre d'exemple minimum, vous pouvez transmettre du texte et sa langue source:
$ response = ( new PHPolyglot )->lookup( ' Hello ' , 'en)->getEntries();
$synonyms = implode(", ", $response[0]->getSynonyms());
$output = <<<TEXT
Initial word: {$response[0]->getTextFrom()}
Part of speech: {$response[0]->getPosFrom()}
Transcription: {$response[0]->getTranscription()}
Main alternative: {$response[0]->getTextTo()}
Synonyms: {$synonyms}
TEXT
echo $output
/**
Initial word: hello
Part of speech: noun
Transcription: ˈheˈləʊ
Main alternative: hi
Synonyms: hallo, salut
*/Les langues prises en charge peuvent varier en fonction de l'API tierce.
Veuillez vérifier la liste des langues prises en charge. L'API du dictionnaire Yandex est gratuite avec des limitations (jusqu'à 10 000 références par jour). Afin d'utiliser l'API, vous devez obtenir la clé API valide.
Il y a deux points de terminaison. Pour une seule chaîne:
function spellCheck( string $ text , string $ languageFrom = '' ): SpellCheckResponseEt pour plusieurs chaînes:
function spellCheckBulk( array $ texts , string $ languageFrom = '' ): SpellCheckResponseÀ titre d'exemple minimum, vous ne pouvez passer qu'un texte pour vérifier:
$ corrections = $ phpolyglot -> spellCheckText ( ' Helo werld ' , $ languageFrom )-> getCorrections ();
/**
array(1) {
[0] =>
array(2) {
'Helo' =>
array(1) {
[0] =>
string(5) "Hello"
}
'werld' =>
array(1) {
[0] =>
string(5) "world"
}
}
}
*/Les langues prises en charge peuvent varier en fonction de l'API tierce.
Veuillez vérifier la liste des langues prises en charge (en gros, seuls l'anglais, le russe et l'Ukrainien sont soutenus pour le moment). L'API Yandex Speller est libre à utiliser avec des limitations (jusqu'à 10 000 appels / 10 000 000 caractères par jour). Aucune clé n'est requise.
Le point de terminaison principal est la méthode speak de PHPolyglot :
public function speak(
string $ text ,
string $ languageFrom ,
string $ audioFormat = TtsAudioFormat:: AUDIO_MP3 ,
array $ additionalData = []
): TtsResponse Seuls deux paramètres sont requis - texte pour la synthèse $text et sa langue source $languageFrom .
Paramètres facultatifs $audioFormat et $additionalData peuvent être omis. Le format audio permet de spécifier explicitement le format audio requis de l'audio renvoyé. Des données supplémentaires permet de définir des paramètres spécifiques à l'API pour des résultats plus précis (voix, hauteur, vitesse, etc.).
La liste des formats audio qui sont actuellement reconnus:
Veuillez noter que tous ne peuvent pas être pris en charge par votre API de choix.
La méthode TTS renvoie TtsResponse qui dispose de la méthode storeFile pour stocker un fichier généré avec le nom et l'extension requis dans le répertoire spécifié (ou en utilisant des valeurs par défaut):
function storeFile( string $ fileName = '' , string $ extension = '' , string $ directory = '' ): string Par défaut, le nom de fichier est un simple hachage md5 de $text utilisé pour TTS, $extension est rempli en fonction de l'en-tête content-type (au moins, pour IBM Watson API), $directory est basé sur le paramètre de configuration.
( new PHPolyglot ())-> speak ( ' Hello world ' , ' en ' )-> storeFile (); // stores 3e25960a79dbc69b674cd4ec67a72c62.mp3Veuillez vérifier la liste des langues et voix prises en charge. IBM Watson TTS nécessite des informations d'identification API pour l'autorisation. Créez votre projet TTS là-bas et obtenez vos informations d'identification spécifiques à l'API. L'API est libre à utiliser avec des limitations (jusqu'à 10 000 caractères par mois).
php vendor/bin/phpunit
ou
composer test
php vendor/bin/phpcs --standard=PSR2 src/
ou
composer psr2check
php vendor/bin/phpcbf --standard=PSR2 src/
ou
composer psr2autofix
php vendor/bin/phpdoc -d "src" -t "docs"
ou
composer docs
Pour suivre, veuillez vous référer à Changelog.md.
Veuillez également vous référer à contribution.md.
Veuillez vous référer à la licence.
Le phpolyglot ne possède aucun des résultats que les API peuvent revenir. De plus, les API peuvent avoir leurs propres règles sur l'utilisation des données, alors méfiez-vous lorsque vous les utilisez.
Propulsé par compositeur-package-template et php nano repos.