DEADSOFTWARE

gui: improve prefereces dialog
[d2df-editor.git] / src / editor / g_language.pas
index ea8c56292ad54cb666a9c6243520893fc95b95ec..369176e6e1e0b51922e23fa529563ef0a82088a3 100644 (file)
 
 Interface
 
 
 Interface
 
-Uses
-  g_Basic, MAPDEF;
-
-Type
-  TStrings_Locale = (
-    I_NOT_ACCESSIBLE,
-
-    I_ARRAY_BOOL_FALSE,
-    I_ARRAY_BOOL_TRUE,
-
-    I_ARRAY_DIR_LEFT,
-    I_ARRAY_DIR_RIGHT,
-    I_ARRAY_DIR_SAME,
-    I_ARRAY_DIR_REVERSED,
-
-    I_ARRAY_DIRBTN_LEFT,
-    I_ARRAY_DIRBTN_RIGHT,
-    I_ARRAY_DIRBTN_UP,
-    I_ARRAY_DIRBTN_DOWN,
-
-    I_ARRAY_PANEL_WALL,
-    I_ARRAY_PANEL_BACK,
-    I_ARRAY_PANEL_FRONT,
-    I_ARRAY_PANEL_DOOR_OPEN,
-    I_ARRAY_PANEL_DOOR_CLOSE,
-    I_ARRAY_PANEL_STAIR,
-    I_ARRAY_PANEL_WATER,
-    I_ARRAY_PANEL_ACID_1,
-    I_ARRAY_PANEL_ACID_2,
-    I_ARRAY_PANEL_LIFT_UP,
-    I_ARRAY_PANEL_LIFT_DOWN,
-    I_ARRAY_PANEL_LIFT_LEFT,
-    I_ARRAY_PANEL_LIFT_RIGHT,
-    I_ARRAY_PANEL_BLOCKMON,
-
-    I_ARRAY_FX_NONE,
-    I_ARRAY_FX_TELEPORT,
-    I_ARRAY_FX_RESPAWN,
-    I_ARRAY_FX_FIRE,
-
-    I_ARRAY_ITEM_MEDKIT,
-    I_ARRAY_ITEM_LARGE_MEDKIT,
-    I_ARRAY_ITEM_BLACK_MEDKIT,
-    I_ARRAY_ITEM_GREEN_ARMOR,
-    I_ARRAY_ITEM_BLUE_ARMOR,
-    I_ARRAY_ITEM_BLUE_SPHERE,
-    I_ARRAY_ITEM_MEGASPHERE,
-    I_ARRAY_ITEM_HAZ_SUIT,
-    I_ARRAY_ITEM_OXYGEN,
-    I_ARRAY_ITEM_INVULNERABILITY,
-    I_ARRAY_ITEM_CHAINSAW,
-    I_ARRAY_ITEM_SHOTGUN,
-    I_ARRAY_ITEM_DB_SHOTGUN,
-    I_ARRAY_ITEM_CHAINGUN,
-    I_ARRAY_ITEM_ROCKET_LAUNCHER,
-    I_ARRAY_ITEM_PLASMA_RIFLE,
-    I_ARRAY_ITEM_BFG,
-    I_ARRAY_ITEM_SUPER_MINIGUN,
-    I_ARRAY_ITEM_FLAMETHROWER,
-    I_ARRAY_ITEM_CLIP,
-    I_ARRAY_ITEM_AMMO_BOX,
-    I_ARRAY_ITEM_4_SHELLS,
-    I_ARRAY_ITEM_25_SHELLS,
-    I_ARRAY_ITEM_1_ROCKET,
-    I_ARRAY_ITEM_ROCKET_BOX,
-    I_ARRAY_ITEM_CELL,
-    I_ARRAY_ITEM_LARGE_CELL,
-    I_ARRAY_ITEM_FUELCAN,
-    I_ARRAY_ITEM_BACKPACK,
-    I_ARRAY_ITEM_KEY_RED,
-    I_ARRAY_ITEM_KEY_GREEN,
-    I_ARRAY_ITEM_KEY_BLUE,
-    I_ARRAY_ITEM_BOTTLE,
-    I_ARRAY_ITEM_HELMET,
-    I_ARRAY_ITEM_JETPACK,
-    I_ARRAY_ITEM_INVIS,
-
-    I_ARRAY_SHOT_PISTOL,
-    I_ARRAY_SHOT_BULLET,
-    I_ARRAY_SHOT_SHOTGUN,
-    I_ARRAY_SHOT_SSG,
-    I_ARRAY_SHOT_IMP,
-    I_ARRAY_SHOT_PLASMA,
-    I_ARRAY_SHOT_SPIDER,
-    I_ARRAY_SHOT_CACO,
-    I_ARRAY_SHOT_BARON,
-    I_ARRAY_SHOT_MANCUB,
-    I_ARRAY_SHOT_REV,
-    I_ARRAY_SHOT_ROCKET,
-    I_ARRAY_SHOT_BFG,
-    I_ARRAY_SHOT_EXPL,
-    I_ARRAY_SHOT_BFGEXPL,
-    I_ARRAY_SHOT_FLAME,
-
-    I_ARRAY_MON_DEMON,
-    I_ARRAY_MON_IMP,
-    I_ARRAY_MON_ZOMBIE,
-    I_ARRAY_MON_SERGEANT,
-    I_ARRAY_MON_CYBER,
-    I_ARRAY_MON_CGUN,
-    I_ARRAY_MON_HELL_BARON,
-    I_ARRAY_MON_HELL_KNIGHT,
-    I_ARRAY_MON_CACODEMON,
-    I_ARRAY_MON_LOST_SOUL,
-    I_ARRAY_MON_PAIN_ELEMENTAL,
-    I_ARRAY_MON_MASTERMIND,
-    I_ARRAY_MON_ARACHNATRON,
-    I_ARRAY_MON_MANCUBUS,
-    I_ARRAY_MON_REVENANT,
-    I_ARRAY_MON_ARCHVILE,
-    I_ARRAY_MON_FISH,
-    I_ARRAY_MON_BARREL,
-    I_ARRAY_MON_ROBOT,
-    I_ARRAY_MON_PRIKOLIST,
-
-    I_ARRAY_AREA_PLAYER_ONE,
-    I_ARRAY_AREA_PLAYER_TWO,
-    I_ARRAY_AREA_DM,
-    I_ARRAY_AREA_FLAG_RED,
-    I_ARRAY_AREA_FLAG_BLUE,
-    I_ARRAY_AREA_FLAG_DOM,
-    I_ARRAY_AREA_TEAM_RED,
-    I_ARRAY_AREA_TEAM_BLUE,
-
-    I_ARRAY_TR_EXIT,
-    I_ARRAY_TR_TELEPORT,
-    I_ARRAY_TR_DOOR_OPEN,
-    I_ARRAY_TR_DOOR_CLOSE,
-    I_ARRAY_TR_DOOR_SWITCH,
-    I_ARRAY_TR_DOOR_5_SEC,
-    I_ARRAY_TR_TRAP_CLOSE,
-    I_ARRAY_TR_TRAP,
-    I_ARRAY_TR_EXTEND,
-    I_ARRAY_TR_SECRET,
-    I_ARRAY_TR_LIFT_UP,
-    I_ARRAY_TR_LIFT_DOWN,
-    I_ARRAY_TR_LIFT_SWITCH,
-    I_ARRAY_TR_TEXTURE,
-    I_ARRAY_TR_ON,
-    I_ARRAY_TR_OFF,
-    I_ARRAY_TR_SWITCH,
-    I_ARRAY_TR_SOUND,
-    I_ARRAY_TR_SPAWN_MONSTER,
-    I_ARRAY_TR_SPAWN_ITEM,
-    I_ARRAY_TR_MUSIC,
-    I_ARRAY_TR_PUSH,
-    I_ARRAY_TR_SCORE,
-    I_ARRAY_TR_MESSAGE,
-    I_ARRAY_TR_DAMAGE,
-    I_ARRAY_TR_HEALTH,
-    I_ARRAY_TR_SHOT,
-    I_ARRAY_TR_EFFECT,
-
-    I_PROP_ID,
-    I_PROP_X,
-    I_PROP_Y,
-    I_PROP_WIDTH,
-    I_PROP_HEIGHT,
-    I_PROP_PANEL_TYPE,
-    I_PROP_PANEL_TEX,
-    I_PROP_PANEL_ALPHA,
-    I_PROP_PANEL_BLEND,
-    I_PROP_DM_ONLY,
-    I_PROP_ITEM_FALLS,
-    I_PROP_DIRECTION,
-
-    I_PROP_TR_TYPE,
-    I_PROP_TR_ENABLED,
-    I_PROP_TR_TEXTURE_PANEL,
-    I_PROP_TR_ACTIVATION,
-    I_PROP_TR_KEYS,
-    I_PROP_TR_D2D,
-    I_PROP_TR_SILENT,
-    I_PROP_TR_COUNT,
-    I_PROP_TR_INTERVAL,
-    I_PROP_TR_HEALTH,
-    I_PROP_TR_NEXT_MAP,
-    I_PROP_TR_TELEPORT_TO,
-    I_PROP_TR_TELEPORT_SILENT,
-    I_PROP_TR_TELEPORT_DIR,
-    I_PROP_TR_DOOR_PANEL,
-    I_PROP_TR_TRAP_PANEL,
-    I_PROP_TR_EX_AREA,
-    I_PROP_TR_EX_DELAY,
-    I_PROP_TR_EX_COUNT,
-    I_PROP_TR_EX_MONSTER,
-    I_PROP_TR_EX_RANDOM,
-    I_PROP_TR_LIFT_PANEL,
-    I_PROP_TR_TEXTURE_ONCE,
-    I_PROP_TR_TEXTURE_ANIM_ONCE,
-    I_PROP_TR_SOUND_NAME,
-    I_PROP_TR_SOUND_VOLUME,
-    I_PROP_TR_SOUND_PAN,
-    I_PROP_TR_SOUND_COUNT,
-    I_PROP_TR_SOUND_LOCAL,
-    I_PROP_TR_SOUND_SWITCH,
-    I_PROP_TR_FX_TYPE,
-    I_PROP_TR_SPAWN_TO,
-    I_PROP_TR_SPAWN_MAX,
-    I_PROP_TR_SPAWN_DELAY,
-    I_PROP_TR_MONSTER_TYPE,
-    I_PROP_TR_MONSTER_ACTIVE,
-    I_PROP_TR_MONSTER_BEHAVIOUR,
-    I_PROP_TR_MONSTER_BEHAVIOUR_0,
-    I_PROP_TR_MONSTER_BEHAVIOUR_1,
-    I_PROP_TR_MONSTER_BEHAVIOUR_2,
-    I_PROP_TR_MONSTER_BEHAVIOUR_3,
-    I_PROP_TR_MONSTER_BEHAVIOUR_4,
-    I_PROP_TR_MONSTER_BEHAVIOUR_5,
-    I_PROP_TR_ITEM_TYPE,
-    I_PROP_TR_MUSIC_NAME,
-    I_PROP_TR_MUSIC_ACT,
-    I_PROP_TR_MUSIC_ON,
-    I_PROP_TR_MUSIC_OFF,
-    I_PROP_TR_PUSH_ANGLE,
-    I_PROP_TR_PUSH_FORCE,
-    I_PROP_TR_PUSH_RESET,
-    I_PROP_TR_SCORE_ACT,
-    I_PROP_TR_SCORE_ACT_0,
-    I_PROP_TR_SCORE_ACT_1,
-    I_PROP_TR_SCORE_ACT_2,
-    I_PROP_TR_SCORE_ACT_3,
-    I_PROP_TR_SCORE_TEAM,
-    I_PROP_TR_SCORE_TEAM_0,
-    I_PROP_TR_SCORE_TEAM_1,
-    I_PROP_TR_SCORE_TEAM_2,
-    I_PROP_TR_SCORE_TEAM_3,
-    I_PROP_TR_SCORE_CON,
-    I_PROP_TR_SCORE_MSG,
-    I_PROP_TR_DAMAGE_VALUE,
-    I_PROP_TR_HEALTH_MAX,
-    I_PROP_TR_SHOT_TYPE,
-    I_PROP_TR_SHOT_SOUND,
-    I_PROP_TR_SHOT_ANGLE,
-    I_PROP_TR_SHOT_ACC,
-    I_PROP_TR_SHOT_TO,
-    I_PROP_TR_SHOT_TO_0,
-    I_PROP_TR_SHOT_TO_1,
-    I_PROP_TR_SHOT_TO_2,
-    I_PROP_TR_SHOT_TO_3,
-    I_PROP_TR_SHOT_TO_4,
-    I_PROP_TR_SHOT_TO_5,
-    I_PROP_TR_SHOT_TO_6,
-    I_PROP_TR_SHOT_AIM,
-    I_PROP_TR_SHOT_AIM_0,
-    I_PROP_TR_SHOT_AIM_1,
-    I_PROP_TR_SHOT_AIM_2,
-    I_PROP_TR_SHOT_AIM_3,
-    I_PROP_TR_SHOT_AMMO,
-    I_PROP_TR_SHOT_RELOAD,
-    I_PROP_TR_SHOT_SIGHT,
-    I_PROP_TR_SHOT_PANEL,
-    I_PROP_TR_MESSAGE_KIND,
-    I_PROP_TR_MESSAGE_KIND_0,
-    I_PROP_TR_MESSAGE_KIND_1,
-    I_PROP_TR_MESSAGE_TO,
-    I_PROP_TR_MESSAGE_TO_0,
-    I_PROP_TR_MESSAGE_TO_1,
-    I_PROP_TR_MESSAGE_TO_2,
-    I_PROP_TR_MESSAGE_TO_3,
-    I_PROP_TR_MESSAGE_TO_4,
-    I_PROP_TR_MESSAGE_TO_5,
-    I_PROP_TR_MESSAGE_TEXT,
-    I_PROP_TR_MESSAGE_TIME,
-    I_PROP_TR_EFFECT_TYPE,
-    I_PROP_TR_EFFECT_SUBTYPE,
-    I_PROP_TR_EFFECT_COLOR,
-    I_PROP_TR_EFFECT_CENTER,
-    I_PROP_TR_EFFECT_VELX,
-    I_PROP_TR_EFFECT_VELY,
-    I_PROP_TR_EFFECT_SPL,
-    I_PROP_TR_EFFECT_SPR,
-    I_PROP_TR_EFFECT_SPU,
-    I_PROP_TR_EFFECT_SPD,
-    I_PROP_TR_EFFECT_PARTICLE,
-    I_PROP_TR_EFFECT_ANIMATION,
-    I_PROP_TR_EFFECT_SLIQUID,
-    I_PROP_TR_EFFECT_LLIQUID,
-    I_PROP_TR_EFFECT_DLIQUID,
-    I_PROP_TR_EFFECT_BLOOD,
-    I_PROP_TR_EFFECT_SPARK,
-    I_PROP_TR_EFFECT_BUBBLE,
-
-    I_MSG_ERROR,
-    I_MSG_WRONG_TEXWIDTH,
-    I_MSG_WRONG_TEXHEIGHT,
-    I_MSG_WRONG_ALPHA,
-    I_MSG_WRONG_SIZE,
-    I_MSG_WRONG_XY,
-    I_MSG_TEXTURE_ALREADY,
-    I_MSG_RES_NAME_64,
-    I_MSG_CHOOSE_ITEM,
-    I_MSG_CHOOSE_MONSTER,
-    I_MSG_CHOOSE_AREA,
-    I_MSG_CHOOSE_TEXTURE,
-    I_MSG_CHOOSE_RES,
-    I_MSG_EXIT,
-    I_MSG_EXIT_PROMT,
-    I_MSG_DEL_TEXTURE,
-    I_MSG_DEL_TEXTURE_PROMT,
-    I_MSG_DEL_TEXTURE_CANT,
-    I_MSG_DEL_RECENT,
-    I_MSG_DEL_RECENT_PROMT,
-    I_MSG_CLEAR_MAP,
-    I_MSG_CLEAR_MAP_PROMT,
-    I_MSG_DELETE_MAP,
-    I_MSG_DELETE_MAP_PROMT,
-    I_MSG_MAP_DELETED,
-    I_MSG_MAP_DELETED_PROMT,
-    I_MSG_REOPEN_MAP_PROMT,
-    I_MSG_EXEC_ERROR,
-    I_MSG_SOUND_ERROR,
-    I_MSG_WAD_ERROR,
-    I_MSG_RES_ERROR,
-    I_MSG_PACKED,
-    I_MSG_MAP_EXISTS,
-    I_MSG_SAVE_MAP,
-
-    I_HINT_TELEPORT,
-    I_HINT_SPAWN,
-    I_HINT_PANEL_DOOR,
-    I_HINT_PANEL_TEXTURE,
-    I_HINT_PANEL_SHOT,
-    I_HINT_PANEL_LIFT,
-    I_HINT_MONSTER,
-    I_HINT_EXT_AREA,
-    I_HINT_WIDTH,
-    I_HINT_HEIGHT,
-
-    I_MENU_FILE,
-    I_MENU_FILE_NEW,
-    I_MENU_FILE_OPEN,
-    I_MENU_FILE_SAVE,
-    I_MENU_FILE_SAVE_AS,
-    I_MENU_FILE_OPEN_WAD,
-    I_MENU_FILE_REOPEN,
-    I_MENU_FILE_SAVE_MINI,
-    I_MENU_FILE_DELETE,
-    I_MENU_FILE_PACK_MAP,
-    I_MENU_FILE_EXIT,
-
-    I_MENU_EDIT,
-    I_MENU_EDIT_UNDO,
-    I_MENU_EDIT_COPY,
-    I_MENU_EDIT_CUT,
-    I_MENU_EDIT_PASTE,
-    I_MENU_EDIT_SELECT_ALL,
-    I_MENU_EDIT_TO_FORE,
-    I_MENU_EDIT_TO_BACK,
-
-    I_MENU_TOOLS,
-    I_MENU_TOOLS_SNAP_GRID,
-    I_MENU_TOOLS_MINIMAP,
-    I_MENU_TOOLS_STEP_GRID,
-    I_MENU_TOOLS_SHOW_EDGES,
-    I_MENU_TOOLS_LAYERS,
-
-    I_MENU_SERV,
-    I_MENU_SERV_TEST,
-    I_MENU_SERV_OPT,
-    I_MENU_SERV_PREVIEW,
-    I_MENU_SERV_LAUNCH,
-
-    I_MENU_SETS,
-    I_MENU_SETS_MAP,
-    I_MENU_SETS_EDITOR,
-    I_MENU_SETS_LAUNCH,
-
-    I_MENU_HELP,
-    I_MENU_HELP_ABOUT,
-
-    I_MENU_LAYER_BACK,
-    I_MENU_LAYER_WALL,
-    I_MENU_LAYER_FORE,
-    I_MENU_LAYER_STAIR,
-    I_MENU_LAYER_WATER,
-    I_MENU_LAYER_ITEM,
-    I_MENU_LAYER_MONSTER,
-    I_MENU_LAYER_AREA,
-    I_MENU_LAYER_TRIGGER,
-
-    I_MENU_TB_NEW,
-    I_MENU_TB_OPEN,
-    I_MENU_TB_SAVE,
-    I_MENU_TB_OPEN_WAD,
-    I_MENU_TB_MINIMAP,
-    I_MENU_TB_LAYERS,
-    I_MENU_TB_GRID,
-    I_MENU_TB_GRID_STEP,
-    I_MENU_TB_LAUNCH,
-
-    I_MENU_LAUNCH_SETS,
-
-    I_CAP_FX_TYPE,
-    I_CAP_MONSTER_TYPE,
-    I_CAP_ITEM_TYPE,
-    I_CAP_ABOUT,
-    I_CAP_ACT,
-    I_CAP_ADD_SKY,
-    I_CAP_ADD_SOUND,
-    I_CAP_ADD_TEXTURE,
-    I_CAP_KEYS,
-    I_CAP_TEST,
-    I_CAP_OPT,
-    I_CAP_SETS,
-    I_CAP_LAUNCH,
-    I_CAP_ES,
-    I_CAP_PACK,
-    I_CAP_SAVE,
-    I_CAP_MINI,
-    I_CAP_SELECT,
-    I_CAP_OPEN,
-    I_CAP_REMOVE,
-    I_CAP_TEXTURE,
-    I_CAP_ANIMATION,
-    I_CAP_STAT_SELECTED,
-
-    I_CTRL_PROP_KEY,
-    I_CTRL_PROP_VALUE,
-    I_CTRL_PANELS,
-    I_CTRL_ITEMS,
-    I_CTRL_MONSTERS,
-    I_CTRL_AREAS,
-    I_CTRL_TRIGGERS,
-
-    I_CTRL_LIST_TEXTURE,
-    I_CTRL_LIST_ITEM,
-    I_CTRL_LIST_MONSTER,
-    I_CTRL_LIST_AREA,
-    I_CTRL_LIST_TRIGGER,
-    I_CTRL_LIST_ACTIVE,
-    I_CTRL_LIST_KEYS,
-
-    I_CTRL_PREVIEW,
-    I_CTRL_ITEM_DM,
-    I_CTRL_ITEM_FALLS,
-    I_CTRL_LEFT,
-    I_CTRL_RIGHT,
-
-    I_CTRL_ACT_PLAYER_CLOSE,
-    I_CTRL_ACT_MONSTER_CLOSE,
-    I_CTRL_ACT_PLAYER_PRESS,
-    I_CTRL_ACT_MONSTER_PRESS,
-    I_CTRL_ACT_SHOT,
-    I_CTRL_ACT_NO_MONSTER,
-
-    I_CTRL_KEYS_RED,
-    I_CTRL_KEYS_GREEN,
-    I_CTRL_KEYS_BLUE,
-    I_CTRL_KEYS_TEAM_RED,
-    I_CTRL_KEYS_TEAM_BLUE,
-    
-    I_CTRL_OPT_GB,
-    I_CTRL_OPT_TEXTURE,
-    I_CTRL_OPT_PANEL,
-    I_CTRL_OPT_WALL,
-    I_CTRL_OPT_FORE,
-    I_CTRL_OPT_BACK,
-    I_CTRL_OPT_STAIR,
-    I_CTRL_OPT_WATER,
-    I_CTRL_OPT_ACID1,
-    I_CTRL_OPT_ACID2,
-    I_CTRL_OPT_LIFT,
-    I_CTRL_OPT_BLOCKMON,
-    I_CTRL_OPT_DESC_TEXTURE,
-    I_CTRL_OPT_DESC_PANEL,
-
-    I_CTRL_SETS_STATS,
-    I_CTRL_SETS_SIZES,
-
-    I_CTRL_LAUNCH_DM,
-    I_CTRL_LAUNCH_TDM,
-    I_CTRL_LAUNCH_CTF,
-    I_CTRL_LAUNCH_COOP,
-    I_CTRL_LAUNCH_2P,
-    I_CTRL_LAUNCH_FF,
-    I_CTRL_LAUNCH_EXIT,
-    I_CTRL_LAUNCH_WEAPONS,
-    I_CTRL_LAUNCH_MONSTERS,
-    I_CTRL_LAUNCH_CLOSE,
-    I_CTRL_LAUNCH_OPEN,
-
-    I_CTRL_ES_GRID,
-    I_CTRL_ES_TEXTURE,
-    I_CTRL_ES_PANEL_SIZE,
-    I_CTRL_ES_CHECKERBOARD,
-
-    I_CTRL_PACK_TEXTURES,
-    I_CTRL_PACK_SKY,
-    I_CTRL_PACK_MUSIC,
-    I_CTRL_PACK_ADD,
-    I_CTRL_PACK_NON_STD,
-
-    I_LAB_TEX_WIDTH,
-    I_LAB_TEX_HEIGHT,
-
-    I_LAB_SPECTRUM,
-
-    I_LAB_ABOUT_VER,
-    I_LAB_ABOUT_AUTHOR,
-    I_LAB_ABOUT_AUTHOR_2,
-    I_LAB_ABOUT_MAIL,
-    I_LAB_ABOUT_MAIL_2,
-    I_LAB_ABOUT_SITE,
-    I_LAB_ABOUT_HTTP,
-
-    I_LAB_ADD_WADS,
-    I_LAB_ADD_SECTIONS,
-
-    I_LAB_SETS_NAME,
-    I_LAB_SETS_DESC,
-    I_LAB_SETS_AUTHOR,
-    I_LAB_SETS_BACK,
-    I_LAB_SETS_MUSIC,
-    I_LAB_SETS_TEXTURES,
-    I_LAB_SETS_PANELS,
-    I_LAB_SETS_ITEMS,
-    I_LAB_SETS_MONSTERS,
-    I_LAB_SETS_AREAS,
-    I_LAB_SETS_TRIGGERS,
-    I_LAB_SETS_SIZES,
-    I_LAB_SETS_WIDTH,
-    I_LAB_SETS_HEIGHT,
-    I_LAB_SETS_MAPMOVE,
-    I_LAB_SETS_SNAPPING,
-
-    I_LAB_LAUNCH_TIME,
-    I_LAB_LAUNCH_SECS,
-    I_LAB_LAUNCH_SCORE,
-    I_LAB_LAUNCH_PATH,
-    I_LAB_LAUNCH_ARGS,
-
-    I_LAB_ES_GRID,
-    I_LAB_ES_GRID_COLOR,
-    I_LAB_ES_GRID_SIZE,
-    I_LAB_ES_BACK,
-    I_LAB_ES_PREVIEW,
-    I_LAB_ES_MINIMAP,
-    I_LAB_ES_RECENT,
-    I_LAB_ES_LANGUAGE,
-    I_LAB_ES_COMPRESS,
-    I_LAB_ES_BACKUP,
-
-    I_LAB_PACK_SAVE_TO,
-    I_LAB_PACK_MAP_NAME,
-    I_LAB_PACK_TEXTURES,
-    I_LAB_PACK_SKY,
-    I_LAB_PACK_MUSIC,
-
-    I_LAB_MINI_SCALE,
-    
-    I_BTN_APPLY_PROPS,
-    I_BTN_OK,
-    I_BTN_CANCEL,
-    I_BTN_ADD,
-    I_BTN_CLOSE,
-    I_BTN_ADD_CLOSE,
-    I_BTN_TEST_AGAIN,
-    I_BTN_START,
-    I_BTN_PACK,
-    I_BTN_SAVE,
-    I_BTN_NO_SOUND,
-    I_BTN_TEXTURE_ADD,
-    I_BTN_TEXTURE_DELETE,
-    I_BTN_TEXTURE_EMPTY,
-
-    I_LOAD_WAD,
-    I_LOAD_MAP,
-    I_LOAD_TEXTURES,
-    I_LOAD_PANELS,
-    I_LOAD_ITEMS,
-    I_LOAD_MONSTERS,
-    I_LOAD_AREAS,
-    I_LOAD_TRIGGERS,
-
-    I_TEST_AREA_WALL,
-    I_TEST_AREA_WALL_STR,
-    I_TEST_SPAWNS_1,
-    I_TEST_SPAWNS_2,
-    I_TEST_SPAWNS,
-    I_TEST_NO_DM,
-    I_TEST_NO_DM_EX,
-    I_TEST_MONSTER_WALL,
-    I_TEST_MONSTER_WALL_STR,
-
-    I_OPT_NO_TEXTURES,
-    I_OPT_DELETED_TEXTURES,
-    I_OPT_TOTAL_TEXTURES,
-    I_OPT_TEX_DELETED,
-    I_OPT_PANELS_OPT,
-    I_OPT_WALLS,
-    I_OPT_FORES,
-    I_OPT_BACKS,
-    I_OPT_STAIRS,
-    I_OPT_WATER,
-    I_OPT_ACID1,
-    I_OPT_ACID2,
-    I_OPT_LIFTS,
-    I_OPT_BLOCKMON,
-    I_OPT_TOTAL_PANELS,
-    I_OPT_PANELS_AFTER,
-
-    I_WAD_SPECIAL_MAP,
-    I_WAD_SPECIAL_TEXS,
-
-    I_FILE_FILTER_ALL,
-    I_FILE_FILTER_WAD,
-
-    I_EDITOR_TITLE,
-    
-    I_LAST );
-
-Const
-  LANGUAGE_RUSSIAN = 'Russian';
-  LANGUAGE_ENGLISH = 'English';
-  LANGUAGE_RUSSIAN_N = 3;
-  LANGUAGE_ENGLISH_N = 2;
+  uses g_Basic, MAPDEF, Classes;
+
+  resourcestring
+    MsgNotAccessible = 'N/A';
+
+    MsgArrayBoolFalse = 'No';
+    MsgArrayBoolTrue = 'Yes';
+
+    MsgArrayDirLeft = 'Left';
+    MsgArrayDirRight = 'Right';
+    MsgArrayDirSame = 'Don''t change';
+    MsgArrayDirReversed = 'Reversed';
+
+    MsgArrayDirbtnLeft = 'Left';
+    MsgArrayDirbtnRight = 'Right';
+    MsgArrayDirbtnUp = 'Up';
+    MsgArrayDirbtnDown = 'Down';
+
+    MsgArrayPanelWall = 'Wall';
+    MsgArrayPanelBack = 'Background';
+    MsgArrayPanelFront = 'Foreground';
+    MsgArrayPanelDoorOpen = 'Open Door';
+    MsgArrayPanelDoorClose = 'Closed Door';
+    MsgArrayPanelStair = 'Step';
+    MsgArrayPanelWater = 'Water';
+    MsgArrayPanelAcid1 = 'Acid 1';
+    MsgArrayPanelAcid2 = 'Acid 2';
+    MsgArrayPanelLiftUp = 'Stream Up';
+    MsgArrayPanelLiftDown = 'Stream Down';
+    MsgArrayPanelLiftLeft = 'Stream Left';
+    MsgArrayPanelLiftRight = 'Stream Right';
+    MsgArrayPanelBlockmon = 'Monster Boundary';
+
+    MsgArrayFxNone = 'None';
+    MsgArrayFxTeleport = 'Teleport';
+    MsgArrayFxRespawn = 'Respawn';
+    MsgArrayFxFire = 'Arch-Vile Fire';
+
+    MsgArrayItemMedkit = 'Stimpack';
+    MsgArrayItemLargeMedkit = 'Medikit';
+    MsgArrayItemBlackMedkit = 'Berserk Pack';
+    MsgArrayItemGreenArmor = 'Green Armor';
+    MsgArrayItemBlueArmor = 'Blue Armor';
+    MsgArrayItemBlueSphere = 'Soulsphere';
+    MsgArrayItemMegasphere = 'Megasphere';
+    MsgArrayItemHazSuit = 'Envirosuit';
+    MsgArrayItemOxygen = 'Scuba';
+    MsgArrayItemInvulnerability = 'Invulnerability';
+    MsgArrayItemChainsaw = 'Chainsaw';
+    MsgArrayItemShotgun = 'Shotgun';
+    MsgArrayItemDbShotgun = 'Super Shotgun';
+    MsgArrayItemChaingun = 'Chaingun';
+    MsgArrayItemRocketLauncher = 'Rocket Launcher';
+    MsgArrayItemPlasmaRifle = 'Plasma Rifle';
+    MsgArrayItemBfg = 'BFG9000';
+    MsgArrayItemSuperMinigun = 'Super Chaingun';
+    MsgArrayItemFlamethrower = 'Flamethrower';
+    MsgArrayItemClip = 'Clip';
+    MsgArrayItemAmmoBox = 'Box of Bullets';
+    MsgArrayItem4Shells = '4 Shells';
+    MsgArrayItem25Shells = 'Box of Shells';
+    MsgArrayItem1Rocket = 'Rocket';
+    MsgArrayItemRocketBox = 'Box of Rockets';
+    MsgArrayItemCell = 'Energy Cell';
+    MsgArrayItemLargeCell = 'Energy Cell Pack';
+    MsgArrayItemFuelcan = 'Fuel Canister';
+    MsgArrayItemBackpack = 'Backpack';
+    MsgArrayItemKeyRed = 'Red Key';
+    MsgArrayItemKeyGreen = 'Green Key';
+    MsgArrayItemKeyBlue = 'Blue Key';
+    MsgArrayItemBottle = 'Health Globe';
+    MsgArrayItemHelmet = 'Armor Shard';
+    MsgArrayItemJetpack = 'Jetpack';
+    MsgArrayItemInvis = 'Invisibility';
+
+    MsgArrayShotPistol = 'Pistol shot';
+    MsgArrayShotBullet = 'Chaingun shot';
+    MsgArrayShotShotgun = 'Shotgun shot';
+    MsgArrayShotSsg = 'Super Shotgun shot';
+    MsgArrayShotImp = 'Imp fireball';
+    MsgArrayShotPlasma = 'Blue plasma';
+    MsgArrayShotSpider = 'Arachnotron plasma';
+    MsgArrayShotCaco = 'Cacodemon fireball';
+    MsgArrayShotBaron = 'Hell Baron projectile';
+    MsgArrayShotMancub = 'Mancubus gunshot';
+    MsgArrayShotRev = 'Revenant projectile';
+    MsgArrayShotRocket = 'Rocket';
+    MsgArrayShotBfg = 'BFG ball';
+    MsgArrayShotExpl = 'Explosion';
+    MsgArrayShotBfgexpl = 'BFG explosion';
+    MsgArrayShotFlame = 'Flame';
+
+    MsgArrayMonDemon = 'Pinky';
+    MsgArrayMonImp = 'Imp';
+    MsgArrayMonZombie = 'Zombie';
+    MsgArrayMonSergeant = 'Sergeant';
+    MsgArrayMonCyber = 'Cyberdemon';
+    MsgArrayMonCgun = 'Commando';
+    MsgArrayMonHellBaron = 'Hell Baron';
+    MsgArrayMonHellKnight = 'Hell Knight';
+    MsgArrayMonCacodemon = 'Cacodemon';
+    MsgArrayMonLostSoul = 'Lost Soul';
+    MsgArrayMonPainElemental = 'Pain Elemental';
+    MsgArrayMonMastermind = 'Spider Mastermind';
+    MsgArrayMonArachnatron = 'Arachnotron';
+    MsgArrayMonMancubus = 'Mancubus';
+    MsgArrayMonRevenant = 'Revenant';
+    MsgArrayMonArchvile = 'Arch-Vile';
+    MsgArrayMonFish = 'Piranha';
+    MsgArrayMonBarrel = 'Barrel';
+    MsgArrayMonRobot = 'Robot';
+    MsgArrayMonPrikolist = 'Prikolist';
+
+    MsgArrayAreaPlayerOne = 'Player 1';
+    MsgArrayAreaPlayerTwo = 'Player 2';
+    MsgArrayAreaDm = 'DM Spawn Point';
+    MsgArrayAreaFlagRed = 'Red Flag';
+    MsgArrayAreaFlagBlue = 'Blue Flag';
+    MsgArrayAreaFlagDom = 'Domination Flag';
+    MsgArrayAreaTeamRed = 'Red Team';
+    MsgArrayAreaTeamBlue = 'Blue Team';
+
+    MsgArrayTrExit = 'Exit';
+    MsgArrayTrTeleport = 'Teleport';
+    MsgArrayTrDoorOpen = 'Open Door';
+    MsgArrayTrDoorClose = 'Close Door';
+    MsgArrayTrDoorSwitch = 'Door';
+    MsgArrayTrDoor5Sec = 'Door (5 sec)';
+    MsgArrayTrTrapClose = 'Close Trap';
+    MsgArrayTrTrap = 'Trap';
+    MsgArrayTrExtend = 'Extender';
+    MsgArrayTrSecret = 'Secret';
+    MsgArrayTrLiftUp = 'Turn stream up/left';
+    MsgArrayTrLiftDown = 'Turn stream down/right';
+    MsgArrayTrLiftSwitch = 'Revert stream';
+    MsgArrayTrTexture = 'Change Texture';
+    MsgArrayTrOn = 'Enable Trigger';
+    MsgArrayTrOff = 'Disable Trigger';
+    MsgArrayTrSwitch = 'Trigger Toggle';
+    MsgArrayTrSound = 'Play Sound';
+    MsgArrayTrSpawnMonster = 'Spawn Monster';
+    MsgArrayTrSpawnItem = 'Spawn Item';
+    MsgArrayTrMusic = 'Play Music';
+    MsgArrayTrPush = 'Push';
+    MsgArrayTrScore = 'Team Score';
+    MsgArrayTrMessage = 'Message';
+    MsgArrayTrDamage = 'Damage';
+    MsgArrayTrHealth = 'Healer';
+    MsgArrayTrShot = 'Turret';
+    MsgArrayTrEffect = 'Effect';
+
+    MsgPropId = 'ID';
+    MsgPropX = 'X';
+    MsgPropY = 'Y';
+    MsgPropWidth = 'Width';
+    MsgPropHeight = 'Height';
+    MsgPropPanelType = 'Panel Type';
+    MsgPropPanelTex = 'Texture';
+    MsgPropPanelAlpha = 'Transparency';
+    MsgPropPanelBlend = 'Blending';
+    MsgPropDmOnly = 'DM Only';
+    MsgPropItemFalls = 'Falls';
+    MsgPropDirection = 'Direction';
+
+    MsgPropTrType = 'Trigger Type';
+    MsgPropTrEnabled = 'Enabled';
+    MsgPropTrTexturePanel = 'Textured Panel';
+    MsgPropTrActivation = 'Activation Type';
+    MsgPropTrKeys = 'Keys';
+    MsgPropTrD2d = 'D2D-like';
+    MsgPropTrSilent = 'Silent';
+    MsgPropTrCount = 'Count';
+    MsgPropTrInterval = 'Interval (in ticks)';
+    MsgPropTrHealth = 'Health';
+    MsgPropTrNextMap = 'Next Map';
+    MsgPropTrTeleportTo = 'Teleport to';
+    MsgPropTrTeleportSilent = 'Silent';
+    MsgPropTrTeleportDir = 'New Direction';
+    MsgPropTrDoorPanel = 'Door Panel';
+    MsgPropTrTrapPanel = 'Trap Panel';
+    MsgPropTrExArea = 'Action Area';
+    MsgPropTrExDelay = 'Delay';
+    MsgPropTrExCount = 'Count';
+    MsgPropTrExMonster = 'Monster ID';
+    MsgPropTrExRandom = 'Random';
+    MsgPropTrLiftPanel = 'Stream Panel';
+    MsgPropTrTextureOnce = 'Once';
+    MsgPropTrTextureAnimOnce = 'Animate Once';
+    MsgPropTrSoundName = 'Sound                              (snd)';
+    MsgPropTrSoundVolume = 'Volume';
+    MsgPropTrSoundPan = 'Pan';
+    MsgPropTrSoundCount = 'Loops';
+    MsgPropTrSoundLocal = 'Local';
+    MsgPropTrSoundSwitch = 'Switch';
+    MsgPropTrFxType = 'Effect';
+    MsgPropTrSpawnTo = 'Spawn at';
+    MsgPropTrSpawnMax = 'Maximum';
+    MsgPropTrSpawnDelay = 'Autospawn (in ticks)';
+    MsgPropTrMonsterType = 'Monster';
+    MsgPropTrMonsterActive = 'Active';
+    MsgPropTrMonsterBehaviour = 'Behaviour';
+    MsgPropTrMonsterBehaviour0 = 'Normal';
+    MsgPropTrMonsterBehaviour1 = 'Killer';
+    MsgPropTrMonsterBehaviour2 = 'Maniac';
+    MsgPropTrMonsterBehaviour3 = 'Insane';
+    MsgPropTrMonsterBehaviour4 = 'Cannibal';
+    MsgPropTrMonsterBehaviour5 = 'Good';
+    MsgPropTrItemType = 'Item';
+    MsgPropTrMusicName = 'Music';
+    MsgPropTrMusicAct = 'Action                             (m)';
+    MsgPropTrMusicOn = 'Play';
+    MsgPropTrMusicOff = 'Pause';
+    MsgPropTrPushAngle = 'Angle';
+    MsgPropTrPushForce = 'Force';
+    MsgPropTrPushReset = 'Reset velocity';
+    MsgPropTrScoreAct = 'Action                             (s)';
+    MsgPropTrScoreAct0 = 'Add points';
+    MsgPropTrScoreAct1 = 'Subtract points';
+    MsgPropTrScoreAct2 = 'Team Wins';
+    MsgPropTrScoreAct3 = 'Team Loses';
+    MsgPropTrScoreTeam = 'Team';
+    MsgPropTrScoreTeam0 = 'My';
+    MsgPropTrScoreTeam1 = 'Enemy';
+    MsgPropTrScoreTeam2 = 'Red';
+    MsgPropTrScoreTeam3 = 'Blue';
+    MsgPropTrScoreCon = 'Console message';
+    MsgPropTrScoreMsg = 'Game message';
+    MsgPropTrDamageValue = 'Damage';
+    MsgPropTrDamageKind = 'Damage type';
+    MsgPropTrDamageKind0 = 'HIT_SOME';
+    MsgPropTrDamageKind3 = 'HIT_TRAP';
+    MsgPropTrDamageKind4 = 'HIT_FALL';
+    MsgPropTrDamageKind5 = 'HIT_WATER';
+    MsgPropTrDamageKind6 = 'HIT_ACID';
+    MsgPropTrDamageKind7 = 'HIT_ELECTRO';
+    MsgPropTrDamageKind8 = 'HIT_FLAME';
+    MsgPropTrHealthMax = 'To maximum';
+    MsgPropTrShotType = 'Projectile';
+    MsgPropTrShotSound = 'Shot sound';
+    MsgPropTrShotAngle = 'Angle';
+    MsgPropTrShotAcc = 'Spread';
+    MsgPropTrShotTo = 'Auto targeting';
+    MsgPropTrShotTo0 = 'None';
+    MsgPropTrShotTo1 = 'Monsters';
+    MsgPropTrShotTo2 = 'Players';
+    MsgPropTrShotTo3 = 'Red team';
+    MsgPropTrShotTo4 = 'Blue team';
+    MsgPropTrShotTo5 = 'Monsters, players';
+    MsgPropTrShotTo6 = 'Players, monsters';
+    MsgPropTrShotAim = 'Auto-aiming mode';
+    MsgPropTrShotAim0 = 'Trigger area';
+    MsgPropTrShotAim1 = 'Entire map';
+    MsgPropTrShotAim2 = 'Trace trigger area';
+    MsgPropTrShotAim3 = 'Trace entire map';
+    MsgPropTrShotAmmo = 'Ammo limit';
+    MsgPropTrShotReload = 'Reload interval (in ticks)';
+    MsgPropTrShotSight = 'Sight interval (in ticks)';
+    MsgPropTrShotPanel = 'Indicator panel';
+    MsgPropTrMessageKind = 'Message kind';
+    MsgPropTrMessageKind0 = 'Console message';
+    MsgPropTrMessageKind1 = 'Event message';
+    MsgPropTrMessageTo = 'Send to';
+    MsgPropTrMessageTo0 = 'Me';
+    MsgPropTrMessageTo1 = 'My team';
+    MsgPropTrMessageTo2 = 'Enemy team';
+    MsgPropTrMessageTo3 = 'Red team';
+    MsgPropTrMessageTo4 = 'Blue team';
+    MsgPropTrMessageTo5 = 'Everyone';
+    MsgPropTrMessageText = 'Message text';
+    MsgPropTrMessageTime = 'Time (in ticks)';
+    MsgPropTrEffectType = 'Effect type';
+    MsgPropTrEffectSubtype = 'Effect subtype';
+    MsgPropTrEffectColor = 'Effect color';
+    MsgPropTrEffectCenter = 'Trigger center';
+    MsgPropTrEffectVelx = 'Horizontal speed';
+    MsgPropTrEffectVely = 'Vertical speed';
+    MsgPropTrEffectSpl = 'Speed variance left';
+    MsgPropTrEffectSpr = 'Speed variance right';
+    MsgPropTrEffectSpu = 'Speed variance up';
+    MsgPropTrEffectSpd = 'Speed variance down';
+    MsgPropTrEffectParticle = 'Particle generator';
+    MsgPropTrEffectAnimation = 'Animation';
+    MsgPropTrEffectSliquid = 'Water splash';
+    MsgPropTrEffectLliquid = 'Light colored splash';
+    MsgPropTrEffectDliquid = 'Dark colored splash';
+    MsgPropTrEffectBlood = 'Blood';
+    MsgPropTrEffectSpark = 'Sparks';
+    MsgPropTrEffectBubble = 'Bubbles';
+
+    MsgMsgError = 'Error';
+    MsgMsgWrongTexwidth = 'Panel Width must be a multiple of Texture Width (%d)';
+    MsgMsgWrongTexheight = 'Panel Height must be a multiple of Texture Height (%d)';
+    MsgMsgWrongAlpha = 'Transparency must be in [0..255] interval';
+    MsgMsgWrongSize = 'Width and Height must be greater than 0';
+    MsgMsgWrongXy = 'X or Y coordinate hasn''t been set';
+    MsgMsgTextureAlready = 'Texture "%s" already exists';
+    MsgMsgResName64 = 'Resource "%s" name must not be longer than 64 chars';
+    MsgMsgChooseItem = 'Select Item';
+    MsgMsgChooseMonster = 'Select Monster';
+    MsgMsgChooseArea = 'Select Area';
+    MsgMsgChooseTexture = 'Select Texture';
+    MsgMsgChooseRes = 'Resource hasn''t been selected';
+    MsgMsgExit = 'Exit';
+    MsgMsgExitPromt = 'Leaving so soon?';
+    MsgMsgDelTexture = 'Delete the texture';
+    MsgMsgDelTexturePromt = 'Delete the texture "%s" ?';
+    MsgMsgDelTextureCant = 'Can''t delete texture in use. Replace it on all panels with this texture.';
+    MsgMsgDelRecent = 'File does not longer exist';
+    MsgMsgDelRecentPromt = 'Remove entry from recent list?';
+    MsgMsgClearMap = 'New map';
+    MsgMsgClearMapPromt = 'Clear the entire map?';
+    MsgMsgDeleteMap = 'Delete the map';
+    MsgMsgDeleteMapPromt = 'Delete the map "%s" from "%s" ?';
+    MsgMsgMapDeleted = 'Map is deleted';
+    MsgMsgMapDeletedPromt = 'Map "%s" is deleted';
+    MsgMsgReopenMapPromt = 'Reopen this map?';
+    MsgMsgExecError = 'Game start error';
+    MsgMsgSoundError = 'Can''t play sound';
+    MsgMsgWadError = 'Can''t open WAD: %s';
+    MsgMsgResError = 'Can''t read resource: %s:%s\%s';
+    MsgMsgPacked = 'Map "%s" with resources saved to "%s"';
+    MsgMsgMapExists = 'Map "%s" already exists. Overwrite?';
+    MsgMsgSaveMap = 'Save the map';
+
+    MsgHintTeleport = 'Choose destination of Teleport';
+    MsgHintSpawn = 'Choose Spawn point';
+    MsgHintPanelDoor = 'Choose Door';
+    MsgHintPanelTexture = 'Choose textured Panel';
+    MsgHintPanelShot = 'Choose textured shot indicator Panel';
+    MsgHintPanelLift = 'Choose Stream Panel';
+    MsgHintMonster = 'Choose Monster';
+    MsgHintExtArea = 'Specify action Area';
+    MsgHintWidth = 'Width: %d';
+    MsgHintHeight = 'Height: %d';
+
+    MsgMenuAppleAbout = 'About Editor';
+    MsgMenuApplePref = 'Preferences...';
+
+    MsgMenuFile = 'File';
+    MsgMenuFileNew = 'New';
+    MsgMenuFileOpen = 'Open...';
+    MsgMenuFileRecentMac = 'Open Recent';
+    MsgMenuFileRecentClearMac = 'Clear Recent';
+    MsgMenuFileSave = 'Save';
+    MsgMenuFileSaveAs = 'Save As...';
+    MsgMenuFileOpenWad = 'Select Map...';
+    MsgMenuFileReopen = 'Revert to Saved';
+    MsgMenuFileSaveMini = 'Save Minimap...';
+    MsgMenuFileDelete = 'Remove from WAD...';
+    MsgMenuFilePackMap = 'Pack to WAD...';
+    MsgMenuFileRecentWin = 'Recent Files';
+    MsgMenuFileExitWin = 'Exit';
+
+    MsgMenuEdit = 'Edit';
+    MsgMenuEditUndo = 'Undo';
+    MsgMenuEditCopy = 'Copy';
+    MsgMenuEditCut = 'Cut';
+    MsgMenuEditPaste = 'Paste';
+    MsgMenuEditSelectAll = 'Select All';
+    MsgMenuEditSnapGrid = 'Snap to Grid';
+    MsgMenuEditStepGrid = 'Switch Grid Granularity';
+    MsgMenuEditToFore = 'Bring to Front';
+    MsgMenuEditToBack = 'Send to Back';
+    MsgMenuEditMapProps = 'Map Properties...';
+    MsgMenuEditPrefWin = 'Preferences...';
+
+    MsgMenuView = 'View';
+    MsgMenuViewLayers = 'Layers';
+    MsgMenuViewMinimap = 'Show Minimap';
+    MsgMenuViewBounds = 'Show Map Bounds';
+    MsgMenuViewPreview = 'Preview Mode';
+
+    MsgMenuServ = 'Service';
+    MsgMenuServTest = 'Analyse Map...';
+    MsgMenuServOpt = 'Optimize Map...';
+    MsgMenuServLaunch = 'Run Test';
+
+    MsgMenuWindow = 'Window';
+    MsgMenuWindowMinimize = 'Minimize';
+    MsgMenuWindowZoom = 'Zoom';
+
+    MsgMenuHelp = 'Help';
+    MsgMenuHelpAboutWin = 'About Editor';
+
+    MsgMenuLayerBack = '1. Background';
+    MsgMenuLayerWall = '2. Walls';
+    MsgMenuLayerFore = '3. Foreground';
+    MsgMenuLayerStair = '4. Steps';
+    MsgMenuLayerWater = '5. Liquids';
+    MsgMenuLayerItem = '6. Items';
+    MsgMenuLayerMonster = '7. Monsters';
+    MsgMenuLayerArea = '8. Areas';
+    MsgMenuLayerTrigger = '9. Triggers';
+
+    MsgMenuTbNew = 'New Map';
+    MsgMenuTbOpen = 'Open Map';
+    MsgMenuTbSave = 'Save Map';
+    MsgMenuTbOpenWad = 'Open another Map from same WAD';
+    MsgMenuTbMinimap = 'Show Mini-map';
+    MsgMenuTbLayers = 'Show/Hide Objects';
+    MsgMenuTbGrid = 'Grid On/Off';
+    MsgMenuTbGridStep = 'Switch Grid step';
+    MsgMenuTbLaunch = 'Run Test';
+
+    MsgMenuLaunchSets = 'Settings...';
+
+    MsgCapFxType = 'Select Effect type';
+    MsgCapMonsterType = 'Select Monster type';
+    MsgCapItemType = 'Select Item type';
+    MsgCapAbout = 'About Map Editor';
+    MsgCapAct = 'Activation type';
+    MsgCapAddSky = 'Select Sky Texture';
+    MsgCapAddSound = 'Select Sound/Music';
+    MsgCapAddTexture = 'Select Texture';
+    MsgCapKeys = 'Keys';
+    MsgCapTest = 'Analyse Map';
+    MsgCapOpt = 'Optimize Map';
+    MsgCapSets = 'Map Properties';
+    MsgCapLaunch = 'In-game test Settings';
+    MsgCapEs = 'Preferences';
+    MsgCapPack = 'Pack Map';
+    MsgCapSave = 'Save Map';
+    MsgCapMini = 'Save Minimap';
+    MsgCapSelect = 'Select Map';
+    MsgCapOpen = 'Open Map';
+    MsgCapRemove = 'Remove Map';
+    MsgCapTexture = 'Texture: %dx%d';
+    MsgCapAnimation = 'Animation: %dx%d, %d frames';
+    MsgCapStatSelected = 'Selected objects: %d';
+
+    MsgCtrlPropKey = 'Property';
+    MsgCtrlPropValue = 'Value';
+
+    MsgCtrlPanels = 'Panels';
+    MsgCtrlItems = 'Items';
+    MsgCtrlMonsters = 'Monsters';
+    MsgCtrlAreas = 'Areas';
+    MsgCtrlTriggers = 'Triggers';
+
+    MsgCtrlListTexture = 'Texture List';
+    MsgCtrlListItem = 'Item List';
+    MsgCtrlListMonster = 'Monster List';
+    MsgCtrlListArea = 'Area List';
+    MsgCtrlListTrigger = 'Trigger List';
+    MsgCtrlListActive = 'Activation Type';
+    MsgCtrlListKeys = 'Keys Needed';
+
+    MsgCtrlPreview = 'Texture Preview';
+    MsgCtrlItemDm = 'DM Only';
+    MsgCtrlItemFalls = 'Falls';
+    MsgCtrlLeft = 'Left';
+    MsgCtrlRight = 'Right';
+
+    MsgCtrlActPlayerClose = 'Player Collides';
+    MsgCtrlActMonsterClose = 'Monster Collides';
+    MsgCtrlActPlayerPress = 'Player Pressed';
+    MsgCtrlActMonsterPress = 'Monster Pressed';
+    MsgCtrlActShot = 'Shot';
+    MsgCtrlActNoMonster = 'No Monsters';
+
+    MsgCtrlKeysRed = 'Red Key';
+    MsgCtrlKeysGreen = 'Green Key';
+    MsgCtrlKeysBlue = 'Blue Key';
+    MsgCtrlKeysTeamRed = 'Red Team';
+    MsgCtrlKeysTeamBlue = 'Blue Team';
+
+    MsgCtrlOptGb = 'Optimization';
+    MsgCtrlOptTexture = 'Texture Optimization';
+    MsgCtrlOptPanel = 'Panel Optimization';
+    MsgCtrlOptWall = 'Walls';
+    MsgCtrlOptFore = 'Foreground';
+    MsgCtrlOptBack = 'Background';
+    MsgCtrlOptStair = 'Steps';
+    MsgCtrlOptWater = 'Water';
+    MsgCtrlOptAcid1 = 'Acid 1';
+    MsgCtrlOptAcid2 = 'Acid 2';
+    MsgCtrlOptLift = 'Streams';
+    MsgCtrlOptBlockmon = 'Monster Boundary';
+    MsgCtrlOptDescTexture = 'Deletes unused textures from texture list.';
+    MsgCtrlOptDescPanel = 'Merges nearby panels of same type. Increases game performance.';
+    MsgCtrlSetsStats = 'Statistics:';
+    MsgCtrlSetsSizes = 'Map Size:';
+
+    MsgCtrlEsTesting = 'Testing';
+    MsgCtrlLaunchDm = 'Deathmatch';
+    MsgCtrlLaunchTdm = 'Team Deathmatch';
+    MsgCtrlLaunchCtf = 'Capture the Flag';
+    MsgCtrlLaunchCoop = 'Cooperative';
+    MsgCtrlLaunch2p = 'Two Players';
+    MsgCtrlLaunchFf = 'Friendly Fire';
+    MsgCtrlLaunchExit = 'Enable Exit';
+    MsgCtrlLaunchWeapons = 'Weapons Stay';
+    MsgCtrlLaunchMonsters = 'Enable Monsters';
+    MsgCtrlLaunchClose = 'Close the game after exiting the map';
+    MsgCtrlLaunchOpen = 'Select Doom 2D: Forever executable';
+
+    MsgCtrlEsGeneral = 'General';
+    MsgCtrlEsGrid = 'Show Grid';
+    MsgCtrlEsTexture = 'Show Panel Texture';
+    MsgCtrlEsPanelSize = 'Show Panel Size';
+    MsgCtrlEsCheckerboard = 'Use Checkerboard';
+
+    MsgCtrlPackTextures = 'Textures';
+    MsgCtrlPackSky = 'Sky';
+    MsgCtrlPackMusic = 'Music';
+    MsgCtrlPackAdd = 'Don''t overwrite WAD';
+    MsgCtrlPackNonStd = 'Non-standard Resources only';
+
+    MsgLabTexWidth = 'Texture Width:';
+    MsgLabTexHeight = 'Texture Height:';
+
+    MsgLabSpectrum = 'Show the Spectrum';
+
+    MsgLabAboutVer = 'Version 2.1.5';
+    MsgLabAboutAuthor = 'Author: rs.falcon';
+    MsgLabAboutAuthor2 = 'Additions: Pss';
+    MsgLabAboutMail = 'rmw.falcon@mail.ru';
+    MsgLabAboutMail2 = 'pssxx@mail.ru';
+    MsgLabAboutSite = 'Doom 2D: Forever Web-site';
+    MsgLabAboutHttp = 'www.doom2d.org';
+
+    MsgLabAddWads = 'WAD Files:';
+    MsgLabAddSections = 'WAD Sections:';
+
+    MsgLabSetsName = 'Map Name:';
+    MsgLabSetsDesc = 'Map Description';
+    MsgLabSetsAuthor = 'Author:';
+    MsgLabSetsBack = 'Background/Sky:';
+    MsgLabSetsMusic = 'Music:';
+    MsgLabSetsTextures = 'Textures:';
+    MsgLabSetsPanels = 'Panels:';
+    MsgLabSetsItems = 'Items:';
+    MsgLabSetsMonsters = 'Monsters:';
+    MsgLabSetsAreas = 'Areas:';
+    MsgLabSetsTriggers = 'Triggers:';
+    MsgLabSetsSizes = 'Current:';
+    MsgLabSetsWidth = 'Width:';
+    MsgLabSetsHeight = 'Height:';
+    MsgLabSetsMapmove = 'Direction to shift map objects:';
+    MsgLabSetsSnapping = 'Preserve snapping';
+
+    MsgLabLaunchTime = 'Time Limit:';
+    MsgLabLaunchSecs = 'seconds';
+    MsgLabLaunchScore = 'Score Limit:';
+    MsgLabLaunchPathWin = 'Path to Doom2DF.exe:';
+    MsgLabLaunchPathMac = 'Path to Doom 2D Forever.app:';
+    MsgLabLaunchPathUnix = 'Path to Doom2DF:';
+    MsgLabLaunchArgs = 'Launch Arguments:';
+
+    MsgLabEsGrid = 'Grid Step:';
+    MsgLabEsGridColor = 'Grid Color:';
+    MsgLabEsGridSize = 'Grid Dot Size:';
+    MsgLabEsBack = 'Background Color:';
+    MsgLabEsPreview = 'Texture Preview Background Color:';
+    MsgLabEsMinimap = 'Mini-map Scale:';
+    MsgLabEsRecent = 'Recent Maps List Contains:';
+    MsgLabEsLanguage = 'Language:';
+    MsgLabEsLanguageAuto = 'System Default';
+
+    MsgCtrlEsFiles = 'Files';
+    MsgLabEsCompress = 'Compress archive when save';
+    MsgLabEsBackup = 'Make backup before save';
+
+    MsgLabPackSaveTo = 'Save to:';
+    MsgLabPackMapName = 'Map Resource Name:';
+    MsgLabPackTextures = 'Texture Section:';
+    MsgLabPackSky = 'Sky Section:';
+    MsgLabPackMusic = 'Music Section:';
+
+    MsgLabMiniScale = 'Scale:';
+
+    MsgBtnApplyProps = 'Apply Properties';
+    MsgBtnOk = 'OK';
+    MsgBtnCancel = 'Cancel';
+    MsgBtnAdd = 'Add';
+    MsgBtnClose = 'Close';
+    MsgBtnAddClose = 'Add and Close';
+    MsgBtnTestAgain = 'Check';
+    MsgBtnStart = 'Run';
+    MsgBtnPack = 'Pack';
+    MsgBtnSave = 'Save';
+    MsgBtnNoSound = 'No sound';
+    MsgBtnTextureAdd = 'Add texture to the list';
+    MsgBtnTextureDelete = 'Delete texture from the list';
+    MsgBtnTextureEmpty = 'Deselect texture';
+
+    MsgLoadWad = 'Reading WAD';
+    MsgLoadMap = 'Loading Map';
+    MsgLoadTextures = 'Reading Textures';
+    MsgLoadPanels = 'Reading Panels';
+    MsgLoadItems = 'Reading Items';
+    MsgLoadMonsters = 'Reading Monsters';
+    MsgLoadAreas = 'Reading Areas';
+    MsgLoadTriggers = 'Reading Triggers';
+
+    MsgTestAreaWall = 'Player collides with the wall and will be stuck.';
+    MsgTestAreaWallStr = 'Area #%d collides with Map (%d:%d)';
+    MsgTestSpawns1 = 'There are several spawn points for First Player on the map';
+    MsgTestSpawns2 = 'There are several spawn points for Second Player on the map';
+    MsgTestSpawns = 'There are several spawn points on the map. Random one will be used.';
+    MsgTestNoDm = 'There are no DM spawn points on the map';
+    MsgTestNoDmEx = 'There are no DM spawn points on the map. Only "Single Player" mode available.';
+    MsgTestMonsterWall = 'Monster collides with the wall and will be stuck.';
+    MsgTestMonsterWallStr = 'Monster #%d collides with a map (%d:%d)';
+
+    MsgOptNoTextures = 'Texture list is empty';
+    MsgOptDeletedTextures = 'Deleted Textures:';
+    MsgOptTotalTextures = 'Textures Total:';
+    MsgOptTexDeleted = 'Textures Deleted:';
+    MsgOptPanelsOpt = 'Panels Optimized:';
+    MsgOptWalls = 'Walls Optimization...';
+    MsgOptFores = 'Foreground Optimization...';
+    MsgOptBacks = 'Background Optimization...';
+    MsgOptStairs = 'Steps Optimization...';
+    MsgOptWater = 'Water Optimization...';
+    MsgOptAcid1 = 'Acid 1 Optimization...';
+    MsgOptAcid2 = 'Acid 2 Optimization...';
+    MsgOptLifts = 'Streams Optimization...';
+    MsgOptBlockmon = 'Monster Boundaries Optimization...';
+    MsgOptTotalPanels = 'Panels Total:';
+    MsgOptPanelsAfter = 'Panels after Optimization:';
+
+    MsgWadSpecialMap = '<MAP WAD-FILE>';
+    MsgWadSpecialTexs = '<EXTRA TEXTURES>';
+
+    MsgFileFilterAll = 'Doom 2D: Forever Maps (*.dfz, *.dfzip, *.zip, *.wad)|*.dfz;*.dfzip;*.zip;*.wad|Doom 2D: Forever 0.30 Maps (*.ini)|*.ini|All Files (*.*)|*.*';
+    MsgFileFilterWad = 'Doom 2D: Forever Maps (*.dfz)|*.dfz|Doom 2D: Forever Maps (*.dfzip)|*.dfzip|Doom 2D: Forever Maps (*.zip)|*.zip|Doom 2D: Forever Maps (*.wad)|*.wad|All Files (*.*)|*.*';
+    MsgFileFilterExeMac = 'Doom 2D Forever.app|*.app|Doom 2D Forever (Unix Executable)|Doom2DF;*';
+    MsgFileFilterExeWin = 'Doom2DF.exe|Doom2DF.exe;*.exe';
+    MsgFileFilterExeUnix = 'Doom2DF|Doom2DF;*';
+
+    MsgEditorTitle = 'Doom 2D: Forever Map Editor';
 
 Var
 
 Var
-  _lc: Array [TStrings_Locale] of String;  // for the GUI (in UTF-8)
-  _glc: Array [TStrings_Locale] of String; // for GL text (in CP1251)
-
   BoolNames: Array [False..True] of String;
   DirNames: Array [D_LEFT..D_RIGHT] of String;
   DirNamesAdv: Array [0..3] of String;
   BoolNames: Array [False..True] of String;
   DirNames: Array [D_LEFT..D_RIGHT] of String;
   DirNamesAdv: Array [0..3] of String;
@@ -638,1184 +650,21 @@ Var
   AreaNames: Array [AREA_PLAYERPOINT1..AREA_BLUETEAMPOINT] of String;
   TriggerNames: Array [TRIGGER_EXIT..TRIGGER_MAX] of String;
 
   AreaNames: Array [AREA_PLAYERPOINT1..AREA_BLUETEAMPOINT] of String;
   TriggerNames: Array [TRIGGER_EXIT..TRIGGER_MAX] of String;
 
-
-procedure g_Language_Load(fileName: String);
+function g_Language_GetList (): TStringList;
 procedure g_Language_Set(lang: String);
 procedure g_Language_Set(lang: String);
-procedure g_Language_Dump(fileName: String);
 
 Implementation
 
 Uses
 
 Implementation
 
 Uses
+  g_options, IniFiles, gettext, LazFileUtils,
   SysUtils, e_log, f_main, f_about, f_activationtype,
   f_addresource_sky, f_addresource_sound,
   f_addresource_texture, f_choosetype, f_keys, f_mapcheck,
   SysUtils, e_log, f_main, f_about, f_activationtype,
   f_addresource_sky, f_addresource_sound,
   f_addresource_texture, f_choosetype, f_keys, f_mapcheck,
-  f_mapoptions, f_maptest, f_mapoptimization, f_options,
+  f_mapoptions, f_mapoptimization, f_options,
   f_packmap, f_savemap, f_saveminimap, f_selectmap, Forms, utils;
 
   f_packmap, f_savemap, f_saveminimap, f_selectmap, Forms, utils;
 
-Const
-  g_lang_default: Array [TStrings_Locale] of Array [1..3] of String = (
-    ('NOT ACCESSIBLE',                 'N/A',
-                                       'Н/Π”'),
-
-    ('ARRAY BOOL FALSE',               'No',
-                                       'НСт'),
-    ('ARRAY BOOL TRUE',                'Yes',
-                                       'Π”Π°'),
-
-    ('ARRAY DIR LEFT',                 'Left',
-                                       'Π’Π»Π΅Π²ΠΎ'),
-    ('ARRAY DIR RIGHT',                'Right',
-                                       'Π’ΠΏΡ€Π°Π²ΠΎ'),
-    ('ARRAY DIR SAME',                 'Don''t change',
-                                       'НС ΠΌΠ΅Π½ΡΡ‚ΡŒ'),
-    ('ARRAY DIR REVERSED',             'Reversed',
-                                       'ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅'),
-
-    ('ARRAY DIRBTN LEFT',              'Left',
-                                       'Π’Π»Π΅Π²ΠΎ'),
-    ('ARRAY DIRBTN RIGHT',             'Right',
-                                       'Π’ΠΏΡ€Π°Π²ΠΎ'),
-    ('ARRAY DIRBTN UP',                'Up',
-                                       'Π’Π²Π΅Ρ€Ρ…'),
-    ('ARRAY DIRBTN DOWN',              'Down',
-                                       'Π’Π½ΠΈΠ·'),
-
-    ('ARRAY PANEL WALL',               'Wall',
-                                       'Π‘Ρ‚Π΅Π½Π°'),
-    ('ARRAY PANEL BACK',               'Background',
-                                       'Π€ΠΎΠ½'),
-    ('ARRAY PANEL FRONT',              'Foreground',
-                                       'ΠŸΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½'),
-    ('ARRAY PANEL DOOR OPEN',          'Open Door',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°Ρ Π΄Π²Π΅Ρ€ΡŒ'),
-    ('ARRAY PANEL DOOR CLOSE',         'Closed Door',
-                                       'Закрытая Π΄Π²Π΅Ρ€ΡŒ'),
-    ('ARRAY PANEL STAIR',              'Step',
-                                       'Π‘Ρ‚ΡƒΠΏΠ΅Π½ΡŒ'),
-    ('ARRAY PANEL WATER',              'Water',
-                                       'Π’ΠΎΠ΄Π°'),
-    ('ARRAY PANEL ACID 1',             'Acid 1',
-                                       'ΠšΠΈΡΠ»ΠΎΡ‚Π° 1'),
-    ('ARRAY PANEL ACID 2',             'Acid 2',
-                                       'ΠšΠΈΡΠ»ΠΎΡ‚Π° 2'),
-    ('ARRAY PANEL LIFT UP',            'Stream Up',
-                                       'Π›ΠΈΡ„Ρ‚ Π²Π²Π΅Ρ€Ρ…'),
-    ('ARRAY PANEL LIFT DOWN',          'Stream Down',
-                                       'Π›ΠΈΡ„Ρ‚ Π²Π½ΠΈΠ·'),
-    ('ARRAY PANEL LIFT LEFT',          'Stream Left',
-                                       'ΠŸΠΎΡ‚ΠΎΠΊ Π²Π»Π΅Π²ΠΎ'),
-    ('ARRAY PANEL LIFT RIGHT',         'Stream Right',
-                                       'ΠŸΠΎΡ‚ΠΎΠΊ Π²ΠΏΡ€Π°Π²ΠΎ'),
-    ('ARRAY PANEL BLOCKMON',           'Monster Boundary',
-                                       'Π‘Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²'),
-
-    ('ARRAY FX NONE',                  'None',
-                                       'НСт'),
-    ('ARRAY FX TELEPORT',              'Teleport',
-                                       'ВСлСпортация'),
-    ('ARRAY FX RESPAWN',               'Respawn',
-                                       'РСспаун'),
-    ('ARRAY FX FIRE',                  'Arch-Vile Fire',
-                                       'Огонь ΠΊΠΎΠ»Π΄ΡƒΠ½Π°'),
-
-    ('ARRAY ITEM MEDKIT',              'Stimpack',
-                                       'АптСчка'),
-    ('ARRAY ITEM LARGE MEDKIT',        'Medikit',
-                                       'Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Π°ΠΏΡ‚Π΅Ρ‡ΠΊΠ°'),
-    ('ARRAY ITEM BLACK MEDKIT',        'Berserk Pack',
-                                       'Чёрная Π°ΠΏΡ‚Π΅Ρ‡ΠΊΠ°'),
-    ('ARRAY ITEM GREEN ARMOR',         'Green Armor',
-                                       'ЗСлёная Π±Ρ€ΠΎΠ½Ρ'),
-    ('ARRAY ITEM BLUE ARMOR',          'Blue Armor',
-                                       'Биняя Π±Ρ€ΠΎΠ½Ρ'),
-    ('ARRAY ITEM BLUE SPHERE',         'Soulsphere',
-                                       'Π¨Π°Ρ€ΠΈΠΊ 100%'),
-    ('ARRAY ITEM MEGASPHERE',          'Megasphere',
-                                       'ΠœΠ΅Π³Π°ΡΡ„Π΅Ρ€Π°'),
-    ('ARRAY ITEM HAZ SUIT',            'Envirosuit',
-                                       'Π—Π°Ρ‰ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΡΡ‚ΡŽΠΌ'),
-    ('ARRAY ITEM OXYGEN',              'Scuba',
-                                       'Акваланг'),
-    ('ARRAY ITEM INVULNERABILITY',     'Invulnerability',
-                                       'ΠΠ΅ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ'),
-    ('ARRAY ITEM CHAINSAW',            'Chainsaw',
-                                       'Π‘Π΅Π½Π·ΠΎΠΏΠΈΠ»Π°'),
-    ('ARRAY ITEM SHOTGUN',             'Shotgun',
-                                       'Π ΡƒΠΆΡŒΡ‘'),
-    ('ARRAY ITEM DB SHOTGUN',          'Super Shotgun',
-                                       'Двустволка'),
-    ('ARRAY ITEM CHAINGUN',            'Chaingun',
-                                       'ΠŸΡƒΠ»Π΅ΠΌΡ‘Ρ‚'),
-    ('ARRAY ITEM ROCKET LAUNCHER',     'Rocket Launcher',
-                                       'Π Π°ΠΊΠ΅Ρ‚Π½ΠΈΡ†Π°'),
-    ('ARRAY ITEM PLASMA RIFLE',        'Plasma Rifle',
-                                       'Плазмаган'),
-    ('ARRAY ITEM BFG',                 'BFG9000',
-                                       'BFG9000'),
-    ('ARRAY ITEM SUPER MINIGUN',       'Super Chaingun',
-                                       'Π‘ΡƒΠΏΠ΅Ρ€ΠΏΡƒΠ»Π΅ΠΌΡ‘Ρ‚'),
-    ('ARRAY ITEM FLAMETHROWER',        'Flamethrower',
-                                       'ΠžΠ³Π½Π΅ΠΌΡ‘Ρ‚'),
-    ('ARRAY ITEM CLIP',                'Clip',
-                                       'ΠŸΠ°Ρ‚Ρ€ΠΎΠ½Ρ‹'),
-    ('ARRAY ITEM AMMO BOX',            'Box of Bullets',
-                                       'Π―Ρ‰ΠΈΠΊ ΠΏΠ°Ρ‚Ρ€ΠΎΠ½ΠΎΠ²'),
-    ('ARRAY ITEM 4 SHELLS',            '4 Shells',
-                                       '4 Π³ΠΈΠ»ΡŒΠ·Ρ‹'),
-    ('ARRAY ITEM 25 SHELLS',           'Box of Shells',
-                                       '25 Π³ΠΈΠ»ΡŒΠ·'),
-    ('ARRAY ITEM 1 ROCKET',            'Rocket',
-                                       '1 Ρ€Π°ΠΊΠ΅Ρ‚Π°'),
-    ('ARRAY ITEM ROCKET BOX',          'Box of Rockets',
-                                       '5 Ρ€Π°ΠΊΠ΅Ρ‚'),
-    ('ARRAY ITEM CELL',                'Energy Cell',
-                                       'Π‘Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠ°'),
-    ('ARRAY ITEM LARGE CELL',          'Energy Cell Pack',
-                                       'БатарСя'),
-    ('ARRAY ITEM FUELCAN',             'Fuel Canister',
-                                       'ΠšΠ°Π½ΠΈΡΡ‚Ρ€Π°'),
-    ('ARRAY ITEM BACKPACK',            'Backpack',
-                                       'Рюкзак'),
-    ('ARRAY ITEM KEY RED',             'Red Key',
-                                       'ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('ARRAY ITEM KEY GREEN',           'Green Key',
-                                       'Π—Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('ARRAY ITEM KEY BLUE',            'Blue Key',
-                                       'Π‘ΠΈΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('ARRAY ITEM BOTTLE',              'Health Globe',
-                                       'Живая Π²ΠΎΠ΄Π°'),
-    ('ARRAY ITEM HELMET',              'Armor Shard',
-                                       'Π‘Ρ€ΠΎΠ½Π΅ΡˆΠ»Π΅ΠΌ'),
-    ('ARRAY ITEM JETPACK',             'Jetpack',
-                                       'Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Ρ†'),
-    ('ARRAY ITEM INVIS',               'Invisibility',
-                                       'ΠΠ΅Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ'),
-
-    ('ARRAY SHOT PISTOL',              'Pistol shot',
-                                       'ВыстрСл ΠΏΠΈΡΡ‚ΠΎΠ»Π΅Ρ‚Π°'),
-    ('ARRAY SHOT BULLET',              'Chaingun shot',
-                                       'ВыстрСл ΠΏΡƒΠ»Π΅ΠΌΡ‘Ρ‚Π°'),
-    ('ARRAY SHOT SHOTGUN',             'Shotgun shot',
-                                       'ВыстрСл Ρ€ΡƒΠΆΡŒΡ'),
-    ('ARRAY SHOT SSG',                 'Super Shotgun shot',
-                                       'ВыстрСл Π΄Π²ΡƒΡΡ‚Π²ΠΎΠ»ΠΊΠΈ'),
-    ('ARRAY SHOT IMP',                 'Imp fireball',
-                                       'Π¨Π°Ρ€ Π±Π΅ΡΠ°'),
-    ('ARRAY SHOT PLASMA',              'Blue plasma',
-                                       'Биняя ΠΏΠ»Π°Π·ΠΌΠ°'),
-    ('ARRAY SHOT SPIDER',              'Arachnotron plasma',
-                                       'Плазма Π°Ρ€Π°Ρ…Π½ΠΎΡ‚Ρ€ΠΎΠ½Π°'),
-    ('ARRAY SHOT CACO',                'Cacodemon fireball',
-                                       'Π¨Π°Ρ€ ΠΊΠ°ΠΊΠΎΠ΄Π΅ΠΌΠΎΠ½Π°'),
-    ('ARRAY SHOT BARON',               'Hell Baron projectile',
-                                       'ВыстрСл Π±Π°Ρ€ΠΎΠ½Π° Π°Π΄Π°'),
-    ('ARRAY SHOT MANCUB',              'Mancubus gunshot',
-                                       'Бнаряд ΠΌΠ°Π½ΠΊΡƒΠ±ΡƒΡΠ°'),
-    ('ARRAY SHOT REV',                 'Revenant projectile',
-                                       'Бнаряд ΡΠΊΠ΅Π»Π΅Ρ‚Π°'),
-    ('ARRAY SHOT ROCKET',              'Rocket',
-                                       'Π Π°ΠΊΠ΅Ρ‚Π°'),
-    ('ARRAY SHOT BFG',                 'BFG ball',
-                                       'Π¨Π°Ρ€ BFG'),
-    ('ARRAY SHOT EXPL',                'Explosion',
-                                       'Π’Π·Ρ€Ρ‹Π²'),
-    ('ARRAY SHOT BFGEXPL',             'BFG explosion',
-                                       'Π’Π·Ρ€Ρ‹Π² BFG'),
-    ('ARRAY SHOT FLAME',               'Flame',
-                                       'Огонь'),
-
-    ('ARRAY MON DEMON',                'Pinky',
-                                       'Π”Π΅ΠΌΠΎΠ½'),
-    ('ARRAY MON IMP',                  'Imp',
-                                       'БСс'),
-    ('ARRAY MON ZOMBIE',               'Zombie',
-                                       'Π—ΠΎΠΌΠ±ΠΈ'),
-    ('ARRAY MON SERGEANT',             'Sergeant',
-                                       'Π‘Π΅Ρ€ΠΆΠ°Π½Ρ‚'),
-    ('ARRAY MON CYBER',                'Cyberdemon',
-                                       'ΠšΠΈΠ±Π΅Ρ€Π΄Π΅ΠΌΠΎΠ½'),
-    ('ARRAY MON CGUN',                 'Commando',
-                                       'ΠŸΡƒΠ»Π΅ΠΌΡ‘Ρ‚Ρ‡ΠΈΠΊ'),
-    ('ARRAY MON HELL BARON',           'Hell Baron',
-                                       'Π‘Π°Ρ€ΠΎΠ½ Π°Π΄Π°'),
-    ('ARRAY MON HELL KNIGHT',          'Hell Knight',
-                                       'Π Ρ‹Ρ†Π°Ρ€ΡŒ Π°Π΄Π°'),
-    ('ARRAY MON CACODEMON',            'Cacodemon',
-                                       'КакодСмон'),
-    ('ARRAY MON LOST SOUL',            'Lost Soul',
-                                       'ΠžΠ³Π½Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅ΠΏ'),
-    ('ARRAY MON PAIN ELEMENTAL',       'Pain Elemental',
-                                       'Авиабаза'),
-    ('ARRAY MON MASTERMIND',           'Spider Mastermind',
-                                       'Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΠ°ΡƒΠΊ'),
-    ('ARRAY MON ARACHNATRON',          'Arachnotron',
-                                       'Арахнотрон'),
-    ('ARRAY MON MANCUBUS',             'Mancubus',
-                                       'ΠœΠ°Π½ΠΊΡƒΠ±ΡƒΡ'),
-    ('ARRAY MON REVENANT',             'Revenant',
-                                       'Π‘ΠΊΠ΅Π»Π΅Ρ‚'),
-    ('ARRAY MON ARCHVILE',             'Arch-Vile',
-                                       'ΠšΠΎΠ»Π΄ΡƒΠ½'),
-    ('ARRAY MON FISH',                 'Piranha',
-                                       'Π Ρ‹Π±Π°'),
-    ('ARRAY MON BARREL',               'Barrel',
-                                       'Π‘ΠΎΡ‡ΠΊΠ°'),
-    ('ARRAY MON ROBOT',                'Robot',
-                                       'Π ΠΎΠ±ΠΎΡ‚'),
-    ('ARRAY MON PRIKOLIST',            'Prikolist',
-                                       'ΠŸΡ€ΠΈΠΊΠΎΠ»ΠΈΡΡ‚'),
-
-    ('ARRAY AREA PLAYER ONE',          'Player 1',
-                                       'ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ'),
-    ('ARRAY AREA PLAYER TWO',          'Player 2',
-                                       'Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊ'),
-    ('ARRAY AREA DM',                  'DM Spawn Point',
-                                       'Π’ΠΎΡ‡ΠΊΠ° DM'),
-    ('ARRAY AREA FLAG RED',            'Red Flag',
-                                       'ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³'),
-    ('ARRAY AREA FLAG BLUE',           'Blue Flag',
-                                       'Π‘ΠΈΠ½ΠΈΠΉ Ρ„Π»Π°Π³'),
-    ('ARRAY AREA FLAG DOM',            'Domination Flag',
-                                       'DOM Ρ„Π»Π°Π³'),
-    ('ARRAY AREA TEAM RED',            'Red Team',
-                                       'ΠšΡ€Π°ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('ARRAY AREA TEAM BLUE',           'Blue Team',
-                                       'Биняя ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-
-    ('ARRAY TR EXIT',                  'Exit',
-                                       'Π’Ρ‹Ρ…ΠΎΠ΄'),
-    ('ARRAY TR TELEPORT',              'Teleport',
-                                       'ВСлСпортация'),
-    ('ARRAY TR DOOR OPEN',             'Open Door',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²Π΅Ρ€ΡŒ'),
-    ('ARRAY TR DOOR CLOSE',            'Close Door',
-                                       'Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²Π΅Ρ€ΡŒ'),
-    ('ARRAY TR DOOR SWITCH',           'Door',
-                                       'Π”Π²Π΅Ρ€ΡŒ'),
-    ('ARRAY TR DOOR 5 SEC',            'Door (5 sec)',
-                                       'Π”Π²Π΅Ρ€ΡŒ (5 ΡΠ΅ΠΊΡƒΠ½Π΄)'),
-    ('ARRAY TR TRAP CLOSE',            'Close Trap',
-                                       'Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ'),
-    ('ARRAY TR TRAP',                  'Trap',
-                                       'Π›ΠΎΠ²ΡƒΡˆΠΊΠ°'),
-    ('ARRAY TR EXTEND',                'Extender',
-                                       'Π Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅Π»ΡŒ'),
-    ('ARRAY TR SECRET',                'Secret',
-                                       'Π‘Π΅ΠΊΡ€Π΅Ρ‚'),
-    ('ARRAY TR LIFT UP',               'Turn stream up/left',
-                                       'Π›ΠΈΡ„Ρ‚ Π²Π²Π΅Ρ€Ρ…/ΠΏΠΎΡ‚ΠΎΠΊ Π²Π»Π΅Π²ΠΎ'),
-    ('ARRAY TR LIFT DOWN',             'Turn stream down/right',
-                                       'Π›ΠΈΡ„Ρ‚ Π²Π½ΠΈΠ·/ΠΏΠΎΡ‚ΠΎΠΊ Π²ΠΏΡ€Π°Π²ΠΎ'),
-    ('ARRAY TR LIFT SWITCH',           'Revert stream',
-                                       'Π›ΠΈΡ„Ρ‚'),
-    ('ARRAY TR TEXTURE',               'Change Texture',
-                                       'Π‘ΠΌΠ΅Π½Π° Ρ‚Скстуры'),
-    ('ARRAY TR ON',                    'Enable Trigger',
-                                       'Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€'),
-    ('ARRAY TR OFF',                   'Disable Trigger',
-                                       'Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€'),
-    ('ARRAY TR SWITCH',                'Trigger Toggle',
-                                       'ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€'),
-    ('ARRAY TR SOUND',                 'Play Sound',
-                                       'Π—Π²ΡƒΠΊ'),
-    ('ARRAY TR SPAWN MONSTER',         'Spawn Monster',
-                                       'Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('ARRAY TR SPAWN ITEM',            'Spawn Item',
-                                       'Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚'),
-    ('ARRAY TR MUSIC',                 'Play Music',
-                                       'ΠœΡƒΠ·Ρ‹ΠΊΠ°'),
-    ('ARRAY TR PUSH',                  'Push',
-                                       'УскорСниС'),
-    ('ARRAY TR SCORE',                 'Team Score',
-                                       'НачислСниС ΠΎΡ‡ΠΊΠΎΠ²'),
-    ('ARRAY TR MESSAGE',               'Message',
-                                       'Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅'),
-    ('ARRAY TR DAMAGE',                'Damage',
-                                       'Π£Ρ€ΠΎΠ½'),
-    ('ARRAY TR HEALTH',                'Healer',
-                                       'ΠžΠ·Π΄ΠΎΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒ'),
-    ('ARRAY TR SHOT',                  'Turret',
-                                       'Π’ΡƒΡ€Π΅Π»ΡŒ'),
-    ('ARRAY TR EFFECT',                'Effect',
-                                       'Π­Ρ„Ρ„Π΅ΠΊΡ‚'),
-
-    ('PROP ID',                        'ID',
-                                       'ID'),
-    ('PROP X',                         'X',
-                                       'X'),
-    ('PROP Y',                         'Y',
-                                       'Y'),
-    ('PROP WIDTH',                     'Width',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π°'),
-    ('PROP HEIGHT',                    'Height',
-                                       'Высота'),
-    ('PROP PANEL TYPE',                'Panel Type',
-                                       'Π’ΠΈΠΏ ΠΏΠ°Π½Π΅Π»ΠΈ'),
-    ('PROP PANEL TEX',                 'Texture',
-                                       'ВСкстура'),
-    ('PROP PANEL ALPHA',               'Transparency',
-                                       'ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ'),
-    ('PROP PANEL BLEND',               'Blending',
-                                       'БмСшиваниС'),
-    ('PROP DM ONLY',                   'DM Only',
-                                       'Волько Π² DM'),
-    ('PROP ITEM FALLS',                'Falls',
-                                       'ΠŸΠ°Π΄Π°Π΅Ρ‚'),
-    ('PROP DIRECTION',                 'Direction',
-                                       'НаправлСниС'),
-
-    ('PROP TR TYPE',                   'Trigger Type',
-                                       'Π’ΠΈΠΏ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°'),
-    ('PROP TR ENABLED',                'Enabled',
-                                       'Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½'),
-    ('PROP TR TEXTURE PANEL',          'Textured Panel',
-                                       'ПанСль Ρ Ρ‚Скстурой'),
-    ('PROP TR ACTIVATION',             'Activation Type',
-                                       'Π’ΠΈΠΏ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ'),
-    ('PROP TR KEYS',                   'Keys',
-                                       'ΠšΠ»ΡŽΡ‡ΠΈ'),
-    ('PROP TR D2D',                    'D2D-like',
-                                       'Как Π² D2D'),
-    ('PROP TR SILENT',                 'Silent',
-                                       'Π‘Π΅Π· Π·Π²ΡƒΠΊΠ°'),
-    ('PROP TR COUNT',                  'Count',
-                                       'ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ'),
-    ('PROP TR INTERVAL',               'Interval (in ticks)',
-                                       'Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» (Π² Ρ‚ΠΈΠΊΠ°Ρ…)'),
-    ('PROP TR HEALTH',                 'Health',
-                                       'Π—Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅'),
-    ('PROP TR NEXT MAP',               'Next Map',
-                                       'Π‘Π»Π΅Π΄. ΠΊΠ°Ρ€Ρ‚Π°'),
-    ('PROP TR TELEPORT TO',            'Teleport to',
-                                       'Π’ΠΎΡ‡ΠΊΠ° Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚Π°'),
-    ('PROP TR TELEPORT SILENT',        'Silent',
-                                       'Π’ΠΈΡ…ΠΈΠΉ Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚'),
-    ('PROP TR TELEPORT DIR',           'New Direction',
-                                       'НаправлСниС ΠΏΠΎΡΠ»Π΅'),
-    ('PROP TR DOOR PANEL',             'Door Panel',
-                                       'ПанСль Π΄Π²Π΅Ρ€ΠΈ'),
-    ('PROP TR TRAP PANEL',             'Trap Panel',
-                                       'ПанСль Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ'),
-    ('PROP TR EX AREA',                'Action Area',
-                                       'ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚вия'),
-    ('PROP TR EX DELAY',               'Delay',
-                                       'Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°'),
-    ('PROP TR EX COUNT',               'Count',
-                                       'Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ'),
-    ('PROP TR EX MONSTER',             'Monster ID',
-                                       'ID ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('PROP TR EX RANDOM',              'Random',
-                                       'Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ'),
-    ('PROP TR LIFT PANEL',             'Stream Panel',
-                                       'ПанСль Π»ΠΈΡ„Ρ‚Π°'),
-    ('PROP TR TEXTURE ONCE',           'Once',
-                                       'Один Ρ€Π°Π·'),
-    ('PROP TR TEXTURE ANIM ONCE',      'Animate Once',
-                                       'Аним. ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·'),
-    ('PROP TR SOUND NAME',             'Sound                              (snd)',
-                                       'Π—Π²ΡƒΠΊ                               (snd)'),
-    ('PROP TR SOUND VOLUME',           'Volume',
-                                       'Π“Ρ€ΠΎΠΌΠΊΠΎΡΡ‚ΡŒ'),
-    ('PROP TR SOUND PAN',              'Pan',
-                                       'Π‘Ρ‚Π΅Ρ€Π΅ΠΎ'),
-    ('PROP TR SOUND COUNT',            'Loops',
-                                       'Π˜Π³Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·'),
-    ('PROP TR SOUND LOCAL',            'Local',
-                                       'Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ'),
-    ('PROP TR SOUND SWITCH',           'Switch',
-                                       'ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅'),
-    ('PROP TR FX TYPE',                'Effect',
-                                       'Π­Ρ„Ρ„Π΅ΠΊΡ‚'),
-    ('PROP TR SPAWN TO',               'Spawn at',
-                                       'Π’ΠΎΡ‡ΠΊΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ'),
-    ('PROP TR SPAWN MAX',              'Maximum',
-                                       'ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ'),
-    ('PROP TR SPAWN DELAY',            'Autospawn (in ticks)',
-                                       'Автоспаун (Π² Ρ‚ΠΈΠΊΠ°Ρ…)'),
-    ('PROP TR MONSTER TYPE',           'Monster',
-                                       'Π’ΠΈΠΏ ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('PROP TR MONSTER ACTIVE',         'Active',
-                                       'АктивСн'),
-    ('PROP TR MONSTER BEHAVIOUR',      'Behaviour',
-                                       'ПовСдСниС'),
-    ('PROP TR MONSTER BEHAVIOUR 0',    'Normal',
-                                       'ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠ΅'),
-    ('PROP TR MONSTER BEHAVIOUR 1',    'Killer',
-                                       'Π£Π±ΠΈΠΉΡ†Π°'),
-    ('PROP TR MONSTER BEHAVIOUR 2',    'Maniac',
-                                       'Маньяк'),
-    ('PROP TR MONSTER BEHAVIOUR 3',    'Insane',
-                                       'ΠŸΠΎΠ΅Ρ…Π°Π²ΡˆΠΈΠΉ'),
-    ('PROP TR MONSTER BEHAVIOUR 4',    'Cannibal',
-                                       'Каннибал'),
-    ('PROP TR MONSTER BEHAVIOUR 5',    'Good',
-                                       'Π”ΠΎΠ±Ρ€Ρ‹ΠΉ'),
-    ('PROP TR ITEM TYPE',              'Item',
-                                       'Π’ΠΈΠΏ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°'),
-    ('PROP TR MUSIC NAME',             'Music',
-                                       'ΠœΡƒΠ·Ρ‹ΠΊΠ°'),
-    ('PROP TR MUSIC ACT',              'Action                             (m)',
-                                       'ДСйствиС                           (m)'),
-    ('PROP TR MUSIC ON',               'Play',
-                                       'Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ'),
-    ('PROP TR MUSIC OFF',              'Pause',
-                                       'Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ'),
-    ('PROP TR PUSH ANGLE',             'Angle',
-                                       'Π£Π³ΠΎΠ»'),
-    ('PROP TR PUSH FORCE',             'Force',
-                                       'Π‘ΠΈΠ»Π°'),
-    ('PROP TR PUSH RESET',             'Reset velocity',
-                                       'Π‘Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ'),
-    ('PROP TR SCORE ACT',              'Action                             (s)',
-                                       'ДСйствиС                           (s)'),
-    ('PROP TR SCORE ACT 0',            'Add points',
-                                       'ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‡ΠΊΠΈ'),
-    ('PROP TR SCORE ACT 1',            'Subtract points',
-                                       'ΠžΡ‚Π½ΡΡ‚ΡŒ ΠΎΡ‡ΠΊΠΈ'),
-    ('PROP TR SCORE ACT 2',            'Team Wins',
-                                       'Π’Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ'),
-    ('PROP TR SCORE ACT 3',            'Team Loses',
-                                       'ΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ'),
-    ('PROP TR SCORE TEAM',             'Team',
-                                       'Команда'),
-    ('PROP TR SCORE TEAM 0',           'My',
-                                       'Бвоя'),
-    ('PROP TR SCORE TEAM 1',           'Enemy',
-                                       'Π‘ΠΎΠΏΠ΅Ρ€Π½ΠΈΠΊΠ°'),
-    ('PROP TR SCORE TEAM 2',           'Red',
-                                       'ΠšΡ€Π°ΡΠ½Π°Ρ'),
-    ('PROP TR SCORE TEAM 3',           'Blue',
-                                       'Биняя'),
-    ('PROP TR SCORE CON',              'Console message',
-                                       'Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ'),
-    ('PROP TR SCORE MSG',              'Game message',
-                                       'Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΈΠ³Ρ€Ρƒ'),
-    ('PROP TR DAMAGE VALUE',           'Damage',
-                                       'Π£Ρ‰Π΅Ρ€Π±'),
-    ('PROP TR HEALTH MAX',             'To maximum',
-                                       'Π”ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠ°'),
-    ('PROP TR SHOT TYPE',              'Projectile',
-                                       'Бнаряд'),
-    ('PROP TR SHOT SOUND',             'Shot sound',
-                                       'Π—Π²ΡƒΠΊ Π²Ρ‹ΡΡ‚Ρ€Π΅Π»Π°'),
-    ('PROP TR SHOT ANGLE',             'Angle',
-                                       'Π£Π³ΠΎΠ»'),
-    ('PROP TR SHOT ACC',               'Spread',
-                                       'Разброс'),
-    ('PROP TR SHOT TO',                'Auto targeting',
-                                       'АвтонавСдСниС'),
-    ('PROP TR SHOT TO 0',              'None',
-                                       'НСт'),
-    ('PROP TR SHOT TO 1',              'Monsters',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹'),
-    ('PROP TR SHOT TO 2',              'Players',
-                                       'Π˜Π³Ρ€ΠΎΠΊΠΈ'),
-    ('PROP TR SHOT TO 3',              'Red team',
-                                       'ΠšΡ€Π°ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR SHOT TO 4',              'Blue team',
-                                       'Биняя ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR SHOT TO 5',              'Monsters, players',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹, ΠΈΠ³Ρ€ΠΎΠΊΠΈ'),
-    ('PROP TR SHOT TO 6',              'Players, monsters',
-                                       'Π˜Π³Ρ€ΠΎΠΊΠΈ, ΠΌΠΎΠ½ΡΡ‚Ρ€Ρ‹'),
-    ('PROP TR SHOT AIM',               'Auto-aiming mode',
-                                       'Π Π΅ΠΆΠΈΠΌ Π°Π²Ρ‚онавСдСния'),
-    ('PROP TR SHOT AIM 0',             'Trigger area',
-                                       'ΠžΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°'),
-    ('PROP TR SHOT AIM 1',             'Entire map',
-                                       'По Π²ΡΠ΅ΠΉ ΠΊΠ°Ρ€Ρ‚Π΅'),
-    ('PROP TR SHOT AIM 2',             'Trace trigger area',
-                                       'ΠžΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° Ρ Ρ‚рассировкой'),
-    ('PROP TR SHOT AIM 3',             'Trace entire map',
-                                       'Вся ΠΊΠ°Ρ€Ρ‚Π° Ρ Ρ‚рассировкой'),
-    ('PROP TR SHOT AMMO',              'Ammo limit',
-                                       'Кол-Π²ΠΎ ΠΏΠ°Ρ‚Ρ€ΠΎΠ½ΠΎΠ²'),
-    ('PROP TR SHOT RELOAD',            'Reload interval (in ticks)',
-                                       'ΠŸΠ΅Ρ€Π΅Π·Π°Ρ€ΡΠ΄ΠΊΠ° (Π² Ρ‚ΠΈΠΊΠ°Ρ…)'),
-    ('PROP TR SHOT SIGHT',             'Sight interval (in ticks)',
-                                       'РСакция (Π² Ρ‚ΠΈΠΊΠ°Ρ…)'),
-    ('PROP TR SHOT PANEL',             'Indicator panel',
-                                       'ПанСль ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ'),
-    ('PROP TR MESSAGE KIND',           'Message kind',
-                                       'Π’ΠΈΠΏ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ'),
-    ('PROP TR MESSAGE KIND 0',         'Console message',
-                                       'ВСкст Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ'),
-    ('PROP TR MESSAGE KIND 1',         'Event message',
-                                       'ΠšΡ€ΡƒΠΏΠ½Ρ‹ΠΉ Ρ‚Скст ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ'),
-    ('PROP TR MESSAGE TO',             'Send to',
-                                       'ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ'),
-    ('PROP TR MESSAGE TO 0',           'Me',
-                                       'Π―'),
-    ('PROP TR MESSAGE TO 1',           'My team',
-                                       'Моя ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR MESSAGE TO 2',           'Enemy team',
-                                       'ВраТСская ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR MESSAGE TO 3',           'Red team',
-                                       'ΠšΡ€Π°ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR MESSAGE TO 4',           'Blue team',
-                                       'Биняя ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('PROP TR MESSAGE TO 5',           'Everyone',
-                                       'ВсС ΠΈΠ³Ρ€ΠΎΠΊΠΈ'),
-    ('PROP TR MESSAGE TEXT',           'Message text',
-                                       'ВСкст ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ'),
-    ('PROP TR MESSAGE TIME',           'Time (in ticks)',
-                                       'ВрСмя ΠΏΠΎΠΊΠ°Π·Π° (Π² Ρ‚ΠΈΠΊΠ°Ρ…)'),
-    ('PROP TR EFFECT TYPE',            'Effect type',
-                                       'Π’ΠΈΠΏ ΡΡ„Ρ„Π΅ΠΊΡ‚Π°'),
-    ('PROP TR EFFECT SUBTYPE',         'Effect subtype',
-                                       'ΠŸΠΎΠ΄Ρ‚ΠΈΠΏ ΡΡ„Ρ„Π΅ΠΊΡ‚Π°'),
-    ('PROP TR EFFECT COLOR',           'Effect color',
-                                       'Π¦Π²Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚Π°'),
-    ('PROP TR EFFECT CENTER',          'Trigger center',
-                                       'По Ρ†Π΅Π½Ρ‚Ρ€Ρƒ'),
-    ('PROP TR EFFECT VELX',            'Horizontal speed',
-                                       'Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ'),
-    ('PROP TR EFFECT VELY',            'Vertical speed',
-                                       'Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ'),
-    ('PROP TR EFFECT SPL',             'Speed variance left',
-                                       'ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ'),
-    ('PROP TR EFFECT SPR',             'Speed variance right',
-                                       'ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π²ΠΏΡ€Π°Π²ΠΎ'),
-    ('PROP TR EFFECT SPU',             'Speed variance up',
-                                       'ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ…'),
-    ('PROP TR EFFECT SPD',             'Speed variance down',
-                                       'ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ·'),
-    ('PROP TR EFFECT PARTICLE',        'Particle generator',
-                                       'Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‡Π°ΡΡ‚ΠΈΡ†'),
-    ('PROP TR EFFECT ANIMATION',       'Animation',
-                                       'Анимация'),
-    ('PROP TR EFFECT SLIQUID',         'Water splash',
-                                       'Π‘Ρ€Ρ‹Π·Π³ΠΈ Π²ΠΎΠ΄Ρ‹'),
-    ('PROP TR EFFECT LLIQUID',         'Light colored splash',
-                                       'Π¦Π²Π΅Ρ‚Π½Ρ‹Π΅ Π±Ρ€Ρ‹Π·Π³ΠΈ (свСтлСС)'),
-    ('PROP TR EFFECT DLIQUID',         'Dark colored splash',
-                                       'Π¦Π²Π΅Ρ‚Π½Ρ‹Π΅ Π±Ρ€Ρ‹Π·Π³ΠΈ (Ρ‚Π΅ΠΌΠ½Π΅Π΅)'),
-    ('PROP TR EFFECT BLOOD',           'Blood',
-                                       'ΠšΡ€ΠΎΠ²ΡŒ'),
-    ('PROP TR EFFECT SPARK',           'Sparks',
-                                       'Π˜ΡΠΊΡ€Ρ‹'),
-    ('PROP TR EFFECT BUBBLE',          'Bubbles',
-                                       'ΠŸΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ'),
-
-    ('MSG ERROR',                      'Error',
-                                       'Ошибка'),
-    ('MSG WRONG TEXWIDTH',             'Panel Width must be a multiple of Texture Width (%d)',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½Π° ΡˆΠΈΡ€ΠΈΠ½Π΅ Ρ‚Скстуры (%d)'),
-    ('MSG WRONG TEXHEIGHT',            'Panel Height must be a multiple of Texture Height (%d)',
-                                       'Высота ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½Π° Π²Ρ‹ΡΠΎΡ‚Π΅ Ρ‚Скстуры (%d)'),
-    ('MSG WRONG ALPHA',                'Transparency must be in [0..255] interval',
-                                       'ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ [0..255]'),
-    ('MSG WRONG SIZE',                 'Width and Height must be greater than 0',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π° ΠΈ Π²Ρ‹ΡΠΎΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠ΅ 0'),
-    ('MSG WRONG XY',                   'X or Y coordinate hasn''t been set',
-                                       'НС Π·Π°Π΄Π°Π½Π° X ΠΈΠ»ΠΈ Y ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°'),
-    ('MSG TEXTURE ALREADY',            'Texture "%s" already exists',
-                                       'ВСкстура "%s" ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°'),
-    ('MSG RES NAME 64',                'Resource "%s" name must not be longer than 64 chars',
-                                       'Имя Ρ€Π΅ΡΡƒΡ€ΡΠ° "%s" Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 64 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²'),
-    ('MSG CHOOSE ITEM',                'Select Item',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚'),
-    ('MSG CHOOSE MONSTER',             'Select Monster',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('MSG CHOOSE AREA',                'Select Area',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ'),
-    ('MSG CHOOSE TEXTURE',             'Select Texture',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Скстуру'),
-    ('MSG CHOOSE RES',                 'Resource hasn''t been selected',
-                                       'НС Π²Ρ‹Π±Ρ€Π°Π½ Ρ€Π΅ΡΡƒΡ€Ρ'),
-    ('MSG EXIT',                       'Exit',
-                                       'Π’Ρ‹Ρ…ΠΎΠ΄'),
-    ('MSG EXIT PROMT',                 'Leaving so soon?',
-                                       'Π£ΠΆΠ΅ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚Π΅?'),
-    ('MSG DEL TEXTURE',                'Delete the texture',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Скстуру'),
-    ('MSG DEL TEXTURE PROMT',          'Delete the texture "%s" ?',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Скстуру "%s" ?'),
-    ('MSG DEL TEXTURE CANT',           'Can''t delete texture in use. Replace it on all panels with this texture.',
-                                       'НСльзя ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Ρ‚Скстуру. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Ρ‘ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ Π½Π΅ΠΉ.'),
-    ('MSG DEL RECENT',                 'File does not longer exist',
-                                       'Π­Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅Ρ‚'),
-    ('MSG DEL RECENT PROMT',           'Remove entry from recent list?',
-                                       'Π£Π±Ρ€Π°Ρ‚ΡŒ Π·Π°ΠΏΠΈΡΡŒ ΠΈΠ· ΠΈΡΡ‚ΠΎΡ€ΠΈΠΈ?'),
-    ('MSG CLEAR MAP',                  'New map',
-                                       'Новая ΠΊΠ°Ρ€Ρ‚Π°'),
-    ('MSG CLEAR MAP PROMT',            'Clear the entire map?',
-                                       'ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π²ΡΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ?'),
-    ('MSG DELETE MAP',                 'Delete the map',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MSG DELETE MAP PROMT',           'Delete the map "%s" from "%s" ?',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ "%s" ΠΈΠ· "%s" ?'),
-    ('MSG MAP DELETED',                'Map is deleted',
-                                       'ΠšΠ°Ρ€Ρ‚Π° ΡƒΠ΄Π°Π»Π΅Π½Π°'),
-    ('MSG MAP DELETED PROMT',          'Map "%s" is deleted',
-                                       'ΠšΠ°Ρ€Ρ‚Π° "%s" ΡƒΠ΄Π°Π»Π΅Π½Π°'),
-    ('MSG REOPEN MAP PROMT',           'Reopen this map?',
-                                       'Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Π·Π°Π½ΠΎΠ²ΠΎ?'),
-    ('MSG EXEC ERROR',                 'Game start error',
-                                       'Ошибка Π·Π°ΠΏΡƒΡΠΊΠ° ΠΈΠ³Ρ€Ρ‹'),
-    ('MSG SOUND ERROR',                'Can''t play sound',
-                                       'НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊ'),
-    ('MSG WAD ERROR',                  'Can''t open WAD: %s',
-                                       'Ошибка ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ WAD: %s'),
-    ('MSG RES ERROR',                  'Can''t read resource: %s:%s\%s',
-                                       'Ошибка ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠ°: %s:%s\%s'),
-    ('MSG PACKED',                     'Map "%s" with resources saved to "%s"',
-                                       'ΠšΠ°Ρ€Ρ‚Π° "%s" Π²ΠΌΠ΅ΡΡ‚Π΅ Ρ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π° Π² "%s"'),
-    ('MSG MAP EXISTS',                 'Map "%s" already exists. Overwrite?',
-                                       'ΠšΠ°Ρ€Ρ‚Π° "%s" ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ?'),
-    ('MSG SAVE MAP',                   'Save the map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-
-    ('HINT TELEPORT',                  'Choose destination of Teleport',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚Π°'),
-    ('HINT SPAWN',                     'Choose Spawn point',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ'),
-    ('HINT PANEL DOOR',                'Choose Door',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΡŒ Π΄Π²Π΅Ρ€ΠΈ'),
-    ('HINT PANEL TEXTURE',             'Choose textured Panel',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΡŒ Ρ Ρ‚Скстурой'),
-    ('HINT PANEL SHOT',                'Choose textured shot indicator Panel',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ‹ΡΡ‚Ρ€Π΅Π»Π° Ρ Ρ‚Скстурой'),
-    ('HINT PANEL LIFT',                'Choose Stream Panel',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Π½Π΅Π»ΡŒ Π»ΠΈΡ„Ρ‚Π°'),
-    ('HINT MONSTER',                   'Choose Monster',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('HINT EXT AREA',                  'Specify action Area',
-                                       'Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚вия'),
-    ('HINT WIDTH',                     'Width: %d',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π°: %d'),
-    ('HINT HEIGHT',                    'Height: %d',
-                                       'Высота: %d'),
-
-    ('MENU FILE',                      'File',
-                                       'Π€Π°ΠΉΠ»'),
-    ('MENU FILE NEW',                  'New Map',
-                                       'Новая ΠΊΠ°Ρ€Ρ‚Π°'),
-    ('MENU FILE OPEN',                 'Open Map',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU FILE SAVE',                 'Save Map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU FILE SAVE AS',              'Save Map As...',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΊΠ°ΠΊ...'),
-    ('MENU FILE OPEN WAD',             'Select Map',
-                                       'Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU FILE REOPEN',               'Reopen Map',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ'),
-    ('MENU FILE SAVE MINI',            'Save Mini-map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU FILE DELETE',               'Delete Map from WAD...',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΈΠ· WAD...'),
-    ('MENU FILE PACK MAP',             'Pack Map',
-                                       'Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU FILE EXIT',                 'Exit',
-                                       'Π’Ρ‹Ρ…ΠΎΠ΄'),
-
-    ('MENU EDIT',                      'Edit',
-                                       'ΠŸΡ€Π°Π²ΠΊΠ°'),
-    ('MENU EDIT UNDO',                 'Undo',
-                                       'ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ'),
-    ('MENU EDIT COPY',                 'Copy',
-                                       'ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ'),
-    ('MENU EDIT CUT',                  'Cut',
-                                       'Π’Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ'),
-    ('MENU EDIT PASTE',                'Paste',
-                                       'Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ'),
-    ('MENU EDIT SELECT ALL',           'Select All',
-                                       'Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΡΡ‘'),
-    ('MENU EDIT TO FORE',              'Bring to Front',
-                                       'ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Ρ‘Π΄'),
-    ('MENU EDIT TO BACK',              'Send to Back',
-                                       'ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π½Π°Π·Π°Π΄'),
-
-    ('MENU TOOLS',                     'Tools',
-                                       'Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹'),
-    ('MENU TOOLS SNAP GRID',           'Snap to Grid',
-                                       'ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΡΠ΅Ρ‚ΠΊΠ΅'),
-    ('MENU TOOLS MINIMAP',             'Show Mini-map',
-                                       'Мини-ΠΊΠ°Ρ€Ρ‚Π°'),
-    ('MENU TOOLS STEP GRID',           'Switch Grid step',
-                                       'Π‘ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠ°Π³ ΡΠ΅Ρ‚ΠΊΠΈ'),
-    ('MENU TOOLS SHOW EDGES',          'Switch Map edges',
-                                       'Π“Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('MENU TOOLS LAYERS',              'Layers',
-                                       'Π‘Π»ΠΎΠΈ'),
-
-    ('MENU SERV',                      'Service',
-                                       'БСрвис'),
-    ('MENU SERV TEST',                 'Check the Map',
-                                       'ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('MENU SERV OPT',                  'Optimize the Map',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('MENU SERV PREVIEW',              'Map Preview',
-                                       'ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€'),
-    ('MENU SERV LAUNCH',               'In-game test',
-                                       'ВСст ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² ΠΈΠ³Ρ€Π΅'),
-
-    ('MENU SETS',                      'Settings',
-                                       'Настройка'),
-    ('MENU SETS MAP',                  'Map parameters',
-                                       'ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('MENU SETS EDITOR',               'Editor settings',
-                                       'Настройки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°'),
-    ('MENU SETS LAUNCH',               'In-game test settings',
-                                       'Настройки Ρ‚Сста Π² ΠΈΠ³Ρ€Π΅'),
-
-    ('MENU HELP',                      'Help',
-                                       'Π‘ΠΏΡ€Π°Π²ΠΊΠ°'),
-    ('MENU HELP ABOUT',                'About',
-                                       'О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅'),
-
-    ('MENU LAYER BACK',                '1. Background',
-                                       '1. Π€ΠΎΠ½'),
-    ('MENU LAYER WALL',                '2. Walls',
-                                       '2. Π‘Ρ‚Π΅Π½Ρ‹'),
-    ('MENU LAYER FORE',                '3. Foreground',
-                                       '3. ΠŸΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½'),
-    ('MENU LAYER STAIR',               '4. Steps',
-                                       '4. Π‘Ρ‚ΡƒΠΏΠ΅Π½ΠΈ'),
-    ('MENU LAYER WATER',               '5. Liquids',
-                                       '5. Π–идкости'),
-    ('MENU LAYER ITEM',                '6. Items',
-                                       '6. ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹'),
-    ('MENU LAYER MONSTER',             '7. Monsters',
-                                       '7. ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹'),
-    ('MENU LAYER AREA',                '8. Areas',
-                                       '8. ΠžΠ±Π»Π°ΡΡ‚ΠΈ'),
-    ('MENU LAYER TRIGGER',             '9. Triggers',
-                                       '9. Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹'),
-
-    ('MENU TB NEW',                    'New Map',
-                                       'Новая ΠΊΠ°Ρ€Ρ‚Π°'),
-    ('MENU TB OPEN',                   'Open Map',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU TB SAVE',                   'Save Map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU TB OPEN WAD',               'Open another Map from same WAD',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ ΠΆΠ΅ WAD''Π°'),
-    ('MENU TB MINIMAP',                'Show Mini-map',
-                                       'ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('MENU TB LAYERS',                 'Show/Hide Objects',
-                                       'ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠ°Π½Π΅Π»Π΅ΠΉ/ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²'),
-    ('MENU TB GRID',                   'Grid On/Off',
-                                       'Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ‚ΠΊΠΈ'),
-    ('MENU TB GRID STEP',              'Switch Grid step',
-                                       'Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠ°Π³ ΡΠ΅Ρ‚ΠΊΠΈ'),
-    ('MENU TB LAUNCH',                 'In-game test',
-                                       'ВСст ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² ΠΈΠ³Ρ€Π΅'),
-
-    ('MENU LAUNCH SETS',               'Settings...',
-                                       'ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹...'),
-
-    ('CAP FX TYPE',                    'Select Effect type',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΡΡ„Ρ„Π΅ΠΊΡ‚Π°'),
-    ('CAP MONSTER TYPE',               'Select Monster type',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΌΠΎΠ½ΡΡ‚Ρ€Π°'),
-    ('CAP ITEM TYPE',                  'Select Item type',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°'),
-    ('CAP ABOUT',                      'About Map Editor',
-                                       'О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅'),
-    ('CAP ACT',                        'Activation type',
-                                       'Π’ΠΈΠΏ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ'),
-    ('CAP ADD SKY',                    'Select Sky Texture',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Скстуру Π½Π΅Π±Π°'),
-    ('CAP ADD SOUND',                  'Select Sound/Music',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π²ΡƒΠΊ/ΠΌΡƒΠ·Ρ‹ΠΊΡƒ'),
-    ('CAP ADD TEXTURE',                'Select Texture',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Скстуру'),
-    ('CAP KEYS',                       'Keys',
-                                       'ΠšΠ»ΡŽΡ‡ΠΈ'),
-    ('CAP TEST',                       'Map Checking',
-                                       'ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('CAP OPT',                        'Map Optimization',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('CAP SETS',                       'Map Parameters',
-                                       'ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('CAP LAUNCH',                     'In-game test Settings',
-                                       'Настройки Ρ‚Сста Π² ΠΈΠ³Ρ€Π΅'),
-    ('CAP ES',                         'Editor Settings',
-                                       'Настройки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°'),
-    ('CAP PACK',                       'Pack Map',
-                                       'Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP SAVE',                       'Save Map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP MINI',                       'Save Mini-map',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP SELECT',                     'Select Map',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP OPEN',                       'Open Map',
-                                       'ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP REMOVE',                     'Remove Map',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ'),
-    ('CAP TEXTURE',                    'Texture: %dx%d',
-                                       'ВСкстура: %dx%d'),
-    ('CAP ANIMATION',                  'Animation: %dx%d, %d frames',
-                                       'Анимация: %dx%d, %d ΠΊΠ°Π΄Ρ€ΠΎΠ²'),
-    ('CAP STAT SELECTED',              'Selected objects: %d',
-                                       'Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: %d'),
-
-    ('CTRL PROP KEY',                  'Property',
-                                       'Бвойство'),
-    ('CTRL PROP VALUE',                'Value',
-                                       'Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅'),
-
-    ('CTRL PANELS',                    'Panels',
-                                       'ПанСли'),
-    ('CTRL ITEMS',                     'Items',
-                                       'ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹'),
-    ('CTRL MONSTERS',                  'Monsters',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹'),
-    ('CTRL AREAS',                     'Areas',
-                                       'ΠžΠ±Π»Π°ΡΡ‚ΠΈ'),
-    ('CTRL TRIGGERS',                  'Triggers',
-                                       'Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹'),
-
-    ('CTRL LIST TEXTURE',              'Texture List',
-                                       'Бписок Ρ‚Скстур'),
-    ('CTRL LIST ITEM',                 'Item List',
-                                       'Бписок ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²'),
-    ('CTRL LIST MONSTER',              'Monster List',
-                                       'Бписок ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²'),
-    ('CTRL LIST AREA',                 'Area List',
-                                       'Бписок ΠΎΠ±Π»Π°ΡΡ‚Π΅ΠΉ'),
-    ('CTRL LIST TRIGGER',              'Trigger List',
-                                       'Бписок Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²'),
-    ('CTRL LIST ACTIVE',               'Activation Type',
-                                       'Π’ΠΈΠΏ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°'),
-    ('CTRL LIST KEYS',                 'Keys Needed',
-                                       'ΠšΠ»ΡŽΡ‡ΠΈ Π΄Π»Ρ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ'),
-
-    ('CTRL PREVIEW',                   'Texture Preview',
-                                       'ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€'),
-    ('CTRL ITEM DM',                   'DM Only',
-                                       'Волько Π² DM'),
-    ('CTRL ITEM FALLS',                'Falls',
-                                       'ΠŸΠ°Π΄Π°Π΅Ρ‚'),
-    ('CTRL LEFT',                      'Left',
-                                       'Π’Π»Π΅Π²ΠΎ'),
-    ('CTRL RIGHT',                     'Right',
-                                       'Π’ΠΏΡ€Π°Π²ΠΎ'),
-
-    ('CTRL ACT PLAYER CLOSE',          'Player Collides',
-                                       'Π˜Π³Ρ€ΠΎΠΊ Π±Π»ΠΈΠ·ΠΊΠΎ'),
-    ('CTRL ACT MONSTER CLOSE',         'Monster Collides',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ Π±Π»ΠΈΠ·ΠΊΠΎ'),
-    ('CTRL ACT PLAYER PRESS',          'Player Pressed',
-                                       'Π˜Π³Ρ€ΠΎΠΊ Π½Π°ΠΆΠ°Π»'),
-    ('CTRL ACT MONSTER PRESS',         'Monster Pressed',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ Π½Π°ΠΆΠ°Π»'),
-    ('CTRL ACT SHOT',                  'Shot',
-                                       'ВыстрСл'),
-    ('CTRL ACT NO MONSTER',            'No Monsters',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ΠΎΠ² Π½Π΅Ρ‚'),
-
-    ('CTRL KEYS RED',                  'Red Key',
-                                       'ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('CTRL KEYS GREEN',                'Green Key',
-                                       'Π—Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('CTRL KEYS BLUE',                 'Blue Key',
-                                       'Π‘ΠΈΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡'),
-    ('CTRL KEYS TEAM RED',             'Red Team',
-                                       'ΠšΡ€Π°ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-    ('CTRL KEYS TEAM BLUE',            'Blue Team',
-                                       'Биняя ΠΊΠΎΠΌΠ°Π½Π΄Π°'),
-
-    ('CTRL OPT GB',                    'Optimization',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ'),
-    ('CTRL OPT TEXTURE',               'Texture Optimization',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ‚Скстур'),
-    ('CTRL OPT PANEL',                 'Panel Optimization',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ'),
-    ('CTRL OPT WALL',                  'Walls',
-                                       'Π‘Ρ‚Π΅Π½Ρ‹'),
-    ('CTRL OPT FORE',                  'Foreground',
-                                       'ΠŸΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½'),
-    ('CTRL OPT BACK',                  'Background',
-                                       'Π€ΠΎΠ½'),
-    ('CTRL OPT STAIR',                 'Steps',
-                                       'Π‘Ρ‚ΡƒΠΏΠ΅Π½ΠΈ'),
-    ('CTRL OPT WATER',                 'Water',
-                                       'Π’ΠΎΠ΄Π°'),
-    ('CTRL OPT ACID1',                 'Acid 1',
-                                       'ΠšΠΈΡΠ»ΠΎΡ‚Π° 1'),
-    ('CTRL OPT ACID2',                 'Acid 2',
-                                       'ΠšΠΈΡΠ»ΠΎΡ‚Π° 2'),
-    ('CTRL OPT LIFT',                  'Streams',
-                                       'Π›ΠΈΡ„Ρ‚Ρ‹'),
-    ('CTRL OPT BLOCKMON',              'Monster Boundary',
-                                       'Π‘Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²'),
-    ('CTRL OPT DESC TEXTURE',          'Deletes unused textures from texture list.',
-                                       'УдаляСт Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Скстуры ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.'),
-    ('CTRL OPT DESC PANEL',            'Merges nearby panels of same type. Increases game performance.',
-                                       'ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ Ρ‚Π΅ΠΌ ΡΠ°ΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹.'),
-    ('CTRL SETS STATS',                'Statistics:',
-                                       'Бтатистика:'),
-    ('CTRL SETS SIZES',                'Map Size:',
-                                       'Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:'),
-
-    ('CTRL LAUNCH DM',                 'Deathmatch',
-                                       'Deathmatch'),
-    ('CTRL LAUNCH TDM',                'Team Deathmatch',
-                                       'Team Deathmatch'),
-    ('CTRL LAUNCH CTF',                'Capture the Flag',
-                                       'Capture the Flag'),
-    ('CTRL LAUNCH COOP',               'Cooperative',
-                                       'Cooperative'),
-    ('CTRL LAUNCH 2P',                 'Two Players',
-                                       'Π”Π²Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°'),
-    ('CTRL LAUNCH FF',                 'Friendly Fire',
-                                       'Π£Ρ€ΠΎΠ½ ΡΠ²ΠΎΠΈΡ…'),
-    ('CTRL LAUNCH EXIT',               'Enable Exit',
-                                       'Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄'),
-    ('CTRL LAUNCH WEAPONS',            'Weapons Stay',
-                                       'ΠžΡ€ΡƒΠΆΠΈΠ΅ ΠΎΡΡ‚аётся'),
-    ('CTRL LAUNCH MONSTERS',           'Enable Monsters',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹ Π² DM'),
-    ('CTRL LAUNCH CLOSE',              'Close the game after exiting the map',
-                                       'Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ ΠΏΠΎΡΠ»Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('CTRL LAUNCH OPEN',               'Select Doom 2D: Forever executable',
-                                       'Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈΠ³Ρ€Ρ‹ Doom 2D: Forever'),
-
-    ('CTRL ES GRID',                   'Show Grid',
-                                       'ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΠΊΡƒ'),
-    ('CTRL ES TEXTURE',                'Show Panel Texture',
-                                       'ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Скстуру ΠΏΠ°Π½Π΅Π»ΠΈ'),
-    ('CTRL ES PANEL SIZE',             'Show Panel Size',
-                                       'ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°Π½Π΅Π»ΠΈ '),
-    ('CTRL ES CHECKERBOARD',           'Use Checkerboard',
-                                       'Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚ΠΊΡƒ'),
-
-    ('CTRL PACK TEXTURES',             'Textures',
-                                       'ВСкстуры'),
-    ('CTRL PACK SKY',                  'Sky',
-                                       'НСбо'),
-    ('CTRL PACK MUSIC',                'Music',
-                                       'ΠœΡƒΠ·Ρ‹ΠΊΡƒ'),
-    ('CTRL PACK ADD',                  'Don''t overwrite WAD',
-                                       'НС ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ WAD'),
-    ('CTRL PACK NON STD',              'Non-standard Resources only',
-                                       'Волько Π½Π΅ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡΡƒΡ€ΡΡ‹'),
-
-    ('LAB TEX WIDTH',                  'Texture Width:',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π° Ρ‚Скстуры:'),
-    ('LAB TEX HEIGHT',                 'Texture Height:',
-                                       'Высота Ρ‚Скстуры:'),
-
-    ('LAB SPECTRUM',                   'Show the Spectrum',
-                                       'ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠΏΠ΅ΠΊΡ‚Ρ€'),
-
-    ('LAB ABOUT VER',                  'Version 2.1.5',
-                                       'ВСрсия 2.1.5'),
-    ('LAB ABOUT AUTHOR',               'Author: rs.falcon',
-                                       'Автор: rs.falcon'),
-    ('LAB ABOUT AUTHOR 2',             'Additions: Pss',
-                                       'Π”ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»: Pss'),
-    ('LAB ABOUT MAIL',                 'rmw.falcon@mail.ru',
-                                       'rmw.falcon@mail.ru'),
-    ('LAB ABOUT MAIL 2',               'pssxx@mail.ru',
-                                       'pssxx@mail.ru'),
-    ('LAB ABOUT SITE',                 'Doom 2D: Forever Web-site',
-                                       'Π‘Π°ΠΉΡ‚ Doom 2D: Forever'),
-    ('LAB ABOUT HTTP',                 'www.doom2d.org',
-                                       'www.doom2d.org'),
-
-    ('LAB ADD WADS',                   'WAD Files:',
-                                       'Бписок WAD-Ρ„Π°ΠΉΠ»ΠΎΠ²:'),
-    ('LAB ADD SECTIONS',               'WAD Sections:',
-                                       'Бписок ΡΠ΅ΠΊΡ†ΠΈΠΉ WAD-Ρ„Π°ΠΉΠ»Π°:'),
-
-    ('LAB SETS NAME',                  'Map Name:',
-                                       'НазваниС ΠΊΠ°Ρ€Ρ‚Ρ‹:'),
-    ('LAB SETS DESC',                  'Map Description',
-                                       'ОписаниС ΠΊΠ°Ρ€Ρ‚Ρ‹:'),
-    ('LAB SETS AUTHOR',                'Author:',
-                                       'Автор:'),
-    ('LAB SETS BACK',                  'Background/Sky:',
-                                       'Π€ΠΎΠ½/НСбо:'),
-    ('LAB SETS MUSIC',                 'Music:',
-                                       'ΠœΡƒΠ·Ρ‹ΠΊΠ°:'),
-    ('LAB SETS TEXTURES',              'Textures:',
-                                       'ВСкстур:'),
-    ('LAB SETS PANELS',                'Panels:',
-                                       'ПанСлСй:'),
-    ('LAB SETS ITEMS',                 'Items:',
-                                       'ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²:'),
-    ('LAB SETS MONSTERS',              'Monsters:',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²:'),
-    ('LAB SETS AREAS',                 'Areas:',
-                                       'ΠžΠ±Π»Π°ΡΡ‚Π΅ΠΉ:'),
-    ('LAB SETS TRIGGERS',              'Triggers:',
-                                       'Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²:'),
-    ('LAB SETS SIZES',                 'Current:',
-                                       'Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ:'),
-    ('LAB SETS WIDTH',                 'Width:',
-                                       'Π¨ΠΈΡ€ΠΈΠ½Π°:'),
-    ('LAB SETS HEIGHT',                'Height:',
-                                       'Высота:'),
-    ('LAB SETS MAPMOVE',               'Direction to shift map objects:',
-                                       'НаправлСниС ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°Ρ€Ρ‚Ρ‹:'),
-    ('LAB SETS SNAPPING',              'Preserve snapping',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΡΠ·ΠΊΡƒ'),
-
-    ('LAB LAUNCH TIME',                'Time Limit:',
-                                       'Π›ΠΈΠΌΠΈΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:'),
-    ('LAB LAUNCH SECS',                'seconds',
-                                       'сСкунд'),
-    ('LAB LAUNCH SCORE',               'Score Limit:',
-                                       'Π›ΠΈΠΌΠΈΡ‚ ΠΎΡ‡ΠΊΠΎΠ²:'),
-    ('LAB LAUNCH PATH',                'Path to Doom2DF.exe:',
-                                       'ΠŸΡƒΡ‚ΡŒ ΠΊ Doom2DF.exe:'),
-    ('LAB LAUNCH ARGS',                'Launch Arguments:',
-                                       'ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°:'),
-
-    ('LAB ES GRID',                    'Grid Step:',
-                                       'Π¨Π°Π³ ΡΠ΅Ρ‚ΠΊΠΈ:'),
-    ('LAB ES GRID COLOR',              'Grid Color:',
-                                       'Π¦Π²Π΅Ρ‚ ΡΠ΅Ρ‚ΠΊΠΈ:'),
-    ('LAB ES GRID SIZE',               'Grid Dot Size:',
-                                       'Π Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‡Π΅ΠΊ ΡΠ΅Ρ‚ΠΊΠΈ:'),
-    ('LAB ES BACK',                    'Background Color:',
-                                       'Π¦Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°:'),
-    ('LAB ES PREVIEW',                 'Texture Preview Background Color:',
-                                       'Π¦Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΏΠΎΠ»Ρ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π° Ρ‚Скстуры:'),
-    ('LAB ES MINIMAP',                 'Mini-map Scale:',
-                                       'ΠœΠ°ΡΡˆΡ‚Π°Π± ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρ‹:'),
-    ('LAB ES RECENT',                  'Recent Maps List Contains:',
-                                       'Π—Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚:'),
-    ('LAB ES LANGUAGE',                'Language:',
-                                       'Π―Π·Ρ‹ΠΊ:'),
-    ('LAB ES COMPRESS',                'Compress archive when save',
-                                       'Π‘ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² ΠΏΡ€ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ'),
-    ('LAB ES BACKUP',                  'Make backup before save',
-                                       'РСзСрвная ΠΊΠΎΠΏΠΈΡ ΠΏΡ€ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ'),
-
-    ('LAB PACK SAVE TO',               'Save to:',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²:'),
-    ('LAB PACK MAP NAME',              'Map Resource Name:',
-                                       'НазваниС Ρ€Π΅ΡΡƒΡ€ΡΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹:'),
-    ('LAB PACK TEXTURES',              'Texture Section:',
-                                       'БСкция Π΄Π»Ρ Ρ‚Скстур:'),
-    ('LAB PACK SKY',                   'Sky Section:',
-                                       'БСкция Π΄Π»Ρ Π½Π΅Π±Π°:'),
-    ('LAB PACK MUSIC',                 'Music Section:',
-                                       'БСкция Π΄Π»Ρ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ:'),
-
-    ('LAB MINI SCALE',                 'Scale:',
-                                       'ΠœΠ°ΡΡˆΡ‚Π°Π±:'),
-
-    ('BTN APPLY PROPS',                'Apply Properties',
-                                       'ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°'),
-    ('BTN OK',                         'OK',
-                                       'OK'),
-    ('BTN CANCEL',                     'Cancel',
-                                       'ΠžΡ‚ΠΌΠ΅Π½Π°'),
-    ('BTN ADD',                        'Add',
-                                       'Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ'),
-    ('BTN CLOSE',                      'Close',
-                                       'Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ'),
-    ('BTN ADD CLOSE',                  'Add and Close',
-                                       'Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ'),
-    ('BTN TEST AGAIN',                 'Check',
-                                       'ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ'),
-    ('BTN START',                      'Run',
-                                       'ΠΠ°Ρ‡Π°Ρ‚ΡŒ'),
-    ('BTN PACK',                       'Pack',
-                                       'Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ'),
-    ('BTN SAVE',                       'Save',
-                                       'Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ'),
-    ('BTN NO SOUND',                   'No sound',
-                                       'НСт Π·Π²ΡƒΠΊΠ°'),
-    ('BTN TEXTURE ADD',                'Add texture to the list',
-                                       'Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Скстуру Π² ΡΠΏΠΈΡΠΎΠΊ'),
-    ('BTN TEXTURE DELETE',             'Delete texture from the list',
-                                       'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Скстуру ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°'),
-    ('BTN TEXTURE EMPTY',              'Deselect texture',
-                                       'Π‘Π½ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ Ρ Ρ‚Скстуры'),
-
-    ('LOAD WAD',                       'Reading WAD',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ WAD'),
-    ('LOAD MAP',                       'Loading Map',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹'),
-    ('LOAD TEXTURES',                  'Reading Textures',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚Скстур'),
-    ('LOAD PANELS',                    'Reading Panels',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ'),
-    ('LOAD ITEMS',                     'Reading Items',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²'),
-    ('LOAD MONSTERS',                  'Reading Monsters',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²'),
-    ('LOAD AREAS',                     'Reading Areas',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡ‚Π΅ΠΉ'),
-    ('LOAD TRIGGERS',                  'Reading Triggers',
-                                       'Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²'),
-
-    ('TEST AREA WALL',                 'Player collides with the wall and will be stuck.',
-                                       'Если Π² ΡΡ‚ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΠΎΡΠ²ΠΈΡ‚ся ΠΈΠ³Ρ€ΠΎΠΊ, Ρ‚ΠΎ ΠΎΠ½ Π·Π°ΡΡ‚рянСт Π² ΡΡ‚Π΅Π½Π΅ ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ.'),
-    ('TEST AREA WALL STR',             'Area #%d collides with Map (%d:%d)',
-                                       'ΠžΠ±Π»Π°ΡΡ‚ΡŒ #%d ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Π΅Ρ‚ся Ρ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ (%d:%d)'),
-    ('TEST SPAWNS 1',                  'There are several spawn points for First Player on the map',
-                                       'НСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°'),
-    ('TEST SPAWNS 2',                  'There are several spawn points for Second Player on the map',
-                                       'НСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°'),
-    ('TEST SPAWNS',                    'There are several spawn points on the map. Random one will be used.',
-                                       'НСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Π°Ρ.'),
-    ('TEST NO DM',                     'There are no DM spawn points on the map',
-                                       'На ΠΊΠ°Ρ€Ρ‚Π΅ Π½Π΅Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ DM'),
-    ('TEST NO DM EX',                  'There are no DM spawn points on the map. Only "Single Player" mode available.',
-                                       'На ΠΊΠ°Ρ€Ρ‚Π΅ Π½Π΅Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ DM, ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ "Single Player".'),
-    ('TEST MONSTER WALL',              'Monster collides with the wall and will be stuck.',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Π΅Ρ‚ся Ρ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ. ΠžΠ½ Π·Π°ΡΡ‚рянСт Π² ΡΡ‚Π΅Π½Π΅ ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ'),
-    ('TEST MONSTER WALL STR',          'Monster #%d collides with a map (%d:%d)',
-                                       'ΠœΠΎΠ½ΡΡ‚Ρ€ #%d ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Π΅Ρ‚ся Ρ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ (%d:%d)'),
-
-    ('OPT NO TEXTURES',                'Texture list is empty',
-                                       'Бписок Ρ‚Скстур ΠΏΡƒΡΡ‚'),
-    ('OPT DELETED TEXTURES',           'Deleted Textures:',
-                                       'Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ‚Скстуры:'),
-    ('OPT TOTAL TEXTURES',             'Textures Total:',
-                                       'ВсСго Ρ‚Скстур:'),
-    ('OPT TEX DELETED',                'Textures Deleted:',
-                                       'Π£Π΄Π°Π»Π΅Π½ΠΎ Ρ‚Скстур:'),
-    ('OPT PANELS OPT',                 'Panels Optimized:',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:'),
-    ('OPT WALLS',                      'Walls Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΡΡ‚Π΅Π½...'),
-    ('OPT FORES',                      'Foreground Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°...'),
-    ('OPT BACKS',                      'Background Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ„ΠΎΠ½Π°...'),
-    ('OPT STAIRS',                     'Steps Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΡΡ‚ΡƒΠΏΠ΅Π½Π΅ΠΉ...'),
-    ('OPT WATER',                      'Water Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΎΠ΄Ρ‹...'),
-    ('OPT ACID1',                      'Acid 1 Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΈΡΠ»ΠΎΡ‚Ρ‹ 1...'),
-    ('OPT ACID2',                      'Acid 2 Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΈΡΠ»ΠΎΡ‚Ρ‹ 2...'),
-    ('OPT LIFTS',                      'Streams Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π»ΠΈΡ„Ρ‚ΠΎΠ²...'),
-    ('OPT BLOCKMON',                   'Monster Boundaries Optimization...',
-                                       'ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²....'), 
-    ('OPT TOTAL PANELS',               'Panels Total:',
-                                       'ВсСго ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:'),
-    ('OPT PANELS AFTER',               'Panels after Optimization:',
-                                       'ПанСлСй ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:'),
-
-    ('WAD SPECIAL MAP',                '<MAP WAD-FILE>',
-                                       '<WAD-ЀАЙЛ ΠšΠΠ Π’Π«>'),
-    ('WAD SPECIAL TEXS',               '<EXTRA TEXTURES>',
-                                       '<Π‘ΠŸΠ•Π¦Π’Π•ΠšΠ‘Π’Π£Π Π«>'),
-
-    ('FILE FILTER ALL',                'Doom 2D: Forever Maps (*.dfz, *.wad)|*.dfz;*.wad|Doom 2D: Forever 0.30 Maps (*.ini)|*.ini|ВсС Ρ„Π°ΠΉΠ»Ρ‹ (*.*)|*.*',
-                                       'ΠšΠ°Ρ€Ρ‚Ρ‹ Doom 2D: Forever (*.dfz, *.wad)|*.dfz;*.wad|Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ Doom 2D: Forever 0.30 (*.ini)|*.ini|ВсС Ρ„Π°ΠΉΠ»Ρ‹ (*.*)|*.*'),
-    ('FILE FILTER WAD',                'Doom 2D: Forever Maps (*.dfz)|*.dfz|Doom 2D: Forever Maps (*.wad)|*.wad|ВсС Ρ„Π°ΠΉΠ»Ρ‹ (*.*)|*.*',
-                                       'ΠšΠ°Ρ€Ρ‚Ρ‹ Doom 2D: Forever (*.dfz)|*.dfz|ΠšΠ°Ρ€Ρ‚Ρ‹ Doom 2D: Forever (*.wad)|*.wad|ВсС Ρ„Π°ΠΉΠ»Ρ‹ (*.*)|*.*'),
-
-    ('EDITOR TITLE',                   'Doom 2D: Forever Map Editor',
-                                       'Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠ°Ρ€Ρ‚ Doom 2D: Forever'),
-
-                                       
-    ('', '', '') );
-
+  const
+    InSourceLanguage = 'en_US';
 
 procedure SetupArrays();
 var
 
 procedure SetupArrays();
 var
@@ -1823,166 +672,166 @@ var
 
 begin
 // Π”Π°/НСт:
 
 begin
 // Π”Π°/НСт:
-  BoolNames[False] := _lc[I_ARRAY_BOOL_FALSE];
-  BoolNames[True] := _lc[I_ARRAY_BOOL_TRUE];
+  BoolNames[False] := MsgArrayBoolFalse;
+  BoolNames[True] := MsgArrayBoolTrue;
 
 // ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ:
 
 // ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ:
-  DirNames[D_LEFT] := _lc[I_ARRAY_DIR_LEFT];
-  DirNames[D_RIGHT] := _lc[I_ARRAY_DIR_RIGHT];
+  DirNames[D_LEFT] := MsgArrayDirLeft;
+  DirNames[D_RIGHT] := MsgArrayDirRight;
 
 // Π‘ΠΌΠ΅Π½Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ:
 
 // Π‘ΠΌΠ΅Π½Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ:
-  DirNamesAdv[0] := _lc[I_ARRAY_DIR_SAME];
-  DirNamesAdv[1] := _lc[I_ARRAY_DIR_LEFT];
-  DirNamesAdv[2] := _lc[I_ARRAY_DIR_RIGHT];
-  DirNamesAdv[3] := _lc[I_ARRAY_DIR_REVERSED];
+  DirNamesAdv[0] := MsgArrayDirSame;
+  DirNamesAdv[1] := MsgArrayDirLeft;
+  DirNamesAdv[2] := MsgArrayDirRight;
+  DirNamesAdv[3] := MsgArrayDirReversed;
 
 // ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…):
 
 // ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…):
-  DirButtonNames[1] := _lc[I_ARRAY_DIRBTN_LEFT];
-  DirButtonNames[2] := _lc[I_ARRAY_DIRBTN_RIGHT];
-  DirButtonNames[3] := _lc[I_ARRAY_DIRBTN_UP];
-  DirButtonNames[4] := _lc[I_ARRAY_DIRBTN_DOWN];
+  DirButtonNames[1] := MsgArrayDirbtnLeft;
+  DirButtonNames[2] := MsgArrayDirbtnRight;
+  DirButtonNames[3] := MsgArrayDirbtnUp;
+  DirButtonNames[4] := MsgArrayDirbtnDown;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:
-  PANELNAMES[0] := _lc[I_ARRAY_PANEL_WALL];
-  PANELNAMES[1] := _lc[I_ARRAY_PANEL_BACK];
-  PANELNAMES[2] := _lc[I_ARRAY_PANEL_FRONT];
-  PANELNAMES[3] := _lc[I_ARRAY_PANEL_DOOR_OPEN];
-  PANELNAMES[4] := _lc[I_ARRAY_PANEL_DOOR_CLOSE];
-  PANELNAMES[5] := _lc[I_ARRAY_PANEL_STAIR];
-  PANELNAMES[6] := _lc[I_ARRAY_PANEL_WATER];
-  PANELNAMES[7] := _lc[I_ARRAY_PANEL_ACID_1];
-  PANELNAMES[8] := _lc[I_ARRAY_PANEL_ACID_2];
-  PANELNAMES[9] := _lc[I_ARRAY_PANEL_LIFT_UP];
-  PANELNAMES[10] := _lc[I_ARRAY_PANEL_LIFT_DOWN];
-  PANELNAMES[11] := _lc[I_ARRAY_PANEL_LIFT_LEFT];
-  PANELNAMES[12] := _lc[I_ARRAY_PANEL_LIFT_RIGHT];
-  PANELNAMES[13] := _lc[I_ARRAY_PANEL_BLOCKMON];
+  PANELNAMES[0] := MsgArrayPanelWall;
+  PANELNAMES[1] := MsgArrayPanelBack;
+  PANELNAMES[2] := MsgArrayPanelFront;
+  PANELNAMES[3] := MsgArrayPanelDoorOpen;
+  PANELNAMES[4] := MsgArrayPanelDoorClose;
+  PANELNAMES[5] := MsgArrayPanelStair;
+  PANELNAMES[6] := MsgArrayPanelWater;
+  PANELNAMES[7] := MsgArrayPanelAcid1;
+  PANELNAMES[8] := MsgArrayPanelAcid2;
+  PANELNAMES[9] := MsgArrayPanelLiftUp;
+  PANELNAMES[10] := MsgArrayPanelLiftDown;
+  PANELNAMES[11] := MsgArrayPanelLiftLeft;
+  PANELNAMES[12] := MsgArrayPanelLiftRight;
+  PANELNAMES[13] := MsgArrayPanelBlockmon;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΎΠ²:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΎΠ²:
-  EffectNames[EFFECT_NONE] := _lc[I_ARRAY_FX_NONE];
-  EffectNames[EFFECT_TELEPORT] := _lc[I_ARRAY_FX_TELEPORT];
-  EffectNames[EFFECT_RESPAWN] := _lc[I_ARRAY_FX_RESPAWN];
-  EffectNames[EFFECT_FIRE] := _lc[I_ARRAY_FX_FIRE];
+  EffectNames[EFFECT_NONE] := MsgArrayFxNone;
+  EffectNames[EFFECT_TELEPORT] := MsgArrayFxTeleport;
+  EffectNames[EFFECT_RESPAWN] := MsgArrayFxRespawn;
+  EffectNames[EFFECT_FIRE] := MsgArrayFxFire;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²:
-  ItemNames[ITEM_MEDKIT_SMALL] := _lc[I_ARRAY_ITEM_MEDKIT];
-  ItemNames[ITEM_MEDKIT_LARGE] := _lc[I_ARRAY_ITEM_LARGE_MEDKIT];
-  ItemNames[ITEM_MEDKIT_BLACK] := _lc[I_ARRAY_ITEM_BLACK_MEDKIT];
-  ItemNames[ITEM_ARMOR_GREEN] := _lc[I_ARRAY_ITEM_GREEN_ARMOR];
-  ItemNames[ITEM_ARMOR_BLUE] := _lc[I_ARRAY_ITEM_BLUE_ARMOR];
-  ItemNames[ITEM_SPHERE_BLUE] := _lc[I_ARRAY_ITEM_BLUE_SPHERE];
-  ItemNames[ITEM_SPHERE_WHITE] := _lc[I_ARRAY_ITEM_MEGASPHERE];
-  ItemNames[ITEM_SUIT] := _lc[I_ARRAY_ITEM_HAZ_SUIT];
-  ItemNames[ITEM_OXYGEN] := _lc[I_ARRAY_ITEM_OXYGEN];
-  ItemNames[ITEM_INVUL] := _lc[I_ARRAY_ITEM_INVULNERABILITY];
-  ItemNames[ITEM_WEAPON_SAW] := _lc[I_ARRAY_ITEM_CHAINSAW];
-  ItemNames[ITEM_WEAPON_SHOTGUN1] := _lc[I_ARRAY_ITEM_SHOTGUN];
-  ItemNames[ITEM_WEAPON_SHOTGUN2] := _lc[I_ARRAY_ITEM_DB_SHOTGUN];
-  ItemNames[ITEM_WEAPON_CHAINGUN] := _lc[I_ARRAY_ITEM_CHAINGUN];
-  ItemNames[ITEM_WEAPON_ROCKETLAUNCHER] := _lc[I_ARRAY_ITEM_ROCKET_LAUNCHER];
-  ItemNames[ITEM_WEAPON_PLASMA] := _lc[I_ARRAY_ITEM_PLASMA_RIFLE];
-  ItemNames[ITEM_WEAPON_BFG] := _lc[I_ARRAY_ITEM_BFG];
-  ItemNames[ITEM_WEAPON_SUPERPULEMET] := _lc[I_ARRAY_ITEM_SUPER_MINIGUN];
-  ItemNames[ITEM_WEAPON_FLAMETHROWER] := _lc[I_ARRAY_ITEM_FLAMETHROWER];
-  ItemNames[ITEM_AMMO_BULLETS] := _lc[I_ARRAY_ITEM_CLIP];
-  ItemNames[ITEM_AMMO_BULLETS_BOX] := _lc[I_ARRAY_ITEM_AMMO_BOX];
-  ItemNames[ITEM_AMMO_SHELLS] := _lc[I_ARRAY_ITEM_4_SHELLS];
-  ItemNames[ITEM_AMMO_SHELLS_BOX] := _lc[I_ARRAY_ITEM_25_SHELLS];
-  ItemNames[ITEM_AMMO_ROCKET] := _lc[I_ARRAY_ITEM_1_ROCKET];
-  ItemNames[ITEM_AMMO_ROCKET_BOX] := _lc[I_ARRAY_ITEM_ROCKET_BOX];
-  ItemNames[ITEM_AMMO_CELL] := _lc[I_ARRAY_ITEM_CELL];
-  ItemNames[ITEM_AMMO_CELL_BIG] := _lc[I_ARRAY_ITEM_LARGE_CELL];
-  ItemNames[ITEM_AMMO_FUELCAN] := _lc[I_ARRAY_ITEM_FUELCAN];
-  ItemNames[ITEM_AMMO_BACKPACK] := _lc[I_ARRAY_ITEM_BACKPACK];
-  ItemNames[ITEM_KEY_RED] := _lc[I_ARRAY_ITEM_KEY_RED];
-  ItemNames[ITEM_KEY_GREEN] := _lc[I_ARRAY_ITEM_KEY_GREEN];
-  ItemNames[ITEM_KEY_BLUE] := _lc[I_ARRAY_ITEM_KEY_BLUE];
+  ItemNames[ITEM_MEDKIT_SMALL] := MsgArrayItemMedkit;
+  ItemNames[ITEM_MEDKIT_LARGE] := MsgArrayItemLargeMedkit;
+  ItemNames[ITEM_MEDKIT_BLACK] := MsgArrayItemBlackMedkit;
+  ItemNames[ITEM_ARMOR_GREEN] := MsgArrayItemGreenArmor;
+  ItemNames[ITEM_ARMOR_BLUE] := MsgArrayItemBlueArmor;
+  ItemNames[ITEM_SPHERE_BLUE] := MsgArrayItemBlueSphere;
+  ItemNames[ITEM_SPHERE_WHITE] := MsgArrayItemMegasphere;
+  ItemNames[ITEM_SUIT] := MsgArrayItemHazSuit;
+  ItemNames[ITEM_OXYGEN] := MsgArrayItemOxygen;
+  ItemNames[ITEM_INVUL] := MsgArrayItemInvulnerability;
+  ItemNames[ITEM_WEAPON_SAW] := MsgArrayItemChainsaw;
+  ItemNames[ITEM_WEAPON_SHOTGUN1] := MsgArrayItemShotgun;
+  ItemNames[ITEM_WEAPON_SHOTGUN2] := MsgArrayItemDbShotgun;
+  ItemNames[ITEM_WEAPON_CHAINGUN] := MsgArrayItemChaingun;
+  ItemNames[ITEM_WEAPON_ROCKETLAUNCHER] := MsgArrayItemRocketLauncher;
+  ItemNames[ITEM_WEAPON_PLASMA] := MsgArrayItemPlasmaRifle;
+  ItemNames[ITEM_WEAPON_BFG] := MsgArrayItemBfg;
+  ItemNames[ITEM_WEAPON_SUPERPULEMET] := MsgArrayItemSuperMinigun;
+  ItemNames[ITEM_WEAPON_FLAMETHROWER] := MsgArrayItemFlamethrower;
+  ItemNames[ITEM_AMMO_BULLETS] := MsgArrayItemClip;
+  ItemNames[ITEM_AMMO_BULLETS_BOX] := MsgArrayItemAmmoBox;
+  ItemNames[ITEM_AMMO_SHELLS] := MsgArrayItem4Shells;
+  ItemNames[ITEM_AMMO_SHELLS_BOX] := MsgArrayItem25Shells;
+  ItemNames[ITEM_AMMO_ROCKET] := MsgArrayItem1Rocket;
+  ItemNames[ITEM_AMMO_ROCKET_BOX] := MsgArrayItemRocketBox;
+  ItemNames[ITEM_AMMO_CELL] := MsgArrayItemCell;
+  ItemNames[ITEM_AMMO_CELL_BIG] := MsgArrayItemLargeCell;
+  ItemNames[ITEM_AMMO_FUELCAN] := MsgArrayItemFuelcan;
+  ItemNames[ITEM_AMMO_BACKPACK] := MsgArrayItemBackpack;
+  ItemNames[ITEM_KEY_RED] := MsgArrayItemKeyRed;
+  ItemNames[ITEM_KEY_GREEN] := MsgArrayItemKeyGreen;
+  ItemNames[ITEM_KEY_BLUE] := MsgArrayItemKeyBlue;
   ItemNames[ITEM_WEAPON_KASTET] := '?';
   ItemNames[ITEM_WEAPON_PISTOL] := '??';
   ItemNames[ITEM_WEAPON_KASTET] := '?';
   ItemNames[ITEM_WEAPON_PISTOL] := '??';
-  ItemNames[ITEM_BOTTLE] := _lc[I_ARRAY_ITEM_BOTTLE];
-  ItemNames[ITEM_HELMET] := _lc[I_ARRAY_ITEM_HELMET];
-  ItemNames[ITEM_JETPACK] := _lc[I_ARRAY_ITEM_JETPACK];
-  ItemNames[ITEM_INVIS] := _lc[I_ARRAY_ITEM_INVIS];
+  ItemNames[ITEM_BOTTLE] := MsgArrayItemBottle;
+  ItemNames[ITEM_HELMET] := MsgArrayItemHelmet;
+  ItemNames[ITEM_JETPACK] := MsgArrayItemJetpack;
+  ItemNames[ITEM_INVIS] := MsgArrayItemInvis;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΠ½Π°Ρ€ΡΠ΄ΠΎΠ²:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΠ½Π°Ρ€ΡΠ΄ΠΎΠ²:
-  ShotNames[TRIGGER_SHOT_PISTOL] := _lc[I_ARRAY_SHOT_PISTOL];
-  ShotNames[TRIGGER_SHOT_BULLET] := _lc[I_ARRAY_SHOT_BULLET];
-  ShotNames[TRIGGER_SHOT_SHOTGUN] := _lc[I_ARRAY_SHOT_SHOTGUN];
-  ShotNames[TRIGGER_SHOT_SSG] := _lc[I_ARRAY_SHOT_SSG];
-  ShotNames[TRIGGER_SHOT_IMP] := _lc[I_ARRAY_SHOT_IMP];
-  ShotNames[TRIGGER_SHOT_PLASMA] := _lc[I_ARRAY_SHOT_PLASMA];
-  ShotNames[TRIGGER_SHOT_SPIDER] := _lc[I_ARRAY_SHOT_SPIDER];
-  ShotNames[TRIGGER_SHOT_CACO] := _lc[I_ARRAY_SHOT_CACO];
-  ShotNames[TRIGGER_SHOT_BARON] := _lc[I_ARRAY_SHOT_BARON];
-  ShotNames[TRIGGER_SHOT_MANCUB] := _lc[I_ARRAY_SHOT_MANCUB];
-  ShotNames[TRIGGER_SHOT_REV] := _lc[I_ARRAY_SHOT_REV];
-  ShotNames[TRIGGER_SHOT_ROCKET] := _lc[I_ARRAY_SHOT_ROCKET];
-  ShotNames[TRIGGER_SHOT_BFG] := _lc[I_ARRAY_SHOT_BFG];
-  ShotNames[TRIGGER_SHOT_EXPL] := _lc[I_ARRAY_SHOT_EXPL];
-  ShotNames[TRIGGER_SHOT_BFGEXPL] := _lc[I_ARRAY_SHOT_BFGEXPL];
-  ShotNames[TRIGGER_SHOT_FLAME] := _lc[I_ARRAY_SHOT_FLAME];
+  ShotNames[TRIGGER_SHOT_PISTOL] := MsgArrayShotPistol;
+  ShotNames[TRIGGER_SHOT_BULLET] := MsgArrayShotBullet;
+  ShotNames[TRIGGER_SHOT_SHOTGUN] := MsgArrayShotShotgun;
+  ShotNames[TRIGGER_SHOT_SSG] := MsgArrayShotSsg;
+  ShotNames[TRIGGER_SHOT_IMP] := MsgArrayShotImp;
+  ShotNames[TRIGGER_SHOT_PLASMA] := MsgArrayShotPlasma;
+  ShotNames[TRIGGER_SHOT_SPIDER] := MsgArrayShotSpider;
+  ShotNames[TRIGGER_SHOT_CACO] := MsgArrayShotCaco;
+  ShotNames[TRIGGER_SHOT_BARON] := MsgArrayShotBaron;
+  ShotNames[TRIGGER_SHOT_MANCUB] := MsgArrayShotMancub;
+  ShotNames[TRIGGER_SHOT_REV] := MsgArrayShotRev;
+  ShotNames[TRIGGER_SHOT_ROCKET] := MsgArrayShotRocket;
+  ShotNames[TRIGGER_SHOT_BFG] := MsgArrayShotBfg;
+  ShotNames[TRIGGER_SHOT_EXPL] := MsgArrayShotExpl;
+  ShotNames[TRIGGER_SHOT_BFGEXPL] := MsgArrayShotBfgexpl;
+  ShotNames[TRIGGER_SHOT_FLAME] := MsgArrayShotFlame;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΎΠ²:
-  MonsterNames[MONSTER_DEMON] := _lc[I_ARRAY_MON_DEMON];
-  MonsterNames[MONSTER_IMP] := _lc[I_ARRAY_MON_IMP];
-  MonsterNames[MONSTER_ZOMBY] := _lc[I_ARRAY_MON_ZOMBIE];
-  MonsterNames[MONSTER_SERG] := _lc[I_ARRAY_MON_SERGEANT];
-  MonsterNames[MONSTER_CYBER] := _lc[I_ARRAY_MON_CYBER];
-  MonsterNames[MONSTER_CGUN] := _lc[I_ARRAY_MON_CGUN];
-  MonsterNames[MONSTER_BARON] := _lc[I_ARRAY_MON_HELL_BARON];
-  MonsterNames[MONSTER_KNIGHT] := _lc[I_ARRAY_MON_HELL_KNIGHT];
-  MonsterNames[MONSTER_CACO] := _lc[I_ARRAY_MON_CACODEMON];
-  MonsterNames[MONSTER_SOUL] := _lc[I_ARRAY_MON_LOST_SOUL];
-  MonsterNames[MONSTER_PAIN] := _lc[I_ARRAY_MON_PAIN_ELEMENTAL];
-  MonsterNames[MONSTER_SPIDER] := _lc[I_ARRAY_MON_MASTERMIND];
-  MonsterNames[MONSTER_BSP] := _lc[I_ARRAY_MON_ARACHNATRON];
-  MonsterNames[MONSTER_MANCUB] := _lc[I_ARRAY_MON_MANCUBUS];
-  MonsterNames[MONSTER_SKEL] := _lc[I_ARRAY_MON_REVENANT];
-  MonsterNames[MONSTER_VILE] := _lc[I_ARRAY_MON_ARCHVILE];
-  MonsterNames[MONSTER_FISH] := _lc[I_ARRAY_MON_FISH];
-  MonsterNames[MONSTER_BARREL] := _lc[I_ARRAY_MON_BARREL];
-  MonsterNames[MONSTER_ROBO] := _lc[I_ARRAY_MON_ROBOT];
-  MonsterNames[MONSTER_MAN] := _lc[I_ARRAY_MON_PRIKOLIST];
+  MonsterNames[MONSTER_DEMON] := MsgArrayMonDemon;
+  MonsterNames[MONSTER_IMP] := MsgArrayMonImp;
+  MonsterNames[MONSTER_ZOMBY] := MsgArrayMonZombie;
+  MonsterNames[MONSTER_SERG] := MsgArrayMonSergeant;
+  MonsterNames[MONSTER_CYBER] := MsgArrayMonCyber;
+  MonsterNames[MONSTER_CGUN] := MsgArrayMonCgun;
+  MonsterNames[MONSTER_BARON] := MsgArrayMonHellBaron;
+  MonsterNames[MONSTER_KNIGHT] := MsgArrayMonHellKnight;
+  MonsterNames[MONSTER_CACO] := MsgArrayMonCacodemon;
+  MonsterNames[MONSTER_SOUL] := MsgArrayMonLostSoul;
+  MonsterNames[MONSTER_PAIN] := MsgArrayMonPainElemental;
+  MonsterNames[MONSTER_SPIDER] := MsgArrayMonMastermind;
+  MonsterNames[MONSTER_BSP] := MsgArrayMonArachnatron;
+  MonsterNames[MONSTER_MANCUB] := MsgArrayMonMancubus;
+  MonsterNames[MONSTER_SKEL] := MsgArrayMonRevenant;
+  MonsterNames[MONSTER_VILE] := MsgArrayMonArchvile;
+  MonsterNames[MONSTER_FISH] := MsgArrayMonFish;
+  MonsterNames[MONSTER_BARREL] := MsgArrayMonBarrel;
+  MonsterNames[MONSTER_ROBO] := MsgArrayMonRobot;
+  MonsterNames[MONSTER_MAN] := MsgArrayMonPrikolist;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡ‚Π΅ΠΉ:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡ‚Π΅ΠΉ:
-  AreaNames[AREA_PLAYERPOINT1] := _lc[I_ARRAY_AREA_PLAYER_ONE];
-  AreaNames[AREA_PLAYERPOINT2] := _lc[I_ARRAY_AREA_PLAYER_TWO];
-  AreaNames[AREA_DMPOINT] := _lc[I_ARRAY_AREA_DM];
-  AreaNames[AREA_REDFLAG] := _lc[I_ARRAY_AREA_FLAG_RED];
-  AreaNames[AREA_BLUEFLAG] := _lc[I_ARRAY_AREA_FLAG_BLUE];
-  AreaNames[AREA_DOMFLAG] := _lc[I_ARRAY_AREA_FLAG_DOM];
-  AreaNames[AREA_REDTEAMPOINT] := _lc[I_ARRAY_AREA_TEAM_RED];
-  AreaNames[AREA_BLUETEAMPOINT] := _lc[I_ARRAY_AREA_TEAM_BLUE];
+  AreaNames[AREA_PLAYERPOINT1] := MsgArrayAreaPlayerOne;
+  AreaNames[AREA_PLAYERPOINT2] := MsgArrayAreaPlayerTwo;
+  AreaNames[AREA_DMPOINT] := MsgArrayAreaDm;
+  AreaNames[AREA_REDFLAG] := MsgArrayAreaFlagRed;
+  AreaNames[AREA_BLUEFLAG] := MsgArrayAreaFlagBlue;
+  AreaNames[AREA_DOMFLAG] := MsgArrayAreaFlagDom;
+  AreaNames[AREA_REDTEAMPOINT] := MsgArrayAreaTeamRed;
+  AreaNames[AREA_BLUETEAMPOINT] := MsgArrayAreaTeamBlue;
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²:
 
 // ΠΠ°Π·Π²Π°Π½ΠΈΡ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²:
-  TriggerNames[TRIGGER_EXIT] := _lc[I_ARRAY_TR_EXIT];
-  TriggerNames[TRIGGER_TELEPORT] := _lc[I_ARRAY_TR_TELEPORT];
-  TriggerNames[TRIGGER_OPENDOOR] := _lc[I_ARRAY_TR_DOOR_OPEN];
-  TriggerNames[TRIGGER_CLOSEDOOR] := _lc[I_ARRAY_TR_DOOR_CLOSE];
-  TriggerNames[TRIGGER_DOOR] := _lc[I_ARRAY_TR_DOOR_SWITCH];
-  TriggerNames[TRIGGER_DOOR5] := _lc[I_ARRAY_TR_DOOR_5_SEC];
-  TriggerNames[TRIGGER_CLOSETRAP] := _lc[I_ARRAY_TR_TRAP_CLOSE];
-  TriggerNames[TRIGGER_TRAP] := _lc[I_ARRAY_TR_TRAP];
-  TriggerNames[TRIGGER_PRESS] := _lc[I_ARRAY_TR_EXTEND];
-  TriggerNames[TRIGGER_SECRET] := _lc[I_ARRAY_TR_SECRET];
-  TriggerNames[TRIGGER_LIFTUP] := _lc[I_ARRAY_TR_LIFT_UP];
-  TriggerNames[TRIGGER_LIFTDOWN] := _lc[I_ARRAY_TR_LIFT_DOWN];
-  TriggerNames[TRIGGER_LIFT] := _lc[I_ARRAY_TR_LIFT_SWITCH];
-  TriggerNames[TRIGGER_TEXTURE] := _lc[I_ARRAY_TR_TEXTURE];
-  TriggerNames[TRIGGER_ON] := _lc[I_ARRAY_TR_ON];
-  TriggerNames[TRIGGER_OFF] := _lc[I_ARRAY_TR_OFF];
-  TriggerNames[TRIGGER_ONOFF] := _lc[I_ARRAY_TR_SWITCH];
-  TriggerNames[TRIGGER_SOUND] := _lc[I_ARRAY_TR_SOUND];
-  TriggerNames[TRIGGER_SPAWNMONSTER] := _lc[I_ARRAY_TR_SPAWN_MONSTER];
-  TriggerNames[TRIGGER_SPAWNITEM] := _lc[I_ARRAY_TR_SPAWN_ITEM];
-  TriggerNames[TRIGGER_MUSIC] := _lc[I_ARRAY_TR_MUSIC];
-  TriggerNames[TRIGGER_PUSH] := _lc[I_ARRAY_TR_PUSH];
-  TriggerNames[TRIGGER_SCORE] := _lc[I_ARRAY_TR_SCORE];
-  TriggerNames[TRIGGER_MESSAGE] := _lc[I_ARRAY_TR_MESSAGE];
-  TriggerNames[TRIGGER_DAMAGE] := _lc[I_ARRAY_TR_DAMAGE];
-  TriggerNames[TRIGGER_HEALTH] := _lc[I_ARRAY_TR_HEALTH];
-  TriggerNames[TRIGGER_SHOT] := _lc[I_ARRAY_TR_SHOT];
-  TriggerNames[TRIGGER_EFFECT] := _lc[I_ARRAY_TR_EFFECT];
+  TriggerNames[TRIGGER_EXIT] := MsgArrayTrExit;
+  TriggerNames[TRIGGER_TELEPORT] := MsgArrayTrTeleport;
+  TriggerNames[TRIGGER_OPENDOOR] := MsgArrayTrDoorOpen;
+  TriggerNames[TRIGGER_CLOSEDOOR] := MsgArrayTrDoorClose;
+  TriggerNames[TRIGGER_DOOR] := MsgArrayTrDoorSwitch;
+  TriggerNames[TRIGGER_DOOR5] := MsgArrayTrDoor5Sec;
+  TriggerNames[TRIGGER_CLOSETRAP] := MsgArrayTrTrapClose;
+  TriggerNames[TRIGGER_TRAP] := MsgArrayTrTrap;
+  TriggerNames[TRIGGER_PRESS] := MsgArrayTrExtend;
+  TriggerNames[TRIGGER_SECRET] := MsgArrayTrSecret;
+  TriggerNames[TRIGGER_LIFTUP] := MsgArrayTrLiftUp;
+  TriggerNames[TRIGGER_LIFTDOWN] := MsgArrayTrLiftDown;
+  TriggerNames[TRIGGER_LIFT] := MsgArrayTrLiftSwitch;
+  TriggerNames[TRIGGER_TEXTURE] := MsgArrayTrTexture;
+  TriggerNames[TRIGGER_ON] := MsgArrayTrOn;
+  TriggerNames[TRIGGER_OFF] := MsgArrayTrOff;
+  TriggerNames[TRIGGER_ONOFF] := MsgArrayTrSwitch;
+  TriggerNames[TRIGGER_SOUND] := MsgArrayTrSound;
+  TriggerNames[TRIGGER_SPAWNMONSTER] := MsgArrayTrSpawnMonster;
+  TriggerNames[TRIGGER_SPAWNITEM] := MsgArrayTrSpawnItem;
+  TriggerNames[TRIGGER_MUSIC] := MsgArrayTrMusic;
+  TriggerNames[TRIGGER_PUSH] := MsgArrayTrPush;
+  TriggerNames[TRIGGER_SCORE] := MsgArrayTrScore;
+  TriggerNames[TRIGGER_MESSAGE] := MsgArrayTrMessage;
+  TriggerNames[TRIGGER_DAMAGE] := MsgArrayTrDamage;
+  TriggerNames[TRIGGER_HEALTH] := MsgArrayTrHealth;
+  TriggerNames[TRIGGER_SHOT] := MsgArrayTrShot;
+  TriggerNames[TRIGGER_EFFECT] := MsgArrayTrEffect;
 
 // Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:
   with MainForm do
 
 // Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:
   with MainForm do
@@ -2015,32 +864,33 @@ begin
       lbTriggersList.Items.Add(TriggerNames[i]);
 
     clbActivationType.Clear();
       lbTriggersList.Items.Add(TriggerNames[i]);
 
     clbActivationType.Clear();
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_PLAYER_CLOSE]);
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_MONSTER_CLOSE]);
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_PLAYER_PRESS]);
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_MONSTER_PRESS]);
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_SHOT]);
-    clbActivationType.Items.Add(_lc[I_CTRL_ACT_NO_MONSTER]);
+    clbActivationType.Items.Add(MsgCtrlActPlayerClose);
+    clbActivationType.Items.Add(MsgCtrlActMonsterClose);
+    clbActivationType.Items.Add(MsgCtrlActPlayerPress);
+    clbActivationType.Items.Add(MsgCtrlActMonsterPress);
+    clbActivationType.Items.Add(MsgCtrlActShot);
+    clbActivationType.Items.Add(MsgCtrlActNoMonster);
 
     clbKeys.Clear();
 
     clbKeys.Clear();
-    clbKeys.Items.Add(_lc[I_CTRL_KEYS_RED]);
-    clbKeys.Items.Add(_lc[I_CTRL_KEYS_GREEN]);
-    clbKeys.Items.Add(_lc[I_CTRL_KEYS_BLUE]);
-    clbKeys.Items.Add(_lc[I_CTRL_KEYS_TEAM_RED]);
-    clbKeys.Items.Add(_lc[I_CTRL_KEYS_TEAM_BLUE]);
+    clbKeys.Items.Add(MsgCtrlKeysRed);
+    clbKeys.Items.Add(MsgCtrlKeysGreen);
+    clbKeys.Items.Add(MsgCtrlKeysBlue);
+    clbKeys.Items.Add(MsgCtrlKeysTeamRed);
+    clbKeys.Items.Add(MsgCtrlKeysTeamBlue);
   end;
 end;
 
 procedure SetupCaptions();
   end;
 end;
 
 procedure SetupCaptions();
-var
-  i: Integer;
-
+  var i: Integer; s: AnsiString;
 begin
 // Π“лавная Ρ„ΠΎΡ€ΠΌΠ°:
   with MainForm do
   begin
   // Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
 begin
 // Π“лавная Ρ„ΠΎΡ€ΠΌΠ°:
   with MainForm do
   begin
   // Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
-    FormCaption := _lc[I_EDITOR_TITLE];
+    s := g_GetBuildHash(false);
+    if s = 'custom build' then
+      s := s + ' by ' + g_GetBuilderName() + ' ' + EDITOR_BUILDDATE + ' ' + EDITOR_BUILDTIME;
+    FormCaption := MsgEditorTitle + ' (' + s + ')';
     i := Pos('-', Caption);
     if i > 0 then
       begin
     i := Pos('-', Caption);
     if i > 0 then
       begin
@@ -2048,499 +898,492 @@ begin
       end
     else
       Caption := FormCaption;
       end
     else
       Caption := FormCaption;
-  // Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½ΡŽ:
-  // "Π€Π°ΠΉΠ»":
-    miMenuFile.Caption := _lc[I_MENU_FILE];
-    miNewMap.Caption := _lc[I_MENU_FILE_NEW];
-    miOpenMap.Caption := _lc[I_MENU_FILE_OPEN];
-    miSaveMap.Caption := _lc[I_MENU_FILE_SAVE];
-    miSaveMapAs.Caption := _lc[I_MENU_FILE_SAVE_AS];
-    miOpenWadMap.Caption := _lc[I_MENU_FILE_OPEN_WAD];
-    miReopenMap.Caption := _lc[I_MENU_FILE_REOPEN];
-    miSaveMiniMap.Caption := _lc[I_MENU_FILE_SAVE_MINI];
-    miDeleteMap.Caption := _lc[I_MENU_FILE_DELETE];
-    miPackMap.Caption := _lc[I_MENU_FILE_PACK_MAP];
-    miExit.Caption := _lc[I_MENU_FILE_EXIT];
-  // "ΠŸΡ€Π°Π²ΠΊΠ°":
-    miMenuEdit.Caption := _lc[I_MENU_EDIT];
-    miUndo.Caption := _lc[I_MENU_EDIT_UNDO];
-    miCopy.Caption := _lc[I_MENU_EDIT_COPY];
-    miCut.Caption := _lc[I_MENU_EDIT_CUT];
-    miPaste.Caption := _lc[I_MENU_EDIT_PASTE];
-    miSelectAll.Caption := _lc[I_MENU_EDIT_SELECT_ALL];
-    miToFore.Caption := _lc[I_MENU_EDIT_TO_FORE];
-    miToBack.Caption := _lc[I_MENU_EDIT_TO_BACK];
-  // "Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹":
-    miMenuTools.Caption := _lc[I_MENU_TOOLS];
-    miSnapToGrid.Caption := _lc[I_MENU_TOOLS_SNAP_GRID];
-    miMiniMap.Caption := _lc[I_MENU_TOOLS_MINIMAP];
-    miSwitchGrid.Caption := _lc[I_MENU_TOOLS_STEP_GRID];
-    miShowEdges.Caption := _lc[I_MENU_TOOLS_SHOW_EDGES];
-    miLayers.Caption := _lc[I_MENU_TOOLS_LAYERS];
-    miLayer1.Caption := _lc[I_MENU_LAYER_BACK];
-    miLayer2.Caption := _lc[I_MENU_LAYER_WALL];
-    miLayer3.Caption := _lc[I_MENU_LAYER_FORE];
-    miLayer4.Caption := _lc[I_MENU_LAYER_STAIR];
-    miLayer5.Caption := _lc[I_MENU_LAYER_WATER];
-    miLayer6.Caption := _lc[I_MENU_LAYER_ITEM];
-    miLayer7.Caption := _lc[I_MENU_LAYER_MONSTER];
-    miLayer8.Caption := _lc[I_MENU_LAYER_AREA];
-    miLayer9.Caption := _lc[I_MENU_LAYER_TRIGGER];
-  // "БСрвис":
-    miMenuService.Caption := _lc[I_MENU_SERV];
-    miCheckMap.Caption := _lc[I_MENU_SERV_TEST];
-    miOptimmization.Caption := _lc[I_MENU_SERV_OPT];
-    miMapPreview.Caption := _lc[I_MENU_SERV_PREVIEW];
-    miTestMap.Caption := _lc[I_MENU_SERV_LAUNCH];
-  // "Настройка":
-    miMenuSettings.Caption := _lc[I_MENU_SETS];
-    miMapOptions.Caption := _lc[I_MENU_SETS_MAP];
-    miOptions.Caption := _lc[I_MENU_SETS_EDITOR];
-    miMapTestSettings.Caption := _lc[I_MENU_SETS_LAUNCH];
-  // "Π‘ΠΏΡ€Π°Π²ΠΊΠ°":
-    miMenuHelp.Caption := _lc[I_MENU_HELP];
-    miAbout.Caption := _lc[I_MENU_HELP_ABOUT];
-
-  // ΠŸΠ°Π½Π΅Π»ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
-    tbNewMap.Hint := _lc[I_MENU_TB_NEW];
-    tbOpenMap.Hint := _lc[I_MENU_TB_OPEN];
-    tbSaveMap.Hint := _lc[I_MENU_TB_SAVE];
-    tbOpenWadMap.Hint := _lc[I_MENU_TB_OPEN_WAD];
-    tbShowMap.Hint := _lc[I_MENU_TB_MINIMAP];
-    tbShow.Hint := _lc[I_MENU_TB_LAYERS];
-    tbGridOn.Hint := _lc[I_MENU_TB_GRID];
-    tbGrid.Hint := _lc[I_MENU_TB_GRID_STEP];
-    tbTestMap.Hint := _lc[I_MENU_TB_LAUNCH];
-  // Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΌΠ΅Π½ΡŽ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ»ΠΎΠ΅Π²:
-    miLayerP1.Caption := _lc[I_MENU_LAYER_BACK];
-    miLayerP2.Caption := _lc[I_MENU_LAYER_WALL];
-    miLayerP3.Caption := _lc[I_MENU_LAYER_FORE];
-    miLayerP4.Caption := _lc[I_MENU_LAYER_STAIR];
-    miLayerP5.Caption := _lc[I_MENU_LAYER_WATER];
-    miLayerP6.Caption := _lc[I_MENU_LAYER_ITEM];
-    miLayerP7.Caption := _lc[I_MENU_LAYER_MONSTER];
-    miLayerP8.Caption := _lc[I_MENU_LAYER_AREA];
-    miLayerP9.Caption := _lc[I_MENU_LAYER_TRIGGER];
-  // Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΌΠ΅Π½ΡŽ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ‚Сста ΠΊΠ°Ρ€Ρ‚Ρ‹:
-    miMapTestPMSet.Caption := _lc[I_MENU_LAUNCH_SETS];
-
-  // ΠšΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡ‚Π²:
-    bApplyProperty.Caption := _lc[I_BTN_APPLY_PROPS];
-  // Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΡΠ²ΠΎΠΉΡΡ‚Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:
-    vleObjectProperty.TitleCaptions[0] := _lc[I_CTRL_PROP_KEY];
-    vleObjectProperty.TitleCaptions[1] := _lc[I_CTRL_PROP_VALUE];
-
-  // Π’ΠΊΠ»Π°Π΄ΠΊΠ° "ПанСли":
-    tsPanels.Caption := _lc[I_CTRL_PANELS];
-    lbPanelType.Hint := _lc[I_PROP_PANEL_TYPE];
-    lbTextureList.Hint := _lc[I_CTRL_LIST_TEXTURE];
-  // ΠŸΠ°Π½Π΅Π»ΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Ρ‚Скстур:
-    LabelTxW.Caption := _lc[I_LAB_TEX_WIDTH];
-    LabelTxH.Caption := _lc[I_LAB_TEX_HEIGHT];
-    cbPreview.Caption := _lc[I_CTRL_PREVIEW];
-    bbAddTexture.Hint := _lc[I_BTN_TEXTURE_ADD];
-    bbRemoveTexture.Hint := _lc[I_BTN_TEXTURE_DELETE];
-    bClearTexture.Hint := _lc[I_BTN_TEXTURE_EMPTY];
-
-  // Π’ΠΊΠ»Π°Π΄ΠΊΠ° "ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹":
-    tsItems.Caption := _lc[I_CTRL_ITEMS];
-    lbItemList.Hint := _lc[I_CTRL_LIST_ITEM];
-    cbOnlyDM.Caption := _lc[I_CTRL_ITEM_DM];
-    cbFall.Caption := _lc[I_CTRL_ITEM_FALLS];
-
-  // Π’ΠΊΠ»Π°Π΄ΠΊΠ° "ΠœΠΎΠ½ΡΡ‚Ρ€Ρ‹":
-    tsMonsters.Caption := _lc[I_CTRL_MONSTERS];
-    lbMonsterList.Hint := _lc[I_CTRL_LIST_MONSTER];
-    rbMonsterLeft.Caption := _lc[I_CTRL_LEFT];
-    rbMonsterRight.Caption := _lc[I_CTRL_RIGHT];
-
-  // Π’ΠΊΠ»Π°Π΄ΠΊΠ° "ΠžΠ±Π»Π°ΡΡ‚ΠΈ":
-    tsAreas.Caption := _lc[I_CTRL_AREAS];
-    lbAreasList.Hint := _lc[I_CTRL_LIST_AREA];
-    rbAreaLeft.Caption := _lc[I_CTRL_LEFT];
-    rbAreaRight.Caption := _lc[I_CTRL_RIGHT];
-
-  // Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹":
-    tsTriggers.Caption := _lc[I_CTRL_TRIGGERS];
-    lbTriggersList.Hint := _lc[I_CTRL_LIST_TRIGGER];
-    clbActivationType.Hint := _lc[I_CTRL_LIST_ACTIVE];
-    clbKeys.Hint := _lc[I_CTRL_LIST_KEYS];
+
+  // Apple menu:
+    miAppleAbout.Caption := MsgMenuAppleAbout;
+    miApplePref.Caption := MsgMenuApplePref;
+  // File menu:
+    miMenuFile.Caption := MsgMenuFile;
+    miNewMap.Caption := MsgMenuFileNew;
+    miOpenMap.Caption := MsgMenuFileOpen;
+    miMacRecentSubMenu.Caption := MsgMenuFileRecentMac;
+    miMacRecentClear.Caption := MsgMenuFileRecentClearMac;
+    miSaveMap.Caption := MsgMenuFileSave;
+    miSaveMapAs.Caption := MsgMenuFileSaveAs;
+    miOpenWadMap.Caption := MsgMenuFileOpenWad;
+    miReopenMap.Caption := MsgMenuFileReopen;
+    miSaveMiniMap.Caption := MsgMenuFileSaveMini;
+    miDeleteMap.Caption := MsgMenuFileDelete;
+    miPackMap.Caption := MsgMenuFilePackMap;
+    miWinRecent.Caption := MsgMenuFileRecentWin;
+    miExit.Caption := MsgMenuFileExitWin;
+  // Edit menu:
+    miMenuEdit.Caption := MsgMenuEdit;
+    miUndo.Caption := MsgMenuEditUndo;
+    miCopy.Caption := MsgMenuEditCopy;
+    miCut.Caption := MsgMenuEditCut;
+    miPaste.Caption := MsgMenuEditPaste;
+    miSelectAll.Caption := MsgMenuEditSelectAll;
+    miSnapToGrid.Caption := MsgMenuEditSnapGrid;
+    miSwitchGrid.Caption := MsgMenuEditStepGrid;
+    miToFore.Caption := MsgMenuEditToFore;
+    miToBack.Caption := MsgMenuEditToBack;
+    miMapOptions.Caption := MsgMenuEditMapProps;
+    miOptions.Caption := MsgMenuEditPrefWin;
+  // View menu:
+    miMenuView.Caption := MsgMenuView;
+    miLayers.Caption := MsgMenuViewLayers;
+    miLayer1.Caption := MsgMenuLayerBack;
+    miLayer2.Caption := MsgMenuLayerWall;
+    miLayer3.Caption := MsgMenuLayerFore;
+    miLayer4.Caption := MsgMenuLayerStair;
+    miLayer5.Caption := MsgMenuLayerWater;
+    miLayer6.Caption := MsgMenuLayerItem;
+    miLayer7.Caption := MsgMenuLayerMonster;
+    miLayer8.Caption := MsgMenuLayerArea;
+    miLayer9.Caption := MsgMenuLayerTrigger;
+    miMiniMap.Caption := MsgMenuViewMinimap;
+    miShowEdges.Caption := MsgMenuViewBounds;
+    miMapPreview.Caption := MsgMenuViewPreview;
+  // Service menu:
+    miMenuService.Caption := MsgMenuServ;
+    miCheckMap.Caption := MsgMenuServTest;
+    miOptimmization.Caption := MsgMenuServOpt;
+    miTestMap.Caption := MsgMenuServLaunch;
+  // Window menu:
+    miMenuWindow.Caption := MsgMenuWindow;
+    miMacMinimize.Caption := MsgMenuWindowMinimize;
+    miMacZoom.Caption := MsgMenuWindowZoom;
+  // Help menu:
+    miMenuHelp.Caption := MsgMenuHelp;
+    miAbout.Caption := MsgMenuHelpAboutWin;
+
+  // Toolbar:
+    tbNewMap.Hint := MsgMenuTbNew;
+    tbOpenMap.Hint := MsgMenuTbOpen;
+    tbSaveMap.Hint := MsgMenuTbSave;
+    tbOpenWadMap.Hint := MsgMenuTbOpenWad;
+    tbShowMap.Hint := MsgMenuTbMinimap;
+    tbShow.Hint := MsgMenuTbLayers;
+    miLayerP1.Caption := MsgMenuLayerBack;
+    miLayerP2.Caption := MsgMenuLayerWall;
+    miLayerP3.Caption := MsgMenuLayerFore;
+    miLayerP4.Caption := MsgMenuLayerStair;
+    miLayerP5.Caption := MsgMenuLayerWater;
+    miLayerP6.Caption := MsgMenuLayerItem;
+    miLayerP7.Caption := MsgMenuLayerMonster;
+    miLayerP8.Caption := MsgMenuLayerArea;
+    miLayerP9.Caption := MsgMenuLayerTrigger;
+    tbGridOn.Hint := MsgMenuTbGrid;
+    tbGrid.Hint := MsgMenuTbGridStep;
+    tbTestMap.Hint := MsgMenuTbLaunch;
+
+  // Object property editor:
+    bApplyProperty.Caption := MsgBtnApplyProps;
+    vleObjectProperty.TitleCaptions[0] := MsgCtrlPropKey;
+    vleObjectProperty.TitleCaptions[1] := MsgCtrlPropValue;
+
+  // Panels Tab:
+    tsPanels.Caption := MsgCtrlPanels;
+    lbPanelType.Hint := MsgPropPanelType;
+    lbTextureList.Hint := MsgCtrlListTexture;
+    LabelTxW.Caption := MsgLabTexWidth;
+    LabelTxH.Caption := MsgLabTexHeight;
+    cbPreview.Caption := MsgCtrlPreview;
+    bbAddTexture.Hint := MsgBtnTextureAdd;
+    bbRemoveTexture.Hint := MsgBtnTextureDelete;
+    bClearTexture.Hint := MsgBtnTextureEmpty;
+
+  // Items Tab:
+    tsItems.Caption := MsgCtrlItems;
+    lbItemList.Hint := MsgCtrlListItem;
+    cbOnlyDM.Caption := MsgCtrlItemDm;
+    cbFall.Caption := MsgCtrlItemFalls;
+
+  // Monters Tab:
+    tsMonsters.Caption := MsgCtrlMonsters;
+    lbMonsterList.Hint := MsgCtrlListMonster;
+    rbMonsterLeft.Caption := MsgCtrlLeft;
+    rbMonsterRight.Caption := MsgCtrlRight;
+
+  // Areas Tab:
+    tsAreas.Caption := MsgCtrlAreas;
+    lbAreasList.Hint := MsgCtrlListArea;
+    rbAreaLeft.Caption := MsgCtrlLeft;
+    rbAreaRight.Caption := MsgCtrlRight;
+
+  // Triggers Tab:
+    tsTriggers.Caption := MsgCtrlTriggers;
+    lbTriggersList.Hint := MsgCtrlListTrigger;
+    clbActivationType.Hint := MsgCtrlListActive;
+    clbKeys.Hint := MsgCtrlListKeys;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅":
   with AboutForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅":
   with AboutForm do
   begin
-    Caption := _lc[I_CAP_ABOUT];
-    LabelTitle.Caption := _lc[I_EDITOR_TITLE];
-    LabelVer.Caption := _lc[I_LAB_ABOUT_VER];
-    LabelAuthor.Caption := _lc[I_LAB_ABOUT_AUTHOR];
-    LabelAuthor2.Caption := _lc[I_LAB_ABOUT_AUTHOR_2];
-    LabelMail.Caption := _lc[I_LAB_ABOUT_MAIL];
-    LabelMail2.Caption := _lc[I_LAB_ABOUT_MAIL_2];
-    LabelSite.Caption := _lc[I_LAB_ABOUT_SITE];
-    LabelHttp.Caption := _lc[I_LAB_ABOUT_HTTP];
+    Caption := MsgCapAbout;
+    LabelTitle.Caption := MsgEditorTitle;
+    LabelVer.Caption := MsgLabAboutVer;
+    LabelAuthor.Caption := MsgLabAboutAuthor;
+    LabelAuthor2.Caption := MsgLabAboutAuthor2;
+    LabelMail.Caption := MsgLabAboutMail;
+    LabelMail2.Caption := MsgLabAboutMail2;
+    LabelSite.Caption := MsgLabAboutSite;
+    LabelHttp.Caption := MsgLabAboutHttp;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’ΠΈΠΏ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ":
   with ActivationTypeForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’ΠΈΠΏ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ":
   with ActivationTypeForm do
   begin
-    Caption := _lc[I_CAP_ACT];
-    cbPlayerCollide.Caption := _lc[I_CTRL_ACT_PLAYER_CLOSE];
-    cbMonsterCollide.Caption := _lc[I_CTRL_ACT_MONSTER_CLOSE];
-    cbPlayerPress.Caption := _lc[I_CTRL_ACT_PLAYER_PRESS];
-    cbMonsterPress.Caption := _lc[I_CTRL_ACT_MONSTER_PRESS];
-    cbShot.Caption := _lc[I_CTRL_ACT_SHOT];
-    cbNoMonster.Caption := _lc[I_CTRL_ACT_NO_MONSTER];
-    bOK.Caption := _lc[I_BTN_OK];
+    Caption := MsgCapAct;
+    cbPlayerCollide.Caption := MsgCtrlActPlayerClose;
+    cbMonsterCollide.Caption := MsgCtrlActMonsterClose;
+    cbPlayerPress.Caption := MsgCtrlActPlayerPress;
+    cbMonsterPress.Caption := MsgCtrlActMonsterPress;
+    cbShot.Caption := MsgCtrlActShot;
+    cbNoMonster.Caption := MsgCtrlActNoMonster;
+    bOK.Caption := MsgBtnOk;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚Скстуры Π΄Π»Ρ Π½Π΅Π±Π°":
   with AddSkyForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚Скстуры Π΄Π»Ρ Π½Π΅Π±Π°":
   with AddSkyForm do
   begin
-    Caption := _lc[I_CAP_ADD_SKY];
-    LabelWADs.Caption := _lc[I_LAB_ADD_WADS];
-    LabelSections.Caption := _lc[I_LAB_ADD_SECTIONS];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
+    Caption := MsgCapAddSky;
+    LabelWADs.Caption := MsgLabAddWads;
+    LabelSections.Caption := MsgLabAddSections;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Π·Π²ΡƒΠΊΠ° ΠΈΠ»ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ":
   with AddSoundForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Π·Π²ΡƒΠΊΠ° ΠΈΠ»ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ":
   with AddSoundForm do
   begin
-    Caption := _lc[I_CAP_ADD_SOUND];
-    LabelWADs.Caption := _lc[I_LAB_ADD_WADS];
-    LabelSections.Caption := _lc[I_LAB_ADD_SECTIONS];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
-    bEmpty.Caption := _lc[I_BTN_NO_SOUND];
+    Caption := MsgCapAddSound;
+    LabelWADs.Caption := MsgLabAddWads;
+    LabelSections.Caption := MsgLabAddSections;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
+    bEmpty.Caption := MsgBtnNoSound;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚Скстуры":
   with AddTextureForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚Скстуры":
   with AddTextureForm do
   begin
-    Caption := _lc[I_CAP_ADD_TEXTURE];
-    LabelWADs.Caption := _lc[I_LAB_ADD_WADS];
-    LabelSections.Caption := _lc[I_LAB_ADD_SECTIONS];
-    bAddTexture.Caption := _lc[I_BTN_ADD];
-    bClose.Caption := _lc[I_BTN_CLOSE];
-    bAddClose.Caption := _lc[I_BTN_ADD_CLOSE];
+    Caption := MsgCapAddTexture;
+    LabelWADs.Caption := MsgLabAddWads;
+    LabelSections.Caption := MsgLabAddSections;
+    bAddTexture.Caption := MsgBtnAdd;
+    bClose.Caption := MsgBtnClose;
+    bAddClose.Caption := MsgBtnAddClose;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ½ΡΡ‚Ρ€Π°" / "Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°":
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ½ΡΡ‚Ρ€Π°" / "Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°":
-  ChooseTypeForm.bOK.Caption := _lc[I_BTN_OK];
+  ChooseTypeForm.bOK.Caption := MsgBtnOk;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠšΠ»ΡŽΡ‡ΠΈ":
   with KeysForm do
   begin
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠšΠ»ΡŽΡ‡ΠΈ":
   with KeysForm do
   begin
-    Caption := _lc[I_CAP_KEYS];
-    cbRedKey.Caption := _lc[I_CTRL_KEYS_RED];
-    cbGreenKey.Caption := _lc[I_CTRL_KEYS_GREEN];
-    cbBlueKey.Caption := _lc[I_CTRL_KEYS_BLUE];
-    cbRedTeam.Caption := _lc[I_CTRL_KEYS_TEAM_RED];
-    cbBlueTeam.Caption := _lc[I_CTRL_KEYS_TEAM_BLUE];
-    bOK.Caption := _lc[I_BTN_OK];
+    Caption := MsgCapKeys;
+    cbRedKey.Caption := MsgCtrlKeysRed;
+    cbGreenKey.Caption := MsgCtrlKeysGreen;
+    cbBlueKey.Caption := MsgCtrlKeysBlue;
+    cbRedTeam.Caption := MsgCtrlKeysTeamRed;
+    cbBlueTeam.Caption := MsgCtrlKeysTeamBlue;
+    bOK.Caption := MsgBtnOk;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapCheckForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapCheckForm do
   begin
-    Caption := _lc[I_CAP_TEST];
-    bCheckMap.Caption := _lc[I_BTN_TEST_AGAIN];
-    bClose.Caption := _lc[I_BTN_CLOSE];
+    Caption := MsgCapTest;
+    bCheckMap.Caption := MsgBtnTestAgain;
+    bClose.Caption := MsgBtnClose;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapOptimizationForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapOptimizationForm do
   begin
-    Caption := _lc[I_CAP_OPT];
+    Caption := MsgCapOpt;
   // Π’Ρ‹Π±ΠΎΡ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:
   // Π’Ρ‹Π±ΠΎΡ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:
-    GroupBoxOpt.Caption := _lc[I_CTRL_OPT_GB];
-    rbTexturesOptimization.Caption := _lc[I_CTRL_OPT_TEXTURE];
-    rbPanelsOptimization.Caption := _lc[I_CTRL_OPT_PANEL];
+    GroupBoxOpt.Caption := MsgCtrlOptGb;
+    rbTexturesOptimization.Caption := MsgCtrlOptTexture;
+    rbPanelsOptimization.Caption := MsgCtrlOptPanel;
   // ΠžΠΏΡ‚имизация Ρ‚Скстур:
   // ΠžΠΏΡ‚имизация Ρ‚Скстур:
-    bBeginTextureOptimization.Caption := _lc[I_BTN_START];
+    bBeginTextureOptimization.Caption := MsgBtnStart;
   // ΠžΠΏΡ‚имизация ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:
   // ΠžΠΏΡ‚имизация ΠΏΠ°Π½Π΅Π»Π΅ΠΉ:
-    cbOptimizeWalls.Caption := _lc[I_CTRL_OPT_WALL];
-    cbOptimizeForeGround.Caption := _lc[I_CTRL_OPT_FORE];
-    cbOptimizeBackGround.Caption := _lc[I_CTRL_OPT_BACK];
-    cbOptimizeSteps.Caption := _lc[I_CTRL_OPT_STAIR];
-    cbOptimizeWater.Caption := _lc[I_CTRL_OPT_WATER];
-    cbOptimizeAcid1.Caption := _lc[I_CTRL_OPT_ACID1];
-    cbOptimizeAcid2.Caption := _lc[I_CTRL_OPT_ACID2];
-    cbOptimizeLift.Caption := _lc[I_CTRL_OPT_LIFT];
-    cbOptimizeBlockMon.Caption := _lc[I_CTRL_OPT_BLOCKMON];
-    bBeginPanelsOptimization.Caption := _lc[I_BTN_START];
+    cbOptimizeWalls.Caption := MsgCtrlOptWall;
+    cbOptimizeForeGround.Caption := MsgCtrlOptFore;
+    cbOptimizeBackGround.Caption := MsgCtrlOptBack;
+    cbOptimizeSteps.Caption := MsgCtrlOptStair;
+    cbOptimizeWater.Caption := MsgCtrlOptWater;
+    cbOptimizeAcid1.Caption := MsgCtrlOptAcid1;
+    cbOptimizeAcid2.Caption := MsgCtrlOptAcid2;
+    cbOptimizeLift.Caption := MsgCtrlOptLift;
+    cbOptimizeBlockMon.Caption := MsgCtrlOptBlockmon;
+    bBeginPanelsOptimization.Caption := MsgBtnStart;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapOptionsForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with MapOptionsForm do
   begin
-    Caption := _lc[I_CAP_SETS];
+    Caption := MsgCapSets;
   // ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
   // ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
-    LabelName.Caption := _lc[I_LAB_SETS_NAME];
-    LabelDesc.Caption := _lc[I_LAB_SETS_DESC];
-    LabelAuthor.Caption := _lc[I_LAB_SETS_AUTHOR];
-    LabelBack.Caption := _lc[I_LAB_SETS_BACK];
-    LabelMusic.Caption := _lc[I_LAB_SETS_MUSIC];
+    LabelName.Caption := MsgLabSetsName;
+    LabelDesc.Caption := MsgLabSetsDesc;
+    LabelAuthor.Caption := MsgLabSetsAuthor;
+    LabelBack.Caption := MsgLabSetsBack;
+    LabelMusic.Caption := MsgLabSetsMusic;
   // Π‘татистика:
   // Π‘татистика:
-    GBStats.Caption := _lc[I_CTRL_SETS_STATS];
-    LabelTexs.Caption := _lc[I_LAB_SETS_TEXTURES];
-    LabelPanels.Caption := _lc[I_LAB_SETS_PANELS];
-    LabelItems.Caption := _lc[I_LAB_SETS_ITEMS];
-    LabelMonsters.Caption := _lc[I_LAB_SETS_MONSTERS];
-    LabelAreas.Caption := _lc[I_LAB_SETS_AREAS];
-    LabelTriggers.Caption := _lc[I_LAB_SETS_TRIGGERS];
+    GBStats.Caption := MsgCtrlSetsStats;
+    LabelTexs.Caption := MsgLabSetsTextures;
+    LabelPanels.Caption := MsgLabSetsPanels;
+    LabelItems.Caption := MsgLabSetsItems;
+    LabelMonsters.Caption := MsgLabSetsMonsters;
+    LabelAreas.Caption := MsgLabSetsAreas;
+    LabelTriggers.Caption := MsgLabSetsTriggers;
   // Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:
   // Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:
-    GBSizes.Caption := _lc[I_CTRL_SETS_SIZES];
-    LabelWidth.Caption := _lc[I_LAB_SETS_WIDTH];
-    LabelHeight.Caption := _lc[I_LAB_SETS_HEIGHT];
-    LabelCurSize.Caption := _lc[I_LAB_SETS_SIZES];
-    LabelMapMove.Caption := _lc[I_LAB_SETS_MAPMOVE];
-    cbSnapping.Caption := _lc[I_LAB_SETS_SNAPPING];
+    GBSizes.Caption := MsgCtrlSetsSizes;
+    LabelWidth.Caption := MsgLabSetsWidth;
+    LabelHeight.Caption := MsgLabSetsHeight;
+    LabelCurSize.Caption := MsgLabSetsSizes;
+    LabelMapMove.Caption := MsgLabSetsMapmove;
+    cbSnapping.Caption := MsgLabSetsSnapping;
   // ΠšΠ½ΠΎΠΏΠΊΠΈ:
   // ΠšΠ½ΠΎΠΏΠΊΠΈ:
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
-  end;
-
-// Π€ΠΎΡ€ΠΌΠ° "Настройки Ρ‚Сста ΠΊΠ°Ρ€Ρ‚Ρ‹":
-  with MapTestForm do
-  begin
-    Caption := _lc[I_CAP_LAUNCH];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
-  // Π Π΅ΠΆΠΈΠΌ ΠΈΠ³Ρ€Ρ‹:
-    rbDM.Caption := _lc[I_CTRL_LAUNCH_DM];
-    rbTDM.Caption := _lc[I_CTRL_LAUNCH_TDM];
-    rbCTF.Caption := _lc[I_CTRL_LAUNCH_CTF];
-    rbCOOP.Caption := _lc[I_CTRL_LAUNCH_COOP];
-  // ΠžΠΏΡ†ΠΈΠΈ:
-    cbTwoPlayers.Caption := _lc[I_CTRL_LAUNCH_2P];
-    cbTeamDamage.Caption := _lc[I_CTRL_LAUNCH_FF];
-    cbAllowExit.Caption := _lc[I_CTRL_LAUNCH_EXIT];
-    cbWeaponStay.Caption := _lc[I_CTRL_LAUNCH_WEAPONS];
-    cbMonstersDM.Caption := _lc[I_CTRL_LAUNCH_MONSTERS];
-    cbMapOnce.Caption := _lc[I_CTRL_LAUNCH_CLOSE];
-    LabelTime.Caption := _lc[I_LAB_LAUNCH_TIME];
-    LabelSecs.Caption := _lc[I_LAB_LAUNCH_SECS];
-    LabelScore.Caption := _lc[I_LAB_LAUNCH_SCORE];
-  // ΠŸΡƒΡ‚ΡŒ:
-    LabelPath.Caption := _lc[I_LAB_LAUNCH_PATH];
-    FindD2dDialog.Title := _lc[I_CTRL_LAUNCH_OPEN];
-
-    LabelArgs.Caption := _lc[I_LAB_LAUNCH_ARGS];
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   end;
 
   end;
 
-// Π€ΠΎΡ€ΠΌΠ° "Настройки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°":
+// Form preferences:
   with OptionsForm do
   begin
   with OptionsForm do
   begin
-    Caption := _lc[I_CAP_ES];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
-  // ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ:
-    cbShowDots.Caption := _lc[I_CTRL_ES_GRID];
-    cbShowTexture.Caption := _lc[I_CTRL_ES_TEXTURE];
-    cbShowSize.Caption := _lc[I_CTRL_ES_PANEL_SIZE];
-    cbCheckerboard.Caption := _lc[I_CTRL_ES_CHECKERBOARD];
-    cbCompress.Caption := _lc[I_LAB_ES_COMPRESS];
-    cbBackup.Caption := _lc[I_LAB_ES_BACKUP];
-    LabelGrid.Caption := _lc[I_LAB_ES_GRID];
-    LabelGridCol.Caption := _lc[I_LAB_ES_GRID_COLOR];
-    LabelGridSize.Caption := _lc[I_LAB_ES_GRID_SIZE];
-    LabelBack.Caption := _lc[I_LAB_ES_BACK];
-    LabelPreview.Caption := _lc[I_LAB_ES_PREVIEW];
-    LabelMinimap.Caption := _lc[I_LAB_ES_MINIMAP];
-    LabelRecent.Caption := _lc[I_LAB_ES_RECENT];
-    LabelLanguage.Caption := _lc[I_LAB_ES_LANGUAGE];
+    Caption := MsgCapEs;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
+  // TabGeneral:
+    TabGeneral.Caption := MsgCtrlEsGeneral;
+    cbShowDots.Caption := MsgCtrlEsGrid;
+    cbShowTexture.Caption := MsgCtrlEsTexture;
+    cbShowSize.Caption := MsgCtrlEsPanelSize;
+    cbCheckerboard.Caption := MsgCtrlEsCheckerboard;
+    LabelGrid.Caption := MsgLabEsGrid;
+    LabelGridCol.Caption := MsgLabEsGridColor;
+    LabelGridSize.Caption := MsgLabEsGridSize;
+    LabelBack.Caption := MsgLabEsBack;
+    LabelPreview.Caption := MsgLabEsPreview;
+    LabelMinimap.Caption := MsgLabEsMinimap;
+    LabelLanguage.Caption := MsgLabEsLanguage;
+  // TabFiles:
+    TabFiles.Caption := MsgCtrlEsFiles;
+    cbCompress.Caption := MsgLabEsCompress;
+    cbBackup.Caption := MsgLabEsBackup;
+    LabelRecent.Caption := MsgLabEsRecent;
+  // TabTesting:
+    TabTesting.Caption := MsgCtrlEsTesting;
+    rbDM.Caption := MsgCtrlLaunchDm;
+    rbTDM.Caption := MsgCtrlLaunchTdm;
+    rbCTF.Caption := MsgCtrlLaunchCtf;
+    rbCOOP.Caption := MsgCtrlLaunchCoop;
+    cbTwoPlayers.Caption := MsgCtrlLaunch2p;
+    cbTeamDamage.Caption := MsgCtrlLaunchFf;
+    cbAllowExit.Caption := MsgCtrlLaunchExit;
+    cbWeaponStay.Caption := MsgCtrlLaunchWeapons;
+    cbMonstersDM.Caption := MsgCtrlLaunchMonsters;
+    cbMapOnce.Caption := MsgCtrlLaunchClose;
+    LabelTime.Caption := MsgLabLaunchTime;
+    LabelSecs.Caption := MsgLabLaunchSecs;
+    LabelScore.Caption := MsgLabLaunchScore;
+    {$IF DEFINED(DARWIN)}
+      LabelPath.Caption := MsgLabLaunchPathMac;
+      ExeEdit.DialogTitle := MsgCtrlLaunchOpen;
+      ExeEdit.Filter := MsgFileFilterExeMac;
+    {$ELSEIF DEFINED(WINDOWS)}
+      LabelPath.Caption := MsgLabLaunchPathWin;
+      ExeEdit.DialogTitle := MsgCtrlLaunchOpen;
+      ExeEdit.Filter := MsgFileFilterExeWin;
+    {$ELSE}
+      LabelPath.Caption := MsgLabLaunchPathUnix;
+      ExeEdit.DialogTitle := MsgCtrlLaunchOpen;
+      ExeEdit.Filter := MsgFileFilterExeUnix;
+    {$ENDIF}
+    LabelArgs.Caption := MsgLabLaunchArgs;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with PackMapForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with PackMapForm do
   begin
-    Caption := _lc[I_CAP_PACK];
-    bPack.Caption := _lc[I_BTN_PACK];
-    LabelSaveTo.Caption := _lc[I_LAB_PACK_SAVE_TO];
-    LabelMapName.Caption := _lc[I_LAB_PACK_MAP_NAME];
+    Caption := MsgCapPack;
+    bPack.Caption := MsgBtnPack;
+    LabelSaveTo.Caption := MsgLabPackSaveTo;
+    LabelMapName.Caption := MsgLabPackMapName;
   // Π§Ρ‚ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ:
   // Π§Ρ‚ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ:
-    cbTextrures.Caption := _lc[I_CTRL_PACK_TEXTURES];
-    LabelTextures.Caption := _lc[I_LAB_PACK_TEXTURES];
-    cbSky.Caption := _lc[I_CTRL_PACK_SKY];
-    LabelSky.Caption := _lc[I_LAB_PACK_SKY];
-    cbMusic.Caption := _lc[I_CTRL_PACK_MUSIC];
-    LabelMusic.Caption := _lc[I_LAB_PACK_MUSIC];
-    cbAdd.Caption := _lc[I_CTRL_PACK_ADD];
-    cbNonStandart.Caption := _lc[I_CTRL_PACK_NON_STD];
+    cbTextrures.Caption := MsgCtrlPackTextures;
+    LabelTextures.Caption := MsgLabPackTextures;
+    cbSky.Caption := MsgCtrlPackSky;
+    LabelSky.Caption := MsgLabPackSky;
+    cbMusic.Caption := MsgCtrlPackMusic;
+    LabelMusic.Caption := MsgLabPackMusic;
+    cbAdd.Caption := MsgCtrlPackAdd;
+    cbNonStandart.Caption := MsgCtrlPackNonStd;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with SaveMapForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with SaveMapForm do
   begin
-    Caption := _lc[I_CAP_SAVE];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
+    Caption := MsgCapSave;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with SaveMiniMapForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈ-ΠΊΠ°Ρ€Ρ‚Ρƒ":
   with SaveMiniMapForm do
   begin
-    Caption := _lc[I_CAP_MINI];
-    LabelScale.Caption := _lc[I_LAB_MINI_SCALE];
-    bSave.Caption := _lc[I_BTN_SAVE];
-    bClose.Caption := _lc[I_BTN_CLOSE];
+    Caption := MsgCapMini;
+    LabelScale.Caption := MsgLabMiniScale;
+    bSave.Caption := MsgBtnSave;
+    bClose.Caption := MsgBtnClose;
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with SelectMapForm do
   begin
   end;
 
 // Π€ΠΎΡ€ΠΌΠ° "Π’Ρ‹Π±ΠΎΡ€ ΠΊΠ°Ρ€Ρ‚Ρ‹":
   with SelectMapForm do
   begin
-    Caption := _lc[I_CAP_SELECT];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
+    Caption := MsgCapSelect;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   end;
 
 // Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
   end;
 
 // Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
-  Application.Title := _lc[I_EDITOR_TITLE];
+  Application.Title := MsgEditorTitle;
 end;
 
 end;
 
-procedure g_Language_Load(fileName: String);
-var
-  F: TextFile;
-  key, value: String;
-  i: TStrings_Locale;
-  k: Integer;
-  ok: Boolean;
+type
+  TResArg = record
+    ini: TIniFile;
+    ignored: TStringList;
+  end;
+  PResArg = ^TResArg;
 
 
+function gResourceItarator (name, value: AnsiString; hash: LongInt; arg: Pointer): AnsiString;
+  var res: PResArg; orig: AnsiString;
 begin
 begin
-// Π—начСния ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:
-  for i := Low(TStrings_Locale) to High(TStrings_Locale) do
-    _lc[i] := g_lang_default[i][LANGUAGE_ENGLISH_N];
-
-  if FileExists(fileName) then
+  res := PResArg(arg);
+  orig := res.ini.ReadString('resourcestring', name + '$', '');
+  if (orig = '') or (orig = value) then
+  begin
+    if res.ini.ValueExists('resourcestring', name) then
+    begin
+      result := res.ini.ReadString('resourcestring', name, '');
+    end
+    else
     begin
     begin
-      AssignFile(F, fileName);
-      ReSet(F);
-      k := 0;
+      result := value;
+      if res.ignored.IndexOf(Copy(name, 1, Pos('.', name) - 1)) < 0 then
+        e_WriteLog('  Seems that key ' + name + ' not translated', MSG_NOTIFY);
+    end;
+  end
+  else
+  begin
+    e_WriteLog('  Original resource string for ' + name + ' do not match, translation are outdated?', MSG_WARNING);
+    e_WriteLog('    [' + value + '] -> [' + orig + ']', MSG_WARNING);
+    result := value;
+  end;
+end;
 
 
-    // Π§ΠΈΡ‚Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»:
-      while not EoF(F) do
+procedure gSetLanguageFormStream (const lang: AnsiString; stream: TStream; out ok: Boolean);
+  var res: TResArg;
+begin
+  ok := False;
+  try
+    res.ini := TIniFile.Create(stream, [ifoStripComments, ifoStripQuotes, ifoEscapeLineFeeds]);
+  except
+    res.ini := nil;
+  end;
+  if res.ini <> nil then
+  begin
+    try
+      ok := res.ini.SectionExists('resourcestring');
+      if ok then
       begin
       begin
-      // Π§ΠΈΡ‚Π°Π΅ΠΌ ΡΡ‚Ρ€ΠΎΠΊΡƒ:
-        ReadLn(F, key);
-        key := Trim(key);
-
-      // Π‘Ρ‚Ρ€ΠΎΠΊΠ° - ΠΊΠ»ΡŽΡ‡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:
-        if (key <> '') and
-           (key[1] = '[') and
-           (Pos(']', key) > 2) then
-        begin
-          key := UpperCase(Copy(key, 2, Pos(']', key)-2));
-
-        // ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅ΠΌ ΠΏΡƒΡΡ‚Ρ‹Π΅ ΡΡ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΈ - ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:
-          value := '';
-          while (not EoF(F)) and (value = '') do
-          begin
-            ReadLn(F, value);
-            value := Trim(value);
-          end;
-
-        // Π•ΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΊΠ° - ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄:
-          if value <> '' then
-          begin
-          // Π˜Ρ‰Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»ΡŽΡ‡Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:
-            ok := False;
-            i := TStrings_Locale(k);
-
-          // ΠžΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ:
-            while i > Low(TStrings_Locale) do
-            begin
-              if g_lang_default[i][1] = key then
-              begin
-                _lc[i] := value;
-                ok := True;
-                Break;
-              end;
-
-              Dec(i);
-            end;
-
-          // ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ:
-            if not ok then
-            begin
-              i := Low(TStrings_Locale);
-
-              if (g_lang_default[i][1] = key) then
-              begin
-                _lc[i] := value;
-                ok := True;
-              end;
-            end;
-
-          // ΠžΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ:
-            if not ok then
-            begin
-              i := TStrings_Locale(k);
-
-              while i < High(TStrings_Locale) do
-              begin
-                Inc(i);
-
-                if g_lang_default[i][1] = key then
-                begin
-                  _lc[i] := value;
-                  Break;
-                end;
-              end;
-            end;
-          end;
-
-          Inc(k);
-        end;
+        res.ignored := TStringList.Create;
+        res.ignored.CaseSensitive := False;
+        res.ini.ReadSection('ignore', res.ignored);
+        res.ignored.Sort;
+        SetResourceStrings(gResourceItarator, @res);
+        res.ignored.Free();
       end;
       end;
+    finally
+      res.ini.Free();
+    end;
+  end;
+  if not ok then e_WriteLog('Translation file for ' + lang + ' are invalid ', MSG_FATALERROR);
+end;
 
 
-      CloseFile(F);
-    end
-  else
-    e_WriteLog('Language file "'+fileName+'" not found!', MSG_WARNING);
+procedure gSetLanguageFromFile (const lang: AnsiString; out ok: Boolean);
+  const langfilename = 'editor';
+  var stream: TFileStream; name: AnsiString;
+begin
+  name := LangDir + DirectorySeparator + langfilename + '.' + lang + '.lng';
+  try
+    stream := TFileStream.Create(name, fmOpenRead);
+    try
+      gSetLanguageFormStream(lang, stream, ok);
+    finally
+      stream.Free();
+    end;
+  except on E: EFOpenError do
+    ok := False;
+  end;
+end;
 
 
-  SetupArrays();
-  SetupCaptions();
-  RemoveSelectFromObjects();
+procedure gSetLanguage (const lang: AnsiString; out ok: Boolean);
+begin
+  gSetLanguageFromFile(lang, ok);
 end;
 
 end;
 
-procedure g_Language_Set(lang: String);
-var
-  i: TStrings_Locale;
-  n: Byte;
+function g_Language_GetList (): TStringList;
+  const langfilename = 'editor';
+  var list: TStringList; info: TSearchRec;
+begin
+  list := TStringList.Create;
+  list.Duplicates := dupIgnore;
+  list.Add(InSourceLanguage);
+  if FindFirst(LangDir + DirectorySeparator + langfilename + '.*.lng', faAnyFile, info) = 0 then
+  begin
+    repeat
+      list.Add(Copy(ExtractFileNameWithoutExt(info.Name), Length(langfilename) + 2));
+    until FindNext(info) <> 0;
+    FindClose(info);
+  end;
+  list.Sort;
+  result := list;
+end;
 
 
+procedure g_Language_Set(lang: String);
+  var syslang, fallbacklang: String; ok: Boolean;
 begin
 begin
-  if lang = LANGUAGE_ENGLISH then
-    n := LANGUAGE_ENGLISH_N
-  else
-    n := LANGUAGE_RUSSIAN_N;
+  ResetResourceTables;
 
 
-  for i := Low(TStrings_Locale) to High(TStrings_Locale) do
+  if lang = '' then
   begin
   begin
-    _lc[i] := g_lang_default[i][n];
-    // have to cache a CP1251 version for GL text
-    _glc[i] := utf8to1251(g_lang_default[i][n]);
+    GetLanguageIDs(syslang, fallbacklang); // TODO: remove dependency on gettext
+    e_WriteLog('g_Language_Set: try strings "' + syslang + '" (system)', MSG_NOTIFY);
+    gSetLanguage(syslang, ok);
+    if not ok then
+    begin
+      e_WriteLog('g_Language_Set: try strings "' + fallbacklang + '" (fallback)', MSG_NOTIFY);
+      gSetLanguage(syslang, ok);
+    end;
+  end
+  else
+  begin
+    e_WriteLog('g_Language_Set: try strings "' + lang + '" (user specified)', MSG_NOTIFY);
+    gSetLanguage(lang, ok);
   end;
   end;
+  if not ok then e_WriteLog('g_Language_Set: use default strings "' + InSourceLanguage + '" (in-source)', MSG_NOTIFY);
 
   SetupArrays();
   SetupCaptions();
   RemoveSelectFromObjects();
 end;
 
 
   SetupArrays();
   SetupCaptions();
   RemoveSelectFromObjects();
 end;
 
-procedure g_Language_Dump(fileName: String);
-var
-  F: TextFile;
-  i: TStrings_Locale;
-
-begin
-  AssignFile(F, fileName);
-  ReWrite(F);
-
-  for i := Low(TStrings_Locale) to High(TStrings_Locale) do
-    WriteLn(F, _lc[i]);
-
-  CloseFile(F);
-end;
-
 End.
 End.