PHPackages                             amqf/document-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. amqf/document-translator

ActiveLibrary

amqf/document-translator
========================

v3.0.3-beta(1y ago)020PHPPHP ^8

Since May 25Pushed 1y ago1 watchersCompare

[ Source](https://github.com/amqf/document-translator)[ Packagist](https://packagist.org/packages/amqf/document-translator)[ RSS](/packages/amqf-document-translator/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelogDependencies (3)Versions (12)Used By (0)

Sobre
=====

[](#sobre)

Traduz documentos de uma linguagem para outra.

Atualmente apenas lê arquivo PDF e persiste a tradução em um arquivo TXT. Está utilizando o Google Translator em sua versão gratuita e sem autenticação, então tem suas limitações (veja abaixo).

Utilização
==========

[](#utilização)

Como biblioteca
---------------

[](#como-biblioteca)

Para utilizar esta biblioteca no seu projeto pode seguir o exemplo abaixo.

Utilize o parâmetro `onTranslate` para persistir a tradução em um arquivo, banco de dados, ou qualquer outro lugar mais apropriado para o seu projeto.

**Exemplo:**

```
use DocumentTranslator\Core\Arguments;
use DocumentTranslator\Library\DocumentTranslator;
use DocumentTranslator\Library\Readers\PDFDocumentReader;
use DocumentTranslator\Library\Translators\GoogleTranslator;
use Exception;

define('INPUT_FILEPATH', './awesome.pdf');
define('OUTPUT_FILEPATH', './awesome.txt');
define('FROM_LANGUAGE', 'en');
define('TO_LANGUAGE', 'pt-br');
define('CHUNK', 5000);
define('INTERVAL', 60);

$fp = fopen(OUTPUT_FILEPATH, 'a');

DocumentTranslator::create(
   new PDFDocumentReader(),
   new GoogleTranslator
)->withFile(PDF_FILEPATH)
->fromLanguage(FROM_LANGUAGE)
->toLanguage(TO_LANGUAGE)
->setChunk(CHUNK)
->setInterval(INTERVAL)
->translate(
   onTranslate: function (string $old, string $new, int $offset) use ($fp) {
         echo sprintf("Processing offset %d...\n", $offset);
         fwrite($fp, $new);
   },
   onSuccess: function (string $amountTranslatedChars) {
         echo sprintf(
            "Processed %d characters.\n",
            $amountTranslatedChars
         );
         fclose($fp);
         exit(0);
   },
   onError: function (Exception $exception) use ($fp) {
         echo 'ERROR! ' . $exception->getMessage();
         fclose($fp);
         exit(1);
   }
);
```

Command Line
------------

[](#command-line)

Depois de instalada a biblioteca em um projeto, pode executar o `Command Line` utilizando `vendor/bin/document-translator`. Caso deseja executar o `Command Line` logo após clonar o projeto com o `Git`, ao invés de usar `vendor/bin/document-translator`, utilize `php index.php`.

Este é um script para terminal e o mínimo necessário para utilizar o script é:

**\#1 - Exemplo:**

```
# Traduz do Inglês para Português do Brasil (padrão)
$ ./vendor/bin/document-translator ./storage/arquivo_pdf.pdf ./storage/arquivo_traduzido.txt
```

Para traduzir do Português do Brasil (pt-br) para o Inglês (en):

**\#2 - Exemplo:**

```
$ composer install
$ ./vendor/bin/document-translator ./storage/arquivo_pdf.pdf ./storage/arquivo_traduzido.txt --from=pt-br --to=en
```

Para customizá-lo mais, veja o help exibido ao executar `./vendor/bin/document-translator`:

[![alt text](help.png)](help.png)

Requerimentos
=============

[](#requerimentos)

- composer
- PHP 8 ou superior

Limitações
==========

[](#limitações)

Entendo que você está interessado nas limitações diárias da API do Google Tradutor quando não há autenticação ou chave de API. Vamos explorar essas limitações:

1. **Limite de caracteres por requisição**:

    - O limite recomendado para cada requisição é de **5.000 caracteres** (pontos de código). Portanto, se você enviar mais do que isso em uma única chamada, poderá enfrentar problemas¹.
    - Além disso, a API é otimizada para traduções menores, e exceder esse limite pode afetar a qualidade das traduções.
2. **Quotas diárias e por minuto**:

    - Por padrão, o número de caracteres que você pode enviar por dia é **ilimitado**. No entanto, é recomendável monitorar o uso diário e ajustar as cotas conforme seu orçamento planejado.
    - As cotas variam dependendo da versão da API:
        - Caracteres enviados para o modelo geral por projeto por minuto: **6.000.000**.
        - Páginas enviadas para tradução de documentos por projeto por minuto: **2.400**¹.
3. **Traduções automáticas**:

    - As traduções feitas usando a API não consideram idiossincrasias ou variações de linguagem específicas de mercados locais. Portanto, as traduções resultantes podem ser monótonas, repetitivas ou imprecisas².
4. **Intervalo entre requisições**:

    - Não há um intervalo específico entre requisições definido pela API quando não há autenticação ou chave de API. No entanto, é uma boa prática evitar fazer muitas requisições em um curto período de tempo para não sobrecarregar o serviço.

Limitações do da API Google Translator
======================================

[](#limitações-do-da-api-google-translator)

A API do Google Tradutor possui algumas limitações para uso gratuito. Vamos explorá-las:

1. **Limite de caracteres por requisição**:

    - O limite recomendado para cada requisição é de **5.000 caracteres** (pontos de código). Portanto, se você enviar mais do que isso em uma única chamada, poderá enfrentar problemas¹.
    - Além disso, a API é otimizada para traduções menores, e exceder esse limite pode afetar a qualidade das traduções.
2. **Quotas diárias e por minuto**:

    - A API impõe cotas para o tamanho do conteúdo das requisições e o número de requisições que você pode enviar.
    - Por padrão, o número de caracteres que você pode enviar por dia é ilimitado. No entanto, é recomendável monitorar o uso diário e ajustar as cotas conforme seu orçamento planejado.
    - As cotas variam dependendo da versão da API (v2 ou v3) e do tipo de tradução (geral, transliteração ou romanização). Por exemplo:
        - Caracteres enviados para o modelo geral por projeto por minuto: 6.000.000.
        - Páginas enviadas para tradução de documentos por projeto por minuto: 2.400¹.
3. **Traduções automáticas**:

    - As traduções feitas usando a API não consideram idiossincrasias ou variações de linguagem específicas de mercados locais. Portanto, as traduções resultantes podem ser monótonas, repetitivas ou imprecisas².
4. **Autenticação e chaves de API**:

    - Para usar a API, você precisa ter uma conta no Google Cloud e obter uma chave de API do Tradutor. Essa chave é usada para autenticar solicitações e controlar o uso da API⁴.

Limitações por conta da não-autenticação e não-uso de chaves de API
===================================================================

[](#limitações-por-conta-da-não-autenticação-e-não-uso-de-chaves-de-api)

A biblioteca **stichoza/google-translate-php** não utiliza autenticação e chaves de API, o que significa que ela não requer credenciais específicas para acessar a API do Google Tradutor. No entanto, essa abordagem tem algumas limitações:

1. **Limite de IP e uso compartilhado**:

    - Como a biblioteca não usa autenticação individual, todas as solicitações de tradução feitas por ela são agrupadas em um único endereço IP.
    - Isso pode levar a limitações impostas pelo Google para compartilhamento de recursos. Se muitos usuários estiverem usando a mesma biblioteca sem autenticação, o limite de uso compartilhado poderá ser atingido mais rapidamente.
2. **Cotas e bloqueios**:

    - O Google Tradutor impõe cotas para o número de caracteres traduzidos por dia e por minuto. Sem autenticação, essas cotas são aplicadas globalmente para todos os usuários que usam o mesmo IP.
    - Se o limite for excedido, você poderá enfrentar bloqueios temporários ou restrições de acesso.
3. **Qualidade das traduções**:

    - A ausência de autenticação significa que a biblioteca não pode usar credenciais específicas do projeto para personalizar as traduções com base no contexto ou nas preferências do usuário.
    - As traduções podem ser mais genéricas e menos precisas em comparação com o uso autenticado da API.
4. **Recomendação**:

    - Se você planeja usar a biblioteca em um ambiente de produção ou para traduções frequentes, é altamente recomendável configurar autenticação e usar uma chave de API do Google Tradutor.
    - Dessa forma, você terá controle individual sobre as cotas, melhor qualidade de tradução e evitará problemas de compartilhamento de IP.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

10

Last Release

719d ago

Major Versions

v1.0.4-beta → v2.0.0-beta2024-05-26

v2.0.4-beta → v3.0.0-beta2024-05-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/def311a298a04a57185dec2545b9d7d9a4b40c216bdea9263cf1c37add346482?d=identicon)[amqf](/maintainers/amqf)

---

Top Contributors

[![amqf](https://avatars.githubusercontent.com/u/142283797?v=4)](https://github.com/amqf "amqf (37 commits)")

### Embed Badge

![Health badge](/badges/amqf-document-translator/health.svg)

```
[![Health](https://phpackages.com/badges/amqf-document-translator/health.svg)](https://phpackages.com/packages/amqf-document-translator)
```

###  Alternatives

[tanmuhittin/laravel-google-translate

Translate translation files to other languages using google translate api

4312.2M11](/packages/tanmuhittin-laravel-google-translate)[inhere/console

php console library, provide console argument parse, console controller/command run, color style, user interactive, information show.

3477.4k12](/packages/inhere-console)[devaslanphp/auto-translate

Auto generate translation JSON files

6623.1k](/packages/devaslanphp-auto-translate)[web64/laravel-nlp

Laravel package for accessing NLP tools

5711.2k](/packages/web64-laravel-nlp)[hpolthof/laravel-translations-db

A database translations implementation for Laravel 5.

545.8k](/packages/hpolthof-laravel-translations-db)[enupal/translate

Translate your website templates and plugins into multiple languages. Bulk translation with Google Translate or Yandex.

1172.1k](/packages/enupal-translate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
