Combinando e apresentando APIs diferentes para tradução de idiomas, pesquisa de dicionário, correção de ortografia e síntese de fala (TTS) de uma maneira fácil de usar e estender.
composer require gino-pane/phpolyglot
Crie uma cópia do arquivo .env.example , nomeie -o .env e coloque suas próprias credenciais da API. O arquivo contém links para páginas que podem estar relacionadas às credenciais necessárias.
Para executar exemplos do diretório Exemplos, você deve especificar suas próprias credenciais de API válidas.
O pacote contém muitos exemplos prontos para uso no diretório de exemplos. Todos os terminais retornam uma resposta válida ou lança uma exceção relevante. Todas as APIs são configuradas através do arquivo config.php, que contém o mapeamento de classes de API padrão. O suporte a configurações dinâmicas foi adicionado na atualização 1.1.0:
$ phpolyglot = new PHPolyglot ( $ config , $ env );Isso permite que você passe seus próprios valores de configuração se você não deseja confiar naqueles que são armazenados em arquivos de configuração.
Existem dois pontos de extremidade. Para uma única string:
function translate( string $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseE para várias cordas:
function translateBulk( array $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseComo um exemplo mínimo, você pode passar o texto e o idioma para traduzir (o idioma de origem será detectado pela API):
$ response = ( new PHPolyglot ())-> translate ( ' Hello world ' , ' it ' )-> getTranslations (); // [ 0 => Ciao mondo ] TranslateResponse possui o método getTranslations que retorna uma variedade de traduções.
Os idiomas suportados podem variar dependendo da API de terceiros.
Por favor, verifique a lista de idiomas suportados. A API da Yandex Tradutor é gratuita para usar com limitações (1000 000 caracteres por dia, até 10 000 000 por mês). Se você quiser, pode obter um plano pago, é claro. A API não permite que você entre no plano pago automaticamente, ela simplesmente retornará um erro quando o limite for atingido. Para usar a API, você precisa obter a tecla API válida.
Há um único ponto final, que pode ser usado em duas formas diferentes.
Para uma pesquisa no mesmo idioma (obtenha formulários de palavras):
function lookup( string $ text , string $ languageFrom ): DictionaryResponsee para tradução-com-look-up (obtenha várias traduções e informações adicionais, incluindo formulários de palavras, exemplos, significados, sinônimos, transcrição, etc.):
function lookup( string $ text , string $ languageFrom , string $ languageTo ): DictionaryResponseComo um exemplo mínimo, você pode passar o texto e seu idioma de origem:
$ 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
*/Os idiomas suportados podem variar dependendo da API de terceiros.
Por favor, verifique a lista de idiomas suportados. A API do Yandex Dictionary é gratuita para usar com limitações (até 10.000 referências por dia). Para usar a API, você precisa obter a tecla API válida.
Existem dois pontos de extremidade. Para uma única string:
function spellCheck( string $ text , string $ languageFrom = '' ): SpellCheckResponseE para várias cordas:
function spellCheckBulk( array $ texts , string $ languageFrom = '' ): SpellCheckResponseComo um exemplo mínimo, você pode passar apenas um texto para verificar:
$ 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"
}
}
}
*/Os idiomas suportados podem variar dependendo da API de terceiros.
Verifique a lista de idiomas suportados (basicamente, apenas inglês, russo e ucraniano são apoiados no momento). A API do Yandex Speller é gratuita para usar com limitações (até 10.000 chamadas/10 000 000 caracteres por dia). Não são necessárias chaves.
O ponto de extremidade principal é o método speak de PHPolyglot :
public function speak(
string $ text ,
string $ languageFrom ,
string $ audioFormat = TtsAudioFormat:: AUDIO_MP3 ,
array $ additionalData = []
): TtsResponse São necessários apenas dois parâmetros - texto para síntese $text e sua linguagem de origem $languageFrom .
Parâmetros opcionais $audioFormat e $additionalData podem ser omitidos. O formato de áudio permite especificar explicitamente o formato de áudio necessário do áudio retornado. Dados adicionais permitem definir parâmetros específicos da API para obter resultados mais precisos (voz, pitch, velocidade, etc.).
A lista de formatos de áudio que são reconhecidos atualmente:
Observe que nem todos eles podem ser apoiados pela sua API de escolha.
O método TTS retorna TtsResponse , que possui o método storeFile para armazenar arquivo gerado com o nome e a extensão necessários no diretório especificado (ou usando valores padrão):
function storeFile( string $ fileName = '' , string $ extension = '' , string $ directory = '' ): string Por padrão, o nome do arquivo é um hash simples de $ md5 de $text que foi usado para TTS, $extension está sendo preenchido com base no cabeçalho content-type (pelo menos, para o IBM Watson API), $directory é baseado na configuração de configuração.
( new PHPolyglot ())-> speak ( ' Hello world ' , ' en ' )-> storeFile (); // stores 3e25960a79dbc69b674cd4ec67a72c62.mp3Verifique a lista de idiomas e vozes suportadas. O IBM Watson TTS requer credenciais de API para autorização. Crie seu projeto TTS lá e obtenha suas credenciais específicas da API. A API é livre para usar com limitações (até 10.000 caracteres por mês).
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
Para acompanhar, consulte Changelog.md.
Além disso, consulte contribuindo.md.
Consulte a licença.
O phpologlot não possui nenhum dos resultados que as APIs possam retornar. Além disso, as APIs podem ter suas próprias regras sobre o uso de dados; portanto, cuidado com elas quando você as usar.
Alimentado pelo Package-Template de compositor e PHP Nano Rest.