Traduction automatique

La page d’administration de la localisation peut traduire automatiquement un fichier JSON de localisation en une ou plusieurs langues en un seul passage. Il repose sur une abstraction indépendante du fournisseur — Azure AI Translator, DeepL et Google Cloud Translation intégrés — et réutilise une mémoire de traduction soutenue par Dataverse, donc vous ne payez qu’une seule fois pour traduire chaque chaîne. Les résultats se téléchargent par langue ou sous forme d’un seul zip, chacun annoté avec le nombre de chaînes nouvellement traduites par rapport à celles réutilisées depuis la mémoire.

Traduction d’un fichier

Une fois la fonctionnalité configurée (voir Configuration, ci-dessous), un panneau de traduction apparaît sur la page Administration de la localisation du framework :

  1. Téléchargez un fichier — glisser-déposer ou parcourez un fichier JSON de localisation tel que app.en.json.
  2. Confirmez la langue source — elle est automatiquement détectée à partir du segment culture du nom du fichier (app.en.json) et reste modifiable.
  3. Choisissez les langues cibles — chaque culture que votre portail supporte et que le fournisseur peut traduire est proposée ; Les cultures que le prestataire ne peut pas traduire sont indiquées comme étant handicapées.
  4. Traduire — les chaînes sont envoyées en lots respectant les limites par requête du fournisseur, et les langues choisies sont traduites simultanément.
  5. Téléchargez — récupérez chaque langue seule ou toutes en code postal. Chaque ligne indique combien de chaînes ont été traduites par rapport à celles réutilisées depuis la mémoire.

Mémoire de traduction

Chaque chaîne que le fournisseur traduit est stockée dans Dataverse, indexée par le texte source, la langue source et la langue cible. La prochaine fois que cette même chaîne apparaît — dans un autre fichier, une autre exécution ou une modification qui la laisse intacte — elle est servie de mémoire au lieu d’être renvoyée. Comme les fournisseurs facturent par caractère, cela garde les répétitions et les retraductions progressives pratiquement gratuites, et le résultat par langue montre la répartition pour que vous puissiez voir exactement ce qui était nouveau.

Mise en place

Le panneau de translation n’apparaît que lorsque les deux pièces ci-dessous sont en place ; Sinon, la page d’administration l’omet (ou affiche une invite d’une ligne expliquant ce qui manque).

1. Installer la solution de translation mémoire

La mémoire de traduction se trouve dans deux tables Dataverse provisionnées par la PowerPortalsProLocalization solution gérée. Téléchargez la dernière solution managée issue des versions GitHub et importez-la dans votre environnement. La page d’administration détecte la solution par son nom unique et ne propose la traduction que lorsqu’elle est présente.

2. Enregistrer un prestataire de traduction

Trois fournisseurs livrent prêts à être utilisés — Azure AI Translator, DeepL et Google Cloud Translation — chacun dans son propre package NuGet, de sorte que le cadre de base ne dépend pas du fournisseur de traduction. Ajoutez le colis pour le service dont vous avez une clé et enregistrez-le à côté de AddPowerPortalsProWebServer(). Pour Azure, créez une ressource Azure AI Translator gratuite (F0) ou payante, puis enregistrez-la avec votre clé et votre région :

Pour DeepL, ajoutez le PowerPortalsPro.Web.Server.Translation.DeepL package et enregistrez-le avec votre clé d’authentification (les clés du niveau libre se terminant automatiquement vers :fx le point de terminaison gratuit) :

Pour Google Cloud Traduction, ajoutez le PowerPortalsPro.Web.Server.Translation.Google paquet et enregistrez-le avec une clé API qui active l’API Cloud Traduction :

Note

Laisser la clé vide est sûr : le fournisseur n’est tout simplement pas enregistré et le panneau de traduction reste caché, donc la même compilation s’exécute avec ou sans traduction configurée.

Amenez votre propre prestataire

La traduction est indépendante du fournisseur. Les fournisseurs intégrés Azure, DeepL et Google sont chacun une implémentation de ITranslationProvider, livrée dans leurs propres PowerPortalsPro.Web.Server.Translation.* paquets, de sorte que le cadre de base ne dépend pas du fournisseur de traduction. Pour utiliser un autre service — Amazon Translate, un modèle sur site, un LLM — implémentez-le ITranslationProvider et enregistrez-le à la place des services intégrés. Tout ce qui est au-dessus (l’interface d’administration, la mémoire de traduction, le batching, et les comptes traduit vs réutilisé) reste identique.

Blazor et React

Le panneau de traduction est un composant autonome sur les deux piles, donc vous pouvez l’héberger sur votre propre page d’administration au lieu de celle du framework. Chacun charge ses propres données de disponibilité et ne rend rien tant que la traduction n’est pas configurée :

React
Blazor

Note

Les exécutions de traduction sont automatisées : les requêtes sont divisées pour rester en dessous des limites de taille par requête du fournisseur, les langues cibles s’exécutent avec une concurrence plafonnée, et les réponses limitées (HTTP 429) sont réessayées avec un retour exponentiel — de sorte qu’un gros travail multilingue reste dans les limites de débit sur n’importe quel niveau fournisseur sans configuration supplémentaire.