Partager via


Services de traduction automatique dans SharePoint

Découvrez le Service de traduction automatique, qui est une nouvelle application de service dans SharePoint qui fournit une traduction automatique des fichiers et des sites.

Vue d’ensemble du Service de traduction automatique

Remarque

  • En septembre 2018, il a été annoncé que les services de traduction automatique seraient dépréciés dans SharePoint pour Microsoft 365, mais qu'ils resteraient pris en charge. Ce service deviendra entièrement indisponible et non pris en charge d'ici la fin du mois de juillet 2022.
  • L'API du service de traduction automatique est marquée comme obsolète et ne sera pas disponible via le CSOM SharePoint.
  • Toutes les instances existantes des API de Machine Translation Server n'afficheront plus de fonctionnalité multilingue dans votre environnement Microsoft 365 d'ici la fin juillet 2022.
  • Cet article sera retiré en décembre 2022.
  • Si vous utilisez des sites de communication modernes dans SharePoint, nous vous recommandons d’utiliser la fonctionnalité pages et sites multilingues modernes au lieu de la fonctionnalité des variantes des services de traduction automatique.

Le Service de traduction automatique est une nouvelle application de service dans SharePoint qui fournit une traduction automatique des fichiers et des sites. Lorsque l’application du service de traduction automatique traite une demande de traduction, elle la transfère au service de traduction automatique hébergé dans le cloud de Microsoft Translator , où le travail de traduction réel est effectué. Ce service cloud met également la Microsoft Office, les Lync, les fonctionnalités de traduction Yammer et Bing.

L’application service de traduction automatique traite les demandes de traduction de manière asynchrone et synchrone. Les demandes de traduction asynchrones sont traitées lorsque le travail du minuteur de traduction s’exécute. L’intervalle par défaut du travail du minuteur de traduction est de 15 minutes. Vous pouvez gérer ce paramètre dans l’Administration centrale ou à l’aide de Windows PowerShell. Vous pouvez également définir le minuteur pour qu’il s’exécute immédiatement à l’aide de la commande suivante :


$tj = get-sptimerjob "SharePoint Translation Services"
$tj.Runnow()

Traduction synchrone sont traitées dès qu'ils sont soumis.

Composants partagés avec Word Automation Services

L'architecture Service de traduction automatique partage plusieurs composants de l'architecture Microsoft Word Automation Services. Pour plus d’informations sur l’architecture De Word Automation Services, consultez Architecture de Word Automation Services.

Le modèle d'objet Service de traduction automatique prend comme modèle le modèle d'objet Word Automation Services, afin que si vous êtes habitué à programmation Word Automation Services, vous trouverez des similitudes avec la programmation par rapport au modèle d'objet Service de traduction automatique.

Utilisation du modèle objet serveur du Service de traduction automatique

Les applications qui utilisent le modèle objet serveur doivent être exécutées directement sur un serveur qui exécute SharePoint. Pour plus d’informations sur la création d’applications pouvant être hébergées à distance, consultez Utilisation du modèle objet client Des services de traduction automatique plus loin dans cette rubrique. Le modèle d'objet serveur Service de traduction automatique se trouve dans l'espace de noms Microsoft.Office.TranslationServices, qui se trouve dans Microsoft.Office.TranslationServices.dll.

Utilisation du modèle d'objet de serveur, vous pouvez soumettre des demandes à l'application Service de traduction automatique asynchrone ou synchrone (pour traduction instantanée). L'application Service de traduction automatique comporte deux files d'attente de travail pour stocker les demandes de traduction : la file d'attente asynchrone et la file d'attente synchrone. Demandes dans la file d'attente synchrone sont traités comme une priorité plus élevée et sont converties avant demandes dans la file d'attente asynchrone. Les demandes sont routés à un de ces files d'attente en fonction de la classe que vous utilisez.

Extraits de code et exemples d’applications associés

Pour obtenir un exemple de code montrant comment utiliser le modèle objet serveur à partir d’une application console, voir SharePoint : Access Machine Translation Service using server object model.

Traduction asynchrone avec le modèle objet serveur

La classe TranslationJob définit un ensemble d'éléments à traduire. Cela peut être un fichier unique ou tous les fichiers dans une bibliothèque de documents ou un dossier. Projets de traduction qui sont envoyés de cette manière sont stockés dans la base de données de traduction. Chaque fois que le travail du minuteur traduction s'exécute, il prend certains des projets à partir de la base de données de traduction et les ajoute à la file d'attente asynchrone à traduire. L'intervalle par défaut du travail du minuteur de traduction est de 15 minutes.

Le code suivant montre comment traduire un fichier unique asynchrone.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture)); 
job.AddFile(input, output);
job.Start(); 

Le code suivant montre comment traduire tous les fichiers dans un dossier de manière asynchrone.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture));
using (SPSite siteIn = new SPSite(inputFolder))
{
    using (SPWeb webIn = siteIn.OpenWeb())
    {
        using (SPWeb webOut = siteOut.OpenWeb())
        {
            SPFolder folderIn = webIn.GetFolder(inputFolder);
            SPFolder folderOut = webOut.GetFolder(outputFolder);                    
            job.AddFolder(folderIn, folderOut, true);
            job.Start();
        }
    }
}

Le code suivant montre comment traduire asynchrone chaque fichier dans une bibliothèque de documents.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture));
using (SPSite siteIn = new SPSite(inputList))
{
    using (SPWeb webIn = siteIn.OpenWeb())
    {
        using (SPSite siteOut = new SPSite(outputList))
        {
            using (SPWeb webOut = siteOut.OpenWeb())
            {
                SPDocumentLibrary listIn = (SPDocumentLibrary)webIn.GetList(inputList);
                SPDocumentLibrary listOut = (SPDocumentLibrary)webOut.GetList(outputList);
                job.AddLibrary(listIn, listOut);
                job.Start();
            }
        }
    }
}

Traduction synchrone avec le modèle objet serveur

La classe SyncTranslator vous permet de demander une traduction instantanée des fichiers et des flux de données. Demandes de traduction qui sont effectuées à l'aide de ce cours ne sont pas routés de la même façon que les demandes qui sont effectuées à l'aide de la classe TranslationJob. Ils sont immédiatement ajoutées à la file d'attente synchrone soient traités. La classe TranslationItemInfo contient les détails pour un seul élément est convertie en la Service de traduction automatique. La méthode SyncTranslator.Translate retourne une instance de cette classe dans des projets de traduction synchrone.

Le code suivant montre comment traduire un fichier unique synchrone.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
TranslationItemInfo itemInfo = job.Translate(input, output);

Le code suivant montre comment traduire synchrone un flux de données.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
FileStream inputStream = new FileStream(input, FileMode.Open);
FileStream outputStream = new FileStream(output, FileMode.Create);     
TranslationItemInfo itemInfo = job.Translate(inputStream, outputStream, fileFormat);
inputStream.Close();
outputStream.Flush();
outputStream.Close();

Le code suivant montre comment traduire une séquence d'octets synchrone.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
Byte[] inputByte;
Byte[] outputByte;
inputByte = File.ReadAllBytes(input);
outputByte = null;
TranslationItemInfo itemInfo = job.Translate(inputByte, out outputByte, fileFormat);
FileStream outputStream = File.Open(output, FileMode.Create);
MemoryStream memoryStream = new MemoryStream(outputByte);
memoryStream.WriteTo(outputStream);
outputStream.Flush();
outputStream.Close();

Autorisations

Si la demande de traduction est en cours d'exécution pour l'utilisateur peut accéder au fichier à traduire et cet utilisateur peut accéder à l'emplacement de sortie pour le fichier, l'utilisateur désactive la vérification de la sécurité et le fichier est converti.

Utilisation du modèle objet client du Service de traduction automatique

Service de traduction automatique inclut également un modèle d'objet client (CSOM) qui autorise l'accès à la Service de traduction automatique API pour en ligne, en local et le développement mobile. Applications clientes peuvent utiliser la CSOM à accéder au serveur contenu et fonctionnalités. La CSOM mettent en œuvre, la plupart des fonctionnalités de traduction du serveur, mais le CSOM et le modèle objet côté serveur n'ont pas une disparités qui existent. Asynchrone traduction de fichiers individuels et les fichiers dans une bibliothèque de documents ou un dossier sont pris en charge. Traduction synchrone des fichiers est pris en charge, mais les flux de fichiers ne sont pas pris en charge.

Le modèle CSOM du Service de traduction automatique comprend un modèle objet côté client managé .NET et des modèles objet Microsoft Silverlight et JavaScript. Il repose sur le modèle CSOM de SharePoint. Par conséquent, le code client accède d’abord au modèle SCOM de SharePoint, puis au modèle CSOM du Service de traduction automatique.

Pour plus d'informations sur la CSOM SharePoint, voir Modèle objet client managé. Pour plus d'informations sur l'objet ClientContext, qui est le point d'entrée à la CSOM, voir Contexte de client en tant qu'objet central.

Tableau 1 indique les objets équivalents qui fournissent les API CSOM pour les objets du serveur Service de traduction automatique.

Tableau 1. API de modèle objet serveur et leurs équivalents CSOM

Server .NET gérées et Silverlight JavaScript
Microsoft.Office.TranslationServices.TranslationJob
Microsoft.Office.TranslationServices.Client.TranslationJob
SP.Translation.TranslationJob
Microsoft.Office.TranslationServices.TranslationJobInfo
Microsoft.Office.TranslationServices.Client.TranslationJobInfo
SP.Translation.TranslationJobInfo
Microsoft.Office.TranslationServices.TranslationItemInfo
Microsoft.Office.TranslationServices.Client.TranslationItemInfo
SP.Translation.TranslationItemInfo
Microsoft.Office.TranslationServices.TranslationJobStatus
Microsoft.Office.TranslationServices.Client.TranslationJobStatus
SP.Translation.TranslationJobStatus
Microsoft.Office.TranslationServices.SyncTranslator
Microsoft.Office.TranslationServices.Client.SyncTranslator
SP.Translation.SyncTranslator

Modèle CSOM managé .NET du Service de traduction automatique et modèle SCOM Silverlight

Pour le modèle CSOM géré .NET, obtenez une instance ClientContext (située dans l’espace de noms Microsoft.SharePoint.Client dans Microsoft.SharePoint.Client.dll). Utiliser le modèle d'objet dans l'espace de noms Microsoft.Office.TranslationServices.Client dans la Microsoft.Office.TranslationServices.Client.dll.

Extraits de code et applications d’exemple connexes

Pour obtenir un exemple de code montrant comment utiliser le modèle CSOM managé .NET, voir SharePoint : Access Machine Translation Service using the client object model.

Pour le Silverlight CSOM, obtenir une instance de ClientContext (située dans l'espace de noms Microsoft.SharePoint.Client dans le Microsoft.SharePoint.Client.Silverlight.dll). Utiliser le modèle d'objet dans l'espace de noms Microsoft.Office.TranslationServices.Client dans la Microsoft.Office.TranslationServices.Silverlight.dll.

Extraits de code et exemples d’applications associés

Pour obtenir un exemple de code montrant comment utiliser le modèle CSOM Silverlight, voir SharePoint : Access Machine Translation Service from Silverlight application.

Pour traduire un seul fichier asynchrone :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture  = "cultureID";
string name = "translationJobName";
string  inputFile =  "http://serverName/path/inputFileName";
string outputFile = "http://serverName/path/outputFileName";
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFile(inputFile , outputFile);
job.Name = name;
job.Start();
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

Pour traduire un dossier asynchrone :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID";
string name = "translationJobName";
string inputFolder = clientContext.Web.GetFolderByServerRelativeUrl("inFolderPath");
string outputFolder = clientContext.Web.GetFolderByServerRelativeUrl("outFolderPath");  
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFolder(inputFolder, outputFolder, true);
job.Name = name;
job.Start();            
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

Pour convertir une bibliothèque de manière asynchrone :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID";
string name = "translationJobName";
string inputLibrary = clientContext.Web.Lists.GetByTitle("inputLibraryName");
string outputLibrary = clientContext.Web.Lists.GetByTitle("outputLibraryName");
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFolder(inputLibrary , outputLibrary , true);
job.Name = name;
job.Start();            
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

Pour traduire un fichier unique synchrone :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID"
string inputFile = "http://serverName/path/inputFileName";
string outputFile = "http://serverName/path/outputFileName";
SyncTranslator job = new SyncTranslator(clientContext , culture);
job.OutputSaveBehavior = SaveBehavior.AlwaysOverwrite;
ClientResult<TranslationItemInfo> cr = job.Translate(inputFile, outputFile );
clientContext.ExecuteQuery(); 
//To retrieve additional information about the translation job.
string errorCode = clientContext.Value.ErrorCode;
string errorMessage = clientContext.Value.ErrorMessage;
string translateID = clientContext.Value.TranslationId;
string succeedResult  = clientContext.Value.Succeeded;
string failResult  = clientContext.Value.Failed;
string cancelStatus = clientContext.Value.Canceled;
string inProgressStatus = clientContext.Value.InProgress;
string notStartedStatus = clientContext.Value.NotStarted;

Pour récupérer toutes les langues prises en charge par le Service de traduction automatique:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
IEnumerable<string> supportedLanguages = TranslationJob.EnumerateSupportedLanguages(clientContext);
clientContext.ExecuteQuery();
foreach (string item in supportedLanguages)
{
    Console.Write(item + ", ");
}

Pour vérifier si une langue spécifique est prise en charge :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<bool> isSupported;
isSupported = TranslationJob.IsLanguageSupported(clientContext, "language");
clientContext.ExecuteQuery();

Pour récupérer toutes les extensions de nom de fichiers sont pris en charge par le Service de traduction automatique:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
IEnumerable<string> fileExt = TranslationJob.EnumerateSupportedFileExtensions(clientContext);
clientContext.ExecuteQuery();
foreach (string item in fileExt)
{
    Console.Write(item + ", ");
}

Pour vérifier si une extension de nom de fichier spécifique est pris en charge :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<bool> isSupported;
isSupported = TranslationJob.IsFileExtensionSupported(clientContext, "fileExtension");
clientContext.ExecuteQuery();

Pour vérifier la limite de taille de fichier pour une extension de nom de fichier spécifique :


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<int> maxSize;
maxSize = TranslationJob.GetMaximumFileSize(clientContext, "fileExtension");
clientContext.ExecuteQuery();

Modèle CSOM JavaScript du Service de traduction automatique

Pour le JavaScript CSOM, obtenir une instance de SP.ClientContext et utilisez le modèle d'objet dans le SP. Fichier Translation.js.

Extraits de code et applications d’exemple connexes

Pour obtenir un exemple de code montrant comment utiliser le modèle CSOM JavaScript, voir SharePoint : Accès au service de traduction automatique avec JavaScript.

Pour traduire un seul fichier asynchrone :


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
asyncJob.addFile("inputFilePath", "outputFilePath");
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

Pour traduire un dossier asynchrone :


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
var inputFolder = clientContext.get_web().getFolderByServerRelativeUrl("inputFilePath");
var outputFolder = clientContext.get_web().getFolderByServerRelativeUrl("outputFilePath");
asyncJob.addFolder(inputFolder, outputFolder, true);
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

Pour convertir une bibliothèque de manière asynchrone :


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
var inputLibrary= clientContext.get_web().get_lists().getByTitle("inputFilePath");
var outputLibrary= clientContext.get_web().get_lists().getByTitle("outputFilePath");
asyncJob.addLibrary(inputLibrary, outputLibrary);
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

Pour traduire un fichier unique synchrone :


var result;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var job = SP.Translation.SyncTranslator.newObject(clientContext, "cultureID");
job.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
result = job.translate("inputFilePath", "outputFilePath");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededSync),
Function.createDelegate(this, this.onQueryFailed));

Pour récupérer toutes les langues prises en charge par le Service de traduction automatique:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.enumerateSupportedLanguages(clientContext);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededListAllLang),Function.createDelegate(this, this.onQueryFailed));

Pour vérifier si une langue spécifique est prise en charge :


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.isLanguageSupported(clientContext," language");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededTestLang),Function.createDelegate(this, this.onQueryFailed));

Pour récupérer toutes les extensions de nom de fichiers sont pris en charge par le Service de traduction automatique:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.enumerateSupportedFileExtensions(clientContext);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededListAllFileExt),Function.createDelegate(this, this.onQueryFailed));

Pour vérifier si une extension de nom de fichier spécifique est prise en charge :


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.isFileExtensionSupported(clientContext," fileExtension");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededTestFileExt),Function.createDelegate(this, this.onQueryFailed));

Service REST du Service de traduction automatique

SharePoint comprend un service REST (Representational State Transfer) qui vous permet d’interagir à distance avec l’application Service de traduction automatique en utilisant n’importe quelle technologie qui prend en charge les demandes web REST. Pour obtenir des informations générales sur REST dans SharePoint, voir Utiliser les opérations de requête OData dans les requêtes REST SharePoint.

API REST de traduction asynchrone

L'API REST pour effectuer la traduction asynchrone est la suivante :

http://serverName/_api/TranslationJob('language')

Pour traduire un seul fichier asynchrone :

http://serverName/_api/TranslationJob('language')/TranslateFile(inputFile='/path/intput file', outputFile='/path/output file')

Pour traduire un dossier asynchrone :

http://serverName/_api/TranslationJob('language')/TranslateFolder(inputFolder='/path/in', outputFolder='/path/out')

Pour convertir une bibliothèque de manière asynchrone :

http://serverName/_api/TranslationJob('language')/TranslateLibrary(inputLibrary='/LibraryName', outputLibrary='/LibraryName'')

API REST de traduction synchrone

Le service reste Service de traduction automatique prend en charge uniquement synchrone traduction de fichiers. L'API pour que cela se présente comme suit :

http://serverName/_api/SyncTranslator('language')/Translate(outputFile='/path/output file', inputFile='/path/input file')

Autres API REST du Service de traduction automatique

Le service reste Service de traduction automatique inclut API supplémentaires que vous pouvez utiliser pour récupérer des informations sur les fonctions d'applications Service de traduction automatique et l'état du travail de traduction.

Pour récupérer toutes les langues prises en charge par Service de traduction automatique:

http://serverName/_api/TranslationJob.EnumerateSupportedLanguages

Pour vérifier si une langue spécifique est pris en charge :

http://serverName/_api/TranslationJob.IsLanguageSupported('language')

Pour récupérer toutes les extensions de nom de fichier sont pris en charge par Service de traduction automatique:

http://serverName/_api/TranslationJob.EnumerateSupportedFileEXtensions

Pour vérifier si une extension de nom de fichier spécifique est pris en charge :

http://serverName/_api/TranslationJob.IsFileExtensionSupported('extension')

Pour vérifier la limite de taille de fichier pour une extension de nom de fichier spécifique :

http://serverName/_api/TranslationJob.GetMaximumFileSize('extension')

Pour récupérer une liste de toutes les tâches de traduction asynchrone :

http://serverName/_api/TranslationJobStatus.GetAllJobs

Pour récupérer une liste de toutes les tâches actives traduction asynchrone :

http://serverName/_api/TranslationJobStatus.GetAllActiveJobs

Pour récupérer les informations de document pour une tâche spécifique traduction asynchrone :

http://serverName/_api/TranslationJobStatus('jobid')/GetAllItems

Pour annuler un travail de traduction asynchrone :

http://serverName/_api/TranslationJob.CancelJob('jobid')

Conditions requises pour les documents Microsoft Word

Service de traduction automatique de SharePoint utilise la langue de paragraphe comme langue Source lorsqu'il convertit les documents Microsoft Word. Par exemple, si le paragraphe écrit en espagnol, mais la langue du paragraphe est définie sur anglais, le Service de traduction ne sera pas convertir en anglais. Il s'agit car il est déjà défini à l'anglais.

Pour définir la langue du paragraphe, suivez ces étapes :

  1. Sélectionnez le paragraphe.

  2. Cliquez sur l'onglet Révision du ruban.

  3. Cliquez sur langue dans le menu déroulant, puis sélectionnez Définir la langue de vérification.

Voir aussi