DEADSOFTWARE

i10n: use resourcestring and gettext for localization
[d2df-editor.git] / src / editor / g_language.pas
index 4d3ae7ed69acbbee655e126627a2d6ae45f6282f..bcb99cabcaa1d79d4a8a60697b569bd088bfad58 100644 (file)
 
 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_DAMAGE_KIND,
-    I_PROP_TR_DAMAGE_KIND_0,
-    I_PROP_TR_DAMAGE_KIND_3,
-    I_PROP_TR_DAMAGE_KIND_4,
-    I_PROP_TR_DAMAGE_KIND_5,
-    I_PROP_TR_DAMAGE_KIND_6,
-    I_PROP_TR_DAMAGE_KIND_7,
-    I_PROP_TR_DAMAGE_KIND_8,
-    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;
+
+  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';
+
+    MsgMenuFile = 'File';
+    MsgMenuFileNew = 'New';
+    MsgMenuFileOpen = 'Open...';
+    MsgMenuFileSave = 'Save';
+    MsgMenuFileSaveAs = 'Save As...';
+    MsgMenuFileOpenWad = 'Select Map...';
+    MsgMenuFileReopen = 'Revert to Saved';
+    MsgMenuFileSaveMini = 'Save Minimap...';
+    MsgMenuFileDelete = 'Delete from WAD...';
+    MsgMenuFilePackMap = 'Pack to WAD...';
+    MsgMenuFileExit = 'Exit';
+
+    MsgMenuEdit = 'Edit';
+    MsgMenuEditUndo = 'Undo';
+    MsgMenuEditCopy = 'Copy';
+    MsgMenuEditCut = 'Cut';
+    MsgMenuEditPaste = 'Paste';
+    MsgMenuEditSelectAll = 'Select All';
+    MsgMenuEditToFore = 'Bring to Front';
+    MsgMenuEditToBack = 'Send to Back';
+
+    MsgMenuTools = 'Tools';
+    MsgMenuToolsSnapGrid = 'Snap to Grid';
+    MsgMenuToolsMinimap = 'Show Minimap';
+    MsgMenuToolsStepGrid = 'Switch Grid Granularity';
+    MsgMenuToolsShowEdges = 'Show Map Bounds';
+    MsgMenuToolsLayers = 'Layers';
+
+    MsgMenuServ = 'Service';
+    MsgMenuServTest = 'Analyse Map...';
+    MsgMenuServOpt = 'Optimize Map...';
+    MsgMenuServPreview = 'Preview Mode';
+    MsgMenuServLaunch = 'Run Test';
+
+    MsgMenuSets = 'Settings';
+    MsgMenuSetsMap = 'Map Properties...';
+    MsgMenuSetsEditor = 'Preferences...';
+    MsgMenuSetsLaunch = 'In-game test settings';
+
+    MsgMenuHelp = 'Help';
+    MsgMenuHelpAbout = 'About';
+
+    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 = 'Editor 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:';
+
+    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';
+
+    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:';
+    MsgLabLaunchPath = 'Path to Doom2DF.exe:';
+    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:';
+    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 (*.*)|*.*';
+
+    MsgEditorTitle = 'Doom 2D: Forever Map Editor';
 
 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;
@@ -646,1367 +633,184 @@ Var
   AreaNames: Array [AREA_PLAYERPOINT1..AREA_BLUETEAMPOINT] of String;
   TriggerNames: Array [TRIGGER_EXIT..TRIGGER_MAX] of String;
 
-
-procedure g_Language_Load(fileName: String);
 procedure g_Language_Set(lang: String);
-procedure g_Language_Dump(fileName: String);
 
 Implementation
 
 Uses
+  gettext,
   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_mapoptimization, f_options,
   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 DAMAGE KIND',            'Damage type',
-                                       'Тип урона'),
-    ('PROP TR DAMAGE KIND 0',          'HIT_SOME',
-                                       'HIT_SOME'),
-    ('PROP TR DAMAGE KIND 3',          'HIT_TRAP',
-                                       'HIT_TRAP'),
-    ('PROP TR DAMAGE KIND 4',          'HIT_FALL',
-                                       'HIT_FALL'),
-    ('PROP TR DAMAGE KIND 5',          'HIT_WATER',
-                                       'HIT_WATER'),
-    ('PROP TR DAMAGE KIND 6',          'HIT_ACID',
-                                       'HIT_ACID'),
-    ('PROP TR DAMAGE KIND 7',          'HIT_ELECTRO',
-                                       'HIT_ELECTRO'),
-    ('PROP TR DAMAGE KIND 8',          'HIT_FLAME',
-                                       'HIT_FLAME'),
-    ('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',
-                                       'Создать'),
-    ('MENU FILE OPEN',                 'Open...',
-                                       'Открыть...'),
-    ('MENU FILE SAVE',                 'Save',
-                                       'Сохранить'),
-    ('MENU FILE SAVE AS',              'Save As...',
-                                       'Сохранить как...'),
-    ('MENU FILE OPEN WAD',             'Select Map...',
-                                       'Выбрать карту...'),
-    ('MENU FILE REOPEN',               'Revert to Saved',
-                                       'Открыть заново'),
-    ('MENU FILE SAVE MINI',            'Save Minimap...',
-                                       'Сохранить мини-карту...'),
-    ('MENU FILE DELETE',               'Delete from WAD...',
-                                       'Удалить из WAD...'),
-    ('MENU FILE PACK MAP',             'Pack to WAD...',
-                                       'Упаковать в WAD...'),
-    ('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 Minimap',
-                                       'Показать Мини-карту'),
-    ('MENU TOOLS STEP GRID',           'Switch Grid Granularity',
-                                       'Переключить шаг сетки'),
-    ('MENU TOOLS SHOW EDGES',          'Show Map Bounds',
-                                       'Показывать границы карты'),
-    ('MENU TOOLS LAYERS',              'Layers',
-                                       'Слои'),
-
-    ('MENU SERV',                      'Service',
-                                       'Сервис'),
-    ('MENU SERV TEST',                 'Analyse Map...',
-                                       'Проверка карты...'),
-    ('MENU SERV OPT',                  'Optimize Map...',
-                                       'Оптимизация карты...'),
-    ('MENU SERV PREVIEW',              'Preview Mode',
-                                       'Предварительный просмотр'),
-    ('MENU SERV LAUNCH',               'Run Test',
-                                       'Тест карты в игре'),
-
-    ('MENU SETS',                      'Settings',
-                                       'Настройка'),
-    ('MENU SETS MAP',                  'Map Properties...',
-                                       'Свойства карты...'),
-    ('MENU SETS EDITOR',               'Preferences...',
-                                       'Настройки...'),
-    ('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',                 'Run 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',                       'Analyse Map',
-                                       'Проверка карты'),
-    ('CAP OPT',                        'Optimize Map',
-                                       'Оптимизация карты'),
-    ('CAP SETS',                       'Map Properties',
-                                       'Свойства карты'),
-    ('CAP LAUNCH',                     'In-game test Settings',
-                                       'Настройки теста в игре'),
-    ('CAP ES',                         'Editor Preferences',
-                                       'Настройки редактора'),
-    ('CAP PACK',                       'Pack Map',
-                                       'Упаковать карту'),
-    ('CAP SAVE',                       'Save Map',
-                                       'Сохранить карту'),
-    ('CAP MINI',                       'Save Minimap',
-                                       'Сохранить мини-карту'),
-    ('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, *.dfzip, *.zip, *.wad)|*.dfz;*.dfzip;*.zip;*.wad|Doom 2D: Forever 0.30 Maps (*.ini)|*.ini|All Files (*.*)|*.*',
-                                       'Карты Doom 2D: Forever (*.dfz, *.dfzip, *.zip, *.wad)|*.dfz;*.dfzip;*.zip;*.wad|Старые карты Doom 2D: Forever 0.30 (*.ini)|*.ini|Все файлы (*.*)|*.*'),
-    ('FILE FILTER WAD',                '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 (*.*)|*.*',
-                                       'Карты Doom 2D: Forever (*.dfz)|*.dfz|Карты Doom 2D: Forever (*.dfzip)|*.dfzip|Карты Doom 2D: Forever (*.zip)|*.zip|Карты Doom 2D: Forever (*.wad)|*.wad|Все файлы (*.*)|*.*'),
-
-    ('EDITOR TITLE',                   'Doom 2D: Forever Map Editor',
-                                       'Редактор карт Doom 2D: Forever'),
-
-                                       
-    ('', '', '') );
-
-
 procedure SetupArrays();
 var
   i: Integer;
 
 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_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
@@ -2039,19 +843,19 @@ begin
       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.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;
 
@@ -2065,7 +869,7 @@ begin
     s := g_GetBuildHash(false);
     if s = 'custom build' then
       s := s + ' by ' + g_GetBuilderName() + ' ' + EDITOR_BUILDDATE + ' ' + EDITOR_BUILDTIME;
-    FormCaption := _lc[I_EDITOR_TITLE] + ' (' + s + ')';
+    FormCaption := MsgEditorTitle + ' (' + s + ')';
     i := Pos('-', Caption);
     if i > 0 then
       begin
@@ -2075,481 +879,368 @@ begin
       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];
+    miMenuFile.Caption := MsgMenuFile;
+    miNewMap.Caption := MsgMenuFileNew;
+    miOpenMap.Caption := MsgMenuFileOpen;
+    miSaveMap.Caption := MsgMenuFileSave;
+    miSaveMapAs.Caption := MsgMenuFileSaveAs;
+    miOpenWadMap.Caption := MsgMenuFileOpenWad;
+    miReopenMap.Caption := MsgMenuFileReopen;
+    miSaveMiniMap.Caption := MsgMenuFileSaveMini;
+    miDeleteMap.Caption := MsgMenuFileDelete;
+    miPackMap.Caption := MsgMenuFilePackMap;
+    miExit.Caption := MsgMenuFileExit;
   // "Правка":
-    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];
+    miMenuEdit.Caption := MsgMenuEdit;
+    miUndo.Caption := MsgMenuEditUndo;
+    miCopy.Caption := MsgMenuEditCopy;
+    miCut.Caption := MsgMenuEditCut;
+    miPaste.Caption := MsgMenuEditPaste;
+    miSelectAll.Caption := MsgMenuEditSelectAll;
+    miToFore.Caption := MsgMenuEditToFore;
+    miToBack.Caption := MsgMenuEditToBack;
   // "Инструменты":
-    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];
-    miMapOptions.Caption := _lc[I_MENU_SETS_MAP];
-    miOptions.Caption := _lc[I_MENU_SETS_EDITOR];
+    miSnapToGrid.Caption := MsgMenuToolsSnapGrid;
+    miMiniMap.Caption := MsgMenuToolsMinimap;
+    miSwitchGrid.Caption := MsgMenuToolsStepGrid;
+    miShowEdges.Caption := MsgMenuToolsShowEdges;
+    miLayers.Caption := MsgMenuToolsLayers;
+    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;
+    miMapOptions.Caption := MsgMenuSetsMap;
+    miOptions.Caption := MsgMenuSetsEditor;
   // "Сервис":
-    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];
+    miMenuService.Caption := MsgMenuServ;
+    miCheckMap.Caption := MsgMenuServTest;
+    miOptimmization.Caption := MsgMenuServOpt;
+    miMapPreview.Caption := MsgMenuServPreview;
+    miTestMap.Caption := MsgMenuServLaunch;
   // "Справка":
-    miMenuHelp.Caption := _lc[I_MENU_HELP];
-    miAbout.Caption := _lc[I_MENU_HELP_ABOUT];
+    miMenuHelp.Caption := MsgMenuHelp;
+    miAbout.Caption := MsgMenuHelpAbout;
 
   // Панель инструментов:
-    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];
+    tbNewMap.Hint := MsgMenuTbNew;
+    tbOpenMap.Hint := MsgMenuTbOpen;
+    tbSaveMap.Hint := MsgMenuTbSave;
+    tbOpenWadMap.Hint := MsgMenuTbOpenWad;
+    tbShowMap.Hint := MsgMenuTbMinimap;
+    tbShow.Hint := MsgMenuTbLayers;
+    tbGridOn.Hint := MsgMenuTbGrid;
+    tbGrid.Hint := MsgMenuTbGridStep;
+    tbTestMap.Hint := MsgMenuTbLaunch;
   // Всплывающее меню для кнопки слоев:
-    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];
+    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;
 
   // Кнопка применения свойств:
-    bApplyProperty.Caption := _lc[I_BTN_APPLY_PROPS];
+    bApplyProperty.Caption := MsgBtnApplyProps;
   // Редактор свойств объектов:
-    vleObjectProperty.TitleCaptions[0] := _lc[I_CTRL_PROP_KEY];
-    vleObjectProperty.TitleCaptions[1] := _lc[I_CTRL_PROP_VALUE];
+    vleObjectProperty.TitleCaptions[0] := MsgCtrlPropKey;
+    vleObjectProperty.TitleCaptions[1] := MsgCtrlPropValue;
 
   // Вкладка "Панели":
-    tsPanels.Caption := _lc[I_CTRL_PANELS];
-    lbPanelType.Hint := _lc[I_PROP_PANEL_TYPE];
-    lbTextureList.Hint := _lc[I_CTRL_LIST_TEXTURE];
+    tsPanels.Caption := MsgCtrlPanels;
+    lbPanelType.Hint := MsgPropPanelType;
+    lbTextureList.Hint := MsgCtrlListTexture;
   // Панель настройки текстур:
-    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];
+    LabelTxW.Caption := MsgLabTexWidth;
+    LabelTxH.Caption := MsgLabTexHeight;
+    cbPreview.Caption := MsgCtrlPreview;
+    bbAddTexture.Hint := MsgBtnTextureAdd;
+    bbRemoveTexture.Hint := MsgBtnTextureDelete;
+    bClearTexture.Hint := MsgBtnTextureEmpty;
 
   // Вкладка "Предметы":
-    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];
+    tsItems.Caption := MsgCtrlItems;
+    lbItemList.Hint := MsgCtrlListItem;
+    cbOnlyDM.Caption := MsgCtrlItemDm;
+    cbFall.Caption := MsgCtrlItemFalls;
 
   // Вкладка "Монстры":
-    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];
+    tsMonsters.Caption := MsgCtrlMonsters;
+    lbMonsterList.Hint := MsgCtrlListMonster;
+    rbMonsterLeft.Caption := MsgCtrlLeft;
+    rbMonsterRight.Caption := MsgCtrlRight;
 
   // Вкладка "Области":
-    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];
+    tsAreas.Caption := MsgCtrlAreas;
+    lbAreasList.Hint := MsgCtrlListArea;
+    rbAreaLeft.Caption := MsgCtrlLeft;
+    rbAreaRight.Caption := MsgCtrlRight;
 
   // Вкладка "Триггеры":
-    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];
+    tsTriggers.Caption := MsgCtrlTriggers;
+    lbTriggersList.Hint := MsgCtrlListTrigger;
+    clbActivationType.Hint := MsgCtrlListActive;
+    clbKeys.Hint := MsgCtrlListKeys;
   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
-    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
-    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
-    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
-    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;
 
 // Форма "Выбор типа монстра" / "Выбор типа предмета":
-  ChooseTypeForm.bOK.Caption := _lc[I_BTN_OK];
+  ChooseTypeForm.bOK.Caption := MsgBtnOk;
 
 // Форма "Ключи":
   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
-    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
-    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
-    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];
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   end;
 
 // From "Editor settings":
   with OptionsForm do
   begin
-    Caption := _lc[I_CAP_ES];
-    bOK.Caption := _lc[I_BTN_OK];
-    bCancel.Caption := _lc[I_BTN_CANCEL];
+    Caption := MsgCapEs;
+    bOK.Caption := MsgBtnOk;
+    bCancel.Caption := MsgBtnCancel;
   // TabGeneral:
-    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];
-    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];
-    LabelLanguage.Caption := _lc[I_LAB_ES_LANGUAGE];
+    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:
-    cbCompress.Caption := _lc[I_LAB_ES_COMPRESS];
-    cbBackup.Caption := _lc[I_LAB_ES_BACKUP];
-    LabelRecent.Caption := _lc[I_LAB_ES_RECENT];
+    cbCompress.Caption := MsgLabEsCompress;
+    cbBackup.Caption := MsgLabEsBackup;
+    LabelRecent.Caption := MsgLabEsRecent;
   // TabTesting:
-    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];
+    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;
+    LabelPath.Caption := MsgLabLaunchPath;
+    FindD2dDialog.Title := MsgCtrlLaunchOpen;
+    LabelArgs.Caption := MsgLabLaunchArgs;
   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
-    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
-    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
-    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;
 
 // Заголовок приложения:
-  Application.Title := _lc[I_EDITOR_TITLE];
-end;
-
-procedure g_Language_Load(fileName: String);
-var
-  F: TextFile;
-  key, value: String;
-  i: TStrings_Locale;
-  k: Integer;
-  ok: Boolean;
-
-begin
-// Значения по-умолчанию:
-  for i := Low(TStrings_Locale) to High(TStrings_Locale) do
-    _lc[i] := g_lang_default[i][LANGUAGE_ENGLISH_N];
-
-  if FileExists(fileName) then
-    begin
-      AssignFile(F, fileName);
-      ReSet(F);
-      k := 0;
-
-    // Читаем файл:
-      while not EoF(F) do
-      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;
-      end;
-
-      CloseFile(F);
-    end
-  else
-    e_WriteLog('Language file "'+fileName+'" not found!', MSG_WARNING);
-
-  SetupArrays();
-  SetupCaptions();
-  RemoveSelectFromObjects();
+  Application.Title := MsgEditorTitle;
 end;
 
 procedure g_Language_Set(lang: String);
-var
-  i: TStrings_Locale;
-  n: Byte;
-
+  var syslang, fallbacklang: String;
 begin
-  if lang = LANGUAGE_ENGLISH then
-    n := LANGUAGE_ENGLISH_N
-  else
-    n := LANGUAGE_RUSSIAN_N;
-
-  for i := Low(TStrings_Locale) to High(TStrings_Locale) do
-  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]);
+  e_WriteLog('g_Language_Set: requested lang is "' + lang + '"', MSG_NOTIFY);
+  GetLanguageIDs(syslang, fallbacklang);
+  if lang = '' then lang := syslang;
+
+  ResetResourceTables;
+  try
+    e_WriteLog('g_Language_Set: try language "' + lang + '"', MSG_NOTIFY);
+    TranslateResourceStrings('data/lang/editor.' + lang + '.mo');
+  except
+    try
+      e_WriteLog('g_Language_Set: try system language "' + syslang + '"', MSG_NOTIFY);
+      TranslateResourceStrings('data/lang/editor.' + syslang + '.mo');
+    except
+      try
+        e_WriteLog('g_Language_Set: try fallback language "' + fallbacklang + '"', MSG_NOTIFY);
+        TranslateResourceStrings('data/lang/editor.' + fallbacklang + '.mo');
+      except
+         e_WriteLog('g_Language_Set: use default strings', MSG_NOTIFY);
+      end;
+    end;
   end;
-
+  e_WriteLog('g_Language_Set: ok', MSG_NOTIFY);
   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.