'   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
