Laravel AI Translator: o sistema de tradução por IA mais poderoso para produtos baseados em Laravel (ou Crowdin)
(github.com/kargnas)Já apresentei anteriormente, mas como atualizei com novos recursos e fiz um trabalho de refatoração, estou compartilhando novamente.
Sou fundador e operador do OP.GG, um serviço global de dados de jogos.
Oferecemos suporte a mais de 15 idiomas e, ao longo do tempo, passamos por muitos problemas com tradutores humanos: cronogramas atrasados por meses, abusos de agências de tradução que usavam tradutores automáticos às escondidas, e qualidade de tradução muito baixa. Este projeto foi concebido a partir dessas experiências.
Comecei este projeto com o objetivo de usar tecnologia de IA para, ao traduzir 3 ou mais idiomas, ser muito mais rápido do que delegar a humanos (em poucos minutos) e garantir uma qualidade pelo menos acima da média, mesmo que não seja a melhor possível. Se a tradução humana é 90 pontos e o Google Tradutor é 30 pontos, o objetivo deste tradutor é chegar a 80 pontos. E, com a evolução dos LLMs, acho que em 1 a 2 anos poderemos até mirar em mais de 90 pontos. Claro, o custo também é muito menor do que o de tradutores humanos.
Os principais recursos considerados são os seguintes.
- Inclui o máximo possível de strings relacionadas no contexto da solicitação à IA para aumentar a consistência da tradução e do uso de termos. Inclui no contexto as strings do idioma de origem e as strings já traduzidas do idioma de destino. [Novo recurso]
- Se você usa o CrowdIn, uma plataforma de tradução social e também integrada a fornecedores para terceirização de traduções, existe um recurso oculto para traduzir projetos do CrowdIn. Você pode usá-lo mesmo em projetos totalmente sem relação com Laravel. Não está na documentação, pois foi desenvolvido para uso interno. (comando:
ai-translator:translate-crowdin) [Novo recurso] - Permite configurar todos os idiomas do mundo suportados pelo LLM
- Também é possível adicionar recursos de idioma personalizados.
README.mdtraz exemplos como a variante cultural da Coreia do Norte e terminologia do Reddit.
- Também é possível adicionar recursos de idioma personalizados.
- Suporte a Claude e OpenAI (mas recomendo usar modelos Claude, pois a qualidade é melhor)
- Suporte ao Claude 3.7 Deep Thinking [Novo recurso]
- Suporte a pluralização (Plural), um dos recursos de localização do Laravel
- Faz a tradução de forma inteligente
- Distingue se é frase ou palavra e traduz de acordo
- Analisa a key para traduzir o mais próximo possível da intenção do desenvolvedor (por isso, é importante nomear as keys com muita clareza)
- Permite adicionar contexto por idioma e por projeto para que a tradução fique muito mais natural ao traduzir o projeto (essencial)
- Em vez de simplesmente mandar traduzir, informar claramente à IA o que certos termos específicos significam dentro do projeto é muito importante para melhorar a qualidade.
- Por exemplo, ao usar a palavra "Champion" em inglês, se você disser que em coreano ela deve ser traduzida como "chaempieon" e em chinês como 英雄 (herói), a tradução fica muito mais natural.
Se você estuda como escrever prompts, visite esta pasta e dê uma olhada nos prompts que criei. E, se tiver ideias que queira acrescentar, envie um Pull Request, por favor.
5 comentários
Será que também daria para fazer com a documentação oficial do Laravel?
Obrigado por apresentar um ótimo projeto.
Se possível, acho que seria mais prático de usar se vocês disponibilizassem uma imagem Docker.
Como usar APIs de LLM pode sair bem caro, seria bom também ter uma função de previsão de custo para os valores de entrada.
É interessante que esse pacote ofereça até coreano do norte; como usuário do OP.GG, estou torcendo por vocês.
Parece que vocês se dedicam a oferecer suporte a vários idiomas desde o começo; estou torcendo por vocês.