Text to large in option menu

Issue #218 closed
Hightower created an issue

Some text phrases in the options menu are to large.

Suggestion:

Im-spiel Cinematics -> Zwischensequenzen
Neue Auto-complete -> Neue Auto-Complete 
or
Neue Auto-complete -> Autovervollständigung
Chat-Nachricht priorisieren -> Chat-Nachricht vorziehen
Sidekick beenden Warnung -> Sidekick Warnung
Laut Ladebildschirm -> Lauter Ladebildschirm
Unbegrenzt Speichern ->Unbegrenzt speichern
Schäden Blitze -> Schadenstreffer
Auto-Record Demo -> Auto-Demoaufnahme
Bevorzugte Musik-Format -> Bevorzugtes Musikformat
Zeigen Zeit -> Uhrzeit zeigen
Texturen-Qualität -> Texturqualität
Vertikale Sync -> Vertikaler Sync
Asynchrone Aktualisierung -> Asynchroner Refresh
Empfindlichkeit X-Achse -> Sensitivität X-Achse
Empfindlichkeit Y-Achse -> Sensitivität Y-Achse

#daikatana003#.png

Comments (33)

  1. Frank Sapone

    Yes, it's true we are limited in space and have not done extensive testing on the international builds. I will update the German language DLL with your suggestions. If you can think of anything else that would help the German translation let me know.

  2. Hightower reporter

    Hello Frank, I've updated my suggestions above. There also some problems with "Ä, Ö, Ü, ä,ö,ü (umlauts) and ß" in the option menu and in the HUD.

  3. Frank Sapone

    Added. Will be available in next update. Will try and find out the umlaut issue. Not sure if it always persisted in v1.2 german builds or not, so I will have to verify if it's always been broken.

  4. Hightower reporter
    • changed status to open

    Hello Frank,

    how do you edit this "language_german.dll"-file? Can you tell me which tools are necessary?

    I found some more problems with too long text. Specially when you finish the game after some minutes?

  5. Frank Sapone

    And you say for text at the end of the game... check if it is a subtitle or in this header. If it is a subtitle that is in a different file that would be inside the pak44.pak, which I can extract the subtitle files for you.

    Also, thank you for taking the time to help with the translations. I think it's great that there are people enthusiastic about wanting to translate the game to their native language.

  6. Hightower reporter

    Hi Frank,

    I've talked about the "Quit Message" not about the end of the game. I 've made some improvements and added some word wraps, I hope I didn't made a fault. Perhaps you can compile the "language_german.dll" file, so that I can have a look first that all fine now.

    Download: language_file

  7. Hightower reporter

    Hello Frank,

    I've updated the language_file today. Above you find the latest language_file.

    Best regards!

  8. Hightower reporter

    Hello, I've seen that you have released DK_EXE_082717_SLIM.EXE but without my updated language_file. ;) Did you find a problem?

  9. Frank Sapone

    It has been added. Let me know if you still need additional tweaking. Sorry I missed your emails from a few days ago.

  10. Hightower reporter

    Thank you! It looks god. I try to use 4 lines in the "Quit Message" for one message. And I have fixed some faults still.

    Download: language_file

    Is it possible to add the string "Cannot exit area without ..." to the german language file?

    The translation would be: "Bereich kann nicht ohne ... verlassen werden"

  11. Frank Sapone

    The link was not found. Under tongue_world, see " "Kann den Bereich nicht verlassen: Es felh(t/en): \n", // SCG[10/18/99]: no exiting level without sidekicks "

    This should be what you are referring to.

  12. Hightower reporter

    Sorry, link is fixed.

    May be, but I get the english text "Cannot exit area without ..." when I leave an area. "..." stands for the name of the sidekick.

  13. Hightower reporter

    In follow "Quit Message" it will be cut the word "nächste".

    DK_EXE_082917_SLIM

    "Weißt du was? Während du weg bist, haue ich|den ganzen Monstern auf die Fresse, so dass|sie WIRKLICH SAUER sind wenn du das nächste|Mal spielst, ok?"
    
    ->-> How it looks like.
    
    Weißt du was? Während du weg bist, haue ich
    den ganzen Monstern auf die Fresse, so dass
    sie WIRKLICH SAUER sind wenn du das 
    Mal spielst, ok?
    

    If you can not fix this then use follow sentence please.

    "Weißt du was? Während du weg bist, haue ich den|ganzen Monstern auf die Fresse, so dass sie|WIRKLICH SAUER sind wenn du das nächste Mal spielst, ok?"
    
    ->-> How it looks like.
    
    Weißt du was? Während du weg bist, haue ich den
    ganzen Monstern auf die Fresse, so dass sie
    WIRKLICH SAUER sind wenn du das nächste Mal spielst, ok?
    

    And can you please replace "Kann den Bereich nicht verlassen: Es fehl(t/en): \n" with the text "Bereich kann nicht verlassen werden ohne: \n" ?

    Thank you!

  14. Frank Sapone

    OK. It's possible that the text itself has a specific size length that might need to be extended. If it's absolutely necessary it shouldn't be too bad to change it to 5 lines for the quit message if we have to.

    Yes, I can replace the cannot exit area... message. When I am done with all these changes I will link you to a new l_german.h file so we can be in-sync incase you need to make additional changes.

    Will not be able to do this for like another 8 hours, but will look into all of this tonight.

  15. Hightower reporter

    Both text lines has the same length. I've only set different word wraps. And why it cuts in the middle of a sentence?

    quit_message.png

    If it doesn't work, you can take the second sentence above it's from DK_EXE_082817_SLIM.

  16. Frank Sapone

    I added a 4th line, but maybe the code is incorrect and fails after a certain length. I do not know at the moment.

  17. Hightower reporter

    I hope not. 3 lines would be ok.

    Can you please also share the english language file? So I can better understand and compare the translation.

  18. Frank Sapone

    Fixed the lines, had to bump the size limit for the text. Here is the English file as of 08-30-17:

    // ENGLISH text
    
    //
    // these are the key numbers that should be passed to Key_Event
    //
    #define K_TAB           9
    #define K_ENTER         13
    #define K_ESCAPE        27
    #define K_SPACE         32
    // normal keys should be passed as lowercased ascii
    #define K_BACKSPACE     127
    #define K_UPARROW       128
    #define K_DOWNARROW     129
    #define K_LEFTARROW     130
    #define K_RIGHTARROW    131
    #define K_ALT           132
    #define K_CTRL          133
    #define K_SHIFT         134
    #define K_F1            135
    #define K_F2            136
    #define K_F3            137
    #define K_F4            138
    #define K_F5            139
    #define K_F6            140
    #define K_F7            141
    #define K_F8            142
    #define K_F9            143
    #define K_F10           144
    #define K_F11           145
    #define K_F12           146
    #define K_INS           147
    #define K_DEL           148
    #define K_PGDN          149
    #define K_PGUP          150
    #define K_HOME          151
    #define K_END           152
    
    #define K_KP_HOME       160
    #define K_KP_UPARROW    161
    #define K_KP_PGUP       162
    #define K_KP_LEFTARROW  163
    #define K_KP_5          164
    #define K_KP_RIGHTARROW 165
    #define K_KP_END        166
    #define K_KP_DOWNARROW  167
    #define K_KP_PGDN       168
    #define K_KP_ENTER      169
    #define K_KP_INS        170
    #define K_KP_DEL        171
    #define K_KP_SLASH      172
    #define K_KP_MINUS      173
    #define K_KP_PLUS       174
    #define K_PAUSE         255
    //
    // mouse buttons generate virtual keys
    //
    #define K_MOUSE1        200
    #define K_MOUSE2        201
    #define K_MOUSE3        202
    #define K_MOUSE4        203 // Knightmare added 5/29/12
    #define K_MOUSE5        204 // Knightmare added 5/29/12
    //
    // joystick buttons
    //
    #define K_JOY1          205
    #define K_JOY2          206
    #define K_JOY3          207
    #define K_JOY4          208
    //
    // aux keys are for multi-buttoned joysticks to generate so they can use
    // the normal binding process
    //
    #define K_AUX1          209
    #define K_AUX2          210
    #define K_AUX3          211
    #define K_AUX4          212
    #define K_AUX5          213
    #define K_AUX6          214
    #define K_AUX7          215
    #define K_AUX8          216
    #define K_AUX9          217
    #define K_AUX10         218
    #define K_AUX11         219
    #define K_AUX12         220
    #define K_AUX13         221
    #define K_AUX14         222
    #define K_AUX15         223
    #define K_AUX16         224
    #define K_AUX17         225
    #define K_AUX18         226
    #define K_AUX19         227
    #define K_AUX20         228
    #define K_AUX21         229
    #define K_AUX22         230
    #define K_AUX23         231
    #define K_AUX24         232
    #define K_AUX25         233
    #define K_AUX26         234
    #define K_AUX27         235
    #define K_AUX28         236
    #define K_AUX29         237
    #define K_AUX30         238
    #define K_AUX31         239
    #define K_AUX32         240
    
    #define K_MWHEELDOWN    241
    #define K_MWHEELUP      242
    
    typedef struct
    {
        char    *name;
        int     keynum;
    } keyname_t;
    
    static keyname_t keynames[] =
    {
        {"TAB", K_TAB},
        {"ENTER", K_ENTER},
        {"ESCAPE", K_ESCAPE},
        {"SPACE", K_SPACE},
        {"BACKSPACE", K_BACKSPACE},
        {"UPARROW", K_UPARROW},
        {"DOWNARROW", K_DOWNARROW},
        {"LEFTARROW", K_LEFTARROW},
        {"RIGHTARROW", K_RIGHTARROW},
    
        {"ALT", K_ALT},
        {"CTRL", K_CTRL},
        {"SHIFT", K_SHIFT},
    
        {"F1", K_F1},
        {"F2", K_F2},
        {"F3", K_F3},
        {"F4", K_F4},
        {"F5", K_F5},
        {"F6", K_F6},
        {"F7", K_F7},
        {"F8", K_F8},
        {"F9", K_F9},
        {"F10", K_F10},
        {"F11", K_F11},
        {"F12", K_F12},
    
        {"INS", K_INS},
        {"DEL", K_DEL},
        {"PGDN", K_PGDN},
        {"PGUP", K_PGUP},
        {"HOME", K_HOME},
        {"END", K_END},
    
        {"MOUSE1", K_MOUSE1},
        {"MOUSE2", K_MOUSE2},
        {"MOUSE3", K_MOUSE3},
        {"MOUSE4", K_MOUSE4},   // Knightmare added 5/29/12
        {"MOUSE5", K_MOUSE5},   // Knightmare added 5/29/12
    
        {"JOY1", K_JOY1},
        {"JOY2", K_JOY2},
        {"JOY3", K_JOY3},
        {"JOY4", K_JOY4},
    
        {"AUX1", K_AUX1},
        {"AUX2", K_AUX2},
        {"AUX3", K_AUX3},
        {"AUX4", K_AUX4},
        {"AUX5", K_AUX5},
        {"AUX6", K_AUX6},
        {"AUX7", K_AUX7},
        {"AUX8", K_AUX8},
        {"AUX9", K_AUX9},
        {"AUX10", K_AUX10},
        {"AUX11", K_AUX11},
        {"AUX12", K_AUX12},
        {"AUX13", K_AUX13},
        {"AUX14", K_AUX14},
        {"AUX15", K_AUX15},
        {"AUX16", K_AUX16},
        {"AUX17", K_AUX17},
        {"AUX18", K_AUX18},
        {"AUX19", K_AUX19},
        {"AUX20", K_AUX20},
        {"AUX21", K_AUX21},
        {"AUX22", K_AUX22},
        {"AUX23", K_AUX23},
        {"AUX24", K_AUX24},
        {"AUX25", K_AUX25},
        {"AUX26", K_AUX26},
        {"AUX27", K_AUX27},
        {"AUX28", K_AUX28},
        {"AUX29", K_AUX29},
        {"AUX30", K_AUX30},
        {"AUX31", K_AUX31},
        {"AUX32", K_AUX32},
    
        {"KP_HOME",         K_KP_HOME },
        {"KP_UPARROW",      K_KP_UPARROW },
        {"KP_PGUP",         K_KP_PGUP },
        {"KP_LEFTARROW",    K_KP_LEFTARROW },
        {"KP_5",            K_KP_5 },
        {"KP_RIGHTARROW",   K_KP_RIGHTARROW },
        {"KP_END",          K_KP_END },
        {"KP_DOWNARROW",    K_KP_DOWNARROW },
        {"KP_PGDN",         K_KP_PGDN },
        {"KP_ENTER",        K_KP_ENTER },
        {"KP_INS",          K_KP_INS },
        {"KP_DEL",          K_KP_DEL },
        {"KP_SLASH",        K_KP_SLASH },
        {"KP_MINUS",        K_KP_MINUS },
        {"KP_PLUS",         K_KP_PLUS },
    
        {"MWHEELUP", K_MWHEELUP },
        {"MWHEELDOWN", K_MWHEELDOWN },
    
        {"PAUSE", K_PAUSE},
    
        {"SEMICOLON", ';'}, // because a raw semicolon seperates commands
    
        {NULL,0}
    };
    
    // vkey conversion table
    //==========================================================================
    static byte        scantokey[128] = 
                        { 
    //  0           1       2       3       4       5       6       7 
    //  8           9       A       B       C       D       E       F 
        0  ,    27,     '1',    '2',    '3',    '4',    '5',    '6', 
        '7',    '8',    '9',    '0',    '-',    '=',    K_BACKSPACE, 9, // 0 
        'q',    'w',    'e',    'r',    't',    'y',    'u',    'i', 
        'o',    'p',    '[',    ']',    13 ,    K_CTRL,'a',  's',      // 1 
        'd',    'f',    'g',    'h',    'j',    'k',    'l',    ';', 
        '\'' ,    '`',    K_SHIFT,'\\',  'z',    'x',    'c',    'v',      // 2 
        'b',    'n',    'm',    ',',    '.',    '/',    K_SHIFT,'*', 
        K_ALT,' ',   0  ,    K_F1, K_F2, K_F3, K_F4, K_F5,   // 3 
        K_F6, K_F7, K_F8, K_F9, K_F10,  K_PAUSE,    0  , K_HOME, 
        K_UPARROW,K_PGUP,K_KP_MINUS,K_LEFTARROW,K_KP_5,K_RIGHTARROW, K_KP_PLUS,K_END, //4 
        K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0,             0,              K_F11, 
        K_F12,0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0,        // 5
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0, 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0,        // 6 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0, 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0         // 7 
    }; 
    
    static char *tongue[] =
    {
        "You acquired",                     // T_PICKUP_WEAPON  weapon pickup
        "You needed",                           // T_PICKUP_HEALTH  health pickup
        "You're protected by",                  // T_PICKUP_ARMOR_GOOD  armor good pickup
        "You're energized by",                  // T_PICKUP_BOOST       boost pickup
        "Save Gem acquired",                        // T_PICKUP_SAVEGEM pick up Save Gem
    
        "POWER",                                // T_USEBOOST_POWER power boost label
        "ATTACK",                               // T_USEBOOST_ATTACK    attack boost label
        "SPEED",                                // T_USEBOOST_SPEED speed boost label
        "ACRO",                             // T_USEBOOST_ACRO  jump boost label
        "VITALITY",                             // T_USEBOOST_VITA  health boost label
    
        "Time to boogie",                           // T_BOMB_EXPLODE           bomb explode
        "You must have a bottle to mix that in",            // T_BOMB_NEED_BOTTLE       need bottle to mix ingredients
        "Items required:",                      // T_BOMB_ITEM_REQUIRED1    ingredient required
        "You create an explosive",                  // T_BOMB_CREATED           bomb created
        "You found",                            // T_BOMB_FOUND             bomb found, vowel
        "a pouch of sulphur",                       // T_BOMB_INGREDIENT_1      bomb ingredient 1
        "a lump of coal",                           // T_BOMB_INGREDIENT_2      bomb ingredient 2
        "a vial of saltpeter",                      // T_BOMB_INGREDIENT_3      bomb ingredient 3
        "an empty bottle",                      // T_BOMB_BOTTLE            bomb bottle
    
        "sulphur",                              // T_BOMB_INGREDIENT_SHORT_1    bomb item, short description
        "charcoal",                             // T_BOMB_INGREDIENT_SHORT_2    bomb item, short description
        "saltpeter",                            // T_BOMB_INGREDIENT_SHORT_3    bomb item, short description
    
        "You read from",                            // T_BOOK_READ      read book
        "You can not use this here",                    // T_BOOK_NO_READ       no read book
        "Wyndrax's Spellbook",                      // T_BOOK_WYNDRAX       Wyndrax spellbook
    
        "You picked up",                            // T_KEY_PICKUP     key pickup
        "the Crypt key",                            // T_KEY_CRYPT      crypt key name
        "the Wyndrax key",                      // T_KEY_WYNDRAX        Wyndrax key name
        "a prison cell keycard",                    // T_KEY_PRISONCELL Prison cell key
    
        "the red Control Card",                     // T_KEY_RED_CARD               
        "the blue Control Card",                    // T_KEY_BLUE_CARD              
        "the green Control Card",                   // T_KEY_GREEN_CARD             
        "the yellow Control Card",                  // T_KEY_YELLOW_CARD            
        "the Hex keystone",                     // T_KEY_HEX_KEYSTONE           
        "the Quad keystone",                        // T_KEY_QUAD_KEYSTONE          
        "the Trigon keystone",                      // T_KEY_TRIGON_KEYSTONE        
        "the Megashield",                           // T_MEGASHIELD                 
        "the Manaskull",                            // T_SKULL_OF_INVINCIBILITY
        "the Poison Antidote",                      // T_POISON_ANTIDOTE
        "the Drachma",                              // T_DRACHMA
        "the Horn of Charon",                       // T_HORN
        "part of the AEGIS key (A)",                // T_KEY_AEGIS_A
        "part of the AEGIS key (E)",                // T_KEY_AEGIS_E
        "part of the AEGIS key (G)",                // T_KEY_AEGIS_G
        "part of the AEGIS key (I)",                // T_KEY_AEGIS_I
        "part of the AEGIS key (S)",                // T_KEY_AEGIS_S
        "a shard of the Purifier",                  // T_PURIFIER_SHARD
        "the Black Chest",                          // T_BLACK_CHEST
        "the Ring of Fire Protection",              // T_RING_OF_FIRE
        "the Ring of Undead Protection",            // T_RING_OF_UNDEAD
        "the Ring of Lightning Protection",         // T_RING_OF_LIGHTNING
        "the Envirosuit",                           // T_ENVIROSUIT
    
        "the health kit",                           // T_HEALTH_KIT
        "the Goldensoul",                           // T_GOLDENSOUL
        "the Wraithorb",                            // T_WRAITHORB,
    
        "a Save Gem",                               // T_SAVEGEM
        "You have no save gems",                    //cek[12-13-99]
        "the health vial",                          // cek[1-3-00]
    
        // cek[2-2-00]: altered the following ***********************************************
        "the health pack",
        "the life vase",
        "the health flask",
        "the health crate",
        "the health box",
        "The antidote is empty.\n", // FS: Added CR
    
    // SCG[2/8/00]: messages for completed artifacts
        "You found all the AEGIS runes!",
        "You found all three keystones!",
        "You have assembled the Purifier",
        "You ate some fruit.\n" // FS
    };
    
    
    // menu-related
    static char *tongue_menu[] =
    {
        "Forward",                                  // key bind to Move Forward
        "Backward",                                 // key bind to Move Backward
        "Step Left",                                // key bind to Step Left
        "Step Right",                               // key bind to Step Right
        "Attack",                                   // key bind to Attack
        "Jump",                                     // key bind to Jump/Up
        "Use/Operate",                              // key bind to Use/Operate object
        "Crouch",                                   // key bind to Crouch/Down
        "Next Weapon",                              // key bind to Next Weapon
        "Prev Weapon",                              // key bind to Prev Weapon
        "Turn Left",                                // key bind to Turn Left
        "Turn Right",                               // key bind to Turn Right
        "Run",                                      // key bind to Run
        "Sidestep",                                 // key bind to  Sidestep
        "Look Up",                                  // key bind to Look Up
        "Look Down",                                // key bind to Look Down
        "Center View",                              // key bind to Center View
        "MouseLook",                                // key bind to Mouse Look
        "KeyLook",                                  // key bind to Keyboard Look
        "View Size Up",                             // key bind to Screen size up
        "View Size Down",                           // key bind to Screen size down
        "Show All Huds",                            // key bind to Show All Huds
        "Inv. Open",                                // key bind to Inventory Open
        "Use Inv. Item",                            // key bind to Use Item
        "Next Item",                                // key bind to Next Item
        "Prev Item",                                // key bind to Prev Item
        "Swap Sidekick",                            // key bind to Swap Sidekick
        "Command Next",                             // key bind to Command Next
        "Command Prev",                             // key bind to Command Prev
        "Command Use",                              // key bind to Command Apply                // cek[1-5-00] changed from Apply to Use
    
        ARROW_LEFT_STRING  " Left",                 // left arrow key
        ARROW_UP_STRING    " Up",                   // up arrow key
        ARROW_DOWN_STRING  " Down",                 // down arrow key
        ARROW_RIGHT_STRING " Right",                // right arrow key
        "--",                                       // no bind setting for this key
    
        "Click or Enter to set, DEL to delete",     // set/delete key
        "Click or Enter to select",                 // select key
        "Hit key to set, ESC to abort",             // set/abort
    
        "Defaults",                                 // default button
    
        "None",                                     // no mouse bindings
        "Move Left/Right",                          // mouse "move left and right" setting
        "Turn Left/Right",                          // mouse "turn left and right" setting
        "Look Up/Down",                             // mouse "look up and down" setting
        "Move For./Back",                           // mouse "move forward and back" setting
        "Reverse Y-Axis",                           // reverse mouse axis
        "Mouse Look",                               // Mouse-Look
        "Look Strafe",                              // Mouse-Look
        "X Axis",                                   // x axis
        "Y Axis",                                   // y axis
        "Button 1",                                 // button 1 label
        "Button 2",                                 // button 2 label
        "Button 3",                                 // button 3 label
        "Select a command, ESC to cancel",          // select a command, ESCape to cancel
        "Turn L/R",                                 // turn left and right, abbreviated
        "Strafe L/R",                               // strafe left and right, abbreviated
        "Look U/D",                                 // look up and down, abbreviated
        "Move F/B",                                 // move forward and back, abbreviated
        "Horizontal sensitivity",                   // mouse sensitivity for x-axis             //cek[12-13-99]
        "Vertical sensitivity",                     // mouse sensitivity for y-axis             //cek[12-13-99]
        "Configure Mouse options:",                 // configure mouse options
    
        "Deathmatch",                               // 'deathmatch' game
        "Deathtag",                                 // 'deathtag' game
        "Cooperative",                              // 'cooperative' game
    
        "Easy",                                     // easy difficulty
        "Medium",                                   // medium difficulty
        "Hard",                                     // hard difficulty
    
        "Find an Internet Game",                    // SCG[12/1/99]: 
        "Find a Local Game",                        // SCG[12/1/99]: 
        "Start a Multiplayer Game",                 // SCG[12/1/99]: 
    
        "LAN",                                      // local area network game
        "Internet",                                 // internet game
    
        "Join",                                     // join server
        "Host",                                     // host new server
        "Add " ARROW_DOWN_STRING,                   // add address
        "Refresh",                                  // refresh network games
        "Setup",                                    // player setup
    
        "Connect Rate",                             // connection speed label
        "28.8k",                                    // connection type 1
        "56.6k",                                    // connection type 2
        "ISDN",                                     // connection type 3
        "Cable/DSL",                                // connection type 4
        "T1/LAN",                                   // connection type 5
        "User Defined",                             // connection type 6
    
        "Time Limit",                               // SCG[12/2/99]: 
        "Character Color",                          // SCG[12/2/99]: 
        "Starting Episode",                         // SCG[12/2/99]: 
        "Team Choice",                              // SCG[12/1/99]: 
        "CTF Limit",                                // SCG[12/1/99]: 
        "Team1 Color",                              // SCG[12/1/99]: 
        "Team2 Color",                              // SCG[12/1/99]: 
        "Score Limit",                              // SCG[12/1/99]: 
        "Frag Limit",                               // SCG[12/1/99]: 
        "Level Limit",                              // level limit
        "Starting Episode",                         // SCG[12/2/99]: 
        "Game Map",                                 // SCG[12/1/99]: 
        "Game Mode",                                // game mode (deathmatch,deathtag,co-op)
        "Skill Level",                              // skill level
        "Time Limit",                               // time limit
        "Max Players",                              // maximum players
        "Character",                                // character
        "Base Color",                               // base color
        "Start!",                                   // start multiplayer game
    
        "Weapons Stay",                             // weapons remain
        "Items Respawn",                            // items rematerialize
        "Spawn Frthst",                             // spawn farthest point from players
        "Allow Exiting",                            // allow exiting of the level
        "Same Map",                                 // same map
        "Force Respawn",                            // force respawn
        "Falling Damage",                           // players take falling damage
        "Instnt Pwrups",                            // instant power-ups
        "Allow Pwrups",                             // allow power-ups
        "Allow Health",                             // allow health kits
        "Allow Armor",                              // allow armor
        "Infinite Ammo",                            // unlimited ammunition
        "Fixed FOV",                                // fixed field-of-vision
        "Teamplay",                                 // team-play
        "Hurt Teammates",                           // hurt teammates
        "Fast Switch",                              // fast weapon switch
        "Footsteps",                                // footsteps audible
        "Allow Hook",                               // allow hook
        "Shotgun Shells",                           // show shotgun shells?
    
        "Server IP Address",                        // server internet provider address
        "No local games found",                     // no local games found
        "Starting Map",                             // starting map
        "Server Name",                              // server name
        "Player Name",                              // player name
        "Team Name",                                // team name
    
        "Perform Harakiri?",                        // confirm quit
    
        "Yes",                                      // yes, acknowledgement
        "No",                                        // no, acknowledgement
        "Save Game",                                // cek[1-3-00] changed from 'save' to 'save game'
    
        "Load Config",                              //cek[12-6-99]
        "Save Config",                              //cek[12-6-99]
        "Delete Config",                            //cek[12-6-99]
        "Select Configuration File",                //cek[12-6-99]
        "Delete selection?",                        //cek[12-6-99]
    
        "Load Game",                                //cek[12-6-99]
        "Armor",                                    //cek[12-6-99]
        "Health",                                   //cek[12-6-99]
        "Level",                                    //cek[12-6-99]
        "Monsters",                                 //cek[12-6-99]
        "Secrets",                                  //cek[12-6-99]
        "Time",                                     //cek[12-6-99]
        "Total",                                    //cek[12-6-99]
        "Episode",                                  //cek[12-6-99]
    
        "Use 3d sound",                             //cek[12-6-99]
    
        "Saved",                                    //cek[12-7-99]
        "Loaded",                                   //cek[12-7-99]
        "Deleted",                                  //cek[12-7-99]
    
        "Smooth mouse",                             //cek[12-7-99]
        "Wheel up",                                 //cek[12-7-99]
        "Wheel down",                               //cek[12-7-99]
    
        "No ALT-TAB allowed",                       //cek[12-7-99]
        "Blood and Carnage",                        //cek[12-7-99]
        "Weapon bobbing",                           //cek[12-7-99]
        "Auto-switch weapons",                      //cek[12-7-99]
    
        "Intensity",                                //cek[12-7-99] cek[12-13-99]
        "Shiny weapons",                            //cek[12-7-99]
        "Bullet Holes",                             // SCG[1/4/00]: 
    
        "Forward",                                  //cek[12-9-99]
        "Side",                                     //cek[12-9-99]
        "Up",                                       //cek[12-9-99]
        "Pitch",                                    //cek[12-9-99]
        "Yaw",                                      //cek[12-9-99]
        "Use joystick",                             //cek[12-9-99]
        "Configure axis",                           //cek[12-9-99]
        "Configure joystick options",               //cek[12-9-99]
        "Select an action for this button",         //cek[12-9-99]
        "Press a joystick button to configure",     //cek[12-9-99]
        "Threshold",                                //cek[12-9-99]
        "Sensitivity",                              //cek[12-9-99]
    
        "Capture the Flag",                         //cek[12-10-99]
        "Back",                                     //cek[12-10-99]
        "56.6k",                                    //cek[12-10-99]
        "Auto",                                     //cek[12-10-99]
        "Team 1",                                   //cek[12-10-99]
        "Team 2",                                   //cek[12-10-99]
    
        "Play Intro Movie",                         //cek[12-13-99]
        "Use skill system",                         //cek[12-13-99]
        "Mouse speed",                              //cek[12-13-99]
    
        "Sidekick GET",                             // cek[1-3-00]
        "Sidekick COME",                            // cek[1-3-00]
        "Sidekick ATTACK",                          // cek[1-3-00]
        "Sidekick BACKOFF",                         // cek[1-3-00]
        "Sidekick STAY",                            // cek[1-3-00]
    
        "Select Weapon %d",                         // cek[1-4-00]  as in "Select Weapon 1" (leave the %d)
    
        "HUD Cycle",                                // cek[1-5-00]  -- for these, translate HUD to something short and reasonably
        "HUD Next",                                 // cek[1-5-00]  -- similar in meaning.
        "HUD Prev",                                 // cek[1-5-00]
        "HUD Use",                                  // cek[1-5-00]
    
        "Talk",                                     // cek[1-11-00]
        "Scoreboard",                               // SCG[1/13/00]: 
        "Talk to team",                             // cek[1-22-00]
        "%s is already assigned to %s",             // cek[1-22-00]  as in "F is already assigned to attack" (leave in %s)
        "Replace?",                                 // cek[1-22-00]
    
        "Toastednet",                               // FS: changed to tnet
        "DK News",                              // FS: changed to dknews
        "Continue?",                                // cek[2-1-00]
    
        // for the next two, all \n in the strings denotes a string break.  These must remain in place and the translated
        // string should have them in roughly the same place.
        "Want custom maps, mods and more?\nGo to dk.toastednet.org.\nContinuing will launch your web browser.", // FS: changed to tnet
        "For all your Daikatana news\ngo to www.daikatananews.net.\nContinuing will launch your web browser.",  // FS: changed to dknews            // cek[2-1-00]
    
        "Weapon %d",
        "Cancel",                                   // cek[3-9-00]
        "www.daikatananews.net", // FS: changed to dknews                                                   // cek[3-9-00]
        "Go to www.daikatananews.net.\nContinuing will launch your web browser.",           // cek[3-9-00]
    
        "Configure Weapons", // FS
        "Instagib", // FS
        "Deathmatch taunts", // FS
        "Unlimited saves", // FS
        "CTF/DT hints", // FS
        "Check for Updates", // FS
    
        "Notice About Mini-Drivers",    // Knightmare added 2/20/13
        "This version of Daikatana no longer\nsupports the 3DFX and PowerVR mini-drivers.\n3DFX users are strongly recommended to\nuse the Metabyte WickedGL drivers.", // Knightmare added 2/20/13
        "Download WickedGL drivers",        // Knightmare added 2/20/13
        "Go to www.3dfxzone.it.\nContinuing will launch your web browser.", // Knightmare added 2/20/13
        "Switch to default OpenGL", // Knightmare added 2/20/13
    
        "Update Available", // FS: Autoupdates
        "There is a new version of Daikatana v1.3 available.\nDo you want to download it?\nYou can disable auto-updates in the\noptions menu.", // FS: Autoupdates
        "Your PAK files are out of date.\nYou may be using v1.0 PAK files.\nDaikatana v1.3 requires v1.2 PAKs.\nClick the button for upgrade information.", // FS: Autoupdates
        "Daikatana will now verify your PAK files\nto ensure they are updated to v1.2.\nThis may take up to 30 seconds on\nold hardware.\nThis check will only be run once.", // FS: Autoupdates
        "There is a new map updates pak available.\nThis can affect your connectivity to servers.\nDo you want to download it?\nYou can disable auto-updates in the\noptions menu.", // FS: Autoupdates
        "Download Update",      // FS: Autoupdates
        "Verify PAK Files", // FS: Autoupdates
        "No Thanks", // FS: Autoupdates
        "Go to dk.toastednet.org.\nContinuing will launch your web browser.",   // FS: Autoupdates
    
        "Screenshot",   // Knightmare added 1/21/14
        "Silent screenshot",    // Knightmare added 1/21/14
        "Shared XP",    // Knightmare added 2/1/14
        "Delete Game",  // Knightmare added 2/7/14
        "Delete savegame?", // Knightmare added 2/7/14
        "Shift Key",    // FS: For Mouse and Joystick
        "We have spent a lot of time repairing the\noriginal maps and adding subtle features to\nthe Sidekick AI such as regenerating health.\nThe game is more enjoyable with Sidekicks.", // FS: For no sidekicks
        "Are you sure you want to play without them?\n", // FS: For no sidekicks
    
        "Boost Power",      // FS: Added by request
        "Boost Attack",     // FS: Added by request
        "Boost Speed",      // FS: Added by request
        "Boost Acro",       // FS: Added by request
        "Boost Vitality",   // FS: Added by request
    
        "Button 4",         // Knightmare 1/30/15- button 4 label
        "Button 5"          // Knightmare 1/30/15- button 5 label
    };
    
    
    static char *tongue_menu_options[] =
    {
        "Always Run",                               // always run
        "Lookspring",                               // look-spring
        "Lookstrafe",                               // look-strafe
        "Auto-targeting",                           // auto-targeting
        "Crosshair",                                // crosshair
        "Weapon Visible",                           // weapon visible
        "Subtitles",                                // subtitles
    
        "Sound Effect Volume",                      // volume for sound fx
        "Music Volume",                             // volume for music
        "Cinematic Volume",                         // volume for cinematics
    
        "Software",                                 // video mode, software
        "OpenGL",                                   // video mode, opengl
        "Apply Changes",                            // apply video mode changes
    
        "Fullscreen",                               // fullscreen
        "Shadows",                                  // shadows
        "Driver",                                   // video driver
        "Resolution",                               // resolution
        "Screen Size",                              // screen size
        "Brightness",                               // brightness
        "Texture Quality",                          // texture quality
        "Status Bar Visibility",                    // status bar visibility
        "Fog/Water Detail",                         // SCG[12/4/99]: 
        "Ronin",                                    // difficulty level easy
        "Samurai",                                  // difficulty level medium
        "Shogun",                                   // difficulty level hard
    
        "Snow and Rain",                            // cek[1-11-00]
        "Fog",                                      // cek[1-11-00] 
    
        "Play Powerup Sounds", // FS
        "Play Missing Sounds", // FS
        "Play Sidekick Chatter", // FS
    
        "Anisotropic Filter",   // Knightmare added 5/29/12
        "Custom Width",     // Knightmare added 5/29/12
        "Custom Height",    // Knightmare added 5/29/12
        "Status Bar Size",  // Knightmare added 6/14/12
        "V-Sync",           // Knightmare added 10/4/12
        "Async refresh",    // Knightmare added 10/4/12
        "Refresh rate",     // Knightmare added 10/4/12
        "Screenshot format",// Knightmare added 3/11/13
        "Spot",             // Knightmare added 5/10/13
        "Volume",           // Knightmare added 5/10/13
    
        "Download Options",     // Knightmare added 11/19/13
        "Allow downloading",    // Knightmare added 11/19/13
        "Allow HTTP downloading",       // FS added 03/29/15
        "maps / textures",      // Knightmare added 11/19/13
        "sounds",               // Knightmare added 11/19/13
        "models",               // Knightmare added 11/19/13
        "Sound Rate",           // Knightmare added 2/2/14
        "Audio Engine",         // Knightmare added 7/8/16
        "Language",
        "No Sidekicks", /* FS: No sidekicks new game option */
        "Bonus Gems", /* FS: Bonus save gems */
    
        /* FS: More Options! */
        "Page 1",
        "Page 2",
        "Show Framerate",
        "Q3A Console cmds",
        "In-game Cinematics",
        "New Auto-complete",
        "Chat msg prioritizing",
        "Sidekick exit warning",
        "Auto-record Demos",
        "Damage Flashes",
        "Show Time",
        "Message Queue",
        "Preferred Music Format",
        // Knightmare added 3/5/17
        "Noisy Load Screens",
    };
    
    
    
    //descriptions for the texture quality settings.
    static char *texture_quality_desc[] =
    {
        "Full",
        "Half",
        "Quarter",
        "Eighth"
    };
    
    
    // weapon names
    static char *tongue_weapons[] =
    {
        "No Ammo",
        "the Ballista",
        "the Ballista logs",
        "the Bolter",
        "the Bolts",
        "the C4 Vitzatergo",
        "a C4 pack",
        "the Daikatana",
        "the Discus of Daedalus",
        "a Discus",
        "the Disruptor Glove",
        "the Glock 2020",
        "some bullets",
        "the Hades Hammer",
        "the Ion Blaster",
        "an Ion pack",                  // SCG[11/28/99]: 
        "the Kineticore",
        "the Kinespheres",
        "the Metamaser",
        "the Metamaser",
        "Nharre's Nightmare",
        "some gibs",                    // SCG[11/28/99]: 
        "the Novabeam",
        "a Novacell",                   // SCG[11/28/99]: 
        "the Ripgun",
        "the Rip-Ups",                  // Knightmare changed 8/29/14
        "the Shockwave",
        "the Shock Sphere",
        "the Shotcycler",
        "Shotcycler Shells",
        "the Sidewinder",
        "Sidewinder Rockets",           // SCG[11/28/99]: 
        "the Silverclaw",
        "the Slugger",
        "the Slugs",
        "Stavros' Stave",
        "Lava Rocks",
        "a Sunflare",
        "a Sunflare",
        "Poseidon's Trident",
        "the Trident Tips",
        "the Venomous",
        "Cobra Venom",                  // SCG[11/28/99]: 
        "Wyndrax's Wisp",
        "a Wisp",
        "the Eye of Zeus",
        "a mystic Eye",
        "the Ultimate Gas Hands",
    
    // FS: Needed for Configure Weapons Menu
        "Ion Blaster",
        "C4 Vitzatergo",
        "Shotcycler",
        "Sidewinder",
        "Shockwave",
        "Discus of Deadalus",
        "Venomous",
        "Sunflare",
        "Hammer of Hades",
        "Poseidon's Trident",
        "Eye of Zeus",
        "Bolter",
        "Stavros' Stave",
        "Ballista",
        "Wyndrax's Wisp",
        "Nharre's Nightmare",
        "Glock 2020",
        "Slugger",
        "Kineticore",
        "Ripgun",
        "Novabeam",
        "Metamaser",
    
        // Knightmare 8/29/13- Cordite grenades was stealing ripgun ammo identifier
        "Cordite Grenades"
    };
    
    
    static char *tongue_armors[] =
    {
        "the Plasteel Armor",
        "the Chromatic Armor",
        "the Silver Armor",
        "the Gold Armor",
        "the Chainmail Armor",
        "the Black Adamant Armor",
        "the Kevlar Armor",
        "the Ebonite Armor"
    };
    
    
    // monster names
    static char *tongue_monsters[] =
    {
        "RoboCo Battle Boar",
        "Black Prisoner",
        "Buboid",
        "RoboCo Cambot",
        "Centurion",
        "Cerberus",
        "Flying Chaingunner",
        "Caryatid",
        "RoboCo Crox",
        "RoboCo Deathsphere",
        "Doom Bat",
        "Dragon",
        "Dwarf",
        "Femgang",
        "Ferryman",
        "Fletcher",
        "RoboCo Froginator",
        "King Gharroth",
        "Goldfish",
        "Griffon",
        "Harpy",
        "Inmater",
        "Kage",
        "Hellfire Paladin",
        "Voltaic Valkyrie",
        "Lab Monkey",
        "Cryotech",
        "RoboCo Lasergat",
        "Lycanthir",
        "Medusa",
        "Mishima Guard",
        "Nharre the Necromancer",
        "Plague Rat",
        "Pipe Rat",
        "Priest",
        "Prisoner",
        "RoboCo Protopod",
        "Psyclaw",
        "RoboCo Ragemaster 5000",
        "Gang Rocketeer",
        "Navy SEAL Rocketeer",
        "Rotworm",
        "Satyr",
        "NAVY SEAL Commando",
        "Navy SEAL Captain",
        "Navy SEAL Shotgunner",
        "Shark",
        "Slaughterskeet",
        "Skeleton",
        "Skinny Worker",
        "Fat Worker",
        "RoboCo Sludge Minion",
        "Small Spider",
        "Spider",
        "Stavros the Sorceror",
        "Surgeon",
        "Thief",
        "RoboCo Thunderskeet",
        "Gang Uzi",
        "White Prisoner",
        "Wizard",
        "Wyndrax the Wizard",
        "Seagull",
        "Firefly",
        "Wisp",
        "Mikiko",
        "Ghost",
        "The DopeFish"
    };
    
    
    static char *tongue_world[] =
    {
        "more to go",                                 // triggers to go until sequence complete
        "Sequence completed",                         // trigger sequence completed
    
        "You must have",                              // need a specific key
        "You must have the proper key!\n",               // wrong key in possession
        "Can't be opened this way\n",                     // SCG[11/1/99]: Can't be opened this way
    
        "You feel the poison leaving your system.\n",    // poison expiring
        "Your oxylungs are almost used up.\n",           // oxylung expiring
        "Your envirosuit is expiring.\n",                // envirosuit expiring
        "Green Elf needs food badly.\n",                 // megashield expiring
        "The Wraith Orb is waning.\n",                   // wraith orb expiring
        "Power Boost is running out.\n",                  // power boost expiring
        "Attack Boost is running out.\n",                // attack boost expiring
        "Speed Boost is running out.\n",                 // speed boost expiring
        "Acrobatic Boost is running out.\n",             // jump boost expiring
        "Vitality Boost is running out.\n",              // health boost expiring
    
        "joined the game",                            // player joined the game
        "exited the level",                           // player exited the level
    
        "Hiro Miyamoto",                              // Hiro Miyamoto's full name
        "Superfly Johnson",                           // Superfly's full name
        "Mikiko Ebihara",                             // Mikiko's full name
    
        // SCG[10/18/99]: these next 5 had enums, but no strings. 
        "You were kicked for spamming",                             // SCG[10/18/99]: T_PLAYER_SELF_SPAM_KICK // FS: Updated this
        "was kicked for spamming",                              // SCG[10/18/99]: T_PLAYER_SPAM_KICK // FS: Updated this
        "",                             // SCG[10/18/99]: T_PLAYER_TIME_LIMIT_HIT
        "",                             // SCG[10/18/99]: T_PLAYER_FRAG_LIMIT_HIT
        "Unknown Player!",                              // SCG[10/18/99]: T_TELL_CMD_UNKNOWN_PLAYER // FS: Updated this
    
        "Cannot exit area without\n",               // SCG[10/18/99]: no exiting level without sidekicks
        "Cannot exit without\n",                // SCG[11/9/99]: No exiting without a key
        "Poisoned!\n",                      // NSS[11/29/99]: Needed a generic and yet global poisoned message
    
        "You found a secret!\n",                    // cek[1-3-00]
        "The Manaskull is waning.\n",                   // cek[2-9-00]
        "Pinned!\n", // FS
        "Massacre!\n", // FS
        "Happy Holidays from the Daikatana 1.3 team!\n", // FS
        "and" // FS
    };
    
    static char *tongue_deathmsg_daikatana[] = 
    {
        "%s was sliced open by %s\n"
    };
    
    static char *tongue_deathmsg_self[] =
    {
        "'s skull appears to be split open.\n",         // death, fell
        "sucked it down.\n",                            // death, drowned
        "goes crispy.\n",                               // death, lava
        "was slimed.\n",                                // death, slimed
        "succumbed to the poison.\n",                   // death, poison
        "failed at life.\n",                            // death, killed self
        "was telefragged.\n",                           // death, teleport
        "was compressed into a gib pile.\n",            // death, crushed
        "ate a full load of C4.\n",                     // death, C4
        "was frozen solid.\n",                          // FS: death, frozen
        "was shocked by lightning.\n"                   // FS: death, shocked by lightning bolts in e3
    };
    
    static char *tongue_deathmsg_weapon1[] =
    {
        "%s was humiliated by %s!\n",
        "%s ultra-smacked %s into oblivion!\n",
        "%s was ionized by %s!\n",
        "%s made a mess of %s!\n",
        "%s double-barrelled %s!\n",
        "%s rode %s's rocket!\n",
        "%s shook up %s!\n"
    };
    
    static char *tongue_deathmsg_weapon2[] =
    {
        "%s played ultimate frisbee with %s!\n",
        "%s venomized %s!\n",
        "%s turned %s into a burning inferno!\n",
        "%s hammered-down %s!\n",
        "%s punctured %s!\n",
        "%s kneeled before Zeus!\n"
    };
    
    static char *tongue_deathmsg_weapon3[] =
    {
        "%s was carved like a ham by %s!\n",
        "%s took %s's twig!\n",
        "%s took %s's hardwood!\n",
        "%s was burnt down by %s's meteor!\n",
        "%s handled some of %s's high voltage!\n",
        "%s was done by %s's demon!\n"
    };
    
    static char *tongue_deathmsg_weapon4[] =
    {
        "%s popped a cap in %s!\n",
        "%s shell-shocked %s!\n",
        "%s was ripped down by %s!\n",
        "%s made a nasty mess of %s!\n",
        "%s was iced by %s!\n",
        "%s burnt a hole in %s!\n",
        "%s was masered by %s!\n"
    };
    
    static char *tongue_scoreboard[] =
    {
        "Name",
        "Kills",
        "Ping",
        "Time",
        "Shots",
        "Hits",
        "Died",
        "Score"                                     // cek[1-22-00]
    };
    
    
    static char *tongue_difficulty[] =  // difficulty settings for 'new game' menu
    {
        "Select Difficulty:",           // difficulty header
        "Ronin",                       // newbie
        "Samurai",                    // average
        "Shogun"                    // expert (or so they think!)
    };
    
    
    static char *tongue_skincolors[] =
    {
        "Blue",                         // blue
        "Green",                        // green
        "Red",                          // red
        "Gold"                          // gold
    };
    
    
    static char *tongue_statbar[] =
    {
        "POWER",                        // skill 'power' label
        "ATTACK",                       // skill 'attack' label
        "SPEED",                                                // skill 'speed' label
        "ACRO",                                                 // skill 'acrobatic' label
        "VITALITY",                                         // skill 'vitality' label
    
        "ARMOR",                        // armor label
        "HEALTH",                                               // health label
        "AMMO",                                                 // ammo label
        "FRAGS",                                                // kills label
        "LEVEL",                                            // experience points label
    
        "LEVEL UP!",                    // experience level up
        "Select",                       // select skill
        "Assign Skill Point",                    // add point to skill
    
        "LOADING..."                    // loading new level
    };
    
    
    static char *tongue_weapon_misc[] =
    {
        "C4 Modules are destabilizing!\n"    // C4 modules are de-stabilizing
    };
    
    
    static char *tongue_sidekick[] =    // sidekick commands
    {
        "GET",                          // 'get' item command
        "COME",                          // 'come here', 'come to me'
        "STAY",                           // 'stay' command, 'don't move'
        "ATTACK",                         // 'attack' command
        "BACK OFF",                       // 'back off', 'move away'
    
        "Can I have"                      //  asking to pick up an item: "Can I have the shotgun?"
    };
    
    static char *tongue_ctf[] =
    {
        "Red Flag",
        "Blue Flag",
        "Unknown team",
    
        "%s Flag",                                          // when translating, treat '%s Flag' as 'red Flag' and place the %s before or after flag
                                                            // depending on the syntax of the language.  ie if the expression should be 'Flag red' use 'Flag %s'
        "Red",
        "Blue",
        "Chrome",
        "Steel",
        "Green",
        "Orange",
        "Purple",
        "Yellow",
    
        "Score is now: %s:%d, %s:%d\n",
        "You have captured the %s!\n",
        "%s from your team has captured the %s!\n",
        "%s from the %s team has captured your flag!\n",        // when translating, treat '%s team' as 'red team' and place the %s before or after team
                                                                // depending on the syntax of the language.  ie if the expression should be 'team red' use 'team %s'
        "You grabbed the %s\n",
        "%s from your team has grabbed the %s\n",
        "%s has stolen your flag\n",
        "The %s has been returned\n",
    
        "%d is an invalid team number.  Use 1 or 2\n",
        "You are on team %d (%s)\n",
        "You are already on team %d\n",
        "%s joined the %s team\n",                                  // translate same as with the %s team above
    
        "The %s team has won!\nFinal score: %s:%d, %s:%d\n",        // translate same as with the %s team above
        "The game is a tie!\n",
        "Time has expired!\n",
        "The capture limit has been reached!\n",
    
        "Get ready for overtime!\n", // FS
        "You have the enemy flag.  Return to base!\n", // FS
        "The enemy has your flag!  Get the flag back!\n" // FS
    };
    
    static char *tongue_deathtag[] =
    {
        "Bomb",                                                     // as in backpack
        "%s Bomb",                                                  // as in red pack
        "The score limit has been reached!\n",
        "Your time is running out!\n",
        "Your time just ran out!\n",
    
        "%s from the %s team has grabbed the %s!\n",                // translate using the '%s team' guidelines above
    
        "Your team gets a point!\n",
        "Your team gets %d points!\n",                              // you get 2 points
        "The %s team gets a point!\n",                              // translate using the '%s team' guidelines above
        "The %s team gets %d points!\n",                            // The red team gets 2 points
    
        "You scored!\n",
        "%s from your team has scored!\n",
        "%s from the %s team has scored!\n",
    
        "You have the Bomb!  Go score!\n", // FS
        "The other team has their Bomb!\n" // FS
    };
    
    // FS: --------------------new-------------------------
    static char *tongue_save_error[] =
    {
        "You must be running a local game to save!\n",
        "You must be in a game to save!\n",
        "You can not save in deathmatch!\n",
        "You can not save during a cinematic!\n",
        "You can not save while dead!\n",
        "You can not save during intermission!\n",
        "You can not save here!\n"
    };
    
    /* FS: Mult-Lang DLL */
    static char *tongue_quit_msgs[] =
    {
        "Ya thought you were a big boy, but you're|really just a baby boy, aren't you?",
        "Are you gonna quit this game just like|you quit everything else in life?",
        "Does the pretty harp music and the scary|crickets make you cry and quit?",
        "Does all this time travel really boggle|you down, confuse you and make you quit?",
        "Did the scary monsters and mean robots|make you run to your mommy?",
        "Just remember: before you actually finish this game,|make sure you find the sandalwood box.  Quit now?",
        "Can't take much more of this hardcore action, eh?  |Gotta run like a little baby and go to bed, right?",
        "If you leave now, I'll start working on|summoning a Shoggoth to come tear you apart|while you sleep.  Is that ok?",
        "Hey, guess what?  When you leave,|I'm going to start smacking all the monsters around|so they're REALLY MAD next time you play, ok?",
        "While you're gone, I'm going to keep|working on the Grand Unified Theory, ok?",
        "Are you broken?",
        "Hey, watch out for the Dark Troopers in the|San Francisco episode, ok?",
        "You're not much of a Kraken, are you?",
        "Does this game trigger you?|If so, you're a weak and pathetic rodent|and will be fed to the griffin!"
    };
    
    static char *tongue_quit_msgs_rare[] =
    {
        "While you're away I think I'll link into some internet|sites and surf for a while.  Is that okay with you?",
        "Get out of me?",
        "Suck it down(tm)?",
        "Has the monkey landed yet?"
    };
    
    /* FS: Wasn't originally translated.  Reported by Robert. */
    static char *tongue_menu_joystick[] =
    {
        "Configure Motion",
        "None",
        "Forward (walk)",
        "Look (pitch)",
        "Side (strafe)",
        "Turn (yaw)",
        "Up",
        "Advanced",
        "Configure joystick axis",
        "Absolute (stick)",
    };
    
  19. Frank Sapone

    Current german file as of 08-30-17:

    // GERMAN text
    
    //
    // these are the key numbers that should be passed to Key_Event
    //
    #define K_TAB           9
    #define K_ENTER         13
    #define K_ESCAPE        27
    #define K_SPACE         32
    // normal keys should be passed as lowercased ascii
    #define K_BACKSPACE     127
    #define K_UPARROW       128
    #define K_DOWNARROW     129
    #define K_LEFTARROW     130
    #define K_RIGHTARROW    131
    #define K_ALT           132
    #define K_CTRL          133
    #define K_SHIFT         134
    #define K_F1            135
    #define K_F2            136
    #define K_F3            137
    #define K_F4            138
    #define K_F5            139
    #define K_F6            140
    #define K_F7            141
    #define K_F8            142
    #define K_F9            143
    #define K_F10           144
    #define K_F11           145
    #define K_F12           146
    #define K_INS           147
    #define K_DEL           148
    #define K_PGDN          149
    #define K_PGUP          150
    #define K_HOME          151
    #define K_END           152
    
    #define K_KP_HOME       160
    #define K_KP_UPARROW    161
    #define K_KP_PGUP       162
    #define K_KP_LEFTARROW  163
    #define K_KP_5          164
    #define K_KP_RIGHTARROW 165
    #define K_KP_END        166
    #define K_KP_DOWNARROW  167
    #define K_KP_PGDN       168
    #define K_KP_ENTER      169
    #define K_KP_INS        170
    #define K_KP_DEL        171
    #define K_KP_SLASH      172
    #define K_KP_MINUS      173
    #define K_KP_PLUS       174
    #define K_PAUSE         255
    //
    // mouse buttons generate virtual keys
    //
    #define K_MOUSE1        200
    #define K_MOUSE2        201
    #define K_MOUSE3        202
    #define K_MOUSE4        203 // Knightmare added 5/29/12
    #define K_MOUSE5        204 // Knightmare added 5/29/12
    //
    // joystick buttons
    //
    #define K_JOY1          205
    #define K_JOY2          206
    #define K_JOY3          207
    #define K_JOY4          208
    //
    // aux keys are for multi-buttoned joysticks to generate so they can use
    // the normal binding process
    //
    #define K_AUX1          209
    #define K_AUX2          210
    #define K_AUX3          211
    #define K_AUX4          212
    #define K_AUX5          213
    #define K_AUX6          214
    #define K_AUX7          215
    #define K_AUX8          216
    #define K_AUX9          217
    #define K_AUX10         218
    #define K_AUX11         219
    #define K_AUX12         220
    #define K_AUX13         221
    #define K_AUX14         222
    #define K_AUX15         223
    #define K_AUX16         224
    #define K_AUX17         225
    #define K_AUX18         226
    #define K_AUX19         227
    #define K_AUX20         228
    #define K_AUX21         229
    #define K_AUX22         230
    #define K_AUX23         231
    #define K_AUX24         232
    #define K_AUX25         233
    #define K_AUX26         234
    #define K_AUX27         235
    #define K_AUX28         236
    #define K_AUX29         237
    #define K_AUX30         238
    #define K_AUX31         239
    #define K_AUX32         240
    
    #define K_MWHEELDOWN    241
    #define K_MWHEELUP      242
    
    typedef struct
    {
        char    *name;
        int     keynum;
    } keyname_t;
    
    static keyname_t keynames[] =
    {
        {"TAB", K_TAB},
        {"RETURN", K_ENTER},
        {"ESC", K_ESCAPE},
        {"LEERTASTE", K_SPACE},
        {"BACKSPACE", K_BACKSPACE},
        {"PFEIL HOCH", K_UPARROW},
        {"PFEIL RUNTER", K_DOWNARROW},
        {"PFEIL LINKS", K_LEFTARROW},
        {"PFEIL RECHTS", K_RIGHTARROW},
    
        {"ALT", K_ALT},
        {"STRG", K_CTRL},
        {"UMSCHALT", K_SHIFT},
    
        {"F1", K_F1},
        {"F2", K_F2},
        {"F3", K_F3},
        {"F4", K_F4},
        {"F5", K_F5},
        {"F6", K_F6},
        {"F7", K_F7},
        {"F8", K_F8},
        {"F9", K_F9},
        {"F10", K_F10},
        {"F11", K_F11},
        {"F12", K_F12},
    
        {"EINFG", K_INS},
        {"ENTF", K_DEL},
        {"BILD RUNTER", K_PGDN},
        {"BILD HOCH", K_PGUP},
        {"POS 1", K_HOME},
        {"ENDE", K_END},
    
        {"MAUS 1", K_MOUSE1},
        {"MAUS 2", K_MOUSE2},
        {"MAUS 3", K_MOUSE3},
        {"MAUS 4", K_MOUSE4},   // Knightmare added 5/29/12
        {"MAUS 5", K_MOUSE5},   // Knightmare added 5/29/12
    
        {"JOY 1", K_JOY1},
        {"JOY 2", K_JOY2},
        {"JOY 3", K_JOY3},
        {"JOY 4", K_JOY4},
    
        {"AUX 1", K_AUX1},
        {"AUX 2", K_AUX2},
        {"AUX 3", K_AUX3},
        {"AUX 4", K_AUX4},
        {"AUX 5", K_AUX5},
        {"AUX 6", K_AUX6},
        {"AUX 7", K_AUX7},
        {"AUX 8", K_AUX8},
        {"AUX 9", K_AUX9},
        {"AUX 10", K_AUX10},
        {"AUX 11", K_AUX11},
        {"AUX 12", K_AUX12},
        {"AUX 13", K_AUX13},
        {"AUX 14", K_AUX14},
        {"AUX 15", K_AUX15},
        {"AUX 16", K_AUX16},
        {"AUX 17", K_AUX17},
        {"AUX 18", K_AUX18},
        {"AUX 19", K_AUX19},
        {"AUX 20", K_AUX20},
        {"AUX 21", K_AUX21},
        {"AUX 22", K_AUX22},
        {"AUX 23", K_AUX23},
        {"AUX 24", K_AUX24},
        {"AUX 25", K_AUX25},
        {"AUX 26", K_AUX26},
        {"AUX 27", K_AUX27},
        {"AUX 28", K_AUX28},
        {"AUX 29", K_AUX29},
        {"AUX 30", K_AUX30},
        {"AUX 31", K_AUX31},
        {"AUX 32", K_AUX32},
    
        {"ZB_7",            K_KP_HOME },
        {"ZB_8",        K_KP_UPARROW },
        {"ZB_9",            K_KP_PGUP },
        {"ZB_4",    K_KP_LEFTARROW },
        {"ZB_5",            K_KP_5 },
        {"ZB_6",    K_KP_RIGHTARROW },
        {"ZB_1",            K_KP_END },
        {"ZB_2",    K_KP_DOWNARROW },
        {"ZB_3",            K_KP_PGDN },
        {"ZB_ENTER",        K_KP_ENTER },
        {"ZB_0",            K_KP_INS },
        {"ZB_KOMMA",            K_KP_DEL },
        {"ZB_GETEILT",      K_KP_SLASH },
        {"KP_MINUS",        K_KP_MINUS },
        {"KP_PLUS",         K_KP_PLUS },
    
        {"MAUSRAD HOCH", K_MWHEELUP },
        {"MAUSRAD RUNTER", K_MWHEELDOWN },
    
        {"PAUSE", K_PAUSE},
    
        {"SEMIKOLON", ';'}, // because a raw semicolon seperates commands
    
        {NULL,0}
    };
    
    // vkey conversion table
    //==========================================================================
    static byte        scantokey[128] = 
                        { 
    //  0           1       2       3       4       5       6       7 
    //  8           9       A       B       C       D       E       F 
        0  ,    27,     '1',    '2',    '3',    '4',    '5',    '6', 
        '7',    '8',    '9',    '0',    'ß',    '´',    K_BACKSPACE, 9, // 0 
        'q',    'w',    'e',    'r',    't',    'z',    'u',    'i', 
        'o',    'p',    'ü',    '+',    13 ,    K_CTRL,'a',  's',      // 1 
        'd',    'f',    'g',    'h',    'j',    'k',    'l',    'ö', 
        'ä',    '`',    K_SHIFT,'<',  'y',    'x',    'c',    'v',      // 2 
        'b',    'n',    'm',    ',',    '.',    '-',    K_SHIFT,'*', 
        K_ALT,' ',   0  ,    K_F1, K_F2, K_F3, K_F4, K_F5,   // 3 
        K_F6, K_F7, K_F8, K_F9, K_F10,  K_PAUSE,    0  , K_HOME, 
        K_UPARROW,K_PGUP,K_KP_MINUS,K_LEFTARROW,K_KP_5,K_RIGHTARROW, K_KP_PLUS,K_END, //4 
        K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0,             0,              K_F11, 
        K_F12,0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0,        // 5
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0, 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0,        // 6 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0, 
        0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0  ,    0         // 7 
    }; 
    
    static char *tongue[] =
    {
        "Aufgehoben:",              // weapon pickup TX NOTE:+ the items in the weapons section below.
        "Sie brauchen:",                    // health pickup TX NOTE:+ one of the 3 health items below (health kit, Goldenorb, Wraith orb.
        "Sie sind geschützt durch",                       // armor good pickup TX NOTE:+ the items in the armor section below.
        "Sie sind aufgeladen durch",                          // boost pickup TX NOTE:not used - DON'T TRANSLATE.
        "Aufgehoben: Speicherjuwel",                        // T_PICKUP_SAVEGEM     pick up Save Gem
    
        "STÄRKE",                  // use power boost TX NOTE:must match statusbar.xls .
        "ANGRIFF",                  // use attack boost TX NOTE:must match statusbar.xls .
        "TEMPO",                  // use speed boost TX NOTE:must match statusbar.xls .
        "AKROBATIK",                   // use jump boost TX NOTE:must match statusbar.xls .
        "VITALITÄT",                 // use health boost TX NOTE:must match statusbar.xls .
    
        "Gleich wird's heiß!",              // bomb explode TX NOTE:"let's get out of here!.
        "Sie brauchen eine Flasche, um das zu mischen",  // need bottle to mix ingredients TX NOTE:sentence.
        "Sie brauchen: ",             // ingredient required TX NOTE:+ bomb item, short desc below.
        "Sie mischen Sprengstoff.",         // bomb created TX NOTE:sentence.
        "Sie fanden ",                // bomb found, TX NOTE:+ one of the ingredients or a bottle.
        "einen Beutel mit Schwefel",                        // bomb ingredient 1
        "ein Stück Kohle",              // bomb ingredient 2
        "eine Phiole mit Salpeter",           // bomb ingredient 3
        "eine leere Flasche",             // bomb bottle
    
        "Schwefel",                 // bomb item, short description
        "Kohle",                 // bomb item, short description
        "Salpeter",                // bomb item, short description
    
        "Sie lesen das",              // read book TX NOTE:+ one of two books below.
        "Das können Sie hier nicht verwenden.",        // no read book TX NOTE:sentence.
        "Wyndrax-Zauberbuch",          // Wyndrax spellbook
    
        "Sie nehmen",              // key pickup TX NOTE:one of the 3 following items.
        "den Schlüssel zur Krypta",              // crypt key name
        "den Wyndrax-Schlüssel",             // Wyndrax key name
        "ein Zugangskarte für eine Zelle",          // Prison cell key
    
        "die rote Zugangskarte",                        // SCG[11/15/99]: red control card name
        "die blaue Zugangskarte",                   // SCG[11/6/99]: blue control card name
        "die grüne Zugangskarte",                   // SCG[11/6/99]: green control card name
        "die gelbe Zugangskarte",                   // SCG[11/6/99]: yellow control card name
        "den Hex-Schlüsselstein",                           // SCG[11/6/99]: hex keystone name
        "den Quad-Schlüsselstein",                      // SCG[11/6/99]: quad keystone name
        "den Trigon-Schlüsselstein",                        // SCG[11/6/99]: trigon keystone name
        "den Megaschild",                           // SCG[11/14/99]: Megashield name
        "den Manaschädel",                          // SCG[11/14/99]: 
        "das Gegengift",                        // SCG[11/14/99]: 
        "eine Drachme",                             // SCG[11/14/99]: 
        "das Horn von Charon",                                  // SCG[11/14/99]: 
        "eine AEGIS-Tafel mit dem Buchstaben A",                // SCG[11/14/99]: A of AEGIS key name
        "eine AEGIS-Tafel mit dem Buchstaben E",                // SCG[11/14/99]: E of AEGIS key name
        "eine AEGIS-Tafel mit dem Buchstaben G",                // SCG[11/14/99]: G of AEGIS key name
        "eine AEGIS-Tafel mit dem Buchstaben I",                // SCG[11/14/99]: I of AEGIS key name
        "eine AEGIS-Tafel mit dem Buchstaben S",                // SCG[11/14/99]: S of AEGIS key name
        "einen Splitter des Läuterers",                 // SCG[11/14/99]: 
        "die schwarze Kiste",                           // SCG[11/14/99]: 
        "den Ring des Feuerschutzes",               // SCG[11/14/99]: 
        "den Ring des Schutzes vor Untoten",            // SCG[11/14/99]: 
        "den Ring des Blitzschutzes",           // SCG[11/14/99]: 
        "den Überlebensanzug",                          // SCG[11/14/99]: 
    
        "das Erste-Hilfe-Set",              // health kit
        "die Goldseele",              // Goldensoul
        "die Gespenstersphäre",                         // T_WRAITHORB,
    
        "ein Speicherjuwel",
        "Sie haben kein Speicherjuwel",                 //cek[12-13-99]
        "den Heiltrank",                            // cek[1-3-00]
    
        // cek[2-2-00]: altered the following ***********************************************
        "das Wundpäckchen",
        "die Lebensvase",
        "die Heiltrankflasche",
        "die Verbandskiste",
        "den Verbandskasten",
        "Das Gegengift ist leer.\n", // FS: Added CR
    
    // SCG[2/8/00]: messages for completed artifacts
        "Sie haben alle AEGIS-Tafeln gefunden!",
        "Sie haben alle drei Schlüsselsteine gefunden",
        "Sie haben den Läuterer zusammengesetzt!",
        "Sie aßen einige Früchte.\n", // FS
    };
    
    
    // menu-related TX NOTE:all independent words -- no grammatical inflection.
    static char *tongue_menu[] =
    {
        "Schritt vor",                 // key bind to Move Forward
        "Schritt zurück",                 // key bind to Move Backward 
        "Seitwärts links",                // key bind to Step Left JG:990802
        "Seitwärts rechts",                // key bind to Step Right JG:990802
        "Angriff",                  // key bind to Attack
        "Springen",                   // key bind to Jump/Up
        "Benutzen",               // key bind to Use/Operate object JG:990802
        "Kriechen",                  // key bind to Crouch/Down
        "Nächste Waffe",               // key bind to Next Weapon
        "Vorherige Waffe",               // key bind to Prev Weapon
        "Drehung links",                // key bind to Turn Left JG:990802
        "Drehung rechts",                // key bind to Turn Right JG:990802
        "Laufen",                   // key bind to Run
        "Seitwärts",                 // key bind to Sidestep JG:990802
        "Blick hoch",                 // key bind to Look Up JG:990802
        "Blick runter",                // key bind to Look Down JG:990802
        "Blick zentrieren",               // key bind to Center View
        "Mausblick",                // key bind to Mouse Look
        "Tastatur-Sicht",                 // key bind to Keyboard Look JG:990802  
        "Vergrößern",                             // key bind to increase screen size
        "Verkleinern",                           // key bind to decrease screen size
        "HUDs zeigen",                            // key bind to Show All Huds
        "Gepäck öffnen",                // key bind to Inventory Open
        "Gegenstand benutzen",              // key bind to Use Item
        "Nächsten Gegenstand",                // key bind to Next Item
        "Vorherigen Gegenstand",                // key bind to Prev Item
        "Partner wechseln",                            // key bind to Swap Sidekick
        "Nächster Befehl",                             // key bind to Command Next
        "Vorheriger Befehl",                             // key bind to Command Prev
        "Befehl anwenden",                            // key bind to Command Apply
    
        ARROW_LEFT_STRING " Links",         // left arrow key
        ARROW_UP_STRING  " Aufwärts",          // up arrow key
        ARROW_DOWN_STRING " Abwärts",         // down arrow key
        ARROW_RIGHT_STRING " Rechts",        // right arrow key
        "--",                    // no bind setting for this key
    
        "ENTER zum Bestätigen; DEL zum Löschen.",   // set/delete key TX NOTE:sentence.
        "Um auszuwählen, ENTER drücken.",         // select key TX NOTE:sentence. JG:990802
        "Um abzubrechen, ESC drücken.",       // set/abort TX NOTE:sentence. JG:990802
    
        "Standard",                 // default button Standardeinstellungen JG:990802
    
        "Keine",                   // no mouse bindings
        "Links/rechts bewegen",             // mouse "move left and right" setting JG:990802
        "Links/rechts drehen",             // mouse "turn left and right" setting JG:990802
        "Oben/unten sehen",               // mouse "look up and down" setting JG:990802
        "Vorwärts/Zurück",              // mouse "move forward and back" setting
        "Y-Achse umkehren",              // reverse mouse axis
        "Mausblick",                // Mouse-Look
        "Blick/Feuern",               // Mouse-strafe
        "X-Achse",                  // x axis
        "Y-Achse",                  // y axis
        "Taste 1",                 // button 1 label
        "Taste 2",                 // button 2 label
        "Taste 3",                 // button 3 label
        "Befehl auswählen (ESC zum Abbrechen).",     // select a command, ESCape to cancel JG:990802
        "Zur Seite drehen",                 // turn left and right, abbreviated
        "Zur Seite gehen",                // strafe left and right, abbreviated
        "Oben/unten sehen",                 // look up and down, abbreviated
        "Vorwärts/Zurück",                 // move forward and back, abbreviated
        "Sensitivität X-Achse",              // mouse sensitivity for x-axis
        "Sensitivität Y-Achse",              // mouse sensitivity for y-axis 
        "Mausoptionen konfigurieren:",         // configure mouse options TX NOTE:sentence.
    
        "Deathmatch",                               // 'deathmatch' game
        "Deathtag",                                 // 'deathtag' game
        "Kooperativ",               // 'cooperative' game
    
        "Einfach",                   // easy difficulty
        "Mittel",                  // medium difficulty
        "Schwer",                   // hard difficulty
    
        "Internetspiel suchen",                 // SCG[12/1/99]: 
        "Netzwerkspiel suchen",                     // SCG[12/1/99]: 
        "Mehrspielerrunde starten",                 // SCG[12/1/99]: 
    
        "Netzwerk",                                      // local area network game
        "Internet",                                 // internet game
    
        "Teilnehmen",                   // join server
        "Neu anlegen",                   // new server
        "Hinzufügen" ARROW_DOWN_STRING,          // add address
        "Aktualisieren",                 // refresh network games (13 chars--must enlarge button)
        "Setup",                                    // player setup
    
        "Übertragungsrate",               // connection speed label
        "28.8 KB",                  // connection type 1
        "56.6 KB",                  // connection type 2
        "ISDN",                                     // connection type 3
        "Kabel/DSL",                // connection type 4
        "T1/Netzwerk",                  // connection type 5
        "Benutzerdefiniert",               // connection type 6 TX NOTE:user enters his own connection type.
    
        "Zeitlimit",                                // SCG[12/2/99]: 
        "Farbe der Spielfigur",                         // SCG[12/2/99]: 
        "Anfangsepisode",                           // SCG[12/2/99]: 
        "Mannschaft",                               // SCG[12/1/99]: 
        "Flag-Limit",                               // SCG[12/1/99]: 
        "Farbe Team 1",                             // SCG[12/1/99]: 
        "Farbe Team 2",                             // SCG[12/1/99]: 
        "Punktelimit",                              // SCG[12/1/99]: 
        "Abschußlimit",                             // SCG[12/1/99]: 
        "Level-Limit",                              // frag limit
        "Anfangsepisode",                           // SCG[12/2/99]: 
        "Karte",                                    // SCG[12/1/99]: 
        "Spielmodus",                // game mode (deathmatch,deathtag,co-op)
        "Fähigkeiten",               // skill level
        "Zeitlimit",                // time limit
        "Max. Spieler",               // maximum players
        "Spielfigur",                // character
        "Farbe",                // base color
        "Start!",                                   // start multiplayer game
    
        "Waffen bleiben",               // weapons remain with you into the next area of play
        "Neue Gegenstände",              // items rematerialize on the map JG:990802
        "Sichere Position",               // place user's character at the farthest point from other players 
        "Notausgang",              // allow players to exit the level wihtout being killed first 
        "Gleiche Karte",                 // use the same map as last time
        "Wiederbelebung",              // make the respawn command happen now. JG:990802
        "Sturzschaden",              // players take damage from falling down JG:990802
        "Sofort-Powerups",              // make instant power-ups available in the game
        "Erlaube Powerups",               // allow power-ups to be used in the game JG:990802
        "Erlaube Heilung",               // allow health kits to be used in the game JG:990802
        "Erlaube Rüstung",               // allow armor to be used in the game JG:990802
        "Unbegrenzte Munition",              // unlimited ammunition  JG:990802
        "Sicht beschränken",                // limits the user's field-of-vision JG:990802
        "Mannschaftsspiel",                 // team-play
        "Verletzungen",              // hurt teammates allows players to cause damage to team-mates. JG:990802
        "Schnellwahl",               // allows a player to change weapons faster than normal JG:990802
        "Schritte",                // footsteps become audible or silent 
        "Erlaube Hook",                // allow hook  JG:990802 (grappling hook)
        "Munitionshülsen",              // show shotgun shells?
    
        "Server-IP-Adresse",            // server internet provider address
        "Keine Spiele gefunden",           // no local games found TX NOTE:sentence.
        "Karte starten",               // starting map
        "Servername",               // server name
        "Spielername",               // player name
        "Mannschaft ",                // team name
    
        "Harakiri begehen?",            // confirm quit TX NOTE:Do not translate Harakiri--it's Jpn.
    
        "Ja",                                       // yes, acknowledgement
        "Nein",                                      // no, acknowledgement
        "Speichern",
    
        "Konf. laden",                              //cek[12-6-99]
        "Konf. sichern",                            //cek[12-6-99]
        "Konf. löschen",                            //cek[12-6-99]
        "Konfigurationsdatei auswählen",                        //cek[12-6-99]
        "Ausgewählte Datei löschen?",                       //cek[12-6-99]
    
        "Spiel laden",                              //cek[12-6-99]
        "Rüst.",                                    //cek[12-6-99]
        "Ges.",                                         //cek[12-6-99]
        "Stufe",                                    //cek[12-6-99]
        "Gegner",                                   //cek[12-6-99]
        "Geheimnisse",                                  //cek[12-6-99]
        "Zeit",                                     //cek[12-6-99]
        "Gesamt",                                   //cek[12-6-99]
        "Episode",                                  //cek[12-6-99]
    
        "3D-Sound",                             //cek[12-6-99]
    
        "gespeichert",                                  //cek[12-7-99]
        "geladen",                                  //cek[12-7-99]
        "gelöscht",                                 //cek[12-7-99]
    
        "Mausglättung",                                     //cek[12-7-99]
        "Rad hoch",                                 //cek[12-7-99]
        "Rad runter",                               //cek[12-7-99]
    
        "ALT-TAB nicht erlaubt",                        //cek[12-7-99]
        "Blut und Gemetzel",                        //cek[12-7-99]
        "Waffen bewegen sich",                          //cek[12-7-99]
        "Auto-Waffentausch",                        //cek[12-7-99]
        "Intensität",                                   //cek[12-7-99]
        "Glänzende Waffen",                         //cek[12-7-99]
        "Einschußlöcher",                               // SCG[1/4/00]: 
    
        "Vorwärts",                                 //cek[12-9-99]
        "Seitwärts",                                        //cek[12-9-99]
        "Rauf",                                     //cek[12-9-99]
        "Steigung",                                 //cek[12-9-99]
        "Ausweichen",                                       //cek[12-9-99]
        "Joystick benutzen",                                //cek[12-9-99]
        "Achse konfigurieren",                          //cek[12-9-99]
        "Joystickoptionen konfigurieren:",              //cek[12-9-99]
        "Eine Funktion für diesen Knopf auswählen",         //cek[12-9-99]
        "Um fortzufahren, Joystickbutton drücken",      //cek[12-9-99]
        "Grenzwert",                                //cek[12-9-99]
        "Empfindlichkeit",                              //cek[12-9-99]
    
        "Capture the Flag",                         //cek[12-10-99]
        "Zurück",                                       //cek[12-10-99]
        "56,6 KB",                                  //cek[12-10-99]
        "Auto",                                     //cek[12-10-99]
        "Team 1",                                   //cek[12-10-99]
        "Team 2",                                   //cek[12-10-99]
    
        "Intro abspielen",                              //cek[12-13-99]
        "Handicap-System",                                  //cek[12-13-99]
        "Mausgeschwindigkeit",                              //cek[12-13-99]
    
        "Partner: Nimm",                            // cek[1-3-00]
        "Partner: Komm",                            // cek[1-3-00]
        "Partner: Angriff",                         // cek[1-3-00]
        "Partner: Rückzug",                         // cek[1-3-00]
        "Partner: Bleib",                           // cek[1-3-00]
    
        "Wähle Waffe %d",                           // cek[1-4-00]  as in "Select Weapon 1" (leave the %d)
    
        "HUD: durchlaufen",                             // cek[1-5-00]  -- for these, translate HUD to something short and reasonably
        "HUD: nächstes",                                    // cek[1-5-00]  -- similar in meaning.
        "HUD: vorheriges",                                  // cek[1-5-00]
        "HUD: benutzen",                                    // cek[1-5-00]
    
        "Nachricht",                                        // cek[1-11-00]
        "Abschussliste",                                // SCG[1/13/00]: 
        "Befehl an Team",                               // cek[1-22-00]
        "%s ist bereits %s zugewiesen",             // cek[1-22-00]  as in "F is already assigned to attack" (leave in %s)
        "Ersetzen?",                                    // cek[1-22-00]
    
        "Toastednet",                               // FS: changed to tnet
        "DK-News",                              // cek[2-1-00]
        "Möchten Sie fortfahren?",                      // cek[2-1-00]
    
        // for the next two, all \n in the strings denotes a string break.  These must remain in place and the translated
        // string should have them in roughly the same place.
        "Custom-Maps, Mods und mehr gesucht?\nGehen Sie auf dk.toastednet.org.\nMit Klick auf 'Ja' starten Sie ihren Browser.", // FS: changed to tnet
        "Sie wünschen Neuigkeiten zu Daikatana?\nDann suchen Sie www.daikatananews.net auf.\nMit Klick auf 'Ja' starten Sie ihren Browser.",    // FS: changed to dknews            // cek[2-1-00]
    
        "Waffe %d",                                 // cek[3-6-00]: treat as "weapon 1"
        "Abbrechen",                                    // cek[3-9-00]
        "www.daikatananews.net", // FS: changed to dknews                                                   // cek[3-9-00]
        "Zu www.daikatananews.net wechseln?\nMit Klick auf 'Ja' starten Sie ihren Browser.",            // cek[3-9-00]
    
        "Waffenkonfiguration", // FS
        "Instagib", // FS
        "Deathmatch Kommentar", // FS
        "Unbegrenzt speichern", // FS
        "CTF/DT Hinweise", // FS
        "Nach Updates suchen", // FS
    
        "Hinweis zu Mini-Drivers",  // Knightmare added 2/20/13
        "Diese Version von Daikatana unterstützt nicht\nlänger die 3DFX und PowerVR Mini-Treiber.\n3DFX Usern wird dringend empfohlen die\nMetabyte WickedGL-Treiber zu benutzen.", // Knightmare added 2/20/13
        "Download WickedGL-Treiber",        // Knightmare added 2/20/13
        "Zu www.3dfxzone.it wechseln? \nMit Klick auf 'Ja' starten Sie ihren Browser.", // Knightmare added 2/20/13
        "Zu OpenGL-Standard wechseln?", // Knightmare added 2/20/13
    
        "Update verfügbar", // FS: Autoupdates
        "Eine neue Version von Daikatana v1.3\nist verfügbar.", // FS: Autoupdates
        "Ihre PAK-Dateien sind veraltet.\nEs können keine v1.0 PAK-Dateien verwendet werden.\nDaikatana v1.3 benötigt v1.2 PAK-Dateien.\nFür das Upgrade hier klicken.", // FS: Autoupdates
        "Daikatana wird die PAK-Dateien verifizieren.\nDie Überprüfung kann auf älteren Computern 30 Sek.\ndauern und wird nur ein einziges Mal durchgeführt.", // FS: Autoupdates
        "Eine neue Version von Daikatana v1.3 Karten\nist verfügbar.", // FS: Autoupdates
        "Update herunterladen",     // FS: Autoupdates
        "PAK-Dateien verifizieren", // FS: Autoupdates
        "Nein Danke", // FS: Autoupdates
        "Zu dk.toastednet.org wechseln?\nMit Klick auf 'Ja' starten Sie ihren Browser.",    // FS: Autoupdates
    
        "Screenshot",   // Knightmare added 1/21/14
        "Stiller Screenshot",   // Knightmare added 1/21/14
        "Erfahrungspunkte teilen",  // Knightmare added 2/1/14
        "Spiel löschen",    // Knightmare added 2/7/14
        "Ausgewähltes Spiel löschen?",  // Knightmare added 2/7/14
        "Umschalttaste", // FS: For Mouse and Joystick
        "Wir haben viel Zeit darauf verwandt, die original\nKarten zu reparieren und haben außerdem weitere\nBesonderheiten, wie Regeneration der Gesundheit\nund einer verbesserten Partner-KI hinzugefügt.\nDas Spiel macht mehr Spaß mit Partnern.", // FS: For no sidekicks
        "Wollen Sie wirklich ohne Partner spielen?", // FS: For no sidekicks
    
        "Erhöhe Stärke",        // FS: Added by request
        "Erhöhe Angriff",       // FS: Added by request
        "Erhöhe Tempo",     // FS: Added by request
        "Erhöhe Akrobatik",     // FS: Added by request
        "Erhöhe Vitalität", // FS: Added by request
    
        "Taste 4",          // Knightmare 1/30/15- button 4 label
        "Taste 5"           // Knightmare 1/30/15- button 5 label
    };
    
    
    static char *tongue_menu_options[] =
    {
        "Immer laufen",                // makes user's characters run everywhere
        "Schauen und springen",                // look + jump
        "Schauen und feuern",                // look + strafe (shoot wildly)
        "Automatisch zielen",              // computer aims at nearest target for the user
        "Fadenkreuz",                // a crosshair is displayed 
        "Waffe sichtbar",              // weapon is visible
        "Untertitel",                   //subtitles
    
        "SFX-Lautstärke",           // volume for sound fx
        "Musiklautstärke",               // volume for music
        "Filmlautstärke",                         // volume for cinematics
    
        "Software",                                 // video mode, software
        "OpenGL",                                   // video mode, opengl
        "Änderungen übernehmen",              // apply video mode changes TX NOTE:sentence.
    
        "Vollbild",                // make view use the full screen
        "Schatten",                 // allow shadows
        "Treiber",                  // video driver
        "Auflösung",                // choose/set screen display resolution
        "Bildschirmgröße",               // choose/set screen size
        "Helligkeit",                // choose/set brightness
        "Texturqualität",             // choose/set quality of 3D image textures 
        "Statusleiste sichtbar",           // choose/set whether the status bar is visible.
        "Nebel- und Wasserdetails",             // SCG[12/4/99]: 
        "Ronin",                                    // difficulty level easy
        "Samurai",                                  // difficulty level medium
        "Shogun",                                   // difficulty level hard
    
        "Schnee und Regen",                         // cek[1-11-00]
        "Nebel",                                        // cek[1-11-00]     
    
        "Powerup-Geräusche wiedergeben", // FS
        "Fehlende Sounds abspielen", // FS
        "Partnerdialoge wiedergeben", // FS
    
        "Anisotrope Filterung", // Knightmare added 5/29/12
        "Benutzerdefinierte Breite",    // Knightmare added 5/29/12
        "Benutzerdefinierte Höhe",  // Knightmare added 5/29/12
        "Statusleiste Größe",       // Knightmare added 6/14/12
        "Vertikale Sync.",      // Knightmare added 10/4/12
        "Async. Refresh",       // Knightmare added 10/4/12
        "Aktualisierungsrate",      // Knightmare added 10/4/12
        "Screenshot-Format",            // Knightmare added 3/11/13
        "Punkt",                // Knightmare added 5/10/13
        "Volume",           // Knightmare added 5/10/13
    
        "Download-Optionen",        // Knightmare added 11/19/13
        "Ermögliche Download",  // Knightmare added 11/19/13
        "Ermögliche HTTP Download", // FS added 03/29/15
        "Karten / Texturen",        // Knightmare added 11/19/13
        "Sounds",               // Knightmare added 11/19/13
        "Modelle",              // Knightmare added 11/19/13
        "Sound-Rate",           // Knightmare added 2/2/14
        "Audio-Engine",         // Knightmare added 7/8/16
        "Sprache", /* FS: Multi-Lang DLL */
        "Keine Partner", /* FS: No sidekicks new game option */
        "Bonus Speicherjuwel", /* FS: Bonus save gems */
    
        /* FS: More Options! */
        "Seite 1",
        "Seite 2",
        "Framerate anzeigen",
        "Q3A Konsolenbefehle",
        "Zwischensequenzen",
        "Autovervollständigung",
        "Chat-Nachricht",
        "Sidekick Warnung",
        "Auto-Demoaufnahme",
        "Schadenstreffer",
        "Uhrzeit zeigen",
        "Chat-Warteschlange",
        "Bevorzugtes Musikformat",
        // Knightmare added 3/5/17
        "Lauter Ladebildschirm",
    };
    
    
    
    //descriptions for the texture quality settings.
    static char *texture_quality_desc[] =
    {
        "Voll",
        "Halb",
        "1/4",
        "1/8"
    };
    
    
    // weapon names TX NOTE:"you picked up" +.TX NOTE:translate what you can. "localize" spellings of anything else.
    static char *tongue_weapons[] =
    {
        "keine Munition",       //only shows up if you have no ammo for the weapon you're trying to use. TX NOTE:treat like sentence "you have "no ammo".
        "Ballista",
        "Munition für die Ballista",
        "Bolzer",
        "Bolzen",
        "C4-Vitzatergo",
        "C4-Pakete",
        "Daikatana",
        "Diskus von Dädalus",
        "Diskus",
        "Disruptor-Handschuh",
        "Automark 2020", //TX NOTE:a ficticious automatic pistol--US game currently reads "Glock", but that's a trademark.
        "einige Gewehrkugeln",
        "Hammer",
        "Ionen-Blaster",
        "das Ionenpack",                    // SCG[11/28/99]: [accusative=You picked up...]
        "Kineticore",
        "Rail-Ball",
        "Metamaser",
        "Munition für den Metamaser",
        "Nharres Alptraum",
        "ein bißchen Fleisch",                  // SCG[11/28/99]: 
        "Novastrahl",
        "Novapack",                             //JK [01/26/00]
        "Ripgun",
        "Rip-Ups",                  // Knightmare changed 8/29/14
        "Shockwelle",
        "Schock-Sphäre",
        "Shotcycler",
        "Munition",
        "Sidewinder",
        "Sidewinder-Raketen",           // SCG[11/28/99]: 
        "Silberkralle",
        "Slugger",
        "Slugs",
        "Stavros' Stab",
        "Lava-Steine",
        "Sunflare",
        "Sunflare",
        "Poseidons Dreizack",
        "Dreizack-Spitzen",
        "Gifter",
        "Gift einer Kobra",                 // SCG[11/28/99]: 
        "Wyndrax Hauch",
        "Hauchladungen",
        "Hand des Zeus",
        "Bolzen",
        "Ultimative Gashände",
    
    // FS: Needed for Configure Weapons Menu
        "Ionen-Blaster",
        "C4-Vitzatergo",
        "Shotcycler",
        "Sidewinder",
        "Shockwelle",
        "Diskus von Dädalus",
        "Gifter",
        "Sunflare",
        "Hammer",
        "Poseidons Dreizack",
        "Hand des Zeus",
        "Bolzer",
        "Stavros' Stab",
        "Ballista",
        "Wyndrax Hauch",
        "Nharres Alptraum",
        "Automark 2020",
        "Slugger",
        "Kineticore",
        "Ripgun",
        "Novastrahl",
        "Metamaser",
    
        // Knightmare 8/29/13- Cordite grenades was stealing ripgun ammo identifier
        "Cordit-Granaten"
    };
    
    // armor TX NOTE:"you picked up" +.TX NOTE:translate what you can. "localize" spellings of anything else.
    static char *tongue_armors[] =
    {
        "Eisenrüstung",
        "Chromrüstung",
        "Silberrüstung",
        "Goldrüstung",
        "Kettenrüstung",
        "Rüstung aus schwarzem Adamant",
        "Kevlar-Rüstung",
        "Ebonit-Rüstung"
    };
    
    
    // monster names TX NOTE:NOMINITIVE CASE. translate what you can. "localize" spellings of anything else.
    static char *tongue_monsters[] =
    {
        "RoboCo-Kampfeber",
        "Schwarzer Gefangene",
        "Buboid",
        "RoboCo-Cambot",
        "Zenturio",
        "Cerberus",
        "Fliegender Schütze",
        "Karyatide",
        "RoboCo-Krokodil",
        "RoboCo-Todessphäre",
        "Fledermaus des Todes",
        "Drache",
        "Zwerg",
        "Femgang",
        "Fährmann",
        "Bogenschütze",
        "RoboCo-Froschinator",
        "König Garroth",
        "Goldfisch",
        "Griffon",
        "Harpyie",
        "Mitgefangener",
        "Kage",
        "Paladin des Höllenfeuers",
        "Voltaische Walküre",
        "Laboraffe",
        "Laborarbeiter",
        "RoboCo-Lasergat",
        "Lycanthir",
        "Medusa",
        "Mishimas Wachen",
        "Nharre der Totenbeschörer",
        "Pest-Ratte",
        "Kanal-Ratte",
        "Priester",
        "Gefangener",
        "RoboCo-Protopod",
        "Psyclaw",
        "Roboco RageMaster 5000",
        "Raketen-Gang-Mitglied",
        "SEAL-Raketenkanonier",
        "Rotwurm",
        "Satyr",
        "SEAL-Kämpfer",
        "SEAL-Captain",
        "SEAL-Schütze",
        "Hai",
        "Schlachter",
        "Skelett",
        "Arbeiter",
        "Fetter Arbeiter",
        "Roboco-Drecksarbeiter",
        "Kleine Spinne",
        "Spinne",
        "Stavros der Zauberer",
        "Chirurg",
        "Dieb",
        "RoboCo Donner-Skeet",
        "Uzi-Gang-Mitglied",
        "Weißer Gefangene",
        "Magier",
        "Wyndrax der Magier",
        "Möwe",
        "Feuerfliege",
        "Wispe",
        "Mikkiko",
        "Geist",
        "Der DopeFisch",
    };
    
    static char *tongue_world[] =
    {
        "weitere Sache(n) gibt's zu tun.",                 // triggers to go until sequence complete TX NOTE:## +.
        "Sequenz vollständig",             // trigger sequence completed TX NOTE:sentence.
    
        "Sie brauchen",               // need a specific key TX NOTE:followed by the key needed.
        "Sie brauchen den richtigen Schlüssel.\n",        // wrong key in possession TX NOTE:sentence.
        "Kann nicht auf diesem Weg geöffnet werden.\n",
    
        "Die Wirkung des Giftes läßt nach.\n",  // poison expiring TX NOTE:sentence.
        "Ihre Sauerstoffflasche ist fast leer.\n",      // oxylung expiring TX NOTE:sentence.
        "Ihre Überlebensanzug bietet gleich keinen Schutz mehr.\n",        // envirosuit expiring TX NOTE:sentence.
        "Grüner Elf mag schlechtes Essen.\n",         // megashield expiring TX NOTE:sentence.
        "Die Gespenstersphäre wird schwächer.\n",          // wraith orb expiring TX NOTE:sentence.
        "Die Extra-Energie ist fast aufgebraucht.\n",                // power boost expiring TX NOTE:sentence.
        "Die Extra-Angriffsstärke läßt nach.\n",        // attack boost expiring TX NOTE:sentence.
        "Der Geschwindigkeitschub wird schwächer.\n",         // speed boost expiring TX NOTE:sentence.
        "Der Akrobatikschub ist wird schwächer.\n",       // jump boost expiring TX NOTE:sentence.
        "Der Vitalitätsschub ist wird schwächer.\n",       // health boost expiring TX NOTE:sentence.
    
        "ist dem Spiel beigetreten",              // player joined the game TX NOTE:NAME +.
        "hat das Level verlassen",              // player exited the level TX NOTE:NAME +.
    
        "Hiro Miyamoto",               // Hiro Miyamoto's full name TX NOTE:same as in script.
        "Superfly Johnson",              // Superfly's full name TX NOTE:same as in script.
        "Mikiko Ebihara",               // Mikiko's full name TX NOTE:same as in script.
    
        // SCG[10/18/99]: these next 5 had enums, but no strings. 
        "Sie wurden wegen Spamming gekickt",                                // SCG[10/18/99]: T_PLAYER_SELF_SPAM_KICK // FS: Updated this
        "wurde wegen Spamming gekickt",                             // SCG[10/18/99]: T_PLAYER_SPAM_KICK // FS: Updated this
        "",                             // SCG[10/18/99]: T_PLAYER_TIME_LIMIT_HIT
        "",                             // SCG[10/18/99]: T_PLAYER_FRAG_LIMIT_HIT
        "Unbekannter Spieler",                              // SCG[10/18/99]: T_TELL_CMD_UNKNOWN_PLAYER // FS: Updated this
    
        "Kann den Bereich nicht verlassen: Es fehl(t/en): \n",                  // SCG[10/18/99]: no exiting level without sidekicks 
        "Kann nicht gehen ohne: \n",                    // SCG[10/18/99]: no exiting level without sidekicks 
        "Vergiftet!\n",                                 // NSS[11/29/99]: Needed a generic and yet global poisoned message
    
        "Du hast ein Geheimnis entdeckt!\n",                        // cek[1-3-00]
        "Die Wirkung des Manaschädel läßt nach.\n",
        "Festgenagelt!\n", // FS
        "Massaker!\n", // FS
        "Frohe Feiertage von der Daikatana 1.3 Team!\n", // FS
        "und" // FS
    };
    
    static char *tongue_deathmsg_daikatana[] = 
    {
        "%s wird aufgeschlitzt von %s\n"                //Daikatana
    };
    
    
    static char *tongue_deathmsg_self[] = 
    {
        " hat finale Kopfschmerzen.\n",             // death, fell TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "hat zuviel Wasser inhaliert.\n",               // death, drowned TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "ist schön knusprig.\n",                // death, lava TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "ist weggeschleimt worden.\n",                 // death, slimed TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "hat sich den Magen verdorben.\n",                // death, poison TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "war des Lebens überdrüssig.\n",           // death, killed self TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "ist verteleportiert.\n",              // death, teleport TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "wurde eingestampft.\n",              // death, crushed TX NOTE:character +. TX NOTE:use your own appropriate slang.
    
        "hat sich an C4 verschluckt.\n",            // death, C4 explosives TX NOTE:character +. TX NOTE:use your own appropriate slang.
        "wurde festgefroren.\n",                            // FS: death, frozen
        "vom Blitz schockiert.\n"                   // FS: death, shocked by lightning bolts in e3
    
    };
    
    
    static char *tongue_deathmsg_weapon1[] =        // %s = name of attacker/victim
    {
        "%s wurde von %s gedemütigt!\n",                    //disruptor glove- NOTE:use your own appropriate slang.
        "%s verpaßte %s den letzten Husten!\n",         //ultimate gashands
        "%s wurde von %s ionisiert!\n",                 //Ion blaster
        "%s hat %s gleichmäßig verteilt!\n",                    //C4
        "%s hat %s seinen Doppellauf verpaßt!\n",                   //Shotcycler
        "%s geht dank %s ab wie eine Rakete!\n",                        //Sidewinder
        "%s hat %s geschüttelt, nicht gerührt!\n"                           //Shockwave
    };
    
    static char *tongue_deathmsg_weapon2[] =        // %s = name of attacker/victim
    {
        "%s hat mit %s Dodgeball gespielt!\n",      //Discus- NOTE:use your own appropriate slang.
        "%s hat %s vergiftet!\n",                       //venomous
        "%s hat %s schön knusprig gebräunt!\n",     //Sunflare
        "%s hat %s geplättet!\n",                       //Hammer
        "%s hat %s gebissen!\n",                    //trident
        "%s kniet vor Zeus nieder!\n"                   //Zeus
    };
    
    static char *tongue_deathmsg_weapon3[] =        // %s = name of attacker/victim
    {
        "%s wurde von %s tranchiert!\n",            //Silverclaw- NOTE:use your own appropriate slang.
        "%s hat %s den Ast abgeknickt!\n",                      //Bolter
        "%s hat %s etwas Holz überreicht!\n",                   //Ballista
        "%s wurde von %ss Meteor verkokelt!\n",     //Stave
        "%s steht dank %s tierisch unter Strom!\n", //Wisp
        "%s hat %ss Dämon kennengelernt!\n"             //Nightmare
    };
    
    static char *tongue_deathmsg_weapon4[] =        // %s = name of attacker/victim
    {
        "%s hat %s eine Metallfüllung verpaßt!\n",                  //Glock- NOTE:use your own appropriate slang.
        "%s bombardiert %s!\n",                     //Slugger
        "%s wurde von %s geschnetzelt!\n",              //Ripgun
        "%s hat mit %s eine ziemliche Sauerei veranstaltet!\n",             //Cordite
        "%s wurde von %s vereist!\n",                       //Kineticore
        "%s hat %s gelocht und abgeheftet!\n",                  //Novebeam
        "%s bekam Masern von %s!\n"                     //Metamaser
    };
    
    static char *tongue_scoreboard[] =
    {
        "Name",
        "Abschüsse",
        "Ping",
        "Zeit",
        "Schüsse",
        "Treffer",
        "Gestorben",
        "Punkte"                                        // cek[1-22-00]
    
    };
    
    
    static char *tongue_difficulty[] =  // difficulty settings for 'new game' menu
    {
        "Schwierigkeitsgrad wählen:",      // difficulty header TX NOTE:using karate skill levels.
        "Ronin",                       // newbie
        "Samurai",                    // average
        "Shogun"                    // expert (or so they think!)
    };
    
    
    static char *tongue_skincolors[] =
    {
        "Blau",             // blue
        "Grün",            // green
        "Rot",             // red
        "Gold"                          // gold
    };
    
    
    static char *tongue_statbar[] =
    {
        "STÄRKE",             // skill 'power' label
        "ANGRIFF",            // skill 'attack' label
        "TEMPO",              // skill 'speed' label
        "AKROBATIK",          // skill 'acrobatic' label
        "VITALITÄT",          // skill 'vitality' label
    
        "RÜSTUNG",              // armor label
        "GESUNDHEIT",                   // health label
        "MUNITION",                     // ammo label
        "ABSCHÜSSE",                        // kills label
        "STUFE",        // experience points label
    
        "STUFE HOCH!",          // experience level up
        "Wählen",     // select skill
        "Erfahrungspunkt zuweisen",  // add point to skill
    
        "Lädt..."                    // loading new level
    };
    
    
    static char *tongue_weapon_misc[] =
    {
        "C4-Ladungen werden instabil!"    // C4 modules are de-stabilizing
    };
    
    
    static char *tongue_sidekick[] =    // sidekick commands
    {
        "Heb's auf",                        // 'get', 'pick up' item command
        "Komm' her",                      // 'come here', 'come to me'
        "Bleib",                          // 'stay' command, 'don't move'
        "Greif' an",                      // 'attack' command
        "Rückzug",                // 'back off', 'move away'
    
        "Gib mir"                      //  asking to pick up an item: "Can I have the ...?" or "i need the..."
    };
    
    static char *tongue_ctf[] =
    {
        "Rote Flagge",
        "Blaue Flagge",
        "Unbekanntes Team",
    
        "%s Flagge",                                            // when translating, treat '%s Flag' as 'red Flag' and place the %s before or after flag
                                                            // depending on the syntax of the language.  ie if the expression should be 'Flag red' use 'Flag %s'
        "Rot",
        "Blau",
        "Chrom",
        "Stahl",
        "Grün",
        "Orange",
        "Lila",
        "Gelb",
    
        "Spielstand jetzt %s:%d, %s:%d\n",
        "Sie erobern die %s!\n",
        "%s aus Ihrem Team erobert die %s!\n",
        "%s vom Team %s erobert Ihre Flagge!\n",        // when translating, treat '%s team' as 'red team' and place the %s before or after team
                                                                // depending on the syntax of the language.  ie if the expression should be 'team red' use 'team %s'
        "Sie schnappen sich die %s\n",
        "%s aus Ihrem Team schnappt sich die %s\n",
        "%s hat Ihre Fahne gestohlen\n",
        "Die %s wurde zurückgebracht\n",
    
        "%d ist eine ungültige Teamnummer. Verwenden Sie 1 oder 2\n",
        "Sie gehören zu Team %d (%s)\n",
        "Sie sind schon in Team %d\n",
        "%s schließt sich Team %s an\n",                                    // translate same as with the %s team above
    
        "Das Team %s hat gewonnen!\nEndergebnis: %s:%d, %s:%d\n",       // translate same as with the %s team above
        "Das Spiel endet unentschieden!\n",
        "Die Zeit ist abgelaufen!\n",
        "Das Limit wurde erreicht!\n",
    
        "Sie bereit für Überstunden!\n", // FS
        "Sie haben die gegnerische Flagge. Zurück zur Basis!\n", // FS
        "Die Gegner haben eure Fahne! Holt sie Euch zurück!\n" // FS
    };
    
    static char *tongue_deathtag[] =
    {
        "Bombe",                                                        // as in backpack
        "%s Bombe",                                                 // as in red pack
        "Punktelimit erreicht!\n",
        "Ihre Zeit wird knapp!\n",
        "Ihre Zeit ist abgelaufen!\n",
    
        "%s vom Team %s schnappt sich die %s!\n",               // translate using the '%s team' guidelines above
    
        "Ihr Team erhält einen Punkt!\n",
        "Ihr Team erhält %d Punkte!\n",                             // you get 2 points
        "Das %s Team erhält einen Punkt!\n",                                // translate using the '%s team' guidelines above
        "Das %s Team erhält %d Punkte!\n",                          // The red team gets 2 points
    
        "Sie punkten!\n",
        "%s aus Ihrem Team hat Punkte gemacht!\n",
        "%s vom Team %s hat Punkte gemacht!\n",
    
        "Sie haben die Bombe! Mach' den Punkt!\n", // FS
        "Das andere Team hat seine Bombe!\n" // FS
    };
    
    // FS: --------------------new-------------------------
    static char *tongue_save_error[] =
    {
        "Speichern ist nur in einem lokalen Spiel möglich!\n",
        "Sir, ohne Spiel - kein Speichern!\n",
        "Kann Spiel im Deathmatch-Modus nicht speichern!\n",
        "Während einer Filmsequenz können Sie nicht speichern!\n",
        "Wenn Sie tot sind, können Sie auch nicht speichern!\n",
        "Während der Pause können Sie nicht speichern!\n",
        "Hier können Sie nicht speichern!\n"
    };
    
    /* FS: Mult-Lang DLL */
    static char *tongue_quit_msgs[] =
    {
        "Du dachtest wohl, du wärst groß und stark,|aber bist wirklich nur ein kleines Baby, oder?",
        // "Ya thought you were a big boy, but you're|really just a baby boy, aren't you?",
    
        "Willst du dieses Spiel aufgeben,|wie alles andere im Leben?",
        // "Are you gonna quit this game just like|you quit everything else in life?",
    
        "Gehst du, weil die schöne Harfenmusik und die|schaurigen Grillen dich zum Weinen bringen?",
        // "Does the pretty harp music and the scary|crickets make you cry and quit?",
    
        "Beendest du, weil diese ganzen Zeitreisen|dich fertig machen und verwirren?",
        // "Does all this time travel really boggle|you down, confuse you and make you quit?",
    
        "Rennst du aus Angst vor den gruseligen Monstern|und gemeinen Robotern zu deiner Mami?",
        // "Did the scary monsters and mean robots|make you run to your mommy?",
    
        "Denk daran: Du bist erst wirklich fertig mit dem Spiel,|wenn du den Dopefish gefunden hast. Jetzt beenden?",
        // "Just remember: you haven't actually finished this game,|if you haven't found the Dopefish.  Quit now?",
    
        "Du erträgst diese Hardcore Action wohl nicht mehr?|Rennst weg wie ein kleines Baby|und musst ins Bett, was?",
        // "Can't take much more of this hardcore action, eh?  |Gotta run like a little baby and go to bed, right?",
    
        "Wenn du jetzt gehst, fange ich an einen|Shoggoth zu beschwören der dich zerfetzen wird,|während du schläfst. Ist das ok?",
        // "If you leave now, I'll start working on|summoning a Shoggoth to come tear you apart|while you sleep.  Is that ok?",
    
        "Weißt du was? Während du weg bist, haue ich|den ganzen Monstern auf die Fresse, so dass|sie WIRKLICH SAUER sind, wenn du das nächste|Mal spielst, ok?",
        // "Hey, guess what?  When you leave,|I'm going to start smacking all the monsters around|so they're REALLY MAD next time you play, ok?",
    
        "Während du weg bist werde ich beweisen ob|P != NP ist, ok?", // oder "Während du weg bist, arbeite ich weiter an der großen vereinheitlichten Theorie, ok?"
        // "While you're gone, I'm going to keep|working on the Grand Unified Theory, ok?",
    
        "Was zur Hölle ist bei dir eigentlich schiefgelaufen?", 
        // "Are you broken?",
    
        "Hey, nimm dich in Acht vor den düsteren Navy|Seals in der San Francisco Episode, ok?", 
        // "Hey, watch out for the Dark Troopers in the|San Francisco episode, ok?",
    
        "Du bist kein besonders toller Hecht, oder?", 
        // "You're not much of a Kraken, are you?"
    
        "Ist das Spiel der Auslöser?|Wenn ja, sind Sie ein schwaches und erbärmliches|Nagetier und werden an dem Greif verfüttert!"
        // "Does this game trigger you?  If so, you're a weak and pathetic rodent and will be fed to the griffin!"
    };
    
    static char *tongue_quit_msgs_rare[] =
    {
        "Während du weg bist, werde ich ein bisschen|im Internet surfen. Einverstanden?",   // "While you're away I think I'll link into some internet|sites and surf for a while.  Is that okay with you?",
        "Willst du aus mir raus?", // "Get out of me?",
        "Schluckst du?", // "Suck it down(tm)?",
        "Ist der Affe schon gelandet?", // "Has the monkey landed yet?"
    };
    
    /* FS: Wasn't originally translated.  Reported by Robert. */
    static char *tongue_menu_joystick[] =
    {
        "Konfiguriere Bewegung",
        "Keine",
        "Vorwärts/Rückwärts",
        "Hoch/runter gucken",
        "Seitwärts laufen",
        "Drehen" /* or "Links/rechts gucken" */,
        "Hoch", "Erweitert",
        "Konfiguriere Joystick-Achse",
        "Absolut (Stick)"
    };
    
  20. Hightower reporter

    Hello Frank,

    follow sentences are always in english:

    Bonus Gem acquired --> Speicherjuwel aufgehoben
    Current bonus total: 1 --> Aktueller Gesamtbonus: 1

    I think I have to play the complete game to find more inconsistencies and translation errors.

    I saw them before, but I thought I can not do something. There for, thank you for your patience

    and fixing.

    Here an updated the language file.

    Download German language file

    In the next 2 weeks I'm in vacances.

    Best regards,

    Hightower

  21. Frank Sapone

    Hi Hightower, yes there are a few other messages that are hardcoding the english language instead of reading from the DLLs so there will be inconsistencies and require a world.dll recompile. If you find others let me know and I will fix them.

  22. Frank Sapone

    I was going to implement the Bonus Gem acquired message but the translation you gave me is the same as "Save Gem acquired" so maybe you want to double check the translation before I implement it.

  23. Hightower reporter

    Sorry, I am not at home. I can not test or check something. But I can say, that I have updated the language file yesterday with the new translation:

    Bonus Gem acquired --> Speicherjuwel aufgehoben

    The follow sentence doesn't exist:

    Current bonus total: 1 --> Aktueller Gesamtbonus: 1

  24. Frank Sapone

    I know it does not exist. What am I saying to you is in the l_german.h "Speicherjuwel aufgehoben" already exists in the table for the translation for "Save Gem acquired". Bonus Gems and Save Gems are not the same thing.

  25. Hightower reporter

    You are right. Excuse. I mean: Save Gem acquired --> Speicherjuwel aufgehoben

    In the Option menu is used: Bonus Gems --> Bonus-Speicherjuwel

  26. Log in to comment