|
- ' Output a file
- ' If there is no translation then we output the line as a comment
- ' that starts with #EN# indicating that translation is required
-
-
- Sub Export_File(sType, iCol As Integer)
-
- Dim oFile As Integer
- Dim iRow As Integer
- Dim iBlankLines As Integer
- Dim sLangCode As String
- Dim sOut As String
- Dim sTemp As String
- Dim bOut() As Byte
- Dim shSheet As Worksheet: Set shSheet = Worksheets(sType)
-
- sFilename = sType & "_" & LCase$(shSheet.Cells(cLanguageCodeRow, iCol).Value) & ".json"
- oFile = FreeFile()
- sFullPath = Application.ActiveWorkbook.Path & "\" & sFilename
- On Error Resume Next
- Kill sFullPath
- Open sFullPath For Output As #oFile
- Close #oFile
- On Error GoTo 0
- Open sFullPath For Binary Access Write As #oFile
- ' Output comment on version as first line
- sOut = "{" & vbCrLf
- bOut = UnicodeToBytes(Worksheets(cConfiguration).Cells(cOutputFormatRow, cOutputFormatCol), sOut)
- Put #oFile, , bOut
-
- iRow = cFirstDataRow
- Do
- sTemp = shSheet.Cells(iRow, cKeywordCol).Value
- sOut = "// " & sTemp
- ' Print #oFile, sTemp;
- If Len(sTemp) = 0 Then
- iBlankLines = iBlankLines + 1
- Else
- iBlankLines = 0
- If Not isComment(sTemp) And (Not (sTemp Like "config*") Or sTemp Like "config.Language*") And Not sTemp Like "gui*" And Not sTemp Like "error*" And Not sTemp Like "info*" And Not sTemp Like "stats*" Then
- sOut = """" & sTemp & """" & ":"
- ' Print #oFile, "=";
- sTemp = shSheet.Cells(iRow, iCol).Value
- If Len(sTemp) > 0 Then
- sOut = sOut & """" & sTemp & ""","
- sOut = sOut & vbCrLf
- bOut = UnicodeToBytes(Worksheets(cConfiguration).Cells(cOutputFormatRow, cOutputFormatCol), sOut)
- Put #oFile, , bOut
- ' Print #oFile, sTemp;
- Else
- ' If no language specific one supplied then
- ' output English one as a comment starting with '#EN#'
- ' (as long this is not the english column with empty value)
- If iCol <> cEnglishLangCol Then
- sOut = "// EN" & sOut
- End If
- sOut = sOut & shSheet.Cells(iRow, 3).Value
- ' Print #oFile, shSheet.Cells(iRow, 3).Value;
- End If
- End If
- End If
- ' Print #oFile, "" ' Force new line
- iRow = iRow + 1
- Loop Until (iBlankLines > 5)
-
- sOut = """fin"":""fin""" & vbCrLf & "}" & vbCrLf
- bOut = UnicodeToBytes(Worksheets(cConfiguration).Cells(cOutputFormatRow, cOutputFormatCol), sOut)
- Put #oFile, , bOut
-
- Close #oFile
- End Sub
|