DEADSOFTWARE

Make autoswitch server-side. Add option to skip empty weapons by travi$
[d2df-sdl.git] / src / game / g_language.pas
index dbeb7d0efeafd34f3ec39a6d435f87cf72224553..131bd61dbe99ad7cc75e9d6f5f729598cfa33e36 100644 (file)
@@ -1,3 +1,19 @@
+(* Copyright (C)  Doom 2D: Forever Developers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3 of the License ONLY.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *)
+{$INCLUDE ../shared/a_modes.inc}
+{$SCOPEDENUMS OFF}
 unit g_language;
 
 interface
 unit g_language;
 
 interface
@@ -64,6 +80,7 @@ type
     I_GAME_SECRETS,
     I_GAME_MONSTERS_TOTAL,
     I_GAME_SECRETS_TOTAL,
     I_GAME_SECRETS,
     I_GAME_MONSTERS_TOTAL,
     I_GAME_SECRETS_TOTAL,
+    I_GAME_WARMUP,
 
     I_GAME_CHEAT_GODMODE,
     I_GAME_CHEAT_WEAPONS,
 
     I_GAME_CHEAT_GODMODE,
     I_GAME_CHEAT_WEAPONS,
@@ -85,6 +102,19 @@ type
     I_GAME_CHEAT_AIMLINE,
     I_GAME_CHEAT_AUTOMAP,
 
     I_GAME_CHEAT_AIMLINE,
     I_GAME_CHEAT_AUTOMAP,
 
+    I_GAME_WEAPON0,
+    I_GAME_WEAPON1,
+    I_GAME_WEAPON2,
+    I_GAME_WEAPON3,
+    I_GAME_WEAPON4,
+    I_GAME_WEAPON5,
+    I_GAME_WEAPON6,
+    I_GAME_WEAPON7,
+    I_GAME_WEAPON8,
+    I_GAME_WEAPON9,
+    I_GAME_WEAPON10,
+    I_GAME_WEAPON_BERSERK,
+
     I_MENU_START_GAME,
     I_MENU_MAIN_MENU,
     I_MENU_NEW_GAME,
     I_MENU_START_GAME,
     I_MENU_MAIN_MENU,
     I_MENU_NEW_GAME,
@@ -134,6 +164,13 @@ type
     I_MENU_GOAL_LIMIT,
     I_MENU_MAX_LIVES,
     I_MENU_TEAM_DAMAGE,
     I_MENU_GOAL_LIMIT,
     I_MENU_MAX_LIVES,
     I_MENU_TEAM_DAMAGE,
+    I_MENU_TEAM_HIT,
+    I_MENU_TEAM_HIT_BOTH,
+    I_MENU_TEAM_HIT_TRACE,
+    I_MENU_TEAM_HIT_PROJECTILE,
+    I_MENU_TEAM_HIT_NOTHING,
+    I_MENU_ITEM_RESPAWN_TIME,
+    I_MENU_DEATHMATCH_KEYS,
     I_MENU_ENABLE_EXITS,
     I_MENU_WEAPONS_STAY,
     I_MENU_ENABLE_MONSTERS,
     I_MENU_ENABLE_EXITS,
     I_MENU_WEAPONS_STAY,
     I_MENU_ENABLE_MONSTERS,
@@ -141,6 +178,8 @@ type
     I_MENU_BOTS_VS_PLAYERS,
     I_MENU_BOTS_VS_MONSTERS,
     I_MENU_BOTS_VS_ALL,
     I_MENU_BOTS_VS_PLAYERS,
     I_MENU_BOTS_VS_MONSTERS,
     I_MENU_BOTS_VS_ALL,
+    I_MENU_FLAG_DROP,
+    I_MENU_FLAG_THROW,
 
     I_MENU_MAP_WAD,
     I_MENU_MAP_RESOURCE,
 
     I_MENU_MAP_WAD,
     I_MENU_MAP_RESOURCE,
@@ -167,10 +206,22 @@ type
     I_MENU_LOADING,
     I_MENU_PLAYER_1,
     I_MENU_PLAYER_2,
     I_MENU_LOADING,
     I_MENU_PLAYER_1,
     I_MENU_PLAYER_2,
+    I_MENU_PLAYER_1_KBD,
+    I_MENU_PLAYER_2_KBD,
+    I_MENU_PLAYER_1_ALT,
+    I_MENU_PLAYER_2_ALT,
+    I_MENU_PLAYER_1_WEAPONS,
+    I_MENU_PLAYER_2_WEAPONS,
 
     I_MENU_CONTROL_JOYSTICKS,
     I_MENU_CONTROL_DEADZONE,
 
 
     I_MENU_CONTROL_JOYSTICKS,
     I_MENU_CONTROL_DEADZONE,
 
+    I_MENU_CONTROL_TOUCH,
+    I_MENU_CONTROL_TOUCH_ALT,
+    I_MENU_CONTROL_TOUCH_FIRE,
+    I_MENU_CONTROL_TOUCH_SIZE,
+    I_MENU_CONTROL_TOUCH_OFFSET,
+
     I_MENU_CONTROL_GLOBAL,
     I_MENU_CONTROL_SCREENSHOT,
     I_MENU_CONTROL_STAT,
     I_MENU_CONTROL_GLOBAL,
     I_MENU_CONTROL_SCREENSHOT,
     I_MENU_CONTROL_STAT,
@@ -185,6 +236,8 @@ type
     I_MENU_CONTROL_USE,
     I_MENU_CONTROL_NEXT_WEAPON,
     I_MENU_CONTROL_PREV_WEAPON,
     I_MENU_CONTROL_USE,
     I_MENU_CONTROL_NEXT_WEAPON,
     I_MENU_CONTROL_PREV_WEAPON,
+    I_MENU_CONTROL_STRAFE,
+    I_MENU_CONTROL_DROPFLAG,
 
     I_MENU_COUNT_NONE,
     I_MENU_COUNT_SMALL,
 
     I_MENU_COUNT_NONE,
     I_MENU_COUNT_SMALL,
@@ -217,12 +270,22 @@ type
     I_MENU_GAME_CHAT_TYPE_ADV,
     I_MENU_GAME_CHAT_TYPE_COLOR,
     I_MENU_GAME_CHAT_TYPE_TEXTURE,
     I_MENU_GAME_CHAT_TYPE_ADV,
     I_MENU_GAME_CHAT_TYPE_COLOR,
     I_MENU_GAME_CHAT_TYPE_TEXTURE,
+    I_MENU_GAME_PLAYER_INDICATOR,
+    I_MENU_GAME_INDICATOR_NONE,
+    I_MENU_GAME_INDICATOR_OWN,
+    I_MENU_GAME_INDICATOR_ALL,
+    I_MENU_GAME_INDICATOR_STYLE,
+    I_MENU_GAME_INDICATOR_ARROW,
+    I_MENU_GAME_INDICATOR_NAME,
+    I_MENU_GAME_SCALE_FACTOR,
+    I_MENU_GAME_WEAPON_AUTOSWITCH,
 
     I_MENU_VIDEO_RESOLUTION,
     I_MENU_VIDEO_BPP,
     I_MENU_VIDEO_VSYNC,
     I_MENU_VIDEO_FILTER_SKY,
     I_MENU_VIDEO_LEGACY_COMPATIBLE,
 
     I_MENU_VIDEO_RESOLUTION,
     I_MENU_VIDEO_BPP,
     I_MENU_VIDEO_VSYNC,
     I_MENU_VIDEO_FILTER_SKY,
     I_MENU_VIDEO_LEGACY_COMPATIBLE,
+    I_MENU_VIDEO_INTERPOLATION,
     I_MENU_VIDEO_NEED_RESTART,
 
     I_MENU_RESOLUTION_SELECT,
     I_MENU_VIDEO_NEED_RESTART,
 
     I_MENU_RESOLUTION_SELECT,
@@ -239,6 +302,7 @@ type
     I_MENU_SOUND_INACTIVE_SOUNDS_OFF,
     I_MENU_SOUND_ANNOUNCE,
     I_MENU_SOUND_COMPAT,
     I_MENU_SOUND_INACTIVE_SOUNDS_OFF,
     I_MENU_SOUND_ANNOUNCE,
     I_MENU_SOUND_COMPAT,
+    I_MENU_SOUND_CHAT,
     I_MENU_ANNOUNCE_NONE,
     I_MENU_ANNOUNCE_ME,
     I_MENU_ANNOUNCE_MEPLUS,
     I_MENU_ANNOUNCE_NONE,
     I_MENU_ANNOUNCE_ME,
     I_MENU_ANNOUNCE_MEPLUS,
@@ -254,6 +318,17 @@ type
     I_MENU_PLAYER_RED,
     I_MENU_PLAYER_GREEN,
     I_MENU_PLAYER_BLUE,
     I_MENU_PLAYER_RED,
     I_MENU_PLAYER_GREEN,
     I_MENU_PLAYER_BLUE,
+    I_MENU_WEAPON,
+    I_MENU_WEAPON_SWITCH,
+    I_MENU_WEAPON_SWITCH_LINEAR,
+    I_MENU_WEAPON_SWITCH_PREFERENCE,
+    I_MENU_WEAPON_SWITCH_PRIORITY,
+    I_MENU_WEAPON_ALLOW_EMPTY,
+    I_MENU_KASTET_ALLOW,
+    I_MENU_KASTET_ALLOW_BERSERK,
+    I_MENU_KASTET_ALLOW_ALWAYS,
+    I_MENU_WEAPON_PRIORITY_PLAYER_1,
+    I_MENU_WEAPON_PRIORITY_PLAYER_2,
 
     I_MENU_MODEL_INFO,
     I_MENU_MODEL_ANIMATION,
 
     I_MENU_MODEL_INFO,
     I_MENU_MODEL_ANIMATION,
@@ -305,6 +380,8 @@ type
     I_NET_MSG_CLIENT_DONE,
     I_NET_MSG_CLIENT_DISC,
     I_NET_MSG_KICK,
     I_NET_MSG_CLIENT_DONE,
     I_NET_MSG_CLIENT_DISC,
     I_NET_MSG_KICK,
+    I_NET_MSG_PORTS,
+    I_NET_MSG_TIMEOUT_WARN,
 
     I_NET_MAP_DL,
     I_NET_WAD_DL,
 
     I_NET_MAP_DL,
     I_NET_WAD_DL,
@@ -335,10 +412,13 @@ type
     I_NET_SLIST_WAIT,
     I_NET_SLIST_PING_MS,
     I_NET_SLIST_NO_ACCESS,
     I_NET_SLIST_WAIT,
     I_NET_SLIST_PING_MS,
     I_NET_SLIST_NO_ACCESS,
+    I_NET_SLIST_URGENT,
+    I_NET_SLIST_URGENT_CONT,
 
     I_NET_SLIST_FETCH,
     I_NET_SLIST_RETRIEVED,
     I_NET_SLIST_CONN,
 
     I_NET_SLIST_FETCH,
     I_NET_SLIST_RETRIEVED,
     I_NET_SLIST_CONN,
+    I_NET_SLIST_WCONN,
     I_NET_SLIST_DISC,
     I_NET_SLIST_LOST,
     I_NET_SLIST_ERROR,
     I_NET_SLIST_DISC,
     I_NET_SLIST_LOST,
     I_NET_SLIST_ERROR,
@@ -369,6 +449,7 @@ type
     I_PLAYER_NAME,
     I_PLAYER_CHTEAM_RED,
     I_PLAYER_CHTEAM_BLUE,
     I_PLAYER_NAME,
     I_PLAYER_CHTEAM_RED,
     I_PLAYER_CHTEAM_BLUE,
+    I_PLAYER_SECRET,
 
     I_PLAYER_SPECT,
     I_PLAYER_SPECT1,
 
     I_PLAYER_SPECT,
     I_PLAYER_SPECT1,
@@ -483,6 +564,8 @@ type
     I_LOAD_SEND_INFO,
     I_LOAD_WAIT_INFO,
     I_LOAD_DL_RES,
     I_LOAD_SEND_INFO,
     I_LOAD_WAIT_INFO,
     I_LOAD_DL_RES,
+    I_LOAD_HOST,
+    I_LOAD_PORTS,
 
     I_CREDITS_CAP_1,
     I_CREDITS_CAP_2,
 
     I_CREDITS_CAP_1,
     I_CREDITS_CAP_2,
@@ -490,6 +573,7 @@ type
     I_CREDITS_A_1_1,
     I_CREDITS_A_2,
     I_CREDITS_A_2_1,
     I_CREDITS_A_1_1,
     I_CREDITS_A_2,
     I_CREDITS_A_2_1,
+    I_CREDITS_A_2_2,
     I_CREDITS_A_3,
     I_CREDITS_A_3_1,
     I_CREDITS_A_4,
     I_CREDITS_A_3,
     I_CREDITS_A_3_1,
     I_CREDITS_A_4,
@@ -506,12 +590,24 @@ type
     I_MSG_GAMEMODE_CHANGE,
     I_MSG_FRIENDLY_FIRE_ON,
     I_MSG_FRIENDLY_FIRE_OFF,
     I_MSG_GAMEMODE_CHANGE,
     I_MSG_FRIENDLY_FIRE_ON,
     I_MSG_FRIENDLY_FIRE_OFF,
+    I_MSG_FRIENDLY_PROJECT_TRACE_ON,
+    I_MSG_FRIENDLY_PROJECT_TRACE_OFF,
+    I_MSG_FRIENDLY_HIT_TRACE_ON,
+    I_MSG_FRIENDLY_HIT_TRACE_OFF,
+    I_MSG_FRIENDLY_ABSORB_DAMAGE_ON,
+    I_MSG_FRIENDLY_ABSORB_DAMAGE_OFF,
     I_MSG_WEAPONSTAY_ON,
     I_MSG_WEAPONSTAY_OFF,
     I_MSG_ALLOWEXIT_ON,
     I_MSG_ALLOWEXIT_OFF,
     I_MSG_ALLOWMON_ON,
     I_MSG_ALLOWMON_OFF,
     I_MSG_WEAPONSTAY_ON,
     I_MSG_WEAPONSTAY_OFF,
     I_MSG_ALLOWEXIT_ON,
     I_MSG_ALLOWEXIT_OFF,
     I_MSG_ALLOWMON_ON,
     I_MSG_ALLOWMON_OFF,
+    I_MSG_ALLOWDROPFLAG_ON,
+    I_MSG_ALLOWDROPFLAG_OFF,
+    I_MSG_THROWFLAG_ON,
+    I_MSG_THROWFLAG_OFF,
+    I_MSG_DMKEYS_ON,
+    I_MSG_DMKEYS_OFF,
     I_MSG_BOTSVSPLAYERS_ON,
     I_MSG_BOTSVSPLAYERS_OFF,
     I_MSG_BOTSVSMONSTERS_ON,
     I_MSG_BOTSVSPLAYERS_ON,
     I_MSG_BOTSVSPLAYERS_OFF,
     I_MSG_BOTSVSMONSTERS_ON,
@@ -533,11 +629,13 @@ type
     I_MSG_NO_WAD,
     I_MSG_NO_MAPS,
     I_MSG_NO_MAP,
     I_MSG_NO_WAD,
     I_MSG_NO_MAPS,
     I_MSG_NO_MAP,
+    I_MSG_NO_MAP_FALLBACK,
     I_MSG_NO_MONSTER,
     I_MSG_SCORE_LIMIT,
     I_MSG_TIME_LIMIT,
     I_MSG_LIVES,
     I_MSG_WARMUP,
     I_MSG_NO_MONSTER,
     I_MSG_SCORE_LIMIT,
     I_MSG_TIME_LIMIT,
     I_MSG_LIVES,
     I_MSG_WARMUP,
+    I_MSG_SPAWNINVUL,
     I_MSG_WARMUP_START,
     I_MSG_NEXTMAP_SET,
     I_MSG_NEXTMAP_UNSET,
     I_MSG_WARMUP_START,
     I_MSG_NEXTMAP_SET,
     I_MSG_NEXTMAP_UNSET,
@@ -546,10 +644,13 @@ type
     I_MSG_NOT_DEBUG,
     I_MSG_GM_UNAVAIL,
     I_MSG_SERVERONLY,
     I_MSG_NOT_DEBUG,
     I_MSG_GM_UNAVAIL,
     I_MSG_SERVERONLY,
+    I_MSG_NOT_NETGAME,
     I_MSG_NOCLIENTS,
     I_MSG_UNBAN_OK,
     I_MSG_UNBAN_FAIL,
 
     I_MSG_NOCLIENTS,
     I_MSG_UNBAN_OK,
     I_MSG_UNBAN_FAIL,
 
+    I_MSG_BAD_SAVE_VERSION,
+
     I_TEXTURE_ENDPIC,
 
     I_VERSION,
     I_TEXTURE_ENDPIC,
 
     I_VERSION,
@@ -696,6 +797,8 @@ const
                                        'Âñåãî ìîíñòðîâ óáèòî:'),
     ('GAME SECRETS TOTAL',             'Total secrets found:',
                                        'Âñåãî ñåêðåòîâ íàéäåíî:'),
                                        'Âñåãî ìîíñòðîâ óáèòî:'),
     ('GAME SECRETS TOTAL',             'Total secrets found:',
                                        'Âñåãî ñåêðåòîâ íàéäåíî:'),
+    ('GAME WARMUP',                    'Warmup',
+                                       'Ïîäãîòîâêà'),
 
     ('GAME CHEAT GODMODE',             'MACLEOD',
                                        'ÃÎÐÅÖ'),
 
     ('GAME CHEAT GODMODE',             'MACLEOD',
                                        'ÃÎÐÅÖ'),
@@ -736,6 +839,31 @@ const
     ('GAME CHEAT AUTOMAP',             'ID2DT',
                                        'ID2DT'),
 
     ('GAME CHEAT AUTOMAP',             'ID2DT',
                                        'ID2DT'),
 
+    ('GAME WEAPON0',                   'Fist',
+                                       'Êàñòåò'),
+    ('GAME WEAPON1',                   'Chainsaw',
+                                       'Áåíçîïèëà'),
+    ('GAME WEAPON2',                   'Pistol',
+                                       'Ïèñòîëåò'),
+    ('GAME WEAPON3',                   'Shotgun',
+                                       'Äðîáîâèê'),
+    ('GAME WEAPON4',                   'Super Shotgun',
+                                       'Äâóñòâîëêà'),
+    ('GAME WEAPON5',                   'Chaingun',
+                                       'Ïóëåì¸ò'),
+    ('GAME WEAPON6',                   'Rocket Launcher',
+                                       'Ðàêåòíèöà'),
+    ('GAME WEAPON7',                   'Plasma Gun',
+                                       'Ïëàçìàãàí'),
+    ('GAME WEAPON8',                   'BFG9000',
+                                       'BFG9000'),
+    ('GAME WEAPON9',                   'Super Chaingun',
+                                       'Ñóïåðïóëåì¸ò'),
+    ('GAME WEAPON10',                  'Flamethrower',
+                                       'Îãíåì¸ò'),
+    ('GAME WEAPON BERSERK',            'Berserk',
+                                       'Áåðñåðê'),                                       
+
     ('MENU START GAME',                'Start Game',
                                        'ÍÀ×ÀÒÜ ÈÃÐÓ'),
     ('MENU MAIN MENU',                 'Menu',
     ('MENU START GAME',                'Start Game',
                                        'ÍÀ×ÀÒÜ ÈÃÐÓ'),
     ('MENU MAIN MENU',                 'Menu',
@@ -832,6 +960,20 @@ const
                                        'Æèçíè:'),
     ('MENU TEAM DAMAGE',               'Friendly Fire:',
                                        'Óðîí ñâîèõ:'),
                                        'Æèçíè:'),
     ('MENU TEAM DAMAGE',               'Friendly Fire:',
                                        'Óðîí ñâîèõ:'),
+    ('MENU TEAM HIT',                  'Hit friendlies with:',
+                                       'Ïîïàäàíèÿ ïî ñâîèì:'),
+    ('MENU TEAM HIT BOTH',             'Everything',
+                                       'Ïóëÿìè è ñíàðÿäàìè'),
+    ('MENU TEAM HIT TRACE',            'Hitscan only',
+                                       'Òîëüêî ïóëÿìè'),
+    ('MENU TEAM HIT PROJECTILE',       'Projectiles only',
+                                       'Òîëüêî ñíàðÿäàìè'),
+    ('MENU TEAM HIT NONE',             'Nothing',
+                                       'Íè÷åì'),
+    ('MENU ITEM RESPAWN TIME',         'Item respawn time:',
+                                       'Âðåìÿ ðåñïàâíà ïðåäìåòîâ:'),
+    ('MENU DEATHMATCH KEYS',           'Give all keys in DM:',
+                                       'Âñå êëþ÷è â DM:'),
     ('MENU ENABLE EXITS',              'Enable Exit:',
                                        'Âêëþ÷èòü âûõîä:'),
     ('MENU WEAPONS STAY',              'Weapons stay:',
     ('MENU ENABLE EXITS',              'Enable Exit:',
                                        'Âêëþ÷èòü âûõîä:'),
     ('MENU WEAPONS STAY',              'Weapons stay:',
@@ -846,6 +988,10 @@ const
                                        'Ìîíñòðîâ'),
     ('MENU BOTS VS ALL',               'Everybody',
                                        'Âñåõ'),
                                        'Ìîíñòðîâ'),
     ('MENU BOTS VS ALL',               'Everybody',
                                        'Âñåõ'),
+    ('MENU FLAG DROP',                 'Flag dropping',
+                                       'Âûáðàñûâàíèå ôëàãà'),
+    ('MENU FLAG THROW',                'Yes, with force',
+                                       'Äà, ñ óñêîðåíèåì'),
 
     ('MENU MAP WAD',                   'Select WAD:',
                                        'Âûáîð WAD''à:'),
 
     ('MENU MAP WAD',                   'Select WAD:',
                                        'Âûáîð WAD''à:'),
@@ -881,26 +1027,49 @@ const
     ('MENU INTER KPM',                 'Kills-per-minute:',
                                        'ÓÁÈÉÑÒ  ÌÈÍÓÒÓ:'),
     ('MENU INTER SECRETS',             'Secrets found:',
     ('MENU INTER KPM',                 'Kills-per-minute:',
                                        'ÓÁÈÉÑÒ  ÌÈÍÓÒÓ:'),
     ('MENU INTER SECRETS',             'Secrets found:',
-                                       'ÍÀØÅË ÑÅÊÐÅÒÎÂ:'),
+                                       'ÍÀبˠÑÅÊÐÅÒÎÂ:'),
     ('MENU INTER NOTICE TAB',          'Press [TAB] to view stats',
                                        'Íàæìèòå [TAB] äëÿ ïðîñìîòðà ñòàòèñòèêè'),
     ('MENU INTER NOTICE MAP',          'Please wait until map change',
                                        'Ïîäîæäèòå, ïîêà ñìåíèòñÿ êàðòà íà ñåðâåðå'),
     ('MENU INTER NOTICE SPACE',        'Press [SPACE] to continue',
                                        'Íàæìèòå [ÏÐÎÁÅË], ÷òîáû ïðîäîëæèòü'),
     ('MENU INTER NOTICE TAB',          'Press [TAB] to view stats',
                                        'Íàæìèòå [TAB] äëÿ ïðîñìîòðà ñòàòèñòèêè'),
     ('MENU INTER NOTICE MAP',          'Please wait until map change',
                                        'Ïîäîæäèòå, ïîêà ñìåíèòñÿ êàðòà íà ñåðâåðå'),
     ('MENU INTER NOTICE SPACE',        'Press [SPACE] to continue',
                                        'Íàæìèòå [ÏÐÎÁÅË], ÷òîáû ïðîäîëæèòü'),
-    ('MENU INTER NOTICE TIME',         '%d seconds till the next round',
-                                       'Îñòàëîñü %d ñåêóíä äî ñëåäóþùåãî ðàóíäà'),
+    ('MENU INTER NOTICE TIME',         '%d sec till the next round',
+                                       'Îñòàëîñü %d ñåê äî ñëåäóþùåãî ðàóíäà'),
     ('MENU LOADING',                   'Loading...',
                                        'Çàãðóçêà...'),
     ('MENU PLAYER 1',                  'Player 1',
                                        'Ïåðâûé èãðîê'),
     ('MENU PLAYER 2',                  'Player 2',
                                        'Âòîðîé èãðîê'),
     ('MENU LOADING',                   'Loading...',
                                        'Çàãðóçêà...'),
     ('MENU PLAYER 1',                  'Player 1',
                                        'Ïåðâûé èãðîê'),
     ('MENU PLAYER 2',                  'Player 2',
                                        'Âòîðîé èãðîê'),
+    ('MENU PLAYER 1 KBD',              'Player 1 Keys',
+                                       'Ïåðâûé èãðîê, êëàâèàòóðà'),
+    ('MENU PLAYER 2 KBD',              'Player 2 Keys',
+                                       'Âòîðîé èãðîê, êëàâèàòóðà'),
+    ('MENU PLAYER 1 ALT',              'Player 1 GAMEPAD',
+                                       'Ïåðâûé èãðîê, GAMEPAD'),
+    ('MENU PLAYER 2 ALT',              'Player 2 GAMEPAD',
+                                       'Âòîðîé èãðîê, GAMEPAD'),
+    ('MENU PLAYER 1 WEAPONS',          'Player 1 Weapons',
+                                       'Ïåðâûé èãðîê, îðóæèå'),
+    ('MENU PLAYER 2 WEAPONS',          'Player 2 Weapons',
+                                       'Âòîðîé èãðîê, îðóæèå'),
 
     ('MENU CONTROL JOYSTICKS',         'Joystick Settings',
                                        'Íàñòðîéêè äæîéñòèêîâ'),
     ('MENU CONTROL DEADZONE',          'Joystick %d Deadzone',
 
     ('MENU CONTROL JOYSTICKS',         'Joystick Settings',
                                        'Íàñòðîéêè äæîéñòèêîâ'),
     ('MENU CONTROL DEADZONE',          'Joystick %d Deadzone',
-                                       'Ìåðòâàÿ çîíà äæîéñòèêà %d'),
+                                       '̸ðòâàÿ çîíà äæîéñòèêà %d'),
+
+    ('MENU CONTROL TOUCH',             'Touchscreen Settings',
+                                       'Íàñòðîéêè ñåíñîðíîãî ýêðàíà'),
+    ('MENU CONTROL TOUCH ALT',         'Alternative layout:',
+                                       'Àëüòåðíàòèâíàÿ ðàñêëàäêà:'),
+    ('MENU CONTROL TOUCH FIRE',        'Shoot Up/Down:',
+                                       'Ñòðåëÿòü ââåðõ/âíèç:'),
+    ('MENU CONTROL TOUCH SIZE',        'Button size:',
+                                       'Ðàçìåð êíîïîê:'),
+    ('MENU CONTROL TOUCH OFFSET',      'Vertical offset:',
+                                       'Âåðòèêàëüíîå ñìåùåíèå:'),
 
     ('MENU CONTROL GLOBAL',            'Global Controls',
                                        'ÎÁÙÅÅ ÓÏÐÀÂËÅÍÈÅ'),
 
     ('MENU CONTROL GLOBAL',            'Global Controls',
                                        'ÎÁÙÅÅ ÓÏÐÀÂËÅÍÈÅ'),
@@ -924,12 +1093,16 @@ const
                                        'Ïðûæîê:'),
     ('MENU CONTROL FIRE',              'Fire:',
                                        'Îãîíü:'),
                                        'Ïðûæîê:'),
     ('MENU CONTROL FIRE',              'Fire:',
                                        'Îãîíü:'),
-    ('MENU CONTROL USE',               'Use:',
+    ('MENU CONTROL USE',               'Use / Open:',
                                        'Èñïîëüçîâàòü:'),
     ('MENU CONTROL NEXT WEAPON',       'Next weapon:',
                                        'Ñëåä. îðóæèå:'),
     ('MENU CONTROL PREV WEAPON',       'Prev weapon:',
                                        'Ïðåä. îðóæèå:'),
                                        'Èñïîëüçîâàòü:'),
     ('MENU CONTROL NEXT WEAPON',       'Next weapon:',
                                        'Ñëåä. îðóæèå:'),
     ('MENU CONTROL PREV WEAPON',       'Prev weapon:',
                                        'Ïðåä. îðóæèå:'),
+    ('MENU CONTROL STRAFE',            'Strafe:',
+                                       'Ëóííàÿ ïîõîäêà:'),
+    ('MENU CONTROL DROPFLAG',          'Drop flag:',
+                                       'Âûáðîñèòü ôëàã:'),
 
     ('MENU COUNT NONE',                'None',
                                        'Íåò'),
 
     ('MENU COUNT NONE',                'None',
                                        'Íåò'),
@@ -992,19 +1165,39 @@ const
                                        'Öâåòíàÿ'),
     ('MENU GAME CHAT TYPE TEXTURE',    'Textured',
                                        'Òåêñòóðà'),
                                        'Öâåòíàÿ'),
     ('MENU GAME CHAT TYPE TEXTURE',    'Textured',
                                        'Òåêñòóðà'),
+    ('MENU GAME PLAYER INDICATOR',     'Player indicator:',
+                                       'Èíäèêàòîð èãðîêà:'),
+    ('MENU GAME INDICATOR NONE',       'None',
+                                       'Íåò'),
+    ('MENU GAME INDICATOR OWN',        'Own',
+                                       'Ñâîé'),
+    ('MENU GAME INDICATOR ALL',        'Own + Teammates',
+                                       'Ñâîé + Ñîþçíèêè'),
+    ('MENU GAME INDICATOR STYLE',      'Indicator Style:',
+                                       'Âèä èíäèêàòîðà:'),
+    ('MENU GAME INDICATOR ARROW',      'Arrow',
+                                       'Ñòðåëêà'),
+    ('MENU GAME INDICATOR NAME',       'Name',
+                                       'Èìÿ'),
+    ('MENU GAME SCALE FACTOR',         'Scale:',
+                                       'Ìàñøòàá:'),
+    ('MENU GAME WEAPON AUTOSWITCH',    'Weapon autoswitch:',
+                                       'Àâòîâûáîð îðóæèÿ:'),
 
     ('MENU VIDEO RESOLUTION',          'Set video mode',
                                        'Óñòàíîâêà âèäåîðåæèìà'),
     ('MENU VIDEO BPP',                 'Color depth:',
                                        'Ãëóáèíà öâåòà:'),
     ('MENU VIDEO VSYNC',               'Vertical sync',
 
     ('MENU VIDEO RESOLUTION',          'Set video mode',
                                        'Óñòàíîâêà âèäåîðåæèìà'),
     ('MENU VIDEO BPP',                 'Color depth:',
                                        'Ãëóáèíà öâåòà:'),
     ('MENU VIDEO VSYNC',               'Vertical sync',
-                                       'Âåðò. ñèíõðîíèçàöèÿ:'),
+                                       'Âåðòèêàëüíàÿ ñèíõðîíèçàöèÿ:'),
     ('MENU VIDEO FILTER SKY',          'Anisotropic sky',
                                        'Ôèëüòðàöèÿ íåáà:'),
     ('MENU VIDEO FILTER SKY',          'Anisotropic sky',
                                        'Ôèëüòðàöèÿ íåáà:'),
-    ('MENU VIDEO LEGACY COMPATIBLE',   'Compatibility with NPOT textures:',
-                                       'Ñîâìåñòèìîñòü ñ NPOT-òåêñòóðàìè:'),
-    ('MENU VIDEO NEED RESTART',        'Video settings will be changed after game restart.',
-                                       'Äàííûå íàñòðîéêè âèäåî âñòóïÿò â ñèëó ïîñëå ïåðåçàïóñêà èãðû.'),
+    ('MENU VIDEO LEGACY COMPATIBLE',   'Force compatibility with NPOT textures:',
+                                       'Ýìóëÿöèÿ NPOT-òåêñòóð:'),
+    ('MENU VIDEO INTERPOLATION',       'Motion interpolation:',
+                                       'Èíòåðïîëÿöèÿ äâèæåíèÿ:'),
+    ('MENU VIDEO NEED RESTART',        'Some video settings will be changed after game restart.',
+                                       'Íåêîòîðûå íàñòðîéêè âèäåî âñòóïÿò â ñèëó ïîñëå ïåðåçàïóñêà èãðû.'),
 
     ('MENU RESOLUTION SELECT',         'SET VIDEO MODE',
                                        'ÓÑÒÀÍÎÂÊÀ ÂÈÄÅÎÐÅÆÈÌÀ'),
 
     ('MENU RESOLUTION SELECT',         'SET VIDEO MODE',
                                        'ÓÑÒÀÍÎÂÊÀ ÂÈÄÅÎÐÅÆÈÌÀ'),
@@ -1021,8 +1214,8 @@ const
                                        'Ãðîìêîñòü ìóçûêè:'),
     ('MENU SOUND SOUND LEVEL',         'Sound volume:',
                                        'Ãðîìêîñòü çâóêà:'),
                                        'Ãðîìêîñòü ìóçûêè:'),
     ('MENU SOUND SOUND LEVEL',         'Sound volume:',
                                        'Ãðîìêîñòü çâóêà:'),
-    ('MENU SOUND MAX SIM SOUNDS',      'Similar Sound FX amount:',
-                                       'Êîë-âî îäíîãî çâóêà:'),
+    ('MENU SOUND MAX SIM SOUNDS',      'Similar sounds limit:',
+                                       'Ëèìèò îäíîãî çâóêà:'),
     ('MENU SOUND INACTIVE SOUNDS',     'Window inactive:',
                                        'Îêíî íåàêòèâíî:'),
     ('MENU SOUND INACTIVE SOUNDS ON',  'Play sounds',
     ('MENU SOUND INACTIVE SOUNDS',     'Window inactive:',
                                        'Îêíî íåàêòèâíî:'),
     ('MENU SOUND INACTIVE SOUNDS ON',  'Play sounds',
@@ -1033,6 +1226,8 @@ const
                                        'Îáúÿâëåíèÿ:'),
     ('MENU SOUND COMPAT',              'Sound FX set:',
                                        'Íàáîð çâóêîâ:'),
                                        'Îáúÿâëåíèÿ:'),
     ('MENU SOUND COMPAT',              'Sound FX set:',
                                        'Íàáîð çâóêîâ:'),
+    ('MENU SOUND CHAT',                'Enable chat speech:',
+                                       'Îçâó÷èâàòü ÷àò:'),
     ('MENU ANNOUNCE NONE',             'None',
                                        'Íåò'),
     ('MENU ANNOUNCE ME',               'Only own announcers',
     ('MENU ANNOUNCE NONE',             'None',
                                        'Íåò'),
     ('MENU ANNOUNCE ME',               'Only own announcers',
@@ -1059,10 +1254,31 @@ const
     ('MENU PLAYER RED',                'Red:',
                                        'Êðàñíûé:'),
     ('MENU PLAYER GREEN',              'Green:',
     ('MENU PLAYER RED',                'Red:',
                                        'Êðàñíûé:'),
     ('MENU PLAYER GREEN',              'Green:',
-                                       'Çåëåíûé:'),
+                                       'Çåë¸íûé:'),
     ('MENU PLAYER BLUE',               'Blue:',
                                        'Ñèíèé:'),
     ('MENU PLAYER BLUE',               'Blue:',
                                        'Ñèíèé:'),
-
+    ('MENU WEAPON',                    'Weapon preferences',
+                                       'Íàñòðîèòü îðóæèå'),
+    ('MENU WEAPON SWITCH',             'Weapon autoswitch',
+                                       'Àâòîâûáîð îðóæèÿ'),
+    ('MENU WEAPON SWITCH LINEAR',      'On pickup',
+                                       'Ïðè ïîäáîðå'),  
+    ('MENU WEAPON SWITCH PREFERENCE',  'By priority',
+                                       'Ïî ïðèîðèòåòó'),
+    ('MENU WEAPON SWITCH PRIORITY',    'Weapon priority',
+                                       'Ïðèîðèòåòíîñòü îðóæèÿ'),
+    ('MENU WEAPON ALLOW EMPTY',        'Skip empty weapons',
+                                       'Ïðîïóñêàòü ïóñòîå îðóæèå'),
+    ('MENU KASTET ALLOW',              'Switch to fist',
+                                       'Âûáèðàòü êàñòåò'),
+    ('MENU KASTET ALLOW BERSERK',      'Only with berserk',
+                                       'Åñòü áåðñåðê'),
+    ('MENU KASTET ALLOW ALWAYS',       'Always',
+                                       'Âñåãäà'),
+    ('MENU WEAPON PRIORITY PLAYER 1',  'Player 1 Priority',
+                                       'Ïðèîðèòåò îðóæèÿ (1)'),
+    ('MENU WEAPON PRIORITY PLAYER 2',  'Player 2 Priority',
+                                       'Ïðèîðèòåò îðóæèÿ (2)'),                                                                                                                                                                                                                                                                                   
     ('MENU MODEL INFO',                'Model info',
                                        'Èíôîðìàöèÿ î ìîäåëè'),
     ('MENU MODEL ANIMATION',           'Change animation',
     ('MENU MODEL INFO',                'Model info',
                                        'Èíôîðìàöèÿ î ìîäåëè'),
     ('MENU MODEL ANIMATION',           'Change animation',
@@ -1070,7 +1286,7 @@ const
     ('MENU MODEL CHANGE WEAPON',       'Change weapon',
                                        'Ñìåíèòü îðóæèå'),
     ('MENU MODEL ROTATE',              'Reflect model',
     ('MENU MODEL CHANGE WEAPON',       'Change weapon',
                                        'Ñìåíèòü îðóæèå'),
     ('MENU MODEL ROTATE',              'Reflect model',
-                                       'Ðàçâåðíóòü ìîäåëü'),
+                                       'Ðàçâåðíóòü ìîäåëü'),                             
     ('MENU MODEL NAME',                'Name:',
                                        'Èìÿ:'),
     ('MENU MODEL AUTHOR',              'Author:',
     ('MENU MODEL NAME',                'Name:',
                                        'Èìÿ:'),
     ('MENU MODEL AUTHOR',              'Author:',
@@ -1148,7 +1364,7 @@ const
     ('NET MSG HOST ADD',               'Client #%d added. Awaiting info...',
                                        'Äîáàâëåí êëèåíò ¹%d. Æäåì îòâåòà...'),
     ('NET MSG HOST DISC',              'Client #%d disconnected.',
     ('NET MSG HOST ADD',               'Client #%d added. Awaiting info...',
                                        'Äîáàâëåí êëèåíò ¹%d. Æäåì îòâåòà...'),
     ('NET MSG HOST DISC',              'Client #%d disconnected.',
-                                       'Êëèåíò ¹%d îòêëþ÷åí.'),
+                                       'Êëèåíò ¹%d îòêëþ÷¸í.'),
     ('NET MSG CLIENT CONN',            'Trying to connect to %s:%d...',
                                        'Ïûòàåìñÿ ñîåäèíèòüñÿ ñ %s:%d...'),
     ('NET MSG CLIENT DONE',            'Connected!',
     ('NET MSG CLIENT CONN',            'Trying to connect to %s:%d...',
                                        'Ïûòàåìñÿ ñîåäèíèòüñÿ ñ %s:%d...'),
     ('NET MSG CLIENT DONE',            'Connected!',
@@ -1157,6 +1373,10 @@ const
                                        'Îòêëþ÷åíèå âûïîëíåíî.'),
     ('NET MSG KICK',                   'You were dropped from the game! Reason: ',
                                        'Âàñ âûáðîñèëî ñ ñåðâåðà! Ïðè÷èíà: '),
                                        'Îòêëþ÷åíèå âûïîëíåíî.'),
     ('NET MSG KICK',                   'You were dropped from the game! Reason: ',
                                        'Âàñ âûáðîñèëî ñ ñåðâåðà! Ïðè÷èíà: '),
+    ('NET MSG PORTS',                  'Make sure ports %d and %d are forwarded on the server.',
+                                       'Ñïðîñèòå àäìèíà, ïðîáðîñèë ëè îí ïîðòû %d è %d íà ðîóòåðå.'),
+    ('NET MSG TIMEOUT WARN',           'Connection is taking too long.',
+                                       'Ñåðâåð íå îòâå÷àåò óæå äîâîëüíî äîëãî.'),
 
     ('NET MAP DL',                     'Map %s not found. Downloading from the server...',
                                        'Êàðòà %s íå íàéäåíà. Ñêà÷èâàåì ñ ñåðâåðà...'),
 
     ('NET MAP DL',                     'Map %s not found. Downloading from the server...',
                                        'Êàðòà %s íå íàéäåíà. Ñêà÷èâàåì ñ ñåðâåðà...'),
@@ -1213,17 +1433,23 @@ const
                                        ' ìñ'),
     ('NET SLIST NO ACCESS',            'N/A',
                                        'Í/Ä'),
                                        ' ìñ'),
     ('NET SLIST NO ACCESS',            'N/A',
                                        'Í/Ä'),
+    ('NET SLIST URGENT',               'Message from master server',
+                                       'Ñîîáùåíèå ñ ìàñòåðñåðâåðà'),
+    ('NET SLIST URGENT CONT',          'Press [ENTER] to continue',
+                                       'Íàæìèòå [ENTER] äëÿ ïðîäîëæåíèÿ'),
 
     ('NET SLIST FETCH',                'Fetching server list...',
                                        'Ïîëó÷àåì ñïèñîê ñåðâåðîâ...'),
 
     ('NET SLIST FETCH',                'Fetching server list...',
                                        'Ïîëó÷àåì ñïèñîê ñåðâåðîâ...'),
-    ('NET SLIST RETRIEVED',            '%d servers retrieved.',
-                                       'Ïîëó÷åíî ñåðâåðîâ: %d'),
-    ('NET SLIST CONN',                 'Connected to masterserver.',
-                                       'Ïîäêëþ÷èëèñü ê ìàñòåðñåðâåðó.'),
-    ('NET SLIST DISC',                 'Disconnected from masterserver.',
-                                       'Îòêëþ÷èëèñü îò ìàñòåðñåðâåðà.'),
-    ('NET SLIST LOST',                 'Lost connection with masterserver.',
-                                       'Ñîåäèíåíèå ñ ìàñòåðñåðâåðîì ïîòåðÿíî.'),
+    ('NET SLIST RETRIEVED',            '%d servers retrieved from [%s].',
+                                       'Ïîëó÷åíî ñåðâåðîâ: %d, èñòî÷íèê: [%s]'),
+    ('NET SLIST CONN',                 'Connected to masterserver [%s].',
+                                       'Ïîäêëþ÷èëèñü ê ìàñòåðñåðâåðó [%s].'),
+    ('NET SLIST WCONN',                'Connecting to masterserver [%s]...',
+                                       'Ïîäêëþ÷àåìñÿ ê ìàñòåðñåðâåðó [%s]...'),
+    ('NET SLIST DISC',                 'Disconnected from masterserver [%s].',
+                                       'Îòêëþ÷èëèñü îò ìàñòåðñåðâåðà [%s].'),
+    ('NET SLIST LOST',                 'Lost connection with masterserver [%s].',
+                                       'Ñîåäèíåíèå ñ ìàñòåðñåðâåðîì ïîòåðÿíî [%s].'),
     ('NET SLIST ERROR',                'Could not connect to masterserver.',
                                        'Íå óäàëîñü ñîåäèíèòüñÿ ñ ìàñòåðñåðâåðîì.'),
 
     ('NET SLIST ERROR',                'Could not connect to masterserver.',
                                        'Íå óäàëîñü ñîåäèíèòüñÿ ñ ìàñòåðñåðâåðîì.'),
 
@@ -1267,7 +1493,7 @@ const
     ('PLAYER LEAVE',                   '%s left the game.',
                                        '%s ïîêèíóë èãðó.'),
     ('PLAYER KICK',                    '%s was kicked by admin.',
     ('PLAYER LEAVE',                   '%s left the game.',
                                        '%s ïîêèíóë èãðó.'),
     ('PLAYER KICK',                    '%s was kicked by admin.',
-                                       '%s áûë îòêëþ÷åí àäìèíèñòðàòîðîì.'),
+                                       '%s áûë îòêëþ÷¸í àäìèíèñòðàòîðîì.'),
     ('PLAYER BAN',                     '%s was banned by admin.',
                                        '%s áûë çàáàíåí àäìèíèñòðàòîðîì.'),
     ('PLAYER NAME',                    '%s is now known as %s.',
     ('PLAYER BAN',                     '%s was banned by admin.',
                                        '%s áûë çàáàíåí àäìèíèñòðàòîðîì.'),
     ('PLAYER NAME',                    '%s is now known as %s.',
@@ -1276,6 +1502,8 @@ const
                                        '%s ïåðåøåë â Êðàñíóþ êîìàíäó.'),
     ('PLAYER CHTEAM BLUE',             '%s is now on Blue.',
                                        '%s ïåðåøåë â Ñèíþþ êîìàíäó.'),
                                        '%s ïåðåøåë â Êðàñíóþ êîìàíäó.'),
     ('PLAYER CHTEAM BLUE',             '%s is now on Blue.',
                                        '%s ïåðåøåë â Ñèíþþ êîìàíäó.'),
+    ('PLAYER SECRET',                  '%s found a secret!',
+                                       '%s íàø¸ë ñåêðåò!'),
 
     ('PLAYER SPECT',                   'Spectating',
                                        'Íàáëþäåíèå'),
 
     ('PLAYER SPECT',                   'Spectating',
                                        'Íàáëþäåíèå'),
@@ -1294,8 +1522,8 @@ const
                                        '*** %s ñòàùèë %s ôëàã!'),
     ('PLAYER FLAG RETURN',             '*** %s returned the %s flag!',
                                        '*** %s âåðíóë %s ôëàã!'),
                                        '*** %s ñòàùèë %s ôëàã!'),
     ('PLAYER FLAG RETURN',             '*** %s returned the %s flag!',
                                        '*** %s âåðíóë %s ôëàã!'),
-    ('PLAYER FLAG CAPTURE',            '*** %s captured the %s flag! (%s ms)',
-                                       '*** %s ïðèíåñ %s ôëàã! (%s ìñ)'),
+    ('PLAYER FLAG CAPTURE',            '*** %s captured the %s flag! (%s sec)',
+                                       '*** %s ïðèí¸ñ %s ôëàã! (%s ñåê)'),
     ('PLAYER FLAG DROP',               '*** %s dropped the %s flag!',
                                        '*** %s ïîòåðÿë %s ôëàã!'),
     ('PLAYER FLAG RED',                'red',
     ('PLAYER FLAG DROP',               '*** %s dropped the %s flag!',
                                        '*** %s ïîòåðÿë %s ôëàã!'),
     ('PLAYER FLAG RED',                'red',
@@ -1354,7 +1582,7 @@ const
                                        '%s ÊÎÌÀÍÄÀ ÏÎÒÅÐßËÀ Î×ÊÈ'),
 
     ('MESSAGE VOTE INPROGRESS',        'A vote is already in progress for "%s".',
                                        '%s ÊÎÌÀÍÄÀ ÏÎÒÅÐßËÀ Î×ÊÈ'),
 
     ('MESSAGE VOTE INPROGRESS',        'A vote is already in progress for "%s".',
-                                       'Óæå èäåò ãîëîñîâàíèå çà êîìàíäó "%s".'),
+                                       'Óæå èä¸ò ãîëîñîâàíèå çà êîìàíäó "%s".'),
     ('MESSAGE VOTE STARTED',           '%s called a vote for "%s".'#10'%d votes are required.',
                                        '%s íà÷àë ãîëîñîâàíèå çà êîìàíäó "%s".'#10'Äëÿ âûïîëíåíèÿ êîìàíäû òðåáóåòñÿ ãîëîñîâ: %d.'),
     ('MESSAGE VOTE PASSED',            'Vote passed. Executing "%s" in 5 seconds.',
     ('MESSAGE VOTE STARTED',           '%s called a vote for "%s".'#10'%d votes are required.',
                                        '%s íà÷àë ãîëîñîâàíèå çà êîìàíäó "%s".'#10'Äëÿ âûïîëíåíèÿ êîìàíäû òðåáóåòñÿ ãîëîñîâ: %d.'),
     ('MESSAGE VOTE PASSED',            'Vote passed. Executing "%s" in 5 seconds.',
@@ -1386,7 +1614,7 @@ const
     ('MONSTER CYBER',                  'Cyberdemon',
                                        'Êèáåðäåìîíîì'),
     ('MONSTER CGUN',                   'Commando',
     ('MONSTER CYBER',                  'Cyberdemon',
                                        'Êèáåðäåìîíîì'),
     ('MONSTER CGUN',                   'Commando',
-                                       'Ïóëåìåò÷èêîì'),
+                                       'Ïóëåì¸ò÷èêîì'),
     ('MONSTER BARON',                  'Hell Baron',
                                        'Áàðîíîì àäà'),
     ('MONSTER KNIGHT',                 'Hell Knight',
     ('MONSTER BARON',                  'Hell Baron',
                                        'Áàðîíîì àäà'),
     ('MONSTER KNIGHT',                 'Hell Knight',
@@ -1492,8 +1720,12 @@ const
                                        'Îòñûëêà èíôîðìàöèè'),
     ('LOAD WAIT INFO',                 'Awaiting response ([ESC] to abort)',
                                        'Îæèäàíèå îòâåòà ([ESC] - îòìåíèòü)'),
                                        'Îòñûëêà èíôîðìàöèè'),
     ('LOAD WAIT INFO',                 'Awaiting response ([ESC] to abort)',
                                        'Îæèäàíèå îòâåòà ([ESC] - îòìåíèòü)'),
-    ('LOAD DL RES',                    'Downloading resources',
-                                       'Ñêà÷èâàíèå ðåñóðñîâ'),
+    ('LOAD DL RES',                    'Downloading resources...',
+                                       'Ñêà÷èâàíèå ðåñóðñîâ...'),
+    ('LOAD HOST',                      'Initializing server...',
+                                       'Èíèíöèàëèçàöèÿ ñåðâåðà...'),
+    ('LOAD PORTS',                     'Forwarding ports via UPnP...',
+                                       'Ïðîáðîñ ïîðòîâ ÷åðåç UPnP...'),
 
     ('CREDITS CAP 1',                  'Doom 2D: Forever',
                                        'Doom 2D: Forever'),
 
     ('CREDITS CAP 1',                  'Doom 2D: Forever',
                                        'Doom 2D: Forever'),
@@ -1505,8 +1737,10 @@ const
                                        'rs.falcon'),
     ('CREDITS A 2',                    'Programmers:',
                                        'Ïðîãðàììèñòû:'),
                                        'rs.falcon'),
     ('CREDITS A 2',                    'Programmers:',
                                        'Ïðîãðàììèñòû:'),
-    ('CREDITS A 2 1',                  'rs.falcon, PSS, PrimuS, Stas''M, ZURG, OutCast',
-                                       'rs.falcon, PSS, PrimuS, Stas''M, ZURG, OutCast'),
+    ('CREDITS A 2 1',                  'rs.falcon, PSS, PrimuS, Stas''M,',
+                                       'rs.falcon, PSS, PrimuS, Stas''M,'),
+    ('CREDITS A 2 2',                  'ZURG, OutCast, ketmar, DeaDDooMER',
+                                       'ZURG, OutCast, ketmar, DeaDDooMER'),
     ('CREDITS A 3',                    'Artists:',
                                        'Õóäîæíèêè:'),
     ('CREDITS A 3 1',                  'Jabberwock, Firehawk',
     ('CREDITS A 3',                    'Artists:',
                                        'Õóäîæíèêè:'),
     ('CREDITS A 3 1',                  'Jabberwock, Firehawk',
@@ -1520,11 +1754,11 @@ const
     ('CREDITS CLO 1',                  '- Prikol Software for Doom 2D',
                                        '- Prikol Software çà Doom 2D'),
     ('CREDITS CLO 2',                  '- id Software for starting it all',
     ('CREDITS CLO 1',                  '- Prikol Software for Doom 2D',
                                        '- Prikol Software çà Doom 2D'),
     ('CREDITS CLO 2',                  '- id Software for starting it all',
-                                       '- id Software, áåç êîãî íè÷åãî áû íå áûëî'),
+                                       '- id Software, êîòîðûå çàâàðèëè ýòó êàøó'),
     ('CREDITS CLO 3',                  '- Everyone who helped our project',
                                        '- Âñåõ, êòî ïîìîãàë íàøåìó ïðîåêòó'),
     ('CREDITS CLO 3',                  '- Everyone who helped our project',
                                        '- Âñåõ, êòî ïîìîãàë íàøåìó ïðîåêòó'),
-    ('CREDITS CLO 4',                  'www.doom2d.org, 2003-2016',
-                                       'www.doom2d.org, 2003-2016'),
+    ('CREDITS CLO 4',                  'www.doom2d.org, 2003-2022',
+                                       'www.doom2d.org, 2003-2022'),
 
     ('MSG SHOW FPS ON',                'FPS counter enabled',
                                        'FPS ïîêàçûâàþòñÿ'),
 
     ('MSG SHOW FPS ON',                'FPS counter enabled',
                                        'FPS ïîêàçûâàþòñÿ'),
@@ -1535,21 +1769,45 @@ const
     ('MSG GAMEMODE CHANGE',            'Game Mode: %s (switch to %s next round)',
                                        'Ðåæèì èãðû: %s (áóäåò %s â ñëåäóþùåì ðàóíäå)'),
     ('MSG FRIENDLY FIRE ON',           'Friendly Fire enabled',
     ('MSG GAMEMODE CHANGE',            'Game Mode: %s (switch to %s next round)',
                                        'Ðåæèì èãðû: %s (áóäåò %s â ñëåäóþùåì ðàóíäå)'),
     ('MSG FRIENDLY FIRE ON',           'Friendly Fire enabled',
-                                       'Óðîí ñâîèõ âêëþ÷åí'),
+                                       'Óðîí ñâîèõ âêëþ÷¸í'),
     ('MSG FRIENDLY FIRE OFF',          'Friendly Fire disabled',
                                        'Óðîíà ñâîèõ íåò'),
     ('MSG FRIENDLY FIRE OFF',          'Friendly Fire disabled',
                                        'Óðîíà ñâîèõ íåò'),
+    ('MSG FRIENDLY PROJECT TRACE ON',  'Projectile tracing enabled',
+                                       'Ñíàðÿäû áóäóò ïðîõîäèòü ñêâîçü òèììåéòîâ'),
+    ('MSG FRIENDLY PROJECT TRACE OFF', 'Projectile tracing disabled',
+                                       'Ñíàðÿäû áóäóò ñòàëêèâàòüñÿ ñ òèììåéòàìè'),
+    ('MSG FRIENDLY HIT TRACE ON',      'Hit tracing enabled',
+                                       'Ïóëè áóäóò ïðîõîäèòü ñêâîçü òèììåéòîâ'),
+    ('MSG FRIENDLY HIT TRACE OFF',     'Hit tracing disabled',
+                                       'Ïóëè áóäóò ñòàëêèâàòüñÿ ñ òèììåéòàìè'),
+    ('MSG FRIENDLY ABSORB DAMAGE ON',  'Damage absorbing by teammates enabled',
+                                       'Òèììåéòû áóäóò ïîãëîùàòü ÷àñòü óðîíà'),
+    ('MSG FRIENDLY ABSORB DAMAGE OFF', 'Damage absorbing by teammates disabled',
+                                       'Óðîí ñêâîçü òèììåéòîâ áóäåò ñòàíäàðòíûì'),
     ('MSG WEAPONSTAY ON',              'Weapon Stay enabled',
     ('MSG WEAPONSTAY ON',              'Weapon Stay enabled',
-                                       'Îðóæèå îñòàåòñÿ ïîñëå ïîäáîðà'),
+                                       'Îðóæèå îñòà¸òñÿ ïîñëå ïîäáîðà'),
     ('MSG WEAPONSTAY OFF',             'Weapon Stay disabled',
                                        'Îðóæèå èñ÷åçàåò ïîñëå ïîäáîðà'),
     ('MSG ALLOWEXIT ON',               'Exit enabled*',
     ('MSG WEAPONSTAY OFF',             'Weapon Stay disabled',
                                        'Îðóæèå èñ÷åçàåò ïîñëå ïîäáîðà'),
     ('MSG ALLOWEXIT ON',               'Exit enabled*',
-                                       'Âûõîä ñ êàðòû ðàçðåøåí*'),
+                                       'Âûõîä ñ êàðòû ðàçðåø¸í*'),
     ('MSG ALLOWEXIT OFF',              'Exit disabled*',
     ('MSG ALLOWEXIT OFF',              'Exit disabled*',
-                                       'Âûõîä ñ êàðòû çàïðåùåí*'),
+                                       'Âûõîä ñ êàðòû çàïðåù¸í*'),
     ('MSG ALLOWMON ON',                'Monsters in DM enabled*',
                                        'Ìîíñòðû â DM âêëþ÷åíû*'),
     ('MSG ALLOWMON OFF',               'Monsters in DM disabled*',
                                        'Ìîíñòðû â DM âûêëþ÷åíû*'),
     ('MSG ALLOWMON ON',                'Monsters in DM enabled*',
                                        'Ìîíñòðû â DM âêëþ÷åíû*'),
     ('MSG ALLOWMON OFF',               'Monsters in DM disabled*',
                                        'Ìîíñòðû â DM âûêëþ÷åíû*'),
+    ('MSG ALLOWDROPFLAG ON',           'dropflag command enabled',
+                                       'Âûáðàñûâàíèå ôëàãà ïî êîìàíäå dropflag âêëþ÷åíî'),
+    ('MSG ALLOWDROPFLAG OFF',          'dropflag command disabled',
+                                       'Âûáðàñûâàíèå ôëàãà ïî êîìàíäå dropflag âûêëþ÷åíî'),
+    ('MSG THROWFLAG ON',               'Dropped flags inherit player momentum',
+                                       'Ôëàã âûáðàñûâàåòñÿ ñ óñêîðåíèåì'),
+    ('MSG THROWFLAG OFF',              'Dropped flags fall straight down',
+                                       'Ôëàã âûáðàñûâàåòñÿ ñòðîãî âíèç'),
+    ('MSG DMKEYS ON',                  'Spawning with all keys in DM enabled',
+                                       'Ðåñïàâí ñî âñåìè êëþ÷àìè â DM âêëþ÷åí'),
+    ('MSG DMKEYS OFF',                 'Spawning with all keys in DM disabled',
+                                       'Ðåñïàâí ñî âñåìè êëþ÷àìè â DM âûêëþ÷åí'),
     ('MSG BOTSVSPLAYERS ON',           'Bots attack players',
                                        'Áîòû ïðîòèâ èãðîêîâ'),
     ('MSG BOTSVSPLAYERS OFF',          'Bots ignore players',
     ('MSG BOTSVSPLAYERS ON',           'Bots attack players',
                                        'Áîòû ïðîòèâ èãðîêîâ'),
     ('MSG BOTSVSPLAYERS OFF',          'Bots ignore players',
@@ -1592,6 +1850,8 @@ const
                                        'WAD ôàéë "%s" íå ñîäåðæèò êàðò!'),
     ('MSG NO MAP',                     'Map "%s" doesn''t exist!',
                                        'Êàðòà "%s" íå íàéäåíà!'),
                                        'WAD ôàéë "%s" íå ñîäåðæèò êàðò!'),
     ('MSG NO MAP',                     'Map "%s" doesn''t exist!',
                                        'Êàðòà "%s" íå íàéäåíà!'),
+    ('MSG NO MAP FALLBACK',            'Map "%s" doesn''t exist in this WAD, looking for %s.',
+                                       'Êàðòà "%s" íå íàéäåíà â ýòîì WAD ôàéëå, èùó %s.'),
     ('MSG NO MONSTER',                 'Wrong monster type: "%s"!',
                                        '"%s" - íåò òàêîãî ìîíñòðà!'),
     ('MSG SCORE LIMIT',                'Score Limit is %d',
     ('MSG NO MONSTER',                 'Wrong monster type: "%s"!',
                                        '"%s" - íåò òàêîãî ìîíñòðà!'),
     ('MSG SCORE LIMIT',                'Score Limit is %d',
@@ -1600,24 +1860,28 @@ const
                                        'Ëèìèò âðåìåíè - %d:%.2d:%.2d'),
     ('MSG LIVES',                      'Max lives: %d',
                                        'Ìàêñ. æèçíåé ó èãðîêîâ: %d'),
                                        'Ëèìèò âðåìåíè - %d:%.2d:%.2d'),
     ('MSG LIVES',                      'Max lives: %d',
                                        'Ìàêñ. æèçíåé ó èãðîêîâ: %d'),
-    ('MSG WARMUP',                     'Warmup time: %d seconds*',
-                                       'Âðåìÿ íà ïîäãîòîâêó ê èãðå: %d ñåêóíä*'),
-    ('MSG WARMUP START',               '%d seconds until round start.',
-                                       '%d ñåêóíä äî íà÷àëà ðàóíäà.'),
+    ('MSG WARMUP',                     'Warmup time: %d sec*',
+                                       'Âðåìÿ íà ïîäãîòîâêó ê èãðå: %d ñåê*'),
+    ('MSG SPAWNINVUL',                 'Spawn invulnerability time: %d sec*',
+                                       'Íåóÿçâèìîñòü ïîñëå ðåñïàóíà: %d ñåê*'),
+    ('MSG WARMUP START',               '%d sec until round start.',
+                                       '%d ñåê äî íà÷àëà ðàóíäà.'),
     ('MSG NEXTMAP SET',                'Next map: %s',
                                        'Ñëåäóþùàÿ êàðòà: %s'),
     ('MSG NEXTMAP UNSET',              'Next map is not set.',
                                        'Ñëåäóþùàÿ êàðòà íå çàäàíà.'),
     ('MSG ONMAPCHANGE',                '* Changes to this variable will be applied upon next map change',
                                        '* Èçìåíåíèÿ âñòóïÿò â ñèëó ïîñëå ñëåäóþùåé ñìåíû êàðòû'),
     ('MSG NEXTMAP SET',                'Next map: %s',
                                        'Ñëåäóþùàÿ êàðòà: %s'),
     ('MSG NEXTMAP UNSET',              'Next map is not set.',
                                        'Ñëåäóþùàÿ êàðòà íå çàäàíà.'),
     ('MSG ONMAPCHANGE',                '* Changes to this variable will be applied upon next map change',
                                        '* Èçìåíåíèÿ âñòóïÿò â ñèëó ïîñëå ñëåäóþùåé ñìåíû êàðòû'),
-    ('MSG NOT GAME',                   'Command can be accepted in a game only.',
+    ('MSG NOT GAME',                   'This command is only available in-game.',
                                        'Êîìàíäà ïðèìåíèìà òîëüêî â èãðå.'),
                                        'Êîìàíäà ïðèìåíèìà òîëüêî â èãðå.'),
-    ('MSG NOT DEBUG',                  'Command can be accepted in debug mode only.',
+    ('MSG NOT DEBUG',                  'This command is only available in debug mode.',
                                        'Êîìàíäà ïðèìåíèìà òîëüêî â ðåæèìå îòëàäêè.'),
     ('MSG GM UNAVAIL',                 'This command is unavailable in the current game mode.',
                                        'Êîìàíäà ïðèìåíèìà òîëüêî â ðåæèìå îòëàäêè.'),
     ('MSG GM UNAVAIL',                 'This command is unavailable in the current game mode.',
-                                       'Ýòà êîìàíäà íåäîñòóïíà â òåêóùåì ðåæèìå èãðû.'),
-    ('MSG SERVERONLY',                 'This command is for server only.',
-                                       'Ýòà êîìàíäà äîñòóïíà òîëüêî â ðåæèìå ñåðâåðà.'),
+                                       'Êîìàíäà íåäîñòóïíà â òåêóùåì ðåæèìå èãðû.'),
+    ('MSG SERVERONLY',                 'This command is only available to servers.',
+                                       'Êîìàíäà äîñòóïíà òîëüêî â ðåæèìå ñåðâåðà.'),
+    ('MSG NOT NETGAME',                'This command is unavailable during a net game.',
+                                       'Êîìàíäà íåäîñòóïíà âî âðåìÿ ñåòåâîé èãðû.'),
     ('MSG NOCLIENTS',                  'No clients connected.',
                                        'Íåò ïîäêëþ÷¸ííûõ êëèåíòîâ.'),
     ('MSG UNBAN OK',                   'Client %s was unbanned.',
     ('MSG NOCLIENTS',                  'No clients connected.',
                                        'Íåò ïîäêëþ÷¸ííûõ êëèåíòîâ.'),
     ('MSG UNBAN OK',                   'Client %s was unbanned.',
@@ -1625,6 +1889,9 @@ const
     ('MSG UNBAN FAIL',                 'Client %s not found in the ban list.',
                                        'Êëèåíò %s íå ÷èñëèòñÿ â ñïèñêå çàáàíåíûõ.'),
 
     ('MSG UNBAN FAIL',                 'Client %s not found in the ban list.',
                                        'Êëèåíò %s íå ÷èñëèòñÿ â ñïèñêå çàáàíåíûõ.'),
 
+    ('MSG BAD SAVE VERSION',           'Cannot load saved game. Probably due to invalid save file version.',
+                                       'Íå óäàëîñü çàãðóçèòü ñîõðàíåíèå. Âåðîÿòíî, èç-çà íåâåðíîé âåðñèè ñîõðàíåíèÿ.'),
+
     ('TEXTURE ENDPIC',                 'ENDGAME_EN',
                                        'ENDGAME_RU'),
 
     ('TEXTURE ENDPIC',                 'ENDGAME_EN',
                                        'ENDGAME_RU'),
 
@@ -1648,10 +1915,12 @@ var
   i: LongWord;
 begin
 // Íàçâàíèÿ êëàâèø ïåðåìåùåíèÿ êóðñîðà:
   i: LongWord;
 begin
 // Íàçâàíèÿ êëàâèø ïåðåìåùåíèÿ êóðñîðà:
+  { that was absolitely fucked idea
   e_KeyNames[IK_UP]    := _lc[I_KEY_UP] + ' ' + Chr(30);
   e_KeyNames[IK_LEFT]  := _lc[I_KEY_LEFT] + ' ' + Chr(17);
   e_KeyNames[IK_RIGHT] := _lc[I_KEY_RIGHT] + ' ' + Chr(16);
   e_KeyNames[IK_DOWN]  := _lc[I_KEY_DOWN] + ' ' + Chr(31);
   e_KeyNames[IK_UP]    := _lc[I_KEY_UP] + ' ' + Chr(30);
   e_KeyNames[IK_LEFT]  := _lc[I_KEY_LEFT] + ' ' + Chr(17);
   e_KeyNames[IK_RIGHT] := _lc[I_KEY_RIGHT] + ' ' + Chr(16);
   e_KeyNames[IK_DOWN]  := _lc[I_KEY_DOWN] + ' ' + Chr(31);
+  }
 
 // Èìåíà ìîíñòðîâ â òâîðèòåëüíîì ïàäåæå:
   KilledByMonster[MONSTER_DEMON] := _lc[I_MONSTER_DEMON];
 
 // Èìåíà ìîíñòðîâ â òâîðèòåëüíîì ïàäåæå:
   KilledByMonster[MONSTER_DEMON] := _lc[I_MONSTER_DEMON];
@@ -1780,7 +2049,7 @@ begin
       CloseFile(F);
     end
   else
       CloseFile(F);
     end
   else
-    e_WriteLog('Language file "'+fileName+'" not found!', MSG_WARNING);
+    e_WriteLog('Language file "'+fileName+'" not found!', TMsgType.Warning);
 
   SetupArrays();
 end;
 
   SetupArrays();
 end;