Auteur de questions
Word : quelles langues sont installées ?

Question
-
Toutes les réponses
-
Bonsoir Geo,
Il ne semble pas y avoir une collection qui renvois directement la liste des langues installées mais après plusieurs heures de recherches et de tests, je pense avoir trouver un début de solution.
L'approche consiste à rechercher les dictionnaires installés.
Voici une macro à tester.
Sub ProofingLanguagesInstalled() Dim Dictio As Dictionary On Error Resume Next For Each Dictio In Word.CustomDictionaries Debug.Print Dictio.LanguageID & ", " & Languages(Dictio.LanguageID).Name Next End Sub
En espérant avoir pu rendre service (MehdiH)
Retrouvez moi sur Office Users -
Bonsoir Mehdi
Il ne semble pas y avoir une collection qui renvois directement la liste des
langues installées mais après plusieurs heures de recherches et de tests, je
pense avoir trouver un début de solution.
L'approche consiste à rechercher les dictionnaires installés.La macro ne donne pas le bon résultat.
Je regarderai cette piste demain.
Merci pour l'idée. -
Bonjour
Pour qu'il n'y ait pas d'ambiguité, c'est la liste illustrée ci-dessous que je voudrais obtenir.
J'espérais soit une propriété dans la collection Langues, soit une méthode du genre :
Application. GetPréférencesLanguages.
Pas trouvé.
Il faut dire que l'aide est de plus en plus inutilisable, même l'aide en ligne.
Je n'ai pas été fichu de trouver le modèle objet après plusieurs heures de recherche.
Au moins, les temps de réponse étaient corrects quand on avait l'aide incorporé. Maintenant on patauge et MS a déserté les forums.
Bonne journée.
-
Bonjour,
Ci-dessous une capture d'écran du résultat de la macro et des langues d'éditions installées sur mon poste.
La comparaison fait ressortir les différences suivantes:
- Le code renvois le français (suisses) alors qu'il n'est pas listé dans la liste "Langue d'édition". La cause est la suivante, j'avais pour des besoins de test activé (installé) cette langue puis je l'ai retiré et il semble que Word en garde la
trace.
- Le code ne liste pas l'Allemand (Allemagne) alors qu'il est bien présent. La cause peut être le fait que je n'ai jamais utilisé cette langue pour faire des vérifications
PS: voici quelques indications supplémentaires.
- la boite de dialogue "Préférences linguistiques d'Office 2016" renvois les mêmes 05 langues d'édition.
- la macro a été testé avec la version "Word 2016".
- il y a deux instances d'Office sur mon poste Office 2013 et Office 2016.
En espérant avoir pu rendre service (MehdiH)
Retrouvez moi sur Office Users- Modifié Mehdi HAMMADI mardi 22 décembre 2015 09:07
- Le code renvois le français (suisses) alors qu'il n'est pas listé dans la liste "Langue d'édition". La cause est la suivante, j'avais pour des besoins de test activé (installé) cette langue puis je l'ai retiré et il semble que Word en garde la
trace.
-
-
à peu de choses prêt, c'est le même.
Sub ProofingLanguagesInstalled() Dim Dictio As Dictionary On Error Resume Next For Each Dictio In Word.CustomDictionaries Debug.Print Dictio.LanguageID _ & " / " & Dictio.LanguageSpecific _ & " / " & Languages(Dictio.LanguageID).NameLocal Next End Sub
J'ai juste ajouté la propriété LanguageSpecific et afficher la nom de la langue dans la langue locale
En espérant avoir pu rendre service (MehdiH)
Retrouvez moi sur Office Users- Modifié Mehdi HAMMADI mardi 22 décembre 2015 22:14
-
Bonjour
En fait, je n'ai pas utilisé les autres langues, c'était juste des
essais.
C'est sans doute pour cette raison qu'il n'y a pas de custom.dic qui
leur correspond.
Résultat : rien n'est listé.
Par contre j'ai trouvé autre chose que j'ai complété avec votre
technique d'affichage des noms de langue en clair.
L'objet LanguageSettings est assez particulier, il semble refléter la
clef :
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\LanguageResources\EnabledLanguages
Par contre, je n'ai toujours pas trouvé la notion d' "installé".
Il y a donc le japonais dans ma liste !
Curieusement la macro provoque deux erreurs pour 2016.
Décidément, le vba est bien en fin de vie, c'est bien triste.
Merci pour votre aide.Sub testLangue()
Dim app As Word.Application
Set app = Application
Dim ds As LanguageSettings
Set ds = app.LanguageSettings
Dim i As Long
Debug.Print "Langue d'installation : " &
Languages(ds.LanguageID(msoLanguageIDInstall))
Debug.Print "Langue de l'aide : " &
Languages(ds.LanguageID(msoLanguageIDHelp))
Debug.Print "Langue de l'interface " &
Languages(ds.LanguageID(msoLanguageIDUI))For i = 1 To 20000
If ds.LanguagePreferredForEditing(i) = True Then
Debug.Print "langue d'édition : (" & i & ") "
' word 2016 : libellé n'existe pas pour 2048 et 3072
Debug.Print " Libellé : " & Languages(i).NameLocal
End If
Next i
End Sub