home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 June / PCWorld_2002-06_cd.bin / Software / Komercni / openoffice / install / f_0271 / Init.xba < prev    next >
Extensible Markup Language  |  2002-02-19  |  17KB  |  529 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Init" script:language="StarBasic">Option Explicit
  4. REM  *****  BASIC  *****
  5.  
  6. ' Zu diskutieren:
  7. ' Autopilot von Werkzeugleiste f├╝r Textdokumente mit eigener Konverterseite?
  8. ' Konvertierung von Datenbankfeldern '- Problematik der Formatierung mit FS durchsprechen!?
  9. ' Option des einleitenden Welcome-Text, der erkl├ñrt, was eigentlich Sache ist (wie beim Dokumenten Konverter)
  10. ' Option der Checkbox-Gruppe in der die zu konvertierenden Dokumenttypen aufgef├╝hrt sind
  11. ' -> bei den letztgenannten Optionen m├╝sste der Dialog in seiner H├╢he vergr├╢├ƒert werden.
  12. ' Wir sollten informiert werden, ob und wie oder wann das Standard - W├ñhrungsformat f├╝r die Eurol├ñnder umgesetzt
  13. ' wird.
  14.  
  15. Public Const SBRANGEUBOUND = 20
  16. Public StyleRangeAssignmentList(SBRANGEUBOUND)as String
  17. Public SelRangeList(SBRANGEUBOUND) as String
  18. Public RangeList(SBRANGEUBOUND) as String
  19. Public UnprotectList() as String
  20. Public FilterNames(2,1) as String
  21. Public bDoUnProtect as Boolean
  22. Public bCancelTask as Boolean
  23.  
  24. Public sREADY as String
  25. Public sPROTECT as String
  26. Public sCONTINUE as String
  27.  
  28. Public sSELTEMPL as String
  29. Public sSELCELL as String
  30. Public sCURRRANGES as String
  31. Public sTEMPLATES as String
  32.  
  33. Public sSOURCEFILE as String
  34. Public sSOURCEDIR as String
  35. Public sTARGETDIR as String
  36.  
  37. Public sStsPROGRESS as String
  38. Public sStsCELLPROGRSS as String
  39. Public sStsRELRANGES as String
  40. Public sStsRELSHEETRANGES as String
  41. Public sStsREPROTECT as String
  42.  
  43. Public sMsgSELDIR as String
  44. Public sMsgSELFILE as String
  45. Public sMsgTARGETDIR as String
  46. Public sMsgNOTTHERE as String
  47. Public sMsgDLGTITLE as String
  48. Public sMsgUNPROTECT as String
  49. Public sMsgPWPROTECT as String
  50. Public sMsgWRONGPW as String
  51. Public sMsgSHEETPROTECTED as String
  52. Public sMsgWARNING as String
  53. Public sMsgSHEETSNOPROTECT as String
  54. Public sMsgSHEETNOPROTECT as String
  55. Public sMsgCHOOSECURRENCY as String
  56. Public sMsgPASSWORD as String
  57. Public sMsgOK as String
  58. Public sMsgCANCEL as String
  59. Public sMsgFileInvalid as String
  60. Public sMsgNODIRECTORY as String
  61. Public sMsgDOCISREADONLY as String
  62. Public sMsgFileExists as String
  63. Public sMsgCancelConversion as String
  64. Public sMsgCancelTitle as String
  65. Public sCurrPORTUGUESE as String
  66. Public sCurrDUTCH as String
  67. Public sCurrFRENCH as String
  68. Public sCurrSPANISH as String
  69. Public sCurrITALIAN as String
  70. Public sCurrGERMAN as String
  71. Public sCurrBELGIAN as String
  72. Public sCurrIRISH as String
  73. Public sCurrLUXEMBOURG as String
  74. Public sCurrAUSTRIAN as String
  75. Public sCurrFINNISH as String
  76. Public sCurrGREEK as String
  77. Public sCurrUNKNOWN as String
  78. Public sCurrSYSUNKNOWN as String
  79.  
  80. Public sPrgsRETRIEVAL as String
  81. Public sPrgsCONVERTING as String
  82. Public sPrgsUNPROTECT as String
  83. Public sInclusiveSubDir as String
  84.  
  85. Public Const SBCOUNTRYCOUNT = 12
  86. Public CurMimeType as String
  87. Public CurCellCount as Long
  88. Public oSheets as Object
  89. Public oStyles as Object
  90. Public oStyle as Object
  91. Public oFormats as Object
  92. Public aSimpleStr as String
  93. Public nSimpleKey as Long
  94. Public aFormat() as Variant
  95. Public oRanges as Object
  96. Public oRange as Object
  97. Public nLanguage as integer
  98. Public nFormatLanguage as integer
  99. Public aCellFormat as Variant
  100. Public oDocument as Object
  101. Public StartCol, StartRow, EndCol, EndRow as String
  102. Public oSheet as Object
  103. Public IntStartCol,    IntStartRow, IntEndCol,    IntEndRow as integer
  104. Public oSelRanges as Object
  105. Public nFormatType as Integer
  106. Public sFormatCurrency as String
  107. Public sFormatLanguage as String
  108. Public CurSheetName as String
  109. Public oStatusLine as Object
  110. Public Const SBRELGET = 50
  111. Public StatusValue as Single
  112. Public TotCellCount as Long
  113. Public StyleIndex as Integer
  114. Public RangeIndex as Integer
  115. Public CurrIndex as Integer
  116. Public ActLangNumber(1) as Integer
  117. Public CurExtension(2) as String
  118. Public Currfactor as Double
  119. Public CurrSymbolList(2) as String
  120. Public CurrLanguage as String
  121. Public CurrValue(11,5)
  122. Public LangIDValue(11,2,2) as String
  123. Public PreName as String
  124. Public Separator as String
  125. Public BitmapDir as String
  126. Public TypeIndex as Integer, CSIndex as Integer, LangIndex as Integer, FSIndex as Integer
  127. Public oLocale as New com.sun.star.lang.Locale
  128. Public sEuroSign as String
  129. Public oPointer as Object
  130. Public sDocType as String
  131. Public bPreSelected as Boolean
  132. 'Public DocDisposed as Boolean
  133. 'Public bMacroStopped as Boolean
  134. Public bRecursive as Boolean
  135. Public bCancelProtection as Boolean
  136. Public CurrRoundMode as Boolean
  137. Public bRangeListDefined as Boolean
  138. ' Note the variable bDocHasProtectedSheets does not contain information
  139. ' wether sheets have to be reprotected
  140. Public bDocHasProtectedSheets as Boolean
  141. Public sGOON as String
  142. Public sHELP as String
  143. Public sCANCEL as String
  144. Dim sEnd as String
  145.  
  146. Sub InitializeResources()
  147.     With DialogModel
  148.         ' Strings that are also needed by the Password Dialog
  149.         sGoOn = GetResText(1003)
  150.         sHelp = GetResText(1001)
  151.         sCANCEL = GetResText(1418)
  152.         sEnd = GetResText(1000)
  153.         .cmdCancel.Label =  sCANCEL
  154.         .cmdHelp.Label =  sHELP
  155.         .cmdBack.Label =  GetResText(1002)
  156.         .cmdGoOn.Label =  sGOON
  157.         .lblHint.Label =  GetResText(1004)
  158.         .lblCurrencies.Label = GetResText(1006)
  159.         If .Step = 1 Then
  160.             .chkComplete.Label = GetResText(1100)
  161.             .hlnSelection.Label = GetResText(1101)
  162.             .optCellTemplates.Label = GetResText(1102)
  163.             .optSheetRanges.Label = GetResText(1103)
  164.             .optDocRanges.Label = GetResText(1104)
  165.             .optSelRange.Label = GetResText(1105)
  166.             sCURRRANGES = GetResText(1108)
  167.             .lblSelection.Label = sCURRRANGES
  168.         Else
  169.              .hlnExtent.Label = GetResText(1200)
  170.             .optSingleFile.Label = GetResText(1201) '"Einzelnes StarOffice -Dokument"'GetResText(1201)
  171.              .optWholeDir.Label = GetResText(1202)
  172.              .chkProtect.Label = GetResText(1207)
  173.              .chkTextDocuments.Label = GetResText(1210)     ' "Auch Feldbefehle und Tabellen in Textdokumenten konvertieren"' Todo: Dieses Model sp├ñter am Control unsichtbar machen    
  174.  
  175.             sSOURCEFILE = GetResText(1203)
  176.             sSOURCEDIR = GetResText(1204)
  177.              .lblSource.Label = sSOURCEDIR
  178.              sInclusiveSubDir = GetResText(1205)
  179.              .chkRecursive.Label = sInclusiveSubDir
  180.             sTARGETDIR = GetResText(1206)
  181.              .lblTarget.Label = STARGETDIR 
  182.             .txtSource.Text = ConvertfromUrl(GetPathSettings("Work"))
  183.             SubstDir = .txtSource.Text
  184.             .txtTarget.Text = .txtSource.Text
  185.             .hlnProgress.Label = GetResText(1600)
  186.             .lblConfig.Label = GetResText(1603)
  187.             sPrgsRETRIEVAL = GetResText(1601)
  188.             sPrgsCONVERTING = GetResText(1602)
  189.             sPrgsUNPROTECT = GetResText(1604)
  190.         End If
  191.         .cmdBack.Enabled = False
  192.         sPROTECT = GetResText(1005)
  193.         sCONTINUE = GetResText(1007)
  194.         sSELTEMPL = GetResText(1106)
  195.         sSELCELL = GetResText(1107)
  196.         sCURRRANGES = GetResText(1108)
  197.         sTEMPLATES = GetResText(1109)
  198.         sStsPROGRESS = GetResText(1300)
  199.         sStsCELLPROGRSS = GetResText(1301)
  200.         sStsRELSHEETRANGES = GetResText(1302)
  201.         sStsRELRANGES = GetResText(1303)
  202.         sStsREPROTECT = GetResText(1304)
  203.         sREADY = GetResText(1400)
  204.         sMsgSELDIR = GetResText(1401)
  205.         sMsgSELFILE = GetResText(1402)
  206.         sMsgTARGETDIR = GetResText(1403)
  207.         sMsgNOTTHERE = GetResText(1404)
  208.         sMsgDLGTITLE = GetResText(1405)
  209.         sMsgUNPROTECT = GetResText(1406)
  210.         sMsgPWPROTECT = GetResText(1407)
  211.         sMsgWRONGPW = GetResText(1408)
  212.         sMsgSHEETPROTECTED = GetResText(1409)
  213.         sMsgWARNING = GetResText(1410)
  214.         sMsgSHEETSNOPROTECT = GetResText(1411)
  215.         sMsgSHEETNOPROTECT = GetResText(1412)
  216.         sMsgCHOOSECURRENCY = GetResText(1415)
  217.         sMsgPASSWORD = GetResText(1416)
  218.         sMsgOK = GetResText(1417)
  219.         sMsgCANCEL = GetResText(1418)
  220.         sMsgFILEINVALID = GetResText(1419)
  221.         sMsgFILEINVALID = ReplaceString(sMsgFILEINVALID,"%PRODUCTNAME", GetProductname())
  222.         SMsgNODIRECTORY = GetResText(1420)
  223.         sMsgDOCISREADONLY = GetResText(1421)
  224.         sMsgFileExists = GetResText(1422)
  225.         sMsgCancelConversion = GetResText(1423)
  226.         sMsgCancelTitle = GetResText(1424)
  227.         sCurrPORTUGUESE = GetResText(1500)
  228.         sCurrDUTCH = GetResText(1501)
  229.         sCurrFRENCH = GetResText(1502)
  230.         sCurrSPANISH = GetResText(1503)
  231.         sCurrITALIAN = GetResText(1504)
  232.         sCurrGERMAN = GetResText(1505)
  233.         sCurrBELGIAN = GetResText(1506)
  234.         sCurrIRISH = GetResText(1507)
  235.         sCurrLUXEMBOURG = GetResText(1508)
  236.         sCurrAUSTRIAN = GetResText(1509)
  237.         sCurrFINNISH = GetResText(1510)
  238.         sCurrGREEK = GetResText(1511)
  239.         sCurrUNKNOWN = GetResText(1511)
  240.         sCurrSYSUNKNOWN = GetResText(1512)
  241.     End With
  242. End Sub
  243.  
  244.  
  245. Sub InitializeLanguages()
  246.     sEuroSign = chr(8364)
  247.  
  248. ' CURRENCIES_PORTUGUESE
  249.     LangIDValue(0,0,0) = "pt"
  250.     LangIDValue(0,0,1) = ""
  251.     LangIDValue(0,0,2) = "-816"
  252.  
  253. ' CURRENCIES_DUTCH
  254.     LangIDValue(1,0,0) = "nl"
  255.     LangIDValue(1,0,1) = ""
  256.     LangIDValue(1,0,2) = "-413"
  257.  
  258. ' CURRENCIES_FRENCH
  259.     LangIDValue(2,0,0) = "fr"
  260.     LangIDValue(2,0,1) = ""
  261.     LangIDValue(2,0,2) = "-40C"
  262.  
  263. ' CURRENCIES_SPANISH
  264.     LangIDValue(3,0,0) = "es"
  265.     LangIDValue(3,0,1) = ""
  266.     LangIDValue(3,0,2) = "-40A"
  267.     
  268.     'Spanish modern
  269.     LangIDValue(3,1,0) = "es"
  270.     LangIDValue(3,1,1) = ""
  271.     LangIDValue(3,1,2) = "-C0A"
  272.  
  273.     'Spanish katalanic
  274.     LangIDValue(3,2,0) = "es"
  275.     LangIDValue(3,2,1) = ""
  276.     LangIDValue(3,2,2) = "-403"
  277.  
  278. ' CURRENCIES_ITALIAN
  279.     LangIDValue(4,0,0) = "it"
  280.     LangIDValue(4,0,1) = ""
  281.     LangIDValue(4,0,2) = "-410"
  282.  
  283. ' CURRENCIES_GERMAN
  284.     LangIDValue(5,0,0) = "de"
  285.     LangIDValue(5,0,1) = "DE"
  286.     LangIDValue(5,0,2) = "-407"
  287.  
  288. ' CURRENCIES_BELGIAN
  289.     LangIDValue(6,0,0) = "fr"
  290.     LangIDValue(6,0,1) = "BE"
  291.     LangIDValue(6,0,2) = "-80C"
  292.  
  293.     LangIDValue(6,1,0) = "nl"
  294.     LangIDValue(6,1,1) = "BE"
  295.     LangIDValue(6,1,2) = "-813"
  296.  
  297. ' CURRENCIES_IRISH
  298.     LangIDValue(7,0,0) = "en"
  299.     LangIDValue(7,0,1) = "IE"
  300.     LangIDValue(7,0,2) = "-1809"
  301.  
  302. ' CURRENCIES_LUXEMBOURG
  303.     LangIDValue(8,0,0) = "fr"
  304.     LangIDValue(8,0,1) = "LU"
  305.     LangIDValue(8,0,2) = "-140C"
  306.     
  307.     LangIDValue(8,1,0) = "de"
  308.     LangIDValue(8,1,1) = "LU"
  309.     LangIDValue(8,1,2) = "-1007"
  310.  
  311. ' CURRENCIES_AUSTRIAN
  312.     LangIDValue(9,0,0) = "de"
  313.     LangIDValue(9,0,1) = "AT"
  314.     LangIDValue(9,0,2) = "-C07"
  315.  
  316. ' CURRENCIES_FINNISH
  317.     LangIDValue(10,0,0) = "fi"
  318.     LangIDValue(10,0,1) = "FI"
  319.     LangIDValue(10,0,2) = "-40B"
  320.  
  321.     LangIDValue(10,1,0) = "sv"
  322.     LangIDValue(10,1,1) = "FI"
  323.     LangIDValue(10,1,2) = "-81D"
  324.  
  325. ' CURRENCIES_GREEK
  326.     LangIDValue(11,0,0) = "el"
  327.     LangIDValue(11,0,1) = "GR"
  328.     LangIDValue(11,0,2) = "-408"
  329. End Sub
  330.  
  331.  
  332.  
  333. Sub InitializeCurrencies()
  334. Dim i as Integer
  335.     GoOn = True
  336.  
  337.     CurrValue(0,0) = sCurrPORTUGUESE
  338.     ' Wahrer Umrechnungskurs
  339.     CurrValue(0,1) = 200.482
  340.     ' Gerundeter Umrechnungskurs
  341.     CurrValue(0,2) = 200
  342.     CurrValue(0,3) = "Esc."
  343.     CurrValue(0,4) = "Esc."
  344.     CurrValue(0,5) = "PTE"
  345.  
  346.     CurrValue(1,0) = sCurrDUTCH
  347.     ' Wahrer Umrechnungskurs
  348.     CurrValue(1,1) = 2.20371
  349.     ' Gerundeter Umrechnungskurs
  350.     CurrValue(1,2) = 2
  351.     CurrValue(1,3) = "F"
  352.     CurrValue(1,4) = "fl"
  353.     CurrValue(1,5) = "NLG"
  354.  
  355.     CurrValue(2,0) = sCurrFRENCH
  356.     ' Wahrer Umrechnungskurs
  357.     CurrValue(2,1) = 6.55957
  358.     ' Gerundeter Umrechnungskurs
  359.     CurrValue(2,2) = 7
  360.     CurrValue(2,3) = "F"
  361.     CurrValue(2,4) = "F"
  362.     CurrValue(2,5) = "FRF"
  363.  
  364.     CurrValue(3,0) = sCurrSPANISH
  365.     ' Wahrer Umrechnungskurs
  366.     CurrValue(3,1) = 166.386
  367.     ' Gerundeter Umrechnungskurs
  368.     CurrValue(3,2) = 170
  369.     CurrValue(3,3) = "Pts"
  370.     CurrValue(3,4) = "Pts"
  371.     CurrValue(3,5) = "ESP"
  372.  
  373.     CurrValue(4,0) = sCurrITALIAN
  374.     ' Wahrer Umrechnungskurs
  375.     CurrValue(4,1) = 1936.27
  376.     ' Gerundeter Umrechnungskurs
  377.     CurrValue(4,2) = 2000
  378.     CurrValue(4,3) = "L."
  379.     CurrValue(4,4) = "L."
  380.     CurrValue(4,5) = "ITL"
  381.  
  382.     CurrValue(5,0) = sCurrGERMAN
  383.     ' Wahrer Umrechnungskurs
  384.     CurrValue(5,1) = 1.95583
  385.     ' Gerundeter Umrechnungskurs
  386.     CurrValue(5,2) = 2
  387.     CurrValue(5,3) = "DM"
  388.     CurrValue(5,4) = "DM"
  389.     CurrValue(5,5) = "DEM"
  390.  
  391.     CurrValue(6,0) = sCurrBELGIAN
  392.     ' Wahrer Umrechnungskurs
  393.     CurrValue(6,1) = 40.3399
  394.     ' Gerundeter Umrechnungskurs
  395.     CurrValue(6,2) = 40
  396.     CurrValue(6,3) = "FB"
  397.     CurrValue(6,4) = "BF"
  398.     CurrValue(6,5) = "BEF"
  399.  
  400.     CurrValue(7,0) = sCurrIRISH
  401.     ' Wahrer Umrechnungskurs
  402.     CurrValue(7,1) = 0.787564
  403.     ' Gerundeter Umrechnungskurs
  404.     CurrValue(7,2) = 0.8
  405.     CurrValue(7,3) = "IR┬ú"
  406.     CurrValue(7,4) = "┬ú"        ' Todo: This is only for backwards compatibility. Follow Bug #92049
  407.     CurrValue(7,5) = "IEP"
  408.  
  409.     CurrValue(8,0) = sCurrLUXEMBOURG
  410.     ' Wahrer Umrechnungskurs
  411.     CurrValue(8,1) = 40.3399
  412.     ' Gerundeter Umrechnungskurs
  413.     CurrValue(8,2) = 40
  414.     CurrValue(8,3) = "F"
  415.     CurrValue(8,4) = "F"
  416.     CurrValue(8,5) = "LUF"
  417.  
  418.     CurrValue(9,0) = sCurrAUSTRIAN
  419.     ' Wahrer Umrechnungskurs
  420.     CurrValue(9,1) = 13.7603
  421.     ' Gerundeter Umrechnungskurs
  422.     CurrValue(9,2) = 15
  423.     CurrValue(9,3) = "├╢S"
  424.     CurrValue(9,4) = "S"
  425.     CurrValue(9,5) = "ATS"
  426.  
  427.     CurrValue(10,0) = sCurrFINNISH
  428.     ' Wahrer Umrechnungskurs
  429.     CurrValue(10,1) = 5.94573
  430.     ' Gerundeter Umrechnungskurs
  431.     CurrValue(10,2) = 6
  432.     CurrValue(10,3) = "mk"
  433.     CurrValue(10,4) = "mk"
  434.     CurrValue(10,5) = "FIM"
  435.  
  436. ' Todo: Werte verlorengegangen?
  437.     CurrValue(11,0) = sCurrGREEK
  438.     ' Wahrer Umrechnungskurs
  439.     CurrValue(11,1) = 340.750
  440.     ' Gerundeter Umrechnungskurs
  441.     CurrValue(11,2) = 400
  442.     CurrValue(11,3) = chr(916) & chr(961) & chr(967)
  443.     CurrValue(11,4) = chr(916) & chr(961) & chr(967)
  444.     CurrValue(11,5) = "GRD"
  445.     i = -1
  446.     CurrSymbolList(0) = ""
  447.     CurrSymbolList(1) = ""
  448.     InitializeCurrencyValues(CurrIndex)
  449. End Sub
  450.  
  451.  
  452. Sub InitializeControls()
  453.     If CurrIndex = -1 Then
  454.         If DialogModel.Step = 1 Then
  455.             EnableStep1DialogControls(True, False, False)
  456.         ElseIf DialogModel.Step = 2 Then
  457.             EnableStep2DialogControls(True)
  458.         End If
  459.     End If
  460. End Sub    
  461.  
  462. Sub InitializeConverter(oLocale, iDialogPage as Integer)
  463. Dim Isthere as Boolean
  464.     ToggleWindow(False)
  465.     bCancelProtection = False
  466. '    bMacroStopped = False
  467.     bRangeListDefined = False
  468.     PWIndex = -1
  469.     sDocType = GetDocumentType(ThisComponent)
  470.     oStatusline = ThisComponent.GetCurrentController.GetFrame.CreateStatusIndicator()
  471.     If sDocType = "sCalc" Then
  472.         bDocHasProtectedSheets = CheckSheetProtection(oSheets)
  473.     End If
  474.     DialogConvert = LoadDialog("Euro", "DlgConvert")
  475.     DialogModel = DialogConvert.Model
  476.     DialogPassword = LoadDialog("Euro", "DlgPassword")
  477.     PasswordModel = DialogPassword.Model
  478.     DialogModel.Step = iDialogPage
  479.     InitializeResources()
  480.     InitializeLanguages()
  481.     InitializeLocales(oLocale)
  482.     InitializeCurrencies()
  483.     InitializeControls()
  484.     BitmapDir = GetOfficeSubPath("Template", "wizard/bitmap")
  485.     FillUpCurrencyListbox()
  486.     DialogModel.imgPreview.ImageUrl = BitmapDir & "euro_" & DialogModel.Step & ".bmp"    
  487.     DialogConvert.Title = sMsgDLGTITLE
  488.     DialogModel.cmdGoOn.DefaultButton = True    
  489.     ToggleWindow(True)
  490. End Sub
  491.  
  492.  
  493. Sub    InitializeCurrencyValues(CurrIndex)
  494.     If CurrIndex <> -1 Then
  495.         CurrLanguage = CurrValue(CurrIndex,0)
  496.         CurrFactor = CurrValue(CurrIndex,1)
  497.         CurrSymbolList(0) = CurrValue(CurrIndex,3)
  498.         CurrSymbolList(1) = CurrValue(CurrIndex,4)
  499.         CurrSymbolList(2) = CurrValue(CurrIndex,5)
  500.     End If
  501. End Sub        
  502.  
  503.  
  504. Function InitializeLocales(oLocale) as Boolean
  505. Dim i as Integer, n as Integer, m as Integer
  506. Dim sLanguage as String, sCountry as String
  507. Dim bTakeThisLocale as Boolean
  508.     sLanguage = oLocale.Language
  509.     sCountry = oLocale.Country
  510.     For n = 0 To SBCOUNTRYCOUNT - 1
  511.         For m = 0 TO 1
  512.             If DialogModel.Step = 2 Then
  513.                 bTakeThisLocale = LangIDValue(n,m,0) = sLanguage
  514.             Else
  515.                 bTakeThisLocale = LangIDValue(n,m,0) = sLanguage' AND LangIDValue(n,m,1) = sCountry
  516.             End If
  517.             If bTakeThisLocale Then
  518.                 CurrIndex = n
  519.                 For i = 0 To 2
  520.                     CurExtension(i) = LangIDValue(CurrIndex,i,2)
  521.                 Next i
  522.                 InitializeLocales = True
  523.                 Exit Function
  524.             End If
  525.         Next m
  526.     Next n
  527.     CurrIndex = -1
  528.     InitializeLocales = False
  529. End Function</script:module>