Excel рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Android рдФрд░ iOS рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ

рдЫрд╡рд┐


рд╣реИрд▓реЛ, рдореЗрд░рд╛ рдирд╛рдо рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рд╣реИ рдФрд░ рдореИрдВ рдПрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдПрдХ рдмрд╛рд░ рдореБрдЭреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ 11 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднрд╛рд╖рд╛рдПрдВ рдФрд░ 600 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рдереАрдВред рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдореЗрдВ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ рдПрдХреНрд╕реЗрд▓ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ред рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ "рд╣рдо рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрд░рдорд╢рдГ рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред" рдЙрд╕рдХреЗ рдмрд╛рдж, рджреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХреБрдЫ рдШрдВрдЯреЗ рдЦреЛ рджрд┐рдП, рдЬрд┐рд╕рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдПред рдФрд░ рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдХрд╣реАрдВ рдХреБрдЫ рднреВрд▓ рдХреА рдереА, рдПрдХ рдЧрд▓рддреА рдХреА рдереА рдпрд╛ рдЗрд╕реЗ рдЦрддреНрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рдереАрдВ, рдЧреНрд░рд╛рд╣рдХ рдШрдмрд░рд╛рдП рд╣реБрдП рдереЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╛рд╣рд░ рдлреНрд░рд┐рдХ рдХрд░ рд░рд╣реЗ рдереЗред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдиреЗ рдореБрдЭреЗ рд░реВрдЯ рдкрд░ рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдПрдХреНрд╕реЗрд▓ рд╕реЗ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЙрддрд╛рд░рдиреЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреАред рдкрд░рд┐рдгрд╛рдо рдорд╣рд╛рди VBScript рдХреЛрдб рдерд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред рдЕрдм рдореИрдВ рдЗрд╕ рд▓рд┐рдкрд┐ рдХреЛ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВрдЧрд╛ред рдХрдЯ рдХреЗ рддрд╣рдд, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрд┐рддреНрд░ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдбред


рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рджреЗрдЦреЗрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреИрдорд╛рдиреЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ:


рдЫрд╡рд┐


рд╡рд╣рд╛рдБ рд╡рд╣ рд╣реИ, рд╕реМрдВрджрд░реНрдп! рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдИ рд╕рд░реНрд╡рд┐рд╕ рдХреЙрд▓рдо, рдЧреНрд▓реЛрдмрд▓ рд▓рд╛рдЗрди рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рдЕрдиреБрд╡рд╛рдж рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд▓рд╛рдЗрдиреЗрдВ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рдЬрд░реНрдорди рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдХреЗрд╡рд▓ рджреЛ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдмрд╛рдХреА рдХреЛ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреЗ рдкреИрд╕реЗ рдкрд░ рджрдпрд╛ рдХрд░рддрд╛ рд╣реЛред рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдРрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрд▓ F5 рдореЗрдВ "% s" рдЬреИрд╕реЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдЪреНрдЫрд╛ рд╣реИ рдЙрд╕реЗ "% @" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЖрдкрдХреЛ рд░рд╛рд╕реНрддреЗ рдХреА рдЕрдиреНрдп рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред


рдкреВрдВрдЫ рд╕реЗ рдмрд┐рд▓реНрд▓реА рдХреЛ рди рд╣рдЯрд╛рдиреЗ рдФрд░ рди рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрднреА рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛:


рдЕрдкрдиреА рд╕рднреА рдорд╣рд┐рдорд╛ рдореЗрдВ VBScript
option explicit ' Start it with: cscript ConvertExcelToTXTandXML.vbs If UCASE(right(wscript.fullname,11)) <> "CSCRIPT.EXE" Then Msgbox "Please enter: cscript ConvertExcelToTXTandXML.vbs <filename>.xlsx" WScript.Quit 255 End If ' The column of the key is 4 Const KeyColumn = 4 ' Names of destination files to create Const outFileiOS="\Localizable.strings" Const outFileiOSLocale="\InfoPlist.strings" Const outFileAndroid="\stringsToFormat.xml" Const NsCameraUsageDescription = "NsCameraUsageDescription" Const NSLocationAlwaysAndWhenInUseUsageDescription = "NSLocationAlwaysAndWhenInUseUsageDescription" Const NSLocationAlwaysUsageDescription = "NSLocationAlwaysUsageDescription" Const NSLocationWhenInUseUsageDescription = "NSLocationWhenInUseUsageDescription" Const NSPhotoLibraryAddUsageDescription = "NSPhotoLibraryAddUsageDescription" Const NSPhotoLibraryUsageDescription = "NSPhotoLibraryUsageDescription" Dim oExcel Dim oTranslations Dim objOutputFileiOS Dim objOutputFileiOSLocale Dim objFSO Dim objFSOandroid Dim objFSOios Dim myArgs Dim myParameter Dim sName Dim CompletePath Dim WorkingDir Dim WorkingDirAndroid Dim WorkingDirIos Dim LanguageColumnIndex Dim UsedRows Dim nCounter Dim xmlDoc Dim objIntro Dim objRoot Dim objHdr Dim objHdrAtt Dim theText Dim AndroidString Dim iOSString ' **************************************** ' MAKE PRETTY XML ' **************************************** Const strOutputFile = "\strings.xml" ' **************************************** Dim objInputFile, objOutputFile, strXML Dim objXML : Set objXML = WScript.CreateObject("Msxml2.DOMDocument") Dim objXSL : Set objXSL = WScript.CreateObject("Msxml2.DOMDocument") ' Create interface to Excel Set oExcel = CreateObject("Excel.application") ' Create the file interface Set objFSO=CreateObject("Scripting.FileSystemObject") ' Get the commandline parameter Set myArgs = WScript.Arguments.Unnamed If myArgs.count > 0 Then If (not objFSO.FileExists(myArgs.item(0))) Then Wscript.Echo "Error: '" & myArgs.item(0) & "' not found" WScript.Quit 255 End If Set myParameter = objFSO.GetFile(myArgs.item(0)) sName = myParameter.Name CompletePath = myParameter.Path WorkingDir = myParameter.Path WorkingDir = Left(WorkingDir, Len(WorkingDir)-Len(sName)) WorkingDirAndroid = "res\" WorkingDirIos = "ios\" If Not objFSO.FolderExists(WorkingDir & WorkingDirAndroid) Then ' Create folder if not exists' objFSO.CreateFolder(WorkingDir & WorkingDirAndroid) End If If Not objFSO.FolderExists(WorkingDir & WorkingDirIos) Then ' Create folder if not exists' objFSO.CreateFolder(WorkingDir & WorkingDirIos) End If Else Wscript.Echo "Error: A filename is needed" WScript.Quit 255 End If ' Source file Set oTranslations = oExcel.Workbooks.Open(CompletePath) ' Get the maximum number of rows in the sheet UsedRows = oTranslations.Sheets(1).UsedRange.Rows.Count ' In this column start the start the languages' LanguageColumnIndex = 6 ' stop the processing when the cell is empty --> end of languages while oTranslations.Sheets(1).Cells(3, LanguageColumnIndex) <> "" WScript.stdout.Write "Create files for: " WScript.stdout.Write oTranslations.Sheets(1).Cells(3, LanguageColumnIndex) WScript.stdout.Write " " objFSOandroid = oTranslations.Sheets(1).Cells(3, LanguageColumnIndex) If objFSOandroid = "values" Then objFSOios = "en" & ".lproj" ElseIf objFSOandroid = "values-ru" Then objFSOios = "ru-RU" & ".lproj" Else objFSOios = Right(objFSOandroid,2) & ".lproj" End If WScript.stdout.Write "; iOs folder: " WScript.stdout.Write objFSOios If Not objFSO.FolderExists(WorkingDir & WorkingDirAndroid & objFSOandroid) Then ' Create folder if not exists' objFSO.CreateFolder(WorkingDir & WorkingDirAndroid & objFSOandroid) End If If Not objFSO.FolderExists(WorkingDir & WorkingDirIos & objFSOios) Then ' Create folder if not exists' objFSO.CreateFolder(WorkingDir & WorkingDirIos & objFSOios) End If ' Create the destination files Set objOutputFileiOS = CreateObject("ADODB.Stream") objOutputFileiOS.CharSet = "utf-8" objOutputFileiOS.Open Set objOutputFileiOSLocale = CreateObject("ADODB.Stream") objOutputFileiOSLocale.CharSet = "utf-8" objOutputFileiOSLocale.Open Set xmlDoc = CreateObject("Msxml2.DOMDocument") ' NOTE: chr(34) is " ' NOTE: vbCrLf is <CR><LF> ' Create the XML header Set objIntro = xmlDoc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8' standalone='yes'") xmlDoc.insertBefore objIntro,xmlDoc.childNodes(0) Set objRoot = xmlDoc.createElement("resources") xmlDoc.appendChild objRoot ' keys start in row 3!!! For nCounter = 3 To UsedRows WScript.stdout.Write "." If oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value <> "" Then ' Write to iOS file If Not oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value = "" Then objOutputFileiOS.WriteText chr(34) objOutputFileiOS.WriteText oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value objOutputFileiOS.WriteText chr(34) objOutputFileiOS.WriteText " = " objOutputFileiOS.WriteText chr(34) iOSString = Replace(oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value, "%s", "%@") iOSString = Replace(iOSString, "'", "\'") iOSString = Replace(iOSString, chr(34), "\" & chr(34)) objOutputFileiOS.WriteText iOSString objOutputFileiOS.WriteText chr(34) objOutputFileiOS.WriteText ";" & vbCrLf If ( (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NsCameraUsageDescription) _ or (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NSLocationAlwaysAndWhenInUseUsageDescription) _ or (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NSLocationAlwaysUsageDescription) _ or (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NSLocationWhenInUseUsageDescription) _ or (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NSPhotoLibraryAddUsageDescription) _ or (oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value = NSPhotoLibraryUsageDescription) _ ) Then objOutputFileiOSLocale.WriteText chr(34) objOutputFileiOSLocale.WriteText oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value objOutputFileiOSLocale.WriteText chr(34) objOutputFileiOSLocale.WriteText " = " objOutputFileiOSLocale.WriteText chr(34) objOutputFileiOSLocale.WriteText iOSString objOutputFileiOSLocale.WriteText chr(34) objOutputFileiOSLocale.WriteText ";" & vbCrLf End If End If ' Write to Android file Set objHdr = xmlDoc.createElement("string") Set objHdrAtt = xmlDoc.createAttribute("name") objHdrAtt.text = oTranslations.Sheets(1).Cells(nCounter, KeyColumn).Value AndroidString =Replace (oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value, "'", "\'") AndroidString =Replace (oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value, Chr(10), "\n") If Not AndroidString = "" Then Set theText=xmlDoc.createTextNode(AndroidString) objHdr.setAttributeNode objHdrAtt objHdr.appendChild theText objRoot.appendChild objHdr End If End If Next ' Save the files xmlDoc.Save WorkingDir & WorkingDirAndroid & objFSOandroid & outFileAndroid ' **************************************** ' Put whitespace between tags. (Required for XSL transformation.) ' **************************************** Set objInputFile = objFSO.OpenTextFile(WorkingDir & WorkingDirAndroid & objFSOandroid & outFileAndroid,1,False,-2) Set objOutputFile = objFSO.CreateTextFile(WorkingDir & WorkingDirAndroid & objFSOandroid & strOutputFile,True,False) strXML = objInputFile.ReadAll strXML = Replace(strXML,"><",">" & vbCrLf & "<") objOutputFile.Write strXML objInputFile.Close objFSO.DeleteFile(WorkingDir & WorkingDirAndroid & objFSOandroid & outFileAndroid) objOutputFile.Close ' **************************************** ' Create an XSL stylesheet for transformation. ' **************************************** Dim strStylesheet : strStylesheet = _ "<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">" & _ "<xsl:output method=""xml"" indent=""yes""/>" & _ "<xsl:template match=""/"">" & _ "<xsl:copy-of select="".""/>" & _ "</xsl:template>" & _ "</xsl:stylesheet>" ' **************************************** ' Transform the XML. ' **************************************** objXSL.loadXML strStylesheet objXML.load WorkingDir & WorkingDirAndroid & objFSOandroid & strOutputFile objXML.transformNode objXSL objXML.save WorkingDir & WorkingDirAndroid & objFSOandroid & strOutputFile ' **************************************** ' End transformation. ' **************************************** objOutputFileiOSLocale.SaveToFile WorkingDir & WorkingDirIos & objFSOios & outFileiOSLocale, 2 objOutputFileiOS.SaveToFile WorkingDir & WorkingDirIos & objFSOios & outFileiOS, 2 LanguageColumnIndex = LanguageColumnIndex + 1 WScript.stdout.Write vbCrLf wend oTranslations.Close oExcel.Quit WScript.Echo "With success done" WScript.Quit(0) 

рдЕрдм рдмрд╛рд░реА рд╣реИ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреАред


рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред IOS рдкрд░, рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ Localizable.strings рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди InfoPlist.strings рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ InfoPlist рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


 Const NsCameraUsageDescription = "NsCameraUsageDescription" Const NSLocationAlwaysAndWhenInUseUsageDescription = "NSLocationAlwaysAndWhenInUseUsageDescription" Const NSLocationAlwaysUsageDescription = "NSLocationAlwaysUsageDescription" Const NSLocationWhenInUseUsageDescription = "NSLocationWhenInUseUsageDescription" Const NSPhotoLibraryAddUsageDescription = "NSPhotoLibraryAddUsageDescription" Const NSPhotoLibraryUsageDescription = "NSPhotoLibraryUsageDescription" 

рдЕрдЧрд▓рд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЯреБрдХрдбрд╝рд╛ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рдПрдВрдЧреАред IOS рдкрд░, рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рджреЛ-рдЕрдХреНрд╖рд░ рднрд╛рд╖рд╛ рдкрджрдирд╛рдо рдХреЗ рд╕рд╛рде рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ "en.lproj", "de.lproj"ред рд░реВрд╕реА рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ "рдЖрд░рдпреВ-рдЖрд░рдпреВ" рд╣реИред рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реА, рдХреЙрд▓рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╕рдВрдХреЗрддрди рдореЗрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╛рд░рд╕реАрдо:


 If objFSOandroid = "values" Then objFSOios = "en" & ".lproj" ElseIf objFSOandroid = "values-ru" Then objFSOios = "ru-RU" & ".lproj" Else objFSOios = Right(objFSOandroid,2) & ".lproj" End If 

рдФрд░ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп, рд╡рд░реНрдгреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдмрдЪрдирд╛ред IOS рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрджрд▓реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, % s % @ рдФрд░ рдмрдЪ рдЙрджреНрдзрд░рдг рдФрд░ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдлрд┐рд╕:


 iOSString = Replace(oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value, "%s", "%@") iOSString = Replace(iOSString, "'", "\'") iOSString = Replace(iOSString, chr(34), "\" & chr(34)) 

рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рд╕реЗ рднреА рдмрдЪрддреЗ рд╣реИрдВ рдФрд░ рддрдерд╛рдХрдерд┐рдд рдиреНрдпреВ рдлреАрдб рдХреИрд░реЗрдХреНрдЯрд░ \ n рдХреЗ рд╕рд╛рде рддрдерд╛рдХрдерд┐рдд рд▓рд╛рдЗрди рдлреАрдб рдХреИрд░реЗрдХреНрдЯрд░ ( Chr (10) ) рдХреА рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИред рдПрдХ рд╕реЗрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдордПрд╕ рд╡рд░реНрдб рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдмрдбрд╝реЗ рдкрд╛рда рд╣реИрдВ, рдФрд░ рддрдХрдиреАрдХреА рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд▓ рд╕реЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЬрдм рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдкрд╛рда рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдпрд╣ рдПрдХ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ред


рдирд┐рд╖реНрдХрд░реНрд╖


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЪрд▓рддреА рд╣реИред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ .xlsx рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХрдорд╛рдВрдб рд▓рд┐рдЦреЗрдВ:


cscript ConvertExcelToTXTandXML.vbs <filename>.xlsx


рдЗрд╕рдХреЗ рдмрд╛рдж, Enter рджрдмрд╛рдПрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд╡рд┐рдВрдбреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕реБрдВрджрд░ рджреГрд╢реНрдп рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЯрд╛рдЗрдЯреИрдирд┐рдХ рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВ, "рдЖрдИрдУрдПрд╕" рдФрд░ "рд░реЗрд╕", рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреНрд░рдорд╢рдГ рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред


рд╡рд╣ рд╕рдм рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдФрд░ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдПрдЧреАред

Source: https://habr.com/ru/post/hi446100/


All Articles