如何在Microsoft Word中更改语言?

时间:2015-06-29 05:48:27

标签: vbscript ms-word word-vba

我正在编写一个VBScript,它将创建一个新的Word文档并将其语言设置为美国英语(我使用不同的语言作为默认语言)。此代码不会产生错误,但也不会更改语言:

Const wdEnglishUS = 1033
Dim objWord, objDoc
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add
objDoc.ActiveWindow.Selection.WholeStory
objDoc.ActiveWindow.Selection.LanguageID = wdEnglishUS

2 个答案:

答案 0 :(得分:0)

Option Explicit

Const wdEnglishUS = 1033

    With WScript.CreateObject("Word.Application")
        .Visible = True
        .Documents.Add().Range.LanguageID = wdEnglishUS
    End With

答案 1 :(得分:0)

问题是关于更改整个新文档。我发现了一个类似但更困难的问题:需要更改从其他地方的发件人收到的现有文档中的文本语言。如果您的组织使用发件人的不同英语版本并且收到的文本必须在本地编辑和显示,则必须这样做。

以下方法可用于重置任何文档的LangaugeID文本。方法在内部记录。他们可以更改整个文档(Doc.Content)或文档中的任何其他Doc.Range

这些方法通过检查所有现有文本,将其集中到最大可能的Range进行检查。所有校对语言及其描述中的目标字符串都将更改为指定的校对语言。

在某些情况下,文字可能已包含多种校对语言 - 例如用法语引用。如果目标语言只有一个版本,则Method将更改它。如果存在多个目标语言类型的版本,例如英语美国与英国英语混合,假定作者故意指定了该语言的版本,因此例外,并且不会更改校对语言。方法可以选择在文本中逐段应用此异常,而不是整个文本。

有两种方法(和一种测试方法)。 FixLanguage修复了语言。它依赖于函数LanguageIDGetDescription为其提供语言的完整描述(描述是wdLanguageID的Office 2010枚举中的描述)。

'===============================================================================================
Private Sub TestFixLanguage()
    Call FixLanguage(ActiveDocument.Content, "English", wdEnglishUK, vbTrue)  'Test in Para by Para mode
    Call FixLanguage(ActiveDocument.Content, "English", wdEnglishUK, vbFalse) 'Test in Whole Document mode
End Sub
'===============================================================================================
Public Sub FixLanguage(ByRef RangeToCheck As word.Range, ByRef LanguageType As String, ByRef ToLanguageID As word.WdLanguageID, _
          Optional bCheckByPara As Boolean = vbFalse, _
          Optional ByRef LanguagesFound As Collection, _
          Optional ByRef LanguageIDsFound As Collection, _
          Optional ByRef LanguageRanges As Collection)
'Purpose:   Reset languages to a specified default where the incoming document may have been defaulted to the wrong member of a language family.
'           E.g. It is common to find that UK users have left their documents defaulted to US English and this may not be wanted.
'Approach:  Examines RangeToCheck for Languages settings that have LanguageType in their Description and converts them ToLanguageID.
'If:
'   RangeToCheck has 1 Language whose description includes the LanguageType string -that language is changed to ToLanguageID;
'   RangeToCheck has 2 or more Languages that include LanguageType                 -nothing is changed.
'           Why change nothing? Because, if 2+ languages of the same group were set, some trouble must have been taken to choose and set languages.
'   ToLanguageID is not a valid LanguageID                                          Exits; changes nothing.
'Options:
'Defaults to applying the checking for more than one instance of LanguageType in the WHOLE of RangeToCheck.
'   but if bCheckByPara = True it to checks for multiple instances of LanguageType one Paragraph at a time.
'Defaults to checking whole Paragraphs in RangeToCHeckfor their LanguageID but, if the Method is called with ALL OF the
'   Optional LanguagesFound & LanguageIDsFound & LanguageRanges Collections present,
'   it checks by largest type of range available from Paras,Words, or, finally Characters.
'The above feature allows FixLanguage to call itself recursively to resolve paragraphs (and words) that have multiple languages within themselves.
'===============================================================================================
'Author: Neil Dunlop
'Hitory: Created 08/11/2017
'Copyright: Neil Dunlop
'Terms of use: Retain the above author attribution and use freely.
'===============================================================================================
Dim R As word.Range                                 'A Range to check
Dim Rsub As word.Range                              'A SubRange whose language is to be revised
Dim RsubStrt As Long                                'The start of a subRange
Dim RsubEnd As Long                                 'The end of a subRange in RangeToCheck
'Dim LanguagesFound As Collection                   'Description strings for all the languages present
'Dim LanguageIDsFound As Collection                 'The LanguageIDs corresponding to the LanguageIDs found
'Dim LanguageRanges As Collection                   'The Ranges, each with a single LanguageID
Dim LanguagesFoundInPara As Collection              'A version of LanguagesFound restricted to the current Paragraph
Dim i As Long                                       'Scratch Variable
Dim j As Long                                       'Scratch Variable
Dim k As Long                                       'Scratch Variable
Dim S As String                                     'Scratch Variable
Dim CurrLangID As word.WdLanguageID                 'The Current Languageid for changing to ToLanguageid
Dim ByType As Integer                               'Iterates through Paragraphs(1). Words(0), Characters(-1)
Dim bTopLevel As Boolean                            'True if the call is a Top Level call which is called without LanguageFound etc.
Dim Rcount As Long                                  'Loop maximum count in Words or Characters dependent on presence of LanguagesFound/LanguageIDsFound
Dim LangInPara As Long                              'Number of Languages found in a single Paragraph

    On Error GoTo ENDSUB
    Set R = RangeToCheck
    If LanguagesFound Is Nothing Or LanguageIDsFound Is Nothing Then
    bTopLevel = vbTrue                              'Direct call detected, always start with Paragraphs
    ByType = 1
    ElseIf RangeToCheck.Words.Count = 1 Then
    ByType = -1                                     'Check Characters
    ElseIf RangeToCheck.Paragraphs.Count = 1 Then
    ByType = 0                                      'Check Words
    Else
    ByType = 1                                      'Check Paragraphs
    End If

    S = LanguageIDGetDescription(ToLanguageID)          'Gets the description string for the new Language setting
    If Not S = vbNullString Or ToLanguageID <> "9999999" Then 'Makes sure that ToLanguageID is a valid Language
'-----------------------------------------------------------------------------------------------
'ToLanguageID is valid
    If LanguagesFound Is Nothing Or LanguageIDsFound Is Nothing Then
        Set LanguagesFound = New Collection
        Set LanguageIDsFound = New Collection
        Set LanguageRanges = New Collection
    End If
    If bCheckByPara And ByType = 0 Then Set LanguagesFoundInPara = New Collection
    Select Case ByType
        Case -1:    Rcount = RangeToCheck.Characters.Count
        Case 0:     Rcount = RangeToCheck.Words.Count
        Case 1:     Rcount = RangeToCheck.Paragraphs.Count
    End Select
    LangInPara = 0
    For i = 1 To Rcount                             'Build list of Languages Present, word by word in RangeToCheck
        Select Case ByType
        Case -1:    Set R = RangeToCheck.Characters(i)
        Case 0:     Set R = RangeToCheck.Words(i)
        Case 1:     Set R = RangeToCheck.Paragraphs(i).Range
        End Select
        If Not R.LanguageID = 9999999 Then
        On Error Resume Next
        LanguagesFound.Add Item:=LanguageIDGetDescription(R.LanguageID), Key:=CStr(R.LanguageID)
        If ERR = 0 Then
            LanguageIDsFound.Add Item:=CStr(R.LanguageID), Key:=CStr(R.LanguageID)
        End If
        If ByType = 0 Then
            LanguagesFoundInPara.Add Item:=LanguageIDGetDescription(R.LanguageID), Key:=CStr(R.LanguageID)      'Count Languages in the Paragraph only when checking words
        End If
        Else
        'There is a Paragraph or (rarely) a Word that contains more than One Language within it
        If ByType = 1 And bCheckByPara Then 'Check and apply by Languages found in each Para if requested
            Call FixLanguage(R, LanguageType, ToLanguageID, vbTrue, LanguagesFound, LanguageIDsFound, LanguageRanges) 'Add the Languages within the Word, character by charachter
        Else    'Check and apply at the end when all Languages present have been identified.
            Call FixLanguage(R, LanguageType, ToLanguageID, vbFalse, LanguagesFound, LanguageIDsFound, LanguageRanges) 'Add the Languages within the Word, character by charachter
        End If
        End If
    Next i
    On Error GoTo 0
    If LanguagesFound.Count > 1 Then
        j = 0
        For i = 1 To LanguagesFound.Count           'Check for duplicate LanguageType Languages
        If ByType = 0 And bCheckByPara Then
            'Checking for multiple entries of LanguageType is being done Paragraph by Paragraph (i.e. when checking ranges word by word)
            On Error Resume Next
            If Not LanguagesFoundInPara(LanguageIDsFound(i)) = LanguagesFound(i) Then
            S = vbNullString                'The Language was not found in this Paragraph
            Else
            S = LanguagesFound(i)           'The Language was found in this Paragraph
            End If
            On Error GoTo 0
        Else
            S = LanguagesFound(i)               'The check for multiple entries of LanguageType is being done across the whole Document
        End If
        If InStr(S, LanguageType) <> 0 Then
            j = j + 1                           'Count the number of occurrences of a Language of LanguageType in the Doc or Para
        End If
        Next i
        If j = 1 Then
        'Only one Language is of LanguageType in the Doc or Para.  Find all Ranges that of LanguageType & store or change them to ToLanguageID
        RsubStrt = RangeToCheck.Start
        RsubEnd = RsubStrt
        For j = 1 To LanguagesFound.Count       'Find the Language that is to be revised and apply it to all instances in RangeToCheck
            If ByType = 0 And bCheckByPara Then
            'Checking for multiple entries of LanguageType is being done Paragraph by Paragraph (i.e. when checking ranges word by word)
            On Error Resume Next
            If Not LanguagesFoundInPara(LanguageIDsFound(j)) = LanguagesFound(j) Then
                S = vbNullString            'The Language was not found in this Paragraph
            Else
                S = LanguagesFound(j)       'The Language was found in this Paragraph
            End If
            On Error GoTo 0
            Else
            S = LanguagesFound(j)           'The check for multiple entries of LanguageType is being done across the whole Document
            End If
            If InStr(S, LanguageType) <> 0 Then
            'Change this Language wherever it occurs, it is the only one present that includes LanguageType in its name
            CurrLangID = LanguageIDsFound(j)
            For i = 1 To Rcount             'Check, Para by Para or word by word for the Language to Change & identify a sub Range
                Select Case ByType
                Case -1:    Set R = RangeToCheck.Characters(i)
                Case 0:     Set R = RangeToCheck.Words(i)
                Case 1:     Set R = RangeToCheck.Paragraphs(i).Range
                End Select
                If R.LanguageID = CurrLangID Then
                If RsubStrt = RsubEnd Then
                    RsubStrt = R.Start  'Start a new SubRange containing CurrLangID
                    RsubEnd = R.End
                Else
                    RsubEnd = R.End     'Extend SubRange containing CurrLangID to end of R
                End If
                ElseIf RsubStrt = RsubEnd And R.LanguageID = 9999999 And R.Characters(1).LanguageID = CurrLangID Then
                RsubStrt = R.Start  'The current range has multiple Languages - Set a new SubRange containing CurrLangID
                RsubEnd = R.Start + 1
                For k = 2 To R.End  'Increment the Range within the single Para/Word which has more than one Language
                    If R.Characters(k).LanguageID = CurrLangID Then
                    RsubEnd = R.Start + k
                    Else
                    Exit For
                    End If
                Next k
                GoTo FOUNDEND
                ElseIf RsubStrt <> RsubEnd Then
                'Found the end of a SubRange containing CurrLangID.  Set its Language to ToLanguageID or store the range for later.
                If R.LanguageID = 9999999 Then
                    For k = 1 To R.End  'Increment the Range within a single Para/Word which has more than one Language
                    If R.Characters(k).LanguageID = CurrLangID Then
                        RsubEnd = R.Start + k
                    Else
                        Exit For
                    End If
                    Next k
                End If
FOUNDEND:                       If bTopLevel Then   'At the top level apply the Language immediately
                    RangeToCheck.Parent.Range(RsubStrt, RsubEnd).LanguageID = ToLanguageID
                Else                'Elsewhere, save the range for later revision of the Language, if appropriate
                    LanguageRanges.Add RangeToCheck.Parent.Range(RsubStrt, RsubEnd)
                End If
                RsubStrt = RsubEnd
                End If
            Next i
            If RsubStrt <> RsubEnd Then     'Make sure that any last instance of LanguageType is also set to ToLanguageID.
                If bTopLevel Then
                RangeToCheck.Parent.Range(RsubStrt, RsubEnd).LanguageID = ToLanguageID
                Else
                LanguageRanges.Add RangeToCheck.Parent.Range(RsubStrt, RsubEnd)
                End If
                RsubStrt = R.End
            End If
            Exit For                        'Only one language setting is ever updated
            End If
        Next j
        End If
    ElseIf InStr(LanguageIDGetDescription(RangeToCheck.LanguageID), LanguageType) <> 0 Then
        'There is only one Language present in RangeToCheck and it matches LanguageType.
        If RangeToCheck.LanguageID <> ToLanguageID Then
        RangeToCheck.LanguageID = ToLanguageID  'Change the whole of RangeToCheck to the required LanguageID
        End If
    End If
'-----------------------------------------------------------------------------------------------
'    Else
'        'Do Nothing if ToLanguageID is invalid
    End If
    If (bTopLevel Or bCheckByPara) And LanguageRanges.Count > 0 Then
    For i = 1 To LanguageRanges.Count               'Apply the Language Change
        If LanguageRanges(i).Start >= RangeToCheck.Start And LanguageRanges(i).End <= RangeToCheck.End Then
        LanguageRanges(i).LanguageID = ToLanguageID
        End If
    Next i
    For i = LanguageRanges.Count To 1 Step -1       'Remove the changed Ranges from the Collection
        If LanguageRanges(i).Start >= RangeToCheck.Start And LanguageRanges(i).End <= RangeToCheck.End Then
        LanguageRanges.Remove i
        End If
    Next i
    End If
ENDSUB:
End Sub
'===============================================================================================
'===============================================================================================
Public Function LanguageIDGetDescription(ID As Long) As String
'Returns the Description of the Language that is
'   based on the enumeration for wdLanguageID enumeration in the VBIDE help for Word 2010.
'The ID must be Long integer that is obtained using Range.LanguageID.
'If the ID does not exist, Returns a nullstring
'Ranges that have more than one language assigned to them return Range.LanguageID= 9999999
' and will return an empty string from this Method.
'-----------------------------------------------------------------------------------------------
'History:  Written 08 Nov 2017
'-----------------------------------------------------------------------------------------------
Static EngL As Collection
On Error Resume Next
If EngL.Count = 0 Then
    Set EngL = New Collection
    EngL.Add Key:=CStr(1078), Item:="African language"
    EngL.Add Key:=CStr(1052), Item:="Albanian language"
    EngL.Add Key:=CStr(1118), Item:="Amharic language"
    EngL.Add Key:=CStr(1025), Item:="Arabic language"
    EngL.Add Key:=CStr(5121), Item:="Arabic Algerian language"
    EngL.Add Key:=CStr(15361), Item:="Arabic Bahraini language"
    EngL.Add Key:=CStr(3073), Item:="Arabic Egyptian language"
    EngL.Add Key:=CStr(2049), Item:="Arabic Iraqi language"
    EngL.Add Key:=CStr(11265), Item:="Arabic Jordanian language"
    EngL.Add Key:=CStr(13313), Item:="Arabic Kuwaiti language"
    EngL.Add Key:=CStr(12289), Item:="Arabic Lebanese language"
    EngL.Add Key:=CStr(4097), Item:="Arabic Libyan language"
    EngL.Add Key:=CStr(6145), Item:="Arabic Moroccan language"
    EngL.Add Key:=CStr(8193), Item:="Arabic Omani language"
    EngL.Add Key:=CStr(16385), Item:="Arabic Qatari language"
    EngL.Add Key:=CStr(10241), Item:="Arabic Syrian language"
    EngL.Add Key:=CStr(7169), Item:="Arabic Tunisian language"
    EngL.Add Key:=CStr(14337), Item:="Arabic United Arab Emirates language"
    EngL.Add Key:=CStr(9217), Item:="Arabic Yemeni language"
    EngL.Add Key:=CStr(1067), Item:="Armenian language"
    EngL.Add Key:=CStr(1101), Item:="Assamese language"
    EngL.Add Key:=CStr(2092), Item:="Azeri Cyrillic language"
    EngL.Add Key:=CStr(1068), Item:="Azeri Latin language"
    EngL.Add Key:=CStr(1069), Item:="Basque language"
    EngL.Add Key:=CStr(2067), Item:="Belgian Dutch language"
    EngL.Add Key:=CStr(2060), Item:="Belgian French language"
    EngL.Add Key:=CStr(1093), Item:="Bengali language"
    EngL.Add Key:=CStr(1026), Item:="Bulgarian language"
    EngL.Add Key:=CStr(1109), Item:="Burmese language"
    EngL.Add Key:=CStr(1059), Item:="Byelorussian language"
    EngL.Add Key:=CStr(1027), Item:="Catalan language"
    EngL.Add Key:=CStr(1116), Item:="Cherokee language"
    EngL.Add Key:=CStr(3076), Item:="Chinese Hong Kong SAR language"
    EngL.Add Key:=CStr(5124), Item:="Chinese Macao SAR language"
    EngL.Add Key:=CStr(4100), Item:="Chinese Singapore language"
    EngL.Add Key:=CStr(1050), Item:="Croatian language"
    EngL.Add Key:=CStr(1029), Item:="Czech language"
    EngL.Add Key:=CStr(1030), Item:="Danish language"
    EngL.Add Key:=CStr(1125), Item:="Divehi language"
    EngL.Add Key:=CStr(1043), Item:="Dutch language"
    EngL.Add Key:=CStr(1126), Item:="Edo language"
    EngL.Add Key:=CStr(3081), Item:="Australian English language"
    EngL.Add Key:=CStr(10249), Item:="Belize English language"
    EngL.Add Key:=CStr(4105), Item:="Canadian English language"
    EngL.Add Key:=CStr(9225), Item:="Caribbean English language"
    EngL.Add Key:=CStr(14345), Item:="Indonesian English language"
    EngL.Add Key:=CStr(6153), Item:="Irish English language"
    EngL.Add Key:=CStr(8201), Item:="Jamaican English language"
    EngL.Add Key:=CStr(5129), Item:="New Zealand English language"
    EngL.Add Key:=CStr(13321), Item:="Filipino English language"
    EngL.Add Key:=CStr(7177), Item:="South African English language"
    EngL.Add Key:=CStr(11273), Item:="Tobago Trinidad English language"
    EngL.Add Key:=CStr(2057), Item:="United Kingdom English language"
    EngL.Add Key:=CStr(1033), Item:="United States English language"
    EngL.Add Key:=CStr(12297), Item:="Zimbabwe English language"
    EngL.Add Key:=CStr(1061), Item:="Estonian language"
    EngL.Add Key:=CStr(1080), Item:="Faeroese language"
    EngL.Add Key:=CStr(1124), Item:="Filipino language"
    EngL.Add Key:=CStr(1035), Item:="Finnish language"
    EngL.Add Key:=CStr(1036), Item:="French language"
    EngL.Add Key:=CStr(11276), Item:="French Cameroon language"
    EngL.Add Key:=CStr(3084), Item:="French Canadian language"
    EngL.Add Key:=CStr(9228), Item:="French (Congo (DRC)) language"
    EngL.Add Key:=CStr(12300), Item:="French Cote d'Ivoire language"
    EngL.Add Key:=CStr(15372), Item:="French Haiti language"
    EngL.Add Key:=CStr(5132), Item:="French Luxembourg language"
    EngL.Add Key:=CStr(13324), Item:="French Mali language"
    EngL.Add Key:=CStr(6156), Item:="French Monaco language"
    EngL.Add Key:=CStr(14348), Item:="French Morocco language"
    EngL.Add Key:=CStr(8204), Item:="French Reunion language"
    EngL.Add Key:=CStr(10252), Item:="French Senegal language"
    EngL.Add Key:=CStr(7180), Item:="French West Indies language"
    EngL.Add Key:=CStr(1122), Item:="Frisian Netherlands language"
    EngL.Add Key:=CStr(1127), Item:="Fulfulde language"
    EngL.Add Key:=CStr(2108), Item:="Gaelic Irish language"
    EngL.Add Key:=CStr(1084), Item:="Gaelic Scottish language"
    EngL.Add Key:=CStr(1110), Item:="Galician language"
    EngL.Add Key:=CStr(1079), Item:="Georgian language"
    EngL.Add Key:=CStr(1031), Item:="German language"
    EngL.Add Key:=CStr(3079), Item:="German Austrian language"
    EngL.Add Key:=CStr(5127), Item:="German Liechtenstein language"
    EngL.Add Key:=CStr(4103), Item:="German Luxembourg language"
    EngL.Add Key:=CStr(1032), Item:="Greek language"
    EngL.Add Key:=CStr(1140), Item:="Guarani language"
    EngL.Add Key:=CStr(1095), Item:="Gujarati language"
    EngL.Add Key:=CStr(1128), Item:="Hausa language"
    EngL.Add Key:=CStr(1141), Item:="Hawaiian language"
    EngL.Add Key:=CStr(1037), Item:="Hebrew language"
    EngL.Add Key:=CStr(1081), Item:="Hindi language"
    EngL.Add Key:=CStr(1038), Item:="Hungarian language"
    EngL.Add Key:=CStr(1129), Item:="Ibibio language"
    EngL.Add Key:=CStr(1039), Item:="Icelandic language"
    EngL.Add Key:=CStr(1136), Item:="Igbo language"
    EngL.Add Key:=CStr(1057), Item:="Indonesian language"
    EngL.Add Key:=CStr(1117), Item:="Inuktitut language"
    EngL.Add Key:=CStr(1040), Item:="Italian language"
    EngL.Add Key:=CStr(1041), Item:="Japanese language"
    EngL.Add Key:=CStr(1099), Item:="Kannada language"
    EngL.Add Key:=CStr(1137), Item:="Kanuri language"
    EngL.Add Key:=CStr(1120), Item:="Kashmiri language"
    EngL.Add Key:=CStr(1087), Item:="Kazakh language"
    EngL.Add Key:=CStr(1107), Item:="Khmer language"
    EngL.Add Key:=CStr(1088), Item:="Kirghiz language"
    EngL.Add Key:=CStr(1111), Item:="Konkani language"
    EngL.Add Key:=CStr(1042), Item:="Korean language"
    EngL.Add Key:=CStr(1088), Item:="Kyrgyz language"
    EngL.Add Key:=CStr(0), Item:="No specified language"
    EngL.Add Key:=CStr(1108), Item:="Lao language"
    EngL.Add Key:=CStr(1142), Item:="Latin language"
    EngL.Add Key:=CStr(1062), Item:="Latvian language"
    EngL.Add Key:=CStr(1063), Item:="Lithuanian language"
    EngL.Add Key:=CStr(1071), Item:="Macedonian (FYROM) language"
    EngL.Add Key:=CStr(1100), Item:="Malayalam language"
    EngL.Add Key:=CStr(2110), Item:="Malay Brunei Darussalam language"
    EngL.Add Key:=CStr(1086), Item:="Malaysian language"
    EngL.Add Key:=CStr(1082), Item:="Maltese language"
    EngL.Add Key:=CStr(1112), Item:="Manipuri language"
    EngL.Add Key:=CStr(1102), Item:="Marathi language"
    EngL.Add Key:=CStr(2058), Item:="Mexican Spanish language"
    EngL.Add Key:=CStr(1104), Item:="Mongolian language"
    EngL.Add Key:=CStr(1121), Item:="Nepali language"
    EngL.Add Key:=CStr(1024), Item:="Disables proofing if the language ID identifies a language in which an object is grammatically validated using the Microsoft Word proofing tools"
    EngL.Add Key:=CStr(1044), Item:="Norwegian Bokmol language"
    EngL.Add Key:=CStr(2068), Item:="Norwegian Nynorsk language"
    EngL.Add Key:=CStr(1096), Item:="Oriya language"
    EngL.Add Key:=CStr(1138), Item:="Oromo language"
    EngL.Add Key:=CStr(1123), Item:="Pashto language"
    EngL.Add Key:=CStr(1065), Item:="Persian language"
    EngL.Add Key:=CStr(1045), Item:="Polish language"
    EngL.Add Key:=CStr(2070), Item:="Portuguese language"
    EngL.Add Key:=CStr(1046), Item:="Portuguese (Brazil) language"
    EngL.Add Key:=CStr(1094), Item:="Punjabi language"
    EngL.Add Key:=CStr(1047), Item:="Rhaeto Romanic language"
    EngL.Add Key:=CStr(1048), Item:="Romanian language"
    EngL.Add Key:=CStr(2072), Item:="Romanian Moldova language"
    EngL.Add Key:=CStr(1049), Item:="Russian language"
    EngL.Add Key:=CStr(2073), Item:="Russian Moldova language"
    EngL.Add Key:=CStr(1083), Item:="Sami Lappish language"
    EngL.Add Key:=CStr(1103), Item:="Sanskrit language"
    EngL.Add Key:=CStr(3098), Item:="Serbian Cyrillic language"
    EngL.Add Key:=CStr(2074), Item:="Serbian Latin language"
    EngL.Add Key:=CStr(1072), Item:="Sesotho language"
    EngL.Add Key:=CStr(2052), Item:="Simplified Chinese language"
    EngL.Add Key:=CStr(1113), Item:="Sindhi language"
    EngL.Add Key:=CStr(2137), Item:="Sindhi (Pakistan) language"
    EngL.Add Key:=CStr(1115), Item:="Sinhalese language"
    EngL.Add Key:=CStr(1051), Item:="Slovakian language"
    EngL.Add Key:=CStr(1060), Item:="Slovenian language"
    EngL.Add Key:=CStr(1143), Item:="Somali language"
    EngL.Add Key:=CStr(1070), Item:="Sorbian language"
    EngL.Add Key:=CStr(1034), Item:="Spanish language"
    EngL.Add Key:=CStr(11274), Item:="Spanish Argentina language"
    EngL.Add Key:=CStr(16394), Item:="Spanish Bolivian language"
    EngL.Add Key:=CStr(13322), Item:="Spanish Chilean language"
    EngL.Add Key:=CStr(9226), Item:="Spanish Colombian language"
    EngL.Add Key:=CStr(5130), Item:="Spanish Costa Rican language"
    EngL.Add Key:=CStr(7178), Item:="Spanish Dominican Republic language"
    EngL.Add Key:=CStr(12298), Item:="Spanish Ecuadorian language"
    EngL.Add Key:=CStr(17418), Item:="Spanish El Salvadorian language"
    EngL.Add Key:=CStr(4106), Item:="Spanish Guatemala language"
    EngL.Add Key:=CStr(18442), Item:="Spanish Honduran language"
    EngL.Add Key:=CStr(3082), Item:="Spanish Modern Sort language"
    EngL.Add Key:=CStr(19466), Item:="Spanish Nicaraguan language"
    EngL.Add Key:=CStr(6154), Item:="Spanish Panamanian language"
    EngL.Add Key:=CStr(15370), Item:="Spanish Paraguayan language"
    EngL.Add Key:=CStr(10250), Item:="Spanish Peruvian language"
    EngL.Add Key:=CStr(20490), Item:="Spanish Puerto Rican language"
    EngL.Add Key:=CStr(14346), Item:="Spanish Uruguayan language"
    EngL.Add Key:=CStr(8202), Item:="Spanish Venezuelan language"
    EngL.Add Key:=CStr(1072), Item:="Sutu language"
    EngL.Add Key:=CStr(1089), Item:="Swahili language"
    EngL.Add Key:=CStr(1053), Item:="Swedish language"
    EngL.Add Key:=CStr(2077), Item:="Swedish Finnish language"
    EngL.Add Key:=CStr(4108), Item:="Swiss French language"
    EngL.Add Key:=CStr(2055), Item:="Swiss German language"
    EngL.Add Key:=CStr(2064), Item:="Swiss Italian language"
    EngL.Add Key:=CStr(1114), Item:="Syriac language"
    EngL.Add Key:=CStr(1064), Item:="Tajik language"
    EngL.Add Key:=CStr(1119), Item:="Tamazight language"
    EngL.Add Key:=CStr(2143), Item:="Tamazight Latin language"
    EngL.Add Key:=CStr(1097), Item:="Tamil language"
    EngL.Add Key:=CStr(1092), Item:="Tatar language"
    EngL.Add Key:=CStr(1098), Item:="Telugu language"
    EngL.Add Key:=CStr(1054), Item:="Thai language"
    EngL.Add Key:=CStr(1105), Item:="Tibetan language"
    EngL.Add Key:=CStr(2163), Item:="Tigrigna Eritrea language"
    EngL.Add Key:=CStr(1139), Item:="Tigrigna Ethiopic language"
    EngL.Add Key:=CStr(1028), Item:="Traditional Chinese language"
    EngL.Add Key:=CStr(1073), Item:="Tsonga language"
    EngL.Add Key:=CStr(1074), Item:="Tswana language"
    EngL.Add Key:=CStr(1055), Item:="Turkish language"
    EngL.Add Key:=CStr(1090), Item:="Turkmen language"
    EngL.Add Key:=CStr(1058), Item:="Ukrainian language"
    EngL.Add Key:=CStr(1056), Item:="Urdu language"
    EngL.Add Key:=CStr(2115), Item:="Uzbek Cyrillic language"
    EngL.Add Key:=CStr(1091), Item:="Uzbek Latin language"
    EngL.Add Key:=CStr(1075), Item:="Venda language"
    EngL.Add Key:=CStr(1066), Item:="Vietnamese language"
    EngL.Add Key:=CStr(1106), Item:="Welsh language"
    EngL.Add Key:=CStr(1076), Item:="Xhosa language"
    EngL.Add Key:=CStr(1144), Item:="Yi language"
    EngL.Add Key:=CStr(1085), Item:="Yiddish language"
    EngL.Add Key:=CStr(1130), Item:="Yoruba language"
    EngL.Add Key:=CStr(1077), Item:="Zulu language. "
End If
    LanguageIDGetDescription = EngL(CStr(ID))
    On Error GoTo 0
End Function
'===============================================================================================
相关问题