Wrapper em torno do dicionário multilíngue online Glosbe. Traduza e obtenha definições de palavras entre idiomas.
Veja uma lista completa de idiomas suportados.
Adicione esta linha ao Gemfile da sua aplicação:
gem 'glosbe-translate'
E então execute:
$ bundle
Ou instale você mesmo como:
$ gem install glosbe-translate
Todas as traduções e definições seguem os códigos de idiomas ISO-639 to
e from
versões de dois ou três caracteres. Glosbe oferece suporte a uma longa lista de idiomas.
Métodos de classe no objeto de linguagem que permitem fazer uma única pesquisa:
Glosbe :: Language . translate ( "please" , from : :en , to : :nl )
=> "alstublieft"
Busque uma série de definições na linguagem from
:
Glosbe :: Language . define ( "pineapple" , from : :en , to : :fr )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
Busque uma série de definições na linguagem to
:
Glosbe :: Language . translated_define ( "pie" , from : :en , to : :fr )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
Qualquer um dos três métodos acima também pode usar o par de valores-chave mais simples de from: :to
idiomas:
Glosbe :: Language . translate ( "fromage" , fr : :en )
=> "cheese"
As traduções e definições são feitas a partir de um objeto Language
:
language = Glosbe :: Language . new ( from : "eng" , to : "nld" )
Símbolos e strings são aceitos e o código do idioma será convertido para corresponder ao esperado pela API.
Os mesmos três métodos estão disponíveis para traduzir e definir uma frase usando este objeto:
language . translate ( "please" )
=> "alstublieft"
language . define ( "pineapple" )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
language . translated_define ( "pie" )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
Fazer uma pesquisa retornará um objeto Response
:
response = language . lookup ( "coffee" )
A resposta representa todos os campos retornados da API em uma estrutura muito semelhante.
O HTTP foi 200 OK?
response.success?
=> true
Algum resultado foi retornado?
response.found?
=> true
Os campos na resposta são mapeados diretamente por conveniência:
response . from
=> "en"
response . to
=> "nl"
response . phrase
=> "coffee"
Às vezes, uma mensagem pode ser retornada do servidor. Isto é particularmente interessante para avisos de limitação de taxa:
response . message
=> "Too many queries, your IP has been blocked"
Os métodos de conveniência extraem as mesmas três funções e retornam valores repetidos acima:
response . translation
response . define
response . translated_define
Os resultados brutos que correspondem à estrutura da API estão disponíveis aqui.
A lista de todos os resultados está disponível em uma resposta:
response . results
=> [ ... ]
Cada objeto de resultado possui a frase traduzida, se presente;
result . phrase
=> "koffie"
O resultado então lista seus autores:
result . authors
=> [ ... ]
E seus significados:
result . meanings
=> [ ... ]
Cada significado tem linguagem e texto:
meaning . text
=> "Een drank bekomen door infusie van de bonen van de koffieplant in heet water."
meaning . language
=> "nl"
Nenhum desses campos tem garantia de existência. Embora eles retornem uma string ou nil
para campos de valor e sempre retornem uma matriz vazia para campos de coleção.
O log é padronizado como nil
, mas pode ser transmitido a qualquer objeto Logger
para depurar solicitações de rede.
Glosbe . logger = Logger . new ( "glosbe.log" )
Glosbe . logger = Rails . logger
Depois de verificar o repositório, execute bin/setup
para instalar as dependências. Em seguida, execute rake spec
para executar os testes. Você também pode executar bin/console
para obter um prompt interativo que permitirá experimentar.
Para instalar esta jóia em sua máquina local, execute bundle exec rake install
.
Relatórios de bugs e solicitações pull são bem-vindos no GitHub em https://github.com/kmcphillips/glosbe-translate.
Venha conversar comigo sobre no que você está trabalhando. Eu adoraria revisar os PRs se você encontrar bugs ou pensar em melhorias.
A gema está disponível como código aberto sob os termos da licença MIT.