X-Git-Url: https://git.rvb.name/openlib.git/blobdiff_plain/a47401f5fac121db5eb44214530121ab14cba2f3..6b3a07a008979ee27733a2deae2ff4fc42f4a535:/www/tools/export_file.txt diff --git a/www/tools/export_file.txt b/www/tools/export_file.txt new file mode 100644 index 0000000..f706a7f --- /dev/null +++ b/www/tools/export_file.txt @@ -0,0 +1,71 @@ +' 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