function output = language_packages(varargin)
    % number of inputs
    switch(nargin)        
        case 4
            messID = varargin{1};
            caseID = varargin{2}; 
            langTyp = varargin{3};
            langFile = varargin{4};
            addText1 = '';
            addText2 = '';
            addText3 = '';
        case 5
            messID = varargin{1};
            caseID = varargin{2};
            langTyp = varargin{3};
            langFile = varargin{4};
            addText1 = varargin{5};            
            addText2 = '';
            addText3 = '';
        case 6
            messID = varargin{1};
            caseID = varargin{2};
            langTyp = varargin{3};
            langFile = varargin{4};
            addText1 = varargin{5};
            addText2 = varargin{6};
            addText3 = '';
        case 7
            messID = varargin{1};
            caseID = varargin{2};
            langTyp = varargin{3};
            langFile = varargin{4};
            addText1 = varargin{5};
            addText2 = varargin{6};
            addText3 = varargin{7};
    end
    
    % ---- if Language file used, read file -------------------------------
    error = [];
    if langTyp == 6
        [output, error] = reading_language_file(messID, langFile, addText1, addText2, addText3);
        if ~isempty(error)
            langTyp = 1; % set to default english...
        elseif ~isempty(caseID)
            output = getfield(output,caseID);
        end
    end
    if (langTyp < 6)||(~isempty(error))
    % ---------------------------------------------------------------------
    % Construct of language pack    
    % variableName = {'English translation',...
    %                 'Spanish translation',...
    %                 'French translation',...
    %                 'German translation',...
    %                 'Italian translation'},...
    %                 'dummy'},...
    % ---------------------------------------------------------------------
        switch(messID)
            case 'GUIitems' % items of the GUI
                GUIitems = struct('item1',{'1. Rejoin Plugin log *.txt file',...
                    '1. registro Rejoin Plugin * .txt',...
                    '1. Rejoin Plugin log *.txt le fichier',...
                    '1. Rejoin Plugin log *.txt Datei',...                
                    '1. Rejoin Plugin log file *.txt',...
                    ''},...
                'item2',{'2. rFactor session *.xml file',...
                    '2. Sesión rFactor archivo * .xml',...
                    '2. rFactor session *.xml le fichier',...
                    '2. rFactor Session *.xml Datei',...                
                    '2. sessione di rFactor *.xml file',...
                    ''},...
                'item3a',{'select file',...
                    'seleccione el archivo',...
                    'sélectionnez le fichier',...
                    'Datei auswählen',...
                    'selezionare il file',...
                    ''},...
                'item3b',{'no file needed',...
                    'ningún archivo necesario',...
                    'aucun fichier nécessaire',...
                    'keine Datei notwendig',...
                    'nessun file necessario',...
                    ''},...    
                'item4',{'Number of restarts during race/ ',...
                    'Número reinicios durante la carrera/ ',...
                    'Nombre de redémarrages de course/ ',...
                    'Anzahl Rennrestarts/ ',...
                    'Il numero di riavvii durante la gara/ ',...
                    ''},...
                'item5',{'additional practice parts',...
                    'partes adicionales de práctica',...
                    'parties de pratique supplémentaires',...
                    'zusätzliche Trainingsessions',...
                    'parti aggiuntive di pratica',...
                    ''},...
                'item6',{'Race length in min',...
                    'Longitud Race en minutos',...
                    'Longueur de la course en min',...
                    'Rennlänge in min',...
                    'durata della corsa in min',...
                    ''},...
                'item7',{'Create log files',...
                    'Crear archivos',...
                    'Créer des fichiers',...
                    'Erstelle log Dateien',...
                    'Creazione di file',...
                    ''},...
                'item8',{'session settings',...
                    'configuración de la sesión',...
                    'paramètres de la session',...
                    'Session Einstellung',...
                    'impostazioni della sessione',...
                    ''},...
                'item9',{'Rejoin Plugin: create alternative scoring and/or *.xml result file',...
                    'Rejoin Plugin: creación de puntuación alternativos y / o *.xml archivo',...
                    'Rejoin Plugin: créer des alternatives notation et/ou *.xml le fichier',...
                    'Rejoin Plugin: Erstelle alt. Auswertung und/oder *.xml Datei',...
                    'Rejoin Plugin: creare punteggio alternativo e file dei risultati / o *.xml',...
                    ''},...
                'item10',{'generate race *.xml result file only',...
                    'sólo generar raza archivo *.xml resultado',...
                    'Créer seulement *.xml le fichier',...
                    'Erstelle nur Rennergebnis *.xml Datei',...
                    'solo generare gara file dei risultati *.xml',...
                    ''},...
                'item11',{'include logged <stream> entries into *.xml result file',...
                    'incluir <stream> entradas en el archivo *.xml resultado ',...
                    'Intégration des entrées <stream> dans *.xml le fichier',...
                    'Einbinden von <stream> Einträgen in *.xml Datei',...                
                    'includere registrati <stream> voci in file *.xml risultato',...
                    ''},...
                'item12',{'include <Lap> entries into *.xml result file',...
                    'incluir <Lap> entradas en el archivo *.xml resultado',...
                    'Intégration des entrées <Lap> dans *.xml le fichier',...
                    'Einbinden von <Lap> Einträgen in *.xml Datei',...
                    'includere <giro> voci in file *.xml risultato',...
                    ''},...
                'item13',{'rFactor Race result: create alternative scoring',...
                    'rFactor resultado Raza: crear de puntuación alternativo',...
                    'rFactor course résultat: créer des alternatives notation',...
                    'rFactor Rennergebnis: erstelle alternative Auswertung',...
                    'rFactor risultato della gara: creare punteggio alternativo',...
                    ''},...
                'item14',{'rFactor Qualifying result: create alternative scoring',...
                    'rFactor Qualifying resultado: crear de puntuación alternativo',...
                    'rFactor qualification résultat: créer des alternatives notation',...
                    'rFactor Qualifikationsergebnis: erstelle alternative Auswertung',...
                    'rFactor Qualificazione risultato: creare punteggio alternativo',...
                    ''},...
                'item15',{'rFactor Practice result: create alternative scoring',...
                    'rFactor resultado Práctica: crear de puntuación alternativo',...
                    'rFactor pratique résultat: créer des alternatives notation',...
                    'rFactor Trainingsergebnis: erstelle alternative Auswertung',...
                    'rFactor risultato Pratica: creare punteggio alternativo',...
                    ''},...
                'item16',{'check upgrades',...
                    'comprobar upgrades',...
                    'vérifier upgrades',...
                    'überprüfe Upgrades',...
                    'verificare upgrades',...
                    ''},...
                'item17',{'Status generating',...
                    'generadora de Estado',...
                    'statut génération',...
                    'Status Generierung',...
                    'generatrice di Stato',...
                    ''},...
                'item18',{'Language',...
                    'Idioma',...
                    'Langue',...
                    'Sprache',...
                    'Lingua',...
                    ''},...
                'item19',{'Default path',...
                    'Ruta predeterminada',...
                    'Chemin par défaut',...
                    'Standardpfad',...
                    'percorso predefinito',...
                    ''},...
                'item20',{'Select path for log files',...
                    'Seleccionar ruta de los archivos de registro',...
                    'Sélectionnez le chemin pour les fichiers journaux',...
                    'Wähle Pfad für log Dateien',...
                    'Selezionare il percorso per i file di log',...
                    ''},...
                'item21',{'from file',...
                    'de archivo',...
                    'de fichier',...
                    'aus Datei',...
                    'da file',...
                    ''});

                output = GUIitems(langTyp);

            case 'status' % status messages of the GUI
                status = struct('nofile',{'no file selected',...
                    'no hay ningún archivo seleccionado',...
                    'aucun fichier sélectionné',...
                    'keine Datei ausgewählt',...
                    'Nessun file selezionato',...
                    ''},...
                'selfile',{'select file',...
                    'seleccione el archivo',...
                    'sélectionnez le fichier',...
                    'Datei auswählen',...
                    'selezionare il file',...
                    ''},...
                'inputNAN',{'input invalid',...
                    'de entrada no válido',...
                    'entrée invalide',...
                    'Eingabe ungültig',...
                    'Input non valido',...
                    ''},...
                'selXML',{'Select rFactor session *.xml file',...
                    'Seleccione sesión rFactor archivo *.xml',...
                    'Choisissez rFactor session *.xml Fichier',...
                    'Wähle rFactor session *.xml Datei',...
                    'Selezionare sessione di rFactor *.xml',...
                    ''},...
                'selLangFile',{'Select language *.ini file',...
                    'Seleccionar idioma archivo *.ini',...
                    'Choisir la langue fichier *.ini',...
                    'Wähle Sprachen *.ini Datei',...
                    'Scegliete la lingua file *.ini',...
                    ''},...
                'selTXT',{'Select REJOIN PLUGIN serverlog *.txt of the race start',...
                    'Seleccione REJOIN PLUGIN serverlog *.txt de la salida de la carrera',...
                    'Choisissez REJOIN PLUGIN serverlog *.txt Fichier de la course commence',...
                    'Wähle REJOIN PLUGIN serverlog *.txt Datei des Rennstarts',...
                    'Selezionare REJOIN PLUGIN ServerLog *.txt della partenza di una gara',...
                    ''},...
                'noFileNeed',{'no file needed',...
                    'ningún archivo necesario',...
                    'aucun fichier nécessaire',...
                    'keine Datei notwendig',...
                    'nessun file necessario',...
                    ''},...
                'yes',{'Yes',...
                    'Sí',...
                    'Oui',...
                    'Ja',...
                    'Sì',...
                    ''},...
                'no',{'No',...
                    'No',...
                    'Aucun',...
                    'Nein',...
                    'No',...
                    ''},...
                'questGUI21',{'Create alternative scoring only?',...
                    'Crear sólo de puntuación alternativa?',...
                    'Créer notation seule alternative?',...
                    'Erstelle nur alternative Auswertung?',...
                    'Creare solo punteggio alternativo?',...
                    ''},...
                'questGUI22',{'No rFactor session *.xml file selected',...
                    'Ninguna sesión rFactor archivo *.xml seleccionado',...
                    'Aucun fichier *.xml séance de rFactor sélectionné',...
                    'Keine rFactor session *.xml Datei ausgewählt',...
                    'Nessuna sessione di rFactor il file *.xml selezionato',...
                    ''},...
                'read',{'reading ',...
                    'lectura ',...
                    'récolte ',...
                    'lese ',...
                    'lettura ',...
                    ''},...
                'done',{' COMPLETE!',...
                    ' COMPLETO!',...
                    ' COMPLET!',...
                    ' FERTIG!',...
                    ' COMPLETO!',...
                    ''},...
                'nextXML',{'Select rFactor *.xml file of restart # ',...
                    'Seleccione rFactor archivo *.xml de reinicio',...
                    'Sélectionnez le fichier rFactor *.xml de redémarrage # ',...
                    'Wähle rFactor session *.xml Datei von Restart # ',...
                    'Selezionare rFactor *.xml di riavvio #',...
                    ''},...
                'assem',{'assembling individual file parts',...
                    'montaje de partes de archivos individuales',...
                    'assemblage de pièces de fichiers individuels',...
                    'Füge einzelne Dateien zusammen',...
                    'assemblaggio di parti di file singoli',...
                    ''},...
                'wUp',{'writing upgrades log file',...
                    'escritura upgrades archivo de registro',...
                    'l''écriture du fichier upgradeslog',...
                    'Erstelle upgrades log Datei',...
                    'upgrades file di registro di scrittura',...
                    ''},...
                'sUp',{'Select folder to save upgrades log file *.txt',...
                    'Seleccione la carpeta para guardar las actualizaciones de archivo de registro *.txt',...
                    'Sélectionnez le dossier à sauvegarder upgrades log file *.txt',...
                    'Wähle Ordner zum Speichern von upgrades log *.txt Datei',...
                    'Selezionare la cartella in cui salvare upgrades log di file *.txt',...
                    ''},...
                'finishUp',{'Upgrades log file *.txt created',...
                    'Upgrades archivo *.txt de registro creado',...
                    'Upgrades log *.txt fichier créé connecter',...
                    'Upgrades log *.txt Datei erstellt',...
                    'Upgrades file creato log *.txt',...
                    ''},...  
                'noDir',{'No folder selected. File(s) not created!',...
                    'No hay carpeta seleccionada. Archivo(s) no ha creado!',...
                    'Aucun dossier sélectionné. Fichier(s) pas créé!',...
                    'Keinen Ordner ausgewählt. Datei(en) nicht erstellt!',...
                    'Nessuna cartella selezionata. File non ha creato!',...
                    ''},...           
                'nextP',{'Select next rFactor practice session *.xml file #',...
                    'Seleccione próxima sesión de práctica rFactor archivo *.xml #',...
                    'Sélectionnez le fichier rFactor pratique session *.xml suivant #',...
                    'Wähle nächste rFactor practice session *.xml Datei #',...
                    'Selezionare prossima sessione di prove rFactor *.xml #',...
                    ''},...  
                'wP',{'writing practice scoring',...
                    'puntuación práctica de la escritura',...
                    'écrit pratique résultat',...
                    'schreibe Trainingsauswertung',...
                    'scrittura pratica punteggio',...
                    ''},...  
                'sP',{'Select folder to save practice scoring',...
                    'Seleccionar carpeta para guardar la puntuación práctica',...
                    'Sélectionnez le dossier à sauvegarder pratique résultat',...
                    'Wähle Ordner zum Speichern des Trainingsergebnis',...
                    'Selezionare la cartella per salvare pratica punteggio',...
                    ''},...
                'createFile',{'Created file: ',...
                    'Creado archivo: ',...
                    'Fichier créé: ',...
                    'Datei erstellt: ',...
                    'File creato: ',...
                    ''},...
                'errFile',{'Error creating file: ',...
                    'Error al crear el archivo: ',...
                    'Erreur de création de fichier: ',...
                    'Fehler beim Erstellen von Datei: ',...
                    'Errore durante la creazione del file:',...
                    ''},...           
                'success',{' CREATED',...
                    ' CREADO',...
                    ' ÉTABLI',...
                    ' ERSTELLT',...
                    ' CREATO',...
                    ''},...
                'ignore',{'Number of restarts will be ignored.',...
                    'Número de reinicios se ignorará.',...
                    'Nombre de redémarrages sera ignoré.',...
                    'Anzahl Restarts wird nicht berücksichtigt.',...
                    'Il numero di riavvii verrà ignorato.',...
                    ''},...
                'selQ',{'Select rFactor QUALIFYING result file',...
                    'seleccionar el archivo resultado rFactor CALIFICACIÓN',...
                    'Sélectionnez le fichier rFactor qualification résultat',...
                    'Wähle rFactor QUALIFYING Datei',...
                    'Selezionare il file risultato rFactor QUALIFICHE',...
                    ''},...
                'nextTXT',{'Select REJOIN PLUGIN serverlog *.txt of restart #',...
                    'Seleccione REJOIN PLUGIN serverlog *.txt de reinicio #',...
                    'Sélectionnez REJOIN PLUGIN serverlog *.txt redémarrage de #',...
                    'Wähle REJOIN PLUGIN serverlog *.txt von Restart #',...
                    'Selezionare REJOIN PLUGIN serverLog *.txt di riavvio #',...
                    ''},...
                'wR',{'writing race *.xml file',...
                    'archivo raza *.xml escritura',...
                    'écrit fichier résultat de la course *.xml',...
                    'schreibe Rennergebnis *.xml Datei',...
                    'scrittura corsa *.xml',...
                    ''},...
                'sR',{'Save race *.xml file As...',...
                    'Guardar raza *.xml archivo como...',...
                    'Enregistrer le fichier de race *.xml',...                
                    'Speicher Rennergebnis *.xml Datei als...',...
                    'Salva corsa *.xml come',...
                    ''},...
                'wScore',{'writing alternative scoring',...
                    'escritura de puntuación alternativo',...
                    'Rédaction autre notation',...
                    'schreibe alternative Rennauswertung',...
                    'scrittura punteggio alternativo',...
                    ''},...
                'sScore',{'Select folder to save alternative scoring',...
                    'Seleccionar carpeta para guardar de puntuación alternativo',...
                    'Sélectionnez le dossier à sauvegarder alternatif notation',...
                    'Wähle Ordner zum Speichern der alt. Rennauswertung',...
                    'Selezionare cartella in cui salvare il punteggio alternativa',...
                    ''},...
                'err',{'Error: ',...
                    'Error: ',...
                    'Erreur: ',...
                    'Fehler: ',...
                    'Errore: ',...
                    ''},...
                'createTeam',{'Created file: Team',...
                    'Creado archivo: Team',...
                    'Fichier créé: Team',...
                    'Datei erstellt: Team',...
                    'File creato: Team',...
                    ''},...
                'errTeam',{'Error creating file: Team',...
                    'Error al crear el archivo: Equipo',...
                    'Erreur de création de fichier: Team',...
                    'Fehler beim Erstellen von Datei: Team',...
                    'Errore durante la creazione del file: Team',...
                    ''},... 
                'copy',{'Copied file: ',...
                    'Archivo copiado: ',...
                    'Fichier copié: ',...
                    'Datei kopiert: ',...
                    'File copiato: ',...
                    ''},...
                'search',{' Searching file: ',...
                    ' Búsqueda de archivos: ',...
                    ' Recherche de fichiers: ',...
                    ' Suche Datei: ',...
                    ' Ricerca di file: ',...
                    ''},...
                'debug',{'Save Debug log file?',...
                    'Guardar el archivo de registro de depuración?',...
                    'Enregistrer le fichier de débogage?',...
                    'Debug Datei speichern?',...
                    'Salva Debug file di registro?',...
                    ''},...
                'getPath',{'Select default path for log files...',...
                    'Seleccionar ruta predeterminada para los archivos de registro...',...
                    'Chemin par défaut Sélectionnez des fichiers journaux...',...
                    'Wähle Standardpfad for log Dateien...',...
                    'Selezione del percorso predefinito per i file di log...',...
                    ''},...
                'noPath',{'No default path for log files selected!',...
                    'No hay ruta predeterminada para los archivos de registro seleccionado!',...
                    'Chemin par défaut Sélectionnez des fichiers journaux...',...
                    'Kein Standardpfad for log Dateien ausgewählt!',...
                    'Nessun percorso predefinito per i file di registro selezionata!',...
                    ''});

                output = status(langTyp);

            case 'monitor' % monitors of the web report
                monitor = struct ('overview',{'Overview',...
                    'Información<br>general',...
                    'Enquête',...
                    'Übersicht',...
                    'Panoramica',...
                    ''},...
                'result',{'Result',...
                    'Resultado',...
                    'Résultat',...
                    'Ergebnis',...
                    'Risultato',...
                    ''},...
                'laps',{'Fastest Lap',...
                    'vuelta más<br>Rápida',...
                    'Tour le plus<br>rapide',...
                    'schnellste<br>Rennrunde',...
                    'Giro<br>più veloce',...
                    ''},...
                'leaders',{'Race Leaders',...
                    'Líderes de<br>la carrera',...
                    'Tours avancés',...
                    'Führungs-<br>runden',...
                    'leader<br>della corsa',...
                    ''},...
                'climbers',{'Climbers',...
                    'Escaladores',...
                    'Grimpeurs',...
                    'Aufsteiger',...
                    'Scalatori',...
                    ''},...
                'consistency',{'Consistency',...
                    'Consistencia',...
                    'Constance',...
                    'Konstanz',...
                    'Coerenza',...
                    ''});

                output = monitor(langTyp);

            case 'error' % error messages of the GUI
                error = struct('case1',{'No REJOIN PLUGIN log *.txt file under 1. selected',...
                    'No REJOIN PLUGIN hay registro de archivo *.txt bajo 1. seleccionado',...
                    'Aucun REJOIN PLUGIN log *.txt le fichier sélectionné dans le cadre du 1.',...
                    'Keine REJOIN PLUGIN log *.txt Datei unter 1. ausgewählt',...
                    'Non REJOIN PLUGIN *.txt file di log in 1. selezionato',...
                    ''},...
                'case2',{'No rFactor session *.xml file under 2. selected',...
                    'Ninguna sesión rFactor archivo * .xml bajo 2. seleccionado',...
                    'Aucun rFactor session *.xml le fichier sélectionné dans le cadre du 2.',...
                    'Keine rFactor session *.xml Datei unter 2. ausgewählt',...
                    'Nessuna sessione di rFactor 2. *.xml selezionato sotto',...
                    ''},...
                'case3',{['File ' addText1 ' is not of the RACE START! See line: ' addText2],...
                    ['Archivo ' addText1 ' no es de la no es de la raza comenzar! Vea la línea: ' addText2],...
                    ['Le fichier ' addText1 ' n''est pas le départ de la course! Voir en ligne: ' addText2],...
                    ['Datei ' addText1 ' ist nicht vom RENNSTART! Siehe Zeile: ' addText2],...                
                    ['File ' addText1 ' non è di inizio gara! Vedere line: ' addText2],...
                    ''},...
                'case4',{['No serverlog.txt file of RESTART # ' addText1 ' selected'],...
                    ['No hay archivo serverlog.txt REINICIAR # ' addText1 ' de seleccionado'],...
                    ['Aucun fichier serverlog.txt de REDÉMARRAGE # ' addText1 ' sélectionnée'],...
                    ['Keine serverlog.txt Datei von RESTART # ' addText1 ' ausgewählt'],...                .
                    ['No serverlog.txt di RIAVVIO file di # ' addText1 ' selezionato'],...
                    ''},...
                'case5',{['File ' addText1 ' is not of RESTART #' addText2 '! See line: ' addText3],...
                    ['Archivo ' addText1 ' no es de REINICIAR #' addText2 '! Vea la línea: ' addText3],...
                    ['Le fichier ' addText1 ' n''est pas REDÉMARRAGE #' addText2 '! Voir en ligne: ' addText3],...
                    ['Datei ' addText1 ' ist nicht von RESTART #' addText2 '! Siehe Zeile: ' addText3],...
                    ['Il File ' addText1 ' non è di RIAVVIO #' addText2 '! Vedere line: ' addText3],...
                    ''},...
                'case6a',{['File ' addText1 ' of RESTART # ' addText2 ' is the same file as RESTART # ' addText3],...
                    ['Archivo ' addText1 ' de REINICIAR  #' addText2 ' es el mismo archivo como REINICIAR # ' addText3],...
                    ['Fichier ' addText1 ' de REDÉMARRAGE #' addText2 ' est le même fichier que REDÉMARRAGE # ' addText3],...
                    ['Datei ' addText1 ' von RESTART # ' addText2 ' ist die gleiche Datei wie RESTART # ' addText3],...
                    ['File ' addText1 ' di RIAVVIO # ' addText2 ' è lo stesso file come di RICOMINCIA # ' addText3],...
                    ''},...
                'case6b',{['File ' addText1 ' of RESTART # ' addText2 ' is the same file as the RACE START log file'],...
                    ['Archivo ' addText1 ' RESTART #' addText2 ' es el mismo archivo que el archivo de registro de salida de la carrera'],...
                    ['Fichier ' addText1 ' de REDÉMARRAGE #' addText2 ' est le même que le fichier de log de départ de la course'],...
                    ['Datei ' addText1 ' von RESTART # ' addText2 ' ist die gleiche Datei wie die Datei des RENNSTARTS'],...
                    ['File ' addText1 ' di RIAVVIO # ' addText2 ' è lo stesso file nel file di registro di avvio gara'],...
                    ''},...
                'case7',{['New case in ' addText1 ' , software update needed! See line: ' addText2],...
                    ['Nuevo caso ' addText1 ' , actualización de software necesario! Vea la línea: ' addText2],...
                    ['Nouveau cas dans le fichier ' addText1 ' , mise à jour du logiciel nécessaire! Voir en ligne: ' addText2],...
                    ['Neuer Fall in ' addText1 ' , software update notwendig! Siehe Zeile: ' addText2],...
                    ['Nuovo caso di ' addText1 ' , l''aggiornamento software da installare! Vedere line: ' addText2],...
                    ''},...                        
                'case9',{['File ' addText1 ' of Practice part # ' addText2 ' is the same file as Practice part # ' addText3],...
                    ['Archivo ' addText1 ' de práctica parte #' addText2 ' es el mismo archivo como práctica parte # ' addText3],...
                    ['Fichier ' addText1 ' de partie de la pratique #' addText2 ' est le même fichier que partie de la pratique # ' addText3],...
                    ['Datei ' addText1 ' von Trainintgsteil # ' addText2 ' ist die gleiche Datei wie Trainingsteil # ' addText3],...
                    ['File ' addText1 ' di parte pratica # ' addText2 ' è lo stesso file nel file di parte pratica # ' addText3],...
                    ''},...                
                'case10',{['No *.xml file of RESTART # ' addText1 ' selected'],...
                    ['No hay archivo * .xml de REINICIO # ' addText1 '  seleccionado'],...
                    ['Aucun fichier *.xml de REDÉMARRAGE # ' addText1 ' sélectionnée'],...
                    ['Keine *.xml Datei von RESTART # ' addText1 ' ausgewählt'],...
                    ['Nessun file *.xml di RIAVVIO # ' addText1 ' selezionato'],...
                    ''},...
                'case11',{['File ' addText1 ' is not a race session'],...
                    ['El archivo ' addText1 'no es una sesión de carrer'],...
                    ['Fichier ' addText1 'n''est pas une séance de course'],...
                    ['Datei ' addText1 ' ist keine Rennsession'],...
                    ['Il file ' addText1 ' non è una sessione di gara'],...
                    ''},...
                'case12',{['Team ' addText1 ' is missing in rFactor *.xml file'],...
                    ['Equipo ' addText1 ' falta en rFactor archivo *.xml'],...
                    ['Équipe ' addText1 ' est manquant dans le fichier *.xml de rFactor'],...
                    ['Team ' addText1 ' ist nicht in Datei rFactor *.xml vorhanden'],...
                    ['Squadra ' addText1 ' manca rFactor file *.xml'],...
                    ''},...
                'case13',{['No rFactor ' addText1 ' *.xml file selected'],...
                    ['No hay archivo rFactor *.xml ' addText1 ' seleccionado'],...
                    ['Aucun fichier rFactor ' addText1 ' *.xml sélectionné'],...
                    ['Keine rFactor ' addText1 ' *.xml Datei ausgewählt.'],...
                    ['Nessun file rFactor ' addText1 ' *.xml selezionato'],...
                    ''},...            
                'case14',{['File ' addText1 ' is not a ' addText2 ' session'],...
                    ['El archivo ' addText1 ' no es una ' addText2 ' sesión'],...
                    ['Fichier ' addText1 ' n''est pas une ' addText2 ' session'],...
                    ['Datei ' addText1 ' ist keine ' addText2 ' session'],...
                    ['Il file ' addText1 ' non è una ' addText2 ' sessione'],...
                    ''},...
                'case15',{['Error: ' addText1],...
                    ['Error: ' addText1],...
                    ['Erreur: ' addText1],...
                    ['Fehler: ' addText1],...
                    ['Errore: ' addText1],...
                    ''},...                
                'case17',{['No *.xml file for practice session # ' addText1 ' selected'],...
                    ['No hay archivo * .xml para la sesión de práctica # ' addText1 ' seleccionado'],...
                    ['Aucun fichier *.xml de session de pratique # ' addText1 ' sélectionnée'],...
                    ['Keine *.xml Datei für Trainingssession  # ' addText1 ' ausgewählt'],...
                    ['Nessun file *.xml per la sessione di prove libere # ' addText1 ' selezionato'],...
                    ''},...
                'case18',{['Found no "RaceFinishing" entry in file: ' addText1],...
                    ['Encontrado ninguna entrada "RaceFinishing" en el archivo: ' addText1],...
                    ['Trouvé aucune entrée "RaceFinishing" dans le fichier: ' addText1],...
                    ['Kein "RaceFinishing" Eintrag in Datei gefunden: ' addText1],...
                    ['Trovato senza voce "RaceFinishing" nel file: ' addText1],...
                    ''},...
                'case19',{['Found no "RaceStopped" entry in file: ' addText1],...
                    ['Encontrado ninguna entrada "RaceStopped" en el archivo: ' addText1],...
                    ['Trouvé aucune entrée "RaceStopped" dans le fichier: ' addText1],...
                    ['Kein "RaceStopped" Eintrag in Datei gefunden: ' addText1],...
                    ['Trovato senza voce "RaceStopped" nel file: ' addText1],...
                    ''},...
                'case20',{['Found "RaceStopped" entry instead of "RaceFinishing" in file ' addText1 '! See line: ' addText2],...
                    ['Encontrado entrada "RaceStopped" en lugar de "RaceFinishing" en el archivo  ' addText1 '! Vea la línea: ' addText2],...
                    ['Trouvé entrée "RaceStopped" au lieu de "RaceFinishing" dans le fichier ' addText1 '! Voir en ligne: ' addText2],...
                    ['"RaceStopped" Eintrag anstatt "RaceFinishing" in Datei ' addText1 ' gefunden! Siehe Zeile: ' addText2],...
                    ['Trovato "RaceStopped" ingresso al posto di "RaceFinishing" nel file ' addText1 '! Vedere line: ' addText2],...
                    ''},...
                'case21',{['Found "RaceFinishing" entry instead of "RaceStopped" in file ' addText1 '! See line: ' addText2],...
                    ['Encontrado entrada "RaceFinishing" en lugar de "RaceStopped" en el archivo  ' addText1 '! Vea la línea: ' addText2],...
                    ['Trouvé entrée "RaceFinishing" au lieu de "RaceStopped" dans le fichier ' addText1 '! Voir en ligne: ' addText2],...
                    ['"RaceFinishing" Eintrag anstatt "RaceStopped" in Datei ' addText1 ' gefunden! Siehe Zeile: ' addText2],...
                    ['Trovato voce "RaceFinishing" invece di "RaceStopped" nel file ' addText1 '! Vedere line: ' addText2],...
                    ''},...
                'case22',{'Mode "Generate race *.xml result file only" requires a practice session *.xml file',...
                    'Modo "sólo generar raza archivo *.xml resultado" precisa un archivo *.xml sesión de práctica',...
                    'Mode "Créer seulement *.xml le fichier" nécessite un fichier rFactor *.xml séance d''essais',...
                    'Modus "Erstelle nur Rennergebnis *.xml Datei" benötigt eine rFactor Trainingssession *.xml Datei',...
                    'Modalità "solo generare gara file dei risultati *.xml" richiede una sessione di pratica *.xml',...
                    ''},...
                'case23',{['File ' addText1 ' contains no driver or team data.'],...
                    ['El archivo ' addText1 ' no contiene datos de controlador o equipos.'],...
                    ['Fichier ' addText1 ' ne contient pas de données de pilote ou des équipes.'],...
                    ['Datei ' addText1 ' enthält keine Daten zu Fahrern oder Teams.'],...
                    ['File ' addText1 ' senza dati del conducente o del team.'],...
                    ''});            

                output = getfield(error(langTyp),caseID);

            case 'table_header' % table header entries of the web report
                table_header = struct('class',{'Class',...
                    'Clase',...
                    'Classe',...
                    'Klasse',...
                    'Classe',...
                    ''},...
                'team',{'Team',...
                    'Equipo',...
                    'Èquipe',...
                    'Team',...
                    'Squadra',...
                    ''},...
                'laps',{'Laps',...
                    'Vueltas',...
                    'Tours',...
                    'Runden',...
                    'Giri',...
                    ''},...
                'lap',{'Lap',...
                    'Vuelta',...
                    'Tour',...
                    'Runde',...
                    'Giro',...
                    ''},...
                'numPit',{'# Pit',...
                    '# Pit',...
                    '# Stand',...
                    '# Box',...
                    '# pit',...
                    ''},...
                'inPit',{'in Pit',...
                    'en Pit',...
                    'dans Stand',...
                    'in Box',...
                    'in pit',...
                    ''},...
                'pos',{'Position',...
                    'Posición',...
                    'Position',...
                    'Position',...
                    'Posizione',...
                    ''},...
                'posShort',{'Pos',...
                    'Pos',...
                    'Pos',...
                    'Pos',...
                    'Pos',...
                    ''},...
                'fuel',{'Fuel',...
                    'Combustible',...
                    'carburant',...
                    'Sprit',...
                    'Combustibile',...
                    ''},...
                'fTyre',{'Front compound',...
                    'compuesto frente',...
                    'composé avant',...
                    'Vorderreifen',...
                    'mescola anteriore',...
                    ''},...
                'rTyre',{'Rear compound',...
                    'compuesto trasero',...
                    'composé arrière',...
                    'Hinterreifen',...
                    'mescola posteriore',...
                    ''},...
                'total',{'total',...
                    'total de',...
                    'total',...
                    'gesamt',...
                    'totale',...
                    ''},...
                'restart',{'Restart',...
                    'Reanudar',...
                    'Redémarrage',...
                    'Neustart',...
                    'Ricomincia',...
                    ''},...
                'fromTo',{'Lap from - to',...
                    'Vuelta de - a',...
                    'Tour de - à',...
                    'Runde von - bis',...
                    'Giro da - a',...
                    ''},...
                'from',{' from ',...
                    ' de ',...
                    ' de ',...
                    ' von ',...
                    ' da ',...
                    ''},...
                'to',{' to ',...
                    ' a ',...
                    ' à ',...
                    ' zu ',...
                    ' a ',...
                    ''},...
                'classPos',{'Class pos',...
                    'Clase Pos',...
                    'Classe Pos',...
                    'Klassen Pos',...
                    'Classe pos',...
                    ''},...
                'lapTime',{'Lap time',...
                    'El tiempo de vuelta',...
                    'Les temps au tour',...
                    'Rundenzeit',...
                    'Tempo sul giro',...
                    ''},...
                'percent',{'Percentage',...
                    'Porcentaje',...
                    'Pourcentage',...
                    'Prozent',...
                    'Percentuale',...
                    ''},...
                'driver',{'Driver',...
                    'Conductor',...
                    'Conducteur',...
                    'Fahrer',...
                    'Autista',...
                    ''},...
                'finishDriver',{'Finish driver',...
                    'Conductor finalizar',...
                    'Conducteur terminer',...
                    'Zielfahrer',...
                    'Autista fine',...
                    ''},...
                'distance',{'Distance (overall)',...
                    'Distancia (en general)',...
                    'Distance (global)',...
                    'Distanz (gesamt)',...
                    'Distanza (generale)',...
                    ''},...
                'lapsAll',{'Laps<br />(overall)',...
                    'Vueltas<br />(general)',...
                    'Tours<br />(global)',...
                    'Runden<br />(gesamt)',...
                    'Giri<br />(generale)',...
                    ''},...
                'startPos',{'Start position',...
                    'Posición de empezar',...
                    'Position de départ',...
                    'Startposition',...
                    'Posizione iniziale',...
                    ''},...
                'endPos',{'End position',...
                    'Posición final',...
                    'Position finale',...
                    'Endposition',...
                    'Posizione finale',...
                    ''},...
                'gapInS',{'Gap in [s]',...
                    'Gap en [s]',...
                    'Écart in [s]',...
                    'Abstand in [s]',...
                    'Divario in [s]',...
                    ''},...
                'gap',{'Gap',...
                    'Gap',...
                    'Écart',...
                    'Abstand',...
                    'Divario',...
                    ''},...
                'meanVal',{'Average lap time',...
                    'El tiempo medio de vuelta',...
                    'Temps moyen au tour',...
                    'Mittelwert Rundenzeit',...
                    'Tempo medio sul giro',...
                    ''},...
                'stdVal',{'Standard deviation in [s]',...
                    'La desviación estándar en [s]',...
                    'L''écart-type [s]',...
                    'Standard- abweichung in [s]',...
                    'Deviazione standard in [s]',...
                    ''},...
                'sector',{'Sector',...
                    'Sector',...
                    'Secteur',...
                    'Sektor',...
                    'Settore',...
                    ''},...
                'finishTime',{'Finish time',...
                    'Hora de finalización',...
                    'Temps d''arrivée',...
                    'Gesamtzeit',...
                    'Tempo finale',...
                    ''},...
                'finishNorm',{'Finished Normally',...
                    'terminado',...
                    'fini normalement',...
                    'normal beendet',...
                    'finito normalmente',...
                    ''},...
                'finishStat',{'Finish status',...
                    'estado Finalizar',...
                    'état de finition',...
                    'Status Ziel',...
                    'Stato di finitura',...
                    ''},...
                'recordR',{'Fastest race lap',...
                    'Vuelta rápida carrera',...
                    'Tour le plus rapide',...
                    'schnellste Rennunde',...
                    'Giro più veloce in gara',...
                    ''},...
                'recordQ',{'Fastest qualifying lap',...
                    'Vuelta rápida calificativo',...
                    'rapide tour de qualification',...
                    'schnellste Qualifikationsrunde',...
                    'Giro più veloce in qualifica',...
                    ''},...
                'recordP',{'Fastest practice lap',...
                    'Vuelta rápida práctica',...
                    'rapide tour la pratique',...
                    'schnellste Trainingsrunde',...
                    'Pratica giro più veloce',...
                    ''},...
                'track',{'Track',...
                    'Pista',...
                    'Route',...
                    'Strecke',...
                    'Pista',...
                    ''},...
                'date',{'Date',...
                    'Fecha',...
                    'Date',...
                    'Datum',...
                    'Data',...
                    ''},...
                'winner',{'Winner',...
                    'Ganador',...
                    'Gagnant',...
                    'Gewinner',...
                    'Vincitore',...
                    ''},...
                'raceLenght',{'Race length',...
                    'longitud Race',...
                    'Longueur de course',...
                    'Rennlänge',...
                    'Lunghezza corsa',...
                    ''},...
                'mostLaps',{'Most laps completed',...
                    'Número de vueltas',...
                    'Nombre de tours',...
                    'Rundenanzahl',...
                    'Numero di giri',...
                    ''},...
                'event',{'Event',...
                    'Evento',...
                    'Événement',...
                    'Veranstaltung',...
                    'Evento',...
                    ''},...
                'serverName',{'Server name',...
                    'Nombre del servidor',...
                    'Server nom',...
                    'Server Name',...
                    'Nome del server',...
                    ''},...
                'overPos',{'Overall position: ',...
                    'Posición general: ',...
                    'Position globale: ',...
                    'Gesamtposition: ',...
                    'Posizione generale: ',...
                    ''},...
                'classPosition',{'Class position: ',...
                    'La posición de clase: ',...
                    'Position de classe: ',...
                    'Position in Klasse: ',...
                    'Posizione di classe: ',...
                    ''},...
                'noData',{'Data not available',...
                    'Datos no disponibles',...
                    'Données ne avialable',...
                    'Keine Daten verfügbar',...
                    'Dati non disponibile',...
                    ''},...
                'posLap1',{'POSSIBLE BEST LAP TIME OUT OF ',...
                    'POSIBLE MEJOR TIEMPO DE VUELTA DE LOS ',...
                    'POSSIBLE MEILLEUR TOUR TIME OUT DU ',...
                    'BESTMÖGLICHE RUNDENZEIT AUS DEN ',...
                    'POSSIBILE MIGLIOR TEMPO SUL GIRO DI ',...
                    ''},...
                'posLap2',{'BEST SECTOR TIMES',...
                    'MEJORES TIEMPOS DEL SECTOR',...
                    'MEILLEUR TEMPS SECTEUR',...
                    'BESTEN SEKTORZEITEN',...
                    'TEMPI MIGLIORI DEL SETTORE',...
                    ''},...
                'teamLaps',{'lap by lap',...
                    'vuelta a vuelta',...
                    'Tour par tour',...
                    'Runde für Runde',...
                    'giro dopo giro',...
                    ''},...
                'swaps',{'Driver swaps',...
                    'conductor de intercambio',...
                    'Changement de pilotes',...
                    'Fahrerwechsel',...
                    'Scambio driver',...
                    ''},...
                'swap',{'Driver swap',...
                    'conductor de intercambio',...
                    'Changement de pilote',...
                    'Fahrerwechsel',...
                    'Scambio driver',...
                    ''},...
                'entries',{'Team entries: ',...
                    'Entradas del equipo: ',...
                    'Les inscriptions des équipes: ',...
                    'Team Einträge: ',...
                    'Lavori di gruppo:',...
                    ''},...
                'tIndex',{'Time index - server log message',...
                    'Índice Tiempo - mensaje serverlog',...
                    'Temps index - un message ServerLog',...
                    'Zeitindex - serverlog Eintrag',...
                    'Tempo index - messaggio di log del server',...
                    ''},...
                'conTeam',{'Consistency team',...
                    'equipo Consistencia',...
                    'équipe de Constance',...
                    'Konstanz Team',...
                    'Squadra coerenza',...
                    ''},...
                'conDriver',{'Consistency driver',...
                    'conductor Consistencia',...
                    'Pilote de Constance',...
                    'Konstanz Fahrer',...
                    'Autista coerenza',...
                    ''},...
                'key',{'Key:',...
                    'Leyenda',...
                    'Légende:',...
                    'Legende:',...
                    'Leggenda',...
                    ''},...
                'noIncFound',{'No incidents found',...
                    'No se encontraron incidentes',...
                    'Aucun incident trouvé',...
                    'Keine Zwischenfälle gefunden',...
                    'Non ci sono incidenti trovato',...
                    ''},...
                'incidents',{'Incidents',...
                    'Incidentes',...
                    'Incidents',...
                    'Ereignisse',...
                    'Incidenti',...
                    ''},...
                'incident',{'Incident',...
                    'Incidente',...
                    'Incident',...
                    'Ereignis',...
                    'Incidente',...
                    ''},...
                'climb',{'Highest climbers',...
                    'Máximas escaladores',...
                    'Plus élevés grimpeurs',...
                    'Auf-/Absteiger',...
                    'Scalatori più alti',...
                    ''},...
                'resultP',{'Practice result',...
                    'resultado Práctica',...
                    'Résultat de la pratique',...
                    'Trainingsergebnis',...
                    'Risultato pratica',...
                    ''},...
                'lapsP',{'Practice laps',...
                    'Vueltas de práctica',...
                    'Tours d''essais',...
                    'Trainingsrunden',...
                    'Giri di pratica',...
                    ''},...
                'resultR',{'Race result',...
                    'Resultado de la carrera',...
                    'Résultat course',...
                    'Rennergebnis',...
                    'Risultato della gara',...
                    ''},...
                'lapsR',{'Race laps',...
                    'Vueltas de carreras',...
                    'Tours de course',...
                    'Rennrunden',...
                    'Giri di gara',...
                    ''},...
                'resultQ',{'Qualifying result',...
                    'Resultado de la calificación',...
                    'Résultat de qualification',...
                    'Qualifkationsergebnis',...
                    'Risultato delle qualifiche',...
                    ''},...
                'lapsQ',{'Qualifying laps',...
                    'Vueltas de calificación',...
                    'Tours de qualification',...
                    'Qualifkationsrunden',...
                    'Giri di qualifica',...
                    ''},...
                'percDrive',{'Number of laps in percent',...
                    'Número de vueltas en por ciento',...
                    'Nombre de tours en pour cent',...
                    'Rundenanzahl in Prozent',...
                    'Numero di giri in percentuale',...
                    ''},...
                'numESC',{'#ESC/ DC',...
                    '#ESC/ DC',...
                    '#ESC/ DC',...
                    '#ESC/ DC',...
                    '#ESC/ DC',...
                    ''},...
                'close',{'close',...
                    'cerca',...
                    'près',...
                    'schliessen',...
                    'vicino',...
                    ''},...
                'graph',{'Graph: lap by lap position of each race leader',...
                    'Gráfico: vuelta por vuelta de cada posición líder de la carrera',...
                    'Graphique: tour par la position du tour de chaque leader de la course',...
                    'Diagramm: Runde für Runde Position jedes Rennführenden',...
                    'Grafico: giro dopo giro la posizione di ogni leader della corsa',...
                    ''},...                      
                'leadR',{'Race leaders',...
                    'Líderes de la carrera',...
                    'Leaders de la course',...
                    'Führung im Rennen',...
                    'Leader della corsa',...
                    ''});
                
                if isempty(caseID)
                    output = table_header(langTyp); % complete struct
                else
                    output = getfield(table_header(langTyp),caseID); % field only
                end                

            case 'key' % explanations on the web report
                key = struct('nA',{'n/a (data not available) = reason: alternative scoring was generated without data of a rFactor(2) *.xml file',...
                    'n/a (datos no disponibles) = razón: de puntuación alternativa se generó sin datos de un archivo *.xml rFactor(2)',...
                    'n/a (données ne avialable) = raison: autre notation a été généré sans données d''un rFactor(2) *.xml fichier',...
                    'n/a (Daten nicht verfügbar) = Grund: alt. Rennauswertung wurde ohne die Daten eines rFactor(2) *.xml Datei erstellt',...
                    'n/a (dati non disponibile) = ragione: punteggio alternativo è stato generato senza dati di rFactor(2) *.xml',...
                    ''},...
                'noLap',{'"ERROR: missing lap x" = reason: pressed esc, disconnect, lap down/up penalty, vehicle not detected in last sector or unknown.',...
                    '"ERROR: vuelta desaparecidos x" = razón: esc presionado, desconexión, regazo pena de abajo / arriba, vehículo no detectado en último sector o desconocido.',...
                    '"ERREUR: tour manquant x" = la raison: pressé esc, déconnexion, roder down / up peine, véhicule non détecté dans le dernier secteur ou inconnu.',...
                    '"FEHLER: fehlende Runde x " = Grund: esc gedrückt, Verbingsverlust, Strafe Rundenabzug/Runde hinzugefügt, Fahrzeug nicht im letzten Sektor erkannt oder unbekannt.',...
                    '"ERRORE: giro mancante x" = motivo: esc premuto, disconnessione, lap down / up pena, veicolo non rilevati in ultimo settore o sconosciuto.',...
                    ''},...     
                'unusedLap',{'"LAP UNUSED: ..." = reason: lap is not listed at "lap by lap" table because it is doubly present.',...
                    '"VUEALTA NO UTILIZADO: ..." = razón: la vuelta no aparece en "vuelta a vuelta" mesa porque es doblemente presente.',...
                    '"TOUR PAS UTILISÉ: ..." = Raison: Round est un doublon et n''est donc pas "tour par tour" apparaît dans le tableau.',...
                    '"RUNDE NICHT VERWENDET: ..." = Grund: Runde ist doppelt vorhanden und wird daher nicht in der Tabelle "Runde für Runde" angezeigt.',...
                    '"GIRO NON UTILIZZATO: ..." = ragione: giro non è elencato in "giro dopo giro" tavolo perché è doppiamente presente.',...
                    ''},...
                'infoTeam',{'Click on the team name to show all team laps and incidents.',...
                    'Haga clic en el nombre del equipo para mostrar todas las vueltas y los incidentes del equipo.',...
                    'Cliquez sur le nom de l''équipe pour montrer tous les tours de l''équipe et les incidents.',...
                    'Klicke auf den Teamnamen um alle Teamrunden und Ereignisse anzuzeigen.',...
                    'Clicca sul nome della squadra per mostrare tutti i giri di squadra e gli incidenti.',...
                    ''},...
                'rank',{'Ranking includes only drivers with at least 1 timed lap.',...
                    'Clasificación incluye sólo los conductores con al menos 1 vuelta cronometrada.',...
                    'Le classement comprend uniquement les pilotes ayant au moins 1 tour chronométré.',...
                    'Rangliste umfasst nur Fahrer mit mindestens 1 gezeiteten Runde.',...
                    'Ranking comprende solo i driver con almeno 1 giro cronometrato.',...
                    ''},...
                'timeHM',{['The percentage value finish time is related to the race length of: ' addText1 ' min. = ' addText2 'h : ' addText3 'min.'], ...
                    ['El tiempo de acabado valor porcentual está relacionada con la longitud de carrera: ' addText1 ' min. = ' addText2 'h : ' addText3 'min.'],...
                    ['Le pourcentage du temps total correspond à la longueur de la course: ' addText1 ' min. = ' addText2 'h : ' addText3 'min.'], ...
                    ['Der Prozentwert Gesamtzeit bezieht sich auf die Rennlänge von: ' addText1 ' min. = ' addText2 'h : ' addText3 'min.'],...
                    ['Il tempo finale valore percentuale è correlata alla lunghezza di corsa: ' addText1 ' min. = ' addText2 'h : ' addText3 'min.'],...
                    ''},...
                'timeM',{['The percentage value finish time is related to the race length of: ' addText1 ' min.'], ...
                    ['El tiempo de acabado valor porcentual está relacionada con la longitud de carrera: ' addText1 ' min.'],...
                    ['Le pourcentage du temps total correspond à la longueur de la course: ' addText1 ' min.'], ...
                    ['Der Prozentwert Gesamtzeit bezieht sich auf die Rennlänge von: ' addText1 ' min.'],...
                    ['Il tempo finale valore percentuale è correlata alla lunghezza di corsa: ' addText1 ' min.'],...
                    ''},...
                'percLaps',{'The percentage value refers only to the respective total laps of the team.',...
                    'El valor de porcentaje se refiere sólo a las respectivas vueltas totales del equipo.',...
                    'La valeur de pourcentage s''applique uniquement aux tours totaux respectifs de l''équipe.',...
                    'Der Prozentwert bezieht sich nur auf die jeweiligen Gesamtrunden des Teams.',...
                    'Il valore percentuale si riferisce solo ai rispettivi giri totali della squadra.',...
                    ''},...
                'conD',{'Only drivers with at least 3 timed laps are considered.',...
                    'Sólo se consideran los conductores con al menos 3 vueltas cronometradas.',...
                    'Seuls les pilotes ayant au moins 3 tours chronométrés sont considérés.',...
                    'Nur Fahrer mit mindestens 3 gezeiteten Runden werden berücksichtigt.',...
                    'Sono considerati solo i driver con almeno 3 giri cronometrati.',...
                    ''},...
                'stdT',{'The standard deviation in [s] is a measure of the spread of lap times around the average lap time.',...
                    'La desviación estándar en la [s] es una medida de la extensión de los tiempos de vuelta alrededor del tiempo medio de vuelta.',...
                    'L''écart-type en [s] est une mesure de la dispersion des chronos autour du temps moyen au tour.',...
                    'Die Standardabweichung in [s] ist ein Maß für die Streuung der Rundenzeiten um die durchschnittliche Rundenzeit.',...
                    'La deviazione standard in [s] è una misura della dispersione di tempi sul giro di tutto il tempo medio sul giro.',...
                    ''},...
                'lineGraph',{'A line is interrupted, if the lap and therewith the lap position is missing.',...
                    'Una línea se interrumpe, si el regazo y con ello la posición de la vuelta se encuentra.',...
                    'Une ligne est interrompue, si la tour et ainsi la position de tour est manquant.',...
                    'Eine Linie wird unterbrochen, wenn die Runde und damit die Rundenposition fehlt.',...
                    'Una linea è interrotta, se il giro e con essa la posizione di giro manca.',...
                    ''},...      
                'colCodesHeader',{'Color codes lap times: ',...
                    'Los códigos de color tiempos de vuelta:',...
                    'Les codes de couleurs les temps au tour: ',...
                    'Farbcodes Rundenzeiten: ',...
                    'Codici colore tempi sul giro: ',...
                    ''},...
                'colCodesLight',{'Light green : 0.5s or less slower than the fastest race lap of all drivers',...
                    'Luz verde: 0,5s o menos lento que la vuelta rápida en carrera de todos los conductores',...
                    'Vert clair: 0,5s ou moins lent que le meilleur tour en course de tous les conducteurs',...
                    'Hellgrün: 0.5s oder weniger langsamer als die schnellste Rennrunde aller Fahrer',...
                    'Verde chiaro: 0.5s o meno lento rispetto al giro più veloce in gara di tutti i driver',...
                    ''},...
                'colCodesGreen',{'Green : 0.5s or less slower than the team''s best lap time',...
                    'Verde: 0.5s o menos lento que el mejor tiempo de vuelta del equipo de',...
                    'Vert: 0,5s ou moins lent que le meilleur temps au tour de l''équipe',...
                    'Grün: 0.5s oder weniger langsamer als die schnellste Rennrunde des Teams',...
                    'Verde: 0.5s o meno più lento del miglior tempo sul giro la squadra ''del',...
                    ''},...
                'colCodesOrange',{'Orange : between 0.5s and 1.5s slower than the team''s best lap time',...
                    'Naranja: entre 0,5s y 1,5s más lento que el mejor tiempo de vuelta del equipo de',...
                    'Orange: entre 0.5s et 1.5s plus lent que le meilleur temps au tour de l''équipe ''de',...
                    'Orange: 0.5s bis 1.5s langsamer als die schnellste Rennrunde des Teams',...
                    'Arancione: tra 0,5s e 1,5s più lento del miglior tempo sul giro la squadra ''del',...
                    ''},...
                'colCodesRed',{'Red : between 1.5s and 3.0s slower than the team''s best lap time',...
                    'Rojo: entre 1,5s y 3.0s más lento que el mejor tiempo de vuelta del equipo de',...
                    'Rouge: entre 1.5s et 3.0s plus lent que le meilleur temps au tour de l''équipe ''de',...
                    'Rot: 1.5s bis 3.0s langsamer als die schnellste Rennrunde des Teams',...
                    'Rosso: tra 1.5s 3.0s e più lento del miglior tempo sul giro la squadra ''del',...
                    ''},...
                'colCodesDark',{'Dark red : more then 3.0s slower than the team''s best lap time',...
                    'Rojo oscuro: más de 3.0s más lento que el mejor tiempo de vuelta del equipo de',...
                    'Rouge foncé: plus de 3.0s plus lent que le meilleur temps au tour de l''équipe ''de',...
                    'Dunkelrot: mehr als 3.0s langsamer als die schnellste Rennrunde des Teams',...
                    'Rosso scuro: più di 3.0s più lento del miglior tempo sul giro la squadra ''del',...
                    ''},...
                'colCodesPurple',{'Purple : Fastest sector time',...
                    'Púrpura: Más rápido tiempo sector',...
                    'Violet: Meilleur temps du secteur',...
                    'Lila: schnellste Sektorzeit',...
                    'Viola: il tempo il settore più veloce',...
                    ''});    
                
                if isempty(caseID)
                    output = key(langTyp); % complete struct
                else
                    output = getfield(key(langTyp),caseID); % field only
                end

            case 'lang' % ISO Language Codes 693-1 -> <html lang="en">            
                % see: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
                lang = {'en',...
                    'es',...
                    'fr',...
                    'de',...
                    'it',...
                    ''};

                output = cell2mat(lang(langTyp));
                
            case 'encoding' % character encoding table     
                % see: http://en.wikipedia.org/wiki/UTF-8
                % see: http://en.wikipedia.org/wiki/ISO/IEC_8859-1                
                lang = {'UTF-8',...
                    'ISO-8859-1',...
                    'ISO-8859-1',...
                    'ISO-8859-1',...
                    'ISO-8859-1',...
                    ''};

                output = cell2mat(lang(langTyp));

            case 'readTXT' % for function reading_rejoin_plugin_log.m
                readTXT = struct('laps',{' laps',...
                    ' Vueltas',...
                    ' Tours',...
                    ' Runden',...
                    ' giri',...
                    ''},...
                'lap',{' lap',...
                    ' Vuelta',...
                    ' Tour',...
                    ' Runde',...
                    ' giro',...
                    ''},...
                'dummy',{'Driver dummy ',...
                    'maniquí conductor',...
                    'Mannequin conducteur',...
                    'Fahrer Dummy ',...
                    'Driver fittizio',...
                    ''},...
                'errLap',{'ERROR: missing lap ',...
                    'ERROR: vuelta desaparecidos ',...
                    'ERREUR: tour manquant ',...
                    'Fehler: fehlende Runde ',...
                    'ERRORE: giro mancante',...
                    ''},...            
                'reason1',{' -> reason: ',...
                    ' -> razón: ',...
                    ' -> la raison: ',...
                    ' -> Grund: ',...
                    ' -> ragione: ',...
                    ''},...
                'reason2',{' -> reason: unknown / probably "Lap_up_penalty" was manually set by race control',...
                    ' -> motivo: desconocido / probablemente "Lap_up_penalty" se ajusta manualmente por control de carrera',...
                    ' -> la raison: inconnu / "Lap_up_penalty" probablement été réglée manuellement par la direction de course',...
                    ' -> Grund: unbekannt / möglicherweise manuell vergebene "Lap_down_penalty" durch die Rennleitung',...
                    ' -> motivo: sconosciuto / probabilmente "Lap_up_penalty" è stato impostato manualmente dal controllo corsa',...
                    ''},...
                'unusedLap',{'LAP UNUSED: ',...
                    'VUEALTA NO UTILIZADO: ',...
                    'TOUR PAS UTILISÉ: ',...
                    'RUNDE NICHT VERWENDET: ',...
                    'GIRO NON UTILIZZATO: ',...
                    ''},...
                'errFinish',{'ERROR: missing finish lap ',...
                    'ERROR: falta regazo acabado ',...
                    'ERREUR: manque le dernier tour ',...
                    'Fehler: fehlende Schlussrunde  ',...
                    'ERRORE: manca finitura giro',...
                    ''},...
                'infoLap1',{'  INFO: Lap  ',...
                    '  INFO: Vuelta  ',...
                    '  INFO: Tour  ',...
                    '  INFO: Runde  ',...
                    '  INFO: Giro  ',...
                    ''},...
                'infoLap2',{' is doubly present cause of "Lap_down_penalty" manually set by race control. See table incidents!',...
                    ' es doblemente presente causa de "Lap_down_penalty" establecer manualmente por control de carrera. Ver incidentes de mesa!',...
                    ' est doublement présente la cause de "Lap_down_penalty" régler manuellement par la direction de course. Voir incidents de table!',...
                    ' ist doppelt vorhanden wegen einer manuell vergebenen "Lap_down_penalty" der Rennleitung. Siehe Tabelle Zwischenfälle!',...
                    ' è doppiamente presente causa di "Lap_down_penalty" impostato manualmente direzione gara. Vedere incidenti tavolo!',...
                    ''});

                output = readTXT(langTyp);

            case 'session' % for status error mess
                session = struct('Q',{'QUALIFYING',...
                    'CALIFICACIÓN',...
                    'QUALIFICATION',...
                    'QUALIFIKATION',...
                    'QUALIFICHE',...
                    ''},...
                'P',{'PRACTICE',...
                    'PRÁCTICA',...
                    'PRATIQUE',...
                    'TRAINING',...
                    'PEACTICA',...
                    ''});

                output = getfield(session(langTyp),caseID); %#ok<*GFLD>
        end    
    end
end