none
Word : quelles langues sont installées ? RRS feed

  • Question

  • Bonsoir

    Quelqu'un peut-il m'aider à obtenir la liste des langues installées
    dans Word ?
    Pas la liste des 261 langues de Languages, uniquement celles que j'ai
    installées et qui apparaissent dans les préférences linguistiques.
    Il doit me manquer un mot clef pour trouver.

    Merci.

    dimanche 20 décembre 2015 20:29

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

    lundi 21 décembre 2015 17:45
  • 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.

    lundi 21 décembre 2015 21:29
  • 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.

    mardi 22 décembre 2015 07:54
  • 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


    mardi 22 décembre 2015 09:02
  • Bonsoir Mehdi

    Ci-dessous une capture d'écran du résultat de la macro et des langues
    d'éditions installées sur mon poste.

    Ce n'est pas le même code sans doute, la restitution est différente du
    code précédent.

    mardi 22 décembre 2015 17:39
  • à 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


    mardi 22 décembre 2015 22:12
  • 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

    mercredi 23 décembre 2015 09:46