AI-powered translation tool for Laravel language files
We've expanded our capabilities with support for custom language styles, allowing for unique and creative translations. Learn more about Custom Language Styles
Laravel AI Translator is a powerful tool designed to streamline the localization process in Laravel projects. It automates the tedious task of translating strings across multiple languages, leveraging advanced AI models to provide high-quality, context-aware translations.
Key benefits:
Que vous travailliez sur un projet personnel ou une application à grande échelle, le traducteur de Laravel AI simplifie le processus d'internationalisation, vous permettant de vous concentrer sur la construction de grandes fonctionnalités au lieu de lutter avec des traductions.
lang directoryDe plus, cet outil est conçu pour traduire vos fichiers linguistiques intelligemment:
Voulez-vous savoir comment cela fonctionne? Voir l'invite dans src/AI .
En plus des traductions linguistiques standard, ce package prend désormais en charge les styles de langage personnalisés, permettant des localisations uniques et créatives.
Le package comprend plusieurs styles de langue intégrés:
ko_kp : Coréen de style nord-coréenCeux-ci sont automatiquement disponibles et ne nécessitent pas de configuration supplémentaire.
Pour démontrer les capacités de style personnalisées, nous avons implémenté un anglais "Reddit Style":
Ce style imite le langage décontracté et souvent humoristique trouvé sur Reddit, avec:
Exemple de configuration:
' locale_names ' => [
' en_reddit ' => ' English (Reddit) ' ,
],
' additional_rules ' => [
' en_reddit ' => [
" - Incorporate sarcasm and exaggeration " ,
" - Use popular internet slang and meme references " ,
" - Add humorous calls for sources on obvious statements " ,
],
], Vous pouvez créer vos propres styles de langage personnalisés en ajoutant de nouvelles entrées à la locale_names et additional_rules dans la configuration. Cela vous permet d'adapter les traductions à des publics ou des plateformes spécifiques.
Ces styles personnalisés offrent des moyens créatifs de personnaliser vos traductions, ajoutant un flair unique à votre contenu localisé. Utilisez de manière responsable pour améliorer l'engagement des utilisateurs tout en maintenant la clarté et la pertinence pour votre public.
Installez le package via le compositeur:
composer require kargnas/laravel-ai-translator Ajoutez la touche API Openai à votre fichier .env :
OPENAI_API_KEY=your-openai-api-key-here
Vous pouvez obtenir une clé API sur le site Web OpenAI.
(Si vous souhaitez utiliser Claude d'Anthropic, voir l'étape 4 ci-dessous pour les instructions de configuration.)
(Facultatif) Publier le fichier de configuration:
php artisan vendor:publish --provider= " KargnasLaravelAiTranslatorServiceProvider " Cette étape est facultative mais recommandée si vous souhaitez personnaliser le comportement du package. Il créera un fichier config/ai-translator.php où vous pouvez modifier divers paramètres.
(Facultatif) Si vous souhaitez utiliser le claude d'Anthropic au lieu du gpt d'Openai, mettez à jour le fichier config/ai-translator.php :
' ai ' => [
' provider ' => ' anthropic ' ,
' model ' => ' claude-3-5-sonnet-20240620 ' ,
' api_key ' => env ( ' ANTHROPIC_API_KEY ' ),
], Ensuite, ajoutez la clé API anthropique à votre fichier .env :
ANTHROPIC_API_KEY=your-anthropic-api-key-here
Vous pouvez obtenir une clé API anthropique du site Web anthropique. Pour de meilleurs résultats, nous vous recommandons d'utiliser le modèle Claude-3-5-Sonnet pour vos traductions plutôt qu'Openai GPT. Ce modèle fournit des traductions plus précises et naturelles.
Vous êtes maintenant prêt à utiliser le traducteur Laravel AI!
Pour traduire vos fichiers linguistiques, exécutez la commande suivante:
php artisan ai-translator:translateCette commande sera:
langCompte tenu d'un fichier de langue anglaise:
<?php
return [
' notifications ' => [
' new_feature_search_sentence ' => ' New feature: Now you can type sentences not only words. Even in your languages. The AI will translate them to Chinese. ' ,
' refresh_after_1_min ' => ' Refresh after 1 minutes. New content will be available! (The previous model: :model, Updated: :updated_at) ' ,
]
];Le package générera des traductions comme celles-ci:
<?php
return array (
' notifications.new_feature_search_sentence ' => ' 새로운 기능: 이제 단어뿐만 아니라 문장도 입력할 수 있어요. 심지어 여러분의 언어로도 가능해요. ' ,
' notifications.refresh_after_1_min ' => ' 1분 후에 새로고침하세요. 새로운 내용이 준비될 거예요! (이전 모델: :model, 업데이트: :updated_at) ' ,
); <?php
return array (
' notifications.new_feature_search_sentence ' => '新功能:现在你不仅可以输入单词,还可以输入句子。甚至可以用你的语言。 ' ,
' notifications.refresh_after_1_min ' => ' 1分钟后刷新。新内容即将到来!(之前的模型::model,更新时间::updated_at) ' ,
); <?php
return array (
' notifications.new_feature_search_sentence ' => ' ฟีเจอร์ใหม่: ตอนนี้คุณพิมพ์ประโยคได้แล้ว ไม่ใช่แค่คำเดียว แม้แต่ภาษาของคุณเอง ' ,
' notifications.refresh_after_1_min ' => ' รีเฟรชหลังจาก 1 นาที จะมีเนื้อหาใหม่ให้ดู! (โมเดลก่อนหน้า: :model, อัปเดตเมื่อ: :updated_at) ' ,
); <?php
return array (
' notifications.new_feature_search_sentence ' => ' 혁명적 새로운 기능: 동무들! 이제 단어뿐만 아니라 문장도 입력하여 단어의 력사를 확인할 수 있습니다. 모국어로도 괜찮습니다. 인공지능이 중국어로 번역해드리겠습니다. ' ,
' notifications.refresh_after_1_min ' => ' 1분후에 새로고침하십시요. 새로운 내용을 볼수 있습니다! (이전 모델: :model, 갱신: :updated_at) ' ,
); <?php
return array (
' notifications.new_feature_search_sentence ' => ' Whoa, hold onto your keyboards, nerds! We ' ve leveled up our search game. Now you can type entire sentences, not just measly words. Mind. Blown. And get this - it even works in your weird non-English languages! Our AI overlord will graciously translate your gibberish into Chinese. You ' re welcome. ' ,
' notifications.refresh_after_1_min ' => ' Yo, hit that F5 in 60 seconds, fam. Fresh content incoming! (Previous model was :model, last updated when dinosaurs roamed the Earth at :updated_at) ' ,
);Si vous souhaitez personnaliser les paramètres, vous pouvez publier le fichier de configuration:
php artisan vendor:publish --provider= " KargnasLaravelAiTranslatorServiceProvider " Cela créera un fichier config/ai-translator.php où vous pouvez modifier les paramètres suivants:
source_directory : Si vous utilisez un répertoire différent pour les fichiers linguistiques au lieu du répertoire lang par défaut, vous pouvez le spécifier ici.
ai : Configurez ici le fournisseur AI, le modèle et la clé API. Voici notre recommandation pour les meilleurs modèles:
| Fournisseur | Modèle | Coût (E / S par jetons 1M) | Décortiquer |
|---|---|---|---|
| anthropique | Claude-3-5-Sonnet-20240620 | 3,00 $ / 15,00 $ | La meilleure qualité, un peu lente. Nous recommandons. |
| anthropique | Claude-3-Haiku-20240307 | 0,25 $ / 1,25 $ | De faible qualité, mais mieux que GPT-3.5 |
| Openai | GPT-4O | 5,00 $ / 15,00 $ | Qualité équilibrée et grande vitesse |
| Openai | GPT-4O-MINI | 0,15 $ / 0,60 $ | Qualité équilibrée et bon marché |
Voici des modèles recommandés qui sont chers ou de faible qualité:
| Fournisseur | Modèle | Coût (E / S par jetons 1M) |
|---|---|---|
| anthropique | Claude-3-Opus-20240229 | 15,00 $ / 75,00 $ |
| anthropique | Claude-3-Sonnet-20240229 | 3,00 $ / 15,00 $ |
| Openai | GPT-4-turbo | 10,0 $ / 30,0 $ |
| Openai | GPT-3,5-turbo | 0,50 $ / 1,50 $ |
locale_names : Ce mappage des codes de paramètres régionaux aux noms de langues améliore la qualité de la traduction en fournissant un contexte à l'IA.
additional_rules : ajoutez des règles personnalisées à l'invite de traduction. Ceci est utile pour personnaliser le style des messages ou créer des styles de langue entièrement nouveaux.
Exemple de configuration:
<?php
return [
' source_directory ' => ' lang ' ,
' ai ' => [
' provider ' => ' openai ' , // or 'anthropic'
' model ' => ' gpt-4o ' , // or 'gpt-4', 'gpt-3.5-turbo', 'claude-3-5-sonnet-20240620'
' api_key ' => env ( ' OPENAI_API_KEY ' ), // or env('ANTHROPIC_API_KEY')
],
' locale_names ' => [
' en ' => ' English ' ,
' ko ' => ' Korean ' ,
' zh_cn ' => ' Chinese (Simplified) ' ,
// ... other locales
],
' additional_rules ' => [
' default ' => [
" Use a friendly and intuitive tone of voice, like the service tone of voice of 'Discord'. " ,
],
' ko ' => [
" 한국의 인터넷 서비스 '토스'의 서비스 말투 처럼, 유저에게 친근하고 직관적인 말투로 설명하고 존댓말로 설명하세요. " ,
],
],
]; Assurez-vous de définir la clé API de votre fournisseur AI choisi dans votre fichier .env .
Actuellement, ce package ne prend en charge que les fichiers de langage PHP utilisés par Laravel. Les fichiers linguistiques JSON ne sont pas pris en charge et il n'est pas prévu de les ajouter à l'avenir.
Nous vous recommandons d'utiliser des fichiers PHP pour gérer les traductions, en particulier lorsque vous traitez avec plusieurs langues. Voici pourquoi:
Structure : les fichiers PHP permettent une structure plus organisée avec des tableaux imbriqués, ce qui facilite les traductions liées.
Commentaires : Vous pouvez ajouter des commentaires dans des fichiers PHP pour fournir un contexte ou des instructions pour les traducteurs.
Performances : les fichiers PHP sont légèrement plus rapides à charger par rapport aux fichiers JSON, car ils ne nécessitent pas d'analyse.
Flexibilité : les fichiers PHP permettent des opérations plus complexes, telles que l'utilisation de variables ou de conditions dans vos traductions.
Évolutivité : Lors de la gestion d'un grand nombre de traductions sur plusieurs langues, la structure du répertoire des fichiers PHP facilite la navigation et le maintien.
Si vous utilisez actuellement des fichiers JSON pour vos traductions, nous vous recommandons de migrer vers les fichiers PHP pour une meilleure compatibilité avec ce package et une gestion améliorée de vos traductions.
Ce package prend en charge les modèles GPT d'Openai et Claude pour les traductions d'Anthropic, chacun avec ses propres forces:
Nous travaillons constamment pour améliorer le traducteur de l'IA de Laravel. Voici quelques fonctionnalités et améliorations que nous prévoyons:
Si vous souhaitez contribuer à l'une de ces tâches, n'hésitez pas à soumettre une demande de traction!
Les contributions sont les bienvenues! N'hésitez pas à soumettre une demande de traction.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.