From c2c9126453ed57cb4fd063f8d7faa21c0d9020f7 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 10:17:00 +0100 Subject: [PATCH 1/7] - replaced the XLSX parser with a CSV parser. Since Google can export this as well it makes a lot more sense here because it is a textual format better suited for version control and does not carry along all the formatting baggage that isn't needed for a string table. --- src/CMakeLists.txt | 7 - src/gamedata/stringtable.cpp | 177 +- src/gamedata/stringtable.h | 10 +- src/gamedata/w_wad.cpp | 2 +- src/utility/tarray.h | 9 +- src/utility/xlsxread/LICENSE.txt | 19 - src/utility/xlsxread/expat/AUTHORS | 10 - src/utility/xlsxread/expat/ascii.h | 120 - src/utility/xlsxread/expat/asciitab.h | 64 - src/utility/xlsxread/expat/expat.h | 1085 --- src/utility/xlsxread/expat/expat_config.h | 63 - src/utility/xlsxread/expat/expat_external.h | 160 - src/utility/xlsxread/expat/iasciitab.h | 65 - src/utility/xlsxread/expat/internal.h | 124 - src/utility/xlsxread/expat/latin1tab.h | 64 - src/utility/xlsxread/expat/nametab.h | 182 - src/utility/xlsxread/expat/siphash.h | 374 - src/utility/xlsxread/expat/utf8tab.h | 64 - src/utility/xlsxread/expat/winconfig.h | 63 - src/utility/xlsxread/expat/xmlparse.c | 7018 ------------------- src/utility/xlsxread/expat/xmlrole.c | 1384 ---- src/utility/xlsxread/expat/xmlrole.h | 142 - src/utility/xlsxread/expat/xmltok.c | 1793 ----- src/utility/xlsxread/expat/xmltok.h | 350 - src/utility/xlsxread/expat/xmltok_impl.c | 1833 ----- src/utility/xlsxread/expat/xmltok_impl.h | 73 - src/utility/xlsxread/expat/xmltok_ns.c | 142 - src/utility/xlsxread/xlsxio_read.cpp | 1381 ---- src/utility/xlsxread/xlsxio_read.h | 271 - src/utility/xlsxread/xlsxio_version.h | 73 - src/utility/zstring.cpp | 2 + 31 files changed, 120 insertions(+), 17004 deletions(-) delete mode 100644 src/utility/xlsxread/LICENSE.txt delete mode 100644 src/utility/xlsxread/expat/AUTHORS delete mode 100644 src/utility/xlsxread/expat/ascii.h delete mode 100644 src/utility/xlsxread/expat/asciitab.h delete mode 100644 src/utility/xlsxread/expat/expat.h delete mode 100644 src/utility/xlsxread/expat/expat_config.h delete mode 100644 src/utility/xlsxread/expat/expat_external.h delete mode 100644 src/utility/xlsxread/expat/iasciitab.h delete mode 100644 src/utility/xlsxread/expat/internal.h delete mode 100644 src/utility/xlsxread/expat/latin1tab.h delete mode 100644 src/utility/xlsxread/expat/nametab.h delete mode 100644 src/utility/xlsxread/expat/siphash.h delete mode 100644 src/utility/xlsxread/expat/utf8tab.h delete mode 100644 src/utility/xlsxread/expat/winconfig.h delete mode 100644 src/utility/xlsxread/expat/xmlparse.c delete mode 100644 src/utility/xlsxread/expat/xmlrole.c delete mode 100644 src/utility/xlsxread/expat/xmlrole.h delete mode 100644 src/utility/xlsxread/expat/xmltok.c delete mode 100644 src/utility/xlsxread/expat/xmltok.h delete mode 100644 src/utility/xlsxread/expat/xmltok_impl.c delete mode 100644 src/utility/xlsxread/expat/xmltok_impl.h delete mode 100644 src/utility/xlsxread/expat/xmltok_ns.c delete mode 100644 src/utility/xlsxread/xlsxio_read.cpp delete mode 100644 src/utility/xlsxread/xlsxio_read.h delete mode 100644 src/utility/xlsxread/xlsxio_version.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 65761e93c..f0e91d8ee 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1316,13 +1316,6 @@ add_executable( zdoom WIN32 MACOSX_BUNDLE utility/math/tan.c utility/math/tanh.c utility/math/fastsin.cpp - utility/xlsxread/xlsxio_read.cpp - utility/xlsxread/expat/xmlparse.c - utility/xlsxread/expat/xmlrole.c - utility/xlsxread/expat/xmltok.c - utility/xlsxread/expat/xmltok_impl.c - utility/xlsxread/expat/xmltok_ns.c - zzautozend.cpp ) diff --git a/src/gamedata/stringtable.cpp b/src/gamedata/stringtable.cpp index 4032f7efb..a710ac000 100644 --- a/src/gamedata/stringtable.cpp +++ b/src/gamedata/stringtable.cpp @@ -43,7 +43,6 @@ #include "v_text.h" #include "gi.h" #include "d_player.h" -#include "xlsxread/xlsxio_read.h" EXTERN_CVAR(String, language) @@ -58,35 +57,102 @@ void FStringTable::LoadStrings () int lastlump, lump; lastlump = 0; + while ((lump = Wads.FindLump("LMACROS", &lastlump)) != -1) + { + readMacros(lump); + } + lastlump = 0; while ((lump = Wads.FindLump ("LANGUAGE", &lastlump)) != -1) { - if (!LoadLanguageFromSpreadsheet(lump)) - LoadLanguage (lump); + auto lumpdata = Wads.ReadLumpIntoArray(lump); + + if (!ParseLanguageCSV(lumpdata)) + LoadLanguage (lumpdata); } UpdateLanguage(); allMacros.Clear(); } + //========================================================================== // -// +// This was tailored to parse CSV as exported by Google Docs. // //========================================================================== -bool FStringTable::LoadLanguageFromSpreadsheet(int lumpnum) + +TArray> FStringTable::parseCSV(const TArray &buffer) { - xlsxioreader xlsxio; - //open .xlsx file for reading - if ((xlsxio = xlsxioread_open(lumpnum)) == nullptr) - { - return false; - } - readMacros(xlsxio, "macros"); - readSheetIntoTable(xlsxio, "strings"); + const size_t bufLength = buffer.Size(); + TArray> data; + TArray row; + TArray cell; + bool quoted = false; - xlsxioread_close(xlsxio); - return true; + /* + auto myisspace = [](int ch) { return ch == '\t' || ch == '\r' || ch == '\n' || ch == ' '; }; + while (*vcopy && myisspace((unsigned char)*vcopy)) vcopy++; // skip over leaading whitespace; + auto vend = vcopy + strlen(vcopy); + while (vend > vcopy && myisspace((unsigned char)vend[-1])) *--vend = 0; // skip over trailing whitespace + */ + + for (int i = 0; i < bufLength; ++i) + { + if (buffer[i] == '"') + { + // Double quotes inside a quoted string count as an escaped quotation mark. + if (quoted && i < bufLength - 1 && buffer[i + 1] == '"') + { + cell.Push('"'); + i++; + } + else if (cell.Size() == 0 || quoted) + { + quoted = !quoted; + } + } + else if (buffer[i] == ',') + { + if (!quoted) + { + cell.Push(0); + ProcessEscapes(cell.Data()); + row.Push(cell.Data()); + cell.Clear(); + } + else + { + cell.Push(buffer[i]); + } + } + else if (buffer[i] == '\r') + { + // Ignore all CR's. + } + else if (buffer[i] == '\n' && !quoted) + { + cell.Push(0); + ProcessEscapes(cell.Data()); + row.Push(cell.Data()); + data.Push(std::move(row)); + cell.Clear(); + } + else + { + cell.Push(buffer[i]); + } + } + + // Handle last line without linebreak + if (cell.Size() > 0 || row.Size() > 0) + { + cell.Push(0); + ProcessEscapes(cell.Data()); + row.Push(cell.Data()); + data.Push(std::move(row)); + } + return data; } //========================================================================== @@ -95,38 +161,27 @@ bool FStringTable::LoadLanguageFromSpreadsheet(int lumpnum) // //========================================================================== -bool FStringTable::readMacros(xlsxioreader reader, const char *sheetname) +bool FStringTable::readMacros(int lumpnum) { - xlsxioreadersheet sheet = xlsxioread_sheet_open(reader, sheetname, XLSXIOREAD_SKIP_NONE); - if (sheet == nullptr) return false; + auto lumpdata = Wads.ReadLumpIntoArray(lumpnum); + auto data = parseCSV(lumpdata); - while (xlsxioread_sheet_next_row(sheet)) + for (unsigned i = 1; i < data.Size(); i++) { - auto macroname = xlsxioread_sheet_next_cell(sheet); - auto language = xlsxioread_sheet_next_cell(sheet); - if (!macroname || !language) continue; - FStringf combined_name("%s/%s", language, macroname); - free(language); - free(macroname); + auto macroname = data[i][0]; + auto language = data[i][1]; + if (macroname.IsEmpty() || language.IsEmpty()) continue; + FStringf combined_name("%s/%s", language.GetChars(), macroname.GetChars()); FName name = combined_name; StringMacro macro; - char *value; - for (int i = 0; i < 4; i++) + for (int k = 0; k < 4; k++) { - value = xlsxioread_sheet_next_cell(sheet); - macro.Replacements[i] = value; - free(value); - } - // This is needed because the reader code would choke on incompletely read rows. - while ((value = xlsxioread_sheet_next_cell(sheet)) != nullptr) - { - free(value); + macro.Replacements[k] = data[i][k+2]; } allMacros.Insert(name, macro); } - xlsxioread_sheet_close(sheet); return true; } @@ -136,53 +191,27 @@ bool FStringTable::readMacros(xlsxioreader reader, const char *sheetname) // //========================================================================== -bool FStringTable::readSheetIntoTable(xlsxioreader reader, const char *sheetname) +bool FStringTable::ParseLanguageCSV(const TArray &buffer) { - - xlsxioreadersheet sheet = xlsxioread_sheet_open(reader, sheetname, XLSXIOREAD_SKIP_NONE); - if (sheet == nullptr) return false; - - int row = 0; - TArray> table; - - while (xlsxioread_sheet_next_row(sheet)) - { - int column = 0; - char *value; - table.Reserve(1); - auto myisspace = [](int ch) { return ch == '\t' || ch == '\r' || ch == '\n' || ch == ' '; }; - - while ((value = xlsxioread_sheet_next_cell(sheet)) != nullptr) - { - auto vcopy = value; - if (table.Size() <= (unsigned)row) table.Reserve(1); - while (*vcopy && myisspace((unsigned char)*vcopy)) vcopy++; // skip over leaading whitespace; - auto vend = vcopy + strlen(vcopy); - while (vend > vcopy && myisspace((unsigned char)vend[-1])) *--vend = 0; // skip over trailing whitespace - ProcessEscapes(vcopy); - table[row].Push(vcopy); - column++; - free(value); - } - row++; - } + if (memcmp(buffer.Data(), "default,", 8)) return false; + auto data = parseCSV(buffer); int labelcol = -1; int filtercol = -1; TArray> langrows; - if (table.Size() > 0) + if (data.Size() > 0) { - for (unsigned column = 0; column < table[0].Size(); column++) + for (unsigned column = 0; column < data[0].Size(); column++) { - auto &entry = table[0][column]; + auto &entry = data[0][column]; if (entry.CompareNoCase("filter") == 0) { filtercol = column; } else if (entry.CompareNoCase("identifier") == 0) { - labelcol = column;; + labelcol = column; } else { @@ -202,9 +231,9 @@ bool FStringTable::readSheetIntoTable(xlsxioreader reader, const char *sheetname } } - for (unsigned i = 1; i < table.Size(); i++) + for (unsigned i = 1; i < data.Size(); i++) { - auto &row = table[i]; + auto &row = data[i]; if (filtercol > -1) { auto filterstr = row[filtercol]; @@ -224,7 +253,6 @@ bool FStringTable::readSheetIntoTable(xlsxioreader reader, const char *sheetname } } } - xlsxioread_sheet_close(sheet); return true; } @@ -234,11 +262,12 @@ bool FStringTable::readSheetIntoTable(xlsxioreader reader, const char *sheetname // //========================================================================== -void FStringTable::LoadLanguage (int lumpnum) +void FStringTable::LoadLanguage (const TArray &buffer) { bool errordone = false; TArray activeMaps; - FScanner sc(lumpnum); + FScanner sc; + sc.OpenMem("LANGUAGE", buffer); sc.SetCMode (true); while (sc.GetString ()) { diff --git a/src/gamedata/stringtable.h b/src/gamedata/stringtable.h index c341d97b8..f4fcfa09f 100644 --- a/src/gamedata/stringtable.h +++ b/src/gamedata/stringtable.h @@ -103,10 +103,12 @@ private: LangMap allStrings; TArray> currentLanguageSet; - void LoadLanguage (int lumpnum); - bool LoadLanguageFromSpreadsheet(int lumpnum); - bool readMacros(struct xlsxio_read_struct *reader, const char *sheet); - bool readSheetIntoTable(struct xlsxio_read_struct *reader, const char *sheet); + void LoadLanguage (const TArray &buffer); + TArray> parseCSV(const TArray &buffer); + bool ParseLanguageCSV(const TArray &buffer); + + bool LoadLanguageFromSpreadsheet(int lumpnum, const TArray &buffer); + bool readMacros(int lumpnum); void InsertString(int langid, FName label, const FString &string); static size_t ProcessEscapes (char *str); diff --git a/src/gamedata/w_wad.cpp b/src/gamedata/w_wad.cpp index 1d5dfe444..8a471dc04 100644 --- a/src/gamedata/w_wad.cpp +++ b/src/gamedata/w_wad.cpp @@ -1368,7 +1368,7 @@ TArray FWadCollection::ReadLumpIntoArray(int lump, int pad) { auto lumpr = OpenLumpReader(lump); auto size = lumpr.GetLength(); - TArray data(size + pad); + TArray data(size + pad, true); auto numread = lumpr.Read(data.Data(), size); if (numread != size) diff --git a/src/utility/tarray.h b/src/utility/tarray.h index ea927db75..1b64f3c3e 100644 --- a/src/utility/tarray.h +++ b/src/utility/tarray.h @@ -158,7 +158,7 @@ public: Count = 0; Array = NULL; } - TArray (size_t max, bool reserve = false) + explicit TArray (size_t max, bool reserve = false) { Most = (unsigned)max; Count = (unsigned)(reserve? max : 0); @@ -291,6 +291,13 @@ public: return Count++; } + unsigned int Push(T &&item) + { + Grow(1); + ::new((void*)&Array[Count]) T(std::move(item)); + return Count++; + } + unsigned Append(const TArray &item) { unsigned start = Count; diff --git a/src/utility/xlsxread/LICENSE.txt b/src/utility/xlsxread/LICENSE.txt deleted file mode 100644 index 63698efa9..000000000 --- a/src/utility/xlsxread/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2016 Brecht Sanders All Rights Reserved - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/src/utility/xlsxread/expat/AUTHORS b/src/utility/xlsxread/expat/AUTHORS deleted file mode 100644 index 99475bb1b..000000000 --- a/src/utility/xlsxread/expat/AUTHORS +++ /dev/null @@ -1,10 +0,0 @@ -Expat is brought to you by: - -Clark Cooper -Fred L. Drake, Jr. -Greg Stein -James Clark -Karl Waclawek -Rhodri James -Sebastian Pipping -Steven Solie diff --git a/src/utility/xlsxread/expat/ascii.h b/src/utility/xlsxread/expat/ascii.h deleted file mode 100644 index c3587e573..000000000 --- a/src/utility/xlsxread/expat/ascii.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#define ASCII_A 0x41 -#define ASCII_B 0x42 -#define ASCII_C 0x43 -#define ASCII_D 0x44 -#define ASCII_E 0x45 -#define ASCII_F 0x46 -#define ASCII_G 0x47 -#define ASCII_H 0x48 -#define ASCII_I 0x49 -#define ASCII_J 0x4A -#define ASCII_K 0x4B -#define ASCII_L 0x4C -#define ASCII_M 0x4D -#define ASCII_N 0x4E -#define ASCII_O 0x4F -#define ASCII_P 0x50 -#define ASCII_Q 0x51 -#define ASCII_R 0x52 -#define ASCII_S 0x53 -#define ASCII_T 0x54 -#define ASCII_U 0x55 -#define ASCII_V 0x56 -#define ASCII_W 0x57 -#define ASCII_X 0x58 -#define ASCII_Y 0x59 -#define ASCII_Z 0x5A - -#define ASCII_a 0x61 -#define ASCII_b 0x62 -#define ASCII_c 0x63 -#define ASCII_d 0x64 -#define ASCII_e 0x65 -#define ASCII_f 0x66 -#define ASCII_g 0x67 -#define ASCII_h 0x68 -#define ASCII_i 0x69 -#define ASCII_j 0x6A -#define ASCII_k 0x6B -#define ASCII_l 0x6C -#define ASCII_m 0x6D -#define ASCII_n 0x6E -#define ASCII_o 0x6F -#define ASCII_p 0x70 -#define ASCII_q 0x71 -#define ASCII_r 0x72 -#define ASCII_s 0x73 -#define ASCII_t 0x74 -#define ASCII_u 0x75 -#define ASCII_v 0x76 -#define ASCII_w 0x77 -#define ASCII_x 0x78 -#define ASCII_y 0x79 -#define ASCII_z 0x7A - -#define ASCII_0 0x30 -#define ASCII_1 0x31 -#define ASCII_2 0x32 -#define ASCII_3 0x33 -#define ASCII_4 0x34 -#define ASCII_5 0x35 -#define ASCII_6 0x36 -#define ASCII_7 0x37 -#define ASCII_8 0x38 -#define ASCII_9 0x39 - -#define ASCII_TAB 0x09 -#define ASCII_SPACE 0x20 -#define ASCII_EXCL 0x21 -#define ASCII_QUOT 0x22 -#define ASCII_AMP 0x26 -#define ASCII_APOS 0x27 -#define ASCII_MINUS 0x2D -#define ASCII_PERIOD 0x2E -#define ASCII_COLON 0x3A -#define ASCII_SEMI 0x3B -#define ASCII_LT 0x3C -#define ASCII_EQUALS 0x3D -#define ASCII_GT 0x3E -#define ASCII_LSQB 0x5B -#define ASCII_RSQB 0x5D -#define ASCII_UNDERSCORE 0x5F -#define ASCII_LPAREN 0x28 -#define ASCII_RPAREN 0x29 -#define ASCII_FF 0x0C -#define ASCII_SLASH 0x2F -#define ASCII_HASH 0x23 -#define ASCII_PIPE 0x7C -#define ASCII_COMMA 0x2C diff --git a/src/utility/xlsxread/expat/asciitab.h b/src/utility/xlsxread/expat/asciitab.h deleted file mode 100644 index 2f59fd929..000000000 --- a/src/utility/xlsxread/expat/asciitab.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -/* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, -/* 0x0C */ BT_NONXML, BT_CR, BT_NONXML, BT_NONXML, -/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, -/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, -/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, -/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, -/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, -/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, -/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, -/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, -/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, diff --git a/src/utility/xlsxread/expat/expat.h b/src/utility/xlsxread/expat/expat.h deleted file mode 100644 index d0735bb5c..000000000 --- a/src/utility/xlsxread/expat/expat.h +++ /dev/null @@ -1,1085 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef Expat_INCLUDED -#define Expat_INCLUDED 1 - -#ifdef __VMS -/* 0 1 2 3 0 1 2 3 - 1234567890123456789012345678901 1234567890123456789012345678901 */ -#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler -#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler -#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler -#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg -#endif - -#include -#include "expat_external.h" - -#ifdef __cplusplus -extern "C" { -#endif - -struct XML_ParserStruct; -typedef struct XML_ParserStruct *XML_Parser; - -typedef unsigned char XML_Bool; -#define XML_TRUE ((XML_Bool) 1) -#define XML_FALSE ((XML_Bool) 0) - -/* The XML_Status enum gives the possible return values for several - API functions. The preprocessor #defines are included so this - stanza can be added to code that still needs to support older - versions of Expat 1.95.x: - - #ifndef XML_STATUS_OK - #define XML_STATUS_OK 1 - #define XML_STATUS_ERROR 0 - #endif - - Otherwise, the #define hackery is quite ugly and would have been - dropped. -*/ -enum XML_Status { - XML_STATUS_ERROR = 0, -#define XML_STATUS_ERROR XML_STATUS_ERROR - XML_STATUS_OK = 1, -#define XML_STATUS_OK XML_STATUS_OK - XML_STATUS_SUSPENDED = 2 -#define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED -}; - -enum XML_Error { - XML_ERROR_NONE, - XML_ERROR_NO_MEMORY, - XML_ERROR_SYNTAX, - XML_ERROR_NO_ELEMENTS, - XML_ERROR_INVALID_TOKEN, - XML_ERROR_UNCLOSED_TOKEN, - XML_ERROR_PARTIAL_CHAR, - XML_ERROR_TAG_MISMATCH, - XML_ERROR_DUPLICATE_ATTRIBUTE, - XML_ERROR_JUNK_AFTER_DOC_ELEMENT, - XML_ERROR_PARAM_ENTITY_REF, - XML_ERROR_UNDEFINED_ENTITY, - XML_ERROR_RECURSIVE_ENTITY_REF, - XML_ERROR_ASYNC_ENTITY, - XML_ERROR_BAD_CHAR_REF, - XML_ERROR_BINARY_ENTITY_REF, - XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, - XML_ERROR_MISPLACED_XML_PI, - XML_ERROR_UNKNOWN_ENCODING, - XML_ERROR_INCORRECT_ENCODING, - XML_ERROR_UNCLOSED_CDATA_SECTION, - XML_ERROR_EXTERNAL_ENTITY_HANDLING, - XML_ERROR_NOT_STANDALONE, - XML_ERROR_UNEXPECTED_STATE, - XML_ERROR_ENTITY_DECLARED_IN_PE, - XML_ERROR_FEATURE_REQUIRES_XML_DTD, - XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING, - /* Added in 1.95.7. */ - XML_ERROR_UNBOUND_PREFIX, - /* Added in 1.95.8. */ - XML_ERROR_UNDECLARING_PREFIX, - XML_ERROR_INCOMPLETE_PE, - XML_ERROR_XML_DECL, - XML_ERROR_TEXT_DECL, - XML_ERROR_PUBLICID, - XML_ERROR_SUSPENDED, - XML_ERROR_NOT_SUSPENDED, - XML_ERROR_ABORTED, - XML_ERROR_FINISHED, - XML_ERROR_SUSPEND_PE, - /* Added in 2.0. */ - XML_ERROR_RESERVED_PREFIX_XML, - XML_ERROR_RESERVED_PREFIX_XMLNS, - XML_ERROR_RESERVED_NAMESPACE_URI, - /* Added in 2.2.1. */ - XML_ERROR_INVALID_ARGUMENT -}; - -enum XML_Content_Type { - XML_CTYPE_EMPTY = 1, - XML_CTYPE_ANY, - XML_CTYPE_MIXED, - XML_CTYPE_NAME, - XML_CTYPE_CHOICE, - XML_CTYPE_SEQ -}; - -enum XML_Content_Quant { - XML_CQUANT_NONE, - XML_CQUANT_OPT, - XML_CQUANT_REP, - XML_CQUANT_PLUS -}; - -/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be - XML_CQUANT_NONE, and the other fields will be zero or NULL. - If type == XML_CTYPE_MIXED, then quant will be NONE or REP and - numchildren will contain number of elements that may be mixed in - and children point to an array of XML_Content cells that will be - all of XML_CTYPE_NAME type with no quantification. - - If type == XML_CTYPE_NAME, then the name points to the name, and - the numchildren field will be zero and children will be NULL. The - quant fields indicates any quantifiers placed on the name. - - CHOICE and SEQ will have name NULL, the number of children in - numchildren and children will point, recursively, to an array - of XML_Content cells. - - The EMPTY, ANY, and MIXED types will only occur at top level. -*/ - -typedef struct XML_cp XML_Content; - -struct XML_cp { - enum XML_Content_Type type; - enum XML_Content_Quant quant; - XML_Char * name; - unsigned int numchildren; - XML_Content * children; -}; - - -/* This is called for an element declaration. See above for - description of the model argument. It's the caller's responsibility - to free model when finished with it. -*/ -typedef void (XMLCALL *XML_ElementDeclHandler) (void *userData, - const XML_Char *name, - XML_Content *model); - -XMLPARSEAPI(void) -XML_SetElementDeclHandler(XML_Parser parser, - XML_ElementDeclHandler eldecl); - -/* The Attlist declaration handler is called for *each* attribute. So - a single Attlist declaration with multiple attributes declared will - generate multiple calls to this handler. The "default" parameter - may be NULL in the case of the "#IMPLIED" or "#REQUIRED" - keyword. The "isrequired" parameter will be true and the default - value will be NULL in the case of "#REQUIRED". If "isrequired" is - true and default is non-NULL, then this is a "#FIXED" default. -*/ -typedef void (XMLCALL *XML_AttlistDeclHandler) ( - void *userData, - const XML_Char *elname, - const XML_Char *attname, - const XML_Char *att_type, - const XML_Char *dflt, - int isrequired); - -XMLPARSEAPI(void) -XML_SetAttlistDeclHandler(XML_Parser parser, - XML_AttlistDeclHandler attdecl); - -/* The XML declaration handler is called for *both* XML declarations - and text declarations. The way to distinguish is that the version - parameter will be NULL for text declarations. The encoding - parameter may be NULL for XML declarations. The standalone - parameter will be -1, 0, or 1 indicating respectively that there - was no standalone parameter in the declaration, that it was given - as no, or that it was given as yes. -*/ -typedef void (XMLCALL *XML_XmlDeclHandler) (void *userData, - const XML_Char *version, - const XML_Char *encoding, - int standalone); - -XMLPARSEAPI(void) -XML_SetXmlDeclHandler(XML_Parser parser, - XML_XmlDeclHandler xmldecl); - - -typedef struct { - void *(*malloc_fcn)(size_t size); - void *(*realloc_fcn)(void *ptr, size_t size); - void (*free_fcn)(void *ptr); -} XML_Memory_Handling_Suite; - -/* Constructs a new parser; encoding is the encoding specified by the - external protocol or NULL if there is none specified. -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreate(const XML_Char *encoding); - -/* Constructs a new parser and namespace processor. Element type - names and attribute names that belong to a namespace will be - expanded; unprefixed attribute names are never expanded; unprefixed - element type names are expanded only if there is a default - namespace. The expanded name is the concatenation of the namespace - URI, the namespace separator character, and the local part of the - name. If the namespace separator is '\0' then the namespace URI - and the local part will be concatenated without any separator. - It is a programming error to use the separator '\0' with namespace - triplets (see XML_SetReturnNSTriplet). -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); - - -/* Constructs a new parser using the memory management suite referred to - by memsuite. If memsuite is NULL, then use the standard library memory - suite. If namespaceSeparator is non-NULL it creates a parser with - namespace processing as described above. The character pointed at - will serve as the namespace separator. - - All further memory operations used for the created parser will come from - the given suite. -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreate_MM(const XML_Char *encoding, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *namespaceSeparator); - -/* Prepare a parser object to be re-used. This is particularly - valuable when memory allocation overhead is disproportionatly high, - such as when a large number of small documnents need to be parsed. - All handlers are cleared from the parser, except for the - unknownEncodingHandler. The parser's external state is re-initialized - except for the values of ns and ns_triplets. - - Added in Expat 1.95.3. -*/ -XMLPARSEAPI(XML_Bool) -XML_ParserReset(XML_Parser parser, const XML_Char *encoding); - -/* atts is array of name/value pairs, terminated by 0; - names and values are 0 terminated. -*/ -typedef void (XMLCALL *XML_StartElementHandler) (void *userData, - const XML_Char *name, - const XML_Char **atts); - -typedef void (XMLCALL *XML_EndElementHandler) (void *userData, - const XML_Char *name); - - -/* s is not 0 terminated. */ -typedef void (XMLCALL *XML_CharacterDataHandler) (void *userData, - const XML_Char *s, - int len); - -/* target and data are 0 terminated */ -typedef void (XMLCALL *XML_ProcessingInstructionHandler) ( - void *userData, - const XML_Char *target, - const XML_Char *data); - -/* data is 0 terminated */ -typedef void (XMLCALL *XML_CommentHandler) (void *userData, - const XML_Char *data); - -typedef void (XMLCALL *XML_StartCdataSectionHandler) (void *userData); -typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData); - -/* This is called for any characters in the XML document for which - there is no applicable handler. This includes both characters that - are part of markup which is of a kind that is not reported - (comments, markup declarations), or characters that are part of a - construct which could be reported but for which no handler has been - supplied. The characters are passed exactly as they were in the XML - document except that they will be encoded in UTF-8 or UTF-16. - Line boundaries are not normalized. Note that a byte order mark - character is not passed to the default handler. There are no - guarantees about how characters are divided between calls to the - default handler: for example, a comment might be split between - multiple calls. -*/ -typedef void (XMLCALL *XML_DefaultHandler) (void *userData, - const XML_Char *s, - int len); - -/* This is called for the start of the DOCTYPE declaration, before - any DTD or internal subset is parsed. -*/ -typedef void (XMLCALL *XML_StartDoctypeDeclHandler) ( - void *userData, - const XML_Char *doctypeName, - const XML_Char *sysid, - const XML_Char *pubid, - int has_internal_subset); - -/* This is called for the start of the DOCTYPE declaration when the - closing > is encountered, but after processing any external - subset. -*/ -typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); - -/* This is called for entity declarations. The is_parameter_entity - argument will be non-zero if the entity is a parameter entity, zero - otherwise. - - For internal entities (), value will - be non-NULL and systemId, publicID, and notationName will be NULL. - The value string is NOT nul-terminated; the length is provided in - the value_length argument. Since it is legal to have zero-length - values, do not use this argument to test for internal entities. - - For external entities, value will be NULL and systemId will be - non-NULL. The publicId argument will be NULL unless a public - identifier was provided. The notationName argument will have a - non-NULL value only for unparsed entity declarations. - - Note that is_parameter_entity can't be changed to XML_Bool, since - that would break binary compatibility. -*/ -typedef void (XMLCALL *XML_EntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity, - const XML_Char *value, - int value_length, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); - -XMLPARSEAPI(void) -XML_SetEntityDeclHandler(XML_Parser parser, - XML_EntityDeclHandler handler); - -/* OBSOLETE -- OBSOLETE -- OBSOLETE - This handler has been superseded by the EntityDeclHandler above. - It is provided here for backward compatibility. - - This is called for a declaration of an unparsed (NDATA) entity. - The base argument is whatever was set by XML_SetBase. The - entityName, systemId and notationName arguments will never be - NULL. The other arguments may be. -*/ -typedef void (XMLCALL *XML_UnparsedEntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); - -/* This is called for a declaration of notation. The base argument is - whatever was set by XML_SetBase. The notationName will never be - NULL. The other arguments can be. -*/ -typedef void (XMLCALL *XML_NotationDeclHandler) ( - void *userData, - const XML_Char *notationName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); - -/* When namespace processing is enabled, these are called once for - each namespace declaration. The call to the start and end element - handlers occur between the calls to the start and end namespace - declaration handlers. For an xmlns attribute, prefix will be - NULL. For an xmlns="" attribute, uri will be NULL. -*/ -typedef void (XMLCALL *XML_StartNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix, - const XML_Char *uri); - -typedef void (XMLCALL *XML_EndNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix); - -/* This is called if the document is not standalone, that is, it has an - external subset or a reference to a parameter entity, but does not - have standalone="yes". If this handler returns XML_STATUS_ERROR, - then processing will not continue, and the parser will return a - XML_ERROR_NOT_STANDALONE error. - If parameter entity parsing is enabled, then in addition to the - conditions above this handler will only be called if the referenced - entity was actually read. -*/ -typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData); - -/* This is called for a reference to an external parsed general - entity. The referenced entity is not automatically parsed. The - application can parse it immediately or later using - XML_ExternalEntityParserCreate. - - The parser argument is the parser parsing the entity containing the - reference; it can be passed as the parser argument to - XML_ExternalEntityParserCreate. The systemId argument is the - system identifier as specified in the entity declaration; it will - not be NULL. - - The base argument is the system identifier that should be used as - the base for resolving systemId if systemId was relative; this is - set by XML_SetBase; it may be NULL. - - The publicId argument is the public identifier as specified in the - entity declaration, or NULL if none was specified; the whitespace - in the public identifier will have been normalized as required by - the XML spec. - - The context argument specifies the parsing context in the format - expected by the context argument to XML_ExternalEntityParserCreate; - context is valid only until the handler returns, so if the - referenced entity is to be parsed later, it must be copied. - context is NULL only when the entity is a parameter entity. - - The handler should return XML_STATUS_ERROR if processing should not - continue because of a fatal error in the handling of the external - entity. In this case the calling parser will return an - XML_ERROR_EXTERNAL_ENTITY_HANDLING error. - - Note that unlike other handlers the first argument is the parser, - not userData. -*/ -typedef int (XMLCALL *XML_ExternalEntityRefHandler) ( - XML_Parser parser, - const XML_Char *context, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); - -/* This is called in two situations: - 1) An entity reference is encountered for which no declaration - has been read *and* this is not an error. - 2) An internal entity reference is read, but not expanded, because - XML_SetDefaultHandler has been called. - Note: skipped parameter entities in declarations and skipped general - entities in attribute values cannot be reported, because - the event would be out of sync with the reporting of the - declarations or attribute values -*/ -typedef void (XMLCALL *XML_SkippedEntityHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity); - -/* This structure is filled in by the XML_UnknownEncodingHandler to - provide information to the parser about encodings that are unknown - to the parser. - - The map[b] member gives information about byte sequences whose - first byte is b. - - If map[b] is c where c is >= 0, then b by itself encodes the - Unicode scalar value c. - - If map[b] is -1, then the byte sequence is malformed. - - If map[b] is -n, where n >= 2, then b is the first byte of an - n-byte sequence that encodes a single Unicode scalar value. - - The data member will be passed as the first argument to the convert - function. - - The convert function is used to convert multibyte sequences; s will - point to a n-byte sequence where map[(unsigned char)*s] == -n. The - convert function must return the Unicode scalar value represented - by this byte sequence or -1 if the byte sequence is malformed. - - The convert function may be NULL if the encoding is a single-byte - encoding, that is if map[b] >= -1 for all bytes b. - - When the parser is finished with the encoding, then if release is - not NULL, it will call release passing it the data member; once - release has been called, the convert function will not be called - again. - - Expat places certain restrictions on the encodings that are supported - using this mechanism. - - 1. Every ASCII character that can appear in a well-formed XML document, - other than the characters - - $@\^`{}~ - - must be represented by a single byte, and that byte must be the - same byte that represents that character in ASCII. - - 2. No character may require more than 4 bytes to encode. - - 3. All characters encoded must have Unicode scalar values <= - 0xFFFF, (i.e., characters that would be encoded by surrogates in - UTF-16 are not allowed). Note that this restriction doesn't - apply to the built-in support for UTF-8 and UTF-16. - - 4. No Unicode character may be encoded by more than one distinct - sequence of bytes. -*/ -typedef struct { - int map[256]; - void *data; - int (XMLCALL *convert)(void *data, const char *s); - void (XMLCALL *release)(void *data); -} XML_Encoding; - -/* This is called for an encoding that is unknown to the parser. - - The encodingHandlerData argument is that which was passed as the - second argument to XML_SetUnknownEncodingHandler. - - The name argument gives the name of the encoding as specified in - the encoding declaration. - - If the callback can provide information about the encoding, it must - fill in the XML_Encoding structure, and return XML_STATUS_OK. - Otherwise it must return XML_STATUS_ERROR. - - If info does not describe a suitable encoding, then the parser will - return an XML_UNKNOWN_ENCODING error. -*/ -typedef int (XMLCALL *XML_UnknownEncodingHandler) ( - void *encodingHandlerData, - const XML_Char *name, - XML_Encoding *info); - -XMLPARSEAPI(void) -XML_SetElementHandler(XML_Parser parser, - XML_StartElementHandler start, - XML_EndElementHandler end); - -XMLPARSEAPI(void) -XML_SetStartElementHandler(XML_Parser parser, - XML_StartElementHandler handler); - -XMLPARSEAPI(void) -XML_SetEndElementHandler(XML_Parser parser, - XML_EndElementHandler handler); - -XMLPARSEAPI(void) -XML_SetCharacterDataHandler(XML_Parser parser, - XML_CharacterDataHandler handler); - -XMLPARSEAPI(void) -XML_SetProcessingInstructionHandler(XML_Parser parser, - XML_ProcessingInstructionHandler handler); -XMLPARSEAPI(void) -XML_SetCommentHandler(XML_Parser parser, - XML_CommentHandler handler); - -XMLPARSEAPI(void) -XML_SetCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start, - XML_EndCdataSectionHandler end); - -XMLPARSEAPI(void) -XML_SetStartCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start); - -XMLPARSEAPI(void) -XML_SetEndCdataSectionHandler(XML_Parser parser, - XML_EndCdataSectionHandler end); - -/* This sets the default handler and also inhibits expansion of - internal entities. These entity references will be passed to the - default handler, or to the skipped entity handler, if one is set. -*/ -XMLPARSEAPI(void) -XML_SetDefaultHandler(XML_Parser parser, - XML_DefaultHandler handler); - -/* This sets the default handler but does not inhibit expansion of - internal entities. The entity reference will not be passed to the - default handler. -*/ -XMLPARSEAPI(void) -XML_SetDefaultHandlerExpand(XML_Parser parser, - XML_DefaultHandler handler); - -XMLPARSEAPI(void) -XML_SetDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start, - XML_EndDoctypeDeclHandler end); - -XMLPARSEAPI(void) -XML_SetStartDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start); - -XMLPARSEAPI(void) -XML_SetEndDoctypeDeclHandler(XML_Parser parser, - XML_EndDoctypeDeclHandler end); - -XMLPARSEAPI(void) -XML_SetUnparsedEntityDeclHandler(XML_Parser parser, - XML_UnparsedEntityDeclHandler handler); - -XMLPARSEAPI(void) -XML_SetNotationDeclHandler(XML_Parser parser, - XML_NotationDeclHandler handler); - -XMLPARSEAPI(void) -XML_SetNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start, - XML_EndNamespaceDeclHandler end); - -XMLPARSEAPI(void) -XML_SetStartNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start); - -XMLPARSEAPI(void) -XML_SetEndNamespaceDeclHandler(XML_Parser parser, - XML_EndNamespaceDeclHandler end); - -XMLPARSEAPI(void) -XML_SetNotStandaloneHandler(XML_Parser parser, - XML_NotStandaloneHandler handler); - -XMLPARSEAPI(void) -XML_SetExternalEntityRefHandler(XML_Parser parser, - XML_ExternalEntityRefHandler handler); - -/* If a non-NULL value for arg is specified here, then it will be - passed as the first argument to the external entity ref handler - instead of the parser object. -*/ -XMLPARSEAPI(void) -XML_SetExternalEntityRefHandlerArg(XML_Parser parser, - void *arg); - -XMLPARSEAPI(void) -XML_SetSkippedEntityHandler(XML_Parser parser, - XML_SkippedEntityHandler handler); - -XMLPARSEAPI(void) -XML_SetUnknownEncodingHandler(XML_Parser parser, - XML_UnknownEncodingHandler handler, - void *encodingHandlerData); - -/* This can be called within a handler for a start element, end - element, processing instruction or character data. It causes the - corresponding markup to be passed to the default handler. -*/ -XMLPARSEAPI(void) -XML_DefaultCurrent(XML_Parser parser); - -/* If do_nst is non-zero, and namespace processing is in effect, and - a name has a prefix (i.e. an explicit namespace qualifier) then - that name is returned as a triplet in a single string separated by - the separator character specified when the parser was created: URI - + sep + local_name + sep + prefix. - - If do_nst is zero, then namespace information is returned in the - default manner (URI + sep + local_name) whether or not the name - has a prefix. - - Note: Calling XML_SetReturnNSTriplet after XML_Parse or - XML_ParseBuffer has no effect. -*/ - -XMLPARSEAPI(void) -XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); - -/* This value is passed as the userData argument to callbacks. */ -XMLPARSEAPI(void) -XML_SetUserData(XML_Parser parser, void *userData); - -/* Returns the last value set by XML_SetUserData or NULL. */ -#define XML_GetUserData(parser) (*(void **)(parser)) - -/* This is equivalent to supplying an encoding argument to - XML_ParserCreate. On success XML_SetEncoding returns non-zero, - zero otherwise. - Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer - has no effect and returns XML_STATUS_ERROR. -*/ -XMLPARSEAPI(enum XML_Status) -XML_SetEncoding(XML_Parser parser, const XML_Char *encoding); - -/* If this function is called, then the parser will be passed as the - first argument to callbacks instead of userData. The userData will - still be accessible using XML_GetUserData. -*/ -XMLPARSEAPI(void) -XML_UseParserAsHandlerArg(XML_Parser parser); - -/* If useDTD == XML_TRUE is passed to this function, then the parser - will assume that there is an external subset, even if none is - specified in the document. In such a case the parser will call the - externalEntityRefHandler with a value of NULL for the systemId - argument (the publicId and context arguments will be NULL as well). - Note: For the purpose of checking WFC: Entity Declared, passing - useDTD == XML_TRUE will make the parser behave as if the document - had a DTD with an external subset. - Note: If this function is called, then this must be done before - the first call to XML_Parse or XML_ParseBuffer, since it will - have no effect after that. Returns - XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. - Note: If the document does not have a DOCTYPE declaration at all, - then startDoctypeDeclHandler and endDoctypeDeclHandler will not - be called, despite an external subset being parsed. - Note: If XML_DTD is not defined when Expat is compiled, returns - XML_ERROR_FEATURE_REQUIRES_XML_DTD. - Note: If parser == NULL, returns XML_ERROR_INVALID_ARGUMENT. -*/ -XMLPARSEAPI(enum XML_Error) -XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); - - -/* Sets the base to be used for resolving relative URIs in system - identifiers in declarations. Resolving relative identifiers is - left to the application: this value will be passed through as the - base argument to the XML_ExternalEntityRefHandler, - XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base - argument will be copied. Returns XML_STATUS_ERROR if out of memory, - XML_STATUS_OK otherwise. -*/ -XMLPARSEAPI(enum XML_Status) -XML_SetBase(XML_Parser parser, const XML_Char *base); - -XMLPARSEAPI(const XML_Char *) -XML_GetBase(XML_Parser parser); - -/* Returns the number of the attribute/value pairs passed in last call - to the XML_StartElementHandler that were specified in the start-tag - rather than defaulted. Each attribute/value pair counts as 2; thus - this correspondds to an index into the atts array passed to the - XML_StartElementHandler. Returns -1 if parser == NULL. -*/ -XMLPARSEAPI(int) -XML_GetSpecifiedAttributeCount(XML_Parser parser); - -/* Returns the index of the ID attribute passed in the last call to - XML_StartElementHandler, or -1 if there is no ID attribute or - parser == NULL. Each attribute/value pair counts as 2; thus this - correspondds to an index into the atts array passed to the - XML_StartElementHandler. -*/ -XMLPARSEAPI(int) -XML_GetIdAttributeIndex(XML_Parser parser); - -#ifdef XML_ATTR_INFO -/* Source file byte offsets for the start and end of attribute names and values. - The value indices are exclusive of surrounding quotes; thus in a UTF-8 source - file an attribute value of "blah" will yield: - info->valueEnd - info->valueStart = 4 bytes. -*/ -typedef struct { - XML_Index nameStart; /* Offset to beginning of the attribute name. */ - XML_Index nameEnd; /* Offset after the attribute name's last byte. */ - XML_Index valueStart; /* Offset to beginning of the attribute value. */ - XML_Index valueEnd; /* Offset after the attribute value's last byte. */ -} XML_AttrInfo; - -/* Returns an array of XML_AttrInfo structures for the attribute/value pairs - passed in last call to the XML_StartElementHandler that were specified - in the start-tag rather than defaulted. Each attribute/value pair counts - as 1; thus the number of entries in the array is - XML_GetSpecifiedAttributeCount(parser) / 2. -*/ -XMLPARSEAPI(const XML_AttrInfo *) -XML_GetAttributeInfo(XML_Parser parser); -#endif - -/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is - detected. The last call to XML_Parse must have isFinal true; len - may be zero for this call (or any other). - - Though the return values for these functions has always been - described as a Boolean value, the implementation, at least for the - 1.95.x series, has always returned exactly one of the XML_Status - values. -*/ -XMLPARSEAPI(enum XML_Status) -XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); - -XMLPARSEAPI(void *) -XML_GetBuffer(XML_Parser parser, int len); - -XMLPARSEAPI(enum XML_Status) -XML_ParseBuffer(XML_Parser parser, int len, int isFinal); - -/* Stops parsing, causing XML_Parse() or XML_ParseBuffer() to return. - Must be called from within a call-back handler, except when aborting - (resumable = 0) an already suspended parser. Some call-backs may - still follow because they would otherwise get lost. Examples: - - endElementHandler() for empty elements when stopped in - startElementHandler(), - - endNameSpaceDeclHandler() when stopped in endElementHandler(), - and possibly others. - - Can be called from most handlers, including DTD related call-backs, - except when parsing an external parameter entity and resumable != 0. - Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise. - Possible error codes: - - XML_ERROR_SUSPENDED: when suspending an already suspended parser. - - XML_ERROR_FINISHED: when the parser has already finished. - - XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE. - - When resumable != 0 (true) then parsing is suspended, that is, - XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. - Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer() - return XML_STATUS_ERROR with error code XML_ERROR_ABORTED. - - *Note*: - This will be applied to the current parser instance only, that is, if - there is a parent parser then it will continue parsing when the - externalEntityRefHandler() returns. It is up to the implementation of - the externalEntityRefHandler() to call XML_StopParser() on the parent - parser (recursively), if one wants to stop parsing altogether. - - When suspended, parsing can be resumed by calling XML_ResumeParser(). -*/ -XMLPARSEAPI(enum XML_Status) -XML_StopParser(XML_Parser parser, XML_Bool resumable); - -/* Resumes parsing after it has been suspended with XML_StopParser(). - Must not be called from within a handler call-back. Returns same - status codes as XML_Parse() or XML_ParseBuffer(). - Additional error code XML_ERROR_NOT_SUSPENDED possible. - - *Note*: - This must be called on the most deeply nested child parser instance - first, and on its parent parser only after the child parser has finished, - to be applied recursively until the document entity's parser is restarted. - That is, the parent parser will not resume by itself and it is up to the - application to call XML_ResumeParser() on it at the appropriate moment. -*/ -XMLPARSEAPI(enum XML_Status) -XML_ResumeParser(XML_Parser parser); - -enum XML_Parsing { - XML_INITIALIZED, - XML_PARSING, - XML_FINISHED, - XML_SUSPENDED -}; - -typedef struct { - enum XML_Parsing parsing; - XML_Bool finalBuffer; -} XML_ParsingStatus; - -/* Returns status of parser with respect to being initialized, parsing, - finished, or suspended and processing the final buffer. - XXX XML_Parse() and XML_ParseBuffer() should return XML_ParsingStatus, - XXX with XML_FINISHED_OK or XML_FINISHED_ERROR replacing XML_FINISHED -*/ -XMLPARSEAPI(void) -XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status); - -/* Creates an XML_Parser object that can parse an external general - entity; context is a '\0'-terminated string specifying the parse - context; encoding is a '\0'-terminated string giving the name of - the externally specified encoding, or NULL if there is no - externally specified encoding. The context string consists of a - sequence of tokens separated by formfeeds (\f); a token consisting - of a name specifies that the general entity of the name is open; a - token of the form prefix=uri specifies the namespace for a - particular prefix; a token of the form =uri specifies the default - namespace. This can be called at any point after the first call to - an ExternalEntityRefHandler so longer as the parser has not yet - been freed. The new parser is completely independent and may - safely be used in a separate thread. The handlers and userData are - initialized from the parser argument. Returns NULL if out of memory. - Otherwise returns a new XML_Parser object. -*/ -XMLPARSEAPI(XML_Parser) -XML_ExternalEntityParserCreate(XML_Parser parser, - const XML_Char *context, - const XML_Char *encoding); - -enum XML_ParamEntityParsing { - XML_PARAM_ENTITY_PARSING_NEVER, - XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, - XML_PARAM_ENTITY_PARSING_ALWAYS -}; - -/* Controls parsing of parameter entities (including the external DTD - subset). If parsing of parameter entities is enabled, then - references to external parameter entities (including the external - DTD subset) will be passed to the handler set with - XML_SetExternalEntityRefHandler. The context passed will be 0. - - Unlike external general entities, external parameter entities can - only be parsed synchronously. If the external parameter entity is - to be parsed, it must be parsed during the call to the external - entity ref handler: the complete sequence of - XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and - XML_ParserFree calls must be made during this call. After - XML_ExternalEntityParserCreate has been called to create the parser - for the external parameter entity (context must be 0 for this - call), it is illegal to make any calls on the old parser until - XML_ParserFree has been called on the newly created parser. - If the library has been compiled without support for parameter - entity parsing (ie without XML_DTD being defined), then - XML_SetParamEntityParsing will return 0 if parsing of parameter - entities is requested; otherwise it will return non-zero. - Note: If XML_SetParamEntityParsing is called after XML_Parse or - XML_ParseBuffer, then it has no effect and will always return 0. - Note: If parser == NULL, the function will do nothing and return 0. -*/ -XMLPARSEAPI(int) -XML_SetParamEntityParsing(XML_Parser parser, - enum XML_ParamEntityParsing parsing); - -/* Sets the hash salt to use for internal hash calculations. - Helps in preventing DoS attacks based on predicting hash - function behavior. This must be called before parsing is started. - Returns 1 if successful, 0 when called after parsing has started. - Note: If parser == NULL, the function will do nothing and return 0. -*/ -XMLPARSEAPI(int) -XML_SetHashSalt(XML_Parser parser, - unsigned long hash_salt); - -/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then - XML_GetErrorCode returns information about the error. -*/ -XMLPARSEAPI(enum XML_Error) -XML_GetErrorCode(XML_Parser parser); - -/* These functions return information about the current parse - location. They may be called from any callback called to report - some parse event; in this case the location is the location of the - first of the sequence of characters that generated the event. When - called from callbacks generated by declarations in the document - prologue, the location identified isn't as neatly defined, but will - be within the relevant markup. When called outside of the callback - functions, the position indicated will be just past the last parse - event (regardless of whether there was an associated callback). - - They may also be called after returning from a call to XML_Parse - or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then - the location is the location of the character at which the error - was detected; otherwise the location is the location of the last - parse event, as described above. - - Note: XML_GetCurrentLineNumber and XML_GetCurrentColumnNumber - return 0 to indicate an error. - Note: XML_GetCurrentByteIndex returns -1 to indicate an error. -*/ -XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser); -XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser); -XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser); - -/* Return the number of bytes in the current event. - Returns 0 if the event is in an internal entity. -*/ -XMLPARSEAPI(int) -XML_GetCurrentByteCount(XML_Parser parser); - -/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets - the integer pointed to by offset to the offset within this buffer - of the current parse position, and sets the integer pointed to by size - to the size of this buffer (the number of input bytes). Otherwise - returns a NULL pointer. Also returns a NULL pointer if a parse isn't - active. - - NOTE: The character pointer returned should not be used outside - the handler that makes the call. -*/ -XMLPARSEAPI(const char *) -XML_GetInputContext(XML_Parser parser, - int *offset, - int *size); - -/* For backwards compatibility with previous versions. */ -#define XML_GetErrorLineNumber XML_GetCurrentLineNumber -#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber -#define XML_GetErrorByteIndex XML_GetCurrentByteIndex - -/* Frees the content model passed to the element declaration handler */ -XMLPARSEAPI(void) -XML_FreeContentModel(XML_Parser parser, XML_Content *model); - -/* Exposing the memory handling functions used in Expat */ -XMLPARSEAPI(void *) -XML_ATTR_MALLOC -XML_ATTR_ALLOC_SIZE(2) -XML_MemMalloc(XML_Parser parser, size_t size); - -XMLPARSEAPI(void *) -XML_ATTR_ALLOC_SIZE(3) -XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); - -XMLPARSEAPI(void) -XML_MemFree(XML_Parser parser, void *ptr); - -/* Frees memory used by the parser. */ -XMLPARSEAPI(void) -XML_ParserFree(XML_Parser parser); - -/* Returns a string describing the error. */ -XMLPARSEAPI(const XML_LChar *) -XML_ErrorString(enum XML_Error code); - -/* Return a string containing the version number of this expat */ -XMLPARSEAPI(const XML_LChar *) -XML_ExpatVersion(void); - -typedef struct { - int major; - int minor; - int micro; -} XML_Expat_Version; - -/* Return an XML_Expat_Version structure containing numeric version - number information for this version of expat. -*/ -XMLPARSEAPI(XML_Expat_Version) -XML_ExpatVersionInfo(void); - -/* Added in Expat 1.95.5. */ -enum XML_FeatureEnum { - XML_FEATURE_END = 0, - XML_FEATURE_UNICODE, - XML_FEATURE_UNICODE_WCHAR_T, - XML_FEATURE_DTD, - XML_FEATURE_CONTEXT_BYTES, - XML_FEATURE_MIN_SIZE, - XML_FEATURE_SIZEOF_XML_CHAR, - XML_FEATURE_SIZEOF_XML_LCHAR, - XML_FEATURE_NS, - XML_FEATURE_LARGE_SIZE, - XML_FEATURE_ATTR_INFO - /* Additional features must be added to the end of this enum. */ -}; - -typedef struct { - enum XML_FeatureEnum feature; - const XML_LChar *name; - long int value; -} XML_Feature; - -XMLPARSEAPI(const XML_Feature *) -XML_GetFeatureList(void); - - -/* Expat follows the semantic versioning convention. - See http://semver.org. -*/ -#define XML_MAJOR_VERSION 2 -#define XML_MINOR_VERSION 2 -#define XML_MICRO_VERSION 4 - -#ifdef __cplusplus -} -#endif - -#endif /* not Expat_INCLUDED */ diff --git a/src/utility/xlsxread/expat/expat_config.h b/src/utility/xlsxread/expat/expat_config.h deleted file mode 100644 index fff622241..000000000 --- a/src/utility/xlsxread/expat/expat_config.h +++ /dev/null @@ -1,63 +0,0 @@ -/* expat_config.h. Generated from expat_config.h.in by configure. */ -/* expat_config.h.in. Generated from configure.ac by autoheader. */ - -/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ -#define BYTEORDER 1234 - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#define LT_OBJDIR ".libs/" - -/* Name of package */ -#define PACKAGE "expat" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "expat-bugs@libexpat.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "expat" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "expat 2.2.4" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "expat" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "2.2.4" - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Version number of package */ -#define VERSION "2.2.4" - -/* whether byteorder is bigendian */ -/* #undef WORDS_BIGENDIAN */ - -/* Define to specify how much context to retain around the current parse - point. */ -#define XML_CONTEXT_BYTES 1024 - -/* Define to include code reading entropy from `/dev/urandom'. */ -#define XML_DEV_URANDOM 1 - -/* Define to make parameter entity parsing functionality available. */ -#define XML_DTD 1 - -/* Define to make XML Namespaces functionality available. */ -#define XML_NS 1 - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to `long int' if does not define. */ -/* #undef off_t */ - -/* Define to `unsigned int' if does not define. */ -/* #undef size_t */ diff --git a/src/utility/xlsxread/expat/expat_external.h b/src/utility/xlsxread/expat/expat_external.h deleted file mode 100644 index c9a654e19..000000000 --- a/src/utility/xlsxread/expat/expat_external.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef Expat_External_INCLUDED -#define Expat_External_INCLUDED 1 - -/* External API definitions */ - -#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__) -#define XML_USE_MSC_EXTENSIONS 1 -#endif - -/* Expat tries very hard to make the API boundary very specifically - defined. There are two macros defined to control this boundary; - each of these can be defined before including this header to - achieve some different behavior, but doing so it not recommended or - tested frequently. - - XMLCALL - The calling convention to use for all calls across the - "library boundary." This will default to cdecl, and - try really hard to tell the compiler that's what we - want. - - XMLIMPORT - Whatever magic is needed to note that a function is - to be imported from a dynamically loaded library - (.dll, .so, or .sl, depending on your platform). - - The XMLCALL macro was added in Expat 1.95.7. The only one which is - expected to be directly useful in client code is XMLCALL. - - Note that on at least some Unix versions, the Expat library must be - compiled with the cdecl calling convention as the default since - system headers may assume the cdecl convention. -*/ -#ifndef XMLCALL -#if defined(_MSC_VER) -#define XMLCALL __cdecl -#elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER) -#define XMLCALL __attribute__((cdecl)) -#else -/* For any platform which uses this definition and supports more than - one calling convention, we need to extend this definition to - declare the convention used on that platform, if it's possible to - do so. - - If this is the case for your platform, please file a bug report - with information on how to identify your platform via the C - pre-processor and how to specify the same calling convention as the - platform's malloc() implementation. -*/ -#define XMLCALL -#endif -#endif /* not defined XMLCALL */ - - -#if !defined(XML_STATIC) && !defined(XMLIMPORT) -#ifndef XML_BUILDING_EXPAT -/* using Expat from an application */ - -#ifdef XML_USE_MSC_EXTENSIONS -#define XMLIMPORT __declspec(dllimport) -#endif - -#endif -#endif /* not defined XML_STATIC */ - -#if !defined(XMLIMPORT) && defined(__GNUC__) && (__GNUC__ >= 4) -#define XMLIMPORT __attribute__ ((visibility ("default"))) -#endif - -/* If we didn't define it above, define it away: */ -#ifndef XMLIMPORT -#define XMLIMPORT -#endif - -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) -#define XML_ATTR_MALLOC __attribute__((__malloc__)) -#else -#define XML_ATTR_MALLOC -#endif - -#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) -#define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) -#else -#define XML_ATTR_ALLOC_SIZE(x) -#endif - -#define XMLPARSEAPI(type) type - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef XML_UNICODE_WCHAR_T -# define XML_UNICODE -# if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2) -# error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc" -# endif -#endif - -#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ -#ifdef XML_UNICODE_WCHAR_T -typedef wchar_t XML_Char; -typedef wchar_t XML_LChar; -#else -typedef unsigned short XML_Char; -typedef char XML_LChar; -#endif /* XML_UNICODE_WCHAR_T */ -#else /* Information is UTF-8 encoded. */ -typedef char XML_Char; -typedef char XML_LChar; -#endif /* XML_UNICODE */ - -#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */ -#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400 -typedef __int64 XML_Index; -typedef unsigned __int64 XML_Size; -#else -typedef long long XML_Index; -typedef unsigned long long XML_Size; -#endif -#else -typedef long XML_Index; -typedef unsigned long XML_Size; -#endif /* XML_LARGE_SIZE */ - -#ifdef __cplusplus -} -#endif - -#endif /* not Expat_External_INCLUDED */ diff --git a/src/utility/xlsxread/expat/iasciitab.h b/src/utility/xlsxread/expat/iasciitab.h deleted file mode 100644 index ce4a4bf7e..000000000 --- a/src/utility/xlsxread/expat/iasciitab.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -/* Like asciitab.h, except that 0xD has code BT_S rather than BT_CR */ -/* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, -/* 0x0C */ BT_NONXML, BT_S, BT_NONXML, BT_NONXML, -/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, -/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, -/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, -/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, -/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, -/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, -/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, -/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, -/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, diff --git a/src/utility/xlsxread/expat/internal.h b/src/utility/xlsxread/expat/internal.h deleted file mode 100644 index 3c5d6e913..000000000 --- a/src/utility/xlsxread/expat/internal.h +++ /dev/null @@ -1,124 +0,0 @@ -/* internal.h - - Internal definitions used by Expat. This is not needed to compile - client code. - - The following calling convention macros are defined for frequently - called functions: - - FASTCALL - Used for those internal functions that have a simple - body and a low number of arguments and local variables. - - PTRCALL - Used for functions called though function pointers. - - PTRFASTCALL - Like PTRCALL, but for low number of arguments. - - inline - Used for selected internal functions for which inlining - may improve performance on some platforms. - - Note: Use of these macros is based on judgement, not hard rules, - and therefore subject to change. - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#if defined(__GNUC__) && defined(__i386__) && !defined(__MINGW32__) -/* We'll use this version by default only where we know it helps. - - regparm() generates warnings on Solaris boxes. See SF bug #692878. - - Instability reported with egcs on a RedHat Linux 7.3. - Let's comment out: - #define FASTCALL __attribute__((stdcall, regparm(3))) - and let's try this: -*/ -#define FASTCALL __attribute__((regparm(3))) -#define PTRFASTCALL __attribute__((regparm(3))) -#endif - -/* Using __fastcall seems to have an unexpected negative effect under - MS VC++, especially for function pointers, so we won't use it for - now on that platform. It may be reconsidered for a future release - if it can be made more effective. - Likely reason: __fastcall on Windows is like stdcall, therefore - the compiler cannot perform stack optimizations for call clusters. -*/ - -/* Make sure all of these are defined if they aren't already. */ - -#ifndef FASTCALL -#define FASTCALL -#endif - -#ifndef PTRCALL -#define PTRCALL -#endif - -#ifndef PTRFASTCALL -#define PTRFASTCALL -#endif - -#ifndef XML_MIN_SIZE -#if !defined(__cplusplus) && !defined(inline) -#ifdef __GNUC__ -#define inline __inline -#endif /* __GNUC__ */ -#endif -#endif /* XML_MIN_SIZE */ - -#ifdef __cplusplus -#define inline inline -#else -#ifndef inline -#define inline -#endif -#endif - -#ifndef UNUSED_P -# ifdef __GNUC__ -# define UNUSED_P(p) UNUSED_ ## p __attribute__((__unused__)) -# else -# define UNUSED_P(p) UNUSED_ ## p -# endif -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -void -align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef); - - -#ifdef __cplusplus -} -#endif diff --git a/src/utility/xlsxread/expat/latin1tab.h b/src/utility/xlsxread/expat/latin1tab.h deleted file mode 100644 index 95dfa52b1..000000000 --- a/src/utility/xlsxread/expat/latin1tab.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -/* 0x80 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x84 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x88 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x8C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x90 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x94 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x98 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x9C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA4 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, -/* 0xAC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xB0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xB4 */ BT_OTHER, BT_NMSTRT, BT_OTHER, BT_NAME, -/* 0xB8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, -/* 0xBC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xC0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xC4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xC8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xCC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xD0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xD4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0xD8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xDC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xEC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xF0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xF4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0xF8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xFC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, diff --git a/src/utility/xlsxread/expat/nametab.h b/src/utility/xlsxread/expat/nametab.h deleted file mode 100644 index bfa2bd38c..000000000 --- a/src/utility/xlsxread/expat/nametab.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -static const unsigned namingBitmap[] = { -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE, -0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF, -0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF, -0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, -0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, -0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, -0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, -0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, -0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF, -0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000, -0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060, -0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003, -0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003, -0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000, -0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001, -0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003, -0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000, -0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003, -0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003, -0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000, -0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000, -0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF, -0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB, -0x40000000, 0xF580C900, 0x00000007, 0x02010800, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, -0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF, -0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF, -0x00000000, 0x00004C40, 0x00000000, 0x00000000, -0x00000007, 0x00000000, 0x00000000, 0x00000000, -0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF, -0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF, -0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000, -0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE, -0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF, -0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, -0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003, -0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, -0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, -0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, -0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, -0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF, -0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF, -0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF, -0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF, -0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF, -0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0, -0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1, -0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3, -0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80, -0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3, -0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3, -0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000, -0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000, -0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF, -0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x1FFF0000, 0x00000002, -0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF, -0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF, -}; -static const unsigned char nmstrtPages[] = { -0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, -0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, -0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, -0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -static const unsigned char namePages[] = { -0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00, -0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, -0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, -0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/src/utility/xlsxread/expat/siphash.h b/src/utility/xlsxread/expat/siphash.h deleted file mode 100644 index 581872df7..000000000 --- a/src/utility/xlsxread/expat/siphash.h +++ /dev/null @@ -1,374 +0,0 @@ -/* ========================================================================== - * siphash.h - SipHash-2-4 in a single header file - * -------------------------------------------------------------------------- - * Derived by William Ahern from the reference implementation[1] published[2] - * by Jean-Philippe Aumasson and Daniel J. Berstein. - * Minimal changes by Sebastian Pipping and Victor Stinner on top, see below. - * Licensed under the CC0 Public Domain Dedication license. - * - * 1. https://www.131002.net/siphash/siphash24.c - * 2. https://www.131002.net/siphash/ - * -------------------------------------------------------------------------- - * HISTORY: - * - * 2017-07-25 (Vadim Zeitlin) - * - Fix use of SIPHASH_MAIN macro - * - * 2017-07-05 (Sebastian Pipping) - * - Use _SIP_ULL macro to not require a C++11 compiler if compiled as C++ - * - Add const qualifiers at two places - * - Ensure <=80 characters line length (assuming tab width 4) - * - * 2017-06-23 (Victor Stinner) - * - Address Win64 compile warnings - * - * 2017-06-18 (Sebastian Pipping) - * - Clarify license note in the header - * - Address C89 issues: - * - Stop using inline keyword (and let compiler decide) - * - Replace _Bool by int - * - Turn macro siphash24 into a function - * - Address invalid conversion (void pointer) by explicit cast - * - Address lack of stdint.h for Visual Studio 2003 to 2008 - * - Always expose sip24_valid (for self-tests) - * - * 2012-11-04 - Born. (William Ahern) - * -------------------------------------------------------------------------- - * USAGE: - * - * SipHash-2-4 takes as input two 64-bit words as the key, some number of - * message bytes, and outputs a 64-bit word as the message digest. This - * implementation employs two data structures: a struct sipkey for - * representing the key, and a struct siphash for representing the hash - * state. - * - * For converting a 16-byte unsigned char array to a key, use either the - * macro sip_keyof or the routine sip_tokey. The former instantiates a - * compound literal key, while the latter requires a key object as a - * parameter. - * - * unsigned char secret[16]; - * arc4random_buf(secret, sizeof secret); - * struct sipkey *key = sip_keyof(secret); - * - * For hashing a message, use either the convenience macro siphash24 or the - * routines sip24_init, sip24_update, and sip24_final. - * - * struct siphash state; - * void *msg; - * size_t len; - * uint64_t hash; - * - * sip24_init(&state, key); - * sip24_update(&state, msg, len); - * hash = sip24_final(&state); - * - * or - * - * hash = siphash24(msg, len, key); - * - * To convert the 64-bit hash value to a canonical 8-byte little-endian - * binary representation, use either the macro sip_binof or the routine - * sip_tobin. The former instantiates and returns a compound literal array, - * while the latter requires an array object as a parameter. - * -------------------------------------------------------------------------- - * NOTES: - * - * o Neither sip_keyof, sip_binof, nor siphash24 will work with compilers - * lacking compound literal support. Instead, you must use the lower-level - * interfaces which take as parameters the temporary state objects. - * - * o Uppercase macros may evaluate parameters more than once. Lowercase - * macros should not exhibit any such side effects. - * ========================================================================== - */ -#ifndef SIPHASH_H -#define SIPHASH_H - -#include /* size_t */ - -#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER < 1600) - /* For vs2003/7.1 up to vs2008/9.0; _MSC_VER 1600 is vs2010/10.0 */ - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; -#else - #include /* uint64_t uint32_t uint8_t */ -#endif - - -/* - * Workaround to not require a C++11 compiler for using ULL suffix - * if this code is included and compiled as C++; related GCC warning is: - * warning: use of C++11 long long integer constant [-Wlong-long] - */ -#define _SIP_ULL(high, low) (((uint64_t)high << 32) | low) - - -#define SIP_ROTL(x, b) (uint64_t)(((x) << (b)) | ( (x) >> (64 - (b)))) - -#define SIP_U32TO8_LE(p, v) \ - (p)[0] = (uint8_t)((v) >> 0); (p)[1] = (uint8_t)((v) >> 8); \ - (p)[2] = (uint8_t)((v) >> 16); (p)[3] = (uint8_t)((v) >> 24); - -#define SIP_U64TO8_LE(p, v) \ - SIP_U32TO8_LE((p) + 0, (uint32_t)((v) >> 0)); \ - SIP_U32TO8_LE((p) + 4, (uint32_t)((v) >> 32)); - -#define SIP_U8TO64_LE(p) \ - (((uint64_t)((p)[0]) << 0) | \ - ((uint64_t)((p)[1]) << 8) | \ - ((uint64_t)((p)[2]) << 16) | \ - ((uint64_t)((p)[3]) << 24) | \ - ((uint64_t)((p)[4]) << 32) | \ - ((uint64_t)((p)[5]) << 40) | \ - ((uint64_t)((p)[6]) << 48) | \ - ((uint64_t)((p)[7]) << 56)) - - -#define SIPHASH_INITIALIZER { 0, 0, 0, 0, { 0 }, 0, 0 } - -struct siphash { - uint64_t v0, v1, v2, v3; - - unsigned char buf[8], *p; - uint64_t c; -}; /* struct siphash */ - - -#define SIP_KEYLEN 16 - -struct sipkey { - uint64_t k[2]; -}; /* struct sipkey */ - -#define sip_keyof(k) sip_tokey(&(struct sipkey){ { 0 } }, (k)) - -static struct sipkey *sip_tokey(struct sipkey *key, const void *src) { - key->k[0] = SIP_U8TO64_LE((const unsigned char *)src); - key->k[1] = SIP_U8TO64_LE((const unsigned char *)src + 8); - return key; -} /* sip_tokey() */ - - -#define sip_binof(v) sip_tobin((unsigned char[8]){ 0 }, (v)) - -static void *sip_tobin(void *dst, uint64_t u64) { - SIP_U64TO8_LE((unsigned char *)dst, u64); - return dst; -} /* sip_tobin() */ - - -static void sip_round(struct siphash *H, const int rounds) { - int i; - - for (i = 0; i < rounds; i++) { - H->v0 += H->v1; - H->v1 = SIP_ROTL(H->v1, 13); - H->v1 ^= H->v0; - H->v0 = SIP_ROTL(H->v0, 32); - - H->v2 += H->v3; - H->v3 = SIP_ROTL(H->v3, 16); - H->v3 ^= H->v2; - - H->v0 += H->v3; - H->v3 = SIP_ROTL(H->v3, 21); - H->v3 ^= H->v0; - - H->v2 += H->v1; - H->v1 = SIP_ROTL(H->v1, 17); - H->v1 ^= H->v2; - H->v2 = SIP_ROTL(H->v2, 32); - } -} /* sip_round() */ - - -static struct siphash *sip24_init(struct siphash *H, - const struct sipkey *key) { - H->v0 = _SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; - H->v1 = _SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; - H->v2 = _SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; - H->v3 = _SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; - - H->p = H->buf; - H->c = 0; - - return H; -} /* sip24_init() */ - - -#define sip_endof(a) (&(a)[sizeof (a) / sizeof *(a)]) - -static struct siphash *sip24_update(struct siphash *H, const void *src, - size_t len) { - const unsigned char *p = (const unsigned char *)src, *pe = p + len; - uint64_t m; - - do { - while (p < pe && H->p < sip_endof(H->buf)) - *H->p++ = *p++; - - if (H->p < sip_endof(H->buf)) - break; - - m = SIP_U8TO64_LE(H->buf); - H->v3 ^= m; - sip_round(H, 2); - H->v0 ^= m; - - H->p = H->buf; - H->c += 8; - } while (p < pe); - - return H; -} /* sip24_update() */ - - -static uint64_t sip24_final(struct siphash *H) { - const char left = (char)(H->p - H->buf); - uint64_t b = (H->c + left) << 56; - - switch (left) { - case 7: b |= (uint64_t)H->buf[6] << 48; - case 6: b |= (uint64_t)H->buf[5] << 40; - case 5: b |= (uint64_t)H->buf[4] << 32; - case 4: b |= (uint64_t)H->buf[3] << 24; - case 3: b |= (uint64_t)H->buf[2] << 16; - case 2: b |= (uint64_t)H->buf[1] << 8; - case 1: b |= (uint64_t)H->buf[0] << 0; - case 0: break; - } - - H->v3 ^= b; - sip_round(H, 2); - H->v0 ^= b; - H->v2 ^= 0xff; - sip_round(H, 4); - - return H->v0 ^ H->v1 ^ H->v2 ^ H->v3; -} /* sip24_final() */ - - -static uint64_t siphash24(const void *src, size_t len, - const struct sipkey *key) { - struct siphash state = SIPHASH_INITIALIZER; - return sip24_final(sip24_update(sip24_init(&state, key), src, len)); -} /* siphash24() */ - - -/* - * SipHash-2-4 output with - * k = 00 01 02 ... - * and - * in = (empty string) - * in = 00 (1 byte) - * in = 00 01 (2 bytes) - * in = 00 01 02 (3 bytes) - * ... - * in = 00 01 02 ... 3e (63 bytes) - */ -static int sip24_valid(void) { - static const unsigned char vectors[64][8] = { - { 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, }, - { 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, }, - { 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, }, - { 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, }, - { 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, }, - { 0x8d, 0xa6, 0x99, 0xcd, 0x64, 0x55, 0x76, 0x18, }, - { 0xce, 0xe3, 0xfe, 0x58, 0x6e, 0x46, 0xc9, 0xcb, }, - { 0x37, 0xd1, 0x01, 0x8b, 0xf5, 0x00, 0x02, 0xab, }, - { 0x62, 0x24, 0x93, 0x9a, 0x79, 0xf5, 0xf5, 0x93, }, - { 0xb0, 0xe4, 0xa9, 0x0b, 0xdf, 0x82, 0x00, 0x9e, }, - { 0xf3, 0xb9, 0xdd, 0x94, 0xc5, 0xbb, 0x5d, 0x7a, }, - { 0xa7, 0xad, 0x6b, 0x22, 0x46, 0x2f, 0xb3, 0xf4, }, - { 0xfb, 0xe5, 0x0e, 0x86, 0xbc, 0x8f, 0x1e, 0x75, }, - { 0x90, 0x3d, 0x84, 0xc0, 0x27, 0x56, 0xea, 0x14, }, - { 0xee, 0xf2, 0x7a, 0x8e, 0x90, 0xca, 0x23, 0xf7, }, - { 0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1, }, - { 0xdb, 0x9b, 0xc2, 0x57, 0x7f, 0xcc, 0x2a, 0x3f, }, - { 0x94, 0x47, 0xbe, 0x2c, 0xf5, 0xe9, 0x9a, 0x69, }, - { 0x9c, 0xd3, 0x8d, 0x96, 0xf0, 0xb3, 0xc1, 0x4b, }, - { 0xbd, 0x61, 0x79, 0xa7, 0x1d, 0xc9, 0x6d, 0xbb, }, - { 0x98, 0xee, 0xa2, 0x1a, 0xf2, 0x5c, 0xd6, 0xbe, }, - { 0xc7, 0x67, 0x3b, 0x2e, 0xb0, 0xcb, 0xf2, 0xd0, }, - { 0x88, 0x3e, 0xa3, 0xe3, 0x95, 0x67, 0x53, 0x93, }, - { 0xc8, 0xce, 0x5c, 0xcd, 0x8c, 0x03, 0x0c, 0xa8, }, - { 0x94, 0xaf, 0x49, 0xf6, 0xc6, 0x50, 0xad, 0xb8, }, - { 0xea, 0xb8, 0x85, 0x8a, 0xde, 0x92, 0xe1, 0xbc, }, - { 0xf3, 0x15, 0xbb, 0x5b, 0xb8, 0x35, 0xd8, 0x17, }, - { 0xad, 0xcf, 0x6b, 0x07, 0x63, 0x61, 0x2e, 0x2f, }, - { 0xa5, 0xc9, 0x1d, 0xa7, 0xac, 0xaa, 0x4d, 0xde, }, - { 0x71, 0x65, 0x95, 0x87, 0x66, 0x50, 0xa2, 0xa6, }, - { 0x28, 0xef, 0x49, 0x5c, 0x53, 0xa3, 0x87, 0xad, }, - { 0x42, 0xc3, 0x41, 0xd8, 0xfa, 0x92, 0xd8, 0x32, }, - { 0xce, 0x7c, 0xf2, 0x72, 0x2f, 0x51, 0x27, 0x71, }, - { 0xe3, 0x78, 0x59, 0xf9, 0x46, 0x23, 0xf3, 0xa7, }, - { 0x38, 0x12, 0x05, 0xbb, 0x1a, 0xb0, 0xe0, 0x12, }, - { 0xae, 0x97, 0xa1, 0x0f, 0xd4, 0x34, 0xe0, 0x15, }, - { 0xb4, 0xa3, 0x15, 0x08, 0xbe, 0xff, 0x4d, 0x31, }, - { 0x81, 0x39, 0x62, 0x29, 0xf0, 0x90, 0x79, 0x02, }, - { 0x4d, 0x0c, 0xf4, 0x9e, 0xe5, 0xd4, 0xdc, 0xca, }, - { 0x5c, 0x73, 0x33, 0x6a, 0x76, 0xd8, 0xbf, 0x9a, }, - { 0xd0, 0xa7, 0x04, 0x53, 0x6b, 0xa9, 0x3e, 0x0e, }, - { 0x92, 0x59, 0x58, 0xfc, 0xd6, 0x42, 0x0c, 0xad, }, - { 0xa9, 0x15, 0xc2, 0x9b, 0xc8, 0x06, 0x73, 0x18, }, - { 0x95, 0x2b, 0x79, 0xf3, 0xbc, 0x0a, 0xa6, 0xd4, }, - { 0xf2, 0x1d, 0xf2, 0xe4, 0x1d, 0x45, 0x35, 0xf9, }, - { 0x87, 0x57, 0x75, 0x19, 0x04, 0x8f, 0x53, 0xa9, }, - { 0x10, 0xa5, 0x6c, 0xf5, 0xdf, 0xcd, 0x9a, 0xdb, }, - { 0xeb, 0x75, 0x09, 0x5c, 0xcd, 0x98, 0x6c, 0xd0, }, - { 0x51, 0xa9, 0xcb, 0x9e, 0xcb, 0xa3, 0x12, 0xe6, }, - { 0x96, 0xaf, 0xad, 0xfc, 0x2c, 0xe6, 0x66, 0xc7, }, - { 0x72, 0xfe, 0x52, 0x97, 0x5a, 0x43, 0x64, 0xee, }, - { 0x5a, 0x16, 0x45, 0xb2, 0x76, 0xd5, 0x92, 0xa1, }, - { 0xb2, 0x74, 0xcb, 0x8e, 0xbf, 0x87, 0x87, 0x0a, }, - { 0x6f, 0x9b, 0xb4, 0x20, 0x3d, 0xe7, 0xb3, 0x81, }, - { 0xea, 0xec, 0xb2, 0xa3, 0x0b, 0x22, 0xa8, 0x7f, }, - { 0x99, 0x24, 0xa4, 0x3c, 0xc1, 0x31, 0x57, 0x24, }, - { 0xbd, 0x83, 0x8d, 0x3a, 0xaf, 0xbf, 0x8d, 0xb7, }, - { 0x0b, 0x1a, 0x2a, 0x32, 0x65, 0xd5, 0x1a, 0xea, }, - { 0x13, 0x50, 0x79, 0xa3, 0x23, 0x1c, 0xe6, 0x60, }, - { 0x93, 0x2b, 0x28, 0x46, 0xe4, 0xd7, 0x06, 0x66, }, - { 0xe1, 0x91, 0x5f, 0x5c, 0xb1, 0xec, 0xa4, 0x6c, }, - { 0xf3, 0x25, 0x96, 0x5c, 0xa1, 0x6d, 0x62, 0x9f, }, - { 0x57, 0x5f, 0xf2, 0x8e, 0x60, 0x38, 0x1b, 0xe5, }, - { 0x72, 0x45, 0x06, 0xeb, 0x4c, 0x32, 0x8a, 0x95, } - }; - unsigned char in[64]; - struct sipkey k; - size_t i; - - sip_tokey(&k, "\000\001\002\003\004\005\006\007\010\011" - "\012\013\014\015\016\017"); - - for (i = 0; i < sizeof in; ++i) { - in[i] = (unsigned char)i; - - if (siphash24(in, i, &k) != SIP_U8TO64_LE(vectors[i])) - return 0; - } - - return 1; -} /* sip24_valid() */ - - -#ifdef SIPHASH_MAIN - -#include - -int main(void) { - const int ok = sip24_valid(); - - if (ok) - puts("OK"); - else - puts("FAIL"); - - return !ok; -} /* main() */ - -#endif /* SIPHASH_MAIN */ - - -#endif /* SIPHASH_H */ diff --git a/src/utility/xlsxread/expat/utf8tab.h b/src/utility/xlsxread/expat/utf8tab.h deleted file mode 100644 index fa0bed6f5..000000000 --- a/src/utility/xlsxread/expat/utf8tab.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -/* 0x80 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x84 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x88 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x8C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x90 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x94 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x98 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x9C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xAC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xBC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xC0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xC4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xC8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xCC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xDC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xE0 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xE4 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xE8 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xEC */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xF0 */ BT_LEAD4, BT_LEAD4, BT_LEAD4, BT_LEAD4, -/* 0xF4 */ BT_LEAD4, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0xF8 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0xFC */ BT_NONXML, BT_NONXML, BT_MALFORM, BT_MALFORM, diff --git a/src/utility/xlsxread/expat/winconfig.h b/src/utility/xlsxread/expat/winconfig.h deleted file mode 100644 index 17fea4689..000000000 --- a/src/utility/xlsxread/expat/winconfig.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef WINCONFIG_H -#define WINCONFIG_H - -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN - -#include -#include - - -#if defined(HAVE_EXPAT_CONFIG_H) /* e.g. MinGW */ -# include -#else /* !defined(HAVE_EXPAT_CONFIG_H) */ - - -#define XML_NS 1 -#define XML_DTD 1 -#define XML_CONTEXT_BYTES 1024 - -/* we will assume all Windows platforms are little endian */ -#define BYTEORDER 1234 - -/* Windows has memmove() available. */ -#define HAVE_MEMMOVE - - -#endif /* !defined(HAVE_EXPAT_CONFIG_H) */ - - -#endif /* ndef WINCONFIG_H */ diff --git a/src/utility/xlsxread/expat/xmlparse.c b/src/utility/xlsxread/expat/xmlparse.c deleted file mode 100644 index 44d97d21b..000000000 --- a/src/utility/xlsxread/expat/xmlparse.c +++ /dev/null @@ -1,7018 +0,0 @@ -/* 8c6b2be7c6281da65ce05218fc15c339f02a811706340824ab596aa86e1fd51a (2.2.4+) - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#if !defined(_GNU_SOURCE) -# define _GNU_SOURCE 1 /* syscall prototype */ -#endif - -#include -#include /* memset(), memcpy() */ -#include -#include /* UINT_MAX */ -#include /* fprintf */ -#include /* getenv */ - -#ifdef _WIN32 -#define getpid GetCurrentProcessId -#else -#include /* gettimeofday() */ -#include /* getpid() */ -#include /* getpid() */ -#include /* O_RDONLY */ -#include -#endif - -#define XML_BUILDING_EXPAT 1 - -#ifdef _WIN32 -#include "winconfig.h" -#else -#include "expat_config.h" -#endif /* ndef _WIN32 */ - -#include "ascii.h" -#include "expat.h" -#include "siphash.h" - - -#ifdef XML_UNICODE -#define XML_ENCODE_MAX XML_UTF16_ENCODE_MAX -#define XmlConvert XmlUtf16Convert -#define XmlGetInternalEncoding XmlGetUtf16InternalEncoding -#define XmlGetInternalEncodingNS XmlGetUtf16InternalEncodingNS -#define XmlEncode XmlUtf16Encode -/* Using pointer subtraction to convert to integer type. */ -#define MUST_CONVERT(enc, s) (!(enc)->isUtf16 || (((char *)(s) - (char *)NULL) & 1)) -typedef unsigned short ICHAR; -#else -#define XML_ENCODE_MAX XML_UTF8_ENCODE_MAX -#define XmlConvert XmlUtf8Convert -#define XmlGetInternalEncoding XmlGetUtf8InternalEncoding -#define XmlGetInternalEncodingNS XmlGetUtf8InternalEncodingNS -#define XmlEncode XmlUtf8Encode -#define MUST_CONVERT(enc, s) (!(enc)->isUtf8) -typedef char ICHAR; -#endif - - -#ifndef XML_NS - -#define XmlInitEncodingNS XmlInitEncoding -#define XmlInitUnknownEncodingNS XmlInitUnknownEncoding -#undef XmlGetInternalEncodingNS -#define XmlGetInternalEncodingNS XmlGetInternalEncoding -#define XmlParseXmlDeclNS XmlParseXmlDecl - -#endif - -#ifdef XML_UNICODE - -#ifdef XML_UNICODE_WCHAR_T -#define XML_T(x) (const wchar_t)x -#define XML_L(x) L ## x -#else -#define XML_T(x) (const unsigned short)x -#define XML_L(x) x -#endif - -#else - -#define XML_T(x) x -#define XML_L(x) x - -#endif - -/* Round up n to be a multiple of sz, where sz is a power of 2. */ -#define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1)) - -/* Handle the case where memmove() doesn't exist. */ -#ifndef HAVE_MEMMOVE -#ifdef HAVE_BCOPY -#define memmove(d,s,l) bcopy((s),(d),(l)) -#else -#error memmove does not exist on this platform, nor is a substitute available -#endif /* HAVE_BCOPY */ -#endif /* HAVE_MEMMOVE */ - -#include "internal.h" -#include "xmltok.h" -#include "xmlrole.h" - -typedef const XML_Char *KEY; - -typedef struct { - KEY name; -} NAMED; - -typedef struct { - NAMED **v; - unsigned char power; - size_t size; - size_t used; - const XML_Memory_Handling_Suite *mem; -} HASH_TABLE; - -static size_t -keylen(KEY s); - -static void -copy_salt_to_sipkey(XML_Parser parser, struct sipkey * key); - -/* For probing (after a collision) we need a step size relative prime - to the hash table size, which is a power of 2. We use double-hashing, - since we can calculate a second hash value cheaply by taking those bits - of the first hash value that were discarded (masked out) when the table - index was calculated: index = hash & mask, where mask = table->size - 1. - We limit the maximum step size to table->size / 4 (mask >> 2) and make - it odd, since odd numbers are always relative prime to a power of 2. -*/ -#define SECOND_HASH(hash, mask, power) \ - ((((hash) & ~(mask)) >> ((power) - 1)) & ((mask) >> 2)) -#define PROBE_STEP(hash, mask, power) \ - ((unsigned char)((SECOND_HASH(hash, mask, power)) | 1)) - -typedef struct { - NAMED **p; - NAMED **end; -} HASH_TABLE_ITER; - -#define INIT_TAG_BUF_SIZE 32 /* must be a multiple of sizeof(XML_Char) */ -#define INIT_DATA_BUF_SIZE 1024 -#define INIT_ATTS_SIZE 16 -#define INIT_ATTS_VERSION 0xFFFFFFFF -#define INIT_BLOCK_SIZE 1024 -#define INIT_BUFFER_SIZE 1024 - -#define EXPAND_SPARE 24 - -typedef struct binding { - struct prefix *prefix; - struct binding *nextTagBinding; - struct binding *prevPrefixBinding; - const struct attribute_id *attId; - XML_Char *uri; - int uriLen; - int uriAlloc; -} BINDING; - -typedef struct prefix { - const XML_Char *name; - BINDING *binding; -} PREFIX; - -typedef struct { - const XML_Char *str; - const XML_Char *localPart; - const XML_Char *prefix; - int strLen; - int uriLen; - int prefixLen; -} TAG_NAME; - -/* TAG represents an open element. - The name of the element is stored in both the document and API - encodings. The memory buffer 'buf' is a separately-allocated - memory area which stores the name. During the XML_Parse()/ - XMLParseBuffer() when the element is open, the memory for the 'raw' - version of the name (in the document encoding) is shared with the - document buffer. If the element is open across calls to - XML_Parse()/XML_ParseBuffer(), the buffer is re-allocated to - contain the 'raw' name as well. - - A parser re-uses these structures, maintaining a list of allocated - TAG objects in a free list. -*/ -typedef struct tag { - struct tag *parent; /* parent of this element */ - const char *rawName; /* tagName in the original encoding */ - int rawNameLength; - TAG_NAME name; /* tagName in the API encoding */ - char *buf; /* buffer for name components */ - char *bufEnd; /* end of the buffer */ - BINDING *bindings; -} TAG; - -typedef struct { - const XML_Char *name; - const XML_Char *textPtr; - int textLen; /* length in XML_Chars */ - int processed; /* # of processed bytes - when suspended */ - const XML_Char *systemId; - const XML_Char *base; - const XML_Char *publicId; - const XML_Char *notation; - XML_Bool open; - XML_Bool is_param; - XML_Bool is_internal; /* true if declared in internal subset outside PE */ -} ENTITY; - -typedef struct { - enum XML_Content_Type type; - enum XML_Content_Quant quant; - const XML_Char * name; - int firstchild; - int lastchild; - int childcnt; - int nextsib; -} CONTENT_SCAFFOLD; - -#define INIT_SCAFFOLD_ELEMENTS 32 - -typedef struct block { - struct block *next; - int size; - XML_Char s[1]; -} BLOCK; - -typedef struct { - BLOCK *blocks; - BLOCK *freeBlocks; - const XML_Char *end; - XML_Char *ptr; - XML_Char *start; - const XML_Memory_Handling_Suite *mem; -} STRING_POOL; - -/* The XML_Char before the name is used to determine whether - an attribute has been specified. */ -typedef struct attribute_id { - XML_Char *name; - PREFIX *prefix; - XML_Bool maybeTokenized; - XML_Bool xmlns; -} ATTRIBUTE_ID; - -typedef struct { - const ATTRIBUTE_ID *id; - XML_Bool isCdata; - const XML_Char *value; -} DEFAULT_ATTRIBUTE; - -typedef struct { - unsigned long version; - unsigned long hash; - const XML_Char *uriName; -} NS_ATT; - -typedef struct { - const XML_Char *name; - PREFIX *prefix; - const ATTRIBUTE_ID *idAtt; - int nDefaultAtts; - int allocDefaultAtts; - DEFAULT_ATTRIBUTE *defaultAtts; -} ELEMENT_TYPE; - -typedef struct { - HASH_TABLE generalEntities; - HASH_TABLE elementTypes; - HASH_TABLE attributeIds; - HASH_TABLE prefixes; - STRING_POOL pool; - STRING_POOL entityValuePool; - /* false once a parameter entity reference has been skipped */ - XML_Bool keepProcessing; - /* true once an internal or external PE reference has been encountered; - this includes the reference to an external subset */ - XML_Bool hasParamEntityRefs; - XML_Bool standalone; -#ifdef XML_DTD - /* indicates if external PE has been read */ - XML_Bool paramEntityRead; - HASH_TABLE paramEntities; -#endif /* XML_DTD */ - PREFIX defaultPrefix; - /* === scaffolding for building content model === */ - XML_Bool in_eldecl; - CONTENT_SCAFFOLD *scaffold; - unsigned contentStringLen; - unsigned scaffSize; - unsigned scaffCount; - int scaffLevel; - int *scaffIndex; -} DTD; - -typedef struct open_internal_entity { - const char *internalEventPtr; - const char *internalEventEndPtr; - struct open_internal_entity *next; - ENTITY *entity; - int startTagLevel; - XML_Bool betweenDecl; /* WFC: PE Between Declarations */ -} OPEN_INTERNAL_ENTITY; - -typedef enum XML_Error PTRCALL Processor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr); - -static Processor prologProcessor; -static Processor prologInitProcessor; -static Processor contentProcessor; -static Processor cdataSectionProcessor; -#ifdef XML_DTD -static Processor ignoreSectionProcessor; -static Processor externalParEntProcessor; -static Processor externalParEntInitProcessor; -static Processor entityValueProcessor; -static Processor entityValueInitProcessor; -#endif /* XML_DTD */ -static Processor epilogProcessor; -static Processor errorProcessor; -static Processor externalEntityInitProcessor; -static Processor externalEntityInitProcessor2; -static Processor externalEntityInitProcessor3; -static Processor externalEntityContentProcessor; -static Processor internalEntityProcessor; - -static enum XML_Error -handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName); -static enum XML_Error -processXmlDecl(XML_Parser parser, int isGeneralTextEntity, - const char *s, const char *next); -static enum XML_Error -initializeEncoding(XML_Parser parser); -static enum XML_Error -doProlog(XML_Parser parser, const ENCODING *enc, const char *s, - const char *end, int tok, const char *next, const char **nextPtr, - XML_Bool haveMore); -static enum XML_Error -processInternalEntity(XML_Parser parser, ENTITY *entity, - XML_Bool betweenDecl); -static enum XML_Error -doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, - const char *start, const char *end, const char **endPtr, - XML_Bool haveMore); -static enum XML_Error -doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr, - const char *end, const char **nextPtr, XML_Bool haveMore); -#ifdef XML_DTD -static enum XML_Error -doIgnoreSection(XML_Parser parser, const ENCODING *, const char **startPtr, - const char *end, const char **nextPtr, XML_Bool haveMore); -#endif /* XML_DTD */ - -static void -freeBindings(XML_Parser parser, BINDING *bindings); -static enum XML_Error -storeAtts(XML_Parser parser, const ENCODING *, const char *s, - TAG_NAME *tagNamePtr, BINDING **bindingsPtr); -static enum XML_Error -addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, - const XML_Char *uri, BINDING **bindingsPtr); -static int -defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, - XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser); -static enum XML_Error -storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata, - const char *, const char *, STRING_POOL *); -static enum XML_Error -appendAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata, - const char *, const char *, STRING_POOL *); -static ATTRIBUTE_ID * -getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static int -setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *); -static enum XML_Error -storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static int -reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end); -static int -reportComment(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static void -reportDefault(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); - -static const XML_Char * getContext(XML_Parser parser); -static XML_Bool -setContext(XML_Parser parser, const XML_Char *context); - -static void FASTCALL normalizePublicId(XML_Char *s); - -static DTD * dtdCreate(const XML_Memory_Handling_Suite *ms); -/* do not call if parentParser != NULL */ -static void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms); -static void -dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms); -static int -dtdCopy(XML_Parser oldParser, - DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms); -static int -copyEntityTable(XML_Parser oldParser, - HASH_TABLE *, STRING_POOL *, const HASH_TABLE *); -static NAMED * -lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize); -static void FASTCALL -hashTableInit(HASH_TABLE *, const XML_Memory_Handling_Suite *ms); -static void FASTCALL hashTableClear(HASH_TABLE *); -static void FASTCALL hashTableDestroy(HASH_TABLE *); -static void FASTCALL -hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *); -static NAMED * FASTCALL hashTableIterNext(HASH_TABLE_ITER *); - -static void FASTCALL -poolInit(STRING_POOL *, const XML_Memory_Handling_Suite *ms); -static void FASTCALL poolClear(STRING_POOL *); -static void FASTCALL poolDestroy(STRING_POOL *); -static XML_Char * -poolAppend(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end); -static XML_Char * -poolStoreString(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end); -static XML_Bool FASTCALL poolGrow(STRING_POOL *pool); -static const XML_Char * FASTCALL -poolCopyString(STRING_POOL *pool, const XML_Char *s); -static const XML_Char * -poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n); -static const XML_Char * FASTCALL -poolAppendString(STRING_POOL *pool, const XML_Char *s); - -static int FASTCALL nextScaffoldPart(XML_Parser parser); -static XML_Content * build_model(XML_Parser parser); -static ELEMENT_TYPE * -getElementType(XML_Parser parser, const ENCODING *enc, - const char *ptr, const char *end); - -static XML_Char *copyString(const XML_Char *s, - const XML_Memory_Handling_Suite *memsuite); - -static unsigned long generate_hash_secret_salt(XML_Parser parser); -static XML_Bool startParsing(XML_Parser parser); - -static XML_Parser -parserCreate(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep, - DTD *dtd); - -static void -parserInit(XML_Parser parser, const XML_Char *encodingName); - -#define poolStart(pool) ((pool)->start) -#define poolEnd(pool) ((pool)->ptr) -#define poolLength(pool) ((pool)->ptr - (pool)->start) -#define poolChop(pool) ((void)--(pool->ptr)) -#define poolLastChar(pool) (((pool)->ptr)[-1]) -#define poolDiscard(pool) ((pool)->ptr = (pool)->start) -#define poolFinish(pool) ((pool)->start = (pool)->ptr) -#define poolAppendChar(pool, c) \ - (((pool)->ptr == (pool)->end && !poolGrow(pool)) \ - ? 0 \ - : ((*((pool)->ptr)++ = c), 1)) - -struct XML_ParserStruct { - /* The first member must be userData so that the XML_GetUserData - macro works. */ - void *m_userData; - void *m_handlerArg; - char *m_buffer; - const XML_Memory_Handling_Suite m_mem; - /* first character to be parsed */ - const char *m_bufferPtr; - /* past last character to be parsed */ - char *m_bufferEnd; - /* allocated end of buffer */ - const char *m_bufferLim; - XML_Index m_parseEndByteIndex; - const char *m_parseEndPtr; - XML_Char *m_dataBuf; - XML_Char *m_dataBufEnd; - XML_StartElementHandler m_startElementHandler; - XML_EndElementHandler m_endElementHandler; - XML_CharacterDataHandler m_characterDataHandler; - XML_ProcessingInstructionHandler m_processingInstructionHandler; - XML_CommentHandler m_commentHandler; - XML_StartCdataSectionHandler m_startCdataSectionHandler; - XML_EndCdataSectionHandler m_endCdataSectionHandler; - XML_DefaultHandler m_defaultHandler; - XML_StartDoctypeDeclHandler m_startDoctypeDeclHandler; - XML_EndDoctypeDeclHandler m_endDoctypeDeclHandler; - XML_UnparsedEntityDeclHandler m_unparsedEntityDeclHandler; - XML_NotationDeclHandler m_notationDeclHandler; - XML_StartNamespaceDeclHandler m_startNamespaceDeclHandler; - XML_EndNamespaceDeclHandler m_endNamespaceDeclHandler; - XML_NotStandaloneHandler m_notStandaloneHandler; - XML_ExternalEntityRefHandler m_externalEntityRefHandler; - XML_Parser m_externalEntityRefHandlerArg; - XML_SkippedEntityHandler m_skippedEntityHandler; - XML_UnknownEncodingHandler m_unknownEncodingHandler; - XML_ElementDeclHandler m_elementDeclHandler; - XML_AttlistDeclHandler m_attlistDeclHandler; - XML_EntityDeclHandler m_entityDeclHandler; - XML_XmlDeclHandler m_xmlDeclHandler; - const ENCODING *m_encoding; - INIT_ENCODING m_initEncoding; - const ENCODING *m_internalEncoding; - const XML_Char *m_protocolEncodingName; - XML_Bool m_ns; - XML_Bool m_ns_triplets; - void *m_unknownEncodingMem; - void *m_unknownEncodingData; - void *m_unknownEncodingHandlerData; - void (XMLCALL *m_unknownEncodingRelease)(void *); - PROLOG_STATE m_prologState; - Processor *m_processor; - enum XML_Error m_errorCode; - const char *m_eventPtr; - const char *m_eventEndPtr; - const char *m_positionPtr; - OPEN_INTERNAL_ENTITY *m_openInternalEntities; - OPEN_INTERNAL_ENTITY *m_freeInternalEntities; - XML_Bool m_defaultExpandInternalEntities; - int m_tagLevel; - ENTITY *m_declEntity; - const XML_Char *m_doctypeName; - const XML_Char *m_doctypeSysid; - const XML_Char *m_doctypePubid; - const XML_Char *m_declAttributeType; - const XML_Char *m_declNotationName; - const XML_Char *m_declNotationPublicId; - ELEMENT_TYPE *m_declElementType; - ATTRIBUTE_ID *m_declAttributeId; - XML_Bool m_declAttributeIsCdata; - XML_Bool m_declAttributeIsId; - DTD *m_dtd; - const XML_Char *m_curBase; - TAG *m_tagStack; - TAG *m_freeTagList; - BINDING *m_inheritedBindings; - BINDING *m_freeBindingList; - int m_attsSize; - int m_nSpecifiedAtts; - int m_idAttIndex; - ATTRIBUTE *m_atts; - NS_ATT *m_nsAtts; - unsigned long m_nsAttsVersion; - unsigned char m_nsAttsPower; -#ifdef XML_ATTR_INFO - XML_AttrInfo *m_attInfo; -#endif - POSITION m_position; - STRING_POOL m_tempPool; - STRING_POOL m_temp2Pool; - char *m_groupConnector; - unsigned int m_groupSize; - XML_Char m_namespaceSeparator; - XML_Parser m_parentParser; - XML_ParsingStatus m_parsingStatus; -#ifdef XML_DTD - XML_Bool m_isParamEntity; - XML_Bool m_useForeignDTD; - enum XML_ParamEntityParsing m_paramEntityParsing; -#endif - unsigned long m_hash_secret_salt; -}; - -#define MALLOC(s) (parser->m_mem.malloc_fcn((s))) -#define REALLOC(p,s) (parser->m_mem.realloc_fcn((p),(s))) -#define FREE(p) (parser->m_mem.free_fcn((p))) - -#define userData (parser->m_userData) -#define handlerArg (parser->m_handlerArg) -#define startElementHandler (parser->m_startElementHandler) -#define endElementHandler (parser->m_endElementHandler) -#define characterDataHandler (parser->m_characterDataHandler) -#define processingInstructionHandler \ - (parser->m_processingInstructionHandler) -#define commentHandler (parser->m_commentHandler) -#define startCdataSectionHandler \ - (parser->m_startCdataSectionHandler) -#define endCdataSectionHandler (parser->m_endCdataSectionHandler) -#define defaultHandler (parser->m_defaultHandler) -#define startDoctypeDeclHandler (parser->m_startDoctypeDeclHandler) -#define endDoctypeDeclHandler (parser->m_endDoctypeDeclHandler) -#define unparsedEntityDeclHandler \ - (parser->m_unparsedEntityDeclHandler) -#define notationDeclHandler (parser->m_notationDeclHandler) -#define startNamespaceDeclHandler \ - (parser->m_startNamespaceDeclHandler) -#define endNamespaceDeclHandler (parser->m_endNamespaceDeclHandler) -#define notStandaloneHandler (parser->m_notStandaloneHandler) -#define externalEntityRefHandler \ - (parser->m_externalEntityRefHandler) -#define externalEntityRefHandlerArg \ - (parser->m_externalEntityRefHandlerArg) -#define internalEntityRefHandler \ - (parser->m_internalEntityRefHandler) -#define skippedEntityHandler (parser->m_skippedEntityHandler) -#define unknownEncodingHandler (parser->m_unknownEncodingHandler) -#define elementDeclHandler (parser->m_elementDeclHandler) -#define attlistDeclHandler (parser->m_attlistDeclHandler) -#define entityDeclHandler (parser->m_entityDeclHandler) -#define xmlDeclHandler (parser->m_xmlDeclHandler) -#define encoding (parser->m_encoding) -#define initEncoding (parser->m_initEncoding) -#define internalEncoding (parser->m_internalEncoding) -#define unknownEncodingMem (parser->m_unknownEncodingMem) -#define unknownEncodingData (parser->m_unknownEncodingData) -#define unknownEncodingHandlerData \ - (parser->m_unknownEncodingHandlerData) -#define unknownEncodingRelease (parser->m_unknownEncodingRelease) -#define protocolEncodingName (parser->m_protocolEncodingName) -#define ns (parser->m_ns) -#define ns_triplets (parser->m_ns_triplets) -#define prologState (parser->m_prologState) -#define processor (parser->m_processor) -#define errorCode (parser->m_errorCode) -#define eventPtr (parser->m_eventPtr) -#define eventEndPtr (parser->m_eventEndPtr) -#define positionPtr (parser->m_positionPtr) -#define position (parser->m_position) -#define openInternalEntities (parser->m_openInternalEntities) -#define freeInternalEntities (parser->m_freeInternalEntities) -#define defaultExpandInternalEntities \ - (parser->m_defaultExpandInternalEntities) -#define tagLevel (parser->m_tagLevel) -#define buffer (parser->m_buffer) -#define bufferPtr (parser->m_bufferPtr) -#define bufferEnd (parser->m_bufferEnd) -#define parseEndByteIndex (parser->m_parseEndByteIndex) -#define parseEndPtr (parser->m_parseEndPtr) -#define bufferLim (parser->m_bufferLim) -#define dataBuf (parser->m_dataBuf) -#define dataBufEnd (parser->m_dataBufEnd) -#define _dtd (parser->m_dtd) -#define curBase (parser->m_curBase) -#define declEntity (parser->m_declEntity) -#define doctypeName (parser->m_doctypeName) -#define doctypeSysid (parser->m_doctypeSysid) -#define doctypePubid (parser->m_doctypePubid) -#define declAttributeType (parser->m_declAttributeType) -#define declNotationName (parser->m_declNotationName) -#define declNotationPublicId (parser->m_declNotationPublicId) -#define declElementType (parser->m_declElementType) -#define declAttributeId (parser->m_declAttributeId) -#define declAttributeIsCdata (parser->m_declAttributeIsCdata) -#define declAttributeIsId (parser->m_declAttributeIsId) -#define freeTagList (parser->m_freeTagList) -#define freeBindingList (parser->m_freeBindingList) -#define inheritedBindings (parser->m_inheritedBindings) -#define tagStack (parser->m_tagStack) -#define atts (parser->m_atts) -#define attsSize (parser->m_attsSize) -#define nSpecifiedAtts (parser->m_nSpecifiedAtts) -#define idAttIndex (parser->m_idAttIndex) -#define nsAtts (parser->m_nsAtts) -#define nsAttsVersion (parser->m_nsAttsVersion) -#define nsAttsPower (parser->m_nsAttsPower) -#define attInfo (parser->m_attInfo) -#define tempPool (parser->m_tempPool) -#define temp2Pool (parser->m_temp2Pool) -#define groupConnector (parser->m_groupConnector) -#define groupSize (parser->m_groupSize) -#define namespaceSeparator (parser->m_namespaceSeparator) -#define parentParser (parser->m_parentParser) -#define ps_parsing (parser->m_parsingStatus.parsing) -#define ps_finalBuffer (parser->m_parsingStatus.finalBuffer) -#ifdef XML_DTD -#define isParamEntity (parser->m_isParamEntity) -#define useForeignDTD (parser->m_useForeignDTD) -#define paramEntityParsing (parser->m_paramEntityParsing) -#endif /* XML_DTD */ -#define hash_secret_salt (parser->m_hash_secret_salt) - -XML_Parser XMLCALL -XML_ParserCreate(const XML_Char *encodingName) -{ - return XML_ParserCreate_MM(encodingName, NULL, NULL); -} - -XML_Parser XMLCALL -XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep) -{ - XML_Char tmp[2]; - *tmp = nsSep; - return XML_ParserCreate_MM(encodingName, NULL, tmp); -} - -static const XML_Char implicitContext[] = { - ASCII_x, ASCII_m, ASCII_l, ASCII_EQUALS, ASCII_h, ASCII_t, ASCII_t, ASCII_p, - ASCII_COLON, ASCII_SLASH, ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w, - ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, ASCII_o, ASCII_r, ASCII_g, - ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, ASCII_SLASH, ASCII_1, ASCII_9, - ASCII_9, ASCII_8, ASCII_SLASH, ASCII_n, ASCII_a, ASCII_m, ASCII_e, - ASCII_s, ASCII_p, ASCII_a, ASCII_c, ASCII_e, '\0' -}; - - - -static unsigned long -ENTROPY_DEBUG(const char * label, unsigned long entropy) { - const char * const EXPAT_ENTROPY_DEBUG = getenv("EXPAT_ENTROPY_DEBUG"); - if (EXPAT_ENTROPY_DEBUG && ! strcmp(EXPAT_ENTROPY_DEBUG, "1")) { - fprintf(stderr, "Entropy: %s --> 0x%0*lx (%lu bytes)\n", - label, - (int)sizeof(entropy) * 2, entropy, - (unsigned long)sizeof(entropy)); - } - return entropy; -} - -static unsigned long -generate_hash_secret_salt(XML_Parser parser) -{ - unsigned long entropy; - - /* Process ID is 0 bits entropy if attacker has local access */ - entropy = rand() ^ getpid(); - - /* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */ - if (sizeof(unsigned long) == 4) { - return ENTROPY_DEBUG("fallback(4)", entropy * 2147483647); - } else { - return ENTROPY_DEBUG("fallback(8)", - entropy * (unsigned long)2305843009213693951ULL); - } -} - -static unsigned long -get_hash_secret_salt(XML_Parser parser) { - if (parser->m_parentParser != NULL) - return get_hash_secret_salt(parser->m_parentParser); - return parser->m_hash_secret_salt; -} - -static XML_Bool /* only valid for root parser */ -startParsing(XML_Parser parser) -{ - /* hash functions must be initialized before setContext() is called */ - if (hash_secret_salt == 0) - hash_secret_salt = rand(); - if (ns) { - /* implicit context only set for root parser, since child - parsers (i.e. external entity parsers) will inherit it - */ - return setContext(parser, implicitContext); - } - return XML_TRUE; -} - -XML_Parser XMLCALL -XML_ParserCreate_MM(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep) -{ - return parserCreate(encodingName, memsuite, nameSep, NULL); -} - -static XML_Parser -parserCreate(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep, - DTD *dtd) -{ - XML_Parser parser; - - if (memsuite) { - XML_Memory_Handling_Suite *mtemp; - parser = (XML_Parser) - memsuite->malloc_fcn(sizeof(struct XML_ParserStruct)); - if (parser != NULL) { - mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); - mtemp->malloc_fcn = memsuite->malloc_fcn; - mtemp->realloc_fcn = memsuite->realloc_fcn; - mtemp->free_fcn = memsuite->free_fcn; - } - } - else { - XML_Memory_Handling_Suite *mtemp; - parser = (XML_Parser)malloc(sizeof(struct XML_ParserStruct)); - if (parser != NULL) { - mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); - mtemp->malloc_fcn = malloc; - mtemp->realloc_fcn = realloc; - mtemp->free_fcn = free; - } - } - - if (!parser) - return parser; - - buffer = NULL; - bufferLim = NULL; - - attsSize = INIT_ATTS_SIZE; - atts = (ATTRIBUTE *)MALLOC(attsSize * sizeof(ATTRIBUTE)); - if (atts == NULL) { - FREE(parser); - return NULL; - } -#ifdef XML_ATTR_INFO - attInfo = (XML_AttrInfo*)MALLOC(attsSize * sizeof(XML_AttrInfo)); - if (attInfo == NULL) { - FREE(atts); - FREE(parser); - return NULL; - } -#endif - dataBuf = (XML_Char *)MALLOC(INIT_DATA_BUF_SIZE * sizeof(XML_Char)); - if (dataBuf == NULL) { - FREE(atts); -#ifdef XML_ATTR_INFO - FREE(attInfo); -#endif - FREE(parser); - return NULL; - } - dataBufEnd = dataBuf + INIT_DATA_BUF_SIZE; - - if (dtd) - _dtd = dtd; - else { - _dtd = dtdCreate(&parser->m_mem); - if (_dtd == NULL) { - FREE(dataBuf); - FREE(atts); -#ifdef XML_ATTR_INFO - FREE(attInfo); -#endif - FREE(parser); - return NULL; - } - } - - freeBindingList = NULL; - freeTagList = NULL; - freeInternalEntities = NULL; - - groupSize = 0; - groupConnector = NULL; - - unknownEncodingHandler = NULL; - unknownEncodingHandlerData = NULL; - - namespaceSeparator = ASCII_EXCL; - ns = XML_FALSE; - ns_triplets = XML_FALSE; - - nsAtts = NULL; - nsAttsVersion = 0; - nsAttsPower = 0; - - protocolEncodingName = NULL; - - poolInit(&tempPool, &(parser->m_mem)); - poolInit(&temp2Pool, &(parser->m_mem)); - parserInit(parser, encodingName); - - if (encodingName && !protocolEncodingName) { - XML_ParserFree(parser); - return NULL; - } - - if (nameSep) { - ns = XML_TRUE; - internalEncoding = XmlGetInternalEncodingNS(); - namespaceSeparator = *nameSep; - } - else { - internalEncoding = XmlGetInternalEncoding(); - } - - return parser; -} - -static void -parserInit(XML_Parser parser, const XML_Char *encodingName) -{ - processor = prologInitProcessor; - XmlPrologStateInit(&prologState); - if (encodingName != NULL) { - protocolEncodingName = copyString(encodingName, &(parser->m_mem)); - } - curBase = NULL; - XmlInitEncoding(&initEncoding, &encoding, 0); - userData = NULL; - handlerArg = NULL; - startElementHandler = NULL; - endElementHandler = NULL; - characterDataHandler = NULL; - processingInstructionHandler = NULL; - commentHandler = NULL; - startCdataSectionHandler = NULL; - endCdataSectionHandler = NULL; - defaultHandler = NULL; - startDoctypeDeclHandler = NULL; - endDoctypeDeclHandler = NULL; - unparsedEntityDeclHandler = NULL; - notationDeclHandler = NULL; - startNamespaceDeclHandler = NULL; - endNamespaceDeclHandler = NULL; - notStandaloneHandler = NULL; - externalEntityRefHandler = NULL; - externalEntityRefHandlerArg = parser; - skippedEntityHandler = NULL; - elementDeclHandler = NULL; - attlistDeclHandler = NULL; - entityDeclHandler = NULL; - xmlDeclHandler = NULL; - bufferPtr = buffer; - bufferEnd = buffer; - parseEndByteIndex = 0; - parseEndPtr = NULL; - declElementType = NULL; - declAttributeId = NULL; - declEntity = NULL; - doctypeName = NULL; - doctypeSysid = NULL; - doctypePubid = NULL; - declAttributeType = NULL; - declNotationName = NULL; - declNotationPublicId = NULL; - declAttributeIsCdata = XML_FALSE; - declAttributeIsId = XML_FALSE; - memset(&position, 0, sizeof(POSITION)); - errorCode = XML_ERROR_NONE; - eventPtr = NULL; - eventEndPtr = NULL; - positionPtr = NULL; - openInternalEntities = NULL; - defaultExpandInternalEntities = XML_TRUE; - tagLevel = 0; - tagStack = NULL; - inheritedBindings = NULL; - nSpecifiedAtts = 0; - unknownEncodingMem = NULL; - unknownEncodingRelease = NULL; - unknownEncodingData = NULL; - parentParser = NULL; - ps_parsing = XML_INITIALIZED; -#ifdef XML_DTD - isParamEntity = XML_FALSE; - useForeignDTD = XML_FALSE; - paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; -#endif - hash_secret_salt = 0; -} - -/* moves list of bindings to freeBindingList */ -static void FASTCALL -moveToFreeBindingList(XML_Parser parser, BINDING *bindings) -{ - while (bindings) { - BINDING *b = bindings; - bindings = bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - } -} - -XML_Bool XMLCALL -XML_ParserReset(XML_Parser parser, const XML_Char *encodingName) -{ - TAG *tStk; - OPEN_INTERNAL_ENTITY *openEntityList; - - if (parser == NULL) - return XML_FALSE; - - if (parentParser) - return XML_FALSE; - /* move tagStack to freeTagList */ - tStk = tagStack; - while (tStk) { - TAG *tag = tStk; - tStk = tStk->parent; - tag->parent = freeTagList; - moveToFreeBindingList(parser, tag->bindings); - tag->bindings = NULL; - freeTagList = tag; - } - /* move openInternalEntities to freeInternalEntities */ - openEntityList = openInternalEntities; - while (openEntityList) { - OPEN_INTERNAL_ENTITY *openEntity = openEntityList; - openEntityList = openEntity->next; - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - moveToFreeBindingList(parser, inheritedBindings); - FREE(unknownEncodingMem); - if (unknownEncodingRelease) - unknownEncodingRelease(unknownEncodingData); - poolClear(&tempPool); - poolClear(&temp2Pool); - FREE((void *)protocolEncodingName); - protocolEncodingName = NULL; - parserInit(parser, encodingName); - dtdReset(_dtd, &parser->m_mem); - return XML_TRUE; -} - -enum XML_Status XMLCALL -XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName) -{ - if (parser == NULL) - return XML_STATUS_ERROR; - /* Block after XML_Parse()/XML_ParseBuffer() has been called. - XXX There's no way for the caller to determine which of the - XXX possible error cases caused the XML_STATUS_ERROR return. - */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return XML_STATUS_ERROR; - - /* Get rid of any previous encoding name */ - FREE((void *)protocolEncodingName); - - if (encodingName == NULL) - /* No new encoding name */ - protocolEncodingName = NULL; - else { - /* Copy the new encoding name into allocated memory */ - protocolEncodingName = copyString(encodingName, &(parser->m_mem)); - if (!protocolEncodingName) - return XML_STATUS_ERROR; - } - return XML_STATUS_OK; -} - -XML_Parser XMLCALL -XML_ExternalEntityParserCreate(XML_Parser oldParser, - const XML_Char *context, - const XML_Char *encodingName) -{ - XML_Parser parser = oldParser; - DTD *newDtd = NULL; - DTD *oldDtd; - XML_StartElementHandler oldStartElementHandler; - XML_EndElementHandler oldEndElementHandler; - XML_CharacterDataHandler oldCharacterDataHandler; - XML_ProcessingInstructionHandler oldProcessingInstructionHandler; - XML_CommentHandler oldCommentHandler; - XML_StartCdataSectionHandler oldStartCdataSectionHandler; - XML_EndCdataSectionHandler oldEndCdataSectionHandler; - XML_DefaultHandler oldDefaultHandler; - XML_UnparsedEntityDeclHandler oldUnparsedEntityDeclHandler; - XML_NotationDeclHandler oldNotationDeclHandler; - XML_StartNamespaceDeclHandler oldStartNamespaceDeclHandler; - XML_EndNamespaceDeclHandler oldEndNamespaceDeclHandler; - XML_NotStandaloneHandler oldNotStandaloneHandler; - XML_ExternalEntityRefHandler oldExternalEntityRefHandler; - XML_SkippedEntityHandler oldSkippedEntityHandler; - XML_UnknownEncodingHandler oldUnknownEncodingHandler; - XML_ElementDeclHandler oldElementDeclHandler; - XML_AttlistDeclHandler oldAttlistDeclHandler; - XML_EntityDeclHandler oldEntityDeclHandler; - XML_XmlDeclHandler oldXmlDeclHandler; - ELEMENT_TYPE * oldDeclElementType; - - void *oldUserData; - void *oldHandlerArg; - XML_Bool oldDefaultExpandInternalEntities; - XML_Parser oldExternalEntityRefHandlerArg; -#ifdef XML_DTD - enum XML_ParamEntityParsing oldParamEntityParsing; - int oldInEntityValue; -#endif - XML_Bool oldns_triplets; - /* Note that the new parser shares the same hash secret as the old - parser, so that dtdCopy and copyEntityTable can lookup values - from hash tables associated with either parser without us having - to worry which hash secrets each table has. - */ - unsigned long oldhash_secret_salt; - - /* Validate the oldParser parameter before we pull everything out of it */ - if (oldParser == NULL) - return NULL; - - /* Stash the original parser contents on the stack */ - oldDtd = _dtd; - oldStartElementHandler = startElementHandler; - oldEndElementHandler = endElementHandler; - oldCharacterDataHandler = characterDataHandler; - oldProcessingInstructionHandler = processingInstructionHandler; - oldCommentHandler = commentHandler; - oldStartCdataSectionHandler = startCdataSectionHandler; - oldEndCdataSectionHandler = endCdataSectionHandler; - oldDefaultHandler = defaultHandler; - oldUnparsedEntityDeclHandler = unparsedEntityDeclHandler; - oldNotationDeclHandler = notationDeclHandler; - oldStartNamespaceDeclHandler = startNamespaceDeclHandler; - oldEndNamespaceDeclHandler = endNamespaceDeclHandler; - oldNotStandaloneHandler = notStandaloneHandler; - oldExternalEntityRefHandler = externalEntityRefHandler; - oldSkippedEntityHandler = skippedEntityHandler; - oldUnknownEncodingHandler = unknownEncodingHandler; - oldElementDeclHandler = elementDeclHandler; - oldAttlistDeclHandler = attlistDeclHandler; - oldEntityDeclHandler = entityDeclHandler; - oldXmlDeclHandler = xmlDeclHandler; - oldDeclElementType = declElementType; - - oldUserData = userData; - oldHandlerArg = handlerArg; - oldDefaultExpandInternalEntities = defaultExpandInternalEntities; - oldExternalEntityRefHandlerArg = externalEntityRefHandlerArg; -#ifdef XML_DTD - oldParamEntityParsing = paramEntityParsing; - oldInEntityValue = prologState.inEntityValue; -#endif - oldns_triplets = ns_triplets; - /* Note that the new parser shares the same hash secret as the old - parser, so that dtdCopy and copyEntityTable can lookup values - from hash tables associated with either parser without us having - to worry which hash secrets each table has. - */ - oldhash_secret_salt = hash_secret_salt; - -#ifdef XML_DTD - if (!context) - newDtd = oldDtd; -#endif /* XML_DTD */ - - /* Note that the magical uses of the pre-processor to make field - access look more like C++ require that `parser' be overwritten - here. This makes this function more painful to follow than it - would be otherwise. - */ - if (ns) { - XML_Char tmp[2]; - *tmp = namespaceSeparator; - parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); - } - else { - parser = parserCreate(encodingName, &parser->m_mem, NULL, newDtd); - } - - if (!parser) - return NULL; - - startElementHandler = oldStartElementHandler; - endElementHandler = oldEndElementHandler; - characterDataHandler = oldCharacterDataHandler; - processingInstructionHandler = oldProcessingInstructionHandler; - commentHandler = oldCommentHandler; - startCdataSectionHandler = oldStartCdataSectionHandler; - endCdataSectionHandler = oldEndCdataSectionHandler; - defaultHandler = oldDefaultHandler; - unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler; - notationDeclHandler = oldNotationDeclHandler; - startNamespaceDeclHandler = oldStartNamespaceDeclHandler; - endNamespaceDeclHandler = oldEndNamespaceDeclHandler; - notStandaloneHandler = oldNotStandaloneHandler; - externalEntityRefHandler = oldExternalEntityRefHandler; - skippedEntityHandler = oldSkippedEntityHandler; - unknownEncodingHandler = oldUnknownEncodingHandler; - elementDeclHandler = oldElementDeclHandler; - attlistDeclHandler = oldAttlistDeclHandler; - entityDeclHandler = oldEntityDeclHandler; - xmlDeclHandler = oldXmlDeclHandler; - declElementType = oldDeclElementType; - userData = oldUserData; - if (oldUserData == oldHandlerArg) - handlerArg = userData; - else - handlerArg = parser; - if (oldExternalEntityRefHandlerArg != oldParser) - externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg; - defaultExpandInternalEntities = oldDefaultExpandInternalEntities; - ns_triplets = oldns_triplets; - hash_secret_salt = oldhash_secret_salt; - parentParser = oldParser; -#ifdef XML_DTD - paramEntityParsing = oldParamEntityParsing; - prologState.inEntityValue = oldInEntityValue; - if (context) { -#endif /* XML_DTD */ - if (!dtdCopy(oldParser, _dtd, oldDtd, &parser->m_mem) - || !setContext(parser, context)) { - XML_ParserFree(parser); - return NULL; - } - processor = externalEntityInitProcessor; -#ifdef XML_DTD - } - else { - /* The DTD instance referenced by _dtd is shared between the document's - root parser and external PE parsers, therefore one does not need to - call setContext. In addition, one also *must* not call setContext, - because this would overwrite existing prefix->binding pointers in - _dtd with ones that get destroyed with the external PE parser. - This would leave those prefixes with dangling pointers. - */ - isParamEntity = XML_TRUE; - XmlPrologStateInitExternalEntity(&prologState); - processor = externalParEntInitProcessor; - } -#endif /* XML_DTD */ - return parser; -} - -static void FASTCALL -destroyBindings(BINDING *bindings, XML_Parser parser) -{ - for (;;) { - BINDING *b = bindings; - if (!b) - break; - bindings = b->nextTagBinding; - FREE(b->uri); - FREE(b); - } -} - -void XMLCALL -XML_ParserFree(XML_Parser parser) -{ - TAG *tagList; - OPEN_INTERNAL_ENTITY *entityList; - if (parser == NULL) - return; - /* free tagStack and freeTagList */ - tagList = tagStack; - for (;;) { - TAG *p; - if (tagList == NULL) { - if (freeTagList == NULL) - break; - tagList = freeTagList; - freeTagList = NULL; - } - p = tagList; - tagList = tagList->parent; - FREE(p->buf); - destroyBindings(p->bindings, parser); - FREE(p); - } - /* free openInternalEntities and freeInternalEntities */ - entityList = openInternalEntities; - for (;;) { - OPEN_INTERNAL_ENTITY *openEntity; - if (entityList == NULL) { - if (freeInternalEntities == NULL) - break; - entityList = freeInternalEntities; - freeInternalEntities = NULL; - } - openEntity = entityList; - entityList = entityList->next; - FREE(openEntity); - } - - destroyBindings(freeBindingList, parser); - destroyBindings(inheritedBindings, parser); - poolDestroy(&tempPool); - poolDestroy(&temp2Pool); - FREE((void *)protocolEncodingName); -#ifdef XML_DTD - /* external parameter entity parsers share the DTD structure - parser->m_dtd with the root parser, so we must not destroy it - */ - if (!isParamEntity && _dtd) -#else - if (_dtd) -#endif /* XML_DTD */ - dtdDestroy(_dtd, (XML_Bool)!parentParser, &parser->m_mem); - FREE((void *)atts); -#ifdef XML_ATTR_INFO - FREE((void *)attInfo); -#endif - FREE(groupConnector); - FREE(buffer); - FREE(dataBuf); - FREE(nsAtts); - FREE(unknownEncodingMem); - if (unknownEncodingRelease) - unknownEncodingRelease(unknownEncodingData); - FREE(parser); -} - -void XMLCALL -XML_UseParserAsHandlerArg(XML_Parser parser) -{ - if (parser != NULL) - handlerArg = parser; -} - -enum XML_Error XMLCALL -XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD) -{ - if (parser == NULL) - return XML_ERROR_INVALID_ARGUMENT; -#ifdef XML_DTD - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING; - useForeignDTD = useDTD; - return XML_ERROR_NONE; -#else - return XML_ERROR_FEATURE_REQUIRES_XML_DTD; -#endif -} - -void XMLCALL -XML_SetReturnNSTriplet(XML_Parser parser, int do_nst) -{ - if (parser == NULL) - return; - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return; - ns_triplets = do_nst ? XML_TRUE : XML_FALSE; -} - -void XMLCALL -XML_SetUserData(XML_Parser parser, void *p) -{ - if (parser == NULL) - return; - if (handlerArg == userData) - handlerArg = userData = p; - else - userData = p; -} - -enum XML_Status XMLCALL -XML_SetBase(XML_Parser parser, const XML_Char *p) -{ - if (parser == NULL) - return XML_STATUS_ERROR; - if (p) { - p = poolCopyString(&_dtd->pool, p); - if (!p) - return XML_STATUS_ERROR; - curBase = p; - } - else - curBase = NULL; - return XML_STATUS_OK; -} - -const XML_Char * XMLCALL -XML_GetBase(XML_Parser parser) -{ - if (parser == NULL) - return NULL; - return curBase; -} - -int XMLCALL -XML_GetSpecifiedAttributeCount(XML_Parser parser) -{ - if (parser == NULL) - return -1; - return nSpecifiedAtts; -} - -int XMLCALL -XML_GetIdAttributeIndex(XML_Parser parser) -{ - if (parser == NULL) - return -1; - return idAttIndex; -} - -#ifdef XML_ATTR_INFO -const XML_AttrInfo * XMLCALL -XML_GetAttributeInfo(XML_Parser parser) -{ - if (parser == NULL) - return NULL; - return attInfo; -} -#endif - -void XMLCALL -XML_SetElementHandler(XML_Parser parser, - XML_StartElementHandler start, - XML_EndElementHandler end) -{ - if (parser == NULL) - return; - startElementHandler = start; - endElementHandler = end; -} - -void XMLCALL -XML_SetStartElementHandler(XML_Parser parser, - XML_StartElementHandler start) { - if (parser != NULL) - startElementHandler = start; -} - -void XMLCALL -XML_SetEndElementHandler(XML_Parser parser, - XML_EndElementHandler end) { - if (parser != NULL) - endElementHandler = end; -} - -void XMLCALL -XML_SetCharacterDataHandler(XML_Parser parser, - XML_CharacterDataHandler handler) -{ - if (parser != NULL) - characterDataHandler = handler; -} - -void XMLCALL -XML_SetProcessingInstructionHandler(XML_Parser parser, - XML_ProcessingInstructionHandler handler) -{ - if (parser != NULL) - processingInstructionHandler = handler; -} - -void XMLCALL -XML_SetCommentHandler(XML_Parser parser, - XML_CommentHandler handler) -{ - if (parser != NULL) - commentHandler = handler; -} - -void XMLCALL -XML_SetCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start, - XML_EndCdataSectionHandler end) -{ - if (parser == NULL) - return; - startCdataSectionHandler = start; - endCdataSectionHandler = end; -} - -void XMLCALL -XML_SetStartCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start) { - if (parser != NULL) - startCdataSectionHandler = start; -} - -void XMLCALL -XML_SetEndCdataSectionHandler(XML_Parser parser, - XML_EndCdataSectionHandler end) { - if (parser != NULL) - endCdataSectionHandler = end; -} - -void XMLCALL -XML_SetDefaultHandler(XML_Parser parser, - XML_DefaultHandler handler) -{ - if (parser == NULL) - return; - defaultHandler = handler; - defaultExpandInternalEntities = XML_FALSE; -} - -void XMLCALL -XML_SetDefaultHandlerExpand(XML_Parser parser, - XML_DefaultHandler handler) -{ - if (parser == NULL) - return; - defaultHandler = handler; - defaultExpandInternalEntities = XML_TRUE; -} - -void XMLCALL -XML_SetDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start, - XML_EndDoctypeDeclHandler end) -{ - if (parser == NULL) - return; - startDoctypeDeclHandler = start; - endDoctypeDeclHandler = end; -} - -void XMLCALL -XML_SetStartDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start) { - if (parser != NULL) - startDoctypeDeclHandler = start; -} - -void XMLCALL -XML_SetEndDoctypeDeclHandler(XML_Parser parser, - XML_EndDoctypeDeclHandler end) { - if (parser != NULL) - endDoctypeDeclHandler = end; -} - -void XMLCALL -XML_SetUnparsedEntityDeclHandler(XML_Parser parser, - XML_UnparsedEntityDeclHandler handler) -{ - if (parser != NULL) - unparsedEntityDeclHandler = handler; -} - -void XMLCALL -XML_SetNotationDeclHandler(XML_Parser parser, - XML_NotationDeclHandler handler) -{ - if (parser != NULL) - notationDeclHandler = handler; -} - -void XMLCALL -XML_SetNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start, - XML_EndNamespaceDeclHandler end) -{ - if (parser == NULL) - return; - startNamespaceDeclHandler = start; - endNamespaceDeclHandler = end; -} - -void XMLCALL -XML_SetStartNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start) { - if (parser != NULL) - startNamespaceDeclHandler = start; -} - -void XMLCALL -XML_SetEndNamespaceDeclHandler(XML_Parser parser, - XML_EndNamespaceDeclHandler end) { - if (parser != NULL) - endNamespaceDeclHandler = end; -} - -void XMLCALL -XML_SetNotStandaloneHandler(XML_Parser parser, - XML_NotStandaloneHandler handler) -{ - if (parser != NULL) - notStandaloneHandler = handler; -} - -void XMLCALL -XML_SetExternalEntityRefHandler(XML_Parser parser, - XML_ExternalEntityRefHandler handler) -{ - if (parser != NULL) - externalEntityRefHandler = handler; -} - -void XMLCALL -XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg) -{ - if (parser == NULL) - return; - if (arg) - externalEntityRefHandlerArg = (XML_Parser)arg; - else - externalEntityRefHandlerArg = parser; -} - -void XMLCALL -XML_SetSkippedEntityHandler(XML_Parser parser, - XML_SkippedEntityHandler handler) -{ - if (parser != NULL) - skippedEntityHandler = handler; -} - -void XMLCALL -XML_SetUnknownEncodingHandler(XML_Parser parser, - XML_UnknownEncodingHandler handler, - void *data) -{ - if (parser == NULL) - return; - unknownEncodingHandler = handler; - unknownEncodingHandlerData = data; -} - -void XMLCALL -XML_SetElementDeclHandler(XML_Parser parser, - XML_ElementDeclHandler eldecl) -{ - if (parser != NULL) - elementDeclHandler = eldecl; -} - -void XMLCALL -XML_SetAttlistDeclHandler(XML_Parser parser, - XML_AttlistDeclHandler attdecl) -{ - if (parser != NULL) - attlistDeclHandler = attdecl; -} - -void XMLCALL -XML_SetEntityDeclHandler(XML_Parser parser, - XML_EntityDeclHandler handler) -{ - if (parser != NULL) - entityDeclHandler = handler; -} - -void XMLCALL -XML_SetXmlDeclHandler(XML_Parser parser, - XML_XmlDeclHandler handler) { - if (parser != NULL) - xmlDeclHandler = handler; -} - -int XMLCALL -XML_SetParamEntityParsing(XML_Parser parser, - enum XML_ParamEntityParsing peParsing) -{ - if (parser == NULL) - return 0; - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return 0; -#ifdef XML_DTD - paramEntityParsing = peParsing; - return 1; -#else - return peParsing == XML_PARAM_ENTITY_PARSING_NEVER; -#endif -} - -int XMLCALL -XML_SetHashSalt(XML_Parser parser, - unsigned long hash_salt) -{ - if (parser == NULL) - return 0; - if (parser->m_parentParser) - return XML_SetHashSalt(parser->m_parentParser, hash_salt); - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return 0; - hash_secret_salt = hash_salt; - return 1; -} - -enum XML_Status XMLCALL -XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) -{ - if ((parser == NULL) || (len < 0) || ((s == NULL) && (len != 0))) { - if (parser != NULL) - parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; - return XML_STATUS_ERROR; - } - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - case XML_INITIALIZED: - if (parentParser == NULL && !startParsing(parser)) { - errorCode = XML_ERROR_NO_MEMORY; - return XML_STATUS_ERROR; - } - default: - ps_parsing = XML_PARSING; - } - - if (len == 0) { - ps_finalBuffer = (XML_Bool)isFinal; - if (!isFinal) - return XML_STATUS_OK; - positionPtr = bufferPtr; - parseEndPtr = bufferEnd; - - /* If data are left over from last buffer, and we now know that these - data are the final chunk of input, then we have to check them again - to detect errors based on that fact. - */ - errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr); - - if (errorCode == XML_ERROR_NONE) { - switch (ps_parsing) { - case XML_SUSPENDED: - /* It is hard to be certain, but it seems that this case - * cannot occur. This code is cleaning up a previous parse - * with no new data (since len == 0). Changing the parsing - * state requires getting to execute a handler function, and - * there doesn't seem to be an opportunity for that while in - * this circumstance. - * - * Given the uncertainty, we retain the code but exclude it - * from coverage tests. - * - * LCOV_EXCL_START - */ - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return XML_STATUS_SUSPENDED; - /* LCOV_EXCL_STOP */ - case XML_INITIALIZED: - case XML_PARSING: - ps_parsing = XML_FINISHED; - /* fall through */ - default: - return XML_STATUS_OK; - } - } - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } -#ifndef XML_CONTEXT_BYTES - else if (bufferPtr == bufferEnd) { - const char *end; - int nLeftOver; - enum XML_Status result; - /* Detect overflow (a+b > MAX <==> b > MAX-a) */ - if (len > ((XML_Size)-1) / 2 - parseEndByteIndex) { - errorCode = XML_ERROR_NO_MEMORY; - eventPtr = eventEndPtr = NULL; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - parseEndByteIndex += len; - positionPtr = s; - ps_finalBuffer = (XML_Bool)isFinal; - - errorCode = processor(parser, s, parseEndPtr = s + len, &end); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (isFinal) { - ps_parsing = XML_FINISHED; - return XML_STATUS_OK; - } - /* fall through */ - default: - result = XML_STATUS_OK; - } - } - - XmlUpdatePosition(encoding, positionPtr, end, &position); - nLeftOver = s + len - end; - if (nLeftOver) { - if (buffer == NULL || nLeftOver > bufferLim - buffer) { - /* avoid _signed_ integer overflow */ - char *temp = NULL; - const int bytesToAllocate = (int)((unsigned)len * 2U); - if (bytesToAllocate > 0) { - temp = (buffer == NULL - ? (char *)MALLOC(bytesToAllocate) - : (char *)REALLOC(buffer, bytesToAllocate)); - } - if (temp == NULL) { - errorCode = XML_ERROR_NO_MEMORY; - eventPtr = eventEndPtr = NULL; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - buffer = temp; - bufferLim = buffer + bytesToAllocate; - } - memcpy(buffer, end, nLeftOver); - } - bufferPtr = buffer; - bufferEnd = buffer + nLeftOver; - positionPtr = bufferPtr; - parseEndPtr = bufferEnd; - eventPtr = bufferPtr; - eventEndPtr = bufferPtr; - return result; - } -#endif /* not defined XML_CONTEXT_BYTES */ - else { - void *buff = XML_GetBuffer(parser, len); - if (buff == NULL) - return XML_STATUS_ERROR; - else { - memcpy(buff, s, len); - return XML_ParseBuffer(parser, len, isFinal); - } - } -} - -enum XML_Status XMLCALL -XML_ParseBuffer(XML_Parser parser, int len, int isFinal) -{ - const char *start; - enum XML_Status result = XML_STATUS_OK; - - if (parser == NULL) - return XML_STATUS_ERROR; - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - case XML_INITIALIZED: - if (parentParser == NULL && !startParsing(parser)) { - errorCode = XML_ERROR_NO_MEMORY; - return XML_STATUS_ERROR; - } - default: - ps_parsing = XML_PARSING; - } - - start = bufferPtr; - positionPtr = start; - bufferEnd += len; - parseEndPtr = bufferEnd; - parseEndByteIndex += len; - ps_finalBuffer = (XML_Bool)isFinal; - - errorCode = processor(parser, start, parseEndPtr, &bufferPtr); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (isFinal) { - ps_parsing = XML_FINISHED; - return result; - } - default: ; /* should not happen */ - } - } - - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return result; -} - -void * XMLCALL -XML_GetBuffer(XML_Parser parser, int len) -{ - if (parser == NULL) - return NULL; - if (len < 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return NULL; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return NULL; - default: ; - } - - if (len > bufferLim - bufferEnd) { -#ifdef XML_CONTEXT_BYTES - int keep; -#endif /* defined XML_CONTEXT_BYTES */ - /* Do not invoke signed arithmetic overflow: */ - int neededSize = (int) ((unsigned)len + (unsigned)(bufferEnd - bufferPtr)); - if (neededSize < 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } -#ifdef XML_CONTEXT_BYTES - keep = (int)(bufferPtr - buffer); - if (keep > XML_CONTEXT_BYTES) - keep = XML_CONTEXT_BYTES; - neededSize += keep; -#endif /* defined XML_CONTEXT_BYTES */ - if (neededSize <= bufferLim - buffer) { -#ifdef XML_CONTEXT_BYTES - if (keep < bufferPtr - buffer) { - int offset = (int)(bufferPtr - buffer) - keep; - memmove(buffer, &buffer[offset], bufferEnd - bufferPtr + keep); - bufferEnd -= offset; - bufferPtr -= offset; - } -#else - memmove(buffer, bufferPtr, bufferEnd - bufferPtr); - bufferEnd = buffer + (bufferEnd - bufferPtr); - bufferPtr = buffer; -#endif /* not defined XML_CONTEXT_BYTES */ - } - else { - char *newBuf; - int bufferSize = (int)(bufferLim - bufferPtr); - if (bufferSize == 0) - bufferSize = INIT_BUFFER_SIZE; - do { - /* Do not invoke signed arithmetic overflow: */ - bufferSize = (int) (2U * (unsigned) bufferSize); - } while (bufferSize < neededSize && bufferSize > 0); - if (bufferSize <= 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } - newBuf = (char *)MALLOC(bufferSize); - if (newBuf == 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } - bufferLim = newBuf + bufferSize; -#ifdef XML_CONTEXT_BYTES - if (bufferPtr) { - int keep = (int)(bufferPtr - buffer); - if (keep > XML_CONTEXT_BYTES) - keep = XML_CONTEXT_BYTES; - memcpy(newBuf, &bufferPtr[-keep], bufferEnd - bufferPtr + keep); - FREE(buffer); - buffer = newBuf; - bufferEnd = buffer + (bufferEnd - bufferPtr) + keep; - bufferPtr = buffer + keep; - } - else { - bufferEnd = newBuf + (bufferEnd - bufferPtr); - bufferPtr = buffer = newBuf; - } -#else - if (bufferPtr) { - memcpy(newBuf, bufferPtr, bufferEnd - bufferPtr); - FREE(buffer); - } - bufferEnd = newBuf + (bufferEnd - bufferPtr); - bufferPtr = buffer = newBuf; -#endif /* not defined XML_CONTEXT_BYTES */ - } - eventPtr = eventEndPtr = NULL; - positionPtr = NULL; - } - return bufferEnd; -} - -enum XML_Status XMLCALL -XML_StopParser(XML_Parser parser, XML_Bool resumable) -{ - if (parser == NULL) - return XML_STATUS_ERROR; - switch (ps_parsing) { - case XML_SUSPENDED: - if (resumable) { - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - } - ps_parsing = XML_FINISHED; - break; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - default: - if (resumable) { -#ifdef XML_DTD - if (isParamEntity) { - errorCode = XML_ERROR_SUSPEND_PE; - return XML_STATUS_ERROR; - } -#endif - ps_parsing = XML_SUSPENDED; - } - else - ps_parsing = XML_FINISHED; - } - return XML_STATUS_OK; -} - -enum XML_Status XMLCALL -XML_ResumeParser(XML_Parser parser) -{ - enum XML_Status result = XML_STATUS_OK; - - if (parser == NULL) - return XML_STATUS_ERROR; - if (ps_parsing != XML_SUSPENDED) { - errorCode = XML_ERROR_NOT_SUSPENDED; - return XML_STATUS_ERROR; - } - ps_parsing = XML_PARSING; - - errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (ps_finalBuffer) { - ps_parsing = XML_FINISHED; - return result; - } - default: ; - } - } - - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return result; -} - -void XMLCALL -XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status) -{ - if (parser == NULL) - return; - assert(status != NULL); - *status = parser->m_parsingStatus; -} - -enum XML_Error XMLCALL -XML_GetErrorCode(XML_Parser parser) -{ - if (parser == NULL) - return XML_ERROR_INVALID_ARGUMENT; - return errorCode; -} - -XML_Index XMLCALL -XML_GetCurrentByteIndex(XML_Parser parser) -{ - if (parser == NULL) - return -1; - if (eventPtr) - return (XML_Index)(parseEndByteIndex - (parseEndPtr - eventPtr)); - return -1; -} - -int XMLCALL -XML_GetCurrentByteCount(XML_Parser parser) -{ - if (parser == NULL) - return 0; - if (eventEndPtr && eventPtr) - return (int)(eventEndPtr - eventPtr); - return 0; -} - -const char * XMLCALL -XML_GetInputContext(XML_Parser parser, int *offset, int *size) -{ -#ifdef XML_CONTEXT_BYTES - if (parser == NULL) - return NULL; - if (eventPtr && buffer) { - if (offset != NULL) - *offset = (int)(eventPtr - buffer); - if (size != NULL) - *size = (int)(bufferEnd - buffer); - return buffer; - } -#else - (void)parser; - (void)offset; - (void)size; -#endif /* defined XML_CONTEXT_BYTES */ - return (char *) 0; -} - -XML_Size XMLCALL -XML_GetCurrentLineNumber(XML_Parser parser) -{ - if (parser == NULL) - return 0; - if (eventPtr && eventPtr >= positionPtr) { - XmlUpdatePosition(encoding, positionPtr, eventPtr, &position); - positionPtr = eventPtr; - } - return position.lineNumber + 1; -} - -XML_Size XMLCALL -XML_GetCurrentColumnNumber(XML_Parser parser) -{ - if (parser == NULL) - return 0; - if (eventPtr && eventPtr >= positionPtr) { - XmlUpdatePosition(encoding, positionPtr, eventPtr, &position); - positionPtr = eventPtr; - } - return position.columnNumber; -} - -void XMLCALL -XML_FreeContentModel(XML_Parser parser, XML_Content *model) -{ - if (parser != NULL) - FREE(model); -} - -void * XMLCALL -XML_MemMalloc(XML_Parser parser, size_t size) -{ - if (parser == NULL) - return NULL; - return MALLOC(size); -} - -void * XMLCALL -XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) -{ - if (parser == NULL) - return NULL; - return REALLOC(ptr, size); -} - -void XMLCALL -XML_MemFree(XML_Parser parser, void *ptr) -{ - if (parser != NULL) - FREE(ptr); -} - -void XMLCALL -XML_DefaultCurrent(XML_Parser parser) -{ - if (parser == NULL) - return; - if (defaultHandler) { - if (openInternalEntities) - reportDefault(parser, - internalEncoding, - openInternalEntities->internalEventPtr, - openInternalEntities->internalEventEndPtr); - else - reportDefault(parser, encoding, eventPtr, eventEndPtr); - } -} - -const XML_LChar * XMLCALL -XML_ErrorString(enum XML_Error code) -{ - static const XML_LChar* const message[] = { - 0, - XML_L("out of memory"), - XML_L("syntax error"), - XML_L("no element found"), - XML_L("not well-formed (invalid token)"), - XML_L("unclosed token"), - XML_L("partial character"), - XML_L("mismatched tag"), - XML_L("duplicate attribute"), - XML_L("junk after document element"), - XML_L("illegal parameter entity reference"), - XML_L("undefined entity"), - XML_L("recursive entity reference"), - XML_L("asynchronous entity"), - XML_L("reference to invalid character number"), - XML_L("reference to binary entity"), - XML_L("reference to external entity in attribute"), - XML_L("XML or text declaration not at start of entity"), - XML_L("unknown encoding"), - XML_L("encoding specified in XML declaration is incorrect"), - XML_L("unclosed CDATA section"), - XML_L("error in processing external entity reference"), - XML_L("document is not standalone"), - XML_L("unexpected parser state - please send a bug report"), - XML_L("entity declared in parameter entity"), - XML_L("requested feature requires XML_DTD support in Expat"), - XML_L("cannot change setting once parsing has begun"), - XML_L("unbound prefix"), - XML_L("must not undeclare prefix"), - XML_L("incomplete markup in parameter entity"), - XML_L("XML declaration not well-formed"), - XML_L("text declaration not well-formed"), - XML_L("illegal character(s) in public id"), - XML_L("parser suspended"), - XML_L("parser not suspended"), - XML_L("parsing aborted"), - XML_L("parsing finished"), - XML_L("cannot suspend in external parameter entity"), - XML_L("reserved prefix (xml) must not be undeclared or bound to another namespace name"), - XML_L("reserved prefix (xmlns) must not be declared or undeclared"), - XML_L("prefix must not be bound to one of the reserved namespace names") - }; - if (code > 0 && code < sizeof(message)/sizeof(message[0])) - return message[code]; - return NULL; -} - -const XML_LChar * XMLCALL -XML_ExpatVersion(void) { - - /* V1 is used to string-ize the version number. However, it would - string-ize the actual version macro *names* unless we get them - substituted before being passed to V1. CPP is defined to expand - a macro, then rescan for more expansions. Thus, we use V2 to expand - the version macros, then CPP will expand the resulting V1() macro - with the correct numerals. */ - /* ### I'm assuming cpp is portable in this respect... */ - -#define V1(a,b,c) XML_L(#a)XML_L(".")XML_L(#b)XML_L(".")XML_L(#c) -#define V2(a,b,c) XML_L("expat_")V1(a,b,c) - - return V2(XML_MAJOR_VERSION, XML_MINOR_VERSION, XML_MICRO_VERSION); - -#undef V1 -#undef V2 -} - -XML_Expat_Version XMLCALL -XML_ExpatVersionInfo(void) -{ - XML_Expat_Version version; - - version.major = XML_MAJOR_VERSION; - version.minor = XML_MINOR_VERSION; - version.micro = XML_MICRO_VERSION; - - return version; -} - -const XML_Feature * XMLCALL -XML_GetFeatureList(void) -{ - static const XML_Feature features[] = { - {XML_FEATURE_SIZEOF_XML_CHAR, XML_L("sizeof(XML_Char)"), - sizeof(XML_Char)}, - {XML_FEATURE_SIZEOF_XML_LCHAR, XML_L("sizeof(XML_LChar)"), - sizeof(XML_LChar)}, -#ifdef XML_UNICODE - {XML_FEATURE_UNICODE, XML_L("XML_UNICODE"), 0}, -#endif -#ifdef XML_UNICODE_WCHAR_T - {XML_FEATURE_UNICODE_WCHAR_T, XML_L("XML_UNICODE_WCHAR_T"), 0}, -#endif -#ifdef XML_DTD - {XML_FEATURE_DTD, XML_L("XML_DTD"), 0}, -#endif -#ifdef XML_CONTEXT_BYTES - {XML_FEATURE_CONTEXT_BYTES, XML_L("XML_CONTEXT_BYTES"), - XML_CONTEXT_BYTES}, -#endif -#ifdef XML_MIN_SIZE - {XML_FEATURE_MIN_SIZE, XML_L("XML_MIN_SIZE"), 0}, -#endif -#ifdef XML_NS - {XML_FEATURE_NS, XML_L("XML_NS"), 0}, -#endif -#ifdef XML_LARGE_SIZE - {XML_FEATURE_LARGE_SIZE, XML_L("XML_LARGE_SIZE"), 0}, -#endif -#ifdef XML_ATTR_INFO - {XML_FEATURE_ATTR_INFO, XML_L("XML_ATTR_INFO"), 0}, -#endif - {XML_FEATURE_END, NULL, 0} - }; - - return features; -} - -/* Initially tag->rawName always points into the parse buffer; - for those TAG instances opened while the current parse buffer was - processed, and not yet closed, we need to store tag->rawName in a more - permanent location, since the parse buffer is about to be discarded. -*/ -static XML_Bool -storeRawNames(XML_Parser parser) -{ - TAG *tag = tagStack; - while (tag) { - int bufSize; - int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1); - char *rawNameBuf = tag->buf + nameLen; - /* Stop if already stored. Since tagStack is a stack, we can stop - at the first entry that has already been copied; everything - below it in the stack is already been accounted for in a - previous call to this function. - */ - if (tag->rawName == rawNameBuf) - break; - /* For re-use purposes we need to ensure that the - size of tag->buf is a multiple of sizeof(XML_Char). - */ - bufSize = nameLen + ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); - if (bufSize > tag->bufEnd - tag->buf) { - char *temp = (char *)REALLOC(tag->buf, bufSize); - if (temp == NULL) - return XML_FALSE; - /* if tag->name.str points to tag->buf (only when namespace - processing is off) then we have to update it - */ - if (tag->name.str == (XML_Char *)tag->buf) - tag->name.str = (XML_Char *)temp; - /* if tag->name.localPart is set (when namespace processing is on) - then update it as well, since it will always point into tag->buf - */ - if (tag->name.localPart) - tag->name.localPart = (XML_Char *)temp + (tag->name.localPart - - (XML_Char *)tag->buf); - tag->buf = temp; - tag->bufEnd = temp + bufSize; - rawNameBuf = temp + nameLen; - } - memcpy(rawNameBuf, tag->rawName, tag->rawNameLength); - tag->rawName = rawNameBuf; - tag = tag->parent; - } - return XML_TRUE; -} - -static enum XML_Error PTRCALL -contentProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doContent(parser, 0, encoding, start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result == XML_ERROR_NONE) { - if (!storeRawNames(parser)) - return XML_ERROR_NO_MEMORY; - } - return result; -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - processor = externalEntityInitProcessor2; - return externalEntityInitProcessor2(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor2(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - const char *next = start; /* XmlContentTok doesn't always set the last arg */ - int tok = XmlContentTok(encoding, start, end, &next); - switch (tok) { - case XML_TOK_BOM: - /* If we are at the end of the buffer, this would cause the next stage, - i.e. externalEntityInitProcessor3, to pass control directly to - doContent (by detecting XML_TOK_NONE) without processing any xml text - declaration - causing the error XML_ERROR_MISPLACED_XML_PI in doContent. - */ - if (next == end && !ps_finalBuffer) { - *endPtr = next; - return XML_ERROR_NONE; - } - start = next; - break; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - eventPtr = start; - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - eventPtr = start; - return XML_ERROR_PARTIAL_CHAR; - } - processor = externalEntityInitProcessor3; - return externalEntityInitProcessor3(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor3(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - int tok; - const char *next = start; /* XmlContentTok doesn't always set the last arg */ - eventPtr = start; - tok = XmlContentTok(encoding, start, end, &next); - eventEndPtr = next; - - switch (tok) { - case XML_TOK_XML_DECL: - { - enum XML_Error result; - result = processXmlDecl(parser, 1, start, next); - if (result != XML_ERROR_NONE) - return result; - switch (ps_parsing) { - case XML_SUSPENDED: - *endPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: - start = next; - } - } - break; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - } - processor = externalEntityContentProcessor; - tagLevel = 1; - return externalEntityContentProcessor(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityContentProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doContent(parser, 1, encoding, start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result == XML_ERROR_NONE) { - if (!storeRawNames(parser)) - return XML_ERROR_NO_MEMORY; - } - return result; -} - -static enum XML_Error -doContent(XML_Parser parser, - int startTagLevel, - const ENCODING *enc, - const char *s, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - /* save one level of indirection */ - DTD * const dtd = _dtd; - - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - *eventPP = s; - - for (;;) { - const char *next = s; /* XmlContentTok doesn't always set the last arg */ - int tok = XmlContentTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_TRAILING_CR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - *eventEndPP = end; - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, end); - /* We are at the end of the final buffer, should we check for - XML_SUSPENDED, XML_FINISHED? - */ - if (startTagLevel == 0) - return XML_ERROR_NO_ELEMENTS; - if (tagLevel != startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - *nextPtr = end; - return XML_ERROR_NONE; - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - if (startTagLevel > 0) { - if (tagLevel != startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_NO_ELEMENTS; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_ENTITY_REF: - { - const XML_Char *name; - ENTITY *entity; - XML_Char ch = (XML_Char) XmlPredefinedEntityName(enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (ch) { - if (characterDataHandler) - characterDataHandler(handlerArg, &ch, 1); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - name = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); - poolDiscard(&dtd->pool); - /* First, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal, - otherwise call the skipped entity or default handler. - */ - if (!dtd->hasParamEntityRefs || dtd->standalone) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) - return XML_ERROR_ENTITY_DECLARED_IN_PE; - } - else if (!entity) { - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - if (entity->open) - return XML_ERROR_RECURSIVE_ENTITY_REF; - if (entity->notation) - return XML_ERROR_BINARY_ENTITY_REF; - if (entity->textPtr) { - enum XML_Error result; - if (!defaultExpandInternalEntities) { - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, entity->name, 0); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - result = processInternalEntity(parser, entity, XML_FALSE); - if (result != XML_ERROR_NONE) - return result; - } - else if (externalEntityRefHandler) { - const XML_Char *context; - entity->open = XML_TRUE; - context = getContext(parser); - entity->open = XML_FALSE; - if (!context) - return XML_ERROR_NO_MEMORY; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - context, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - poolDiscard(&tempPool); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - case XML_TOK_START_TAG_NO_ATTS: - /* fall through */ - case XML_TOK_START_TAG_WITH_ATTS: - { - TAG *tag; - enum XML_Error result; - XML_Char *toPtr; - if (freeTagList) { - tag = freeTagList; - freeTagList = freeTagList->parent; - } - else { - tag = (TAG *)MALLOC(sizeof(TAG)); - if (!tag) - return XML_ERROR_NO_MEMORY; - tag->buf = (char *)MALLOC(INIT_TAG_BUF_SIZE); - if (!tag->buf) { - FREE(tag); - return XML_ERROR_NO_MEMORY; - } - tag->bufEnd = tag->buf + INIT_TAG_BUF_SIZE; - } - tag->bindings = NULL; - tag->parent = tagStack; - tagStack = tag; - tag->name.localPart = NULL; - tag->name.prefix = NULL; - tag->rawName = s + enc->minBytesPerChar; - tag->rawNameLength = XmlNameLength(enc, tag->rawName); - ++tagLevel; - { - const char *rawNameEnd = tag->rawName + tag->rawNameLength; - const char *fromPtr = tag->rawName; - toPtr = (XML_Char *)tag->buf; - for (;;) { - int bufSize; - int convLen; - const enum XML_Convert_Result convert_res = XmlConvert(enc, - &fromPtr, rawNameEnd, - (ICHAR **)&toPtr, (ICHAR *)tag->bufEnd - 1); - convLen = (int)(toPtr - (XML_Char *)tag->buf); - if ((fromPtr >= rawNameEnd) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) { - tag->name.strLen = convLen; - break; - } - bufSize = (int)(tag->bufEnd - tag->buf) << 1; - { - char *temp = (char *)REALLOC(tag->buf, bufSize); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - tag->buf = temp; - tag->bufEnd = temp + bufSize; - toPtr = (XML_Char *)temp + convLen; - } - } - } - tag->name.str = (XML_Char *)tag->buf; - *toPtr = XML_T('\0'); - result = storeAtts(parser, enc, s, &(tag->name), &(tag->bindings)); - if (result) - return result; - if (startElementHandler) - startElementHandler(handlerArg, tag->name.str, - (const XML_Char **)atts); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - poolClear(&tempPool); - break; - } - case XML_TOK_EMPTY_ELEMENT_NO_ATTS: - /* fall through */ - case XML_TOK_EMPTY_ELEMENT_WITH_ATTS: - { - const char *rawName = s + enc->minBytesPerChar; - enum XML_Error result; - BINDING *bindings = NULL; - XML_Bool noElmHandlers = XML_TRUE; - TAG_NAME name; - name.str = poolStoreString(&tempPool, enc, rawName, - rawName + XmlNameLength(enc, rawName)); - if (!name.str) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - result = storeAtts(parser, enc, s, &name, &bindings); - if (result != XML_ERROR_NONE) { - freeBindings(parser, bindings); - return result; - } - poolFinish(&tempPool); - if (startElementHandler) { - startElementHandler(handlerArg, name.str, (const XML_Char **)atts); - noElmHandlers = XML_FALSE; - } - if (endElementHandler) { - if (startElementHandler) - *eventPP = *eventEndPP; - endElementHandler(handlerArg, name.str); - noElmHandlers = XML_FALSE; - } - if (noElmHandlers && defaultHandler) - reportDefault(parser, enc, s, next); - poolClear(&tempPool); - freeBindings(parser, bindings); - } - if (tagLevel == 0) - return epilogProcessor(parser, next, end, nextPtr); - break; - case XML_TOK_END_TAG: - if (tagLevel == startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - else { - int len; - const char *rawName; - TAG *tag = tagStack; - tagStack = tag->parent; - tag->parent = freeTagList; - freeTagList = tag; - rawName = s + enc->minBytesPerChar*2; - len = XmlNameLength(enc, rawName); - if (len != tag->rawNameLength - || memcmp(tag->rawName, rawName, len) != 0) { - *eventPP = rawName; - return XML_ERROR_TAG_MISMATCH; - } - --tagLevel; - if (endElementHandler) { - const XML_Char *localPart; - const XML_Char *prefix; - XML_Char *uri; - localPart = tag->name.localPart; - if (ns && localPart) { - /* localPart and prefix may have been overwritten in - tag->name.str, since this points to the binding->uri - buffer which gets re-used; so we have to add them again - */ - uri = (XML_Char *)tag->name.str + tag->name.uriLen; - /* don't need to check for space - already done in storeAtts() */ - while (*localPart) *uri++ = *localPart++; - prefix = (XML_Char *)tag->name.prefix; - if (ns_triplets && prefix) { - *uri++ = namespaceSeparator; - while (*prefix) *uri++ = *prefix++; - } - *uri = XML_T('\0'); - } - endElementHandler(handlerArg, tag->name.str); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - while (tag->bindings) { - BINDING *b = tag->bindings; - if (endNamespaceDeclHandler) - endNamespaceDeclHandler(handlerArg, b->prefix->name); - tag->bindings = tag->bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - b->prefix->binding = b->prevPrefixBinding; - } - if (tagLevel == 0) - return epilogProcessor(parser, next, end, nextPtr); - } - break; - case XML_TOK_CHAR_REF: - { - int n = XmlCharRefNumber(enc, s); - if (n < 0) - return XML_ERROR_BAD_CHAR_REF; - if (characterDataHandler) { - XML_Char buf[XML_ENCODE_MAX]; - characterDataHandler(handlerArg, buf, XmlEncode(n, (ICHAR *)buf)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_XML_DECL: - return XML_ERROR_MISPLACED_XML_PI; - case XML_TOK_DATA_NEWLINE: - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - case XML_TOK_CDATA_SECT_OPEN: - { - enum XML_Error result; - if (startCdataSectionHandler) - startCdataSectionHandler(handlerArg); -#if 0 - /* Suppose you doing a transformation on a document that involves - changing only the character data. You set up a defaultHandler - and a characterDataHandler. The defaultHandler simply copies - characters through. The characterDataHandler does the - transformation and writes the characters out escaping them as - necessary. This case will fail to work if we leave out the - following two lines (because & and < inside CDATA sections will - be incorrectly escaped). - - However, now we have a start/endCdataSectionHandler, so it seems - easier to let the user deal with this. - */ - else if (characterDataHandler) - characterDataHandler(handlerArg, dataBuf, 0); -#endif - else if (defaultHandler) - reportDefault(parser, enc, s, next); - result = doCdataSection(parser, enc, &next, end, nextPtr, haveMore); - if (result != XML_ERROR_NONE) - return result; - else if (!next) { - processor = cdataSectionProcessor; - return result; - } - } - break; - case XML_TOK_TRAILING_RSQB: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - if (characterDataHandler) { - if (MUST_CONVERT(enc, s)) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd); - characterDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - } - else - characterDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)end - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, end); - /* We are at the end of the final buffer, should we check for - XML_SUSPENDED, XML_FINISHED? - */ - if (startTagLevel == 0) { - *eventPP = end; - return XML_ERROR_NO_ELEMENTS; - } - if (tagLevel != startTagLevel) { - *eventPP = end; - return XML_ERROR_ASYNC_ENTITY; - } - *nextPtr = end; - return XML_ERROR_NONE; - case XML_TOK_DATA_CHARS: - { - XML_CharacterDataHandler charDataHandler = characterDataHandler; - if (charDataHandler) { - if (MUST_CONVERT(enc, s)) { - for (;;) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = s; - charDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) - break; - *eventPP = s; - } - } - else - charDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_PI: - if (!reportProcessingInstruction(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_COMMENT: - if (!reportComment(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - break; - default: - /* All of the tokens produced by XmlContentTok() have their own - * explicit cases, so this default is not strictly necessary. - * However it is a useful safety net, so we retain the code and - * simply exclude it from the coverage tests. - * - * LCOV_EXCL_START - */ - if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - /* LCOV_EXCL_STOP */ - } - *eventPP = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } - /* not reached */ -} - -/* This function does not call free() on the allocated memory, merely - * moving it to the parser's freeBindingList where it can be freed or - * reused as appropriate. - */ -static void -freeBindings(XML_Parser parser, BINDING *bindings) -{ - while (bindings) { - BINDING *b = bindings; - - /* startNamespaceDeclHandler will have been called for this - * binding in addBindings(), so call the end handler now. - */ - if (endNamespaceDeclHandler) - endNamespaceDeclHandler(handlerArg, b->prefix->name); - - bindings = bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - b->prefix->binding = b->prevPrefixBinding; - } -} - -/* Precondition: all arguments must be non-NULL; - Purpose: - - normalize attributes - - check attributes for well-formedness - - generate namespace aware attribute names (URI, prefix) - - build list of attributes for startElementHandler - - default attributes - - process namespace declarations (check and report them) - - generate namespace aware element name (URI, prefix) -*/ -static enum XML_Error -storeAtts(XML_Parser parser, const ENCODING *enc, - const char *attStr, TAG_NAME *tagNamePtr, - BINDING **bindingsPtr) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - ELEMENT_TYPE *elementType; - int nDefaultAtts; - const XML_Char **appAtts; /* the attribute list for the application */ - int attIndex = 0; - int prefixLen; - int i; - int n; - XML_Char *uri; - int nPrefixes = 0; - BINDING *binding; - const XML_Char *localPart; - - /* lookup the element type name */ - elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0); - if (!elementType) { - const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str); - if (!name) - return XML_ERROR_NO_MEMORY; - elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, - sizeof(ELEMENT_TYPE)); - if (!elementType) - return XML_ERROR_NO_MEMORY; - if (ns && !setElementTypePrefix(parser, elementType)) - return XML_ERROR_NO_MEMORY; - } - nDefaultAtts = elementType->nDefaultAtts; - - /* get the attributes from the tokenizer */ - n = XmlGetAttributes(enc, attStr, attsSize, atts); - if (n + nDefaultAtts > attsSize) { - int oldAttsSize = attsSize; - ATTRIBUTE *temp; -#ifdef XML_ATTR_INFO - XML_AttrInfo *temp2; -#endif - attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; - temp = (ATTRIBUTE *)REALLOC((void *)atts, attsSize * sizeof(ATTRIBUTE)); - if (temp == NULL) { - attsSize = oldAttsSize; - return XML_ERROR_NO_MEMORY; - } - atts = temp; -#ifdef XML_ATTR_INFO - temp2 = (XML_AttrInfo *)REALLOC((void *)attInfo, attsSize * sizeof(XML_AttrInfo)); - if (temp2 == NULL) { - attsSize = oldAttsSize; - return XML_ERROR_NO_MEMORY; - } - attInfo = temp2; -#endif - if (n > oldAttsSize) - XmlGetAttributes(enc, attStr, n, atts); - } - - appAtts = (const XML_Char **)atts; - for (i = 0; i < n; i++) { - ATTRIBUTE *currAtt = &atts[i]; -#ifdef XML_ATTR_INFO - XML_AttrInfo *currAttInfo = &attInfo[i]; -#endif - /* add the name and value to the attribute list */ - ATTRIBUTE_ID *attId = getAttributeId(parser, enc, currAtt->name, - currAtt->name - + XmlNameLength(enc, currAtt->name)); - if (!attId) - return XML_ERROR_NO_MEMORY; -#ifdef XML_ATTR_INFO - currAttInfo->nameStart = parseEndByteIndex - (parseEndPtr - currAtt->name); - currAttInfo->nameEnd = currAttInfo->nameStart + - XmlNameLength(enc, currAtt->name); - currAttInfo->valueStart = parseEndByteIndex - - (parseEndPtr - currAtt->valuePtr); - currAttInfo->valueEnd = parseEndByteIndex - (parseEndPtr - currAtt->valueEnd); -#endif - /* Detect duplicate attributes by their QNames. This does not work when - namespace processing is turned on and different prefixes for the same - namespace are used. For this case we have a check further down. - */ - if ((attId->name)[-1]) { - if (enc == encoding) - eventPtr = atts[i].name; - return XML_ERROR_DUPLICATE_ATTRIBUTE; - } - (attId->name)[-1] = 1; - appAtts[attIndex++] = attId->name; - if (!atts[i].normalized) { - enum XML_Error result; - XML_Bool isCdata = XML_TRUE; - - /* figure out whether declared as other than CDATA */ - if (attId->maybeTokenized) { - int j; - for (j = 0; j < nDefaultAtts; j++) { - if (attId == elementType->defaultAtts[j].id) { - isCdata = elementType->defaultAtts[j].isCdata; - break; - } - } - } - - /* normalize the attribute value */ - result = storeAttributeValue(parser, enc, isCdata, - atts[i].valuePtr, atts[i].valueEnd, - &tempPool); - if (result) - return result; - appAtts[attIndex] = poolStart(&tempPool); - poolFinish(&tempPool); - } - else { - /* the value did not need normalizing */ - appAtts[attIndex] = poolStoreString(&tempPool, enc, atts[i].valuePtr, - atts[i].valueEnd); - if (appAtts[attIndex] == 0) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - } - /* handle prefixed attribute names */ - if (attId->prefix) { - if (attId->xmlns) { - /* deal with namespace declarations here */ - enum XML_Error result = addBinding(parser, attId->prefix, attId, - appAtts[attIndex], bindingsPtr); - if (result) - return result; - --attIndex; - } - else { - /* deal with other prefixed names later */ - attIndex++; - nPrefixes++; - (attId->name)[-1] = 2; - } - } - else - attIndex++; - } - - /* set-up for XML_GetSpecifiedAttributeCount and XML_GetIdAttributeIndex */ - nSpecifiedAtts = attIndex; - if (elementType->idAtt && (elementType->idAtt->name)[-1]) { - for (i = 0; i < attIndex; i += 2) - if (appAtts[i] == elementType->idAtt->name) { - idAttIndex = i; - break; - } - } - else - idAttIndex = -1; - - /* do attribute defaulting */ - for (i = 0; i < nDefaultAtts; i++) { - const DEFAULT_ATTRIBUTE *da = elementType->defaultAtts + i; - if (!(da->id->name)[-1] && da->value) { - if (da->id->prefix) { - if (da->id->xmlns) { - enum XML_Error result = addBinding(parser, da->id->prefix, da->id, - da->value, bindingsPtr); - if (result) - return result; - } - else { - (da->id->name)[-1] = 2; - nPrefixes++; - appAtts[attIndex++] = da->id->name; - appAtts[attIndex++] = da->value; - } - } - else { - (da->id->name)[-1] = 1; - appAtts[attIndex++] = da->id->name; - appAtts[attIndex++] = da->value; - } - } - } - appAtts[attIndex] = 0; - - /* expand prefixed attribute names, check for duplicates, - and clear flags that say whether attributes were specified */ - i = 0; - if (nPrefixes) { - int j; /* hash table index */ - unsigned long version = nsAttsVersion; - int nsAttsSize = (int)1 << nsAttsPower; - unsigned char oldNsAttsPower = nsAttsPower; - /* size of hash table must be at least 2 * (# of prefixed attributes) */ - if ((nPrefixes << 1) >> nsAttsPower) { /* true for nsAttsPower = 0 */ - NS_ATT *temp; - /* hash table size must also be a power of 2 and >= 8 */ - while (nPrefixes >> nsAttsPower++); - if (nsAttsPower < 3) - nsAttsPower = 3; - nsAttsSize = (int)1 << nsAttsPower; - temp = (NS_ATT *)REALLOC(nsAtts, nsAttsSize * sizeof(NS_ATT)); - if (!temp) { - /* Restore actual size of memory in nsAtts */ - nsAttsPower = oldNsAttsPower; - return XML_ERROR_NO_MEMORY; - } - nsAtts = temp; - version = 0; /* force re-initialization of nsAtts hash table */ - } - /* using a version flag saves us from initializing nsAtts every time */ - if (!version) { /* initialize version flags when version wraps around */ - version = INIT_ATTS_VERSION; - for (j = nsAttsSize; j != 0; ) - nsAtts[--j].version = version; - } - nsAttsVersion = --version; - - /* expand prefixed names and check for duplicates */ - for (; i < attIndex; i += 2) { - const XML_Char *s = appAtts[i]; - if (s[-1] == 2) { /* prefixed */ - ATTRIBUTE_ID *id; - const BINDING *b; - unsigned long uriHash; - struct siphash sip_state; - struct sipkey sip_key; - - copy_salt_to_sipkey(parser, &sip_key); - sip24_init(&sip_state, &sip_key); - - ((XML_Char *)s)[-1] = 0; /* clear flag */ - id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0); - if (!id || !id->prefix) { - /* This code is walking through the appAtts array, dealing - * with (in this case) a prefixed attribute name. To be in - * the array, the attribute must have already been bound, so - * has to have passed through the hash table lookup once - * already. That implies that an entry for it already - * exists, so the lookup above will return a pointer to - * already allocated memory. There is no opportunaity for - * the allocator to fail, so the condition above cannot be - * fulfilled. - * - * Since it is difficult to be certain that the above - * analysis is complete, we retain the test and merely - * remove the code from coverage tests. - */ - return XML_ERROR_NO_MEMORY; /* LCOV_EXCL_LINE */ - } - b = id->prefix->binding; - if (!b) - return XML_ERROR_UNBOUND_PREFIX; - - for (j = 0; j < b->uriLen; j++) { - const XML_Char c = b->uri[j]; - if (!poolAppendChar(&tempPool, c)) - return XML_ERROR_NO_MEMORY; - } - - sip24_update(&sip_state, b->uri, b->uriLen * sizeof(XML_Char)); - - while (*s++ != XML_T(ASCII_COLON)) - ; - - sip24_update(&sip_state, s, keylen(s) * sizeof(XML_Char)); - - do { /* copies null terminator */ - if (!poolAppendChar(&tempPool, *s)) - return XML_ERROR_NO_MEMORY; - } while (*s++); - - uriHash = (unsigned long)sip24_final(&sip_state); - - { /* Check hash table for duplicate of expanded name (uriName). - Derived from code in lookup(parser, HASH_TABLE *table, ...). - */ - unsigned char step = 0; - unsigned long mask = nsAttsSize - 1; - j = (int)(uriHash & mask); /* index into hash table */ - while (nsAtts[j].version == version) { - /* for speed we compare stored hash values first */ - if (uriHash == nsAtts[j].hash) { - const XML_Char *s1 = poolStart(&tempPool); - const XML_Char *s2 = nsAtts[j].uriName; - /* s1 is null terminated, but not s2 */ - for (; *s1 == *s2 && *s1 != 0; s1++, s2++); - if (*s1 == 0) - return XML_ERROR_DUPLICATE_ATTRIBUTE; - } - if (!step) - step = PROBE_STEP(uriHash, mask, nsAttsPower); - j < step ? (j += nsAttsSize - step) : (j -= step); - } - } - - if (ns_triplets) { /* append namespace separator and prefix */ - tempPool.ptr[-1] = namespaceSeparator; - s = b->prefix->name; - do { - if (!poolAppendChar(&tempPool, *s)) - return XML_ERROR_NO_MEMORY; - } while (*s++); - } - - /* store expanded name in attribute list */ - s = poolStart(&tempPool); - poolFinish(&tempPool); - appAtts[i] = s; - - /* fill empty slot with new version, uriName and hash value */ - nsAtts[j].version = version; - nsAtts[j].hash = uriHash; - nsAtts[j].uriName = s; - - if (!--nPrefixes) { - i += 2; - break; - } - } - else /* not prefixed */ - ((XML_Char *)s)[-1] = 0; /* clear flag */ - } - } - /* clear flags for the remaining attributes */ - for (; i < attIndex; i += 2) - ((XML_Char *)(appAtts[i]))[-1] = 0; - for (binding = *bindingsPtr; binding; binding = binding->nextTagBinding) - binding->attId->name[-1] = 0; - - if (!ns) - return XML_ERROR_NONE; - - /* expand the element type name */ - if (elementType->prefix) { - binding = elementType->prefix->binding; - if (!binding) - return XML_ERROR_UNBOUND_PREFIX; - localPart = tagNamePtr->str; - while (*localPart++ != XML_T(ASCII_COLON)) - ; - } - else if (dtd->defaultPrefix.binding) { - binding = dtd->defaultPrefix.binding; - localPart = tagNamePtr->str; - } - else - return XML_ERROR_NONE; - prefixLen = 0; - if (ns_triplets && binding->prefix->name) { - for (; binding->prefix->name[prefixLen++];) - ; /* prefixLen includes null terminator */ - } - tagNamePtr->localPart = localPart; - tagNamePtr->uriLen = binding->uriLen; - tagNamePtr->prefix = binding->prefix->name; - tagNamePtr->prefixLen = prefixLen; - for (i = 0; localPart[i++];) - ; /* i includes null terminator */ - n = i + binding->uriLen + prefixLen; - if (n > binding->uriAlloc) { - TAG *p; - uri = (XML_Char *)MALLOC((n + EXPAND_SPARE) * sizeof(XML_Char)); - if (!uri) - return XML_ERROR_NO_MEMORY; - binding->uriAlloc = n + EXPAND_SPARE; - memcpy(uri, binding->uri, binding->uriLen * sizeof(XML_Char)); - for (p = tagStack; p; p = p->parent) - if (p->name.str == binding->uri) - p->name.str = uri; - FREE(binding->uri); - binding->uri = uri; - } - /* if namespaceSeparator != '\0' then uri includes it already */ - uri = binding->uri + binding->uriLen; - memcpy(uri, localPart, i * sizeof(XML_Char)); - /* we always have a namespace separator between localPart and prefix */ - if (prefixLen) { - uri += i - 1; - *uri = namespaceSeparator; /* replace null terminator */ - memcpy(uri + 1, binding->prefix->name, prefixLen * sizeof(XML_Char)); - } - tagNamePtr->str = binding->uri; - return XML_ERROR_NONE; -} - -/* addBinding() overwrites the value of prefix->binding without checking. - Therefore one must keep track of the old value outside of addBinding(). -*/ -static enum XML_Error -addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, - const XML_Char *uri, BINDING **bindingsPtr) -{ - static const XML_Char xmlNamespace[] = { - ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH, - ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, - ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, - ASCII_SLASH, ASCII_1, ASCII_9, ASCII_9, ASCII_8, ASCII_SLASH, - ASCII_n, ASCII_a, ASCII_m, ASCII_e, ASCII_s, ASCII_p, ASCII_a, ASCII_c, - ASCII_e, '\0' - }; - static const int xmlLen = - (int)sizeof(xmlNamespace)/sizeof(XML_Char) - 1; - static const XML_Char xmlnsNamespace[] = { - ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH, - ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, - ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_2, ASCII_0, ASCII_0, - ASCII_0, ASCII_SLASH, ASCII_x, ASCII_m, ASCII_l, ASCII_n, ASCII_s, - ASCII_SLASH, '\0' - }; - static const int xmlnsLen = - (int)sizeof(xmlnsNamespace)/sizeof(XML_Char) - 1; - - XML_Bool mustBeXML = XML_FALSE; - XML_Bool isXML = XML_TRUE; - XML_Bool isXMLNS = XML_TRUE; - - BINDING *b; - int len; - - /* empty URI is only valid for default namespace per XML NS 1.0 (not 1.1) */ - if (*uri == XML_T('\0') && prefix->name) - return XML_ERROR_UNDECLARING_PREFIX; - - if (prefix->name - && prefix->name[0] == XML_T(ASCII_x) - && prefix->name[1] == XML_T(ASCII_m) - && prefix->name[2] == XML_T(ASCII_l)) { - - /* Not allowed to bind xmlns */ - if (prefix->name[3] == XML_T(ASCII_n) - && prefix->name[4] == XML_T(ASCII_s) - && prefix->name[5] == XML_T('\0')) - return XML_ERROR_RESERVED_PREFIX_XMLNS; - - if (prefix->name[3] == XML_T('\0')) - mustBeXML = XML_TRUE; - } - - for (len = 0; uri[len]; len++) { - if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len])) - isXML = XML_FALSE; - - if (!mustBeXML && isXMLNS - && (len > xmlnsLen || uri[len] != xmlnsNamespace[len])) - isXMLNS = XML_FALSE; - } - isXML = isXML && len == xmlLen; - isXMLNS = isXMLNS && len == xmlnsLen; - - if (mustBeXML != isXML) - return mustBeXML ? XML_ERROR_RESERVED_PREFIX_XML - : XML_ERROR_RESERVED_NAMESPACE_URI; - - if (isXMLNS) - return XML_ERROR_RESERVED_NAMESPACE_URI; - - if (namespaceSeparator) - len++; - if (freeBindingList) { - b = freeBindingList; - if (len > b->uriAlloc) { - XML_Char *temp = (XML_Char *)REALLOC(b->uri, - sizeof(XML_Char) * (len + EXPAND_SPARE)); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - b->uri = temp; - b->uriAlloc = len + EXPAND_SPARE; - } - freeBindingList = b->nextTagBinding; - } - else { - b = (BINDING *)MALLOC(sizeof(BINDING)); - if (!b) - return XML_ERROR_NO_MEMORY; - b->uri = (XML_Char *)MALLOC(sizeof(XML_Char) * (len + EXPAND_SPARE)); - if (!b->uri) { - FREE(b); - return XML_ERROR_NO_MEMORY; - } - b->uriAlloc = len + EXPAND_SPARE; - } - b->uriLen = len; - memcpy(b->uri, uri, len * sizeof(XML_Char)); - if (namespaceSeparator) - b->uri[len - 1] = namespaceSeparator; - b->prefix = prefix; - b->attId = attId; - b->prevPrefixBinding = prefix->binding; - /* NULL binding when default namespace undeclared */ - if (*uri == XML_T('\0') && prefix == &_dtd->defaultPrefix) - prefix->binding = NULL; - else - prefix->binding = b; - b->nextTagBinding = *bindingsPtr; - *bindingsPtr = b; - /* if attId == NULL then we are not starting a namespace scope */ - if (attId && startNamespaceDeclHandler) - startNamespaceDeclHandler(handlerArg, prefix->name, - prefix->binding ? uri : 0); - return XML_ERROR_NONE; -} - -/* The idea here is to avoid using stack for each CDATA section when - the whole file is parsed with one call. -*/ -static enum XML_Error PTRCALL -cdataSectionProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doCdataSection(parser, encoding, &start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result != XML_ERROR_NONE) - return result; - if (start) { - if (parentParser) { /* we are parsing an external entity */ - processor = externalEntityContentProcessor; - return externalEntityContentProcessor(parser, start, end, endPtr); - } - else { - processor = contentProcessor; - return contentProcessor(parser, start, end, endPtr); - } - } - return result; -} - -/* startPtr gets set to non-null if the section is closed, and to null if - the section is not yet closed. -*/ -static enum XML_Error -doCdataSection(XML_Parser parser, - const ENCODING *enc, - const char **startPtr, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - const char *s = *startPtr; - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - *eventPP = s; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - *eventPP = s; - *startPtr = NULL; - - for (;;) { - const char *next; - int tok = XmlCdataSectionTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_CDATA_SECT_CLOSE: - if (endCdataSectionHandler) - endCdataSectionHandler(handlerArg); -#if 0 - /* see comment under XML_TOK_CDATA_SECT_OPEN */ - else if (characterDataHandler) - characterDataHandler(handlerArg, dataBuf, 0); -#endif - else if (defaultHandler) - reportDefault(parser, enc, s, next); - *startPtr = next; - *nextPtr = next; - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - else - return XML_ERROR_NONE; - case XML_TOK_DATA_NEWLINE: - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - case XML_TOK_DATA_CHARS: - { - XML_CharacterDataHandler charDataHandler = characterDataHandler; - if (charDataHandler) { - if (MUST_CONVERT(enc, s)) { - for (;;) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = next; - charDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) - break; - *eventPP = s; - } - } - else - charDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_PARTIAL: - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_CDATA_SECTION; - default: - /* Every token returned by XmlCdataSectionTok() has its own - * explicit case, so this default case will never be executed. - * We retain it as a safety net and exclude it from the coverage - * statistics. - * - * LCOV_EXCL_START - */ - *eventPP = next; - return XML_ERROR_UNEXPECTED_STATE; - /* LCOV_EXCL_STOP */ - } - - *eventPP = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } - /* not reached */ -} - -#ifdef XML_DTD - -/* The idea here is to avoid using stack for each IGNORE section when - the whole file is parsed with one call. -*/ -static enum XML_Error PTRCALL -ignoreSectionProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doIgnoreSection(parser, encoding, &start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result != XML_ERROR_NONE) - return result; - if (start) { - processor = prologProcessor; - return prologProcessor(parser, start, end, endPtr); - } - return result; -} - -/* startPtr gets set to non-null is the section is closed, and to null - if the section is not yet closed. -*/ -static enum XML_Error -doIgnoreSection(XML_Parser parser, - const ENCODING *enc, - const char **startPtr, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - const char *next; - int tok; - const char *s = *startPtr; - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - *eventPP = s; - eventEndPP = &eventEndPtr; - } - else { - /* It's not entirely clear, but it seems the following two lines - * of code cannot be executed. The only occasions on which 'enc' - * is not 'parser->m_encoding' are when this function is called - * from the internal entity processing, and IGNORE sections are an - * error in internal entities. - * - * Since it really isn't clear that this is true, we keep the code - * and just remove it from our coverage tests. - * - * LCOV_EXCL_START - */ - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - /* LCOV_EXCL_STOP */ - } - *eventPP = s; - *startPtr = NULL; - tok = XmlIgnoreSectionTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_IGNORE_SECT: - if (defaultHandler) - reportDefault(parser, enc, s, next); - *startPtr = next; - *nextPtr = next; - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - else - return XML_ERROR_NONE; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_PARTIAL: - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_SYNTAX; /* XML_ERROR_UNCLOSED_IGNORE_SECTION */ - default: - /* All of the tokens that XmlIgnoreSectionTok() returns have - * explicit cases to handle them, so this default case is never - * executed. We keep it as a safety net anyway, and remove it - * from our test coverage statistics. - * - * LCOV_EXCL_START - */ - *eventPP = next; - return XML_ERROR_UNEXPECTED_STATE; - /* LCOV_EXCL_STOP */ - } - /* not reached */ -} - -#endif /* XML_DTD */ - -static enum XML_Error -initializeEncoding(XML_Parser parser) -{ - const char *s; -#ifdef XML_UNICODE - char encodingBuf[128]; - /* See comments abount `protoclEncodingName` in parserInit() */ - if (!protocolEncodingName) - s = NULL; - else { - int i; - for (i = 0; protocolEncodingName[i]; i++) { - if (i == sizeof(encodingBuf) - 1 - || (protocolEncodingName[i] & ~0x7f) != 0) { - encodingBuf[0] = '\0'; - break; - } - encodingBuf[i] = (char)protocolEncodingName[i]; - } - encodingBuf[i] = '\0'; - s = encodingBuf; - } -#else - s = protocolEncodingName; -#endif - if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s)) - return XML_ERROR_NONE; - return handleUnknownEncoding(parser, protocolEncodingName); -} - -static enum XML_Error -processXmlDecl(XML_Parser parser, int isGeneralTextEntity, - const char *s, const char *next) -{ - const char *encodingName = NULL; - const XML_Char *storedEncName = NULL; - const ENCODING *newEncoding = NULL; - const char *version = NULL; - const char *versionend; - const XML_Char *storedversion = NULL; - int standalone = -1; - if (!(ns - ? XmlParseXmlDeclNS - : XmlParseXmlDecl)(isGeneralTextEntity, - encoding, - s, - next, - &eventPtr, - &version, - &versionend, - &encodingName, - &newEncoding, - &standalone)) { - if (isGeneralTextEntity) - return XML_ERROR_TEXT_DECL; - else - return XML_ERROR_XML_DECL; - } - if (!isGeneralTextEntity && standalone == 1) { - _dtd->standalone = XML_TRUE; -#ifdef XML_DTD - if (paramEntityParsing == XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE) - paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; -#endif /* XML_DTD */ - } - if (xmlDeclHandler) { - if (encodingName != NULL) { - storedEncName = poolStoreString(&temp2Pool, - encoding, - encodingName, - encodingName - + XmlNameLength(encoding, encodingName)); - if (!storedEncName) - return XML_ERROR_NO_MEMORY; - poolFinish(&temp2Pool); - } - if (version) { - storedversion = poolStoreString(&temp2Pool, - encoding, - version, - versionend - encoding->minBytesPerChar); - if (!storedversion) - return XML_ERROR_NO_MEMORY; - } - xmlDeclHandler(handlerArg, storedversion, storedEncName, standalone); - } - else if (defaultHandler) - reportDefault(parser, encoding, s, next); - if (protocolEncodingName == NULL) { - if (newEncoding) { - /* Check that the specified encoding does not conflict with what - * the parser has already deduced. Do we have the same number - * of bytes in the smallest representation of a character? If - * this is UTF-16, is it the same endianness? - */ - if (newEncoding->minBytesPerChar != encoding->minBytesPerChar - || (newEncoding->minBytesPerChar == 2 && - newEncoding != encoding)) { - eventPtr = encodingName; - return XML_ERROR_INCORRECT_ENCODING; - } - encoding = newEncoding; - } - else if (encodingName) { - enum XML_Error result; - if (!storedEncName) { - storedEncName = poolStoreString( - &temp2Pool, encoding, encodingName, - encodingName + XmlNameLength(encoding, encodingName)); - if (!storedEncName) - return XML_ERROR_NO_MEMORY; - } - result = handleUnknownEncoding(parser, storedEncName); - poolClear(&temp2Pool); - if (result == XML_ERROR_UNKNOWN_ENCODING) - eventPtr = encodingName; - return result; - } - } - - if (storedEncName || storedversion) - poolClear(&temp2Pool); - - return XML_ERROR_NONE; -} - -static enum XML_Error -handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) -{ - if (unknownEncodingHandler) { - XML_Encoding info; - int i; - for (i = 0; i < 256; i++) - info.map[i] = -1; - info.convert = NULL; - info.data = NULL; - info.release = NULL; - if (unknownEncodingHandler(unknownEncodingHandlerData, encodingName, - &info)) { - ENCODING *enc; - unknownEncodingMem = MALLOC(XmlSizeOfUnknownEncoding()); - if (!unknownEncodingMem) { - if (info.release) - info.release(info.data); - return XML_ERROR_NO_MEMORY; - } - enc = (ns - ? XmlInitUnknownEncodingNS - : XmlInitUnknownEncoding)(unknownEncodingMem, - info.map, - info.convert, - info.data); - if (enc) { - unknownEncodingData = info.data; - unknownEncodingRelease = info.release; - encoding = enc; - return XML_ERROR_NONE; - } - } - if (info.release != NULL) - info.release(info.data); - } - return XML_ERROR_UNKNOWN_ENCODING; -} - -static enum XML_Error PTRCALL -prologInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - processor = prologProcessor; - return prologProcessor(parser, s, end, nextPtr); -} - -#ifdef XML_DTD - -static enum XML_Error PTRCALL -externalParEntInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - - /* we know now that XML_Parse(Buffer) has been called, - so we consider the external parameter entity read */ - _dtd->paramEntityRead = XML_TRUE; - - if (prologState.inEntityValue) { - processor = entityValueInitProcessor; - return entityValueInitProcessor(parser, s, end, nextPtr); - } - else { - processor = externalParEntProcessor; - return externalParEntProcessor(parser, s, end, nextPtr); - } -} - -static enum XML_Error PTRCALL -entityValueInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - int tok; - const char *start = s; - const char *next = start; - eventPtr = start; - - for (;;) { - tok = XmlPrologTok(encoding, start, end, &next); - eventEndPtr = next; - if (tok <= 0) { - if (!ps_finalBuffer && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_NONE: /* start == end */ - default: - break; - } - /* found end of entity value - can store it now */ - return storeEntityValue(parser, encoding, s, end); - } - else if (tok == XML_TOK_XML_DECL) { - enum XML_Error result; - result = processXmlDecl(parser, 0, start, next); - if (result != XML_ERROR_NONE) - return result; - /* At this point, ps_parsing cannot be XML_SUSPENDED. For that - * to happen, a parameter entity parsing handler must have - * attempted to suspend the parser, which fails and raises an - * error. The parser can be aborted, but can't be suspended. - */ - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - *nextPtr = next; - /* stop scanning for text declaration - we found one */ - processor = entityValueProcessor; - return entityValueProcessor(parser, next, end, nextPtr); - } - /* If we are at the end of the buffer, this would cause XmlPrologTok to - return XML_TOK_NONE on the next call, which would then cause the - function to exit with *nextPtr set to s - that is what we want for other - tokens, but not for the BOM - we would rather like to skip it; - then, when this routine is entered the next time, XmlPrologTok will - return XML_TOK_INVALID, since the BOM is still in the buffer - */ - else if (tok == XML_TOK_BOM && next == end && !ps_finalBuffer) { - *nextPtr = next; - return XML_ERROR_NONE; - } - /* If we get this token, we have the start of what might be a - normal tag, but not a declaration (i.e. it doesn't begin with - "internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - - for (;;) { - int role; - XML_Bool handleDefault = XML_TRUE; - *eventPP = s; - *eventEndPP = next; - if (tok <= 0) { - if (haveMore && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case -XML_TOK_PROLOG_S: - tok = -tok; - break; - case XML_TOK_NONE: -#ifdef XML_DTD - /* for internal PE NOT referenced between declarations */ - if (enc != encoding && !openInternalEntities->betweenDecl) { - *nextPtr = s; - return XML_ERROR_NONE; - } - /* WFC: PE Between Declarations - must check that PE contains - complete markup, not only for external PEs, but also for - internal PEs if the reference occurs between declarations. - */ - if (isParamEntity || enc != encoding) { - if (XmlTokenRole(&prologState, XML_TOK_NONE, end, end, enc) - == XML_ROLE_ERROR) - return XML_ERROR_INCOMPLETE_PE; - *nextPtr = s; - return XML_ERROR_NONE; - } -#endif /* XML_DTD */ - return XML_ERROR_NO_ELEMENTS; - default: - tok = -tok; - next = end; - break; - } - } - role = XmlTokenRole(&prologState, tok, s, next, enc); - switch (role) { - case XML_ROLE_XML_DECL: - { - enum XML_Error result = processXmlDecl(parser, 0, s, next); - if (result != XML_ERROR_NONE) - return result; - enc = encoding; - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_DOCTYPE_NAME: - if (startDoctypeDeclHandler) { - doctypeName = poolStoreString(&tempPool, enc, s, next); - if (!doctypeName) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - doctypePubid = NULL; - handleDefault = XML_FALSE; - } - doctypeSysid = NULL; /* always initialize to NULL */ - break; - case XML_ROLE_DOCTYPE_INTERNAL_SUBSET: - if (startDoctypeDeclHandler) { - startDoctypeDeclHandler(handlerArg, doctypeName, doctypeSysid, - doctypePubid, 1); - doctypeName = NULL; - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - break; -#ifdef XML_DTD - case XML_ROLE_TEXT_DECL: - { - enum XML_Error result = processXmlDecl(parser, 1, s, next); - if (result != XML_ERROR_NONE) - return result; - enc = encoding; - handleDefault = XML_FALSE; - } - break; -#endif /* XML_DTD */ - case XML_ROLE_DOCTYPE_PUBLIC_ID: -#ifdef XML_DTD - useForeignDTD = XML_FALSE; - declEntity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; -#endif /* XML_DTD */ - dtd->hasParamEntityRefs = XML_TRUE; - if (startDoctypeDeclHandler) { - XML_Char *pubId; - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - pubId = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!pubId) - return XML_ERROR_NO_MEMORY; - normalizePublicId(pubId); - poolFinish(&tempPool); - doctypePubid = pubId; - handleDefault = XML_FALSE; - goto alreadyChecked; - } - /* fall through */ - case XML_ROLE_ENTITY_PUBLIC_ID: - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - alreadyChecked: - if (dtd->keepProcessing && declEntity) { - XML_Char *tem = poolStoreString(&dtd->pool, - enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!tem) - return XML_ERROR_NO_MEMORY; - normalizePublicId(tem); - declEntity->publicId = tem; - poolFinish(&dtd->pool); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_DOCTYPE_CLOSE: - if (doctypeName) { - startDoctypeDeclHandler(handlerArg, doctypeName, - doctypeSysid, doctypePubid, 0); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - /* doctypeSysid will be non-NULL in the case of a previous - XML_ROLE_DOCTYPE_SYSTEM_ID, even if startDoctypeDeclHandler - was not set, indicating an external subset - */ -#ifdef XML_DTD - if (doctypeSysid || useForeignDTD) { - XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; - dtd->hasParamEntityRefs = XML_TRUE; - if (paramEntityParsing && externalEntityRefHandler) { - ENTITY *entity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!entity) { - /* The external subset name "#" will have already been - * inserted into the hash table at the start of the - * external entity parsing, so no allocation will happen - * and lookup() cannot fail. - */ - return XML_ERROR_NO_MEMORY; /* LCOV_EXCL_LINE */ - } - if (useForeignDTD) - entity->base = curBase; - dtd->paramEntityRead = XML_FALSE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - if (dtd->paramEntityRead) { - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - } - /* if we didn't read the foreign DTD then this means that there - is no external subset and we must reset dtd->hasParamEntityRefs - */ - else if (!doctypeSysid) - dtd->hasParamEntityRefs = hadParamEntityRefs; - /* end of DTD - no need to update dtd->keepProcessing */ - } - useForeignDTD = XML_FALSE; - } -#endif /* XML_DTD */ - if (endDoctypeDeclHandler) { - endDoctypeDeclHandler(handlerArg); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_INSTANCE_START: -#ifdef XML_DTD - /* if there is no DOCTYPE declaration then now is the - last chance to read the foreign DTD - */ - if (useForeignDTD) { - XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; - dtd->hasParamEntityRefs = XML_TRUE; - if (paramEntityParsing && externalEntityRefHandler) { - ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!entity) - return XML_ERROR_NO_MEMORY; - entity->base = curBase; - dtd->paramEntityRead = XML_FALSE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - if (dtd->paramEntityRead) { - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - } - /* if we didn't read the foreign DTD then this means that there - is no external subset and we must reset dtd->hasParamEntityRefs - */ - else - dtd->hasParamEntityRefs = hadParamEntityRefs; - /* end of DTD - no need to update dtd->keepProcessing */ - } - } -#endif /* XML_DTD */ - processor = contentProcessor; - return contentProcessor(parser, s, end, nextPtr); - case XML_ROLE_ATTLIST_ELEMENT_NAME: - declElementType = getElementType(parser, enc, s, next); - if (!declElementType) - return XML_ERROR_NO_MEMORY; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_NAME: - declAttributeId = getAttributeId(parser, enc, s, next); - if (!declAttributeId) - return XML_ERROR_NO_MEMORY; - declAttributeIsCdata = XML_FALSE; - declAttributeType = NULL; - declAttributeIsId = XML_FALSE; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_CDATA: - declAttributeIsCdata = XML_TRUE; - declAttributeType = atypeCDATA; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ID: - declAttributeIsId = XML_TRUE; - declAttributeType = atypeID; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_IDREF: - declAttributeType = atypeIDREF; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_IDREFS: - declAttributeType = atypeIDREFS; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ENTITY: - declAttributeType = atypeENTITY; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ENTITIES: - declAttributeType = atypeENTITIES; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN: - declAttributeType = atypeNMTOKEN; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS: - declAttributeType = atypeNMTOKENS; - checkAttListDeclHandler: - if (dtd->keepProcessing && attlistDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ATTRIBUTE_ENUM_VALUE: - case XML_ROLE_ATTRIBUTE_NOTATION_VALUE: - if (dtd->keepProcessing && attlistDeclHandler) { - const XML_Char *prefix; - if (declAttributeType) { - prefix = enumValueSep; - } - else { - prefix = (role == XML_ROLE_ATTRIBUTE_NOTATION_VALUE - ? notationPrefix - : enumValueStart); - } - if (!poolAppendString(&tempPool, prefix)) - return XML_ERROR_NO_MEMORY; - if (!poolAppend(&tempPool, enc, s, next)) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_IMPLIED_ATTRIBUTE_VALUE: - case XML_ROLE_REQUIRED_ATTRIBUTE_VALUE: - if (dtd->keepProcessing) { - if (!defineAttribute(declElementType, declAttributeId, - declAttributeIsCdata, declAttributeIsId, - 0, parser)) - return XML_ERROR_NO_MEMORY; - if (attlistDeclHandler && declAttributeType) { - if (*declAttributeType == XML_T(ASCII_LPAREN) - || (*declAttributeType == XML_T(ASCII_N) - && declAttributeType[1] == XML_T(ASCII_O))) { - /* Enumerated or Notation type */ - if (!poolAppendChar(&tempPool, XML_T(ASCII_RPAREN)) - || !poolAppendChar(&tempPool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - poolFinish(&tempPool); - } - *eventEndPP = s; - attlistDeclHandler(handlerArg, declElementType->name, - declAttributeId->name, declAttributeType, - 0, role == XML_ROLE_REQUIRED_ATTRIBUTE_VALUE); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_DEFAULT_ATTRIBUTE_VALUE: - case XML_ROLE_FIXED_ATTRIBUTE_VALUE: - if (dtd->keepProcessing) { - const XML_Char *attVal; - enum XML_Error result = - storeAttributeValue(parser, enc, declAttributeIsCdata, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar, - &dtd->pool); - if (result) - return result; - attVal = poolStart(&dtd->pool); - poolFinish(&dtd->pool); - /* ID attributes aren't allowed to have a default */ - if (!defineAttribute(declElementType, declAttributeId, - declAttributeIsCdata, XML_FALSE, attVal, parser)) - return XML_ERROR_NO_MEMORY; - if (attlistDeclHandler && declAttributeType) { - if (*declAttributeType == XML_T(ASCII_LPAREN) - || (*declAttributeType == XML_T(ASCII_N) - && declAttributeType[1] == XML_T(ASCII_O))) { - /* Enumerated or Notation type */ - if (!poolAppendChar(&tempPool, XML_T(ASCII_RPAREN)) - || !poolAppendChar(&tempPool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - poolFinish(&tempPool); - } - *eventEndPP = s; - attlistDeclHandler(handlerArg, declElementType->name, - declAttributeId->name, declAttributeType, - attVal, - role == XML_ROLE_FIXED_ATTRIBUTE_VALUE); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_ENTITY_VALUE: - if (dtd->keepProcessing) { - enum XML_Error result = storeEntityValue(parser, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (declEntity) { - declEntity->textPtr = poolStart(&dtd->entityValuePool); - declEntity->textLen = (int)(poolLength(&dtd->entityValuePool)); - poolFinish(&dtd->entityValuePool); - if (entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - declEntity->is_param, - declEntity->textPtr, - declEntity->textLen, - curBase, 0, 0, 0); - handleDefault = XML_FALSE; - } - } - else - poolDiscard(&dtd->entityValuePool); - if (result != XML_ERROR_NONE) - return result; - } - break; - case XML_ROLE_DOCTYPE_SYSTEM_ID: -#ifdef XML_DTD - useForeignDTD = XML_FALSE; -#endif /* XML_DTD */ - dtd->hasParamEntityRefs = XML_TRUE; - if (startDoctypeDeclHandler) { - doctypeSysid = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (doctypeSysid == NULL) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } -#ifdef XML_DTD - else - /* use externalSubsetName to make doctypeSysid non-NULL - for the case where no startDoctypeDeclHandler is set */ - doctypeSysid = externalSubsetName; -#endif /* XML_DTD */ - if (!dtd->standalone -#ifdef XML_DTD - && !paramEntityParsing -#endif /* XML_DTD */ - && notStandaloneHandler - && !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; -#ifndef XML_DTD - break; -#else /* XML_DTD */ - if (!declEntity) { - declEntity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - declEntity->publicId = NULL; - } - /* fall through */ -#endif /* XML_DTD */ - case XML_ROLE_ENTITY_SYSTEM_ID: - if (dtd->keepProcessing && declEntity) { - declEntity->systemId = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!declEntity->systemId) - return XML_ERROR_NO_MEMORY; - declEntity->base = curBase; - poolFinish(&dtd->pool); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_ENTITY_COMPLETE: - if (dtd->keepProcessing && declEntity && entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - declEntity->is_param, - 0,0, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - 0); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_ENTITY_NOTATION_NAME: - if (dtd->keepProcessing && declEntity) { - declEntity->notation = poolStoreString(&dtd->pool, enc, s, next); - if (!declEntity->notation) - return XML_ERROR_NO_MEMORY; - poolFinish(&dtd->pool); - if (unparsedEntityDeclHandler) { - *eventEndPP = s; - unparsedEntityDeclHandler(handlerArg, - declEntity->name, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - declEntity->notation); - handleDefault = XML_FALSE; - } - else if (entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - 0,0,0, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - declEntity->notation); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_GENERAL_ENTITY_NAME: - { - if (XmlPredefinedEntityName(enc, s, next)) { - declEntity = NULL; - break; - } - if (dtd->keepProcessing) { - const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); - if (!name) - return XML_ERROR_NO_MEMORY; - declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - if (declEntity->name != name) { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - else { - poolFinish(&dtd->pool); - declEntity->publicId = NULL; - declEntity->is_param = XML_FALSE; - /* if we have a parent parser or are reading an internal parameter - entity, then the entity declaration is not considered "internal" - */ - declEntity->is_internal = !(parentParser || openInternalEntities); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - } - else { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - } - break; - case XML_ROLE_PARAM_ENTITY_NAME: -#ifdef XML_DTD - if (dtd->keepProcessing) { - const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); - if (!name) - return XML_ERROR_NO_MEMORY; - declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities, - name, sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - if (declEntity->name != name) { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - else { - poolFinish(&dtd->pool); - declEntity->publicId = NULL; - declEntity->is_param = XML_TRUE; - /* if we have a parent parser or are reading an internal parameter - entity, then the entity declaration is not considered "internal" - */ - declEntity->is_internal = !(parentParser || openInternalEntities); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - } - else { - poolDiscard(&dtd->pool); - declEntity = NULL; - } -#else /* not XML_DTD */ - declEntity = NULL; -#endif /* XML_DTD */ - break; - case XML_ROLE_NOTATION_NAME: - declNotationPublicId = NULL; - declNotationName = NULL; - if (notationDeclHandler) { - declNotationName = poolStoreString(&tempPool, enc, s, next); - if (!declNotationName) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_NOTATION_PUBLIC_ID: - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - if (declNotationName) { /* means notationDeclHandler != NULL */ - XML_Char *tem = poolStoreString(&tempPool, - enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!tem) - return XML_ERROR_NO_MEMORY; - normalizePublicId(tem); - declNotationPublicId = tem; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_NOTATION_SYSTEM_ID: - if (declNotationName && notationDeclHandler) { - const XML_Char *systemId - = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!systemId) - return XML_ERROR_NO_MEMORY; - *eventEndPP = s; - notationDeclHandler(handlerArg, - declNotationName, - curBase, - systemId, - declNotationPublicId); - handleDefault = XML_FALSE; - } - poolClear(&tempPool); - break; - case XML_ROLE_NOTATION_NO_SYSTEM_ID: - if (declNotationPublicId && notationDeclHandler) { - *eventEndPP = s; - notationDeclHandler(handlerArg, - declNotationName, - curBase, - 0, - declNotationPublicId); - handleDefault = XML_FALSE; - } - poolClear(&tempPool); - break; - case XML_ROLE_ERROR: - switch (tok) { - case XML_TOK_PARAM_ENTITY_REF: - /* PE references in internal subset are - not allowed within declarations. */ - return XML_ERROR_PARAM_ENTITY_REF; - case XML_TOK_XML_DECL: - return XML_ERROR_MISPLACED_XML_PI; - default: - return XML_ERROR_SYNTAX; - } -#ifdef XML_DTD - case XML_ROLE_IGNORE_SECT: - { - enum XML_Error result; - if (defaultHandler) - reportDefault(parser, enc, s, next); - handleDefault = XML_FALSE; - result = doIgnoreSection(parser, enc, &next, end, nextPtr, haveMore); - if (result != XML_ERROR_NONE) - return result; - else if (!next) { - processor = ignoreSectionProcessor; - return result; - } - } - break; -#endif /* XML_DTD */ - case XML_ROLE_GROUP_OPEN: - if (prologState.level >= groupSize) { - if (groupSize) { - char *temp = (char *)REALLOC(groupConnector, groupSize *= 2); - if (temp == NULL) { - groupSize /= 2; - return XML_ERROR_NO_MEMORY; - } - groupConnector = temp; - if (dtd->scaffIndex) { - int *temp = (int *)REALLOC(dtd->scaffIndex, - groupSize * sizeof(int)); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - dtd->scaffIndex = temp; - } - } - else { - groupConnector = (char *)MALLOC(groupSize = 32); - if (!groupConnector) { - groupSize = 0; - return XML_ERROR_NO_MEMORY; - } - } - } - groupConnector[prologState.level] = 0; - if (dtd->in_eldecl) { - int myindex = nextScaffoldPart(parser); - if (myindex < 0) - return XML_ERROR_NO_MEMORY; - dtd->scaffIndex[dtd->scaffLevel] = myindex; - dtd->scaffLevel++; - dtd->scaffold[myindex].type = XML_CTYPE_SEQ; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_GROUP_SEQUENCE: - if (groupConnector[prologState.level] == ASCII_PIPE) - return XML_ERROR_SYNTAX; - groupConnector[prologState.level] = ASCII_COMMA; - if (dtd->in_eldecl && elementDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_GROUP_CHOICE: - if (groupConnector[prologState.level] == ASCII_COMMA) - return XML_ERROR_SYNTAX; - if (dtd->in_eldecl - && !groupConnector[prologState.level] - && (dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - != XML_CTYPE_MIXED) - ) { - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - = XML_CTYPE_CHOICE; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - groupConnector[prologState.level] = ASCII_PIPE; - break; - case XML_ROLE_PARAM_ENTITY_REF: -#ifdef XML_DTD - case XML_ROLE_INNER_PARAM_ENTITY_REF: - dtd->hasParamEntityRefs = XML_TRUE; - if (!paramEntityParsing) - dtd->keepProcessing = dtd->standalone; - else { - const XML_Char *name; - ENTITY *entity; - name = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); - poolDiscard(&dtd->pool); - /* first, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal, - otherwise call the skipped entity handler - */ - if (prologState.documentEntity && - (dtd->standalone - ? !openInternalEntities - : !dtd->hasParamEntityRefs)) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) { - /* It's hard to exhaustively search the code to be sure, - * but there doesn't seem to be a way of executing the - * following line. There are two cases: - * - * If 'standalone' is false, the DTD must have no - * parameter entities or we wouldn't have passed the outer - * 'if' statement. That measn the only entity in the hash - * table is the external subset name "#" which cannot be - * given as a parameter entity name in XML syntax, so the - * lookup must have returned NULL and we don't even reach - * the test for an internal entity. - * - * If 'standalone' is true, it does not seem to be - * possible to create entities taking this code path that - * are not internal entities, so fail the test above. - * - * Because this analysis is very uncertain, the code is - * being left in place and merely removed from the - * coverage test statistics. - */ - return XML_ERROR_ENTITY_DECLARED_IN_PE; /* LCOV_EXCL_LINE */ - } - } - else if (!entity) { - dtd->keepProcessing = dtd->standalone; - /* cannot report skipped entities in declarations */ - if ((role == XML_ROLE_PARAM_ENTITY_REF) && skippedEntityHandler) { - skippedEntityHandler(handlerArg, name, 1); - handleDefault = XML_FALSE; - } - break; - } - if (entity->open) - return XML_ERROR_RECURSIVE_ENTITY_REF; - if (entity->textPtr) { - enum XML_Error result; - XML_Bool betweenDecl = - (role == XML_ROLE_PARAM_ENTITY_REF ? XML_TRUE : XML_FALSE); - result = processInternalEntity(parser, entity, betweenDecl); - if (result != XML_ERROR_NONE) - return result; - handleDefault = XML_FALSE; - break; - } - if (externalEntityRefHandler) { - dtd->paramEntityRead = XML_FALSE; - entity->open = XML_TRUE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) { - entity->open = XML_FALSE; - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - } - entity->open = XML_FALSE; - handleDefault = XML_FALSE; - if (!dtd->paramEntityRead) { - dtd->keepProcessing = dtd->standalone; - break; - } - } - else { - dtd->keepProcessing = dtd->standalone; - break; - } - } -#endif /* XML_DTD */ - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - break; - - /* Element declaration stuff */ - - case XML_ROLE_ELEMENT_NAME: - if (elementDeclHandler) { - declElementType = getElementType(parser, enc, s, next); - if (!declElementType) - return XML_ERROR_NO_MEMORY; - dtd->scaffLevel = 0; - dtd->scaffCount = 0; - dtd->in_eldecl = XML_TRUE; - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_ANY: - case XML_ROLE_CONTENT_EMPTY: - if (dtd->in_eldecl) { - if (elementDeclHandler) { - XML_Content * content = (XML_Content *) MALLOC(sizeof(XML_Content)); - if (!content) - return XML_ERROR_NO_MEMORY; - content->quant = XML_CQUANT_NONE; - content->name = NULL; - content->numchildren = 0; - content->children = NULL; - content->type = ((role == XML_ROLE_CONTENT_ANY) ? - XML_CTYPE_ANY : - XML_CTYPE_EMPTY); - *eventEndPP = s; - elementDeclHandler(handlerArg, declElementType->name, content); - handleDefault = XML_FALSE; - } - dtd->in_eldecl = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_PCDATA: - if (dtd->in_eldecl) { - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - = XML_CTYPE_MIXED; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_ELEMENT: - quant = XML_CQUANT_NONE; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_OPT: - quant = XML_CQUANT_OPT; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_REP: - quant = XML_CQUANT_REP; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_PLUS: - quant = XML_CQUANT_PLUS; - elementContent: - if (dtd->in_eldecl) { - ELEMENT_TYPE *el; - const XML_Char *name; - int nameLen; - const char *nxt = (quant == XML_CQUANT_NONE - ? next - : next - enc->minBytesPerChar); - int myindex = nextScaffoldPart(parser); - if (myindex < 0) - return XML_ERROR_NO_MEMORY; - dtd->scaffold[myindex].type = XML_CTYPE_NAME; - dtd->scaffold[myindex].quant = quant; - el = getElementType(parser, enc, s, nxt); - if (!el) - return XML_ERROR_NO_MEMORY; - name = el->name; - dtd->scaffold[myindex].name = name; - nameLen = 0; - for (; name[nameLen++]; ); - dtd->contentStringLen += nameLen; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_GROUP_CLOSE: - quant = XML_CQUANT_NONE; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_OPT: - quant = XML_CQUANT_OPT; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_REP: - quant = XML_CQUANT_REP; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_PLUS: - quant = XML_CQUANT_PLUS; - closeGroup: - if (dtd->in_eldecl) { - if (elementDeclHandler) - handleDefault = XML_FALSE; - dtd->scaffLevel--; - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel]].quant = quant; - if (dtd->scaffLevel == 0) { - if (!handleDefault) { - XML_Content *model = build_model(parser); - if (!model) - return XML_ERROR_NO_MEMORY; - *eventEndPP = s; - elementDeclHandler(handlerArg, declElementType->name, model); - } - dtd->in_eldecl = XML_FALSE; - dtd->contentStringLen = 0; - } - } - break; - /* End element declaration stuff */ - - case XML_ROLE_PI: - if (!reportProcessingInstruction(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - handleDefault = XML_FALSE; - break; - case XML_ROLE_COMMENT: - if (!reportComment(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - handleDefault = XML_FALSE; - break; - case XML_ROLE_NONE: - switch (tok) { - case XML_TOK_BOM: - handleDefault = XML_FALSE; - break; - } - break; - case XML_ROLE_DOCTYPE_NONE: - if (startDoctypeDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ENTITY_NONE: - if (dtd->keepProcessing && entityDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_NOTATION_NONE: - if (notationDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ATTLIST_NONE: - if (dtd->keepProcessing && attlistDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ELEMENT_NONE: - if (elementDeclHandler) - handleDefault = XML_FALSE; - break; - } /* end of big switch */ - - if (handleDefault && defaultHandler) - reportDefault(parser, enc, s, next); - - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: - s = next; - tok = XmlPrologTok(enc, s, end, &next); - } - } - /* not reached */ -} - -static enum XML_Error PTRCALL -epilogProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - processor = epilogProcessor; - eventPtr = s; - for (;;) { - const char *next = NULL; - int tok = XmlPrologTok(encoding, s, end, &next); - eventEndPtr = next; - switch (tok) { - /* report partial linebreak - it might be the last token */ - case -XML_TOK_PROLOG_S: - if (defaultHandler) { - reportDefault(parser, encoding, s, next); - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - } - *nextPtr = next; - return XML_ERROR_NONE; - case XML_TOK_NONE: - *nextPtr = s; - return XML_ERROR_NONE; - case XML_TOK_PROLOG_S: - if (defaultHandler) - reportDefault(parser, encoding, s, next); - break; - case XML_TOK_PI: - if (!reportProcessingInstruction(parser, encoding, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_COMMENT: - if (!reportComment(parser, encoding, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_INVALID: - eventPtr = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - default: - return XML_ERROR_JUNK_AFTER_DOC_ELEMENT; - } - eventPtr = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } -} - -static enum XML_Error -processInternalEntity(XML_Parser parser, ENTITY *entity, - XML_Bool betweenDecl) -{ - const char *textStart, *textEnd; - const char *next; - enum XML_Error result; - OPEN_INTERNAL_ENTITY *openEntity; - - if (freeInternalEntities) { - openEntity = freeInternalEntities; - freeInternalEntities = openEntity->next; - } - else { - openEntity = (OPEN_INTERNAL_ENTITY *)MALLOC(sizeof(OPEN_INTERNAL_ENTITY)); - if (!openEntity) - return XML_ERROR_NO_MEMORY; - } - entity->open = XML_TRUE; - entity->processed = 0; - openEntity->next = openInternalEntities; - openInternalEntities = openEntity; - openEntity->entity = entity; - openEntity->startTagLevel = tagLevel; - openEntity->betweenDecl = betweenDecl; - openEntity->internalEventPtr = NULL; - openEntity->internalEventEndPtr = NULL; - textStart = (char *)entity->textPtr; - textEnd = (char *)(entity->textPtr + entity->textLen); - /* Set a safe default value in case 'next' does not get set */ - next = textStart; - -#ifdef XML_DTD - if (entity->is_param) { - int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next); - result = doProlog(parser, internalEncoding, textStart, textEnd, tok, - next, &next, XML_FALSE); - } - else -#endif /* XML_DTD */ - result = doContent(parser, tagLevel, internalEncoding, textStart, - textEnd, &next, XML_FALSE); - - if (result == XML_ERROR_NONE) { - if (textEnd != next && ps_parsing == XML_SUSPENDED) { - entity->processed = (int)(next - textStart); - processor = internalEntityProcessor; - } - else { - entity->open = XML_FALSE; - openInternalEntities = openEntity->next; - /* put openEntity back in list of free instances */ - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - } - return result; -} - -static enum XML_Error PTRCALL -internalEntityProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - ENTITY *entity; - const char *textStart, *textEnd; - const char *next; - enum XML_Error result; - OPEN_INTERNAL_ENTITY *openEntity = openInternalEntities; - if (!openEntity) - return XML_ERROR_UNEXPECTED_STATE; - - entity = openEntity->entity; - textStart = ((char *)entity->textPtr) + entity->processed; - textEnd = (char *)(entity->textPtr + entity->textLen); - /* Set a safe default value in case 'next' does not get set */ - next = textStart; - -#ifdef XML_DTD - if (entity->is_param) { - int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next); - result = doProlog(parser, internalEncoding, textStart, textEnd, tok, - next, &next, XML_FALSE); - } - else -#endif /* XML_DTD */ - result = doContent(parser, openEntity->startTagLevel, internalEncoding, - textStart, textEnd, &next, XML_FALSE); - - if (result != XML_ERROR_NONE) - return result; - else if (textEnd != next && ps_parsing == XML_SUSPENDED) { - entity->processed = (int)(next - (char *)entity->textPtr); - return result; - } - else { - entity->open = XML_FALSE; - openInternalEntities = openEntity->next; - /* put openEntity back in list of free instances */ - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - -#ifdef XML_DTD - if (entity->is_param) { - int tok; - processor = prologProcessor; - tok = XmlPrologTok(encoding, s, end, &next); - return doProlog(parser, encoding, s, end, tok, next, nextPtr, - (XML_Bool)!ps_finalBuffer); - } - else -#endif /* XML_DTD */ - { - processor = contentProcessor; - /* see externalEntityContentProcessor vs contentProcessor */ - return doContent(parser, parentParser ? 1 : 0, encoding, s, end, - nextPtr, (XML_Bool)!ps_finalBuffer); - } -} - -static enum XML_Error PTRCALL -errorProcessor(XML_Parser parser, - const char *UNUSED_P(s), - const char *UNUSED_P(end), - const char **UNUSED_P(nextPtr)) -{ - return errorCode; -} - -static enum XML_Error -storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, - const char *ptr, const char *end, - STRING_POOL *pool) -{ - enum XML_Error result = appendAttributeValue(parser, enc, isCdata, ptr, - end, pool); - if (result) - return result; - if (!isCdata && poolLength(pool) && poolLastChar(pool) == 0x20) - poolChop(pool); - if (!poolAppendChar(pool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - return XML_ERROR_NONE; -} - -static enum XML_Error -appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, - const char *ptr, const char *end, - STRING_POOL *pool) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - for (;;) { - const char *next; - int tok = XmlAttributeValueTok(enc, ptr, end, &next); - switch (tok) { - case XML_TOK_NONE: - return XML_ERROR_NONE; - case XML_TOK_INVALID: - if (enc == encoding) - eventPtr = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_CHAR_REF: - { - XML_Char buf[XML_ENCODE_MAX]; - int i; - int n = XmlCharRefNumber(enc, ptr); - if (n < 0) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_BAD_CHAR_REF; - } - if (!isCdata - && n == 0x20 /* space */ - && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) - break; - n = XmlEncode(n, (ICHAR *)buf); - /* The XmlEncode() functions can never return 0 here. That - * error return happens if the code point passed in is either - * negative or greater than or equal to 0x110000. The - * XmlCharRefNumber() functions will all return a number - * strictly less than 0x110000 or a negative value if an error - * occurred. The negative value is intercepted above, so - * XmlEncode() is never passed a value it might return an - * error for. - */ - for (i = 0; i < n; i++) { - if (!poolAppendChar(pool, buf[i])) - return XML_ERROR_NO_MEMORY; - } - } - break; - case XML_TOK_DATA_CHARS: - if (!poolAppend(pool, enc, ptr, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_TRAILING_CR: - next = ptr + enc->minBytesPerChar; - /* fall through */ - case XML_TOK_ATTRIBUTE_VALUE_S: - case XML_TOK_DATA_NEWLINE: - if (!isCdata && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) - break; - if (!poolAppendChar(pool, 0x20)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_ENTITY_REF: - { - const XML_Char *name; - ENTITY *entity; - char checkEntityDecl; - XML_Char ch = (XML_Char) XmlPredefinedEntityName(enc, - ptr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (ch) { - if (!poolAppendChar(pool, ch)) - return XML_ERROR_NO_MEMORY; - break; - } - name = poolStoreString(&temp2Pool, enc, - ptr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); - poolDiscard(&temp2Pool); - /* First, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal. - */ - if (pool == &dtd->pool) /* are we called from prolog? */ - checkEntityDecl = -#ifdef XML_DTD - prologState.documentEntity && -#endif /* XML_DTD */ - (dtd->standalone - ? !openInternalEntities - : !dtd->hasParamEntityRefs); - else /* if (pool == &tempPool): we are called from content */ - checkEntityDecl = !dtd->hasParamEntityRefs || dtd->standalone; - if (checkEntityDecl) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) - return XML_ERROR_ENTITY_DECLARED_IN_PE; - } - else if (!entity) { - /* Cannot report skipped entity here - see comments on - skippedEntityHandler. - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - */ - /* Cannot call the default handler because this would be - out of sync with the call to the startElementHandler. - if ((pool == &tempPool) && defaultHandler) - reportDefault(parser, enc, ptr, next); - */ - break; - } - if (entity->open) { - if (enc == encoding) { - /* It does not appear that this line can be executed. - * - * The "if (entity->open)" check catches recursive entity - * definitions. In order to be called with an open - * entity, it must have gone through this code before and - * been through the recursive call to - * appendAttributeValue() some lines below. That call - * sets the local encoding ("enc") to the parser's - * internal encoding (internal_utf8 or internal_utf16), - * which can never be the same as the principle encoding. - * It doesn't appear there is another code path that gets - * here with entity->open being TRUE. - * - * Since it is not certain that this logic is watertight, - * we keep the line and merely exclude it from coverage - * tests. - */ - eventPtr = ptr; /* LCOV_EXCL_LINE */ - } - return XML_ERROR_RECURSIVE_ENTITY_REF; - } - if (entity->notation) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_BINARY_ENTITY_REF; - } - if (!entity->textPtr) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF; - } - else { - enum XML_Error result; - const XML_Char *textEnd = entity->textPtr + entity->textLen; - entity->open = XML_TRUE; - result = appendAttributeValue(parser, internalEncoding, isCdata, - (char *)entity->textPtr, - (char *)textEnd, pool); - entity->open = XML_FALSE; - if (result) - return result; - } - } - break; - default: - /* The only token returned by XmlAttributeValueTok() that does - * not have an explicit case here is XML_TOK_PARTIAL_CHAR. - * Getting that would require an entity name to contain an - * incomplete XML character (e.g. \xE2\x82); however previous - * tokenisers will have already recognised and rejected such - * names before XmlAttributeValueTok() gets a look-in. This - * default case should be retained as a safety net, but the code - * excluded from coverage tests. - * - * LCOV_EXCL_START - */ - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_UNEXPECTED_STATE; - /* LCOV_EXCL_STOP */ - } - ptr = next; - } - /* not reached */ -} - -static enum XML_Error -storeEntityValue(XML_Parser parser, - const ENCODING *enc, - const char *entityTextPtr, - const char *entityTextEnd) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - STRING_POOL *pool = &(dtd->entityValuePool); - enum XML_Error result = XML_ERROR_NONE; -#ifdef XML_DTD - int oldInEntityValue = prologState.inEntityValue; - prologState.inEntityValue = 1; -#endif /* XML_DTD */ - /* never return Null for the value argument in EntityDeclHandler, - since this would indicate an external entity; therefore we - have to make sure that entityValuePool.start is not null */ - if (!pool->blocks) { - if (!poolGrow(pool)) - return XML_ERROR_NO_MEMORY; - } - - for (;;) { - const char *next; - int tok = XmlEntityValueTok(enc, entityTextPtr, entityTextEnd, &next); - switch (tok) { - case XML_TOK_PARAM_ENTITY_REF: -#ifdef XML_DTD - if (isParamEntity || enc != encoding) { - const XML_Char *name; - ENTITY *entity; - name = poolStoreString(&tempPool, enc, - entityTextPtr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); - poolDiscard(&tempPool); - if (!entity) { - /* not a well-formedness error - see XML 1.0: WFC Entity Declared */ - /* cannot report skipped entity here - see comments on - skippedEntityHandler - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - */ - dtd->keepProcessing = dtd->standalone; - goto endEntityValue; - } - if (entity->open) { - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_RECURSIVE_ENTITY_REF; - goto endEntityValue; - } - if (entity->systemId) { - if (externalEntityRefHandler) { - dtd->paramEntityRead = XML_FALSE; - entity->open = XML_TRUE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) { - entity->open = XML_FALSE; - result = XML_ERROR_EXTERNAL_ENTITY_HANDLING; - goto endEntityValue; - } - entity->open = XML_FALSE; - if (!dtd->paramEntityRead) - dtd->keepProcessing = dtd->standalone; - } - else - dtd->keepProcessing = dtd->standalone; - } - else { - entity->open = XML_TRUE; - result = storeEntityValue(parser, - internalEncoding, - (char *)entity->textPtr, - (char *)(entity->textPtr - + entity->textLen)); - entity->open = XML_FALSE; - if (result) - goto endEntityValue; - } - break; - } -#endif /* XML_DTD */ - /* In the internal subset, PE references are not legal - within markup declarations, e.g entity values in this case. */ - eventPtr = entityTextPtr; - result = XML_ERROR_PARAM_ENTITY_REF; - goto endEntityValue; - case XML_TOK_NONE: - result = XML_ERROR_NONE; - goto endEntityValue; - case XML_TOK_ENTITY_REF: - case XML_TOK_DATA_CHARS: - if (!poolAppend(pool, enc, entityTextPtr, next)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - break; - case XML_TOK_TRAILING_CR: - next = entityTextPtr + enc->minBytesPerChar; - /* fall through */ - case XML_TOK_DATA_NEWLINE: - if (pool->end == pool->ptr && !poolGrow(pool)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - *(pool->ptr)++ = 0xA; - break; - case XML_TOK_CHAR_REF: - { - XML_Char buf[XML_ENCODE_MAX]; - int i; - int n = XmlCharRefNumber(enc, entityTextPtr); - if (n < 0) { - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_BAD_CHAR_REF; - goto endEntityValue; - } - n = XmlEncode(n, (ICHAR *)buf); - /* The XmlEncode() functions can never return 0 here. That - * error return happens if the code point passed in is either - * negative or greater than or equal to 0x110000. The - * XmlCharRefNumber() functions will all return a number - * strictly less than 0x110000 or a negative value if an error - * occurred. The negative value is intercepted above, so - * XmlEncode() is never passed a value it might return an - * error for. - */ - for (i = 0; i < n; i++) { - if (pool->end == pool->ptr && !poolGrow(pool)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - *(pool->ptr)++ = buf[i]; - } - } - break; - case XML_TOK_PARTIAL: - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_INVALID_TOKEN; - goto endEntityValue; - case XML_TOK_INVALID: - if (enc == encoding) - eventPtr = next; - result = XML_ERROR_INVALID_TOKEN; - goto endEntityValue; - default: - /* This default case should be unnecessary -- all the tokens - * that XmlEntityValueTok() can return have their own explicit - * cases -- but should be retained for safety. We do however - * exclude it from the coverage statistics. - * - * LCOV_EXCL_START - */ - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_UNEXPECTED_STATE; - goto endEntityValue; - /* LCOV_EXCL_STOP */ - } - entityTextPtr = next; - } -endEntityValue: -#ifdef XML_DTD - prologState.inEntityValue = oldInEntityValue; -#endif /* XML_DTD */ - return result; -} - -static void FASTCALL -normalizeLines(XML_Char *s) -{ - XML_Char *p; - for (;; s++) { - if (*s == XML_T('\0')) - return; - if (*s == 0xD) - break; - } - p = s; - do { - if (*s == 0xD) { - *p++ = 0xA; - if (*++s == 0xA) - s++; - } - else - *p++ = *s++; - } while (*s); - *p = XML_T('\0'); -} - -static int -reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - const XML_Char *target; - XML_Char *data; - const char *tem; - if (!processingInstructionHandler) { - if (defaultHandler) - reportDefault(parser, enc, start, end); - return 1; - } - start += enc->minBytesPerChar * 2; - tem = start + XmlNameLength(enc, start); - target = poolStoreString(&tempPool, enc, start, tem); - if (!target) - return 0; - poolFinish(&tempPool); - data = poolStoreString(&tempPool, enc, - XmlSkipS(enc, tem), - end - enc->minBytesPerChar*2); - if (!data) - return 0; - normalizeLines(data); - processingInstructionHandler(handlerArg, target, data); - poolClear(&tempPool); - return 1; -} - -static int -reportComment(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - XML_Char *data; - if (!commentHandler) { - if (defaultHandler) - reportDefault(parser, enc, start, end); - return 1; - } - data = poolStoreString(&tempPool, - enc, - start + enc->minBytesPerChar * 4, - end - enc->minBytesPerChar * 3); - if (!data) - return 0; - normalizeLines(data); - commentHandler(handlerArg, data); - poolClear(&tempPool); - return 1; -} - -static void -reportDefault(XML_Parser parser, const ENCODING *enc, - const char *s, const char *end) -{ - if (MUST_CONVERT(enc, s)) { - enum XML_Convert_Result convert_res; - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - eventEndPP = &eventEndPtr; - } - else { - /* To get here, two things must be true; the parser must be - * using a character encoding that is not the same as the - * encoding passed in, and the encoding passed in must need - * conversion to the internal format (UTF-8 unless XML_UNICODE - * is defined). The only occasions on which the encoding passed - * in is not the same as the parser's encoding are when it is - * the internal encoding (e.g. a previously defined parameter - * entity, already converted to internal format). This by - * definition doesn't need conversion, so the whole branch never - * gets executed. - * - * For safety's sake we don't delete these lines and merely - * exclude them from coverage statistics. - * - * LCOV_EXCL_START - */ - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - /* LCOV_EXCL_STOP */ - } - do { - ICHAR *dataPtr = (ICHAR *)dataBuf; - convert_res = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = s; - defaultHandler(handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf)); - *eventPP = s; - } while ((convert_res != XML_CONVERT_COMPLETED) && (convert_res != XML_CONVERT_INPUT_INCOMPLETE)); - } - else - defaultHandler(handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s)); -} - - -static int -defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, - XML_Bool isId, const XML_Char *value, XML_Parser parser) -{ - DEFAULT_ATTRIBUTE *att; - if (value || isId) { - /* The handling of default attributes gets messed up if we have - a default which duplicates a non-default. */ - int i; - for (i = 0; i < type->nDefaultAtts; i++) - if (attId == type->defaultAtts[i].id) - return 1; - if (isId && !type->idAtt && !attId->xmlns) - type->idAtt = attId; - } - if (type->nDefaultAtts == type->allocDefaultAtts) { - if (type->allocDefaultAtts == 0) { - type->allocDefaultAtts = 8; - type->defaultAtts = (DEFAULT_ATTRIBUTE *)MALLOC(type->allocDefaultAtts - * sizeof(DEFAULT_ATTRIBUTE)); - if (!type->defaultAtts) - return 0; - } - else { - DEFAULT_ATTRIBUTE *temp; - int count = type->allocDefaultAtts * 2; - temp = (DEFAULT_ATTRIBUTE *) - REALLOC(type->defaultAtts, (count * sizeof(DEFAULT_ATTRIBUTE))); - if (temp == NULL) - return 0; - type->allocDefaultAtts = count; - type->defaultAtts = temp; - } - } - att = type->defaultAtts + type->nDefaultAtts; - att->id = attId; - att->value = value; - att->isCdata = isCdata; - if (!isCdata) - attId->maybeTokenized = XML_TRUE; - type->nDefaultAtts += 1; - return 1; -} - -static int -setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *name; - for (name = elementType->name; *name; name++) { - if (*name == XML_T(ASCII_COLON)) { - PREFIX *prefix; - const XML_Char *s; - for (s = elementType->name; s != name; s++) { - if (!poolAppendChar(&dtd->pool, *s)) - return 0; - } - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return 0; - prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), - sizeof(PREFIX)); - if (!prefix) - return 0; - if (prefix->name == poolStart(&dtd->pool)) - poolFinish(&dtd->pool); - else - poolDiscard(&dtd->pool); - elementType->prefix = prefix; - - } - } - return 1; -} - -static ATTRIBUTE_ID * -getAttributeId(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - ATTRIBUTE_ID *id; - const XML_Char *name; - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return NULL; - name = poolStoreString(&dtd->pool, enc, start, end); - if (!name) - return NULL; - /* skip quotation mark - its storage will be re-used (like in name[-1]) */ - ++name; - id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, sizeof(ATTRIBUTE_ID)); - if (!id) - return NULL; - if (id->name != name) - poolDiscard(&dtd->pool); - else { - poolFinish(&dtd->pool); - if (!ns) - ; - else if (name[0] == XML_T(ASCII_x) - && name[1] == XML_T(ASCII_m) - && name[2] == XML_T(ASCII_l) - && name[3] == XML_T(ASCII_n) - && name[4] == XML_T(ASCII_s) - && (name[5] == XML_T('\0') || name[5] == XML_T(ASCII_COLON))) { - if (name[5] == XML_T('\0')) - id->prefix = &dtd->defaultPrefix; - else - id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, sizeof(PREFIX)); - id->xmlns = XML_TRUE; - } - else { - int i; - for (i = 0; name[i]; i++) { - /* attributes without prefix are *not* in the default namespace */ - if (name[i] == XML_T(ASCII_COLON)) { - int j; - for (j = 0; j < i; j++) { - if (!poolAppendChar(&dtd->pool, name[j])) - return NULL; - } - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return NULL; - id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), - sizeof(PREFIX)); - if (!id->prefix) - return NULL; - if (id->prefix->name == poolStart(&dtd->pool)) - poolFinish(&dtd->pool); - else - poolDiscard(&dtd->pool); - break; - } - } - } - } - return id; -} - -#define CONTEXT_SEP XML_T(ASCII_FF) - -static const XML_Char * -getContext(XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - HASH_TABLE_ITER iter; - XML_Bool needSep = XML_FALSE; - - if (dtd->defaultPrefix.binding) { - int i; - int len; - if (!poolAppendChar(&tempPool, XML_T(ASCII_EQUALS))) - return NULL; - len = dtd->defaultPrefix.binding->uriLen; - if (namespaceSeparator) - len--; - for (i = 0; i < len; i++) { - if (!poolAppendChar(&tempPool, dtd->defaultPrefix.binding->uri[i])) { - /* Because of memory caching, I don't believe this line can be - * executed. - * - * This is part of a loop copying the default prefix binding - * URI into the parser's temporary string pool. Previously, - * that URI was copied into the same string pool, with a - * terminating NUL character, as part of setContext(). When - * the pool was cleared, that leaves a block definitely big - * enough to hold the URI on the free block list of the pool. - * The URI copy in getContext() therefore cannot run out of - * memory. - * - * If the pool is used between the setContext() and - * getContext() calls, the worst it can do is leave a bigger - * block on the front of the free list. Given that this is - * all somewhat inobvious and program logic can be changed, we - * don't delete the line but we do exclude it from the test - * coverage statistics. - */ - return NULL; /* LCOV_EXCL_LINE */ - } - } - needSep = XML_TRUE; - } - - hashTableIterInit(&iter, &(dtd->prefixes)); - for (;;) { - int i; - int len; - const XML_Char *s; - PREFIX *prefix = (PREFIX *)hashTableIterNext(&iter); - if (!prefix) - break; - if (!prefix->binding) { - /* This test appears to be (justifiable) paranoia. There does - * not seem to be a way of injecting a prefix without a binding - * that doesn't get errored long before this function is called. - * The test should remain for safety's sake, so we instead - * exclude the following line from the coverage statistics. - */ - continue; /* LCOV_EXCL_LINE */ - } - if (needSep && !poolAppendChar(&tempPool, CONTEXT_SEP)) - return NULL; - for (s = prefix->name; *s; s++) - if (!poolAppendChar(&tempPool, *s)) - return NULL; - if (!poolAppendChar(&tempPool, XML_T(ASCII_EQUALS))) - return NULL; - len = prefix->binding->uriLen; - if (namespaceSeparator) - len--; - for (i = 0; i < len; i++) - if (!poolAppendChar(&tempPool, prefix->binding->uri[i])) - return NULL; - needSep = XML_TRUE; - } - - - hashTableIterInit(&iter, &(dtd->generalEntities)); - for (;;) { - const XML_Char *s; - ENTITY *e = (ENTITY *)hashTableIterNext(&iter); - if (!e) - break; - if (!e->open) - continue; - if (needSep && !poolAppendChar(&tempPool, CONTEXT_SEP)) - return NULL; - for (s = e->name; *s; s++) - if (!poolAppendChar(&tempPool, *s)) - return 0; - needSep = XML_TRUE; - } - - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return NULL; - return tempPool.start; -} - -static XML_Bool -setContext(XML_Parser parser, const XML_Char *context) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *s = context; - - while (*context != XML_T('\0')) { - if (*s == CONTEXT_SEP || *s == XML_T('\0')) { - ENTITY *e; - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - e = (ENTITY *)lookup(parser, &dtd->generalEntities, poolStart(&tempPool), 0); - if (e) - e->open = XML_TRUE; - if (*s != XML_T('\0')) - s++; - context = s; - poolDiscard(&tempPool); - } - else if (*s == XML_T(ASCII_EQUALS)) { - PREFIX *prefix; - if (poolLength(&tempPool) == 0) - prefix = &dtd->defaultPrefix; - else { - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&tempPool), - sizeof(PREFIX)); - if (!prefix) - return XML_FALSE; - if (prefix->name == poolStart(&tempPool)) { - prefix->name = poolCopyString(&dtd->pool, prefix->name); - if (!prefix->name) - return XML_FALSE; - } - poolDiscard(&tempPool); - } - for (context = s + 1; - *context != CONTEXT_SEP && *context != XML_T('\0'); - context++) - if (!poolAppendChar(&tempPool, *context)) - return XML_FALSE; - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - if (addBinding(parser, prefix, NULL, poolStart(&tempPool), - &inheritedBindings) != XML_ERROR_NONE) - return XML_FALSE; - poolDiscard(&tempPool); - if (*context != XML_T('\0')) - ++context; - s = context; - } - else { - if (!poolAppendChar(&tempPool, *s)) - return XML_FALSE; - s++; - } - } - return XML_TRUE; -} - -static void FASTCALL -normalizePublicId(XML_Char *publicId) -{ - XML_Char *p = publicId; - XML_Char *s; - for (s = publicId; *s; s++) { - switch (*s) { - case 0x20: - case 0xD: - case 0xA: - if (p != publicId && p[-1] != 0x20) - *p++ = 0x20; - break; - default: - *p++ = *s; - } - } - if (p != publicId && p[-1] == 0x20) - --p; - *p = XML_T('\0'); -} - -static DTD * -dtdCreate(const XML_Memory_Handling_Suite *ms) -{ - DTD *p = (DTD *)ms->malloc_fcn(sizeof(DTD)); - if (p == NULL) - return p; - poolInit(&(p->pool), ms); - poolInit(&(p->entityValuePool), ms); - hashTableInit(&(p->generalEntities), ms); - hashTableInit(&(p->elementTypes), ms); - hashTableInit(&(p->attributeIds), ms); - hashTableInit(&(p->prefixes), ms); -#ifdef XML_DTD - p->paramEntityRead = XML_FALSE; - hashTableInit(&(p->paramEntities), ms); -#endif /* XML_DTD */ - p->defaultPrefix.name = NULL; - p->defaultPrefix.binding = NULL; - - p->in_eldecl = XML_FALSE; - p->scaffIndex = NULL; - p->scaffold = NULL; - p->scaffLevel = 0; - p->scaffSize = 0; - p->scaffCount = 0; - p->contentStringLen = 0; - - p->keepProcessing = XML_TRUE; - p->hasParamEntityRefs = XML_FALSE; - p->standalone = XML_FALSE; - return p; -} - -static void -dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - hashTableIterInit(&iter, &(p->elementTypes)); - for (;;) { - ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!e) - break; - if (e->allocDefaultAtts != 0) - ms->free_fcn(e->defaultAtts); - } - hashTableClear(&(p->generalEntities)); -#ifdef XML_DTD - p->paramEntityRead = XML_FALSE; - hashTableClear(&(p->paramEntities)); -#endif /* XML_DTD */ - hashTableClear(&(p->elementTypes)); - hashTableClear(&(p->attributeIds)); - hashTableClear(&(p->prefixes)); - poolClear(&(p->pool)); - poolClear(&(p->entityValuePool)); - p->defaultPrefix.name = NULL; - p->defaultPrefix.binding = NULL; - - p->in_eldecl = XML_FALSE; - - ms->free_fcn(p->scaffIndex); - p->scaffIndex = NULL; - ms->free_fcn(p->scaffold); - p->scaffold = NULL; - - p->scaffLevel = 0; - p->scaffSize = 0; - p->scaffCount = 0; - p->contentStringLen = 0; - - p->keepProcessing = XML_TRUE; - p->hasParamEntityRefs = XML_FALSE; - p->standalone = XML_FALSE; -} - -static void -dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - hashTableIterInit(&iter, &(p->elementTypes)); - for (;;) { - ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!e) - break; - if (e->allocDefaultAtts != 0) - ms->free_fcn(e->defaultAtts); - } - hashTableDestroy(&(p->generalEntities)); -#ifdef XML_DTD - hashTableDestroy(&(p->paramEntities)); -#endif /* XML_DTD */ - hashTableDestroy(&(p->elementTypes)); - hashTableDestroy(&(p->attributeIds)); - hashTableDestroy(&(p->prefixes)); - poolDestroy(&(p->pool)); - poolDestroy(&(p->entityValuePool)); - if (isDocEntity) { - ms->free_fcn(p->scaffIndex); - ms->free_fcn(p->scaffold); - } - ms->free_fcn(p); -} - -/* Do a deep copy of the DTD. Return 0 for out of memory, non-zero otherwise. - The new DTD has already been initialized. -*/ -static int -dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - - /* Copy the prefix table. */ - - hashTableIterInit(&iter, &(oldDtd->prefixes)); - for (;;) { - const XML_Char *name; - const PREFIX *oldP = (PREFIX *)hashTableIterNext(&iter); - if (!oldP) - break; - name = poolCopyString(&(newDtd->pool), oldP->name); - if (!name) - return 0; - if (!lookup(oldParser, &(newDtd->prefixes), name, sizeof(PREFIX))) - return 0; - } - - hashTableIterInit(&iter, &(oldDtd->attributeIds)); - - /* Copy the attribute id table. */ - - for (;;) { - ATTRIBUTE_ID *newA; - const XML_Char *name; - const ATTRIBUTE_ID *oldA = (ATTRIBUTE_ID *)hashTableIterNext(&iter); - - if (!oldA) - break; - /* Remember to allocate the scratch byte before the name. */ - if (!poolAppendChar(&(newDtd->pool), XML_T('\0'))) - return 0; - name = poolCopyString(&(newDtd->pool), oldA->name); - if (!name) - return 0; - ++name; - newA = (ATTRIBUTE_ID *)lookup(oldParser, &(newDtd->attributeIds), name, - sizeof(ATTRIBUTE_ID)); - if (!newA) - return 0; - newA->maybeTokenized = oldA->maybeTokenized; - if (oldA->prefix) { - newA->xmlns = oldA->xmlns; - if (oldA->prefix == &oldDtd->defaultPrefix) - newA->prefix = &newDtd->defaultPrefix; - else - newA->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), - oldA->prefix->name, 0); - } - } - - /* Copy the element type table. */ - - hashTableIterInit(&iter, &(oldDtd->elementTypes)); - - for (;;) { - int i; - ELEMENT_TYPE *newE; - const XML_Char *name; - const ELEMENT_TYPE *oldE = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!oldE) - break; - name = poolCopyString(&(newDtd->pool), oldE->name); - if (!name) - return 0; - newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name, - sizeof(ELEMENT_TYPE)); - if (!newE) - return 0; - if (oldE->nDefaultAtts) { - newE->defaultAtts = (DEFAULT_ATTRIBUTE *) - ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); - if (!newE->defaultAtts) { - return 0; - } - } - if (oldE->idAtt) - newE->idAtt = (ATTRIBUTE_ID *) - lookup(oldParser, &(newDtd->attributeIds), oldE->idAtt->name, 0); - newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts; - if (oldE->prefix) - newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), - oldE->prefix->name, 0); - for (i = 0; i < newE->nDefaultAtts; i++) { - newE->defaultAtts[i].id = (ATTRIBUTE_ID *) - lookup(oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0); - newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata; - if (oldE->defaultAtts[i].value) { - newE->defaultAtts[i].value - = poolCopyString(&(newDtd->pool), oldE->defaultAtts[i].value); - if (!newE->defaultAtts[i].value) - return 0; - } - else - newE->defaultAtts[i].value = NULL; - } - } - - /* Copy the entity tables. */ - if (!copyEntityTable(oldParser, - &(newDtd->generalEntities), - &(newDtd->pool), - &(oldDtd->generalEntities))) - return 0; - -#ifdef XML_DTD - if (!copyEntityTable(oldParser, - &(newDtd->paramEntities), - &(newDtd->pool), - &(oldDtd->paramEntities))) - return 0; - newDtd->paramEntityRead = oldDtd->paramEntityRead; -#endif /* XML_DTD */ - - newDtd->keepProcessing = oldDtd->keepProcessing; - newDtd->hasParamEntityRefs = oldDtd->hasParamEntityRefs; - newDtd->standalone = oldDtd->standalone; - - /* Don't want deep copying for scaffolding */ - newDtd->in_eldecl = oldDtd->in_eldecl; - newDtd->scaffold = oldDtd->scaffold; - newDtd->contentStringLen = oldDtd->contentStringLen; - newDtd->scaffSize = oldDtd->scaffSize; - newDtd->scaffLevel = oldDtd->scaffLevel; - newDtd->scaffIndex = oldDtd->scaffIndex; - - return 1; -} /* End dtdCopy */ - -static int -copyEntityTable(XML_Parser oldParser, - HASH_TABLE *newTable, - STRING_POOL *newPool, - const HASH_TABLE *oldTable) -{ - HASH_TABLE_ITER iter; - const XML_Char *cachedOldBase = NULL; - const XML_Char *cachedNewBase = NULL; - - hashTableIterInit(&iter, oldTable); - - for (;;) { - ENTITY *newE; - const XML_Char *name; - const ENTITY *oldE = (ENTITY *)hashTableIterNext(&iter); - if (!oldE) - break; - name = poolCopyString(newPool, oldE->name); - if (!name) - return 0; - newE = (ENTITY *)lookup(oldParser, newTable, name, sizeof(ENTITY)); - if (!newE) - return 0; - if (oldE->systemId) { - const XML_Char *tem = poolCopyString(newPool, oldE->systemId); - if (!tem) - return 0; - newE->systemId = tem; - if (oldE->base) { - if (oldE->base == cachedOldBase) - newE->base = cachedNewBase; - else { - cachedOldBase = oldE->base; - tem = poolCopyString(newPool, cachedOldBase); - if (!tem) - return 0; - cachedNewBase = newE->base = tem; - } - } - if (oldE->publicId) { - tem = poolCopyString(newPool, oldE->publicId); - if (!tem) - return 0; - newE->publicId = tem; - } - } - else { - const XML_Char *tem = poolCopyStringN(newPool, oldE->textPtr, - oldE->textLen); - if (!tem) - return 0; - newE->textPtr = tem; - newE->textLen = oldE->textLen; - } - if (oldE->notation) { - const XML_Char *tem = poolCopyString(newPool, oldE->notation); - if (!tem) - return 0; - newE->notation = tem; - } - newE->is_param = oldE->is_param; - newE->is_internal = oldE->is_internal; - } - return 1; -} - -#define INIT_POWER 6 - -static XML_Bool FASTCALL -keyeq(KEY s1, KEY s2) -{ - for (; *s1 == *s2; s1++, s2++) - if (*s1 == 0) - return XML_TRUE; - return XML_FALSE; -} - -static size_t -keylen(KEY s) -{ - size_t len = 0; - for (; *s; s++, len++); - return len; -} - -static void -copy_salt_to_sipkey(XML_Parser parser, struct sipkey * key) -{ - key->k[0] = 0; - key->k[1] = get_hash_secret_salt(parser); -} - -static unsigned long FASTCALL -hash(XML_Parser parser, KEY s) -{ - struct siphash state; - struct sipkey key; - (void)sip_tobin; - (void)sip24_valid; - copy_salt_to_sipkey(parser, &key); - sip24_init(&state, &key); - sip24_update(&state, s, keylen(s) * sizeof(XML_Char)); - return (unsigned long)sip24_final(&state); -} - -static NAMED * -lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) -{ - size_t i; - if (table->size == 0) { - size_t tsize; - if (!createSize) - return NULL; - table->power = INIT_POWER; - /* table->size is a power of 2 */ - table->size = (size_t)1 << INIT_POWER; - tsize = table->size * sizeof(NAMED *); - table->v = (NAMED **)table->mem->malloc_fcn(tsize); - if (!table->v) { - table->size = 0; - return NULL; - } - memset(table->v, 0, tsize); - i = hash(parser, name) & ((unsigned long)table->size - 1); - } - else { - unsigned long h = hash(parser, name); - unsigned long mask = (unsigned long)table->size - 1; - unsigned char step = 0; - i = h & mask; - while (table->v[i]) { - if (keyeq(name, table->v[i]->name)) - return table->v[i]; - if (!step) - step = PROBE_STEP(h, mask, table->power); - i < step ? (i += table->size - step) : (i -= step); - } - if (!createSize) - return NULL; - - /* check for overflow (table is half full) */ - if (table->used >> (table->power - 1)) { - unsigned char newPower = table->power + 1; - size_t newSize = (size_t)1 << newPower; - unsigned long newMask = (unsigned long)newSize - 1; - size_t tsize = newSize * sizeof(NAMED *); - NAMED **newV = (NAMED **)table->mem->malloc_fcn(tsize); - if (!newV) - return NULL; - memset(newV, 0, tsize); - for (i = 0; i < table->size; i++) - if (table->v[i]) { - unsigned long newHash = hash(parser, table->v[i]->name); - size_t j = newHash & newMask; - step = 0; - while (newV[j]) { - if (!step) - step = PROBE_STEP(newHash, newMask, newPower); - j < step ? (j += newSize - step) : (j -= step); - } - newV[j] = table->v[i]; - } - table->mem->free_fcn(table->v); - table->v = newV; - table->power = newPower; - table->size = newSize; - i = h & newMask; - step = 0; - while (table->v[i]) { - if (!step) - step = PROBE_STEP(h, newMask, newPower); - i < step ? (i += newSize - step) : (i -= step); - } - } - } - table->v[i] = (NAMED *)table->mem->malloc_fcn(createSize); - if (!table->v[i]) - return NULL; - memset(table->v[i], 0, createSize); - table->v[i]->name = name; - (table->used)++; - return table->v[i]; -} - -static void FASTCALL -hashTableClear(HASH_TABLE *table) -{ - size_t i; - for (i = 0; i < table->size; i++) { - table->mem->free_fcn(table->v[i]); - table->v[i] = NULL; - } - table->used = 0; -} - -static void FASTCALL -hashTableDestroy(HASH_TABLE *table) -{ - size_t i; - for (i = 0; i < table->size; i++) - table->mem->free_fcn(table->v[i]); - table->mem->free_fcn(table->v); -} - -static void FASTCALL -hashTableInit(HASH_TABLE *p, const XML_Memory_Handling_Suite *ms) -{ - p->power = 0; - p->size = 0; - p->used = 0; - p->v = NULL; - p->mem = ms; -} - -static void FASTCALL -hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table) -{ - iter->p = table->v; - iter->end = iter->p + table->size; -} - -static NAMED * FASTCALL -hashTableIterNext(HASH_TABLE_ITER *iter) -{ - while (iter->p != iter->end) { - NAMED *tem = *(iter->p)++; - if (tem) - return tem; - } - return NULL; -} - -static void FASTCALL -poolInit(STRING_POOL *pool, const XML_Memory_Handling_Suite *ms) -{ - pool->blocks = NULL; - pool->freeBlocks = NULL; - pool->start = NULL; - pool->ptr = NULL; - pool->end = NULL; - pool->mem = ms; -} - -static void FASTCALL -poolClear(STRING_POOL *pool) -{ - if (!pool->freeBlocks) - pool->freeBlocks = pool->blocks; - else { - BLOCK *p = pool->blocks; - while (p) { - BLOCK *tem = p->next; - p->next = pool->freeBlocks; - pool->freeBlocks = p; - p = tem; - } - } - pool->blocks = NULL; - pool->start = NULL; - pool->ptr = NULL; - pool->end = NULL; -} - -static void FASTCALL -poolDestroy(STRING_POOL *pool) -{ - BLOCK *p = pool->blocks; - while (p) { - BLOCK *tem = p->next; - pool->mem->free_fcn(p); - p = tem; - } - p = pool->freeBlocks; - while (p) { - BLOCK *tem = p->next; - pool->mem->free_fcn(p); - p = tem; - } -} - -static XML_Char * -poolAppend(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end) -{ - if (!pool->ptr && !poolGrow(pool)) - return NULL; - for (;;) { - const enum XML_Convert_Result convert_res = XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end); - if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) - break; - if (!poolGrow(pool)) - return NULL; - } - return pool->start; -} - -static const XML_Char * FASTCALL -poolCopyString(STRING_POOL *pool, const XML_Char *s) -{ - do { - if (!poolAppendChar(pool, *s)) - return NULL; - } while (*s++); - s = pool->start; - poolFinish(pool); - return s; -} - -static const XML_Char * -poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n) -{ - if (!pool->ptr && !poolGrow(pool)) { - /* The following line is unreachable given the current usage of - * poolCopyStringN(). Currently it is called from exactly one - * place to copy the text of a simple general entity. By that - * point, the name of the entity is already stored in the pool, so - * pool->ptr cannot be NULL. - * - * If poolCopyStringN() is used elsewhere as it well might be, - * this line may well become executable again. Regardless, this - * sort of check shouldn't be removed lightly, so we just exclude - * it from the coverage statistics. - */ - return NULL; /* LCOV_EXCL_LINE */ - } - for (; n > 0; --n, s++) { - if (!poolAppendChar(pool, *s)) - return NULL; - } - s = pool->start; - poolFinish(pool); - return s; -} - -static const XML_Char * FASTCALL -poolAppendString(STRING_POOL *pool, const XML_Char *s) -{ - while (*s) { - if (!poolAppendChar(pool, *s)) - return NULL; - s++; - } - return pool->start; -} - -static XML_Char * -poolStoreString(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end) -{ - if (!poolAppend(pool, enc, ptr, end)) - return NULL; - if (pool->ptr == pool->end && !poolGrow(pool)) - return NULL; - *(pool->ptr)++ = 0; - return pool->start; -} - -static size_t -poolBytesToAllocateFor(int blockSize) -{ - /* Unprotected math would be: - ** return offsetof(BLOCK, s) + blockSize * sizeof(XML_Char); - ** - ** Detect overflow, avoiding _signed_ overflow undefined behavior - ** For a + b * c we check b * c in isolation first, so that addition of a - ** on top has no chance of making us accept a small non-negative number - */ - const size_t stretch = sizeof(XML_Char); /* can be 4 bytes */ - - if (blockSize <= 0) - return 0; - - if (blockSize > (int)(INT_MAX / stretch)) - return 0; - - { - const int stretchedBlockSize = blockSize * (int)stretch; - const int bytesToAllocate = (int)( - offsetof(BLOCK, s) + (unsigned)stretchedBlockSize); - if (bytesToAllocate < 0) - return 0; - - return (size_t)bytesToAllocate; - } -} - -static XML_Bool FASTCALL -poolGrow(STRING_POOL *pool) -{ - if (pool->freeBlocks) { - if (pool->start == 0) { - pool->blocks = pool->freeBlocks; - pool->freeBlocks = pool->freeBlocks->next; - pool->blocks->next = NULL; - pool->start = pool->blocks->s; - pool->end = pool->start + pool->blocks->size; - pool->ptr = pool->start; - return XML_TRUE; - } - if (pool->end - pool->start < pool->freeBlocks->size) { - BLOCK *tem = pool->freeBlocks->next; - pool->freeBlocks->next = pool->blocks; - pool->blocks = pool->freeBlocks; - pool->freeBlocks = tem; - memcpy(pool->blocks->s, pool->start, - (pool->end - pool->start) * sizeof(XML_Char)); - pool->ptr = pool->blocks->s + (pool->ptr - pool->start); - pool->start = pool->blocks->s; - pool->end = pool->start + pool->blocks->size; - return XML_TRUE; - } - } - if (pool->blocks && pool->start == pool->blocks->s) { - BLOCK *temp; - int blockSize = (int)((unsigned)(pool->end - pool->start)*2U); - size_t bytesToAllocate; - - // NOTE: Needs to be calculated prior to calling `realloc` - // to avoid dangling pointers: - const ptrdiff_t offsetInsideBlock = pool->ptr - pool->start; - - if (blockSize < 0) { - /* This condition traps a situation where either more than - * INT_MAX/2 bytes have already been allocated. This isn't - * readily testable, since it is unlikely that an average - * machine will have that much memory, so we exclude it from the - * coverage statistics. - */ - return XML_FALSE; /* LCOV_EXCL_LINE */ - } - - bytesToAllocate = poolBytesToAllocateFor(blockSize); - if (bytesToAllocate == 0) - return XML_FALSE; - - temp = (BLOCK *) - pool->mem->realloc_fcn(pool->blocks, (unsigned)bytesToAllocate); - if (temp == NULL) - return XML_FALSE; - pool->blocks = temp; - pool->blocks->size = blockSize; - pool->ptr = pool->blocks->s + offsetInsideBlock; - pool->start = pool->blocks->s; - pool->end = pool->start + blockSize; - } - else { - BLOCK *tem; - int blockSize = (int)(pool->end - pool->start); - size_t bytesToAllocate; - - if (blockSize < 0) { - /* This condition traps a situation where either more than - * INT_MAX bytes have already been allocated (which is prevented - * by various pieces of program logic, not least this one, never - * mind the unlikelihood of actually having that much memory) or - * the pool control fields have been corrupted (which could - * conceivably happen in an extremely buggy user handler - * function). Either way it isn't readily testable, so we - * exclude it from the coverage statistics. - */ - return XML_FALSE; /* LCOV_EXCL_LINE */ - } - - if (blockSize < INIT_BLOCK_SIZE) - blockSize = INIT_BLOCK_SIZE; - else { - /* Detect overflow, avoiding _signed_ overflow undefined behavior */ - if ((int)((unsigned)blockSize * 2U) < 0) { - return XML_FALSE; - } - blockSize *= 2; - } - - bytesToAllocate = poolBytesToAllocateFor(blockSize); - if (bytesToAllocate == 0) - return XML_FALSE; - - tem = (BLOCK *)pool->mem->malloc_fcn(bytesToAllocate); - if (!tem) - return XML_FALSE; - tem->size = blockSize; - tem->next = pool->blocks; - pool->blocks = tem; - if (pool->ptr != pool->start) - memcpy(tem->s, pool->start, - (pool->ptr - pool->start) * sizeof(XML_Char)); - pool->ptr = tem->s + (pool->ptr - pool->start); - pool->start = tem->s; - pool->end = tem->s + blockSize; - } - return XML_TRUE; -} - -static int FASTCALL -nextScaffoldPart(XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - CONTENT_SCAFFOLD * me; - int next; - - if (!dtd->scaffIndex) { - dtd->scaffIndex = (int *)MALLOC(groupSize * sizeof(int)); - if (!dtd->scaffIndex) - return -1; - dtd->scaffIndex[0] = 0; - } - - if (dtd->scaffCount >= dtd->scaffSize) { - CONTENT_SCAFFOLD *temp; - if (dtd->scaffold) { - temp = (CONTENT_SCAFFOLD *) - REALLOC(dtd->scaffold, dtd->scaffSize * 2 * sizeof(CONTENT_SCAFFOLD)); - if (temp == NULL) - return -1; - dtd->scaffSize *= 2; - } - else { - temp = (CONTENT_SCAFFOLD *)MALLOC(INIT_SCAFFOLD_ELEMENTS - * sizeof(CONTENT_SCAFFOLD)); - if (temp == NULL) - return -1; - dtd->scaffSize = INIT_SCAFFOLD_ELEMENTS; - } - dtd->scaffold = temp; - } - next = dtd->scaffCount++; - me = &dtd->scaffold[next]; - if (dtd->scaffLevel) { - CONTENT_SCAFFOLD *parent = &dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel-1]]; - if (parent->lastchild) { - dtd->scaffold[parent->lastchild].nextsib = next; - } - if (!parent->childcnt) - parent->firstchild = next; - parent->lastchild = next; - parent->childcnt++; - } - me->firstchild = me->lastchild = me->childcnt = me->nextsib = 0; - return next; -} - -static void -build_node(XML_Parser parser, - int src_node, - XML_Content *dest, - XML_Content **contpos, - XML_Char **strpos) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - dest->type = dtd->scaffold[src_node].type; - dest->quant = dtd->scaffold[src_node].quant; - if (dest->type == XML_CTYPE_NAME) { - const XML_Char *src; - dest->name = *strpos; - src = dtd->scaffold[src_node].name; - for (;;) { - *(*strpos)++ = *src; - if (!*src) - break; - src++; - } - dest->numchildren = 0; - dest->children = NULL; - } - else { - unsigned int i; - int cn; - dest->numchildren = dtd->scaffold[src_node].childcnt; - dest->children = *contpos; - *contpos += dest->numchildren; - for (i = 0, cn = dtd->scaffold[src_node].firstchild; - i < dest->numchildren; - i++, cn = dtd->scaffold[cn].nextsib) { - build_node(parser, cn, &(dest->children[i]), contpos, strpos); - } - dest->name = NULL; - } -} - -static XML_Content * -build_model (XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - XML_Content *ret; - XML_Content *cpos; - XML_Char * str; - int allocsize = (dtd->scaffCount * sizeof(XML_Content) - + (dtd->contentStringLen * sizeof(XML_Char))); - - ret = (XML_Content *)MALLOC(allocsize); - if (!ret) - return NULL; - - str = (XML_Char *) (&ret[dtd->scaffCount]); - cpos = &ret[1]; - - build_node(parser, 0, ret, &cpos, &str); - return ret; -} - -static ELEMENT_TYPE * -getElementType(XML_Parser parser, - const ENCODING *enc, - const char *ptr, - const char *end) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *name = poolStoreString(&dtd->pool, enc, ptr, end); - ELEMENT_TYPE *ret; - - if (!name) - return NULL; - ret = (ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(ELEMENT_TYPE)); - if (!ret) - return NULL; - if (ret->name != name) - poolDiscard(&dtd->pool); - else { - poolFinish(&dtd->pool); - if (!setElementTypePrefix(parser, ret)) - return NULL; - } - return ret; -} - -static XML_Char * -copyString(const XML_Char *s, - const XML_Memory_Handling_Suite *memsuite) -{ - int charsRequired = 0; - XML_Char *result; - - /* First determine how long the string is */ - while (s[charsRequired] != 0) { - charsRequired++; - } - /* Include the terminator */ - charsRequired++; - - /* Now allocate space for the copy */ - result = memsuite->malloc_fcn(charsRequired * sizeof(XML_Char)); - if (result == NULL) - return NULL; - /* Copy the original into place */ - memcpy(result, s, charsRequired * sizeof(XML_Char)); - return result; -} diff --git a/src/utility/xlsxread/expat/xmlrole.c b/src/utility/xlsxread/expat/xmlrole.c deleted file mode 100644 index df4a443d1..000000000 --- a/src/utility/xlsxread/expat/xmlrole.c +++ /dev/null @@ -1,1384 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#include - -#ifdef _WIN32 -#include "winconfig.h" -#else -#include "expat_config.h" -#endif /* ndef _WIN32 */ - -#include "expat_external.h" -#include "internal.h" -#include "xmlrole.h" -#include "ascii.h" - -/* Doesn't check: - - that ,| are not mixed in a model group - content of literals - -*/ - -static const char KW_ANY[] = { - ASCII_A, ASCII_N, ASCII_Y, '\0' }; -static const char KW_ATTLIST[] = { - ASCII_A, ASCII_T, ASCII_T, ASCII_L, ASCII_I, ASCII_S, ASCII_T, '\0' }; -static const char KW_CDATA[] = { - ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_DOCTYPE[] = { - ASCII_D, ASCII_O, ASCII_C, ASCII_T, ASCII_Y, ASCII_P, ASCII_E, '\0' }; -static const char KW_ELEMENT[] = { - ASCII_E, ASCII_L, ASCII_E, ASCII_M, ASCII_E, ASCII_N, ASCII_T, '\0' }; -static const char KW_EMPTY[] = { - ASCII_E, ASCII_M, ASCII_P, ASCII_T, ASCII_Y, '\0' }; -static const char KW_ENTITIES[] = { - ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_I, ASCII_E, ASCII_S, - '\0' }; -static const char KW_ENTITY[] = { - ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0' }; -static const char KW_FIXED[] = { - ASCII_F, ASCII_I, ASCII_X, ASCII_E, ASCII_D, '\0' }; -static const char KW_ID[] = { - ASCII_I, ASCII_D, '\0' }; -static const char KW_IDREF[] = { - ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0' }; -static const char KW_IDREFS[] = { - ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0' }; -#ifdef XML_DTD -static const char KW_IGNORE[] = { - ASCII_I, ASCII_G, ASCII_N, ASCII_O, ASCII_R, ASCII_E, '\0' }; -#endif -static const char KW_IMPLIED[] = { - ASCII_I, ASCII_M, ASCII_P, ASCII_L, ASCII_I, ASCII_E, ASCII_D, '\0' }; -#ifdef XML_DTD -static const char KW_INCLUDE[] = { - ASCII_I, ASCII_N, ASCII_C, ASCII_L, ASCII_U, ASCII_D, ASCII_E, '\0' }; -#endif -static const char KW_NDATA[] = { - ASCII_N, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_NMTOKEN[] = { - ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0' }; -static const char KW_NMTOKENS[] = { - ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, ASCII_S, - '\0' }; -static const char KW_NOTATION[] = - { ASCII_N, ASCII_O, ASCII_T, ASCII_A, ASCII_T, ASCII_I, ASCII_O, ASCII_N, - '\0' }; -static const char KW_PCDATA[] = { - ASCII_P, ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_PUBLIC[] = { - ASCII_P, ASCII_U, ASCII_B, ASCII_L, ASCII_I, ASCII_C, '\0' }; -static const char KW_REQUIRED[] = { - ASCII_R, ASCII_E, ASCII_Q, ASCII_U, ASCII_I, ASCII_R, ASCII_E, ASCII_D, - '\0' }; -static const char KW_SYSTEM[] = { - ASCII_S, ASCII_Y, ASCII_S, ASCII_T, ASCII_E, ASCII_M, '\0' }; - -#ifndef MIN_BYTES_PER_CHAR -#define MIN_BYTES_PER_CHAR(enc) ((enc)->minBytesPerChar) -#endif - -#ifdef XML_DTD -#define setTopLevel(state) \ - ((state)->handler = ((state)->documentEntity \ - ? internalSubset \ - : externalSubset1)) -#else /* not XML_DTD */ -#define setTopLevel(state) ((state)->handler = internalSubset) -#endif /* not XML_DTD */ - -typedef int PTRCALL PROLOG_HANDLER(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc); - -static PROLOG_HANDLER - prolog0, prolog1, prolog2, - doctype0, doctype1, doctype2, doctype3, doctype4, doctype5, - internalSubset, - entity0, entity1, entity2, entity3, entity4, entity5, entity6, - entity7, entity8, entity9, entity10, - notation0, notation1, notation2, notation3, notation4, - attlist0, attlist1, attlist2, attlist3, attlist4, attlist5, attlist6, - attlist7, attlist8, attlist9, - element0, element1, element2, element3, element4, element5, element6, - element7, -#ifdef XML_DTD - externalSubset0, externalSubset1, - condSect0, condSect1, condSect2, -#endif /* XML_DTD */ - declClose, - error; - -static int FASTCALL common(PROLOG_STATE *state, int tok); - -static int PTRCALL -prolog0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - state->handler = prolog1; - return XML_ROLE_NONE; - case XML_TOK_XML_DECL: - state->handler = prolog1; - return XML_ROLE_XML_DECL; - case XML_TOK_PI: - state->handler = prolog1; - return XML_ROLE_PI; - case XML_TOK_COMMENT: - state->handler = prolog1; - return XML_ROLE_COMMENT; - case XML_TOK_BOM: - return XML_ROLE_NONE; - case XML_TOK_DECL_OPEN: - if (!XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_DOCTYPE)) - break; - state->handler = doctype0; - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_INSTANCE_START: - state->handler = error; - return XML_ROLE_INSTANCE_START; - } - return common(state, tok); -} - -static int PTRCALL -prolog1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_PI: - return XML_ROLE_PI; - case XML_TOK_COMMENT: - return XML_ROLE_COMMENT; - case XML_TOK_BOM: - /* This case can never arise. To reach this role function, the - * parse must have passed through prolog0 and therefore have had - * some form of input, even if only a space. At that point, a - * byte order mark is no longer a valid character (though - * technically it should be interpreted as a non-breaking space), - * so will be rejected by the tokenizing stages. - */ - return XML_ROLE_NONE; /* LCOV_EXCL_LINE */ - case XML_TOK_DECL_OPEN: - if (!XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_DOCTYPE)) - break; - state->handler = doctype0; - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_INSTANCE_START: - state->handler = error; - return XML_ROLE_INSTANCE_START; - } - return common(state, tok); -} - -static int PTRCALL -prolog2(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_PI: - return XML_ROLE_PI; - case XML_TOK_COMMENT: - return XML_ROLE_COMMENT; - case XML_TOK_INSTANCE_START: - state->handler = error; - return XML_ROLE_INSTANCE_START; - } - return common(state, tok); -} - -static int PTRCALL -doctype0(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = doctype1; - return XML_ROLE_DOCTYPE_NAME; - } - return common(state, tok); -} - -static int PTRCALL -doctype1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_OPEN_BRACKET: - state->handler = internalSubset; - return XML_ROLE_DOCTYPE_INTERNAL_SUBSET; - case XML_TOK_DECL_CLOSE: - state->handler = prolog2; - return XML_ROLE_DOCTYPE_CLOSE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) { - state->handler = doctype3; - return XML_ROLE_DOCTYPE_NONE; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) { - state->handler = doctype2; - return XML_ROLE_DOCTYPE_NONE; - } - break; - } - return common(state, tok); -} - -static int PTRCALL -doctype2(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_LITERAL: - state->handler = doctype3; - return XML_ROLE_DOCTYPE_PUBLIC_ID; - } - return common(state, tok); -} - -static int PTRCALL -doctype3(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_LITERAL: - state->handler = doctype4; - return XML_ROLE_DOCTYPE_SYSTEM_ID; - } - return common(state, tok); -} - -static int PTRCALL -doctype4(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_OPEN_BRACKET: - state->handler = internalSubset; - return XML_ROLE_DOCTYPE_INTERNAL_SUBSET; - case XML_TOK_DECL_CLOSE: - state->handler = prolog2; - return XML_ROLE_DOCTYPE_CLOSE; - } - return common(state, tok); -} - -static int PTRCALL -doctype5(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_DECL_CLOSE: - state->handler = prolog2; - return XML_ROLE_DOCTYPE_CLOSE; - } - return common(state, tok); -} - -static int PTRCALL -internalSubset(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_DECL_OPEN: - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_ENTITY)) { - state->handler = entity0; - return XML_ROLE_ENTITY_NONE; - } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_ATTLIST)) { - state->handler = attlist0; - return XML_ROLE_ATTLIST_NONE; - } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_ELEMENT)) { - state->handler = element0; - return XML_ROLE_ELEMENT_NONE; - } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_NOTATION)) { - state->handler = notation0; - return XML_ROLE_NOTATION_NONE; - } - break; - case XML_TOK_PI: - return XML_ROLE_PI; - case XML_TOK_COMMENT: - return XML_ROLE_COMMENT; - case XML_TOK_PARAM_ENTITY_REF: - return XML_ROLE_PARAM_ENTITY_REF; - case XML_TOK_CLOSE_BRACKET: - state->handler = doctype5; - return XML_ROLE_DOCTYPE_NONE; - case XML_TOK_NONE: - return XML_ROLE_NONE; - } - return common(state, tok); -} - -#ifdef XML_DTD - -static int PTRCALL -externalSubset0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - state->handler = externalSubset1; - if (tok == XML_TOK_XML_DECL) - return XML_ROLE_TEXT_DECL; - return externalSubset1(state, tok, ptr, end, enc); -} - -static int PTRCALL -externalSubset1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_COND_SECT_OPEN: - state->handler = condSect0; - return XML_ROLE_NONE; - case XML_TOK_COND_SECT_CLOSE: - if (state->includeLevel == 0) - break; - state->includeLevel -= 1; - return XML_ROLE_NONE; - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_CLOSE_BRACKET: - break; - case XML_TOK_NONE: - if (state->includeLevel) - break; - return XML_ROLE_NONE; - default: - return internalSubset(state, tok, ptr, end, enc); - } - return common(state, tok); -} - -#endif /* XML_DTD */ - -static int PTRCALL -entity0(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_PERCENT: - state->handler = entity1; - return XML_ROLE_ENTITY_NONE; - case XML_TOK_NAME: - state->handler = entity2; - return XML_ROLE_GENERAL_ENTITY_NAME; - } - return common(state, tok); -} - -static int PTRCALL -entity1(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_NAME: - state->handler = entity7; - return XML_ROLE_PARAM_ENTITY_NAME; - } - return common(state, tok); -} - -static int PTRCALL -entity2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) { - state->handler = entity4; - return XML_ROLE_ENTITY_NONE; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) { - state->handler = entity3; - return XML_ROLE_ENTITY_NONE; - } - break; - case XML_TOK_LITERAL: - state->handler = declClose; - state->role_none = XML_ROLE_ENTITY_NONE; - return XML_ROLE_ENTITY_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -entity3(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_LITERAL: - state->handler = entity4; - return XML_ROLE_ENTITY_PUBLIC_ID; - } - return common(state, tok); -} - -static int PTRCALL -entity4(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_LITERAL: - state->handler = entity5; - return XML_ROLE_ENTITY_SYSTEM_ID; - } - return common(state, tok); -} - -static int PTRCALL -entity5(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_DECL_CLOSE: - setTopLevel(state); - return XML_ROLE_ENTITY_COMPLETE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_NDATA)) { - state->handler = entity6; - return XML_ROLE_ENTITY_NONE; - } - break; - } - return common(state, tok); -} - -static int PTRCALL -entity6(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_NAME: - state->handler = declClose; - state->role_none = XML_ROLE_ENTITY_NONE; - return XML_ROLE_ENTITY_NOTATION_NAME; - } - return common(state, tok); -} - -static int PTRCALL -entity7(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) { - state->handler = entity9; - return XML_ROLE_ENTITY_NONE; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) { - state->handler = entity8; - return XML_ROLE_ENTITY_NONE; - } - break; - case XML_TOK_LITERAL: - state->handler = declClose; - state->role_none = XML_ROLE_ENTITY_NONE; - return XML_ROLE_ENTITY_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -entity8(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_LITERAL: - state->handler = entity9; - return XML_ROLE_ENTITY_PUBLIC_ID; - } - return common(state, tok); -} - -static int PTRCALL -entity9(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_LITERAL: - state->handler = entity10; - return XML_ROLE_ENTITY_SYSTEM_ID; - } - return common(state, tok); -} - -static int PTRCALL -entity10(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ENTITY_NONE; - case XML_TOK_DECL_CLOSE: - setTopLevel(state); - return XML_ROLE_ENTITY_COMPLETE; - } - return common(state, tok); -} - -static int PTRCALL -notation0(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NOTATION_NONE; - case XML_TOK_NAME: - state->handler = notation1; - return XML_ROLE_NOTATION_NAME; - } - return common(state, tok); -} - -static int PTRCALL -notation1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NOTATION_NONE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) { - state->handler = notation3; - return XML_ROLE_NOTATION_NONE; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) { - state->handler = notation2; - return XML_ROLE_NOTATION_NONE; - } - break; - } - return common(state, tok); -} - -static int PTRCALL -notation2(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NOTATION_NONE; - case XML_TOK_LITERAL: - state->handler = notation4; - return XML_ROLE_NOTATION_PUBLIC_ID; - } - return common(state, tok); -} - -static int PTRCALL -notation3(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NOTATION_NONE; - case XML_TOK_LITERAL: - state->handler = declClose; - state->role_none = XML_ROLE_NOTATION_NONE; - return XML_ROLE_NOTATION_SYSTEM_ID; - } - return common(state, tok); -} - -static int PTRCALL -notation4(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NOTATION_NONE; - case XML_TOK_LITERAL: - state->handler = declClose; - state->role_none = XML_ROLE_NOTATION_NONE; - return XML_ROLE_NOTATION_SYSTEM_ID; - case XML_TOK_DECL_CLOSE: - setTopLevel(state); - return XML_ROLE_NOTATION_NO_SYSTEM_ID; - } - return common(state, tok); -} - -static int PTRCALL -attlist0(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = attlist1; - return XML_ROLE_ATTLIST_ELEMENT_NAME; - } - return common(state, tok); -} - -static int PTRCALL -attlist1(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_DECL_CLOSE: - setTopLevel(state); - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = attlist2; - return XML_ROLE_ATTRIBUTE_NAME; - } - return common(state, tok); -} - -static int PTRCALL -attlist2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NAME: - { - static const char * const types[] = { - KW_CDATA, - KW_ID, - KW_IDREF, - KW_IDREFS, - KW_ENTITY, - KW_ENTITIES, - KW_NMTOKEN, - KW_NMTOKENS, - }; - int i; - for (i = 0; i < (int)(sizeof(types)/sizeof(types[0])); i++) - if (XmlNameMatchesAscii(enc, ptr, end, types[i])) { - state->handler = attlist8; - return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i; - } - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_NOTATION)) { - state->handler = attlist5; - return XML_ROLE_ATTLIST_NONE; - } - break; - case XML_TOK_OPEN_PAREN: - state->handler = attlist3; - return XML_ROLE_ATTLIST_NONE; - } - return common(state, tok); -} - -static int PTRCALL -attlist3(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NMTOKEN: - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = attlist4; - return XML_ROLE_ATTRIBUTE_ENUM_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -attlist4(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_CLOSE_PAREN: - state->handler = attlist8; - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_OR: - state->handler = attlist3; - return XML_ROLE_ATTLIST_NONE; - } - return common(state, tok); -} - -static int PTRCALL -attlist5(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_OPEN_PAREN: - state->handler = attlist6; - return XML_ROLE_ATTLIST_NONE; - } - return common(state, tok); -} - -static int PTRCALL -attlist6(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NAME: - state->handler = attlist7; - return XML_ROLE_ATTRIBUTE_NOTATION_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -attlist7(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_CLOSE_PAREN: - state->handler = attlist8; - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_OR: - state->handler = attlist6; - return XML_ROLE_ATTLIST_NONE; - } - return common(state, tok); -} - -/* default value */ -static int PTRCALL -attlist8(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_POUND_NAME: - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, - KW_IMPLIED)) { - state->handler = attlist1; - return XML_ROLE_IMPLIED_ATTRIBUTE_VALUE; - } - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, - KW_REQUIRED)) { - state->handler = attlist1; - return XML_ROLE_REQUIRED_ATTRIBUTE_VALUE; - } - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, - KW_FIXED)) { - state->handler = attlist9; - return XML_ROLE_ATTLIST_NONE; - } - break; - case XML_TOK_LITERAL: - state->handler = attlist1; - return XML_ROLE_DEFAULT_ATTRIBUTE_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -attlist9(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ATTLIST_NONE; - case XML_TOK_LITERAL: - state->handler = attlist1; - return XML_ROLE_FIXED_ATTRIBUTE_VALUE; - } - return common(state, tok); -} - -static int PTRCALL -element0(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = element1; - return XML_ROLE_ELEMENT_NAME; - } - return common(state, tok); -} - -static int PTRCALL -element1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_EMPTY)) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - return XML_ROLE_CONTENT_EMPTY; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_ANY)) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - return XML_ROLE_CONTENT_ANY; - } - break; - case XML_TOK_OPEN_PAREN: - state->handler = element2; - state->level = 1; - return XML_ROLE_GROUP_OPEN; - } - return common(state, tok); -} - -static int PTRCALL -element2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_POUND_NAME: - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, - KW_PCDATA)) { - state->handler = element3; - return XML_ROLE_CONTENT_PCDATA; - } - break; - case XML_TOK_OPEN_PAREN: - state->level = 2; - state->handler = element6; - return XML_ROLE_GROUP_OPEN; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT; - case XML_TOK_NAME_QUESTION: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_OPT; - case XML_TOK_NAME_ASTERISK: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_REP; - case XML_TOK_NAME_PLUS: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_PLUS; - } - return common(state, tok); -} - -static int PTRCALL -element3(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_CLOSE_PAREN: - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - return XML_ROLE_GROUP_CLOSE; - case XML_TOK_CLOSE_PAREN_ASTERISK: - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - return XML_ROLE_GROUP_CLOSE_REP; - case XML_TOK_OR: - state->handler = element4; - return XML_ROLE_ELEMENT_NONE; - } - return common(state, tok); -} - -static int PTRCALL -element4(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = element5; - return XML_ROLE_CONTENT_ELEMENT; - } - return common(state, tok); -} - -static int PTRCALL -element5(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_CLOSE_PAREN_ASTERISK: - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - return XML_ROLE_GROUP_CLOSE_REP; - case XML_TOK_OR: - state->handler = element4; - return XML_ROLE_ELEMENT_NONE; - } - return common(state, tok); -} - -static int PTRCALL -element6(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_OPEN_PAREN: - state->level += 1; - return XML_ROLE_GROUP_OPEN; - case XML_TOK_NAME: - case XML_TOK_PREFIXED_NAME: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT; - case XML_TOK_NAME_QUESTION: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_OPT; - case XML_TOK_NAME_ASTERISK: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_REP; - case XML_TOK_NAME_PLUS: - state->handler = element7; - return XML_ROLE_CONTENT_ELEMENT_PLUS; - } - return common(state, tok); -} - -static int PTRCALL -element7(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_ELEMENT_NONE; - case XML_TOK_CLOSE_PAREN: - state->level -= 1; - if (state->level == 0) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - } - return XML_ROLE_GROUP_CLOSE; - case XML_TOK_CLOSE_PAREN_ASTERISK: - state->level -= 1; - if (state->level == 0) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - } - return XML_ROLE_GROUP_CLOSE_REP; - case XML_TOK_CLOSE_PAREN_QUESTION: - state->level -= 1; - if (state->level == 0) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - } - return XML_ROLE_GROUP_CLOSE_OPT; - case XML_TOK_CLOSE_PAREN_PLUS: - state->level -= 1; - if (state->level == 0) { - state->handler = declClose; - state->role_none = XML_ROLE_ELEMENT_NONE; - } - return XML_ROLE_GROUP_CLOSE_PLUS; - case XML_TOK_COMMA: - state->handler = element6; - return XML_ROLE_GROUP_SEQUENCE; - case XML_TOK_OR: - state->handler = element6; - return XML_ROLE_GROUP_CHOICE; - } - return common(state, tok); -} - -#ifdef XML_DTD - -static int PTRCALL -condSect0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_NAME: - if (XmlNameMatchesAscii(enc, ptr, end, KW_INCLUDE)) { - state->handler = condSect1; - return XML_ROLE_NONE; - } - if (XmlNameMatchesAscii(enc, ptr, end, KW_IGNORE)) { - state->handler = condSect2; - return XML_ROLE_NONE; - } - break; - } - return common(state, tok); -} - -static int PTRCALL -condSect1(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_OPEN_BRACKET: - state->handler = externalSubset1; - state->includeLevel += 1; - return XML_ROLE_NONE; - } - return common(state, tok); -} - -static int PTRCALL -condSect2(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return XML_ROLE_NONE; - case XML_TOK_OPEN_BRACKET: - state->handler = externalSubset1; - return XML_ROLE_IGNORE_SECT; - } - return common(state, tok); -} - -#endif /* XML_DTD */ - -static int PTRCALL -declClose(PROLOG_STATE *state, - int tok, - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - switch (tok) { - case XML_TOK_PROLOG_S: - return state->role_none; - case XML_TOK_DECL_CLOSE: - setTopLevel(state); - return state->role_none; - } - return common(state, tok); -} - -/* This function will only be invoked if the internal logic of the - * parser has broken down. It is used in two cases: - * - * 1: When the XML prolog has been finished. At this point the - * processor (the parser level above these role handlers) should - * switch from prologProcessor to contentProcessor and reinitialise - * the handler function. - * - * 2: When an error has been detected (via common() below). At this - * point again the processor should be switched to errorProcessor, - * which will never call a handler. - * - * The result of this is that error() can only be called if the - * processor switch failed to happen, which is an internal error and - * therefore we shouldn't be able to provoke it simply by using the - * library. It is a necessary backstop, however, so we merely exclude - * it from the coverage statistics. - * - * LCOV_EXCL_START - */ -static int PTRCALL -error(PROLOG_STATE *UNUSED_P(state), - int UNUSED_P(tok), - const char *UNUSED_P(ptr), - const char *UNUSED_P(end), - const ENCODING *UNUSED_P(enc)) -{ - return XML_ROLE_NONE; -} -/* LCOV_EXCL_STOP */ - -static int FASTCALL -common(PROLOG_STATE *state, int tok) -{ -#ifdef XML_DTD - if (!state->documentEntity && tok == XML_TOK_PARAM_ENTITY_REF) - return XML_ROLE_INNER_PARAM_ENTITY_REF; -#endif - state->handler = error; - return XML_ROLE_ERROR; -} - -void -XmlPrologStateInit(PROLOG_STATE *state) -{ - state->handler = prolog0; -#ifdef XML_DTD - state->documentEntity = 1; - state->includeLevel = 0; - state->inEntityValue = 0; -#endif /* XML_DTD */ -} - -#ifdef XML_DTD - -void -XmlPrologStateInitExternalEntity(PROLOG_STATE *state) -{ - state->handler = externalSubset0; - state->documentEntity = 0; - state->includeLevel = 0; -} - -#endif /* XML_DTD */ diff --git a/src/utility/xlsxread/expat/xmlrole.h b/src/utility/xlsxread/expat/xmlrole.h deleted file mode 100644 index e5f048eab..000000000 --- a/src/utility/xlsxread/expat/xmlrole.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef XmlRole_INCLUDED -#define XmlRole_INCLUDED 1 - -#ifdef __VMS -/* 0 1 2 3 0 1 2 3 - 1234567890123456789012345678901 1234567890123456789012345678901 */ -#define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt -#endif - -#include "xmltok.h" - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - XML_ROLE_ERROR = -1, - XML_ROLE_NONE = 0, - XML_ROLE_XML_DECL, - XML_ROLE_INSTANCE_START, - XML_ROLE_DOCTYPE_NONE, - XML_ROLE_DOCTYPE_NAME, - XML_ROLE_DOCTYPE_SYSTEM_ID, - XML_ROLE_DOCTYPE_PUBLIC_ID, - XML_ROLE_DOCTYPE_INTERNAL_SUBSET, - XML_ROLE_DOCTYPE_CLOSE, - XML_ROLE_GENERAL_ENTITY_NAME, - XML_ROLE_PARAM_ENTITY_NAME, - XML_ROLE_ENTITY_NONE, - XML_ROLE_ENTITY_VALUE, - XML_ROLE_ENTITY_SYSTEM_ID, - XML_ROLE_ENTITY_PUBLIC_ID, - XML_ROLE_ENTITY_COMPLETE, - XML_ROLE_ENTITY_NOTATION_NAME, - XML_ROLE_NOTATION_NONE, - XML_ROLE_NOTATION_NAME, - XML_ROLE_NOTATION_SYSTEM_ID, - XML_ROLE_NOTATION_NO_SYSTEM_ID, - XML_ROLE_NOTATION_PUBLIC_ID, - XML_ROLE_ATTRIBUTE_NAME, - XML_ROLE_ATTRIBUTE_TYPE_CDATA, - XML_ROLE_ATTRIBUTE_TYPE_ID, - XML_ROLE_ATTRIBUTE_TYPE_IDREF, - XML_ROLE_ATTRIBUTE_TYPE_IDREFS, - XML_ROLE_ATTRIBUTE_TYPE_ENTITY, - XML_ROLE_ATTRIBUTE_TYPE_ENTITIES, - XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN, - XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS, - XML_ROLE_ATTRIBUTE_ENUM_VALUE, - XML_ROLE_ATTRIBUTE_NOTATION_VALUE, - XML_ROLE_ATTLIST_NONE, - XML_ROLE_ATTLIST_ELEMENT_NAME, - XML_ROLE_IMPLIED_ATTRIBUTE_VALUE, - XML_ROLE_REQUIRED_ATTRIBUTE_VALUE, - XML_ROLE_DEFAULT_ATTRIBUTE_VALUE, - XML_ROLE_FIXED_ATTRIBUTE_VALUE, - XML_ROLE_ELEMENT_NONE, - XML_ROLE_ELEMENT_NAME, - XML_ROLE_CONTENT_ANY, - XML_ROLE_CONTENT_EMPTY, - XML_ROLE_CONTENT_PCDATA, - XML_ROLE_GROUP_OPEN, - XML_ROLE_GROUP_CLOSE, - XML_ROLE_GROUP_CLOSE_REP, - XML_ROLE_GROUP_CLOSE_OPT, - XML_ROLE_GROUP_CLOSE_PLUS, - XML_ROLE_GROUP_CHOICE, - XML_ROLE_GROUP_SEQUENCE, - XML_ROLE_CONTENT_ELEMENT, - XML_ROLE_CONTENT_ELEMENT_REP, - XML_ROLE_CONTENT_ELEMENT_OPT, - XML_ROLE_CONTENT_ELEMENT_PLUS, - XML_ROLE_PI, - XML_ROLE_COMMENT, -#ifdef XML_DTD - XML_ROLE_TEXT_DECL, - XML_ROLE_IGNORE_SECT, - XML_ROLE_INNER_PARAM_ENTITY_REF, -#endif /* XML_DTD */ - XML_ROLE_PARAM_ENTITY_REF -}; - -typedef struct prolog_state { - int (PTRCALL *handler) (struct prolog_state *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc); - unsigned level; - int role_none; -#ifdef XML_DTD - unsigned includeLevel; - int documentEntity; - int inEntityValue; -#endif /* XML_DTD */ -} PROLOG_STATE; - -void XmlPrologStateInit(PROLOG_STATE *); -#ifdef XML_DTD -void XmlPrologStateInitExternalEntity(PROLOG_STATE *); -#endif /* XML_DTD */ - -#define XmlTokenRole(state, tok, ptr, end, enc) \ - (((state)->handler)(state, tok, ptr, end, enc)) - -#ifdef __cplusplus -} -#endif - -#endif /* not XmlRole_INCLUDED */ diff --git a/src/utility/xlsxread/expat/xmltok.c b/src/utility/xlsxread/expat/xmltok.c deleted file mode 100644 index 424b39c05..000000000 --- a/src/utility/xlsxread/expat/xmltok.c +++ /dev/null @@ -1,1793 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#include -#include -#include // memcpy - -#ifdef _WIN32 -#include "winconfig.h" -#else -#include "expat_config.h" -#endif /* ndef _WIN32 */ - -#include "expat_external.h" -#include "internal.h" -#include "xmltok.h" -#include "nametab.h" - -#ifdef XML_DTD -#define IGNORE_SECTION_TOK_VTABLE , PREFIX(ignoreSectionTok) -#else -#define IGNORE_SECTION_TOK_VTABLE /* as nothing */ -#endif - -#define VTABLE1 \ - { PREFIX(prologTok), PREFIX(contentTok), \ - PREFIX(cdataSectionTok) IGNORE_SECTION_TOK_VTABLE }, \ - { PREFIX(attributeValueTok), PREFIX(entityValueTok) }, \ - PREFIX(sameName), \ - PREFIX(nameMatchesAscii), \ - PREFIX(nameLength), \ - PREFIX(skipS), \ - PREFIX(getAtts), \ - PREFIX(charRefNumber), \ - PREFIX(predefinedEntityName), \ - PREFIX(updatePosition), \ - PREFIX(isPublicId) - -#define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16) - -#define UCS2_GET_NAMING(pages, hi, lo) \ - (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1u << ((lo) & 0x1F))) - -/* A 2 byte UTF-8 representation splits the characters 11 bits between - the bottom 5 and 6 bits of the bytes. We need 8 bits to index into - pages, 3 bits to add to that index and 5 bits to generate the mask. -*/ -#define UTF8_GET_NAMING2(pages, byte) \ - (namingBitmap[((pages)[(((byte)[0]) >> 2) & 7] << 3) \ - + ((((byte)[0]) & 3) << 1) \ - + ((((byte)[1]) >> 5) & 1)] \ - & (1u << (((byte)[1]) & 0x1F))) - -/* A 3 byte UTF-8 representation splits the characters 16 bits between - the bottom 4, 6 and 6 bits of the bytes. We need 8 bits to index - into pages, 3 bits to add to that index and 5 bits to generate the - mask. -*/ -#define UTF8_GET_NAMING3(pages, byte) \ - (namingBitmap[((pages)[((((byte)[0]) & 0xF) << 4) \ - + ((((byte)[1]) >> 2) & 0xF)] \ - << 3) \ - + ((((byte)[1]) & 3) << 1) \ - + ((((byte)[2]) >> 5) & 1)] \ - & (1u << (((byte)[2]) & 0x1F))) - -#define UTF8_GET_NAMING(pages, p, n) \ - ((n) == 2 \ - ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \ - : ((n) == 3 \ - ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \ - : 0)) - -/* Detection of invalid UTF-8 sequences is based on Table 3.1B - of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ - with the additional restriction of not allowing the Unicode - code points 0xFFFF and 0xFFFE (sequences EF,BF,BF and EF,BF,BE). - Implementation details: - (A & 0x80) == 0 means A < 0x80 - and - (A & 0xC0) == 0xC0 means A > 0xBF -*/ - -#define UTF8_INVALID2(p) \ - ((*p) < 0xC2 || ((p)[1] & 0x80) == 0 || ((p)[1] & 0xC0) == 0xC0) - -#define UTF8_INVALID3(p) \ - (((p)[2] & 0x80) == 0 \ - || \ - ((*p) == 0xEF && (p)[1] == 0xBF \ - ? \ - (p)[2] > 0xBD \ - : \ - ((p)[2] & 0xC0) == 0xC0) \ - || \ - ((*p) == 0xE0 \ - ? \ - (p)[1] < 0xA0 || ((p)[1] & 0xC0) == 0xC0 \ - : \ - ((p)[1] & 0x80) == 0 \ - || \ - ((*p) == 0xED ? (p)[1] > 0x9F : ((p)[1] & 0xC0) == 0xC0))) - -#define UTF8_INVALID4(p) \ - (((p)[3] & 0x80) == 0 || ((p)[3] & 0xC0) == 0xC0 \ - || \ - ((p)[2] & 0x80) == 0 || ((p)[2] & 0xC0) == 0xC0 \ - || \ - ((*p) == 0xF0 \ - ? \ - (p)[1] < 0x90 || ((p)[1] & 0xC0) == 0xC0 \ - : \ - ((p)[1] & 0x80) == 0 \ - || \ - ((*p) == 0xF4 ? (p)[1] > 0x8F : ((p)[1] & 0xC0) == 0xC0))) - -static int PTRFASTCALL -isNever(const ENCODING *UNUSED_P(enc), const char *UNUSED_P(p)) -{ - return 0; -} - -static int PTRFASTCALL -utf8_isName2(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_GET_NAMING2(namePages, (const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isName3(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_GET_NAMING3(namePages, (const unsigned char *)p); -} - -#define utf8_isName4 isNever - -static int PTRFASTCALL -utf8_isNmstrt2(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_GET_NAMING2(nmstrtPages, (const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isNmstrt3(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_GET_NAMING3(nmstrtPages, (const unsigned char *)p); -} - -#define utf8_isNmstrt4 isNever - -static int PTRFASTCALL -utf8_isInvalid2(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_INVALID2((const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isInvalid3(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_INVALID3((const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isInvalid4(const ENCODING *UNUSED_P(enc), const char *p) -{ - return UTF8_INVALID4((const unsigned char *)p); -} - -struct normal_encoding { - ENCODING enc; - unsigned char type[256]; -#ifdef XML_MIN_SIZE - int (PTRFASTCALL *byteType)(const ENCODING *, const char *); - int (PTRFASTCALL *isNameMin)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrtMin)(const ENCODING *, const char *); - int (PTRFASTCALL *byteToAscii)(const ENCODING *, const char *); - int (PTRCALL *charMatches)(const ENCODING *, const char *, int); -#endif /* XML_MIN_SIZE */ - int (PTRFASTCALL *isName2)(const ENCODING *, const char *); - int (PTRFASTCALL *isName3)(const ENCODING *, const char *); - int (PTRFASTCALL *isName4)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt2)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt3)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt4)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid2)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid3)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid4)(const ENCODING *, const char *); -}; - -#define AS_NORMAL_ENCODING(enc) ((const struct normal_encoding *) (enc)) - -#ifdef XML_MIN_SIZE - -#define STANDARD_VTABLE(E) \ - E ## byteType, \ - E ## isNameMin, \ - E ## isNmstrtMin, \ - E ## byteToAscii, \ - E ## charMatches, - -#else - -#define STANDARD_VTABLE(E) /* as nothing */ - -#endif - -#define NORMAL_VTABLE(E) \ - E ## isName2, \ - E ## isName3, \ - E ## isName4, \ - E ## isNmstrt2, \ - E ## isNmstrt3, \ - E ## isNmstrt4, \ - E ## isInvalid2, \ - E ## isInvalid3, \ - E ## isInvalid4 - -#define NULL_VTABLE \ - /* isName2 */ NULL, \ - /* isName3 */ NULL, \ - /* isName4 */ NULL, \ - /* isNmstrt2 */ NULL, \ - /* isNmstrt3 */ NULL, \ - /* isNmstrt4 */ NULL, \ - /* isInvalid2 */ NULL, \ - /* isInvalid3 */ NULL, \ - /* isInvalid4 */ NULL - -static int FASTCALL checkCharRefNumber(int); - -#include "xmltok_impl.h" -#include "ascii.h" - -#ifdef XML_MIN_SIZE -#define sb_isNameMin isNever -#define sb_isNmstrtMin isNever -#endif - -#ifdef XML_MIN_SIZE -#define MINBPC(enc) ((enc)->minBytesPerChar) -#else -/* minimum bytes per character */ -#define MINBPC(enc) 1 -#endif - -#define SB_BYTE_TYPE(enc, p) \ - (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)]) - -#ifdef XML_MIN_SIZE -static int PTRFASTCALL -sb_byteType(const ENCODING *enc, const char *p) -{ - return SB_BYTE_TYPE(enc, p); -} -#define BYTE_TYPE(enc, p) \ - (AS_NORMAL_ENCODING(enc)->byteType(enc, p)) -#else -#define BYTE_TYPE(enc, p) SB_BYTE_TYPE(enc, p) -#endif - -#ifdef XML_MIN_SIZE -#define BYTE_TO_ASCII(enc, p) \ - (AS_NORMAL_ENCODING(enc)->byteToAscii(enc, p)) -static int PTRFASTCALL -sb_byteToAscii(const ENCODING *enc, const char *p) -{ - return *p; -} -#else -#define BYTE_TO_ASCII(enc, p) (*(p)) -#endif - -#define IS_NAME_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isName ## n(enc, p)) -#define IS_NMSTRT_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isNmstrt ## n(enc, p)) -#define IS_INVALID_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isInvalid ## n(enc, p)) - -#ifdef XML_MIN_SIZE -#define IS_NAME_CHAR_MINBPC(enc, p) \ - (AS_NORMAL_ENCODING(enc)->isNameMin(enc, p)) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) \ - (AS_NORMAL_ENCODING(enc)->isNmstrtMin(enc, p)) -#else -#define IS_NAME_CHAR_MINBPC(enc, p) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) (0) -#endif - -#ifdef XML_MIN_SIZE -#define CHAR_MATCHES(enc, p, c) \ - (AS_NORMAL_ENCODING(enc)->charMatches(enc, p, c)) -static int PTRCALL -sb_charMatches(const ENCODING *enc, const char *p, int c) -{ - return *p == c; -} -#else -/* c is an ASCII character */ -#define CHAR_MATCHES(enc, p, c) (*(p) == c) -#endif - -#define PREFIX(ident) normal_ ## ident -#define XML_TOK_IMPL_C -#include "xmltok_impl.c" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -enum { /* UTF8_cvalN is value of masked first byte of N byte sequence */ - UTF8_cval1 = 0x00, - UTF8_cval2 = 0xc0, - UTF8_cval3 = 0xe0, - UTF8_cval4 = 0xf0 -}; - -void -align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef) -{ - const char * fromLim = *fromLimRef; - size_t walked = 0; - for (; fromLim > from; fromLim--, walked++) { - const unsigned char prev = (unsigned char)fromLim[-1]; - if ((prev & 0xf8u) == 0xf0u) { /* 4-byte character, lead by 0b11110xxx byte */ - if (walked + 1 >= 4) { - fromLim += 4 - 1; - break; - } else { - walked = 0; - } - } else if ((prev & 0xf0u) == 0xe0u) { /* 3-byte character, lead by 0b1110xxxx byte */ - if (walked + 1 >= 3) { - fromLim += 3 - 1; - break; - } else { - walked = 0; - } - } else if ((prev & 0xe0u) == 0xc0u) { /* 2-byte character, lead by 0b110xxxxx byte */ - if (walked + 1 >= 2) { - fromLim += 2 - 1; - break; - } else { - walked = 0; - } - } else if ((prev & 0x80u) == 0x00u) { /* 1-byte character, matching 0b0xxxxxxx */ - break; - } - } - *fromLimRef = fromLim; -} - -static enum XML_Convert_Result PTRCALL -utf8_toUtf8(const ENCODING *UNUSED_P(enc), - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - bool input_incomplete = false; - bool output_exhausted = false; - - /* Avoid copying partial characters (due to limited space). */ - const ptrdiff_t bytesAvailable = fromLim - *fromP; - const ptrdiff_t bytesStorable = toLim - *toP; - if (bytesAvailable > bytesStorable) { - fromLim = *fromP + bytesStorable; - output_exhausted = true; - } - - /* Avoid copying partial characters (from incomplete input). */ - const char * const fromLimBefore = fromLim; - align_limit_to_full_utf8_characters(*fromP, &fromLim); - if (fromLim < fromLimBefore) { - input_incomplete = true; - } - - const ptrdiff_t bytesToCopy = fromLim - *fromP; - memcpy((void *)*toP, (const void *)*fromP, (size_t)bytesToCopy); - *fromP += bytesToCopy; - *toP += bytesToCopy; - - if (output_exhausted) // needs to go first - return XML_CONVERT_OUTPUT_EXHAUSTED; - else if (input_incomplete) - return XML_CONVERT_INPUT_INCOMPLETE; - else - return XML_CONVERT_COMPLETED; -} - -static enum XML_Convert_Result PTRCALL -utf8_toUtf16(const ENCODING *enc, - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - enum XML_Convert_Result res = XML_CONVERT_COMPLETED; - unsigned short *to = *toP; - const char *from = *fromP; - while (from < fromLim && to < toLim) { - switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) { - case BT_LEAD2: - if (fromLim - from < 2) { - res = XML_CONVERT_INPUT_INCOMPLETE; - goto after; - } - *to++ = (unsigned short)(((from[0] & 0x1f) << 6) | (from[1] & 0x3f)); - from += 2; - break; - case BT_LEAD3: - if (fromLim - from < 3) { - res = XML_CONVERT_INPUT_INCOMPLETE; - goto after; - } - *to++ = (unsigned short)(((from[0] & 0xf) << 12) - | ((from[1] & 0x3f) << 6) | (from[2] & 0x3f)); - from += 3; - break; - case BT_LEAD4: - { - unsigned long n; - if (toLim - to < 2) { - res = XML_CONVERT_OUTPUT_EXHAUSTED; - goto after; - } - if (fromLim - from < 4) { - res = XML_CONVERT_INPUT_INCOMPLETE; - goto after; - } - n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) - | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f); - n -= 0x10000; - to[0] = (unsigned short)((n >> 10) | 0xD800); - to[1] = (unsigned short)((n & 0x3FF) | 0xDC00); - to += 2; - from += 4; - } - break; - default: - *to++ = *from++; - break; - } - } - if (from < fromLim) - res = XML_CONVERT_OUTPUT_EXHAUSTED; -after: - *fromP = from; - *toP = to; - return res; -} - -#ifdef XML_NS -static const struct normal_encoding utf8_encoding_ns = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#include "asciitab.h" -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; -#endif - -static const struct normal_encoding utf8_encoding = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -#ifdef XML_NS - -static const struct normal_encoding internal_utf8_encoding_ns = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#include "iasciitab.h" -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -#endif - -static const struct normal_encoding internal_utf8_encoding = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -static enum XML_Convert_Result PTRCALL -latin1_toUtf8(const ENCODING *UNUSED_P(enc), - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - for (;;) { - unsigned char c; - if (*fromP == fromLim) - return XML_CONVERT_COMPLETED; - c = (unsigned char)**fromP; - if (c & 0x80) { - if (toLim - *toP < 2) - return XML_CONVERT_OUTPUT_EXHAUSTED; - *(*toP)++ = (char)((c >> 6) | UTF8_cval2); - *(*toP)++ = (char)((c & 0x3f) | 0x80); - (*fromP)++; - } - else { - if (*toP == toLim) - return XML_CONVERT_OUTPUT_EXHAUSTED; - *(*toP)++ = *(*fromP)++; - } - } -} - -static enum XML_Convert_Result PTRCALL -latin1_toUtf16(const ENCODING *UNUSED_P(enc), - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - while (*fromP < fromLim && *toP < toLim) - *(*toP)++ = (unsigned char)*(*fromP)++; - - if ((*toP == toLim) && (*fromP < fromLim)) - return XML_CONVERT_OUTPUT_EXHAUSTED; - else - return XML_CONVERT_COMPLETED; -} - -#ifdef XML_NS - -static const struct normal_encoding latin1_encoding_ns = { - { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(sb_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding latin1_encoding = { - { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(sb_) NULL_VTABLE -}; - -static enum XML_Convert_Result PTRCALL -ascii_toUtf8(const ENCODING *UNUSED_P(enc), - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - while (*fromP < fromLim && *toP < toLim) - *(*toP)++ = *(*fromP)++; - - if ((*toP == toLim) && (*fromP < fromLim)) - return XML_CONVERT_OUTPUT_EXHAUSTED; - else - return XML_CONVERT_COMPLETED; -} - -#ifdef XML_NS - -static const struct normal_encoding ascii_encoding_ns = { - { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 }, - { -#include "asciitab.h" -/* BT_NONXML == 0 */ - }, - STANDARD_VTABLE(sb_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding ascii_encoding = { - { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -/* BT_NONXML == 0 */ - }, - STANDARD_VTABLE(sb_) NULL_VTABLE -}; - -static int PTRFASTCALL -unicode_byte_type(char hi, char lo) -{ - switch ((unsigned char)hi) { - case 0xD8: case 0xD9: case 0xDA: case 0xDB: - return BT_LEAD4; - case 0xDC: case 0xDD: case 0xDE: case 0xDF: - return BT_TRAIL; - case 0xFF: - switch ((unsigned char)lo) { - case 0xFF: - case 0xFE: - return BT_NONXML; - } - break; - } - return BT_NONASCII; -} - -#define DEFINE_UTF16_TO_UTF8(E) \ -static enum XML_Convert_Result PTRCALL \ -E ## toUtf8(const ENCODING *UNUSED_P(enc), \ - const char **fromP, const char *fromLim, \ - char **toP, const char *toLim) \ -{ \ - const char *from = *fromP; \ - fromLim = from + (((fromLim - from) >> 1) << 1); /* shrink to even */ \ - for (; from < fromLim; from += 2) { \ - int plane; \ - unsigned char lo2; \ - unsigned char lo = GET_LO(from); \ - unsigned char hi = GET_HI(from); \ - switch (hi) { \ - case 0: \ - if (lo < 0x80) { \ - if (*toP == toLim) { \ - *fromP = from; \ - return XML_CONVERT_OUTPUT_EXHAUSTED; \ - } \ - *(*toP)++ = lo; \ - break; \ - } \ - /* fall through */ \ - case 0x1: case 0x2: case 0x3: \ - case 0x4: case 0x5: case 0x6: case 0x7: \ - if (toLim - *toP < 2) { \ - *fromP = from; \ - return XML_CONVERT_OUTPUT_EXHAUSTED; \ - } \ - *(*toP)++ = ((lo >> 6) | (hi << 2) | UTF8_cval2); \ - *(*toP)++ = ((lo & 0x3f) | 0x80); \ - break; \ - default: \ - if (toLim - *toP < 3) { \ - *fromP = from; \ - return XML_CONVERT_OUTPUT_EXHAUSTED; \ - } \ - /* 16 bits divided 4, 6, 6 amongst 3 bytes */ \ - *(*toP)++ = ((hi >> 4) | UTF8_cval3); \ - *(*toP)++ = (((hi & 0xf) << 2) | (lo >> 6) | 0x80); \ - *(*toP)++ = ((lo & 0x3f) | 0x80); \ - break; \ - case 0xD8: case 0xD9: case 0xDA: case 0xDB: \ - if (toLim - *toP < 4) { \ - *fromP = from; \ - return XML_CONVERT_OUTPUT_EXHAUSTED; \ - } \ - if (fromLim - from < 4) { \ - *fromP = from; \ - return XML_CONVERT_INPUT_INCOMPLETE; \ - } \ - plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \ - *(*toP)++ = ((plane >> 2) | UTF8_cval4); \ - *(*toP)++ = (((lo >> 2) & 0xF) | ((plane & 0x3) << 4) | 0x80); \ - from += 2; \ - lo2 = GET_LO(from); \ - *(*toP)++ = (((lo & 0x3) << 4) \ - | ((GET_HI(from) & 0x3) << 2) \ - | (lo2 >> 6) \ - | 0x80); \ - *(*toP)++ = ((lo2 & 0x3f) | 0x80); \ - break; \ - } \ - } \ - *fromP = from; \ - if (from < fromLim) \ - return XML_CONVERT_INPUT_INCOMPLETE; \ - else \ - return XML_CONVERT_COMPLETED; \ -} - -#define DEFINE_UTF16_TO_UTF16(E) \ -static enum XML_Convert_Result PTRCALL \ -E ## toUtf16(const ENCODING *UNUSED_P(enc), \ - const char **fromP, const char *fromLim, \ - unsigned short **toP, const unsigned short *toLim) \ -{ \ - enum XML_Convert_Result res = XML_CONVERT_COMPLETED; \ - fromLim = *fromP + (((fromLim - *fromP) >> 1) << 1); /* shrink to even */ \ - /* Avoid copying first half only of surrogate */ \ - if (fromLim - *fromP > ((toLim - *toP) << 1) \ - && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) { \ - fromLim -= 2; \ - res = XML_CONVERT_INPUT_INCOMPLETE; \ - } \ - for (; *fromP < fromLim && *toP < toLim; *fromP += 2) \ - *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ - if ((*toP == toLim) && (*fromP < fromLim)) \ - return XML_CONVERT_OUTPUT_EXHAUSTED; \ - else \ - return res; \ -} - -#define SET2(ptr, ch) \ - (((ptr)[0] = ((ch) & 0xff)), ((ptr)[1] = ((ch) >> 8))) -#define GET_LO(ptr) ((unsigned char)(ptr)[0]) -#define GET_HI(ptr) ((unsigned char)(ptr)[1]) - -DEFINE_UTF16_TO_UTF8(little2_) -DEFINE_UTF16_TO_UTF16(little2_) - -#undef SET2 -#undef GET_LO -#undef GET_HI - -#define SET2(ptr, ch) \ - (((ptr)[0] = ((ch) >> 8)), ((ptr)[1] = ((ch) & 0xFF))) -#define GET_LO(ptr) ((unsigned char)(ptr)[1]) -#define GET_HI(ptr) ((unsigned char)(ptr)[0]) - -DEFINE_UTF16_TO_UTF8(big2_) -DEFINE_UTF16_TO_UTF16(big2_) - -#undef SET2 -#undef GET_LO -#undef GET_HI - -#define LITTLE2_BYTE_TYPE(enc, p) \ - ((p)[1] == 0 \ - ? ((struct normal_encoding *)(enc))->type[(unsigned char)*(p)] \ - : unicode_byte_type((p)[1], (p)[0])) -#define LITTLE2_BYTE_TO_ASCII(enc, p) ((p)[1] == 0 ? (p)[0] : -1) -#define LITTLE2_CHAR_MATCHES(enc, p, c) ((p)[1] == 0 && (p)[0] == c) -#define LITTLE2_IS_NAME_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(namePages, (unsigned char)p[1], (unsigned char)p[0]) -#define LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[1], (unsigned char)p[0]) - -#ifdef XML_MIN_SIZE - -static int PTRFASTCALL -little2_byteType(const ENCODING *enc, const char *p) -{ - return LITTLE2_BYTE_TYPE(enc, p); -} - -static int PTRFASTCALL -little2_byteToAscii(const ENCODING *enc, const char *p) -{ - return LITTLE2_BYTE_TO_ASCII(enc, p); -} - -static int PTRCALL -little2_charMatches(const ENCODING *enc, const char *p, int c) -{ - return LITTLE2_CHAR_MATCHES(enc, p, c); -} - -static int PTRFASTCALL -little2_isNameMin(const ENCODING *enc, const char *p) -{ - return LITTLE2_IS_NAME_CHAR_MINBPC(enc, p); -} - -static int PTRFASTCALL -little2_isNmstrtMin(const ENCODING *enc, const char *p) -{ - return LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p); -} - -#undef VTABLE -#define VTABLE VTABLE1, little2_toUtf8, little2_toUtf16 - -#else /* not XML_MIN_SIZE */ - -#undef PREFIX -#define PREFIX(ident) little2_ ## ident -#define MINBPC(enc) 2 -/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ -#define BYTE_TYPE(enc, p) LITTLE2_BYTE_TYPE(enc, p) -#define BYTE_TO_ASCII(enc, p) LITTLE2_BYTE_TO_ASCII(enc, p) -#define CHAR_MATCHES(enc, p, c) LITTLE2_CHAR_MATCHES(enc, p, c) -#define IS_NAME_CHAR(enc, p, n) 0 -#define IS_NAME_CHAR_MINBPC(enc, p) LITTLE2_IS_NAME_CHAR_MINBPC(enc, p) -#define IS_NMSTRT_CHAR(enc, p, n) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p) - -#define XML_TOK_IMPL_C -#include "xmltok_impl.c" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -#endif /* not XML_MIN_SIZE */ - -#ifdef XML_NS - -static const struct normal_encoding little2_encoding_ns = { - { VTABLE, 2, 0, -#if BYTEORDER == 1234 - 1 -#else - 0 -#endif - }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding little2_encoding = { - { VTABLE, 2, 0, -#if BYTEORDER == 1234 - 1 -#else - 0 -#endif - }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) NULL_VTABLE -}; - -#if BYTEORDER != 4321 - -#ifdef XML_NS - -static const struct normal_encoding internal_little2_encoding_ns = { - { VTABLE, 2, 0, 1 }, - { -#include "iasciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding internal_little2_encoding = { - { VTABLE, 2, 0, 1 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) NULL_VTABLE -}; - -#endif - - -#define BIG2_BYTE_TYPE(enc, p) \ - ((p)[0] == 0 \ - ? ((struct normal_encoding *)(enc))->type[(unsigned char)(p)[1]] \ - : unicode_byte_type((p)[0], (p)[1])) -#define BIG2_BYTE_TO_ASCII(enc, p) ((p)[0] == 0 ? (p)[1] : -1) -#define BIG2_CHAR_MATCHES(enc, p, c) ((p)[0] == 0 && (p)[1] == c) -#define BIG2_IS_NAME_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(namePages, (unsigned char)p[0], (unsigned char)p[1]) -#define BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[0], (unsigned char)p[1]) - -#ifdef XML_MIN_SIZE - -static int PTRFASTCALL -big2_byteType(const ENCODING *enc, const char *p) -{ - return BIG2_BYTE_TYPE(enc, p); -} - -static int PTRFASTCALL -big2_byteToAscii(const ENCODING *enc, const char *p) -{ - return BIG2_BYTE_TO_ASCII(enc, p); -} - -static int PTRCALL -big2_charMatches(const ENCODING *enc, const char *p, int c) -{ - return BIG2_CHAR_MATCHES(enc, p, c); -} - -static int PTRFASTCALL -big2_isNameMin(const ENCODING *enc, const char *p) -{ - return BIG2_IS_NAME_CHAR_MINBPC(enc, p); -} - -static int PTRFASTCALL -big2_isNmstrtMin(const ENCODING *enc, const char *p) -{ - return BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p); -} - -#undef VTABLE -#define VTABLE VTABLE1, big2_toUtf8, big2_toUtf16 - -#else /* not XML_MIN_SIZE */ - -#undef PREFIX -#define PREFIX(ident) big2_ ## ident -#define MINBPC(enc) 2 -/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ -#define BYTE_TYPE(enc, p) BIG2_BYTE_TYPE(enc, p) -#define BYTE_TO_ASCII(enc, p) BIG2_BYTE_TO_ASCII(enc, p) -#define CHAR_MATCHES(enc, p, c) BIG2_CHAR_MATCHES(enc, p, c) -#define IS_NAME_CHAR(enc, p, n) 0 -#define IS_NAME_CHAR_MINBPC(enc, p) BIG2_IS_NAME_CHAR_MINBPC(enc, p) -#define IS_NMSTRT_CHAR(enc, p, n) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p) - -#define XML_TOK_IMPL_C -#include "xmltok_impl.c" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -#endif /* not XML_MIN_SIZE */ - -#ifdef XML_NS - -static const struct normal_encoding big2_encoding_ns = { - { VTABLE, 2, 0, -#if BYTEORDER == 4321 - 1 -#else - 0 -#endif - }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding big2_encoding = { - { VTABLE, 2, 0, -#if BYTEORDER == 4321 - 1 -#else - 0 -#endif - }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) NULL_VTABLE -}; - -#if BYTEORDER != 1234 - -#ifdef XML_NS - -static const struct normal_encoding internal_big2_encoding_ns = { - { VTABLE, 2, 0, 1 }, - { -#include "iasciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) NULL_VTABLE -}; - -#endif - -static const struct normal_encoding internal_big2_encoding = { - { VTABLE, 2, 0, 1 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) NULL_VTABLE -}; - -#endif - -#undef PREFIX - -static int FASTCALL -streqci(const char *s1, const char *s2) -{ - for (;;) { - char c1 = *s1++; - char c2 = *s2++; - if (ASCII_a <= c1 && c1 <= ASCII_z) - c1 += ASCII_A - ASCII_a; - if (ASCII_a <= c2 && c2 <= ASCII_z) - /* The following line will never get executed. streqci() is - * only called from two places, both of which guarantee to put - * upper-case strings into s2. - */ - c2 += ASCII_A - ASCII_a; /* LCOV_EXCL_LINE */ - if (c1 != c2) - return 0; - if (!c1) - break; - } - return 1; -} - -static void PTRCALL -initUpdatePosition(const ENCODING *UNUSED_P(enc), const char *ptr, - const char *end, POSITION *pos) -{ - normal_updatePosition(&utf8_encoding.enc, ptr, end, pos); -} - -static int -toAscii(const ENCODING *enc, const char *ptr, const char *end) -{ - char buf[1]; - char *p = buf; - XmlUtf8Convert(enc, &ptr, end, &p, p + 1); - if (p == buf) - return -1; - else - return buf[0]; -} - -static int FASTCALL -isSpace(int c) -{ - switch (c) { - case 0x20: - case 0xD: - case 0xA: - case 0x9: - return 1; - } - return 0; -} - -/* Return 1 if there's just optional white space or there's an S - followed by name=val. -*/ -static int -parsePseudoAttribute(const ENCODING *enc, - const char *ptr, - const char *end, - const char **namePtr, - const char **nameEndPtr, - const char **valPtr, - const char **nextTokPtr) -{ - int c; - char open; - if (ptr == end) { - *namePtr = NULL; - return 1; - } - if (!isSpace(toAscii(enc, ptr, end))) { - *nextTokPtr = ptr; - return 0; - } - do { - ptr += enc->minBytesPerChar; - } while (isSpace(toAscii(enc, ptr, end))); - if (ptr == end) { - *namePtr = NULL; - return 1; - } - *namePtr = ptr; - for (;;) { - c = toAscii(enc, ptr, end); - if (c == -1) { - *nextTokPtr = ptr; - return 0; - } - if (c == ASCII_EQUALS) { - *nameEndPtr = ptr; - break; - } - if (isSpace(c)) { - *nameEndPtr = ptr; - do { - ptr += enc->minBytesPerChar; - } while (isSpace(c = toAscii(enc, ptr, end))); - if (c != ASCII_EQUALS) { - *nextTokPtr = ptr; - return 0; - } - break; - } - ptr += enc->minBytesPerChar; - } - if (ptr == *namePtr) { - *nextTokPtr = ptr; - return 0; - } - ptr += enc->minBytesPerChar; - c = toAscii(enc, ptr, end); - while (isSpace(c)) { - ptr += enc->minBytesPerChar; - c = toAscii(enc, ptr, end); - } - if (c != ASCII_QUOT && c != ASCII_APOS) { - *nextTokPtr = ptr; - return 0; - } - open = (char)c; - ptr += enc->minBytesPerChar; - *valPtr = ptr; - for (;; ptr += enc->minBytesPerChar) { - c = toAscii(enc, ptr, end); - if (c == open) - break; - if (!(ASCII_a <= c && c <= ASCII_z) - && !(ASCII_A <= c && c <= ASCII_Z) - && !(ASCII_0 <= c && c <= ASCII_9) - && c != ASCII_PERIOD - && c != ASCII_MINUS - && c != ASCII_UNDERSCORE) { - *nextTokPtr = ptr; - return 0; - } - } - *nextTokPtr = ptr + enc->minBytesPerChar; - return 1; -} - -static const char KW_version[] = { - ASCII_v, ASCII_e, ASCII_r, ASCII_s, ASCII_i, ASCII_o, ASCII_n, '\0' -}; - -static const char KW_encoding[] = { - ASCII_e, ASCII_n, ASCII_c, ASCII_o, ASCII_d, ASCII_i, ASCII_n, ASCII_g, '\0' -}; - -static const char KW_standalone[] = { - ASCII_s, ASCII_t, ASCII_a, ASCII_n, ASCII_d, ASCII_a, ASCII_l, ASCII_o, - ASCII_n, ASCII_e, '\0' -}; - -static const char KW_yes[] = { - ASCII_y, ASCII_e, ASCII_s, '\0' -}; - -static const char KW_no[] = { - ASCII_n, ASCII_o, '\0' -}; - -static int -doParseXmlDecl(const ENCODING *(*encodingFinder)(const ENCODING *, - const char *, - const char *), - int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingName, - const ENCODING **encoding, - int *standalone) -{ - const char *val = NULL; - const char *name = NULL; - const char *nameEnd = NULL; - ptr += 5 * enc->minBytesPerChar; - end -= 2 * enc->minBytesPerChar; - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr) - || !name) { - *badPtr = ptr; - return 0; - } - if (!XmlNameMatchesAscii(enc, name, nameEnd, KW_version)) { - if (!isGeneralTextEntity) { - *badPtr = name; - return 0; - } - } - else { - if (versionPtr) - *versionPtr = val; - if (versionEndPtr) - *versionEndPtr = ptr; - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { - *badPtr = ptr; - return 0; - } - if (!name) { - if (isGeneralTextEntity) { - /* a TextDecl must have an EncodingDecl */ - *badPtr = ptr; - return 0; - } - return 1; - } - } - if (XmlNameMatchesAscii(enc, name, nameEnd, KW_encoding)) { - int c = toAscii(enc, val, end); - if (!(ASCII_a <= c && c <= ASCII_z) && !(ASCII_A <= c && c <= ASCII_Z)) { - *badPtr = val; - return 0; - } - if (encodingName) - *encodingName = val; - if (encoding) - *encoding = encodingFinder(enc, val, ptr - enc->minBytesPerChar); - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { - *badPtr = ptr; - return 0; - } - if (!name) - return 1; - } - if (!XmlNameMatchesAscii(enc, name, nameEnd, KW_standalone) - || isGeneralTextEntity) { - *badPtr = name; - return 0; - } - if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_yes)) { - if (standalone) - *standalone = 1; - } - else if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_no)) { - if (standalone) - *standalone = 0; - } - else { - *badPtr = val; - return 0; - } - while (isSpace(toAscii(enc, ptr, end))) - ptr += enc->minBytesPerChar; - if (ptr != end) { - *badPtr = ptr; - return 0; - } - return 1; -} - -static int FASTCALL -checkCharRefNumber(int result) -{ - switch (result >> 8) { - case 0xD8: case 0xD9: case 0xDA: case 0xDB: - case 0xDC: case 0xDD: case 0xDE: case 0xDF: - return -1; - case 0: - if (latin1_encoding.type[result] == BT_NONXML) - return -1; - break; - case 0xFF: - if (result == 0xFFFE || result == 0xFFFF) - return -1; - break; - } - return result; -} - -int FASTCALL -XmlUtf8Encode(int c, char *buf) -{ - enum { - /* minN is minimum legal resulting value for N byte sequence */ - min2 = 0x80, - min3 = 0x800, - min4 = 0x10000 - }; - - if (c < 0) - return 0; /* LCOV_EXCL_LINE: this case is always eliminated beforehand */ - if (c < min2) { - buf[0] = (char)(c | UTF8_cval1); - return 1; - } - if (c < min3) { - buf[0] = (char)((c >> 6) | UTF8_cval2); - buf[1] = (char)((c & 0x3f) | 0x80); - return 2; - } - if (c < min4) { - buf[0] = (char)((c >> 12) | UTF8_cval3); - buf[1] = (char)(((c >> 6) & 0x3f) | 0x80); - buf[2] = (char)((c & 0x3f) | 0x80); - return 3; - } - if (c < 0x110000) { - buf[0] = (char)((c >> 18) | UTF8_cval4); - buf[1] = (char)(((c >> 12) & 0x3f) | 0x80); - buf[2] = (char)(((c >> 6) & 0x3f) | 0x80); - buf[3] = (char)((c & 0x3f) | 0x80); - return 4; - } - return 0; /* LCOV_EXCL_LINE: this case too is eliminated before calling */ -} - -int FASTCALL -XmlUtf16Encode(int charNum, unsigned short *buf) -{ - if (charNum < 0) - return 0; - if (charNum < 0x10000) { - buf[0] = (unsigned short)charNum; - return 1; - } - if (charNum < 0x110000) { - charNum -= 0x10000; - buf[0] = (unsigned short)((charNum >> 10) + 0xD800); - buf[1] = (unsigned short)((charNum & 0x3FF) + 0xDC00); - return 2; - } - return 0; -} - -struct unknown_encoding { - struct normal_encoding normal; - CONVERTER convert; - void *userData; - unsigned short utf16[256]; - char utf8[256][4]; -}; - -#define AS_UNKNOWN_ENCODING(enc) ((const struct unknown_encoding *) (enc)) - -int -XmlSizeOfUnknownEncoding(void) -{ - return sizeof(struct unknown_encoding); -} - -static int PTRFASTCALL -unknown_isName(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - if (c & ~0xFFFF) - return 0; - return UCS2_GET_NAMING(namePages, c >> 8, c & 0xFF); -} - -static int PTRFASTCALL -unknown_isNmstrt(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - if (c & ~0xFFFF) - return 0; - return UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xFF); -} - -static int PTRFASTCALL -unknown_isInvalid(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - return (c & ~0xFFFF) || checkCharRefNumber(c) < 0; -} - -static enum XML_Convert_Result PTRCALL -unknown_toUtf8(const ENCODING *enc, - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - char buf[XML_UTF8_ENCODE_MAX]; - for (;;) { - const char *utf8; - int n; - if (*fromP == fromLim) - return XML_CONVERT_COMPLETED; - utf8 = uenc->utf8[(unsigned char)**fromP]; - n = *utf8++; - if (n == 0) { - int c = uenc->convert(uenc->userData, *fromP); - n = XmlUtf8Encode(c, buf); - if (n > toLim - *toP) - return XML_CONVERT_OUTPUT_EXHAUSTED; - utf8 = buf; - *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] - - (BT_LEAD2 - 2)); - } - else { - if (n > toLim - *toP) - return XML_CONVERT_OUTPUT_EXHAUSTED; - (*fromP)++; - } - do { - *(*toP)++ = *utf8++; - } while (--n != 0); - } -} - -static enum XML_Convert_Result PTRCALL -unknown_toUtf16(const ENCODING *enc, - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - while (*fromP < fromLim && *toP < toLim) { - unsigned short c = uenc->utf16[(unsigned char)**fromP]; - if (c == 0) { - c = (unsigned short) - uenc->convert(uenc->userData, *fromP); - *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] - - (BT_LEAD2 - 2)); - } - else - (*fromP)++; - *(*toP)++ = c; - } - - if ((*toP == toLim) && (*fromP < fromLim)) - return XML_CONVERT_OUTPUT_EXHAUSTED; - else - return XML_CONVERT_COMPLETED; -} - -ENCODING * -XmlInitUnknownEncoding(void *mem, - int *table, - CONVERTER convert, - void *userData) -{ - int i; - struct unknown_encoding *e = (struct unknown_encoding *)mem; - for (i = 0; i < (int)sizeof(struct normal_encoding); i++) - ((char *)mem)[i] = ((char *)&latin1_encoding)[i]; - for (i = 0; i < 128; i++) - if (latin1_encoding.type[i] != BT_OTHER - && latin1_encoding.type[i] != BT_NONXML - && table[i] != i) - return 0; - for (i = 0; i < 256; i++) { - int c = table[i]; - if (c == -1) { - e->normal.type[i] = BT_MALFORM; - /* This shouldn't really get used. */ - e->utf16[i] = 0xFFFF; - e->utf8[i][0] = 1; - e->utf8[i][1] = 0; - } - else if (c < 0) { - if (c < -4) - return 0; - /* Multi-byte sequences need a converter function */ - if (!convert) - return 0; - e->normal.type[i] = (unsigned char)(BT_LEAD2 - (c + 2)); - e->utf8[i][0] = 0; - e->utf16[i] = 0; - } - else if (c < 0x80) { - if (latin1_encoding.type[c] != BT_OTHER - && latin1_encoding.type[c] != BT_NONXML - && c != i) - return 0; - e->normal.type[i] = latin1_encoding.type[c]; - e->utf8[i][0] = 1; - e->utf8[i][1] = (char)c; - e->utf16[i] = (unsigned short)(c == 0 ? 0xFFFF : c); - } - else if (checkCharRefNumber(c) < 0) { - e->normal.type[i] = BT_NONXML; - /* This shouldn't really get used. */ - e->utf16[i] = 0xFFFF; - e->utf8[i][0] = 1; - e->utf8[i][1] = 0; - } - else { - if (c > 0xFFFF) - return 0; - if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff)) - e->normal.type[i] = BT_NMSTRT; - else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff)) - e->normal.type[i] = BT_NAME; - else - e->normal.type[i] = BT_OTHER; - e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1); - e->utf16[i] = (unsigned short)c; - } - } - e->userData = userData; - e->convert = convert; - if (convert) { - e->normal.isName2 = unknown_isName; - e->normal.isName3 = unknown_isName; - e->normal.isName4 = unknown_isName; - e->normal.isNmstrt2 = unknown_isNmstrt; - e->normal.isNmstrt3 = unknown_isNmstrt; - e->normal.isNmstrt4 = unknown_isNmstrt; - e->normal.isInvalid2 = unknown_isInvalid; - e->normal.isInvalid3 = unknown_isInvalid; - e->normal.isInvalid4 = unknown_isInvalid; - } - e->normal.enc.utf8Convert = unknown_toUtf8; - e->normal.enc.utf16Convert = unknown_toUtf16; - return &(e->normal.enc); -} - -/* If this enumeration is changed, getEncodingIndex and encodings -must also be changed. */ -enum { - UNKNOWN_ENC = -1, - ISO_8859_1_ENC = 0, - US_ASCII_ENC, - UTF_8_ENC, - UTF_16_ENC, - UTF_16BE_ENC, - UTF_16LE_ENC, - /* must match encodingNames up to here */ - NO_ENC -}; - -static const char KW_ISO_8859_1[] = { - ASCII_I, ASCII_S, ASCII_O, ASCII_MINUS, ASCII_8, ASCII_8, ASCII_5, ASCII_9, - ASCII_MINUS, ASCII_1, '\0' -}; -static const char KW_US_ASCII[] = { - ASCII_U, ASCII_S, ASCII_MINUS, ASCII_A, ASCII_S, ASCII_C, ASCII_I, ASCII_I, - '\0' -}; -static const char KW_UTF_8[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_8, '\0' -}; -static const char KW_UTF_16[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, '\0' -}; -static const char KW_UTF_16BE[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, ASCII_B, ASCII_E, - '\0' -}; -static const char KW_UTF_16LE[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, ASCII_L, ASCII_E, - '\0' -}; - -static int FASTCALL -getEncodingIndex(const char *name) -{ - static const char * const encodingNames[] = { - KW_ISO_8859_1, - KW_US_ASCII, - KW_UTF_8, - KW_UTF_16, - KW_UTF_16BE, - KW_UTF_16LE, - }; - int i; - if (name == NULL) - return NO_ENC; - for (i = 0; i < (int)(sizeof(encodingNames)/sizeof(encodingNames[0])); i++) - if (streqci(name, encodingNames[i])) - return i; - return UNKNOWN_ENC; -} - -/* For binary compatibility, we store the index of the encoding - specified at initialization in the isUtf16 member. -*/ - -#define INIT_ENC_INDEX(enc) ((int)(enc)->initEnc.isUtf16) -#define SET_INIT_ENC_INDEX(enc, i) ((enc)->initEnc.isUtf16 = (char)i) - -/* This is what detects the encoding. encodingTable maps from - encoding indices to encodings; INIT_ENC_INDEX(enc) is the index of - the external (protocol) specified encoding; state is - XML_CONTENT_STATE if we're parsing an external text entity, and - XML_PROLOG_STATE otherwise. -*/ - - -static int -initScan(const ENCODING * const *encodingTable, - const INIT_ENCODING *enc, - int state, - const char *ptr, - const char *end, - const char **nextTokPtr) -{ - const ENCODING **encPtr; - - if (ptr >= end) - return XML_TOK_NONE; - encPtr = enc->encPtr; - if (ptr + 1 == end) { - /* only a single byte available for auto-detection */ -#ifndef XML_DTD /* FIXME */ - /* a well-formed document entity must have more than one byte */ - if (state != XML_CONTENT_STATE) - return XML_TOK_PARTIAL; -#endif - /* so we're parsing an external text entity... */ - /* if UTF-16 was externally specified, then we need at least 2 bytes */ - switch (INIT_ENC_INDEX(enc)) { - case UTF_16_ENC: - case UTF_16LE_ENC: - case UTF_16BE_ENC: - return XML_TOK_PARTIAL; - } - switch ((unsigned char)*ptr) { - case 0xFE: - case 0xFF: - case 0xEF: /* possibly first byte of UTF-8 BOM */ - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - /* fall through */ - case 0x00: - case 0x3C: - return XML_TOK_PARTIAL; - } - } - else { - switch (((unsigned char)ptr[0] << 8) | (unsigned char)ptr[1]) { - case 0xFEFF: - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - *nextTokPtr = ptr + 2; - *encPtr = encodingTable[UTF_16BE_ENC]; - return XML_TOK_BOM; - /* 00 3C is handled in the default case */ - case 0x3C00: - if ((INIT_ENC_INDEX(enc) == UTF_16BE_ENC - || INIT_ENC_INDEX(enc) == UTF_16_ENC) - && state == XML_CONTENT_STATE) - break; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - case 0xFFFE: - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - *nextTokPtr = ptr + 2; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XML_TOK_BOM; - case 0xEFBB: - /* Maybe a UTF-8 BOM (EF BB BF) */ - /* If there's an explicitly specified (external) encoding - of ISO-8859-1 or some flavour of UTF-16 - and this is an external text entity, - don't look for the BOM, - because it might be a legal data. - */ - if (state == XML_CONTENT_STATE) { - int e = INIT_ENC_INDEX(enc); - if (e == ISO_8859_1_ENC || e == UTF_16BE_ENC - || e == UTF_16LE_ENC || e == UTF_16_ENC) - break; - } - if (ptr + 2 == end) - return XML_TOK_PARTIAL; - if ((unsigned char)ptr[2] == 0xBF) { - *nextTokPtr = ptr + 3; - *encPtr = encodingTable[UTF_8_ENC]; - return XML_TOK_BOM; - } - break; - default: - if (ptr[0] == '\0') { - /* 0 isn't a legal data character. Furthermore a document - entity can only start with ASCII characters. So the only - way this can fail to be big-endian UTF-16 if it it's an - external parsed general entity that's labelled as - UTF-16LE. - */ - if (state == XML_CONTENT_STATE && INIT_ENC_INDEX(enc) == UTF_16LE_ENC) - break; - *encPtr = encodingTable[UTF_16BE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - } - else if (ptr[1] == '\0') { - /* We could recover here in the case: - - parsing an external entity - - second byte is 0 - - no externally specified encoding - - no encoding declaration - by assuming UTF-16LE. But we don't, because this would mean when - presented just with a single byte, we couldn't reliably determine - whether we needed further bytes. - */ - if (state == XML_CONTENT_STATE) - break; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - } - break; - } - } - *encPtr = encodingTable[INIT_ENC_INDEX(enc)]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); -} - - -#define NS(x) x -#define ns(x) x -#define XML_TOK_NS_C -#include "xmltok_ns.c" -#undef XML_TOK_NS_C -#undef NS -#undef ns - -#ifdef XML_NS - -#define NS(x) x ## NS -#define ns(x) x ## _ns - -#define XML_TOK_NS_C -#include "xmltok_ns.c" -#undef XML_TOK_NS_C - -#undef NS -#undef ns - -ENCODING * -XmlInitUnknownEncodingNS(void *mem, - int *table, - CONVERTER convert, - void *userData) -{ - ENCODING *enc = XmlInitUnknownEncoding(mem, table, convert, userData); - if (enc) - ((struct normal_encoding *)enc)->type[ASCII_COLON] = BT_COLON; - return enc; -} - -#endif /* XML_NS */ diff --git a/src/utility/xlsxread/expat/xmltok.h b/src/utility/xlsxread/expat/xmltok.h deleted file mode 100644 index 6d31879b3..000000000 --- a/src/utility/xlsxread/expat/xmltok.h +++ /dev/null @@ -1,350 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef XmlTok_INCLUDED -#define XmlTok_INCLUDED 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* The following token may be returned by XmlContentTok */ -#define XML_TOK_TRAILING_RSQB -5 /* ] or ]] at the end of the scan; might be - start of illegal ]]> sequence */ -/* The following tokens may be returned by both XmlPrologTok and - XmlContentTok. -*/ -#define XML_TOK_NONE -4 /* The string to be scanned is empty */ -#define XML_TOK_TRAILING_CR -3 /* A CR at the end of the scan; - might be part of CRLF sequence */ -#define XML_TOK_PARTIAL_CHAR -2 /* only part of a multibyte sequence */ -#define XML_TOK_PARTIAL -1 /* only part of a token */ -#define XML_TOK_INVALID 0 - -/* The following tokens are returned by XmlContentTok; some are also - returned by XmlAttributeValueTok, XmlEntityTok, XmlCdataSectionTok. -*/ -#define XML_TOK_START_TAG_WITH_ATTS 1 -#define XML_TOK_START_TAG_NO_ATTS 2 -#define XML_TOK_EMPTY_ELEMENT_WITH_ATTS 3 /* empty element tag */ -#define XML_TOK_EMPTY_ELEMENT_NO_ATTS 4 -#define XML_TOK_END_TAG 5 -#define XML_TOK_DATA_CHARS 6 -#define XML_TOK_DATA_NEWLINE 7 -#define XML_TOK_CDATA_SECT_OPEN 8 -#define XML_TOK_ENTITY_REF 9 -#define XML_TOK_CHAR_REF 10 /* numeric character reference */ - -/* The following tokens may be returned by both XmlPrologTok and - XmlContentTok. -*/ -#define XML_TOK_PI 11 /* processing instruction */ -#define XML_TOK_XML_DECL 12 /* XML decl or text decl */ -#define XML_TOK_COMMENT 13 -#define XML_TOK_BOM 14 /* Byte order mark */ - -/* The following tokens are returned only by XmlPrologTok */ -#define XML_TOK_PROLOG_S 15 -#define XML_TOK_DECL_OPEN 16 /* */ -#define XML_TOK_NAME 18 -#define XML_TOK_NMTOKEN 19 -#define XML_TOK_POUND_NAME 20 /* #name */ -#define XML_TOK_OR 21 /* | */ -#define XML_TOK_PERCENT 22 -#define XML_TOK_OPEN_PAREN 23 -#define XML_TOK_CLOSE_PAREN 24 -#define XML_TOK_OPEN_BRACKET 25 -#define XML_TOK_CLOSE_BRACKET 26 -#define XML_TOK_LITERAL 27 -#define XML_TOK_PARAM_ENTITY_REF 28 -#define XML_TOK_INSTANCE_START 29 - -/* The following occur only in element type declarations */ -#define XML_TOK_NAME_QUESTION 30 /* name? */ -#define XML_TOK_NAME_ASTERISK 31 /* name* */ -#define XML_TOK_NAME_PLUS 32 /* name+ */ -#define XML_TOK_COND_SECT_OPEN 33 /* */ -#define XML_TOK_CLOSE_PAREN_QUESTION 35 /* )? */ -#define XML_TOK_CLOSE_PAREN_ASTERISK 36 /* )* */ -#define XML_TOK_CLOSE_PAREN_PLUS 37 /* )+ */ -#define XML_TOK_COMMA 38 - -/* The following token is returned only by XmlAttributeValueTok */ -#define XML_TOK_ATTRIBUTE_VALUE_S 39 - -/* The following token is returned only by XmlCdataSectionTok */ -#define XML_TOK_CDATA_SECT_CLOSE 40 - -/* With namespace processing this is returned by XmlPrologTok for a - name with a colon. -*/ -#define XML_TOK_PREFIXED_NAME 41 - -#ifdef XML_DTD -#define XML_TOK_IGNORE_SECT 42 -#endif /* XML_DTD */ - -#ifdef XML_DTD -#define XML_N_STATES 4 -#else /* not XML_DTD */ -#define XML_N_STATES 3 -#endif /* not XML_DTD */ - -#define XML_PROLOG_STATE 0 -#define XML_CONTENT_STATE 1 -#define XML_CDATA_SECTION_STATE 2 -#ifdef XML_DTD -#define XML_IGNORE_SECTION_STATE 3 -#endif /* XML_DTD */ - -#define XML_N_LITERAL_TYPES 2 -#define XML_ATTRIBUTE_VALUE_LITERAL 0 -#define XML_ENTITY_VALUE_LITERAL 1 - -/* The size of the buffer passed to XmlUtf8Encode must be at least this. */ -#define XML_UTF8_ENCODE_MAX 4 -/* The size of the buffer passed to XmlUtf16Encode must be at least this. */ -#define XML_UTF16_ENCODE_MAX 2 - -typedef struct position { - /* first line and first column are 0 not 1 */ - XML_Size lineNumber; - XML_Size columnNumber; -} POSITION; - -typedef struct { - const char *name; - const char *valuePtr; - const char *valueEnd; - char normalized; -} ATTRIBUTE; - -struct encoding; -typedef struct encoding ENCODING; - -typedef int (PTRCALL *SCANNER)(const ENCODING *, - const char *, - const char *, - const char **); - -enum XML_Convert_Result { - XML_CONVERT_COMPLETED = 0, - XML_CONVERT_INPUT_INCOMPLETE = 1, - XML_CONVERT_OUTPUT_EXHAUSTED = 2 /* and therefore potentially input remaining as well */ -}; - -struct encoding { - SCANNER scanners[XML_N_STATES]; - SCANNER literalScanners[XML_N_LITERAL_TYPES]; - int (PTRCALL *sameName)(const ENCODING *, - const char *, - const char *); - int (PTRCALL *nameMatchesAscii)(const ENCODING *, - const char *, - const char *, - const char *); - int (PTRFASTCALL *nameLength)(const ENCODING *, const char *); - const char *(PTRFASTCALL *skipS)(const ENCODING *, const char *); - int (PTRCALL *getAtts)(const ENCODING *enc, - const char *ptr, - int attsMax, - ATTRIBUTE *atts); - int (PTRFASTCALL *charRefNumber)(const ENCODING *enc, const char *ptr); - int (PTRCALL *predefinedEntityName)(const ENCODING *, - const char *, - const char *); - void (PTRCALL *updatePosition)(const ENCODING *, - const char *ptr, - const char *end, - POSITION *); - int (PTRCALL *isPublicId)(const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr); - enum XML_Convert_Result (PTRCALL *utf8Convert)(const ENCODING *enc, - const char **fromP, - const char *fromLim, - char **toP, - const char *toLim); - enum XML_Convert_Result (PTRCALL *utf16Convert)(const ENCODING *enc, - const char **fromP, - const char *fromLim, - unsigned short **toP, - const unsigned short *toLim); - int minBytesPerChar; - char isUtf8; - char isUtf16; -}; - -/* Scan the string starting at ptr until the end of the next complete - token, but do not scan past eptr. Return an integer giving the - type of token. - - Return XML_TOK_NONE when ptr == eptr; nextTokPtr will not be set. - - Return XML_TOK_PARTIAL when the string does not contain a complete - token; nextTokPtr will not be set. - - Return XML_TOK_INVALID when the string does not start a valid - token; nextTokPtr will be set to point to the character which made - the token invalid. - - Otherwise the string starts with a valid token; nextTokPtr will be - set to point to the character following the end of that token. - - Each data character counts as a single token, but adjacent data - characters may be returned together. Similarly for characters in - the prolog outside literals, comments and processing instructions. -*/ - - -#define XmlTok(enc, state, ptr, end, nextTokPtr) \ - (((enc)->scanners[state])(enc, ptr, end, nextTokPtr)) - -#define XmlPrologTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr) - -#define XmlContentTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr) - -#define XmlCdataSectionTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr) - -#ifdef XML_DTD - -#define XmlIgnoreSectionTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_IGNORE_SECTION_STATE, ptr, end, nextTokPtr) - -#endif /* XML_DTD */ - -/* This is used for performing a 2nd-level tokenization on the content - of a literal that has already been returned by XmlTok. -*/ -#define XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr) \ - (((enc)->literalScanners[literalType])(enc, ptr, end, nextTokPtr)) - -#define XmlAttributeValueTok(enc, ptr, end, nextTokPtr) \ - XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr) - -#define XmlEntityValueTok(enc, ptr, end, nextTokPtr) \ - XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr) - -#define XmlSameName(enc, ptr1, ptr2) (((enc)->sameName)(enc, ptr1, ptr2)) - -#define XmlNameMatchesAscii(enc, ptr1, end1, ptr2) \ - (((enc)->nameMatchesAscii)(enc, ptr1, end1, ptr2)) - -#define XmlNameLength(enc, ptr) \ - (((enc)->nameLength)(enc, ptr)) - -#define XmlSkipS(enc, ptr) \ - (((enc)->skipS)(enc, ptr)) - -#define XmlGetAttributes(enc, ptr, attsMax, atts) \ - (((enc)->getAtts)(enc, ptr, attsMax, atts)) - -#define XmlCharRefNumber(enc, ptr) \ - (((enc)->charRefNumber)(enc, ptr)) - -#define XmlPredefinedEntityName(enc, ptr, end) \ - (((enc)->predefinedEntityName)(enc, ptr, end)) - -#define XmlUpdatePosition(enc, ptr, end, pos) \ - (((enc)->updatePosition)(enc, ptr, end, pos)) - -#define XmlIsPublicId(enc, ptr, end, badPtr) \ - (((enc)->isPublicId)(enc, ptr, end, badPtr)) - -#define XmlUtf8Convert(enc, fromP, fromLim, toP, toLim) \ - (((enc)->utf8Convert)(enc, fromP, fromLim, toP, toLim)) - -#define XmlUtf16Convert(enc, fromP, fromLim, toP, toLim) \ - (((enc)->utf16Convert)(enc, fromP, fromLim, toP, toLim)) - -typedef struct { - ENCODING initEnc; - const ENCODING **encPtr; -} INIT_ENCODING; - -int XmlParseXmlDecl(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingNamePtr, - const ENCODING **namedEncodingPtr, - int *standalonePtr); - -int XmlInitEncoding(INIT_ENCODING *, const ENCODING **, const char *name); -const ENCODING *XmlGetUtf8InternalEncoding(void); -const ENCODING *XmlGetUtf16InternalEncoding(void); -int FASTCALL XmlUtf8Encode(int charNumber, char *buf); -int FASTCALL XmlUtf16Encode(int charNumber, unsigned short *buf); -int XmlSizeOfUnknownEncoding(void); - - -typedef int (XMLCALL *CONVERTER) (void *userData, const char *p); - -ENCODING * -XmlInitUnknownEncoding(void *mem, - int *table, - CONVERTER convert, - void *userData); - -int XmlParseXmlDeclNS(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingNamePtr, - const ENCODING **namedEncodingPtr, - int *standalonePtr); - -int XmlInitEncodingNS(INIT_ENCODING *, const ENCODING **, const char *name); -const ENCODING *XmlGetUtf8InternalEncodingNS(void); -const ENCODING *XmlGetUtf16InternalEncodingNS(void); -ENCODING * -XmlInitUnknownEncodingNS(void *mem, - int *table, - CONVERTER convert, - void *userData); -#ifdef __cplusplus -} -#endif - -#endif /* not XmlTok_INCLUDED */ diff --git a/src/utility/xlsxread/expat/xmltok_impl.c b/src/utility/xlsxread/expat/xmltok_impl.c deleted file mode 100644 index 93328b841..000000000 --- a/src/utility/xlsxread/expat/xmltok_impl.c +++ /dev/null @@ -1,1833 +0,0 @@ -/* This file is included! - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifdef XML_TOK_IMPL_C - -#ifndef IS_INVALID_CHAR -#define IS_INVALID_CHAR(enc, ptr, n) (0) -#endif - -#define INVALID_LEAD_CASE(n, ptr, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (IS_INVALID_CHAR(enc, ptr, n)) { \ - *(nextTokPtr) = (ptr); \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define INVALID_CASES(ptr, nextTokPtr) \ - INVALID_LEAD_CASE(2, ptr, nextTokPtr) \ - INVALID_LEAD_CASE(3, ptr, nextTokPtr) \ - INVALID_LEAD_CASE(4, ptr, nextTokPtr) \ - case BT_NONXML: \ - case BT_MALFORM: \ - case BT_TRAIL: \ - *(nextTokPtr) = (ptr); \ - return XML_TOK_INVALID; - -#define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (!IS_NAME_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) \ - case BT_NONASCII: \ - if (!IS_NAME_CHAR_MINBPC(enc, ptr)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - case BT_NMSTRT: \ - case BT_HEX: \ - case BT_DIGIT: \ - case BT_NAME: \ - case BT_MINUS: \ - ptr += MINBPC(enc); \ - break; \ - CHECK_NAME_CASE(2, enc, ptr, end, nextTokPtr) \ - CHECK_NAME_CASE(3, enc, ptr, end, nextTokPtr) \ - CHECK_NAME_CASE(4, enc, ptr, end, nextTokPtr) - -#define CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) \ - case BT_NONASCII: \ - if (!IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - case BT_NMSTRT: \ - case BT_HEX: \ - ptr += MINBPC(enc); \ - break; \ - CHECK_NMSTRT_CASE(2, enc, ptr, end, nextTokPtr) \ - CHECK_NMSTRT_CASE(3, enc, ptr, end, nextTokPtr) \ - CHECK_NMSTRT_CASE(4, enc, ptr, end, nextTokPtr) - -#ifndef PREFIX -#define PREFIX(ident) ident -#endif - - -#define HAS_CHARS(enc, ptr, end, count) \ - (end - ptr >= count * MINBPC(enc)) - -#define HAS_CHAR(enc, ptr, end) \ - HAS_CHARS(enc, ptr, end, 1) - -#define REQUIRE_CHARS(enc, ptr, end, count) \ - { \ - if (! HAS_CHARS(enc, ptr, end, count)) { \ - return XML_TOK_PARTIAL; \ - } \ - } - -#define REQUIRE_CHAR(enc, ptr, end) \ - REQUIRE_CHARS(enc, ptr, end, 1) - - -/* ptr points to character following " */ - switch (BYTE_TYPE(enc, ptr + MINBPC(enc))) { - case BT_S: case BT_CR: case BT_LF: case BT_PERCNT: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - /* fall through */ - case BT_S: case BT_CR: case BT_LF: - *nextTokPtr = ptr; - return XML_TOK_DECL_OPEN; - case BT_NMSTRT: - case BT_HEX: - ptr += MINBPC(enc); - break; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(checkPiTarget)(const ENCODING *UNUSED_P(enc), const char *ptr, - const char *end, int *tokPtr) -{ - int upper = 0; - *tokPtr = XML_TOK_PI; - if (end - ptr != MINBPC(enc)*3) - return 1; - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_x: - break; - case ASCII_X: - upper = 1; - break; - default: - return 1; - } - ptr += MINBPC(enc); - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_m: - break; - case ASCII_M: - upper = 1; - break; - default: - return 1; - } - ptr += MINBPC(enc); - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_l: - break; - case ASCII_L: - upper = 1; - break; - default: - return 1; - } - if (upper) - return 0; - *tokPtr = XML_TOK_XML_DECL; - return 1; -} - -/* ptr points to character following "= end) - return XML_TOK_NONE; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_RSQB: - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) - break; - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr -= MINBPC(enc); - break; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CDATA_SECT_CLOSE; - case BT_CR: - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - case BT_LF: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - INVALID_CASES(ptr, nextTokPtr) - default: - ptr += MINBPC(enc); - break; - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_DATA_CHARS; \ - } \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONXML: - case BT_MALFORM: - case BT_TRAIL: - case BT_CR: - case BT_LF: - case BT_RSQB: - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -/* ptr points to character following "= end) - return XML_TOK_NONE; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_LT: - return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_AMP: - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_CR: - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - case BT_LF: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - case BT_RSQB: - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return XML_TOK_TRAILING_RSQB; - if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) - break; - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return XML_TOK_TRAILING_RSQB; - if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr -= MINBPC(enc); - break; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - INVALID_CASES(ptr, nextTokPtr) - default: - ptr += MINBPC(enc); - break; - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_DATA_CHARS; \ - } \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_RSQB: - if (HAS_CHARS(enc, ptr, end, 2)) { - if (!CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) { - ptr += MINBPC(enc); - break; - } - if (HAS_CHARS(enc, ptr, end, 3)) { - if (!CHAR_MATCHES(enc, ptr + 2*MINBPC(enc), ASCII_GT)) { - ptr += MINBPC(enc); - break; - } - *nextTokPtr = ptr + 2*MINBPC(enc); - return XML_TOK_INVALID; - } - } - /* fall through */ - case BT_AMP: - case BT_LT: - case BT_NONXML: - case BT_MALFORM: - case BT_TRAIL: - case BT_CR: - case BT_LF: - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -/* ptr points to character following "%" */ - -static int PTRCALL -PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - REQUIRE_CHAR(enc, ptr, end); - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) - case BT_S: case BT_LF: case BT_CR: case BT_PERCNT: - *nextTokPtr = ptr; - return XML_TOK_PERCENT; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_SEMI: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_PARAM_ENTITY_REF; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - REQUIRE_CHAR(enc, ptr, end); - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_CR: case BT_LF: case BT_S: - case BT_RPAR: case BT_GT: case BT_PERCNT: case BT_VERBAR: - *nextTokPtr = ptr; - return XML_TOK_POUND_NAME; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return -XML_TOK_POUND_NAME; -} - -static int PTRCALL -PREFIX(scanLit)(int open, const ENCODING *enc, - const char *ptr, const char *end, - const char **nextTokPtr) -{ - while (HAS_CHAR(enc, ptr, end)) { - int t = BYTE_TYPE(enc, ptr); - switch (t) { - INVALID_CASES(ptr, nextTokPtr) - case BT_QUOT: - case BT_APOS: - ptr += MINBPC(enc); - if (t != open) - break; - if (! HAS_CHAR(enc, ptr, end)) - return -XML_TOK_LITERAL; - *nextTokPtr = ptr; - switch (BYTE_TYPE(enc, ptr)) { - case BT_S: case BT_CR: case BT_LF: - case BT_GT: case BT_PERCNT: case BT_LSQB: - return XML_TOK_LITERAL; - default: - return XML_TOK_INVALID; - } - default: - ptr += MINBPC(enc); - break; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - int tok; - if (ptr >= end) - return XML_TOK_NONE; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_QUOT: - return PREFIX(scanLit)(BT_QUOT, enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_APOS: - return PREFIX(scanLit)(BT_APOS, enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_LT: - { - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - switch (BYTE_TYPE(enc, ptr)) { - case BT_EXCL: - return PREFIX(scanDecl)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_QUEST: - return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_NMSTRT: - case BT_HEX: - case BT_NONASCII: - case BT_LEAD2: - case BT_LEAD3: - case BT_LEAD4: - *nextTokPtr = ptr - MINBPC(enc); - return XML_TOK_INSTANCE_START; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - case BT_CR: - if (ptr + MINBPC(enc) == end) { - *nextTokPtr = end; - /* indicate that this might be part of a CR/LF pair */ - return -XML_TOK_PROLOG_S; - } - /* fall through */ - case BT_S: case BT_LF: - for (;;) { - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - break; - switch (BYTE_TYPE(enc, ptr)) { - case BT_S: case BT_LF: - break; - case BT_CR: - /* don't split CR/LF pair */ - if (ptr + MINBPC(enc) != end) - break; - /* fall through */ - default: - *nextTokPtr = ptr; - return XML_TOK_PROLOG_S; - } - } - *nextTokPtr = ptr; - return XML_TOK_PROLOG_S; - case BT_PERCNT: - return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_COMMA: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_COMMA; - case BT_LSQB: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OPEN_BRACKET; - case BT_RSQB: - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return -XML_TOK_CLOSE_BRACKET; - if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { - REQUIRE_CHARS(enc, ptr, end, 2); - if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_GT)) { - *nextTokPtr = ptr + 2*MINBPC(enc); - return XML_TOK_COND_SECT_CLOSE; - } - } - *nextTokPtr = ptr; - return XML_TOK_CLOSE_BRACKET; - case BT_LPAR: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OPEN_PAREN; - case BT_RPAR: - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return -XML_TOK_CLOSE_PAREN; - switch (BYTE_TYPE(enc, ptr)) { - case BT_AST: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_ASTERISK; - case BT_QUEST: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_QUESTION; - case BT_PLUS: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_PLUS; - case BT_CR: case BT_LF: case BT_S: - case BT_GT: case BT_COMMA: case BT_VERBAR: - case BT_RPAR: - *nextTokPtr = ptr; - return XML_TOK_CLOSE_PAREN; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - case BT_VERBAR: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OR; - case BT_GT: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DECL_CLOSE; - case BT_NUM: - return PREFIX(scanPoundName)(enc, ptr + MINBPC(enc), end, nextTokPtr); -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ - ptr += n; \ - tok = XML_TOK_NAME; \ - break; \ - } \ - if (IS_NAME_CHAR(enc, ptr, n)) { \ - ptr += n; \ - tok = XML_TOK_NMTOKEN; \ - break; \ - } \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NMSTRT: - case BT_HEX: - tok = XML_TOK_NAME; - ptr += MINBPC(enc); - break; - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: -#ifdef XML_NS - case BT_COLON: -#endif - tok = XML_TOK_NMTOKEN; - ptr += MINBPC(enc); - break; - case BT_NONASCII: - if (IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { - ptr += MINBPC(enc); - tok = XML_TOK_NAME; - break; - } - if (IS_NAME_CHAR_MINBPC(enc, ptr)) { - ptr += MINBPC(enc); - tok = XML_TOK_NMTOKEN; - break; - } - /* fall through */ - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_GT: case BT_RPAR: case BT_COMMA: - case BT_VERBAR: case BT_LSQB: case BT_PERCNT: - case BT_S: case BT_CR: case BT_LF: - *nextTokPtr = ptr; - return tok; -#ifdef XML_NS - case BT_COLON: - ptr += MINBPC(enc); - switch (tok) { - case XML_TOK_NAME: - REQUIRE_CHAR(enc, ptr, end); - tok = XML_TOK_PREFIXED_NAME; - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - default: - tok = XML_TOK_NMTOKEN; - break; - } - break; - case XML_TOK_PREFIXED_NAME: - tok = XML_TOK_NMTOKEN; - break; - } - break; -#endif - case BT_PLUS: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_PLUS; - case BT_AST: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_ASTERISK; - case BT_QUEST: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_QUESTION; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return -tok; -} - -static int PTRCALL -PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - const char *start; - if (ptr >= end) - return XML_TOK_NONE; - else if (! HAS_CHAR(enc, ptr, end)) { - /* This line cannot be executed. The incoming data has already - * been tokenized once, so incomplete characters like this have - * already been eliminated from the input. Retaining the paranoia - * check is still valuable, however. - */ - return XML_TOK_PARTIAL; /* LCOV_EXCL_LINE */ - } - start = ptr; - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_AMP: - if (ptr == start) - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_LT: - /* this is for inside entity references */ - *nextTokPtr = ptr; - return XML_TOK_INVALID; - case BT_LF: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_CR: - if (ptr == start) { - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_S: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_ATTRIBUTE_VALUE_S; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -static int PTRCALL -PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - const char *start; - if (ptr >= end) - return XML_TOK_NONE; - else if (! HAS_CHAR(enc, ptr, end)) { - /* This line cannot be executed. The incoming data has already - * been tokenized once, so incomplete characters like this have - * already been eliminated from the input. Retaining the paranoia - * check is still valuable, however. - */ - return XML_TOK_PARTIAL; /* LCOV_EXCL_LINE */ - } - start = ptr; - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_AMP: - if (ptr == start) - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_PERCNT: - if (ptr == start) { - int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc), - end, nextTokPtr); - return (tok == XML_TOK_PERCENT) ? XML_TOK_INVALID : tok; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_LF: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_CR: - if (ptr == start) { - ptr += MINBPC(enc); - if (! HAS_CHAR(enc, ptr, end)) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -#ifdef XML_DTD - -static int PTRCALL -PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - int level = 0; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - end = ptr + n; - } - } - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { - INVALID_CASES(ptr, nextTokPtr) - case BT_LT: - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (CHAR_MATCHES(enc, ptr, ASCII_EXCL)) { - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (CHAR_MATCHES(enc, ptr, ASCII_LSQB)) { - ++level; - ptr += MINBPC(enc); - } - } - break; - case BT_RSQB: - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { - ptr += MINBPC(enc); - REQUIRE_CHAR(enc, ptr, end); - if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr += MINBPC(enc); - if (level == 0) { - *nextTokPtr = ptr; - return XML_TOK_IGNORE_SECT; - } - --level; - } - } - break; - default: - ptr += MINBPC(enc); - break; - } - } - return XML_TOK_PARTIAL; -} - -#endif /* XML_DTD */ - -static int PTRCALL -PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, - const char **badPtr) -{ - ptr += MINBPC(enc); - end -= MINBPC(enc); - for (; HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { - switch (BYTE_TYPE(enc, ptr)) { - case BT_DIGIT: - case BT_HEX: - case BT_MINUS: - case BT_APOS: - case BT_LPAR: - case BT_RPAR: - case BT_PLUS: - case BT_COMMA: - case BT_SOL: - case BT_EQUALS: - case BT_QUEST: - case BT_CR: - case BT_LF: - case BT_SEMI: - case BT_EXCL: - case BT_AST: - case BT_PERCNT: - case BT_NUM: -#ifdef XML_NS - case BT_COLON: -#endif - break; - case BT_S: - if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { - *badPtr = ptr; - return 0; - } - break; - case BT_NAME: - case BT_NMSTRT: - if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f)) - break; - default: - switch (BYTE_TO_ASCII(enc, ptr)) { - case 0x24: /* $ */ - case 0x40: /* @ */ - break; - default: - *badPtr = ptr; - return 0; - } - break; - } - } - return 1; -} - -/* This must only be called for a well-formed start-tag or empty - element tag. Returns the number of attributes. Pointers to the - first attsMax attributes are stored in atts. -*/ - -static int PTRCALL -PREFIX(getAtts)(const ENCODING *enc, const char *ptr, - int attsMax, ATTRIBUTE *atts) -{ - enum { other, inName, inValue } state = inName; - int nAtts = 0; - int open = 0; /* defined when state == inValue; - initialization just to shut up compilers */ - - for (ptr += MINBPC(enc);; ptr += MINBPC(enc)) { - switch (BYTE_TYPE(enc, ptr)) { -#define START_NAME \ - if (state == other) { \ - if (nAtts < attsMax) { \ - atts[nAtts].name = ptr; \ - atts[nAtts].normalized = 1; \ - } \ - state = inName; \ - } -#define LEAD_CASE(n) \ - case BT_LEAD ## n: START_NAME ptr += (n - MINBPC(enc)); break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONASCII: - case BT_NMSTRT: - case BT_HEX: - START_NAME - break; -#undef START_NAME - case BT_QUOT: - if (state != inValue) { - if (nAtts < attsMax) - atts[nAtts].valuePtr = ptr + MINBPC(enc); - state = inValue; - open = BT_QUOT; - } - else if (open == BT_QUOT) { - state = other; - if (nAtts < attsMax) - atts[nAtts].valueEnd = ptr; - nAtts++; - } - break; - case BT_APOS: - if (state != inValue) { - if (nAtts < attsMax) - atts[nAtts].valuePtr = ptr + MINBPC(enc); - state = inValue; - open = BT_APOS; - } - else if (open == BT_APOS) { - state = other; - if (nAtts < attsMax) - atts[nAtts].valueEnd = ptr; - nAtts++; - } - break; - case BT_AMP: - if (nAtts < attsMax) - atts[nAtts].normalized = 0; - break; - case BT_S: - if (state == inName) - state = other; - else if (state == inValue - && nAtts < attsMax - && atts[nAtts].normalized - && (ptr == atts[nAtts].valuePtr - || BYTE_TO_ASCII(enc, ptr) != ASCII_SPACE - || BYTE_TO_ASCII(enc, ptr + MINBPC(enc)) == ASCII_SPACE - || BYTE_TYPE(enc, ptr + MINBPC(enc)) == open)) - atts[nAtts].normalized = 0; - break; - case BT_CR: case BT_LF: - /* This case ensures that the first attribute name is counted - Apart from that we could just change state on the quote. */ - if (state == inName) - state = other; - else if (state == inValue && nAtts < attsMax) - atts[nAtts].normalized = 0; - break; - case BT_GT: - case BT_SOL: - if (state != inValue) - return nAtts; - break; - default: - break; - } - } - /* not reached */ -} - -static int PTRFASTCALL -PREFIX(charRefNumber)(const ENCODING *UNUSED_P(enc), const char *ptr) -{ - int result = 0; - /* skip &# */ - ptr += 2*MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_x)) { - for (ptr += MINBPC(enc); - !CHAR_MATCHES(enc, ptr, ASCII_SEMI); - ptr += MINBPC(enc)) { - int c = BYTE_TO_ASCII(enc, ptr); - switch (c) { - case ASCII_0: case ASCII_1: case ASCII_2: case ASCII_3: case ASCII_4: - case ASCII_5: case ASCII_6: case ASCII_7: case ASCII_8: case ASCII_9: - result <<= 4; - result |= (c - ASCII_0); - break; - case ASCII_A: case ASCII_B: case ASCII_C: - case ASCII_D: case ASCII_E: case ASCII_F: - result <<= 4; - result += 10 + (c - ASCII_A); - break; - case ASCII_a: case ASCII_b: case ASCII_c: - case ASCII_d: case ASCII_e: case ASCII_f: - result <<= 4; - result += 10 + (c - ASCII_a); - break; - } - if (result >= 0x110000) - return -1; - } - } - else { - for (; !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { - int c = BYTE_TO_ASCII(enc, ptr); - result *= 10; - result += (c - ASCII_0); - if (result >= 0x110000) - return -1; - } - } - return checkCharRefNumber(result); -} - -static int PTRCALL -PREFIX(predefinedEntityName)(const ENCODING *UNUSED_P(enc), const char *ptr, - const char *end) -{ - switch ((end - ptr)/MINBPC(enc)) { - case 2: - if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_l: - return ASCII_LT; - case ASCII_g: - return ASCII_GT; - } - } - break; - case 3: - if (CHAR_MATCHES(enc, ptr, ASCII_a)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_m)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_p)) - return ASCII_AMP; - } - } - break; - case 4: - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_q: - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_u)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_o)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_t)) - return ASCII_QUOT; - } - } - break; - case ASCII_a: - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_p)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_o)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_s)) - return ASCII_APOS; - } - } - break; - } - } - return 0; -} - -/* This function does not appear to be called from anywhere within the - * library code. It is used via the macro XmlSameName(), which is - * defined but never used. Since it appears in the encoding function - * table, removing it is not a thing to be undertaken lightly. For - * the moment, we simply exclude it from coverage tests. - * - * LCOV_EXCL_START - */ -static int PTRCALL -PREFIX(sameName)(const ENCODING *enc, const char *ptr1, const char *ptr2) -{ - for (;;) { - switch (BYTE_TYPE(enc, ptr1)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (*ptr1++ != *ptr2++) \ - return 0; - LEAD_CASE(4) LEAD_CASE(3) LEAD_CASE(2) -#undef LEAD_CASE - /* fall through */ - if (*ptr1++ != *ptr2++) - return 0; - break; - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 1) { - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 2) { - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 3) { - if (*ptr2++ != *ptr1++) - return 0; - } - } - } - break; - default: - if (MINBPC(enc) == 1 && *ptr1 == *ptr2) - return 1; - switch (BYTE_TYPE(enc, ptr2)) { - case BT_LEAD2: - case BT_LEAD3: - case BT_LEAD4: - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - return 0; - default: - return 1; - } - } - } - /* not reached */ -} -/* LCOV_EXCL_STOP */ - -static int PTRCALL -PREFIX(nameMatchesAscii)(const ENCODING *UNUSED_P(enc), const char *ptr1, - const char *end1, const char *ptr2) -{ - for (; *ptr2; ptr1 += MINBPC(enc), ptr2++) { - if (end1 - ptr1 < MINBPC(enc)) { - /* This line cannot be executed. THe incoming data has already - * been tokenized once, so imcomplete characters like this have - * already been eliminated from the input. Retaining the - * paranoia check is still valuable, however. - */ - return 0; /* LCOV_EXCL_LINE */ - } - if (!CHAR_MATCHES(enc, ptr1, *ptr2)) - return 0; - } - return ptr1 == end1; -} - -static int PTRFASTCALL -PREFIX(nameLength)(const ENCODING *enc, const char *ptr) -{ - const char *start = ptr; - for (;;) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - ptr += MINBPC(enc); - break; - default: - return (int)(ptr - start); - } - } -} - -static const char * PTRFASTCALL -PREFIX(skipS)(const ENCODING *enc, const char *ptr) -{ - for (;;) { - switch (BYTE_TYPE(enc, ptr)) { - case BT_LF: - case BT_CR: - case BT_S: - ptr += MINBPC(enc); - break; - default: - return ptr; - } - } -} - -static void PTRCALL -PREFIX(updatePosition)(const ENCODING *enc, - const char *ptr, - const char *end, - POSITION *pos) -{ - while (HAS_CHAR(enc, ptr, end)) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_LF: - pos->columnNumber = (XML_Size)-1; - pos->lineNumber++; - ptr += MINBPC(enc); - break; - case BT_CR: - pos->lineNumber++; - ptr += MINBPC(enc); - if (HAS_CHAR(enc, ptr, end) && BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - pos->columnNumber = (XML_Size)-1; - break; - default: - ptr += MINBPC(enc); - break; - } - pos->columnNumber++; - } -} - -#undef DO_LEAD_CASE -#undef MULTIBYTE_CASES -#undef INVALID_CASES -#undef CHECK_NAME_CASE -#undef CHECK_NAME_CASES -#undef CHECK_NMSTRT_CASE -#undef CHECK_NMSTRT_CASES - -#endif /* XML_TOK_IMPL_C */ diff --git a/src/utility/xlsxread/expat/xmltok_impl.h b/src/utility/xlsxread/expat/xmltok_impl.h deleted file mode 100644 index a6420f48e..000000000 --- a/src/utility/xlsxread/expat/xmltok_impl.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -enum { - BT_NONXML, - BT_MALFORM, - BT_LT, - BT_AMP, - BT_RSQB, - BT_LEAD2, - BT_LEAD3, - BT_LEAD4, - BT_TRAIL, - BT_CR, - BT_LF, - BT_GT, - BT_QUOT, - BT_APOS, - BT_EQUALS, - BT_QUEST, - BT_EXCL, - BT_SOL, - BT_SEMI, - BT_NUM, - BT_LSQB, - BT_S, - BT_NMSTRT, - BT_COLON, - BT_HEX, - BT_DIGIT, - BT_NAME, - BT_MINUS, - BT_OTHER, /* known not to be a name or name start character */ - BT_NONASCII, /* might be a name or name start character */ - BT_PERCNT, - BT_LPAR, - BT_RPAR, - BT_AST, - BT_PLUS, - BT_COMMA, - BT_VERBAR -}; - -#include diff --git a/src/utility/xlsxread/expat/xmltok_ns.c b/src/utility/xlsxread/expat/xmltok_ns.c deleted file mode 100644 index 23d31e8e4..000000000 --- a/src/utility/xlsxread/expat/xmltok_ns.c +++ /dev/null @@ -1,142 +0,0 @@ -/* This file is included! - __ __ _ - ___\ \/ /_ __ __ _| |_ - / _ \\ /| '_ \ / _` | __| - | __// \| |_) | (_| | |_ - \___/_/\_\ .__/ \__,_|\__| - |_| XML parser - - Copyright (c) 1997-2000 Thai Open Source Software Center Ltd - Copyright (c) 2000-2017 Expat development team - Licensed under the MIT license: - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifdef XML_TOK_NS_C - -const ENCODING * -NS(XmlGetUtf8InternalEncoding)(void) -{ - return &ns(internal_utf8_encoding).enc; -} - -const ENCODING * -NS(XmlGetUtf16InternalEncoding)(void) -{ -#if BYTEORDER == 1234 - return &ns(internal_little2_encoding).enc; -#elif BYTEORDER == 4321 - return &ns(internal_big2_encoding).enc; -#else - const short n = 1; - return (*(const char *)&n - ? &ns(internal_little2_encoding).enc - : &ns(internal_big2_encoding).enc); -#endif -} - -static const ENCODING * const NS(encodings)[] = { - &ns(latin1_encoding).enc, - &ns(ascii_encoding).enc, - &ns(utf8_encoding).enc, - &ns(big2_encoding).enc, - &ns(big2_encoding).enc, - &ns(little2_encoding).enc, - &ns(utf8_encoding).enc /* NO_ENC */ -}; - -static int PTRCALL -NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - return initScan(NS(encodings), (const INIT_ENCODING *)enc, - XML_PROLOG_STATE, ptr, end, nextTokPtr); -} - -static int PTRCALL -NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - return initScan(NS(encodings), (const INIT_ENCODING *)enc, - XML_CONTENT_STATE, ptr, end, nextTokPtr); -} - -int -NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, - const char *name) -{ - int i = getEncodingIndex(name); - if (i == UNKNOWN_ENC) - return 0; - SET_INIT_ENC_INDEX(p, i); - p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog); - p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent); - p->initEnc.updatePosition = initUpdatePosition; - p->encPtr = encPtr; - *encPtr = &(p->initEnc); - return 1; -} - -static const ENCODING * -NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end) -{ -#define ENCODING_MAX 128 - char buf[ENCODING_MAX]; - char *p = buf; - int i; - XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1); - if (ptr != end) - return 0; - *p = 0; - if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2) - return enc; - i = getEncodingIndex(buf); - if (i == UNKNOWN_ENC) - return 0; - return NS(encodings)[i]; -} - -int -NS(XmlParseXmlDecl)(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingName, - const ENCODING **encoding, - int *standalone) -{ - return doParseXmlDecl(NS(findEncoding), - isGeneralTextEntity, - enc, - ptr, - end, - badPtr, - versionPtr, - versionEndPtr, - encodingName, - encoding, - standalone); -} - -#endif /* XML_TOK_NS_C */ diff --git a/src/utility/xlsxread/xlsxio_read.cpp b/src/utility/xlsxread/xlsxio_read.cpp deleted file mode 100644 index 8a3ee5263..000000000 --- a/src/utility/xlsxread/xlsxio_read.cpp +++ /dev/null @@ -1,1381 +0,0 @@ -/* -Copyright (C) 2016 Brecht Sanders All Rights Reserved -Copyright (C) 2019 Christoph Oelckers All Rights Reserved - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -// This file was modified to use GZDoom's zip management instead of pulling in another external library for it. - -#include "xlsxio_read.h" -#include "xlsxio_version.h" -#include -#include -#include - -#include "expat/expat.h" -#include "resourcefiles/file_zip.h" -#include "w_wad.h" - -#if defined(_MSC_VER) -#undef DLL_EXPORT_XLSXIO -#define DLL_EXPORT_XLSXIO -#endif - -#define zip_t FResourceFile -#define zip_file_t FileReader - -// Wrapper fpr libzip interface to FResourceFile. -zip_t *zip_open(int lumpnum, const void *) -{ - auto rf = FResourceFile::OpenResourceFileFromLump(lumpnum, true, true); - if (rf == nullptr) return nullptr; - // This will open a non-Zip as a loose lump so before returning check if the content is an XLSX file. - auto lump = rf->FindLump("[Content_Types].xml"); - if (lump == nullptr) - { - delete rf; - return nullptr; - } - return rf; -} - -void zip_close(zip_t *zipfile) -{ - if (zipfile) delete zipfile; -} - -zip_file_t *zip_fopen(zip_t *zipfile, const char *filename) -{ - if (!zipfile || !filename) return NULL; - auto lump = zipfile->FindLump(filename); - if (!lump) return NULL; - return new FileReader(lump->NewReader()); -} - -void zip_fclose(zip_file_t *zippedfile) -{ - if (zippedfile) delete zippedfile; -} - -int zip_fread(zip_file_t *zippedfile, void *buf, size_t len) -{ - if (!zippedfile) return -1; - return (int)zippedfile->Read(buf, (long)len); -} - -size_t zip_get_num_entries(zip_t *zipfile) -{ - if (!zipfile) return 0; - return zipfile->LumpCount(); -} - -const char *zip_get_name(zip_t *zipfile, size_t index) -{ - auto lump = zipfile->GetLump((int)index); - if (!lump) return NULL; - return lump->FullName.GetChars(); -} - - -#ifndef _WIN32 -#define stricmp strcasecmp -#endif - -DLL_EXPORT_XLSXIO void xlsxioread_get_version (int* pmajor, int* pminor, int* pmicro) -{ - if (pmajor) - *pmajor = XLSXIO_VERSION_MAJOR; - if (pminor) - *pminor = XLSXIO_VERSION_MINOR; - if (pmicro) - *pmicro = XLSXIO_VERSION_MICRO; -} - -DLL_EXPORT_XLSXIO const char* xlsxioread_get_version_string () -{ - return XLSXIO_VERSION_STRING; -} - -//////////////////////////////////////////////////////////////////////// - -#define BUFFER_SIZE 256 -//#define BUFFER_SIZE 4 - -//process XML file contents -int expat_process_zip_file (zip_t* zip, const char* filename, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler, XML_CharacterDataHandler data_handler, void* callbackdata, XML_Parser* xmlparser) -{ - zip_file_t* zipfile; - XML_Parser parser; - char buf[BUFFER_SIZE]; - int buflen; - enum XML_Status status = XML_STATUS_ERROR; - if ((zipfile = zip_fopen(zip, filename)) == NULL) { - return -1; - } - parser = XML_ParserCreate(NULL); - XML_SetUserData(parser, callbackdata); - XML_SetElementHandler(parser, start_handler, end_handler); - XML_SetCharacterDataHandler(parser, data_handler); - if (xmlparser) - *xmlparser = parser; - while ((buflen = zip_fread(zipfile, buf, sizeof(buf))) >= 0) { - if ((status = XML_Parse(parser, buf, buflen, (buflen < (int)sizeof(buf) ? 1 : 0))) == XML_STATUS_ERROR) - break; - if (xmlparser && status == XML_STATUS_SUSPENDED) - return 0; - } - XML_ParserFree(parser); - zip_fclose(zipfile); - //return (status == XML_STATUS_ERROR != XML_ERROR_FINISHED ? 1 : 0); - return 0; -} - -XML_Parser expat_process_zip_file_suspendable (zip_file_t* zipfile, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler, XML_CharacterDataHandler data_handler, void* callbackdata) -{ - XML_Parser result; - if ((result = XML_ParserCreate(NULL)) != NULL) { - XML_SetUserData(result, callbackdata); - XML_SetElementHandler(result, start_handler, end_handler); - XML_SetCharacterDataHandler(result, data_handler); - } - return result; -} - -enum XML_Status expat_process_zip_file_resume (zip_file_t* zipfile, XML_Parser xmlparser) -{ - enum XML_Status status; - status = XML_ResumeParser(xmlparser); - if (status == XML_STATUS_SUSPENDED) - return status; - if (status == XML_STATUS_ERROR && XML_GetErrorCode(xmlparser) != XML_ERROR_NOT_SUSPENDED) - return status; - char buf[BUFFER_SIZE]; - int buflen; - while ((buflen = zip_fread(zipfile, buf, sizeof(buf))) > 0) { - if ((status = XML_Parse(xmlparser, buf, buflen, (buflen < (int)sizeof(buf) ? 1 : 0))) == XML_STATUS_ERROR) - return status; - if (status == XML_STATUS_SUSPENDED) - return status; - } - return status; -} - -//get expat attribute by name, returns NULL if not found -const XML_Char* get_expat_attr_by_name (const XML_Char** atts, const XML_Char* name) -{ - const XML_Char** p = atts; - if (p) { - while (*p) { - if (stricmp(*p++, name) == 0) - return *p; - p++; - } - } - return NULL; -} - -//generate .rels filename, returns NULL on error, caller must free result -char* get_relationship_filename (const char* filename) -{ - char* result; - size_t filenamelen = strlen(filename); - if ((result = (char*)malloc(filenamelen + 12))) { - size_t i = filenamelen; - while (i > 0) { - if (filename[i - 1] == '/') - break; - i--; - } - memcpy(result, filename, i); - memcpy(result + i, "_rels/", 6); - memcpy(result + i + 6, filename + i, filenamelen - i); - strcpy(result + filenamelen + 6, ".rels"); - } - return result; -} - -//join basepath and filename (caller must free result) -char* join_basepath_filename (const char* basepath, const char* filename) -{ - char* result = NULL; - if (filename && *filename) { - size_t basepathlen = (basepath ? strlen(basepath) : 0); - size_t filenamelen = strlen(filename); - if ((result = (char*)malloc(basepathlen + filenamelen + 1)) != NULL) { - if (basepathlen > 0) - memcpy(result, basepath, basepathlen); - memcpy(result + basepathlen, filename, filenamelen); - result[basepathlen + filenamelen] = 0; - } - } - return result; -} - -//determine column number based on cell coordinate (e.g. "A1"), returns 1-based column number or 0 on error -size_t get_col_nr (const char* A1col) -{ - const char* p = A1col; - size_t result = 0; - if (p) { - while (*p) { - if (*p >= 'A' && *p <= 'Z') - result = result * 26 + (*p - 'A') + 1; - else if (*p >= 'a' && *p <= 'z') - result = result * 26 + (*p - 'a') + 1; - else if (*p >= '0' && *p <= '9' && p != A1col) - return result; - else - break; - p++; - } - } - return 0; -} - -//determine row number based on cell coordinate (e.g. "A1"), returns 1-based row number or 0 on error -size_t get_row_nr (const char* A1col) -{ - const char* p = A1col; - size_t result = 0; - if (p) { - while (*p) { - if ((*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z')) - ; - else if (*p >= '0' && *p <= '9' && p != A1col) - result = result * 10 + (*p - '0'); - else - return 0; - p++; - } - } - return result; -} - -//////////////////////////////////////////////////////////////////////// - -struct sharedstringlist { - char** strings; - size_t count; -}; - -struct sharedstringlist* sharedstringlist_create () -{ - struct sharedstringlist* sharedstrings; - if ((sharedstrings = (struct sharedstringlist*)malloc(sizeof(struct sharedstringlist))) != NULL) { - sharedstrings->strings = NULL; - sharedstrings->count = 0; - } - return sharedstrings; -} - -void sharedstringlist_destroy (struct sharedstringlist* sharedstrings) -{ - if (sharedstrings) { - size_t i; - for (i = 0; i < sharedstrings->count; i++) - free(sharedstrings->strings[i]); - free(sharedstrings); - } -} - -size_t sharedstringlist_size (struct sharedstringlist* sharedstrings) -{ - if (!sharedstrings) - return 0; - return sharedstrings->count; -} - -int sharedstringlist_add_buffer (struct sharedstringlist* sharedstrings, const char* data, size_t datalen) -{ - char* s; - char** p; - if (!sharedstrings) - return 1; - if (!data) { - s = NULL; - } else { - if ((s = (char*)malloc(datalen + 1)) == NULL) - return 2; - memcpy(s, data, datalen); - s[datalen] = 0; - } - if ((p = (char**)realloc(sharedstrings->strings, (sharedstrings->count + 1) * sizeof(sharedstrings->strings[0]))) == NULL) - return 3; - sharedstrings->strings = p; - sharedstrings->strings[sharedstrings->count++] = s; - return 0; -} - -int sharedstringlist_add_string (struct sharedstringlist* sharedstrings, const char* data) -{ - return sharedstringlist_add_buffer(sharedstrings, data, (data ? strlen(data) : 0)); -} - -const char* sharedstringlist_get (struct sharedstringlist* sharedstrings, size_t index) -{ - if (!sharedstrings || index >= sharedstrings->count) - return NULL; - return sharedstrings->strings[index]; -} - -//////////////////////////////////////////////////////////////////////// - -struct shared_strings_callback_data { - XML_Parser xmlparser; - zip_file_t* zipfile; - struct sharedstringlist* sharedstrings; - int insst; - int insi; - int intext; - char* text; - size_t textlen; - char* skiptag; //tag to skip - size_t skiptagcount; //nesting level for current tag to skip - XML_StartElementHandler skip_start; //start handler to set after skipping - XML_EndElementHandler skip_end; //end handler to set after skipping - XML_CharacterDataHandler skip_data; //data handler to set after skipping -}; - -void shared_strings_callback_data_initialize (struct shared_strings_callback_data* data, struct sharedstringlist* sharedstrings) -{ - data->xmlparser = NULL; - data->zipfile = NULL; - data->sharedstrings = sharedstrings; - data->insst = 0; - data->insi = 0; - data->intext = 0; - data->text = NULL; - data->textlen = 0; - data->skiptag = NULL; - data->skiptagcount = 0; - data->skip_start = NULL; - data->skip_end = NULL; - data->skip_data = NULL; -} - -void shared_strings_callback_data_cleanup (struct shared_strings_callback_data* data) -{ - free(data->text); - free(data->skiptag); -} - -void shared_strings_callback_skip_tag_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (name && stricmp(name, data->skiptag) == 0) { - //increment nesting level - data->skiptagcount++; - } -} - -void shared_strings_callback_skip_tag_end (void* callbackdata, const XML_Char* name) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (!name || stricmp(name, data->skiptag) == 0) { - if (--data->skiptagcount == 0) { - //restore handlers when done skipping - XML_SetElementHandler(data->xmlparser, data->skip_start, data->skip_end); - XML_SetCharacterDataHandler(data->xmlparser, data->skip_data); - free(data->skiptag); - data->skiptag = NULL; - } - } -} - -void shared_strings_callback_find_sharedstringtable_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void shared_strings_callback_find_sharedstringtable_end (void* callbackdata, const XML_Char* name); -void shared_strings_callback_find_shared_stringitem_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void shared_strings_callback_find_shared_stringitem_end (void* callbackdata, const XML_Char* name); -void shared_strings_callback_find_shared_string_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void shared_strings_callback_find_shared_string_end (void* callbackdata, const XML_Char* name); -void shared_strings_callback_string_data (void* callbackdata, const XML_Char* buf, int buflen); - -void shared_strings_callback_find_sharedstringtable_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "sst") == 0) { - XML_SetElementHandler(data->xmlparser, shared_strings_callback_find_shared_stringitem_start, NULL); - } -} - -void shared_strings_callback_find_sharedstringtable_end (void* callbackdata, const XML_Char* name) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "sst") == 0) { - XML_SetElementHandler(data->xmlparser, shared_strings_callback_find_sharedstringtable_start, NULL); - } -} - -void shared_strings_callback_find_shared_stringitem_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "si") == 0) { - if (data->text) - free(data->text); - data->text = NULL; - data->textlen = 0; - XML_SetElementHandler(data->xmlparser, shared_strings_callback_find_shared_string_start, shared_strings_callback_find_sharedstringtable_end); - } -} - -void shared_strings_callback_find_shared_stringitem_end (void* callbackdata, const XML_Char* name) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "si") == 0) { - sharedstringlist_add_buffer(data->sharedstrings, data->text, data->textlen); - if (data->text) - free(data->text); - data->text = NULL; - data->textlen = 0; - XML_SetElementHandler(data->xmlparser, shared_strings_callback_find_shared_stringitem_start, shared_strings_callback_find_sharedstringtable_end); - } else { - shared_strings_callback_find_sharedstringtable_end(callbackdata, name); - } -} - -void shared_strings_callback_find_shared_string_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "t") == 0) { - XML_SetElementHandler(data->xmlparser, NULL, shared_strings_callback_find_shared_string_end); - XML_SetCharacterDataHandler(data->xmlparser, shared_strings_callback_string_data); - } else if (stricmp(name, "rPh") == 0) { - data->skiptag = strdup(name); - data->skiptagcount = 1; - data->skip_start = shared_strings_callback_find_shared_string_start; - data->skip_end = shared_strings_callback_find_shared_stringitem_end; - data->skip_data = NULL; - XML_SetElementHandler(data->xmlparser, shared_strings_callback_skip_tag_start, shared_strings_callback_skip_tag_end); - XML_SetCharacterDataHandler(data->xmlparser, NULL); - } -} - -void shared_strings_callback_find_shared_string_end (void* callbackdata, const XML_Char* name) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if (stricmp(name, "t") == 0) { - XML_SetElementHandler(data->xmlparser, shared_strings_callback_find_shared_string_start, shared_strings_callback_find_shared_stringitem_end); - XML_SetCharacterDataHandler(data->xmlparser, NULL); - } else { - shared_strings_callback_find_shared_stringitem_end(callbackdata, name); - } -} - -void shared_strings_callback_string_data (void* callbackdata, const XML_Char* buf, int buflen) -{ - struct shared_strings_callback_data* data = (struct shared_strings_callback_data*)callbackdata; - if ((data->text = (char*)realloc(data->text, data->textlen + buflen)) == NULL) { - //memory allocation error - data->textlen = 0; - } else { - memcpy(data->text + data->textlen, buf, buflen); - data->textlen += buflen; - } -} - -//////////////////////////////////////////////////////////////////////// - -struct xlsxio_read_struct { - zip_t* zip; -}; - -DLL_EXPORT_XLSXIO xlsxioreader xlsxioread_open (int lumpnum) -{ - xlsxioreader result; - if ((result = (xlsxioreader)malloc(sizeof(struct xlsxio_read_struct))) != NULL) { - if ((result->zip = zip_open(lumpnum, NULL)) == NULL) { - free(result); - return NULL; - } - } - return result; -} - -DLL_EXPORT_XLSXIO void xlsxioread_close (xlsxioreader handle) -{ - if (handle) { - zip_close(handle->zip); - free(handle); - } -} - -//////////////////////////////////////////////////////////////////////// - -//callback function definition for use with list_files_by_contenttype -typedef void (*contenttype_file_callback_fn)(zip_t* zip, const char* filename, const char* contenttype, void* callbackdata); - -struct list_files_by_contenttype_callback_data { - zip_t* zip; - const char* contenttype; - contenttype_file_callback_fn filecallbackfn; - void* filecallbackdata; -}; - -//expat callback function for element start used by list_files_by_contenttype -void list_files_by_contenttype_expat_callback_element_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct list_files_by_contenttype_callback_data* data = (struct list_files_by_contenttype_callback_data*)callbackdata; - if (stricmp(name, "Override") == 0) { - //explicitly specified file - const XML_Char* contenttype; - const XML_Char* partname; - if ((contenttype = get_expat_attr_by_name(atts, "ContentType")) != NULL && stricmp(contenttype, data->contenttype) == 0) { - if ((partname = get_expat_attr_by_name(atts, "PartName")) != NULL) { - if (partname[0] == '/') - partname++; - data->filecallbackfn(data->zip, partname, contenttype, data->filecallbackdata); - } - } - } else if (stricmp(name, "Default") == 0) { - //by extension - const XML_Char* contenttype; - const XML_Char* extension; - if ((contenttype = get_expat_attr_by_name(atts, "ContentType")) != NULL && stricmp(contenttype, data->contenttype) == 0) { - if ((extension = get_expat_attr_by_name(atts, "Extension")) != NULL) { - const char* filename; - size_t filenamelen; - size_t i; - size_t zipnumfiles = zip_get_num_entries(data->zip); - size_t extensionlen = strlen(extension); - for (i = 0; i < zipnumfiles; i++) { - filename = zip_get_name(data->zip, i); - filenamelen = strlen(filename); - if (filenamelen > extensionlen && filename[filenamelen - extensionlen - 1] == '.' && stricmp(filename + filenamelen - extensionlen, extension) == 0) { - data->filecallbackfn(data->zip, filename, contenttype, data->filecallbackdata); - } - } - } - } - } -} - -//list file names by content type -int list_files_by_contenttype (zip_t* zip, const char* contenttype, contenttype_file_callback_fn filecallbackfn, void* filecallbackdata, XML_Parser* xmlparser) -{ - struct list_files_by_contenttype_callback_data callbackdata = { - zip, - contenttype, - filecallbackfn, - filecallbackdata - }; - return expat_process_zip_file(zip, "[Content_Types].xml", list_files_by_contenttype_expat_callback_element_start, NULL, NULL, &callbackdata, xmlparser); -} - -//////////////////////////////////////////////////////////////////////// - -//callback structure used by main_sheet_list_expat_callback_element_start -struct main_sheet_list_callback_data { - XML_Parser xmlparser; - xlsxioread_list_sheets_callback_fn callback; - void* callbackdata; -}; - -//callback used by xlsxioread_list_sheets -void main_sheet_list_expat_callback_element_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct main_sheet_list_callback_data* data = (struct main_sheet_list_callback_data*)callbackdata; - if (data && data->callback) { - if (stricmp(name, "sheet") == 0) { - const XML_Char* sheetname; - //const XML_Char* relid = get_expat_attr_by_name(atts, "r:id"); - if ((sheetname = get_expat_attr_by_name(atts, "name")) != NULL) { - if (data->callback) { - if ((*data->callback)(sheetname, data->callbackdata) != 0) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } -/* - } else { - //for non-calback method suspend here - XML_StopParser(data->xmlparser, XML_TRUE); -*/ - } - } - } - } -} - -//process contents each sheet listed in main sheet -void xlsxioread_list_sheets_callback (zip_t* zip, const char* filename, const char* contenttype, void* callbackdata) -{ - //get sheet information from file - expat_process_zip_file(zip, filename, main_sheet_list_expat_callback_element_start, NULL, NULL, callbackdata, &((struct main_sheet_list_callback_data*)callbackdata)->xmlparser); -} - -//list all worksheets -DLL_EXPORT_XLSXIO void xlsxioread_list_sheets (xlsxioreader handle, xlsxioread_list_sheets_callback_fn callback, void* callbackdata) -{ - if (!handle || !callback) - return; - //process contents of main sheet - struct main_sheet_list_callback_data sheetcallbackdata = { - NULL, - callback, - callbackdata - }; - list_files_by_contenttype(handle->zip, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", xlsxioread_list_sheets_callback, &sheetcallbackdata, &sheetcallbackdata.xmlparser); -} - -//////////////////////////////////////////////////////////////////////// - -//callback data structure used by main_sheet_get_sheetfile_callback -struct main_sheet_get_rels_callback_data { - XML_Parser xmlparser; - const char* sheetname; - char* basepath; - char* sheetrelid; - char* sheetfile; - char* sharedstringsfile; -}; - -//determine relationship id for specific sheet name -void main_sheet_get_relid_expat_callback_element_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct main_sheet_get_rels_callback_data* data = (struct main_sheet_get_rels_callback_data*)callbackdata; - if (stricmp(name, "sheet") == 0) { - const XML_Char* name = get_expat_attr_by_name(atts, "name"); - if (!data->sheetname || stricmp(name, data->sheetname) == 0) { - const XML_Char* relid = get_expat_attr_by_name(atts, "r:id"); - if (relid && *relid) { - data->sheetrelid = strdup(relid); - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - } - } -} - -//determine sheet file name for specific relationship id -void main_sheet_get_sheetfile_expat_callback_element_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct main_sheet_get_rels_callback_data* data = (struct main_sheet_get_rels_callback_data*)callbackdata; - if (data->sheetrelid) { - if (stricmp(name, "Relationship") == 0) { - const XML_Char* reltype; - if ((reltype = get_expat_attr_by_name(atts, "Type")) != NULL && stricmp(reltype, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet") == 0) { - const XML_Char* relid = get_expat_attr_by_name(atts, "Id"); - if (stricmp(relid, data->sheetrelid) == 0) { - const XML_Char* filename = get_expat_attr_by_name(atts, "Target"); - if (filename && *filename) { - data->sheetfile = join_basepath_filename(data->basepath, filename); - } - } - } else if ((reltype = get_expat_attr_by_name(atts, "Type")) != NULL && stricmp(reltype, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings") == 0) { - const XML_Char* filename = get_expat_attr_by_name(atts, "Target"); - if (filename && *filename) { - data->sharedstringsfile = join_basepath_filename(data->basepath, filename); - } - } - } - } -} - -//determine the file name for a specified sheet name -void main_sheet_get_sheetfile_callback (zip_t* zip, const char* filename, const char* contenttype, void* callbackdata) -{ - struct main_sheet_get_rels_callback_data* data = (struct main_sheet_get_rels_callback_data*)callbackdata; - if (!data->sheetrelid) { - expat_process_zip_file(zip, filename, main_sheet_get_relid_expat_callback_element_start, NULL, NULL, callbackdata, &data->xmlparser); - } - if (data->sheetrelid) { - char* relfilename; - //determine base name (including trailing slash) - size_t i = strlen(filename); - while (i > 0) { - if (filename[i - 1] == '/') - break; - i--; - } - if (data->basepath) - free(data->basepath); - if ((data->basepath = (char*)malloc(i + 1)) != NULL) { - memcpy(data->basepath, filename, i); - data->basepath[i] = 0; - } - //find sheet filename in relationship contents - if ((relfilename = get_relationship_filename(filename)) != NULL) { - expat_process_zip_file(zip, relfilename, main_sheet_get_sheetfile_expat_callback_element_start, NULL, NULL, callbackdata, &data->xmlparser); - free(relfilename); - } else { - free(data->sheetrelid); - data->sheetrelid = NULL; - } - } -} - -//////////////////////////////////////////////////////////////////////// - -typedef enum { - none, - value_string, - inline_string, - shared_string -} cell_string_type_enum; - -#define XLSXIOREAD_NO_CALLBACK 0x80 - -struct data_sheet_callback_data { - XML_Parser xmlparser; - struct sharedstringlist* sharedstrings; - size_t rownr; - size_t colnr; - size_t cols; - char* celldata; - size_t celldatalen; - cell_string_type_enum cell_string_type; - unsigned int flags; - char* skiptag; //tag to skip - size_t skiptagcount; //nesting level for current tag to skip - XML_StartElementHandler skip_start; //start handler to set after skipping - XML_EndElementHandler skip_end; //end handler to set after skipping - XML_CharacterDataHandler skip_data; //data handler to set after skipping - xlsxioread_process_row_callback_fn sheet_row_callback; - xlsxioread_process_cell_callback_fn sheet_cell_callback; - void* callbackdata; -}; - -void data_sheet_callback_data_initialize (struct data_sheet_callback_data* data, struct sharedstringlist* sharedstrings, unsigned int flags, xlsxioread_process_cell_callback_fn cell_callback, xlsxioread_process_row_callback_fn row_callback, void* callbackdata) -{ - data->xmlparser = NULL; - data->sharedstrings = sharedstrings; - data->rownr = 0; - data->colnr = 0; - data->cols = 0; - data->celldata = NULL; - data->celldatalen = 0; - data->cell_string_type = none; - data->flags = flags; - data->skiptag = NULL; - data->skiptagcount = 0; - data->skip_start = NULL; - data->skip_end = NULL; - data->skip_data = NULL; - data->sheet_cell_callback = cell_callback; - data->sheet_row_callback = row_callback; - data->callbackdata = callbackdata; -} - -void data_sheet_callback_data_cleanup (struct data_sheet_callback_data* data) -{ - sharedstringlist_destroy(data->sharedstrings); - free(data->celldata); - free(data->skiptag); -} - -void data_sheet_expat_callback_skip_tag_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (name && stricmp(name, data->skiptag) == 0) { - //increment nesting level - data->skiptagcount++; - } -} - -void data_sheet_expat_callback_skip_tag_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (!name || stricmp(name, data->skiptag) == 0) { - if (--data->skiptagcount == 0) { - //restore handlers when done skipping - XML_SetElementHandler(data->xmlparser, data->skip_start, data->skip_end); - XML_SetCharacterDataHandler(data->xmlparser, data->skip_data); - free(data->skiptag); - data->skiptag = NULL; - } - } -} - -void data_sheet_expat_callback_find_worksheet_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void data_sheet_expat_callback_find_worksheet_end (void* callbackdata, const XML_Char* name); -void data_sheet_expat_callback_find_sheetdata_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void data_sheet_expat_callback_find_sheetdata_end (void* callbackdata, const XML_Char* name); -void data_sheet_expat_callback_find_row_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void data_sheet_expat_callback_find_row_end (void* callbackdata, const XML_Char* name); -void data_sheet_expat_callback_find_cell_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void data_sheet_expat_callback_find_cell_end (void* callbackdata, const XML_Char* name); -void data_sheet_expat_callback_find_value_start (void* callbackdata, const XML_Char* name, const XML_Char** atts); -void data_sheet_expat_callback_find_value_end (void* callbackdata, const XML_Char* name); -void data_sheet_expat_callback_value_data (void* callbackdata, const XML_Char* buf, int buflen); -void data_sheet_expat_callback_find_worksheet_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "worksheet") == 0) { - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_sheetdata_start, NULL); - } -} - -void data_sheet_expat_callback_find_worksheet_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "worksheet") == 0) { - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_worksheet_start, NULL); - } -} - -void data_sheet_expat_callback_find_sheetdata_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "sheetData") == 0) { - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_row_start, data_sheet_expat_callback_find_sheetdata_end); - } -} - -void data_sheet_expat_callback_find_sheetdata_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "sheetData") == 0) { - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_sheetdata_start, data_sheet_expat_callback_find_worksheet_end); - } else { - data_sheet_expat_callback_find_worksheet_end(callbackdata, name); - } -} - -void data_sheet_expat_callback_find_row_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "row") == 0) { - const XML_Char* hidden = get_expat_attr_by_name(atts, "hidden"); - if (!hidden || atoi(hidden) == 0) {//nesting level for current tag to skip -//start handler to set after skipping -//end handler to set after skipping -//data handler to set after skipping - - data->rownr++; - data->colnr = 0; - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_cell_start, data_sheet_expat_callback_find_row_end); - //for non-calback method suspend here on new row - if (data->flags & XLSXIOREAD_NO_CALLBACK) { - XML_StopParser(data->xmlparser, XML_TRUE); - } - } else { - //skip hidden tow - XML_SetElementHandler(data->xmlparser, NULL, data_sheet_expat_callback_find_row_end); - } - } -} - -void data_sheet_expat_callback_find_row_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "row") == 0) { - //determine number of columns based on first row - if (data->rownr == 1 && data->cols == 0) - data->cols = data->colnr; - //add empty columns if needed - if (!(data->flags & XLSXIOREAD_NO_CALLBACK) && data->sheet_cell_callback && !(data->flags & XLSXIOREAD_SKIP_EMPTY_CELLS)) { - while (data->colnr < data->cols) { - if ((*data->sheet_cell_callback)(data->rownr, data->colnr + 1, NULL, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - data->colnr++; - } - } - free(data->celldata); - data->celldata = NULL; - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_row_start, data_sheet_expat_callback_find_sheetdata_end); - //process end of row - if (!(data->flags & XLSXIOREAD_NO_CALLBACK)) { - if (data->sheet_row_callback) { - if ((*data->sheet_row_callback)(data->rownr, data->colnr, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - } - } else { - //for non-calback method suspend here on end of row - if (data->flags & XLSXIOREAD_NO_CALLBACK) { - XML_StopParser(data->xmlparser, XML_TRUE); - } - } - } else { - data_sheet_expat_callback_find_sheetdata_end(callbackdata, name); - } -} - -void data_sheet_expat_callback_find_cell_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "c") == 0) { - const XML_Char* t = get_expat_attr_by_name(atts, "r"); - size_t cellcolnr = get_col_nr(t); - //skip everything when out of bounds - if (cellcolnr && data->cols && (data->flags & XLSXIOREAD_SKIP_EXTRA_CELLS) && cellcolnr > data->cols) { - data->colnr = cellcolnr - 1; - return; - } - //insert empty rows if needed - if (data->colnr == 0) { - size_t cellrownr = get_row_nr(t); - if (cellrownr) { - if (!(data->flags & XLSXIOREAD_SKIP_EMPTY_ROWS) && !(data->flags & XLSXIOREAD_NO_CALLBACK)) { - while (data->rownr < cellrownr) { - //insert empty columns - if (!(data->flags & XLSXIOREAD_SKIP_EMPTY_CELLS) && data->sheet_cell_callback) { - while (data->colnr < data->cols) { - if ((*data->sheet_cell_callback)(data->rownr, data->colnr + 1, NULL, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - data->colnr++; - } - } - //finish empty row - if (data->sheet_row_callback) { - if ((*data->sheet_row_callback)(data->rownr, data->cols, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - } - data->rownr++; - data->colnr = 0; - } - } else { - data->rownr = cellrownr; - } - } - } - //insert empty columns if needed - if (cellcolnr) { - cellcolnr--; - if (data->flags & XLSXIOREAD_SKIP_EMPTY_CELLS || data->flags & XLSXIOREAD_NO_CALLBACK) { - data->colnr = cellcolnr; - } else { - while (data->colnr < cellcolnr) { - if (data->sheet_cell_callback) { - if ((*data->sheet_cell_callback)(data->rownr, data->colnr + 1, NULL, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - } - data->colnr++; - } - } - } - //determing value type - if ((t = get_expat_attr_by_name(atts, "t")) != NULL && stricmp(t, "s") == 0) - data->cell_string_type = shared_string; - else - data->cell_string_type = value_string; - //prepare empty value data - free(data->celldata); - data->celldata = NULL; - data->celldatalen = 0; - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_value_start, data_sheet_expat_callback_find_cell_end); - } -} - -void data_sheet_expat_callback_find_cell_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "c") == 0) { - //determine value - if (data->celldata) { - const char* s = NULL; - data->celldata[data->celldatalen] = 0; - if (data->cell_string_type == shared_string) { - //get shared string - char* p = NULL; - long num = strtol(data->celldata, &p, 10); - if (!p || (p != data->celldata && *p == 0)) { - s = sharedstringlist_get(data->sharedstrings, num); - free(data->celldata); - data->celldata = (s ? strdup(s) : NULL); - } - } else if (data->cell_string_type == none) { - //unknown value type - free(data->celldata); - data->celldata = NULL; - } - } - //reset data - data->colnr++; - data->cell_string_type = none; - data->celldatalen = 0; - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_cell_start, data_sheet_expat_callback_find_row_end); - XML_SetCharacterDataHandler(data->xmlparser, NULL); - //process data if needed - if (!(data->cols && (data->flags & XLSXIOREAD_SKIP_EXTRA_CELLS) && data->colnr > data->cols)) { - //process data - if (!(data->flags & XLSXIOREAD_NO_CALLBACK)) { - if (data->sheet_cell_callback) { - if ((*data->sheet_cell_callback)(data->rownr, data->colnr, data->celldata, data->callbackdata)) { - XML_StopParser(data->xmlparser, XML_FALSE); - return; - } - } - } else { - //for non-calback method suspend here with cell data - if (!data->celldata) - data->celldata = strdup(""); - XML_StopParser(data->xmlparser, XML_TRUE); - } - } - } else { - data_sheet_expat_callback_find_row_end(callbackdata, name); - } -} - -void data_sheet_expat_callback_find_value_start (void* callbackdata, const XML_Char* name, const XML_Char** atts) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "v") == 0 || stricmp(name, "t") == 0) { - XML_SetElementHandler(data->xmlparser, NULL, data_sheet_expat_callback_find_value_end); - XML_SetCharacterDataHandler(data->xmlparser, data_sheet_expat_callback_value_data); - } else if (stricmp(name, "is") == 0) { - data->cell_string_type = inline_string; - } else if (stricmp(name, "rPh") == 0) { - data->skiptag = strdup(name); - data->skiptagcount = 1; - data->skip_start = data_sheet_expat_callback_find_value_start; - data->skip_end = data_sheet_expat_callback_find_cell_end; - data->skip_data = NULL; - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_skip_tag_start, data_sheet_expat_callback_skip_tag_end); - XML_SetCharacterDataHandler(data->xmlparser, NULL); - } -} - -void data_sheet_expat_callback_find_value_end (void* callbackdata, const XML_Char* name) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (stricmp(name, "v") == 0 || stricmp(name, "t") == 0) { - XML_SetElementHandler(data->xmlparser, data_sheet_expat_callback_find_value_start, data_sheet_expat_callback_find_cell_end); - XML_SetCharacterDataHandler(data->xmlparser, NULL); - } else if (stricmp(name, "is") == 0) { - data->cell_string_type = none; - } else { - data_sheet_expat_callback_find_row_end(callbackdata, name); - } -} - -void data_sheet_expat_callback_value_data (void* callbackdata, const XML_Char* buf, int buflen) -{ - struct data_sheet_callback_data* data = (struct data_sheet_callback_data*)callbackdata; - if (data->cell_string_type != none) { - if ((data->celldata = (char*)realloc(data->celldata, data->celldatalen + buflen + 1)) == NULL) { - //memory allocation error - data->celldatalen = 0; - } else { - //add new data to value buffer - memcpy(data->celldata + data->celldatalen, buf, buflen); - data->celldatalen += buflen; - } - } -} - -//////////////////////////////////////////////////////////////////////// - -struct xlsxio_read_sheet_struct { - xlsxioreader handle; - zip_file_t* zipfile; - struct data_sheet_callback_data processcallbackdata; - size_t lastrownr; - size_t paddingrow; - size_t lastcolnr; - size_t paddingcol; -}; - -DLL_EXPORT_XLSXIO int xlsxioread_process (xlsxioreader handle, const char* sheetname, unsigned int flags, xlsxioread_process_cell_callback_fn cell_callback, xlsxioread_process_row_callback_fn row_callback, void* callbackdata) -{ - int result = 0; - //determine sheet file name - struct main_sheet_get_rels_callback_data getrelscallbackdata = { - NULL, - sheetname, - NULL, - NULL, - NULL, - NULL - }; - list_files_by_contenttype(handle->zip, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", main_sheet_get_sheetfile_callback, &getrelscallbackdata, NULL); - - //process shared strings - struct sharedstringlist* sharedstrings = sharedstringlist_create(); - struct shared_strings_callback_data sharedstringsdata; - shared_strings_callback_data_initialize(&sharedstringsdata, sharedstrings); - if (expat_process_zip_file(handle->zip, getrelscallbackdata.sharedstringsfile, shared_strings_callback_find_sharedstringtable_start, NULL, NULL, &sharedstringsdata, &sharedstringsdata.xmlparser) != 0) { - //no shared strings found - free(sharedstringsdata.text); - sharedstringlist_destroy(sharedstrings); - sharedstrings = NULL; - } - shared_strings_callback_data_cleanup(&sharedstringsdata); - - //process sheet - if (!(flags & XLSXIOREAD_NO_CALLBACK)) { - //use callback mechanism - struct data_sheet_callback_data processcallbackdata; - data_sheet_callback_data_initialize(&processcallbackdata, sharedstrings, flags, cell_callback, row_callback, callbackdata); - expat_process_zip_file(handle->zip, getrelscallbackdata.sheetfile, data_sheet_expat_callback_find_worksheet_start, NULL, NULL, &processcallbackdata, &processcallbackdata.xmlparser); - data_sheet_callback_data_cleanup(&processcallbackdata); - } else { - //use simplified interface by suspending the XML parser when data is found - xlsxioreadersheet sheethandle = (xlsxioreadersheet)callbackdata; - data_sheet_callback_data_initialize(&sheethandle->processcallbackdata, sharedstrings, flags, NULL, NULL, sheethandle); - if ((sheethandle->zipfile = zip_fopen(sheethandle->handle->zip, getrelscallbackdata.sheetfile)) == NULL) { - result = 1; - } - if ((sheethandle->processcallbackdata.xmlparser = expat_process_zip_file_suspendable(sheethandle->zipfile, data_sheet_expat_callback_find_worksheet_start, NULL, NULL, &sheethandle->processcallbackdata)) == NULL) { - result = 2; - } - } - - //clean up - free(getrelscallbackdata.basepath); - free(getrelscallbackdata.sheetrelid); - free(getrelscallbackdata.sheetfile); - free(getrelscallbackdata.sharedstringsfile); - return result; -} - -//////////////////////////////////////////////////////////////////////// - -struct xlsxio_read_sheetlist_struct { - xlsxioreader handle; - zip_file_t* zipfile; - struct main_sheet_list_callback_data sheetcallbackdata; - XML_Parser xmlparser; - char* nextsheetname; -}; - -int xlsxioread_list_sheets_resumable_callback (const char* name, void* callbackdata) -{ - //struct main_sheet_list_callback_data* data = (struct main_sheet_list_callback_data*)callbackdata; - xlsxioreadersheetlist data = (xlsxioreadersheetlist)callbackdata; - data->nextsheetname = strdup(name); - XML_StopParser(data->xmlparser, XML_TRUE); - return 0; -} - -void xlsxioread_find_main_sheet_file_callback (zip_t* zip, const char* filename, const char* contenttype, void* callbackdata) -{ - char** data = (char**)callbackdata; - *data = strdup(filename); -} - -DLL_EXPORT_XLSXIO xlsxioreadersheetlist xlsxioread_sheetlist_open (xlsxioreader handle) -{ - //determine main sheet name - char* mainsheetfile = NULL; - list_files_by_contenttype(handle->zip, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", xlsxioread_find_main_sheet_file_callback, &mainsheetfile, NULL); - if (!mainsheetfile) - return NULL; - //process contents of main sheet - xlsxioreadersheetlist result; - if ((result = (xlsxioreadersheetlist)malloc(sizeof(struct xlsxio_read_sheetlist_struct))) == NULL) - return NULL; - result->handle = handle; - result->sheetcallbackdata.xmlparser = NULL; - result->sheetcallbackdata.callback = xlsxioread_list_sheets_resumable_callback; - result->sheetcallbackdata.callbackdata = result; - result->nextsheetname = NULL; - if ((result->zipfile = zip_fopen(handle->zip, mainsheetfile)) != NULL) { - result->xmlparser = expat_process_zip_file_suspendable(result->zipfile, main_sheet_list_expat_callback_element_start, NULL, NULL, &result->sheetcallbackdata); - } - //clean up - free(mainsheetfile); - return result; -} - -DLL_EXPORT_XLSXIO void xlsxioread_sheetlist_close (xlsxioreadersheetlist sheetlisthandle) -{ - if (!sheetlisthandle) - return; - if (sheetlisthandle->xmlparser) - XML_ParserFree(sheetlisthandle->xmlparser); - if (sheetlisthandle->zipfile) - zip_fclose(sheetlisthandle->zipfile); - free(sheetlisthandle->nextsheetname); - free(sheetlisthandle); - -} - -DLL_EXPORT_XLSXIO const char* xlsxioread_sheetlist_next (xlsxioreadersheetlist sheetlisthandle) -{ - if (!sheetlisthandle->zipfile || !sheetlisthandle->xmlparser) - return NULL; - free(sheetlisthandle->nextsheetname); - sheetlisthandle->nextsheetname = NULL; - enum XML_Status status; - if ((status = expat_process_zip_file_resume(sheetlisthandle->zipfile, sheetlisthandle->xmlparser)) != XML_STATUS_SUSPENDED) { - return NULL; - } - return sheetlisthandle->nextsheetname; -} - -//////////////////////////////////////////////////////////////////////// - -DLL_EXPORT_XLSXIO xlsxioreadersheet xlsxioread_sheet_open (xlsxioreader handle, const char* sheetname, unsigned int flags) -{ - xlsxioreadersheet result; - if ((result = (xlsxioreadersheet)malloc(sizeof(struct xlsxio_read_sheet_struct))) == NULL) - return NULL; - result->handle = handle; - result->zipfile = NULL; - result->lastrownr = 0; - result->paddingrow = 0; - result->lastcolnr = 0; - result->paddingcol = 0; - xlsxioread_process(handle, sheetname, flags | XLSXIOREAD_NO_CALLBACK, NULL, NULL, result); - return result; -} - -DLL_EXPORT_XLSXIO void xlsxioread_sheet_close (xlsxioreadersheet sheethandle) -{ - if (!sheethandle) - return; - if (sheethandle->processcallbackdata.xmlparser) - XML_ParserFree(sheethandle->processcallbackdata.xmlparser); - data_sheet_callback_data_cleanup(&sheethandle->processcallbackdata); - if (sheethandle->zipfile) - zip_fclose(sheethandle->zipfile); - free(sheethandle); -} - -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_row (xlsxioreadersheet sheethandle) -{ - enum XML_Status status; - if (!sheethandle) - return 0; - sheethandle->lastcolnr = 0; - //when padding rows don't retrieve new data - if (sheethandle->paddingrow) { - if (sheethandle->paddingrow < sheethandle->processcallbackdata.rownr) { - return 3; - } else { - sheethandle->paddingrow = 0; - return 2; - } - } - sheethandle->paddingcol = 0; - //go to beginning of next row - while ((status = expat_process_zip_file_resume(sheethandle->zipfile, sheethandle->processcallbackdata.xmlparser)) == XML_STATUS_SUSPENDED && sheethandle->processcallbackdata.colnr != 0) { - } - return (status == XML_STATUS_SUSPENDED ? 1 : 0); -} - -DLL_EXPORT_XLSXIO char* xlsxioread_sheet_next_cell (xlsxioreadersheet sheethandle) -{ - char* result; - if (!sheethandle) - return NULL; - //append empty column if needed - if (sheethandle->paddingcol) { - if (sheethandle->paddingcol > sheethandle->processcallbackdata.cols) { - //last empty column added, finish row - sheethandle->paddingcol = 0; - //when padding rows prepare for the next one - if (sheethandle->paddingrow) { - sheethandle->lastrownr++; - sheethandle->paddingrow++; - if (sheethandle->paddingrow + 1 < sheethandle->processcallbackdata.rownr) { - sheethandle->paddingcol = 1; - } - } - return NULL; - } else { - //add another empty column - sheethandle->paddingcol++; - return strdup(""); - } - } - //get value - if (!sheethandle->processcallbackdata.celldata) - if (expat_process_zip_file_resume(sheethandle->zipfile, sheethandle->processcallbackdata.xmlparser) != XML_STATUS_SUSPENDED) - sheethandle->processcallbackdata.celldata = NULL; - //insert empty rows if needed - if (!(sheethandle->processcallbackdata.flags & XLSXIOREAD_SKIP_EMPTY_ROWS) && sheethandle->lastrownr + 1 < sheethandle->processcallbackdata.rownr) { - sheethandle->paddingrow = sheethandle->lastrownr + 1; - sheethandle->paddingcol = sheethandle->processcallbackdata.colnr*0 + 1; - return xlsxioread_sheet_next_cell(sheethandle); - } - //insert empty column before if needed - if (!(sheethandle->processcallbackdata.flags & XLSXIOREAD_SKIP_EMPTY_CELLS)) { - if (sheethandle->lastcolnr + 1 < sheethandle->processcallbackdata.colnr) { - sheethandle->lastcolnr++; - return strdup(""); - } - } - result = sheethandle->processcallbackdata.celldata; - sheethandle->processcallbackdata.celldata = NULL; - //end of row - if (!result) { - sheethandle->lastrownr = sheethandle->processcallbackdata.rownr; - //insert empty column at end if row if needed - if (!result && !(sheethandle->processcallbackdata.flags & XLSXIOREAD_SKIP_EMPTY_CELLS) && sheethandle->processcallbackdata.colnr < sheethandle->processcallbackdata.cols) { - sheethandle->paddingcol = sheethandle->lastcolnr + 1; - return xlsxioread_sheet_next_cell(sheethandle); - } - } - sheethandle->lastcolnr = sheethandle->processcallbackdata.colnr; - return result; -} - -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_string (xlsxioreadersheet sheethandle, char** pvalue) -{ - char* result; - if (!sheethandle) - return -1; - result = xlsxioread_sheet_next_cell(sheethandle); - if (pvalue) - *pvalue = result; - return (result ? 1 : 0); -} - -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_int (xlsxioreadersheet sheethandle, int64_t* pvalue) -{ - char* result; - int status; - if ((result = xlsxioread_sheet_next_cell(sheethandle)) != NULL) { - if (pvalue) { - status = sscanf(result, "%" PRIi64, pvalue); - if (status == EOF || status == 0) - *pvalue = 0; - //alternative: use strtoimax() - } - } - return (result ? 1 : 0); -} - -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_float (xlsxioreadersheet sheethandle, double* pvalue) -{ - char* result; - if ((result = xlsxioread_sheet_next_cell(sheethandle)) != NULL) { - if (pvalue) - *pvalue = strtod(result, NULL); - } - return (result ? 1 : 0); -} - -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_datetime (xlsxioreadersheet sheethandle, time_t* pvalue) -{ - char* result; - if ((result = xlsxioread_sheet_next_cell(sheethandle)) != NULL) { - if (pvalue) { - double value = strtod(result, NULL); - if (value != 0) { - value = (value - 25569) * 86400; //converstion from Excel to Unix timestamp - } - *pvalue = time_t(value); - } - } - return (result ? 1 : 0); -} - diff --git a/src/utility/xlsxread/xlsxio_read.h b/src/utility/xlsxread/xlsxio_read.h deleted file mode 100644 index f65fb1163..000000000 --- a/src/utility/xlsxread/xlsxio_read.h +++ /dev/null @@ -1,271 +0,0 @@ -/***************************************************************************** -Copyright (C) 2016 Brecht Sanders All Rights Reserved - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*****************************************************************************/ - -/** - * @file xlsxio_read.h - * @brief XLSX I/O header file for reading .xlsx files. - * @author Brecht Sanders - * @date 2016 - * @copyright MIT - * - * Include this header file to use XLSX I/O for reading .xlsx files and - * link with -lxlsxio_read. - * This header provides both advanced methods using callback functions and - * simple methods for iterating through data. - */ - -#ifndef INCLUDED_XLSXIO_READ_H -#define INCLUDED_XLSXIO_READ_H - -#include -#include -#if defined(_MSC_VER) && _MSC_VER < 1600 -typedef signed __int64 int64_t; -#else -#include -#endif -#include - -#define STATIC - -/*! \cond PRIVATE */ -#ifndef DLL_EXPORT_XLSXIO -#ifdef _WIN32 -#if defined(BUILD_XLSXIO_DLL) -#define DLL_EXPORT_XLSXIO __declspec(dllexport) -#elif !defined(STATIC) && !defined(BUILD_XLSXIO_STATIC) && !defined(BUILD_XLSXIO) -#define DLL_EXPORT_XLSXIO __declspec(dllimport) -#else -#define DLL_EXPORT_XLSXIO -#endif -#else -#define DLL_EXPORT_XLSXIO -#endif -#endif -/*! \endcond */ - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \brief get xlsxio_write version string - * \param pmajor pointer to integer that will receive major version number - * \param pminor pointer to integer that will receive minor version number - * \param pmicro pointer to integer that will receive micro version number - * \sa xlsxiowrite_get_version_string() - */ -DLL_EXPORT_XLSXIO void xlsxioread_get_version (int* pmajor, int* pminor, int* pmicro); - -/*! \brief get xlsxio_write version string - * \return version string - * \sa xlsxiowrite_get_version() - */ -DLL_EXPORT_XLSXIO const char* xlsxioread_get_version_string (void); - -/*! \brief read handle for .xlsx object */ -typedef struct xlsxio_read_struct* xlsxioreader; - -/*! \brief open .xlsx file - * \param filename path of .xlsx file to open - * \return read handle for .xlsx object or NULL on error - * \sa xlsxioread_close() - */ -DLL_EXPORT_XLSXIO xlsxioreader xlsxioread_open (int lumpnum); - -/*! \brief close .xlsx file - * \param handle read handle for .xlsx object - * \sa xlsxioread_open() - */ -DLL_EXPORT_XLSXIO void xlsxioread_close (xlsxioreader handle); - - - -/*! \brief type of pointer to callback function for listing worksheets - * \param name name of worksheet - * \param callbackdata callback data passed to xlsxioread_list_sheets - * \return zero to continue, non-zero to abort - * \sa xlsxioread_list_sheets() - */ -typedef int (*xlsxioread_list_sheets_callback_fn)(const char* name, void* callbackdata); - -/*! \brief list worksheets in .xlsx file - * \param handle read handle for .xlsx object - * \param callback callback function called for each worksheet - * \param callbackdata custom data as passed to quickmail_add_body_custom/quickmail_add_attachment_custom - * \sa xlsxioread_list_sheets_callback_fn - */ -DLL_EXPORT_XLSXIO void xlsxioread_list_sheets (xlsxioreader handle, xlsxioread_list_sheets_callback_fn callback, void* callbackdata); - - - -/*! \brief possible values for the flags parameter of xlsxioread_process() - * \sa xlsxioread_process() - * \name XLSXIOREAD_SKIP_* - * \{ - */ -/*! \brief don't skip any rows or cells \hideinitializer */ -#define XLSXIOREAD_SKIP_NONE 0 -/*! \brief skip empty rows (note: cells may appear empty while they actually contain data) \hideinitializer */ -#define XLSXIOREAD_SKIP_EMPTY_ROWS 0x01 -/*! \brief skip empty cells \hideinitializer */ -#define XLSXIOREAD_SKIP_EMPTY_CELLS 0x02 -/*! \brief skip empty rows and cells \hideinitializer */ -#define XLSXIOREAD_SKIP_ALL_EMPTY (XLSXIOREAD_SKIP_EMPTY_ROWS | XLSXIOREAD_SKIP_EMPTY_CELLS) -/*! \brief skip extra cells to the right of the rightmost header cell \hideinitializer */ -#define XLSXIOREAD_SKIP_EXTRA_CELLS 0x04 -/*! @} */ - -/*! \brief type of pointer to callback function for processing a worksheet cell value - * \param row row number (first row is 1) - * \param col column number (first column is 1) - * \param value value of cell (note: formulas are not calculated) - * \param callbackdata callback data passed to xlsxioread_process - * \return zero to continue, non-zero to abort - * \sa xlsxioread_process() - * \sa xlsxioread_process_row_callback_fn - */ -typedef int (*xlsxioread_process_cell_callback_fn)(size_t row, size_t col, const char* value, void* callbackdata); - -/*! \brief type of pointer to callback function for processing the end of a worksheet row - * \param row row number (first row is 1) - * \param maxcol maximum column number on this row (first column is 1) - * \param callbackdata callback data passed to xlsxioread_process - * \return zero to continue, non-zero to abort - * \sa xlsxioread_process() - * \sa xlsxioread_process_cell_callback_fn - */ -typedef int (*xlsxioread_process_row_callback_fn)(size_t row, size_t maxcol, void* callbackdata); - -/*! \brief process all rows and columns of a worksheet in an .xlsx file - * \param handle read handle for .xlsx object - * \param sheetname worksheet name (NULL for first sheet) - * \param flags XLSXIOREAD_SKIP_ flag(s) to determine how data is processed - * \param cell_callback callback function called for each cell - * \param row_callback callback function called after each row - * \param callbackdata callback data passed to xlsxioread_process - * \return zero on success, non-zero on error - * \sa xlsxioread_process_row_callback_fn - * \sa xlsxioread_process_cell_callback_fn - */ -DLL_EXPORT_XLSXIO int xlsxioread_process (xlsxioreader handle, const char* sheetname, unsigned int flags, xlsxioread_process_cell_callback_fn cell_callback, xlsxioread_process_row_callback_fn row_callback, void* callbackdata); - - - -/*! \brief read handle for list of worksheet names */ -typedef struct xlsxio_read_sheetlist_struct* xlsxioreadersheetlist; - -/*! \brief open list of worksheet names - * \param handle read handle for .xlsx object - * \sa xlsxioread_sheetlist_close() - * \sa xlsxioread_open() - */ -DLL_EXPORT_XLSXIO xlsxioreadersheetlist xlsxioread_sheetlist_open (xlsxioreader handle); - -/*! \brief close worksheet - * \param sheetlisthandle read handle for worksheet object - * \sa xlsxioread_sheetlist_open() - */ -DLL_EXPORT_XLSXIO void xlsxioread_sheetlist_close (xlsxioreadersheetlist sheetlisthandle); - -/*! \brief get next cell from worksheet - * \param sheetlisthandle read handle for worksheet object - * \return name of worksheet or NULL if no more worksheets are available - * \sa xlsxioread_sheetlist_open() - */ -DLL_EXPORT_XLSXIO const char* xlsxioread_sheetlist_next (xlsxioreadersheetlist sheetlisthandle); - - - -/*! \brief read handle for worksheet object */ -typedef struct xlsxio_read_sheet_struct* xlsxioreadersheet; - -/*! \brief open worksheet - * \param handle read handle for .xlsx object - * \param sheetname worksheet name (NULL for first sheet) - * \param flags XLSXIOREAD_SKIP_ flag(s) to determine how data is processed - * \return read handle for worksheet object or NULL in case of error - * \sa xlsxioread_sheet_close() - * \sa xlsxioread_open() - */ -DLL_EXPORT_XLSXIO xlsxioreadersheet xlsxioread_sheet_open (xlsxioreader handle, const char* sheetname, unsigned int flags); - -/*! \brief close worksheet - * \param handle read handle for worksheet object - * \sa xlsxioread_sheet_open() - */ -DLL_EXPORT_XLSXIO void xlsxioread_sheet_close (xlsxioreadersheet sheethandle); - -/*! \brief get next row from worksheet (to be called before each row) - * \param handle read handle for worksheet object - * \return non-zero if a new row is available - * \sa xlsxioread_sheet_open() - */ -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_row (xlsxioreadersheet sheethandle); - -/*! \brief get next cell from worksheet - * \param handle read handle for worksheet object - * \return value (caller must free the result) or NULL if no more cells are available in the current row - * \sa xlsxioread_sheet_open() - */ -DLL_EXPORT_XLSXIO char* xlsxioread_sheet_next_cell (xlsxioreadersheet sheethandle); - -/*! \brief get next cell from worksheet as a string - * \param handle read handle for worksheet object - * \param pvalue pointer where string will be stored if data is available (caller must free the result) - * \return non-zero if a new cell was available in the current row - * \sa xlsxioread_sheet_open() - * \sa xlsxioread_sheet_next_cell() - */ -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_string (xlsxioreadersheet sheethandle, char** pvalue); - -/*! \brief get next cell from worksheet as an integer - * \param handle read handle for worksheet object - * \param pvalue pointer where integer will be stored if data is available - * \return non-zero if a new cell was available in the current row - * \sa xlsxioread_sheet_open() - * \sa xlsxioread_sheet_next_cell() - */ -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_int (xlsxioreadersheet sheethandle, int64_t* pvalue); - -/*! \brief get next cell from worksheet as a floating point value - * \param handle read handle for worksheet object - * \param pvalue pointer where floating point value will be stored if data is available - * \return non-zero if a new cell was available in the current row - * \sa xlsxioread_sheet_open() - * \sa xlsxioread_sheet_next_cell() - */ -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_float (xlsxioreadersheet sheethandle, double* pvalue); - -/*! \brief get next cell from worksheet as date and time data - * \param handle read handle for worksheet object - * \param pvalue pointer where date and time data will be stored if data is available - * \return non-zero if a new cell was available in the current row - * \sa xlsxioread_sheet_open() - * \sa xlsxioread_sheet_next_cell() - */ -DLL_EXPORT_XLSXIO int xlsxioread_sheet_next_cell_datetime (xlsxioreadersheet sheethandle, time_t* pvalue); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/utility/xlsxread/xlsxio_version.h b/src/utility/xlsxread/xlsxio_version.h deleted file mode 100644 index 04e85a471..000000000 --- a/src/utility/xlsxread/xlsxio_version.h +++ /dev/null @@ -1,73 +0,0 @@ -/***************************************************************************** -Copyright (C) 2016 Brecht Sanders All Rights Reserved - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*****************************************************************************/ - -/** - * @file xlsxio_version.h - * @brief XLSX I/O header file with version information. - * @author Brecht Sanders - * - * Only use this header file when version information is needed at compile - * time. Otherwise the version functions in the libraries should be used. - * \sa XLSXIO_VERSION_* - * \sa XLSXIO_VERSION_STRING - * \sa xlsxioread_get_version() - * \sa xlsxioread_get_version_string() - * \sa xlsxiowrite_get_version() - * \sa xlsxiowrite_get_version_string() - */ - -#ifndef INCLUDED_XLSXIO_VERSION_H -#define INCLUDED_XLSXIO_VERSION_H - -/*! \brief possible values for the flags parameter of xlsxioread_process() - * \sa xlsxioread_get_version() - * \sa xlsxiowrite_get_version() - * \name XLSXIO_VERSION_* - * \{ - */ -/*! \brief major version number */ -#define XLSXIO_VERSION_MAJOR 0 -/*! \brief minor version number */ -#define XLSXIO_VERSION_MINOR 2 -/*! \brief micro version number */ -#define XLSXIO_VERSION_MICRO 8 -/*! @} */ - -/*! \cond PRIVATE */ -#define XLSXIO_VERSION_STRINGIZE_(major, minor, micro) #major"."#minor"."#micro -#define XLSXIO_VERSION_STRINGIZE(major, minor, micro) XLSXIO_VERSION_STRINGIZE_(major, minor, micro) -/*! \endcond */ - -/*! \brief string with dotted version number \hideinitializer */ -#define XLSXIO_VERSION_STRING XLSXIO_VERSION_STRINGIZE(XLSXIO_VERSION_MAJOR, XLSXIO_VERSION_MINOR, XLSXIO_VERSION_MICRO) - -/*! \brief string with name of XLSX I/O reading library */ -#define XLSXIOREAD_NAME "libxlsxio_read" -/*! \brief string with name of XLSX I/O writing library */ -#define XLSXIOWRITE_NAME "libxlsxio_write" - -/*! \brief string with name and version of XLSX I/O reading library \hideinitializer */ -#define XLSXIOREAD_FULLNAME XLSXIOREAD_NAME " " XLSXIO_VERSION_STRING -/*! \brief string with name and version of XLSX I/O writing library \hideinitializer */ -#define XLSXIOWRITE_FULLNAME XLSXIOWRITE_NAME " " XLSXIO_VERSION_STRING - -#endif diff --git a/src/utility/zstring.cpp b/src/utility/zstring.cpp index c3863387e..f3bdbd567 100644 --- a/src/utility/zstring.cpp +++ b/src/utility/zstring.cpp @@ -1250,6 +1250,8 @@ void FString::Split(TArray& tokens, const char *delimiter, EmptyTokenTy const long delimLen = static_cast(strlen(delimiter)); long lastPos = 0; + if (selfLen == 0) return; // Empty strings do not contain tokens, even with TOK_KEEPEMPTY. + while (lastPos <= selfLen) { long pos = IndexOf(delimiter, lastPos); From 86f9824c2a9951b288fe971611871383b3190ae0 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 10:17:55 +0100 Subject: [PATCH 2/7] - updated the text data to the content of the Google spreadsheet. --- wadsrc/static/language.csv | 2695 +++++++++++++++ wadsrc/static/language.eng | 112 - wadsrc/static/language.enu | 2939 ----------------- wadsrc/static/language.fr | 2818 ---------------- wadsrc/static/language.ita | 1138 ------- wadsrc/static/language.ptb | 1732 ---------- wadsrc/static/language.rus | 2869 ---------------- wadsrc/static/lmacros.csv | 12 + wadsrc_extra/static/language.csv | 5254 ++++++++++++++++++++++++++++++ wadsrc_extra/static/language.enu | 1537 --------- 10 files changed, 7961 insertions(+), 13145 deletions(-) create mode 100644 wadsrc/static/language.csv delete mode 100644 wadsrc/static/language.eng delete mode 100644 wadsrc/static/language.enu delete mode 100644 wadsrc/static/language.fr delete mode 100644 wadsrc/static/language.ita delete mode 100644 wadsrc/static/language.ptb delete mode 100644 wadsrc/static/language.rus create mode 100644 wadsrc/static/lmacros.csv create mode 100644 wadsrc_extra/static/language.csv delete mode 100644 wadsrc_extra/static/language.enu diff --git a/wadsrc/static/language.csv b/wadsrc/static/language.csv new file mode 100644 index 000000000..6d771a47d --- /dev/null +++ b/wadsrc/static/language.csv @@ -0,0 +1,2695 @@ +default,Identifier,Filter,Remarks,eng enc ena enz eni ens enj enb enl ent enw,de,es,esa esb esc esd ese esf esg esh esi esl esm esn eso esr ess esu esv esy esz,fr,hu,it,pt,ru,sr +,,,Miscellaneous,,,,,,,,,, +A secret is revealed!,SECRETMESSAGE,,,,Ein Geheimnis wurde enthüllt!,¡Se ha revelado un secreto!,,Vous avez découvert un secret!,Egy titok feltárva!,E' stato svelato un segreto! ,,Обнаружен тайник!,Ðашли Ñте тајну! +"Useless mode ON. +",D_DEVSTR,,,,Nutzloser Modus EIN.,"Modo inútil ACTIVADO. +",,"Mode inutile ON. +",Haszontalan mód BE.,"Modalità sviluppo ATTIVA. +","Modo de desenvolvimento ATIVADO. +",Включён режим разработчика., +Press a key.,PRESSKEY,,,,Drücke eine Taste,Presiona una tecla.,,Appuyez sur un touche.,Nyomj meg egy gombot.,premi un tasto.,aperte qualquer tecla.,Ðажмите любую клавишу.,ПритиÑните дугме. +Press Y or N.,PRESSYN,,,,Drücke Y oder N.,Presiona Y ó N.,,Appuyez sur Y ou N.,Nyomj Y-t vagy N-t.,premi y oppure n.,escolha Sim ou Não,Ðажмите Y или N.,ПритиÑните Y или N. +"Are you sure you want to +quit this great game?",QUITMSG,,,,"Willst du dieses großartige Spiel +wirklich beenden?",¿Estás segur@[ao_esp] que deseas salir de este gran juego?,,"Voulez-vous vraiment +quitter cet excellent jeu?",Biztos ki akarsz lépni ebbÅ‘l a nagyszerű játékból?,"Sei sicuro di volere uscire +da questo grandioso gioco?",deseja mesmo sair?,"Ты дейÑтвительно хочешь выйти +из Ñтой замечательной игры?",Да ли заиÑта желиш да одуÑтанеш од ове одличне игре? +Yes,TXT_YES,,,,Ja,Sí,,Oui,Igen,Si,Sim,Да,Да +No,TXT_NO,,,,Nein,No,,Non,Nem,No,Não,Ðет,Ðе +"You can't do load while in a net game! + +Press a key.",LOADNET,,,,"Du kannst während eines Netzwerkspiels keinen Spielstand laden. + +Drücke eine Taste","¡No puedes cargar en una partida en línea! + +Presiona una tecla.",,"Impossible de charger une partie +pendant un jeu en réseau! + +Appuyez sur un touche.","Nem tudsz tölteni miközben net játékban vagy! + +Nyomj meg egy gombot.","non puoi caricare una partita durante un netgame! + +premi un tasto.","impossível carregar, porque +está em partida online! +aperte uma tecla.","Ðевозможно загрузить Ñохранение в Ñетевой игре! + +Ðажмите любую клавишу.","Ðе можете Ñе учитати током мрежне игре! + +ПритиÑните дугме." +"You can't quickload during a netgame! + +Press a key.",QLOADNET,,,,"Du kannst während eines Netzwerkspiels nicht schnellladen. + +Drücke eine Taste","¡No puedes cargar una partida mientras juegues en línea! + +Presiona una tecla.",,"Chargement Rapide impossible +pendant un jeu en réseau! + +Appuyez sur un touche.","Nem tudsz gyorstölteni miközben net játékban vagy! + +Nyomj meg egy gombot.","non puoi fare un quickload durante un netgame! + +premi un tasto.","impossível carregar, porque está online! + +aperte uma tecla.","Ðевозможно загрузить быÑтрое Ñохранение в Ñетевой игре! + +Ðажмите любую клавишу.","Ðе можете Ñе брзо учитати током мрежне игре! + +ПритиÑните дугме." +"You haven't picked a quicksave slot yet! + +Press a key.",QSAVESPOT,,,,"Du hast noch keine Schnellspeicherposition gewählt. + +Drücke eine Taste","¡No has seleccionado una ranura de guardado rápido! + +Presiona una tecla.",,"Vous n'avez pas choisi un +emplacement de sauvegarde! + +Appuyez sur un touche.","Nem választottál ki egy gyorsmentés mezÅ‘t még! + +Nyomj meg egy gombot.","non hai ancora scelto uno slot per il quicksave! + +premi un tasto.","escolha um slot antes de fazer isso de novo. + +aperte uma tecla.","У Ð’Ð°Ñ Ð½Ðµ выбран Ñлот быÑтрого ÑохранениÑ! + +Ðажмите любую клавишу.","ÐиÑте још покупили Ñлот за брзо чување! + +ПритиÑните дугме." +"You can't save if you aren't playing! + +Press a key.",SAVEDEAD,,,,"Du kannst nicht speichern, wenn du nicht spielst. + +Drücke eine Taste","¡No puedes guardar si no estás jugando! + +Presiona una tecla.",,"Vous ne pouvez pas sauvegarder si vous ne jouez pas! + +Appuyez sur un touche.","Nem tudsz menteni ha nem is játszol! + +Nyomj meg egy gombot.","non puoi salvare se non stai giocando! + +premi un tasto.","precisa estar jogando para fazê-lo. + +aperte uma tecla.","Ðевозможно Ñохранить игру, не начав её! + +Ðажмите любую клавишу.","Ðе можете Ñачувати игру ако не играте! + +ПритиÑните дугме." +"Quicksave over your game named + +'%s'? + +Press Y or N.",QSPROMPT,,,,"Ãœberschreibe %s mit einem Schnellspeicherspielstand? + +Drücke Y oder N.","¿Deseas guardar sobre tu partida llamada + +'%s'? + +Presiona Y ó N.",,"Sauvegarde rapide sur le fichier + +'%s'? + +Appuyez sur Y ou N.","Gyorsmenteni akarsz az alábbi mentésed alatt + +'%s'? + +Nyomj Y-t vagy N-t.","sovrascrivere il salvataggio + +'%s'? + +premi y oppure n.","deseja mesmo salvar aqui? + +'%s' +","ПерезапиÑать быÑтрое Ñохранение + +«%s»? + +Ðажмите Y или N.","Желите брзо чување за игру под именом + +„%s“? + +ПритиÑните Y или N." +"Do you want to quickload the game named + +'%s'? + +Press Y or N.",QLPROMPT,,,,"Möchtest du den Spielstand %s schnellladen? + +Drücke Y oder N.","¿Quieres cargar la partida llamada + +'%s'? + +Presiona Y ó N.",,"Voulez-vous charger la sauvegarde + +'%s'? + +Appuyez sur Y ou N.","Gyorstölteni akarod ezt a mentést + +'%s'? + +Nyomj Y-t vagy N-t.","vuoi fare un quickload della partita + +'%s'? + +premi y oppure n.","deseja carregar esse jogo? + +'%s' +","Загрузить быÑтрое Ñохранение + +«%s»? + +Ðажмите Y или N.","Желите брзо учитавање за игру под именом + +„%s“? + +ПритиÑните Y или N." +"You can't start a new game +while in a network game. + +Press a key.",NEWGAME,,,,Du kannst während eines Netzwerkspiels kein neues Spiel starten.,"No puedes iniciar un nuevo juego mientras estés jugando en línea. + +Presiona una tecla.",,"Vous ne pouvez pas lancer +une nouvelle partie en réseau. + +Appuyez sur un touche.","Nem tudsz egy új játékot kezdeni +egy hálozatos játékban. + +Nyomj meg egy gombot.","non puoi iniziare una nuova partita +durante una partita in rete. + +premi un tasto.","impossivel iniciar um novo jogo +enquanto se está online. + +aperte uma tecla.","Ðевозможно начать новую игру +при активной Ñетевой игре. + +Ðажмите любую клавишу.","Ðе можете започети нову игру током мрежне игре. + +ПритиÑните дугме." +"Are you sure? This skill level +isn't even remotely fair. + +Press Y or N.",NIGHTMARE,,,,"Bist du sicher? Dieser Schwierigkeitsgrad ist +nicht einmal annähernd fair. + +Drücke Y oder N.","¿Estás segur@[ao_esp]? Este nivel de dificultad +no es ni remotamente justo. + +Presiona Y ó N.",,"Vous êtes sur? Ce niveau de +difficulté est vraiment impitoyable! + +Appuyez sur Y ou N.","Biztos vagy benne? Ez a nehézségi szint +egyáltalán nem fer. + +Nyomj Y-t vagy N-t.","sei sicuro? questo livello di difficoltà +è dannatamente difficile. + +premi y oppure n.","tem certeza? nem eu mesmo me +sujeito a jogar nesse modo. +","Уверены? Этот уровень ÑложноÑти +даже не близок к чеÑтному. + +Ðажмите Y или N.","ЈеÑте ли Ñигурни? Овај ниво умећа није нимали фер. + +ПритиÑните Y или N." +"This is the shareware version of Doom. + +You need to order the entire trilogy. + +Press a key.",SWSTRING,,,,"Dies ist die Shareware-Version von Doom. + +Hierfür musst du die komplette Trilogie bestellen. + +Drücke eine Taste","Esta es la versión shareware de Doom. + +Necesitas adquirir la trilogía completa. + +Presiona una tecla.",,"Votre version de DOOM est une version SHAREWARE. + +Pensez à commander la version complète! + +Appuyez sur un touche.","Ez a Shareware verziója a Doom-nak. + +Meg kell rendelned az egész trilógiát. + +Nyomj meg egy gombot.","questa è la versione shareware di doom. + +devi ordinare la trilogia completa. + +premi un tasto.","essa e a versao shareware de doom. +que contem somente o primeiro episódio. +para continuar, compre a trilogia. + +aperte uma tecla.","Это демонÑÑ‚Ñ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Doom. + +Вам необходимо приобреÑти вÑÑŽ трилогию. + +Ðажмите любую клавишу.","Ово је шервер верзија игре doom. + +Морате наручити целу трилогију. + +ПритиÑните дугме." +Messages OFF,MSGOFF,,,,Meldungen AUS,Mensajes DESACTIVADOS,,Messages désactivés.,Ãœzenetek KI,messaggi disattivati,Mensagens DESATIVADO,Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐžÐ¢ÐšÐ›Ð®Ð§Ð•ÐЫ,Поруке ИСКЉУЧЕÐЕ +Messages ON,MSGON,,,,Meldungen AN,Mensajes ACTIVADOS,,Messages activés.,Ãœzenetek BE,messaggi attivati,Mensagens ATIVADO,Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð’ÐšÐ›Ð®Ð§ÐÐЫ,Поруке УКЉУЧЕÐЕ +"You can't end a netgame! + +Press a key.",NETEND,,,,"Du kannst ein Netzwerkspiel nicht beenden. + +Drücke eine Taste.","¡No puedes terminar un juego en línea! + +Presiona una tecla.",,"Vous ne pouvez pas mettre fin à une partie en réseau! + +Appuyez sur un touche.","Nem tudsz befejezni egy netjátékot! + +Nyomj meg egy gombot.","non puoi terminare un netgame! + +premi un tasto","nâo pode desligar esse jogo! + +aperte uma tecla.","Ðевозможно закончить Ñетевую игру! + +Ðажмите любую клавишу.",Ðе можете завршити мрежну игру! ПритиÑните дугме. +"Are you sure you want to end the game? + +Press Y or N.",ENDGAME,,,,"Willst du das Spiel wirklich beenden? + +Drücke Y oder N.","¿Estás segur@[ao_esp] que deseas cerrar el juego? + +Presiona Y ó N.",,"Voulez vous mettre fin à votre partie? + +Appuyez sur Y ou N.","Biztos vagy benne hogy beakarod fejezni a játékot? + +Nyomj Y-t vagy N-t.","sei sicuro di voler terminare la partita? + +premi y oppure n.","tem certeza que deseja fechar esse jogo? +","Ð’Ñ‹ дейÑтвительно хотите закончить игру? + +Ðажмите Y или N.",ЈеÑте ли Ñигурни да желите завршити игру? ПритиÑните y или n. +Are you sure you want to quit?,RAVENQUITMSG,,,,"Bist du dir sicher, dass du gehen willst?",¿Estás segur@[ao_esp] que quieres salir?,,Êtes vous sûr de vouloir quitter ?,Biztos vagy benne hogy ki akarsz lépni?,SEI SICURO DI VOLER ABBANDONARE?,DESEJA MESMO SAIR?,Ð’Ñ‹ дейÑтвительно желаете выйти?, +Only available in the registered version,SWSTRING,heretic,,,Nur in der registrierten Version verfügbar,Sólo disponible en la versión registrada,,Disponible uniquement dans la version enregistrée,,,SOMENTE DISPONIVEL NA VERSAO REGISTRADA,Эпизод недоÑтупен в демоверÑии, +Not set,NOTSET,,,,Nicht gesetzt,No Asignado,,Pas paramétré,,,,Ðе задан, +Do you really want to do this?,SAFEMESSAGE,,,,Möchtest du das wirklich tun?,¿Realmente quieres hacer esto?,¿Realmente quieres hacerlo?,Voulez-vous vraiment faire ça?,,,,Ð’Ñ‹ уверены?, +(Press Y to quit),DOSY,,,,(Drücke Y zum Verlassen.),(Presiona Y para salir),,(Appuyez sur Y pour revenir à votre OS.),(Nyomj Y-t hogy kilépj),(premi y per uscire),tem certeza disso?,"(Ðажмите Y, чтобы выйти)",(ПритиÑните Y да завршите) +,,,Quit messages,,,,,,,,,, +"Please don't leave, there's more +demons to toast!",QUITMSG1,,,,"Bitte gehe nicht, es gibt noch mehr +Dämonen zu erlegen.","¡Por favor no te vayas, hay más demonios para tostar!",,"Ne partez pas, il ya encore +des démons a buter!","Kérlek ne lépj le, sok démon vár még arra, hogy felaprítsd!","per favore non uscire, ci sono altri +demoni da ammazzare!","por favor, não saia, +precisamos matá-los...","ПожалуйÑта, не уходи! +Тут ещё много демонов!","Молим те, не одлази, има још демона да Ñе побије!" +"Let's beat it -- this is turning +into a bloodbath!",QUITMSG2,,,,Lass es uns beenden - das wird zu einem Blutbad,"Aceptémoslo, +¡esto se está volviendo en un baño de sangre!",,"Fichons le camp, ça dégénère +en bain de sang!",Ãœssük szét -- ebbÅ‘l vérfürdÅ‘ lesz!,"ammettiamolo - tutto ciò si sta +trasformando in un bagno di sangue!","vamo nessa, isso já está +ficando insuportável!","Да, давай, убегай, еÑли Ñта +ÐºÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð±Ð°Ð½Ñ Ñ‚ÐµÐ±Ðµ не по зубам!",Хајде да завршимо -- ово поÑтаје прави покољ! +"I wouldn't leave if I were you. +DOS is much worse.",QUITMSG3,,,,"Ich würde nicht gehen, wenn ich du wäre. +DOS ist viel übler.","No me iría si fuera tú. +DOS es mucho peor.",,"Je ne quitterais pas si j'étais vous. +Votre OS est bien pire.","A te helyedben nem lépnék le. +DOS az sokkal rosszabb.","non uscirei se fossi in te. +il dos è molto peggio.","eu não sairia se fosse você. +Windows é muito mais chato.","Ðа твоём меÑте Ñ Ð±Ñ‹ не уходил. +DOS намного Ñкучнее.",Ðе би одлазио да Ñам ти. DOS је много гори. +"You're trying to say you like DOS +better than me, right?",QUITMSG4,,,,"Willst du sagen, dass DOS +besser ist als ich?","¿Estás tratando de decir que DOS es mejor que yo, cierto?",,"Vous essayez de dire que vous aimez DOS +mieux que moi, pas vrai?","Azt akarod mondani, hogy jobban szereted a DOS-t mint engem, igaz?","stai cercando di dire che il dos +ti piace più di me, vero?","então você gosta mais do windows +do que de mim, certo?","Ты хочешь Ñказать, что DOS +тебе нравитÑÑ Ð±Ð¾Ð»ÑŒÑˆÐµ, чем Ñ, а?","Покушаваш да кажеш да више волиш DOS него мене, зар не?" +"Don't leave yet -- there's a +demon around that corner!",QUITMSG5,,,,"Bitte gehe noch nicht - hinter +der Ecke da lauert ein Dämon.","No te vayas aún, +¡hay un demonio por aquella esquina!",,"Ne partez pas encore! Il y a +un démon dans le coin!",Még ne menj -- maradt egy démon annál a saroknál!,"non abbandonare ora - c'è un +demone dietro l'angolo!","nao vá, eu acho que vi algo +se mexendo naquele canto!","Ðе уходи! За углом +притаилÑÑ ÐµÑ‰Ñ‘ один монÑÑ‚Ñ€!",Ðемој да одеш -- има демон иза оног угла! +"Ya know, next time you come in here +I'm gonna toast ya.",QUITMSG6,,,,"Nur damit du es weißt, wenn du +wiederkommst, dann bist du erledigt.","Ya lo sabes, la próxima vez +que vengas voy a tostarte.",,"Vous savez, la prochaine que revenez, +je vous grille.","Tudod, ha legközelebb idejössz szétfoglak kenni.","sai, la prossima volta che verrai qui +ti farò a pezzi.","sabe, na próxima vez, +você já era.","Знаешь, по возвращении Ñ‚ÐµÐ±Ñ +будут ждать большие неприÑтноÑти.","Знаш, Ñледећи пут кад дођеш, заклаћу те." +Go ahead and leave. see if I care.,QUITMSG7,,,,"Dann geh doch! Interessiert +mich nicht.",Sigue adelante y vete. A ver si me importa.,,"Allez y, partez, allez voir si j'y suis.",Menj és lépj ki. Hátha érdekelni fog.,continua ed esci. sai che mi frega.,"vá em frente, saia. +veja se me preocupo.","Давай, уходи. Мне Ñовершенно вÑÑ‘ равно.","Изволи, иди. Ðије ме брига." +"You want to quit? +Then, thou hast lost an eighth!",QUITMSG8,,,,"Du willst gehen? +Hast du den Verstand verloren?","¿Quieres salir? entonces, ¡has perdido un octavo!",,"Vous voulez vraiment quitter? +Vous avez vraiment les fils qui se croisent!","Ki akarsz lépni? +Akkor te most elveszítetted a nyolcadikat!","vuoi uscire? +allora hai perso il senno!"," >sair +>pedindo permissão para sair +(tem certeza??)","Ð’Ñерьёз задумываешь выйти? +Полагаю, Ñто не очень-то разумно!",Желиш да одуÑтанеш? Онда Ñи изгубио оÑмицу! +"Don't go now, there's a +dimensional shambler waiting +at the DOS prompt!",QUITMSG9,,,,"Bitte geh noch nicht! +An der Eingabeaufforderung wartet +ein Dimensionsportal auf dich!","No te vayas, ¡hay un desorden dimensional en la consola de DOS!",,"Ne partez pas maintenant, il y a un +portail interdimensionnel dans +votre OS!","Ne menj most, egy dimenzió forgató +vár a DOS parancssornál!","non andartene adesso, c'è un +portale dimensionale che ti aspetta +al prompt del dos!","nao vá agora, um +buraco negro lhe espera +na saida!","Ðе уходи! Тут чудовище из другого +мира ожидает оÑобого приглашениÑ!","Ðемој да одеш, ту је чудовиште које чека код DOS промпта!" +"Get outta here and go back +to your boring programs.",QUITMSG10,,,,"Dann geh doch zurück +zu deinen langweiligen Programmen",Vete de aquí y vuelve a tus aburridos programas.,,"Tirez vous de là et retournez +à vos programmes ennuyeux.","Sicc innen és menj vissza az +unalmas programjaidhoz.","vai fuori di qui e torna +ai tuoi noiosi programmi.","saia daqui e volte +para seus programas chatos.","Вот и убирайÑÑ Ð¾Ñ‚Ñюда к +Ñвоим Ñкучным программам.",Губи Ñе одавде и врати Ñе Ñвојим програмима. +"If I were your boss, I'd +deathmatch ya in a minute!",QUITMSG11,,,,"Wenn ich dein Boss wäre, würde ich +dich im Deathmatch in einer Minute schlagen.","Si yo fuera tu jefe, ¡te retaría a muerte en un minuto!",,"Si j'étais votre patron, je vous +collerai un Deathmatch dans la minute!","Ha én lennék a fÅ‘nököd, lejátszanék egy Deathmatch-et veled perceken belül!","se fossi il tuo capo, ti batterei +a un deathmatch in un minuto!","se fosse seu chefe, +você estaria demitido!","Будь Ñ Ñ‚Ð²Ð¾Ð¸Ð¼ боÑÑом, +разобралÑÑ Ð±Ñ‹ Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ ровно за минуту!","Да Ñам био твој шеф, детмеч-овао бих те за један минут!" +"Look, bud. you leave now +and you forfeit your body count!",QUITMSG12,,,,"Also, Kumpel, wenn du jetzt abhaust, +begehst du Fahnenflucht!","Mira, amig@[ao_esp]. ¡Te vas ahora y vas a perder tu conteo de cuerpos!",,"Regardez, l'ami. Vous partez maintenant +et vous pouvez oublier votre score!","Nézd, haver. kilépsz most +és akkor semmissé válnak a pontjaid!","senti amico, esci adesso +e perdi il tuo body count!","OK, pode ir. +mas pode esquecer sua pontuação!","ПоÑлушай, дружище. Выйдешь — +и ÑброÑишь Ñвой Ñчётчик убийÑтв!","Види, друже. Ðко одеш Ñада, изгубићеш број убиÑтава!" +"Just leave. when you come +back, I'll be waiting with a bat.",QUITMSG13,,,,"Geh doch. Wenn du zurückkommst, +warte ich mit einem Schläger auf dich.","Pues vete. Cuando vuelvas, +te esperaré con un bate.",,"Allez, partez. Quand vous reviendrez, +je vous attendrai avec une batte.","Menj csak. amikor visszajössz +várni foglak egy ütÅ‘vel.","esci pure. quanto tornerai +ti aspetterò con un bastone.","vá. +quando voltar, estarei lhe esperando +com meu BFG.","Уходи, уходи... но когда вернёшьÑÑ, +Ñ Ð±ÑƒÐ´Ñƒ ждать Ñ‚ÐµÐ±Ñ Ñ Ð±Ð¸Ñ‚Ð¾Ð¹.","Само иди. Када Ñе вратиш, чекаћу те Ñ Ð¿Ð°Ð»Ð¸Ñ†Ð¾Ð¼." +"You're lucky I don't smack +you for thinking about leaving.",QUITMSG14,,,,"Hast du ein Glück, dass ich +dir keine reinhaue, weil du gehst.","Tienes suerte que no pueda darte una paliza +por pensar en salirte.",,"Vous êtes chanceux que je ne vous en +colle pas une parce que vous pensez partir.","Szerencsés vagy, hogy nem ütlek meg +a kilépéssel való gondolatoddal.","sei fortunato che non ti picchi +per aver pensato di andartene.","você tem sorte por não +lhe dar um prêmio por pensar +em sair.","Тебе повезло, что Ñ Ð½Ðµ вмажу тебе +за то, что Ñ‚Ñ‹ выходишь.",Имаш Ñреће што те ниÑам ударио када Ñи размишљао о одлаÑку. +"Where are you going?! +What about the rebellion?",QUITMSG15,,,,"Wo gehst du hin?! +Was ist mit der Rebellion?",¿Adónde vas? ¿Qué hay de la rebelión?,,"Où allez vous? +Que va devenir la rébellion?","Hová mész?! +És a forradalommal mi lesz?","dove stai andando?! +e la ribellione?","aonde pensa que vai?! +e quanto a nos?","Куда Ñ‚Ñ‹ ÑобралÑÑ? +Ркак же воÑÑтание?!", +"Carnage interruptus... +What a tease!",QUITMSG16,,,,"Carnage interruptus... +Was für ein Witzbold!",Masacre interruptus... ¡Qué timo!,,"Carnage interruptus... +Tout un programme!","Carnage interruptus... +Mily kötekedÅ‘!","macellus interruptus... +che presa in giro!","interrompendo carnificina.... +tem certeza disso?","Ð ÐµÐ·Ð½Ñ Ð¿Ñ€ÐµÐºÑ€Ð°Ñ‰Ð°ÐµÑ‚ÑÑ... +Ðа Ñамом интереÑном меÑте!", +"But you're the hope +-- my only chance!!",QUITMSG17,,,,Aber du bist unsere Hoffnung!,"Pero tú eres la esperanza... +¡¡Mi única oportunidad!!",,"Mais vous êtes l'espoir, +notre unique chance!","De te vagy a remény +-- az egyetlen esélyem!!","ma tu sei la speranza +-- la mia unica possibilità!!","mas voce e a nossa +unica esperanca!","Ðо на Ñ‚ÐµÐ±Ñ Ð²ÑÑ Ð½Ð°Ð´ÐµÐ¶Ð´Ð° — +Ñ‚Ñ‹ мой единÑтвенный шанÑ!", +Nobody walks out on Blackbird.,QUITMSG18,,,,Niemand lässt Blackbird stehen.,Nadie abandona a BlackBird.,,Personne n'abandonne Blackbird!,Senki nem kezdhet ki a Feketerigóval!,nessuno gira le spalle a Blackbird.,"ninguem vai embora assim. +",Ещё никто не ушёл от Чёрного дрозда., +I thought you were different...,QUITMSG19,,,,"Ich dachte, du wärst anders...",Pensé que eras diferente...,,Je vous croyais différent...,Azt hittem te más vagy...,pensavo tu fossi diverso...,pensei que fosse diferente...,Я думала о тебе иначе..., +Fine! just kill and run!,QUITMSG20,,,,"Na toll! +Töten und dann wegrennen.",¡Bien! ¡Matas y huyes!,,"C'est ça! Tuez n'importe-qui +et barrez-vous comme ça!",Oké! csak ölj és fuss!,ma bravo! uccidi e scappi!,OK! tchau para voce tambem!,Отлично! ПоÑтрелÑл и ÑмылÑÑ!, +"You can quit... +but you can't hide...",QUITMSG21,,,,"Du kannst gehen... +aber dich nicht verstecken...","Puedes salir... +Pero no puedes esconderte...",,"Vous pouvez partir... +Mais vous ne pouvez pas vous cacher...","Kiléphetsz... +de nem bújhatsz el...","puoi uscire... +ma non puoi nasconderti...","pode ir. +mas sabemos seu esconderijo...","Ты можешь уйти... +но не можешь ÑпрÑтатьÑÑ...", +"Whaaa, what's the matter? +Mommy says dinnertime?",QUITMSG22,,,,"Hey, was ist los? +Hat Mami zum Abendessen gerufen?","Queee, ¿Cuál es el problema? +¿Mami te llama a cenar?",,"Bah, il est où est le problème? +Maman a dit « à table! »?","Naaaa, mi a baj? +Anya azt mondta hogy vacsora?","eehi, che problema c'è? +la mamma ha detto che è ora di cena?","hein? pode repetir? +voce deseja sair?","Ха! Ð’ чём дело? +Мама зовёт обедать?", +"Don't quit now, there are still +flemoids on the loose!",QUITMSG23,,,,"Bitte gehe nicht, es laufen noch mehr +Flemoiden herum","No te vayas ahora, +¡Aún hay flemoides sueltos!",,"N'abandonnez pas maintenant...do +Voulez vous toujours quitter?","Ne lépj ki, még maradt sok flemoid hátra!","Non uscire ora, ci sono ancora +flemoidi a piede libero!","Nao saia agora, precisamos +acabar com eles!","Ðе выходи ÑейчаÑ! ЗдеÑÑŒ еÑÑ‚ÑŒ +ещё много флемоидов!", +"Don't give up -- the flemoids will +get the upper hand!",QUITMSG24,,,,"Gib nicht auf - die Flemoiden +gewinnen sonst.","No te rindas... +¡Los flemoides tendrán la ventaja!",,"Ne partez pas, ou les +Flémoïdes vont nous battre!",Ne add fel -- a flemoidok lesznek fölényben!,"Non arrenderti -- i flemoidi +ci sopraffaranno!","Nao desista --- porque +eles nunca desistirao!","Ðе ÑдавайÑÑ â€” не то флемоиды +получат преимущеÑтво!", +"Don't leave now. +We need your help!",QUITMSG25,,,,"Bitte geh nicht. +Wir brauchen deine Hilfe.","No te vayas ahora. +¡Necesitamos tu ayuda!",,"S'il vous plaît, ne quittez pas, nous +avons besoin de votre aide!","Ne menj most. +Szükségünk van a segítségedre!","Non andartene ora. +Ci serve il tuo aiuto!","Nao va. +Precisamos de sua ajuda!","Ðе уходи ÑейчаÑ. +Ðам нужна Ñ‚Ð²Ð¾Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ!", +"I hope you're just taking a +break for Chex(R) party mix.",QUITMSG26,,,,"Ich hoffe mal, dass du nur eine +Pause für Chex(R) Party Mix machst.","Espero que solo estés tomando un descanso +para la fiesta de mix Chex(R).",,"J'espère que tu prends une pause +pour un bol de Chex(R) Party Mix.","Remélem hogy csak +egy szünetet tartasz a Chex(R) parti mixhez.","Spero tu stia solo facendo un +break per prendere un Chex(R) party mix.","Espero que tudo isso +so seja fome.","ÐадеюÑÑŒ, Ñ‚Ñ‹ лишь делаешь +перерыв на тарелку хлопьев Chex(R).", +"Don't quit now! +We need your help!",QUITMSG27,,,,"Bitte verlasse uns nicht. +Wir brauchen deine Hilfe.","¡No salgas ahora! +¡Necesitamos tu ayuda!",,"Restez avec nous! +Nous avons besoin de vous!","Ne lépj ki! +Kell a segítséged!","non uscire ora! +Ci serve il tuo aiuto!","Nao va. +Precisamos de sua ajuda!","Ðе уходи ÑейчаÑ! +Ðам нужна Ñ‚Ð²Ð¾Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ!", +"Don't abandon the +Intergalactic Federation of Cereals!",QUITMSG28,,,,"Bitte lasse die Intergalaktische +Föderation der Cerealien nicht im Stich!",¡No abandones a la federación intergaláctica de cereales!,,"N'abandonnez pas la +Fédération Intergalactique des Céréales!","Ne hagyd cserben az +Intergalaktikus Műzli Ãllamszövetséget!","Non abbandonare la +Federazione Intergalattica dei Cereali!",Nao nos abandone!!!,"Ðе оÑтавлÑй +МежгалактичеÑкую Федерацию Хлопьев!", +"The real Chex(R) Warrior +wouldn't give up so fast!",QUITMSG29,,,,"Der echte Chex(R) Krieger +würde nicht so schnell aufgeben.",¡El verdadero guerrero Chex(R) no se rendiría tan rápido!,,"Le vrai Chex Warrior +n'abandonnerait pas de si tôt!","Az igazi Chex(R) Harcos +nem adná fel ilyen gyorsan!","Il vero guerriero Chex(R) +non si arrenderebbe così in fretta!","O verdadeiro Chex(R) Warrior +nunca desistiria!","ÐаÑтоÑщий Воин Chex(R) +не ÑдаÑÑ‚ÑÑ Ñ‚Ð°Ðº быÑтро!", +,,,Pickups,,,,,,,,,, +You got a pickup,TXT_DEFAULTPICKUPMSG,,,,Du hast etwas aufgesammelt,Obtuviste un objeto.,,Quelque chose récupéré.,Felvettél valamit.,Hai raccolto qualcosa ,Você pegou um objeto,Что-то подобрано,Покупили Ñте нешто +,,,Locks,,,,,,,,,, +Any key will open this door,PD_ANY,,,,Jeder Schlüssel wird diese Tür öffnen,Cualquier llave puede abrir esta puerta,,N'importe quelle clé peut ouvrir cette porte.,Bármilyen kulcs kinyitja ezt az ajtót.,Una chiave qualunque aprirà questa porta,Qualquer chave abre a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен любой ключ,Било који кључ може да отвори ова врата +Any key will activate this object,PD_ANYOBJ,,,,Jeder Schlüssel wird dieses Objekt aktivieren,Cualquier llave puede activar este objeto,,N'importe quelle clé peut activer cet objet.,Bármilyen kulcs aktiválja ezt az objektumot.,,Qualquer chave ativa este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен любой ключ,Било који кључ може да активира овај предмет +You need all three keys to open this door,PD_ALL3,,,,"Du brauchst alle drei Schlüssel, um diese Tür zu öffnen",Necesitas las tres llaves para abrir esta puerta,,Il vous faut une clé de chaque couleur pour ouvrir cette porte.,"Mind a 3 kulcs szükséges, hogy kinyisd ezt az ajtót.",Ti servono tutte e tre le chiavi per aprire questa porta,Precisa das 3 chaves para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе три ключа,Треба вам Ñва три кључа да би отворили ова врата +You need all three keys to activate this object,PD_ALL3O,,,,"Du brauchst alle drei Schlüssel, um dieses Objekt zu aktivieren",Necesitas las tres llaves para activar este objeto,,Il vous faut une clé de chaque couleur pour activer cet objet.,Mind a 3 kulcs kell hogy aktiváld ezt az objektumot.,Ti servono tutte e tre le chiavi per attivare questo oggetto ,Precisa das 3 chaves para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе три ключа,Треба вам Ñва три кључа да би активирали овај предмет +You need all six keys to open this door,PD_ALL6,,,,"Du brauchst alle sechs Schlüssel, um diese Tür zu öffnen",Necesitas las seis llaves para abrir esta puerta,,Il vous faut les six clés pour ouvrir cette porte.,Mind a 6 kulcsnak meg kell lennie az ajtó kinyitásához.,Ti servono tutte e sei le chiavi per aprire questa porta,Precisa das 6 chaves para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе шеÑÑ‚ÑŒ ключей,Треба вам Ñвих шеÑÑ‚ кључева да би отворили ова врата +You need all six keys to activate this object,PD_ALL6O,,,,"Du brauchst alle sechs Schlüssel, um dieses Objekt zu aktivieren",Necesitas las seis llaves para activar este objeto,,Il vous faut les six clés pour activer cet objet.,"Mind a 6 kulcs kell, hogy aktiváld ezt az objektumot.",Ti servono tutte e tre le chiavi per attivare questo oggetto ,Precisa das 6 chaves para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе шеÑÑ‚ÑŒ ключей,Треба вам Ñвих шеÑÑ‚ кључева да би активирали овај предмет +You need all the keys,PD_ALLKEYS,,,,Du brauchst alle Schlüssel,Necesitas todas las llaves,,Vous avez besoin de toutes les six clés.,Az összes kulcsra szükség van.,Ti servono tutte le chiavi,Precisa de todas as chaves,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе ключи,Треба вам Ñви кључеви +,,,Obituaries,,,,,,,,,, +%o suicides.,OB_SUICIDE,,,,%o begeht Selbstmord.,%o se suicidó.,,%o se suicide.,%o öngyilkos lett.,%o si è suicidato.,%o suicidou-se.,%o покончил@[ao_rus] Ñ Ñобой., +%o fell too far.,OB_FALLING,,,,%o fiel zu tief.,%o se cayó desde muy alto.,,%o est tombé@[e_fr] trop loin.,%o túl nagyot esett.,%o è caduto troppo in basso.,%o caiu.,%o упал@[ao_rus] Ñлишком выÑоко., +%o was squished.,OB_CRUSH,,,,%o wurde zerquetscht,%o fue aplastad@[ao_esp].,,%o a été écrasé@[e_fr].,%o össze lett lapítva.,%o è stato schiacciato.,%o foi esmagado.,%o был@[ao_rus] раздавлен@[ao_rus]., +%o tried to leave.,OB_EXIT,,,,%o wollte gehen.,%o trató de huir.,,%o a tenté de partir.,%o megpróbált lelépni.,%o ha provato a uscire.,%o tentou sair.,%o попытал@[refl_rus] Ñвалить., +%o can't swim.,OB_WATER,,,,%o kann nicht schwimmen.,%o no sabe nadar.,,%o ne sait pas nager.,%o nem tud úszni.,%o non sapeva nuotare.,%o não sabe nadar.,%o не умел@[ao_rus] плавать., +%o mutated.,OB_SLIME,,,,%o mutierte.,%o ha mutado.,,%o a muté.,%o mutánssá alakult.,%o è mutato.,%o se entoxicou.,%o мутировал@[ao_rus]., +%o melted.,OB_LAVA,,,,%o schmolz.,%o se ha fundido.,,%o a fondu.,%o szétolvadt.,%o si è sciolto.,%o derreteu.,%o раÑплавил@[refl_rus]., +%o went boom.,OB_BARREL,,,,%o explodierte.,%o explotó en mil pedazos.,,%o s'est pété@[e_fr] la face.,%o elment felrobbanni.,%o ha fatto bum.,%o explodiu.,%o взорвал@[refl_rus]., +%o stood in the wrong spot.,OB_SPLASH,,,,%o war am falschen Ort.,%o estaba en el sitio equivocado.,,%o s'est tenu@[e_fr] au mauvais endroit.,%o rossz helyen volt.,%o si è trovato nel posto sbagliato.,%o parou no lugar errado.,%o ÑтоÑл@[ao_rus] в неверной точке., +%o should have stood back.,OB_R_SPLASH,,,,%o hätte Abstand halten sollen.,%o debió haberse apartado.,,%o aurait dû garder ses distances.,%o hátrébb mehetett volna.,%o avrebbe dovuto allontanarsi.,%o deveria ter se afastado.,%o не отÑтупил@[ao_rus] в Ñторону., +%o should have stood back.,OB_ROCKET,,,,%o hätte Abstand halten sollen.,%o debió haberse apartado.,,%o aurait dû garder ses distances.,%o hátrébb mehetett volna.,%o avrebbe dovuto allontanarsi.,%o deveria ter se afastado.,%o не отÑтупил@[ao_rus] в Ñторону., +%o killed %hself.,OB_KILLEDSELF,,,,%o tötete sich selbst.,%o se mató a sí mism@[ao_esp].,,%o s'est tué@[e_fr].,%o megölte magát.,%o ha ucciso se stesso.,%o se matou.,%o покончил@[ao_rus] Ñ Ñобой., +%o was killed by the power of voodoo.,OB_VOODOO,,,,%o wurde durch Voodoo getötet.,%o ha sido asesinad@[ao_esp] con el poder del vudú.,,%o a succombé au pouvoir du Vaudou.,%o meghalt a voodoo erejének köszönhetÅ‘en.,%o è stato ucciso dalla potenza del voodoo.,%o morreu pelo poder do voodoo.,Игрока %o убила Ñила Вуду., +%o was telefragged by %k.,OB_MPTELEFRAG,,,,%o stand %k im Wege.,%o ha sido telefragmentad@[ao_esp] por %k.,,%o a été téléfragué@[e_fr] par %k.,%o telefrag-et kapott %k által.,%o è stato telefraggato da %k.,%o foi telefragged por %k.,Игрок %k телефрагнул игрока %o., +%o was telefragged.,OB_MONTELEFRAG,,,,%o stand jemandem im Wege.,%o ha sido telefragmentad@[ao_esp].,,%o a été téléfragué@[e_fr].,%o telefraggelve lett.,%o si è fatto telefraggare.,%o foi telefragged por um monstro.,Игрока %o телефрагнуло., +%o died.,OB_DEFAULT,,,,%o ist gestorben.,%o ha muerto.,,%o est mort@[e_fr].,%o meghalt.,%o è morto.,%o morreu.,Игрок %o погиб., +%o was killed by %k.,OB_MPDEFAULT,,,,%o wurde von %k getötet.,%o ha sido asesinad@[ao_esp] por %k.,,%o a été tué@[e_fr] par %k.,%o meghalt %k által.,,%o foi morto por %k.,Игрок %o убит %k., +%k mows down a teammate.,OB_FRIENDLY1,,,,%o wurde von einem Teamkameraden niedergestreckt.,%k acribilla a un compañero.,,%k élimine un de ses équipiers.,%k átmegy egy csapattársan.,%k falcia via un compagno.,%k é cego.,Игрок %k убил Ñоюзника., +%k seems to need glasses.,OB_FRIENDLY2,,English was changed to remove problematic pronoun referencing the killer,,%k sollte eine Brille benutzen.,%k comprueba sus gafas.,,%k vérifie ses lunettes.,%k megnézi a szemüvegét.,%k si controlla gli occhiali.,%k pensa que sabe o que faz.,Игроку %k Ñледует проверить Ñвои очки., +%k gets a frag for the other team.,OB_FRIENDLY3,,,,%k macht für das andere Team einen Punkt.,%k marca una baja para el otro equipo.,,%k marque un point pour l'autre équipe.,%k szerez egy frag-et a másik csapatnak.,%k regala un frag all'altro team.,%k errou o tiro.,Игрок %k Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð½Ñ‘Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ команде фраг., +%k loses another friend.,OB_FRIENDLY4,,,,%k hat wieder einen Freund verloren.,%k pierde otro amigo.,,%k a perdu un autre ami.,%k elveszít egy másik barátot.,%k perde un altro amico.,%k perde outro ponto.,Игрок %k потерÑл ещё одного друга., +,,,Blood Bath Announcer,,,,,,,,,, +%k boned %o like a fish,BBA_BONED,,,,%k hat %o zerlegt wie einen Fisch,%k deshuesó a %o como a un pescado,,%k désossa %o comme un poisson,,%k ha dissossato %o come un pesce,,, +%k castrated %o,BBA_CASTRA,,,,%k hat %o kastriert,%k castró a %o,,%k castra %o,,%k ha castrato %o,,, +%k creamed %o,BBA_CREAMED,,,,%k hat %o eingeseift,%k cremó a %o,,%k a battu %o à plate couture ,,%k ha cremato %o,,, +%k decimated %o,BBA_DECIMAT,,,,%k hat %o dezimiert,%k diezmó a %o,,%k a décimé %o,,%k ha decimato %o,,, +%k destroyed %o,BBA_DESTRO,,,,%k hat %o zerstört,%k destruyó a %o,,%k a détruit %o,,%k ha distrutto %o,,, +%k diced %o,BBA_DICED,,,,%k hat %o in Würfel zerteilt,%k picó en cubitos a %o,,%k a coupé en dés %o,,%k ha tagliato a cubetti %o,,, +%k disembowled %o,BBA_DISEMBO,,,,%k hat %o ausgeweidet,%k destripó a %o,,%k a étripé %o,,%k ha smembrato %o,,, +%k flattened %o,BBA_FLATTE,,,,%k hat %o dem Erdboden gleichgemacht,%k aplanó a %o,,%k a aplati %o,,%k ha schiacciato %o,,, +%k gave %o Anal Justice,BBA_JUSTICE,,,,%k hat %o anale Gerechtigkeit gegeben,%k le dió Justicia Anal a %o,,%k a rendu une justice anale a %o,,%k dà a %o Giustizia Anale,,, +%k gave AnAl MaDnEsS to %o,BBA_MADNESS,,,,%k gab %o AnAlEn WaHnSiNn,%k le dió LoCuRa AnAl a %o,,%k a donné la FOLIE ANALE a %o,,%k dà FoLlIa AnAle a %o,,, +%k killed %o,BBA_KILLED,,,,%k hat %o getötet,%k mató a %o,,%k a tué %o,,%k ha ucciso %o,,, +%k made mincemeat out of %o,BBA_MINCMEAT,,,,%k hat %o zu Hackfleisch verarbeitet,%k hizo picadillo de %o,,%k a fait de la viande hachée de %o,,%k ha triturato %o,,, +%k massacred %o,BBA_MASSACR,,,,%k hat %o niedergemetzelt,%k masacró a %o,,%k a massacré %o,,%k ha massacrato %o,,, +%k mutilated %o,BBA_MUTILA,,,,%k hat %o verstümmelt,%k mutiló a %o,,%k a mutilé %o,,%k ha mutilato %o,,, +%k reamed %o,BBA_REAMED,,,,%k hat %o aufgerieben,%k escarió a %o,,%k a découpé en fines lamelles %o,,%k ha squartato %o,,, +%k ripped %o a new orifice,BBA_RIPPED,,,,%k hat %o eine neue Körperöffnung verpasst,%k le hizo a %o un nuevo orificio,,%k a ouvert un nouvel orifice a %o,,%k ha aperto a %o un altro orifizio,,, +%k slaughtered %o,BBA_SLAUGHT,,,,%k hat %o geschlachtet,%k sacrificó a %o,,%k a meurtri %o,,%k ha macellato %o,,, +%k smashed %o,BBA_SMASHED,,,,%k hat %o zerklatscht,%k destrozó a %o,,%k a enfoncé %o,,%k ha colpito %o,,, +%k sodomized %o,BBA_SODOMIZ,,,,%k hat %o sodomisiert,%k sodomizó a %o,,%k y a sodomisé n %o,,%k ha sodomizzato %o,,, +%k splattered %o,BBA_SPLATT,,,,%k hat %o zerspritzt,%k roció a %o,,%k a explosé de %o,,%k ha spiaccicato %o,,, +%k squashed %o,BBA_SQUASH,,,,%k hat %o zerquetscht,%k aplastó a %o,,%k a écrabouillé %o,,%k ha schiacciato %o,,, +%k throttled %o,BBA_THROTTL,,,,%k hat %o erdrosselt,%k aceleró a %o,,%k a étouffé %o,,%k ha strozzato %o,,, +%k wasted %o,BBA_WASTED,,,,%k hat %o verbraucht,%k desechó a %o,,%k a décharne %o,,%k ha distrutto %o,,, +%k body bagged %o,BBA_BODYBAG,,,,%k hat %o eingesackt,%k embolsó a %o,,%k a placé %o dans son linceul,,%k ha mandato %o all'obitorio,,, +%k sent %o to Hell,BBA_HELL,,,,%k hat %o zur Hölle fahren lassen,%k envió a %o al infierno,,%k a envoyé %o en enfer,,%k ha spedito all'Inferno %o,,, +%k toasted %o,BBA_TOAST,,,,%k hat %o geröstet,%k tostó a %o,,%k a grillé %o,,%k ha arrostito %o,,, +%k snuffed %o,BBA_SNUFF,,,,%k hat %o vernichtet,%k aspiró a %o,,%k a crevé %o,,%k ha spento %o,,, +%k hosed %o,BBA_HOSED,,,,%k hat %o eingetütet,%k se cargó a %o,,%k a arrosé %o,,%k l'ha fatta sopra %o,,, +%k sprayed %o,BBA_SPRAYED,,,,%k hat %o pulverisiert,%k pulverizó a %o,,%k a pulvérise %o,,%k ha vaporizzato %o,,, +%k made dog meat out of %o,BBA_DOGMEAT,,,,%k hat Hundefutter aus %o gemacht,%k hizo comida para perro de %o,,%k a fait de la pâtée pour chien %o,,%k ha fatto polpette di %o,,, +%k beat %o like a cur,BBA_BEATEN,,,,%k hat %o wie einen Hund geschlagen,%k pateó a %o como a un perro callejero,,%k a battu %o,,%k ha battuto %o come un cane,,, +%o is excrement,BBA_EXCREMENT,,,,%o wurde zu Exkrement verarbeitet,%o es excremento,,%o est une merde,,%o è un escremento,,, +%o is hamburger,BBA_HAMBURGER,,,,%o ist Hamburger,%o es una hamburguesa,,%o est un hamburger,,%o è un hamburger,,, +%o suffered scrotum separation,BBA_SCROTUM,,,,%k hat %os Eier gebraten,%o sufrió separación de escroto,,%o a souffert d'une séparation du scrotum,,%o ha subito la separazione dello scroto,,, +%o volunteered for population control,BBA_POPULATION,,,,%o hat sich freiwillig zur Bevölkerungskontrolle gemeldet,%o fue voluntario para control de población,,%o s'est proposé pour un contrôle de la population,,%o si è offerto per il controllo della popolazione,,, +%o has suicided,BBA_SUICIDE,,,,%o hat Selbstmord begangen,%o se ha suicidado,,%o s'est suicidé,,%o si è suicidato,,, +%o received the Darwin Award,BBA_DARWIN,,,,%o hat den Darwinpreis erhalten,%o recibió el premio Darwin,,%o a recu la médaille Darwin,,%o ha ricevuto il Darwin Award,,, +,,,Cheats,,,,,,,,,, +Music Change,STSTR_MUS,,,,Musikwechsel,Cambio de música,,Changement de Musique,Zene Váltás,Musica cambiata,Trocando musica...,Смена музыки,Промена музике +Impossible Selection,STSTR_NOMUS,,,,Falsche Auswahl,SELECCIÓN IMPOSIBLE,,Séléction Impossible!,Lehetetlen Kiválasztás,Selezione impossibile,IMPOSSIVEL,ÐЕКОРРЕКТÐЫЙ ВЫБОР,ÐЕМОГУЋИ ИЗБОР +Degreelessness Mode ON,STSTR_DQDON,,,,Unverwundbarkeit AN,Modo de estado sin grado ACTIVADO,,Invulnérabilité ON ,Sérthetetlenség Mód BE,Invincibilità attivata,Modo DEUS ATIVADO,ÐеуÑзвимоÑÑ‚ÑŒ включена,ÐерањивоÑÑ‚ УКЉУЧЕÐÐ +Degreelessness Mode OFF,STSTR_DQDOFF,,,,Unverwundbarkeit AUS,Modo de estado sin grado DESACTIVADO,,Invulnérabilité OFF,Sérthetetlenség Mód KI,Invincibilità disattivata,Modo DEUS DESATIVADO,ÐеуÑзвимоÑÑ‚ÑŒ отключена,ÐерањивоÑÑ‚ ИСКЉУЧЕÐÐ +Ultimate Degreelessness Mode ON,STSTR_DQD2ON,,,,Ultimative Unverwundbarkeit AN,Modo de estado sin grado final ACTIVADO,,Parfaite Invulnérabilité ON,Tökéletes Sérthetetlenség Mód BE,Modalità Senza Limiti Definitiva ON,,ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÑƒÑзвимоÑÑ‚ÑŒ включена,Ултимативна нерањивоÑÑ‚ УКЉУЧЕÐÐ +Ultimate Degreelessness Mode OFF,STSTR_DQD2OFF,,,,Ultimative Unverwundbarkeit AUS,Modo de estado sin grado final DESACTIVADO,,Parfaite Invulnérabilité OFF,Tökéletes Sérthetetlenség Mód KI,Modalità Senza Limiti Definitiva OFF,,ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÑƒÑзвимоÑÑ‚ÑŒ отключена,Ултимативна нерањивоÑÑ‚ ИСКЉУЧЕÐÐ +Very Happy Ammo Added,STSTR_KFAADDED,,,,Munition hinzugefügt,Munición añadida hasta el tope,,Armement Maximum!,Összes LÅ‘szer Megadva,Equipaggiamento Completato,O Pacote completo... Trapaceiro!,Ð‘Ð¾ÐµÐ·Ð°Ð¿Ð°Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½,Веома Срећна Муниција Додана +Ammo (no keys) Added,STSTR_FAADDED,,,,Munition (keine Schlüssel) hinzugefügt,Munición añadida (sin llaves),,Arsenal ajouté. (Pas de clés!),LÅ‘szer (nincsenek kulcsok) Megadva,Equipaggiamento Completato (senza chiavi),Precisa de mais municao?,Ð‘Ð¾ÐµÐ·Ð°Ð¿Ð°Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½ (без ключей),Муниција (без кључева) Додана +No Clipping Mode ON,STSTR_NCON,,,,Nicht-Kollisionsmodus AN,Modo de traspaso ACTIVADO,,Collisions OFF,Falonátmenés Mód BE,No Clipping Attivato,No Clip ATIVADO,Прохождение Ñквозь Ñтены ВКЛЮЧЕÐО,Пролажење кроз зидове УКЉУЧЕÐО +No Clipping Mode OFF,STSTR_NCOFF,,,,Nicht-Kollisionsmodus AUS,Modo de traspaso DESACTIVADO,,Collisions ON,Falonátmenés Mód KI,No Clipping Disattivato,No Clip DESATIVADO,Прохождение Ñквозь Ñтены ОТКЛЮЧЕÐО,Пролажење кроз зидове ИСКЉУЧЕÐО +No Clipping Mode 2 ON,STSTR_NC2ON,,,,Nicht-Kollisionsmodus 2 AN,Modo de traspaso 2 ACTIVADO,,Collisions 3D OFF,Falonátmenés 2. Mód BE,No Clipping 2 Disattivato,,Полёт Ñковозь Ñтены ВКЛЮЧÐÐ,Секундарни режим пролажења кроз зидове УКЉУЧЕÐО +"inVuln, Str, Inviso, Rad, Allmap, or Lite-amp",STSTR_BEHOLD,,"“inVulnâ€: Invulnerability sphere +“Strâ€: Berserk +“Invisoâ€: Blur sphere +“Radâ€: Radiation-shielding suit +“Allmapâ€: Computer area map +“Lite-ampâ€: Light-amplification visor",,"inVuln, Str, Inviso, Rad, Allmap, oder Lite-amp","inVuln, Str, Inviso, Rad, Allmap, o Lite-amp.",,"in V ulnérable, S urpuissance, I nvisible, p R otection, c A rte, où L umière?","Sérthet (V), Berz (S), Láthat(i), Sugár(R), Térkép(A), vagy Fény Sisak(L)","inVuln, BerSerk, Invisib, Tuta anti-Rad, MAppa, o Amplif-Luce","Escolha um poder: +Força-s; invulnerabilidade-v; invisibilidade-i +anti-radiação-r; mapa-a; óculos-l","m=беÑÑм., s=берÑ., i=нев., r=коÑ., a=крт., l=виз.","inVuln, Str, Inviso, Rad, Allmap или Lite-amp" +Power-up Toggled,STSTR_BEHOLDX,,,,Verbesserung umgeschaltet!,Poder alternado,,Amélioration Activée!,TúlerÅ‘ Adva,Power-up concesso/tolto,Power-up ATIVADO,Предмет переключён, +... doesn't suck - GM,STSTR_CHOPPERS,,,,... gar nicht übel - GM,... no apesta - GM,,... C'est pas de la merde. - GM,... nem vacak - GM,Ora vai e segali tutti!,... nao enche.,... неплохо — г.м., +"Changing Level... +",STSTR_CLEV,,,,Wechsle Level...,"Cambiando de nivel... +",,Changement de niveau...,Pálya Váltás...,"Cambio di livello... +","Pulando para... +","Смена уровнÑ... +", +Buddha mode ON,TXT_BUDDHAON,,,,Buddhamodus AN,Modo Buda ACTIVADO,,Mode Bouddha ON,Buddha Mód BE,Modalità Buddha attivata,Modo Buddha ATIVADO,Ð’Ñ‹ теперь Будда.,Буда Мод УКЉУЧЕР+Buddha mode OFF,TXT_BUDDHAOFF,,,,Buddhamodus AUS,Modo Buda DESACTIVADO,,Mode Bouddha OFF,Buddha Mód KI,Modalità Buddha disattivata,Modo Buddha DESATIVADO,Ð’Ñ‹ больше не Будда.,Буда Мод ИСКЉУЧЕР+Ultimate Buddha Mode ON,TXT_BUDDHA2ON,,,,Ultimativer Buddhamodus AN,Modo Buda Supremo ACTIVADO,,Mode Bouddha Ultime ON,Tökéletes Buddha Mód BE,Modalità Buddha Definitiva attivata,,Ð’Ñ‹ теперь абÑолютный Будда.,Ултимативни Буда Мод УКЉУЧЕР+Ultimate Buddha Mode OFF,TXT_BUDDHA2OFF,,,,Ultimativer Buddhamodus AUS,Modo Buda Supremo DESACTIVADO,,Mode Bouddha Ultime OFF,Tökéletes Buddha Mód KI,Modalità Buddha Definitiva disattivata,,Ð’Ñ‹ больше не абÑолютный Будда.,Ултимативни Буда Мод ИСКЉУЧЕР+Power on,TXT_CHEATPOWERON,,,,Fähigkeit AN,Poder activado,,Pouvoir Activée,Energia BE,POTERE ATTIVO,PODER ATIVADO,, +Power off,TXT_CHEATPOWEROFF,,,,Fähigkeit AUS,Poder desactivado,,Pouvoir Désactivée,Energia KI,POTERE DISATTIVO,PODER DESATIVADO,, +Full health,TXT_CHEATHEALTH,,,,Volle Lebensenergie,Salud al máximo,,Pleine Santé,Teljes élet,ENERGIA COMPLETA,SAUDE CHEIA,МакÑимальное здоровье, +All keys,TXT_CHEATKEYS,,,,Alle Schlüssel,Todas las llaves,,Toutes les Clés,Összes kulcs,TUTTE LE CHIAVI,TODAS AS CHAVES,Ð’Ñе ключи, +Sound debug on,TXT_CHEATSOUNDON,,,,Sound Debug AN,Depuración de sonido activada,,Débogage du son activé.,Hang debug BE,DEBUG DEL SUONO ATTIVATO,DEBUG DE SOM ATIVADO,Отладка звука ВКЛЮЧЕÐÐ, +Sound debug off,TXT_CHEATSOUNDOFF,,,,Sound Debug AUS,Depuración de sonido desactivada,,Débogage du son désactivé.,Hang debug KI,DEBUG DEL SUONO DISATTIVATO,DEBUG DE SOM DESATIVADO,Отладка звука ВЫКЛЮЧЕÐÐ, +"Trying to cheat, eh? Now you die!",TXT_CHEATIDDQD,,,,"Versuchst zu betrügen, was? Nun stirbst du!","¿Tratando de hacer trampa, eh? ¡Ahora morirás!",,"Tu essaie de tricher, hein? Maintenant tu meurs!","Próbálsz csalni, mi? Most meghalsz!","CERCHI DI BARARE, EH? ALLORA MUORI!","CODIGO ERRADO, TENTE NOVAMENTE!","Жульничаешь, Ñ? Умрёшь!", +Cheater - you don't deserve weapons,TXT_CHEATIDKFA,,,,Betrüger - du verdienst keine Waffen,Trampos@[ao_esp] - No mereces tener armas,,Tricheur- Tu ne mérite pas d'armes!,Csaló - nem érdemelsz fegyvereket,BARO - NON MERITI ARMI!,SO NAO TIRO O BASTAO PORQUE NAO POSSO,Обманщик — Ñ‚Ñ‹ не заÑлуживаешь оружиÑ, +Ticker on,TXT_CHEATTICKERON,,,,Zähler AN,Contador activado,,Compteur allumé,Számláló BE,TICKER ATTIVATO,TICKER ATIVADO,, +Ticker off,TXT_CHEATTICKEROFF,,,,Zähler AUS,Contador desactivado,,Compteur éteint,Számláló KI,TICKER DISATTIVATO,TICKER DESATIVADO,, +You got it,TXT_CHEATARTIFACTS3,,,,Du hast es,Lo tienes,,C'est à vous!,Megkaptad,CONCESSO,ESTA FELIZ AGORA?,Ð’Ñ‹ получили Ñто, +"You got the Midas Touch, baby",TXT_MIDASTOUCH,,,,Dagobert Duck lässt grüßen!,"Tienes el toque de Midas, muchach@[ao_esp]",,,"Varázs ujjam mindenhol elér, kivéve ott","Hai il Tocco di Mida, baby!",,"У Ñ‚ÐµÐ±Ñ Ð¿Ñ€Ð¸ÐºÐ¾Ñновение МидаÑа, детка", +You got the stuff!,TXT_GOTSTUFF,,,,Du hast den Kram erhalten,¡Tienes el material!,¡Tienes muchas cosas!,Voilà ton équipement!,Megkaptad a cuccot!,"Hai ""la roba""!",Pegou tudo?,, +Freeze mode on,TXT_FREEZEON,,,,Gefriermodus AN,Modo suspendido activado,,Temps arrêté.,Fagyasztás BE,Modalità congelata ON,modo congelado ATIVADO,, +Freeze mode off,TXT_FREEZEOFF,,,,Gefriermodus AUS,Modo suspendido desactivado,,Le temps reprend son cours..,Fagyasztás KI,Modalità congelata OFF,modo congelado DeSaTiVaDo,, +You feel strange...,TXT_STRANGE,,,,Du fühlst dich merkwürdig...,Te sientes extrañ@[ao_esp]...,,Vous vous sentez mal à l'aise...,Furcsán érzed magad.,Ti senti strano...,Voce se sente estranho,Ð’Ñ‹ чувÑтвуете ÑÐµÐ±Ñ Ñтранно..., +You feel even stranger.,TXT_STRANGER,,,,Du fühlst dich noch merkwürdiger,Te sientes aún más extrañ@[ao_esp],,Vous vous sentez très mal à l'aise...,Ennél is furcsábban érzed magad.,Ti senti ancora più strano.,Voce se sente mais estranho.,Ð’Ñ‹ чувÑтвуете ÑÐµÐ±Ñ Ð¾Ñ‡ÐµÐ½ÑŒ Ñтранно., +You feel like yourself again.,TXT_NOTSTRANGE,,,,Du fühlst dich wieder wie du selbst,Te sientes como tu mism@[ao_esp] otra vez.,,Vous vous sentez mieux.,Úgy érzed magadnál vagy.,Ti senti tornare di nuovo in te stesso.,voce se sente melhor agora.,Ð’Ñ‹ Ñнова чувÑтвуете ÑÐµÐ±Ñ Ñобой., +Lead boots on,TXT_LEADBOOTSON,,,,Bleistiefel AN,Botas de plomo activadas,,Bottes en plomb ON,Ólom cípÅ‘k BE,Stivali di Piombo ON,BOTAS ATIVADAS,, +Lead boots off,TXT_LEADBOOTSOFF,,,,Bleistiefel AUS,Botas de plomo desactivadas,,Bottes en plomb OFF,Ólom cipÅ‘k KI,Stivali di Piombo OFF,BOTAS DESATIVADAS,, +You feel lighter,TXT_LIGHTER,,,,Du fühlst dich leichter,Te sientes más liger@[ao_esp],,Vous vous sentez très léger.,Könnyűnek érzed magad,Ti senti più leggero,Voce se sente leve,Ð’Ñ‹ чувÑтвуете лёгкоÑÑ‚ÑŒ., +Gravity weighs you down,TXT_GRAVITY,,,,Schwerkraft belastet dich,La gravedad te hace descender,,La gravité vous ramène au sol.,A gravitáció lenyom téged,La gravità ti riporta a terra,Gravidade volta a funcionar normalmente,Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ñнет Ð’Ð°Ñ Ð²Ð½Ð¸Ð·., +,,,Savegame,,,,,,,,,, +Empty slot,EMPTYSTRING,,,,nicht belegt,Ranura Vacía,,Emplacement Vide,Ãœres,slot libero,V A Z I O,ПуÑтой Ñлот,Празни Ñлот +,NEWSAVE,,,,,,,,<Új Játék Mentés>,,,<Ðовое Ñохранение>,<Ðова Ñачувана игра> +Game saved.,GGSAVED,,,,Spielstand gespeichert.,Partida guardada.,,Partie sauvegardée.,Játék elmentve.,gioco salvato,Jogo salvo.,Игра Ñохранена.,Игра Ñачувана. +Time,SAVECOMMENT_TIME,,,,Zeit,Tiempo,,Temps,IdÅ‘,Tempo,,ВремÑ, +,,,Chat,,,,,,,,,, +[Message unsent],HUSTR_MSGU,,,,[Nachricht nicht gesendet],[Mensaje sin enviar],,[Message Non Envoyé],[Ãœzenet nincs elküldve],[Messaggio non inviato],[Mensagem não enviada],[Сообщение не отправлено],[Порука непоÑлата] +You mumble to yourself,HUSTR_TALKTOSELF1,,,,Du murmelst zu dir selbst,Te murmuras a ti mism@[ao_esp],,Vous parlez tout seul.,Magadhoz motyogsz,Pensi fra te e te,Você pensa...,Ðеразборчивое бормотание, +Who's there?,HUSTR_TALKTOSELF2,,,,Wer ist da?,¿Quién está ahí?,,Qui est là?,Ki van ott?,Chi c'è lì?,Tem alguém aí?,Кто там?, +You scare yourself,HUSTR_TALKTOSELF3,,,,Du machst dir Angst,Te asustas a ti mism@[ao_esp],,Vous vous surprenez.,Megijeszted magad,Ti spaventi da solo,Não tem ninguém que possa responder,Что Ñто было?, +You start to rave,HUSTR_TALKTOSELF4,,,,Du beginnst zu toben,Empiezas a delirar,,Vous commencez à délirer!,Reszketni kezdesz,Inizi a delirare,Você está ficando louco...,Ð’Ñ‹ бредите., +You've lost it...,HUSTR_TALKTOSELF5,,,,Du verlierst den Verstand...,Perdiste la cabeza...,,Vous avez perdu les pédales...,Neked annyi...,Sei andato...,Eu juro que vi alguém...,ÐšÐ°ÐºÐ°Ñ Ð´Ð¾Ñада..., +[Message Sent],HUSTR_MESSAGESENT,,,,[Nachricht gesendet],[Mensaje enviado],,[Message Envoyé],[Ãœzenet Elküldve],[Messaggio Inviato],[Mensagem enviada],[Сообщение отправлено], +Say:,TXT_SAY,,,,Sage:,,,Parler:,,,,Чат:, +,,,Automap,,,,,,,,,, +Follow Mode ON,AMSTR_FOLLOWON,,,,Folgen-Modus AN,Modo de seguimiento ACTIVADO,,Suivi du Joueur ON,Követés Mód BE,Mappa scorribile disattivata,Siga-me ATIVADO,ПривÑзка к игроку ВКЛЮЧЕÐÐ,Праћење УКЉУЧЕÐО +Follow Mode OFF,AMSTR_FOLLOWOFF,,,,Folgen-Modus AUS,Modo de seguimiento DESACTIVADO,,Suivi du Joueur OFF,Követés Mód KI,Mappa scorribile attivata,Siga-me DESATIVADO,ПривÑзка к игроку ОТКЛЮЧЕÐÐ,Праћење ИСКЉУЧЕÐО +Grid ON,AMSTR_GRIDON,,,,Gitter AN,Cuadrícula ACTIVADA,Rejilla ACTIVADA,Quadrillage ON,Rács BE,Griglia Attivata,Area quad. ATIVADO,Сетка ВКЛЮЧЕÐÐ,Мрежа УКЉУЧЕÐÐ +Grid OFF,AMSTR_GRIDOFF,,,,Gitter AUS,Cuadrícula DESACTIVADA,Rejilla DESACTIVADA,Quadrillage OFF,Rács KI,Griglia Disattivata,Area quad. DESATIVADO,Сетка ОТКЛЮЧЕÐÐ,Мрежа ИСКЉУЧЕÐÐ +Texture Mode ON,AMSTR_TEXON,,,,Texturmodus AN,Modo de texturas ACTIVADO,,Mode Texturé ON,Textúra Mód BE,Modalità Texture ON,Modo Textura ATIVADO,ТекÑтурный режим ВКЛЮЧÐÐ,ТекÑтуре УКЉУЧЕÐЕ +Texture Mode OFF,AMSTR_TEXOFF,,,,Texturmodus AUS,Modo de texturas DESACTIVADO,,Mode Texturé OFF,Textúra Mód KI,Modalità Texture OFF,Modo Textura DESATIVADO,ТекÑтурный режим ОТКЛЮЧЕÐ,ТекÑтуре ИСКЉУЧЕÐЕ +Marked Spot,AMSTR_MARKEDSPOT,,,,Punkt markiert,Punto marcado,,Repère marqué.,Hely Megjelölve,Posizione segnata,Marcado!,Отметка,Означено меÑто +All Marks Cleared,AMSTR_MARKSCLEARED,,,,Alle Markierungen gelöscht,Todas las marcas eliminadas,,Repères éffacés.,Az Összes Megjelölések Kitörölve,Cancellati tutti i segni,Marcas retiradas.,Отметки очищены,Све ознаке избриÑане +,,,Multiplayer,,,,,,,,,, +Fraglimit hit.,TXT_FRAGLIMIT,,,,Fraglimit erreicht,Límite de bajas alcanzado.,,Limite de frags atteinte.,Minimum Frag elérve.,Fraglimit raggiunto.,Pontuação atingida.,ДоÑтигнут лимит фрагов., +Timelimit hit.,TXT_TIMELIMIT,,,,Zeitlimit erreicht,Límite de tiempo alcanzado.,,Limite de temps atteinte.,Minimum IdÅ‘ elérve.,Timelimit raggiunto.,Tempo atingido.,ДоÑтигнут лимит времени., +%o was looking good until %g killed %hself!,SPREEKILLSELF,,,,"%o sah gut aus, bis das Unglück geschah.",¡%o se veía bien hasta que %g se mató a si mism@[ao_esp]!,,%o était en pleine folie meurtrière avant que %g ne se bute!,%o jól nézett ki még mielÅ‘tt megölte magát!,%o stava andando bene finchè non si è ucciso da solo!,%o estava indo bem até se matar!,"%o хорошо Ñмотрел@[refl_rus], пока не покончил@[ao_rus] Ñ Ñобой!", +%o's killing spree was ended by %k,SPREEOVER,,,,%os Amoklauf wurde von %k beendet.,%k acabó con la racha de muerte de %o,,La folie meurtrière de %o à été terminée par %k!,%o ámokfutása meglett %k megállította.,La sequela di frag di %o è stata terminata da %k,A matança de %o foi interrompida por %k,%k прервал@[ao_rus] череду убийÑтв игрока %o, +%k is on a killing spree!,SPREE5,,,,%k läuft Amok!,¡%k está atacando de lo lindo!,,%k est en folie meurtrière!,%o egy Ãmokfutó!,%k è preda di un momento omicida!,%k está indo bem!,%k Ñовершил@[ao_rus] череду убийÑтв!, +%k is on a rampage!,SPREE10,,,,%k tobt sich aus!,¡%k está en medio de una aniquilación!,,%k est en plein massacre!,%o Tombol!,%k sta facendo un massacro!,%k continua indo bem!,%k в неиÑтовÑтве!, +%k is dominating!,SPREE15,,,,%k dominiert!,¡%k está dominando!,,%k domine!,%o Uralkodik!,%k sta dominando tutti!,%k está dominando!,%k доминирует!, +%k is unstoppable!,SPREE20,,,,%k kann nicht gestoppt werden!,¡%k está endureciendo la competición!,,%k est inarrétable!,%o Megállíthatatlan!,%k è inarrestabile!,%k não se cansa por nada!,%k неоÑтановим@[adj_1_rus]!, +%k is Godlike!,SPREE25,,,,%k ist wie Gott!,¡%k es una máquina de matar!,,%k est un dieu!,%o Istenszabású!,%k è un dio!,%k parece profissional!,%k богоподоб@[adj_2_rus]!, +Double kill!,MULTI2,,,,Doppel-Kill!,¡Dos menos!,,Double meurtre!,Dupla ölés!,Frag doppio!,COMBO 2X!,Двойное убийÑтво!, +Multi kill!,MULTI3,,,,Multi-Kill!,¡Multidestrucción!,,Multi meurtre!,Multi ölés!,Frag multiplo!,COMBO 3X!,МаÑÑовое убийÑтво!, +Ultra kill!,MULTI4,,,,Ultra-Kill!,¡¡HIPERDESTRUCCIÓN!!,,Ultra meurtre!,Ultra ölés!,Frag ultra!,COMBO 4X!,Ультра убийÑтво!, +Monster kill!,MULTI5,,,,Monster-Kill!,¡¡¡S.U.P.E.R.D.E.S.T.R.U.C.C.I.Ó.N!!!,,Monstre meurtre!,Szörnyű gyilkolás!,Frag DA PAURA!,Santa Mãe do Céu!!!,Чудовищное убийÑтво!, +,,,Scoreboard,,,,,,,,,, +Items,SCORE_ITEMS,,,,Gegenstände,Objetos,,Objets,Tárgyak,Oggetti,,Предметы, +Bonus,SCORE_BONUS,,,,Bonus,Bonificaciones,,,Bónusz,Bonus,,БонуÑ, +Color,SCORE_COLOR,,,Colour,Farbe,,,Couleur,Szín,Colore ,,Цвет, +Secret,SCORE_SECRET,,,,Geheimnis,Secreto,,,Rejtély,Segreto,,Тайники, +Name,SCORE_NAME,,,,Name,Nombre,,Nom,Név,Nome,,ИмÑ, +Delay (ms),SCORE_DELAY,,,,Verzögerung (ms),Retraso (ms),,Délai (ms),Késleltetés (ms),Ritardo (ms) ,,Задержка (мÑ), +Kills,SCORE_KILLS,,,,,Asesinatos,,Victimes,Ölések,Uccisioni,,УбийÑтва, +Frags,SCORE_FRAGS,,,,,Bajas,,,Fragek,Frags,,Фраги, +Deaths,SCORE_DEATHS,,,,Tode,Muertes,,Morts,Halálok,Morti,,Смерти, +Missed,SCORE_MISSED,,,,Verfehlt,Pérdidas,,Rates,Kihagyva,Mancati ,,Пропущено, +Total,SCORE_TOTAL,,,,Gesamt,,,Total,Összesen,Totale,,Ð’Ñего, +Level Time,SCORE_LVLTIME,,,,Levelzeit,Tiempo de nivel,,Temps niveau,Szint IdÅ‘,Tempo Livello ,,Ð’Ñ€ÐµÐ¼Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ, +,,,Level Summary,,,,,,,,,, +Kills,TXT_IMKILLS,,,,,Muertes,,Morts,Ölések,Uccisioni,,Враги, +Items,TXT_IMITEMS,,,,Gegenstände,Objetos,,Objets,Tárgyak,Oggetti,,Тайники, +Secrets,TXT_IMSECRETS,,,,Geheimnisse,Secretos,,,Rejtélyek,Segreti,,Предметы, +Time,TXT_IMTIME,,,,Zeit,Tiempo,,Temps,IdÅ‘,Tempo,,ВремÑ, +Par,TXT_IMPAR,,,,,,,,,Media,,Рекорд, +Finished,WI_FINISHED,,,,Abgeschlossen,Completado,,terminé,,,Finalizado,Уровень завершён, +Entering,WI_ENTERING,,,,Betrete,Entrando a:,,Niveau Suivant,,,Entrando,ЗагружаетÑÑ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ, +Now entering:,WI_ENTERING,heretic hexen,,,Betrete:,Ahora entrando a:,,Vous entrez:,,,Entrando:,ЗагружаетÑÑ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ:, +,,,HUD,,,,,,,,,, +Monsters:,AM_MONSTERS,,,,Monster:,Monstruos:,,Monstres:,,,,МонÑтры:, +Secrets:,AM_SECRETS,,,,Geheimnisse:,Secretos:,,,,,,Тайники:, +Items:,AM_ITEMS,,,,Gegenstände:,Objetos:,,Objets:,,,,Предметы:, +,,,Doom,,,,,,,,,, +,,,Pickup,,,,,,,,,, +Picked up the armor.,GOTARMOR,,,Picked up the armour.,Panzer genommen.,Recogiste la armadura.,,Armure récupérée.,Felvettél egy páncélt.,Hai trovato un'armatura.,Colete equipado.,Получена бронÑ.,Покупили Ñте панцир. +Picked up the MegaArmor!,GOTMEGA,,,Picked up the MegaArmour!,MegaPanzer genommen!,¡Recogiste la Mega Armadura!,,Méga-Armure récupérée!,Felvettél egy MegaPáncélt!,Hai trovato una MegaArmatura!,Armadura equipada.,Получена мегабронÑ!,Покупили Ñте МегаПанцир! +Picked up a health bonus.,GOTHTHBONUS,,,,Gesundheitsbonus genommen.,Recogiste salud extra.,,Bonus de Santé récupéré.,Felvettél egy élet bónuszt.,Raccolto un bonus d'energia.,Pegou bônus de vida,Получен Ð±Ð¾Ð½ÑƒÑ Ðº здоровью.,Покупили Ñте Ð±Ð¾Ð½ÑƒÑ Ð·Ð´Ñ€Ð°Ð²Ñ™Ð°. +Picked up an armor bonus.,GOTARMBONUS,,,Picked up an armour bonus.,Panzerbonus genommen.,Recogiste blindaje extra.,,Bonus d'Armure récupéré.,Felvettél egy páncél bónuszt.,Raccolto un bonus d'armatura.,Pegou bônus de proteção (colete),Получен Ð±Ð¾Ð½ÑƒÑ Ðº броне.,Покупили Ñте Ð±Ð¾Ð½ÑƒÑ Ð¿Ð°Ð½Ñ†Ð¸Ñ€Ð°. +Picked up a stimpack.,GOTSTIM,,,,Stimpack genommen.,Recogiste un estimulante.,,Stimpack récupéré.,Felvettél egy stimpacket.,Raccolto uno stimpack.,"Pegou um kit de primeiros socorros +pequeno.",Получен ÑтимулÑтор.,Покупили Ñте Ñтимпак. +Picked up a medikit that you REALLY need!,GOTMEDINEED,,,,"Medikit genommen, das du WIRKLICH brauchst!",¡Recogiste un botiquín que REALMENTE necesitabas!,,"Médikit récupéré, et vous en aviez vraiment besoin!",Felvettél egy életcsomagot amire NAGYON szükséged volt!,Hai raccolto un medikit di cui avevi PROPRIO bisogno!,"Pegou um kit de primeiros socorros +na HORA CERTA!!",Получена крайне Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð°Ð¿Ñ‚ÐµÑ‡ÐºÐ°!,Покупили Ñте медикит који вам је СТВÐРÐО потребан! +Picked up a medikit.,GOTMEDIKIT,,,,Medikit genommen.,Recogiste un botiquín.,,Médikit récupéré.,Felvettél egy életcsomagot.,Raccolto un medikit.,"Pegou um kit de primeiros socorros +grande.",Получена аптечка.,Покупили Ñте медикит. +Supercharge!,GOTSUPER,,,,Super-Ladung!,¡Supercarga!,,,Szupertöltés!,Sfera dell'Anima!,Supercarga!,СверхзарÑд!,Супернабој! +Picked up a blue keycard.,GOTBLUECARD,,,,Blaue Schlüsselkarte genommen.,Recogiste una tarjeta de acceso azul.,,Carte d'accès BLEUE récupérée.,Felvettél egy kék kulcskártyát.,Raccolta una card blu.,Achou a credencial azul.,Получена ÑинÑÑ ÐºÐ»ÑŽÑ‡-карта.,Покупили Ñте плаву кључну карту. +Picked up a yellow keycard.,GOTYELWCARD,,,,Gelbe Schlüsselkarte genommen.,Recogiste una tarjeta de acceso amarilla.,,Carte d'accès JAUNE récupérée.,Felvettél egy sárga kulcskártyát.,Raccolta una card gialla.,Achou a credencial amarela.,Получена Ð¶Ñ‘Ð»Ñ‚Ð°Ñ ÐºÐ»ÑŽÑ‡-карта,Покупили Ñте жуту кључну карту. +Picked up a red keycard.,GOTREDCARD,,,,Rote Schlüsselkarte genommen.,Recogiste una tarjeta de acceso roja.,,Carte d'accès ROUGE récupérée.,Felvettél egy piros kulcskártyát.,Raccolta una card rossa.,Achou a credencial vermelha.,Получена краÑÐ½Ð°Ñ ÐºÐ»ÑŽÑ‡-карта.,Покупили Ñте црвену кључну карту. +Picked up a blue skull key.,GOTBLUESKUL,,,,Blauen Schädel-Schlüssel genommen.,Recogiste una llave de calavera azul.,Recogiste una llave de cráneo azul.,Clef Crâne BLEUE récupérée.,Felvettél egy kék koponya kulcsot.,Raccolta una chiave-teschio blu.,Achou o crânio azul.,Получен Ñиний ключ-череп.,Покупили Ñте плави кључ лобање. +Picked up a yellow skull key.,GOTYELWSKUL,,,,Geben Schädel-Schlüssel genommen.,Recogiste una llave de calavera amarilla,Recogiste una llave de cráneo amarilla,Clef Crâne JAUNE récupérée.,Felvettél egy sárga koponya kulcsot.,Raccolta una chiave-teschio gialla.,Achou o crânio amarelo.,Получен жёлтый ключ-череп.,Покупили Ñте жути кључ лобање. +Picked up a red skull key.,GOTREDSKUL,,,,Roten Schädel-Schlüssel genommen.,Recogiste una llave de calavera roja.,Recogiste una llave de cráneo roja.,Clef Crâne ROUGE récupérée.,Felvettél egy piros koponya kulcsot.,Raccolta una chiave-teschio rossa.,Achou o crânio vermelho.,Получен краÑный ключ-череп.,Покупили Ñте црвени кључ лобање. +Invulnerability!,GOTINVUL,,,,Unverwundbarkeit!,¡Invulnerabilidad!,,Invulnérabilité!,Sérthetetlenség!,Invulnerabilità!,Invencibilidade (30 sec)!,ÐеуÑзвимоÑÑ‚ÑŒ!,ÐерањивноÑÑ‚! +Berserk!,GOTBERSERK,,,,,¡Berserker!,,,,Berserk!,Pílulas de força (30 sec)!,БерÑерк!,БерÑерк! +Partial Invisibility,GOTINVIS,,,,Teilweise Unsichtbarkeit,Invisibilidad parcial,,Invisibilité Partielle,Részleges Láthatatlanság,Invisibilità parziale,Invisibilidade (30 sec),ЧаÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚ÑŒ.,Делимична невидљивоÑÑ‚ +Radiation Shielding Suit,GOTSUIT,,,,Strahlenschutzanzug.,Traje anti-radiación,,Combinaison Hazmat,Sugárzás Elleni Öltöny,Tuta anti-radiazioni,Roupa anti-radiação (1 min),КоÑтюм радиационной защиты.,Одело против радијације +Computer Area Map,GOTMAP,,,,Computerkarte.,Mapa computarizado de área,,Carte Informatique,Térkép,Mappa Completata.,Mapa do nível,ÐšÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° уровнÑ.,КомпјутерÑка мапа нивоа +Light Amplification Visor,GOTVISOR,,,,Lichtverstärkungsgerät,Visor de amplificación de luz,,Lunettes de Vision Nocturne,Fény FelerÅ‘sítÅ‘ Sisak,Amplificatore di luce,Óculos de visão noturna (1 min),Очки ночного видениÑ.,Ðоћни визир +MegaSphere!,GOTMSPHERE,,,,MegaSphäre!,¡Megaesfera!,,Mégasphère!,MegaGömb!,MegaSfera!,Megaesfera!,МегаÑфера!,МегаÑфера! +Picked up a clip.,GOTCLIP,,,,Magazin genommen.,Recogiste un cargador.,,Chargeur récupéré.,Felvettél egy töltényt.,Raccolto un caricatore.,Pegou um clipe.,Получен магазин.,Покупили Ñте оквир. +Picked up a box of bullets.,GOTCLIPBOX,,,,Kiste mit Pistolenkugeln genommen.,Recogiste una caja de balas.,,Boîte de balles récupérée.,Felvettél egy doboznyi töltényt.,Raccolta una scatola di proiettili.,Caixa de munição equipada.,Получена коробка патронов.,Покупили Ñте кутију метака. +Picked up a rocket.,GOTROCKET,,,,Rakete genommen,Recogiste un cohete.,,Roquette récupérée.,Felvettél egy rakétát.,Raccolto un razzo.,Foguete equipado.,Получена ракета.,Покупили Ñте ракету. +Picked up a box of rockets.,GOTROCKBOX,,,,Kiste mit Raketen genommen.,Recogiste una caja de cohetes.,,Caisse de roquettes récupérée.,Felvettél egy doboznyi rakétát.,Raccolta una cassa di razzi.,Caixa de foguetes equipada.,Получен Ñщик ракет.,Покупили Ñте кутију ракета. +Picked up an energy cell.,GOTCELL,,,,Energiezelle genommen.,Recogiste una célula de energía.,,Cellule énergétique récupérée.,Felvettél egy energia cellát.,Raccolta una batteria.,Pack de energia(pequeno) equipada.,Получена ÑнергобатареÑ.,Покупили Ñте енергетÑку ћелију. +Picked up an energy cell pack.,GOTCELLBOX,,,,Energiezellenpackung genommen.,Recogiste un pack de células de energía.,,Pack de cellules énergétiques récupéré.,Felvettél egy doboznyi energia cellát.,Raccolta una confezione di batterie.,Pack de energia(grande) equipada.,Получен ÑнергоаккумулÑтор.,Покупили Ñте паковање енергетÑких ћелија. +Picked up 4 shotgun shells.,GOTSHELLS,,,,4 Schrotflintenpatronen genommen,Recogiste 4 cartuchos de escopeta.,,4 cartouches récupérées.,Felvettél 4 sörétes töltényt.,Raccolte 4 cartucce per fucile.,Cartuchos de espingarda coletada.,Получено 4 патрона Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°.,Покупили Ñте 4 патроне од Ñачмаре. +Picked up a box of shotgun shells.,GOTSHELLBOX,,,,Kiste mit Schrotflintenpatronen genommen.,Recogiste una caja de cartuchos de escopeta.,,Boîte de cartouches récupérée.,Felvettél egy doboznyi sörétes töltényt.,Raccolta una scatola di cartucce per fucile.,Caixa de cartuchos de espingarda coletada.,Получена коробка патронов Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°.,Покупили Ñте кутију патрона од Ñачмаре. +Picked up a backpack full of ammo!,GOTBACKPACK,,,,Rucksack mit Munition genommen.,¡Recogiste una mochila llena de munición!,,Sac à dos plein de munitions récupéré!,Felvettél egy hátizsákot tele tölténnyel!,Raccolto uno zaino zeppo di munizioni!,Mochila CHEIA de munição coletada!,"Получен рюкзак, полный патронов!",Покупили Ñте ранац Ñ Ð¿Ð°Ñ‚Ñ€Ð¾Ð½Ð°Ð¼Ð°! +"You got the BFG9000! Oh, yes.",GOTBFG9000,,,,"Das BFG9000! Oh, ja!","¡Obtuviste la BFG9000! Oh, sí.",,"UN BFG9000! OH, OUI!",Felvetted a BFG9000-et! Ezaz!,"Hai trovato il BFG9000! Eh, sì!",BFG9000 equipado. Uau!,"Получено BFG9000! О, да!","Покупили Ñте БФГ9000! о, да." +You got the chaingun!,GOTCHAINGUN,,,,Maschinengewehr genommen.,¡Obtuviste la ametralladora!,,Une MITRAILLEUSE!,Felvetted a golyószórót!,Hai trovato un mitragliatore!,Metralhadora equipada!,Получен пулемёт!,Покупили Ñте митраљез! +A chainsaw! Find some meat!,GOTCHAINSAW,,,,Eine Kettensäge. Such mir etwas Fleisch!,¡Una motosierra! ¡Encuentra algo de carne!,,Une TRONCONNEUSE! Viande frâiche!,Egy láncfűrész! Keress néhány húst!,Una motosega! Trova un pò di carne!,"A motoserra, enfim!",Бензопила! Ðайди немного мÑÑа!,ТеÑтера! Ðађи меÑо! +You got the rocket launcher!,GOTLAUNCHER,,,,Raketenwerfer genommen.,¡Obtuviste el lanzacohetes!,,Un LANCE-ROQUETTES!,Felvetted a rakétavetÅ‘t!,Hai trovato un lanciarazzi!,Lança-foguetes equipada!,Получена ракетница!,Покупили Ñте ракетни бацач! +You got the plasma gun!,GOTPLASMA,,,,Plasma-Gewehr genommen.,¡Obtuviste el fusil de plasma!,,Un FUSIL A PLASMA!,Felvetted a plazma fegyvert!,Hai trovato un fucile al plasma!,Metralhadora de plasma equipada!,Получен плазмомет!,Покупили Ñте плазма пиштољ! +You got the shotgun!,GOTSHOTGUN,,,,Schrotflinte genommen.,¡Obtuviste la escopeta!,,Un FUSIL A POMPE!,Felvetted a sörétes puskát!,Hai trovato un fucile!,Espingarda equipada!,Получен дробовик!,Покупили Ñте Ñачмару! +You got the super shotgun!,GOTSHOTGUN2,,,,Super-Schrotflinte genommen.,¡Obtuviste la súper escopeta!,,Un SUPER FUSIL DE CHASSE!,Felvetted a Szuper sörétes puskát!,Hai trovato una doppietta!,Espingarda de cano duplo equipada!,Получен Ñупер-дробовик!,Покупили Ñте Ñупер Ñачмару! +Picked up a pistol.,PICKUP_PISTOL_DROPPED,,,,Pistole genommen.,Recogiste una pistola.,,Un PISTOLET.,Felvettél egy pisztolyt.,Raccolta una pistola.,Pistola equipada.,Получен пиÑтолет.,Покупили Ñте пиштољ. +You pick up a demonic dagger.,BETA_BONUS1,,,,Dämonischen Dolch genommen.,Recogiste una daga demoníaca.,,Dague diabolique récupérée.,Felvettél egy démoni tÅ‘rt.,Hai raccolto una data demoniaca. ,Voce pegou uma adaga demoniaca.,Ð’Ñ‹ подобрали демоничеÑкий кинжал.,Купите демонÑки бодеж. +You pick up a skullchest.,BETA_BONUS2,,,,Schädelkiste genommen.,Recogiste un cofre de calaveras.,Recogiste un cofre de cráneos.,Coffre-crâne récupéré.,Felvettél egy skullchest-et.,Hai raccolto un cofanetto del teschio. ,Voce pegou um skullchest.,Ð’Ñ‹ подобрали Ñундук Ñ Ñ‡ÐµÑ€ÐµÐ¿Ð¾Ð¼.,Купите ковчег Ñ Ð»Ð¾Ð±Ð°ÑšÐ¾Ð¼. +You pick up an evil sceptre.,BETA_BONUS3,,,,Teuflisches Zepter genommen.,Recogiste un cetro del mal.,,Sceptre maléfique récupéré.,Felvettél egy gonosz jogart.,Hai raccolto uno scettro del male. ,Voce pegou um cetro maligno.,Ð’Ñ‹ подобрали Ñкипетр зла.,Купите зли Ñкиптар. +You pick up an unholy bible.,BETA_BONUS4,,,,Unheilige Bibel genommen,Recogiste una biblia profana.,,Bible profane récupérée.,Felvettél egy istentelen bibliát.,Hai raccolto una bibbia profana. ,Voce pegou uma biblia nao sagrada.,Ð’Ñ‹ подобрали порочную Библию.,Купите неÑвету библију. +,,,Locks,,,,,,,,,, +You need a blue key to activate this object,PD_BLUEO,,,,"Du brauchst einen blauen Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave azul para activar este objeto,,Il vous faut une clé bleue pour activer cet objet.,Egy kék kulcs szükséges az objektum aktiválásához.,Ti serve una chiave blu per attivare questo oggetto,Precisa de credencial azul para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний ключ,Треба вам плави кључ да би активирали овај предмет +You need a red key to activate this object,PD_REDO,,,,"Du brauchst einen roten Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave roja para activar este objeto,,Il vous faut une clé rouge pour activer cet objet.,"Piros kulcs kell, hogy aktiválhasd ezt az objektumot.",Ti serve una chiave rossa per attivare questo oggetto,Precisa de credencial vermelha para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный ключ,Треба вам црвени кључ да би активирали овај предмет +You need a yellow key to activate this object,PD_YELLOWO,,,,"Du brauchst einen gelben Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una llave amarilla para activar este objeto,,Il vous faut une clé jaune pour activer cet objet.,Egy sárga kulccsal aktiválható ez az objektum,Ti serve una chiave gialla per attivare questo oggetto,Precisa de credencial amarela para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен жёлтый ключ,Треба вам жути кључ да би активирали овај предмет +You need a blue key to open this door,PD_BLUEK,,,,"Du brauchst einen blauen Schlüssel, um diese Tür zu öffnen.",Necesitas una llave azul para abrir esta puerta,,Il vous faut une clé bleue pour ouvrir cette porte.,Az ajtót a kék kulcs nyitja.,Ti serve una chiave blu per aprire questa porta,Precisa de credencial azul para ativar esta porta,"Ðужен Ñиний ключ, чтобы открыть",Треба вам плави кључ да би отворили ова врата +You need a red key to open this door,PD_REDK,,,,"Du brauchst einen roten Schlüssel, um diese Tür zu öffnen.",Necesitas una llave roja para abrir esta puerta,,Il vous faut une clé rouge pour ouvrir cette porte.,"Piros kulcs szükséges, hogy az ajtót kinyithasd.",Ti serve una chiave rossa per aprire questa porta,Precisa de credencial vermelha para ativar esta porta,"Ðужен краÑный ключ, чтобы открыть",Треба вам црвени кључ да би отворили ова врата +You need a yellow key to open this door,PD_YELLOWK,,,,"Du brauchst einen gelben Schlüssel, um diese Tür zu öffnen.",Necesitas una llave amarilla para abrir esta puerta,,Il vous faut une clé jaune pour ouvrir cette porte.,Kell egy sárga kulcs hogy kinyisd ezt az ajtót.,Ti serve una chiave gialla per aprire questa porta,Precisa de credencial amarela para ativar esta porta,"Ðужен жёлтый ключ, чтобы открыть",Треба вам жути кључ да би отворили ова врата +You need a blue card to activate this object,PD_BLUECO,,,,"Du brauchst eine blaue Schlüsselkarte, um dieses Objekt zu aktivieren.",Necesitas una tarjeta azul para activar este objeto,,Il vous faut une carte bleue pour activer cet objet.,"Egy kék kártya kell, hogy ezt az objektumot aktiválhasd",ti serve una tessera blu per attivare questo oggetto ,Precisa de credencial azul para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний ключ,Треба вам плава карта да би активирали овај предмет +You need a red card to activate this object,PD_REDCO,,,,"Du brauchst eine rote Schlüsselkarte, um dieses Objekt zu aktivieren.",Necesitas una tarjeta roja para activar este objeto,,Il vous faut une carte rouge pour activer cet objet.,Piros kártyával aktiválható ez az objektum,ti serve una tessera rossa per attivare questo oggetto ,Precisa de credencial vermelha para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный ключ,Треба вам црвена карта да би активирали овај предмет +You need a yellow card to activate this object,PD_YELLOWCO,,,,"Du brauchst eine gelbe Schlüsselkarte, um dieses Objekt zu aktivieren.",Necesitas una tarjeta amarilla para activar este objeto,,Il vous faut une carte jaune pour activer cet objet.,Kell egy sárga kártya hogy aktiváld ezt az objektumot.,ti serve una tessera gialla per attivare questo oggetto ,Precisa de credencial amarela para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен жёлтый ключ,Треба вам жута карта да би активирали овај предмет +You need a blue skull to activate this object,PD_BLUESO,,,,"Du brauchst einen blauen Schädel-Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una calavera azul para activar este objeto,Necesitas un cráneo azul para activar este objeto,Il vous faut un crâne bleu pour activer cet objet.,Kell egy kék koponya hogy aktiváld ezt az objektumot.,ti serve una chiave-teschio blu per attivare questo oggetto ,Precisa de crânio azul para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний череп.,Треба вам плава лобања да би активирали овај предмет +You need a red skull to activate this object,PD_REDSO,,,,"Du brauchst einen roten Schädel-Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una calavera roja para activar este objeto,Necesitas un cráneo rojo para activar este objeto,Il vous faut un crâne rouge pour activer cet objet.,Kell egy piros koponya hogy aktiváld ezt az objektumot.,ti serve una chiave-teschio rossa per attivare questo oggetto ,Precisa de crânio vermelho para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный череп.,Треба вам црвена лобања да би активирали овај предмет +You need a yellow skull to activate this object,PD_YELLOWSO,,,,"Du brauchst einen gelben Schädel-Schlüssel, um dieses Objekt zu aktivieren.",Necesitas una calavera amarilla para activar este objeto,Necesitas un cráneo amarillo para activar este objeto,Il vous faut un crâne jaune pour activer cet objet.,Kell egy sárga koponya hogy aktiváld ezt az objektumot.,ti serve una chiave-teschio gialla per attivare questo oggetto ,Precisa de crânio amarelo para ativar este objeto,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен жёлтый череп.,Треба вам жута лобања да би активирали овај предмет +You need a blue card to open this door,PD_BLUEC,,,,"Du brauchst eine blaue Schlüsselkarte, um diese Tür zu öffnen",Necesitas una tarjeta azul para abrir esta puerta,,Il vous faut une carte bleue pour ouvrir cette porte.,"Egy kék kártya kell, hogy kinyisd ezt az ajtót.",Ti serve una tessera blu per aprire questa porta,Precisa de uma credencial azul para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна ÑинÑÑ ÐºÐ°Ñ€Ñ‚Ð°,Треба вам плава карта да би отворили ова врата +You need a red card to open this door,PD_REDC,,,,"Du brauchst eine rote Schlüsselkarte, um diese Tür zu öffnen",Necesitas una tarjeta roja para abrir esta puerta,,Il vous faut une carte rouge pour ouvrir cette porte.,Piros kártya nyitja ezt az ajtót.,Ti serve una tessera rossa per aprire questa porta,Precisa de uma credencial vermelha para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна краÑÐ½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°,Треба вам црвена карта да би отворили ова врата +You need a yellow card to open this door,PD_YELLOWC,,,,"Du brauchst eine gelbe Schlüsselkarte, um diese Tür zu öffnen",Necesitas una tarjeta amarilla para abrir esta puerta,,Il vous faut une carte jaune pour ouvrir cette porte.,Ez az ajtó a sárga kártyával nyílik.,Ti serve una tessera gialla per aprire questa porta,Precisa de uma credencial amarela para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна Ð¶ÐµÐ»Ñ‚Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°,Треба вам жута карта да би отворили ова врата +You need a blue skull to open this door,PD_BLUES,,,,"Du brauchst einen blauen Schädel-Schlüssel, um diese Tür zu öffnen",Necesitas una calavera azul para abrir esta puerta,Necesitas un cráneo azul para abrir esta puerta,Il vous faut un crâne bleu pour ouvrir cette porte.,Kék koponya nyitja ezt az ajtót.,Ti serve una chiave-teschio blu per aprire questa porta,Precisa de um crânio azul para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний череп,Треба вам плава лобања да би отворили ова врата +You need a red skull to open this door,PD_REDS,,,,"Du brauchst einen roten Schädel-Schlüssel, um diese Tür zu öffnen",Necesitas una calavera roja para abrir esta puerta,Necesitas un cráneo rojo para abrir esta puerta,Il vous faut un crâne rouge pour ouvrir cette porte.,"Egy piros koponya szükséges, hogy kinyisd ezt az ajtót.",Ti serve una chiave-teschio rossa per aprire questa porta,Precisa de um crânio vermelho para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный череп,Треба вам црвена лобања да би отворили ова врата +You need a yellow skull to open this door,PD_YELLOWS,,,,"Du brauchst einen gelben Schädel-Schlüssel, um diese Tür zu öffnen",Necesitas una calavera amarillo para abrir esta puerta,Necesitas un cráneo amarillo para abrir esta puerta,Il vous faut un crâne jaune pour ouvrir cette porte.,Ezt az ajtót egy sárga koponya nyitja.,Ti serve una chiave-teschio gialla per aprire questa porta,Precisa de um crânio amarelo para abrir a porta,Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен жёлтый череп,Треба вам жута лобања да би отворили ова врата +,,,Cast call names,,,,,,,,,, +Zombieman,CC_ZOMBIE,,,,Zombie,Zombi,,Zombie,Zombifickó,Zombie Marine,,Зомби, +Shotgun Guy,CC_SHOTGUN,,,,Schütze,Tipo de Escopeta,Tipo de la escopeta,Type au Fusil,Söréteses alak,Zombie Sergente,,Зомби-Ñержант, +Heavy Weapon Dude,CC_HEAVY,,,,MG-Schütze,Tipo de Armas Pesadas,Ametrallador,Type au Gros Flingue,Nehéztüzérség Haver,Zombie Commando,,Пулемётчик, +Imp,CC_IMP,,,,Kobold,Diablillo,,Diablotin,,Imp,,Имп, +Demon,CC_DEMON,,,,Dämon,Demonio,,Démon,Démon,Demone,,Демон, +Lost Soul,CC_LOST,,,,Verlorene Seele,Alma perdida,,Ame Perdue,Elveszett Lélek,Anima Perduta,,ПотерÑÐ½Ð½Ð°Ñ Ð´ÑƒÑˆÐ°, +Cacodemon,CC_CACO,,,,Cacodämon,Cacodemonio,,Cacodémon,Cacodémon,Cacodemone,,Какодемон, +Hell Knight,CC_HELL,,,,Höllenritter,Caballero infernal,,Chevalier Infernal,Pokol Lovag,Cavaliere Infernale,,Рыцарь Ðда, +Baron of Hell,CC_BARON,,,,Höllenbaron,Barón del infierno,,Baron des Enfers,Pokol Bárója,Barone Infernale,,Барон Ðда, +Arachnotron,CC_ARACH,,,,,Aracnotrón,,Arachnotron,,Arachnotron,,Ðрахнотрон, +Pain Elemental,CC_PAIN,,,,Elementarschmerz,Elementar del dolor,,Elémentaire de Douleur,Fájdalom Eleme,Elementale del Dolore,,Элементаль боли, +Revenant,CC_REVEN,,,,Wiederauferstandener,Renacido,,Revenant,,Revenant,,Ревенант, +Mancubus,CC_MANCU,,,,,,,Mancube,,Mancubo,,МанкубуÑ, +Arch-Vile,CC_ARCH,,,,Scheusal,Archi-Vil,,Arche-vile,Arch-Ördög,Arch-vile,,Ðрчвайл, +The Spider Mastermind,CC_SPIDER,,,,Der Spinnenmeister,Mente Maestra Arácnida,,L'Araignée Commandante,A Pók Agytröszt,Il Cervello ragno,,Паук-предводитель, +The Cyberdemon,CC_CYBER,,,,Der Cyberdämon,El Ciberdemonio,,Le Cyberdémon,A Kiborgdémon,Il Cyberdemonio,,Кибердемон, +Our Hero,CC_HERO,,,,Unser Held,Nuestro héroe,,Notre Héros,A HÅ‘sünk,Il Nostro eroe,,Ðаш герой, +,,,Actor tag names,,,,,,,,,, +Zombieman,FN_ZOMBIE,,,,Zombie,Zombi,,Zombie,Zombifickó,Zombie Marine,,Зомби, +Sergeant,FN_SHOTGUN,,,,Schütze,Sargento,,Type au Fusil,Sörétes Alak,Zombie Sergente,,Сержант, +Chaingunner,FN_HEAVY,,,,MG-Schütze,Ametrallador,,Type au Gros Flingue,Golyószórós Pityu,Zombie Commando,,Пулемётчик, +Imp,FN_IMP,,,,Kobold,Diablillo,,Diablotin,,Imp,,Имп, +Demon,FN_DEMON,,,,Dämon,Demonio,,Démon,Démon,Demone,,Демон, +Spectre,FN_SPECTRE,,,,Schemen,Espectro,,,Kísértet,Spettro,,Спектр, +Lost Soul,FN_LOST,,,,Verlorene Seele,Alma perdida,,Ame Perdue,Elveszett Lélek,Anima Perduta,,ПотерÑÐ½Ð½Ð°Ñ Ð´ÑƒÑˆÐ°, +Cacodemon,FN_CACO,,,,Cacodämon,Cacodemonio,,Cacodémon,Cacodémon,Cacodemone,,Какодемон, +Hell Knight,FN_HELL,,,,Höllenritter,Caballero infernal,,Chevalier Infernal,Pokol Lovag,Cavaliere Infernale,,Рыцарь Ðда, +Baron of Hell,FN_BARON,,,,Höllenbaron,Barón del infierno,,Baron des Enfers,Pokol Bárója,Barone Infernale,,Барон Ðда, +Arachnotron,FN_ARACH,,,,,Aracnotrón,,,Arachnotron,Arachnotron,,Ðрахнотрон, +Pain Elemental,FN_PAIN,,,,Elementarschmerz,Elementar del dolor,,Elémentaire de Douleur,Fájdalom Eleme,Dolore Elementale,,Элементаль боли, +Revenant,FN_REVEN,,,,Wiederauferstandener,Renacido,,,,Revenant,,Ревенант, +Mancubus,FN_MANCU,,,,,,,Mancube,,Mancubo,,МанкубуÑ, +Arch-vile,FN_ARCH,,,,Scheusal,Archi-Vil,,Arche-vile,Arch-Ördög,Arch-vile,,Ðрчвайл, +Spider Mastermind,FN_SPIDER,,,,Spinnenmeister,Mente Maestra Arácnida,,L'Araignée Commandante,Pók Agytröszt,Il Cervello ragno,,Паук-предводитель, +Cyberdemon,FN_CYBER,,,,Cyberdämon,Ciberdemonio,,Le Cyberdémon,Kiborgdémon,Il Cyberdemonio,,Кибердемон, +Nazi,FN_WOLFSS,,,,,,,,Náci,Nazista,,ÐациÑÑ‚, +Dog,FN_DOG,,,,Hund,Perro,,Chien,Kutya,Cane,,Собака, +Brass Knuckles,TAG_FIST,,,,Schlagringe,Nudillos de bronce,,Poing Américain,Öklök,Tirapugni ,Soco Ingles,Кулаки, +Chainsaw,TAG_CHAINSAW,,,,Kettensäge,Motosierra,,Tronçonneuse,Láncfűrész,Motosega,Motoserra,Бензопила, +Pistol,TAG_PISTOL,,,,Pistole,Pistola,,Pistolet,Pisztoly,Pistola,Pistola,ПиÑтолет, +Shotgun,TAG_SHOTGUN,,,,Schrotflinte,Escopeta,,Fusil à pompe,Sörétes Puska,Fucile,Espingarda,Дробовик, +Super Shotgun,TAG_SUPERSHOTGUN,,,,Super-Schrotflinte,Súper Escopeta,,Super Fusil de chasse,Szuper Sörétes Puska,Fucile a doppia canna ,Espingarda de cano duplo,Супер-дробовик, +Chaingun,TAG_CHAINGUN,,,,Maschinengewehr,Ametralladora,,Mitrailleuse,Golyószóró,Mitragliatore a canne rotanti ,Metralhadora,Пулемёт, +Rocket Launcher,TAG_ROCKETLAUNCHER,,,,Raketenwerfer,Lanzacohetes,,Lance-Roquettes,RakétavetÅ‘,Lanciamissili,Lança-foguetes,Ракетница, +Plasma Rifle,TAG_PLASMARIFLE,,,,Plasmagewehr,Fusil de Plasma,,Fusil à Plasma,Plazma Puska,Fucile al Plasma ,Rifle de Plasma,ÐŸÐ»Ð°Ð·Ð¼ÐµÐ½Ð½Ð°Ñ Ð¿ÑƒÑˆÐºÐ°, +BFG 9000,TAG_BFG9000,,,,,,,,,,O BFG 9000,, +Bullets,AMMO_CLIP,,,,Patronen,Balas,,Balles,,,,Пули, +Shotgun Shells,AMMO_SHELLS,,,,Schrotpatronen,Cartuchos de escopeta,,Cartouches,,,,Патроны Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°, +Rockets,AMMO_ROCKETS,,,,Raketen,Cohetes,,Roquettes,,,,Ракеты, +Energy Cells,AMMO_CELLS,,,,Energiezellen,Célula de energía,,Cellules,,,,ЭнергетичеÑкие Ñчейки, +,,,Obituaries,,,,,,,,,, +%o thought %g saw an arachnotron.,OB_STEALTHBABY,,,,"%o dachte, ein Arachnotron zu sehen.",%o creyó haber visto un aracnotrón.,,%o a cru voir un Arachnotron.,"%o azt hitte, hogy látott egy Arachnotron-t.",a %o sembrava di aver visto un arachnotron.,%o achou que viu um arachnotron.,%o краем глаза заметил@[ao_rus] арахнотрона., +%o thought %g saw an archvile.,OB_STEALTHVILE,,,,"%o dachte, ein Scheusal zu sehen.",%o creyó haber visto un archi-vil.,,%o a cru voir un Arche-Vile.,"%o azt hitte, hogy látott egy Archördögöt.",a %o sembrava di aver visto un Arch-Vile.,%o achou que viu um archvile.,%o краем глаза заметил@[ao_rus] арчвайла., +%o thought %g saw a Baron of Hell.,OB_STEALTHBARON,,,,"%o dachte, einen Höllenbaron zu sehen.",%o creyó haber visto un Barón del Infierno.,,%o a cru voir un Baron des enfers.,"%o azt hitte, hogy látott egy Pokol Bárót.",a %o sembrava di aver visto un Barone Infernale.,%o achou que viu um Baron of Hell.,%o краем глаза заметил@[ao_rus] барона Ðда., +%o thought %g saw a cacodemon.,OB_STEALTHCACO,,,,"%o dachte, einen Cacodämonen zu sehen.",%o creyó haber visto un cacodemonio.,,%o a cru voir un Cacodémon.,"%o azt hitte, hogy látott egy Cacodémont.",a %o sembrava di aver visto un cacodemone.,%o achou que viu um cacodemon.,%o краем глаза заметил@[ao_rus] какодемона., +%o thought %g saw a chaingunner.,OB_STEALTHCHAINGUY,,,,"%o dachte, einen MG-Schützen zu sehen.",%o creyó haber visto un ametrallador.,,%o a cru voir un mitrailleur.,"%o azt hitte, hogy látott egy Golyószóróst.",a %o sembrava di aver visto uno zombie commando.,%o achou que viu um chaingunner.,%o краем глаза заметил@[ao_rus] пулемётчика., +%o thought %g saw a demon.,OB_STEALTHDEMON,,,,"%o dachte, einen Dämonen zu sehen.",%o creyó haber visto un demonio.,,%o a cru voir un démon.,"%o azt hitte, hogy látott egy Démont.",a %o sembrava di aver visto un demone.,%o achou que viu um demon.,%o краем глаза заметил@[ao_rus] демона., +%o thought %g saw a Hell Knight.,OB_STEALTHKNIGHT,,,,"%o dachte, einen Höllenritter zu sehen.",%o creyó haber visto un Caballero Infernal.,,%o a cru voir un chevalier infernal.,"%o azt hitte, hogy látott egy Pokol Lovagot.",a %o sembrava di aver visto un Cavaliere Infernale.,%o achou que viu um Hell Knight.,%o краем глаза заметил@[ao_rus] Ñ€Ñ‹Ñ†Ð°Ñ€Ñ Ðда., +%o thought %g saw an imp.,OB_STEALTHIMP,,,,"%o dachte, einen Kobold zu sehen.",%o creyó haber visto un diablillo.,,%o a cru voir un diablotin.,"%o azt hitte, hogy látott egy Imp-et.",a %o sembrava di aver visto un imp.,%o achou que viu um imp.,%o краем глаза заметил@[ao_rus] импа., +%o thought %g saw a mancubus.,OB_STEALTHFATSO,,,,"%o dachte, einen Mancubus zu sehen.",%o creyó haber visto un mancubus.,,%o a cru voir un mancube.,"%o azt hitte, hogy látott egy Mancubus-t.",a %o sembrava di aver visto un mancubo.,%o achou que viu um mancubus.,%o краем глаза заметил@[ao_rus] манкубуÑа., +%o thought %g saw a revenant.,OB_STEALTHUNDEAD,,,,"%o dachte, einen Wiederauferstandenen zu sehen.",%o creyó haber visto un renacido.,,%o a cru voir un revenant.,"%o azt hitte, hogy látott egy Revenant.",a %o sembrava di aver visto un revenant.,%o achou que viu um revenant.,%o краем глаза заметил@[ao_rus] ревенанта., +%o thought %g saw a sergeant.,OB_STEALTHSHOTGUY,,,,"%o dachte, einen Schützen zu sehen.",%o creyó haber visto un sargento.,,%o a cru voir un type au fusil.,"%o azt hitte, hogy látott egy Sörétesalakot.",a %o sembrava di aver visto un sergente.,%o achou que viu um sergeant.,%o краем глаза заметил@[ao_rus] Ñержанта., +%o thought %g saw a zombieman.,OB_STEALTHZOMBIE,,,,"%o dachte, einen Zombie zu sehen.",%o creyó haber visto un zombi.,,%o a cru voir un zombie.,"%o azt hitte, hogy látott egy Zombifickót.",a %o sembrava di aver visto uno zombie.,%o achou que viu um zombieman.,%o краем глаза заметил@[ao_rus] зомби., +%o was punched by a revenant.,OB_UNDEADHIT,,,,%o wurde von einem Wiederauferstandenen K.O geschlagen.,%o fue golpead@[ao_esp] por un renacido.,,%o s'est pris@[e_fr] une raclée de la part d'un revenant.,%o egy Revenanttal próbált bunyózni.,%o è stato massacrato da un revenant.,%o foi socado por um revenant.,Игрока %o ударил ревенант., +%o was slashed by an imp.,OB_IMPHIT,,,,%o wurde von einem Kobold gekratzt.,%o fue desgarrad@[ao_esp] por un diablillo.,,%o a été lacéré@[e_fr] par un diablotin.,%o egy Imp által szét lett hasítva.,%o è stato squarciato da un imp.,%o foi dilacerado por um imp.,Игрока %o раÑцарапал имп., +%o got too close to a cacodemon.,OB_CACOHIT,,,,%o kam dem Cacodämonen zu nahe.,%o se acercó demasiado a un cacodemonio.,,%o s'est approché@[e_fr] trop près d'un Cacodémon.,%o túl közel került egy Cacodémonhoz.,%o si è avvicinato troppo a un cacodemone.,%o chegu muito perto de um cacodemon.,%o Ñлишком Ñблизил@[refl_rus] Ñ ÐºÐ°ÐºÐ¾Ð´ÐµÐ¼Ð¾Ð½Ð¾Ð¼., +%o was bit by a demon.,OB_DEMONHIT,,,,%o wurde von einem Dämonen gebissen.,%o fue mordid@[ao_esp] por un demonio.,,%o a été mordu@[e_fr] par un démon.,%o meg lett harapva egy Démon által.,%o è stato sbranato da un demone.,%o foi mordido por um demon.,Игрока %o укуÑил демон., +%o was eaten by a spectre.,OB_SPECTREHIT,,,,%o wurde von dem Schemen gefressen.,%o fue devorad@[ao_esp] por un espectro.,,%o a été dévoré@[e_fr] par un spectre.,%o fel lett falva egy Kísértet jóvoltábol.,%o è stato divorato da uno spettro.,%o foi comido vivo por um spectre.,Игрока %o Ñожрал Ñпектр., +%o was ripped open by a Baron of Hell.,OB_BARONHIT,,,,%o wurde von dem Höllenbaron aufgerissen.,%o quedó hech@[ao_esp] trizas por un Barón del Infierno.,,%o a été déchiré@[e_fr] par un Baron des Enfers.,%o szét lett nyitva egy Pokol Báró által.,%o è stato scoperchiato da un Barone dell'Inferno.,%o foi cortado por um Baron of Hell.,Игрока %o разорвал барон Ðда., +%o was gutted by a Hell Knight.,OB_KNIGHTHIT,,,,%o wurde von dem Höllenritter ausgenommen.,%o fue destripad@[ao_esp] por un Caballero Infernal.,,%o a été étripé@[e_fr] par un un chevalier infernal.,%o ki lett belezve egy Pokol Lovag által.,%o è stato sbudellato da un Cavaliere dell'Inferno.,%o foi estripado por um Hell Knight.,Игрока %o раÑпотрошил рыцарь Ðда., +%o was killed by a zombieman.,OB_ZOMBIE,,,,%o wurde von einem Zombie getötet.,%o fue asesinad@[ao_esp] por un zombi.,,%o a été tué@[e_fr] par un zombie.,%o meghalt egy Zombifickó által.,%o è stato ucciso da uno zombie.,%o foi morto por um zombieman.,Игрока %o убил зомби., +%o was shot by a sergeant.,OB_SHOTGUY,,,,%o wurde von einem Schützen erschossen.,%o fue fusilad@[ao_esp] por un sargento.,,%o s'est fait flinguer par un type au fusil.,%o meg lett lÅ‘ve egy Söréteses alak által.,%o è sato impallinato da un sergente.,%o levou um tiro de um sergeant.,Игрока %o заÑтрелил Ñержант., +%o was incinerated by an archvile.,OB_VILE,,,,%o wurde von einem Scheusal verbrannt.,%o fue calcinad@[ao_esp] por un archi-vil.,,%o a été incinéré@[e_fr] par un Arche-Vile.,%o meg lett pörkölve egy Archördög által.,%o è stato incenerito da un arch-vile.,%o foi incinerado pelo archvile.,Игрока %o кремировал арчвайл., +%o couldn't evade a revenant's fireball.,OB_UNDEAD,,,,%o konnte dem Feuerball des Wiederauferstandenen nicht ausweichen.,%o no pudo esquivar la bola de fuego de un renacido.,,%o n'a pas réussi à esquiver un missile de revenant.,%o nem tudta kivédeni a Revenant tűzgolyóját.,%o non ha potuto evitare il missile di un revenant.,"%o nao conseguiu desviar da bola de +fogo do revenant.",%o не уÑпел@[ao_rus] увернутьÑÑ Ð¾Ñ‚ ÑнарÑда ревенанта., +%o was squashed by a mancubus.,OB_FATSO,,,,%o wurde von einem Mancubus plattgemacht.,%o fue pulverizad@[ao_esp] por un mancubus.,,%o s'est fait@[e_fr] aplatir par un Mancube.,%o agyon lett lapítva egy Mancubus által.,%o è stato disintegrato da un mancubo.,%o foi esmagado por um mancubus.,Игрока %o раздавил манкубуÑ., +%o was perforated by a chaingunner.,OB_CHAINGUY,,,,%o wurde von einem MG-Schützen perforiert.,%o fue perforad@[ao_esp] por un ametrallador.,,%o a été perforé@[e_fr] par un mitrailleur.,%o szítává lett lÅ‘ve egy Golyószórós által.,%o è stato perforato da uno zombie commando.,%o foi perfurado por um chaingunner.,Игрока %o продырÑвил пулемётчик., +%o was spooked by a lost soul.,OB_SKULL,,,,%o wurde von einer Verlorenen Seele heimgesucht.,%o se murió de miedo ante un alma perdida.,,%o s'est fait@[e_fr] surprendre par une âme perdue.,%o Halálra ijedt egy Elveszett Léleknek köszönhetÅ‘en,%o è stato spaventato a morte da un'Anima Perduta.,%o se assustou com um lost soul.,%o иÑпугал@[refl_rus] потерÑнной души., +%o was burned by an imp.,OB_IMP,,,,%o wurde von einem Kobold verbrannt.,%o fue incendiad@[ao_esp] por un diablillo.,,%o brûlé@[e_fr] par un diablotin.,%o megégett egy Imp által.,%o è stato bruciato da un imp.,%o foi queimado por um imp.,Игрока %o Ñжёг имп., +%o was smitten by a cacodemon.,OB_CACO,,,,%o wurde von einem Cacodämonen gequält.,%o fue aniquilad@[ao_esp] por un cacodemonio.,,%o a été terrassé@[e_fr] par un Cacodémon.,%o beégett egy Cacodémon által.,%o è stato abbattuto da un cacodemone.,%o foi golpeado por um cacodemon.,Игрока %o поразил какодемон., +%o was bruised by a Baron of Hell.,OB_BARON,,,,%o wurde von einem Höllenbaron geröstet.,%o fue vapulead@[ao_esp] por un Barón del Infierno.,,%o a été démoli@[e_fr] par un Baron des Enfers.,%o szétlett zúzva egy Pokol Báró által.,%o è stato scorticato da un Barone Infernale.,%o foi ferido por um Baron of Hell.,%o получил@[ao_rus] ÑинÑк от барона Ðда., +%o was splayed by a Hell Knight.,OB_KNIGHT,,,,%o wurde von einem Höllenritter gebraten.,%o fue partid@[ao_esp] en dos por un Caballero Infernal.,,%o a été éclaté@[e_fr] par un chevalier infernal.,%o szétfolyt egy Pokol Lovag által.,%o è stato squartato da un Cavaliere Infernale.,%o foi espalmado por um Hell Knight.,Игрока %o раÑплаÑтал рыцарь Ðда., +%o stood in awe of the spider demon.,OB_SPIDER,,,,%o stand in Ehrfurcht vor dem Spinnendämon.,%o no tuvo oportunidad contra la mente maestra arácnida.,,%o est resté pris@[e_fr] d'admiration devant le Démon Arachnéen.,%o csak egyhelyben állt megrémülve a Pók Agytröszt miatt.,%o è stato soggiogato dal Cervello Ragno.,%o se ajoelhou em frente do spider demon.,%o ÑтоÑл@[ao_rus] в воÑторге перед пауком-предводителем., +%o let an arachnotron get %h.,OB_BABY,,,,%o ließ sich von einem Arachnotron erledigen.,%o fue alcanzad@[ao_esp] por un aracnotrón.,,%o a laissé un arachnotron l'avoir.,%o hagyta hogy elkapja egy Arachnotron.,%o ha permesso che un arachnotron l'uccidesse.,%o foi pego por um arachnotron.,%o дал@[ao_rus] арахнотрону ÑÐµÐ±Ñ ÑƒÐ±Ð¸Ñ‚ÑŒ., +%o was splattered by a cyberdemon.,OB_CYBORG,,,,%o wurde von einem Cyberdämon zerfetzt.,%o fue aplastad@[ao_esp] por un ciberdemonio.,,%o a été pulvérisé@[e_fr] par un Cyberdémon.,%o szétloccsant egy Kiborgdémon által.,%o è stato spiaccicato da un Cyberdemonio.,%o foi arrebentado pelo cyberdemon.,Игрока %o размазал кибердемон., +%o met a Nazi.,OB_WOLFSS,,,,%o traf einen Nazi.,%o se encontró a un Nazi.,,%o a rencontré un Nazi.,%o találkozott egy nácival.,%o ha incontrato un Nazista.,%o viu um Nazi.,%o вÑтретил@[ao_rus] нациÑта., +%o was mauled by a dog.,OB_DOG,,,,%o wurde von einem Hund zerrissen.,%o fue magullad@[ao_esp] por un perro.,,%o s'est fait mordre par un chien.,%o nem kapott tetanuszt miután a kutya megharapta,%o è stato sbranato da un cane.,%o foi atacado por um cachorro.,Игрока %o разорвала Ñобака., +%o chewed on %k's fist.,OB_MPFIST,,,,%o kaute auf %ks Faust herum.,%o masticó el puño de %k.,,%o a bouffé le poing de %k.,%o megrágta %k ökleit.,%o si è schiantato contro il pugno di %k.,"%k fez justiça com as próprias mãos, na cara de %o.",Игрок %o отведал кулака %k., +%o was mowed over by %k's chainsaw.,OB_MPCHAINSAW,,,,%o wurde von %ks Kettensäge zerteilt.,%o fue masacrad@[ao_esp] por la motosierra de %k.,,%o a été tondu@[e_fr] par la tronconneuse de %k.,%o lelett nyírva %k Láncfűrészének által.,%o è stato falciato dalla motosega di %k.,%k usou o poder da motoserra para abrir %o.,Игрок %k ÑкоÑил бензопилой игрока %o., +%o was tickled by %k's pea shooter.,OB_MPPISTOL,,,,%o wurde von %ks Erbsenpistole gekitzelt.,%o fue cosquillead@[ao_esp] por el tirachinas de %k.,%o ha sido asesinad@[ao_esp] por la pipa de %k.,%o a été châtouillé@[e_fr] par le pistolet de %k.,%o halálra lett csiklandozva %k Pisztolya által.,%o è stato sforacchiato dalla pistola di %k'.,%o foi morto pela pistola de %k.,Игрок %k пощекотал пукалкой игрока %o., +%o chewed on %k's boomstick.,OB_MPSHOTGUN,,,,%o wurde Opfer von %ks Schrotflinte.,%o mordió@[ao_esp] el trabuco de %k.,%o ha sido agujeread@[ao_esp] por el trabuco de %k.,%o a s'est mangé@[e_fr] de la chevrotine de la part de %k.,%o megrágta %k BUMMbotját.,%o si è trovato davanti il fucile di %k.,%o foi morto pela espingarda de %k.,Игрок %o отведал дробовик игрока %k., +%o was splattered by %k's super shotgun.,OB_MPSSHOTGUN,,,,%o wurde von %ks Super-Schrotflinte zerfetzt.,%o fue reventad@[ao_esp] por la súper escopeta de %k.,,%o s'est fait@[e_fr] gicler par le fusil de chasse de %k.,%o szétloccsant %k szuper sörétespuskája által.,%o è stato smembrato dalla doppietta di %k.,%o foi morto pela espingarda de cano duplo de %k.,Игрок %k размазал из обреза игрока %o., +%o was mowed down by %k's chaingun.,OB_MPCHAINGUN,,,,%o wurde von %ks Maschinengewehr niedergemäht.,%o fue masacrado por la ametralladora de %k.,,%o a été ventilé@[e_fr] par la mitrailleuse de %k.,%o szítává lett lÅ‘ve %k golyószórójának által.,%o è stato falciato dal mitragliatore di %k.,%o foi massacrado pela metralhadora de %k.,Игрок %k выкоÑил Ñ Ð¿ÑƒÐ»ÐµÐ¼Ñ‘Ñ‚Ð° игрока %o., +%o rode %k's rocket.,OB_MPROCKET,,,,%o ritt auf %ks Rakete.,%o se montó en el cohete de %k.,%o quería montarse en el cohete de %k.,%o a chevauché la roquette de %k.,%o meglovagolta %k rakétáját.,%o ha cavalcato il razzo di %k.,%o não viu o foguete de %k.,Игрок %k прокатил на ракете игрока %о., +%o almost dodged %k's rocket.,OB_MPR_SPLASH,,,,"%o schaffte es fast, %ks Rakete auszuweichen.",%o casi esquivó el cohete de %k.,%o casi esquiva el cohete de %k.,%o a presque esquivé la roquette de %k.,%o majdnem kikerülte %k rakétáját.,%o aveva quasi schivato il razzo di %k.,%o quase escapou do foguete de %k. Quase...,Игрок %o почти увильнул от ракеты %k., +%o was melted by %k's plasma gun.,OB_MPPLASMARIFLE,,,,%o wurde von %ks Plasmagewehr geschmolzen.,%o fue derretid@[ao_esp] por el fusil de plasma de %k.,,%o a été réduit@[e_fr] en bouillie par le fusil a plasma de %k.,%o megolvadt %k Plazma fegyverének által.,%o è stato fuso dal fucile al plasma di %k.,%o foi torrado pelo rifle de plasma de %k.,Игрок %k раÑплавил плазмометом игрока %o., +%o was splintered by %k's BFG.,OB_MPBFG_BOOM,,,,%o wurde von %ks BFG in Stücke gerissen.,%o fue aniquilado por la BFG de %k.,,%o a été oblitéré@[e_fr] par le BFG de %k.,%o szilánkká alakult %k BFG fegyverének által.,%o è stato sminuzzato dal BFG di %k.,%o foi pego pelo BFG de %k.,Игрок %k раÑщепил игрока %o Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ BFG., +%o couldn't hide from %k's BFG.,OB_MPBFG_SPLASH,,,,%o konnte sich nicht vor %ks BFG verstecken.,%o no pudo esconderse de la BFG de %k.,,%o n a pas pu se couvrir du BFG de %k.,%o nem tudott elmenekülni %k BFG-je elÅ‘l.,%o non poteva nascondersi dal BFG di %k.,"Ninguem se esconde do BFG de %k, nem mesmo %o.",Игрок %o не уÑпел ÑпрÑтатьÑÑ Ð¾Ñ‚ BFG игрока %k., +%o was railed by %k.,OB_RAILGUN,,,,%o stand in %ks Schusslinie.,%o fue rielad@[ao_esp] por %k.,,%o a été aligné@[e_fr] par %k.,%o nem tudott elmenekülni %k railgun-ja elÅ‘l.,%o è stato bucherellato dal railgun di %k.,%o was railed by %k.,Игрок %k показал Ñвой рельÑотрон игроку %o., +%o was burned by %k's BFG.,OB_MPBFG_MBF,,,,%o wurde von %ks BFG verbrannt.,%o fue vaporizad@[ao_esp] por la BFG de %k.,,%o a été irradié@[e_fr] par le BFG de %k.,%o meglett égetve %k BFG-je által.,%o è stato bruciato dal BFG di %k.,%o foi arrebentado pelo BFG de %k.,Игрока %o Ñжёг %k Ñ BFG., +,,,Heretic,,,,,,,,,, +,,,Pickup ,,,,,,,,,, +Blue Key,TXT_GOTBLUEKEY,,,,Blauer Schlüssel,Llave Azul,,Clé Bleue,,CHIAVE BLU,CHAVE AZUL,Синий ключ,Плави кључ +Yellow Key,TXT_GOTYELLOWKEY,,,,Gelber Schlüssel,Llave Amarilla,,Clé Jaune,,CHIAVE GIALLA,CHAVE AMARELA,Жёлтый ключ,Жути кључ +Green Key,TXT_GOTGREENKEY,,,,Grüner Schlüssel,Llave Verde,,Clé Verte,,CHIAVE VERDE,CHAVE AZUL,Зелёный ключ,Зелени кључ +Quartz Flask,TXT_ARTIHEALTH,,,,Quarzflasche,Frasco de Cuarzo,,Flasque en Quartz,,AMPOLLA DI QUARZO,FRASCO DE QUARTZO,Кварцевый флакон,Кварцна боца +Wings of Wrath,TXT_ARTIFLY,,,,Flügel des Zorns,Alas de Ira,,Ailes du Courroux,,ALI IRACONDE,ASAS DE IRA,ÐšÑ€Ñ‹Ð»ÑŒÑ Ð³Ð½ÐµÐ²Ð°,Крила гнева +Ring of Invincibility,TXT_ARTIINVULNERABILITY,,,,Ring der Unverwundbarkeit,Anillo de Invencibilidad,,Anneau d'Invincibilité,,ANELLO DELL'INVINCIBILITA',ANEL DE INVENCIBILIDADE,Кольцо неуÑзвимоÑти,ПрÑтен непобедивоÑти +Tome of Power,TXT_ARTITOMEOFPOWER,,,,Buch der Macht,Tomo de Poder,,Livre du Pouvoir,,LIBRO DEL POTERE,LIVRO DO PODER,Том могущеÑтва,Том моћи +Shadowsphere,TXT_ARTIINVISIBILITY,,,,Schattensphäre,Esfera de Sombra,,Sphère des Ombres,,SFERA DELL'OMBRA,ESFERA NEGRA,Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ñфера,Сфера Ñенки +Morph Ovum,TXT_ARTIEGG,,,,Transformations-Ei,Huevo de Transformación,,Ovule de Métamorphose,,UOVO DELLA METAMORFOSI,OVO MUTANTE,Морфийное Ñйцо,Преображајyће јајашце +Mystic Urn,TXT_ARTISUPERHEALTH,,,,Mystische Urne,Urna Mística,,Urne Mystique,,URNA MISTICA,URNA MISTICA,МиÑтичеÑÐºÐ°Ñ ÑƒÑ€Ð½Ð°,МиÑтериозна урна +Torch,TXT_ARTITORCH,,,,Fackel,Antorcha,,Torche,,TORCIA,TOCHA,Факел,Бакља +Time Bomb of the Ancients,TXT_ARTIFIREBOMB,,,,Zeitbombe der Alten,Bomba de tiempo de los Ancestros,,Bombe a Retardement des Anciens,,BOMBA A TEMPO DEGLI ANTICHI,BOMBA-RELOGIO DOS ANTIGOS,ЧаÑÐ¾Ð²Ð°Ñ Ð±Ð¾Ð¼Ð±Ð° древних,ВременÑка бомба древних +Chaos Device,TXT_ARTITELEPORT,,,,Chaosgerät,Dispositivo del Caos,,Outil du Chaos,,STRUMENTO DEL CAOS,DISPOSITIVO DO CAOS,Эмблема ХаоÑа,Уређај хаоÑа +Crystal Vial,TXT_ITEMHEALTH,,,,Kristallfläschchen,Tubo de Cristal,,Fiole de Cristal,,FIALA DI CRISTALLO,AMPOLA DE CRISTAL,КриÑтальный флакон,КриÑтална бочица +Bag of Holding,TXT_ITEMBAGOFHOLDING,,,,Rucksack,Bolso sin Fondo,,Sac sans Fond,,BORSA PORTAOGGETTI,BOLSA DE UTENSILIOS,ÐоÑильный кошель,Торба ноÑивоÑти +Silver Shield,TXT_ITEMSHIELD1,,,,Silberner Schild,Escudo Plateado,,Bouclier d'Argent,,SCUDO D'ARGENTO,ESCUDO DE PRATA,СеребрÑный щит,Сребрни штит +Enchanted Shield,TXT_ITEMSHIELD2,,,,Verzauberter Schild,Escudo Encantado,,Bouclier Enchanté,,SCUDO INCANTATO,ESCUDO ENCANTADO,Зачарованный щит,Зачарани штит +Map Scroll,TXT_ITEMSUPERMAP,,,,Kartenrolle,Mapa en Pergamino,,Rouleau du Cartographe,,MAPPA,PERGAMINHO - MAPA,Свиток карты,Мапа +Wand Crystal,TXT_AMMOGOLDWAND1,,,,Zauberstabkristall,Cristal para Vara,,Cristal Elfique,,BACCHETTA DI CRISTALLO,CRISTAL MAGICO,КриÑталл Ð´Ð»Ñ ÑльфийÑкого жезла, +Crystal Geode,TXT_AMMOGOLDWAND2,,,,Kristallklumpen,Geoda de Cristal,,Géode de Cristal,,GEOIDE DI CRISTALLO,GEODO DE CRISTAL,Жеода криÑталла, +Mace Spheres,TXT_AMMOMACE1,,,,Keulenkugeln,Esferas de Maza,,Sphère de Masse,,SFERE PER MAZZA,ESFERAS PARA CLAVA,Сферы Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹, +Pile of Mace Spheres,TXT_AMMOMACE2,,,,Haufen von Keulenkugeln,Pila de Esferas de Maza,,Pile de Sphères de Masse,,PILA DI SFERE PER MAZZA,PILHA DE ESFERAS PARA CLAVA,Груда Ñфер Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹, +Ethereal Arrows,TXT_AMMOCROSSBOW1,,,,Ätherische Pfeile,Flechas Etéreas,,Carreaux Ethériques,,FRECCIE ETEREE,FLECHAS MAGICAS,Эфирные Ñтрелы, +Quiver of Ethereal Arrows,TXT_AMMOCROSSBOW2,,,,Köcher mit ätherischen Pfeilen,Carcaj de Flechas Etéreas,Carcaza de Flechas Etéreas,Carquois de Carreaux Ethériques,,FARETRA DI FRECCIE ETEREE,MAIS FLECHAS MAGICAS,Колчан Ñфирных Ñтрел, +Claw Orb,TXT_AMMOBLASTER1,,,,Klauenball,Orbe de Garra,,Orbe de Griffe,,GLOBO ARTIGLIATO,ESFERA PARA GARRAS,Когтевой шар, +Energy Orb,TXT_AMMOBLASTER2,,,,Energieball,Orbe de Energía,,Orbe Draconique,,GLOBO DI ENERGIA,ESFERA DE ENERGIA,ЭнергетичеÑкий шар, +Lesser Runes,TXT_AMMOSKULLROD1,,,,Kleine Runen,Runas Menores,,Runes Mineurs,,RUNE INFERIORI,RUNAS PEQUENAS,ÐœÐ»Ð°Ð´ÑˆÐ°Ñ Ñ€ÑƒÐ½Ð°, +Greater Runes,TXT_AMMOSKULLROD2,,,,Große Runen,Runas Mayores,,Runes Supérieures,,RUNE SUPERIORI,RUNAS GRANDES,Ð¡Ñ‚Ð°Ñ€ÑˆÐ°Ñ Ñ€ÑƒÐ½Ñ‹, +Flame Orb,TXT_AMMOPHOENIXROD1,,,,Flammenkugel,Orbe de Flama,,Orbe de Flammes,,GLOBO DI FUOCO,ESFERA DE CHAMAS,Пламенный шар, +Inferno Orb,TXT_AMMOPHOENIXROD2,,,,Infernokugel,Orbe de Averno,,Orbe Infernal,,GLOBO INFERNALE,ESFERA DO INFERNO,Инфернальный шар, +Gold Wand,TXT_WPNGOLDWAND,,,,Goldener Zauberstab,Vara Dorada,,Baguette Elfique,,BACCHETTA D'ORO,,ЭльфийÑкий жезл, +Firemace,TXT_WPNMACE,,,,Feuerkeule,Maza de Fuego,,Masse de Feu,,MAZZA DI FUOCO,CLAVA DE FOGO,ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð±ÑƒÐ»Ð°Ð²Ð°, +Ethereal Crossbow,TXT_WPNCROSSBOW,,,,Ätherische Armbrust,Ballesta Etérea,,Arbalète Ethérique,,BALESTRA ETEREA,BESTA MAGICA,Эфирный арбалет, +Dragon Claw,TXT_WPNBLASTER,,,,Drachenklaue,Garra de Dragón,,Griffe Draconique,,ARTIGLIO DEL DRAGO,GARRAS DE DRAGAO,Коготь дракона, +Hellstaff,TXT_WPNSKULLROD,,,,Höllenrute,Bastón Infernal,,Bâton Infernal,,BASTONE INFERNALE,BASTAO DO INFERNO,ПоÑох ада, +Phoenix Rod,TXT_WPNPHOENIXROD,,,,Phönixstab,Báculo del Fénix,,Bâton du Phénix,,SFERA DELLA FENICE,BASTAO DA FENIX,Жезл феникÑа, +Gauntlets of the Necromancer,TXT_WPNGAUNTLETS,,,,Handschuhe des Zauberers,Guanteletes del Nigromante,,Gantelets du Nécromancien,,GUANTI DEL NEGROMANTE,LUVAS DO NECROMANCER,Перчатки некроманта, +,,,Locks,,,,,,,,,, +You need a blue key to open this door,TXT_NEEDBLUEKEY,,,,Du brauchst einen blauen Schlüssel um diese Tür zu öffnen,Necesitas una llave azul para abrir esta puerta,,Cette porte nécessite une clé bleue pour s'ouvrir.,,TI SERVE UNA CHIAVE BLU PER APRIRE QUESTA PORTA,VOCE PRECISA DA CHAVE AZUL PARA ABRIR A PORTA,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ Ñиний ключ,Треба вам плави кључ да би отворили ова врата +You need a green key to open this door,TXT_NEEDGREENKEY,,,,Du brauchst einen grünen Schlüssel um diese Tür zu öffnen,Necesitas una llave verde para abrir esta puerta,,Cette porte nécessite une clé verte pour s'ouvrir.,,TI SERVE UNA CHIAVE VERDE PER APRIRE QUESTA PORTA,VOCE PRECISA DA CHAVE VERDE PARA ABRIR A PORTA,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ зелёный ключ,Треба вам зелени кључ да би отворили ова врата +You need a yellow key to open this door,TXT_NEEDYELLOWKEY,,,,Du brauchst einen gleben Schlüssel um diese Tür zu öffnen,Necesitas una llave amarilla para abrir esta puerta,,Cette porte nécessite une clé jaune pour s'ouvrir.,,TI SERVE UNA CHIAVE GIALLA PER APRIRE QUESTA PORTA,VOCE PRECISA DA CHAVE AMARELA PARA ABRIR A PORTA,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ жёлтый ключ,Треба вам жути кључ да би отворили ова врата +,,,Actor tag names,,,,,,,,,, +Chicken,FN_CHICKEN,,,,Huhn,Pollo,,Poulet,Csirke,Pollo,,Цыплёнок, +Weredragon,FN_BEAST,,,,Werdrache,Bestia dragón,,Dragon-garou,,Drago Mannaro,,Дракон-оборотень, +Sabreclaw,FN_CLINK,,,,Säbelklaue,Garra de sable,,Sabregriffe,,Lamartiglio,,Саблекоготь, +D'Sparil,FN_DSPARIL,,,,,,,D'Sparil,,D'Sparil,,Д'Спарил, +Gargoyle,FN_HERETICIMP,,,,,Gárgola,,Gargouille,,Gargoyle,,ГоргульÑ, +Ironlich,FN_IRONLICH,,,,Eiserne Leiche,Liche de hierro,,Liche de Fer,,Lich di Ferro,,Железный лич, +Undead Warrior,FN_BONEKNIGHT,,,,Untoter Krieger,Guerrero no-muerto,,Guerrier Mort-Vivant,,Guerriero Non Morto,,Воин-нежить, +Maulotaur,FN_MINOTAUR,,,,Minotaurus,Maulotauro,,Massetaure,,Maulotauro,,Молотавр, +Golem,FN_MUMMY,,,,,,,Golem,,Golem,,Голем, +Nitrogolem,FN_MUMMYLEADER,,,,,,,Nitrogolem,,Nitrogolem,,Ðитроголем, +Ophidian,FN_SNAKE,,,,,Ofidio,,Ophidien,,Ophidian,,Офидиан, +Wizard,FN_WIZARD,,,,Zauberer,Mago,,Magicien,,Mago,,Волшебник, +Wand Crystals,AMMO_GOLDWAND,,,,Elfenstabkristalle,Cristales para vara,,Cristaux,,,,КриÑталл Ð´Ð»Ñ ÑльфийÑкого жезла, +Ethereal Arrows,AMMO_CROSSBOW,,,,Ätherische Pfeile,Flechas etéreas,,Carreaux,,,,Эфирные Ñтрелы, +Claw Orbs,AMMO_BLASTER,,,,Klauenbälle,Orbes de garra,,Orbes,,,,Когтевой шар, +Mace Spheres,AMMO_MACE,,,,Energiebälle,Esferas de maza,,Sphères,,,,Сферы Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹, +Hellstaff Runes,AMMO_SKULLROD,,,,Höllenrutenrunen,Runas de Vara Infernal,,Runes,,,,ÐœÐ»Ð°Ð´ÑˆÐ°Ñ Ñ€ÑƒÐ½Ð°, +Flame Orbs,AMMO_PHOENIXROD,,,,Flammenkugeln,Orbes de llama,Orbes de flama,Orbes de Feu,,,,Пламенный шар, +Staff,TAG_STAFF,,,,Stab,Bastón,,Bâton,Bot,Staffa,Bastao,ПоÑох,Штап +Gauntlets of the Necromancer,TAG_GAUNTLETS,,,,Handschuhe des Zauberers,Guanteletes del Nigromante,,Gantelets du Nécromancien,HalottidézÅ‘ Páncélkesztyűi,Guanti del Negromante,Luvas do Necromancer,Перчатки некроманта,Рукавице некроманцера +Elven Wand,TAG_GOLDWAND,,,,Elfenstab,Vara de Elfo,,Baguette Elfique,Elf Pálca,Scettro Elfico,Bastao magico,ЭльфийÑкий жезл,Вилењачки штапић +Ethereal Crossbow,TAG_CROSSBOW,,,,Ätherische Armbrust,Ballesta Etérea,,Arbalète Etherique,Éteri Nyílpuska,Balestra Eterea ,Besta magica,Эфирный арбалет, +Dragon Claw,TAG_BLASTER,,,,Drachenklaue,Garra de Dragón,,Griffe Draconique,Sárkány Karom,Artiglio del Drago ,Garras de dragao,Драконий коготь,Змајева канџа +Hellstaff,TAG_SKULLROD,,,,Höllenrute,Bastón infernal,,Bâton Infernal,Pokolbot,Staffa Infernale ,Bastao do inferno,ПоÑох ада,Мотка пакла +Phoenix Rod,TAG_PHOENIXROD,,,,Phönixstab,Báculo del Fénix,,Bâton du Phénix,FÅ‘nix Rúd,Bastone della Fenice,Bastao da Fenix,Жезл феникÑа,ФеникÑов прут +Firemace,TAG_MACE,,,,Feuerkeule,Maza de Fuego,,Masse de Feu,Tűzbuzogány,Mazza del Fuoco ,Clava de fogo,ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð±ÑƒÐ»Ð°Ð²Ð°,Ватрени буздован +Staff,TAG_STAFFP,,,,Stab,Bastón,,Bâton,Bot,Staffa ,,ПоÑох,Штап +Gauntlets of the Necromancer,TAG_GAUNTLETSP,,,,Handschuhe des Zauberers,Guanteletes del Nigromante,,Gantelets du Nécromancien,HalottidézÅ‘ Páncélkesztyűi,Guanti del Negromante,,Перчатки некроманта,Рукавице некроманцера +Elven Wand,TAG_GOLDWANDP,,,,Elfenstab,Vara de Elfo,,Baguette Elfique,Elf Pálca,Scettro Elfico,,ЭльфийÑкий жезл,Вилењачки штапић +Ethereal Crossbow,TAG_CROSSBOWP,,,,Ätherische Armbust,Ballesta Etérea,,Arbalète Etherique,Éteri Nyílpuska,Balestra Eterea ,,Эфирный арбалет, +Dragon Claw,TAG_BLASTERP,,,,Drachenklaue,Garra de Dragón,,Griffe Draconique,Sárkány Karom,Artiglio del Drago ,,Драконий коготь,Змајева канџа +Hellstaff,TAG_SKULLRODP,,,,Höllenrute,Bastón infernal,,Bâton Infernal,Pokolbot,Staffa Infernale ,,ПоÑох ада,Мотка пакла +Phoenix Rod,TAG_PHOENIXRODP,,,,Phönixstab,Báculo del Fénix,,Bâton du Phénix,FÅ‘nix Rúd,Bastone della Fenice,,Жезл феникÑа,ФеникÑов прут +Firemace,TAG_MACEP,,,,Feuerkeule,Maza de Fuego,,Masse de Feu,Tűzbuzogány,Mazza del Fuoco ,,ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð±ÑƒÐ»Ð°Ð²Ð°,Ватрени буздован +Morph Ovum,TAG_ARTIEGG,,,,Transformations-Ei,Huevo de Transformación,,Ovule de Métamorphose,Ãtváltoztató Gömb,Morph Ovum,Ovo mutante,Морф овум,Преображајyће јајашце +Timebomb of the Ancients,TAG_ARTIFIREBOMB,,,,Zeitbombe der Alten,Bomba de tiempo de los Ancestros,,Bombe a retardement des Anciens,Åsiek IdÅ‘bombája,Bomba a Tempo degli Antichi,Bomba-relogio dos Antigos,ЧаÑÐ¾Ð²Ð°Ñ Ð±Ð¾Ð¼Ð±Ð° древних,ВременÑка бомба древних +Wings of Wrath,TAG_ARTIFLY,,,,Flügel des Zorns,Alas de Ira,,Ailes du Courroux,Harag Szárnyai,Ali Iraconde,Asas de ira,ÐšÑ€Ñ‹Ð»ÑŒÑ Ð¿Ñ€Ð¸Ð·Ñ€Ð°ÐºÐ°,Крила гнева +Quartz Flask,TAG_ARTIHEALTH,,,,Quarzflasche,Frasco de Cuarzo,,Flasque en Quartz,Kvarc Kulacs,Fiaschetta al Quarzo,Frasco de quartzo,ÐšÐ²Ð°Ñ€Ñ†ÐµÐ²Ð°Ñ ÐºÐ¾Ð»Ð±Ð°,Кварцна боца +Shadowsphere,TAG_ARTIINVISIBILITY,,,,Schattensphäre,Esfera de Sombra,,Orbe des Ombres,Sötétgömb,Ombrosfera,Esfera negra,ТенеÑфера,Сфера Ñенки +Ring of Invincibility,TAG_ARTIINVULNERABILITY,,,,Unverwundbarkeitsring,Anillo de Invencibilidad,,Anneau d'Invincibilité,Sérthetetlenség Gyűrűje,Anello dell'Invincibilita',Anel da invencibilidade,Кольцо невидимоÑти,ПрÑтен непобедивоÑти +Mystic Urn,TAG_ARTISUPERHEALTH,,,,Mystische Urne,Urna Mística,,Urne Mystique,Misztikus Urna,Urna Mistica,Urna mistica,МиÑтичеÑÐºÐ°Ñ ÑƒÑ€Ð½Ð°,МиÑтериозна урна +Chaos Device,TAG_ARTITELEPORT,,,,Chaosgerät,Dispositivo del Caos,,Outil du Chaos,Káosz Eszköz,Strumento del Caos,Dispositivo do caos,Механизм хаоÑа,Уређај хаоÑа +Tome of Power,TAG_ARTITOMEOFPOWER,,,,Buch der Macht,Tomo de Poder,,Livre du Pouvoir,ErÅ‘ Kötete,Tomo del Potere,Livro do poder,Том Ñилы,Том моћи +Torch,TAG_ARTITORCH,,,,Fackel,Antorcha,,Torche,Fáklya,Torcia ,Tocha,Факел,Бакља +,,,Obituaries,,,,,,,,,, +%o was pecked to death.,OB_CHICKEN,,,,%o wurde zu Tode gepickt.,%o fue picotead@[ao_esp] hasta la muerte.,,%o a été picoré@[e_fr] a mort.,%o halálra lett csípve.,%o è stato beccato a morte.,%o foi cutucado ate a morte.,Игрока %o заклевал до Ñмерти цыплёнок., +%o was charred by a weredragon.,OB_BEAST,,,,%o wurde von dem Werdrachen verschmort.,%o fue carbonizad@[ao_esp] por una bestia dragón.,,%o a été carbonisé@[e_fr] par un dragon-garou.,%o szénné égett egy Vérsárkány által.,%o è stato carbonizzato da una bestia.,%o foi carbonizado por um weredragon.,Игрока %o обуглил дракон-оборотень., +%o was slashed by a sabreclaw.,OB_CLINK,,,,%o wurde von der Säbelklaue zerschlitzt.,%o fue acuchillad@[ao_esp] por un garra de sable.,,%o s'est fait découper par un sabregriffe.,%o meglett vágva egy Szablyakarom által.,%o è stato squarciato da un lapillo.,%o foi cortado por um sabreclaw.,Игрока %o нарезал Ñаблекоготь., +%o was scalded by D'Sparil's serpent.,OB_DSPARIL1,,,,%o wurde von D'Sparils Schlange verbrüht.,%o fue abrasad@[ao_esp] por la serpiente de D'Sparil.,,%o a été ébouillanté@[e_fr] par un serpent de D'Sparil.,%o le lett forrázva D'Sparil Kígyója által.,%o è stato bruciato dal serpente di D'Sparil.,%o foi escaldado pela serpente de D'Sparil.,Игрока %o обжёг Ñерпент Д'Спарила., +%o was chewed up by D'Sparil's serpent.,OB_DSPARIL1HIT,,,,%o wurde von D'Sparils Schlange verspeist.,%o fue engullid@[ao_esp] por la serpiente de D'Sparil.,,%o a été dévoré@[e_fr] par un serpent de D'Sparil.,%o meglett rágva D'Sparil Kigyója által.,%o è stato masticato dal serpente di D'Sparil.,%o foi mastigado pela serpente de D'Sparil.,Игрока %o пожрал Ñерпент Д'Спарила., +%o was no match for D'Sparil.,OB_DSPARIL2,,,,%o war kein Gegner für D'Sparil.,%o no fue rival para D'Sparil.,,%o n'a pas pu égaler D'Sparil.,%o nem volt mértó ellenfél D'Sparil számára.,%o non era all'altezza di D'Sparil.,%o nao foi pareo para D'Sparil.,%o был@[ao_rus] не Ñ€Ð¾Ð²Ð½Ñ Ð”'Спарилу., +%o was smacked down by D'Sparil.,OB_DSPARIL2HIT,,,,%o wurde von D'Sparil zerklatscht.,%o fue vapulead@[ao_esp] por D'Sparil.,%o ha sido golpead@[ao_esp] por D'Sparil.,%o a été battu@[e_fr] a plate couture par D'Sparil.,%o a földre lett csapva D'Sparil által.,%o è stato abbattuto da D'Sparil.,%o foi morto por D'Sparil.,Игрока %o Ñбил Д'Спарил., +%o was scarred by a gargoyle.,OB_HERETICIMP,,,,%o wurde von einem Gargoyle zerkratzt.,%o fue cicatrizad@[ao_esp] por una gárgola.,,%o a été effrayé@[e_fr] par une gargouille.,%o meglett sebesítve egy VízköpÅ‘ által.,%o è stato terrorizzato da un imp.,%o foi cicatrizado por um gargoyle.,Игрока %o изуродовала горгульÑ., +%o was hacked by a gargoyle.,OB_HERETICIMPHIT,,,,%o wurde von einem Gargoyle zerhackt.,%o fue arañad@[ao_esp] por una gárgola.,,%o a été mis@[e_fr] en pièces par une gargouille.,%o fel lett vágva egy VízköpÅ‘ által.,%o è stato eliminato da un imp.,%o foi cortado por um gargoyle.,Игрока %o покалечила горгульÑ., +%o was devastated by an ironlich.,OB_IRONLICH,,,,%o wurde von der Eisernen Leiche zerstört.,%o fue devastad@[ao_esp] por un liche de hierro.,,%o a été dévasté@[e_fr] par une Liche de Fer.,%o elpusztult egy Vastetem által.,%o è stato devastato da un ironlich.,%o foi devastado por um ironlich.,Игрока %o раÑтоптал железный лич., +%o got up-close and personal with an ironlich.,OB_IRONLICHHIT,,,,%o kam der Eisernen Leiche zu nahe.,%o tuvo un encuentro cercano y personal con un liche de hierro.,,%o a fait ami@[e_fr]-ami@[e_fr] avec une Liche de Fer.,%o közel került és személyes volt egy Vastetemmel szemben.,%o è andato troppo vicino a un ironlich.,%o cheou muito perto de um ironlich.,%o Ñближал@[refl_rus] Ñ Ð¶ÐµÐ»ÐµÐ·Ð½Ñ‹Ð¼ личем., +%o was axed by an undead warrior.,OB_BONEKNIGHT,,,,%o wurde von dem Untoten Krieger mit der Axt bearbeitet.,%o recibió un hachazo de un guerrero no-muerto.,,%o s'est pris@[e_fr] la hâche d'un guerrier mort-vivant.,%o baltát kapott egy ÉlÅ‘halott Harcostól.,%o è stato accettato da un guerriero non morto .,%o foi decepado por um undead warrior.,Игрока %o зарубил воин-нежить., +%o was slain by an undead warrior.,OB_BONEKNIGHTHIT,,,,%o wurde von dem Untoten Krieger hingemetzelt.,%o fue descuartizad@[ao_esp] por un guerrero no-muerto.,,%o s'est fait pourfendre par un guerrier mort-vivant.,%o meghalt egy ÉlÅ‘halott Harcos által.,%o è stato ucciso da un guerriero non morto. ,%o foi picotado por um undead warrior.,Игрока %o Ñразил воин-нежить., +%o was blasted into cinders by a Maulotaur.,OB_MINOTAUR,,,,%o wurde von dem Minotaurus in Asche verwandelt.,%o fue volad@[ao_esp] en cenizas por un Maulotauro.,,%o s'est fait@[e_fr] incinérer par un Massetaure.,%o darabokra robbant egy Maulotaurusz által.,%o è stato incenerito da un Maulotaur. ,,Игрока %o Ñ€Ð°Ð·Ð½Ñ‘Ñ Ð½Ð° Ñгоревшие чаÑти Молотавр., +%o was pulped by a Maulotaur.,OB_MINOTAURHIT,,,,%o wurde von dem Minotaurus zu Brei verarbeitet.,%o fue pulpad@[ao_esp] por un Maulotauro.,,%o s'est fait@[e_fr] éclater par un Massetaure.,%o péppé lett zúzva egy Maulotaurusz által.,%o è stato ridotto in poltiglia da un Maulotaur. ,,Игрока %o превратил в кровавое меÑиво Молотавр., +%o was smashed by a golem.,OB_MUMMY,,,,%o wurde von einem Golem erschlagen.,%o fue aplastad@[ao_esp] por un golem.,,%o a été défoncé@[e_fr] par un golem.,%o összelett törve egy Múmia által.,%o è stato schiacciato da una mummia.,%o foi esmagado por um golem.,Игрока %o разбил голем., +%o was shrieked to death by a nitrogolem.,OB_MUMMYLEADER,,,,%o wurde von einem Nitrogolem zu Tode gekreischt.,%o fue chillad@[ao_esp] hasta la muerte por un nitrogolem.,%o ha sido aplanad@[ao_esp] hasta la muerte por un nitrogolem.,%o s'est fait@[e_fr] percer les tympans par un nitrogolem.,%o halálra lett ijesztve egy Nitrógólem által.,%o è stato stroncato da una mummia.,%o agonizou na frente de um nitrogolem.,Игрока %o убил криком нитроголем., +%o was rattled by an ophidian.,OB_SNAKE,,,,%o hörte das Klappern des Ophidian.,%o fue agitad@[ao_esp] por un ofidio.,,%o s'est fait@[e_fr] secouer par un ophidien.,%o halálra lett csörgetve egy Kígyószerű által.,%o è stato stritolato da un serpente.,%o foi sacudido por um ophidian.,Игрока %o потрÑÑ Ð¾Ñ„Ð¸Ð´Ð¸Ð°Ð½., +%o was cursed by a wizard.,OB_WIZARD,,,,%o wurde von dem Magier verflucht.,%o fue maldecid@[ao_esp] por un mago.,%o ha sido hechizad@[ao_esp] por un mago.,%o a été maudit@[e_fr] par un sorcier.,%o meglett átkozva egy Varázsló által.,%o è stato maledetto da un mago.,%o foi amaldicoado por um wizard.,Игрока %o проклÑл волшебник., +%o was palpated by a wizard.,OB_WIZARDHIT,,,,%o spürte den Hauch des Magiers.,%o fue palpad@[ao_esp] por un mago.,,%o a été palpé@[e_fr] par un sorcier.,%o meglett tapogatva egy Varázsló által.,%o è stato toccato da un mago.,%o foi apalpado por um wizard.,Игрока %o нащупал волшебник., +%o got staffed by %k.,OB_MPSTAFF,,,,%o wurde von %k verprügelt.,%o fue apalead@[ao_esp] por %k.,,%o s'est fait@[e_fr] matraquer par %k.,%o meglett botozva %k által.,%o è stato preso a colpi di staffa da %k.,%o levou uma sova do bastão de %k.,Игрок %o Ñел на поÑох игрока %k., +%o got a shock from %k's gauntlets.,OB_MPGAUNTLETS,,,,%o bekam einen Schock von %ks Handschuhen.,%o recibió un choque de los guanteletes de %k.,,%o s'est pris@[e_fr] un coup de jus par les gantelets de %k.,%o kapott egy sokkot %k által.,%o è stato folgorato dai guanti di %k.,%o tomou um choque das luvas de %k.,Игрок %o шокирован перчатками %k., +%o waved goodbye to %k's elven wand.,OB_MPGOLDWAND,,,,%o sagte „Tschüß“ zu %ks Elfenstab.,%o le dijo adiós a la vara de elfo de %k.,,%o à fait coucou à la baguette magique de %k.,%o integetett egy viszlátot %k Elf Pálcájának.,%o ha fatto ciao ciao allo scettro elfico di %k.,%o acenou para o bastao magico de %k.,Игрок %o узрел прощальный взмах ÑльфийÑкого жезла %k., +%o was pegged by %k's ethereal crossbow.,OB_MPCROSSBOW,,,,%o von %ks Armbrustbolzen aufgespießt.,%o fue flechad@[ao_esp] por la ballesta etérea de %k.,,%o s'est fait@[e_fr] clouer par l'arbalète étherique de %k.,%o fel lett rögzítve %k Éteri Nyílpuskájának által.,%o è stato inchiodato dalla balestra eterea di &k.,%o foi esmigalhado pela besta magica de %k.,Игрок %o изранен болтами Ñфирного арбалета %k., +%o was blasted a new one by %k's dragon claw.,OB_MPBLASTER,,,,%o bekam %ks Drachenklaue zu spüren.,%o quedó bien jodid@[ao_esp] por la garra de dragón de %k.,,%o s'est fait flinguer par la griffe draconique de %k.,%o újszerűnek látszik %k Sárkány Karomjának köszönhetÅ‘en.,A %o èstato aperto un buco nuovo dall'Artiglio di Drago di %k.,%o sentiu o poder da garra de dragao de %k.,Игрок %o взорван драконьим когтем %k., +%o got sent down under by %k's hellstaff.,OB_MPSKULLROD,,,,%o brach unter %ks Höllenrute zusammen.,%o se inclinó ante el bastón infernal de %k.,,%o repose six pieds sous terre grâce au Bâton infernal de %k.,%o lelett küldve %k Pokolbotjának köszönhetÅ‘en.,%o è stato mandato sottoterra dalla Staffa Infernale di %k.,%o foi mandado bem pra baixo pelo bastao do inferno de %k.,Игрок %o ÑоÑлан в Ñамый низ поÑохом Ðда %k., +%o was scorched to cinders by %k's phoenix rod.,OB_MPPHOENIXROD,,,,%o wurde voin %ks Phönixstab verschmort.,%o fue reducid@[ao_esp] a cenizas por el báculo del Fénix de %k.,,%o s'est fait@[e_fr] réduire en cendres par le Bâton du Phénix de %k.,%o halomra lett égve %k FÅ‘nix Rúdjának által.,%o è stato ridotto in cenere dal Bastone della Fenice di %k.,%o virou cinzas com o bastao da fenix de %k.,Игрок %o Ñожжён в пепел жезлом феникÑа %k., +%o was bounced by %k's firemace.,OB_MPMACE,,,,%o prallte an %ks Feuerkeule ab.,%o recibió los rebotes de la maza de fuego de %k.,,%o a rebondi@[e_fr] sur les balles de la Masse de Feu à %k.,%o pattant egy nagyot %k Tűzbuzogányának köszönhetÅ‘en.,%o è stato spazzato via dalla Mazza del Fuoco di %k.,%o saiu pulando apos ver a clava de fogo de %k.,Игрок %o отбит огненной булавой %k., +%o got clapped by %k's charged staff.,OB_MPPSTAFF,,,,%o bekam eine Klatsche durch %ks geladenen Stab.,%o recibió los palos del bastón cargado de %k .,,%o à été foudroyé@[e_fr] par le bâton chargé de %k.,%o csattant egy nagyot %k Feltöltött Botjának által.,%o è scoppiato a causa della staffa incantata di %k.,%o tomou um tapa do bastao de %k.,Игрок %o отведал зарÑженного поÑоха %k., +%o was bled dry by %k's gauntlets.,OB_MPPGAUNTLETS,,,,%o wurde von %ks Handschuhen ausgeblutet.,%o fue desangrad@[ao_esp] por los guanteletes de %k.,,%o s'est fait@[e_fr] saigner à blanc par les gantelets de %k.,%o elvérzett %k Páncélöklei által.,Il sangue di %o è stato prosciugato dai guanti di %k.,%o sangrou nas luvas de %k.,Игрок %o опуÑтошён перчатками %k., +%o was assaulted by %k's elven wand.,OB_MPPGOLDWAND,,,,%o wurde von %ks Elfenstab überwältigt.,%o fue asaltad@[ao_esp] por la vara de elfo de %k.,,%o à été assailli@[e_fr] par la baguette elfique de %k.,%o meglett bántva %k Elf Botjának köszönhetÅ‘en.,%o è stato assalito dallo Scettro Elfico di %k.,%o foi massacrado pelo bastao magico de %k.,Игрок %o атакован %k Ñ ÑльфийÑким жезлом., +%o was shafted by %k's ethereal crossbow.,OB_MPPCROSSBOW,,,,%o wurde von %ks Armbrustbolzen durchbohrt.,%o fue encañonad@[ao_esp] por la ballesta etérea de %k.,,%o s'est fait@[e_fr] transpercer par l'arbalète éthérique de %k.,%o megkóstolta %k Éteri Nyílpuskáját.,%o è stato impalato dalla balestra eterea di %k.,%o foi flechado pela besta magica de %k.,Игрок %o пробит Ñфирным арбалетом %k., +%o was ripped apart by %k's dragon claw.,OB_MPPBLASTER,,,,%o wurde von der Drachenklaue zerrissen.,%o fue desgarrad@[ao_esp] por la garra de dragón de %k.,,%o à été mis@[e_fr] en pièces par la griffe draconique de %k.,%o szét lett tépve %k Sárkány Karomja által.,%è stato fatto a brandelli dall'Artiglio di Drago di %k.,%o foi cortado pela garra de dragao de %k.,Игрок %o разорван драконьим когтем %k., +%k poured %p hellstaff on %o.,OB_MPPSKULLROD,,,,%k ließ den Höllenregen auf %o los.,%k virtió su bastón infernal en %o.,,%k à versé toute la rage des enfers sur %o.,%k ráfröcsögte a Pokolbotját %o felé.,%k ha fatto sgorgare la sua Staffa Infernale su %o.,%k usou seu bastao do inferno para banir %o.,"%k залил игрока %o горÑчим дождём, иÑпользовав поÑох ада.", +%o was burned down by %k's phoenix staff.,OB_MPPPHOENIXROD,,,,%o wurde von %ks Phönixstab verbrannt.,%o fue rostizad@[ao_esp] por el báculo del Fénix de %k.,,%o à été incinéré@[e_fr] par le Bâton du Phénix de %k.,%o elégett %k FÅ‘nix Botjának által.,%o è stato incendiato dal Bastone della Fenice di %k.,%o foi queimado pelo bastao da fenix de %k.,Игрок %o Ñожжён жезлом феникÑа %k., +%o was squished by %k's giant mace sphere.,OB_MPPMACE,,,,%o wurde von %ks Feuerkeule zerquetscht.,%o fue aplastad@[ao_esp] por una esfera gigante de la maza de %k.,,%o s'est fait@[e_fr] écraser par la balle de Masse géante de %k.,%o össze lett nyomva %k hatalmas buzogány gömbje által.,%o è stato spiaccicato da una sfera gigante della Mazza del Fuoco di %k.,%o foi esmagado pela clava de %k.,Игрок %o раздавлен огромной Ñферой из огненной булавы %k., +,,,Hexen,,,,,,,,,, +,,,Pickup,,,,,,,,,, +Blue Mana,TXT_MANA_1,,,,Blaues Mana,Maná Azul,Mana Azul,Mana Bleu,,MANA BLU,MANA AZUL,СинÑÑ Ð¼Ð°Ð½Ð°,Плава мана +Green Mana,TXT_MANA_2,,,,Grünes Mana,Maná Verde,Mana Verde,Mana Vert,,MANA VERDE,MANA VERDE,Ð—ÐµÐ»ÐµÐ½Ð°Ñ Ð¼Ð°Ð½Ð°,Зелена мана +Combined Mana,TXT_MANA_BOTH,,,,Kombiniertes Mana,Maná Combinado,Mana Combinado,Mana Combiné,,MANA MISTO,MANA COMBINADA,ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¼Ð°Ð½Ð°,Мешана мана +Steel Key,TXT_KEY_STEEL,,,,Stahlschlüssel,Llave de Acero,,Clé d'Acier,,CHIAVE D'ACCIAIO,,Стальной ключ,Челични кључ +Cave Key,TXT_KEY_CAVE,,,,Höhlenschlüssel,Llave de la Caverna,,Clé de la Cave,,CHIAVE DELLA CAVERNA,,Пещерный ключ,ПећинÑки кључ +Axe Key,TXT_KEY_AXE,,,,Axtschlüssel,Llave de Hacha,,Clé de la Hache,,CHIAVE DELL'ASCIA,,Ключ-топор,Кључ Ñекире +Fire Key,TXT_KEY_FIRE,,,,Feuerschlüssel,Llave de Fuego,,Clé du Feu,,CHIAVE DEL FUOCO,,Огненный ключ,Ватрени кључ +Emerald Key,TXT_KEY_EMERALD,,,,Smaragdschlüssel,Llave Esmeralda,,Clé d'Emeraude,,CHIAVE DI SMERALDO,,Изумрудный ключ,Смарагдни кључ +Dungeon Key,TXT_KEY_DUNGEON,,,,Kerkerschlüssel,Llave del Calabozo,,Clé du Donjon,,CHIAVE DEL SOTTERRANEO ,,Ключ от подземельÑ,Кључ од тамнице +Silver Key,TXT_KEY_SILVER,,,,Silberschlüssel,Llave de Plata,,Clé d'Argent,,CHIAVE D'ARGENTO,,СеребрÑный ключ,Сребрни кључ +Rusted Key,TXT_KEY_RUSTED,,,,Rostiger Schlüssel,Llave Oxidada,,Clé Rouillée,,CHIAVE ARRUGGINITA,,Ржавый ключ,Зарђао кључ +Horn Key,TXT_KEY_HORN,,,,Hornschlüssel,Llave de Cuerno,,Clé Corne,,CHIAVE DEL CORNO,,Роговой ключ,Рогати кључ +Swamp Key,TXT_KEY_SWAMP,,,,Sumpfschlüssel,Llave del Pantano,,Clé des Marécages,,CHIAVE DELLA PALUDE,,Болотный ключ,Мочварни кључ +Castle Key,TXT_KEY_CASTLE,,,,Burgschlüssel,Llave del Castillo,,Clé du Château,,CHIAVE DEL CASTELLO,,Ключ от замка,Кључ од замка +Icon of the Defender,TXT_ARTIINVULNERABILITY2,,,,Ikone des Verteidigers,Icono del Defensor,,Icône du Défenseur,,ICONA DEL DIFENSORE,,Символ защитника,Икона браниоца +Dark Servant,TXT_ARTISUMMON,,,,Dunkler Diener,Sirviente Oscuro,,Serviteur Noir,,SERVITORE OSCURO,,Тёмный Ñлуга,Мрачни Ñлуга +Porkalator,TXT_ARTIEGG2,,,,,Porcinador,,Porcificateur,,PORCHIFICATORE,,Свиноморфер,Поркалатор +Flechette,TXT_ARTIPOISONBAG,,,,,Flechette,,Fléchette,,FIASCHETTA,,Зелье,Флечет +Banishment Device,TXT_ARTITELEPORTOTHER,,,,Verbannungsgerät,Dispositivo de Desvanecimiento,,Outil de Banissement,,ARTIFATTO DELL'ESILIO,,Эмблема изгнаниÑ,Уређај протеривања +Boots of Speed,TXT_ARTISPEED,,,,Turbo-Stiefel,Botas de Velocidad,,Bottes de Célérité,,STIVALI DELLA VELOCITà,,Сапоги-Ñкороходы,Чизме брзине +Krater of Might,TXT_ARTIBOOSTMANA,,,,Kelch der Macht,Vasija de Fuerza,,Cratère de Pouvoir,,CALICE DELLA FORZA,,Чаша могущеÑтва,Кратер Ñиле +Dragonskin Bracers,TXT_ARTIBOOSTARMOR,,,,Drachenhaut-Armschutz,Brazaletes de piel de Dragón,,Bracelets en Peau de Dragon,,BRACCIALI IN PELLE DI DRAGO,,Ðаручи из драконьей кожи,Ðаруквице од змајеве коже +Disc of Repulsion,TXT_ARTIBLASTRADIUS,,,,Rückstoßscheibe,Disco de Repulsión,,Disque de Répulsion,,DISCO DELLA REPULSIONE,,ДиÑк отторжениÑ,ДиÑк одвратноÑти +Mystic Ambit Incant,TXT_ARTIHEALINGRADIUS,,,,Verbannungsgerät,Encanto de Ãmbito Místico,,Incantation Mystique,,CONFINE MISTICO,,Чары магичеÑкого единÑтва,МиÑтични очарани Ñвитак +Yorick's Skull,TXT_ARTIPUZZSKULL,,,,Yoricks Schädel,Calavera de Yorick,,Crâne de Yorick,,TESCHIO DI YORICK,,Череп Йорика,Јорикова лобања +Heart of D'sparil,TXT_ARTIPUZZGEMBIG,,,,D'Sparils Herz,Corazón de D'Sparil,,CÅ“ur de D'Sparil,,CUORE DI D'SPARIL,,Сердце Д'Спарила,Срце Д'Спарила +Ruby Planet,TXT_ARTIPUZZGEMRED,,,,Rubinplanet,Planeta Rubí,,Planète de Rubis,,PIANETA DI RUBINO,,Ð ÑƒÐ±Ð¸Ð½Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета рубина +Emerald Planet,TXT_ARTIPUZZGEMGREEN1,,,,Smaragdplanet,Planeta Esmeralda,,Planète d'Emeraude,,PIANETA DI SMERALDO,,Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета Ñмарагда +Emerald Planet,TXT_ARTIPUZZGEMGREEN2,,,,Smaragdplanet,Planeta Esmeralda,,Planète de Saphir,,PIANETA DI SMERALDO,,Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета Ñмарагда +Sapphire Planet,TXT_ARTIPUZZGEMBLUE1,,,,Saphirplanet,Planeta Zafiro,,Planète de Saphir,,PIANETA DI ZAFFIRO,,Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета Ñафира +Sapphire Planet,TXT_ARTIPUZZGEMBLUE2,,,,Saphirplanet,Planeta Zafiro,,Planète de Saphir,,PIANETA DI ZAFFIRO,,Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета Ñафира +Daemon Codex,TXT_ARTIPUZZBOOK1,,,,,Códice del Demonio,,Codex Démoniaque,,DAEMON CODEX,,ÐšÐ¾Ð´ÐµÐºÑ Ð´ÐµÐ¼Ð¾Ð½Ð°,ДемонÑки ÐºÐ¾Ð´ÐµÐºÑ +Liber Oscura,TXT_ARTIPUZZBOOK2,,,,,Liber Oscura,,Liber Oscura,,LIBER OSCURA,,Liber Oscura,Либер оÑкура +Flame Mask,TXT_ARTIPUZZSKULL2,,,,Flammenmaske,Mascara de Llamas,Mascara de Flamas,Masque de Flammes,,MASCHERA DELLE FIAMME,,МаÑка пламени,МаÑка пламена +Glaive Seal,TXT_ARTIPUZZFWEAPON,,,,Schwetsiegel,Sello de Espada,,Sceau du Glaive,,SIGILLO DELLA BRANDO,,Печать воителÑ,Запечаћен глејв +Holy Relic,TXT_ARTIPUZZCWEAPON,,,,Heiliges Relikt,Santa Reliquia,,Relique Sacrée,,RELIQUIA SACRA,,СвÑÑ‚Ð°Ñ Ñ€ÐµÐ»Ð¸ÐºÐ²Ð¸Ñ,Света реликвија +Sigil of the Magus,TXT_ARTIPUZZMWEAPON,,,,Symbol des Magiers,Emblema del Mago,,Sceau du Mage,,SUGGELLO DEL MAGUS,,Символ мага,МагнуÑов Ñигил +Clock Gear,TXT_ARTIPUZZGEAR,,,,Zahnrad,Engranaje de reloj,,Rouage d'Horloge,,INGRANAGGIO D'OROLOGIO,,ЧаÑÐ¾Ð²Ð°Ñ ÑˆÐµÑтернÑ,Сатни зупчаник +You Cannot Use This Here,TXT_USEPUZZLEFAILED,,,,Das kannst du hier nicht benutzen,No puedes usar esto aquí,,Vous ne pouvez pas utiliser cela ici.,,NON PUOI USARE QUESTO OGGETTO QUI,,ЗдеÑÑŒ Ñто невозможно иÑпользовать,Ðе можете ово кориÑтити овде +Mesh Armor,TXT_ARMOR1,,,Mesh Armour,Kettenrüstung,Armadura de Malla,,Armure de Mailles,,MAGLIA METALLICA,,Кольчуга,Верижњача +Falcon Shield,TXT_ARMOR2,,,,Falkenschild,Escudo de Halcón,,Bouclier du Faucon,,SCUDO DEL FALCO,,Соколиный щит,Соколови штит +Platinum Helmet,TXT_ARMOR3,,,,Platinhelm,Casco de Platino,,Casque de Platine,,ELMO DI PLATINO,,Платиновый шлем,Кацига од платине +Amulet of Warding,TXT_ARMOR4,,,,Wachamulett,Amuleto de Guarda,,Amulette de Protection,,AMULETO DI PROTEZIONE,,Ðмулет Ñтража,Ðмулет одлагања +Timon's Axe,TXT_WEAPON_F2,,,,Timons Axt,Hacha de Timón,,Hache de Timon,,ASCIA DI TIMON,,Топор Тимона,Тимонова Ñекира +Hammer of Retribution,TXT_WEAPON_F3,,,,Hammer der Rache,Martillo de Retribución,,Marteau de la Rétribution,,MARTELLO DEL CASTIGO,,Молот возмездиÑ,Чекић одмазде +Quietus Assembled,TXT_WEAPON_F4,,,,Erlöser komplettiert,Quietus Ensamblado,,Quietus Assemblée,,QUIETUS ASSEMBLATO,,ПоÑледний довод Ñобран воедино,Тишина ÑаÑтављена +Serpent Staff,TXT_WEAPON_C2,,,,Schlangenstab,Vara de Serpiente,,Sceptre du Serpent,,BASTONE DEL SERPENTE,,Змеиный поÑох,Змијин штап +Firestorm,TXT_WEAPON_C3,,,,Feuersturm,Tormenta de Fuego,,Tempête de Feu,,TEMPESTA DI FUOCO,,Огненный шторм,Ватрена олуја +Wraithverge Assembled,TXT_WEAPON_C4,,,,Geisterbringer komplettiert,Vara Fantasmal Ensamblada,Vara Fantasmal Ensamblada,Verge Phantasmale Assemblée,,VERGA SCONFINASPETTRI ASSEMBLATA,,Жезл духов Ñобран воедино,Штап утвара ÑаÑтављен +Frost Shards,TXT_WEAPON_M2,,,,Frostsplitter,Fragmentos de Escarcha,,Eclats de Givre,,FRANTUMI GELATI,,ЛедÑные оÑколки,Ледене крхотине +Arc of Death,TXT_WEAPON_M3,,,,Todesblitz,Arcos de la Muerte,,Foudre Mortelle,,ARCO DELLA MORTE,,Дуга Ñмерти,Лукови Ñмрти +Bloodscourge Assembled,TXT_WEAPON_M4,,,,Blutgeißel komplettiert,Plaga Sangrienta ensamblada,,Fléau Sanglant Assemblé,,FLAGELLO DI SANGUE ASSEMBLATO,,Кровавый бич Ñобран воедино,Крваво зло ÑаÑтављено +A weapon piece! This is your lucky day!,TXT_WEAPONPIECE,,,,Ein Waffensegment. Das ist dein Glückstag!,¡Una pieza de un arma! ¡Es tu día de suerte!,,Une pièce d'arme! C'est votre jour de chance!,,Il frammento di un'arma! E' il tuo giorno fortunato! ,,ЧаÑÑ‚ÑŒ оружиÑ! Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð’Ð°Ñˆ ÑчаÑтливый день!,Део оружја! Ово је твој Ñретан дан! +Segment of Quietus,TXT_QUIETUS_PIECE,,,,Segment des Erlösers,Segmento de Quietus,,Segment de Quietus,,PARTE DEL QUIETUS,,ЧаÑÑ‚ÑŒ поÑледнего довода,Део тишине +Segment of Wraithverge,TXT_WRAITHVERGE_PIECE,,,,Segment des Geisterbringers,Segmento del Báculo Fantasmal,,Segment de la Verge Phantasmale,,PARTE DELLA VERGA SCONFINASPETTRI,,ЧаÑÑ‚ÑŒ жезла духов,Део штапа утвара +Segment of Bloodscourge,TXT_BLOODSCOURGE_PIECE,,,,Segment der Blutgeißel,Segmento de la Plaga Sangrienta,,Segment du Fléau Sanglant,,PARTE DEL FLAGELLO DI SANGUE,,ЧаÑÑ‚ÑŒ кровавого бича,Део крвавог зла +,,,Locks,,,,,,,,,, +You need the Steel Key,TXT_NEED_KEY_STEEL,,,,Du brauchst den Stahlschlüssel,Necesitas la Llave de Acero,,Vous avez besoin de la Clé d'Acier,,Ti serve la Chiave d'Acciaio,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ Ñтальной ключ,Треба вам челични кључ +You need the Cave Key,TXT_NEED_KEY_CAVE,,,,Du brauchst den Höhlenschlüssel,Necesitas la Llave de la Caverna,,Vous avez besoin de la Clé de la Cave,,Ti serve la Chiave della Caverna ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ пещерный ключ,Треба вам пећинÑки кључ +You need the Axe Key,TXT_NEED_KEY_AXE,,,,Du brauchst den Axtschlüssel,Necesitas la Llave de Hacha,,Vous avez besoin de la Clé de la Hache,,Ti serve la Chiave dell'Ascia,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ-топор,Треба вам кључ Ñекире +You need the Fire Key,TXT_NEED_KEY_FIRE,,,,Du brauchst den Feuerschlüssel,Necesitas la Llave de Fuego,,Vous avez besoin de la Clé du Feu,,Ti serve la Chiave del Fuoco ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ огненный ключ,Треба вам ватрени кључ +You need the Emerald Key,TXT_NEED_KEY_EMERALD,,,,Du brauchst den Smaragdschlüssel,Necesitas la Llave Esmeralda,,Vous avez besoin de la Clé d'Emeraude,,Ti serve la Chiave di Smeraldo ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ изумрудный ключ,Треба вам Ñмарагдни кључ +You need the Dungeon Key,TXT_NEED_KEY_DUNGEON,,,,Du brauchst den Kerkerschlüssel,Necesitas la Llave del Calabozo,,Vous avez besoin de la Clé du Donjon,,Ti serve la Chiave del Sotterraneo ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ от подземельÑ,Треба вам кључ од тамнице +You need the Silver Key,TXT_NEED_KEY_SILVER,,,,Du brauchst den Silberschlüssel,Necesitas la Llave de Plata,,Vous avez besoin de la Clé d'Argent,,Ti serve la Chiave d'Argento ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ÑеребрÑный ключ,Треба вам Ñребрни кључ +You need the Rusted Key,TXT_NEED_KEY_RUSTED,,,,Du brauchst den rostigen Schlüssel,Necesitas la Llave Oxidada,,Vous avez besoin de la Clé Rouillée,,Ti serve la Chiave Arrugginita ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ржавый ключ,Треба вам зарђао кључ +You need the Horn Key,TXT_NEED_KEY_HORN,,,,Du brauchst den Hornschlüssel,Necesitas la Llave de Cuerno,,Vous avez besoin de la Clé Corne,,Ti serve la Chiave del Corno ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ роговой ключ,Треба вам рогати кључ +You need the Swamp Key,TXT_NEED_KEY_SWAMP,,,,Du brauchst den Sumpfschlüssel,Necesitas la Llave del Pantano,,Vous avez besoin de la Clé des Marécages,,Ti serve la Chiave della Palude ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ болотный ключ,Треба вам мочварни кључ +You need the Castle Key,TXT_NEED_KEY_CASTLE,,,,Du brauchst den Burgschlüssel,Necesitas la Llave del Castillo,,Vous avez besoin de la Clé du Château,,Ti serve la Chiave del Castello ,,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ от замка,Треба вам кључ од замка +,,,Actor tag names,,,,,,,,,, +Afrit,FN_FIREDEMON,,,,,,,,,Afrit,,Ðфрит, +Serpent,FN_DEMON1,,,,Chaos-Schlange,Serpiente,,,,Serpente del Caos,,Серпент, +Ettin,FN_ETTIN,,,,,,,,,Ettin,,Эттин, +Centaur,FN_CENTAUR,,,,Zentaur,Centauro,,Centaure,,Centauro,,Кентавр, +Slaughtaur,FN_SLAUGHTAUR,,,,Schlachtaur,Massacauro,,Sangtaure,,Sventrauro,,Старший кентавр, +Bishop,FN_BISHOP,,,,Bischof,Obispo,,Evèque,,Vescovo,,ЕпиÑкоп, +Wendigo,FN_ICEGUY,,,,,,,,,Wendigo,,Вендиго, +Stalker,FN_SERPENT,,,,Wasserjäger,Acechador,,Chasseur,,Cacciatore,,Сталкер, +Reiver,FN_WRAITH,,,,Phantom,Saqueador,,,,Incursore,,Грабитель, +Death Wyvern,FN_DRAGON,,,,Todesdrache,Wyvern de la muerte,Guiverno de la muerte,Vouivre de la Mort,,Viverna Mortale,,Виверна Ñмерти, +Korax,FN_KORAX,,,,,,,,,Korax,,КоракÑ, +Zedek,FN_FBOSS,,,,,,,,,Zedek,,Зедек, +Menelkir,FN_MBOSS,,,,,,,,,Menelkir,,Менелкир, +Traductus,FN_CBOSS,,,,,,,,,Traductus,,ТрадуктуÑ, +Heresiarch,FN_HERESIARCH,,,,Erzketzer,Heresiarca,,L'Hérésiarche,,Eresiarca,,ЕреÑиарх, +Blue Mana,AMMO_MANA1,,,,Blaues Mana,Maná azul,Mana azul,Mana Bleu,,,,СинÑÑ Ð¼Ð°Ð½Ð°,Плава мана +Green Mana,AMMO_MANA2,,,,Grünes Mana,Maná verde,Mana verde,Mana Vert,,,,Ð—ÐµÐ»Ñ‘Ð½Ð°Ñ Ð¼Ð°Ð½Ð°,Зелена мана +Mace of Contrition,TAG_CWEAPMACE,,,,Streitkolben,Maza de Contrición,,Masse de Pénitence,Bűnbánat Buzogánya,Mazza del Pentimento,,Булава раÑкаÑниÑ,Буздован кајања +Serpent Staff,TAG_CWEAPSTAFF,,,,Schlangenstab,Bastón de Serpiente,,Sceptre du Serpent,Kígyó Bot,Staffa del Serpente ,,Змеиный поÑох,Змијин штап +Firestorm,TAG_CWEAPFLAME,,,,Feuersturm,Tormenta de Fuego,,Tempête de Feu,Tűzvihar,Tempesta di Fuoco ,,Огненный шторм,Ватрена олуја +Wraithverge,TAG_CWEAPWRAITHVERGE,,,,Geisterbringer,Báculo Fantasmal,,Verge Phantasmale,Lélekvég,Verga SconfinaSpettri,,Жезл духов,Штап утвара +Spiked Gauntlets,TAG_FWEAPFIST,,,,Stachelhandschuhe,Guanteletes Puntiagudos,,Gantelets à Pointes,Tűskés Páncélkesztyűk,Guantoni Spinati,,ШипаÑтые рукавицы,Бодљикаве рукавице +Timon's Axe,TAG_FWEAPAXE,,,,Timons Axt,Hacha de Timón,,Hache de Timon,Timon Baltája,Ascia di Timon,,Топор тимона,Тимонова Ñекира +Hammer of Retribution,TAG_FWEAPHAMMER,,,,Hammer der Rache,Martillo de Retribución,,Marteau de la Rétribution,Büntetés Kalapácsa,Martello del Castigo,,Молот возмездиÑ,Чекић одмазде +Quietus,TAG_FWEAPQUIETUS,,,,Erlöser,,,Quietus,Némusz,Quietus,,ПоÑледний довод,Тишина +Sapphire Wand,TAG_MWEAPWAND,,,,Saphirstab,Varita de Zafiro,,Baguette de Saphir,Zafír Pálca,Scettro di Zaffiro ,,Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð²Ð¾Ð»ÑˆÐµÐ±Ð½Ð°Ñ Ð¿Ð°Ð»Ð¾Ñ‡ÐºÐ°,Сафиров штап +Frost Shards,TAG_MWEAPFROST,,,,Frostsplitter,Fragmentos de Escarcha,,Eclats de Givre,Fagy Szilánkok,Schegge di Ghiaccio ,,Замораживающие оÑколки,Ледене крхотине +Arcs of Death,TAG_MWEAPLIGHTNING,,,,Todesblitz,Arcos de la Muerte,,Foudre Mortelle,Halál Körívei,Archi della Morte ,,Дуга Ñмерти,Лукови Ñмрти +Bloodscourge,TAG_MWEAPBLOODSCOURGE,,,,Blutgeißel,Plaga Sangrienta,,Fléau Sanglant,Vérkorbács,Flagello di Sangue,,Кровавый бич,Крваво зло +Disc of Repulsion,TAG_ARTIBLASTRADIUS,,,,Rückstoßscheibe,Disco de Repulsión,,Disque de Répulsion,Visszaszorítás Lemeze,Disco della Repulsione ,,Отражающий диÑк,ДиÑк одвратноÑти +Dragonskin Bracers,TAG_ARTIBOOSTARMOR,,,,Drachenhaut-Armschutz,Brazaletes de piel de Dragón,,Brassards en peau de Dragon,SárkánybÅ‘r Hevederek,Bracciali in Pelle di Drago ,,Ðаручи драконьей кожи,Ðаруквице од змајеве коже +Krater of Might,TAG_ARTIBOOSTMANA,,,,Kelch der Macht,Crátera de Poder,,Cratère de Pouvoir,Hatalom Kráterje,Calice della Forza,,Кубок могущеÑтва,Кратер Ñиле +Flechette,TAG_ARTIPOISONBAG,,,,,,,Fléchette,Nyíl,Fiaschetta ,,Флешетта,Флечет +Poison Cloud Flechette,TAG_ARTIPOISONBAG1,,,,Flechette (Giftwolke),Flechette de Nube Venenosa,,Fléchette - Nuage Toxique,MérgezÅ‘ FelhÅ‘ Nyíl,Fiaschetta Velenosa,,Флешетта Ñдовитого облака,Флечет отровног облака +Timebomb Flechette,TAG_ARTIPOISONBAG2,,,,Flechette (Zeitbombe),Bomba de Tiempo Flechette,,Fléchette - Bombe a Retardement,IdÅ‘bomba Nyíl,Fiaschetta a Tempo ,,Флешетта чаÑовой бомбы,Флечет временÑке бомбе +Grenade Flechette,TAG_ARTIPOISONBAG3,,,,Flechettre (Granate),Granada Flechette,,Fléchette - Grenade,Gránát Nyíl,Fiaschetta da Lancio,,Флешетта граната,Флечет граната +Mystic Ambit Incant,TAG_ARTIHEALINGRADIUS,,,,,Encantamiento de Ãmbito Místico,,Incantation Mystique,Misztikus Mágialista,Incantamento Mistico ,,МиÑтичеÑкий зачарованный Ñвиток,МиÑтични очарани Ñвитак +Icon of the Defender,TAG_ARTIDEFENDER,,,,Ikone des Verteidigers,Icono del Defensor,,Icône du Défenseur,VédelmezÅ‘ Ikonja,Emblema del Difensore ,,Икона защитника,Икона браниоца +Porkelator,TAG_ARTIPORK,,,,Porkalator,Porcinador,,Porcificateur,Malacátor,Porchificatore,,ХрÑкинатор,Поркалатор +Boots of Speed,TAG_ARTISPEED,,,,Turbo-Stiefel,Botas de Velocidad,,Bottes de Célérité,Sebesség CipÅ‘i,Stivali della Fretta,,Сапоги ÑкороÑти,Чизме брзине +Dark Servant,TAG_ARTISUMMON,,,,Dunkler Diener,Servidor Oscuro,,Serviteur Noir,Sötét Szolga,Servo Oscuro,,Тёмный Ñлуга,Мрачни Ñлуга +Banishment Device,TAG_ARTITELEPORTOTHER,,,,Verbannungsgerät,Dispositivo de Destierro,,Outil de Banissement,SzámüzetÅ‘ Készülék,Congegno dell'Esilio,,Механизм изгнаниÑ,Уређај протеривања +Yorick's Skull,TAG_ARTIPUZZSKULL,,,,Yoricks Schädel,Calavera de Yorick,Cráneo de Yorick,Crâne de Yorick,Yorick Koponyája,Teschio di Yorick,,Череп Йорика,Јорикова лобања +Heart of D'Sparil,TAG_ARTIPUZZGEMBIG,,,,D'Sparils Herz,Corazón de D'Sparil,,CÅ“ur de D'Sparil,D'Sparil Szíve,Cuore di D'Sparil,,Серце Д'Спарила,Срце Д'Спарила +Ruby Planet,TAG_ARTIPUZZGEMRED,,,,Rubinplanet,Planeta Rubí,,Planète en rubis,Rubin Bolygó,Pianeta di Rubino,,Ð ÑƒÐ±Ð¸Ð½Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°,Планета рубина +Emerald Planet (1),TAG_ARTIPUZZGEMGREEN1,,,,Smaragdplanet (1),Planeta Esmeralda (1),,Planète en émeraude (1),Smaragd Bolygó (1),Pianeta di Smeraldo (1),,Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð° (1),Планета Ñмарагда (1) +Emerald Planet (2),TAG_ARTIPUZZGEMGREEN2,,,,Smaragdplanet (2),Planeta Esmeralda (2),,Planète en émeraude (2),Smaragd Bolygó (2),Pianeta di Smeraldo (2),,Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð° (2),Планета Ñмарагда (2) +Sapphire Planet (1),TAG_ARTIPUZZGEMBLUE1,,,,Saphirplanet (1),Planeta Zafiro (1),,Planète en saphir (1),Zafír Bolygó (1),Pianeta di Zaffiro (1),,Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð° (1),Планета Ñафира (1) +Sapphire Planet (2),TAG_ARTIPUZZGEMBLUE2,,,,Saphirplanet (2),Planeta Zafiro (2),,Planète en saphir (2),Zafír Bolygó (2),Pianeta di Zaffiro (2),,Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð° (2),Планета Ñафира (2) +Daemon Codex,TAG_ARTIPUZZBOOK1,,,,,Códice del Demonio,,Codex Démoniaque,Démon Kódex,Codice Demoniaco ,,ÐšÐ¾Ð´ÐµÐºÑ Ð´ÐµÐ¼Ð¾Ð½Ð°,ДемонÑки ÐºÐ¾Ð´ÐµÐºÑ +Liber Oscura,TAG_ARTIPUZZBOOK2,,,,,Liber Oscura,,,,Liber Oscura ,,Либер ОÑкура,Либер ОÑкура +Flame Mask,TAG_ARTIPUZZSKULL2,,,,Flammenmaske,Mascara de Llamas,Mascara de Flamas,Masque de Flammes,Láng Maszk,Maschera delle Fiamme ,,ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñка,МаÑка пламена +Glaive Seal,TAG_ARTIPUZZFWEAPON,,,,Schwertsiegel,Sello de Espada,,Sceau du Glaive,Glaive Pecsét,Sigillo del Brando,,Запечатанный палаш,Запечаћени глејв +Holy Relic,TAG_ARTIPUZZCWEAPON,,,,Heiliges Relikt,Santa Reliquia,,Relique Sacrée,Szent Ereklye,Reliquia Sacra,,СвÑÑ‚Ð°Ñ Ñ€ÐµÐ»Ð¸ÐºÐ²Ð¸Ñ,Света реликвија +Sigil of the Magus,TAG_ARTIPUZZMWEAPON,,,,Symbol des Magiers,Emblema del Mago,,Sceau du Mage,Mágus Pecsétje,Suggello del Magus,,Сигила магнуÑа,МагнуÑов Ñигил +Iron gear,TAG_ARTIPUZZGEAR1,,,,Eisenzahnrad,Engranaje de Hierro,,Engrenage en Fer,Vas Felszerelés,Ingranaggio di Ferro,,Ð–ÐµÐ»ÐµÐ·Ð½Ð°Ñ ÑˆÐµÑтернÑ,Сатни зупчаник +Brass gear,TAG_ARTIPUZZGEAR2,,,,Messingzahnrad,Engranaje de Bronce,,Engrenage en Bronze,Sárgaréz Felszerelés,Ingranaggio di Ottone ,,Ð›Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ ÑˆÐµÑтернÑ,МеÑингани зупчаник +Brass and iron gear,TAG_ARTIPUZZGEAR3,,,,Messing-und-Eisen-Zahnrad,Engranaje de Bronce y Hierro,,Engrenage en Fer et Bronze,Vas és Sárgaréz Felszerelés,Ingranaggio di Ferro e Ottone ,,Ð›Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ Ð¸ Ð¶ÐµÐ»ÐµÐ·Ð½Ð°Ñ ÑˆÐµÑтерни,МеÑингани и Ñатни зупчаник +Silver and brass gear,TAG_ARTIPUZZGEAR4,,,,Silber-und-Messing-Zahnrad,Engranaje de Plata y Bronce,,Engrenage en Argent et Bronze,Ezüst és Sárgaréz Felszerelés,Ingranaggio di Ottone e Argento ,,СеребрÑÐ½Ð°Ñ Ð¸ Ð»Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ ÑˆÐµÑтерни,Сребрни и меÑингани зупчаник +,,,Obituaries,,,,,,,,,, +%o tasted an Afrit's fire.,OB_FIREDEMON,,,,%o spürte das Feuer des Afrits.,%o probó el fuego de un Afrit.,,%o a goûté au feu d'un Afrit.,%o megkóstolta a Tűz Szellem varázsát.,%o ha assaggiato il fuoco di un Afrit. ,,%o отведал@[ao_rus] Ð¾Ð³Ð½Ñ Ðфрита., +%o was scalded by a Serpent.,OB_DEMON1,,,,%o wurde von der Chaos-Schlange gebissen.,%o fue escaldad@[ao_esp] por una Serpiente.,,%o a été brûlé@[e_fr] par un Serpent.,%o meglett forrázva egy Kígyó által.,%o è stato sciolto da un Serpente del Caos,,Игрока %o Ñпалил Серпент., +%o was poisoned by a Serpent.,OB_DEMON2,,,,%o wurde von der Chaos-Schlange verbrannt.,%o fue envenenad@[ao_esp] por una Serpiente.,,%o a été empoisonné@[e_fr] par un Serpent.,%o meglett mérgezve egy Kígyó által.,%o è stato avvelenato da un Serpente del Caos. ,,Игрока %o отравил Серпент., +%o was mashed by an Ettin.,OB_ETTIN,,,,%o wurde von dem Ettin zermatscht.,%o fue hech@[ao_esp] puré por un Ettin.,%o quedó hech@[ao_esp] puré por un Ettin.,%o a été réduit@[e_fr] en purée par un Ettin.,%o péppé lett ütve egy Kétfejű által.,%o è stato schiacciato da un Ettin. ,,Игрока %o раздробил Эттин., +%o was cut up by a Centaur.,OB_CENTAUR,,,,%o wurde von dem Zentaur aufgeschlitzt.,%o fue partid@[ao_esp] por un Centauro.,,%o a été tranché@[e_fr] par un Centaure.,%o szétlett vágva egy Kentaur által.,%o è stato affettato da un Centauro. ,,Игрока %o разрезал Кентавр., +%o was cut up by a Slaughtaur.,OB_SLAUGHTAURHIT,,,,%o wurde von dem Schlachtaur aufgeschlitzt.,%o fue partid@[ao_esp] por un Masacrauro.,,%o a été tranché@[e_fr] par un Sangtaure.,%o szétlett vágva egy Vágtaur által.,%o è stato affettato da uno Sventrauro. ,,Игрока %o разрезал Старший кентавр., +%o was struck down by a Slaughtaur's fireball.,OB_SLAUGHTAUR,,,,%o wurde von dem Feuerball des Schlachtaurs niedergestreckt.,%o fue abatid@[ao_esp] por la bola de fuego de un Masacrauro.,,%o a été touché@[e_fr] par une boule de feu de Sangtaure.,%o szétesett egy Vágtaur tűzgolyója által.,%o è stato abbattuto dalla palla di fuoco di uno Sventrauro. ,,Игрока %o Ñбил огненным шаром Старший кентавр., +%o succumbed to a Bishop's dark power.,OB_BISHOP,,,,%o fiel der dunklen Macht des Bischofs zum Opfer.,%o fue sucumbid@[ao_esp] al poder oscuro de un Obispo.,,%o a succombé au pouvoir obscur d'un évèque.,%o megadta magát a Püspök fekete erejének.,%o è stato sottomesso dalla magia oscura di un Vescovo. ,,%o поддал@[refl_rus] чёрным Ñилам ЕпиÑкопа., +%o was frozen solid by a Wendigo.,OB_ICEGUY,,,,%o wurde von dem Wendigo tiefgefroren.,%o quedó congelad@[ao_esp] por un Wendigo.,,%o a été gelé@[e_fr] par un Wendigo.,%o befagyott egy Wendigo által.,%o è stato congelato da un Wendigo. ,,Игрока %o полноÑтью заморозил Вендиго., +%o was mauled by a Stalker.,OB_SERPENTHIT,,,,%o wurde von dem Wasserjäger zerfleischt.,%o fue triturad@[ao_esp] por un Acechador.,,%o a été mutilé@[e_fr] par un Chasseur.,%o szétlett marcangolva egy Orvvadász által.,%o è stato malmenato da un Cacciatore. ,,Игрока %o Ñломал Сталкер., +%o was melted by a Stalker.,OB_SERPENT,,,,%o wurde von dem Wasserjäger geschmolzen.,%o fue derretid@[ao_esp] por un Acechador.,,%o a été fondu@[e_fr] par un Chasseur.,%o szétfolyt egy Orvvadász által.,%o è stato squagliato da un Cacciatore. ,,Игрока %o раÑплавил Сталкер., +%o was charred by a Reiver.,OB_WRAITH,,,,%o wurde von dem Phantom verkohlt.,%o fue carbonizad@[ao_esp] por un Saqueador.,,%o a été carbonisé@[e_fr] par un Reiver.,%o elszenesedett egy Fosztogató által.,%o è stato carbonizzato da un Incursore. ,,Игрока %o обуглил Грабитель., +%o had %p life stolen by a Reiver.,OB_WRAITHHIT,,,,%o wurde das Leben von dem Phantom gestohlen.,%o fue robad@[ao_esp] de su vida por un Saqueador.,,%o a perdu la vie face à un Reiver.,%o élete el lett lopva egy Fosztogató által.,%o ha permesso che un Incursore prosciugasse la sua vita ,,Жизнь игрока %o украл Грабитель., +%o was incinerated by the Death Wyvern.,OB_DRAGON,,,,%o wurde von dem Todesdrachen verbrannt.,%o fue calcinad@[ao_esp] por el Guiverno de la Muerte.,,%o a été incinéré@[e_fr] par une vouivre de la mort.,%o el lett égetve egy Halál Sárkány által.,%o è stato incenerito da una Viverna Mortale. ,,Игрока %o кремировала Виверна Смерти., +%o was swept from the board by Korax.,OB_KORAX,,,,%o wurde von Korax vom Feld gefegt.,%o fue barrid@[ao_esp] del tablero por Korax.,,%o a été balayé@[e_fr] de l'échiquier par Korax.,%o el lett söpörve a tábláról Korax által.,%o è stato eliminato dalla scacchiera da Korax. ,,Игрока %o Ñкинул Ñ Ð´Ð¾Ñки КоракÑ., +%o was slain by Zedek.,OB_FBOSS,,,,%o wurde von Zedek hingemetzelt.,%o recibió una puñalada de Zedek.,,%o a été pourfendu@[e_fr] par Zedek.,%o meghalt Zedek által.,%o è stato ammazzato da Zedek. ,,Игрока %o Ñразил Зедек., +%o couldn't absorb Menelkir's Mana.,OB_MBOSS,,,,%o konnte Menelkirs Mana nicht verkraften.,%o no pudo absorber el maná de Menelkir.,%o No pudo absorber el mana de Menelkir.,%o n'aurait pu absorber le mana de Menelkir.,%o nem tudta elnyelni Menelkir manáját.,%o non è riuscito ad assorbire il mana di Menelkir. ,,%o не Ñмог@[irreg_2_rus] боротьÑÑ Ñ Ð¼Ð°Ð½Ð¾Ð¹ Менелкира., +%o was baptized by Traductus.,OB_CBOSS,,,,%o wurde von Traductus getauft.,%o fue bautizad@[ao_esp] por Traductus.,,%o a été baptisé@[e_fr] par Traductus.,%o meglett keresztelve Traductus által.,%o è stato battezzato da Traductus. ,,Игрока %o креÑтил ТрадуктуÑ., +%o had %p bones rolled by the Heresiarch.,OB_HERESIARCH,,,,%os Knochen wurden vom Erzketzer gerollt.,%o tuvo sus huesos arrollados por el Heresiarca.,,%o s'est fait@[e_fr] rouler les os par l'Hérésiarche.,%o csontváza kilett forgatva az Eretnek Vezér által.,Le ossa di %o sono state accartocciate dall'Eresiarca. ,,ЕреÑиарх Ñыграл в коÑти игрока %o., +%o was beaten to a pulp by %k's bare fists.,OB_MPFWEAPFIST,,,,%o wurde von %ks nackten Fäusten zu Hackfleisch verarbeitet.,%o quedó molid@[ao_esp] a golpes por los puños limpios de %k.,,%o à été tabassé@[e_fr] à mort par les poings de %k.,%o péppé lett verve %k ökleivel.,%k ha ridotto %o in poltiglia a mani nude.,,Игрок %o избит в мÑÑо голыми руками %k., +%o got the axe from %k.,OB_MPFWEAPAXE,,,,%o sah %ks Axt.,%o recibió el hachazo de %k.,,%o s'est fait@[e_fr] hacher menu par %k.,%o megkapta %k baltáját.,%o ha preso un colpo d'ascia da %k.,,Игрок %o Ñловил топорик %k., +%o had %p head caved in by %k's hammer.,OB_MPFWEAPHAMMERM,,,,%o wurde der Kopf von %ks Hammer eingeschlagen.,%o tuvo su cabeza hundida por el martillo de %k.,,%o s'est fait@[e_fr] éclater le crâne par le marteau de %k.,%o kapott egy üreges fejet %k Kalapácsa által.,La testa di %o è stata aperta in due dal martello di %k.,,Голова игрока %o была вдолблена в тело молотом %k., +%o's soul was forged anew by %k's hammer.,OB_MPFWEAPHAMMERR,,,,%os Seele wurde durch %ks Hammer erneuert.,El alma de %o fue forjada de nuevo por el martillo de %k.,,%o a eu son âme reforgée par le marteau de %k.,%o lelke újra lett kovácsolva %k Kalapácsa által.,L'anima di %o è stata riforgiata dal martello di %k.,,Душа игрока %o была перекована молотом %k., +%o was silenced by %k's mighty Quietus.,OB_MPFWEAPQUIETUS,,,,%o wurde durck %ks Erlöser befreit.,%o fue silenciad@[ao_esp] por el poderoso Quietus de %k.,,%o à été réduit@[e_fr] au silence par le pouvoir de %k et Quietus.,%o el lett némítva %k hatalmas Némusza által.,%o è stato zittito dal potente Quietus di %k.,,Игрок %o утихомирен легендарным ПоÑледним доводом %k., +%o got a mace to the face from %k.,OB_MPCWEAPMACE,,,,%o bekam %ks Streitkolben ins Gesicht.,%o consiguió un mazazo a la cara de parte de %k.,,%o s'est fait@[e_fr] casser la figure par la masse de %k.,%o kapott egy buzogányt a fejébe %k által.,%o si è preso una mazzata in faccia da %k.,,Игрок %o получил по морде булавой %k., +%o was bitten by %k's serpent staff.,OB_MPCWEAPSTAFFM,,,,%o wurde von %ks Schlangenstab gebissen.,%o fue mordid@[ao_esp] por el bastón de la serpiente de %k.,,%o s'est fait@[e_fr] mordre par le Bâton du Serpent %k.,%o meglett harapva %k Kígyó Botja által.,%o è stato morso dalla Staffa del Serpente di %k.,,Игрок %o иÑкуÑан змеиным поÑохом %k., +%o choked on %k's serpent staff.,OB_MPCWEAPSTAFFR,,,,%o verschluckte sich an %ks Schlangenstab.,%o se ahogó con el bastón de la serpiente de %k.,,%o s'est étranglé@[e_fr] sur le Bâton du Serpent de %k,%o megfulladt %k Kígyó Botja által.,%o è soffocato a causa della Staffa del Serpente di %k.,,Игрок %o задушен змеиным поÑохом %k., +%o was lit up by %k's flames.,OB_MPCWEAPFLAME,,,,%o wurde von %ks Flammen erleuchtet.,%o fue encendid@[ao_esp] por las llamas de %k.,,%o s'est fait@[e_fr] allumer par %k.,%o fel lett gyújtva %k tűze által.,%o è stato illuminato dalle fiamme di %k.,,Игрок %o Ñгорел в огне %k., +%o was cleansed by %k's Wraithverge.,OB_MPCWEAPWRAITHVERGE,,,,%o wurde durch %ks Geisterbringer geläutert.,%o fue limpiad@[ao_esp] por la vara fantasmal de %k.,,%o a été purifié@[e_fr] par la Verge Phantasmale de %k.,%o meglett tisztítva %k Lélekvégje által.,%o è stato purificato dalla Verga SconfinaSpettri di %k.,,Игрок %o очищен Жезлом Духов %k., +%o took one too many sapphire beams from %k.,OB_MPMWEAPWAND,,,,%o bekam zu viele Saphierstrahlen von %k ab.,%o recibió demasiados rayos de zafiro de %k.,,%o s'est pris@[e_fr] un rayon saphirique en trop de la part de %k.,%o túl sok zafír sugarat kapott %k-tól/tÅ‘l.,%o si è buscato un raggio di zaffiro di troppo da %k.,,Игрок %o Ñхватил Ñлишком много Ñапфировых зарÑдов от %k., +%o was turned into a frosty fellow by %k.,OB_MPMWEAPFROST,,,,%o wurde von %k schockgefrostet.,%o fue convertid@[ao_esp] en un helado por %k.,%o fue convertid@[ao_esp] en una persona helada por %k.,%o s'est fait@[e_fr] transformer en glaçon par %k.,%o jégbaráttá alakult %k által.,%o è stato trasformato in un simpatico pupazzo di neve da %k.,,Игрок %o обращаетÑÑ Ð² ледÑную Ñкульптуру Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ %k., +%o received a shocking revelation from %k.,OB_MPMWEAPLIGHTNING,,,,%o musste eine schockierende Enthüllung von %k verkraften.,%o recibió una revelación impactante de %k.,,%o a reçu un sacré coup de jus de la part de %k.,%o kapott egy sokkoló relevációt %k-tól/tÅ‘l,"%o ha ricevuto una notizia ""elettrizzante"" da %k.",,Игрок %o откровенно шокирован %k., +%o was wiped off the face of the universe by %k's Bloodscourge.,OB_MPMWEAPBLOODSCOURGE,,,,%o wurde von %ks Blutgeißel aus dem Universum verbannt.,%o fue borrad@[ao_esp] de la faz del universo por la plaga sangrienta de %k.,,%o s'est fait@[e_fr] effacer de l'univers par le Fléau Sanglant de %k.,%o kilett törölve az univerzumból %k Vérkorbácsának köszönhetÅ‘en.,%o è stato cancellato dalla faccia dell'universo dal Flagello di Sangue di %k.,,Игрок %o Ñтёрт Ñ Ð»Ð¸Ñ†Ð° вÑеленной Кровавым бичем %k., +,,,Strife,,,,,,,,,, +,,,Pickups,,,,,,,,,, +You picked up the Metal Armor.,TXT_METALARMOR,,,You picked up the Metal Armour.,Du hast die Metallrüstung genommen.,Recogiste la Armadura de Metal.,,Vous avez pris l'armure de métal.,Felvetted a Fémpáncélt.,Hai raccolto l'Armatura di Metallo.,Voce pegou a armadura de metal.,Получена металличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ., +You picked up the Leather Armor.,TXT_LEATHERARMOR,,,You picked up the Leather Armour.,Du hast die Lederrüstung genommen.,Recogiste la Armadura de Cuero.,,Vous avez pris l'armure de cuir.,Felvetted a BÅ‘rpáncélt.,Hai raccolto l'Armatura di Cuoio.,Voce pegou a armadura leve.,Получена ÐºÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ., +You picked up the Med patch.,TXT_MEDPATCH,,,,Du hast den Verband genommen.,Recogiste un Parche Médico.,,Vous avez pris le pansement.,Felvetted a Raktapaszt.,Hai raccolto le Bende.,Voce pegou um pequeno kit de primeiros socorros.,Получен медицинÑкий бинт., +You picked up the Medical kit.,TXT_MEDICALKIT,,,,Du hast den Verbandskasten genommen.,Recogiste un Kit Médico.,,Vous avez pris le kit médical.,Felvetted az ElsÅ‘segélycsomagot.,Hai raccolto il Kit di Pronto Soccorso.,Voce pegou um kit medio de primeiros socorros.,Получена аптечка., +You picked up the Surgery Kit.,TXT_SURGERYKIT,,,,Du hast den Erste-Hilfe-Kasten genommen.,Recogiste un Kit Quirúrgico.,,Vous avez pris le kit de chirurgie.,Felvetted az Orvosi MűtÅ‘felszerelést.,Hai raccolto il Kit Chirurgico.,Voce pegou um kit de primeiros socorros grande.,Получен медкомплект., +You picked up the map.,TXT_STRIFEMAP,,,,Du hast die Karte genommen.,Recogiste el mapa.,,Vous avez pris la carte,Felvetted a térképet.,Hai raccolto la Mappa.,Voce pegou o mapa.,Получена карта., +You picked up the ring.,TXT_BELDINSRING,,,,Du hast den Ring genommen.,Recogiste un anillo.,,Vous avez pris l'anneau.,Felvetted a gyűrűt.,Hai raccolto l'Anello.,Voce pegou o anel.,Получено кольцо., +You picked up the Offering Chalice.,TXT_OFFERINGCHALICE,,,,Du hast den Opferkelch genommen.,Recogiste el Cáliz de Ofrenda.,,Vous avez pris le Calice d'obole.,Felvetted az Ãldozati Kelyhet.,Hai raccolto il Calice delle Offerte.,Voce pegou o calice de oferenda.,Получена чаша Ð´Ð»Ñ Ð¿Ð¾Ð´Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¹., +You picked up the ear.,TXT_EAR,,,,Du hast das Ohr gernommen.,Recogiste la oreja.,,Vous avez pris l'oreille.,Felvetted a fület.,Hai raccolto l'Orecchio.,Voce pegou a orelha.,Получено ухо., +You picked up the broken power coupling.,TXT_BROKENCOUPLING,,,,Du hast den defekten Stromabnehmer genommen.,Recogiste el acoplador de energía roto.,,Vous avez pris le coupleur energétique cassé.,Felvetted a hibás tápcsatlakozót.,Hai raccolto la Coppia Energetica Rotta.,Você pegou o acoplador de energia quebrado.,Получена Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð°Ñ Ð¼ÑƒÑ„Ñ‚Ð°., +You picked up the Shadow armor.,TXT_SHADOWARMOR,,,You picked up the Shadow armour.,Du hast die Schattenrüstung genommen.,Recogiste una armadura de Sombra.,,Vous avez pris l'armure de l'ombre.,Felvetted az Ãrnyékpáncélt.,Hai raccolto l'Armatura Ombra.,Voce pegou a armadura das sombras.,Получена Ñ‚ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ., +You picked up the Environmental Suit.,TXT_ENVSUIT,,,,Du hast den Schutzanzug genommen.,Recogiste un Traje Ambiental.,,Vous avez pris la combinaison hazmat.,Felvetted a VédÅ‘ruhát.,Hai raccolto la Tuta Ambientale.,Voce pegou a roupa anti-radiacao.,Получен защитный коÑтюм., +You picked up the Guard Uniform.,TXT_GUARDUNIFORM,,,,Du hast die Wächteruniform genommen.,Recogiste el Uniforme de un Guardia.,,Vous avez pris l'Uniforme du garde.,Felvetted az År Egyenruhát.,Hai raccolto l'Uniforme da Guardia.,Voce pegou o uniforme - Guarda.,Получена униформа Ñтражника., +You picked up the Officer's Uniform.,TXT_OFFICERSUNIFORM,,,,Du hast die Offiziersuniform genommen.,Recogiste el Uniforme de un Oficial.,,Vous avez pris l'Uniforme de l'officier.,Felvetted a Tiszti Egyenruhát.,Hai raccolto l'Uniforme da Ufficiale.,Voce pegou o uniforme - Oficial.,Получена униформа офицера., +You picked up the flame thrower parts.,TXT_FTHROWERPARTS,,,,Du hast die Flammenwerferteile genommen.,Recogiste las partes del lanzallamas.,,Vous avez pris les pièces du lance-flames.,Felvetted a lángszóró részeit.,Hai raccolto delle parti di Lanciafiamme.,Voce pegou uma parte do lanca-chamas.,Получены детали Ð´Ð»Ñ Ð¾Ð³Ð½ÐµÐ¼Ñ‘Ñ‚Ð°., +You picked up the report.,TXT_REPORT,,,,Du hast den Report genommen.,Recogiste el reporte.,,Vous avez pris le compte-rendu.,Felvetted a jelentést.,Hai raccolto il rapporto.,Voce pegou o relatorio.,Получен отчёт., +You picked up the info.,TXT_INFO,,,,Du hast die Info genommen.,Recogiste la información.,,Vous avez pris l'info.,Felvetted az információt.,Hai raccolto delle Informazioni.,Voce pegou a informacao.,Получена Ñводка., +You picked up the Targeter.,TXT_TARGETER,,,,Du hast die Zielhilfe genommen.,Recogiste el apuntador.,,Vous avez pris le cibleur.,Felvetted a Célzóberendezést.,Hai raccolto il Puntatore.,Voce pegou o Targeter.,Получен целеуказатель., +You picked up the Communicator.,TXT_COMMUNICATOR,,,,Du hast den Kommunikator genommen.,Recogiste el comunicador.,,Vous avez pris le Communicateur,Felvetted a Kommunikátort,Hai raccolto il Comunicatore.,Voce pegou o Transmissor.,Получен коммуникатор., +You picked up the coin.,TXT_COIN,,,,Du hast die Münze genommen.,Recogiste una moneda.,,Vous avez pris la pièce.,Felvetted az érmét.,Hai raccolto la Moneta.,Voce pegou a moeda.,Получена монета., +You picked up %d gold.,TXT_XGOLD,,,,Du hast %d Gold genommen.,Recogiste %d monedas de oro.,,Vous avez pris %d pièces.,Felvettél %d aranyat.,Hai raccolto %d pezzi d'oro.,Voce pegou %d moedas.,Получено %d золотых., +You picked up the Teleporter Beacon.,TXT_BEACON,,,,Du hast das Teleportersignal genommen.,Recogiste un faro de teletransportación.,,Vous avez pris la balise de téléporteur.,Felvetted a Teleport jelzÅ‘t.,Hai raccolto il Radiofaro per Teletrasporto.,Voce pegou o sinalizador de teletransporte.,Получен телепортационный маÑк., +You picked up the Degnin Ore.,TXT_DEGNINORE,,,,Du hast das Degnin-Erz genommen.,Recogiste el Mineral Degnin.,,Vous avez pris le minerai de Degnin.,Felvetted a Degnin Ércet.,Hai raccolto il Minerale Degnin.,Voce pegou o minerio Degnin.,Получена дегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð°., +You picked up the scanner.,TXT_SCANNER,,,,Du hast den Scanner genommen.,Recogiste el escáner.,,Vous avez pris l'analyseur.,Felvetted a szkennert.,Hai raccolto lo Scanner.,Voce pegou o scanner.,Получен Ñканер., +"The scanner won't work without a map! +",TXT_NEEDMAP,,,,Der Scanner kann ohne Karte nicht funktionieren.,¡El escáner no funcionará sin un mapa!,,"L'analyseur ne marchera pas sans une carte! +",Térkép nélkül nem fog működni a szkenner!,Lo scanner non può funzionare senza una mappa!,"O scanner nao funciona sem um mapa! +","Сканер не будет работать без карты! +", +You picked up the Prison pass.,TXT_PRISONPASS,,,,Du hast den Gefängnispass genommen.,Recogiste el pase de la Prisión.,,Vous avez pris le passe de la prison.,Felvetted a Börtön belépÅ‘kártyát.,Hai raccolto il lasciapassare per la Prigione.,Voce pegou o passe da prisao.,Получен пропуÑк в тюрьму., +You picked up the crossbow.,TXT_STRIFECROSSBOW,,,,Du hast die Armbrust genommen.,Recogiste la ballesta.,,Vous avez pris l'arbalète.,Felvetted a számszeríjat.,Hai raccolto la Balestra.,Voce pegou a besta.,Получен арбалет., +You picked up the assault gun.,TXT_ASSAULTGUN,,,,Du hast das Sturmgewehr genommen.,Recogiste el fusil de asalto.,,Vous avez pris le fusil d'assaut.,Felvetted a gépfegyvert.,Hai raccolto il fucile d'assalto.,Voce pegou a metralhadora.,Получена ÑˆÑ‚ÑƒÑ€Ð¼Ð¾Ð²Ð°Ñ Ð²Ð¸Ð½Ñ‚Ð¾Ð²ÐºÐ°., +You picked up the mini missile launcher.,TXT_MMLAUNCHER,,,,Du hast den Miniraketenwerfer genommen.,Recogiste el mini lanzacohetes.,,Vous avez pris le lance mini-missile.,Felvetted a minirakétavetÅ‘t.,Hai raccolto il Mini-Lanciamissili.,Voce pegou o mini lanca-misseis.,Получена мини-ракетница., +You picked up the flame thrower.,TXT_FLAMER,,,,Du hast den Flammenwerfer genommen.,Recogiste el lanzallamas.,,Vous avez pris le lance-flames.,Felvetted a lángszórót.,Hai raccolto il Lanciafiamme.,Voce pegou o lanca-chamas.,Получен огнемёт., +You picked up the mauler.,TXT_MAULER,,,,Du hast den Vernichter genommen.,Recogiste el triturador.,,Vous avez pris le Broyeur.,Felvetted a sorvasztót -------------- vagy mi ez,Hai raccolto il Pestatore.,Voce pegou o mauler.,Получен иÑÑ‚Ñзатель., +You picked up the Grenade launcher.,TXT_GLAUNCHER,,,,Du hast den Granatwerfer genommen.,Recogiste el lanzagranadas.,,Vous avez pris le lance-grenades,Felvetted a gránátvetÅ‘t.,Hai raccolto il Lanciagranate.,Voce pegou o lanca-granadas.,Получен гранатомёт., +You picked up the SIGIL.,TXT_SIGIL,,,,Du hast das SIGIL genommen.,Recogiste el EMBLEMA.,,Vous avez pris le SIGIL.,Felvetted a Pecsétet.,Hai raccolto il SIGILLO.,Voce pegou o SIGIL.,Получен СИГИЛ., +You picked up the Base Key.,TXT_BASEKEY,,,,Du hast den Basisschlüssel genommen.,Recogiste la Llave de la Base.,,Vous avez pris la clé de la Base.,Felvetted a Bázis kulcsát.,Hai raccolto la chiave della Base.,Voce pegou a chave da Base.,Получен ключ от базы., +You picked up the Govs Key.,TXT_GOVSKEY,,,,Du hast den Gouverneursschlüssel genommen.,Recogiste la Llave del Gobernador.,,Vous avez pris la clé du Gouverneur.,Felvetted a Kormányzó parcellájának kulcsát.,Hai raccolto la chiave del Governatore.,Voce pegou a chave do Governador.,Получен ключ губернатора., +You picked up the Passcard.,TXT_PASSCARD,,,,Du hast die Zugangskarte genommen.,Recogiste el Pase de Acceso.,,Vous avez pris le passe.,Felvetted a BelépÅ‘kártyát.,Hai raccolto la Tessera Lasciapassare.,Voce pegou o cartao de passe.,Получен пропуÑк., +You picked up the ID Badge.,TXT_IDBADGE,,,,Du hast die Identitätskarte genommen.,Recogiste la insignia de Identificación.,,Vous avez pris le Badge d'identification.,Felvetted az Azonosítójelvényt.,Hai raccolto il Distintivo.,Voce pegou o distintivo de identificacao.,Получен бейдж Ñ ID., +You picked up the Prison Key.,TXT_PRISONKEY,,,,Du hast den Gefängnisschlüssel genommen.,Recogiste la Llave de la Prisión.,,Vous avez pris la clé de la Prison.,Felvetted a Börtönkulcsot.,Hai raccolto la chiave della Prigione.,Voce pegou a chave da prisao.,Получен ключ от тюрьмы., +You picked up the Severed Hand.,TXT_SEVEREDHAND,,,,Du hast die abgetrennte Hand genommen.,Recogiste la Mano Cercenada.,,Vous avez pris la main coupée.,Felvetted a Levágott kezet.,Hai raccolto la Mano Mozzata.,Voce pegou a mao decepada.,Получена Ð¾Ñ‚Ð¾Ñ€Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÑƒÐºÐ°., +You picked up the Power1 Key.,TXT_POWER1KEY,,,,Du hast den Kraftwerksschlüssel 1 genommen,Recogiste la Llave de Energía 1.,,Vous avez pris la clé Power1.,Felvetted az Ãram1 kulcsot.,Hai raccolto la chiave della Centrale n.1,Voce pegou a chave Power1.,Получен ключ ÑлектроÑтанции 1., +You picked up the Power2 Key.,TXT_POWER2KEY,,,,Du hast den Kraftwerksschlüssel 2 genommen,Recogiste la Llave de Energía 2.,,Vous avez pris la clé Power2.,Felvetted az Ãram2 kulcsot.,Hai raccolto la chiave della Centrale n.2,Voce pegou a chave Power2.,Получен ключ ÑлектроÑтанции 2., +You picked up the Power3 Key.,TXT_POWER3KEY,,,,Du hast den Kraftwerksschlüssel 3 genommen,Recogiste la Llave de Energía 3.,,Vous avez pris la clé Power3.,Felvetted az Ãram3 kulcsot.,Hai raccolto la chiave della Centrale n.3,Voce pegou a chave Power3.,Получен ключ ÑлектроÑтанции 3., +You picked up the Gold Key.,TXT_GOLDKEY,,,,Du hast den Goldschlüssel genommen.,Recogiste la Llave de Oro.,,Vous avez pris la clé d'or.,Felvetted az Aranykulcsot.,Hai raccolto la chiave dorata,Voce pegu a chave de ouro.,Получен золотой ключ., +You picked up the ID Card.,TXT_IDCARD,,,,Du hast den Ausweis genommen.,Recogiste la Tarjeta de Identificación.,,Vous avez pris la Carte d'identité.,Felvetted az Igazolványt.,Hai raccolto la Tessera di Identificazione.,Voce pegou o cartao de identificacao.,Получено удоÑтоверение., +You picked up the Silver Key.,TXT_SILVERKEY,,,,Du hast den Silberschlüssel genommen.,Recogiste la Llave Plateada.,,Vous avez pris la clé d'argent.,Felvetted az ezüstkulcsot.,Hai raccolto la chiave argentata,Voce pegou a chave de prata.,Получен ÑеребрÑный ключ., +You picked up the Oracle Key.,TXT_ORACLEKEY,,,,Du hast den Orakelschlüssel genommen.,Recogiste la Llave del Oráculo.,,Vous avez pris la clé Oraclé.,Felvetted az Orákulum kulcsát.,Hai raccolto la chiave dell'Oracolo.,Voce pegou a chave do Oraculo.,Получен ключ Оракула., +You picked up the Military ID.,TXT_MILITARYID,,,,Du hast den Militärausweis genommen.,Recogiste la Identificación Militar.,,Vous avez pris l'ID Militaire.,Felvetted a Katonai igazolványt.,Hai raccolto l'Identificativo Militare.,Voce pegou a ID do militar.,Получено военное удоÑтоверение личноÑти., +You picked up the Order Key.,TXT_ORDERKEY,,,,Du hast den Ordensschlüssel genommen.,Recogiste la Llave de la Orden.,,Vous avez pris la clé de l'Ordre.,Felvetted a Rend kulcsát.,Hai raccolto la chiave dell'Ordine.,Voce pegou a chave da Ordem.,Получен ключ Ордена., +You picked up the Warehouse Key.,TXT_WAREHOUSEKEY,,,,Du hast den Lagerhausschlüssel genommen,Recogiste la Llave del Almacén.,,Vous avez pris la clé de l'entrepôt.,Felvetted a Raktár kulcsát.,Hai raccolto la chiave del Magazzino.,Voce pegou a chave do barracao.,Получен ключ от Ñклада., +You picked up the Brass Key.,TXT_BRASSKEY,,,,Du hast den Messingschlüssel genommen.,Recogiste la Llave de Latón.,,Vous avez pris la clé de bronze.,Felvetted a Rézkulcsot.,Hai raccolto la chiave d'Ottone.,Voce pegou a chave de bronze.,Получен латунный ключ., +You picked up the Red Crystal Key.,TXT_REDCRYSTAL,,,,Du hast den roten Kristallschlüssel genommen.,Recogiste la Llave de Cristal Rojo.,,Vous avez pris la clé cristal rouge.,Felvetted a Vörös Kristály Kulcsot.,Hai raccolto la chiave del Cristallo Rosso.,Voce pegou a chave - Cristal Vermelho.,Получен краÑный ключ-криÑталл., +You picked up the Blue Crystal Key.,TXT_BLUECRYSTAL,,,,Du hast den blauen Kristallschlüssel genommen.,Recogiste la Llave de Cristal Azul.,,Vous avez pris la clé cristal bleu.,Felvetted a Kék Kristály Kulcsot.,Hai raccolto la chiave del Cristallo Blu.,Voce pegou a chave - Cristal Azul.,Получен Ñиний ключ-криÑталл., +You picked up the Chapel Key.,TXT_CHAPELKEY,,,,Du hast den Kapellenschlüssel genommen.,Recogiste la Llave de la Capilla.,,Vous avez pris la clé de la chapel.,Felvetted a Kápolna Kulcsát.,Hai raccolto la chiave della Cappella,Voce pegou a chave da capela.,Получен ключ от чаÑовни., +You picked up the Catacomb Key.,TXT_CATACOMBKEY,,,,Du hast den Katakombenschlüssel genommen.,Recogiste la Llave de la Catacumba.,,Vous avez pris la clé des Catacombes.,Felvetted a Katakombák kulcsát.,Hai raccolto la chiave delle Catacombe.,Voce pegou a chave da catatumba.,Получен ключ от катакомб., +You picked up the Security Key.,TXT_SECURITYKEY,,,,Du hast den Sicherheitsschlüssel genommen.,Recogiste la Llave de Seguridad.,,Vous avez pris la clé de la Sécurité.,Felvetted a Biztonsági Kulcsot.,Hai raccolto la chiave della Sicurezza.,Voce pegou a chave de seguranca.,Получен ключ охраны., +You picked up the Core Key.,TXT_COREKEY,,,,Du hast den Reaktorschlüssel genommen.,Recogiste la Llave del Núcleo.,,Vous avez pris la clé du réacteur.,Felvetted a Mag kulcsát.,Hai raccolto la chiave del Nucleo.,Voce pegou a chave principal.,Получен ключ от реактора., +You picked up the Mauler Key.,TXT_MAULERKEY,,,,Du hast den Vernichterschlüssel genommen.,Recogiste la Llave del Triturador.,,Vous avez pris la clé du Broyeur.,Felvetted a sorvasztó kulcsát -- vagy mi ez is majd megnézem,Hai raccolto la chiave del Pestatore.,Voce pegou a chave do Mauler.,Получен ключ иÑÑ‚ÑзателÑ., +You picked up the Factory Key.,TXT_FACTORYKEY,,,,Du hast den Fabrikschlüssel genommen.,Recogiste la Llave de la Fábrica.,,Vous avez pris la clé de l'usine.,Felvetted a Gyár kulcsát.,Hai raccolto la chiave della Fabbrica.,Voce pegou a chave da Fabrica.,Получен ключ от завода., +You picked up the Mine Key.,TXT_MINEKEY,,,,Du hast den Minenschlüssel genommen.,Recogiste la Llave de la Mina.,,Vous avez pris la clé de la mine.,Felvetted a Bánya kulcsát.,Hai raccolto la chiave della Miniera.,Voce pegou a chave da Mina.,Получен ключ от шахт., +You picked up the New Key5.,TXT_NEWKEY5,,,,Du hast den neuen Schlüssel 5 genommen.,Recogiste la Llave Nueva5.,,Vous avez pris la nouvelle clé 5.,Felvetted az Új kulcs5-öt.,Hai raccolto la Nuova Chiave n.5,Voce pegou a Chave Nova5.,Получен Ðовый Ключ5., +You picked up the Oracle Pass.,TXT_ORACLEPASS,,,,Du hast den Orakelpass genommen.,Recogiste el Pase del Oráculo.,,Vous avez pris le passe de l'Oracle.,Felvetted az Orákulum BelépÅ‘kártyáját.,Hai raccolto il Lasciapassare dell'Oracolo.,Voce pegou o passe do Oraculo.,Получен пропуÑк Оракула., +You picked up the HE-Grenade Rounds.,TXT_HEGRENADES,,,,Du hast die HE-Granaten genommen.,Recogiste las Granadas HE.,,Vous avez pris les Grenades Explosives.,Felvetted a HE-Gránátokat.,Hai raccolto delle granate ad Alto Potenziale,Voce pegou granadas HE.,Получена ÑвÑзка гранат., +You picked up the Phosphorus-Grenade Rounds.,TXT_PHGRENADES,,,,Du hasr die Phosphorgranaten genommen.,Recogiste las Granadas de Fósforo.,,Vous avez pris les Grenades Phosphoriques.,Felvetted a Foszfor-gránátokat.,Hai raccolto delle Granate al Fosforo.,Voce pegou granadas PH.,Получена ÑвÑзка фоÑфорных гранат., +You picked up the clip of bullets.,TXT_CLIPOFBULLETS,,,,Du hast die Gewehrmunition genommen.,Recogiste un cargador con balas.,,Vous avez pris le Chargeur.,Felvettél egy tár lÅ‘szert.,Hai raccolto un caricatore di proiettili.,Voce pegou um clipe.,Получена обойма патронов., +You picked up the box of bullets.,TXT_BOXOFBULLETS,,,,Du hast die Munitionskiste genommen.,Recogiste una caja de balas.,,Vous avez pris la boîte de balles.,Felvettél egy doboz lÅ‘szert.,Hai raccolto una scatola di proiettili.,Voce pegou uma caixa de balas.,Получена коробка патронов., +You picked up the mini missiles.,TXT_MINIMISSILES,,,,Du hast die Miniraketen genommen.,Recogiste mini misiles.,,Vous avez pris les mini-missiles.,Felvetted a minirakétákat.,Hai raccolto dei mini-missili.,Voce pegou mini-misseis.,Получены мини-ракеты., +You picked up the crate of missiles.,TXT_CRATEOFMISSILES,,,,Du hast die Miniraketenkiste genommen.,Recogiste una caja de misiles.,,Vous avez pris la caisse de missiles.,Felvettél egy ládányi minirakétát.,Hai raccolto una cassa di missili.,Voce pegou uma caixa de misseis.,Получен Ñщик мини-ракет., +You picked up the energy pod.,TXT_ENERGYPOD,,,,Du hast die Energiezelle genommen.,Recogiste una vaina de energía.,,Vous avez pris la cellule d'énergie.,Felvettél egy energiahüvelyt.,Hai raccolto un nucleo energetico.,Voce pegou uma celula de energia (pequeno).,Получена ÑнергоÑчейка., +You picked up the energy pack.,TXT_ENERGYPACK,,,,Du hast das Energiepack genommen.,Recogiste un pack de energía.,,Vous avez pris le pack energétique.,Felvetted az energiacsomagot.,Hai raccolto una carica energetica grande.,Voce pegou uma celula de energia (grande).,Получена ÑнергобатареÑ., +You picked up the poison bolts.,TXT_POISONBOLTS,,,,Du hase die Giftbolzen genommen.,Recogiste las saetas venenosas.,,Vous avez pris les carreaux empoisonnés.,Felvetted a mérgezett nyilakat.,Hai raccolto dei dardi velenosi.,Voce pegou flechas (venenosas).,Получены отравленные болты., +You picked up the electric bolts.,TXT_ELECTRICBOLTS,,,,Du hast die elektrischen Bolzen genommen.,Recogiste las saetas eléctricas.,,Vous avez pris les carreaux électriques.,Felvetted az elektromos nyilakat.,Hai raccolto dei dardi elettrici.,Voce pegou flechas (eletricas).,Получены ÑлектричеÑкие болты., +You picked up the ammo satchel.,TXT_AMMOSATCHEL,,,,Du hast die Munitionstasche genommen.,Recogiste un estuche de munición.,,Vous avez pris la sacoche de munitions,Felvetted a lÅ‘szeres táskát.,Hai raccolto una Borsa delle Munizioni.,Voce pegou uma mochila de municao.,Получен ранец Ð´Ð»Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов., +You have a feeling that it wasn't to be touched...,MSG_TALISMANRED,,,,"Du hast das Gefühl, dass man es nicht anfassen sollte...",Tienes la sensación de que no debía ser tocado...,,Vous avez un pressentiment qu'il ne fallait pas y toucher.....,,,,, +"Whatever it is, it doesn't belong in this world...",MSG_TALISMANGREEN,,,,"Was auch immer es ist, es gehört nicht in diese Welt...","Sea lo que sea, no pertenece a este mundo...",,"Quel que soit cette chose, elle ne devrait pas être ici...",,,,, +It must do something...,MSG_TALISMANBLUE,,,,Es muss etwas tun...,Debe hacer algo...,,Ca doit servir a quelque chose...,,,,, +You have super strength!,MSG_TALISMANPOWER,,,,Du hast Superkräfte,¡Tienes súper fuerza!,,Vous avez une puissance inégalée!,,,,, +,,,Locks,,,,,,,,,, +You don't have the key,TXT_NEEDKEY,,,,Du hast den Schlüssel nicht,No tienes la llave,,Vous n'avez pas la clé.,Ehhez nincs kulcsod.,Non hai la chiave necessaria,Voce nao possui a chave,Ðужен ключ, +You need a passcard,TXT_NEED_PASSCARD,,,,Du brauchst eine Zugangskarte.,Necesitas el pase de acceso,,Vous avez besoin du passe.,BelépÅ‘kártyára lesz szükséged.,Ti serve un lasciapassare,Precisa do cartao de passe,Ðужен пропуÑк, +You need a pass card key to open this door,TXT_NEED_PASSCARD_DOOR,,,,"Du brauchst eine Zugangskarte, um diese Tür zu öffnen.",Necesitas un pase de acceso para abrir esta puerta,,Vous avez besoin du passe ouvrir cette porte.,BelépÅ‘kártya nélkül nem nyílik ez az ajtó.,Ti serve una tessera lasciapassare per aprire questa porta.,Precisa do cartao de passe para abrir a porta,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ пропуÑк, +You need an ID card,TXT_NEED_IDCARD,,,,Du brauchst einen Ausweis.,Necesitas una tarjeta de Identificación,,Vous avez besoin d'une carte d'identité.,Igazolvány szükséges,Ti serve una tessera identificativa.,Precisa do cartao de indentificacao,Ðужна Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°, +You don't have the key to the prison,TXT_NEED_PRISONKEY,,,,Du brauchst den Schlüssel zum Gefängnis,No tienes la llave a la prisión,,Vous n'avez pas la clé de la prison.,Nincs kulcsod a börtönhöz.,Ti manca la chiave per la prigione,Voce nao tem a chave da prisao,Ðужен ключ от тюрьмы, +Hand print not on file,TXT_NEED_HANDPRINT,,,,Handabdruck nicht gespeichert!,La huella digital no esta en el archivo,,Votre main n'est pas reconnue par le scanner.,Azonosítatlan kézlenyomat.,Impronta digitale non in archivio,Biometria nao autorizada,Отпечаток руки не раÑпознан, +You need the Gold Key,TXT_NEED_GOLDKEY,,,,Du brauchst den goldenen Schlüssel,Necesitas la Llave Dorada,,Vous avez besoin d'une clé d'or.,Aranykulcs szükséges.,Ti serve la chiave dorata,Voce precisa da chave dourada,Ðужен золотой ключ, +You need an ID Badge,TXT_NEED_IDBADGE,,,,Du brauchst eine Identitätskarte.,Necesitas una Insignia de Identificación,,Vous avez besoin d'un badge d'identification.,Azonosító jelvény szükséges.,Ti serve un distintivo di identificazione,Voce precisa do distintivo de identificacao,Ðужна Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°, +You need an ID Badge to open this door,TXT_NEED_IDBADGE_DOOR,,,,"Du brauchst eine Identitätskarte, um diese Tür zu öffnen.",Necesitas una Insignia de Identificación para abrir esta puerta,,Vous avez besoin d'un badge d'identification pour ouvrir cette porte.,Azonosító jelvény szükséges az ajtó kinyitásához.,Ti serve un distintivo di identificazione per superare questa porta,Voce precisa do distintivo de identificacao para abrir a porta,Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð° Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°, +You need the Silver Key,TXT_NEED_SILVERKEY,,,,Du brauchst den Silberschlüssel,Necesitas la Llave Plateada,,Vous avez besoin de la clé en argent.,Az ezüskulccsal szükséges.,Ti serve la chiave argentata,Voce precisa da chave de prata,Ðужен ÑеребрÑный ключ, +You need the Brass Key,TXT_NEED_BRASSKEY,,,,Du brauchst den Messingschlüssel,Necesitas la Llave de Bronce,,Vous avez besoin de la clé en bronze.,A rézkulcs szükséges.,Ti serve la chiave d'ottone,Voce precisa da chave de latao,Ðужен латунный ключ, +You need the Red Crystal,TXT_NEED_REDCRYSTAL,,,,Du brauchst den roten Kristall,Necesitas el Cristal Rojo,,Vous avez besoin du cristal rouge.,A vörös kristályra lesz szükség itt.,Ti serve il Cristallo Rosso,Voce precisa do cristal vermelho,Ðужен краÑный криÑталл, +You need the Blue Crystal,TXT_NEED_BLUECRYSTAL,,,,Du brauchst den blauen Kristall,Necesitas el Cristal Azul,,Vous avez besoin du cristal bleu.,A kék kristályra lesz szükség itt.,Ti serve il Cristallo Blu,Voce precisa do cristal azul,Ðужен Ñиний криÑталл, +This area is only available in the retail version of Strife,TXT_RETAIL_ONLY,,,,Dieser Bereich ist nur in der kompletten Version von Strife erreichbar.,Esta área solo está disponible en la versión retail de Strife.,,Cette zone n'est accessible que dans la version complete de Strife.,Ez a terület kizárólag a Strife teljes verziójában érhetÅ‘ el,Quest'area è disponibile solo nella versione completa di Strife.,AREA DISPONIVEL NA VERSAO REGISTRADA,Эта Ð»Ð¾ÐºÐ°Ñ†Ð¸Ñ Ð´Ð¾Ñтупна только в полной верÑии игры Strife, +That doesn't seem to work,TXT_DOES_NOT_WORK,,,,Das scheint nicht zu funktionieren,Parece que eso no funciona,,Cela ne semble pas fonctionner.,Ez így nem megy.,Non sembra funzionare,Parece que nao funciona,"Похоже, Ñто не работает", +You need the chalice!,TXT_NEED_CHALICE,,,,Du brauchst den Kelch!,¡Necesitas el Cáliz!,,Vous avez besoin du calice!,,,,Ðужна чаша!, +You need the Oracle Pass!,TXT_NEED_OPASS,,,,Du brauchst den Orakelpass!,¡Necesitas el Pase del Oráculo!,,Vous avez besoin du passe Oracle!,,,,Ðужен пропуÑк Оракула!, +,,,Actor tags,,,,,,,,,, +Dagger,TAG_PUNCHDAGGER,,,,Dolch,Daga,,Dague de Poing,Tör,Pugnale,Faca,Кинжал, +Crossbow,TAG_STRIFECROSSBOW1,,,,Armbrust,Ballesta,,Arbalète,Nyílpuska,Balestra ,Besta,Ðрбалет, +Crossbow,TAG_STRIFECROSSBOW2,,,,Armbrust,Ballesta,,Arbalète,Nyílpuska,Balestra ,Besta,Ðрбалет, +Assault Gun,TAG_ASSAULTGUN,,,,Sturmgewehr,Fusil de Asalto,,Fusil d'Assaut,Gépfegyver,Fucile d'Assalto ,Metralhadora,Винтовка, +Mini Missile Launcher,TAG_MMLAUNCHER,,,,Miniraketenwerfer,Mini Lanzamisiles,,Lanceur de Mini-Missiles,Mini RakétavetÅ‘,Mini-Lanciamissili,Mini Lanca-misseis,Мини-ракетница, +Flame Thrower,TAG_FLAMER,,,,Flammenwerfer,Lanzallamas,,Lance-Flammes,Lángszóró,Lanciafiamme ,Lanca-chamas,Огнемёт, +Mauler,TAG_MAULER1,,,,Vernichter,Triturador,,Broyeur,Szétbomló,Pestatore ,Mauler,ИÑÑ‚Ñзатель, +Mauler,TAG_MAULER2,,,,Vernichter,Triturador,,Broyeur,Szétbomló,Pestatore,Mauler,Мучитель, +Grenade Launcher,TAG_GLAUNCHER1,,,,Granatwerfer,Lanzagranadas,,Lance-Grenades,GránátvetÅ‘,Lanciagranate,Lanca-granadas,Гранатомёт, +Grenade Launcher,TAG_GLAUNCHER2,,,,Granatwerfer,Lanzagranadas,,Lance-Grenades,GránátvetÅ‘,Lanciagranate,Lanca-granadas,Гранатомёт, +Sigil,TAG_SIGIL,,,,,Emblema,,,Pecsét,Sigillo,SIGIL,Сигил, +Coin,TAG_COIN,,,,Münze,Moneda,,Pièce,Érme,Moneta,moeda(s),Монета, +Med patch,TAG_MEDPATCH,,,,Medizinische Bandage,Parche Médico,,Pansement,Ragtapasz,Bende,Primeiros socorros (pequeno),Бинт, +Medical kit,TAG_MEDICALKIT,,,,Verbandskasten,Kit Médico,,Kit Médical,Orvosi Készlet,Kit di Pronto Soccorso ,Primeiros socorros (medio),Ðптечка, +Surgery Kit,TAG_SURGERYKIT,,,,Erste-Hilfe-Kasten,Kit Quirúrgico,,Kit de Chirurgie,Sebészeti Készlet,Kit Chirurgico ,Primeiros socorros (grande),Медкомплект, +Ring,TAG_BELDINSRING,,,,,Anillo,,Anneau,Gyűrű,Anello ,Anel,Кольцо, +Offering Chalice,TAG_OFFERINGCHALICE,,,,Opferkelch,Cáliz de Ofrenda,,Calice d'Obole,Ãldozati kehely,Calice delle Offerte,Calice de oferenda,Чаша Ð´Ð»Ñ Ð¿Ð¾Ð´Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¹, +Ear,TAG_EAR,,,,Ohr,Oreja,,Oreille,Fül,Orecchio,Orelha,Ухо, +Broken Power Coupling,TAG_BROKENCOUPLING,,,,Defekter Stromabnehmer,Acoplador de Energía Roto,,Coupleur Energétique cassé,Elromlott Tápcsatlakozó,Coppia Energetica Rotta ,Acoplador de energia quebrado,ÐŸÐ¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð°Ñ Ð¼ÑƒÑ„Ñ‚Ð°, +Shadow Armor,TAG_SHADOWARMOR,,,Shadow Armour,Schattenrüstung,Armadura de Sombra,,Armure de l'Ombre,Sötét Páncél,Armatura Ombra ,Armadura das sombras,Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Environmental Suit,TAG_ENVSUIT,,,,Schutzanzug,Traje Ambiental,,Combinaison Hazmat,Védőöltözet,Tuta Ambientale ,Roupa anti-radiacao,Защитный коÑтюм, +Guard Uniform,TAG_GUARDUNIFORM,,,,Wächteruniform,Uniforme de Guardia,,Uniforme de Garde,År Egyenruha,Uniforme da Guardia,Uniforme - Guarda,Униформа Ñтражника, +Officer's Uniform,TAG_OFFICERSUNIFORM,,,,Offiziersuniform,Uniforme de Oficial,,Uniforme d'Officier,Tiszti Egyenruha,Uniforme da Ufficiale ,Uniforme - Oficial,ОфицерÑÐºÐ°Ñ ÑƒÐ½Ð¸Ñ„Ð¾Ñ€Ð¼Ð°, +Flame Thrower Parts,TAG_FTHROWERPARTS,,,,Flammenwerferteile,Partes de Lanzallamas,,Pièces de Lance-Flamme,Lángszóró Alkatrészek,Parti di Lanciafiamme ,Partes do lanca-chamas,Детали огнемёта, +Report,TAG_REPORT,,,,,Reporte,,Compte-rendu,Jelentés,Rapporto ,Relatorio,Отчёт, +Info,TAG_INFO,,,,,Información,,,Információ,Informazioni ,Informacao,Сводка, +Targeter,TAG_TARGETER,,,,Zielhilfe,Apuntador,,Cibleur,Célzó eszköz,Puntatore,Targeter,Целеуказатель, +Communicator,TAG_COMMUNICATOR,,,,Kommunikator,Comunicador,,Communicateur,Kommunikátor,Comunicatore ,Transmissor,Коммуникатор, +Degnin Ore,TAG_DEGNINORE,,,,Degnin-Erz,Mineral Degnin,,Minerai de Degnin,Degnin Érc,Minerale Degnin,Minerio Degnin,ДенгинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð°, +Accuracy,TAG_GUNTRAINING,,,,Präzision,Precisión,,Précision,Pontosság,Precisione,Precisao,МеткоÑÑ‚ÑŒ, +Toughness,TAG_HEALTHTRAINING,,,,Ausdauer,Dureza,,Endurance,Kitartás,Robustezza ,Forca,ЖивучеÑÑ‚ÑŒ, +Scanner,TAG_SCANNER,,,,,Escáner,,Analyseur,Szkenner,Scanner,Scanner,Сканер, +Prison Pass,TAG_PRISONPASS,,,,Gefängnispass,Pase de Prisión,,Passe de la Prison,Börtön Engedély,Lasciapassare Prigione ,Credencial - Prisao,ПропуÑк в тюрьму, +Alarm,TAG_ALARM,,,,,Alarma,,Alarme,Riasztó,Allarme ,Alarme,Тревога, +Ammo,TAG_AMMOFILLUP,,,,Munition,Munición,,Munitions,LÅ‘szer,Munizioni ,Municao,БоеприпаÑÑ‹, +Health,TAG_HEALTHFILLUP,,,,Gesundheit,Salud,,Santé,ÉleterÅ‘,Salute ,Saude,Здоровье, +Teleporter Beacon,TAG_TELEPORTERBEACON,,,,Teleportersignal,Faro de Teletransportación,,Balise de téléportation,Teleport Sugárzó,Radiofaro per Teletrasporto ,Sinalizador para teletransporte,Телепортационный маÑк, +Metal Armor,TAG_METALARMOR,,,Metal Armour,Metallrüstung,Armadura de Metal,,Armure en Métal,Fém Páncél,Armatura di Metallo ,Armadura de metal,МеталличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Leather Armor,TAG_LEATHER,,,Leather Armour,Lederrüstung,Armadura de Cuero,,Armure en Cuir,BÅ‘r Páncél,Armatura di Cuoio,Armadura leve,ÐšÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ, +HE-Grenade Rounds,TAG_HEGRENADES,,,,HE-Granaten,Granadas HE,,Grenades Explosives,Gránát LÅ‘szer,Granata HE,Municao - Granadas HE,ОÑколочные гранаты, +Phosphorus-Grenade Rounds,TAG_PHGRENADES,,,,Phosphorgranaten,Granadas de Fósforo,,Grenades Incendiaires,Foszfor-Gránát LÅ‘szer,Granata al Fosforo ,Municao - Granadas PH,ФоÑфорные гранаты, +Clip of Bullets,TAG_CLIPOFBULLETS,,,,Gewehrmunition,Cargador de Balas,,Chargeur d'Assaut,Golyó töltények,Caricatore di Proiettili ,Clipe de balas,Обойма патронов, +Ammo,TAG_BOXOFBULLETS,,,,Munitionskiste,Caja de Municiones,,Bôite de Munitions,LÅ‘szer,Munizioni ,Caixa de balas,БоеприпаÑÑ‹, +Mini Missiles,TAG_MINIMISSILES,,,,Miniraketen,Mini Misiles,,Mini-Missiles,Mini Rakéták,Mini-Missili,Misseis,Мини-ракеты, +Crate of Missiles,TAG_CRATEOFMISSILES,,,,Raketenkiste,Caja de Cohetes,,Caisse de Mini-Missiles,Ládányi Rakéta,Cassa di Missili,Caixa de Misseis,Коробка ракет, +Energy Pod,TAG_ENERGYPOD,,,,Energiezelle,Vaina de Energía,,Cellule Energétique,Energia LÅ‘szer,Nucleo Enegetico ,Energia (pequeno),ЭнергоÑчейка, +Energy Pack,TAG_ENERGYPACK,,,,Energiekiste,Pack de Energía,,Pack Energétique,Energia Csomag,Carica Energetica ,Energia (grande),ЭнергобатареÑ, +Poison Bolts,TAG_POISONBOLTS,,,,Giftbolzen,Saetas Venenosas,,Carreaux Empoisonnés,MérgezÅ‘ Nyílak,Dardi Velenosi ,Flechas (veneno),Отравленные болты, +Electric Bolts,TAG_ELECTRICBOLTS,,,,Elektrische Bolzen,Saetas Eléctricas,,Carreaux Electriques,Elektromos Nyílak,Dardi Elettrici ,Flechas (eletricas),ЭлектричеÑкие болты, +Ammo Satchel,TAG_AMMOSATCHEL,,,,Munitionstasche,Bolsa de Municiones,,Sacoche à munitions,LÅ‘szeres táska,Borsa di Munizioni ,Pacote de municao,Ранец Ð´Ð»Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов, +Base Key,TAG_BASEKEY,,,,Basisschlüssel,Llave de la Base,,Clé de la base,Bázis Kulcs,Chiave della Base,Chave da Base,Ключ от базы, +Govs Key,TAG_GOVSKEY,,,,Gouverneursschlüssel,Llave del Gobernador,,Clé du Gouverneur,Kormányzó Kulcs,Chiave del Governatore ,Chave do Governador,Ключ губернатора, +Passcard,TAG_PASSCARD,,,,Zugangskarte,Pase de Acceso,,Passe,BelépÅ‘kártya,Tessera Lasciapassare ,Cartao de passe,ПропуÑк, +ID Badge,TAG_IDBADGE,,,,Identitätskarte,Insignia de identificación,,Badge d'Identification,Azonosító Jelvény,Distintivo ,Distintivo de Identificacao,Бейдж Ñ ID, +Prison Key,TAG_PRISONKEY,,,,Gefängnisschlüssel,Llave de Prisión,,Clé de la Prison,Börtön Kulcs,Chiave della Prigione ,Chave da prisao,Ключ от тюрьмы, +Severed Hand,TAG_SEVEREDHAND,,,,Abgetrennte Hand,Mano Cercenada,,Main coupée,Levágott Kéz,Mano Mozzata,Mao,ÐžÑ‚Ñ€ÐµÐ·Ð°Ð½Ð½Ð°Ñ Ñ€ÑƒÐºÐ°, +Power1 Key,TAG_POWER1KEY,,,,Kraftwerksschlüssel 1,Llave de Poder 1,,Clé Power1,Ãram1 Kulcs,Chiave della Centrale 1,Chave Power1,Ключ ЭС 1, +Power2 Key,TAG_POWER2KEY,,,,Kraftwerksschlüssel 2,Llave de Poder 2,,Clé Power2,Ãram2 Kulcs,Chiave della Centrale 2,Chave Power2,Ключ ЭС 2, +Power3 Key,TAG_POWER3KEY,,,,Kraftwerksschlüssel 3,Llave de Poder 3,,Clé Power3,Ãram3 Kulcs,Chiave della Centrale 3,Chave Power3,Ключ ЭС 3, +Gold Key,TAG_GOLDKEY,,,,Goldschlüssel,Llave Dorada,,Clé en Or,Aranykulcs,Chiave Dorata,Chave de ouro,Золотой ключ, +ID Card,TAG_IDCARD,,,,Ausweis,Tarjeta de Identificación,,Carte d'Identité,Azonosító Kártya,Tessera Identificativa,Cartao de Identificacao,УдоÑтоверение, +Silver Key,TAG_SILVERKEY,,,,Silberschlüssel,Llave Plateada,,Clé en Argent,Ezüst Kulcs,Chiave Argentata,Chave de prata,СеребрÑный ключ, +Oracle Key,TAG_ORACLEKEY,,,,Orakelschlüssel,Llave del Oráculo,,Clé de l'Oracle,Orákulum kulcs,Chiave dell'Oracolo ,Chave do Oraculo,Ключ Оракула, +Military ID,TAG_MILITARYID,,,,Militärausweis,Identificación Militar,,Identification Militaire,Katonai Azonosító Kártya,Identificativo Militare,ID do militar,Военный ID, +Order Key,TAG_ORDERKEY,,,,Ordensschlüssel,Llave de la Orden,,Clé de l'Ordre,Rend Kulcs,Chiave dell'Ordine,Chave da Ordem,Ключ Ордена, +Warehouse Key,TAG_WAREHOUSEKEY,,,,Lagerhausschlüssel,Llave del Almacén,,Clé de l'Entrepôt,Raktár Kulcs,Chiave del Magazzino ,Chave do barracao,Ключ от Ñклада, +Brass Key,TAG_BRASSKEY,,,,Messingschlüssel,Llave de Latón,,Clé en Bronze,Sárgaréz Kulcs,Chiave d'Ottone ,Chave de bronze,Латунный ключ, +Red Crystal Key,TAG_REDCRYSTALKEY,,,,Roter Kristallschlüssel,Llave de Cristal Rojo,,Clé de Cristal Rouge,Piros Kristály Kulcs,Chiave di Cristallo Rosso ,Chave - Cristal vermelho,КраÑ. ключ-криÑталл, +Blue Crystal Key,TAG_BLUECRYSTALKEY,,,,Blauer Kristallschlüssel,Llave de Cristal Azul,,Clé de Crisal Bleu,Kék Kristály Kulcs,Chiave di Cristallo Blu,Chave - Cristal azul,Син. ключ-криÑталл, +Chapel Key,TAG_CHAPELKEY,,,,Kapellenschlüssel,Llave de la Capilla,,Clé de la Chapelle,Kápolna Kulcs,Chiave della Cappella ,Chave da capela,Ключ от чаÑовни, +Catacomb Key,TAG_CATACOMBKEY,,,,Katakombenschlüssel,Llave de la Catacumba,,Clé des Catacombes,Katakomb Kulcs,Chiave delle Catacombe ,Chave da catatumba,Ключ от катакомб, +Security Key,TAG_SECURITYKEY,,,,Sicherheitsschlüssel,Llave de Seguridad,,Clé de la Sécurité,Biztonsági Kulcs,Chiave della Sicurezza ,Chave de seguranca,Ключ охраны, +Core Key,TAG_COREKEY,,,,Reaktorschlüssel,Llave del Núcleo,,Clé du Réacteur,Mag Kulcs,Chiave del Nucleo,Chave principal,Ключ от реактора, +Mauler Key,TAG_MAULERKEY,,,,Vernichterschlüssel,Llave del Triturador,,Clé du Broyeur,Szétbomló Kulcs,Chiave del Pestatore ,Chave - Mauler,Ключ иÑÑ‚ÑзателÑ, +Factory Key,TAG_FACTORYKEY,,,,Fabrikschlüssel,Llave de la Fábrica,,Clé de l'Usine,Gyár Kulcs,Chiave della Fabbrica ,Chave da fabrica,Ключ от завода, +Mine Key,TAG_MINEKEY,,,,Minenschlüssel,Llave de la Mina,,Clé de la Mine,Bánya Kulcs,Chiave della Miniera ,Chave da mina,Ключ от шахт, +New Key5,TAG_NEWKEY5,,,,Neuer Schlüssel 5,Llave Nueva5,,Clé nouveau 5,Új Kulcs5,Nuova Chiave 5,Chave Nova5,Ðовый ключ5, +Oracle Pass,TAG_ORACLEPASS,,,,Orakelpass,Pase del Oráculo,,Passe de l'Oracle,Orákulum engedély,Lasciapassare dell'Oracolo ,Passe do Oraculo,ПропуÑк Оракула, +10 gold,TAG_10GOLD,,,,10 Gold,10 de Oro,,10 Pièces,10 arany,10 pezzi d'oro ,10 moedas,10 золотых, +25 gold,TAG_25GOLD,,,,25 Gold,25 de Oro,,25 Pièces,25 arany,25 pezzi d'oro ,25 moedas,25 золотых, +50 gold,TAG_50GOLD,,,,50 Gold,50 de Oro,,50 Pièces,50 arany,50 pezzi d'oro ,50 moedas,50 золотых, +300 gold,TAG_300GOLD,,,,400 Gold,300 de Oro,,300 Pièces,300 arany,300 pezzi d'oro ,sortudo! 300 moedas,300 золотых, +Person,TXT_PERSON,,,,,Persona,,Personne,Személy,Persona,Pessoa,Горожанин, +Acolyte,TAG_ACOLYTE,,,,Ministrant,Acólito,,Acolyte,Ministráns,Accolito ,Acolyte,Служитель, +Armorer,TAG_ARMORER,,,Armourer,Rüster,Armero,,Armurier,Páncél Kovács,Armaiolo ,Armeiro,Бронник, +Bar Keep,TAG_BARKEEP,,,,Wirt,Cantinero,,Barman,Csapos,Barista,Garcom de bar,ХозÑин таверны, +Beggar,TAG_BEGGAR,,,,Bettler,Mendigo,,Mendiant,Koldus,Mendicante ,Pedinte,Ðищий, +Macil,TAG_MACIL1,,,,,Macil,,Macil,Macil,Macil,MACIL,ÐœÑйÑил, +Macil,TAG_MACIL2,,,,,Macil,,Macil,Macil,Macil ,MACIL,ÐœÑйÑил, +Medic,TAG_MEDIC,,,,Sanitäter,Médico,,Médecin,Szanitéc,Medico,Medico,Врач, +Oracle,TAG_ORACLE,,,,Orakel,Oráculo,,,Orákulum,Oracolo,Oraculo,Оракул, +Priest,TAG_PRIEST,,,,Priester,Sacerdote,,Prêtre,Pap,Sacerdote ,,Жрец, +Rat Buddy,TAG_RATBUDDY,,,,Ratte,Ratero,,Copain Rat,Patkány Cimbora,Amico dei Ratti ,,КрыÑа, +Rebel,TAG_REBEL,,,,Rebell,Rebelde,,Rebelle,Lázadó,Ribelle ,Rebelde,ПовÑтанец, +Templar,TAG_TEMPLAR,,,,Templer,Templario,,Templier,Templomos,Templare ,TEMPLAR,Храмовник, +Weapon Smith,TAG_WEAPONSMITH,,,,Waffenschmied,Forjador de Armas,,Forgeron,Fegyver Kovács,Fabbro ,Ferreiro,Оружейник, +Red Talisman,TAG_TALISMANRED,,,,Roter Talisman,Talismán rojo,,Talisman Rouge,,,,КраÑный талиÑман, +Green Talisman,TAG_TALISMANGREEN,,,,Grüner Talisman,Talismán verde,,Talisman Vert,,,,Зелёный талиÑман, +Blue Talisman,TAG_TALISMANBLUE,,,,Blauer Talisman,Talismán azul,,Talisman Bleu,,,,Синий талиÑман, +,,,Obituaries,,,,,,,,,, +%o was zealously shot down by an Acolyte.,OB_ACOLYTE,,,,%o wurde eifrig von dem Ministranten erschossen.,%o fue celosamente derribad@[ao_esp] por un Acólito.,,%o a souffert d'une bavure policière.,%o buzgóan lelett lÅ‘ve egy Oltárszolga által.,%o è stato zelantemente abbattuto da un accolito. ,,%o фанатично убит@[ao_rus] Ñлужителем., +%o should have never rebelled against Macil.,OB_MACIL,,,,%o hätte nicht gegen Macil rebellieren sollen.,%o no debió haberse rebelado contra Macil.,,%o n'aurait jamais du se rebeller contre Macil.,%o Macil ellen próbált fellázadni.,%o non avrebbe mai dovuto opporsi a Macil. ,,Игроку %o не Ñледовало воÑÑтавать против ÐœÑйÑила., +%o was gunned down by a Rebel.,OB_REBEL,,,,%o wurde von einem Rebellen erschossen.,%o fue fusilad@[ao_esp] por un Rebelde.,,%o a été abattu@[e_fr] par un rebelle.,%o lelett lÅ‘ve egy Lázadó által.,%o è stato colpito a morte da un Ribelle. ,,Игрока %o раÑÑтрелÑл повÑтанец., +%o was beaten to death by the poor.,OB_BEGGAR,,,,%o fiel der Armut zum Opfer.,%o fue abatid@[ao_esp] hasta la muerte por los pobres.,,%o a été battu@[e_fr] a mort par un pauvre.,%o halálra lett verve a szegénység által.,%o è stato calpestato dalla povertà. ,,Игрока %o забили до Ñмерти нищие., +%o should have never picked a fight with a civilian.,OB_PEASANT,,,,%o hätte sich nicht mit einem Zivilisten anlegen sollen.,%o nunca debió haberse metido en una pelea con un civil.,,%o n'aurait jamais du chercher des noises a un civil.,%o megpróbált Civillel szemben harcolni.,%o non avrebbe mai dovuto prendersela con un civile. ,,Игроку %o не Ñледовало начинать драку Ñ Ð³Ð¾Ñ€Ð¾Ð¶Ð´Ð°Ð½Ð¸Ð½Ð¾Ð¼., +%o was struck down by the Spectre.,OB_ALIENSPECTRE,,,,%o wurde von dem Schemen niedergestreckt.,%o fue abatid@[ao_esp] por el Espectro.,,%o a été terrassé@[e_fr] par le Spectre.,%o ki lett ütve a Kísértet által.,%o è stato abbattuto dallo Spettro. ,,Игрока %o уничтожил Ñпектр., +%o felt the wrath of The One God.,OB_ENTITY,,,,%o spürte den Zorn des Einen Gottes.,%o sintió la ira del Dios Único.,,%o a senti le courroux du Seul Dieu.,%o megérezte az Egyetlen Isten haragját.,%o ha assistito all'ira dell'Unico Dio. ,,Игрок %o Ñтолкнул@[refl_rus] Ñ Ð³Ð½ÐµÐ²Ð¾Ð¼ Единого Бога., +%o couldn't escape from the Lore Master's grasp.,OB_LOREMASTER,,,,%o konnte dem Griff des Wissensmeisters nicht entkommen.,%o no pudo escapar del agarre del Maestro del Conocimiento.,,%o n'a pu échapper a l'emprise du Maître des Traditions.,%o nem tudott elmenekülni a Tan Mester elÅ‘l.,%o non è riuscito a sfuggire alla stretta del Maestro del Sapere. ,,%o не Ñмог@[irreg_2_rus] избежать длани Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти., +%o was deleted by the Programmer.,OB_PROGRAMMER,,,,%o wurde vom Programmierer gelöscht.,%o fue suprimid@[ao_esp] por el Programador.,,%o a été effacé@[e_fr] par le Programmeur.,%o kilett törölve a Programozó által.,%o è stato cancellato dal Programmatore. ,,Игрока %o удалил ПрограммиÑÑ‚., +%o was blown away by the Bishop.,OB_STFBISHOP,,,,%o wurde vom Bischof weggeblasen.,%o fue volad@[ao_esp] en pedazos por el Obispo.,,%o a été pulvérisé@[e_fr] par l'Evèque.,%o el lett fújva a Püspök által.,%o è stato spazzato via dal Vescovo. ,,Игрока %o поразил ЕпиÑкоп., +%o was shot down by a Sentinel.,OB_SENTINEL,,,,%o wurde von dem Wächter niedergeschossen.,%o fue derribado por un Centinela.,,%o a été abattu@[e_fr] par une Sentinelle.,%o meglett lÅ‘ve egy Årszem által.,%o è stato impallinato dalla Sentinella. ,,Игрока %o заÑтрелил Ñтраж., +%o was swept away by a Crusader.,OB_CRUSADER,,,,%o wurde vom Ordensritter weggeblasen.,%o fue barrid@[ao_esp] por un Cruzado.,,%o a été balayé@[e_fr] par un croisé.,%o el lett söpörve egy Keresztes Lovag által.,%o è stato tolto di mezzo da un Crociato. ,,Игрока %o Ñмёл креÑтоноÑец., +%o was sentenced by an Inquisitor.,OB_INQUISITOR,,,,%o wurde vom Inquisitor verurteilt.,%o fue sentenciad@[ao_esp] por un Inquisidor.,,%o a été condamné@[e_fr] par un Inquisiteur.,%o el lett ítélve egy Vizsgálóbíró által.,%o è stato condannato da un Inquisitore. ,,Игрока %o приговорил инквизитор., +%o was bugged by a Stalker.,OB_STALKER,,"rus +Оригинал: +«%o was bugged by a Stalker.» + +Игра Ñлов непереведена.",,%o wurde von dem Jäger genervt.,%o fue fastidiad@[ao_esp] por un Acechador.,,%o a été asticoté@[e_fr] par un chasseur.,%o bogaras lett egy SettenkedÅ‘ által.,%o è stato violentato da un Cacciatore. ,,Игрока %o ужалил Ñталкер., +%o triggered the automatic defenses.,OB_TURRET,,,%o triggered the automatic defences.,%o hat die automatische Verteidigung ausgelöst.,%o activó las defensas automáticas.,,%o a déclenché les défenses automatiques.,%o bekapcsolta az automata védelmi rendszert.,%o ha attivato le difese automatiche. ,,%o включил@[ao_rus] автоматичеÑкую защиту., +%o was clawed by a Templar.,OB_TEMPLARHIT,,,,%o wurde von dem Templer aufgeschlitzt.,%o fue desgarrad@[ao_esp] por un Templario.,,%o a été griffé@[e_fr] par un Templier.,%o meglett karmolva egy Templomos által.,%o è stato artigliato da un Templare. ,,Игрока %o разорвал храмовник., +%o was vaporized by a Templar.,OB_TEMPLAR,,,,%o wurde von dem Templer vaporisiert.,%o fue vaporizad@[ao_esp] por un Templario.,,%o a été vaporisé@[e_fr] par un Templier.,%o elpárolgott egy Templomos által.,%o è stato vaporizzato da un Templare. ,,Игрока %o иÑпепелил храмовник., +%o was sliced open by a Reaver.,OB_REAVERHIT,,,,%o wude von dem Plünderer aufgeschlitzt.,%o fue rebanad@[ao_esp] por un Saqueador.,,%o a été fendu@[e_fr] par un Reaver.,%o szétlett vágva egy Fosztogató által.,%o è stato aperto a metà da un Saccheggiatore. ,,Игрока %o разрезал на куÑки похититель., +%o was shot down by a Reaver.,OB_REAVER,,,,%o wurde von dem Plünderer niedergeschossen.,%o fue derribad@[ao_esp] por un Saqueador.,,%o a été descendu@[e_fr] par un Reaver.,%o le lett lÅ‘ve egy Fosztogató által.,%o è stato colpito da un Saccheggiatore. ,,Игрока %o заÑтрелил похититель., +%o was unwittingly backstabbed by %k.,OB_MPPUNCHDAGGER,,,,%o wurde von %k hinterrücks erdolcht.,%o fue apuñalad@[ao_esp] sin darse cuenta por %k.,,%o s'est fait@[e_fr] planter un lame dans le dos de la part de %k.,%o véletlenül hátbalett szúrva %k által.,%o è stato colto alle spalle da %k senza che se ne accorgesse.,%o foi pego pela faca de %k.,Игрок %o был непреднамеренно заколот кинжалом %k., +%o got bolted to the wall by %k.,OB_MPELECTRICBOLT,,,,%o wurde von %k an die Wand genagelt.,%o quedó atornillad@[ao_esp] a la pared por %k.,,%o s'est fait@[e_fr] clouer au mur par %k.,%o falra lett szegezve %k által.,%o è stato inchiodato al muro da %k.,%o recebeu alguns choques de %k.,Игрок %o был прибит к Ñтене %k., +%o received a lethal dose of %k's wrath.,OB_MPPOISONBOLT,,,,%o erhielt eine tödliche Dosis von %ks Zorn.,%o recibió una dosis letal de la ira de %k.,,%o a recu une dose létale de la colère de %k.,%o kapott egy haragnyi adalékot %k-tól/tÅ‘l.,%o ha ricevuto una dose letale dell'ira di %k.,%o recebeu uma dose letal da ira de %k.,Игрок %o получил Ñмертельную дозу гнева %k., +%o was drilled full of holes by %k's assault gun.,OB_MPASSAULTGUN,,,,%o wurde von %ks Sturmgewehr perforiert.,%o fue taladrad@[ao_esp] por el fusil de asalto de %k.,,%o s'est fait@[e_fr] couvrir de trous par le fusil d'assaut de %k.,%o kilett lyukazva %k Gépfegyvere által.,%o è stato crivellato dall'arma d'assalto di %k.,%o virou uma peneira diante da metralhadora de %k.,Игрок %o изрешечён штурмовой винтовкой %k., +%o gulped down %k's missile.,OB_MPMINIMISSILELAUNCHER,,,,%o schluckte %ks Rakete herunter.,%o se tragó el misil de %k.,,%o a avalé le missile de %k.,%o lenyelte %k rakétáját.,%o ha inghiottito il missile di %k.,%o engoliu misseis de %k.,Игрок %o проглотил ракету %k., +%o was inverted by %k's H-E grenade.,OB_MPSTRIFEGRENADE,,,,%o wurde von %ks HE-Granate invertiert.,%o fue invertid@[ao_esp] por la granada HE de %k.,,%o a été mis@[e_fr] sens dessus dessous par la grenade explosive de %k.,%o kilett fordítva %k gránátája által.,%o è stato invertito dalla granata H-E di %k.,%o foi pego pelas granadas de %k.,Игрок %o инвертируетÑÑ H-E гранатой %k., +%o took a flame bath in %k's phosphorous pyre.,OB_MPPHOSPHOROUSGRENADE,,,,%o nahm ein Flammenbad in %ks Scheiterhaufen.,%o tomó un baño de llamas en la hoguera de fósforo de %k.,,%o s'est permis@[e_fr] une pyroclave dans les flammes phosphoriques de %k.,%o kapott egy tűzfürdÅ‘t %k máglyájától.,%o ha fatto un bagno nelle fiamme nella pira di fosforo di %k.,%o nao fugiu do fogo causado pelas granadas PH de %k.,Игрок %o принÑл горÑчую ванну из чиÑтого фоÑфора %k., +%o was barbecued by %k.,OB_MPFLAMETHROWER,,,,%o wurde von %k gegrillt,%o fue asad@[ao_esp] por %k.,,%o est passé@[e_fr] au barbecue de %k.,%o meglett sütve %k által.,%o è stato fatto alla griglia da %k.,%o virou churrasco por causa de %k.,Игрок %k поджарил игрока %o., +%o was zapped by %k.,OB_MPMAULER1,,,,%o wurde von %k geschockt.,%o fue electrocutad@[ao_esp] por %k.,,%o s'est fait@[e_fr] électrocuter par %k.,%o kapott egy áramot %k által.,%o è stato fulminato da %k.,,Игрок %k ударил током игрока %o., +%o was viciously vaporized by %k.,OB_MPMAULER,,,,%o wurde von %k vaporisiert.,%o fue viciosamente vaporizad@[ao_esp] por %k.,,%o à été vicieusement vaporisé@[e_fr] par %k.,%o elpárolgott %k által.,%o è stato crudelmente vaporizzato da %k.,%o foi vaporizado por %k.,Игрок %k безжалоÑтно раÑпылил игрока %o., +%o bowed down to the sheer power of %k's Sigil.,OB_MPSIGIL,,,,%o kapitulierte vor der Macht von %ks Sigil.,%o se inclinó ante el poder puro del emblema de %k.,,%o s'est prosterné@[e_fr] face à la toute puissance du Sigil de %k.,%o fejet hajtott %k Pecsétje ereje elÅ‘tt.,%o si è prostrato davanti alla pura potenza del Sigillo di %k.,%o sentiu o poder de %k:SIGIL.,Игрок %o ÑклонилÑÑ Ð¿ÐµÑ€ÐµÐ´ Ñилой Сигила %k., +,,,Miscellaneous,,,,,,,,,, +Quest for the Sigil,TXT_STRIFE_EPI,,,,Suche nach dem Sigil,La búsqueda del Emblema,,La Quête du Sigil,,,,Ð’ поиÑках Сигила, +You've freed the prisoners!,TXT_FREED_PRISONERS,,,,Du hast die Gefangenen befreit!,¡Has liberado a los prisioneros!,,Vous avez libéré les prisonniers!,,,,Пленники оÑвобождены!, +You've destroyed the Converter!,TXT_DESTROYED_CONVERTER,,,,Du hast den Konverter zerstört!,¡Has destruido el Convertidor!,,Vous avez détruit le convertisseur!,,,,Конвертер уничтожен!, +Congratulations! You have completed the training area,TXT_COMPLETED_TRAINING,,,,Gratuliere! Du hast das Trainingsprogramm bestanden.,¡Felicidades! Has completado el área de entrenamiento,,Félicitations! Vous êtes arrivé à la fin de l'entraînement.,,,,Браво! Ты прошёл тренировку, +You've blown up the Crystal,TXT_QUEST_14,,,,Du hast den Kristall zerstört.,Has volado el Cristal,,Vous avez explosé le cristal!,Szétrobbantottad a kristályt,Hai fatto esplodere il Cristallo,Voce explodiu o cristal,КриÑталл взорван, +You've blown up the Gates,TXT_QUEST_16,,,,Du hast die Tore geöffnet.,Has volado las Puertas,,Vous avez explosé les portes!,A levegÅ‘be repítetted a kapukat,Hai fatto esplodere i Cancelli,Voce explodiu as portas,Ворота взорваны, +You've blown up the Computer,TXT_QUEST_27,,,,Du hast den Computer zerstört.,Has volado la Computadora,,Vous avez explosé l'ordinateur!,Felrobbantottad a számítógépet,Hai fatto esplodere il Computer,Voce explodiu o computador,Компьютер взорван, +You killed the Bishop!,TXT_KILLED_BISHOP,,,,Du hast den Bischof getötet.,¡Mataste al Arzobispo!,,Vous avez tué l'évèque!,Megölted a Püspököt!,Hai ucciso il Vescovo!,Voce matou o bispo!,ЕпиÑкоп убит!, +You've killed the Oracle!,TXT_KILLED_ORACLE,,,,Du hast das Orakel getötet,¡Has matado al Oráculo!,,Vous avez tué l'oracle!,Megölted az Orákulumot!,Hai ucciso l'Oracolo!,Voce matou o Oraculo!,Оракл убит!, +You killed Macil!,TXT_KILLED_MACIL,,,,Du hast Macil getötet.,¡Mataste a Macil!,¡Has matado a Macil!,Vous avez tué Macil!,Megölted Macilt!,Hai ucciso Macil!,Voce matou Macil!,ÐœÑйÑил убит!, +You've killed the Loremaster!,TXT_KILLED_LOREMASTER,,,,Du hast den Wissensmeister getötet!,¡Has matado al Maestro del Conocimiento!,,Vous avez tué le Maitre des traditions!,Megölted a Tudóst!,Hai ucciso il Maestro del Sapere!,Voce matou o Loremaster!,Хранитель мудроÑти убит!, +You fool! You've set off the alarm.,TXT_YOUFOOL,,,,Du Trottel! Du hast den Alarm ausgelöst.,¡Insensat@[ao_esp]! Has activado la alarma.,¡Tont@[ao_esp]! Has activado la alarma.,Vous êtes fou! Vous avez activé l'alarme!,Te barom! Beindítottad a riasztót.,Stolto! Hai fatto scattare l'allarme.,,Глупец. Ты включил Ñигнализацию!, +You're dead! You set off the alarm.,TXT_YOUREDEAD,,,,Du bist tot. Du hast den Alarm ausgelöst.,¡Estás muert@[ao_esp]! Activaste la alarma.,,Vous êtes mort! Vous avez activé l'alarme!,Beindult a riasztó. Halott vagy!,Sei morto! L'allarme è scattato.,,Ты поднÑл тревогу! ГотовьÑÑ Ðº Ñмерти!, +You seem to have enough!,TXT_HAVEENOUGH,,,,Du scheinst genug zu haben.,¡Se ve que tienes suficiente!,,Vous avez l'air d'en avoir assez!,Úgy néz ki eleged van már!,,Voce parece ter bastante!,"КажетÑÑ, тебе хватит!", +Go away!,TXT_GOAWAY,,,,Verschwinde!,¡Lárgate!,,Allez-vous en!,Takarodj!,,Va embora!,Уходи!, +Incoming Message,TXT_COMM0,,,,Nachricht erhalten,Mensaje entrante,,Message reçu.,BejövÅ‘ Ãœzenet,,,ВходÑщее Ñообщение, +Incoming Message from BlackBird,TXT_COMM1,,,,Nachricht von Blackbird erhalten,Mensaje entrante de BlackBird,,Message reçu de BlackBird,BejövÅ‘ Ãœzenet Feketerigótól.,,,ВходÑщее Ñообщение от Чёрного дрозда, +Find help,TXT_FINDHELP,,,,Finde Hilfe,Busca ayuda,,Trouvez de L'aide,Keress segítséget,Trova aiuto,,Ðайди помощь,Ðађи помоћ +for %u,TXT_TRADE,,,,für %u,por %u,,pour %u,,,,за %u, +,,,Chex Quest,,,,,,,,,, +,,,Pickups,,,,,,,,,, +Picked up the Chex(R) Armor.,GOTCHEXARMOR,,,Picked up the Chex(R) Armour.,Du hast die Chex(R) Rüstung genommen,Recogiste la armadura Chex(R).,,Vous avez pris l'armure Chex(R).,,Raccolta un'Armatura Chex(R).,Pegou a armadura Chex(R).,Получена Chex(R)-бронÑ., +Picked up the Super Chex(R) Armor!,GOTSUPERCHEXARMOR,,,Picked up the Super Chex(R) Armour!,Du hast die Superchex(R)Rüstung genommen!,¡Recogiste la armadura Súper Chex(R)!,,Vous avez pris la super armure Chex(R)!,,Raccolta la Super Armatura Chex(R)!,Pegou a super armadura Chex(R)!,Получена Chex(R)-ÑверхбронÑ!, +Picked up a glass of water.,GOTWATER,,,,Du hast ein Glas Wasser genommen.,Recogiste un vaso de agua.,,Vous avez pris un verre d'eau.,,Raccolto un bicchiere d'acqua.,Pegou um copo de agua.,Получен Ñтакан воды., +Picked up slime repellent.,GOTREPELLENT,,,,Du hast das Schleimabwehrmittel genommen.,Recogiste un repelente de baba.,,Vous avez pris de la chaux répulsive.,,Raccolto del repellente allo slime.,Pegou repelente de lesma.,Получен репеллент против Ñлизи., +Supercharge Breakfast!,GOTBREAKFAST,,,,Ãœberladenes Frühstück!,¡Desayuno supercargado!,,Petit-déjeuner superchargé!,,Colazione da supercarica!,Um belo cafe da manha!,Супер-завтрак!, +Picked up a blue key.,GOTCBLUEKEY,,,,Du hast einen blauen Schlüssel genommen.,Recogiste una llave azul.,,Vous avez pris une clé bleue.,,Raccolta una chiave blu.,Pegou a chave azul.,Получен Ñиний ключ., +Picked up a yellow key.,GOTCYELLOWKEY,,,,Du hast einen gelben Schlüssel genommen.,Recogiste una llave amarilla.,,Vous avez pris une clé jaune.,,Raccolta una chiave gialla.,Pegou a chave amarela.,Получен жёлтый ключ., +Picked up a red key.,GOTCREDKEY,,,,Du hast einen roten Schlüssel genommen.,Recogiste una llave roja.,,Vous avez pris une clé rouge.,,Raccolta una chiave rossa.,Pegou a chave vermelha.,Получен краÑный ключ., +Picked up a bowl of fruit.,GOTFRUIT,,,,Du hast eine Obstschale genommen.,Recogiste un tazón de fruta.,,Vous avez pris un bol de fruits.,,Raccolto un vassoio di frutta.,Pegou uma bacia de frutas.,ВзÑта тарелка Ñ Ñ„Ñ€ÑƒÐºÑ‚Ð°Ð¼Ð¸., +Vegetables are REALLY good for you!,GOTVEGETABLESNEED,,,,Gemüse ist RICHTIG gut für dich!,¡Los vegetales son REALMENTE buenos para ti!,,Les légumes sont VRAIMENT bons pour vous!,,La verdura ti fa DAVVERO bene!,Vegetais sao REALMENTE bons para voce!,ВзÑÑ‚Ñ‹ овощи при крайней необходимоÑти!, +Picked up a bowl of vegetables.,GOTVEGETABLES,,,,Du hast eine Gemüseschale genommen.,Recogiste un tazón de vegetales.,,Vous avez pris un bol de légumes.,,Raccolto un vassoio di verdura.,Pegou uma bacia de vegetais.,ВзÑта тарелка Ñ Ð¾Ð²Ð¾Ñ‰Ð°Ð¼Ð¸., +Found a Slime-Proof Suit,GOTSLIMESUIT,,,,Du hast einen Schleimbeständigen Anzug gefunden,Encontraste un traje a prueba de baba.,,Combinaison pare-gelée,,Raccolto un vestito a prova di slime,Achou roupa anti-radiacao,Ðайден противоÑлизневый коÑтюм, +Found a Computer Area Map,GOTCHEXMAP,,,,Du hast eine Computerkarte gefunden,Encontraste un mapa computarizado del área.,,Vous avez trouve une carte informatique de la zone.,,Trovata una mappa computerizzata,Achou um GPS,Ðайдена ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° меÑтноÑти, +Picked up a mini zorch recharge.,GOTZORCHRECHARGE,,,,Du hast eine Minizorcher-Ladung genommen.,Recogiste una recarga de mini zorch.,,Vous avez pris une mini recharge zorch.,,Raccolta una ricarica di mini zorch.,Pegou carga para mini zorcher.,, +Picked up a mini zorch pack.,GOTMINIZORCHPACK,,,,Du hast ein Minizorcher-Ladepaket genommen.,Recogiste un paquete de mini zorch.,,Vous avez pris un pack de mini recharges zorch.,,Raccolta una scatola di mini zorch.,Pegou mais cargas para mini zorcher.,, +Picked up a zorch propulsor recharge.,GOTPROPULSORRECHARGE,,,,Du hast eine Propeller-Ladung genommen.,Recogiste una recarga de propulsor de zorch.,,Vous avez pris une recharge propulseur zorch.,,Raccolta una ricarica di zorch a propulsione.,Pegou carga para propulsor zorch.,, +Picked up a zorch propulsor pack.,GOTPROPULSORPACK,,,,Du hast ein Propeller-Ladepaket genommen.,Recogiste un paquete de propulsor de zorch.,,Vous avez pris un paquet propulseur zorch.,,Raccolta una scatola di zorch a propulsione.,Pegou mais cargas para propulsor zorch.,, +Picked up a phasing zorcher recharge,GOTPHASINGZORCHERRECHARGE,,,,Du hast eine Phasenzorcher-Ladung genommen.,Recogiste una recarga de zorch de fase.,,Vous avez pris une recharge zorch phasée.,,Raccolta una ricarica per zorcher a phasing,Pegou carga para mega zorcher.,, +Picked up a phasing zorcher pack.,GOTPHASINGZORCHERPACK,,,,Du hast ein Phasenzorcher-Ladepaket genommen.,Recogiste un paquete de zorch de fase.,,Vous avez pris un pack de recharges zorch phasée.,,Raccolta una scatola per zorcher a phasing.,Pegou mais carga para mega zorcher.,, +Picked up a large zorcher recharge.,GOTLARGEZORCHERRECHARGE,,,,Du hast eine Zorcher-Ladung genommen.,Recogiste una gran recarga de zorch.,,Vous avez pris une recharge pour zorcheur large.,,Raccolta una ricarica per zorcher grande.,Pegou carga para zorcher grande.,, +Picked up a large zorcher pack.,GOTLARGEZORCHERPACK,,,,Du hast ein Zorcher-Ladepaket genommen.,Recogiste un gran paquete de zorch.,,Vous avez pris un pack de recharges pour zorcheur large.,,Raccolta una scatola per zorcher grande.,Pegou mais carga para zorcher grande.,, +Picked up a Zorchpak!,GOTZORCHPACK,,,,Du hast ein Zorchpaket genommen.,¡Recogiste un Zorchpak!,,Vous avez pris un zorchpak!,,Raccolto uno ZorchZaino!,Pegou um Zorchpak!,, +You got the LAZ Device! Woot!,GOTLAZDEVICE,,,,Du hast den Flächenzorcher!,¡Tienes el dispositivo LAZ! ¡Yuju!,,Vous avez pris l'Outil ZZL! Wahou!,,Hai trovato il dispositivo LAZ! Cavolo!,Voce achou LAZ Device! Legal!,, +You got the Rapid Zorcher!,GOTRAPIDZORCHER,,,,Du hast den schnellen Zorcher genommen!,¡Tienes el Zorcher rápido!,,Vous avez pris le Zorcheur Rapide!,,Hai trovato il zorcher rapido!,Voce achou Zorcher automatico!,, +You got the Super Bootspork!,GOTSUPERBOOTSPORK,,,,,¡Tienes el Súper cubierto!,,Vous avez pris la Super Fourchette!,,Hai trovato il super bootspork!,Voce achou Super garfo!,, +You got the Zorch Propulsor!,GOTZORCHPROPULSOR,,,,Du hast den Propellerzorcher genommen!,¡Tienes el Propulsor de zorch!,,Vous avez pris le Propulseur Zorch!,,Hai trovato il propulsore zorch!,Voce achou Propulsor Zorch!,, +You got the Phasing Zorcher!,GOTPHASINGZORCHER,,,,Du hast den Phasenzorcher genommen!,¡Tienes el Zorcher de fase!,,Vous avez pris le Zorcheur phasé!,,Hai trovato il zorcher a phasing!,Voce achou Mega Zorcher!,, +You got the Large Zorcher!,GOTLARGEZORCHER,,,,Du hast den großen Zorcher genommen!,¡Tienes el Zorcher largo!,,Vous avez pris le Zorcheur Large!,,Hai trovato il zorcher grande!,Voce achou Zorcher grande!,, +You got the Mega Zorcher!,GOTSUPERLARGEZORCHER,,,,Du hast den Megazorcher genommen!,¡Tienes el Mega Zorcher!,,Vous avez pris le méga Zorcheur!,,Hai trovato il mega zorcher!,Voce achou Super Zorcher!,, +Picked up a Mini Zorcher.,GOTMINIZORCHER,,,,Du hast einen Minizorcher genommen.,Recogiste un Mini Zorcher,,Vous avez pris le Mini Zorcheur.,,Raccolto un mini zorcher.,Voce achou Mini Zorcher.,, +,,,Actor tags,,,,,,,,,, +Spoon,TAG_SPOON,,,,Löffel,Cuchara,,Cuillère à Botte,Kanál,Cucchiaio ,Colher,Ложка, +Super Bootspork,TAG_SPORK,,,,Supergabel,Súper Cubierto,,Super Fourchette,Szuper Rotációs Villa,Super Forcucchiaio,Super garfo,Супер ботинок, +Mini Zorcher,TAG_MINIZORCHER,,,,Minizorcher,Mini Zorcher,,Mini Zorcheur,Mini Zorker,Mini Zorcher,Mini Zorcher,Мини-зорчер, +Large Zorcher,TAG_LARGEZORCHER,,,,Großer Zorcher,Zorcher largo,,Zorcheur Large,Nagy Zorker,Grosso Zorcher ,Zorcher grande,Большой зорчер, +Super-Large Zorcher,TAG_SUPERLARGEZORCHER,,,,Riesenzorcher,Zorcher Súper Largo,,Zorcheur Extra-large,Hatalmas Zorker,Zorcher Enorme ,Super Zorcher,Огромный зорчер, +Rapid Zorcher,TAG_RAPIDZORCHER,,,,Schnellzorcher,Zorcher Rápido,,Zorcheur Rapide,Gyors Zorker,Zorcher Rapido,Zorcher automatico,СкороÑтрельный зорчер, +Zorch Propulsor,TAG_ZORCHPROPULSOR,,,,Zorch-Propeller,Propulsor de Zorch,,Propulseur de Zorch,Zork Elhárító,Propulsore Zorch,,Зорч-пропульÑор, +Phasing Zorcher,TAG_PHASINGZORCHER,,,,Phasenzorcher,Zorcher de Fase,,Zorcheur à Phase,Fokozatos Zorker,Zorcher di Fase,,Фазовый зорчер, +LAZ Device,TAG_LAZDEVICE,,,,Flächenzorcher,Dispositivo LAZ,,Zorcheur Zone Large,LAZ Szerkezet,Dispositivo LAZ,,УÑтройÑтво «ЛÐЗ», +%o was slimed by a flemoid.,OB_COMMONUS,,,,%o wurde von einem Flemoiden vollgeschleimt.,%o fue pegotead@[ao_esp] por un flemoide.,,%o à été gélifié par un flemoid.,,%o è stato coperto di slime da un flemoid.,%o foi eslameado por um flemoid.,, +%o was slimed by a bipedicus.,OB_BIPEDICUS,,,,%o wurde von einem Bipedicus vollgeschleimt.,%o fue pegotead@[ao_esp] por un bipedicus.,,%o à été gélifié par un bipedicus.,,%o è stato coperto di slime da un bipedicus.,%o foi eslameado por um bipedicus.,, +%o was slimed by an armored bipedicus.,OB_BIPEDICUS2,,,%o was slimed by an armoured bipedicus.,%o wurde von einem gepanzerten Bipedicus vollgeschleimt.,%o fue pegotead@[ao_esp] por un bipedicus blindado.,,%o à été gélifié par un bipedicus en armure.,,%o è stato coperto di slime da un bipedicus corazzato.,%o foi eslameado por um armored bipedicus.,, +%o was slimed by a cycloptis.,OB_CYCLOPTIS,,,,%o wurde von einem Cycloptis vollgeschleimt.,%o fue pegotead@[ao_esp] por un cicloptis.,,%o à été gélifié par un cycloptis.,,%o è stato coperto di slime da un cycloptis.,%o foi eslameado por um cycloptis.,, +%o was defeated by the Flembrane.,OB_FLEMBRANE,,,,%o wurde von der Flembrane geschlagen,%o fue vencid@[ao_esp] por la Flembrana.,,%o à été battu par la Flembrane.,,%o è stato sconfitto dalla Flembrana.,%o foi derrotado pela Flembrane.,, +%o was spoon fed by %k.,OB_MPSPOON,,,,%o wurde von %k mit dem Löffel gefüttert.,%o fue cucharead@[ao_esp] por %k.,,%o à été nourri a la petite cuillière par %k.,,%o è stato imboccato da %k.,%o foi comido de colher por %k.,, +%o was thoroughly mixed with %k's bootspork.,OB_MPBOOTSPORK,,,,%o wurde von %k gründlich durchgerührt.,%o fue profundamente revuelt@[ao_esp] por el cubierto de %k.,,%o à été mélange minutieusement par la Super Fourchette de %k.,,%o è stato mischiato ben bene dal bootspork di %k.,%o foi misturado pelo garfo de %k.,, +%o was zorched by %k.,OB_MPZORCH,,,,%o wurde von %k gezorcht,%o fue electrizad@[ao_esp] por %k.,,%o à été zorché par %k.,,%o è stato zorchato da %k.,%o foi zorcheado por %k.,, +%o was hit by %k's mega-zorcher.,OB_MPMEGAZORCH,,,,%o wurde von%ks Mega-Zorcher getroffen,%o fue impactad@[ao_esp] por el mega-zorcher de %k.,,%o à été frappé par le mega zorcheur de %k.,,%o è stato colpito dal mega-zorcher di %k.,%o foi pego pelo zorcher grande de %k.,, +%o was rapid zorched by %k.,OB_MPRAPIDZORCH,,,,%o wurde von %k schnellgezorcht.,%o fue electrizad@[ao_esp] rápidamente por %k.,,%o à été zorché rapidement par %k.,,%o è stato rapid-zorchato da %k.,%o foi zorcheado rapidamente por %k.,, +%o was zorched by %k's propulsor.,OB_MPPROPULSOR,,,,%o wurde von %ks Propeller gezorcht,%o fue electrizad@[ao_esp] por el propulsor de %k.,,%o à été zorché par le propulseur de %k.,,%o è stato zorchato dal propulsore di %k.,%o foi zorcheado pelo propulsor de %k.,, +%o was hit by %k's propulsor.,OB_MPP_SPLASH,,,,%o wurde von %ks Propeller getroffen,%o fue impactad@[ao_esp] por el propulsor de %k.,,%o à été frappé par le propulseur de %k.,,%o è stato colpito dal propulsore di %k.,%o foi pego pelo propulsor de %k.,, +%o was phase zorched by %k.,OB_MPPHASEZORCH,,,,%o wurde von %k wegsynchronisiert,%o fue electrizad@[ao_esp] en fase por %k.,,%o à été phasé par %k.,,%o è stato phase-zorchato da %k.,%o foi mega zorcheado por %k.,, +%o fell prey to %k's LAZ device.,OB_MPLAZ_BOOM,,,,%o fiel %ks Flächenzorcher zum Opfer,%o cayó pres@[ao_esp] ante el dispositivo LAZ de %k.,,%o est devenu la proie de l'ustensil ZZL %k.,,%o è stato preda del dispositivo LAZ di %k.,%o foi vitima do LAZ device de %k.,, +%o was lazzed by %k.,OB_MPLAZ_SPLASH,,,,%o wurde von %k weggebeamt.,%o fue LAZeado por %k.,,%o à été pris par le ZZL de %k.,,%o è stato lazzato da %k.,%o foi pego pelo LAZ device de %k.,, +,,,Miscellaneous,,,,,,,,,, +E1M1: Landing Zone,CHUSTR_E1M1,,,,E1M1: Landezone,E1M1: Zona de Aterrizaje,,E1M1: La piste d'atterissage,,E1M1: Zona di Atterraggio,,E1M1: Зона приземлениÑ, +E1M2: Storage Facility,CHUSTR_E1M2,,,,E1M2: Lagerhalle,E1M2: Instalación de Almacenamiento,,E1M2: Le centre de stockage,,E1M2: Struttura di Immagazzinamento,,E1M2: Хранилище, +E1M3: Experimental Lab,CHUSTR_E1M3,,,,E1M3: Experimentelles Labor,E1M3: Laboratorio Experimental,,E1M3: Les labos éxperimentaux,,E1M3: Laboratorio Sperimentale,,E1M3: ЛабораториÑ, +E1M4: Arboretum,CHUSTR_E1M4,,,,,E1M4: Arboreto,,E1M4: L'Arboretum,,E1M4: Arboreto,,E1M4: Дендрарий, +E1M5: Caverns of Bazoik,CHUSTR_E1M5,,,,E1M5: Die Höhlen von Bazoik,E1M5: Cavernas de Bazoik,,E1M5: Les cavernes de Bazoik,,E1M5: Caverne di Bazoik,,E1M5: Каверны Базоика, +"Mission accomplished. + +Are you prepared for the next mission? + + + + + + +Press the escape key to continue...",CE1TEXT,,,,"Mission erfüllt. + +Bist du für die nächste Mission bereit? + + + + + + +Drücke die ESC-Taste um fortzufahren... +","Misión cumplida. + +¿Estás preparad@[ao_esp] para la siguiente misión? + + + + +Presiona la tecla de escape para continuar...",,"Mission accomplie. + +Etes vous prêt pour la prochaine mission? + + + + + + +Appuyez sur échap pour continuer...",,"Missione compiuta. + +Sei preparato per la prossima missione? + + + + + + +Premi il tasto 'esc' per continuare...",,"МиÑÑÐ¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð°. + +Готовы к Ñледующей миÑÑии? + + + + + + +Ðажмите ESC Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ...", +You've done it!,CE2TEXT,,,,Du hast es geschafft!,¡Lo hiciste!,,Vous l'avez fait!,,Ce l'hai fatta!,,Ты Ñделал Ñто!, +Wonderful Job!,CE3TEXT,,,,Großartige Arbeit!,¡Maravilloso!,,Merveilleux travail!,,Meraviglioso!,,ПревоÑÑ…Ð¾Ð´Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°!, +Fantastic,CE4TEXT,,,,Fantastisch,¡Fantástico!,,Fantastique!,,Fantastico,,ФантаÑтичеÑки., +"You can't do load while in a net quest! + +Press a key.",CLOADNET,,,,"Du kannst während eines Netzwerkspiels keinen Spielstand laden. + +Drücke eine Taste","¡No puedes cargar mientras estés en una aventura en línea! + +Presiona una tecla.",,"Vous ne pouvez pas charger quand +vous êtes en ligne! + +appuyez sur une touche.",,"non puoi caricare una quest durante una net quest! + +press a key.","impossivel carregar, porque +esta em partida online! +aperte uma tecla.",, +"Quicksave over your quest named + +'%s'? + +Press Y or N.",QSPROMPT,chex,,,"Ãœberschreibe %s mit einem Schnellspeicherspielstand? + +Drücke Y oder N.","¿Guardar sobre tu aventura llamada '%s'? + +Presiona Y ó N.",,"Sauvegarde rapide sur le fichier + +'%s'? + +Appuyez sur Y ou N.",,"sovrascrivere il salvataggio + +'%s'? + +premi y oppure n.",,, +"You can't quickload during a netquest! + +Press a key.",QLOADNET,chex,,,"Du kannst während eines Netzwerkspiels nicht schnellladen. + +Drücke eine Taste","¡No puedes cargar una partida guardada durante una aventura en línea! + +Presiona una tecla.",,"Vous ne pouvez pas charger quand +vous êtes en ligne! + +appuyez sur une touche.",,"non puoi fare un quickload durante una netquest! + +premi un tasto.",,, +"Do you want to quickload the quest named + +'%s'? + +Press Y or N.",QLPROMPT,chex,,,"Möchtest du den Spielstand %s schnellladen? + +Drücke Y oder N.","¿Quieres cargar la aventura llamada '%s'? + +Presiona Y ó N.",,"Chargement rapide sur le fichier + +'%s'? + +Appuyez sur Y ou N.",,"vuoi fare un quickload della quest + +'%s'? + +premi y oppure n.",,, +"You can't start a new quest +while in a network quest. + +Press a key.",CNEWGAME,,,,"Du kannst während eines Netzwerkspiels kein neues Spiel starten. + +Drücke eine Taste","No puedes iniciar una nueva aventura mientras estés en una aventura en línea. + +Presiona una tecla.",,"Vous ne pouvez pas lancer une partie quand +vous êtes en ligne! + +appuyez sur une touche.",,"non puoi iniziare una nuova quest +durante una quest in rete. + +premi un tasto.","impossivel iniciar um novo jogo +enquanto se esta online. + +aperte uma tecla.",, +"Careful, this will be tough. +Do you wish to continue? + +Press Y or N.",CNIGHTMARE,,,,"Achtung, das ist schwer! +Willst du das wirklich machen. + +Drücker Y oder N.","Con cuidado, esto será duro. +¿Deseas continuar? + +Presiona Y ó N.",,"Attention, ce mode n'y va pas avec tact... +Voulez-vous continuer? + +Appuyez sur Y ou N.",,"Attento, sarà dura. +Vuoi continuare? + +premi y oppure n.","Cuidado, isto vai ser dificil. +Deseja continuar? +",, +"This is Chex(R) Quest. look for + +future levels at www.chexquest.com. + +Press a key.",CSWSTRING,,,,"Dies ist Chex Quest(R). Finde + +weitere Level auf www.chexquest.com + +Drücke eine Taste","Esto es Chex(R) Quest. Busca nuevos niveles en www.chexquest.com. + +Presiona una tecla.",,"Ceci est Chex(R) Quest. Attendez-vous + +à de futur niveaux sur www.chexquest.com. + +appuyez sur une touche.",,,"este e Chex(R) Quest. procure +por outros niveis na internet. +",, +"You can't end a netquest! + +Press a key.",NETEND,chex,,,"Du kannst ein Netzwerkspiel nicht beenden. + +Drücke eine Taste.","¡No puedes terminar una aventura en línea! + +Presiona una tecla.",,"Vous ne pouvez pas arrêter la partie quand +vous êtes en ligne! + +appuyez sur une touche.",,"non puoi terminare una netquest! + +premi un tasto","voce nao pode finalizar uma partida online! +pressione qualquer tecla.","Ðевозможно прервать Ñетевой квеÑÑ‚! + +Ðажмите любую клавишу.", +"Are you sure you want to end the quest? + +Press Y or N.",ENDGAME,chex,,,"Willst du das Spiel wirklich beenden? + +Drücke Y oder N.","¿Estás segur@[ao_esp] que deseas terminar la aventura? + +Presiona Y ó N.",,"Finir la partie? + +Appuyez sur Y ou N.",,"sei sicuro di voler terminare la quest? + +premi y oppure n.","deseja realmente sair? +","Ð’Ñ‹ точно хотите завершить квеÑÑ‚? + +Ðажмите Y или N.", +Invincible Mode ON,STSTR_DQDON,chex,,,Unbesiegbarer Modus EIN,Modo invencible ACTIVADO,,Mode invincible ON,,Modalità invincibile attivata,Modo invencivel ATIVADO,, +Invincible Mode OFF,STSTR_DQDOFF,chex,,,Unbesiegbarer Modus AUS,Modo invencible DESACTIVADO,,Mode invincible OFF,,Modalità invincibile disattivata,Modo invencivel DESATIVADO,, +Zorch Added,STSTR_FAADDED,chex,,,Zorch hinzugefügt,Zorch añadido,,Zorch Ajouté,,Zorch aggiunto,Zorch adicionado,, +Super Zorch Added,STSTR_KFAADDED,chex,,,Super Zorch hinzugefügt,Súper Zorch añadido,,Super Zorch Ajouté,,Super Zorch aggiunto,Super Zorch adicionado,, +... Eat Chex(R)!,STSTR_CHOPPERS,chex,,,...Iss Chex(R)!,... Come Chex(R),,... Mangez du Chex(R)!,,... Mangia Chex(R)!,... coma Chex(R)!,, +Mini Zorch Charge,AMMO_CLIP,chex,,,Minizorcher-Ladung,Carga de Mini Zorch,,Charge Zorch,,,,ЗарÑд мини-Зорчера, +Large Zorcher Charge,AMMO_SHELLS,chex,,,Zorcher-Ladung,Carga de Zorcher Largo,,Charge de Zorcheur Large,,,,ЗарÑд большого Зорчера, +Propulsor Charge,AMMO_ROCKETS,chex,,,Propeller-Ladung,Carga de Propulsor de Zorcher,,Charge de Propulseur,,,,ЗарÑд пропульÑора, +Phasing Zorcher Charge,AMMO_CELLS,chex,,,Phasenzorcher-Ladung,Carga de Zorcher de Fase,,Charge de Phaseur,,,,ЗарÑд фазового Зорчера, +,,,Menus,,,,,,,,,, +,,,Main Menus,,,,,,,,,, +New Game,MNU_NEWGAME,,,,Neues Spiel,Nueva Partida,,Nouvelle Partie,,,Novo jogo,ÐÐ¾Ð²Ð°Ñ Ð¸Ð³Ñ€Ð°,Ðова игра +Options,MNU_OPTIONS,,,,Optionen,Opciones,,Options,,,Opções,ÐаÑтройки,Опције +Game Files,MNU_GAMEFILES,,,,Spieldateien,Archivos del Juego,,Fichiers de jeu,,,Jogos salvos,Файлы игры,Фајлови игре +Info,MNU_INFO,,,,Informationen,Información,,Info,,,Info,ИнформациÑ,Подаци +Quit Game,MNU_QUITGAME,,,,Spiel verlassen,Salir del juego,,Quitter le jeu,,,Sair,Выход,Заврши игру +Choose Skill Level:,MNU_CHOOSESKILL,,"DE, ES, FR had to be shortened to fit the available space",,Schwierigkeitsgrad:,Elige nivel de dificultad:,,Difficulté:,,,Escolha Dificuldade:,Уровень ÑложноÑти:,Изаберите ниво тежине: +I'm too young to die.,SKILL_BABY,,,,Ich bin zu jung zum Sterben.,Soy muy joven para morir.,,Trop jeune pour mourir!,,,Facil,Мне рано умирать.,Премлад Ñам да умрем +"Hey, not too rough.",SKILL_EASY,,,,"He, nicht so ruppig.","Oye, no tan rudo.",,"Hé, pas trop fort!",,,Medio,"Эй, не так грубо.","Хеј, не претерано грубо" +Hurt me plenty.,SKILL_NORMAL,,,,Tu mir weh.,Lastímame suficiente.,,Fais-moi mal!,,,Dificil,Сделай мне больно.,Повреди ме кол'ко можеш +Ultra-Violence.,SKILL_HARD,,,,Volle Gewalt.,Ultra-Violencia.,,Ultra-Violence!,,,Desafio,УльтранаÑилие,Ултра-наÑилно +Nightmare!,SKILL_NIGHTMARE,,,,Alptraum!,¡Pesadilla!,,Cauchemar!,,,PESADELO!,Кошмар!,Ðоћна мора! +Easy does it,CSKILL_BABY,,,,Immer sachte,Así de fácil,,On y Va Doucement,,,,Потихоньку-полегоньку, +Not so sticky,CSKILL_EASY,,,,Nicht so schmierig,No tan pegajoso,,Pas trop Collant,,,,Ðе оÑобо липко, +Gobs of goo,CSKILL_NORMAL,,,,Schleimklumpen,Montón de mugre,,Des Tonnes de Gelée,,,,МаÑÑа Ñлизи, +Extreme Ooze,CSKILL_HARD,,,,Extrem glitschig,Goteo en extremo,,Extrêmement Gluant,,,,ЭкÑÑ‚Ñ€ÐµÐ¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð³Ñ€Ñзь, +Super Slimey!,CSKILL_NIGHTMARE,,,,Super schleimig!,¡Súper baboso!,,Carrément Crade!,,,,СверхÑклизÑкий!, +Training,SSKILL_BABY,,,,,Práctica,,Entrâinement,,,Treino,Разминка, +Rookie,SSKILL_EASY,,,,Anfänger,Novato,,Recrue,,,Iniciante,Ðовичок, +Veteran,SSKILL_NORMAL,,,,,Veterano,,Véteran,,,Veterano,Ветеран, +Elite,SSKILL_HARD,,,,,Elite,,,,,Elite,Элита, +Bloodbath,SSKILL_NIGHTMARE,,,,Blutbad,Baño de sangre,,Massacre!,,,Banho de sangue,ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð±Ð¾Ð¹Ð½Ñ, +Thou needeth a Wet-Nurse,MNU_WETNURSE,,,,Wo ist die Krankenschwester?,Necesitareis una nodriza,,Une Nourrice Vous Voulez,,,,ÐÑнечка надобна мне, +Yellowbellies-R-Us,MNU_YELLOWBELLIES,,,,Vereinigte Waschlappen,Somos pusilánimes,,Un Trouillard-Tu-Est,,,,Ðе Ñтоль мужеÑтвенен Ñ, +Bringest Them Oneth,MNU_BRINGEST,,,,Her damit,Traédnoslos,,Amenez les moi!,,,,Подайте мне их, +Thou art a Smite-Meister,MNU_SMITE,,,,Du bist der Meistertöter,Sois un regicida,,Tu est Maître-Meurtrier,,,,ИÑкушён Ñ ÑражениÑми, +Black Plague Possesses Thee,MNU_BLACKPLAGUE,,,,Von der Pest besessen,La peste negra os posee,,La Peste Noire me Possède!,,,,Чума овладела мной, +Squire,MNU_SQUIRE,,,,Gutsherr,Escudero,,Ecuyer,,,,ОруженоÑец,Штитоноша +Knight,MNU_KNIGHT,,,,Ritter,Caballero,,Chevalier,,,,Рыцарь,Витез +Warrior,MNU_WARRIOR,,,,Krieger,Guerrero,,Guerrier,,,,Воитель,Борац +Berserker,MNU_BERSERKER,,,,Berserker,Berserker,,,,,,БерÑерк,Делија +Titan,MNU_TITAN,,,,Titan,Titán,,,,,,Титан,Титан +Altar Boy,MNU_ALTARBOY,,,,Novize,Monaguillo,,Enfant de ChÅ“ur,,,,Ðлтарник,МиниÑтрант +Acolyte,MNU_ACOLYTE,,,,Missionar,Acólito,,,,,,Служитель,Помоћник +Priest,MNU_PRIEST,,,,Altardiener,Sacerdote,,Prêtre,,,,СвÑщенник,Свештеник +Cardinal,MNU_CARDINAL,,,,Eingeweihter,Cardenal,,,,,,Кардинал,Кардинал +Pope,MNU_POPE,,,,Mystiker,Papa,,Pape,,,,ЕпиÑкоп,Папа +Apprentice,MNU_APPRENTICE,,,,Lehrling,Aprendiz,,Apprenti,,,,Ученик,Шегрт +Enchanter,MNU_ENCHANTER,,,,Zauberer,Encantador,,Enchanteur,,,,Чародей,Чаробњак +Sorcerer,MNU_SORCERER,,,,Hexer,Hechicero,,Sorcier,,,,Колдун,Врач +Warlock,MNU_WARLOCK,,,,Hexenmeister,Brujo,,Mage de Guerre,,,,Чернокнижник,Вештац +Archmage,MNU_ARCHMAGE,,,,Erzmagier,Archimago,,Archimage,,,,Ðрхимаг,Врховни вештац +Choose Class:,MNU_CHOOSECLASS,,,,Figurengruppe wählen:,Elige tú clase:,,Choissisez une Classe:,,,Escolha a classe:,КлаÑÑ:,Изаберите клаÑу: +Fighter,MNU_FIGHTER,,,,Krieger,Luchador,,Guerrier,,,,Воин,Борац +Cleric,MNU_CLERIC,,,,Geistlicher,Clérigo,,Moine,,,,Клерик,Свештеник +Mage,MNU_MAGE,,,,Magier,Mago,,,,,,Маг,Чаробњак +Random,MNU_RANDOM,,,,Zufällig,Al Azar,,Au Hasard,,,,Ðаугад,ÐаÑумично +Load Game,MNU_LOADGAME,,,,Spiel laden,Cargar Partida,,Chargement,,,CARREGAR,Загрузка,Учитај игру +Save Game,MNU_SAVEGAME,,,,Spiel sichern,Guardar Partida,,Sauvegarde,,,SALVAR,Сохранение,Сачувај игру +No Picture,MNU_NOPICTURE,,,,Kein Bild,Sin Imagen,,Pas d'image,,,,"Ðет +изображениÑ",Ðема Ñлике +"Different +Version",MNU_DIFFVERSION,,,,Falsche Version,Versión Diferente,,"Version +Différente",,,"Versao +Diferente","Ð”Ñ€ÑƒÐ³Ð°Ñ +верÑиÑ",Другачија верзија +No files,MNU_NOFILES,,,,Keine Dateien,Sin archivos,,Pas de fichiers,,,Vazio,Ðет файлов,Ðема фајлова +"Do you really want to delete the savegame +",MNU_DELETESG,,,,Willst du diesen Spielstand wirklich löschen?,"¿Realmente deseas eliminar la partida? +",,"Voulez vous vraiment effacer cette sauvegarde? +",Biztos ki akarod törölni a mentést?,,"Deseja mesmo deletar: +","Ð’Ñ‹ дейÑтвительно хотите удалить Ñохранение +",Да ли Ñтварно желите да избришете Ñачувану игру +Which Episode?,MNU_EPISODE,,,,Welche Episode?,¿Qué Episodio?,,Quel épisode?,Melyik epizód?,,Selecione um episodio,Какой Ñпизод?, +Choose Campaign,MNU_EPISODE,strife,,,Mission auswählen,Selecciona una campaña,,Choisissez la Campagne,Válassz hadjáratot.,,,Выбор кампании, +City of the Damned,MNU_COTD,,,,Stadt der Verdammten,Ciudad de los Condenados,,La Cité des Damnés,A Nyomorultak Városa.,,,Город проклÑÑ‚Ñ‹Ñ…,Град проклетих +Hell's Maw,MNU_HELLSMAW,,,,Der Schlund zur Hölle,Fauces del infierno,,La Geule des Enfers,,,,ÐдÑÐºÐ°Ñ ÑƒÑ‚Ñ€Ð¾Ð±Ð°,ЧељуÑти пакла +The Dome of D'sparil,MNU_DOME,,,,D'Sparils Dom,La Cúpula de D'Sparil,El Domo de D'Sparil,Le Dôme de D'Sparil,,,,Купол Д'Спарила,Купола Д'Спарила +The Ossuary,MNU_OSSUARY,,,,Das Beinhaus,El Osario,,L'Ossuaire,,,,Склеп,КоÑтурница +The Stagnant Demesne,MNU_DEMESNE,,,,Das stagnierende Reich,La Heredad Estancada,,Le domaine Stagnant,,,,ЗаÑтойные владениÑ,Стагнирајyћи домени +,,,Option Menus,,,,,,,,,, +Select Color,MNU_COLORPICKER,,,Select Colour,Farbe auswählen,Elige un color,,Choisir Couleur,,,,Выбор цветов, +Options,OPTMNU_TITLE,,,,Optionen,Opciones,,Options,Beállítások,,,ÐаÑтройки,Опције +Customize Controls,OPTMNU_CONTROLS,,,,Steuerung einstellen,Personalizar Controles,,Modifier les Contrôles,Irányítás Testreszabása,,,Управление,Контроле +Mouse options,OPTMNU_MOUSE,,,,Mauseinstellungen,Opc. de Ratón,,Options de la Souris,Egér beállítások,,,Мышь,Миш +Joystick options,OPTMNU_JOYSTICK,,,,Joystickeinstellungen,Opc. de Mando,,Options de la Manette,Dzsojsztik beállítások,,,ДжойÑтик,ÐојÑтик +Player Setup,OPTMNU_PLAYER,,,,Spieler einrichten,Config. del Jugador,,Options du Joueur,Játékos testreszabása,,,Игрок,Подешавања играча +Gameplay Options,OPTMNU_GAMEPLAY,,,,Spieleinstellungen,Opc. de Jugabilidad,,Options du Gameplay,Játék mechanika,,,Геймплей,Опције игре +Compatibility Options,OPTMNU_COMPATIBILITY,,,,Kompatibilitätseinstellungen,Opc. de Compatibilidad,,Options de Compatibilité,Kompatibilitási beállítások,,,СовмеÑтимоÑÑ‚ÑŒ,Опције компатибилноÑти +Automap Options,OPTMNU_AUTOMAP,,,,Automapeinstellungen,Opc. del Automapa,,Options de la Carte,Térkép beállítások,,,Ðвтокарта,Опције аутомапе +HUD Options,OPTMNU_HUD,,,,HUD Einstellungen,Opc. del HUD,,Options de l'ATH,HUD Beállítások,,,HUD,HUD опције +Miscellaneous Options,OPTMNU_MISCELLANEOUS,,,,Verschiedene Einstellungen,Opc. Misceláneas,,Options Annexes,Ãltalános beállítások,,,Дополнительно,Додатне опције +Network Options,OPTMNU_NETWORK,,,,Netzwerkeinstellungen,Opc. de Red,,Options Réseau,Hálózati beállítások,,,Сеть,Опције мреже +Sound Options,OPTMNU_SOUND,,,,Soundeinstellungen,Opc. de Sonido,,Options du Son,Hang beállítások,,,Звук,Опције звука +Display Options,OPTMNU_DISPLAY,,,,Anzeigeeinstellungen,Opc. de Visualización,,Options de l'Affichage,Megjelenítés beállítások,,,Экран,Опције приказа +Set video mode,OPTMNU_VIDEO,,,,Videomodus,Modos de Vídeo,,Choisir Mode D'Affichage,Felbontás,,,Видеорежим,Подешавања видео режима +Change Rendering Output,OPTMNU_CHANGERENDER,,,,Render-Modus,Cambiar Tipo de Renderizado,,Changer de Moteur de Rendu,Renderelés beállítása,,,Режим рендеринга, +Reset to defaults,OPTMNU_DEFAULTS,,,,Auf Vorgaben zurücksetzen,Valores por Defecto,,Réinitialiser les paramètres,Alapértelmezett beállítások használata,,,СброÑить вÑе наÑтройки,Врати подразумевано +Reset to last saved,OPTMNU_RESETTOSAVED,,,,Auf gespeicherte Werte zurücksetzen,Últimos Valores Guardados,,Recharger dernière config.,Legutóbbi mentett beállítások használata,,,Вернуть предыдущие наÑтройки,Врати задње Ñачувано +Go to console,OPTMNU_CONSOLE,,,,Öffne Konsole,Ir a la consola,,Ouvrir la console,Konzol megnyitása,,,Открыть конÑоль,Отвори конзолу +Reverb environment editor,OPTMNU_REVERB,,,,Hall-Editor,Editor de Amb. de Reverb.,,Editeur environement de révérb.,Visszhang-környezet szerkesztÅ‘,,,Редактор реверберации,Уредник одјека у околини +Language,OPTMNU_LANGUAGE,,,,Sprache,Idioma,,Langage,Nyelv,,,Язык,Језик +Customize Controls,CNTRLMNU_TITLE,,,,Steuerung einstellen,Personalizar Controles ,,Modifier contrôles,Irányítás Testreszabása,,,ÐаÑтройки управлениÑ,Подешавање контрола +"ENTER to change, BACKSPACE to clear",CNTRLMNU_SWITCHTEXT1,,,,ENTER: Editieren BACKSPACE: Löschen,"ENTER para cambiar, BACKSPACE para limpiar",,"ENTREE pour changer, RET. ARRIERE pour effacer.","ENTER a változtatáshoz, BACKSPACE a törléshez",,,"ENTER — изменить, BACKSPACE — очиÑтить","ENTER за промену, BACKSPACE за чишћење" +"Press new key for control, ESC to cancel",CNTRLMNU_SWITCHTEXT2,,,,Drücke eine Taste oder ESC um abzubrechen,"Presiona una tecla para el control, ESC para cancelar",,"Appuyez sur la nouvelle touche pour l'assigner, +Appuyez sur ECHAP pour annuler.","Nyomj meg egy gombot, ESC a törléshez",,,"Ðажмите клавишу управлениÑ, ESC Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹","ПритиÑните ново дугме за одређивање контроле, ESC за отказивање" +Controls,CNTRLMNU_CONTROLS,,,,Steuerung,Controles,,Contrôles,Irányítás Testreszabása,,,Управление,Контроле +Fire,CNTRLMNU_ATTACK,,,,Feuer,Fuego,,Tirer,Tűz,,,Ðтака,Ðападни +Secondary Fire,CNTRLMNU_ALTATTACK,,,,Alternativfeuer,Fuego secundario,,Tir Secondaire,Másodlagos tüzelés,,,Ð’Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ð°Ñ‚Ð°ÐºÐ°,Секундарни напад +Weapon Reload,CNTRLMNU_RELOAD,,,,Waffe nachladen,Recargar,,Recharger Arme,Fegyver újratöltése,,,ПерезарÑдка,Ðапуни +Weapon Zoom,CNTRLMNU_ZOOM,,,,Waffenzoom,Zoom del arma,,Zoom avec Arme,Közelítés fegyverrel,,,Приближение,Зум +Weapon State 1,CNTRLMNU_USER1,,,,Waffen-Aktion 1,Estado del arma 1,,Etat d'Arme 1,Fegyver 1. állapot,,,Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 1,Стање оружја 1 +Weapon State 2,CNTRLMNU_USER2,,,,Waffen-Aktion 2,Estado del arma 2,,Etat d'Arme 2,Fegyver 2. állapot,,,Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 2,Стање оружја 2 +Weapon State 3,CNTRLMNU_USER3,,,,Waffen-Aktion 3,Estado del arma 3,,Etat d'Arme 3,Fegyver 3. állapot,,,Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 3,Стање оружја 3 +Weapon State 4,CNTRLMNU_USER4,,,,Waffen-Aktion 4,Estado del arma 4,,Etat d'Arme 4,Fegyver 4. állapot,,,Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 4,Стање оружја 4 +Use / Open,CNTRLMNU_USE,,,,Benutzen / Öffnen,Usar / Abrir,,Utiliser/Ouvrir,Használ / Ajtónyitás,,,ИÑпользовать/открыть,КориÑти / Отвори +Move forward,CNTRLMNU_FORWARD,,,,Vorwärts bewegen,Avanzar,,Avancer,ElÅ‘re mozgás,,,Движение вперёд,Крећи Ñе напред +Move backward,CNTRLMNU_BACK,,,,Rückwarts bewegen,Retroceder,,Reculer,Hátra mozgás,,,Движение назад,Крећи Ñе уназад +Strafe left,CNTRLMNU_MOVELEFT,,,,Nach links bewegen,Moverse a la izquierda,,Aller à Gauche,Balra oldalaz,,,Движение влево,Крећи Ñе лево +Strafe right,CNTRLMNU_MOVERIGHT,,,,Nach rechts bewegen,Moverse a la derecha,,Aller à Droite,Jobbra oldalaz,,,Движение вправо,Крећи Ñе деÑно +Turn left,CNTRLMNU_TURNLEFT,,,,Nach links drehen,Girar a la izquierda,,Tourner à Gauche,Balra fordul,,,Поворот налево,Окрени Ñе лево +Turn right,CNTRLMNU_TURNRIGHT,,,,Nach rechts drehen,Girar a la derecha,,Tourner à Droite,Jobbra fordul,,,Поворот направо,Окрени Ñе деÑно +Quick Turn,CNTRLMNU_TURN180,,,,Schnelle Drehung,Giro rápido,,Faire un 180,Megfordulás,,,БыÑтрый разворот,Брзи окрет +Jump,CNTRLMNU_JUMP,,,,Springen,Saltar,,Sauter,Ugrás,,,Прыжок,Скок +Crouch,CNTRLMNU_CROUCH,,,,Ducken,Agacharse,,S'accroupir (tenir),Guggolás,,,ПриÑедание,Чучни +Crouch Toggle,CNTRLMNU_TOGGLECROUCH,,,,Ducken an/aus,Alternar agachado,,S'accroupir (alterner),Guggolási kapcsoló,,,СеÑÑ‚ÑŒ/вÑтать,Чучни (без држања) +Fly / Swim up,CNTRLMNU_MOVEUP,,,,Fliegen / Hochschwimmen,Volar / Nadar arriba,,Voler/Nager en haut,Repülés / Felfele úszás,,,Лететь/плыть вверх,Лети / Пливај нагоре +Fly / Swim down,CNTRLMNU_MOVEDOWN,,,,Fliegen / Runterschwimmen,Volar / Nadar abajo,,Voler/Nager en bas,Repülés / Lefele úszás,,,Лететь/плыть вниз,Лети / Пливај надоле +Stop flying,CNTRLMNU_LAND,,,,Landen,Dejar de volar,,Arrêter de voler,Repülés abbahagyása,,,ПриземлитьÑÑ,ПреÑтани летети +Mouse look,CNTRLMNU_MOUSELOOK,,,,Maus-Blick,Vista con ratón,,Vue à la souris,Egérrel való nézelÅ‘dés,,,Обзор мышью,Гледај мишем +Keyboard look,CNTRLMNU_KEYBOARDLOOK,,,,Tastatur-Blick,Vista con teclado,,Vue au clavier,Billentyűzettel való nézelÅ‘dés,,,Обзор клавиатурой,Гледај таÑтатуром +Look up,CNTRLMNU_LOOKUP,,,,Nach oben schauen,Mirar arriba,,Regarder en haut,Felfele nézés,,,Смотреть вверх,Гледај горе +Look down,CNTRLMNU_LOOKDOWN,,,,Nach unten schauen,Mirar abajo,,Regarder en bas,Lefele nézés,,,Смотреть вниз,Гледај доле +Center view,CNTRLMNU_CENTERVIEW,,,Centre view,Ansicht zentrieren,Centrar vista,,Recentrer Vue,Nézet középreigazítása,,,Отцентрировать взглÑд,Централизируј поглед +Run,CNTRLMNU_RUN,,,,Rennen,Correr,,Courir (tenir),Futás,,,Бег,Трчи +Toggle Run,CNTRLMNU_TOGGLERUN,,,,Rennen an/aus,Alternar Correr,,Courir (alterner),Futás kapcsoló,,,Бежать/идти,Трчи (без држања) +Strafe,CNTRLMNU_STRAFE,,,,Seitwärts,Desplazamiento,,Pas de côté,,,,Движение боком,Стрејф +Show Scoreboard,CNTRLMNU_SCOREBOARD,,,,Punktetafel anzeigen,Mostrar Marcador,,Afficher Scores (tenir),EredményjelzÅ‘ megjelenítése,,,Таблица очков,Табела +Toggle Scoreboard,CNTRLMNU_TOGGLESCOREBOARD,,,,Punktetafel an/aus,Alternar Marcador,,Afficher Scores (alterner),EredményjelzÅ‘ kapcsoló,,,Таблица очков (Перекл.),Табела (без држања) +Action,CNTRLMNU_ACTION,,,,Aktion,Acción,,,Akció,,,ОÑновное, +Customize Action Controls,CNTRLMNU_ACTION_TITLE,,,,Aktions-Steuerung einstellen,Controles de Acción,,Changer Contrôles Action,Akció beállítások testreszabása,,,ОÑновные клавиши управлениÑ, +Customize Chat Controls,CNTRLMNU_CHAT_TITLE,,,,Chat-Steuerung einstellen,Controles de Chat,,Changer Contrôles Chat,Chat beállítások testreszabása,,,Клавиши ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‡Ð°Ñ‚Ð¾Ð¼, +Customize Weapon Controls,CNTRLMNU_WEAPONS_TITLE,,,,Waffen-Steuerung einstellen,Controles de Armas,,Changer Contrôles Armes,Fegyver beállítások testreszabása,,,Клавиши ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ€ÑƒÐ¶Ð¸ÐµÐ¼, +Customize Inventory Controls,CNTRLMNU_INVENTORY_TITLE,,,,Inventar-Steuerung einstellen,Controles de Inventario,,Changer Contrôles Inventaires,Eszköztár beállítások testreszabása,,,Клавиши ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð²ÐµÐ½Ñ‚Ð°Ñ€Ñ‘Ð¼, +Customize Other Controls,CNTRLMNU_OTHER_TITLE,,,,Sonstige Steuerung einstellen,Otros Controles,,Changer Autres Contrôles,Egyéb irányítás testreszabása,,,Прочие клавиши, +Strife Popup Screens Controls,CNTRLMNU_POPUPS_TITLE,,,,Strife Popup Steuerung einstellen,Popups de Strife,,Contrôles Popups Strife,Strife Felugró Ablakok Irányítása,,,Ð’Ñплывающие окна Strife, +Pause,CNTRLMNU_PAUSE,,,,,Pausa,,,Szünet,,,Пауза, +Increase Display Size,CNTRLMNU_DISPLAY_INC,,,,Anzeige vergrößern,Agrandar Ventana,,Aggrandir l'affichage,Képméret növelése,,,Увеличить размер Ñкрана, +Decrease Display Size,CNTRLMNU_DISPLAY_DEC,,,,Anzeige verkleinern,Reducir Ventana,,Réduire l'affichage,Képméret csökkentése,,,Уменьшить размер Ñкрана, +Open Help,CNTRLMNU_OPEN_HELP,,,,Hilfe öffnen,Abrir Ayuda,,Ouvrir Aide,Segítség elÅ‘hozása,,,Экран помощи, +Open Save Menu,CNTRLMNU_OPEN_SAVE,,,,Speichermenü öffnen,Menú de Guardar Partida,,Ouvrir Menu Sauvegarde,Mentés menü elÅ‘hozása,,,Сохранение игры, +Open Load Menu,CNTRLMNU_OPEN_LOAD,,,,Lademenü öffnen,Menú de Cargar Partida,,Ouvrir Menu Chargement,Betöltés menü elÅ‘hozása,,,Загрузка игры, +Open Options Menu,CNTRLMNU_OPEN_OPTIONS,,,,Optionsmenü öffnen,Menú de Opciones,,Ouvrir Menu Options,Beállítások menü elÅ‘hozása,,,Главное меню наÑтроек, +Open Display Menu,CNTRLMNU_OPEN_DISPLAY,,,,Anzeigemenü öffnen,Menú de Opc. de Visualización,,Ouvrir Menu Affichage,Megjelenítés menü elÅ‘hozása,,,Меню наÑтроек видео, +Quicksave,CNTRLMNU_QUICKSAVE,,,,Schnellspeichern,Guardado Rápido,,Sauv. Rapide,Gyorsmentés,,,БыÑтрое Ñохранение, +Quickload,CNTRLMNU_QUICKLOAD,,,,Schnellladen,Cargado Rápido,,Charg. Rapide,Gyors betöltés,,,БыÑÑ‚Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°, +Exit to Main Menu,CNTRLMNU_EXIT_TO_MAIN,,,,Zurück zum Hauptmenü,Salir al Menú Principal,,Sortie Menu Principal,Kilépés a fÅ‘menübe,,,БыÑÑ‚Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°, +Toggle Messages,CNTRLMNU_TOGGLE_MESSAGES,,,,Nachrichten an/aus,Alternar Mensajes,,Act./Déasct. Messages,Ãœzenetek kapcsololása,,,Переключение Ñообщений, +Quit Game,CNTRLMNU_MENU_QUIT,,,,Spiel beenden,Salir del Juego,,Quitter le Jeu,Kilépés a játékból.,,,Выход, +Adjust Gamma,CNTRLMNU_ADJUST_GAMMA,,,,Gamma-Anpassung,Ajustar Gamma,,Ajuster Gamma,Gamma állítása,,,ÐаÑтройка гаммы, +Chat,CNTRLMNU_CHAT,,,,Chat,Chat,,Chat,Chat,,,Чат,ЋаÑкање +Say,CNTRLMNU_SAY,,,,Reden,Hablar,,Parler,Ãœzenet ,,,Сообщение,Пиши +Team say,CNTRLMNU_TEAMSAY,,,,Readen im Team,Hablar al equipo,,Parler (équipe),Ãœzenet csapattársaknak,,,Сообщение команде,Пиши тиму +Weapons,CNTRLMNU_WEAPONS,,,,Waffen,Armas,,Armes,Fegyverek,,,Оружие,Оружја +Next weapon,CNTRLMNU_NEXTWEAPON,,,,Nächste Waffe,Arma siguiente,,Arme Suivante,KövetkezÅ‘ fegyver,,,Следующее оружие,Следеће оружје +Previous weapon,CNTRLMNU_PREVIOUSWEAPON,,,,Vorherige Waffe,Arma anterior,,Arme Précédente,ElÅ‘zÅ‘ fegyver,,,Предыдущее оружие,Претходно оружје +Weapon Slot 1,CNTRLMNU_SLOT1,,,,Waffen-Slot 1,Ranura de Arma 1,,Emplacement D'Arme 1,1. Fegyver,,,Оружие 1,Оружје 1 +Weapon Slot 2,CNTRLMNU_SLOT2,,,,Waffen-Slot 2,Ranura de Arma 2,,Emplacement D'Arme 2,2. Fegyver,,,Оружие 2,Оружје 2 +Weapon Slot 3,CNTRLMNU_SLOT3,,,,Waffen-Slot 3,Ranura de Arma 3,,Emplacement D'Arme 3,3. Fegyver,,,Оружие 3,Оружје 3 +Weapon Slot 4,CNTRLMNU_SLOT4,,,,Waffen-Slot 4,Ranura de Arma 4,,Emplacement D'Arme 4,4. Fegyver,,,Оружие 4,Оружје 4 +Weapon Slot 5,CNTRLMNU_SLOT5,,,,Waffen-Slot 5,Ranura de Arma 5,,Emplacement D'Arme 5,5. Fegyver,,,Оружие 5,Оружје 5 +Weapon Slot 6,CNTRLMNU_SLOT6,,,,Waffen-Slot 6,Ranura de Arma 6,,Emplacement D'Arme 6,6. Fegyver,,,Оружие 6,Оружје 6 +Weapon Slot 7,CNTRLMNU_SLOT7,,,,Waffen-Slot 7,Ranura de Arma 7,,Emplacement D'Arme 7,7. Fegyver,,,Оружие 7,Оружје 7 +Weapon Slot 8,CNTRLMNU_SLOT8,,,,Waffen-Slot 8,Ranura de Arma 8,,Emplacement D'Arme 8,8. Fegyver,,,Оружие 8,Оружје 8 +Weapon Slot 9,CNTRLMNU_SLOT9,,,,Waffen-Slot 9,Ranura de Arma 9,,Emplacement D'Arme 9,9. Fegyver,,,Оружие 9,Оружје 9 +Weapon Slot 0,CNTRLMNU_SLOT0,,,,Waffen-Slot 10,Ranura de Arma 0,,Emplacement D'Arme 0,0. Fegyver,,,Оружие 0,Оружје 0 +Inventory,CNTRLMNU_INVENTORY,,,,Inventar,Inventario,,Inventaire,Eszköztár beállítások testreszabása,,,Инвентарь,Инвентар +Activate item,CNTRLMNU_USEITEM,,,,Gegenstand aktivieren,Activar objeto,,Activer objet,Eszköz használata,,,ИÑпользовать предмет,Ðктивирај предмет +Activate all items,CNTRLMNU_USEALLITEMS,,,,Alle Gegenstände aktivieren,Activar todos los objetos,,Activer tous les objets,Minden eszköz használata,,,ИÑпользовать вÑе предметы,Ðктивирај Ñве предмете +Next item,CNTRLMNU_NEXTITEM,,,,Nächster Gegenstand,Objeto siguiente,,Objet suivant,KövetkezÅ‘ eszköz,,,Следующий предмет,Следећи предмет +Previous item,CNTRLMNU_PREVIOUSITEM,,,,Vorheriger Gegenstand,Objeto anterior,,Objet précédent,ElÅ‘zÅ‘ eszköz,,,Предыдущий предмет,Претходни предмет +Drop item,CNTRLMNU_DROPITEM,,,,Gegenstand fallen lassen,Arrojar objeto,,Lâcher objet,Eszköz eldobása,,,ВыброÑить предмет,Баци предмет +Query item,CNTRLMNU_QUERYITEM,,,,Informationen über Gegenstand,Consultar objeto,,Vérifier objet,,,,Показать предмет,Прикажи предмет +Drop weapon,CNTRLMNU_DROPWEAPON,,,,Waffe fallen lassen,Arrojar arma,,Lâcher arme,Fegyver eldobása,,,ВыброÑить оружие,Баци оружје +Other,CNTRLMNU_OTHER,,,,Andere,Otros,,Autres,Más,,,Прочее,ОÑтало +Toggle automap,CNTRLMNU_AUTOMAP,,,,Automap an/aus,Alternar automapa,,Activer Carte,Térkép ki- bekapcsolása,,,Переключить автокарту,Прикажи аутомапу +Chasecam,CNTRLMNU_CHASECAM,,,,Verfolgerkamera,Cámara de Seguimiento,,Caméra 3ième personne,KülsÅ‘nézetű kamera,,,Вид от 3-го лица (Chasecam),ЧејÑ-кем +Coop spy,CNTRLMNU_COOPSPY,,,,Coop Spion,Espía cooperativo,,Espionner Coéquiper,Coop leskelÅ‘dés,,,Вид от другого игрока,Поглед од другог играча +Screenshot,CNTRLMNU_SCREENSHOT,,,,,Captura de pantalla,,Capture d'écran,KépernyÅ‘ lefényképezése,,,Скриншот,УÑликај +Open console,CNTRLMNU_CONSOLE,,,,Konsole öffnen,Abrir consola,,Ouvrir Console,Konzol elÅ‘hozása,,,Открыть конÑоль,Отвори конÑолу +Strife Popup Screens,CNTRLMNU_POPUPS,,,,Strife Popups,Popups de Strife,,Popups de Strife,Strife Felugró Ablakok,,,Strife,Информација у Strife-у +Mission objectives,CNTRLMNU_MISSION,,,,Missionsziele,Objetivos de misión,,Objectifs de Mission,Küldetés feladata,,,Текущее задание,Циљ миÑије +Keys list,CNTRLMNU_KEYS,,,,Schlüsselliste,Lista de llaves,,Liste des Clés,Kulcslista,,,СпиÑок ключей,СпиÑка кључева +Weapons/ammo/stats,CNTRLMNU_STATS,,,,Waffen/Munition/Statistik,Armas/Munición/Estadísticas,,"Statistiques, armes et munitions",Fegyver/lÅ‘szer/statisztika,,,Оружие и ÑтатиÑтика,Оружја/муниција/ÑтатиÑтика +Mouse Options,MOUSEMNU_TITLE,,,,Mausoptionen,Opciones del Ratón,,Options Souris,Egér beállítások,,,ÐаÑтройки мыши,Миш +Enable mouse,MOUSEMNU_ENABLEMOUSE,,,,Maus aktiv,Habilitar ratón,,Activer Souris,Egér engedélyezése,,,ИÑпользовать мышь,Укључи миш +Enable mouse in menus,MOUSEMNU_MOUSEINMENU,,,,Maus aktiv in Menüs,Usa ratón en los menús,,Activer Souris dans les Menus,Egér engedélyezése a menüben.,,,ИÑпользовать мышь в меню,Укљући миш у менијима +Show back button,MOUSEMNU_SHOWBACKBUTTON,,,,Zeige Zurück-Knopf,Botón de retroceso,,Afficher le bouton retour,Vissza gomb mutatása,,,РаÑположение кнопки «назад»,Прикажи дугме за назад +Cursor,MOUSEMNU_CURSOR,,,,,,,Curseur,Egérmutató,,,КурÑор,КурÑор +Overall sensitivity,MOUSEMNU_SENSITIVITY,,,,Allgemeine Empfindlichkeit,Sensibilidad promedio,,Sensibilité générale,Teljes érzékenység,,,ÐžÐ±Ñ‰Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ,ОÑетљивоÑÑ‚ +Prescale mouse movement,MOUSEMNU_NOPRESCALE,,,,Mausbewegung skalieren,Pre-escalar movimiento,,Prescaling mouvement souris,,,,Ð£Ð²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð½Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ,Убрзање миша +Smooth mouse movement,MOUSEMNU_SMOOTHMOUSE,,,,Mausbewegung glätten,Mov. fluido del ratón,,Lissage Souris,Egyenletes egérmozdulatok,,,Плавное перемещение,Глатки окрет +Turning speed,MOUSEMNU_TURNSPEED,,,,Umdrehgeschwindigkeit,Velocidad de giro,,Vitesse pour tourner,Fordulási sebesség,,,СкороÑÑ‚ÑŒ поворота,Брзина окрета +Mouselook speed,MOUSEMNU_MOUSELOOKSPEED,,,,Mausblick-Geschwindigkeit,Vel. de vista con ratón,,Vitesse Vue Souris,Egérrel való nézés sebessége,,,СкороÑÑ‚ÑŒ обзора,Брзина гледања мишем +Forward/Backward speed,MOUSEMNU_FORWBACKSPEED,,,,Vor/Rückwärtsgeschwindigkeit,Vel. de avance/retroceso,,Vitesse Avancer/reculer,ElÅ‘re/Hátra sebesség,,,СкороÑÑ‚ÑŒ передвижениÑ,Брзина окрета напред/уназад +Strafing speed,MOUSEMNU_STRAFESPEED,,,,Seitwärtsgeschwindigkeit,Vel. de mov. lateral,,Vitesse Gauche/Droite,,,,СкороÑÑ‚ÑŒ Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾ÐºÐ¾Ð¼,Брзина Ñтрејфа +Always Mouselook,MOUSEMNU_ALWAYSMOUSELOOK,,,,Mausblick immer an,Siempre mirar con ratón,,Toujours vue Souris,Mindig nézelÅ‘dés az egérrel,,,Обзор мышью,Гледање мишем +Invert Mouse,MOUSEMNU_INVERTMOUSE,,,,Maus invertieren,Invertir ratón,,Inverser Souris,Egérirányok megfordítása,,,Инвертирование мыши,Инвертуј миш +Lookspring,MOUSEMNU_LOOKSPRING,,,,Automatisch zentrieren,Mirar con ratón,,Recentrer après Vue Souris,,,,Передвижение мышью,Покрет мишем +Lookstrafe,MOUSEMNU_LOOKSTRAFE,,,,Seitwärts bewegen mit der Maus,Mirar con movimiento,,Mouvement Latéral par Souris,,,,Движение боком мышью,Стрејф мишем +Configure Controller,JOYMNU_TITLE,,,,Controller konfigurieren,Configurar Mando,,Configurer Mannette,Kontroller testreszabása,,,ÐаÑтроить джойÑтик,Конфигурација контролера +Controller Options,JOYMNU_OPTIONS,,,,Controlleroptionen,Opciones del mando,,Options Mannette,Kontroller beállításai,,,ÐаÑтройки джойÑтика,Опције џојÑтика +Block controller input in menu,JOYMNU_NOMENU,,,,Blockiere Controllereingabe im Menü,Bloq. entrada de mando en menú,,Bloquer manette dans les menus,Kontroller ne működjön a menÅ‘ben.,,,Отключить джойÑтик в меню,Блокирај улаз контролера у менију +Player Setup,MNU_PLAYERSETUP,,,,Spielereinstellungen,Config. del jugador,,Options Joueur,Játékos testreszabása,,,ÐаÑтройки игрока,Подешавања играча +Name,PLYRMNU_NAME,,,,,Nombre,,Nom,Név,,,ИмÑ,Ðадимак +Team,PLYRMNU_TEAM,,,,,Equipo,,Equipe,Csapat,,,Команда,Тим +Color,PLYRMNU_PLAYERCOLOR,,,Colour,Farbe,,,Couleur,Szín,,,Цвет,Боја +Red,PLYRMNU_RED,,,,Rot,Rojo,,Rouge,Piros,,,КраÑ.,Црв. +Green,PLYRMNU_GREEN,,,,Grün,Verde,,Vert,Zöld,,,Зел.,Зел. +Blue,PLYRMNU_BLUE,,,,Blau,Azul,,Bleu,Kék,,,Синий,Плава +Class,PLYRMNU_PLAYERCLASS,,,,Klasse,Clase,,Classe,Osztály,,,КлаÑÑ,КлаÑа +Skin,PLYRMNU_PLAYERSKIN,,,,Skin,Piel,,,Kinézet,,,Скин,Скин +Gender,PLYRMNU_PLAYERGENDER,,,,Geschlecht,Género,,Genre,Nem,,,Пол,Пол +Autoaim,PLYRMNU_AUTOAIM,,,,Automatisch zielen,Autoapuntar,,Auto-visée,Auto célzás,,,Ðвтоприцеливание,ÐутоматÑко циљање +Switch on pickup,PLYRMNU_SWITCHONPICKUP,,,,Beim aufnehmen Waffe selektieren,Cambiar arma al recoger,,Dernière arme,Felvételkor váltás,,,Перекл. Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¿Ñ€Ð¸ подборе,Пребаци на покупљ. +Always Run,PLYRMNU_ALWAYSRUN,,,,Immer Laufen,Siempre correr,,Toujours courir,Mindig fusson,,,ПоÑтоÑнный бег,Увек трчи +PRESS _x001c_\cjSPACE,PLYRMNU_PRESSSPACE,,,,\cjLeertaste,Presiona \cjEspacio,,\cjEspace,,,,Ðажмите \cjSPACE,ПРИТИСÐИТЕ \cjSPACE +TO SEE FRONT,PLYRMNU_SEEFRONT,,,,für Frontansicht,Para ver de Frente,,Pour L'Avant,,,,Повернуть,ДРВИДИТЕ СПРЕДР+TO SEE BACK,PLYRMNU_SEEBACK,,"Same as SEEFRONT in Russian. Intentional? + +Undead: It was intentional in order to save menu space in earlier versions; however, I suppose it’s feasible to change it now",,für Rückansicht,Para ver por Detrás,,Pour l'Arrière,,,,Повернуть,ДРВИДИТЕ ПОЗÐДИ +Display Options,DSPLYMNU_TITLE,,,,Anzeigeoptionen,Opc. de visualización,,Options Affichage,Megjelenítés beállítások,,,ÐаÑтройки Ñкрана,Видео подешавања +Scoreboard Options,DSPLYMNU_SCOREBOARD,,,,Punktetafeloptionen,Opc. de marcador,,Options Tableau des Scores,EredményjelzÅ‘ beállítások,,,Таблица очков,Табеларне опције +Screen size,DSPLYMNU_SCREENSIZE,,,,Bildschirmgröße,Tamaño de pantalla,,Taille de l'écran,KépernyÅ‘ mérete,,,Размер Ñкрана,Величина Екрана size +Brightness,DSPLYMNU_BRIGHTNESS,,,,Helligkeit,Brillo,,Luminosité,FényerÅ‘,,,ЯркоÑÑ‚ÑŒ,ОÑветљење +Vertical Sync,DSPLYMNU_VSYNC,,,,Vertikale Synchronisation,Sincr. vertical,,Synchronisation Verticale,FüggÅ‘leges szinkronizálás,,,Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð°Ñ ÑинхронизациÑ,Вертикална Синхорнизација +Rendering Interpolation,DSPLYMNU_CAPFPS,,,,Renderinterpolation,Interpolación de rend.,,Interpolation du rendu,,,,Сглаживание рендеринга,Интерполација Рендеринга +Transparency render mode,DSPLYMNU_BLENDMETHOD,,,,Transparenzmodus,Modo rend. transparencia,,Mode de Rendu transparence,,,,Режим рендеринга прозрачноÑти,Режим рендеринга транÑпарентноÑти +Screen wipe style,DSPLYMNU_WIPETYPE,,,,Bildschirmwechseleffekt,Transición de pantalla,,Style de Fondu d'écran,,,,Эффект плавной Ñмены Ñкранов,Ефект бриÑање екрана +Show ENDOOM screen,DSPLYMNU_SHOWENDOOM,,,,Zeige ENDOOM,Mostrar pantalla ENDOOM,,Montrer la fenêtre ENDOOM,,,,Показать Ñкран ENDOOM,Прикажи ENDOOM екран +Blood Flash Intensity,DSPLYMNU_BLOODFADE,,,,Intensität für Bluteffekt,Intensidad Destello de Sangre,,Intensité du flash dommages,,,,ИнтенÑивноÑÑ‚ÑŒ вÑпышки при ранении,ИнтензивноÑÑ‚ треперења током повређивања +Pickup Flash Intensity,DSPLYMNU_PICKUPFADE,,,,Intensität für Aufnehmen-Effekt,Intensidad Destello de Recogida,,Intensité du flash objets,,,,ИнтенÑивноÑÑ‚ÑŒ вÑпышки при подборе,ИнтензивноÑÑ‚ треперења током купљења +Underwater Blend Intensity,DSPLYMNU_WATERFADE,,,,Intensität für Unterwasser-Effekt,Intensidad Color Sumergido,Intensidad Color Submarino,Intensité du fondu sous l'eau,,,,ИнтенÑивноÑÑ‚ÑŒ Ñффекта под водой,ИнтензивноÑÑ‚ подводног треперења +Sky render mode,DSPLYMNU_SKYMODE,,,,Rendermodus für Himmel,Modo de Rend. de Cielo,,Mode du rendu du Ciel,,,,Режим отриÑовки неба,Режим рендеринга неба +Linear skies,DSPLYMNU_LINEARSKY,,,,Lineare Himmel,Cielo lineal,,Ciel linéaire,,,,Линейное небо,Линеарна неба +Fullbright overrides sector color,DSPLYMNU_GZDFULLBRIGHT,,,,Ignoriere Sektorfarbe bei voller Helligkeit,Brillo máximo anula color del sector,,Fullbright ignore couleur secteur,,,,ÐŸÐ¾Ð»Ð½Ð°Ñ ÑркоÑÑ‚ÑŒ замещает цвет Ñектора,Пуно оÑветљење премошћује боју Ñектора +Models,DSPLYMNU_MODELS,,,,Modelle,Modelos,,Modèles,3D modellek,,,Модели,Модели +Scale fuzz effect,DSPLYMNU_SCALEFUZZ,,,,Skaliere Fuzz-Effekt,Escala de efecto fuzz,,Scaling de l'effet de bruit,,,,МаÑштабировать Ñффект шума,Повечавај шумни ефект +Use fuzz effect,DSPLYMNU_DRAWFUZZ,,,,Benutze Fuzz-Effekt,Usar efecto fuzz,,Effet de bruit,,,,ИÑпользовать Ñффект шума,КориÑти шумни ефект +Classic Transparency,DSPLYMNU_OLDTRANS,,,,Klasssische Transparenz,Transp. Clásicas,,Transparence classique,Klasszikus átlátszóság,,,КлаÑÑичеÑÐºÐ°Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾ÑÑ‚ÑŒ,КлаÑична ТранÑпарентноÑÑ‚ +Lost Soul translucency,DSPLYMNU_TRANSSOUL,,,,Transparenz für Verlorene Seelen,Transp. del alma perdida,,Transparence des âmes perdues,Lost soul átlátszóság,,,ПрозрачноÑÑ‚ÑŒ потерÑнных душ,ТранÑпарентноÑÑ‚ Изгубљених Душа +Use fake contrast,DSPLYMNU_FAKECONTRAST,,,,Benutze falschen Kontrast,Usar contraste falso,,Faux Contraste,Hamis kontraszt használata,,,Ð˜Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð°Ñтного оÑÐ²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñтен,КориÑти фејк-контраÑÑ‚ +Rocket Trails,DSPLYMNU_ROCKETTRAILS,,,,Raketenschweife,Rastro de cohetes,,Trainées des Roquettes,Rakéta füstcsíkok,,,Дымовой Ñлед у ракет,Траг дима код ракета +Blood Type,DSPLYMNU_BLOODTYPE,,,,Blut-Typ,Tipo de sangre,,Type de particules Sang,Vér fajtája,,,Тип крови,Тип Крви +Bullet Puff Type,DSPLYMNU_PUFFTYPE,,,,Pistolenrauch-Typ,Tipo de agujero de bala,,Type de particules Balles,Lövedék becsapódás fajtája,,,Тип рикошетов, +Number of particles,DSPLYMNU_MAXPARTICLES,,,,Anzahl Partikel,Número de partículas,,Nombre de particules,Részecskék száma,,,КоличеÑтво чаÑтиц,Број чеÑтица +Number of decals,DSPLYMNU_MAXDECALS,,,,Anzahl Trefferspuren,Número de marcas,,Number de décalques,,,,КоличеÑтво декалей,Број декала +Show player sprites,DSPLYMNU_PLAYERSPRITES,,,,Zeige Spieler-Sprites,Mostrar sprites del jugador,,Montrer les sprites joueur,Játékos sprite-ok mutatása,,,Показывать Ñпрайты игрока,Прикажи Ñпрајтове играча +Death camera,DSPLYMNU_DEATHCAM,,,,Todeskamera,Cámara de muerte,,Caméra 3ème pers à la mort,Halál kamera,,,Вид от 3-го лица при Ñмерти,Смртна камера +Teleporter zoom,DSPLYMNU_TELEZOOM,,,,Teleporter Zoom,Zoom en teletransp.,,Zoom sur téléportation,Teleporter közelítés,,,Зум при телепортации,Зум током телепортације +Earthquake shake intensity,DSPLYMNU_QUAKEINTENSITY,,,,Erdbeben Intensität,Intensidad del terremoto,,Intensité des séismes,Földrengés rengésének erÅ‘ssége,,,ИнтенÑивноÑÑ‚ÑŒ землетрÑÑений,ИнтенÑивноÑÑ‚ земљотреÑа +Interpolate monster movement,DSPLYMNU_NOMONSTERINTERPOLATION,,,,Interpoliere Monsterbewegung,Interpolar mov. de los monstruos,,Interpolation des monstres,,,,Сглаживание Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð½Ñтров,Интерполирај кретање монÑтрума +Menu dim,DSPLYMNU_MENUDIM,,,,Menüabdunklung,Atenuación del menú,,Assombrissement menu,,,,Затемнение фона меню,Пригушивање менија +Dim color,DSPLYMNU_DIMCOLOR,,,Dim colour,Abdunklungsfarbe,Color de la atenuación,,Couleur de l'assombrissement,,,,Цвет затемнениÑ,Боја пригушивања +View bob amount while moving,DSPLYMNU_MOVEBOB,,,,,Cantidad de balanceo al moverse,,Chaloupage arme en movement,,,,Покачивание камеры при движении,ТреÑење камере током кретања +View bob amount while not moving,DSPLYMNU_STILLBOB,,,,,Cantidad de balanceo al no moverse,,Chaloupage arme statique,,,,Покачивание камеры при бездейÑтвии,ТреÑење камере током неактивноÑти +Weapon bob speed,DSPLYMNU_BOBSPEED,,,,,Velocidad de balanceo de Arma,,Vitesse du chaloupage,,,,СкороÑÑ‚ÑŒ Ð¿Ð¾ÐºÐ°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ€ÑƒÐ¶Ð¸Ñ,Брзина Ñ‚Ñ€Ñења оружја +Notebook Switchable GPU,DSPLYMNU_GPUSWITCH,,,,GPU Umschaltung für Notebooks,GPU Altern. de Portátil,,GPU alternatif sur PC Portable,,,,ИÑпользование GPU ноутбука,КориÑти ноутбук GPU +HUD Options,HUDMNU_TITLE,,,,HUD Optionen,Opciones del HUD,,Options ATH,,,,ÐаÑтройки HUD, +Alternative HUD,HUDMNU_ALTHUD,,,,Alternatives HUD,HUD alternativo,,ATH Alternatif,,,,Ðльтернативный HUD, +Message Options,HUDMNU_MESSAGE,,,,Nachrichtenoptionen,Opciones de mensajes,,Options des Messages,,,,ÐаÑтройки Ñообщений, +User interface scale,HUDMNU_UISCALE,,,,Benutzerinterfaceskalierung,Escala de la interfaz de usuario,,Echelle de l'interface,,,,МаÑштаб. интерфейÑа, +Default Crosshair,HUDMNU_CROSSHAIR,,,,Standard-Fadenkreuz,Retícula por defecto,,Viseur par défaut,,,,Тип прицела, +Force default crosshair,HUDMNU_FORCECROSSHAIR,,,,Erzwinge Standard-Fadenkreuz,Forzar retícula por defecto,,Forcer Viseur par défaut,,,,Ð’Ñегда Ñтандартный прицел, +Grow crosshair when picking up items,HUDMNU_GROWCROSSHAIR,,"German may be too long +[GZ]: Rephrased for shortening, still needs testing",,Größeres Fadenkreuz bei Gegenstandsaufnahme ,Aumentar retícula al obtener obj.,Crecer retícula al obtener obj.,Agrandir viseur en prenant un objet,,,,Увеличение прицела при подборе, +Crosshair color,HUDMNU_CROSSHAIRCOLOR,,,Crosshair colour,Fadenkreuzfarbe,Color de la retícula,,Couleur Viseur,,,,Цвет прицела, +Crosshair shows health,HUDMNU_CROSSHAIRHEALTH,,,,Fadenkreuz zeigt Gesundheit,Mostrar salud en retícula,,Couleur Viseur selon santé,,,,Цвет прицела по ÑоÑтоÑнию здоровьÑ, +Scale crosshair,HUDMNU_CROSSHAIRSCALE,,,,Fadenkreuz skalieren,Escalar retícula,,Mise à l'échelle du viseur,,,,МаÑштаб. прицела, +Display nametags,HUDMNU_NAMETAGS,,,,Zeige Gegenstandsnamen,Mostrar etiquetas,,Afficher noms des objets,,,,Указание Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ð¾Ð², +Nametag color,HUDMNU_NAMETAGCOLOR,,,Nametag colour,Farbe für Gegenstandsnamen,Color de las etiquetas,,Couleur des noms d'objet,,,,Цвет Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ð¾Ð², +Use old ouch mug shot formula,HUDMNU_OLDOUCH,,,,Alte Formel für „Autschâ€-Gesicht,Usar formula antigua de foto de daño,,Ancien code pour l' « ouch face »,,,,Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ»Ð° Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ñ€ÐµÑ‚Ð°, +Hexen weapon flashes,HUDMNU_HEXENFLASHES,,,,Hexen-Waffenblitze,Destello armas Hexen,,Flash d'arme dans Hexen,,,,Тип вÑпышки Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð² Hexen, +Poison damage flashes,HUDMNU_POISONFLASHES,,,,Gift-Effekt,Destello daño por veneno,,Flash de poison dans Hexen,,,,Тип вÑпышки Ñда, +Ice death flashes,HUDMNU_ICEFLASHES,,,,Eis-Tod-Effekt,Destello muerte por hielo,,Flash de morts par glace,,,,Тип вÑпышки при Ñмерти от льда, +Poison Buildup flashes,HUDMNU_HAZARDFLASHES,,,,Kumulativer Gift-Effekt,Destello acumulación de veneno,,Flash d'accumulation de poison,,,,Тип вÑпышки при Ñкоплении Ñда, +Scaling Options,HUDMNU_SCALEOPT,,,,Skalierungsoptionen,Opciones de escalado,,Option de mise à l'échelle,,,,ÐаÑтройки маÑштабированиÑ, +Scaling Options,SCALEMNU_TITLE,,,,Skalierungsoptionen,Opciones de escalado,,Options Mise à l'échelle,,,,ÐаÑтройки маÑштабированиÑ, +Overrides for above setting,SCALEMNU_OVERRIDE,,,,Spezialisierungen,Anular ajuste anterior,,Annule les paramètres au dessus,,,,Задать Ñпециальные наÑтройки, +Messages,SCALEMNU_MESSAGES,,,,Nachrichten,Mensajes,,Messages,,,,СообщениÑ, +Console,SCALEMNU_CONSOLE,,,,Konsole,Consola,,Console,,,,КонÑоль, +Status bar,SCALEMNU_STATBAR,,,,Statusleiste,Barra de estado,,Barre d'état,,,,Строка ÑоÑтоÑниÑ, +Fullscreen HUD,SCALEMNU_HUD,,,,Vollbild-HUD,HUD de pantalla completa,,ATH plein écran,,,,ПолноÑкранный HUD, +Alternative HUD,SCALEMNU_ALTHUD,,,,Alternatives HUD,HUD alternativo,,ATH alternatif,,,,Ðльтернативный HUD, +HUD preserves aspect ratio,SCALEMNU_HUDASPECT,,,,HUD bewahrt Seitenverhältnisse,HUD conserva la rel. de aspecto,,ATH préserve le rapport d'aspect,,,,Соотношение Ñторон, +Use default scale,SCALEMNU_USEUI,,,,Benutze Standardskalierung,Usar escalado por defecto,,Défaut,,,,Размер по умолчанию, +Scale to fullscreen,SCALEMNU_USEFS,,,,Skaliere auf Vollbild,Escalar a pant. completa,,Plein écran,,,,МаÑштабировать Ñо вÑем Ñкраном, +Adapt to screen size,SCALEMNU_ADAPT,,,,Passe an Bildschirmgröße an,Adaptar al tamaño de pantalla,,Ecran,,,,ÐдаптироватьÑÑ Ðº размеру Ñкрана, +Alternative HUD,ALTHUDMNU_TITLE,,,,Alternatives HUD,HUD Alternativo,,ATH Alternatif,,,,Ðльтернативный HUD, +Enable alternative HUD,ALTHUDMNU_ENABLE,,,,Alternatives HUD eingeschaltet,Activar HUD Alternativo,,Activer l'ATH Alternatif,,,,Ðльтернативный HUD, +Show secret count,ALTHUDMNU_SHOWSECRETS,,,,Zeige Geheimniszähler,Mostrar cont. de secretos,,Afficher compteur de secrets,,,,Отображение обнаруженных тайников, +Show monster count,ALTHUDMNU_SHOWMONSTERS,,,,Zeige Monsterzähler,Mostrar cont. de monstruos,,Afficher compteur de monstres,,,,Отображение количеÑтва монÑтров, +Show item count,ALTHUDMNU_SHOWITEMS,,,,Zeige Gegenstandszähler,Mostrar cont. de objetos,,Afficher compteur d'objets,,,,Отображение количеÑтва предметов, +Show stamina and accuracy,ALTHUDMNU_SHOWSTATS,,,,Zeige Kondition und Genauigkeit,Mostrar resistencia/precisión,,Afficher Endurance et Précision,,,,Отображение ÑтойкоÑти и точноÑти, +Show berserk,ALTHUDMNU_SHOWBERSERK,,,,Zeige Berserk,Mostrar berserker,,Afficher Berserk,,,,Отображение берÑерка, +Show weapons,ALTHUDMNU_SHOWWEAPONS,,,,Zeige Waffen,Mostrar armas,,Afficher Armes,,,,Отображение оружиÑ, +Show ammo for,ALTHUDMNU_SHOWAMMO,,,,Zeige Munition,Mostrar munición para,,Afficher Munitions pour,,,,Показывать патроны длÑ, +Show time,ALTHUDMNU_SHOWTIME,,,,Zeige Zeit,Mostrar tiempo,,Afficher temps niveau,,,,Отображение времени, +Time color,ALTHUDMNU_TIMECOLOR,,,Time colour,Zeiot-Farbe,Color del tiempo,,Couleur du timer,,,,Цвет времени, +Show network latency,ALTHUDMNU_SHOWLAG,,,,Zeige Netzwerk-Latenz,Mostrar latencia de red,,Afficher latence réseau,,,,Отображение задержки Ñети, +Ammo display order,ALTHUDMNU_AMMOORDER,,,,Munitionsreihenfolge,Orden vista de munición,,Ordre d'affichage des munitions,,,,ПорÑдок Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов, +Red ammo display below %,ALTHUDMNU_AMMORED,,,,Rot für Munition unter %,Porc. de munición en rojo,,Compteur de munitions rouge sous,,,,Кр. отображение боеприпаÑов под %, +Yellow ammo display below %,ALTHUDMNU_AMMOYELLOW,,,,Gelb für Munition unter %,Porc. de munición en amarillo,,Compteur de munitions jaune sous,,,,Жл. отображение боеприпаÑов под %, +Red health display below,ALTHUDMNU_HEALTHRED,,,,Rot für Gesundheit unter %,Porc. de salud en rojo,,Compteur de santé rouge sous,,,,КраÑное отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´, +Yellow health display below,ALTHUDMNU_HEALTHYELLOW,,,,Gelb für Gesundheit unter %,Porc. de salud en amarillo,,Compteur de santé jaune sous,,,,Жёлтое отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´, +Green health display below,ALTHUDMNU_HEALTHGREEN,,,,Grün für Gesundheit unter %,Porc. de salud en verde,,Compteur de santé vert sous,,,,Зел. отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´, +Red armor display below,ALTHUDMNU_ARMORRED,,,Red armour display below,Rot für Panzerung unter %,Porc. de blindaje en rojo,,Compteur d' armure rouge sous,,,,КраÑное отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´, +Yellow armor display below,ALTHUDMNU_ARMORYELLOW,,,Yellow armour display below,Gelb für Panzerung unter %,Porc. de blindaje en amarillo,,Compteur d' armure jaune sous,,,,Жёлтое отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´, +Green armor display below,ALTHUDMNU_ARMORGREEN,,,Green armour display below,Grün für Panzerung unter %,Porc. de blindaje en verde,,Compteur d' armure bleu sous,,,,Зел. отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´, +Alternative Automap HUD,ALTHUDMNU_AUTOMAPHUD,,,,Alternatives Automap HUD,HUD alternativo del automapa,,ATH Alternatif pour carte,,,,Ðльт. HUD на автокарте, +Map title color,ALTHUDMNU_TITLECOLOR,,,Map title colour,Farbe für Levelnamen,Color del título del mapa,,Couleur titre du niveau,,,,Цвет Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ, +Map time color,ALTHUDMNU_MAPTIMECOLOR,,,Map time colour,Farbe für Level-Zeit,Color del tiempo del mapa,,Couleur temps du niveau,,,,Цвет времени Ð´Ð»Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¹, +Hub time color,ALTHUDMNU_HUBTIMECOLOR,,,Hub time colour,Farbe für Hub-Zeit,Color del tiempo del nodo,,Couleur temps du hub,,,,Цвет времени Ð´Ð»Ñ Ñ…Ð°Ð±Ð¾Ð², +Total time color,ALTHUDMNU_TOTALTIMECOLOR,,,Total time colour,Farbe für Gesamtzeit,Color del tiempo total,,Couleur temps total,,,,Цвет общего времени, +Coordinate color,ALTHUDMNU_COORDINATECOLOR,,,Coordinate colour,Farbe für Koordinaten,Color de Coordenadas,,Couleur coordonnées,,,,Цвет координат, +Coordinate mode,ALTHUDMNU_COORDINATEMODE,,,,Koordinatenmodus,Modo de Coordenadas,,Mode coordonnées,,,,Координаты игрока, +Statistics name color,ALTHUDMNU_STATSNAMECOLOR,,,Statistics name colour,Farbe für Statistik-Namen,Color del nombre de estadísticas,,Couleur nom des statistiques,,,,Цвет имён в ÑтатиÑтике, +Statistics color,ALTHUDMNU_STATSCOLOR,,,Statistics colour,Farbe für Statistik-Nummern,Color de las estadísticas,,Couleur statistiques,,,,Цвет ÑтатиÑтики, +Miscellaneous Options,MISCMNU_TITLE,,,,Verschiedene Optionen,Opciones Misceláneas,,Options Annexes,,,,Дополнительные наÑтройки, +Merge left+right Alt/Ctrl/Shift,MISCMNU_MERGEKEYS,,,,Linke und rechte Umschalt/Strg/Alt zusammenfassen,Combinar izq.+der. Alt/Ctrl/Mayús,,Combiner Alt/Ctrl/maj gauche & droite,,,,Ðе разделÑÑ‚ÑŒ левый/правый ALT/CTRL/SHIFT, +Alt-Enter toggles fullscreen,MISCMNU_WINFULLSCREENTOGGLE,,,,Alt-Enter schaltet Vollbild an/aus,Alt+Enter alterna pantalla completa,,Alt-Entrée alterne plein écran,,,,Переключение полного Ñкрана по ALT+ENTER, +Command-F toggles fullscreen,MISCMNU_MACFULLSCREENTOGGLE,,,,Cmd-F schaltet Vollbild an/aus,Cmd-F alterna pantalla completa,,Command-F alterne plein écran,,,,Переключение полного Ñкрана по Command+F, +Show IWAD selection dialog,MISCMNU_QUERYIWAD,,,,Zeige IWAD-Auswahl,Mostrar diálogo de selección de IWAD,,Afficher la séléction d'IWAD,,,,Выбор IWAD при запуÑке, +Enable cheats from all games,MISCMNU_ALLCHEATS,,,,Ermögliche Cheats aus allen Spielen,Activar trucos de todos los juegos,,Activer cheats de tous les jeux,,,,Читы из вÑех игр, +Enable autosaves,MISCMNU_ENABLEAUTOSAVES,,,,Automatisches Speichern,Activar autoguardado,,Activer Sauvegardes auto,,,,ÐвтоÑохранениÑ, +Number of autosaves,MISCMNU_AUTOSAVECOUNT,,,,Anzahl von automatischen Speicherständen,Número de autoguardados,,Total de sauvegardes auto,,,,КоличеÑтво автоÑохранений, +Save/Load confirmation,MISCMNU_SAVELOADCONFIRMATION,,,,Laden/Speichern bestätigen,Confirmación al guardar/cargar,,Confirmation C/S,,,,Подтверждение при Ñохранении/загрузке, +Enable making screenshots by scripts,MISCMNU_ENABLESCRIPTSCREENSHOTS,,,,"Erlaube Skripts, Screenshots zu machen",Habilitar captura de pantalla por scripts,,Autoriser les Scripts à prendre des captures,,,,ВозможноÑÑ‚ÑŒ делать Ñкриншоты через Ñкрипты, +Load *.deh/*.bex lumps,MISCMNU_DEHLOAD,,,,Lade *deh/*.bex Daten,Cargar archivos *.deh/*.bex,,Charger fichiers *.deh/*.bex,,,,Загружать файлы *.deh/*.bex, +Cache nodes,MISCMNU_CACHENODES,,,,Nodes zwischenspeichern,Caché de nodos,,Mise en cache des nodes,,,,КÑширование нодов, +Time threshold for node caching,MISCMNU_CACHETIME,,,,Zeitschwelle für das Zwischenspeichern von Nodes,Umbral de tiempo para caché de nodos,,Limite cache des nodes,,,,Временной порог Ð´Ð»Ñ ÐºÑÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð´Ð¾Ð², +Clear node cache,MISCMNU_CLEARNODECACHE,,,,Nodespeicher löschen,Limpiar Caché de nodos,,Vider le cache des nodes,,,,ОчиÑтить кÑш нодов, +Allow skipping of intermission scrollers,MISCMNU_INTERSCROLL,,,,Erlaube Ãœberspringen von Intermission-Scrollern,Permitir omisión de intermedios,,Sauter compteurs d'intermission,,,,Разрешение пропуÑка текÑтовых вÑтавок, +Automap Options,AUTOMAPMNU_TITLE,,,,Automapoptionen,Opciones del Automapa,,Options Carte,,,,ÐаÑтройки автокарты, +Map color set,AUTOMAPMNU_COLORSET,,,Map colour set,Farbset,Definir colores,,Set de couleurs de la carte,,,,Цвета автокарты, +Allow map defined colors,AUTOMAPMNU_CUSTOMCOLORS,,,Allow map defined colours,Erlaube levelspezifische Farben,Permitir colores definidos,,Couleurs définies par carte,,,,ÐаÑтроить цвета автокарты, +Set custom colors,AUTOMAPMNU_SETCUSTOMCOLORS,,,Set custom colours,Benutzerdefinierte Farben,Fijar colores personalizados,,Choisir couleurs personnalisées,,,,Выбор цветов, +Customize map controls,AUTOMAPMNU_CONTROLS,,,,Automapsteuerung einstellen,Personalizar Controles del mapa,,Choisir contrôles de la carte,,,,Управление, +Rotate automap,AUTOMAPMNU_ROTATE,,,,Rotiere Automap,Rotar automapa,,Rotation de la Carte,,,,ВращающаÑÑÑ Ð°Ð²Ñ‚Ð¾ÐºÐ°Ñ€Ñ‚Ð°, +Overlay automap,AUTOMAPMNU_OVERLAY,,,,Ãœberlagere Automap,Superponer automapa,,Carte en Surimpression,,,,ÐŸÑ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð°Ñ Ð°Ð²Ñ‚Ð¾ÐºÐ°Ñ€Ñ‚Ð°, +Enable textured display,AUTOMAPMNU_TEXTURED,,,,Texturanzeige,Mostrar automapa texturizado,,Activer affichage texturé,,,,ТекÑтуры на автокарте, +Follow player,AUTOMAPMNU_FOLLOW,,,,Folge dem Spieler,Seguir jugador,,Suivre le joueur,,,,ПривÑзка к игроку, +Show item counts,AUTOMAPMNU_SHOWITEMS,,,,Zeige Gegenstandsanzahl,Mostrar conteo de objetos,,Afficher compte d'objets,,,,КоличеÑтво предметов, +Show monster counts,AUTOMAPMNU_SHOWMONSTERS,,,,Zeige Monsteranzahl,Mostrar conteo de monstruos,,Afficher compte de monstres,,,,КоличеÑтво монÑтов, +Show secret counts,AUTOMAPMNU_SHOWSECRETS,,,,Zeige Geheimnisanzahl,Mostrar conteo de secretos,,Afficher compte de secrets,,,,КоличеÑтво тайников, +Show time elapsed,AUTOMAPMNU_SHOWTIME,,,,Zeige vergangene Zeit,Mostrar tiempo transcurrido,,Afficher temps passé,,,,Прошедшее времÑ, +Show total time elapsed,AUTOMAPMNU_SHOWTOTALTIME,,,,Zeige Gesamtzeit,Mostrar tiempo total transc.,,Afficher total de temps passé,,,,Общее времÑ, +Show secrets on map,AUTOMAPMNU_MAPSECRETS,,,,Zeige Geheimnisse auf der Karte,Mostrar secretos en el mapa,,Afficher secrets sur carte,,,,Тайники на карте, +Show map label,AUTOMAPMNU_SHOWMAPLABEL,,,,Zeige Levelnamen,Mostrar etiqueta del mapa,,Afficher label de carte,,,,Ðазвание карты, +Draw map background,AUTOMAPMNU_DRAWMAPBACK,,,,Zeige Kartenhintergrund,Dibujar fondo de mapa,,Afficher fond d'écran carte,,,,Отображать фон автокарты, +Show keys (cheat),AUTOMAPMNU_SHOWKEYS,,,,Zeige Schlüssel (Cheat),Mostrar llaves (truco),,Afficher les clés (cheat),,,,Отображать ключи (только чит), +Show trigger lines,AUTOMAPMNU_SHOWTRIGGERLINES,,,,Zeige Auslöserlinien,Mostrar líneas de activación,,Afficher lignes d'action,,,,Отображать триггеры, +Show things as sprites,AUTOMAPMNU_SHOWTHINGSPRITES,,,,Zeige Dinge als Sprites,Mostrar cosas como sprites,,Afficher objets comme sprites,,,,Отображать Ñпрайты предметов, +Overlay portals,AUTOMAPMNU_PTOVERLAY,,,,Ãœberlagere Portale,Sobreponer portales,,Superposer les portails,,,,Порталы в прозрачном режиме, +Empty space margin,AUTOMAPMNU_EMPTYSPACEMARGIN,,,,Breite des Randes,Margen de Espacio Vacío,,Marge d'espace vide,,,,Край автокарты, +Mark font,AUTOMAPMNU_MARKFONT,,,,Zeichensatz für Markierungen,Fuente para Marcas,,Police Marqueur,,,,Шрифт меток, +Mark color,AUTOMAPMNU_MARKCOLOR,,,,Farbe für Markierungen,Color de las Marcas,,Couleur Marqueur,,,,Цвет меток, +Customize Map Controls,MAPCNTRLMNU_TITLE,,,,Automapsteuerung einstellen,Controles del mapa,,Contrôles Carte,,,,Клавиши ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾ÐºÐ°Ñ€Ñ‚Ð¾Ð¹, +Map Controls,MAPCNTRLMNU_CONTROLS,,,,Automapsteuerung,Controles del mapa,,Contrôles de la carte,,,,Ðвтокарта, +Pan left,MAPCNTRLMNU_PANLEFT,,,,Nach links,Mover a la izquierda,,Aller à gauche,,,,Сдвиг влево, +Pan right,MAPCNTRLMNU_PANRIGHT,,,,Nach rechts,Mover a la derecha,,Aller à droite,,,,Сдвиг вправо, +Pan up,MAPCNTRLMNU_PANUP,,,,Nach oben,Mover hacia arriba,,Aller en haut,,,,Сдвиг вверх, +Pan down,MAPCNTRLMNU_PANDOWN,,,,Nach unten,Mover hacia abajo,,Aller en bas,,,,Сдвиг вниз, +Zoom in,MAPCNTRLMNU_ZOOMIN,,,,Reinzoomen,Acercar,,Zoom avant,,,,Увеличить маÑштаб, +Zoom out,MAPCNTRLMNU_ZOOMOUT,,,,Rauszoomen,Alejar,,Zoom arrière,,,,Уменьшить маÑштаб, +Toggle zoom,MAPCNTRLMNU_TOGGLEZOOM,,,,Zoom an/aus,Alternar zoom,,Alterner zoom,,,,Переключить зум, +Toggle follow,MAPCNTRLMNU_TOGGLEFOLLOW,,,,Folgen an/aus,Alternar seguimiento,,Alterner suivi,,,,Переключить Ñлежение, +Toggle grid,MAPCNTRLMNU_TOGGLEGRID,,,,Gitter an/aus,Alternar cuadrícula,Alternar rejilla,Alterner grille,,,,Переключить Ñетку, +Toggle texture,MAPCNTRLMNU_TOGGLETEXTURE,,,,Texturen an/aus,Alternar textura,,Alterner texture,,,,Переключить текÑтуры, +Set mark,MAPCNTRLMNU_SETMARK,,,,Setze Markierung,Fijar marca,,Placer repère,,,,ПоÑтавить отметку, +Clear mark,MAPCNTRLMNU_CLEARMARK,,,,Lösche Markierung,Limpiar marca,,Enlever repères,,,,Убрать отметку, +Customize Map Colors,MAPCOLORMNU_TITLE,,,Customize Map Colours,Automapfarben einstellen,Personalizar colores (mapa),,Couleurs Carte Personnalisées,,,,ÐаÑтройки цветов автокарты, +Restore default custom colors,MAPCOLORMNU_DEFAULTMAPCOLORS,,,Restore default custom colours,Standardfarben wiederherstellen,Restaurar colores personalizados,,Couleurs par défaut,,,,Вернуть Ñтандартные цвета, +Background,MAPCOLORMNU_BACKCOLOR,,,,Hintergrund,Fondo,,Fond,,,,Фон, +You,MAPCOLORMNU_YOURCOLOR,,,,Du,Tú,,Votre couleur,,,,Игрок, +1-sided walls,MAPCOLORMNU_WALLCOLOR,,,,Einseitige Wände,Paredes de 1 lado,,Murs à 1 côté,,,,ОдноÑторонние Ñтены, +2-sided walls with different floors,MAPCOLORMNU_FDWALLCOLOR,,,,Zweiseitige Wände mit unterschiedlicher Bodenhöhe,Paredes de 2 lados con pisos distintos,,Murs à 2 côtés avec différents sols,,,,ДвуÑторонние Ñтены, +2-sided walls with different ceilings,MAPCOLORMNU_CDWALLCOLOR,,,,Zweiseitige Wände mit unterschiedlicher Deckenhöhe,Paredes de 2 lados con techos distintos,,Murs à 2 côtés avec différents plafonds,,,,ДвуÑторонние Ñтены Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ потолками, +2-sided walls with 3D floors,MAPCOLORMNU_EFWALLCOLOR,,,,Zweiseitige Wände mit 3D-Ebenen,Paredes de 2 lados con suelos 3D,,Murs à 2 côtés avec sols 3d,,,,ДвуÑторонние Ñтены Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ полами, +Map grid,MAPCOLORMNU_GRIDCOLOR,,,,Kartengitter,Cuadrícula del mapa,Rejilla del mapa,Quadrillage,,,,Цвет Ñетки, +Center point,MAPCOLORMNU_XHAIRCOLOR,,,Centre point,Mittelpunkt,Punto central,,Point Central,,,,КурÑор, +Not-yet-seen walls,MAPCOLORMNU_NOTSEENCOLOR,,,,Ungesehene Wände,Paredes sin ver,,Murs non découvers,,,,Ðеобнаруженные Ñтены, +Locked doors,MAPCOLORMNU_LOCKEDCOLOR,,,,Verschlossene Türen,Puertas bloqueadas,,Portes verouillées,,,,Запертые двери, +Teleporter to the same map,MAPCOLORMNU_INTRALEVELCOLOR,,,,Teleporter,Telepuerto al mismo mapa,,Téléporteurs (même niveau),,,,Телепорт в пределах уровнÑ, +Teleporter to a different map,MAPCOLORMNU_INTERLEVELCOLOR,,,,Teleporter in ein anderes Level,Telepuerto a un mapa diferente,,Téléporteurs (autre niveau),,,,Телепорт на другой уровень, +Secret sector,MAPCOLORMNU_SECRETSECTORCOLOR,,,,Geheimer Sektor,Sector secreto,,Secteur Secret,,,,Тайный Ñектор, +Unexplored secret,MAPCOLORMNU_UNEXPLOREDSECRETCOLOR,,,,nicht gefundener geheimer Sektor,Sector secreto inexplorado,,Secret non révélé,,,,Ðеобнаруженный тайник, +Special trigger lines,MAPCOLORMNU_SPECIALWALLCOLOR,,,,Spezielle Linien,Líneas especiales de activación,,Lignes d'actions spéciales,,,,Специальные триггер-линии, +Cheat Mode,MAPCOLORMNU_CHEATMODE,,,,Cheat-Modus,Modo de truco,,Mode Cheat,,,,Чит-режим, +Invisible 2-sided walls,MAPCOLORMNU_TSWALLCOLOR,,,,Unsichtbare zweiseitige Wände,Paredes de 2 lados Invisibles,,Murs à 2 côtés invisibles,,,,Ðевидимые двуÑторонние Ñтены, +Secret walls,MAPCOLORMNU_SECRETWALLCOLOR,,,,Geheime Wände,Paredes secretas,,Murs Secrets,,,,Тайные Ñтены, +Actors,MAPCOLORMNU_THINGCOLOR,,,,Akteure,Actores,,Acteurs,,,,Объекты, +Monsters,MAPCOLORMNU_MONSTERCOLOR,,,,Monster,Monstruos,,Monstres,,,,МонÑтры, +non-counting Monsters,MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR,,,,nicht gezählte Monster,Monstruos no contados,Monstruos sin contar,Monstres non comptés,,,,Ðеучитываемые монÑтры, +Friends,MAPCOLORMNU_FRIENDCOLOR,,,,Freunde,Amigos,,Amis,,,,ДружеÑтвенные, +Items,MAPCOLORMNU_ITEMCOLOR,,,,Gegenstände,Objetos,,Objets,,,,Предметы, +Count Items,MAPCOLORMNU_COUNTITEMCOLOR,,,,gezählte Gegenstände,Objetos contados,Conteo de objetos,Objets comptés,,,,Учитываемые предметы, +Overlay Mode,MAPCOLORMNU_OVERLAY,,,,Ãœberlagerungsmodus,Modo sobrepuesto,,Mode surimpression,,,,Прозрачный режим, +Overlay Cheat Mode,MAPCOLORMNU_OVCHEATMODE,,,,Ãœberlagerungsmodus Cheats,Sobrepos. modo de truco,,Mode Cheat Surimpression,,,,Прозрачный чит-режим, +Portal Overlays,MAPCOLORMNU_PORTAL,,,,Portalüberlagerung,Sobreposición de portal,,Portails superposés,,,,Порталы в прозрачном режиме, +Messages,MSGMNU_TITLE,,,,Nachrichten,Mensajes,,,,,,СообщениÑ, +Show messages,MSGMNU_SHOWMESSAGES,,,,Zeige Nachrichten,Mostrar Mensajes,,Afficher messages,,,,Отображение Ñообщений, +Show obituaries,MSGMNU_SHOWOBITUARIES,,,,Zeige Todesanzeigen,Mostrar obituarios,,Afficher avis de décès,,,,Отображение некрологов, +Show secret notifications,MSGMNU_SHOWSECRETS,,,,Zeige Geheimnismeldung,Mostrar notificación de secretos,,Afficher secrets,,,,Отображение Ñообщений о тайниках, +Minimum message level,MSGMNU_MESSAGELEVEL,,,,Min. Nachrichtenanzeigestufe,Nivel mínimo de mensaje,,Niveau de message minimum,,,,Минимальный уровень Ñообщений, +Center messages,MSGMNU_CENTERMESSAGES,,,Centre messages,Nachrichten zentrieren,Centrar mensajes,,Messages centrés,,,,Центрирование Ñообщений, +Message Colors,MSGMNU_MESSAGECOLORS,,,Message Colours,Nachrichtenfarben,Colores de los Mensajes,,Couleur des messages,,,,Цвета Ñообщений, +Item Pickup,MSGMNU_ITEMPICKUP,,,,Genommene Gegenstände,Toma de objetos,,Objets ramassés,,,,Подбор предмета, +Obituaries,MSGMNU_OBITUARIES,,,,Todesanzeigen,Obituarios,,Avis de décès,,,,Ðекрологи, +Critical Messages,MSGMNU_CRITICALMESSAGES,,,,Kritische Nachrichten,Mensajes críticos,,Messages d'erreur,,,,Важные ÑообщениÑ, +Chat Messages,MSGMNU_CHATMESSAGES,,,,Chatnachrichten,Mensajes de chat,,Message de Chat,,,,Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² чате, +Team Messages,MSGMNU_TEAMMESSAGES,,,,Teamnachrichten,Mensajes de equipo,,Messages d'équipe,,,,Командные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² чате, +Centered Messages,MSGMNU_CENTEREDMESSAGES,,,Centred Messages,Zentrierte Nachrichten,Mensajes centrados,,Messages centrés,,,,Центрированные ÑообщениÑ, +Screenshot messages,MSGMNU_SCREENSHOTMESSAGES,,,,Screnshot-Meldungen,Mensajes de captura de pantalla,,Messages de capture d'écran,,,,Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ Ñкриншотах, +Detailed save messages,MSGMNU_LONGSAVEMESSAGES,,,,Detaillierte Speicher-Meldungen,Mensajes detallados de guardado,,Messages de sauvegarde détailés,,,,Подробные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ ÑохранениÑÑ…, +Developer message mode,MSGMNU_DEVELOPER,,,,Entwickler-Modus,Modo de mensajes de desarrollador,,Mode de Développement,,,,Режим Ñообщений Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð², +Scoreboard Options,SCRBRDMNU_TITLE,,,,Punktetabellenoptionen,Opciones de marcador,,Tableau des Scores,,,,ÐаÑтройки таблицы очков, +Cooperative Options,SCRBRDMNU_COOPERATIVE,,,,Kooperativ-Optionen,Opc. de cooperativo,,Options Mode Coop,,,,ÐаÑтройки Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, +Enable Scoreboard,SCRBRDMNU_ENABLE,,,,Punktetabelle aktiv,Activar marcador,,Activer Tableau des Scores,,,,Включить таблицу очков, +Header Color,SCRBRDMNU_HEADERCOLOR,,,Header Colour,Kopfzeilenfarbe,Color de cabecera,,Couleur du Titre,,,,Цвет заголовка, +Your Player Color,SCRBRDMNU_YOURCOLOR,,,Your Player Colour,Deine Spielerfarbe,Color de tu jugador,,Votre couleur,,,,Ваш цвет, +Other Players' Color,SCRBRDMNU_OTHERPLAYERCOLOR,,,Other Players' Colour,Andere Spielerfarbe,Color de otros jugadores,,Couleur des autres joueurs,,,,Цвет других игроков, +Deathmatch Options,SCRBRDMNU_DEATHMATCH,,,,Deathmatch-Optionen,Opc. modo a muerte,,Options Deathmatch,,,,ÐаÑтройки Deathmatch, +Team Deathmatch Options,SCRBRDMNU_TEAMDEATHMATCH,,,,Team-Deathmatch-Optionen,Opc. modo a muerte por equipos,,Options Deathmatch en équipe,,,,ÐаÑтройки командного Deathmatch, +Gameplay Options,GMPLYMNU_TITLE,,,,Gameplay-Optionen,Opc. de jugabilidad,,Options Gameplay,,,,ÐаÑтройки геймплеÑ, +Teamplay,GMPLYMNU_TEAMPLAY,,,,Teamspiel,Juego por equipos,,Jeu en équipe,,,,Командный режим, +Team damage scalar,GMPLYMNU_TEAMDAMAGE,,,,Team-Schadenfaktor,Escalar de daño del equipo,,Facteur de Tir Fratricide,,,,Множитель урона по Ñвоим, +Smart Autoaim,GMPLYMNU_SMARTAUTOAIM,,,,Intelligene Zielautomatik,Autoapuntado inteligente,,Autovisée intelligente,,,,Умное автоприцеливание, +Falling damage,GMPLYMNU_FALLINGDAMAGE,,,,Fallschaden,Daño por caída,,Dommages de chute,,,,Урон от падениÑ, +Drop weapon,GMPLYMNU_DROPWEAPON,,,,Waffen fallen lassen,Arrojar arma,,Arme lâchée à la mort,,,,СохранÑÑ‚ÑŒ оружие поÑле Ñмерти, +Double ammo,GMPLYMNU_DOUBLEAMMO,,,,Doppelte Munition,Doble munición,,Double munitions,,,,Удвоенные патроны, +Infinite ammo,GMPLYMNU_INFINITEAMMO,,,,Unendlich Munition,Munición infinita,,Munitions infinies,,,,БеÑконечные патроны, +Infinite inventory,GMPLYMNU_INFINITEINVENTORY,,,,Unendliche Gegenstände,Inventario infinito,,Objets infinis,,,,БеÑконечный инвентарь, +No monsters,GMPLYMNU_NOMONSTERS,,,,Keine Monster,Sin monstruos,,Pas de monstres,,,,Отключить монÑтров, +No monsters to exit,GMPLYMNU_NOMONSTERSTOEXIT,,,,Keine Monster um Level zu beenden,Sin monstruos para salir,,Rien à tuer pour sortir,,,,Убить вÑех монÑтров Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°, +Monsters respawn,GMPLYMNU_MONSTERSRESPAWN,,,,Monster kehren zurück,Reaparecer enemigos,,Monstres réapparaissent,,,,МонÑтры воÑкрешаютÑÑ, +No respawn,GMPLYMNU_NORESPAWN,,,,Kein Zurückkehren,Sin reaparición,,Pas de réapparition,,,,Отключение воÑкрешениÑ, +Items respawn,GMPLYMNU_ITEMSRESPAWN,,,,Gegenstände erscheinen wieder,Reaparecer objetos,,Objets réapparaissent,,,,ВоÑÑтановление предметов, +Big powerups respawn,GMPLYMNU_SUPERRESPAWN,,,,Große Boni erscheinen wieder,Reaparecer poderes grandes,,Powerups réapparaissent,,,,ВоÑÑтановление Ñупер-бонуÑов, +Fast monsters,GMPLYMNU_FASTMONSTERS,,,,Schnelle Monster,Monstruos rápidos,,Monstres Rapides,,,,УÑкоренные монÑтры, +Degeneration,GMPLYMNU_DEGENERATION,,,,,Degeneración,,Dégéneration,,,,Уменьшать доп. здоровье, +Allow Autoaim,GMPLYMNU_NOAUTOAIM,,,,Zielautomatik zulassen,Permitir Autoapuntar,,Autoriser Auto-visée,,,,Разрешить автоприцеливание, +Allow Suicide,GMPLYMNU_ALLOWSUICIDE,,,,Selbstmord zulassen,Permitir Suicidio,,Autoriser Suicide,,,,Разрешить Ñуицид, +Allow jump,GMPLYMNU_ALLOWJUMP,,,,Springen zulassen,Permitir salto,,Autoriser Sauts,,,,Прыжки, +Allow crouch,GMPLYMNU_ALLOWCROUCH,,,,Ducken zulassen,Permitir agacharse,,Autoriser Acroupissement,,,,ПриÑедание, +Allow freelook,GMPLYMNU_ALLOWFREELOOK,,,,Freien Blick zulassen,Permitir visión libre,,Autoriser Vue Libre,,,,Обзор мышью, +Allow FOV,GMPLYMNU_ALLOWFOV,,,,Blickwinkeländerung zulassen,Permitir FOV,,Autoriser Angles de vue,,,,Разрешить изменение FOV, +Allow BFG aiming,GMPLYMNU_BFGFREEAIM,,,,Zielen mit BFG zulassen,Permitir apuntado de BFG,,Autoriser Visée au BFG,,,,Разрешить прицеливание Ñ BFG, +Allow automap,GMPLYMNU_ALLOWAUTOMAP,,,,Automap zulassen,Permitir automapa,,Autoriser Carte,,,,Разрешить иÑпользование автокарты, +Automap allies,GMPLYMNU_AUTOMAPALLIES,,,,Verbündete zulassen,Aliados en el automapa,,Alliés sur la carte,,,,Показывать Ñоюзников на автокарте, +Allow spying,GMPLYMNU_ALLOWSPYING,,,,Spionieren zulassen,Permitir espiar,,Autoriser espionnage,,,,Разрешить вид от других игроков, +Chasecam cheat,GMPLYMNU_CHASECAM,,,,Verfolgerkamera Cheat,Truco de vista 3era persona,,Cheat caméra 3ième personne,,,,Разрешить вид от 3-го лица, +Check ammo for weapon switch,GMPLYMNU_DONTCHECKAMMO,,,,Munition beim Waffenwechsel prüfen,Revisar munición para cambiar armas,,Vérifier muni. pour changer arme,,,,ПроверÑÑ‚ÑŒ патроны при переключении оружиÑ, +Icon's death kills its spawns,GMPLYMNU_KILLBOSSSPAWNS,,,,,La muerte del icono destruye sus lacayos,,Tuer L'Icône tue ses monstres,,,,Убить Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð˜ÐºÐ¾Ð½Ñ‹ при её Ñмерти, +End sector counts for kill %,GMPLYMNU_NOCOUNTENDMONSTER,,,,Monster in Level-Beenden-Sektor zählen,Sector de salida cuenta para % de muertes,,Ennemis du secteur sortie comptés,,,,Считать монÑтров в конечном Ñекторе убитыми, +Deathmatch Settings,GMPLYMNU_DEATHMATCH,,,,Deathmatcheinstellungen,Configuración modo a muerte,,Options Deathmatch,,,,ÐаÑтройки deathmatch, +Weapons stay,GMPLYMNU_WEAPONSSTAY,,,,Waffen bleiben,Las armas se quedan,,Armes restent au sol quand prises,,,,ОÑтавлÑÑ‚ÑŒ оружие поÑле подбора, +Allow powerups,GMPLYMNU_ALLOWPOWERUPS,,,,Boni erlauben,Permitir poderes,,Autoriser powerups,,,,Разрешить бонуÑÑ‹, +Allow health,GMPLYMNU_ALLOWHEALTH,,,,Gesunheit erlauben,Permitir salud,,Autoriser objets santé,,,,Разрешить бонуÑÑ‹ к здоровью, +Allow armor,GMPLYMNU_ALLOWARMOR,,,Allow armour,Panzer erlauben,Permitir armadura,,Autoriser objets armure,,,,Разрешить броню, +Spawn farthest,GMPLYMNU_SPAWNFARTHEST,,,,Am weitesten entfernten Punkt erscheinen,Aparecer más lejos,,Apparaître au plus loin,,,,ВоÑÑтановление подальше от оÑтальных, +Same map,GMPLYMNU_SAMEMAP,,,,Gleiches Level,Mismo mapa,,Même Carte,,,,Зациклить уровень, +Force respawn,GMPLYMNU_FORCERESPAWN,,,,Zurückkehren erzwingen,Forzar reaparición,,Forcer Réapparition,,,,Моментальное воÑÑтановление, +Allow exit,GMPLYMNU_ALLOWEXIT,,,,Verlassen erlauben,Permitir salir,,Autoriser Sortie,,,,Разрешить выход, +Barrels respawn,GMPLYMNU_BARRELSRESPAWN,,,,Fässer kehren zurück,Reaparecer Barriles,,Réapparition des Tonneaux,,,,ВоÑÑтановление бочек, +Respawn protection,GMPLYMNU_RESPAWNPROTECTION,,,,Schutzboni kehen zurück,Reaparecer protección,,Protection à la réapparition,,,,ÐšÑ€Ð°Ñ‚ÐºÐ¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð° поÑле воÑкрешениÑ, +Lose frag if fragged,GMPLYMNU_LOSEFRAG,,,,Fragabzug bei Tod,Perder baja al morir,,Perdre 1 frag quand tué,,,,ТерÑÑ‚ÑŒ фраг при Ñмерти, +Keep frags gained,GMPLYMNU_KEEPFRAGS,,,,Frags zwischen Leveln behalten,Mantener bajas ganadas,,Garder les frags gagnés,,,,СохранÑÑ‚ÑŒ фраги между уровнÑми, +No team switching,GMPLYMNU_NOTEAMSWITCH,,,,Kein Teamwechsel,No cambiar equipos,,Pas de changement d'équipe,,,,Запретить переход между командами, +Cooperative Settings,GMPLYMNU_COOPERATIVE,,,,Kooperativ-Einstellungen,Configuración de cooperativo,,Options Coopératives,,,,ÐаÑтройки ÑовмеÑтного режима, +Spawn multi. weapons,GMPLYMNU_MULTIPLAYERWEAPONS,,,,Deathmartch Waffen sind verfügbar,Aparecer armas multi.,,Spawns d'armes deathmatch,,,,ПоÑвление Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¸Ð· мультиплеера, +Lose entire inventory,GMPLYMNU_LOSEINVENTORY,,,,Verliere ganzes Inventar,Perder todo el inventario,,Perdre l'inventaire,,,,ТерÑÑ‚ÑŒ веÑÑŒ инвентарь при Ñмерти, +Keep keys,GMPLYMNU_KEEPKEYS,,,,Schlüssel behalten,Mantener llaves,,Garder clés,,,,СохранÑÑ‚ÑŒ ключи, +Keep weapons,GMPLYMNU_KEEPWEAPONS,,,,Waffen behalten,Mantener armas,,Garder armes,,,,СохранÑÑ‚ÑŒ оружие, +Keep armor,GMPLYMNU_KEEPARMOR,,,Keep armour,Rüstung behalten,Mantener armadura,,Garder armure,,,,СохранÑÑ‚ÑŒ броню, +Keep powerups,GMPLYMNU_KEEPPOWERUPS,,,,Behalte Boni,Mantener poderes,,Garder powerups,,,,СохранÑÑ‚ÑŒ Ñупер-бонуÑÑ‹, +Keep ammo,GMPLYMNU_KEEPAMMO,,,,Munition behalten,Mantener munición,,Garder munitions,,,,СохранÑÑ‚ÑŒ патроны, +Lose half ammo,GMPLYMNU_LOSEHALFAMMO,,,,Halbe Munition verlieren,Perder la mitad de la munición,,Perdre la moité des munitions,,,,ТерÑÑ‚ÑŒ половину патронов, +Spawn where died,GMPLYMNU_SPAWNWHEREDIED,,,,Neuerscheinen wo gestorben,Aparecer donde moriste,,Réapparaitre sur lieu de mort,,,,ВоÑÑтановление на меÑте Ñмерти, +Compatibility Options,CMPTMNU_TITLE,,,,Kompatibilitätsoptionen,Opciones de compatibilidad,,Options Compatibilité,,,,ÐаÑтройки ÑовмеÑтимоÑти, +Compatibility mode,CMPTMNU_MODE,,,,Kompatibilitätsmodus,Modo de Compatibilidad,,Mode de compatibilité,,,,Режим ÑовмеÑтимоÑти, +Actor Behavior,CMPTMNU_ACTORBEHAVIOR,,,Actor Behaviour,Verhalten der Akteure,Comportamiento del actor,,Comportement des Acteurs,,,,Поведение акторов, +Crushed monsters can be resurrected,CMPTMNU_CORPSEGIBS,,,,Zermalmte Monster können wiederbelebt werden,Los monstruos aplastados pueden resucitar,,Monstres écrasés résucitables,,,,Раздавленные монÑтры могут быть воÑкрешены, +Friendly monsters aren't blocked,CMPTMNU_NOBLOCKFRIENDS,,,,Freundliche Monster werden nicht geblockt,Monstruos amistosos no son bloqueados,,Monstres amicaux non bloqués,,,,Ðе блокировать дружеÑтвенных монÑтров, +Limit Pain Elementals' Lost Souls,CMPTMNU_LIMITPAIN,,,,Limit für Verlorene Seelen,Limitar almas perdidas de los elementales del dolor,,Limiter âmes des élémentaires,,,,Ограничить чиÑло потер. душ из Ñлементалей боли, +Monster movement is affected by effects,CMPTMNU_MBFMONSTERMOVE,,,,Monsterbewegung wird von Effekten beeinflusst,Los efectos afectan al movimiento de los monstruos,,Mouvement monstre affecté par effets,,,,Эффекты влиÑÑŽÑ‚ на движение монÑтров, +Monsters cannot cross dropoffs,CMPTMNU_CROSSDROPOFF,,,,Monster können Abbruchkanten nicht überqueren,Los monstruos no pueden cruzar declives,,Monstres ne passent pas les corniches,,,,МонÑтрам Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÑекать уÑтупы, +Monsters get stuck over dropoffs,CMPTMNU_DROPOFF,,,,Monster bleiben auf Abbruchkanten hängen,Los monstruos se atrapan sobre declives,Los monstruos se atoran sobre declives,Monstres bloqués par les corniches,,,,МонÑтры заÑтревают на уÑтупах, +Monsters see invisible players,CMPTMNU_INVISIBILITY,,,,Monster können unsichtbare Spieler sehen,Los monstruos ven jugadores invisibles,,Monstres voient joueurs invisibles,,,,МонÑтры видÑÑ‚ невидимых игроков, +No Minotaur floor flames in water,CMPTMNU_MINOTAUR,,,,Keine Minotaurus-Flammen im Wasser,Sin llamas de minotauro en el agua,,Pas de feu de Massetaur sur l'eau,,,,Минотавры не Ñоздают огонь в воде, +Spawn item drops on the floor,CMPTMNU_NOTOSSDROPS,,,,Gegenstände erscheinen auf dem Fußboden,Aparecer objetos dejados en el suelo,,Objets lâchés direct au sol,,,,Выброшенные предметы ÑоздаютÑÑ Ð½Ð° земле, +DehackEd Behavior,CMPTMNU_DEHACKEDBEHAVIOR,,,DehackEd Behaviour,DehackEd Verhalten,Comportamiento de DehackEd,,Comportement DeHackEd,,,,Поведение DeHackEd, +DEH health settings like Doom2.exe,CMPTMNU_DEHHEALTH,,,,DEH Gesundheitseinstellungen wie in Doom2.exe,Configuración de salud DEH como en Doom2.exe,,Para. santé DEH comme Doom2.EXE,,,,ÐаÑтройки Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ DEH как в Doom2.exe, +Original A_Mushroom speed in DEH mods,CMPTMNU_MUSHROOM,,,,Originale Berechnung für A_Mushroom,Velocidad original de A_Mushroom en mods con DEH,,Vitesse A_Mushroom originale pour DEH,,,,ÐžÑ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÑкороÑÑ‚ÑŒ A_Mushroom в модах DEH, +Map/Action Behavior,CMPTMNU_MAPACTIONBEHAVIOR,,,Map/Action Behaviour,Level/Aktionsverhalten,Comportamiento Mapa/Acción,,Comportement Niveau/Actions,,,,Поведение уровней/дейÑтвий, +All special lines can block ,CMPTMNU_USEBLOCKING,,,,Alle Speziallinien blockieren Benutzung,Todas las líneas especiales pueden bloquear ,,Toute ligne d'action bloque ,,,,Ð’Ñе Ñпециальные линии могут блокировать , +Allow any bossdeath for level special,CMPTMNU_ANYBOSSDEATH,,,,Jeder Boss-Tod zählt für Spezialaktionen,Permitir cualquier muerte de jefe por especial de nivel,,N'importe quel boss active actions boss,,,,Любой A_BossDeath активирует special на уровне, +Disable BOOM door light effect,CMPTMNU_NODOORLIGHT,,,,Boom-Türlichteffekt deaktiviert.,Desactivar efecto de luz de puerta de BOOM,,Pas d'effet de lumière BOOM sur portes,,,,Отключить Ñветовой Ñффект на дверÑÑ… из BOOM, +Find neighboring light like Doom,CMPTMNU_LIGHT,,,Find neighbouring light like Doom,Finde benachbartes Licht wie in Doom,Encontrar luces vecinas como en Doom,,Trouver prochaine texture comme DOOM,,,,ИÑкать ÑоÑедний иÑточник Ñвета как в Doom, +Find shortest textures like Doom,CMPTMNU_SHORTTEX,,,,Finde kurze Texturen wie in Doom,Encontrar texturas más cortas como en Doom,,Trouver plus petite texture comme Doom,,,,ИÑкать кратчайшие текÑтуры как в Doom, +Use buggier stair building,CMPTMNU_STAIRS,,,,Benutze fehlerhafte Treppenbaufunktion,Usar construcción defectuosa de escaleras,,Construction d'escalier plus buggée,,,,ИÑпользовать неиÑправленное поÑтроение леÑтниц, +Use Doom's floor motion behavior,CMPTMNU_FLOORMOVE,,,Use Doom's floor motion behaviour,Benutze Dooms Verhalten für bewegende Böden,Usar comportamiento de mov. del suelo de Doom,,Mouvement des sols à la DOOM,,,,Поведение Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ полу из Doom, +Use Doom's point-on-line algorithm,CMPTMNU_POINTONLINE,,,,Benutze Dooms Punkt-auf-Linie Algorithmus,Usar algoritmo de punto en línea de Doom,,Algorithme point-sur-ligne de DOOM,,,,ИÑпользовать алгоритм point-on-line из Doom, +Level exit can be triggered more than once,CMPTMNU_MULTIEXIT,,,,Ausgang kann mehr als einmal aktiviert werden,La salida de nivel puede ser activada más de una vez,,Sortie niveau utilisable plusieures fois,,,,Выходы могут быть активированы более одного раза, +Physics Behavior,CMPTMNU_PHYSICSBEHAVIOR,,,Physics Behaviour,Physik-Verhalten,Comportamiento de la física,,Comportement Physique,,,,Поведение физики, +Actors are infinitely tall,CMPTMNU_NOPASSOVER,,,,Akteure sind unendlich hoch,Los actores son infinitamente altos,,Hauteur des acteurs infinie,,,,Ðкторы беÑконечно выÑокие, +Boom scrollers are additive,CMPTMNU_BOOMSCROLL,,,,Boom-Scroller sind additiv,Scrollers de Boom son aditivos,,Glisseurs BOOM additifs,,,,Скроллеры из BOOM ÑвлÑÑŽÑ‚ÑÑ Ð°Ð´Ð´Ð¸Ñ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸, +Cannot travel straight NSEW,CMPTMNU_BADANGLES,,,,Bewegungsrichtungen direkt NSOW nicht möglich,Emular error de mal ángulo,,Direction pure NSEO impossible,,,,"Запрещено двигатьÑÑ Ð¿Ñ€Ñмо на С, Ю, З, Ð’", +Enable wall running,CMPTMNU_WALLRUN,,,,Ermögliche Wandrennen,Activar correr por muros,,Activer Wallrunning,,,,Включить быÑтрый бег вдоль Ñтен (wallrun), +Raven scrollers use original speed,CMPTMNU_RAVENSCROLL,,,,Raven-Scroller benutzen originale Geschwindigkeit,Los scrollers de Raven usan la velocidad original,,Glisseurs Raven à leur vitesse originale,,,,Raven-Ñкроллеры иÑпользуют оригинальную ÑкороÑÑ‚ÑŒ, +Self ref. sectors don't block shots,CMPTMNU_TRACE,,,,Selbstreferenzierende Sektoren blockieren keine Schüsse,Sectores autoreferidos no bloquean los disparos,,Secteur autoréférencé ne bloque pas les tirs,,,,СамоÑÑылающиеÑÑ Ñекторы не блокируют выÑтрелы, +Use Doom code for hitscan checks,CMPTMNU_HITSCAN,,,,Benutze Original-Doom-Code für Hitscan-Checks,Usar código de Doom para revisión de hitscan,,Vérification Hitscan à la DOOM,,,,ИÑпользовать код из Doom Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¾Ðº хит-Ñканов, +Use Doom heights for missile clipping,CMPTMNU_MISSILECLIP,,,,Benutze Doom-Größen für Kollisionen mit Projektilen,Usar altura de Doom para desplazamiento de misiles,,Clipping des missiles à la DOOM,,,,ИÑпользовать выÑоты из Doom Ð´Ð»Ñ ÑÑ‚Ð¾Ð»ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ñ€Ð°ÐºÐµÑ‚, +Rendering Behavior,CMPTMNU_RENDERINGBEHAVIOR,,,Rendering Behaviour,Renderverhalten,Comportamiento de renderizado,,Comportement d'affichage,,,,Поведение рендеринга, +Draw polyobjects like Hexen,CMPTMNU_POLYOBJ,,,,Zeichne Polyobjekte wie in Hexen,Dibujar poliobjetos como en Hexen,,Dessiner les Polyobjets comme Hexen,,,,РиÑовать полиобъекты как в Hexen, +Ignore Y offsets on masked midtextures,CMPTMNU_MASKEDMIDTEX,,,,Ignoriere Y-Offsets bei transparenten Mitteltexturen,Ignorar offsets de eje Y en texturas medias enmascaradas,,Offsets Y ignorés sur les textures centrales,,,,Игнорировать Ñмещение Y на Ñкрытых мид-текÑтурах, +Invert sprite sorting,CMPTMNU_SPRITESORT,,,,Umgekehrte Spritesortierung,Invertir ordenado de sprites,,Ordres des sprites inversé,,,,Инвертировать Ñортировку Ñпрайтов, +Sound Behavior,CMPTMNU_SOUNDBEHAVIOR,,,Sound Behaviour,Sound-Verhalten,Comportamiento de sonido,,Comportement Sonore,,,,Поведение звуков, +Cripple sound for silent BFG trick,CMPTMNU_SOUNDSLOTS,,,,Amputiere Soundsystem für geräuschloses BFG,Estropear sonido para truco de BFG silencioso,,Massacrer le son pour BFG silencieux,,,,ИÑказить звуки Ð´Ð»Ñ Ñ‚Ñ€ÑŽÐºÐ° беÑшумной BFG, +Don't let others hear your pickups,CMPTMNU_SILENTPICKUP,,,,Andere können deine Gegenstandsaufnahmen nicht hören,No dejar a otros oír tus recogidas,,Autres joueurs n'entendent pas les ramassages,,,,Запрещать другим Ñлышать Ваш подбор предметов, +Inst. moving floors are not silent,CMPTMNU_SILENTINSTANTFLOORS,,,,Böden mit sofortiger Bewegung machen Geräusche,Suelos inst. movibles no son silenciosos,,Sols à movement instanté font du bruit,,,,Мгновенно двигающиеÑÑ Ð¿Ð¾Ð»Ñ‹ не беззвучны, +Sector sounds use center as source,CMPTMNU_SECTORSOUNDS,,,Sector sounds use centre as source,Sektor-Sounds benutzen den Mittelpunkt des Sektors,Sonidos de sector usan el centro como fuente,,Sons secteur utilisent le centre comme origine,,,,Звуки Ñекторов иÑпользуют центр как иÑточник, +Sounds stop when actor vanishes,CMPTMNU_SOUNDCUTOFF,,,,"Sounds werden beendet, wenn der Akteur verschwindet",El sonido se detiene cuando el actor desaparece,,Sons s'arrêtent quand acteur disparait,,,,ОÑтанавливать звуки при иÑчезновении актора, +Use original sound target handling,CMPTMNU_SOUNDTARGET,,,,Benutze originale Behandlung für das Sound-Ziel,Usar manejo de destino de sonido original,,Ciblage des sons selon algorithme original,,,,ÐžÑ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° иÑточников звука, +Scripted teleports don't trigger sector actions,CMPTMNU_TELEPORT,,,,Teleports in Skripten lösen keine Sektoraktionen aus,Telepuertos por script no activan acciones del sector,,Téléports par scripts n'activent pas le secteur,,,,Скрипт. телепорты не инициируют дейÑÑ‚Ð²Ð¸Ñ Ñекторов, +Non-blocking lines can be pushed,CMPTMNU_PUSHWINDOW,,,,Nicht-blockende Linien können angestoßen werden,Líneas sin bloquear pueden ser presionadas,,Lignes non-bloquantes sont non-poussables,,,,Ðеблокирующие линии могут быть отодвинуты, +Enable buggy CheckSwitchRange behavior,CMPTMNU_CHECKSWITCHRANGE,,,,Erlaube fehlerhaftes CheckSwitchRange Verhalten,Permitir comportamiento viejo de CheckSwitchRange,,Fonction CheckSwitchRange buggée,,,,, +Sound Options,SNDMNU_TITLE,,,,Soundeinstellungen,Opciones de sonido,,Options Sonores,,,,ÐаÑтройки звука, +Sounds volume,SNDMNU_SFXVOLUME,,,,Effektlautstärke,Volumen de sonido,,Volume des Sons,,,,ГромкоÑÑ‚ÑŒ звука,Јачина звука +Menu volume,SNDMNU_MENUVOLUME,,,,Menülautstärke,Volumen del menú,,Volume du Menu,,,,ГромкоÑÑ‚ÑŒ меню,Јачина менија +Music volume,SNDMNU_MUSICVOLUME,,,,Musiklautstärke,Volumen de la Música,,Volume Musique,,,,ГромкоÑÑ‚ÑŒ музыки,Јачина музике +MIDI device,SNDMNU_MIDIDEVICE,,,,MIDI-Gerät,Dispositivo MIDI,,Sortie MIDI,,,,MIDI проигрыватель,MIDI уређај +Sound in Background,SNDMNU_BACKGROUND,,,,Sound im Hintergrund,Sonido en segundo plano,,Son activé en arrière plan,,,,Звуки в фоне,Звуци у позадини +Underwater reverb,SNDMNU_UNDERWATERREVERB,,,,Unterwasserhall,Reverb. bajo el agua,,Reverbération sous l'eau,,,,Эффект под водой,Подводни одјек +Randomize pitches,SNDMNU_RANDOMIZEPITCHES,,,,Zufällige Tonhöhe,Tonos aleatorios,,Tons sonores aléatoires,,,,ИзменÑÑ‚ÑŒ выÑоту,Рандомизација тонова +Sound channels,SNDMNU_CHANNELS,,,,Soundkanäle,Canales de sonido,,Canaux sonores,,,,КоличеÑтво каналов,Звучни канали +Sound backend,SNDMNU_BACKEND,,,,Soundsystem,Sistema de sonido,,Traitement Son,,,,Ð—Ð²ÑƒÐºÐ¾Ð²Ð°Ñ ÑиÑтема,Звучни бекенд +OpenAL options,SNDMNU_OPENAL,,,,OpenAL Optionen,Opciones de OpenAL,,Options OpenAL,,,,ÐаÑтройки OpenAL,OpenAL опције +Restart sound,SNDMNU_RESTART,,,,Sound neu starten,Reiniciar sonido,,Redémarrer moteur sonore,,,,ПерезапуÑтить звук,Поново покрени звук +Advanced options,SNDMNU_ADVANCED,,,,Erweiterte Optionen,Opciones avanzadas,,Options avancées,,,,РаÑширенные наÑтройки,Ðапредне опције +Module replayer options,SNDMNU_MODREPLAYER,,,,Modul-Spieler-Optionen,Opc. reproductor de módulos,,Options lecteur de module,,,,Параметры воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹,Опције модулног риплејера +Midi player options,SNDMNU_MIDIPLAYER,,,,MIDI-Spieler-Optionen,Opc. de reproductor MIDI,,Option lecteur MIDI,,,,ÐаÑтройки MIDI-проигрывателÑ,MIDI плејер опције +OpenAL Options,OPENALMNU_TITLE,,,,OpenAL Optionen,Opciones de OpenAL,,Options OpenAL,,,,ÐаÑтройки OpenAL,OpenAL опције +Playback device,OPENALMNU_PLAYBACKDEVICE,,,,Wiedergabegerät,Dispositivo de reproducción,,Sortie sonore,,,,УÑтройÑтво воÑпроизведениÑ, +Enable EFX,OPENALMNU_ENABLEEFX,,,,EFX aktiv,Permitir EFX,,Activer EFX,,,,Включить EFX,Укључи EFX +Resampler,OPENALMNU_RESAMPLER,,,,,,,,,,,РеÑемплер,РеÑемплер +Advanced Sound Options,ADVSNDMNU_TITLE,,,,Erweiterte Soundoptionen,Opciones avanzadas de sonido,,Options Sonores Avancées,,,,РаÑширенные наÑтройки, +Sample rate,ADVSNDMNU_SAMPLERATE,,,,Samplerate,Frecuencia de muestreo,,Cadence de Sampling,,,,ЧаÑтота диÑкретизации,Фреквенција узорковања +HRTF,ADVSNDMNU_HRTF,,,,,,,,,,,, +OPL Synthesis,ADVSNDMNU_OPLSYNTHESIS,,,,OPL Synthese,Síntesis OPL,,Synthèse OPL,,,,Синтез OPL,OPL Ñинтеза +Number of emulated OPL chips,ADVSNDMNU_OPLNUMCHIPS,,,,Anzahl OPL Chips,Número de chips OPL emulados,,Puces OPL émulées,,,,КоличеÑтво Ñмулируемых OPL чипов,Број емулираних OPL чипа +Full MIDI stereo panning,ADVSNDMNU_OPLFULLPAN,,,,Echte MIDI-Stereoeffekte,Balance estéreo MIDI completo,,Latéralisation complète MIDI,,,,ÐŸÐ¾Ð»Ð½Ð°Ñ Ñтереопанорама Ð´Ð»Ñ MIDI,Пуно MIDI Ñтерео каналиÑање +OPL Emulator Core,ADVSNDMNU_OPLCORES,,,,OPL Emulatorkern,Núcleo de emulador OPL,,CÅ“ur émulateur OPL,,,,Ядро ÑмулÑции OPL,OPL језгро емулације +OPN2 Emulator Core,ADVSNDMNU_OPNCORES,,,,OPN2 Emulatorkern,Núcleo de emulador OPN2,,CÅ“ur émulateur OPN2,,,,Ядро ÑмулÑции OPN2,OPN2 језгро емулације +GUS Emulation,ADVSNDMNU_GUSEMULATION,,,,GUS Emulation,Emulación GUS,,Emulation GUS,,,,ЭмулÑÑ†Ð¸Ñ GUS,GUS емулација +GUS config file,ADVSNDMNU_GUSCONFIG,,,,GUS Konfigurationsdatei,Archivo de config. GUS,,Fichier Config. GUS,,,,Файл конфигурации Ð´Ð»Ñ GUS,GUS конфигурациона датотека +MIDI voices,ADVSNDMNU_MIDIVOICES,,,,MIDI Stimmen,Voces MIDI,,Voix MIDI,,,,MIDI-голоÑа,MIDI глаÑови +Read DMXGUS lumps,ADVSNDMNU_DMXGUS,,,,Lese DMXGUS,Leer archivos DMXGUS,,Lire fichiers DMXGUS,,,,Читать файлы DMXGUS,Читај DMXGUS лумпове +GUS memory size,ADVSNDMNU_GUSMEMSIZE,,,,GUS Speichergröße,Tamaño de memoria de GUS,,Taille mémoire GUS,,,,Размер памÑти GUS,GUS величина памћења +FluidSynth,ADVSNDMNU_FLUIDSYNTH,,,,,,,,,,,,FluidSynth +Patch set,ADVSNDMNU_FLUIDPATCHSET,,,,Patch-Set,Set de parche,,Banque de Sons,,,,Патч-набор,Печ Ñет +Gain,ADVSNDMNU_FLUIDGAIN,,,,Relative Lautstärke,Ganancia,,,,,,УÑиление,Појачање +Reverb,ADVSNDMNU_REVERB,,,,Hall,Reverberación,,Réverbération,,,,РеверберациÑ,Одјек +Reverb Level,ADVSNDMNU_REVERB_LEVEL,,,,Hallintensität,Nivel de Reverberación,,Niveau Réverb.,,,,Уровень реверберации,Ðиво одјека +Chorus,ADVSNDMNU_CHORUS,,,,,,,,,,,ХоруÑ, +Timidity++,ADVSNDMNU_TIMIDITY,,,,,,,,,,,, +ADLMidi,ADVSNDMNU_ADLMIDI,,,,,,,,,,,, +OPNMidi,ADVSNDMNU_OPNMIDI,,,,,,,,,,,, +Timidity config file,ADVSNDMNU_TIMIDITYCONFIG,,,,Timidity Konfigurationsdatei,Ruta al archivo config. Timidity,,Fichier de config. TiMidity,,,,Файл конфигурации Timidity,Timidity конфигурациона датотека +Relative volume,ADVSNDMNU_TIMIDITYVOLUME,,,,Relative Lautstärke,Volumen relativo,,Volume Relatif,,,,ОтноÑÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ,Релативна јачина +WildMidi,ADVSNDMNU_WILDMIDI,,,,,,,,,,,, +WildMidi config file,ADVSNDMNU_WILDMIDICONFIG,,,,WilfMidi Konfigurationsdatei,Archivo de config. WildMidi,,Fichier config. WildMidi,,,,Файл конфигурации WildMidi,WildMidi конфигурациона датотека +Select configuration,ADVSNDMNU_SELCONFIG,,,,Konfiguration wählen,Seleccionar configuración,,Sélectionner configuration,,,,Выбор конфигурации, +Global,ADVSNDMNU_GLOBAL,,,,,Global,,,,,,Общие, +Freeverb,ADVSNDMNU_FREEVERB,,,,,,,,,,,, +Global Freeverb,ADVSNDMNU_GLOBAL_FREEVERB,,,,Globales Freeverb,Freeverb Global,,Freeverb Global,,,,Глобальный Freeverb, +Advanced Resampling,ADVSNDMNU_ADVRESAMPLING,,,,Erweitertes Resampling,Resampleo Avanzado,,Resampling Avancé,,,,Продвинутый реÑемплинг, +OPL Bank,ADVSNDMNU_OPLBANK,,,,,Banco OPL,,Banque OPL,,,,, +OPL Emulator Core,ADVSNDMNU_ADLOPLCORES,,,,OPL Emulatorkern,Núcleos de Emulador OPL,,CÅ“ur Emulateur OPL,,,,, +Run emulator at PCM rate,ADVSNDMNU_RUNPCMRATE,,,,Emulator benutzt PCM Samplerate,Ejecutar emulador a velocidad PCM,,Emulateur utilise cadence PCM,,,,, +Number of emulated OPL chips,ADVSNDMNU_ADLNUMCHIPS,,,,Anzahl OPL Chips,Número de chips OPL emulados,,Puces OPL émulées,,,,, +Volume model,ADVSNDMNU_VLMODEL,,,,Lautstärkemodell,Modelo de Volumen,,Modèle de Volume,,,,, +Number of emulated OPN chips,ADVSNDMNU_OPNNUMCHIPS,,,,Anzahl OPN Chips,Número de chip OPN emulados,,Puces OPN émulées,,,,, +Use custom WOPL bank,ADVSNDMNU_ADLCUSTOMBANK,,,,Benutzerdefinierte WOPL Bank,Utilizar banco WOPL personalizado,,Utiliser Banque WOPL perso,,,,, +WOPL Bank file,ADVSNDMNU_OPLBANKFILE,,,,WOPL Bank-Datei,Archivo de banco WOPL,,Banque WOPL,,,,, +Use custom WOPN bank,ADVSNDMNU_OPNCUSTOMBANK,,,,Benutzerdefinierte WOPN Bank,Utilizar banco WOPN personalizado,,Utiliser Banque WOPL perso,,,,, +WOPN Bank file,ADVSNDMNU_OPNBANKFILE,,,,WOPN Bank-Datei,Archivo de banco WOPN,,Banque WOPL,,,,, +Auto (Use setup of bank),ADLVLMODEL_AUTO,,,,Auto (Benutze Einstelliung der Bank),Auto (Usar config. del banco),,Auto (Utiliser paramètre banque),,,,, +Generic,ADLVLMODEL_GENERIC,,,,Allgemein,Genérico,,Générique,,,,, +OPL Native,ADLVLMODEL_NATIVE,,,,OPL Nativ,Nativo OPL,,OPL Natif,,,,, +DMX,ADLVLMODEL_DMX,,,,,,,,,,,, +Apogee,ADLVLMODEL_APOGEE,,,,,,,,,,,, +Win9X-like,ADLVLMODEL_WIN9X,,,,Wie Windows 9X,Como Win9X,,Comme Win9x,,,,, +Module Replayer Options,MODMNU_TITLE,,,,Modul-Spieler-Optionen,Opciones de reproductor de módulos,,Options Lecteur de Module,,,,Параметры воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹, +Master Volume,MODMNU_MASTERVOLUME,,,,Grundlautstärke,Volumen maestro,,Volume maître,,,,ÐžÐ±Ñ‰Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ, +Quality,MODMNU_QUALITY,,,,Qualität,Calidad,,Qualité,,,,КачеÑтво, +Volume ramping,MODMNU_VOLUMERAMPING,,,,Lautstärkeverhalten,Aumento gradual de Volumen,,Rampe du volume,,,,, +Chip-o-matic,MODMNU_CHIPOMATIC,,,,,,,,,,,, +Video Mode,VIDMNU_TITLE,,,,Videomodus,Modos de video,,Mode Vidéo,,,,ÐаÑтройки видеорежима, +Render Mode,VIDMNU_RENDERMODE,,,,Rendermodus,Modo de Renderizado,,Mode de Rendu,,,,Режим рендеринга, +Fullscreen,VIDMNU_FULLSCREEN,,,,Vollbild,Pantalla completa,,Plein écran,,,,Полный Ñкран, +Retina/HiDPI support,VIDMNU_HIDPI,,,,Retina/HDPI-Unterstützung,Soporte para Retina/HiDPI,,Support Retina/HiDPI ,,,,Поддержка Retina/HiDPI, +Aspect ratio,VIDMNU_ASPECTRATIO,,,,Seitenverhältnis,Relación de aspecto,,Rapport D'Aspect,,,,Соотношение Ñторон, +Force aspect ratio,VIDMNU_FORCEASPECT,,,,Erzwinge Seitenverhältnis,Forzar relación de aspecto,,Forcer Rapport,,,,Принудительное Ñоот. Ñторон, +Forced ratio style,VIDMNU_CROPASPECT,,,,Modus für erzwungenes Seitenverhältnis,Relación de aspecto forzada,,Style de Ratio forcé,,,,Принудительный тип Ñоот., +Enable 5:4 aspect ratio,VIDMNU_5X4ASPECTRATIO,,,,Erlaube 5:4 Seitenverhältnis,Activar relación de aspecto 5:4,,Activer Rapport 5:4,,,,Включить Ñоотношение Ñторон 5:4, +Resolution scale,VIDMNU_SCALEMODE,,,,Skalierung,Escala de Resolución,,Echelle de Résolution,,,,МаÑштабирование, +Scale Factor,VIDMNU_SCALEFACTOR,,,,Skalierungsfaktor,Factor de Escala,,Facteur d'échelle,,,,Значение маÑштаба, +Use Linear Scaling (Fullscreen),VIDMNU_USELINEAR,,,,Lineare Skalierung (Vollbild),Usar Escalado Linear (Pant. Completa),,Mise à l'échelle Linéaire (Plein écran),,,,Линейное маÑшт. (полный Ñкран), +Custom Pixel Scaling,VIDMNU_CUSTOMRES,,,,Benutzerdefinierte Skalierung,Escalado de Pixel Personalizado,,Résolution Personalisée,,,,МаÑштаб. пикÑелов, +Custom Width,VIDMNU_CUSTOMX,,,,Benutzerdefinierte Breite,Ancho Personalizado,,Largeur Personalisée,,,,Польз. длина, +Custom Height,VIDMNU_CUSTOMY,,,,Benutzerdefinierte Höhe,Alto Personalizado,,Hauteur Personalisée,,,,Польз. выÑота, +Apply Changes (Windowed),VIDMNU_APPLYW,,,,Änderungen anwenden (Fenster),Aplicar Cambios (ventana),,Appliquer Changements (Fenêtre),,,,Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (оконный режим), +Apply Changes (Fullscreen),VIDMNU_APPLYFS,,,,Änderungen anwenden (Vollbild),Aplicar Cambios (Pant. Completa),,Appliquer Changements (Plein écran),,,,Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (полный Ñкран), +Choose Resolution Preset,VIDMNU_RESPRESET,,,,Auflösungsvoreinstellung,Seleccionar Preset de Resolución,,Choisir paramètre personalisé,,,,Выбор преÑета разрешениÑ, +Custom Resolution Presets,VIDMNU_RESPRESETTTL,,,,Benutzerdefinierte Auflösungsvoreinstellungen,Seleccionar Preset de Resoluciones,,Résolutions Personalisée,,,,ПользовательÑкие преÑеты, +Preset Resolution Modes,VIDMNU_RESPRESETHEAD,,,,Vordefinierte Auflösungsmodi,Modos de Preset de Resolución,,Choisir mode de Résolution,,,,ДоÑтупные разрешениÑ, +4:3 Aspect,VIDMNU_ASPECT43,,,,4:3 Seitenverhältnis,Aspecto 4:3,,Rapport 4:3,,,,, +5:4 Aspect,VIDMNU_ASPECT54,,,,5:4 Seitenverhältnis,Aspecto 5:4,,Rapport 5:4,,,,, +16:9 Aspect,VIDMNU_ASPECT169,,,,16:9 Seitenverhältnis,Aspecto 16:9,,Rapport 16:9,,,,, +16:10 Aspect,VIDMNU_ASPECT1610,,,,16.10 Seitenverhältnis,Aspecto 16:10,,Rapport 16:10,,,,, +Network Options,NETMNU_TITLE,,,,Netzwerkeinstellungen,Opciones de Red,,Options Réseau,,,,ÐаÑтройки Ñети, +Local options,NETMNU_LOCALOPTIONS,,,,Lokale Einstellungen,Opciones locales,,Options Locales,,,,Локальные наÑтройки, +Movement prediction,NETMNU_MOVEPREDICTION,,,,Bewegungsvorausberechnung,Predicción de Movimiento,,Prédiction de Mouvement,,,,ПредÑказание движениÑ, +Predict line actions,NETMNU_LINESPECIALPREDICTION,,,,Berechne Linienaktionen voraus,Predecir acciones de línea,,Prédiction des actions de ligne,,,,ПредÑказание дейÑтвий на уровне, +Prediction Lerp Scale,NETMNU_PREDICTIONLERPSCALE,,,,Vorberechnungs Lerp-Skalierung,Escala de interp. lineal de predicción,,Prédiction d'échelle LERP,,,,ПредÑказание маÑштаба лÑрпа, +Lerp Threshold,NETMNU_LERPTHRESHOLD,,,,Lerp-Schwellwert,Umbral de interp. lineal,,Limite LERP,,,,Порог лÑрпа, +Host options,NETMNU_HOSTOPTIONS,,,,Gastoptionen,Opciones de Host,,Options Hôte,,,,ÐаÑтройки хоÑта, +Extra Tics,NETMNU_EXTRATICS,,,,,Tics Extra,,Tics supplémentaires,,,,Дополнительные тики, +Latency balancing,NETMNU_TICBALANCE,,,,Latenzbalance,Balanceo de latencia,,Equilibrage de latence,,,,БаланÑировка задержки, +Enable controller support,JOYMNU_ENABLE,,,,Erlaube Controllerunterstützung,Activar soporte de mandos,,Activer support contrôleur,,,,Включить поддержку джойÑтика, +Enable DirectInput controllers,JOYMNU_DINPUT,,,,Erlaube DirectInput-Controller,Usa controles DirectInput,,Activer contrôleurs DirectInput,,,,Включить джойÑтики DirectInput, +Enable XInput controllers,JOYMNU_XINPUT,,,,Erlaube XInput-Controller,Usa controles XInput,,Activer contrôleurs XInput,,,,Включить джойÑтики XInput, +Enable raw PlayStation 2 adapters,JOYMNU_PS2,,,,Erlaube Playstation 2-Controller,Usa adaptadores de PlayStation 2,,Activer adaptateurs PS2 bruts,,,,ИÑпользовать адаптеры Playstation 2 напрÑмую, +No controllers detected,JOYMNU_NOCON,,,,Keine Controller gefunden,No hay mandos detectados,,Aucun Contrôleur détecté.,,,,ДжойÑтики не обнаружены, +Configure controllers:,JOYMNU_CONFIG,,,,Controller konfigurieren,Configurar controles:,,Configurer contrôleurs:,,,,ÐаÑтроить джойÑтик:, +Controller support must be,JOYMNU_DISABLED1,,,,Controllerunterstütung muss aktiviert sein,El soporte de mandos debe estar,,Le Support de contrôleur doit être activé,,,,ÐаÑтройка «включить поддержку джойÑтика», +enabled to detect any,JOYMNU_DISABLED2,,,,um welche zu finden,activado para detectar alguno,,avant de pouvoir en détecter un.,,,,"должна быть включена, чтобы выÑвить джойÑтик", +Invalid controller specified for menu,JOYMNU_INVALID,,,,Ungültiger Controller für Menü ausgewählt,Mando inválido especificado para el menú,,Contrôleur invalide spécifé dans le menu.,,,,ÐедопуÑтимый джойÑтик выбран Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ, +Overall sensitivity,JOYMNU_OVRSENS,,,,Allgemeine Empfindlichkeit,Sensibilidad general,,Sensibilité générale,,,,ÐžÐ±Ñ‰Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ, +Axis Configuration,JOYMNU_AXIS,,,,Achsenkonfiguration,Configuración del eje,,Configuration des axes,,,,ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñей, +Invert,JOYMNU_INVERT,,,,Invertieren,Invertir,,Inverser,,,,Инвертировать, +Dead zone,JOYMNU_DEADZONE,,,,Totzone,Zona muerta,,Zone neutre,,,,ÐœÑ‘Ñ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð°, +No configurable axes,JOYMNU_NOAXES,,,,Keine konfigurierbaren Achsen,No hay ejes configurables,,Aucun axe à configurer,,,,Ðет наÑтраиваемых оÑей, +Off,OPTVAL_OFF,,,,Aus,Desactivado,,,,,,Откл., +On,OPTVAL_ON,,,,An,Activado,,,,,,Вкл., +Auto,OPTVAL_AUTO,,,,,,,,,,,Ðвто, +Male,OPTVAL_MALE,,,,Männlich,Masculino,,Masculin,,,,МужÑкой, +Female,OPTVAL_FEMALE,,,,Weiblich,Femenino,,Féminin,,,,ЖенÑкий, +Neutral,OPTVAL_NEUTRAL,,,,Neutral,Neutro,,Neutre,,,,Ðейтральный, +Object,OPTVAL_OTHER,,,,Objekt,Objeto,,Objet,,,,Предмет, +Upper left,OPTVAL_UPPERLEFT,,,,Oben links,Sup. izquierda,,Supérieur gauche,,,,Вверху Ñлева, +Upper right,OPTVAL_UPPERRIGHT,,,,Oben rechts,Sup. derecha,,Supérieur droite,,,,Вверху Ñправа, +Lower left,OPTVAL_LOWERLEFT,,,,Unten links ,Inf. izquierda,,Inférieur gauche,,,,Внизу Ñлева, +Lower right,OPTVAL_LOWERRIGHT,,,,Unten rechts,Inf. derecha,,Inférieur droite,,,,Внизу Ñправа, +Touchscreen-like,OPTVAL_TOUCHSCREENLIKE,,,,Wie auf einem Touchscreen,Pant. táctil,,Style écran tactile,,,,Как ÑенÑорный Ñкран, +None,OPTVAL_NONE,,,,Keine,Ninguno,,Aucun,,,,Откл., +Turning,OPTVAL_TURNING,,,,Umdrehen,Girando,,Tourner,,,,Поворот, +Looking Up/Down,OPTVAL_LOOKINGUPDOWN,,,,Hoch/runterblicken,Mirando hacia Arriba/Abajo,,Vue haut/bas,,,,ВзглÑд вверх/вниз, +Moving Forward,OPTVAL_MOVINGFORWARD,,,,Vorwärtsbewegung,Avanzando,,Avancer,,,,Движение вперёд, +Strafing,OPTVAL_STRAFING,,,,Seitwärtsbewegung,Desplazándose,,Pas de côté,,,,Движение боком, +Moving Up/Down,OPTVAL_MOVINGUPDOWN,,,,Auf/abwärtsbewegung,Moviéndose hacia Arriba/Abajo,,Mouvement haut/bas,,,,Движение вверх/вниз, +Inverted,OPTVAL_INVERTED,,,,Invertiert,Invertido,,Inversé,,,,Инвертировано, +Not Inverted,OPTVAL_NOTINVERTED,,,,nicht invertiert,No invertido,,Non Inversé,,,,ПрÑмо, +Original,OPTVAL_ORIGINAL,,,,,,,Original,,,,Оригинальный, +Optimized,OPTVAL_OPTIMIZED,,,,Optimiert,Optimizado,,Optimisé,,,,Оптимизированный, +Classic (Faster),OPTVAL_CLASSIC,,,,Klassisch (schneller),Clásico (Más rápido),,Classique (+ Rapide),,,,КлаÑÑичеÑкий (БыÑтрее), +Precise,OPTVAL_PRECISE,,,,Genau,Preciso,,Précis,,,,Точный, +Normal,OPTVAL_NORMAL,,,,,,,,,,,Обычный, +Stretch,OPTVAL_STRETCH,,,,Strecken,Estrechado,Estrecho,Etirer,,,,РаÑÑ‚Ñнутый, +Capped,OPTVAL_CAPPED,,,,Limitiert,Limitado,,Limité,,,,Ограниченный, +Particles,OPTVAL_PARTICLES,,,,Partikel,Partículas,,Particules,,,,ЧаÑтицы, +Sprites,OPTVAL_SPRITES,,,,Sprites,,,,,,,Спрайты, +Sprites & Particles,OPTVAL_SPRITESPARTICLES,,,,Sprites und Partikel,Sprites y partículas,,Sprites & Particules,,,,Спрайты и чаÑтицы, +Melt,OPTVAL_MELT,,,,Verlauf,Derretir,,Fondu,,,,ТаÑние, +Burn,OPTVAL_BURN,,,,Einbrennen,Quemar,,Brûlure,,,,Жжение, +Crossfade,OPTVAL_CROSSFADE,,,,Ãœberblenden,Entrelazar,,Fondu en croix,,,,УвÑдание, +Only modified,OPTVAL_ONLYMODIFIED,,,,Nur modfizierte,Solo modificados,,Modifié seulement,,,,Только модифицированный, +Smooth,OPTVAL_SMOOTH,,,,Glatt,Fluido,,Lisse,,,,Плавно, +Translucent,OPTVAL_TRANSLUCENT,,,,Transparent,Translúcido,,Transparent,,,,Полупрозрачный, +Fuzz,OPTVAL_FUZZ,,,,Fuzz,Borroso,,Bruit Blanc,,,,Шумовой, +Shadow,OPTVAL_SHADOW,,,,Schatten,Sombra,,Ombre,,,,Теневой, +Items,OPTVAL_ITEMS,,,,Gegenstände,Objetos,,Objets,,,,Предметы, +Weapons,OPTVAL_WEAPONS,,,,Waffen,Armas,,Armes,,,,Оружие, +Both,OPTVAL_BOTH,,,,Beide,Ambos,,Les Deux,,,,Оба, +ZDoom,OPTVAL_ZDOOM,,,,,,,,,,,, +Strife,OPTVAL_STRIFE,,,,,,,,,,,, +Player,OPTVAL_PLAYER,,,,Spieler,Jugador,,Joueur,,,,Игрок, +Map,OPTVAL_MAP,,,,Level,Mapa,,Niveau,,,,Карта, +Scale to 640x400,OPTVAL_SCALETO640X400,,,,Skaliere auf 640x400,Escalar a 640x400,,Echelle 640x400,,,,МаÑштабировать до 640x400, +Pixel double,OPTVAL_PIXELDOUBLE,,,,Pixelverdopplung,Pixel doble,,,,,,Двойные пикÑели, +Pixel quadruple,OPTVAL_PIXELQUADRUPLE,,,,Pixelvervierfachung,Pixel cuádruple,,,,,,Четверные пикÑели, +Current weapon,OPTVAL_CURRENTWEAPON,,,,Aktuelle Waffe,Arma actual,,Arme actuelle,,,,Текущее оружие, +Available weapons,OPTVAL_AVAILABLEWEAPONS,,,,Verfügbare Waffen,Armas disponibles,,Armes Disponibles,,,,ДоÑтупное оружие, +All weapons,OPTVAL_ALLWEAPONS,,,,Alle Waffen,Todas las armas,,Toutes les armes,,,,Ð’Ñе оружие, +"Level, milliseconds",OPTVAL_LEVELMILLISECONDS,,,,"Level, Millisekunden","Nivel, milisegundos",,"Niveau, milisecondes",,,,"Уровень, миллиÑекунды", +"Level, seconds",OPTVAL_LEVELSECONDS,,,,"Level, Sekunden","Nivel, segundos",,"Niveau, secondes",,,,"Уровень, Ñекунды", +Level,OPTVAL_LEVEL,,,,Level,Nivel,,Niveau,,,,Уровень, +"Hub, seconds",OPTVAL_HUBSECONDS,,,,"Hub, Sekunden","Hub, segundos",,"Hub, secondes",,,,"Хаб, Ñекунды", +Hub,OPTVAL_HUB,,,,Hub,Hub,,Hub,,,,Хаб, +"Total, seconds",OPTVAL_TOTALSECONDS,,,,"Gesamt, Sekunden","Total, segundos",,"Total, secondes",,,,"Общее, Ñекунды", +Total,OPTVAL_TOTAL,,,,Gesamt,,,Total,,,,Общее, +"System, seconds",OPTVAL_SYSTEMSECONDS,,,,"System, Sekunden","Sistema, segundos",,"Système, secondes",,,,"СиÑтема, Ñекунды", +System,OPTVAL_SYSTEM,,,,System,Sistema,,Système,,,,СиÑтема, +Netgames only,OPTVAL_NETGAMESONLY,,,,Nur Netzwerkspiele,Sólo para juegos en red,,Parties en Ligne seulement,,,,Только Ñетевые игры, +Always,OPTVAL_ALWAYS,,,,Immer,Siempre,,Toujours,,,,Ð’Ñегда, +Image and Text,OPTVAL_AMMOIMAGETEXT,,,,Bild und Text,Imagen y texto,,Image et Texte,,,,Изобр. и текÑÑ‚, +Text and Image,OPTVAL_AMMOTEXTIMAGE,,,,Text und Bild,Texto e imagen,,Texte et Image,,,,ТекÑÑ‚ и изобр., +Scripts Only,OPTVAL_SCRIPTSONLY,,,,Nur Skripte,Sólo scripts,,Scripts seulement,,,,Только Ñкрипты, +Never,OPTVAL_NEVER,,,,Nie,Nunca,,Jamais,,,,Ðикогда, +All,OPTVAL_ALL,,,,Alle,Todos,,Tout,,,,Ð’Ñе, +Only last one,OPTVAL_ONLYLASTONE,,,,Nur das letzte,Sólo el ultimo,,Dernier seulement,,,,Только поÑледнее, +Custom,OPTVAL_CUSTOM,,,,Benutzerdefiniert,Personalizado,,Modifié,,,,ПользовательÑкие, +Traditional Doom,OPTVAL_TRADITIONALDOOM,,,,Doom traditionell,Doom tradicional,,Doom Traditionnel,,,,Цвета из Doom, +Traditional Strife,OPTVAL_TRADITIONALSTRIFE,,,,Strife traditionell,Strife tradicional,,Strife Traditionnel,,,,Цвета из Strife, +Traditional Raven,OPTVAL_TRADITIONALRAVEN,,,,Raven traditionell,Raven tradicional,,Raven Traditionnel,,,,Цвета из Raven, +Only when found,OPTVAL_ONLYWHENFOUND,,,,Nur wenn gefunden,Una vez encontrados,,Seulement découverts,,,,ПоÑле обнаружениÑ, +On for overlay only,OPTVAL_ONFOROVERLAYONLY,,,,Nur auf Overlay,Sólo para superpuesto,,On pour Surimpression,,,,Только прозрачный, +Overlay+Normal,OPTVAL_OVERLAYNORMAL,,,,Overlay+Normal,Superpuesto+Normal,,Surimpression+Normal,,,,Прозрач. + обыч., +Overlay Only,OPTVAL_OVERLAYONLY,,,,Nur Overlay,Sólo superpuesto,,Surimpression seulement,,,,Только прозрачный, +Not for hubs,OPTVAL_NOTFORHUBS,,,,Nicht für Hubs,No para hubs,,Pas pour les hubs,,,,Кроме хабов, +Front,OPTVAL_FRONT,,,,Frontalansicht,Frontal,,Devant,,,,Перед, +Animated,OPTVAL_ANIMATED,,,,Animiert,Animado,,Animés,,,,Ðнимированные, +Rotated,OPTVAL_ROTATED,,,,Rotiert,Rotado,,Tournés,,,,Повёрнутые, +Map defined colors only,OPTVAL_MAPDEFINEDCOLORSONLY,,,Map defined colours only,Nur Leveldefinierte Farben,Colores definidos por el usuario,,Couleurs définies carte seul.,,,,Только определённые картой цвета, +All except doors,OPTVAL_NODOORS,,,,Alle außer Türen,Todo excepto puertas,,Tout sauf portes,,,,Кроме дверей, +Double,OPTVAL_DOUBLE,,,,Doppel,Doble,,,,,,Двойной, +Triple,OPTVAL_TRIPLE,,,,Dreifach,,,,,,,Тройной, +Quadruple,OPTVAL_QUADRUPLE,,,,Vierfach,Cuádruple,,,,,,Четверной, +Item Pickup,OPTVAL_ITEMPICKUP,,,,Gegenstand genommen,Recogida de objetos,,Objets Ramassés,,,,Подбор, +Obituaries,OPTVAL_OBITUARIES,,,,Todesanzeige,Obituarios,,Avis de décès,,,,Ðекрологи, +Critical Messages,OPTVAL_CRITICALMESSAGES,,,,Kritische Meldungen,Mensajes críticos,,Messages Critiques,,,,Важные ÑообщениÑ, +Never friends,OPTVAL_NEVERFRIENDS,,,,Keine Freunde,Nunca amigos,,Jamais les Amis,,,,Ðе по Ñоюзникам, +Only monsters,OPTVAL_ONLYMONSTERS,,,,Nur Monster,Solo monstruos,,Monstres Seulement,,,,Ð”Ð»Ñ Ð¼Ð¾Ð½Ñтров, +Hexen,OPTVAL_HEXEN,,,,,,,Hexen,,,,, +Old,OPTVAL_OLD,,,,Alt,Viejo,,Ancien,,,,Старый, +Default,OPTVAL_DEFAULT,,,,Standard,Por defecto,,Défaut,,,,По умол., +Doom,OPTVAL_DOOM,,,,,,,,,,,, +Doom (strict),OPTVAL_DOOMSTRICT,,,,Doom (strikt),Doom (estricto),,,,,,Doom (Ñтрогий), +Boom,OPTVAL_BOOM,,,,,,,,,,,, +Boom (strict),OPTVAL_BOOMSTRICT,,,,Boom (strikt),Boom (estricto),,,,,,Boom (Ñтрогий), +MBF,OPTVAL_MBF,,,,,,,,,,,, +ZDoom 2.0.63,OPTVAL_ZDOOM2063,,,,,,,,,,,, +4000 Hz,OPTVAL_4000HZ,,,,,,,,,,,4000 Гц, +8000 Hz,OPTVAL_8000HZ,,,,,,,,,,,8000 Гц, +11025 Hz,OPTVAL_11025HZ,,,,,,,,,,,11025 Гц, +22050 Hz,OPTVAL_22050HZ,,,,,,,,,,,22050 Гц, +32000 Hz,OPTVAL_32000HZ,,,,,,,,,,,32000 Гц, +44100 Hz,OPTVAL_44100HZ,,,,,,,,,,,44100 Гц, +48000 Hz,OPTVAL_48000HZ,,,,,,,,,,,48000 Гц, +64 samples,OPTVAL_64SAMPLES,,,,64 Samples,64 Muestras,,,,,,64 Ñемпла, +128 samples,OPTVAL_128SAMPLES,,,,128 Samples,128 Muestras,,,,,,128 Ñемплов, +256 samples,OPTVAL_256SAMPLES,,,,256 Samples,256 Muestras,,,,,,256 Ñемплов, +512 samples,OPTVAL_512SAMPLES,,,,512 Samples,512 Muestras,,,,,,512 Ñемплов, +1024 samples,OPTVAL_1024SAMPLES,,,,1024 Samples,1024 Muestras,,,,,,1024 Ñемпла, +2048 samples,OPTVAL_2048SAMPLES,,,,2048 Samples,2048 Muestras,,,,,,2048 Ñемплов, +4096 samples,OPTVAL_4096SAMPLES,,,,4096 Samples,4096 Muestras,,,,,,4096 Ñемплов, +Unlimited,OPTVAL_UNLIMITED,,,,Unlimitiert,Ilimitado,,Illimité,,,,Без ограничений, +256K,OPTVAL_256K,,,,,,,,,,,256К, +512K,OPTVAL_512K,,,,,,,,,,,512К, +768K,OPTVAL_768K,,,,,,,,,,,768К, +1024K,OPTVAL_1024K,,,,,,,,,,,1024К, +MAME OPL2,OPTVAL_MAMEOPL2,,,,,,,,,,,, +MAME YM2612,OPTVAL_MAMEOPN2,,,,,,,,,,,, +DOSBox OPL3,OPTVAL_DOSBOXOPL3,,,,,,,,,,,, +Java OPL3,OPTVAL_JAVAOPL3,,,,,,,,,,,, +Nuked OPL3,OPTVAL_NUKEDOPL3,,,,,,,,,,,, +Nuked OPL3 v1.7.4,OPTVAL_NUKEDOPL3174,,,,,,,,,,,, +Nuked OPN2,OPTVAL_NUKEDOPN2,,,,,,,,,,,, +GENS YM2612,OPTVAL_GENSOPN2,,,,,,,,,,,, +Sound System,OPTVAL_SOUNDSYSTEM,,,,,Sistema de sonido,,Système Sonore,,,,ÐудиоÑиÑтема, +foo_dumb,OPTVAL_FOO_DUMB,,,,,,,,,,,, +Aliasing,OPTVAL_ALIASING,,,,,,,,,,,ÐлиаÑинг, +Linear,OPTVAL_LINEAR_1,,"This setting is duplicated threefold in order to allow for different grammatical gender endings in the Russian language (and any other language that depends on a grammatical gender system). In English, due to the lack of a grammatical gender system, all three option values are the same. + +— Undead",,,Lineal,,Linéaire,,,,Линейное, +Linear,OPTVAL_LINEAR_2,,,,,Lineal,,Linéaire,,,,ЛинейнаÑ, +Linear,OPTVAL_LINEAR_3,,,,,Lineal,,Linéaire,,,,Линейный, +Nearest,OPTVAL_NEAREST,,,,Nächster Nachbar,Cercano,,Nearest,,,,Ближайший, +PCF (Low),OPTVAL_PCF_LOW,,,,PCF (niedrig),PCF (Bajo),,PCF (Low),,,,PCF (Ðизкий), +PCF (Medium),OPTVAL_PCF_MEDIUM,,,,PCF (mittel),PCF (Medio),,PCF (Medium),,,,PCF (Средний), +PCF (High),OPTVAL_PCF_HIGH,,,,PCF (hoch),PCF (Alto),,PCF (High),,,,PCF (Ð’Ñ‹Ñокий), +Cubic,OPTVAL_CUBIC,,,,Kubisch,Cúbico,,Cubique,,,,КубичеÑкое, +Band-limited step,OPTVAL_BLEP,,,,Bandbegrenzte Schritte,Paso limitado por banda,,Step limité par bande,,,,, +Linear (Slower),OPTVAL_LINEARSLOW,,,,Linear (langsamer),Lineal (más lento),,Linéaire (Lent),,,,Линейное (Медленнее), +Band-limited linear,OPTVAL_BLAM,,,,Bandbegrenzt linear,Lineal limitado por banda,,Linéaire limité par bande,,,,, +Cubic (Slower),OPTVAL_CUBICSLOW,,,,Kubisch (langsamer),Cúbico (más lento),,Cubique (Lent),,,,КубичеÑкое (Медленнее), +Sinc,OPTVAL_SINC,,,,,Seno cardinal,,,,,,Вход, +Note on/off only,OPTVAL_NOTEONOFFONLY,,,,Nur für Note an/aus ,Sólo notas de Activ./Desact.,,Note on/off seulement,,,,, +Full ramping,OPTVAL_FULLRAMPING,,,,,Aumento completo,,Rampe complète,,,,, +All unacknowledged,OPTVAL_ALLUNACKNOWLEDGED,,,,Alle unbestätigten,Todos no reconocidos,,Tout non-acknowledged,,,,, +Errors,OPTVAL_ERRORS,,,,Fehler,Errores,,Erreurs,,,,Ошибки, +Warnings,OPTVAL_WARNINGS,,,,Warnungen,Advertencias,,Avertissements,,,,ПредупреждениÑ, +Notifications,OPTVAL_NOTIFICATIONS,,,,Benachrichtigungen,Notificaciones,,,,,,УведомлениÑ, +Everything,OPTVAL_EVERYTHING,,,,Alles,Todo,,Tout,,,,Ð’Ñе, +OpenGL-Accelerated,OPTVAL_HWPOLY,,,,OpenGL hardwarebeschleunigt,Acelerado por OpenGL,,Accéléré par OpenGL,,,,Ðппаратный (OpenGL), +Doom Software Renderer,OPTVAL_SWDOOM,,,,,Renderizado por Software de Doom,,Rendu Software Doom,,,,Программный, +True Color SW Renderer,OPTVAL_SWDOOMTC,,,,,Renderizado SW Color Verdadero,Renderizado SW True Color,Rendu Software Couleurs Réeles,,,,Полноцветный програмный, +Softpoly Renderer,OPTVAL_SWPOLY,,,,,Renderizado Softpoly,,Rendu Softpoly,,,,Полирендер, +True Color Softpoly,OPTVAL_SWPOLYTC,,,,,Softpoly Color Verdadero,Softpoly True Color,Softpoly Couleurs Réeles,,,,Полноцветный полирендер, +High-Performance,OPTVAL_DEDICATED,,,,Volle Leistung,Alto rendimiento,,Hautes Performances,,,,Ð’Ñ‹ÑÐ¾ÐºÐ°Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ÑÑ‚ÑŒ, +Power-Saving,OPTVAL_INTEGRATED,,,,energiesparend,Ahorro de energía,,Economie d'Energie,,,,ЭнергоÑбережение, +Vanilla,OPTVAL_VANILLA,,,,,,,,,,,Ванильный, +ZDoom (Forced),OPTVAL_VTFZDOOM,,,,ZDoom (erzwungen),Zdoom (Forzado),,ZDoom (Forcé),,,,ZDoom (ФорÑирована), +Vanilla (Forced),OPTVAL_VTFVANILLA,,,,Vanilla (erzwungen),Vanilla (Forzado),,Vanilla (Forcé),,,,Vanilla (ФорÑирована), +Auto (ZDoom Preferred),OPTVAL_VTAZDOOM,,,,Auto (ZDoom bevorzugt),Auto (ZDoom preferido),,Auto (ZDoom Préféré),,,,Auto (Предпочитать ZDoom), +Auto (Vanilla Preferred),OPTVAL_VTAVANILLA,,,,Auto (Vanilla bevorzugt),Auto (Vanilla preferido),,Auto (Vanilla Préféré),,,,Auto (Предпочитать Preferred), +Scaled (Nearest),OPTVAL_SCALENEAREST,,,,Skaliert (nächster Nachbar),Escalado (Cercano),,Mis à l'échelle (Proche Voisin),,,,МаÑштаб. (Ближайшее), +Scaled (Linear),OPTVAL_SCALELINEAR,,,,Skaliert(linear),Escalado (Lineal),,Mis à l'échelle (Linéaire),,,,МаÑштаб. (Линейное), +Letterbox,OPTVAL_LETTERBOX,,,,,,,,,,,Экранное каше, +Small,OPTVAL_SMALL,,,,Klein,Pequeño,,Petit,,,,, +Large,OPTVAL_LARGE,,,,Groß,Grande,,Grand,,,,, +Console,OPTVAL_CONSOLE,,,,Konsole,Consola,,Console,,,,, +\cabrick,C_BRICK,,,,\caziegelrot,\caladrillo,,\cabrique,,,,\caКирпичный, +\cbtan,C_TAN,,,,\cbhellbraun,\cbbeis,\cbtostado,\cbbeige,,,,\cbБежевый, +\ccgray,C_GRAY,,,\ccgrey,\ccgrau,\ccgris,,\ccgris,,,,\ccСерый, +\cdgreen,C_GREEN,,,,\cdgrün,\cdverde,,\cdvert,,,,\cdЗелёный, +\cebrown,C_BROWN,,,,\cebraun,\cemarrón,\cecafé,\cebrun,,,,\ceКоричневый, +\cfgold,C_GOLD,,,,,\cfdorado,,\cfor,,,,\cfЗолотой, +\cgred,C_RED,,,,\cgrot,\cgrojo,,\cgrouge,,,,\cgКраÑный, +\chblue,C_BLUE,,,,\chblau,\chazul,,\chbleu,,,,\chСиний, +\ciorange,C_ORANGE,,,,,\cinaranja,,,,,,\ciОранжевый, +\cj0white,C_WHITE,,,,\cjweiß,\cjblanco,,\cjblanc,,,,\cjБелый, +\ckyellow,C_YELLOW,,,,\ckgelb,\ckamarillo,,\ckjaune,,,,\ckЖёлтый, +\cldefault,C_DEFAULT,,,,\clstandard,\clpor defecto,,\cldéfaut,,,,\clПо умол., +\cmblack,C_BLACK,,,,\cmschwarz,\cmnegro,,\cmnoir,,,,\cmЧерный, +\cnlight blue,C_LIGHTBLUE,,,,\cnhellblau,\cnazul claro,,\cnbleu clair,,,,\cnГолубой, +\cocream,C_CREAM,,,,\cocremefarben,\cocrema,,\cocrème,,,,\coКремовый, +\cpolive,C_OLIVE,,,,\cpoliv,\cpoliva,,\cpolive,,,,\cpОливковый, +\cqdark green,C_DARKGREEN,,,,\cqdunkelgrün,\cqverde oscuro,,\cqvert sombre,,,,\cqТёмно-зелёный, +\crdark red,C_DARKRED,,,,\crdunkelrot,\crrojo oscuro,,\crrouge sombre,,,,\crТёмно-краÑный, +\csdark brown,C_DARKBROWN,,,,\csdunkelbraun,\csmarrón oscuro,\cscafé oscuro,\csbrun sombre,,,,\csТёмно-коричневый, +\ctpurple,C_PURPLE,,,,\ctlila,\ctmorado,,\ctviolet,,,,\ctФиолетовый, +\cudark gray,C_DARKGRAY,,,\cudark grey,\cudunkelgrau,\cugris oscuro,,\cugris sombre,,,,\cuТёмно-Ñерый, +\cvcyan,C_CYAN,,,,\cvtürkis,\cvcián,,\cvcyan,,,,\cvСине-зелёный, +\cwice,C_ICE,,,,\cweis,\cwhielo,,\cwglace,,,,\cwЛедÑной, +\cxfire,C_FIRE,,,,\cxfeuer,\cxfuego,,\cxfeu,,,,\cxОгненный, +\cysapphire,C_SAPPHIRE,,,,\cysaphirblau,\cyzafiro,,\cysaphir,,,,\cyСапфировый, +\czteal,C_TEAL,,,,\czblaugrün,\czturquesa,,\czturquoise,,,,\czМорÑкой, +Simple arrow,OPTSTR_SIMPLEARROW,,,,Einfacher Pfeil,Flecha simple,,Flèche simple,,,,Стрелка, +Heretic,OPTSTR_HERETIC,,,,,,,,,,,, +Chex,OPTSTR_CHEX,,,,,,,,,,,, +System cursor,OPTSTR_SYSTEMCURSOR,,,,Systemcursor,Cursor del sistema,,Curseur Système,,,,СиÑтёмный курÑор, +No Sound,OPTSTR_NOSOUND,,,,Kein Sound,Sin sonido,,Pas de son,,,,Без звука, +Auto,OPTSTR_AUTO,,,,,Automático,,,,,,Ðвто, +Mono,OPTSTR_MONO,,,,,,,,,,,Моно, +Stereo,OPTSTR_STEREO,,,,,Estereo,,Stéréo,,,,Стерео, +Dolby Pro Logic Decoder,OPTSTR_PROLOGIC,,,,,,,,,,,Декодер Dolby Pro Logic, +Quad,OPTSTR_QUAD,,,,,,,,,,,ЧетырёхмеÑтный, +5 speakers,OPTSTR_SURROUND,,,,5 Lautsprecher,5 altavoces,5 Bocinas,5 enceintes,,,,5 динамиков, +5.1 speakers,OPTSTR_5POINT1,,,,5.1 Lautsprecher,Altavoces 5.1,Bocinas 5.1,Enceintes 5.1,,,,Динамики 5.1, +7.1 speakers,OPTSTR_7POINT1,,,,7.1 Lautsprecher,Altavoces 7.1,Bocinas 7.1,Enceintes 7.1,,,,Динамики 7.1, +No interpolation,OPTSTR_NOINTERPOLATION,,,,Keine Interpolation,Sin interpolación,,Pas d'interpolation,,,,Без интерполÑции, +Spline,OPTSTR_SPLINE,,,,,,,,,,,Сплайн, +OpenAL,OPTSTR_OPENAL,,,,,,,,,,,, +OpenGL Renderer,DSPLYMNU_GLOPT,,,,,Renderizado OpenGL,,Moteur de Rendu OpenGL,,,,Рендерер OpenGL, +Software Renderer,DSPLYMNU_SWOPT,,,,,Renderizado por Software,,Moteur de Rendu Software,,,,Программный рендерер, +Gamma correction,DSPLYMNU_GAMMA,,,,Gammakorrektur,Corrección gamma,,Correction Gamma,,,,Гамма-коррекциÑ, +Contrast,DSPLYMNU_CONTRAST,,,,Kontrast,Contraste,,Contraste,,,,КонтраÑÑ‚, +Saturation,DSPLYMNU_SATURATION,,,,Sättigung,Saturación,,,,,,ÐаÑыщенноÑÑ‚ÑŒ, +OpenGL Options,GLMNU_TITLE,,,,OpenGL Optionen,Opciones de OpenGL,,Options OpenGL,,,,ÐаÑтройки OpenGL, +Dynamic Light Options,GLMNU_DYNLIGHT,,,,Dynamisches-Licht-Optionen,Opc. de luz dinámica,,Options Lumières Dynamiques,,,,ДинамичеÑкое оÑвещение, +Texture Options,GLMNU_TEXOPT,,,,Texturoptionen,Opc. de texturas,,Options Textures,,,,ÐаÑтройки текÑтур, +Preferences,GLMNU_PREFS,,,,Einstellungen,Preferencias,,Préférences,,,,ПредпочтениÑ, +Texture Options,GLTEXMNU_TITLE,,,,Texturoptionen,Opciones de texturas,,Options Textures,,,,ÐаÑтройки текÑтур, +Textures enabled,GLTEXMNU_TEXENABLED,,,,Texturen an,Texturas activadas,,Textures activées,,,,Вклюить текÑтуры, +Texture Filter mode,GLTEXMNU_TEXFILTER,,,,Texturfiltermodus,Modo de filtro de texturas,,Mode de Filtrage Texture,,,,Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚ÐµÐºÑтур, +Anisotropic filter,GLTEXMNU_ANISOTROPIC,,,,Anisotropische Filterung,Filtro anisotrópico,,Filtre Anisotropique,,,,ÐÐ½Ð¸Ð·Ð¾Ñ‚Ñ€Ð¾Ð¿Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ, +Texture Format,GLTEXMNU_TEXFORMAT,,,,Texturformat,Formato de textura,,Format Texture,,,,Формат текÑтур, +Enable hires textures,GLTEXMNU_ENABLEHIRES,,,,Hochauflösende Texturen an,Activar texturas de alta resolución,,Activer Textures haute résolution,,,,ТекÑтуры Ñ Ð²Ñ‹Ñоким разрешением, +High Quality Resize mode,GLTEXMNU_HQRESIZE,,,,Texturskalierungsmodus,Modo de ajuste de alta calidad,,Mise à l'échelle haute résolution,,,,МаÑштабирование текÑтур, +High Quality Resize multiplier,GLTEXMNU_HQRESIZEMULT,,,,Texturskaluerungsfaktor,Multiplicador de ajuste de alta calidad,,Multiplicateur de mise à l'échelle,,,,Множитель маÑштабированиÑ, +This mode requires %d times more video memory,GLTEXMNU_HQRESIZEWARN,,,,Dieser Modus benötigt das %d-fache an Videospeicher,Este modo requiere %d veces más memoria de vídeo,,Ce mode nécessite %d fois de mémoire vidéo,,,,Потребует в %d раз больше видеопамÑти, +Resize textures,GLTEXMNU_RESIZETEX,,,,Texturen skalieren,Ajustar texturas,,Mise à l'échelle textures,,,,МаÑштабирование текÑтур, +Resize sprites,GLTEXMNU_RESIZESPR,,,,Sprites skalieren,Ajustar sprites,,Mise à l'échelle sprites,,,,МаÑштабирование Ñпрайтов, +Resize fonts,GLTEXMNU_RESIZEFNT,,,,Zeichensätze skalieren,Ajustar fuentes,,Mise à l'échelle texte,,,,МаÑштабирование шрифтов, +Precache GL textures,GLTEXMNU_PRECACHETEX,,,,GL Texturen zwischenspeichern,Precaché de texturas GL,,Mise en cache des textures,,,,КÑшировать GL-текÑтуры, +Trim sprite edges,GLTEXMNU_TRIMSPREDGE,,,,Leerraum in Sprites wegschneiden,Recortar líneas de sprite,,Nettoyer le bord des sprites,,,,Обрезание краёв Ñпрайтов, +Sort draw lists by texture,GLTEXMNU_SORTDRAWLIST,,,,Renderlisten nach Textur sortieren,Ordenar tablas por textura,,Ordonner liste de rendu par texture,,,,Сортировать ÑпиÑки текÑтур, +Dynamic Lights,GLLIGHTMNU_TITLE,,,,Dynamische Lichter,Luces dinámicas,,Lumières Dynamiques,,,,ДинамичеÑкое оÑвещение, +Dynamic Lights (OpenGL),GLLIGHTMNU_LIGHTSENABLED,,,,Dynamische Lichter (OpenGL),Luces dinámicas (OpenGL),,Lumières Dynamiques (OpenGL),,,,ДинамичеÑкое оÑвещение (OpenGL), +Enable light definitions,GLLIGHTMNU_LIGHTDEFS,,,,Lichtdefinitionen an,Activar definiciones de luz,,Activer les définitions GLDEFS,,,,Включить Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñвета, +Lights affect sprites,GLLIGHTMNU_LIGHTSPRITES,,,,Sprites werden beleuchtet,Las luces afectan a los sprites,,Lumières affectent les sprites,,,,ОÑвещение Ñпрайтов, +Lights affect particles,GLLIGHTMNU_LIGHTPARTICLES,,,,Partikel werden beleuchtet,Las luces afectan a las partículas,,Lumières affectent les particules,,,,ОÑвещение чаÑтиц, +Light shadowmaps,GLLIGHTMNU_LIGHTSHADOWMAP,,,,Shadowmaps für Lichter,Mapeo de sombra de Luz,,Shadowmaps,,,,Свет на теневых картах, +Shadowmap quality,GLLIGHTMNU_LIGHTSHADOWMAPQUALITY,,,,Shadowmap Qualität,Calidad de Mapeo de Sombrad,,Qualité Shadowmap,,,,КачеÑтво теневых карт, +Shadowmap filter,GLLIGHTMNU_LIGHTSHADOWMAPFILTER,,,,Shadowmap Filter,Filtro de Mapeo de Sombras,,Filtre de Shadowmaps,,,,Фильтр теневых карт, +OpenGL Preferences,GLPREFMNU_TITLE,,,,OpenGL Einstellungen,Preferencias de OpenGL,,Préférences OpenGL,,,,ÐаÑтройки OpenGL, +Sector light mode,GLPREFMNU_SECLIGHTMODE,,,,Sektorlichtmodus,Modo de luz de sector,,Mode de lumière Secteur,,,,Режим оÑÐ²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñекторов, +Fog mode,GLPREFMNU_FOGMODE,,,,Nebelmodus,Modo de niebla,,Mode du broullard,,,,Режим тумана, +Fog forces fullbright,GLPREFMNU_FOGFORCEFULLBRIGHT,,,,Nebel erzwingt volle Helligkeit,Forzar brillo completo en niebla,,Brouillard force fullbright,,,,Туман увеличивает ÑркоÑÑ‚ÑŒ, +Weapon light strength,GLPREFMNU_WPNLIGHTSTR,,,,Waffenlichtstärke,Intensidad de luz de las armas,,Intensité lumineuse des armes,,,,ИнтенÑивноÑÑ‚ÑŒ вÑпышек оружиÑ, +Environment map on mirrors,GLPREFMNU_ENVIRONMENTMAPMIRROR,,,,Lichteffekt auf Spiegeln,Mapa de entorno en espejos,,Mappage environment sur les miroirs,,,,Карта Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð½Ð° зеркалах, +Enhanced night vision mode,GLPREFMNU_ENV,,,,Verbesserter Nachtsichtmodus,Modo de visión nocturna mejorado,,Mode de vision nocture amélioré,,,,РаÑширенный режим ночного видениÑ, +ENV shows stealth monsters,GLPREFMNU_ENVSTEALTH,,,,Nachtsichtmodus zeigt Stealth-Monster,ENV muestra enemigos sigilosos,,VNA affiche monstres invisibles,,,,ПÐÐ’ показывает Ñкрытых монÑтров, +Adjust sprite clipping,GLPREFMNU_SPRCLIP,,,,Sprite Clipping,Ajustar recortado de sprites,,Adjusted le clipping des sprites,,,,ÐаÑтроить обрезку Ñпрайтов, +Smooth sprite edges,GLPREFMNU_SPRBLEND,,,,Glätte Spritekanten,Suavizar bordes de sprites,,Adoucir bords des sprites,,,,Размытие краёв Ñпрайтов, +Fuzz Style,GLPREFMNU_FUZZSTYLE,,,,,Estilo de difuminación,,Style de bruit blanc,,,,Тип шума, +Sprite billboard,GLPREFMNU_SPRBILLBOARD,,,,,Alineado de sprites,,Etalage des sprites,,,,Поворот Ñпрайтов, +Sprites face camera,GLPREFMNU_SPRBILLFACECAMERA,,,,Sprites zur Kamera ausrichten,Los sprites miran a la cámara,,Sprites font face à la caméra,,,,Спрайты направлены к камере, +Particle style,GLPREFMNU_PARTICLESTYLE,,,,Partikelstil,Estilo de partículas,,Style de particules,,,,Тип чаÑтиц, +Rendering quality,GLPREFMNU_RENDERQUALITY,,,,Renderqualität,Calidad de Renderizado,,Qualité du rendu,,,,КачеÑтво рендеринга, +Menu Blur,GLPREFMNU_MENUBLUR,,,,Menüunschärfe,Difuminación de Menú,,Flou menu,,,,Размытие фона меню, +Stereo 3D VR,GLPREFMNU_VRMODE,,,,,Modo Stereo 3D VR,,3D VR Stéréo,,,,VR режим, +Enable Quad Stereo,GLPREFMNU_VRQUADSTEREO,,,,Quad Stereo aktivieren,Activar Quad Stereo,,Activer Quad Stereo,,,,4-канальный звук, +Multisample,GLPREFMNU_MULTISAMPLE,,,,,,,,,,,МультиÑÑмплинг, +Tonemap Mode,GLPREFMNU_TONEMAP,,,,Tonemap Modus,Modo de mapa de tonos,,Mode Tonemap,,,,Режим тоун-мÑппинга, +Bloom effect,GLPREFMNU_BLOOM,,,,Bloom Effekt,Efecto Bloom,,Effet surbrillance,,,,Режим блум, +Lens distortion effect,GLPREFMNU_LENS,,,,Optischer Verzerrungseffekt,Efecto de distorsión de lente,,Effet distorsion de lentille,,,,ИÑкажение линзы, +Ambient occlusion quality,GLPREFMNU_SSAO,,,,Ambient Occlusion Qualität,Calidad de oclusión ambiental,,Qualité Occlusion Ambiente,,,,КачеÑтво ambient occlusion, +Portals with AO,GLPREFMNU_SSAO_PORTALS,,,,Portale mit AO,Portales con OA,,OA pour les portails,,,,"Порталы Ñ ambient occlusion +", +FXAA Quality,GLPREFMNU_FXAA,,,,FXAA Qualität,Calidad FXAA,,Qualité FXAA,,,,КачеÑтво FXAA, +Dither output,GLPREFMNU_DITHER,,,,,Dither de salida,,Dithering,,,,Дизеринг, +Tonemap Palette Order,GLPREFMNU_PALTONEMAPORDER,,,,,Orden de la paleta en mapa de tonos,,Ordre des palettes tonemap,,,,ПорÑдок палитры тоун-мÑпа, +Tonemap Palette Exponent,GLPREFMNU_PALTONEMAPPOWER,,,,,Exponente paleta en mapa de tonos,,Exponent des palettes tonemap,,,,ЭкÑпонента палитры тоун-мÑпа, +Banded SW Lightmode,GLPREFMNU_SWLMBANDED,,,,,Modo de luz por bandas de SW,,Lumière bandées en Software,,,,, +Distance Between Your Eyes,GLPREFMNU_VRIPD,,,,Abstand zwischen den Augen,Distancia entre tus Ojos,,Distance entre vos yeux,,,,РаÑÑтоÑние между глазами, +Distance From Your Screen,GLPREFMNU_VRSCREENDIST,,,,Abstand vom Bildschirm,Distancia desde tú Pantalla,,Distance entre vous et l'écran,,,,РаÑÑтоÑние от Ñкрана, +Smart,OPTVAL_SMART,,,,,Inteligente,,Intelligent,,,,Умный, +Smarter,OPTVAL_SMARTER,,,,,Más inteligente,,+ Intelligent,,,,Умнее, +Infrared only,OPTVAL_INFRAREDONLY,,,,Nur Infrarot,Solo infrarrojo,,Vis. Noct. Seulement,,,,Только инфракраÑный, +Infrared and torch,OPTVAL_INFRAREDANDTORCH,,,,Infrarot und Fackel,Infrarrojo y antorcha,,Iis Noct. & Torche,,,,ИнфракраÑный и факел, +Any fixed colormap,OPTVAL_ANYFIXEDCOLORMAP,,,Any fixed colourmap,Alle Lichteffekte,Cualquier mapa de color fijo,,N'importe quelle colormap,,,,Ð›ÑŽÐ±Ð°Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ñ†Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°, +None (nearest mipmap),OPTVAL_NONENEARESTMIPMAP,,,,Aus (nächste Mipmap),Ninguno (Mipmap cercano),,Aucun (mipmap proche voisin),,,,Ðет (Ближайший мипмап), +None (linear mipmap),OPTVAL_NONELINEARMIPMAP,,,,Aus (lineare Mipmap),Ninguno (Mipmap lineal),,Aucun (mipmap linéaire),,,,Ðет (Линейный мипмап), +None (trilinear),OPTVAL_NONETRILINEAR,,,,Aus (trilinear),Ninguno (trilineal),,Aucun (mipmap trilinéaire),,,,Ðет (ТрилинейнаÑ), +Bilinear,OPTVAL_BILINEAR,,,,,Bilineal,,Bilinéaire,,,,БилинейнаÑ, +Trilinear,OPTVAL_TRILINEAR,,,,,Trilineal,,Trilinéaire,,,,ТрилинейнаÑ, +RGBA8,OPTVAL_RGBA8,,,,,,,,,,,, +RGB5_A1,OPTVAL_RGB5A1,,,,,,,,,,,, +RGBA4,OPTVAL_RGBA4,,,,,,,,,,,, +RGBA2,OPTVAL_RGBA2,,,,,,,,,,,, +COMPR_RGBA,OPTVAL_COMPRRGBA,,,,,,,,,,,, +S3TC_DXT1,OPTVAL_S3TCDXT1,,,,,,,,,,,, +S3TC_DXT3,OPTVAL_S3TCDXT3,,,,,,,,,,,, +S3TC_DXT5,OPTVAL_S3TCDXT5,,,,,,,,,,,, +2x,OPTVAL_2X,,,,,,,,,,,, +4x,OPTVAL_4X,,,,,,,,,,,, +8x,OPTVAL_8X,,,,,,,,,,,, +16x,OPTVAL_16X,,,,,,,,,,,, +32x,OPTVAL_32X,,,,,,,,,,,, +Use as palette,OPTVAL_USEASPALETTE,,,,Benutze als Palette,Usar como paleta,,Utiliser comme pallette,,,,ИÑпользовать как палитру, +Blend,OPTVAL_BLEND,,,,Ãœberblenden,Mezclar,,Mélanger,,,,Смешать, +Standard,OPTVAL_STANDARD,,,,,Estándar,,,,,,Стандартный, +Bright,OPTVAL_BRIGHT,,,,Hell,Brillante,,Clair,,,,Яркий, +Dark,OPTVAL_DARK,,,,Dunkel,Oscuro,,Sombre,,,,Тёмный, +Doom Legacy,OPTVAL_LEGACY,,,,Doom Legacy,,,,,,,, +Software,OPTVAL_SOFTWARE,,,,,,,,,,,Программный, +Speed,OPTVAL_SPEED,,,,Geschwindigkeit,Velocidad,,Vitesse,,,,СкороÑÑ‚ÑŒ, +Quality,OPTVAL_QUALITY,,,,Qualität,Calidad,,Qualité,,,,КачеÑтво, +Optimal,OPTVAL_OPTIMAL,,,,,Óptimo,,Optimiser,,,,Оптимальный, +60,OPTVAL_60,,,,,,,,,,,, +70,OPTVAL_70,,,,,,,,,,,, +72,OPTVAL_72,,,,,,,,,,,, +75,OPTVAL_75,,,,,,,,,,,, +85,OPTVAL_85,,,,,,,,,,,, +100,OPTVAL_100,,,,,,,,,,,, +Y Axis,OPTVAL_YAXIS,,,,Y-Achse,Eje Y,,Axe Y,,,,По горизонтали, +X/Y Axis,OPTVAL_XYAXIS,,,,X/Y-Achse,Ejes X/Y,,Axes X/Y,,,,По обеим оÑÑм, +Square,OPTVAL_SQUARE,,,,Quadratisch,Cuadrado,,Carrées,,,,Квадратный, +Round,OPTVAL_ROUND,,,,Rund,Redondo,,Rondes,,,,Круглый, +ScaleNx,OPTVAL_SCALENX,,,,,,,,,,,, +NormalNx,OPTVAL_NORMALNX,,,,,,,,,,,, +hqNx,OPTVAL_HQNX,,,,,,,,,,,, +hqNx MMX,OPTVAL_HQNXMMX,,,,,,,,,,,, +xBRZ,OPTVAL_NXBRZ,,,,,,,,,,,, +Old xBRZ,OPTVAL_OLD_NXBRZ,,,,xBRZ alt,Antíguo xBRZ,,Ancien xBRZ,,,,Старый xBRZ, +Radial,OPTVAL_RADIAL,,,,,,,,,,,Радиальный, +Pixel fuzz,OPTVAL_PIXELFUZZ,,,,,Difuminado pixelado,,Bruit Pixélisé,,,,ПикÑельный шум, +Smooth fuzz,OPTVAL_SMOOTHFUZZ,,,,,Difuminado borroso,,Bruit doux,,,,Гладкий шум, +Swirly fuzz,OPTVAL_SWIRLYFUZZ,,,,,Difuminado en remolino,,Bruit marbré,,,,КружащийÑÑ ÑˆÑƒÐ¼, +Translucent fuzz,OPTVAL_TRANSLUCENTFUZZ,,,,,Difuminado Translúcido,,Bruit transparent,,,,Прозрачный шум, +Noise,OPTVAL_NOISE,,,,,Ruido,,Neige,,,,Шум, +Smooth Noise,OPTVAL_SMOOTHNOISE,,,,,Ruido borroso,,Neige adoucie,,,,ÐœÑгкий шум, +Jagged fuzz,OPTVAL_JAGGEDFUZZ,,,,,Difuminado dentado,,Neige rugeuse,,,,Зазубренный шум, +Green/Magenta,OPTVAL_GREENMAGENTA,,,,Grün/Magenta,Verde/Magenta,,Vert/Magenta,,,,Зелёный/Маджента, +Red/Cyan,OPTVAL_REDCYAN,,,,Rot/Cyan,Rojo/Cian,,Rouge/Bleu,,,,КраÑный/Голубой, +Amber/Blue,OPTVAL_AMBERBLUE,,,,Orange/Blau,Ãmbar/Azul,,Ambre/Bleu,,,,Янтарный/Синий, +Left Eye,OPTVAL_LEFTEYE,,,,Linkes Auge,Ojo izquierdo,,Oeil Gauche,,,,Левый глаз, +Right Eye,OPTVAL_RIGHTEYE,,,,Rechtes Auge,Ojo derecho,,Oeil Droit,,,,Правый глаз, +Side-by-side Full,OPTVAL_SBSFULL,,,,Nebeneinander volle Breite,Lado a lado completo,,Côte-â-côte Complet,,,,"Бок-о-бок, полно", +Side-by-side Narrow,OPTVAL_SBSNARROW,,,,Nebeneinander halbe Breite,Lado a lado estrecho,,Côte-â-côte étroit,,,,"Бок-о-бок, узко", +Top/Bottom,OPTVAL_TOPBOTTOM,,,,Ãœbereinander,Superior/Inferior,,Dessus/Dessous,,,,Сверху/Ñнизу, +Row Interleaved,OPTVAL_ROWINTERLEAVED,,,,Zeilenversetzt,Fila intercalada,,Entrelacement rangée,,,,, +Column Interleaved,OPTVAL_COLUMNINTERLEAVED,,,,Spaltenversetzt,Columna intercalada,,Entralcement colonne,,,,, +Checkerboard,OPTVAL_CHECKERBOARD,,,,Schachbrettmuster,Tablero de damas,,Damier,,,,Ð¨Ð°Ñ…Ð¼Ð°Ñ‚Ð½Ð°Ñ Ð´Ð¾Ñка, +Quad-buffered,OPTVAL_QUADBUFFERED,,,,,Cuádruple búfer,,Quadruple-tampon,,,,, +Uncharted 2,OPTVAL_UNCHARTED2,,,,,,,,,,,, +Hejl Dawson,OPTVAL_HEJLDAWSON,,,,,,,,,,,Хейл ДоуÑон, +Reinhard,OPTVAL_REINHARD,,,,,,,,,,,Рейнхард, +Palette,OPTVAL_PALETTE,,,,,Paleta,,,,,,Doom палитра, +Low,OPTVAL_LOW,,,,Niedrig,Bajo,,Bas,,,,Ðизкий, +Medium,OPTVAL_MEDIUM,,,,Mittle,Medio,,Moyen,,,,Средний, +High,OPTVAL_HIGH,,,,Hoch,Alto,,Haut,,,,Ð’Ñ‹Ñокий, +Extreme,OPTVAL_EXTREME,,,,Extrem,Extremo,,Extrême,,,,Крайний, +Obverse,OPTVAL_OBVERSEFIRST,,,,,Anverso,,,,,,Лицевой, +Reverse,OPTVAL_REVERSEFIRST,,,,,Inverso,,Inverse,,,,Обратный, +TrueColor Options,DSPLYMNU_TCOPT,,,,TrueColor Optionen,Opciones TrueColor,,Options TrueColor,,,,Полноцветный, +TrueColor Options,TCMNU_TITLE,,,,TrueColor Optionen,Opciones TrueColor,,Options TrueColor,,,,ÐаÑтройки полноцветноÑти, +True color output,TCMNU_TRUECOLOR,,,,TrueColor Ausgabe,Salida de True color,,Sortie Truecolor,,,,Полноцветный вывод, +Linear filter when downscaling,TCMNU_MINFILTER,,,,Linearer Filter beim Herunterskalieren,Filtro lineal por reducción,,Filtrage linéaire en réduction,,,,Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ уменьшении, +Linear filter when upscaling,TCMNU_MAGFILTER,,,,Linearer Filter beim Hochskalieren,Filtro lineal por escalado,,Filtrage linéaire en agrandissement,,,,Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ увеличении, +Use mipmapped textures,TCMNU_MIPMAP,,,,Benutze Textur-Mipmaps,Usar texturas con mipmap,,Utiliser textures mipmappées,,,,Мип-маппинг Ð´Ð»Ñ Ñ‚ÐµÐºÑтур, +Dynamic lights (Software),TCMNU_DYNLIGHTS,,,,Dynamisches Licht (Software),Luces dinámicas (Software),,Lumières Dynamiques (Software),,,,ДинамичеÑкое оÑвещение (Программное), +,,,Newly added content,,,,,,,,,, +Option Search,OS_TITLE,,,,Optionssuche,Buscar Opciones,,Recherche Option,,,,, +Search for any term,OS_ANY,,,,Suche nach beliebigem Begriff,Buscar cualquier término,,N'importe quel mot,,,,ИÑкать любое из Ñлов, +Search for all terms,OS_ALL,,,,Suche nach allen Begriffen,Buscar todos los términos,,Tous les mots,,,,ИÑкать вÑе Ñлова, +Main Options,OS_MAIN,,,,,Opciones Principales,,Options principales,,,,, +No results found.,OS_NO_RESULTS,,,,Keine Resultate,Ningun resultado.,,Pas de résultat trouvé,,,,, +Search:,OS_LABEL,,,,Suche:,Buscar:,,Recherche:,,,,, +Always show keys,AUTOMAPMNU_SHOWKEYS_ALWAYS,,,,Zeige immer alle Schlüssel,Mostrar llaves siempre,,Toujour afficher clés,,,,, \ No newline at end of file diff --git a/wadsrc/static/language.eng b/wadsrc/static/language.eng deleted file mode 100644 index bf0a0a91d..000000000 --- a/wadsrc/static/language.eng +++ /dev/null @@ -1,112 +0,0 @@ -/* British, Canadian, Australian, New Zealand, Hiberno, South African, Jamaican, -Caribbean, Belizean, Trinidadian, and Zimbabwean English */ - -[eng enc ena enz eni ens enj enb enl ent enw] - -GOTARMOR = "Picked up the armour."; -GOTMEGA = "Picked up the MegaArmour!"; -GOTARMBONUS = "Picked up an armour bonus."; - -C2TEXT = - "YOU HAVE WON! YOUR VICTORY HAS ENABLED\n" - "HUMANKIND TO EVACUATE EARTH AND ESCAPE\n" - "THE NIGHTMARE. NOW YOU ARE THE ONLY\n" - "HUMAN LEFT ON THE FACE OF THE PLANET.\n" - "CANNIBAL MUTATIONS, CARNIVOROUS ALIENS,\n" - "AND EVIL SPIRITS ARE YOUR ONLY NEIGHBOURS.\n" - "YOU SIT BACK AND WAIT FOR DEATH, CONTENT\n" - "THAT YOU HAVE SAVED YOUR SPECIES.\n" - "\n" - "BUT THEN, EARTH CONTROL BEAMS DOWN A\n" - "MESSAGE FROM SPACE: \"SENSORS HAVE LOCATED\n" - "THE SOURCE OF THE ALIEN INVASION. IF YOU\n" - "GO THERE, YOU MAY BE ABLE TO BLOCK THEIR\n" - "ENTRY. THE ALIEN BASE IS IN THE HEART OF\n" - "YOUR OWN HOME CITY, NOT FAR FROM THE\n" - "STARPORT.\" SLOWLY AND PAINFULLY YOU GET\n" - "UP AND RETURN TO THE FRAY."; -NERVETEXT = - "TROUBLE WAS BREWING AGAIN IN YOUR FAVOURITE\n" - "VACATION SPOT... HELL. SOME CYBERDEMON\n" - "PUNK THOUGHT HE COULD TURN HELL INTO A\n" - "PERSONAL AMUSEMENT PARK, AND MAKE EARTH\n" - "THE TICKET BOOTH.\n" - "\n" - "WELL THAT HALF-ROBOT FREAK SHOW DIDN'T\n" - "KNOW WHO WAS COMING TO THE FAIR. THERE'S\n" - "NOTHING LIKE A SHOOTING GALLERY FULL OF\n" - "HELLSPAWN TO GET THE BLOOD PUMPING...\n" - "\n" - "NOW THE WALLS OF THE DEMON'S LABYRINTH\n" - "ECHO WITH THE SOUND OF HIS METALLIC LIMBS\n" - "HITTING THE FLOOR. HIS DEATH MOAN GURGLES\n" - "OUT THROUGH THE MESS YOU LEFT OF HIS FACE.\n" - "\n" - "THIS RIDE IS CLOSED.\n"; - -OB_TURRET = "%o triggered the automatic defences."; - -SCORE_COLOR = "COLOUR"; - -TAG_SHADOWARMOR = "Shadow Armour"; -TAG_METALARMOR = "Metal Armour"; -TAG_LEATHER = "Leather Armour"; -TAG_ARMORER = "Armourer"; - -TXT_ARMOR1 = "MESH ARMOUR"; - -TXT_METALARMOR = "You picked up the Metal Armour."; -TXT_LEATHERARMOR = "You picked up the Leather Armour."; -TXT_SHADOWARMOR = "You picked up the Shadow armour."; - -TXT_RANDOM_PGUARD_10 = "If there is any honour inside that pathetic shell of a body, you'll enter into the arms of the order."; -GOTCHEXARMOR = "Picked up the Chex(R) Armour."; -GOTSUPERCHEXARMOR = "Picked up the Super Chex(R) Armour!"; - -OB_BIPEDICUS2 = "%o was slimed by an armoured bipedicus."; - -MNU_COLORPICKER = "SELECT COLOUR"; -CNTRLMNU_CENTERVIEW = "Centre view"; -PLYRMNU_PLAYERCOLOR = "Colour"; -DSPLYMNU_DIMCOLOR = "Dim colour"; -HUDMNU_CROSSHAIRCOLOR = "Crosshair colour"; -HUDMNU_NAMETAGCOLOR = "Nametag colour"; -ALTHUDMNU_TIMECOLOR = "Time colour"; -ALTHUDMNU_ARMORRED = "Red armour display below"; -ALTHUDMNU_ARMORYELLOW = "Yellow armour display below"; -ALTHUDMNU_ARMORGREEN = "Green armour display below"; -ALTHUDMNU_TITLECOLOR = "Map title colour"; -ALTHUDMNU_MAPTIMECOLOR = "Map time colour"; -ALTHUDMNU_HUBTIMECOLOR = "Hub time colour"; -ALTHUDMNU_TOTALTIMECOLOR = "Total time colour"; -ALTHUDMNU_COORDINATECOLOR = "Coordinate colour"; -ALTHUDMNU_STATSNAMECOLOR = "Statistics name colour"; -ALTHUDMNU_STATSCOLOR = "Statistics colour"; -AUTOMAPMNU_COLORSET = "Map colour set"; -AUTOMAPMNU_CUSTOMCOLORS = "Allow map defined colours"; -AUTOMAPMNU_SETCUSTOMCOLORS = "Set custom colours"; -MAPCOLORMNU_TITLE = "CUSTOMIZE MAP COLOURS"; -MAPCOLORMNU_DEFAULTMAPCOLORS = "Restore default custom colours"; -MAPCOLORMNU_XHAIRCOLOR = "Centre point"; -MSGMNU_CENTERMESSAGES = "Centre messages"; -MSGMNU_MESSAGECOLORS = "Message Colours"; -MSGMNU_CENTEREDMESSAGES = "Centred Messages"; -SCRBRDMNU_HEADERCOLOR = "Header Colour"; -SCRBRDMNU_YOURCOLOR = "Your Player Colour"; -SCRBRDMNU_OTHERPLAYERCOLOR = "Other Players' Colour"; -GMPLYMNU_ALLOWARMOR = "Allow armour"; -GMPLYMNU_KEEPARMOR = "Keep armour"; -CMPTMNU_ACTORBEHAVIOR = "Actor Behaviour"; -CMPTMNU_DEHACKEDBEHAVIOR = "DehackEd Behaviour"; -CMPTMNU_MAPACTIONBEHAVIOR = "Map/Action Behaviour"; -CMPTMNU_LIGHT = "Find neighbouring light like Doom"; -CMPTMNU_FLOORMOVE = "Use Doom's floor motion behaviour"; -CMPTMNU_PHYSICSBEHAVIOR = "Physics Behaviour"; -CMPTMNU_RENDERINGBEHAVIOR = "Rendering Behaviour"; -CMPTMNU_SOUNDBEHAVIOR = "Sound Behaviour"; -CMPTMNU_SECTORSOUNDS = "Sector sounds use centre as source"; -OPTVAL_MAPDEFINEDCOLORSONLY = "Map defined colours only"; -C_GRAY = "\ccgrey"; -C_DARKGRAY = "\cudark grey"; - -OPTVAL_ANYFIXEDCOLORMAP = "Any fixed colourmap"; diff --git a/wadsrc/static/language.enu b/wadsrc/static/language.enu deleted file mode 100644 index c9e7da9f1..000000000 --- a/wadsrc/static/language.enu +++ /dev/null @@ -1,2939 +0,0 @@ -/* U.S. English. (Sorry, it's not English English.) */ - -[default] - -SECRETMESSAGE = "A secret is revealed!"; - -D_DEVSTR = "Useless mode ON.\n"; -D_CDROM = "CD-ROM Version: zdoom.ini from c:\\zdoomdat\n"; -PRESSKEY = "press a key."; -PRESSYN = "press y or n."; - -QUITMSG = "are you sure you want to\nquit this great game?"; -TXT_YES = "Yes"; -TXT_NO = "No"; - -// Quit Doom 1 messages -QUITMSG1 = "please don't leave, there's more\ndemons to toast!"; -QUITMSG2 = "let's beat it -- this is turning\ninto a bloodbath!"; -QUITMSG3 = "i wouldn't leave if i were you.\ndos is much worse."; -QUITMSG4 = "you're trying to say you like dos\nbetter than me, right?"; -QUITMSG5 = "don't leave yet -- there's a\ndemon around that corner!"; -QUITMSG6 = "ya know, next time you come in here\ni'm gonna toast ya."; -QUITMSG7 = "go ahead and leave. see if i care."; - -// Quit Doom II messages -QUITMSG8 = "you want to quit?\nthen, thou hast lost an eighth!"; -QUITMSG9 = "don't go now, there's a \ndimensional shambler waiting\nat the dos prompt!"; -QUITMSG10 = "get outta here and go back\nto your boring programs."; -QUITMSG11 = "if i were your boss, i'd \n deathmatch ya in a minute!"; -QUITMSG12 = "look, bud. you leave now\nand you forfeit your body count!"; -QUITMSG13 = "just leave. when you come\nback, i'll be waiting with a bat."; -QUITMSG14 = "you're lucky i don't smack\nyou for thinking about leaving."; - -// Quit Strife messages -QUITMSG15 = "where are you going?!\nwhat about the rebellion?"; -QUITMSG16 = "carnage interruptus...\nwhat a tease!"; -QUITMSG17 = "but you're the hope\n-- my only chance!!"; -QUITMSG18 = "nobody walks out on blackbird."; -QUITMSG19 = "i thought you were different..."; -QUITMSG20 = "fine! just kill and run!"; -QUITMSG21 = "you can quit...\nbut you can't hide..."; -QUITMSG22 = "whaaa, what's the matter?\nmommy says dinnertime?"; - -// Quit Chex messages -QUITMSG23 = "Don't quit now, there are still\nflemoids on the loose!"; -QUITMSG24 = "Don't give up -- the flemoids will\nget the upper hand!"; -QUITMSG25 = "Don't leave now.\nWe need your help!"; -QUITMSG26 = "I hope you're just taking a\nbreak for Chex(R) party mix."; -QUITMSG27 = "Don't quit now!\nWe need your help!"; -QUITMSG28 = "Don't abandon the\nIntergalactic Federation of Cereals!"; -QUITMSG29 = "The real Chex(R) Warrior\nwouldn't give up so fast!"; - -LOADNET = "you can't do load while in a net game!\n\npress a key."; -QLOADNET = "you can't quickload during a netgame!\n\npress a key."; -QSAVESPOT = "you haven't picked a quicksave slot yet!\n\npress a key."; -SAVEDEAD = "you can't save if you aren't playing!\n\npress a key."; -QSPROMPT = "quicksave over your game named\n\n'%s'?\n\npress y or n."; -QLPROMPT = "do you want to quickload the game named\n\n'%s'?\n\npress y or n."; -NEWGAME = "you can't start a new game\nwhile in a network game.\n\npress a key."; -NIGHTMARE = "are you sure? this skill level\nisn't even remotely fair.\n\npress y or n."; -SWSTRING = "this is the shareware version of doom.\n\nyou need to order the entire trilogy.\n\npress a key."; -MSGOFF = "Messages OFF"; -MSGON = "Messages ON"; -NETEND = "you can't end a netgame!\n\npress a key."; -ENDGAME = "are you sure you want to end the game?\n\npress y or n."; -DOSY = "(press y to quit)"; -EMPTYSTRING = "empty slot"; -GOTARMOR = "Picked up the armor."; -GOTMEGA = "Picked up the MegaArmor!"; -GOTHTHBONUS = "Picked up a health bonus."; -GOTARMBONUS = "Picked up an armor bonus."; -GOTSTIM = "Picked up a stimpack."; -GOTMEDINEED = "Picked up a medikit that you REALLY need!"; -GOTMEDIKIT = "Picked up a medikit."; -GOTSUPER = "Supercharge!"; -GOTBLUECARD = "Picked up a blue keycard."; -GOTYELWCARD = "Picked up a yellow keycard."; -GOTREDCARD = "Picked up a red keycard."; -GOTBLUESKUL = "Picked up a blue skull key."; -GOTYELWSKUL = "Picked up a yellow skull key."; -GOTREDSKUL = "Picked up a red skull key."; -GOTINVUL = "Invulnerability!"; -GOTBERSERK = "Berserk!"; -GOTINVIS = "Partial Invisibility"; -GOTSUIT = "Radiation Shielding Suit"; -GOTMAP = "Computer Area Map"; -GOTVISOR = "Light Amplification Visor"; -GOTMSPHERE = "MegaSphere!"; -GOTCLIP = "Picked up a clip."; -GOTCLIPBOX = "Picked up a box of bullets."; -GOTROCKET = "Picked up a rocket."; -GOTROCKBOX = "Picked up a box of rockets."; -GOTCELL = "Picked up an energy cell."; -GOTCELLBOX = "Picked up an energy cell pack."; -GOTSHELLS = "Picked up 4 shotgun shells."; -GOTSHELLBOX = "Picked up a box of shotgun shells."; -GOTBACKPACK = "Picked up a backpack full of ammo!"; -GOTBFG9000 = "You got the BFG9000! Oh, yes."; -GOTCHAINGUN = "You got the chaingun!"; -GOTCHAINSAW = "A chainsaw! Find some meat!"; -GOTLAUNCHER = "You got the rocket launcher!"; -GOTPLASMA = "You got the plasma gun!"; -GOTSHOTGUN = "You got the shotgun!"; -GOTSHOTGUN2 = "You got the super shotgun!"; -PD_BLUEO = "You need a blue key to activate this object"; -PD_REDO = "You need a red key to activate this object"; -PD_YELLOWO = "You need a yellow key to activate this object"; -PD_BLUEK = "You need a blue key to open this door"; -PD_REDK = "You need a red key to open this door"; -PD_YELLOWK = "You need a yellow key to open this door"; -PD_BLUECO = "You need a blue card to activate this object"; -PD_REDCO = "You need a red card to activate this object"; -PD_YELLOWCO = "You need a yellow card to activate this object"; -PD_BLUESO = "You need a blue skull to activate this object"; -PD_REDSO = "You need a red skull to activate this object"; -PD_YELLOWSO = "You need a yellow skull to activate this object"; -NEWSAVE = ""; -GGSAVED = "game saved."; -HUSTR_MSGU = "[Message unsent]"; -PICKUP_PISTOL_DROPPED = "Picked up a pistol."; -BETA_BONUS1 = "You pick up a demonic dagger."; -BETA_BONUS2 = "You pick up a skullchest."; -BETA_BONUS3 = "You pick up an evil sceptre."; -BETA_BONUS4 = "You pick up an unholy bible."; - -// Level names -HUSTR_E1M1 = "E1M1: Hangar"; -HUSTR_E1M2 = "E1M2: Nuclear Plant"; -HUSTR_E1M3 = "E1M3: Toxin Refinery"; -HUSTR_E1M4 = "E1M4: Command Control"; -HUSTR_E1M5 = "E1M5: Phobos Lab"; -HUSTR_E1M6 = "E1M6: Central Processing"; -HUSTR_E1M7 = "E1M7: Computer Station"; -HUSTR_E1M8 = "E1M8: Phobos Anomaly"; -HUSTR_E1M9 = "E1M9: Military Base"; -HUSTR_E2M1 = "E2M1: Deimos Anomaly"; -HUSTR_E2M2 = "E2M2: Containment Area"; -HUSTR_E2M3 = "E2M3: Refinery"; -HUSTR_E2M4 = "E2M4: Deimos Lab"; -HUSTR_E2M5 = "E2M5: Command Center"; -HUSTR_E2M6 = "E2M6: Halls of the Damned"; -HUSTR_E2M7 = "E2M7: Spawning Vats"; -HUSTR_E2M8 = "E2M8: Tower of Babel"; -HUSTR_E2M9 = "E2M9: Fortress of Mystery"; -HUSTR_E3M1 = "E3M1: Hell Keep"; -HUSTR_E3M2 = "E3M2: Slough of Despair"; -HUSTR_E3M3 = "E3M3: Pandemonium"; -HUSTR_E3M4 = "E3M4: House of Pain"; -HUSTR_E3M5 = "E3M5: Unholy Cathedral"; -HUSTR_E3M6 = "E3M6: Mt. Erebus"; -HUSTR_E3M7 = "E3M7: Limbo"; -HUSTR_E3M8 = "E3M8: Dis"; -HUSTR_E3M9 = "E3M9: Warrens"; -HUSTR_E4M1 = "E4M1: Hell Beneath"; -HUSTR_E4M2 = "E4M2: Perfect Hatred"; -HUSTR_E4M3 = "E4M3: Sever The Wicked"; -HUSTR_E4M4 = "E4M4: Unruly Evil"; -HUSTR_E4M5 = "E4M5: They Will Repent"; -HUSTR_E4M6 = "E4M6: Against Thee Wickedly"; -HUSTR_E4M7 = "E4M7: And Hell Followed"; -HUSTR_E4M8 = "E4M8: Unto The Cruel"; -HUSTR_E4M9 = "E4M9: Fear"; - -HUSTR_1 = "level 1: entryway"; -HUSTR_2 = "level 2: underhalls"; -HUSTR_3 = "level 3: the gantlet"; -HUSTR_4 = "level 4: the focus"; -HUSTR_5 = "level 5: the waste tunnels"; -HUSTR_6 = "level 6: the crusher"; -HUSTR_7 = "level 7: dead simple"; -HUSTR_8 = "level 8: tricks and traps"; -HUSTR_9 = "level 9: the pit"; -HUSTR_10 = "level 10: refueling base"; -HUSTR_11 = "level 11: 'o' of destruction!"; -HUSTR_12 = "level 12: the factory"; -HUSTR_13 = "level 13: downtown"; -HUSTR_14 = "level 14: the inmost dens"; -HUSTR_15 = "level 15: industrial zone"; -HUSTR_16 = "level 16: suburbs"; -HUSTR_17 = "level 17: tenements"; -HUSTR_18 = "level 18: the courtyard"; -HUSTR_19 = "level 19: the citadel"; -HUSTR_20 = "level 20: gotcha!"; -HUSTR_21 = "level 21: nirvana"; -HUSTR_22 = "level 22: the catacombs"; -HUSTR_23 = "level 23: barrels o' fun"; -HUSTR_24 = "level 24: the chasm"; -HUSTR_25 = "level 25: bloodfalls"; -HUSTR_26 = "level 26: the abandoned mines"; -HUSTR_27 = "level 27: monster condo"; -HUSTR_28 = "level 28: the spirit world"; -HUSTR_29 = "level 29: the living end"; -HUSTR_30 = "level 30: icon of sin"; -HUSTR_31 = "level 31: wolfenstein"; -HUSTR_32 = "level 32: grosse"; -HUSTR_31B = "level 31: idkfa"; -HUSTR_32B = "level 32: keen"; -HUSTR_33 = "level 33: betray"; - -NHUSTR_1 = "level 1: the earth base"; -NHUSTR_2 = "level 2: the pain labs"; -NHUSTR_3 = "level 3: canyon of the dead"; -NHUSTR_4 = "level 4: hell mountain"; -NHUSTR_5 = "level 5: vivisection"; -NHUSTR_6 = "level 6: inferno of blood"; -NHUSTR_7 = "level 7: baron's banquet"; -NHUSTR_8 = "level 8: tomb of malevolence"; -NHUSTR_9 = "level 9: march of the demons"; - -PHUSTR_1 = "level 1: congo"; -PHUSTR_2 = "level 2: well of souls"; -PHUSTR_3 = "level 3: aztec"; -PHUSTR_4 = "level 4: caged"; -PHUSTR_5 = "level 5: ghost town"; -PHUSTR_6 = "level 6: baron's lair"; -PHUSTR_7 = "level 7: caughtyard"; -PHUSTR_8 = "level 8: realm"; -PHUSTR_9 = "level 9: abattoire"; -PHUSTR_10 = "level 10: onslaught"; -PHUSTR_11 = "level 11: hunted"; -PHUSTR_12 = "level 12: speed"; -PHUSTR_13 = "level 13: the crypt"; -PHUSTR_14 = "level 14: genesis"; -PHUSTR_15 = "level 15: the twilight"; -PHUSTR_16 = "level 16: the omen"; -PHUSTR_17 = "level 17: compound"; -PHUSTR_18 = "level 18: neurosphere"; -PHUSTR_19 = "level 19: nme"; -PHUSTR_20 = "level 20: the death domain"; -PHUSTR_21 = "level 21: slayer"; -PHUSTR_22 = "level 22: impossible mission"; -PHUSTR_23 = "level 23: tombstone"; -PHUSTR_24 = "level 24: the final frontier"; -PHUSTR_25 = "level 25: the temple of darkness"; -PHUSTR_26 = "level 26: bunker"; -PHUSTR_27 = "level 27: anti-christ"; -PHUSTR_28 = "level 28: the sewers"; -PHUSTR_29 = "level 29: odyssey of noises"; -PHUSTR_30 = "level 30: the gateway of hell"; -PHUSTR_31 = "level 31: cyberden"; -PHUSTR_32 = "level 32: go 2 it"; - -THUSTR_1 = "level 1: system control"; -THUSTR_2 = "level 2: human bbq"; -THUSTR_3 = "level 3: power control"; -THUSTR_4 = "level 4: wormhole"; -THUSTR_5 = "level 5: hanger"; -THUSTR_6 = "level 6: open season"; -THUSTR_7 = "level 7: prison"; -THUSTR_8 = "level 8: metal"; -THUSTR_9 = "level 9: stronghold"; -THUSTR_10 = "level 10: redemption"; -THUSTR_11 = "level 11: storage facility"; -THUSTR_12 = "level 12: crater"; -THUSTR_13 = "level 13: nukage processing"; -THUSTR_14 = "level 14: steel works"; -THUSTR_15 = "level 15: dead zone"; -THUSTR_16 = "level 16: deepest reaches"; -THUSTR_17 = "level 17: processing area"; -THUSTR_18 = "level 18: mill"; -THUSTR_19 = "level 19: shipping/respawning"; -THUSTR_20 = "level 20: central processing"; -THUSTR_21 = "level 21: administration center"; -THUSTR_22 = "level 22: habitat"; -THUSTR_23 = "level 23: lunar mining project"; -THUSTR_24 = "level 24: quarry"; -THUSTR_25 = "level 25: baron's den"; -THUSTR_26 = "level 26: ballistyx"; -THUSTR_27 = "level 27: mount pain"; -THUSTR_28 = "level 28: heck"; -THUSTR_29 = "level 29: river styx"; -THUSTR_30 = "level 30: last call"; -THUSTR_31 = "level 31: pharaoh"; -THUSTR_32 = "level 32: caribbean"; - -HUSTR_TALKTOSELF1 = "You mumble to yourself"; -HUSTR_TALKTOSELF2 = "Who's there?"; -HUSTR_TALKTOSELF3 = "You scare yourself"; -HUSTR_TALKTOSELF4 = "You start to rave"; -HUSTR_TALKTOSELF5 = "You've lost it..."; -HUSTR_MESSAGESENT = "[Message Sent]"; - -AMSTR_FOLLOWON = "Follow Mode ON"; -AMSTR_FOLLOWOFF = "Follow Mode OFF"; -AMSTR_GRIDON = "Grid ON"; -AMSTR_GRIDOFF = "Grid OFF"; -AMSTR_TEXON = "Texture Mode ON"; -AMSTR_TEXOFF = "Texture Mode OFF"; -AMSTR_MARKEDSPOT = "Marked Spot"; -AMSTR_MARKSCLEARED = "All Marks Cleared"; -STSTR_MUS = "Music Change"; -STSTR_NOMUS = "IMPOSSIBLE SELECTION"; -STSTR_DQDON = "Degreelessness Mode ON"; -STSTR_DQDOFF = "Degreelessness Mode OFF"; -STSTR_DQD2ON = "Ultimate Degreelessness Mode ON"; -STSTR_DQD2OFF = "Ultimate Degreelessness Mode OFF"; -STSTR_KFAADDED = "Very Happy Ammo Added"; -STSTR_FAADDED = "Ammo (no keys) Added"; -STSTR_NCON = "No Clipping Mode ON"; -STSTR_NCOFF = "No Clipping Mode OFF"; -STSTR_NC2ON = "No Clipping Mode 2 ON"; -STSTR_BEHOLD = "inVuln, Str, Inviso, Rad, Allmap, or Lite-amp"; -STSTR_BEHOLDX = "Power-up Toggled"; -STSTR_CHOPPERS = "... doesn't suck - GM"; -STSTR_CLEV = "Changing Level...\n"; -TXT_BUDDHAON = "Buddha mode ON"; -TXT_BUDDHAOFF = "Buddha mode OFF"; -TXT_BUDDHA2ON = "Ultimate Buddha Mode ON"; -TXT_BUDDHA2OFF = "Ultimate Buddha Mode OFF"; -TXT_DEFAULTPICKUPMSG = "You got a pickup"; - -E1TEXT = - "Once you beat the big badasses and\n" - "clean out the moon base you're supposed\n" - "to win, aren't you? Aren't you? Where's\n" - "your fat reward and ticket home? What\n" - "the hell is this? It's not supposed to\n" - "end this way!\n" - "\n" - "It stinks like rotten meat, but looks\n" - "like the lost Deimos base. Looks like\n" - "you're stuck on The Shores of Hell.\n" - "The only way out is through.\n" - "\n" - "To continue the DOOM experience, play\n" - "The Shores of Hell and its amazing\n" - "sequel, Inferno!\n"; -E2TEXT = - "You've done it! The hideous cyber-\n" - "demon lord that ruled the lost Deimos\n" - "moon base has been slain and you\n" - "are triumphant! But ... where are\n" - "you? You clamber to the edge of the\n" - "moon and look down to see the awful\n" - "truth.\n" - "\n" - "Deimos floats above Hell itself!\n" - "You've never heard of anyone escaping\n" - "from Hell, but you'll make the bastards\n" - "sorry they ever heard of you! Quickly,\n" - "you rappel down to the surface of\n" - "Hell.\n" - "\n" - "Now, it's on to the final chapter of\n" - "DOOM! -- Inferno."; -E3TEXT = - "The loathsome spiderdemon that\n" - "masterminded the invasion of the moon\n" - "bases and caused so much death has had\n" - "its ass kicked for all time.\n" - "\n" - "A hidden doorway opens and you enter.\n" - "You've proven too tough for Hell to\n" - "contain, and now Hell at last plays\n" - "fair -- for you emerge from the door\n" - "to see the green fields of Earth!\n" - "Home at last.\n" - "\n" - "You wonder what's been happening on\n" - "Earth while you were battling evil\n" - "unleashed. It's good that no Hell-\n" - "spawn could have come through that\n" - "door with you ..."; -E4TEXT = - "the spider mastermind must have sent forth\n" - "its legions of hellspawn before your\n" - "final confrontation with that terrible\n" - "beast from hell. but you stepped forward\n" - "and brought forth eternal damnation and\n" - "suffering upon the horde as a true hero\n" - "would in the face of something so evil.\n" - "\n" - "besides, someone was gonna pay for what\n" - "happened to daisy, your pet rabbit.\n" - "\n" - "but now, you see spread before you more\n" - "potential pain and gibbitude as a nation\n" - "of demons run amok among our cities.\n" - "\n" - "next stop, hell on earth!"; -C1TEXT = - "YOU HAVE ENTERED DEEPLY INTO THE INFESTED\n" - "STARPORT. BUT SOMETHING IS WRONG. THE\n" - "MONSTERS HAVE BROUGHT THEIR OWN REALITY\n" - "WITH THEM, AND THE STARPORT'S TECHNOLOGY\n" - "IS BEING SUBVERTED BY THEIR PRESENCE.\n" - "\n" - "AHEAD, YOU SEE AN OUTPOST OF HELL, A\n" - "FORTIFIED ZONE. IF YOU CAN GET PAST IT,\n" - "YOU CAN PENETRATE INTO THE HAUNTED HEART\n" - "OF THE STARBASE AND FIND THE CONTROLLING\n" - "SWITCH WHICH HOLDS EARTH'S POPULATION\n" - "HOSTAGE."; -C2TEXT = - "YOU HAVE WON! YOUR VICTORY HAS ENABLED\n" - "HUMANKIND TO EVACUATE EARTH AND ESCAPE\n" - "THE NIGHTMARE. NOW YOU ARE THE ONLY\n" - "HUMAN LEFT ON THE FACE OF THE PLANET.\n" - "CANNIBAL MUTATIONS, CARNIVOROUS ALIENS,\n" - "AND EVIL SPIRITS ARE YOUR ONLY NEIGHBORS.\n" - "YOU SIT BACK AND WAIT FOR DEATH, CONTENT\n" - "THAT YOU HAVE SAVED YOUR SPECIES.\n" - "\n" - "BUT THEN, EARTH CONTROL BEAMS DOWN A\n" - "MESSAGE FROM SPACE: \"SENSORS HAVE LOCATED\n" - "THE SOURCE OF THE ALIEN INVASION. IF YOU\n" - "GO THERE, YOU MAY BE ABLE TO BLOCK THEIR\n" - "ENTRY. THE ALIEN BASE IS IN THE HEART OF\n" - "YOUR OWN HOME CITY, NOT FAR FROM THE\n" - "STARPORT.\" SLOWLY AND PAINFULLY YOU GET\n" - "UP AND RETURN TO THE FRAY."; -C3TEXT = - "YOU ARE AT THE CORRUPT HEART OF THE CITY,\n" - "SURROUNDED BY THE CORPSES OF YOUR ENEMIES.\n" - "YOU SEE NO WAY TO DESTROY THE CREATURES'\n" - "ENTRYWAY ON THIS SIDE, SO YOU CLENCH YOUR\n" - "TEETH AND PLUNGE THROUGH IT.\n" - "\n" - "THERE MUST BE A WAY TO CLOSE IT ON THE\n" - "OTHER SIDE. WHAT DO YOU CARE IF YOU'VE\n" - "GOT TO GO THROUGH HELL TO GET TO IT?"; -C4TEXT = - "THE HORRENDOUS VISAGE OF THE BIGGEST\n" - "DEMON YOU'VE EVER SEEN CRUMBLES BEFORE\n" - "YOU, AFTER YOU PUMP YOUR ROCKETS INTO\n" - "HIS EXPOSED BRAIN. THE MONSTER SHRIVELS\n" - "UP AND DIES, ITS THRASHING LIMBS\n" - "DEVASTATING UNTOLD MILES OF HELL'S\n" - "SURFACE.\n" - "\n" - "YOU'VE DONE IT. THE INVASION IS OVER.\n" - "EARTH IS SAVED. HELL IS A WRECK. YOU\n" - "WONDER WHERE BAD FOLKS WILL GO WHEN THEY\n" - "DIE, NOW. WIPING THE SWEAT FROM YOUR\n" - "FOREHEAD YOU BEGIN THE LONG TREK BACK\n" - "HOME. REBUILDING EARTH OUGHT TO BE A\n" - "LOT MORE FUN THAN RUINING IT WAS.\n"; -C5TEXT = - "CONGRATULATIONS, YOU'VE FOUND THE SECRET\n" - "LEVEL! LOOKS LIKE IT'S BEEN BUILT BY\n" - "HUMANS, RATHER THAN DEMONS. YOU WONDER\n" - "WHO THE INMATES OF THIS CORNER OF HELL\n" - "WILL BE."; -C6TEXT = - "CONGRATULATIONS, YOU'VE FOUND THE\n" - "SUPER SECRET LEVEL! YOU'D BETTER\n" - "BLAZE THROUGH THIS ONE!\n"; -P1TEXT = - "You gloat over the steaming carcass of the\n" - "Guardian. With its death, you've wrested\n" - "the Accelerator from the stinking claws\n" - "of Hell. You relax and glance around the\n" - "room. Damn! There was supposed to be at\n" - "least one working prototype, but you can't\n" - "see it. The demons must have taken it.\n" - "\n" - "You must find the prototype, or all your\n" - "struggles will have been wasted. Keep\n" - "moving, keep fighting, keep killing.\n" - "Oh yes, keep living, too."; -P2TEXT = - "Even the deadly Arch-Vile labyrinth could\n" - "not stop you, and you've gotten to the\n" - "prototype Accelerator which is soon\n" - "efficiently and permanently deactivated.\n" - "\n" - "You're good at that kind of thing."; -P3TEXT = - "You've bashed and battered your way into\n" - "the heart of the devil-hive. Time for a\n" - "Search-and-Destroy mission, aimed at the\n" - "Gatekeeper, whose foul offspring is\n" - "cascading to Earth. Yeah, he's bad. But\n" - "you know who's worse!\n" - "\n" - "Grinning evilly, you check your gear, and\n" - "get ready to give the bastard a little Hell\n" - "of your own making!"; -P4TEXT = - "The Gatekeeper's evil face is splattered\n" - "all over the place. As its tattered corpse\n" - "collapses, an inverted Gate forms and\n" - "sucks down the shards of the last\n" - "prototype Accelerator, not to mention the\n" - "few remaining demons. You're done. Hell\n" - "has gone back to pounding bad dead folks \n" - "instead of good live ones. Remember to\n" - "tell your grandkids to put a rocket\n" - "launcher in your coffin. If you go to Hell\n" - "when you die, you'll need it for some\n" - "final cleaning-up ..."; -P5TEXT = - "You've found the second-hardest level we\n" - "got. Hope you have a saved game a level or\n" - "two previous. If not, be prepared to die\n" - "aplenty. For master marines only."; -P6TEXT = - "Betcha wondered just what WAS the hardest\n" - "level we had ready for ya? Now you know.\n" - "No one gets out alive."; -T1TEXT = - "You've fought your way out of the infested\n" - "experimental labs. It seems that UAC has\n" - "once again gulped it down. With their\n" - "high turnover, it must be hard for poor\n" - "old UAC to buy corporate health insurance\n" - "nowadays..\n" - "\n" - "Ahead lies the military complex, now\n" - "swarming with diseased horrors hot to get\n" - "their teeth into you. With luck, the\n" - "complex still has some warlike ordnance\n" - "laying around."; -T2TEXT = - "You hear the grinding of heavy machinery\n" - "ahead. You sure hope they're not stamping\n" - "out new hellspawn, but you're ready to\n" - "ream out a whole herd if you have to.\n" - "They might be planning a blood feast, but\n" - "you feel about as mean as two thousand\n" - "maniacs packed into one mad killer.\n" - "\n" - "You don't plan to go down easy."; -T3TEXT = - "The vista opening ahead looks real damn\n" - "familiar. Smells familiar, too -- like\n" - "fried excrement. You didn't like this\n" - "place before, and you sure as hell ain't\n" - "planning to like it now. The more you\n" - "brood on it, the madder you get.\n" - "Hefting your gun, an evil grin trickles\n" - "onto your face. Time to take some names."; -T4TEXT = - "Suddenly, all is silent, from one horizon\n" - "to the other. The agonizing echo of Hell\n" - "fades away, the nightmare sky turns to\n" - "blue, the heaps of monster corpses start \n" - "to evaporate along with the evil stench \n" - "that filled the air. Jeeze, maybe you've\n" - "done it. Have you really won?\n" - "\n" - "Something rumbles in the distance.\n" - "A blue light begins to glow inside the\n" - "ruined skull of the demon-spitter."; -T5TEXT = - "What now? Looks totally different. Kind\n" - "of like King Tut's condo. Well,\n" - "whatever's here can't be any worse\n" - "than usual. Can it? Or maybe it's best\n" - "to let sleeping gods lie.."; -T6TEXT = - "Time for a vacation. You've burst the\n" - "bowels of hell and by golly you're ready\n" - "for a break. You mutter to yourself,\n" - "Maybe someone else can kick Hell's ass\n" - "next time around. Ahead lies a quiet town,\n" - "with peaceful flowing water, quaint\n" - "buildings, and presumably no Hellspawn.\n" - "\n" - "As you step off the transport, you hear\n" - "the stomp of a cyberdemon's iron shoe."; - -NERVETEXT = - "TROUBLE WAS BREWING AGAIN IN YOUR FAVORITE\n" - "VACATION SPOT... HELL. SOME CYBERDEMON\n" - "PUNK THOUGHT HE COULD TURN HELL INTO A\n" - "PERSONAL AMUSEMENT PARK, AND MAKE EARTH\n" - "THE TICKET BOOTH.\n" - "\n" - "WELL THAT HALF-ROBOT FREAK SHOW DIDN'T\n" - "KNOW WHO WAS COMING TO THE FAIR. THERE'S\n" - "NOTHING LIKE A SHOOTING GALLERY FULL OF\n" - "HELLSPAWN TO GET THE BLOOD PUMPING...\n" - "\n" - "NOW THE WALLS OF THE DEMON'S LABYRINTH\n" - "ECHO WITH THE SOUND OF HIS METALLIC LIMBS\n" - "HITTING THE FLOOR. HIS DEATH MOAN GURGLES\n" - "OUT THROUGH THE MESS YOU LEFT OF HIS FACE.\n" - "\n" - "THIS RIDE IS CLOSED.\n"; - -// Cast list (must appear in this order) -CC_ZOMBIE = "ZOMBIEMAN"; -CC_SHOTGUN = "SHOTGUN GUY"; -CC_HEAVY = "HEAVY WEAPON DUDE"; -CC_IMP = "IMP"; -CC_DEMON = "DEMON"; -CC_LOST = "LOST SOUL"; -CC_CACO = "CACODEMON"; -CC_HELL = "HELL KNIGHT"; -CC_BARON = "BARON OF HELL"; -CC_ARACH = "ARACHNOTRON"; -CC_PAIN = "PAIN ELEMENTAL"; -CC_REVEN = "REVENANT"; -CC_MANCU = "MANCUBUS"; -CC_ARCH = "ARCH-VILE"; -CC_SPIDER = "THE SPIDER MASTERMIND"; -CC_CYBER = "THE CYBERDEMON"; -CC_HERO = "OUR HERO"; - -// Friendly names -FN_ZOMBIE = "Zombieman"; -FN_SHOTGUN = "Sergeant"; -FN_HEAVY = "Chaingunner"; -FN_IMP = "Imp"; -FN_DEMON = "Demon"; -FN_SPECTRE = "Spectre"; -FN_LOST = "Lost Soul"; -FN_CACO = "Cacodemon"; -FN_HELL = "Hell Knight"; -FN_BARON = "Baron of Hell"; -FN_ARACH = "Arachnotron"; -FN_PAIN = "Pain Elemental"; -FN_REVEN = "Revenant"; -FN_MANCU = "Mancubus"; -FN_ARCH = "Arch-vile"; -FN_SPIDER = "Spider Mastermind"; -FN_CYBER = "Cyberdemon"; -FN_WOLFSS = "Nazi"; -FN_DOG = "Dog"; - -// New strings from BOOM -PD_BLUEC = "You need a blue card to open this door"; -PD_REDC = "You need a red card to open this door"; -PD_YELLOWC = "You need a yellow card to open this door"; -PD_BLUES = "You need a blue skull to open this door"; -PD_REDS = "You need a red skull to open this door"; -PD_YELLOWS = "You need a yellow skull to open this door"; -PD_ANY = "Any key will open this door"; -PD_ANYOBJ = "Any key will activate this object"; -PD_ALL3 = "You need all three keys to open this door"; -PD_ALL3O = "You need all three keys to activate this object"; -PD_ALL6 = "You need all six keys to open this door"; -PD_ALL6O = "You need all six keys to activate this object"; -PD_ALLKEYS = "You need all the keys"; - -// Gameflow messages -TXT_FRAGLIMIT = "Fraglimit hit."; -TXT_TIMELIMIT = "Timelimit hit."; - -// Spree messages -SPREEKILLSELF = "%o was looking good until %g killed %hself!"; -SPREEOVER = "%o's killing spree was ended by %k"; -SPREE5 = "%k is on a killing spree!"; -SPREE10 = "%k is on a rampage!"; -SPREE15 = "%k is dominating!"; -SPREE20 = "%k is unstoppable!"; -SPREE25 = "%k is Godlike!"; - -// Multikill messages -MULTI2 = "Double kill!"; -MULTI3 = "Multi kill!"; -MULTI4 = "Ultra kill!"; -MULTI5 = "Monster kill!"; - -// Obituary strings -// First the self-kills, then the other-kills -OB_SUICIDE = "%o suicides."; -OB_FALLING = "%o fell too far."; -OB_CRUSH = "%o was squished."; -OB_EXIT = "%o tried to leave."; -OB_WATER = "%o can't swim."; -OB_SLIME = "%o mutated."; -OB_LAVA = "%o melted."; -OB_BARREL = "%o went boom."; -OB_SPLASH = "%o stood in the wrong spot."; -OB_R_SPLASH = "%o should have stood back."; -OB_ROCKET = "%o should have stood back."; -OB_KILLEDSELF = "%o killed %hself."; - -OB_VOODOO = "%o was killed by the power of voodoo."; -OB_STEALTHBABY = "%o thought %g saw an arachnotron."; -OB_STEALTHVILE = "%o thought %g saw an archvile."; -OB_STEALTHBARON = "%o thought %g saw a Baron of Hell."; -OB_STEALTHCACO = "%o thought %g saw a cacodemon."; -OB_STEALTHCHAINGUY = "%o thought %g saw a chaingunner."; -OB_STEALTHDEMON = "%o thought %g saw a demon."; -OB_STEALTHKNIGHT = "%o thought %g saw a Hell Knight."; -OB_STEALTHIMP = "%o thought %g saw an imp."; -OB_STEALTHFATSO = "%o thought %g saw a mancubus."; -OB_STEALTHUNDEAD = "%o thought %g saw a revenant."; -OB_STEALTHSHOTGUY = "%o thought %g saw a sergeant."; -OB_STEALTHZOMBIE = "%o thought %g saw a zombieman."; -OB_UNDEADHIT = "%o was punched by a revenant."; -OB_IMPHIT = "%o was slashed by an imp."; -OB_CACOHIT = "%o got too close to a cacodemon."; -OB_DEMONHIT = "%o was bit by a demon."; -OB_SPECTREHIT = "%o was eaten by a spectre."; -OB_BARONHIT = "%o was ripped open by a Baron of Hell."; -OB_KNIGHTHIT = "%o was gutted by a Hell Knight."; -OB_ZOMBIE = "%o was killed by a zombieman."; -OB_SHOTGUY = "%o was shot by a sergeant."; -OB_VILE = "%o was incinerated by an archvile."; -OB_UNDEAD = "%o couldn't evade a revenant's fireball."; -OB_FATSO = "%o was squashed by a mancubus."; -OB_CHAINGUY = "%o was perforated by a chaingunner."; -OB_SKULL = "%o was spooked by a lost soul."; -OB_IMP = "%o was burned by an imp."; -OB_CACO = "%o was smitten by a cacodemon."; -OB_BARON = "%o was bruised by a Baron of Hell."; -OB_KNIGHT = "%o was splayed by a Hell Knight."; -OB_SPIDER = "%o stood in awe of the spider demon."; -OB_BABY = "%o let an arachnotron get %h."; -OB_CYBORG = "%o was splattered by a cyberdemon."; -OB_WOLFSS = "%o met a Nazi."; -OB_DOG = "%o was mauled by a dog."; - -OB_CHICKEN = "%o was pecked to death."; -OB_BEAST = "%o was charred by a weredragon."; -OB_CLINK = "%o was slashed by a sabreclaw."; -OB_DSPARIL1 = "%o was scalded by D'Sparil's serpent."; -OB_DSPARIL1HIT = "%o was chewed up by D'Sparil's serpent."; -OB_DSPARIL2 = "%o was no match for D'Sparil."; -OB_DSPARIL2HIT = "%o was smacked down by D'Sparil."; -OB_HERETICIMP = "%o was scarred by a gargoyle."; -OB_HERETICIMPHIT = "%o was hacked by a gargoyle."; -OB_IRONLICH = "%o was devastated by an ironlich."; -OB_IRONLICHHIT = "%o got up-close and personal with an ironlich."; -OB_BONEKNIGHT = "%o was axed by an undead warrior."; -OB_BONEKNIGHTHIT = "%o was slain by an undead warrior."; -OB_MINOTAUR = "%o was blasted into cinders by a Maulotaur."; -OB_MINOTAURHIT = "%o was pulped by a Maulotaur."; -OB_MUMMY = "%o was smashed by a golem."; -OB_MUMMYLEADER = "%o was shrieked to death by a nitrogolem."; -OB_SNAKE = "%o was rattled by an ophidian."; -OB_WIZARD = "%o was cursed by a wizard."; -OB_WIZARDHIT = "%o was palpated by a wizard."; - -OB_FIREDEMON = "%o tasted an Afrit's fire."; -OB_DEMON1 = "%o was scalded by a Serpent."; -OB_DEMON2 = "%o was poisoned by a Serpent."; -OB_ETTIN = "%o was mashed by an Ettin."; -OB_CENTAUR = "%o was cut up by a Centaur."; -OB_SLAUGHTAURHIT = "%o was cut up by a Slaughtaur."; -OB_SLAUGHTAUR = "%o was struck down by a Slaughtaur's fireball."; -OB_BISHOP = "%o succumbed to a Bishop's dark power."; -OB_ICEGUY = "%o was frozen solid by a Wendigo."; -OB_SERPENTHIT = "%o was mauled by a Stalker."; -OB_SERPENT = "%o was melted by a Stalker."; -OB_WRAITH = "%o was charred by a Reiver."; -OB_WRAITHHIT = "%o had %p life stolen by a Reiver."; -OB_DRAGON = "%o was incinerated by the Death Wyvern."; -OB_KORAX = "%o was swept from the board by Korax."; -OB_FBOSS = "%o was slain by Zedek."; -OB_MBOSS = "%o couldn't absorb Menelkir's Mana."; -OB_CBOSS = "%o was baptized by Traductus."; -OB_HERESIARCH = "%o had %p bones rolled by the Heresiarch."; - -OB_ACOLYTE = "%o was zealously shot down by an Acolyte."; -OB_MACIL = "%o should have never rebelled against Macil."; -OB_REBEL = "%o was gunned down by a Rebel."; -OB_BEGGAR = "%o was beaten to death by the poor."; -OB_PEASANT = "%o should have never picked a fight with a civilian."; -OB_ALIENSPECTRE = "%o was struck down by the Spectre."; -OB_ENTITY = "%o felt the wrath of The One God."; -OB_LOREMASTER = "%o couldn't escape from the Lore Master's grasp."; -OB_PROGRAMMER = "%o was deleted by the Programmer."; -OB_STFBISHOP = "%o was blown away by the Bishop."; -OB_SENTINEL = "%o was shot down by a Sentinel."; -OB_CRUSADER = "%o was swept away by a Crusader."; -OB_INQUISITOR = "%o was sentenced by an Inquisitor."; -OB_STALKER = "%o was bugged by a Stalker."; -OB_TURRET = "%o triggered the automatic defenses."; -OB_TEMPLARHIT = "%o was clawed by a Templar."; -OB_TEMPLAR = "%o was vaporized by a Templar."; -OB_REAVERHIT = "%o was sliced open by a Reaver."; -OB_REAVER = "%o was shot down by a Reaver."; - -OB_MPFIST = "%o chewed on %k's fist."; -OB_MPCHAINSAW = "%o was mowed over by %k's chainsaw."; -OB_MPPISTOL = "%o was tickled by %k's pea shooter."; -OB_MPSHOTGUN = "%o chewed on %k's boomstick."; -OB_MPSSHOTGUN = "%o was splattered by %k's super shotgun."; -OB_MPCHAINGUN = "%o was mowed down by %k's chaingun."; -OB_MPROCKET = "%o rode %k's rocket."; -OB_MPR_SPLASH = "%o almost dodged %k's rocket."; -OB_MPPLASMARIFLE = "%o was melted by %k's plasma gun."; -OB_MPBFG_BOOM = "%o was splintered by %k's BFG."; -OB_MPBFG_SPLASH = "%o couldn't hide from %k's BFG."; -OB_MPTELEFRAG = "%o was telefragged by %k."; -OB_RAILGUN = "%o was railed by %k."; -OB_MPBFG_MBF = "%o was burned by %k's BFG."; - -OB_MPSTAFF = "%o got staffed by %k."; -OB_MPGAUNTLETS = "%o got a shock from %k's gauntlets."; -OB_MPGOLDWAND = "%o waved goodbye to %k's elven wand."; -OB_MPCROSSBOW = "%o was pegged by %k's ethereal crossbow."; -OB_MPBLASTER = "%o was blasted a new one by %k's dragon claw."; -OB_MPSKULLROD = "%o got sent down under by %k's hellstaff."; -OB_MPPHOENIXROD = "%o was scorched to cinders by %k's phoenix rod."; -OB_MPMACE = "%o was bounced by %k's firemace."; - -OB_MPPSTAFF = "%o got clapped by %k's charged staff."; -OB_MPPGAUNTLETS = "%o was bled dry by %k's gauntlets."; -OB_MPPGOLDWAND = "%o was assaulted by %k's elven wand."; -OB_MPPCROSSBOW = "%o was shafted by %k's ethereal crossbow."; -OB_MPPBLASTER = "%o was ripped apart by %k's dragon claw."; -OB_MPPSKULLROD = "%k poured %p hellstaff on %o."; -OB_MPPPHOENIXROD = "%o was burned down by %k's phoenix staff."; -OB_MPPMACE = "%o was squished by %k's giant mace sphere."; - -OB_MPFWEAPFIST = "%o was beaten to a pulp by %k's bare fists."; -OB_MPFWEAPAXE = "%o got the axe from %k."; -OB_MPFWEAPHAMMERM = "%o had %p head caved in by %k's hammer."; -OB_MPFWEAPHAMMERR = "%o's soul was forged anew by %k's hammer."; -OB_MPFWEAPQUIETUS = "%o was silenced by %k's mighty Quietus."; -OB_MPCWEAPMACE = "%o got a mace to the face from %k."; -OB_MPCWEAPSTAFFM = "%o was bitten by %k's serpent staff."; -OB_MPCWEAPSTAFFR = "%o choked on %k's serpent staff."; -OB_MPCWEAPFLAME = "%o was lit up by %k's flames."; -OB_MPCWEAPWRAITHVERGE = "%o was cleansed by %k's Wraithverge."; -OB_MPMWEAPWAND = "%o took one too many sapphire beams from %k."; -OB_MPMWEAPFROST = "%o was turned into a frosty fellow by %k."; -OB_MPMWEAPLIGHTNING = "%o received a shocking revelation from %k."; -OB_MPMWEAPBLOODSCOURGE = "%o was wiped off the face of the universe by %k's Bloodscourge."; - -OB_MPPUNCHDAGGER = "%o was unwittingly backstabbed by %k."; -OB_MPELECTRICBOLT = "%o got bolted to the wall by %k."; -OB_MPPOISONBOLT = "%o received a lethal dose of %k's wrath."; -OB_MPASSAULTGUN = "%o was drilled full of holes by %k's assault gun."; -OB_MPMINIMISSILELAUNCHER = "%o gulped down %k's missile."; -OB_MPSTRIFEGRENADE = "%o was inverted by %k's H-E grenade."; -OB_MPPHOSPHOROUSGRENADE = "%o took a flame bath in %k's phosphorous pyre."; -OB_MPFLAMETHROWER = "%o was barbecued by %k."; -OB_MPMAULER1 = "%o was zapped by %k."; -OB_MPMAULER = "%o was viciously vaporized by %k."; -OB_MPSIGIL = "%o bowed down to the sheer power of %k's Sigil."; - -// Same as OB_MPTELEFRAG, but shown when a monster telefrags you -OB_MONTELEFRAG = "%o was telefragged."; - -OB_DEFAULT = "%o died."; -OB_MPDEFAULT = "%o was killed by %k."; -OB_FRIENDLY1 = "%k mows down a teammate."; -OB_FRIENDLY2 = "%k checks %p glasses."; -OB_FRIENDLY3 = "%k gets a frag for the other team."; -OB_FRIENDLY4 = "%k loses another friend."; - -SAVEGAMENAME = "zdoomsv"; -STARTUP1 = ""; -STARTUP2 = ""; -STARTUP3 = ""; -STARTUP4 = ""; -STARTUP5 = ""; - -// Save file comment -SAVECOMMENT_TIME = "time"; - -// Scoreboard text -SCORE_ITEMS = "ITEMS"; -SCORE_BONUS = "BONUS"; -SCORE_COLOR = "COLOR"; -SCORE_SECRET = "SECRET"; -SCORE_NAME = "NAME"; -SCORE_DELAY = "DELAY(ms)"; -SCORE_KILLS = "KILLS"; -SCORE_FRAGS = "FRAGS"; -SCORE_DEATHS = "DEATHS"; -SCORE_MISSED = "MISSED"; -SCORE_TOTAL = "TOTAL"; -SCORE_LVLTIME = "LEVEL TIME"; - -// Item tags: Doom weapons -TAG_FIST = "Brass Knuckles"; -TAG_CHAINSAW = "Chainsaw"; -TAG_PISTOL = "Pistol"; -TAG_SHOTGUN = "Shotgun"; -TAG_SUPERSHOTGUN = "Super Shotgun"; -TAG_CHAINGUN = "Chaingun"; -TAG_ROCKETLAUNCHER = "Rocket Launcher"; -TAG_PLASMARIFLE = "Plasma Rifle"; -TAG_BFG9000 = "BFG 9000"; - -// Item tags: Heretic weapons -TAG_STAFF = "Staff"; -TAG_GAUNTLETS = "Gauntlets of the Necromancer"; -TAG_GOLDWAND = "Elven Wand"; -TAG_CROSSBOW = "Ethereal Crossbow"; -TAG_BLASTER = "Dragon Claw"; -TAG_SKULLROD = "Hellstaff"; -TAG_PHOENIXROD = "Phoenix Rod"; -TAG_MACE = "Firemace"; - -TAG_STAFFP = "Staff"; -TAG_GAUNTLETSP = "Gauntlets of the Necromancer"; -TAG_GOLDWANDP = "Elven Wand"; -TAG_CROSSBOWP = "Ethereal Crossbow"; -TAG_BLASTERP = "Dragon Claw"; -TAG_SKULLRODP = "Hellstaff"; -TAG_PHOENIXRODP = "Phoenix Rod"; -TAG_MACEP = "Firemace"; - -// Item tags: Heretic artifacts -TAG_ARTIEGG = "Morph Ovum"; -TAG_ARTIFIREBOMB = "Timebomb of the Ancients"; -TAG_ARTIFLY = "Wings of Wrath"; -TAG_ARTIHEALTH = "Quartz Flask"; -TAG_ARTIINVISIBILITY = "Shadowsphere"; -TAG_ARTIINVULNERABILITY = "Ring of Invincibility"; -TAG_ARTISUPERHEALTH = "Mystic Urn"; -TAG_ARTITELEPORT = "Chaos Device"; -TAG_ARTITOMEOFPOWER = "Tome of Power"; -TAG_ARTITORCH = "Torch"; - -// Item tags: Hexen weapons -TAG_CWEAPMACE = "Mace of Contrition"; -TAG_CWEAPSTAFF = "Serpent Staff"; -TAG_CWEAPFLAME = "Firestorm"; -TAG_CWEAPWRAITHVERGE = "Wraithverge"; -TAG_FWEAPFIST = "Spiked Gauntlets"; -TAG_FWEAPAXE = "Timon's Axe"; -TAG_FWEAPHAMMER = "Hammer of Retribution"; -TAG_FWEAPQUIETUS = "Quietus"; -TAG_MWEAPWAND = "Sapphire Wand"; -TAG_MWEAPFROST = "Frost Shards"; -TAG_MWEAPLIGHTNING = "Arcs of Death"; -TAG_MWEAPBLOODSCOURGE = "Bloodscourge"; - -// Item tags: Hexen artifacts -TAG_ARTIBLASTRADIUS = "Disc of Repulsion"; -TAG_ARTIBOOSTARMOR = "Dragonskin Bracers"; -TAG_ARTIBOOSTMANA = "Krater of Might"; -TAG_ARTIPOISONBAG = "Flechette"; -TAG_ARTIPOISONBAG1 = "Poison Cloud Flechette"; -TAG_ARTIPOISONBAG2 = "Timebomb Flechette"; -TAG_ARTIPOISONBAG3 = "Grenade Flechette"; -TAG_ARTIHEALINGRADIUS = "Mystic Ambit Incant"; -TAG_ARTIDEFENDER = "Icon of the Defender"; -TAG_ARTIPORK = "Porkelator"; -TAG_ARTISPEED = "Boots of Speed"; -TAG_ARTISUMMON = "Dark Servant"; -TAG_ARTITELEPORTOTHER = "Banishment Device"; - -// Item tags: Hexen puzzle items -TAG_ARTIPUZZSKULL = "Yorick's Skull"; -TAG_ARTIPUZZGEMBIG = "Heart of D'Sparil"; -TAG_ARTIPUZZGEMRED = "Ruby Planet"; -TAG_ARTIPUZZGEMGREEN1 = "Emerald Planet (1)"; -TAG_ARTIPUZZGEMGREEN2 = "Emerald Planet (2)"; -TAG_ARTIPUZZGEMBLUE1 = "Sapphire Planet (1)"; -TAG_ARTIPUZZGEMBLUE2 = "Sapphire Planet (2)"; -TAG_ARTIPUZZBOOK1 = "Daemon Codex"; -TAG_ARTIPUZZBOOK2 = "Liber Oscura"; -TAG_ARTIPUZZSKULL2 = "Flame Mask"; -TAG_ARTIPUZZFWEAPON = "Glaive Seal"; -TAG_ARTIPUZZCWEAPON = "Holy Relic"; -TAG_ARTIPUZZMWEAPON = "Sigil of the Magus"; -TAG_ARTIPUZZGEAR1 = "Iron gear"; -TAG_ARTIPUZZGEAR2 = "Brass gear"; -TAG_ARTIPUZZGEAR3 = "Brass and iron gear"; -TAG_ARTIPUZZGEAR4 = "Silver and brass gear"; - -// Item tags: Strife weapons -TAG_PUNCHDAGGER = "Dagger"; -TAG_STRIFECROSSBOW1 = "Crossbow"; -TAG_STRIFECROSSBOW2 = "Crossbow"; -TAG_ASSAULTGUN = "Assault Gun"; -TAG_MMLAUNCHER = "Mini Missile Launcher"; -TAG_FLAMER = "Flame Thrower"; -TAG_MAULER1 = "Mauler"; -TAG_MAULER2 = "Mauler"; -TAG_GLAUNCHER1 = "Grenade Launcher"; -TAG_GLAUNCHER2 = "Grenade Launcher"; -TAG_SIGIL = "SIGIL"; - -// Item tags: Strife artifacts -TAG_COIN = "coin"; -TAG_MEDPATCH = "Med patch"; -TAG_MEDICALKIT = "Medical kit"; -TAG_SURGERYKIT = "Surgery Kit"; // "full_health" in the Teaser -TAG_BELDINSRING = "Ring"; -TAG_OFFERINGCHALICE = "Offering Chalice"; -TAG_EAR = "Ear"; -TAG_BROKENCOUPLING = "Broken Power Coupling"; -TAG_SHADOWARMOR = "Shadow Armor"; -TAG_ENVSUIT = "Environmental Suit"; -TAG_GUARDUNIFORM = "Guard Uniform"; -TAG_OFFICERSUNIFORM = "Officer's Uniform"; -TAG_FTHROWERPARTS = "Flame Thrower Parts"; -TAG_REPORT = "Report"; -TAG_INFO = "Info"; -TAG_TARGETER = "Targeter"; -TAG_COMMUNICATOR = "Communicator"; -TAG_DEGNINORE = "Degnin Ore"; -TAG_GUNTRAINING = "Accuracy"; -TAG_HEALTHTRAINING = "Toughness"; -TAG_SCANNER = "Scanner"; -TAG_PRISONPASS = "Prison Pass"; -TAG_ALARM = "Alarm"; -TAG_AMMOFILLUP = "Ammo"; -TAG_HEALTHFILLUP = "Health"; -TAG_TELEPORTERBEACON = "Teleporter Beacon"; -TAG_METALARMOR = "Metal Armor"; -TAG_LEATHER = "Leather Armor"; -TAG_HEGRENADES = "HE-Grenade Rounds"; -TAG_PHGRENADES = "Phosphorus-Grenade Rounds"; // "Fire-Grenade_Rounds" in the Teaser -TAG_CLIPOFBULLETS = "Clip of Bullets"; // "bullets" in the Teaser -TAG_BOXOFBULLETS = "Ammo"; -TAG_MINIMISSILES = "Mini Missiles"; //"rocket" in the Teaser -TAG_CRATEOFMISSILES = "Crate of Missiles"; //"box_of_rockets" in the Teaser -TAG_ENERGYPOD = "Energy Pod"; -TAG_ENERGYPACK = "Energy Pack"; -TAG_POISONBOLTS = "Poison Bolts"; // "poison_arrows" in the Teaser -TAG_ELECTRICBOLTS = "Electric Bolts"; // "electric_arrows" in the Teaser -TAG_AMMOSATCHEL = "Ammo Satchel"; // "Back_pack" in the Teaser - -// Item tags: Strife keys -TAG_BASEKEY = "Base Key"; -TAG_GOVSKEY = "Govs Key"; // "Rebel_Key" in the Teaser -TAG_PASSCARD = "Passcard"; -TAG_IDBADGE = "ID Badge"; -TAG_PRISONKEY = "Prison Key"; -TAG_SEVEREDHAND = "Severed Hand"; -TAG_POWER1KEY = "Power1 Key"; -TAG_POWER2KEY = "Power2 Key"; -TAG_POWER3KEY = "Power3 Key"; -TAG_GOLDKEY = "Gold Key"; -TAG_IDCARD = "ID Card"; -TAG_SILVERKEY = "Silver Key"; -TAG_ORACLEKEY = "Oracle Key"; -TAG_MILITARYID = "Military ID"; -TAG_ORDERKEY = "Order Key"; -TAG_WAREHOUSEKEY = "Warehouse Key"; -TAG_BRASSKEY = "Brass Key"; -TAG_REDCRYSTALKEY = "Red Crystal Key"; -TAG_BLUECRYSTALKEY = "Blue Crystal Key"; -TAG_CHAPELKEY = "Chapel Key"; -TAG_CATACOMBKEY = "Catacomb Key"; // "Tunnel_Key" in the Teaser -TAG_SECURITYKEY = "Security Key"; -TAG_COREKEY = "Core Key"; // "New_Key1" in the Teaser -TAG_MAULERKEY = "Mauler Key"; // "New_Key2" in the Teaser -TAG_FACTORYKEY = "Factory Key"; // "New_Key3" in the Teaser -TAG_MINEKEY = "Mine Key"; // "New_Key4" in the Teaser -TAG_NEWKEY5 = "New Key5"; -TAG_ORACLEPASS = "Oracle Pass"; - -// Item tags: misc Strife stuff -TAG_10GOLD = "10 gold"; -TAG_25GOLD = "25 gold"; -TAG_50GOLD = "50 gold"; -TAG_300GOLD = "300 gold"; - -// Item tags: Strife NPCs -TAG_ACOLYTE = "ACOLYTE"; -TAG_ARMORER = "Armorer"; -TAG_BARKEEP = "Bar Keep"; -TAG_BEGGAR = "Beggar"; -TAG_MACIL1 = "MACIL"; -TAG_MACIL2 = "MACIL"; -TAG_MEDIC = "Medic"; -TAG_ORACLE = "Oracle"; -TAG_PRIEST = "PRIEST"; -TAG_RATBUDDY = "rat buddy"; -TAG_REBEL = "Rebel"; -TAG_TEMPLAR = "TEMPLAR"; -TAG_WEAPONSMITH = "Weapon Smith"; - -// Item tags: Chex weapons -TAG_SPOON = "Spoon"; -TAG_SPORK = "Super Bootspork"; -TAG_MINIZORCHER = "Mini Zorcher"; -TAG_LARGEZORCHER = "Large Zorcher"; -TAG_SUPERLARGEZORCHER = "Super-Large Zorcher"; -TAG_RAPIDZORCHER = "Rapid Zorcher"; -TAG_ZORCHPROPULSOR = "Zorch Propulsor"; -TAG_PHASINGZORCHER = "Phasing Zorcher"; -TAG_LAZDEVICE = "LAZ Device"; - -// Heretic strings -HE1TEXT = - "with the destruction of the iron\n" - "liches and their minions, the last\n" - "of the undead are cleared from this\n" - "plane of existence.\n\n" - "those creatures had to come from\n" - "somewhere, though, and you have the\n" - "sneaky suspicion that the fiery\n" - "portal of hell's maw opens onto\n" - "their home dimension.\n\n" - "to make sure that more undead\n" - "(or even worse things) don't come\n" - "through, you'll have to seal hell's\n" - "maw from the other side. of course\n" - "this means you may get stuck in a\n" - "very unfriendly world, but no one\n" - "ever said being a Heretic was easy!"; -HE2TEXT = - "the mighty maulotaurs have proved\n" - "to be no match for you, and as\n" - "their steaming corpses slide to the\n" - "ground you feel a sense of grim\n" - "satisfaction that they have been\n" - "destroyed.\n\n" - "the gateways which they guarded\n" - "have opened, revealing what you\n" - "hope is the way home. but as you\n" - "step through, mocking laughter\n" - "rings in your ears.\n\n" - "was some other force controlling\n" - "the maulotaurs? could there be even\n" - "more horrific beings through this\n" - "gate? the sweep of a crystal dome\n" - "overhead where the sky should be is\n" - "certainly not a good sign...."; -HE3TEXT = - "the death of d'sparil has loosed\n" - "the magical bonds holding his\n" - "creatures on this plane, their\n" - "dying screams overwhelming his own\n" - "cries of agony.\n\n" - "your oath of vengeance fulfilled,\n" - "you enter the portal to your own\n" - "world, mere moments before the dome\n" - "shatters into a million pieces.\n\n" - "but if d'sparil's power is broken\n" - "forever, why don't you feel safe?\n" - "was it that last shout just before\n" - "his death, the one that sounded\n" - "like a curse? or a summoning? you\n" - "can't really be sure, but it might\n" - "just have been a scream.\n\n" - "then again, what about the other\n" - "serpent riders?"; -HE4TEXT = - "you thought you would return to your\n" - "own world after d'sparil died, but\n" - "his final act banished you to his\n" - "own plane. here you entered the\n" - "shattered remnants of lands\n" - "conquered by d'sparil. you defeated\n" - "the last guardians of these lands,\n" - "but now you stand before the gates\n" - "to d'sparil's stronghold. until this\n" - "moment you had no doubts about your\n" - "ability to face anything you might\n" - "encounter, but beyond this portal\n" - "lies the very heart of the evil\n" - "which invaded your world. d'sparil\n" - "might be dead, but the pit where he\n" - "was spawned remains. now you must\n" - "enter that pit in the hopes of\n" - "finding a way out. and somewhere,\n" - "in the darkest corner of d'sparil's\n" - "demesne, his personal bodyguards\n" - "await your arrival ..."; -HE5TEXT = - "as the final maulotaur bellows his\n" - "death-agony, you realize that you\n" - "have never come so close to your own\n" - "destruction. not even the fight with\n" - "d'sparil and his disciples had been\n" - "this desperate. grimly you stare at\n" - "the gates which open before you,\n" - "wondering if they lead home, or if\n" - "they open onto some undreamed-of\n" - "horror. you find yourself wondering\n" - "if you have the strength to go on,\n" - "if nothing but death and pain await\n" - "you. but what else can you do, if\n" - "the will to fight is gone? can you\n" - "force yourself to continue in the\n" - "face of such despair? do you have\n" - "the courage? you find, in the end,\n" - "that it is not within you to\n" - "surrender without a fight. eyes\n" - "wide, you go to meet your fate."; - -// EPISODE 1 - THE CITY OF THE DAMNED -HHUSTR_E1M1 = "THE DOCKS"; -HHUSTR_E1M2 = "THE DUNGEONS"; -HHUSTR_E1M3 = "THE GATEHOUSE"; -HHUSTR_E1M4 = "THE GUARD TOWER"; -HHUSTR_E1M5 = "THE CITADEL"; -HHUSTR_E1M6 = "THE CATHEDRAL"; -HHUSTR_E1M7 = "THE CRYPTS"; -HHUSTR_E1M8 = "HELL'S MAW"; -HHUSTR_E1M9 = "THE GRAVEYARD"; - -// EPISODE 2 - HELL'S MAW -HHUSTR_E2M1 = "THE CRATER"; -HHUSTR_E2M2 = "THE LAVA PITS"; -HHUSTR_E2M3 = "THE RIVER OF FIRE"; -HHUSTR_E2M4 = "THE ICE GROTTO"; -HHUSTR_E2M5 = "THE CATACOMBS"; -HHUSTR_E2M6 = "THE LABYRINTH"; -HHUSTR_E2M7 = "THE GREAT HALL"; -HHUSTR_E2M8 = "THE PORTALS OF CHAOS"; -HHUSTR_E2M9 = "THE GLACIER"; - -// EPISODE 3 - THE DOME OF D'SPARIL -HHUSTR_E3M1 = "THE STOREHOUSE"; -HHUSTR_E3M2 = "THE CESSPOOL"; -HHUSTR_E3M3 = "THE CONFLUENCE"; -HHUSTR_E3M4 = "THE AZURE FORTRESS"; -HHUSTR_E3M5 = "THE OPHIDIAN LAIR"; -HHUSTR_E3M6 = "THE HALLS OF FEAR"; -HHUSTR_E3M7 = "THE CHASM"; -HHUSTR_E3M8 = "D'SPARIL'S KEEP"; -HHUSTR_E3M9 = "THE AQUIFER"; - -// EPISODE 4: THE OSSUARY -HHUSTR_E4M1 = "CATAFALQUE"; -HHUSTR_E4M2 = "BLOCKHOUSE"; -HHUSTR_E4M3 = "AMBULATORY"; -HHUSTR_E4M4 = "SEPULCHER"; -HHUSTR_E4M5 = "GREAT STAIR"; -HHUSTR_E4M6 = "HALLS OF THE APOSTATE"; -HHUSTR_E4M7 = "RAMPARTS OF PERDITION"; -HHUSTR_E4M8 = "SHATTERED BRIDGE"; -HHUSTR_E4M9 = "MAUSOLEUM"; - -// EPISODE 5: THE STAGNANT DEMESNE -HHUSTR_E5M1 = "OCHRE CLIFFS"; -HHUSTR_E5M2 = "RAPIDS"; -HHUSTR_E5M3 = "QUAY"; -HHUSTR_E5M4 = "COURTYARD"; -HHUSTR_E5M5 = "HYDRATYR"; -HHUSTR_E5M6 = "COLONNADE"; -HHUSTR_E5M7 = "FOETID MANSE"; -HHUSTR_E5M8 = "FIELD OF JUDGEMENT"; -HHUSTR_E5M9 = "SKEIN OF D'SPARIL"; - -// Keys - -TXT_GOTBLUEKEY = "BLUE KEY"; -TXT_GOTYELLOWKEY = "YELLOW KEY"; -TXT_GOTGREENKEY = "GREEN KEY"; - -// Artifacts - -TXT_ARTIHEALTH = "QUARTZ FLASK"; -TXT_ARTIFLY = "WINGS OF WRATH"; -TXT_ARTIINVULNERABILITY = "RING OF INVINCIBILITY"; -TXT_ARTITOMEOFPOWER = "TOME OF POWER"; -TXT_ARTIINVISIBILITY = "SHADOWSPHERE"; -TXT_ARTIEGG = "MORPH OVUM"; -TXT_ARTISUPERHEALTH = "MYSTIC URN"; -TXT_ARTITORCH = "TORCH"; -TXT_ARTIFIREBOMB = "TIME BOMB OF THE ANCIENTS"; -TXT_ARTITELEPORT = "CHAOS DEVICE"; - -// Items - -TXT_ITEMHEALTH = "CRYSTAL VIAL"; -TXT_ITEMBAGOFHOLDING = "BAG OF HOLDING"; -TXT_ITEMSHIELD1 = "SILVER SHIELD"; -TXT_ITEMSHIELD2 = "ENCHANTED SHIELD"; -TXT_ITEMSUPERMAP = "MAP SCROLL"; - -// Ammo - -TXT_AMMOGOLDWAND1 = "WAND CRYSTAL"; -TXT_AMMOGOLDWAND2 = "CRYSTAL GEODE"; -TXT_AMMOMACE1 = "MACE SPHERES"; -TXT_AMMOMACE2 = "PILE OF MACE SPHERES"; -TXT_AMMOCROSSBOW1 = "ETHEREAL ARROWS"; -TXT_AMMOCROSSBOW2 = "QUIVER OF ETHEREAL ARROWS"; -TXT_AMMOBLASTER1 = "CLAW ORB"; -TXT_AMMOBLASTER2 = "ENERGY ORB"; -TXT_AMMOSKULLROD1 = "LESSER RUNES"; -TXT_AMMOSKULLROD2 = "GREATER RUNES"; -TXT_AMMOPHOENIXROD1 = "FLAME ORB"; -TXT_AMMOPHOENIXROD2 = "INFERNO ORB"; - -// Weapons - -TXT_WPNGOLDWAND = "GOLD WAND"; -TXT_WPNMACE = "FIREMACE"; -TXT_WPNCROSSBOW = "ETHEREAL CROSSBOW"; -TXT_WPNBLASTER = "DRAGON CLAW"; -TXT_WPNSKULLROD = "HELLSTAFF"; -TXT_WPNPHOENIXROD = "PHOENIX ROD"; -TXT_WPNGAUNTLETS = "GAUNTLETS OF THE NECROMANCER"; - -TXT_NEEDBLUEKEY = "YOU NEED A BLUE KEY TO OPEN THIS DOOR"; -TXT_NEEDGREENKEY = "YOU NEED A GREEN KEY TO OPEN THIS DOOR"; -TXT_NEEDYELLOWKEY = "YOU NEED A YELLOW KEY TO OPEN THIS DOOR"; - -TXT_CHEATPOWERON = "POWER ON"; -TXT_CHEATPOWEROFF = "POWER OFF"; -TXT_CHEATHEALTH = "FULL HEALTH"; -TXT_CHEATKEYS = "ALL KEYS"; -TXT_CHEATSOUNDON = "SOUND DEBUG ON"; -TXT_CHEATSOUNDOFF = "SOUND DEBUG OFF"; -TXT_CHEATIDDQD = "TRYING TO CHEAT, EH? NOW YOU DIE!"; -TXT_CHEATIDKFA = "CHEATER - YOU DON'T DESERVE WEAPONS"; -TXT_CHEATTICKERON = "TICKER ON"; -TXT_CHEATTICKEROFF = "TICKER OFF"; -TXT_CHEATARTIFACTS3 = "YOU GOT IT"; -TXT_MIDASTOUCH = "YOU GOT THE MIDAS TOUCH, BABY"; -TXT_GOTSTUFF = "You got the stuff!"; -TXT_FREEZEON = "Freeze mode on"; -TXT_FREEZEOFF = "Freeze mode off"; -TXT_STRANGE = "You feel strange..."; -TXT_STRANGER = "You feel even stranger."; -TXT_NOTSTRANGE = "You feel like yourself again."; -TXT_LEADBOOTSON = "Lead Boots On"; -TXT_LEADBOOTSOFF = "Lead Boots Off"; -TXT_LIGHTER = "You feel lighter"; -TXT_GRAVITY = "Gravity weighs you down"; - -// Raven intermission - -TXT_IMKILLS = "Kills"; -TXT_IMITEMS = "Items"; -TXT_IMSECRETS = "Secrets"; -TXT_IMTIME = "Time"; -TXT_IMSUCKS = "Sucks"; -TXT_IMSCRT = "Scrt"; -TXT_IMPAR = "Par"; - -// For testing the extended characters' positioning. -//TXT_IMKILLS = "AÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽ"; -//TXT_IMITEMS = "OÃÃÑÒÓÔÕÖØÙÚÛÜÃÞß"; - -RAVENQUITMSG = "ARE YOU SURE YOU WANT TO QUIT?"; - -// Friendly names -FN_CHICKEN = "Chicken"; -FN_BEAST = "Weredragon"; -FN_CLINK = "Sabreclaw"; -FN_DSPARIL = "D'Sparil"; -FN_HERETICIMP = "Gargoyle"; -FN_IRONLICH = "Ironlich"; -FN_BONEKNIGHT = "Undead Warrior"; -FN_MINOTAUR = "Maulotaur"; -FN_MUMMY = "Golem"; -FN_MUMMYLEADER = "Nitrogolem"; -FN_SNAKE = "Ophidian"; -FN_WIZARD = "Wizard"; - -// Hexen strings - -// Mana - -TXT_MANA_1 = "BLUE MANA"; -TXT_MANA_2 = "GREEN MANA"; -TXT_MANA_BOTH = "COMBINED MANA"; - -// Keys - -TXT_KEY_STEEL = "STEEL KEY"; -TXT_KEY_CAVE = "CAVE KEY"; -TXT_KEY_AXE = "AXE KEY"; -TXT_KEY_FIRE = "FIRE KEY"; -TXT_KEY_EMERALD = "EMERALD KEY"; -TXT_KEY_DUNGEON = "DUNGEON KEY"; -TXT_KEY_SILVER = "SILVER KEY"; -TXT_KEY_RUSTED = "RUSTED KEY"; -TXT_KEY_HORN = "HORN KEY"; -TXT_KEY_SWAMP = "SWAMP KEY"; -TXT_KEY_CASTLE = "CASTLE KEY"; - -TXT_NEED_KEY_STEEL = "You need the STEEL KEY"; -TXT_NEED_KEY_CAVE = "You need the CAVE KEY"; -TXT_NEED_KEY_AXE = "You need the AXE KEY"; -TXT_NEED_KEY_FIRE = "You need the FIRE KEY"; -TXT_NEED_KEY_EMERALD = "You need the EMERALD KEY"; -TXT_NEED_KEY_DUNGEON = "You need the DUNGEON KEY"; -TXT_NEED_KEY_SILVER = "You need the SILVER KEY"; -TXT_NEED_KEY_RUSTED = "You need the RUSTED KEY"; -TXT_NEED_KEY_HORN = "You need the HORN KEY"; -TXT_NEED_KEY_SWAMP = "You need the SWAMP KEY"; -TXT_NEED_KEY_CASTLE = "You need the CASTLE KEY"; - -// Artifacts - -TXT_ARTIINVULNERABILITY2 = "ICON OF THE DEFENDER"; -TXT_ARTISUMMON = "DARK SERVANT"; -TXT_ARTIEGG2 = "PORKALATOR"; -TXT_ARTIPOISONBAG = "FLECHETTE"; -TXT_ARTITELEPORTOTHER = "BANISHMENT DEVICE"; -TXT_ARTISPEED = "BOOTS OF SPEED"; -TXT_ARTIBOOSTMANA = "KRATER OF MIGHT"; -TXT_ARTIBOOSTARMOR = "DRAGONSKIN BRACERS"; -TXT_ARTIBLASTRADIUS = "DISC OF REPULSION"; -TXT_ARTIHEALINGRADIUS = "MYSTIC AMBIT INCANT"; - -// Puzzle artifacts - -TXT_ARTIPUZZSKULL = "YORICK'S SKULL"; -TXT_ARTIPUZZGEMBIG = "HEART OF D'SPARIL"; -TXT_ARTIPUZZGEMRED = "RUBY PLANET"; -TXT_ARTIPUZZGEMGREEN1 = "EMERALD PLANET"; -TXT_ARTIPUZZGEMGREEN2 = "EMERALD PLANET"; -TXT_ARTIPUZZGEMBLUE1 = "SAPPHIRE PLANET"; -TXT_ARTIPUZZGEMBLUE2 = "SAPPHIRE PLANET"; -TXT_ARTIPUZZBOOK1 = "DAEMON CODEX"; -TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; -TXT_ARTIPUZZSKULL2 = "FLAME MASK"; -TXT_ARTIPUZZFWEAPON = "GLAIVE SEAL"; -TXT_ARTIPUZZCWEAPON = "HOLY RELIC"; -TXT_ARTIPUZZMWEAPON = "SIGIL OF THE MAGUS"; -TXT_ARTIPUZZGEAR = "CLOCK GEAR"; -TXT_USEPUZZLEFAILED = "YOU CANNOT USE THIS HERE"; - -// Items - -TXT_ARMOR1 = "MESH ARMOR"; -TXT_ARMOR2 = "FALCON SHIELD"; -TXT_ARMOR3 = "PLATINUM HELMET"; -TXT_ARMOR4 = "AMULET OF WARDING"; - -// Weapons - -TXT_WEAPON_F2 = "TIMON'S AXE"; -TXT_WEAPON_F3 = "HAMMER OF RETRIBUTION"; -TXT_WEAPON_F4 = "QUIETUS ASSEMBLED"; -TXT_WEAPON_C2 = "SERPENT STAFF"; -TXT_WEAPON_C3 = "FIRESTORM"; -TXT_WEAPON_C4 = "WRAITHVERGE ASSEMBLED"; -TXT_WEAPON_M2 = "FROST SHARDS"; -TXT_WEAPON_M3 = "ARC OF DEATH"; -TXT_WEAPON_M4 = "BLOODSCOURGE ASSEMBLED"; -TXT_WEAPONPIECE = "A weapon piece! This is your lucky day!"; -TXT_QUIETUS_PIECE = "SEGMENT OF QUIETUS"; -TXT_WRAITHVERGE_PIECE = "SEGMENT OF WRAITHVERGE"; -TXT_BLOODSCOURGE_PIECE = "SEGMENT OF BLOODSCOURGE"; - -// Friendly names - -FN_FIREDEMON = "Afrit"; -FN_DEMON1 = "Serpent"; -FN_ETTIN = "Ettin"; -FN_CENTAUR = "Centaur"; -FN_SLAUGHTAUR = "Slaughtaur"; -FN_BISHOP = "Bishop"; -FN_ICEGUY = "Wendigo"; -FN_SERPENT = "Stalker"; -FN_WRAITH = "Reiver"; -FN_DRAGON = "Death Wyvern"; -FN_KORAX = "Korax"; -FN_FBOSS = "Zedek"; -FN_MBOSS = "Menelkir"; -FN_CBOSS = "Traductus"; -FN_HERESIARCH = "Heresiarch"; - -// Strife locks - -TXT_NEEDKEY = "You don't have the key"; -TXT_NEED_PASSCARD = "You need a passcard"; -TXT_NEED_PASSCARD_DOOR = "You need a pass card key to open this door"; -TXT_NEED_IDCARD = "You need an ID card"; -TXT_NEED_PRISONKEY = "You don't have the key to the prison"; -TXT_NEED_HANDPRINT = "Hand print not on file"; -TXT_NEED_GOLDKEY = "You need the Gold Key"; -TXT_NEED_IDBADGE = "You need an ID Badge"; -TXT_NEED_IDBADGE_DOOR = "You need an ID Badge to open this door"; -TXT_NEED_SILVERKEY = "You need the Silver Key"; -TXT_NEED_BRASSKEY = "You need the Brass Key"; -TXT_NEED_REDCRYSTAL = "You need the Red Crystal"; -TXT_NEED_BLUECRYSTAL = "You need the Blue Crystal"; -TXT_RETAIL_ONLY = "THIS AREA IS ONLY AVAILABLE IN THE RETAIL VERSION OF STRIFE"; -TXT_DOES_NOT_WORK = "That doesn't seem to work"; - -// Strife Quest messages - -TXT_FINDHELP = "FIND HELP"; - -TXT_QUEST_14 = "You've Blown Up the Crystal"; -TXT_QUEST_16 = "You've Blown Up the Gates"; -TXT_QUEST_27 = "You've Blown Up the Computer"; - -TXT_KILLED_BISHOP = "You Killed The Bishop!"; -TXT_KILLED_ORACLE = "You've Killed The Oracle!"; -TXT_KILLED_MACIL = "You Killed Macil!"; -TXT_KILLED_LOREMASTER = "You've Killed the Loremaster!"; - -TXT_YOUFOOL = "You Fool! You've set off the alarm."; -TXT_YOUREDEAD = "You're dead! You set off the alarm."; - -// Strife pickup messages - -TXT_METALARMOR = "You picked up the Metal Armor."; -TXT_LEATHERARMOR = "You picked up the Leather Armor."; -TXT_MEDPATCH = "You picked up the Med patch."; -TXT_MEDICALKIT = "You picked up the Medical kit."; -TXT_SURGERYKIT = "You picked up the Surgery Kit."; -TXT_STRIFEMAP = "You picked up the map."; -TXT_BELDINSRING = "You picked up the ring."; -TXT_OFFERINGCHALICE = "You picked up the Offering Chalice."; -TXT_EAR = "You picked up the ear."; -TXT_BROKENCOUPLING = "You picked up the broken power coupling."; -TXT_SHADOWARMOR = "You picked up the Shadow armor."; -TXT_ENVSUIT = "You picked up the Environmental Suit."; -TXT_GUARDUNIFORM = "You picked up the Guard Uniform."; -TXT_OFFICERSUNIFORM = "You picked up the Officer's Uniform."; -TXT_FTHROWERPARTS = "You picked up the flame thrower parts."; -TXT_REPORT = "You picked up the report."; -TXT_INFO = "You picked up the info."; -TXT_TARGETER = "You picked up the Targeter."; -TXT_COMMUNICATOR = "You picked up the Communicator."; -TXT_COIN = "You picked up the coin."; -TXT_XGOLD = "You picked up %d gold."; -TXT_BEACON = "You picked up the Teleporter Beacon."; -TXT_DEGNINORE = "You picked up the Degnin Ore."; -TXT_SCANNER = "You picked up the scanner."; -TXT_NEEDMAP = "The scanner won't work without a map!\n"; -TXT_PRISONPASS = "You picked up the Prison pass."; - -TXT_STRIFECROSSBOW = "You picked up the crossbow."; -TXT_ASSAULTGUN = "You picked up the assault gun."; -TXT_MMLAUNCHER = "You picked up the mini missile launcher."; -TXT_FLAMER = "You picked up the flame thrower."; -TXT_MAULER = "You picked up the mauler."; -TXT_GLAUNCHER = "You picked up the Grenade launcher."; -TXT_SIGIL = "You picked up the SIGIL."; - -TXT_BASEKEY = "You picked up the Base Key."; -TXT_GOVSKEY = "You picked up the Govs Key."; -TXT_PASSCARD = "You picked up the Passcard."; -TXT_IDBADGE = "You picked up the ID Badge."; -TXT_PRISONKEY = "You picked up the Prison Key."; -TXT_SEVEREDHAND = "You picked up the Severed Hand."; -TXT_POWER1KEY = "You picked up the Power1 Key."; -TXT_POWER2KEY = "You picked up the Power2 Key."; -TXT_POWER3KEY = "You picked up the Power3 Key."; -TXT_GOLDKEY = "You picked up the Gold Key."; -TXT_IDCARD = "You picked up the ID Card."; -TXT_SILVERKEY = "You picked up the Silver Key."; -TXT_ORACLEKEY = "You picked up the Oracle Key."; -TXT_MILITARYID = "You picked up the Military ID."; -TXT_ORDERKEY = "You picked up the Order Key."; -TXT_WAREHOUSEKEY = "You picked up the Warehouse Key."; -TXT_BRASSKEY = "You picked up the Brass Key."; -TXT_REDCRYSTAL = "You picked up the Red Crystal Key."; -TXT_BLUECRYSTAL = "You picked up the Blue Crystal Key."; -TXT_CHAPELKEY = "You picked up the Chapel Key."; -TXT_CATACOMBKEY = "You picked up the Catacomb Key."; -TXT_SECURITYKEY = "You picked up the Security Key."; -TXT_COREKEY = "You picked up the Core Key."; -TXT_MAULERKEY = "You picked up the Mauler Key."; -TXT_FACTORYKEY = "You picked up the Factory Key."; -TXT_MINEKEY = "You picked up the Mine Key."; -TXT_NEWKEY5 = "You picked up the New Key5."; -TXT_ORACLEPASS = "You picked up the Oracle Pass."; - -TXT_HEGRENADES = "You picked up the HE-Grenade Rounds."; -TXT_PHGRENADES = "You picked up the Phosphorus-Grenade Rounds."; -TXT_CLIPOFBULLETS = "You picked up the clip of bullets."; -TXT_BOXOFBULLETS = "You picked up the box of bullets."; -TXT_MINIMISSILES = "You picked up the mini missiles."; -TXT_CRATEOFMISSILES = "You picked up the crate of missiles."; -TXT_ENERGYPOD = "You picked up the energy pod."; -TXT_ENERGYPACK = "You picked up the energy pack."; -TXT_POISONBOLTS = "You picked up the poison bolts."; -TXT_ELECTRICBOLTS = "You picked up the electric bolts."; -TXT_AMMOSATCHEL = "You picked up the ammo satchel."; - -// Random dialogs - -TXT_RANDOM_PEASANT_01 = "Please don't hurt me."; -TXT_RANDOM_PEASANT_02 = "If you're looking to hurt me, I'm not really worth the effort."; -TXT_RANDOM_PEASANT_03 = "I don't know anything."; -TXT_RANDOM_PEASANT_04 = "Go away or I'll call the guards!"; -TXT_RANDOM_PEASANT_05 = "I wish sometimes that all these rebels would just learn their place and stop this nonsense."; -TXT_RANDOM_PEASANT_06 = "Just leave me alone, OK?"; -TXT_RANDOM_PEASANT_07 = "I'm not sure, but sometimes I think that I know some of the acolytes."; -TXT_RANDOM_PEASANT_08 = "The order's got everything around here pretty well locked up tight."; -TXT_RANDOM_PEASANT_09 = "There's no way that this is just a security force."; -TXT_RANDOM_PEASANT_10 = "I've heard that the order is really nervous about the front's actions around here."; - -TXT_RANDOM_REBEL_01 = "There's no way the order will stand against us."; -TXT_RANDOM_REBEL_02 = "We're almost ready to strike. Macil's plans are falling in place."; -TXT_RANDOM_REBEL_03 = "We're all behind you, don't worry."; -TXT_RANDOM_REBEL_04 = "Don't get too close to any of those big robots. They'll melt you down for scrap!"; -TXT_RANDOM_REBEL_05 = "The day of our glory will soon come, and those who oppose us will be crushed!"; -TXT_RANDOM_REBEL_06 = "Don't get too comfortable. We've still got our work cut out for us."; -TXT_RANDOM_REBEL_07 = "Macil says that you're the new hope. Bear that in mind."; -TXT_RANDOM_REBEL_08 = "Once we've taken these charlatans down, we'll be able to rebuild this world as it should be."; -TXT_RANDOM_REBEL_09 = "Remember that you aren't fighting just for yourself, but for everyone here and outside."; -TXT_RANDOM_REBEL_10 = "As long as one of us still stands, we will win."; - -TXT_RANDOM_AGUARD_01 = "Move along, peasant."; -TXT_RANDOM_AGUARD_02 = "Follow the true faith, only then will you begin to understand."; -TXT_RANDOM_AGUARD_03 = "Only through death can one be truly reborn."; -TXT_RANDOM_AGUARD_04 = "I'm not interested in your useless drivel."; -TXT_RANDOM_AGUARD_05 = "If I had wanted to talk to you I would have told you so."; -TXT_RANDOM_AGUARD_06 = "Go and annoy someone else!"; -TXT_RANDOM_AGUARD_07 = "Keep moving!"; -TXT_RANDOM_AGUARD_08 = "If the alarm goes off, just stay out of our way!"; -TXT_RANDOM_AGUARD_09 = "The order will cleanse the world and usher it into the new era."; -TXT_RANDOM_AGUARD_10 = "Problem? No, I thought not."; - -TXT_RANDOM_BEGGAR_01 = "Alms for the poor?"; -TXT_RANDOM_BEGGAR_02 = "What are you looking at, surfacer?"; -TXT_RANDOM_BEGGAR_03 = "You wouldn't have any extra food, would you?"; -TXT_RANDOM_BEGGAR_04 = "You surface people will never understand us."; -TXT_RANDOM_BEGGAR_05 = "Ha, the guards can't find us. Those idiots don't even know we exist."; -TXT_RANDOM_BEGGAR_06 = "One day everyone but those who serve the order will be forced to join us."; -TXT_RANDOM_BEGGAR_07 = "Stare now, but you know that this will be your own face one day."; -TXT_RANDOM_BEGGAR_08 = "There's nothing more annoying than a surfacer with an attitude!"; -TXT_RANDOM_BEGGAR_09 = "The order will make short work of your pathetic front."; -TXT_RANDOM_BEGGAR_10 = "Watch yourself, surfacer. We know our enemies!"; - -TXT_RANDOM_PGUARD_01 = "We are the hands of fate. To earn our wrath is to find oblivion!"; -TXT_RANDOM_PGUARD_02 = "The order will cleanse the world of the weak and corrupt!"; -TXT_RANDOM_PGUARD_03 = "Obey the will of the masters!"; -TXT_RANDOM_PGUARD_04 = "Long life to the brothers of the order!"; -TXT_RANDOM_PGUARD_05 = "Free will is an illusion that binds the weak minded."; -TXT_RANDOM_PGUARD_06 = "Power is the path to glory. To follow the order is to walk that path!"; -TXT_RANDOM_PGUARD_07 = "Take your place among the righteous, join us!"; -TXT_RANDOM_PGUARD_08 = "The order protects its own."; -TXT_RANDOM_PGUARD_09 = "Acolytes? They have yet to see the full glory of the order."; -TXT_RANDOM_PGUARD_10 = "If there is any honor inside that pathetic shell of a body, you'll enter into the arms of the order."; - -TXT_RANDOMGOODBYE_1 = "Bye!"; -TXT_RANDOMGOODBYE_2 = "Thanks, bye!"; -TXT_RANDOMGOODBYE_3 = "See you later!"; -TXT_HAVEENOUGH = "You seem to have enough!"; -TXT_GOAWAY = "Go away!"; - -TXT_COMM0 = "Incoming Message"; -TXT_COMM1 = "Incoming Message from BlackBird"; - -TXT_TRADE = " for %u"; - -AMMO_CLIP = "Bullets"; -AMMO_SHELLS = "Shotgun Shells"; -AMMO_ROCKETS = "Rockets"; -AMMO_CELLS = "Energy Cells"; -AMMO_GOLDWAND = "Wand Crystals"; -AMMO_CROSSBOW = "Ethereal Arrows"; -AMMO_BLASTER = "Claw Orbs"; -AMMO_MACE = "Mace Spheres"; -AMMO_SKULLROD = "Hellstaff Runes"; -AMMO_PHOENIXROD = "Flame Orbs"; -AMMO_MANA1 = "Blue Mana"; -AMMO_MANA2 = "Green Mana"; -$ifgame(chex) AMMO_CLIP = "Mini Zorch Charge"; -$ifgame(chex) AMMO_SHELLS = "Large Zorcher Charge"; -$ifgame(chex) AMMO_ROCKETS = "Propulsor Charge"; -$ifgame(chex) AMMO_CELLS = "Phasing Zorcher Charge"; - -// Menu Strings - -// Main Menu -MNU_NEWGAME = "NEW GAME"; -MNU_OPTIONS = "OPTIONS"; -MNU_GAMEFILES = "GAME FILES"; -MNU_INFO = "INFO"; -MNU_QUITGAME = "QUIT GAME"; - -// Skills -MNU_CHOOSESKILL = "CHOOSE SKILL LEVEL:"; - -SKILL_BABY = "I'm too young to die"; -SKILL_EASY = "Hey, not too rough"; -SKILL_NORMAL = "Hurt me plenty"; -SKILL_HARD = "Ultra-Violence"; -SKILL_NIGHTMARE = "NIGHTMARE!"; - -CSKILL_BABY = "Easy does it"; -CSKILL_EASY = "Not so sticky"; -CSKILL_NORMAL = "Gobs of goo"; -CSKILL_HARD = "Extreme Ooze"; -CSKILL_NIGHTMARE = "Super Slimey!"; - -SSKILL_BABY = "Training"; -SSKILL_EASY = "Rookie"; -SSKILL_NORMAL = "Veteran"; -SSKILL_HARD = "Elite"; -SSKILL_NIGHTMARE = "Bloodbath"; - -MNU_WETNURSE = "THOU NEEDETH A WET-NURSE"; -MNU_YELLOWBELLIES = "YELLOWBELLIES-R-US"; -MNU_BRINGEST = "BRINGEST THEM ONETH"; -MNU_SMITE = "THOU ART A SMITE-MEISTER"; -MNU_BLACKPLAGUE = "BLACK PLAGUE POSSESSES THEE"; - -MNU_SQUIRE = "SQUIRE"; -MNU_KNIGHT = "KNIGHT"; -MNU_WARRIOR = "WARRIOR"; -MNU_BERSERKER = "BERSERKER"; -MNU_TITAN = "TITAN"; - -MNU_ALTARBOY = "ALTAR BOY"; -MNU_ACOLYTE = "ACOLYTE"; -MNU_PRIEST = "PRIEST"; -MNU_CARDINAL = "CARDINAL"; -MNU_POPE = "POPE"; - -MNU_APPRENTICE = "APPRENTICE"; -MNU_ENCHANTER = "ENCHANTER"; -MNU_SORCERER = "SORCERER"; -MNU_WARLOCK = "WARLOCK"; -MNU_ARCHMAGE = "ARCHMAGE"; - -// Classes -MNU_CHOOSECLASS = "CHOOSE CLASS:"; -MNU_FIGHTER = "FIGHTER"; -MNU_CLERIC = "CLERIC"; -MNU_MAGE = "MAGE"; -MNU_RANDOM = "RANDOM"; - -// Game Files -MNU_LOADGAME = "LOAD GAME"; -MNU_SAVEGAME = "SAVE GAME"; -MNU_NOPICTURE = "No Picture"; -MNU_DIFFVERSION = "Different\nVersion"; -MNU_NOFILES = "No files"; -MNU_DELETESG = "Do you really want to delete the savegame\n"; - -// Episodes -MNU_EPISODE = "Select Episode"; -MNU_COTD = "CITY OF THE DAMNED"; -MNU_HELLSMAW = "HELL'S MAW"; -MNU_DOME = "THE DOME OF D'SPARIL"; -MNU_OSSUARY = "THE OSSUARY"; -MNU_DEMESNE = "THE STAGNANT DEMESNE"; -$ifgame(heretic) SWSTRING = "ONLY AVAILABLE IN THE REGISTERED VERSION"; - -// Options Menu -OPTMNU_TITLE = "Options"; -OPTMNU_CONTROLS = "Customize Controls"; -OPTMNU_MOUSE = "Mouse options"; -OPTMNU_JOYSTICK = "Joystick options"; -OPTMNU_PLAYER = "Player Setup"; -OPTMNU_GAMEPLAY = "Gameplay Options"; -OPTMNU_COMPATIBILITY = "Compatibility Options"; -OPTMNU_AUTOMAP = "Automap Options"; -OPTMNU_HUD = "HUD Options"; -OPTMNU_MISCELLANEOUS = "Miscellaneous Options"; -OPTMNU_NETWORK = "Network Options"; -OPTMNU_SOUND = "Sound Options"; -OPTMNU_DISPLAY = "Display Options"; -OPTMNU_VIDEO = "Set video mode"; -OPTMNU_CHANGERENDER = "Change Rendering Output"; -OPTMNU_DEFAULTS = "Reset to defaults"; -OPTMNU_RESETTOSAVED = "Reset to last saved"; -OPTMNU_CONSOLE = "Go to console"; -OPTMNU_REVERB = "Reverb environment editor"; -OPTMNU_LANGUAGE = "Language"; - -// Controls Menu - -CNTRLMNU_TITLE = "Customize Controls"; -CNTRLMNU_SWITCHTEXT1 = "ENTER to change, BACKSPACE to clear"; -CNTRLMNU_SWITCHTEXT2 = "Press new key for control, ESC to cancel"; -CNTRLMNU_CONTROLS = "Controls"; -CNTRLMNU_ATTACK = "Fire"; -CNTRLMNU_ALTATTACK = "Secondary Fire"; -CNTRLMNU_RELOAD = "Weapon Reload"; -CNTRLMNU_ZOOM = "Weapon Zoom"; -CNTRLMNU_USER1 = "Weapon State 1"; -CNTRLMNU_USER2 = "Weapon State 2"; -CNTRLMNU_USER3 = "Weapon State 3"; -CNTRLMNU_USER4 = "Weapon State 4"; -CNTRLMNU_USE = "Use / Open"; -CNTRLMNU_FORWARD = "Move forward"; -CNTRLMNU_BACK = "Move backward"; -CNTRLMNU_MOVELEFT = "Strafe left"; -CNTRLMNU_MOVERIGHT = "Strafe right"; -CNTRLMNU_TURNLEFT = "Turn left"; -CNTRLMNU_TURNRIGHT = "Turn right"; -CNTRLMNU_TURN180 = "Quick Turn"; -CNTRLMNU_JUMP = "Jump"; -CNTRLMNU_CROUCH = "Crouch"; -CNTRLMNU_TOGGLECROUCH = "Crouch Toggle"; -CNTRLMNU_MOVEUP = "Fly / Swim up"; -CNTRLMNU_MOVEDOWN = "Fly / Swim down"; -CNTRLMNU_LAND = "Stop flying"; -CNTRLMNU_MOUSELOOK = "Mouse look"; -CNTRLMNU_KEYBOARDLOOK = "Keyboard look"; -CNTRLMNU_LOOKUP = "Look up"; -CNTRLMNU_LOOKDOWN = "Look down"; -CNTRLMNU_CENTERVIEW = "Center view"; -CNTRLMNU_RUN = "Run"; -CNTRLMNU_TOGGLERUN = "Toggle Run"; -CNTRLMNU_STRAFE = "Strafe"; -CNTRLMNU_SCOREBOARD = "Show Scoreboard"; -CNTRLMNU_TOGGLESCOREBOARD = "Toggle Scoreboard"; -CNTRLMNU_ACTION = "Action"; -CNTRLMNU_ACTION_TITLE = "Customize Action Controls"; -CNTRLMNU_CHAT_TITLE = "Customize Chat Controls"; -CNTRLMNU_WEAPONS_TITLE = "Customize Weapon Controls"; -CNTRLMNU_INVENTORY_TITLE = "Customize Inventory Controls"; -CNTRLMNU_OTHER_TITLE = "Customize Other Controls"; -CNTRLMNU_POPUPS_TITLE = "Strife Popup Screens Controls"; -CNTRLMNU_PAUSE = "Pause"; -CNTRLMNU_DISPLAY_INC = "Increase Display Size"; -CNTRLMNU_DISPLAY_DEC = "Decrease Display Size"; -CNTRLMNU_OPEN_HELP = "Open Help"; -CNTRLMNU_OPEN_SAVE = "Open Save Menu"; -CNTRLMNU_OPEN_LOAD = "Open Load Menu"; -CNTRLMNU_OPEN_OPTIONS = "Open Options Menu"; -CNTRLMNU_OPEN_DISPLAY = "Open Display Menu"; -CNTRLMNU_QUICKSAVE = "Quicksave"; -CNTRLMNU_QUICKLOAD = "Quickload"; -CNTRLMNU_EXIT_TO_MAIN = "Exit to Main Menu"; -CNTRLMNU_TOGGLE_MESSAGES = "Toggle Messages"; -CNTRLMNU_MENU_QUIT = "Quit Game"; -CNTRLMNU_ADJUST_GAMMA = "Adjust Gamma"; -CNTRLMNU_CHAT = "Chat"; -CNTRLMNU_SAY = "Say"; -CNTRLMNU_TEAMSAY = "Team say"; -CNTRLMNU_WEAPONS = "Weapons"; -CNTRLMNU_NEXTWEAPON = "Next weapon"; -CNTRLMNU_PREVIOUSWEAPON = "Previous weapon"; -CNTRLMNU_SLOT1 = "Weapon Slot 1"; -CNTRLMNU_SLOT2 = "Weapon Slot 2"; -CNTRLMNU_SLOT3 = "Weapon Slot 3"; -CNTRLMNU_SLOT4 = "Weapon Slot 4"; -CNTRLMNU_SLOT5 = "Weapon Slot 5"; -CNTRLMNU_SLOT6 = "Weapon Slot 6"; -CNTRLMNU_SLOT7 = "Weapon Slot 7"; -CNTRLMNU_SLOT8 = "Weapon Slot 8"; -CNTRLMNU_SLOT9 = "Weapon Slot 9"; -CNTRLMNU_SLOT0 = "Weapon Slot 0"; -CNTRLMNU_INVENTORY = "Inventory"; -CNTRLMNU_USEITEM = "Activate item"; -CNTRLMNU_USEALLITEMS = "Activate all items"; -CNTRLMNU_NEXTITEM = "Next item"; -CNTRLMNU_PREVIOUSITEM = "Previous item"; -CNTRLMNU_DROPITEM = "Drop item"; -CNTRLMNU_QUERYITEM = "Query item"; -CNTRLMNU_DROPWEAPON = "Drop weapon"; -CNTRLMNU_OTHER = "Other"; -CNTRLMNU_AUTOMAP = "Toggle automap"; -CNTRLMNU_CHASECAM = "Chasecam"; -CNTRLMNU_COOPSPY = "Coop spy"; -CNTRLMNU_SCREENSHOT = "Screenshot"; -CNTRLMNU_CONSOLE = "Open console"; -CNTRLMNU_POPUPS = "Strife Popup Screens"; -CNTRLMNU_MISSION = "Mission objectives"; -CNTRLMNU_KEYS = "Keys list"; -CNTRLMNU_STATS = "Weapons/ammo/stats"; - -// Mouse Menu - -MOUSEMNU_TITLE = "Mouse Options"; -MOUSEMNU_ENABLEMOUSE = "Enable mouse"; -MOUSEMNU_MOUSEINMENU = "Enable mouse in menus"; -MOUSEMNU_SHOWBACKBUTTON = "Show back button"; -MOUSEMNU_CURSOR = "Cursor"; -MOUSEMNU_SENSITIVITY = "Overall sensitivity"; -MOUSEMNU_NOPRESCALE = "Prescale mouse movement"; -MOUSEMNU_SMOOTHMOUSE = "Smooth mouse movement"; -MOUSEMNU_TURNSPEED = "Turning speed"; -MOUSEMNU_MOUSELOOKSPEED = "Mouselook speed"; -MOUSEMNU_FORWBACKSPEED = "Forward/Backward speed"; -MOUSEMNU_STRAFESPEED = "Strafing speed"; -MOUSEMNU_ALWAYSMOUSELOOK = "Always Mouselook"; -MOUSEMNU_INVERTMOUSE = "Invert Mouse"; -MOUSEMNU_LOOKSPRING = "Lookspring"; -MOUSEMNU_LOOKSTRAFE = "Lookstrafe"; - -// Joystick Menu - -JOYMNU_TITLE = "Configure Controller"; -JOYMNU_OPTIONS = "Controller Options"; -JOYMNU_NOMENU = "Block controller input in menu"; - -// Player Setup Menu -MNU_PLAYERSETUP = "Player Setup"; -PLYRMNU_NAME = "Name"; -PLYRMNU_TEAM = "Team"; -PLYRMNU_PLAYERCOLOR = "Color"; -PLYRMNU_RED = "Red"; -PLYRMNU_GREEN = "Green"; -PLYRMNU_BLUE = "Blue"; -PLYRMNU_PLAYERCLASS = "Class"; -PLYRMNU_PLAYERSKIN = "Skin"; -PLYRMNU_PLAYERGENDER = "Gender"; -PLYRMNU_AUTOAIM = "Autoaim"; -PLYRMNU_SWITCHONPICKUP = "Switch on pickup"; -PLYRMNU_ALWAYSRUN = "Always Run"; -PLYRMNU_PRESSSPACE = "PRESS \cjSPACE"; -PLYRMNU_SEEFRONT = "TO SEE FRONT"; -PLYRMNU_SEEBACK = "TO SEE BACK"; - -// Display Options -DSPLYMNU_TITLE = "Display Options"; -DSPLYMNU_SCOREBOARD = "Scoreboard Options"; -DSPLYMNU_SCREENSIZE = "Screen size"; -DSPLYMNU_BRIGHTNESS = "Brightness"; -DSPLYMNU_VSYNC = "Vertical Sync"; -DSPLYMNU_CAPFPS = "Rendering Interpolation"; -DSPLYMNU_COLUMNMETHOD = "Column render mode"; -DSPLYMNU_BLENDMETHOD = "Transparency render mode"; - -DSPLYMNU_WIPETYPE = "Screen wipe style"; -DSPLYMNU_SHOWENDOOM = "Show ENDOOM screen"; -DSPLYMNU_BLOODFADE = "Blood Flash Intensity"; -DSPLYMNU_PICKUPFADE = "Pickup Flash Intensity"; -DSPLYMNU_WATERFADE = "Underwater Blend Intensity"; -DSPLYMNU_SKYMODE = "Sky render mode"; -DSPLYMNU_LINEARSKY = "Linear skies"; -DSPLYMNU_GZDFULLBRIGHT = "Fullbright overrides sector color"; -DSPLYMNU_MODELS = "Models"; -DSPLYMNU_SCALEFUZZ = "Scale fuzz effect"; -DSPLYMNU_DRAWFUZZ = "Use fuzz effect"; -DSPLYMNU_OLDTRANS = "Classic Transparency"; -DSPLYMNU_TRANSSOUL = "Lost Soul translucency"; -DSPLYMNU_FAKECONTRAST = "Use fake contrast"; -DSPLYMNU_ROCKETTRAILS = "Rocket Trails"; -DSPLYMNU_BLOODTYPE = "Blood Type"; -DSPLYMNU_PUFFTYPE = "Bullet Puff Type"; -DSPLYMNU_MAXPARTICLES = "Number of particles"; -DSPLYMNU_MAXDECALS = "Number of decals"; -DSPLYMNU_PLAYERSPRITES = "Show player sprites"; -DSPLYMNU_DEATHCAM = "Death camera"; -DSPLYMNU_TELEZOOM = "Teleporter zoom"; -DSPLYMNU_QUAKEINTENSITY = "Earthquake shake intensity"; -DSPLYMNU_NOMONSTERINTERPOLATION = "Interpolate monster movement"; -DSPLYMNU_MENUDIM = "Menu dim"; -DSPLYMNU_DIMCOLOR = "Dim color"; -DSPLYMNU_MOVEBOB = "View bob amount while moving"; -DSPLYMNU_STILLBOB = "View bob amount while not moving"; -DSPLYMNU_BOBSPEED = "Weapon bob speed"; -DSPLYMNU_GPUSWITCH = "Notebook Switchable GPU"; - -// HUD Options -HUDMNU_TITLE = "HUD Options"; -HUDMNU_ALTHUD = "Alternative HUD"; -HUDMNU_MESSAGE = "Message Options"; -HUDMNU_UISCALE = "User interface scale"; -HUDMNU_CROSSHAIR = "Default Crosshair"; -HUDMNU_FORCECROSSHAIR = "Force default crosshair"; -HUDMNU_GROWCROSSHAIR = "Grow crosshair when picking up items"; -HUDMNU_CROSSHAIRCOLOR = "Crosshair color"; -HUDMNU_CROSSHAIRHEALTH = "Crosshair shows health"; -HUDMNU_CROSSHAIRSCALE = "Scale crosshair"; -HUDMNU_NAMETAGS = "Display nametags"; -HUDMNU_NAMETAGCOLOR = "Nametag color"; -HUDMNU_SCALEFULLSCREENHUD = "Stretch Fullscreen HUD"; -HUDMNU_OLDOUCH = "Use old ouch mug shot formula"; -HUDMNU_HEXENFLASHES = "Hexen weapon flashes"; -HUDMNU_POISONFLASHES = "Poison damage flashes"; -HUDMNU_ICEFLASHES = "Ice death flashes"; -HUDMNU_HAZARDFLASHES = "Poison Buildup flashes"; -HUDMNU_SCALEOPT = "Scaling Options"; - -// Scaling options -SCALEMNU_TITLE = "Scaling Options"; -SCALEMNU_OVERRIDE = "Overrides for above setting"; -SCALEMNU_MESSAGES = "Messages"; -SCALEMNU_CONSOLE = "Console"; -SCALEMNU_STATBAR = "Status bar"; -SCALEMNU_HUD = "Fullscreen HUD"; -SCALEMNU_ALTHUD = "Alternative HUD"; -SCALEMNU_HUDASPECT = "HUD preserves aspect ratio"; -SCALEMNU_USEUI = "Use default scale"; -SCALEMNU_USEFS = "Scale to fullscreen"; -SCALEMNU_ADAPT = "Adapt to screen size"; - -// AltHUD Options -ALTHUDMNU_TITLE = "Alternative HUD"; -ALTHUDMNU_ENABLE = "Enable alternative HUD"; -ALTHUDMNU_SHOWSECRETS = "Show secret count"; -ALTHUDMNU_SHOWMONSTERS = "Show monster count"; -ALTHUDMNU_SHOWITEMS = "Show item count"; -ALTHUDMNU_SHOWSTATS = "Show stamina and accuracy"; -ALTHUDMNU_SHOWBERSERK = "Show berserk"; -ALTHUDMNU_SHOWWEAPONS = "Show weapons"; -ALTHUDMNU_SHOWAMMO = "Show ammo for"; -ALTHUDMNU_SHOWTIME = "Show time"; -ALTHUDMNU_TIMECOLOR = "Time color"; -ALTHUDMNU_SHOWLAG = "Show network latency"; -ALTHUDMNU_AMMOORDER = "Ammo display order"; -ALTHUDMNU_AMMORED = "Red ammo display below %"; -ALTHUDMNU_AMMOYELLOW = "Yellow ammo display below %"; -ALTHUDMNU_HEALTHRED = "Red health display below"; -ALTHUDMNU_HEALTHYELLOW = "Yellow health display below"; -ALTHUDMNU_HEALTHGREEN = "Green health display below"; -ALTHUDMNU_ARMORRED = "Red armor display below"; -ALTHUDMNU_ARMORYELLOW = "Yellow armor display below"; -ALTHUDMNU_ARMORGREEN = "Green armor display below"; -ALTHUDMNU_AUTOMAPHUD = "Alternative Automap HUD"; -ALTHUDMNU_TITLECOLOR = "Map title color"; -ALTHUDMNU_MAPTIMECOLOR = "Map time color"; -ALTHUDMNU_HUBTIMECOLOR = "Hub time color"; -ALTHUDMNU_TOTALTIMECOLOR = "Total time color"; -ALTHUDMNU_COORDINATECOLOR = "Coordinate color"; -ALTHUDMNU_COORDINATEMODE = "Coordinate mode"; -ALTHUDMNU_STATSNAMECOLOR = "Statistics name color"; -ALTHUDMNU_STATSCOLOR = "Statistics color"; - -// Misc. Options -MISCMNU_TITLE = "Miscellaneous Options"; -MISCMNU_MERGEKEYS = "Merge left+right Alt/Ctrl/Shift"; -MISCMNU_WINFULLSCREENTOGGLE = "Alt-Enter toggles fullscreen"; -MISCMNU_MACFULLSCREENTOGGLE = "Command-F toggles fullscreen"; -MISCMNU_QUERYIWAD = "Show IWAD selection dialog"; -MISCMNU_ALLCHEATS = "Enable cheats from all games"; -MISCMNU_ENABLEAUTOSAVES = "Enable autosaves"; -MISCMNU_AUTOSAVECOUNT = "Number of autosaves"; -MISCMNU_SAVELOADCONFIRMATION = "Save/Load confirmation"; -MISCMNU_ENABLESCRIPTSCREENSHOTS = "Enable making screenshots by scripts"; -MISCMNU_DEHLOAD = "Load *.deh/*.bex lumps"; -MISCMNU_CACHENODES = "Cache nodes"; -MISCMNU_CACHETIME = "Time threshold for node caching"; -MISCMNU_CLEARNODECACHE = "Clear node cache"; -MISCMNU_INTERSCROLL = "Allow skipping of intermission scrollers"; -// Automap Options -AUTOMAPMNU_TITLE = "Automap Options"; -AUTOMAPMNU_COLORSET = "Map color set"; -AUTOMAPMNU_CUSTOMCOLORS = "Allow map defined colors"; -AUTOMAPMNU_SETCUSTOMCOLORS = "Set custom colors"; -AUTOMAPMNU_CONTROLS = "Customize map controls"; -AUTOMAPMNU_ROTATE = "Rotate automap"; -AUTOMAPMNU_OVERLAY = "Overlay automap"; -AUTOMAPMNU_TEXTURED = "Enable textured display"; -AUTOMAPMNU_FOLLOW = "Follow player"; -AUTOMAPMNU_SHOWITEMS = "Show item counts"; -AUTOMAPMNU_SHOWMONSTERS = "Show monster counts"; -AUTOMAPMNU_SHOWSECRETS = "Show secret counts"; -AUTOMAPMNU_SHOWTIME = "Show time elapsed"; -AUTOMAPMNU_SHOWTOTALTIME = "Show total time elapsed"; -AUTOMAPMNU_MAPSECRETS = "Show secrets on map"; -AUTOMAPMNU_SHOWMAPLABEL = "Show map label"; -AUTOMAPMNU_DRAWMAPBACK = "Draw map background"; -AUTOMAPMNU_SHOWKEYS = "Show keys (cheat)"; -AUTOMAPMNU_SHOWTRIGGERLINES = "Show trigger lines"; -AUTOMAPMNU_SHOWTHINGSPRITES = "Show things as sprites"; -AUTOMAPMNU_PTOVERLAY = "Overlay portals"; -AUTOMAPMNU_EMPTYSPACEMARGIN = "Empty space margin"; -AUTOMAPMNU_MARKFONT = "Mark font"; -AUTOMAPMNU_MARKCOLOR = "Mark color"; - -// Automap Controls -MAPCNTRLMNU_TITLE = "Customize Map Controls"; -MAPCNTRLMNU_CONTROLS = "Map Controls"; -MAPCNTRLMNU_PANLEFT = "Pan left"; -MAPCNTRLMNU_PANRIGHT = "Pan right"; -MAPCNTRLMNU_PANUP = "Pan up"; -MAPCNTRLMNU_PANDOWN = "Pan down"; -MAPCNTRLMNU_ZOOMIN = "Zoom in"; -MAPCNTRLMNU_ZOOMOUT = "Zoom out"; -MAPCNTRLMNU_TOGGLEZOOM = "Toggle zoom"; -MAPCNTRLMNU_TOGGLEFOLLOW = "Toggle follow"; -MAPCNTRLMNU_TOGGLEGRID = "Toggle grid"; -MAPCNTRLMNU_TOGGLETEXTURE = "Toggle texture"; -MAPCNTRLMNU_SETMARK = "Set mark"; -MAPCNTRLMNU_CLEARMARK = "Clear mark"; - -// Automap Colors -MAPCOLORMNU_TITLE = "Customize Map Colors"; -MAPCOLORMNU_DEFAULTMAPCOLORS = "Restore default custom colors"; -MAPCOLORMNU_BACKCOLOR = "Background"; -MAPCOLORMNU_YOURCOLOR = "You"; -MAPCOLORMNU_WALLCOLOR = "1-sided walls"; -MAPCOLORMNU_FDWALLCOLOR = "2-sided walls with different floors"; -MAPCOLORMNU_CDWALLCOLOR = "2-sided walls with different ceilings"; -MAPCOLORMNU_EFWALLCOLOR = "2-sided walls with 3D floors"; -MAPCOLORMNU_GRIDCOLOR = "Map grid"; -MAPCOLORMNU_XHAIRCOLOR = "Center point"; -MAPCOLORMNU_NOTSEENCOLOR = "Not-yet-seen walls"; -MAPCOLORMNU_LOCKEDCOLOR = "Locked doors"; -MAPCOLORMNU_INTRALEVELCOLOR = "Teleporter to the same map"; -MAPCOLORMNU_INTERLEVELCOLOR = "Teleporter to a different map"; -MAPCOLORMNU_SECRETSECTORCOLOR = "Secret sector"; -MAPCOLORMNU_UNEXPLOREDSECRETCOLOR = "Unexplored secret"; -MAPCOLORMNU_SPECIALWALLCOLOR = "Special trigger lines"; -MAPCOLORMNU_CHEATMODE = "Cheat Mode"; -MAPCOLORMNU_TSWALLCOLOR = "Invisible 2-sided walls"; -MAPCOLORMNU_SECRETWALLCOLOR = "Secret walls"; -MAPCOLORMNU_THINGCOLOR = "Actors"; -MAPCOLORMNU_MONSTERCOLOR = "Monsters"; -MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR = "non-counting Monsters"; -MAPCOLORMNU_FRIENDCOLOR = "Friends"; -MAPCOLORMNU_ITEMCOLOR = "Items"; -MAPCOLORMNU_COUNTITEMCOLOR = "Count Items"; -MAPCOLORMNU_OVERLAY = "Overlay Mode"; -MAPCOLORMNU_OVCHEATMODE = "Overlay Cheat Mode"; -MAPCOLORMNU_PORTAL = "Portal Overlays"; - -// Message Options -MSGMNU_TITLE = "Messages"; -MSGMNU_SHOWMESSAGES = "Show messages"; -MSGMNU_SHOWOBITUARIES = "Show obituaries"; -MSGMNU_SHOWSECRETS = "Show secret notifications"; -MSGMNU_MESSAGELEVEL = "Minimum message level"; -MSGMNU_CENTERMESSAGES = "Center messages"; -MSGMNU_MESSAGECOLORS = "Message Colors"; -MSGMNU_ITEMPICKUP = "Item Pickup"; -MSGMNU_OBITUARIES = "Obituaries"; -MSGMNU_CRITICALMESSAGES = "Critical Messages"; -MSGMNU_CHATMESSAGES = "Chat Messages"; -MSGMNU_TEAMMESSAGES = "Team Messages"; -MSGMNU_CENTEREDMESSAGES = "Centered Messages"; -MSGMNU_SCREENSHOTMESSAGES = "Screenshot messages"; -MSGMNU_LONGSAVEMESSAGES = "Detailed save messages"; -MSGMNU_DEVELOPER = "Developer message mode"; - -// Scoreboard Options -SCRBRDMNU_TITLE = "Scoreboard Options"; -SCRBRDMNU_COOPERATIVE = "Cooperative Options"; -SCRBRDMNU_ENABLE = "Enable Scoreboard"; -SCRBRDMNU_HEADERCOLOR = "Header Color"; -SCRBRDMNU_YOURCOLOR = "Your Player Color"; -SCRBRDMNU_OTHERPLAYERCOLOR = "Other Players' Color"; -SCRBRDMNU_DEATHMATCH = "Deathmatch Options"; -SCRBRDMNU_TEAMDEATHMATCH = "Team Deathmatch Options"; - -// Gameplay Menu -GMPLYMNU_TITLE = "Gameplay Options"; -GMPLYMNU_TEAMPLAY = "Teamplay"; -GMPLYMNU_TEAMDAMAGE = "Team damage scalar"; -GMPLYMNU_SMARTAUTOAIM = "Smart Autoaim"; -GMPLYMNU_FALLINGDAMAGE = "Falling damage"; -GMPLYMNU_DROPWEAPON = "Drop weapon"; -GMPLYMNU_DOUBLEAMMO = "Double ammo"; -GMPLYMNU_INFINITEAMMO = "Infinite ammo"; -GMPLYMNU_INFINITEINVENTORY = "Infinite inventory"; -GMPLYMNU_NOMONSTERS = "No monsters"; -GMPLYMNU_NOMONSTERSTOEXIT = "No monsters to exit"; -GMPLYMNU_MONSTERSRESPAWN = "Monsters respawn"; -GMPLYMNU_NORESPAWN = "No respawn"; -GMPLYMNU_ITEMSRESPAWN = "Items respawn"; -GMPLYMNU_SUPERRESPAWN = "Big powerups respawn"; -GMPLYMNU_FASTMONSTERS = "Fast monsters"; -GMPLYMNU_DEGENERATION = "Degeneration"; -GMPLYMNU_NOAUTOAIM = "Allow Autoaim"; -GMPLYMNU_ALLOWSUICIDE = "Allow Suicide"; -GMPLYMNU_ALLOWJUMP = "Allow jump"; -GMPLYMNU_ALLOWCROUCH = "Allow crouch"; -GMPLYMNU_ALLOWFREELOOK = "Allow freelook"; -GMPLYMNU_ALLOWFOV = "Allow FOV"; -GMPLYMNU_BFGFREEAIM = "Allow BFG aiming"; -GMPLYMNU_ALLOWAUTOMAP = "Allow automap"; -GMPLYMNU_AUTOMAPALLIES = "Automap allies"; -GMPLYMNU_ALLOWSPYING = "Allow spying"; -GMPLYMNU_CHASECAM = "Chasecam cheat"; -GMPLYMNU_DONTCHECKAMMO = "Check ammo for weapon switch"; -GMPLYMNU_KILLBOSSSPAWNS = "Icon's death kills its spawns"; -GMPLYMNU_NOCOUNTENDMONSTER = "End sector counts for kill %"; -GMPLYMNU_DEATHMATCH = "Deathmatch Settings"; -GMPLYMNU_WEAPONSSTAY = "Weapons stay"; -GMPLYMNU_ALLOWPOWERUPS = "Allow powerups"; -GMPLYMNU_ALLOWHEALTH = "Allow health"; -GMPLYMNU_ALLOWARMOR = "Allow armor"; -GMPLYMNU_SPAWNFARTHEST = "Spawn farthest"; -GMPLYMNU_SAMEMAP = "Same map"; -GMPLYMNU_FORCERESPAWN = "Force respawn"; -GMPLYMNU_ALLOWEXIT = "Allow exit"; -GMPLYMNU_BARRELSRESPAWN = "Barrels respawn"; -GMPLYMNU_RESPAWNPROTECTION = "Respawn protection"; -GMPLYMNU_LOSEFRAG = "Lose frag if fragged"; -GMPLYMNU_KEEPFRAGS = "Keep frags gained"; -GMPLYMNU_NOTEAMSWITCH = "No team switching"; -GMPLYMNU_COOPERATIVE = "Cooperative Settings"; -GMPLYMNU_MULTIPLAYERWEAPONS = "Spawn multi. weapons"; -GMPLYMNU_LOSEINVENTORY = "Lose entire inventory"; -GMPLYMNU_KEEPKEYS = "Keep keys"; -GMPLYMNU_KEEPWEAPONS = "Keep weapons"; -GMPLYMNU_KEEPARMOR = "Keep armor"; -GMPLYMNU_KEEPPOWERUPS = "Keep powerups"; -GMPLYMNU_KEEPAMMO = "Keep ammo"; -GMPLYMNU_LOSEHALFAMMO = "Lose half ammo"; -GMPLYMNU_SPAWNWHEREDIED = "Spawn where died"; - -// Compatibility Options -CMPTMNU_TITLE = "Compatibility Options"; -CMPTMNU_MODE = "Compatibility mode"; -CMPTMNU_ACTORBEHAVIOR = "Actor Behavior"; -CMPTMNU_CORPSEGIBS = "Crushed monsters can be resurrected"; -CMPTMNU_NOBLOCKFRIENDS = "Friendly monsters aren't blocked"; -CMPTMNU_LIMITPAIN = "Limit Pain Elementals' Lost Souls"; -CMPTMNU_MBFMONSTERMOVE = "Monster movement is affected by effects"; -CMPTMNU_CROSSDROPOFF = "Monsters cannot cross dropoffs"; -CMPTMNU_DROPOFF = "Monsters get stuck over dropoffs"; -CMPTMNU_INVISIBILITY = "Monsters see invisible players"; -CMPTMNU_MINOTAUR = "No Minotaur floor flames in water"; -CMPTMNU_NOTOSSDROPS = "Spawn item drops on the floor"; -CMPTMNU_DEHACKEDBEHAVIOR = "DehackEd Behavior"; -CMPTMNU_DEHHEALTH = "DEH health settings like Doom2.exe"; -CMPTMNU_MUSHROOM = "Original A_Mushroom speed in DEH mods"; -CMPTMNU_MAPACTIONBEHAVIOR = "Map/Action Behavior"; -CMPTMNU_USEBLOCKING = "All special lines can block "; -CMPTMNU_ANYBOSSDEATH = "Allow any bossdeath for level special"; -CMPTMNU_NODOORLIGHT = "Disable BOOM door light effect"; -CMPTMNU_LIGHT = "Find neighboring light like Doom"; -CMPTMNU_SHORTTEX = "Find shortest textures like Doom"; -CMPTMNU_STAIRS = "Use buggier stair building"; -CMPTMNU_FLOORMOVE = "Use Doom's floor motion behavior"; -CMPTMNU_POINTONLINE = "Use Doom's point-on-line algorithm"; -CMPTMNU_MULTIEXIT = "Level exit can be triggered more than once"; -CMPTMNU_PHYSICSBEHAVIOR = "Physics Behavior"; -CMPTMNU_NOPASSOVER = "Actors are infinitely tall"; -CMPTMNU_BOOMSCROLL = "Boom scrollers are additive"; -CMPTMNU_BADANGLES = "Cannot travel straight NSEW"; -CMPTMNU_WALLRUN = "Enable wall running"; -CMPTMNU_RAVENSCROLL = "Raven scrollers use original speed"; -CMPTMNU_TRACE = "Self ref. sectors don't block shots"; -CMPTMNU_HITSCAN = "Use Doom code for hitscan checks"; -CMPTMNU_MISSILECLIP = "Use Doom heights for missile clipping"; -CMPTMNU_RENDERINGBEHAVIOR = "Rendering Behavior"; -CMPTMNU_POLYOBJ = "Draw polyobjects like Hexen"; -CMPTMNU_MASKEDMIDTEX = "Ignore Y offsets on masked midtextures"; -CMPTMNU_SPRITESORT = "Invert sprite sorting"; -CMPTMNU_SOUNDBEHAVIOR = "Sound Behavior"; -CMPTMNU_SOUNDSLOTS = "Cripple sound for silent BFG trick"; -CMPTMNU_SILENTPICKUP = "Don't let others hear your pickups"; -CMPTMNU_SILENTINSTANTFLOORS = "Inst. moving floors are not silent"; -CMPTMNU_SECTORSOUNDS = "Sector sounds use center as source"; -CMPTMNU_SOUNDCUTOFF = "Sounds stop when actor vanishes"; -CMPTMNU_SOUNDTARGET = "Use original sound target handling"; -CMPTMNU_TELEPORT = "Scripted teleports don't trigger sector actions"; -CMPTMNU_PUSHWINDOW = "Non-blocking lines can be pushed"; -CMPTMNU_CHECKSWITCHRANGE = "Enable buggy CheckSwitchRange behavior"; - -// Sound Options -SNDMNU_TITLE = "Sound Options"; -SNDMNU_MASTERVOLUME = "Master volume"; -SNDMNU_SFXVOLUME = "Sounds volume"; -SNDMNU_MENUVOLUME = "Menu volume"; -SNDMNU_MUSICVOLUME = "Music volume"; -SNDMNU_MIDIDEVICE = "MIDI device"; -SNDMNU_BACKGROUND = "Sound in Background"; -SNDMNU_UNDERWATERREVERB = "Underwater reverb"; -SNDMNU_RANDOMIZEPITCHES = "Randomize pitches"; -SNDMNU_CHANNELS = "Sound channels"; -SNDMNU_BACKEND = "Sound backend"; -SNDMNU_OPENAL = "OpenAL options"; -SNDMNU_RESTART = "Restart sound"; -SNDMNU_ADVANCED = "Advanced options"; -SNDMNU_MODREPLAYER = "Module replayer options"; -SNDMNU_MIDIPLAYER = "Midi player options"; - -// OpenAL Options -OPENALMNU_TITLE = "OpenAL Options"; -OPENALMNU_PLAYBACKDEVICE = "Playback device"; -OPENALMNU_ENABLEEFX = "Enable EFX"; -OPENALMNU_RESAMPLER = "Resampler"; - -// Advanced Sound Options -ADVSNDMNU_TITLE = "Advanced Sound Options"; -ADVSNDMNU_SAMPLERATE = "Sample rate"; -ADVSNDMNU_HRTF = "HRTF"; -ADVSNDMNU_OPLSYNTHESIS = "OPL Synthesis"; -ADVSNDMNU_OPLNUMCHIPS = "Number of emulated OPL chips"; -ADVSNDMNU_OPLFULLPAN = "Full MIDI stereo panning"; -ADVSNDMNU_OPLCORES = "OPL Emulator Core"; -ADVSNDMNU_OPNCORES = "OPN2 Emulator Core"; -ADVSNDMNU_GUSEMULATION = "GUS Emulation"; -ADVSNDMNU_GUSCONFIG = "GUS config file"; -ADVSNDMNU_MIDIVOICES = "MIDI voices"; -ADVSNDMNU_DMXGUS = "Read DMXGUS lumps"; -ADVSNDMNU_GUSMEMSIZE = "GUS memory size"; -ADVSNDMNU_FLUIDSYNTH = "FluidSynth"; -ADVSNDMNU_FLUIDPATCHSET = "Patch set"; -ADVSNDMNU_FLUIDGAIN = "Gain"; -ADVSNDMNU_REVERB = "Reverb"; -ADVSNDMNU_REVERB_LEVEL = "Reverb Level"; -ADVSNDMNU_CHORUS = "Chorus"; -ADVSNDMNU_TIMIDITY = "Timidity++"; -ADVSNDMNU_ADLMIDI = "ADLMidi"; -ADVSNDMNU_OPNMIDI = "OPNMidi"; -ADVSNDMNU_TIMIDITYEXE = "Path for executable"; -ADVSNDMNU_TIMIDITYCONFIG = "Timidity config file"; -ADVSNDMNU_TIMIDITYVOLUME = "Relative volume"; -ADVSNDMNU_WILDMIDI = "WildMidi"; -ADVSNDMNU_WILDMIDICONFIG = "WildMidi config file"; -ADVSNDMNU_SELCONFIG = "Select configuration"; -ADVSNDMNU_GLOBAL = "Global"; -ADVSNDMNU_FREEVERB = "Freeverb"; -ADVSNDMNU_GLOBAL_FREEVERB = "Global Freeverb"; -ADVSNDMNU_ADVRESAMPLING = "Advanced Resampling"; -ADVSNDMNU_OPLBANK = "OPL Bank"; -ADVSNDMNU_ADLOPLCORES = "OPL Emulator Core"; -ADVSNDMNU_RUNPCMRATE = "Run emulator at PCM rate"; -ADVSNDMNU_ADLNUMCHIPS = "Number of emulated OPL chips"; -ADVSNDMNU_VLMODEL = "Volume model"; -ADVSNDMNU_OPNNUMCHIPS = "Number of emulated OPN chips"; -ADVSNDMNU_ADLCUSTOMBANK = "Use custom WOPL bank"; -ADVSNDMNU_OPLBANKFILE = "WOPL Bank file"; -ADVSNDMNU_OPNCUSTOMBANK = "Use custom WOPN bank"; -ADVSNDMNU_OPNBANKFILE = "WOPN Bank file"; - -// ADLMIDI's emulation cores - -// ADLMIDI's volume models -ADLVLMODEL_AUTO = "Auto (Use setup of bank)"; -ADLVLMODEL_GENERIC = "Generic"; -ADLVLMODEL_NATIVE = "OPL Native"; -ADLVLMODEL_DMX = "DMX"; -ADLVLMODEL_APOGEE = "Apogee"; -ADLVLMODEL_WIN9X = "Win9X-like"; - -// Module Replayer Options -MODMNU_TITLE = "Module Replayer Options"; -MODMNU_REPLAYERENGINE = "Replayer engine"; -MODMNU_MASTERVOLUME = "Master Volume"; -MODMNU_QUALITY = "Quality"; -MODMNU_VOLUMERAMPING = "Volume ramping"; -MODMNU_CHIPOMATIC = "Chip-o-matic"; - -// Renderer Options -RNDMNU_TITLE = "Change Renderer"; -RNDMNU_RENDERER = "Hardware Acceleration"; -RNDMNU_TRUECOLOR = "Software Truecolor Mode"; -RNDMNU_POLY = "Poly Renderer (experimental)"; -RNDMNU_CANVAS = "Software Canvas"; - -// Video Options -VIDMNU_TITLE = "Video Mode"; -VIDMNU_RENDERMODE = "Render Mode"; -VIDMNU_FULLSCREEN = "Fullscreen"; -VIDMNU_HIDPI = "Retina/HiDPI support"; -VIDMNU_BRDLSS = "Borderless Windowed Mode"; -VIDMNU_ASPECTRATIO = "Aspect ratio"; -VIDMNU_FORCEASPECT = "Force aspect ratio"; -VIDMNU_CROPASPECT = "Forced ratio style"; -VIDMNU_5X4ASPECTRATIO = "Enable 5:4 aspect ratio"; -VIDMNU_SCALEMODE = "Resolution scale"; -VIDMNU_SCALEFACTOR = "Scale Factor"; -VIDMNU_ENTERTEXT = "Press ENTER to set mode"; -VIDMNU_TESTTEXT1 = "T to test mode for 5 seconds"; -VIDMNU_TESTTEXT2 = "Please wait 5 seconds..."; -VIDMNU_USELINEAR = "Use Linear Scaling (Fullscreen)"; -VIDMNU_CUSTOMRES = "Custom Pixel Scaling"; -VIDMNU_CUSTOMX = "Custom Width"; -VIDMNU_CUSTOMY = "Custom Height"; -VIDMNU_APPLYW = "Apply Changes (Windowed)"; -VIDMNU_APPLYFS = "Apply Changes (Fullscreen)"; -VIDMNU_RESPRESET = "Choose Resolution Preset"; -VIDMNU_RESPRESETTTL = "Custom Resolution Presets"; -VIDMNU_RESPRESETHEAD = "Preset Resolution Modes"; -VIDMNU_ASPECT43 = "4:3 Aspect"; -VIDMNU_ASPECT54 = "5:4 Aspect"; -VIDMNU_ASPECT169 = "16:9 Aspect"; -VIDMNU_ASPECT1610 = "16:10 Aspect"; - -// Network Options -NETMNU_TITLE = "Network Options"; -NETMNU_LOCALOPTIONS = "Local options"; -NETMNU_MOVEPREDICTION = "Movement prediction"; -NETMNU_LINESPECIALPREDICTION = "Predict line actions"; -NETMNU_PREDICTIONLERPSCALE = "Prediction Lerp Scale"; -NETMNU_LERPTHRESHOLD = "Lerp Threshold"; -NETMNU_HOSTOPTIONS = "Host options"; -NETMNU_EXTRATICS = "Extra Tics"; -NETMNU_TICBALANCE = "Latency balancing"; - -// Joystick menu - -JOYMNU_ENABLE = "Enable controller support"; -JOYMNU_DINPUT = "Enable DirectInput controllers"; -JOYMNU_XINPUT = "Enable XInput controllers"; -JOYMNU_PS2 = "Enable raw PlayStation 2 adapters"; -JOYMNU_NOCON = "No controllers detected"; -JOYMNU_CONFIG = "Configure controllers:"; -JOYMNU_DISABLED1 = "Controller support must be"; -JOYMNU_DISABLED2 = "enabled to detect any"; -JOYMNU_INVALID = "Invalid controller specified for menu"; -JOYMNU_OVRSENS = "Overall sensitivity"; -JOYMNU_AXIS = "Axis Configuration"; -JOYMNU_INVERT = "Invert"; -JOYMNU_DEADZONE = "Dead zone"; -JOYMNU_NOAXES = "No configurable axes"; - -// Option Values -OPTVAL_OFF = "Off"; -OPTVAL_ON = "On"; -OPTVAL_AUTO = "Auto"; -OPTVAL_MALE = "Male"; -OPTVAL_FEMALE = "Female"; -OPTVAL_NEUTRAL = "Neutral"; -OPTVAL_OTHER = "Object"; -OPTVAL_UPPERLEFT = "Upper left"; -OPTVAL_UPPERRIGHT = "Upper right"; -OPTVAL_LOWERLEFT = "Lower left"; -OPTVAL_LOWERRIGHT = "Lower right"; -OPTVAL_TOUCHSCREENLIKE = "Touchscreen-like"; -OPTVAL_NONE = "None"; -OPTVAL_TURNING = "Turning"; -OPTVAL_LOOKINGUPDOWN = "Looking Up/Down"; -OPTVAL_MOVINGFORWARD = "Moving Forward"; -OPTVAL_STRAFING = "Strafing"; -OPTVAL_MOVINGUPDOWN = "Moving Up/Down"; -OPTVAL_INVERTED = "Inverted"; -OPTVAL_NOTINVERTED = "Not Inverted"; -OPTVAL_ORIGINAL = "Original"; -OPTVAL_OPTIMIZED = "Optimized"; -OPTVAL_CLASSIC = "Classic (Faster)"; -OPTVAL_PRECISE = "Precise"; -OPTVAL_NORMAL = "Normal"; -OPTVAL_STRETCH = "Stretch"; -OPTVAL_CAPPED = "Capped"; -OPTVAL_PARTICLES = "Particles"; -OPTVAL_SPRITES = "Sprites"; -OPTVAL_SPRITESPARTICLES = "Sprites & Particles"; -OPTVAL_MELT = "Melt"; -OPTVAL_BURN = "Burn"; -OPTVAL_CROSSFADE = "Crossfade"; -OPTVAL_ONLYMODIFIED = "Only modified"; -OPTVAL_SMOOTH = "Smooth"; -OPTVAL_TRANSLUCENT = "Translucent"; -OPTVAL_FUZZ = "Fuzz"; -OPTVAL_SHADOW = "Shadow"; -OPTVAL_ITEMS = "Items"; -OPTVAL_WEAPONS = "Weapons"; -OPTVAL_BOTH = "Both"; -OPTVAL_ZDOOM = "ZDoom"; -OPTVAL_STRIFE = "Strife"; -OPTVAL_PLAYER = "Player"; -OPTVAL_MAP = "Map"; -OPTVAL_SCALETO640X400 = "Scale to 640x400"; -OPTVAL_PIXELDOUBLE = "Pixel double"; -OPTVAL_PIXELQUADRUPLE = "Pixel quadruple"; -OPTVAL_CURRENTWEAPON = "Current weapon"; -OPTVAL_AVAILABLEWEAPONS = "Available weapons"; -OPTVAL_ALLWEAPONS = "All weapons"; -OPTVAL_LEVELMILLISECONDS = "Level, milliseconds"; -OPTVAL_LEVELSECONDS = "Level, seconds"; -OPTVAL_LEVEL = "Level"; -OPTVAL_HUBSECONDS = "Hub, seconds"; -OPTVAL_HUB = "Hub"; -OPTVAL_TOTALSECONDS = "Total, seconds"; -OPTVAL_TOTAL = "Total"; -OPTVAL_SYSTEMSECONDS = "System, seconds"; -OPTVAL_SYSTEM = "System"; -OPTVAL_NETGAMESONLY = "Netgames only"; -OPTVAL_ALWAYS = "Always"; -OPTVAL_AMMOIMAGETEXT = "Image and Text"; -OPTVAL_AMMOTEXTIMAGE = "Text and Image"; -OPTVAL_SCRIPTSONLY = "Scripts Only"; -OPTVAL_NEVER = "Never"; -OPTVAL_ALL = "All"; -OPTVAL_ONLYLASTONE = "Only last one"; -OPTVAL_CUSTOM = "Custom"; -OPTVAL_TRADITIONALDOOM = "Traditional Doom"; -OPTVAL_TRADITIONALSTRIFE = "Traditional Strife"; -OPTVAL_TRADITIONALRAVEN = "Traditional Raven"; -OPTVAL_ONLYWHENFOUND = "Only when found"; -OPTVAL_ONFOROVERLAYONLY = "On for overlay only"; -OPTVAL_OVERLAYNORMAL = "Overlay+Normal"; -OPTVAL_OVERLAYONLY = "Overlay Only"; -OPTVAL_NOTFORHUBS = "Not for hubs"; -OPTVAL_FRONT = "Front"; -OPTVAL_ANIMATED = "Animated"; -OPTVAL_ROTATED = "Rotated"; -OPTVAL_MAPDEFINEDCOLORSONLY = "Map defined colors only"; -OPTVAL_NODOORS = "All except doors"; -OPTVAL_DOUBLE = "Double"; -OPTVAL_TRIPLE = "Triple"; -OPTVAL_QUADRUPLE = "Quadruple"; -OPTVAL_ITEMPICKUP = "Item Pickup"; -OPTVAL_OBITUARIES = "Obituaries"; -OPTVAL_CRITICALMESSAGES = "Critical Messages"; -OPTVAL_NEVERFRIENDS = "Never friends"; -OPTVAL_ONLYMONSTERS = "Only monsters"; -OPTVAL_HEXEN = "Hexen"; -OPTVAL_OLD = "Old"; -OPTVAL_DEFAULT = "Default"; -OPTVAL_DOOM = "Doom"; -OPTVAL_DOOMSTRICT = "Doom (strict)"; -OPTVAL_BOOM = "Boom"; -OPTVAL_BOOMSTRICT = "Boom (strict)"; -OPTVAL_MBF = "MBF"; -OPTVAL_ZDOOM2063 = "ZDoom 2.0.63"; -OPTVAL_4000HZ = "4000 Hz"; -OPTVAL_8000HZ = "8000 Hz"; -OPTVAL_11025HZ = "11025 Hz"; -OPTVAL_22050HZ = "22050 Hz"; -OPTVAL_32000HZ = "32000 Hz"; -OPTVAL_44100HZ = "44100 Hz"; -OPTVAL_48000HZ = "48000 Hz"; -OPTVAL_64SAMPLES = "64 samples"; -OPTVAL_128SAMPLES = "128 samples"; -OPTVAL_256SAMPLES = "256 samples"; -OPTVAL_512SAMPLES = "512 samples"; -OPTVAL_1024SAMPLES = "1024 samples"; -OPTVAL_2048SAMPLES = "2048 samples"; -OPTVAL_4096SAMPLES = "4096 samples"; -OPTVAL_UNLIMITED = "Unlimited"; -OPTVAL_256K = "256K"; -OPTVAL_512K = "512K"; -OPTVAL_768K = "768K"; -OPTVAL_1024K = "1024K"; -OPTVAL_MAMEOPL2 = "MAME OPL2"; -OPTVAL_MAMEOPN2 = "MAME YM2612"; -OPTVAL_DOSBOXOPL3 = "DOSBox OPL3"; -OPTVAL_JAVAOPL3 = "Java OPL3"; -OPTVAL_NUKEDOPL3 = "Nuked OPL3"; -OPTVAL_NUKEDOPL3174 = "Nuked OPL3 v1.7.4"; -OPTVAL_NUKEDOPN2 = "Nuked OPN2"; -OPTVAL_GENSOPN2 = "GENS YM2612"; -OPTVAL_SOUNDSYSTEM = "Sound System"; -OPTVAL_FOO_DUMB = "foo_dumb"; -OPTVAL_ALIASING = "Aliasing"; -OPTVAL_LINEAR = "Linear"; -OPTVAL_NEAREST = "Nearest"; -OPTVAL_PCF_LOW = "PCF (Low)"; -OPTVAL_PCF_MEDIUM = "PCF (Medium)"; -OPTVAL_PCF_HIGH = "PCF (High)"; -OPTVAL_CUBIC = "Cubic"; -OPTVAL_BLEP = "Band-limited step"; -OPTVAL_LINEARSLOW = "Linear (Slower)"; -OPTVAL_BLAM = "Band-limited linear"; -OPTVAL_CUBICSLOW = "Cubic (Slower)"; -OPTVAL_SINC = "Sinc"; -OPTVAL_NOTEONOFFONLY = "Note on/off only"; -OPTVAL_FULLRAMPING = "Full ramping"; -OPTVAL_ALLUNACKNOWLEDGED = "All unacknowledged"; -OPTVAL_ERRORS = "Errors"; -OPTVAL_WARNINGS = "Warnings"; -OPTVAL_NOTIFICATIONS = "Notifications"; -OPTVAL_EVERYTHING = "Everything"; -OPTVAL_FULLSCREENONLY = "Fullscreen only"; -OPTVAL_GL = "OpenGL"; -OPTVAL_D3D = "Direct3D"; -OPTVAL_SDL = "SDL"; -OPTVAL_COCOA = "Cocoa"; -OPTVAL_HWPOLY = "OpenGL-Accelerated"; -OPTVAL_SWDOOM = "Doom Software Renderer"; -OPTVAL_SWDOOMTC = "True Color SW Renderer"; -OPTVAL_SWPOLY = "Softpoly Renderer"; -OPTVAL_SWPOLYTC = "True Color Softpoly"; -OPTVAL_DEDICATED = "High-Performance"; -OPTVAL_INTEGRATED = "Power-Saving"; -OPTVAL_VANILLA = "Vanilla"; -OPTVAL_VTFZDOOM = "ZDoom (Forced)"; -OPTVAL_VTFVANILLA = "Vanilla (Forced)"; -OPTVAL_VTAZDOOM = "Auto (ZDoom Preferred)"; -OPTVAL_VTAVANILLA = "Auto (Vanilla Preferred)"; -OPTVAL_SCALENEAREST = "Scaled (Nearest)"; -OPTVAL_SCALELINEAR = "Scaled (Linear)"; -OPTVAL_LETTERBOX = "Letterbox"; -OPTVAL_SMALL = "Small"; -OPTVAL_LARGE = "Large"; -OPTVAL_CONSOLE = "Console"; - -// Colors -C_BRICK = "\cabrick"; -C_TAN = "\cbtan"; -C_GRAY = "\ccgray"; -C_GREEN = "\cdgreen"; -C_BROWN = "\cebrown"; -C_GOLD = "\cfgold"; -C_RED = "\cgred"; -C_BLUE = "\chblue"; -C_ORANGE = "\ciorange"; -C_WHITE = "\cjwhite"; -C_YELLOW = "\ckyellow"; -C_DEFAULT = "\cldefault"; -C_BLACK = "\cmblack"; -C_LIGHTBLUE = "\cnlight blue"; -C_CREAM = "\cocream"; -C_OLIVE = "\cpolive"; -C_DARKGREEN = "\cqdark green"; -C_DARKRED = "\crdark red"; -C_DARKBROWN = "\csdark brown"; -C_PURPLE = "\ctpurple"; -C_DARKGRAY = "\cudark gray"; -C_CYAN = "\cvcyan"; -C_ICE = "\cwice"; -C_FIRE = "\cxfire"; -C_SAPPHIRE = "\cysapphire"; -C_TEAL = "\czteal"; -// Option Strings -OPTSTR_SIMPLEARROW = "Simple arrow"; -OPTSTR_HERETIC = "Heretic"; -OPTSTR_CHEX = "Chex"; -OPTSTR_SYSTEMCURSOR = "System cursor"; -OPTSTR_NOSOUND = "No Sound"; -OPTSTR_AUTO = "Auto"; -OPTSTR_MONO = "Mono"; -OPTSTR_STEREO = "Stereo"; -OPTSTR_PROLOGIC = "Dolby Prologic Decoder"; -OPTSTR_QUAD = "Quad"; -OPTSTR_SURROUND = "5 speakers"; -OPTSTR_5POINT1 = "5.1 speakers"; -OPTSTR_7POINT1 = "7.1 speakers"; -OPTSTR_NOINTERPOLATION = "No interpolation"; -OPTSTR_SPLINE = "Spline"; -OPTSTR_OPENAL = "OpenAL"; - -NOTSET = "Not set"; -SAFEMESSAGE = "Do you really want to do this?"; -MNU_COLORPICKER = "SELECT COLOR"; - -WI_FINISHED = "finished"; -WI_ENTERING = "Now entering:"; - -AM_MONSTERS = "Monsters:"; -AM_SECRETS = "Secrets:"; -AM_ITEMS = "Items:"; - -// Bloodbath announcer - -BBA_BONED = "%k boned %o like a fish"; -BBA_CASTRA = "%k castrated %o"; -BBA_CREAMED = "%k creamed %o"; -BBA_DECIMAT = "%k decimated %o"; -BBA_DESTRO = "%k destroyed %o"; -BBA_DICED = "%k diced %o"; -BBA_DISEMBO = "%k disembowled %o"; -BBA_FLATTE = "%k flattened %o"; -BBA_JUSTICE = "%k gave %o Anal Justice"; -BBA_MADNESS = "%k gave AnAl MaDnEsS to %o"; -BBA_KILLED = "%k killed %o"; -BBA_MINCMEAT = "%k made mincemeat out of %o"; -BBA_MASSACR = "%k massacred %o"; -BBA_MUTILA = "%k mutilated %o"; -BBA_REAMED = "%k reamed %o"; -BBA_RIPPED = "%k ripped %o a new orifice"; -BBA_SLAUGHT = "%k slaughtered %o"; -BBA_SMASHED = "%k smashed %o"; -BBA_SODOMIZ = "%k sodomized %o"; -BBA_SPLATT = "%k splattered %o"; -BBA_SQUASH = "%k squashed %o"; -BBA_THROTTL = "%k throttled %o"; -BBA_WASTED = "%k wasted %o"; -BBA_BODYBAG = "%k body bagged %o"; -BBA_HELL = "%k sent %o to Hell"; -BBA_TOAST = "%k toasted %o"; -BBA_SNUFF = "%k snuffed %o"; -BBA_HOSED = "%k hosed %o"; -BBA_SPRAYED = "%k sprayed %o"; -BBA_DOGMEAT = "%k made dog meat out of %o"; -BBA_BEATEN = "%k beat %o like a cur"; - -BBA_EXCREMENT = "%o is excrement"; -BBA_HAMBURGER = "%o is hamburger"; -BBA_SCROTUM = "%o suffered scrotum separation"; -BBA_POPULATION = "%o volunteered for population control"; -BBA_SUICIDE = "%o has suicided"; -BBA_DARWIN = "%o received the Darwin Award"; - -// Chex Quest Strings -CHUSTR_E1M1 = "E1M1: Landing Zone"; -CHUSTR_E1M2 = "E1M2: Storage Facility"; -CHUSTR_E1M3 = "E1M3: Experimental Lab"; -CHUSTR_E1M4 = "E1M4: Arboretum"; -CHUSTR_E1M5 = "E1M5: Caverns of Bazoik"; - -CE1TEXT = - "Mission accomplished.\n" - "\n" - "Are you prepared for the next mission?\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "Press the escape key to continue..."; - -CE2TEXT = "You've done it!"; -CE3TEXT = "Wonderful Job!"; -CE4TEXT = "Fantastic"; - -CLOADNET = "you can't do load while in a net quest!\n\npress a key."; -$ifgame(chex) QSPROMPT = "quicksave over your quest named\n\n'%s'?\n\npress y or n."; -$ifgame(chex) QLOADNET = "you can't quickload during a netquest!\n\npress a key."; -$ifgame(chex) QLPROMPT = "do you want to quickload the quest named\n\n'%s'?\n\npress y or n."; -CNEWGAME = "you can't start a new quest\nwhile in a network quest.\n\npress a key."; - -CNIGHTMARE = "Careful, this will be tough.\nDo you wish to continue?\n\npress y or n."; - -CSWSTRING = "this is Chex(R) Quest. look for\n\nfuture levels at www.chexquest.com.\n\npress a key."; - -$ifgame(chex) NETEND = "you can't end a netquest!\n\npress a key."; -$ifgame(chex) ENDGAME = "are you sure you want to end the quest?\n\npress y or n."; - -GOTCHEXARMOR = "Picked up the Chex(R) Armor."; -GOTSUPERCHEXARMOR = "Picked up the Super Chex(R) Armor!"; -GOTWATER = "Picked up a glass of water."; -GOTREPELLENT = "Picked up slime repellent."; -GOTBREAKFAST = "Supercharge Breakfast!"; -GOTCBLUEKEY = "Picked up a blue key."; -GOTCYELLOWKEY = "Picked up a yellow key."; -GOTCREDKEY = "Picked up a red key."; -GOTFRUIT = "Picked up a bowl of fruit."; -GOTVEGETABLESNEED = "Vegetables are REALLY good for you!"; -GOTVEGETABLES = "Picked up a bowl of vegetables."; -GOTSLIMESUIT = "Found a Slime-Proof Suit"; -GOTCHEXMAP = "Found a Computer Area Map"; - -GOTZORCHRECHARGE = "Picked up a mini zorch recharge."; -GOTMINIZORCHPACK = "Picked up a mini zorch pack."; -GOTPROPULSORRECHARGE = "Picked up a zorch propulsor recharge."; -GOTPROPULSORPACK = "Picked up a zorch propulsor pack."; -GOTPHASINGZORCHERRECHARGE = "Picked up a phasing zorcher recharge"; -GOTPHASINGZORCHERPACK = "Picked up a phasing zorcher pack."; -GOTLARGEZORCHERRECHARGE = "Picked up a large zorcher recharge."; -GOTLARGEZORCHERPACK = "Picked up a large zorcher pack."; -GOTZORCHPACK = "Picked up a Zorchpak!"; - -GOTLAZDEVICE = "You got the LAZ Device! Woot!"; -GOTRAPIDZORCHER = "You got the Rapid Zorcher!"; -GOTSUPERBOOTSPORK = "You got the Super Bootspork!"; -GOTZORCHPROPULSOR = "You got the Zorch Propulsor!"; -GOTPHASINGZORCHER = "You got the Phasing Zorcher!"; -GOTLARGEZORCHER = "You got the Large Zorcher!"; -GOTSUPERLARGEZORCHER = "You got the Mega Zorcher!"; -GOTMINIZORCHER = "Picked up a Mini Zorcher."; - -$ifgame(chex) STSTR_DQDON = "Invincible Mode ON"; -$ifgame(chex) STSTR_DQDOFF = "Invincible Mode OFF"; -$ifgame(chex) STSTR_FAADDED = "Zorch Added"; -$ifgame(chex) STSTR_KFAADDED = "Super Zorch Added"; -$ifgame(chex) STSTR_CHOPPERS = "... Eat Chex(R)!"; - -OB_COMMONUS = "%o was slimed by a flemoid."; -OB_BIPEDICUS = "%o was slimed by a bipedicus."; -OB_BIPEDICUS2 = "%o was slimed by an armored bipedicus."; -OB_CYCLOPTIS = "%o was slimed by a cycloptis."; -OB_FLEMBRANE = "%o was defeated by the Flembrane."; - -OB_MPSPOON = "%o was spoon fed by %k."; -OB_MPBOOTSPORK = "%o was thoroughly mixed with %k's bootspork."; -OB_MPZORCH = "%o was zorched by %k."; -OB_MPMEGAZORCH = "%o was hit by %k's mega-zorcher."; -OB_MPRAPIDZORCH = "%o was rapid zorched by %k."; -OB_MPPROPULSOR = "%o was zorched by %k's propulsor."; -OB_MPP_SPLASH = "%o was hit by %k's propulsor."; -OB_MPPHASEZORCH = "%o was phase zorched by %k."; -OB_MPLAZ_BOOM = "%o fell prey to %k's LAZ device."; -OB_MPLAZ_SPLASH = "%o was lazzed by %k."; - -// GZDoom exclusive: - -DSPLYMNU_GLOPT = "OpenGL Renderer"; -DSPLYMNU_SWOPT = "Software Renderer"; -DSPLYMNU_GAMMA = "Gamma correction"; -DSPLYMNU_CONTRAST = "Contrast"; -DSPLYMNU_SATURATION = "Saturation"; -DSPLYMNU_HWGAMMA = "Hardware Gamma"; - -// OpenGL Options -GLMNU_TITLE = "OpenGL Options"; -GLMNU_DYNLIGHT = "Dynamic Light Options"; -GLMNU_TEXOPT = "Texture Options"; -GLMNU_PREFS = "Preferences"; - -// Texture Options -GLTEXMNU_TITLE = "Texture Options"; -GLTEXMNU_TEXENABLED = "Textures enabled"; -GLTEXMNU_TEXFILTER = "Texture Filter mode"; -GLTEXMNU_ANISOTROPIC = "Anisotropic filter"; -GLTEXMNU_TEXFORMAT = "Texture Format"; -GLTEXMNU_ENABLEHIRES = "Enable hires textures"; -GLTEXMNU_HQRESIZE = "High Quality Resize mode"; -GLTEXMNU_HQRESIZEMULT = "High Quality Resize multiplier"; -GLTEXMNU_HQRESIZEWARN = "This mode requires %d times more video memory"; -GLTEXMNU_RESIZETEX = "Resize textures"; -GLTEXMNU_RESIZESPR = "Resize sprites"; -GLTEXMNU_RESIZEFNT = "Resize fonts"; -GLTEXMNU_PRECACHETEX = "Precache GL textures"; -GLTEXMNU_TRIMSPREDGE = "Trim sprite edges"; -GLTEXMNU_SORTDRAWLIST = "Sort draw lists by texture"; - -// Dynamic Light Options -GLLIGHTMNU_TITLE = "Dynamic Lights"; -GLLIGHTMNU_LIGHTSENABLED = "Dynamic Lights (OpenGL)"; -GLLIGHTMNU_LIGHTDEFS = "Enable light definitions"; -GLLIGHTMNU_CLIPLIGHTS = "Clip lights"; -GLLIGHTMNU_LIGHTSPRITES = "Lights affect sprites"; -GLLIGHTMNU_LIGHTPARTICLES = "Lights affect particles"; -GLLIGHTMNU_LIGHTSHADOWMAP = "Light shadowmaps"; -GLLIGHTMNU_LIGHTSHADOWMAPQUALITY = "Shadowmap quality"; -GLLIGHTMNU_LIGHTSHADOWMAPFILTER = "Shadowmap filter"; - -// OpenGL Preferences -GLPREFMNU_TITLE = "OpenGL Preferences"; -GLPREFMNU_SECLIGHTMODE = "Sector light mode"; -GLPREFMNU_FOGMODE = "Fog mode"; -GLPREFMNU_FOGFORCEFULLBRIGHT = "Fog forces fullbright"; -GLPREFMNU_WPNLIGHTSTR = "Weapon light strength"; -GLPREFMNU_ENVIRONMENTMAPMIRROR = "Environment map on mirrors"; -GLPREFMNU_ENV = "Enhanced night vision mode"; -GLPREFMNU_ENVSTEALTH = "ENV shows stealth monsters"; -GLPREFMNU_SPRBRIGHTFOG = "Force brightness in fog"; -GLPREFMNU_SPRCLIP = "Adjust sprite clipping"; -GLPREFMNU_SPRBLEND = "Smooth sprite edges"; -GLPREFMNU_FUZZSTYLE = "Fuzz Style"; -GLPREFMNU_SPRBILLBOARD = "Sprite billboard"; -GLPREFMNU_SPRBILLFACECAMERA = "Sprites face camera"; -GLPREFMNU_PARTICLESTYLE = "Particle style"; -GLPREFMNU_AMBLIGHT = "Ambient light level"; -GLPREFMNU_RENDERQUALITY = "Rendering quality"; -GLPREFMNU_MENUBLUR = "Menu Blur"; -GLPREFMNU_VRMODE = "Stereo 3D VR"; -GLPREFMNU_VRQUADSTEREO = "Enable Quad Stereo"; -GLPREFMNU_MULTISAMPLE = "Multisample"; -GLPREFMNU_TONEMAP = "Tonemap Mode"; -GLPREFMNU_BLOOM = "Bloom effect"; -GLPREFMNU_LENS = "Lens distortion effect"; -GLPREFMNU_SSAO = "Ambient occlusion quality"; -GLPREFMNU_SSAO_PORTALS = "Portals with AO"; -GLPREFMNU_FXAA = "FXAA Quality"; -GLPREFMNU_DITHER = "Dither output"; -GLPREFMNU_PALTONEMAPORDER = "Tonemap Palette Order"; -GLPREFMNU_PALTONEMAPPOWER = "Tonemap Palette Exponent"; -GLPREFMNU_SWLMBANDED = "Banded SW Lightmode"; -GLPREFMNU_VRIPD = "Distance Between Your Eyes"; -GLPREFMNU_VRSCREENDIST = "Distance From Your Screen"; - -// Option Values -OPTVAL_SMART = "Smart"; -OPTVAL_SMARTER = "Smarter"; -OPTVAL_INFRAREDONLY = "Infrared only"; -OPTVAL_INFRAREDANDTORCH = "Infrared and torch"; -OPTVAL_ANYFIXEDCOLORMAP = "Any fixed colormap"; -OPTVAL_NONENEARESTMIPMAP = "None (nearest mipmap)"; -OPTVAL_NONELINEARMIPMAP = "None (linear mipmap)"; -OPTVAL_NONETRILINEAR = "None (trilinear)"; -OPTVAL_BILINEAR = "Bilinear"; -OPTVAL_TRILINEAR = "Trilinear"; -OPTVAL_RGBA8 = "RGBA8"; -OPTVAL_RGB5A1 = "RGB5_A1"; -OPTVAL_RGBA4 = "RGBA4"; -OPTVAL_RGBA2 = "RGBA2"; -OPTVAL_COMPRRGBA = "COMPR_RGBA"; -OPTVAL_S3TCDXT1 = "S3TC_DXT1"; -OPTVAL_S3TCDXT3 = "S3TC_DXT3"; -OPTVAL_S3TCDXT5 = "S3TC_DXT5"; -OPTVAL_2X = "2x"; -OPTVAL_4X = "4x"; -OPTVAL_8X = "8x"; -OPTVAL_16X = "16x"; -OPTVAL_32X = "32x"; -OPTVAL_USEASPALETTE = "Use as palette"; -OPTVAL_BLEND = "Blend"; -OPTVAL_STANDARD = "Standard"; -OPTVAL_BRIGHT = "Bright"; -OPTVAL_DARK = "Dark"; -OPTVAL_LEGACY = "Legacy"; -OPTVAL_SOFTWARE = "Software"; -OPTVAL_SPEED = "Speed"; -OPTVAL_QUALITY = "Quality"; -OPTVAL_OPTIMAL = "Optimal"; -OPTVAL_60 = "60"; -OPTVAL_70 = "70"; -OPTVAL_72 = "72"; -OPTVAL_75 = "75"; -OPTVAL_85 = "85"; -OPTVAL_100 = "100"; -OPTVAL_YAXIS = "Y Axis"; -OPTVAL_XYAXIS = "X/Y Axis"; -OPTVAL_SQUARE = "Square"; -OPTVAL_ROUND = "Round"; -OPTVAL_SCALENX = "ScaleNx"; -OPTVAL_NORMALNX = "NormalNx"; -OPTVAL_HQNX = "hqNx"; -OPTVAL_HQNXMMX = "hqNx MMX"; -OPTVAL_NXBRZ = "xBRZ"; -OPTVAL_OLD_NXBRZ = "Old xBRZ"; -OPTVAL_RADIAL = "Radial"; -OPTVAL_PIXELFUZZ = "Pixel fuzz"; -OPTVAL_SMOOTHFUZZ = "Smooth fuzz"; -OPTVAL_SWIRLYFUZZ = "Swirly fuzz"; -OPTVAL_TRANSLUCENTFUZZ = "Translucent fuzz"; -OPTVAL_NOISE = "Noise"; -OPTVAL_SMOOTHNOISE = "Smooth Noise"; -OPTVAL_JAGGEDFUZZ = "Jagged fuzz"; -OPTVAL_GREENMAGENTA = "Green/Magenta"; -OPTVAL_REDCYAN = "Red/Cyan"; -OPTVAL_AMBERBLUE = "Amber/Blue"; -OPTVAL_LEFTEYE = "Left Eye"; -OPTVAL_RIGHTEYE = "Right Eye"; -OPTVAL_SBSFULL = "Side-by-side Full"; -OPTVAL_SBSNARROW = "Side-by-side Narrow"; -OPTVAL_TOPBOTTOM = "Top/Bottom"; -OPTVAL_ROWINTERLEAVED = "Row Interleaved"; -OPTVAL_COLUMNINTERLEAVED = "Column Interleaved"; -OPTVAL_CHECKERBOARD = "Checkerboard"; -OPTVAL_QUADBUFFERED = "Quad-buffered"; -OPTVAL_UNCHARTED2 = "Uncharted 2"; -OPTVAL_HEJLDAWSON = "Hejl Dawson"; -OPTVAL_REINHARD = "Reinhard"; -OPTVAL_PALETTE = "Palette"; -OPTVAL_LOW = "Low"; -OPTVAL_MEDIUM = "Medium"; -OPTVAL_HIGH = "High"; -OPTVAL_EXTREME = "Extreme"; -OPTVAL_OBVERSEFIRST = "Obverse"; -OPTVAL_REVERSEFIRST = "Reverse"; - -DSPLYMNU_TCOPT = "TrueColor Options"; - -TCMNU_TITLE = "TrueColor Options"; - -TCMNU_TRUECOLOR = "True color output"; -TCMNU_MINFILTER = "Linear filter when downscaling"; -TCMNU_MAGFILTER = "Linear filter when upscaling"; -TCMNU_MIPMAP = "Use mipmapped textures"; -TCMNU_DYNLIGHTS = "Dynamic lights (Software)"; - -// SVE strings: - -TAG_TALISMANRED = "Red Talisman"; -TAG_TALISMANGREEN = "Green Talisman"; -TAG_TALISMANBLUE = "Blue Talisman"; -MSG_TALISMANRED = "You have a feeling that it wasn't to be touched..."; -MSG_TALISMANGREEN = "Whatever it is, it doesn't belong in this world..."; -MSG_TALISMANBLUE = "It must do something..."; -MSG_TALISMANPOWER = "You have super strength!"; - -TXT_STRIFE_MAP01 = "AREA 1: Sanctuary"; -TXT_STRIFE_MAP02 = "AREA 2: Town"; -TXT_STRIFE_MAP03 = "AREA 3: Front Base"; -TXT_STRIFE_MAP04 = "AREA 4: Power Station"; -TXT_STRIFE_MAP05 = "AREA 5: Prison"; -TXT_STRIFE_MAP06 = "AREA 6: Sewers"; -TXT_STRIFE_MAP07 = "AREA 7: Castle"; -TXT_STRIFE_MAP08 = "AREA 8: Audience Chamber"; -TXT_STRIFE_MAP09 = "AREA 9: Castle: Programmer's Keep"; -TXT_STRIFE_MAP10 = "AREA 10: New Front Base"; -TXT_STRIFE_MAP11 = "AREA 11: Borderlands"; -TXT_STRIFE_MAP12 = "AREA 12: The Temple of the Oracle"; -TXT_STRIFE_MAP13 = "AREA 13: Catacombs"; -TXT_STRIFE_MAP14 = "AREA 14: Mines"; -TXT_STRIFE_MAP15 = "AREA 15: Fortress: Administration"; -TXT_STRIFE_MAP16 = "AREA 16: Fortress: Bishop's Tower"; -TXT_STRIFE_MAP17 = "AREA 17: Fortress: The Bailey"; -TXT_STRIFE_MAP18 = "AREA 18: Fortress: Stores"; -TXT_STRIFE_MAP19 = "AREA 19: Fortress: Security Complex"; -TXT_STRIFE_MAP20 = "AREA 20: Factory: Receiving"; -TXT_STRIFE_MAP21 = "AREA 21: Factory: Manufacturing"; -TXT_STRIFE_MAP22 = "AREA 22: Factory: Forge"; -TXT_STRIFE_MAP23 = "AREA 23: Order Commons"; -TXT_STRIFE_MAP24 = "AREA 24: Factory: Conversion Chapel"; -TXT_STRIFE_MAP25 = "AREA 25: Catacombs: Ruined Temple"; -TXT_STRIFE_MAP26 = "AREA 26: Proving Grounds"; -TXT_STRIFE_MAP27 = "AREA 27: The Lab"; -TXT_STRIFE_MAP28 = "AREA 28: Alien Ship"; -TXT_STRIFE_MAP29 = "AREA 29: Entity's Lair"; -TXT_STRIFE_MAP30 = "AREA 30: Abandoned Front Base"; -TXT_STRIFE_MAP31 = "AREA 31: Training Facility"; -TXT_STRIFE_MAP32 = "AREA 1: Sanctuary"; -TXT_STRIFE_MAP33 = "AREA 2: Town"; -TXT_STRIFE_MAP34 = "AREA 3: Movement Base"; -TXT_STRIFE_MAP35 = "AREA 35: Factory: Production"; -TXT_STRIFE_MAP36 = "AREA 36: Castle Clash"; -TXT_STRIFE_MAP37 = "AREA 37: Killing Grounds"; -TXT_STRIFE_MAP38 = "AREA 38: Ordered Chaos"; -TXT_STRIFE_EPI = "Quest for the Sigil"; - -TXT_NEED_CHALICE = "You need the chalice!"; -TXT_NEED_OPASS = "You need the Oracle Pass!"; -TXT_FREED_PRISONERS = "You've freed the prisoners!"; -TXT_DESTROYED_CONVERTER = "You've destroyed the Converter!"; -TXT_COMPLETED_TRAINING = "Congratulations! You have completed the training area"; - -TXT_QUITENDOOM = "Press any key or click anywhere in the window to quit."; diff --git a/wadsrc/static/language.fr b/wadsrc/static/language.fr deleted file mode 100644 index 18e1f0e29..000000000 --- a/wadsrc/static/language.fr +++ /dev/null @@ -1,2818 +0,0 @@ -//===================================== -//French strings updated by Tapwave. -//Some strings are "missing" because they're identical in English. -//(Usually 'secrets', but also some other items.) -//===================================== - -[fr] - -D_DEVSTR = "Mode développeur ON.\n"; -D_CDROM = "Version CD-ROM: DEFAULT.CFG dans C:\\DOOMDATA\n"; - -// -// M_Menu.C -// -PRESSKEY = "Appuyez sur un touche.."; -PRESSYN = "Appuyez sur Y ou N."; -QUITMSG = "Voulez-vous vraiment \nquitter cet excellent jeu?"; -TXT_YES = "Oui"; -TXT_NO = "Non"; - -// QuitDoom1 messages -QUITMSG1 = "Ne partez pas, il ya encore\ndes démons a buter!"; -QUITMSG2 = "Fichons le camp, ça dégénère\nen bain de sang!"; -QUITMSG3 = "Je ne quitterais pas si j'étais vous.\nVotre OS est bien pire."; -QUITMSG4 = "Vous essayez de dire que vous aimez DOS\nmieux que moi, pas vrai?"; -QUITMSG5 = "Ne partez pas encore! Il y a \nun démon dans le coin!"; -QUITMSG6 = "Vous savez, la prochaine que revenez\nje vous grille."; -QUITMSG7 = "Allez y, partez, allez voir si j'y suis."; - -// QuitDOOM II messages -QUITMSG8 = "Vous voulez vraiment quitter?\nVous avez vraiment les fils qui se croisent!"; -QUITMSG9 = "Ne partez pas maintenant, il y a un \nportail interdimensionnel dans\n votre os!"; -QUITMSG10 = "Tirez vous de là et retournez\nà vos programmes ennuyeux."; -QUITMSG11 = "Si j'étais votre patron, je vous\n collerai un Deathmatch dans la minute!"; -QUITMSG12 = "Regardez l'ami. Vous partez maintenant\net vous pouvez oublier votre score!"; -QUITMSG13 = "Allez, partez. Quand vous reviendrez\nje vous attendrai avec une batte."; -QUITMSG14 = "Vous êtes chanceux que je ne vous en \ncolle pas une parce que vous pensez partir."; - -// Quit Strife messages -QUITMSG15 = "Où allez vous?\nQue va devenir la rébellion?"; -QUITMSG16 = "Carnage interruptus...\nTout un programme!"; -QUITMSG17 = "Mais vous êtes l'espoir,\n notre unique chance!"; -QUITMSG18 = "Personne n'abandonne Blackbird!"; -QUITMSG19 = "Je vous croyais différent..."; -QUITMSG20 = "C'est ça! Tuez n'importe-qui \net barrez-vous comme ça!"; -QUITMSG21 = "Vous pouvez partir...\nMais vous ne pouvez pas vous cacher..."; -QUITMSG22 = "Bah, il est où est le problème?\nMaman a dit 'à table!'?"; - -// Quit Chex messages -QUITMSG23 = "N'abandonnez pas maintenant...do\nVoulez vous toujours quitter?"; -QUITMSG24 = "Ne partez pas, ou les\n Flémoïdes vont nous battre!"; -QUITMSG25 = "S'il vous plaît, ne quittez pas, nous\navons besoin de votre aide!"; -QUITMSG26 = "J'espère que tu prends une pause\npour un bol de Chex(R) Party Mix."; -QUITMSG27 = "Restez avec nous!\nNous avons besoin de vous!"; -QUITMSG28 = "N'abandonnez pas la\nFédération Intergalactique des Céréales!"; -QUITMSG29 = "Le vrai Chex Warrior\nn'abandonnerait pas de si tôt!"; - - -LOADNET = "Impossible de charger une partie\npendant un jeu en réseau!\n\nAppuyez sur un touche."; -QLOADNET = "Chargement Rapide impossible\npendant un jeu en réseau!\n\nAppuyez sur un touche."; -QSAVESPOT = "Vous n'avez pas choisi un\nemplacement de sauvegarde!\n\nAppuyez sur un touche."; -SAVEDEAD = "Vous ne pouvez pas sauvegarder" - "si vous ne jouez pas!\n\nAppuyez sur un touche."; -QSPROMPT = "Sauvegarde rapide sur le fichier \n\n'%s'?\n\nAppuyez sur Y ou N."; -QLPROMPT = "Voulez-vous charger la sauvegarde" - "\n\n'%s'?\n\nAppuyez sur Y ou N."; -NEWGAME = "Vous ne pouvez pas lancer\n" - "une nouvelle partie en réseau.\n\nAppuyez sur un touche."; -NIGHTMARE = "Vous êtes sur? Ce niveau de\n" - "difficulté est vraiment impitoyuable!\nAppuyez sur Y ou N."; -SWSTRING = "Votre version de DOOM est une version SHAREWARE.\n\n" - "Pensez à commander la version complète!\n\nAppuyez sur un touche."; -MSGOFF = "Messages désactivés."; -MSGON = "Messages activés."; -NETEND = "Vous ne pouvez pas mettre fin à " - "une partie en réseau!\n\nAppuyez sur un touche."; -ENDGAME = "Voulez vous mettre fin à votre partie?\n\nAppuyez sur Y ou N."; - -DOSY = "(Appuyez sur Y pour revenir à votre OS.)"; - -EMPTYSTRING = "Emplacement Vide"; - -// -// P_inter.C -// -GOTARMOR = "Armure récupérée."; -GOTMEGA = "Méga-Armure récupérée!"; -GOTHTHBONUS = "Bonus de Santé récupéré."; -GOTARMBONUS = "Bonus d'Armure récupéré."; -GOTSTIM = "Stimpack récupéré."; -GOTMEDINEED = "Médikit récupéré, et vous en aviez vraiment besoin!"; -GOTMEDIKIT = "Médikit récupéré."; -GOTSUPER = "Supercharge!"; - -GOTBLUECARD = "Carte d'accès BLEUE récupérée."; -GOTYELWCARD = "Carte d'accès JAUNE récupérée."; -GOTREDCARD = "Carte d'accès ROUGE récupérée."; -GOTBLUESKUL = "Clef Crâne BLEUE récupérée."; -GOTYELWSKUL = "Clef Crâne JAUNE récupérée."; -GOTREDSKUL = "Clef Crâne ROUGE récupérée."; - -GOTINVUL = "Invulnérabilité!"; -GOTINVIS = "Invisibilité Partielle"; -GOTSUIT = "Combinaison Hazmat"; -GOTMAP = "Carte Informatique"; -GOTVISOR = "Lunettes de Vision Nocturne"; -GOTMSPHERE = "Mégasphere!"; - -GOTCLIP = "Chargeur récupéré."; -GOTCLIPBOX = "Boîte de balles récupérée."; -GOTROCKET = "Roquette récupérée."; -GOTROCKBOX = "Caisse de roquettes récupérée."; -GOTCELL = "Cellule énergétique récupérée."; -GOTCELLBOX = "Pack de cellules énergétiques récupéré."; -GOTSHELLS = "4 cartouches récupérées."; -GOTSHELLBOX = "Boîte de cartouches récupérée."; -GOTBACKPACK = "Sac à dos plein de munitions récupéré!"; - -GOTBFG9000 = "UN BFG9000! OH, OUI!"; -GOTCHAINGUN = "Une MITRAILLEUSE!"; -GOTCHAINSAW = "Une TRONCONNEUSE! Viande frâiche!"; -GOTLAUNCHER = "Un LANCE-ROQUETTES!"; -GOTPLASMA = "Un FUSIL A PLASMA!"; -GOTSHOTGUN = "Un FUSIL A POMPE!"; -GOTSHOTGUN2 = "Un SUPER FUSIL DE CHASSE!"; -PICKUP_PISTOL_DROPPED = "Un PISTOLET."; -BETA_BONUS1 = "Dague diabolique récupérée."; -BETA_BONUS2 = "Coffre-crâne récupéré."; -BETA_BONUS3 = "Sceptre maléfique récupéré."; -BETA_BONUS4 = "Bible profane récupérée."; - -// -// G_game.C -// -GGSAVED = "Partie sauvegardée."; -NEWSAVE = ""; - -// -// HU_stuff.C -// -HUSTR_MSGU = "[Message Non Envoyé]"; - -HUSTR_E1M1 = "E1M1: Hangar"; -HUSTR_E1M2 = "E1M2: Centrale Nucléaire"; -HUSTR_E1M3 = "E1M3: Raffinerie de Toxines"; -HUSTR_E1M4 = "E1M4: Centre de Contrôle"; -HUSTR_E1M5 = "E1M5: Laboratoires Phobos"; -HUSTR_E1M6 = "E1M6: Centre de Traitement"; -HUSTR_E1M7 = "E1M7: Station Informatique"; -HUSTR_E1M8 = "E1M8: Anomalie de Phobos"; -HUSTR_E1M9 = "E1M9: Base Militaire "; - -HUSTR_E2M1 = "E2M1: Anomalie de Déimos"; -HUSTR_E2M2 = "E2M2: Zone de Stockage"; -HUSTR_E2M3 = "E2M3: Raffinerie"; -HUSTR_E2M4 = "E2M4: Laboratoires Déimos"; -HUSTR_E2M5 = "E2M5: Centre de Commandement"; -HUSTR_E2M6 = "E2M6: Halls des Damnés"; -HUSTR_E2M7 = "E2M7: Cuves de Reproduction"; -HUSTR_E2M8 = "E2M8: Tour de Babel"; -HUSTR_E2M9 = "E2M9: Mystérieuse Forteresse"; - -HUSTR_E3M1 = "E3M1: Donjon Infernal"; -HUSTR_E3M2 = "E3M2: Bourbier du Désespoir"; -HUSTR_E3M3 = "E3M3: Pandémonium"; -HUSTR_E3M4 = "E3M4: Maison de la Douleur"; -HUSTR_E3M5 = "E3M5: Cathédrale Profane"; -HUSTR_E3M6 = "E3M6: Mont Erèbe"; -HUSTR_E3M7 = "E3M7: Limbes"; -HUSTR_E3M8 = "E3M8: Dis"; -HUSTR_E3M9 = "E3M9: Clapiers"; - -HUSTR_E4M1 = "E4M1: Le Séjour des Morts"; -HUSTR_E4M2 = "E4M2: Une Parfaite Haine"; -HUSTR_E4M3 = "E4M3: Séparer les Vicieux"; -HUSTR_E4M4 = "E4M4: Un Mal Irrépréssible"; -HUSTR_E4M5 = "E4M5: Ils se repentiront"; -HUSTR_E4M6 = "E4M6: D'une manière criminelle"; -HUSTR_E4M7 = "E4M7: Et l'Enfer Suivit"; -HUSTR_E4M8 = "E4M8: A un Homme cruel"; -HUSTR_E4M9 = "E4M9: Terreur"; - -HUSTR_1 = "NIVEAU 1: Hall D'Entrée"; -HUSTR_2 = "NIVEAU 2: Souterrains"; -HUSTR_3 = "NIVEAU 3: Parcours du Combatant"; -HUSTR_4 = "NIVEAU 4: Le Focus"; -HUSTR_5 = "NIVEAU 5: Les Egouts"; -HUSTR_6 = "NIVEAU 6: Le Broyeur"; -HUSTR_7 = "NIVEAU 7: Mortellement Simple"; -HUSTR_8 = "NIVEAU 8: Ruses et Pièges"; -HUSTR_9 = "NIVEAU 9: La Fosse"; -HUSTR_10 = "NIVEAU 10: Base de Ravitaillement"; -HUSTR_11 = "NIVEAU 11: Le Cercle de la Mort!"; -HUSTR_12 = "NIVEAU 12: L'Usine"; -HUSTR_13 = "NIVEAU 13: Centre-Ville"; -HUSTR_14 = "NIVEAU 14: Les Antres Profondes"; -HUSTR_15 = "NIVEAU 15: Zone Industrielle"; -HUSTR_16 = "NIVEAU 16: Banlieue"; -HUSTR_17 = "NIVEAU 17: Immeubles"; -HUSTR_18 = "NIVEAU 18: La Cour"; -HUSTR_19 = "NIVEAU 19: La Citadelle"; -HUSTR_20 = "NIVEAU 20: Je t'ai Eu!"; -HUSTR_21 = "NIVEAU 21: Nirvana"; -HUSTR_22 = "NIVEAU 22: Les Catacombes"; -HUSTR_23 = "NIVEAU 23: Une Tonne-eau de plaisir"; -HUSTR_24 = "NIVEAU 24: Le Gouffre"; -HUSTR_25 = "NIVEAU 25: Chutes de Sang"; -HUSTR_26 = "NIVEAU 26: Les Mines Abandonnées"; -HUSTR_27 = "NIVEAU 27: Monstrueuse Résidence"; -HUSTR_28 = "NIVEAU 28: Le Monde Spirituel"; -HUSTR_29 = "NIVEAU 29: La Limite"; -HUSTR_30 = "NIVEAU 30: L'Icône du Péché"; - -HUSTR_31 = "NIVEAU 31: WOLFENSTEIN"; -HUSTR_32 = "NIVEAU 32: GROSSE"; -HUSTR_31B = "NIVEAU 31: IDKFQ"; -HUSTR_32B = "NIVEA 32: KEEN"; -HUSTR_33 = "Niveau 33: Trahison"; - -NHUSTR_1 = "NIVEAU 1: La Base Terrienne"; -NHUSTR_2 = "NIVEAU 2: Les Laboratoires de la Douleur"; -NHUSTR_3 = "NIVEAU 3: Canyon des Morts"; -NHUSTR_4 = "NIVEAU 4: Montagne Infernale"; -NHUSTR_5 = "NIVEAU 5: Vivisection"; -NHUSTR_6 = "NIVEAU 6: Enfer Sanglant"; -NHUSTR_7 = "NIVEAU 7: Banquet du Baron"; -NHUSTR_8 = "NIVEAU 8: Tombe Maléfique"; -NHUSTR_9 = "NIVEAU 9: Marche des Démons"; - - -PHUSTR_1 = "NIVEAU 1: Congo"; -PHUSTR_2 = "NIVEAU 2: Puits des Ames"; -PHUSTR_3 = "NIVEAU 3: Aztèque"; -PHUSTR_4 = "NIVEAU 4: Enfermé"; -PHUSTR_5 = "NIVEAU 5: Ville Fantôme"; -PHUSTR_6 = "NIVEAU 6: Repaire du Baron"; -PHUSTR_7 = "NIVEAU 7: Cour-oincé"; -PHUSTR_8 = "NIVEAU 8: Royaume"; -PHUSTR_9 = "NIVEAU 9: Abattoir"; -PHUSTR_10 = "NIVEAU 10: Assaut"; -PHUSTR_11 = "NIVEAU 11: Traque"; -PHUSTR_12 = "NIVEAU 12: Vitesse"; -PHUSTR_13 = "NIVEAU 13: La Crypte"; -PHUSTR_14 = "NIVEAU 14: Genèse"; -PHUSTR_15 = "NIVEAU 15: Le Crépuscule"; -PHUSTR_16 = "NIVEAU 16: Le Présage"; -PHUSTR_17 = "NIVEAU 17: Installation"; -PHUSTR_18 = "NIVEAU 18: Neurosphère"; -PHUSTR_19 = "NIVEAU 19: NMI"; -PHUSTR_20 = "NIVEAU 20: Le Domaine de la Mort"; -PHUSTR_21 = "NIVEAU 21: Pourfendeur"; -PHUSTR_22 = "NIVEAU 22: Mission Impossible"; -PHUSTR_23 = "NIVEAU 23: Pierre Tombale"; -PHUSTR_24 = "NIVEAU 24: La Frontière Finale"; -PHUSTR_25 = "NIVEAU 25: Le Temple des Ténèbres"; -PHUSTR_26 = "NIVEAU 26: Bunker"; -PHUSTR_27 = "NIVEAU 27: Anti-Christ"; -PHUSTR_28 = "NIVEAU 28: Les Egouts"; -PHUSTR_29 = "NIVEAU 29: Odysée de Bruits"; -PHUSTR_30 = "NIVEAU 30: La Porte des Enfers"; -PHUSTR_31 = "NIVEAU 31: Cyber-Antre"; -PHUSTR_32 = "NIVEAU 32: GO 2 IT"; - -THUSTR_1 = "NIVEAU 1: Système de Contrôle"; -THUSTR_2 = "NIVEAU 2: Barbecue Humain"; -THUSTR_3 = "NIVEAU 3: Contrôle Energétique"; -THUSTR_4 = "NIVEAU 4: Trou de Ver"; -THUSTR_5 = "NIVEAU 5: Hangar"; -THUSTR_6 = "NIVEAU 6: La Chasse Est Ouverte"; -THUSTR_7 = "NIVEAU 7: Prison"; -THUSTR_8 = "NIVEAU 8: Métal"; -THUSTR_9 = "NIVEAU 9: Forteresse"; -THUSTR_10 = "NIVEAU 10: Rédemption"; -THUSTR_11 = "NIVEAU 11: Complexe de Stockage"; -THUSTR_12 = "NIVEAU 12: Cratère"; -THUSTR_13 = "NIVEAU 13: Traitement Nucléaire"; -THUSTR_14 = "NIVEAU 14: Aciérie"; -THUSTR_15 = "NIVEAU 15: Zone Morte"; -THUSTR_16 = "NIVEAU 16: Profondeurs"; -THUSTR_17 = "NIVEAU 17: Zone de Traitement"; -THUSTR_18 = "NIVEAU 18: Fonderie"; -THUSTR_19 = "NIVEAU 19: Envoi/Réapparition"; -THUSTR_20 = "NIVEAU 20: Organisme Central"; -THUSTR_21 = "NIVEAU 21: Centre Administratif"; -THUSTR_22 = "NIVEAU 22: Habitat"; -THUSTR_23 = "NIVEAU 23: Projet Minier Lunaire"; -THUSTR_24 = "NIVEAU 24: Carrière"; -THUSTR_25 = "NIVEAU 25: l'Antre des Barons"; -THUSTR_26 = "NIVEAU 26: Ballistyx"; -THUSTR_27 = "NIVEAU 27: Mont Souffrance"; -THUSTR_28 = "NIVEAU 28: Que Diable?"; -THUSTR_29 = "NIVEAU 29: Fleuve Styx"; -THUSTR_30 = "NIVEAU 30: Dernier Appel"; -THUSTR_31 = "NIVEAU 31: Pharaon"; -THUSTR_32 = "NIVEAU 32: Caraïbes"; - -HUSTR_TALKTOSELF1 = "Vous parlez tout seul."; -HUSTR_TALKTOSELF2 = "Qui est là?"; -HUSTR_TALKTOSELF3 = "Vous vous surprenez."; -HUSTR_TALKTOSELF4 = "Vous commencez à délirer!"; -HUSTR_TALKTOSELF5 = "Vous avez perdu les pédales..."; - -HUSTR_MESSAGESENT = "[Message Envoyé]"; - -// -// AM_map.C -// - -AMSTR_FOLLOWON = "Suivi du Joueur ON"; -AMSTR_FOLLOWOFF = "Suivi du Joueur OFF"; - -AMSTR_GRIDON = "Quadrillage ON"; -AMSTR_GRIDOFF = "Quadrillage OFF"; - -AMSTR_TEXON = "Mode Texturé ON"; -AMSTR_TEXOFF = "Mode Texturé OFF"; - -AMSTR_MARKEDSPOT = "Repère marqué."; -AMSTR_MARKSCLEARED = "Repères éffacés."; - -// -// ST_stuff.C -// - -STSTR_MUS = "Changement de Musique"; -STSTR_NOMUS = "Séléction Impossible!"; -STSTR_DQDON = "Invulnérabilité ON "; -STSTR_DQDOFF = "Invulnérabilité OFF"; -STSTR_DQD2ON = "Parfaite Invulnérabilité ON"; -STSTR_DQD2OFF = "Parfaite Invulnérabilité OFF"; - -STSTR_KFAADDED = "Armement Maximum!"; -STSTR_FAADDED = "Arsenal ajouté. (Pas de clés!)"; - -STSTR_NCON = "Collisions OFF"; -STSTR_NCOFF = "Collisions ON"; -STSTR_NC2ON = "Collisions 3D OFF"; - -STSTR_BEHOLD = "in V ulnérable, S urpuissance, I nvisible, p R otection, c A rte, où L umière?"; -STSTR_BEHOLDX = "Amélioration Activée!"; -STSTR_CHOPPERS = "... C'est pas de la merde. - GM"; - -STSTR_CLEV = "Changement de niveau..."; - -TXT_DEFAULTPICKUPMSG = "Quelque chose récupéré."; - -// -// F_Finale.C -// -E1TEXT = - "APRES AVOIR VAINCU CES SALES PESTES\n" - "ET NETTOYE LA BASE LUNAIRE, VOUS AVEZ\n" - "GAGNE, NON? PAS VRAI? OU EST DONC VOTRE\n" - "RECOMPENSE ET VOTRE BILLET DE\n" - "RETOUR? QU'EST-QUE CA VEUT DIRE? CE" - "N'EST PAS LA FIN ESPEREE!\n" - "\n" - "CA SENT LA VIANDE PUTREFIEE, MAIS\n" - "ON DIRAIT LA BASE DEIMOS. VOUS ETES\n" - "APPAREMMENT BLOQUE AUX PORTES DE L'ENFER.\n" - "LA SEULE ISSUE EST DE L'AUTRE COTE.\n" - "\n" - "POUR VIVRE LA SUITE DE DOOM, JOUEZ\n" - "A 'AUX PORTES DE L'ENFER' ET A\n" - "L'EPISODE SUIVANT, 'INFERNO'!\n"; - -E2TEXT = - "VOUS AVEZ REUSSI. L'INFAME DEMON\n" - "QUI CONTROLAIT LA BASE LUNAIRE DE\n" - "DEIMOS EST MORT, ET VOUS AVEZ\n" - "TRIOMPHE! MAIS... OU ETES-VOUS?\n" - "VOUS GRIMPEZ JUSQU'AU BORD DE LA\n" - "LUNE ET VOUS DECOUVREZ L'ATROCE\n" - "VERITE.\n" - "\n" - "DEIMOS EST AU-DESSUS DE L'ENFER!\n" - "VOUS SAVEZ QUE PERSONNE NE S'EN\n" - "EST JAMAIS ECHAPPE, MAIS CES FUMIERS\n" - "VONT REGRETTER DE VOUS AVOIR CONNU!\n" - "VOUS REDESCENDEZ RAPIDEMENT VERS\n" - "LA SURFACE DE L'ENFER.\n" - "\n" - "VOICI MAINTENANT LE CHAPITRE FINAL DE\n" - "DOOM! -- INFERNO."; - -E3TEXT = - "LE DEMON ARACHNEEN ET REPUGNANT\n" - "QUI A DIRIGE L'INVASION DES BASES\n" - "LUNAIRES ET SEME LA MORT VIENT DE SE\n" - "FAIRE PULVERISER UNE FOIS POUR TOUTES.\n" - "\n" - "UNE PORTE SECRETE S'OUVRE. VOUS ENTREZ.\n" - "VOUS AVEZ PROUVE QUE VOUS POUVIEZ\n" - "RESISTER AUX HORREURS DE L'ENFER.\n" - "IL SAIT ETRE BEAU JOUEUR, ET LORSQUE\n" - "VOUS SORTEZ, VOUS REVOYEZ LES VERTES\n" - "PRAIRIES DE LA TERRE, VOTRE PLANETE.\n" - "\n" - "VOUS VOUS DEMANDEZ CE QUI S'EST PASSE\n" - "SUR TERRE PENDANT QUE VOUS AVEZ\n" - "COMBATTU LE DEMON. HEUREUSEMENT,\n" - "QU'AUCUN GERME DU MAL N'A FRANCHI\n" - "CETTE PORTE AVEC VOUS..."; - -E4TEXT = - "l'araignee cerveau doit avoir envoyé\n" - "ses légions de créatures de l'enfer \n" - "avant votre confrontation finale avec\n" - "cette terrible bête infernale.\n" - "Mais vous avancez et mettez de suite\n" - "la damnation eternelle et souffrances\n" - "a la meute comme un héros le fairait\n" - "face à quelque chose de si maléfique.\n" - "D'ailleurs, quelqu'un va devoir payer \n" - "pour ce qui est arrivé a Daisy, \n" - "votre lapin domestique.\n" - "\n" - "mais maintenant, vous voyez devant vous \n" - "encore plus de nouvelles souffrances \n" - "potentielles et de chairs broyees\n" - "comme une horde de demons déversant \n" - "la mort parmi nos villes.\n\n" - "prochain arrêt, l'enfer sur terre!"; - -// after level 6, put this: - -C1TEXT = - "VOUS ETES AU PLUS PROFOND DE L'ASTROPORT\n" - "INFESTE DE MONSTRES, MAIS QUELQUE CHOSE\n" - "NE VA PAS. ILS ONT APPORTE LEUR PROPRE\n" - "REALITE, ET LA TECHNOLOGIE DE L'ASTROPORT\n" - "EST AFFECTEE PAR LEUR PRESENCE.\n" - "\n" - "DEVANT VOUS, VOUS VOYEZ UN POSTE AVANCE\n" - "DE L'ENFER, UNE ZONE FORTIFIEE. SI VOUS\n" - "POUVEZ PASSER, VOUS POURREZ PENETRER AU\n" - "COEUR DE LA BASE HANTEE ET TROUVER \n" - "L'INTERRUPTEUR DE CONTROLE QUI GARDE LA \n" - "POPULATION DE LA TERRE EN OTAGE."; - -// After level 11, put this: - -C2TEXT = - "VOUS AVEZ GAGNE! VOTRE VICTOIRE A PERMIS\n" - "A L'HUMANITE D'EVACUER LA TERRE ET \n" - "D'ECHAPPER AU CAUCHEMAR. VOUS ETES \n" - "MAINTENANT LE DERNIER HUMAIN A LA SURFACE \n" - "DE LA PLANETE. VOUS ETES ENTOURE DE \n" - "MUTANTS CANNIBALES, D'EXTRATERRESTRES \n" - "CARNIVORES ET D'ESPRITS DU MAL. VOUS \n" - "ATTENDEZ CALMEMENT LA MORT, HEUREUX \n" - "D'AVOIR PU SAUVER VOTRE RACE.\n" - "MAIS UN MESSAGE VOUS PARVIENT SOUDAIN\n" - "DE L'ESPACE: NOS CAPTEURS ONT LOCALISE\n" - "LA SOURCE DE L'INVASION EXTRATERRESTRE.\n" - "SI VOUS Y ALLEZ, VOUS POURREZ PEUT-ETRE\n" - "LES ARRETER. LEUR BASE EST SITUEE AU COEUR\n" - "DE VOTRE VILLE NATALE, PRES DE L'ASTROPORT.\n" - "VOUS VOUS RELEVEZ LENTEMENT ET PENIBLEMENT\n" - "ET VOUS REPARTEZ POUR LE FRONT."; - -// After level 20, put this: - -C3TEXT = - "VOUS ETES AU COEUR DE LA CITE CORROMPUE,\n" - "ENTOURE PAR LES CADAVRES DE VOS ENNEMIS.\n" - "VOUS NE VOYEZ PAS COMMENT DETRUIRE LA PORTE\n" - "DES CREATURES DE CE COTE. VOUS SERREZ\n" - "LES DENTS ET PLONGEZ DANS L'OUVERTURE.\n" - "\n" - "IL DOIT Y AVOIR UN MOYEN DE LA FERMER\n" - "DE L'AUTRE COTE. VOUS ACCEPTEZ DE\n" - "TRAVERSER L'ENFER POUR LE FAIRE?"; - -// After level 29, put this: - -C4TEXT = - "LE VISAGE HORRIBLE D'UN DEMON D'UNE\n" - "TAILLE INCROYABLE S'EFFONDRE DEVANT\n" - "VOUS LORSQUE VOUS TIREZ UNE SALVE DE\n" - "ROQUETTES DANS SON CERVEAU. LE MONSTRE\n" - "S'ECRASE, SES MEMBRES DECHIQUETES\n" - "SE REPANDANT SUR DES CENTAINES DE\n" - "KILOMETRES A LA SURFACE DE L'ENFER.\n" - "\n" - "VOUS AVEZ REUSSI. L'INVASION N'AURA.\n" - "PAS LIEU. LA TERRE EST SAUVEE. L'ENFER\n" - "EST ANEANTI. EN VOUS DEMANDANT OU IRONT\n" - "MAINTENANT LES DAMNES, VOUS ESSUYEZ\n" - "VOTRE FRONT COUVERT DE SUEUR ET REPARTEZ\n" - "VERS LA TERRE. SA RECONSTRUCTION SERA\n" - "BEAUCOUP PLUS DROLE QUE SA DESTRUCTION.\n"; - -// Before level 31, put this: - -C5TEXT = - "FELICITATIONS! VOUS AVEZ TROUVE LE\n" - "NIVEAU SECRET! IL SEMBLE AVOIR ETE\n" - "CONSTRUIT PAR LES HUMAINS. VOUS VOUS\n" - "DEMANDEZ QUELS PEUVENT ETRE LES\n" - "HABITANTS DE CE COIN PERDU DE L'ENFER."; - -// Before level 32, put this: - -C6TEXT = - "FELICITATIONS! VOUS AVEZ DECOUVERT\n" - "LE NIVEAU SUPER SECRET! VOUS FERIEZ\n" - "MIEUX DE FONCER DANS CELUI-LA!\n"; - -P1TEXT = - "Vous jubilez sur la carcasse brûlante \n" - "du Gardien. Avec sa mort, vous avez \n" - "arraché l'accélerateur des griffes \n" - "fétides de l'enfer. Vous vous reposez \n" - "et regardez aux alentours du lieu. \n" - "Mince! Il était supposé qu'il y ait\n" - "au mois un prototype en fonctionnement, \n" - "mais vous ne le trouvez pas. les démons \n" - "l'on sûrement pris avec eux. \n\n" - "Vous devez trouver le prototype, ou \n" - "tous vos combats auront été vains. \n" - "continez à avancer, à vous battre, à tuer. \n" - "Oh oui, à vivre, aussi."; -P2TEXT = - "Même le labyrinthe mortifère des \n" - "arche-viles ne vous a pas arrêté,\n" - "et vous obtenez le prototype \n" - "d'accelerateur et parvenez à le \n" - "désactiver efficacement et pour toujours.\n" - "\n" - "Vous êtes doué pour ces choses là."; -P3TEXT = - "Vous vous êtes frayé votre chemin à \n" - "travers le coeur d'une ruche de \n" - "diables. Il est temps pour une mission\n" - "de recherche et destruction visant le \n" - "gardien de la porte, avec sa \n" - "progéniture répugnante descendant en \n" - "cascade sur terre. Oui ,il est cruel. \n" - "Mais vous savez qui est pire!\n\n" - "Souriant malicieusement, vous vérifiez \n" - "l'equipement et vous vous préparez a\n" - "faire voir a ce fumier un petit enfer\n" - "fait de vos propres mains!"; -P4TEXT = - "La face maléfique du gardien de la porte \n" - "est éparpillee aux alentours. Comme son \n" - "corps en lambeaux vacille, un portail \n" - "inverse se forme et aspire les éclats du \n" - "dernier prototype d'accélerateur, sans \n" - "parler des quelques demons restants.\n" - "Vous avez gagné. L'enfer a fini de\n" - "libérer des mort-vivants au lieu de \n" - "gens bien vivants.\n" - "Souvenez vous de dire a vos enfants de\n" - "mettre un lance-roquette dans votre\n" - "cercueil. Si vous allez en enfer,\n" - "quand vous serez mort, vous en aurez \n" - "besoin, pour un nettoyage définitif..."; -P5TEXT = - "Vous avez trouvé le deuxième niveau\n" - "le plus difficile que nous avons.\n" - "J'espère que vous avez sauvegardé\n" - "lors du précédant...\n" - "Sinon, soyez prêt a mourir souvent.\n" - "Pour les pros seulement."; -P6TEXT = - "Alors, vous vous demandiez quel\n" - "était le niveau le plus dur que nous\n" - "avions préparé pour vous? Maintenant,\n" - "vous savez. Nul n'en sortira vivant.\n"; - -T1TEXT = - "Vous vous êtes frayé un chemin vers la\n" - "sortie des labos expérimentaux infestés.\n" - "Il semble que l'UAC les a encore vidés. \n" - "Avec leur chiffres d'affaires élevé,\n" - "ca doit etre dûr pour la pauvre vieille\n" - "UAC d'acheter des societes \n" - "d'assurance vie de nos jours...\n" - "\n" - "Vous avez devant vous le complexe \n" - "militaire, cela grouille d'horreurs \n" - "morbides prètes a vous estropier.\n" - "Avec un peu de chance, le complexe a \n" - "encore quelques munitions de guerre\n" - "reposant autour."; -T2TEXT = - "Vous entendez le grincement d'une grosse\n" - "machinerie devant. Vous esperez surement\n" - "qu'ils ne sont pas en train de fabriquer\n" - "de nouvelles creatures de l'enfer,\n" - "mais vous etes prêt a balayer tout\n" - "un troupeau si vous le deviez.\n" - "Ils pourraient etre en train de préparer\n" - "un festin de sang, mais vous vous sentez\n" - "pareil a deux milliers de fous dans le \n" - "corps d'un seul et même tueur.\n" - "\n" - "Vous ne pensez pas mourir si facilement."; -T3TEXT = - "La vue s'ouvrant devant vous semble \n" - "sacrément, diablement familière.\n" - "Les odeurs familières, trop -- comme\n" - "des excrèments frits. Vous n'aimiez \n" - "pas cet endroit avant, et vous etes \n" - "terriblement sûr de ne pas envisager\n" - "l'aimer maintenant.\n" - "Plus vous pensiez a cette idée,\n" - "plus vous sombrez dans la folie.\n" - "Saisissant votre arme, un sourrire\n" - "maléfique apparait sur votre visage.\n" - "Il est l'heure de buter du démon...."; -T4TEXT = - "Tout a coup, tout est silencieux ,\n" - "d'un horizon a l'autre.\n" - "L'écho agonisant de l'enfer s'estompe,\n" - "le ciel cauchemardeque tourne au bleu,\n" - "les tas de cadavres de monstres \n" - "commencent a s'évaporer avec une puanteur\n" - "nauséabonde qui remplit l'air.\n" - "Doux jésus, peut être l'avez vous fait.\n" - "Avez vous réellement gagné?\n\n" - "quelque chose gronde au loin.\n" - "une lumière bleue a commence a luire\n" - "dans le crâne défonce du démon\n" - "cracheur."; -T5TEXT = - "Maintenant quoi? Cela semble \n" - "complètement different.\n" - "Une sorte de lotissement au\n" - "bon vieux Toutankhamon.\n" - "Bon, rien ne peut être pire\n" - "que d'habitude. N'est-ce pas?\n" - "Ou peut être est ce mieux\n" - "de laisser dormir les dieux,\n" - "la ou ils reposent..\n" -T6TEXT = - "Vous aviez besoin de vacances.\n" - "Vous avez éclaté les entrailles\n" - "de l'enfer et pour sûr vous êtes \n" - "prét pour une pause.\n" - "Vous marmonnez à vous même:\n" - "Peut-etre quelqu'un pourrait botter\n" - "le cul de l'enfer a votre place,\n" - "la prochaine fois.\n" - "Une ville tranquille réside devant, \n" - "avec le flot paisible de l'eau,\n" - "les batiments pittoresques, et\n" - "probablement plus de créatures\n" - "de l'enfer.\n" - "Quand vous descendez au dehors du \n" - "transport, vous entendez le bruit \n" - "du sabot d'acier d'un \n" - "Cyberdémon."; - -NERVETEXT = - "Quelqu'un avait décidé de foutre le bordel\n" - "sur votre lieu de vacances préféré: L'Enfer.\n" - "Un cyberdémon à la noix avait décidé d'en\n" - "faire son parc d'attraction, et la terre\n" - "son petit guichet.\n" - "\n" - "Cet abruti méchanique ne s'attendait pas\n" - "à ce que vous visitiez son chantier,\n" - "rien de mieux qu'un stand de tir plein de\n" - "démons pour faire chauffer l'ambiance..\n" - "\n" - "Maintenant que le cadavre croulant du démon\n" - "résonne en s'écrasant au sol, ses gémissements\n" - "d'agonie se déversent de son visage\n" - "que vous avez laissé en charpie.\n" - "\n" - "Le manège est fermé!\n"; - - -// -// Character cast strings F_FINALE.C -// -CC_ZOMBIE = "Zombie"; -CC_SHOTGUN = "Type au Fusil"; -CC_HEAVY = "Mec avec un Gros Flingue"; -CC_IMP = "Diablotin"; -CC_DEMON = "Démon"; -CC_LOST = "Ame Perdue"; -CC_CACO = "Cacodémon"; -CC_HELL = "Chevalier Infernal"; -CC_BARON = "Baron des Enfers"; -CC_ARACH = "Arachnotron"; -CC_PAIN = "Elémentaire de Douleur"; -CC_REVEN = "Revenant"; -CC_MANCU = "Mancube"; -CC_ARCH = "Arche-vile"; -CC_SPIDER = "L'Araignée Commandante"; -CC_CYBER = "Le Cyberdémon"; -CC_HERO = "Notre Héros"; - -// New strings from BOOM -PD_BLUEO = "Il vous faut une clé bleue pour activer cet objet."; -PD_REDO = "Il vous faut une clé rouge pour activer cet objet."; -PD_YELLOWO = "Il vous faut une clé jaune pour activer cet objet."; -PD_BLUEK = "Il vous faut une clé bleue pour ouvrir cette porte."; -PD_REDK = "Il vous faut une clé rouge pour ouvrir cette porte."; -PD_YELLOWK = "Il vous faut une clé jaune pour ouvrir cette porte."; -PD_BLUECO = "Il vous faut une carte bleue pour activer cet objet."; -PD_REDCO = "Il vous faut une carte rouge pour activer cet objet."; -PD_YELLOWCO = "Il vous faut une carte jaune pour activer cet objet."; -PD_BLUESO = "Il vous faut un crâne bleu pour activer cet objet."; -PD_REDSO = "Il vous faut un crâne rouge pour activer cet objet."; -PD_YELLOWSO = "Il vous faut un crâne jaune pour activer cet objet."; - -PD_BLUEC = "Il vous faut une carte bleue pour ouvrir cette porte."; -PD_REDC = "Il vous faut une carte rouge pour ouvrir cette porte."; -PD_YELLOWC = "Il vous faut une carte jaune pour ouvrir cette porte."; -PD_BLUES = "Il vous faut un crâne bleu pour ouvrir cette porte."; -PD_REDS = "Il vous faut un crâne rouge pour ouvrir cette porte."; -PD_YELLOWS = "Il vous faut un crâne jaune pour ouvrir cette porte."; -PD_ANY = "N'importe quelle clé peut ouvrir cette porte."; -PD_ANYOBJ = "N'importe quelle clé peut activer cet objet."; -PD_ALL3 = "Il vous faut une clé de chaque couleur pour ouvrir cette porte."; -PD_ALL3O = "Il vous faut une clé de chaque couleur pour activer cet objet."; -PD_ALL6 = "Il vous faut les six clés pour ouvrir cette porte."; -PD_ALL6O = "Il vous faut les six clés pour activer cet objet."; -PD_ALLKEYS = "Vous avez besoin de toutes les six clés."; - -// Gameflow messages -TXT_FRAGLIMIT = "Limite de frags atteinte."; -TXT_TIMELIMIT = "Limite de temps atteinte."; - -// Spree messages -SPREEKILLSELF = "%o était en pleine folie meurtrière avant que %g ne se bute!"; -SPREEOVER = "La folie meurtrière de %o à été terminée par %!k"; -SPREE5 = "%k est en folie meurtrière!"; -SPREE10 = "%k est en plein massacre!"; -SPREE15 = "%k domine!"; -SPREE20 = "%k est inarrétable!"; -SPREE25 = "%k est un dieu!"; - -// Mulitkill messages -MULTI2 = "Double meurtre!"; -MULTI3 = "Multi meurtre!"; -MULTI4 = "Ultra meurtre!"; -MULTI5 = "Monster Kill!"; - -// Obituary strings -// First the self-kills, then the other-kills -OB_SUICIDE = "%o se suicide."; -OB_FALLING = "%o est tombé trop loin."; -OB_CRUSH = "%o a été écrasé."; -OB_EXIT = "%o a tenté de partir."; -OB_WATER = "%o ne sait pas nager."; -OB_SLIME = "%o a muté."; -OB_LAVA = "%o a fondu."; -OB_BARREL = "%o s'est pété la face."; -OB_SPLASH = "%o s'est tenu au mauvais endroit."; -OB_R_SPLASH = "%o aurait dû garder ses distances."; -OB_ROCKET = "%o aurait dû garder ses distances."; -OB_KILLEDSELF = "%o s'est tué/e."; -OB_VOODOO = "%o a succombé au pouvoir du Vaudou."; - -OB_STEALTHBABY = "%o a cru voir un Arachnotron."; -OB_STEALTHVILE = "%o a cru voir un Arche-Vile."; -OB_STEALTHBARON = "%o a cru voir un Baron des enfers."; -OB_STEALTHCACO = "%o a cru voir un Cacodémon."; -OB_STEALTHCHAINGUY = "%o a cru voir un mitrailleur."; -OB_STEALTHDEMON = "%o a cru voir un démon."; -OB_STEALTHKNIGHT = "%o a cru voir un chevalier infernal."; -OB_STEALTHIMP = "%o a cru voir un diablotin."; -OB_STEALTHFATSO = "%o a cru voir un mancube."; -OB_STEALTHUNDEAD = "%o a cru voir un revenant."; -OB_STEALTHSHOTGUY = "%o a cru voir un type au fusil."; -OB_STEALTHZOMBIE = "%o a cru voir un zombie."; -OB_UNDEADHIT = "%o s'est pris un raclée de la part d'un revenant."; -OB_IMPHIT = "%o a été lacéré par un diablotin."; -OB_CACOHIT = "%o s'est approché trop près d'un Cacodémon."; -OB_DEMONHIT = "%o a été mordu par un démon."; -OB_SPECTREHIT = "%o a été dévoré par un spectre."; -OB_BARONHIT = "%o a été déchiré par un Baron des Enfers."; -OB_KNIGHTHIT = "%o a été étripé par un un chevalier infernal."; -OB_ZOMBIE = "%o a été tué par un zombie."; -OB_SHOTGUY = "%o s'est fait flinguer par un type au fusil."; -OB_VILE = "%o a été incinéré par un Arche-Vile."; -OB_UNDEAD = "%o n'a pas réussi à esquiver un missile de revenant."; -OB_FATSO = "%o s'est fait aplatir par un Mancube."; -OB_CHAINGUY = "%o a été perforé par un mitrailleur."; -OB_SKULL = "%o s'est fait surprendre par une âme perdue."; -OB_IMP = "%o brûlé par un diablotin."; -OB_CACO = "%o a été terrassé par un Cacodémon."; -OB_BARON = "%o a été démoli par un Baron des Enfers."; -OB_KNIGHT = "%o a été éclaté par un chevalier infernal."; -OB_SPIDER = "%o est resté pris d'admiration devant le Démon Arachnéen."; -OB_BABY = "%o a laissé un arachnotron l'avoir."; -OB_CYBORG = "%o a été pulvérisé par un Cyberdémon."; -OB_WOLFSS = "%o a rencontré un Nazi."; -OB_DOG = "%o s'est fait mordre par un chien."; - -OB_CHICKEN = "%o a été picoré a mort."; -OB_BEAST = "%o a été carbonisé par un dragon-garou."; -OB_CLINK = "%o s'est fait découper par un sabregriffe."; -OB_DSPARIL1 = "%o a été ébouillanté par un serpent de D'Sparil."; -OB_DSPARIL1HIT = "%o a été dévoré par un serpent de D'Sparil."; -OB_DSPARIL2 = "%o n'a pas pu égaler D'Sparil."; -OB_DSPARIL2HIT = "%o a été battu a plate couture par D'Sparil."; -OB_HERETICIMP = "%o a été effrayé par une gargouille."; -OB_HERETICIMPHIT = "%o a été mis en pièces par une gargouille."; -OB_IRONLICH = "%o a été dévasté par une Liche de Fer."; -OB_IRONLICHHIT = "%o a fait ami-ami avec une Liche de Fer."; -OB_BONEKNIGHT = "%o s'est pris la hache d'un guerrier mort-vivant."; -OB_BONEKNIGHTHIT = "%o s'est fait pourfendre par un guerrier mort-vivant."; -OB_MINOTAUR = "%o s'est fait incinérer par un Massetaure."; -OB_MINOTAURHIT = "%o s'est fait éclater par un Massetaure."; -OB_MUMMY = "%o a été défoncé par un golem."; -OB_MUMMYLEADER = "%o s'est fait percer les tympans par un nitrogolem."; -OB_SNAKE = "%o s est fait secouer par un ophidien."; -OB_WIZARD = "%o a été maudit par un sorcier."; -OB_WIZARDHIT = "%o a été palpé par un sorcier."; - -OB_FIREDEMON = "%o a goûté au feu d'un Afrit."; -OB_DEMON1 = "%o a été brûlé par un Serpent."; -OB_DEMON2 = "%o a été empoisonné par un Serpent."; -OB_ETTIN = "%o a été réduit en purée par un Ettin."; -OB_CENTAUR = "%o a été tranché par un Centaure."; -OB_SLAUGHTAURHIT = "%o a été tranché par un Sangtaure."; -OB_SLAUGHTAUR = "%o a été touché par une boule de feu de Sangtaure."; -OB_BISHOP = "%o a succombé au pouvoir obscur d'un évèque."; -OB_ICEGUY = "%o a été gelé par un Wendigo."; -OB_SERPENTHIT = "%o a été mutilé par un Chasseur."; -OB_SERPENT = "%o a été fondu par un Chasseur."; -OB_WRAITH = "%o a été carbonisé par un Reiver."; -OB_WRAITHHIT = "%o a perdu la vie face à un Reiver."; -OB_DRAGON = "%o a été incinéré par une vouivre de la mort."; -OB_KORAX = "%o a été balayé de l'échiquier par Korax."; -OB_FBOSS = "%o a été pourfendu par Zedek."; -OB_MBOSS = "%o n'aurait pu absorber le mana de Menelkir."; -OB_CBOSS = "%o a été baptisé par Traductus."; -OB_HERESIARCH = "%o s'est fait rouler les os par l'Hérésiarche."; - -OB_ACOLYTE = "%o a souffert d'une bavure policière."; -OB_MACIL = "%o n'aurait jamais du se rebeller contre Macil."; -OB_REBEL = "%o a été abattu par un rebelle."; -OB_BEGGAR = "%o a été battu a mort par un pauvre."; -OB_PEASANT = "%o n'aurait jamais du chercher des noises a un civil."; -OB_ALIENSPECTRE = "%o a été terrassé par le Spectre."; -OB_ENTITY = "%o a senti le courroux du Seul Dieu."; -OB_LOREMASTER = "%o n'a pu échapper a l'emprise du Maître des Traditions."; -OB_PROGRAMMER = "%o a été effacé par le Programmeur."; -OB_STFBISHOP = "%o a été pulvérisé par l'Evèque."; -OB_SENTINEL = "%o a été abattu par une Sentinelle."; -OB_CRUSADER = "%o a été balayé par un croisé."; -OB_INQUISITOR = "%o a été condamné par un Inquisiteur."; -OB_STALKER = "%o a été asticoté par un chasseur."; -OB_TURRET = "%o a déclenché les défenses automatiques."; -OB_TEMPLARHIT = "%o a été griffé par un Templier."; -OB_TEMPLAR = "%o a été vaporisé par un Templier."; -OB_REAVERHIT = "%o a été fendu par un Reaver."; -OB_REAVER = "%o a été descendu par un Reaver."; - -OB_MPFIST = "%o a bouffé le poing de %k."; -OB_MPCHAINSAW = "%o a été tondu par la tronconneuse de %k."; -OB_MPPISTOL = "%o a été châtouillé par le pistolet de %k."; -OB_MPSHOTGUN = "%o a s'est mangé de la chevrotine de la part de %k."; -OB_MPSSHOTGUN = "%o s est fait gicler par le fusil de chasse de %k."; -OB_MPCHAINGUN = "%o a été ventilé par la mitrailleuse de %k."; -OB_MPROCKET = "%o a chevauché la roquette de %k."; -OB_MPR_SPLASH = "%o a presque esquivé la roquette de %k."; -OB_MPPLASMARIFLE = "%o a été réduit en bouillie par le fusil a plasma de %k."; -OB_MPBFG_BOOM = "%o a été oblitéré par le BFG de %k."; -OB_MPBFG_SPLASH = "%o n a pas pu se couvrir du BFG de %k."; -OB_MPTELEFRAG = "%o a été téléfragué par %k."; -OB_RAILGUN = "%o a été aligné par %k."; -OB_MPBFG_MBF = "%o a été irradié par le BFG de %k."; - -OB_MPSTAFF = "%o s'est fait matraquer par %k."; -OB_MPGAUNTLETS = "%o s'est pris un coup de jus par les gantelets de %k."; -OB_MPGOLDWAND = "%o à fait coucou à la baguette magique de %k."; -OB_MPCROSSBOW = "%o s'est fait clouer par l'arbalète étherique de %k."; -OB_MPBLASTER = "%o s'est fait flinguer par la griffe draconique de %k."; -OB_MPSKULLROD = "%o repose six pieds sous terre grâce au Bâton infernal de %k."; -OB_MPPHOENIXROD = "%o s'est fait réduire en cendres par le Bâton du Phénix de %k."; -OB_MPMACE = "%o a rebondi sur les balles de la Masse de Feu à %k."; - -OB_MPPSTAFF = "%o à été foudroyé par le bâton chargé de %k."; -OB_MPPGAUNTLETS = "%o s'est fait saigner à blanc par les gantelets de %k."; -OB_MPPGOLDWAND = "%o à été assailli par la baguette elfique de %k."; -OB_MPPCROSSBOW = "%o s'est fait transpercer par l'arbalète éthérique de %k."; -OB_MPPBLASTER = "%o à été mis en pièces par la griffe draconique de %k."; -OB_MPPSKULLROD = "%k à versé toute la rage des enfers sur %o."; -OB_MPPPHOENIXROD = "%o à été incinéré par le Bâton du Phénix de %k."; -OB_MPPMACE = "%o s'est fait écraser par la balle de Masse géante de %k."; - -OB_MPFWEAPFIST = "%o à été tabassé à mort par les poings de %k."; -OB_MPFWEAPAXE = "%o s'est fait hacher menu par %k."; -OB_MPFWEAPHAMMERM = "%o s'est fait éclater le crâne par le marteau de %k."; -OB_MPFWEAPHAMMERR = "%o a eu son âme reforgée par le marteau de %k."; -OB_MPFWEAPQUIETUS = "%o à été réduit au silence par le pouvoir de %k et Quietus."; -OB_MPCWEAPMACE = "%o s'est fait casser la figure par la masse de %k."; -OB_MPCWEAPSTAFFM = "%o s'est fait mordre par le Bâton du Serpent %k."; -OB_MPCWEAPSTAFFR = "%o s'est étranglé sur le Bâton du Serpent de %k"; -OB_MPCWEAPFLAME = "%o s'est fait allumer par %k."; -OB_MPCWEAPWRAITHVERGE = "%o wa été purifié par la Verge Phantasmale de %k."; -OB_MPMWEAPWAND = "%o s'est pris un rayon saphirique en trop de la part de %k."; -OB_MPMWEAPFROST = "%o s'est fait transformer en glaçon par %k."; -OB_MPMWEAPLIGHTNING = "%o a reçu un sacré coup de jus de la part de %k."; -OB_MPMWEAPBLOODSCOURGE = "%o s'est fait effacer de l'univers par le Fléau Sanglant de %k."; - -OB_MPPUNCHDAGGER = "%o s'est fait planter un lame dans le dos de la part de %k."; -OB_MPELECTRICBOLT = "%o s'est fait clouer au mur par %k."; -OB_MPPOISONBOLT = "%o a recu une dose létale de la colère de %k."; -OB_MPASSAULTGUN = "%o s'est fait couvrir de trous par le fusil d'assaut de %k."; -OB_MPMINIMISSILELAUNCHER = "%o a avalé le missile de %k."; -OB_MPSTRIFEGRENADE = "%o a été mis sens dessus dessous par la grenade explosive de %k."; -OB_MPPHOSPHOROUSGRENADE = "%o s'est permis une pyroclave dans les flammes phosphoriques de %k."; -OB_MPFLAMETHROWER = "%o est passé au barbecue de %k."; -OB_MPMAULER1 = "%o s'est fait électrocuter par %k."; -OB_MPMAULER = "%o à été vicieusement vaporisé par %k."; -OB_MPSIGIL = "%o s'est prosterné face à la toute puissance du Sigil de %k."; - -// Same as OB_MPTELEFRAG, but shown when a monster telefrags you -OB_MONTELEFRAG = "%o a été telefragué."; - -OB_DEFAULT = "%o est mort."; -OB_FRIENDLY1 = "%k a tué un de ses équipiers."; -OB_FRIENDLY2 = "%k vérifie ses lunettes."; -OB_FRIENDLY3 = "%k marque un point pour l'autre équipe."; -OB_FRIENDLY4 = "%k a perdu un autre ami."; - - -SCORE_ITEMS = "OBJETS"; -SCORE_COLOR = "COULEUR"; -SCORE_NAME = "NOM"; -SCORE_DELAY = "DELAI(ms)"; -SCORE_KILLS = "VICTIMES"; -SCORE_DEATHS = "MORTS"; -SCORE_MISSED = "RATES"; -SCORE_TOTAL = "TOTAL"; -SCORE_LVLTIME = "TEMPS NIVEAU"; - -// Item tags: Doom weapons -TAG_FIST = "Poing Américain"; -TAG_CHAINSAW = "Tronçonneuse"; -TAG_PISTOL = "Pistolet"; -TAG_SHOTGUN = "Fusil à pompe"; -TAG_SUPERSHOTGUN = "Super Fusil de chasse"; -TAG_CHAINGUN = "Mitrailleuse"; -TAG_ROCKETLAUNCHER = "Lance-Roquettes"; -TAG_PLASMARIFLE = "Fusil à Plasma"; -TAG_BFG9000 = "BFG 9000"; - -// Item tags: Heretic weapons -TAG_STAFF = "Bâton"; -TAG_GAUNTLETS = "Gantelets du Nécromancien"; -TAG_GOLDWAND = "Baguette Elfique"; -TAG_CROSSBOW = "Arbalète Etherique"; -TAG_BLASTER = "Griffe Draconique"; -TAG_SKULLROD = "Bâton Infernal"; -TAG_PHOENIXROD = "Bâton du Phénix"; -TAG_MACE = "Masse de Feu"; - -TAG_STAFFP = "Bâton"; -TAG_GAUNTLETSP = "Gantelets du Nécromancien"; -TAG_GOLDWANDP = "Baguette Elfique"; -TAG_CROSSBOWP = "Arbalète Etherique"; -TAG_BLASTERP = "Griffe Draconique"; -TAG_SKULLRODP = "Bâton Infernal"; -TAG_PHOENIXRODP = "Bâton du Phénix"; -TAG_MACEP = "Masse de Feu"; - -// Item tags: Heretic artifacts -TAG_ARTIEGG = "Ovule de Métamorphose"; -TAG_ARTIFIREBOMB = "Bombe a retardement des Anciens"; -TAG_ARTIFLY = "Ailes du Courroux"; -TAG_ARTIHEALTH = "Flasque en Quartz"; -TAG_ARTIINVISIBILITY = "Orbe des Ombres"; -TAG_ARTIINVULNERABILITY = "Anneau d'Invincibilité"; -TAG_ARTISUPERHEALTH = "Urne Mystique"; -TAG_ARTITELEPORT = "Outil du Chaos"; -TAG_ARTITOMEOFPOWER = "Livre du Pouvoir"; -TAG_ARTITORCH = "Torche"; - -// Item tags: Hexen weapons -TAG_CWEAPMACE = "Masse de Pénitence"; -TAG_CWEAPSTAFF = "Sceptre du Serpent"; -TAG_CWEAPFLAME = "Tempête de Feu"; -TAG_CWEAPWRAITHVERGE = "Verge Phantasmale"; -TAG_FWEAPFIST = "Gantelets à Pointes"; -TAG_FWEAPAXE = "Hache de Timon"; -TAG_FWEAPHAMMER = "Marteau de la Rétribution"; -TAG_FWEAPQUIETUS = "Quietus"; -TAG_MWEAPWAND = "Baguette de Saphir"; -TAG_MWEAPFROST = "Eclats de Givre"; -TAG_MWEAPLIGHTNING = "Foudre Mortelle"; -TAG_MWEAPBLOODSCOURGE = "Fléau Sanglant"; - -// Item tags: Hexen artifacts -TAG_ARTIBLASTRADIUS = "Disque de Répulsion"; -TAG_ARTIBOOSTARMOR = "Brassards en peau de Dragon"; -TAG_ARTIBOOSTMANA = "Cratère de Pouvoir"; -TAG_ARTIPOISONBAG = "Fléchette"; -TAG_ARTIPOISONBAG1 = "Fléchette - Nuage Toxique"; -TAG_ARTIPOISONBAG2 = "Fléchette - Bombe a Retardement"; -TAG_ARTIPOISONBAG3 = "Fléchette - Grenade"; -TAG_ARTIHEALINGRADIUS = "Incantation Mystique"; -TAG_ARTIDEFENDER = "Icône du Défenseur"; -TAG_ARTIPORK = "Porcificateur"; -TAG_ARTISPEED = "Bottes de Célérité"; -TAG_ARTISUMMON = "Serviteur Noir"; -TAG_ARTITELEPORTOTHER = "Outil de Banissement"; - - -// Item tags: Hexen puzzle items -TAG_ARTIPUZZSKULL = "Crâne de Yorick"; -TAG_ARTIPUZZGEMBIG = "Coeur de D'Sparil"; -TAG_ARTIPUZZGEMRED = "Planète en rubis"; -TAG_ARTIPUZZGEMGREEN1 = "Planète en émeraude (1)"; -TAG_ARTIPUZZGEMGREEN2 = "Planète en émeraude (2)"; -TAG_ARTIPUZZGEMBLUE1 = "Planète en saphir (1)"; -TAG_ARTIPUZZGEMBLUE2 = "Planète en saphir (2)"; -TAG_ARTIPUZZBOOK1 = "Codex Démoniaque"; -TAG_ARTIPUZZBOOK2 = "Liber Oscura"; -TAG_ARTIPUZZSKULL2 = "Masque de Flammes"; -TAG_ARTIPUZZFWEAPON = "Sceau du Glaive"; -TAG_ARTIPUZZCWEAPON = "Relique Sacrée"; -TAG_ARTIPUZZMWEAPON = "Sceau du Mage"; -TAG_ARTIPUZZGEAR1 = "Engrenage en Fer"; -TAG_ARTIPUZZGEAR2 = "Engrenage en Bronze"; -TAG_ARTIPUZZGEAR3 = "Engrenage en Fer et Bronze"; -TAG_ARTIPUZZGEAR4 = "Engrenage en Argent et Bronze"; - -// Item tags: Strife weapons -TAG_PUNCHDAGGER = "Dague de Poing"; -TAG_STRIFECROSSBOW1 = "Arbalète"; -TAG_STRIFECROSSBOW2 = "Arbalète"; -TAG_ASSAULTGUN = "Fusil d'Assaut"; -TAG_MMLAUNCHER = "Lanceur de Mini-Missiles"; -TAG_FLAMER = "Lance-Flammes"; -TAG_MAULER1 = "Broyeur"; -TAG_MAULER2 = "Broyeur"; -TAG_GLAUNCHER1 = "Lance-Grenades"; -TAG_GLAUNCHER2 = "Lance-Grenades"; -TAG_SIGIL = "SIGIL"; - -// Item tags: Strife artifacts -TAG_COIN = "Pièce"; -TAG_MEDPATCH = "Pansement"; -TAG_MEDICALKIT = "Kit Médical"; -TAG_SURGERYKIT = "Kit de Chirurgie"; -TAG_BELDINSRING = "Anneau"; -TAG_OFFERINGCHALICE = "Calice d'Obole"; -TAG_EAR = "Oreille"; -TAG_BROKENCOUPLING = "Coupleur Energétique cassé"; -TAG_SHADOWARMOR = "Armure de l'Ombre"; -TAG_ENVSUIT = "Combinaison Hazmat"; -TAG_GUARDUNIFORM = "Uniforme de Garde"; -TAG_OFFICERSUNIFORM = "Uniforme d'Officier"; -TAG_FTHROWERPARTS = "Pièces de Lance-Flamme"; -TAG_REPORT = "Compte-rendu"; -TAG_INFO = "Info"; -TAG_TARGETER = "Cibleur"; -TAG_COMMUNICATOR = "Communicateur"; -TAG_DEGNINORE = "Minerai de Degnin"; -TAG_GUNTRAINING = "Précision"; -TAG_HEALTHTRAINING = "Endurance"; -TAG_SCANNER = "Analyseur"; -TAG_PRISONPASS = "Passe de la Prison"; -TAG_ALARM = "Alarme"; -TAG_AMMOFILLUP = "Munitions"; -TAG_HEALTHFILLUP = "Santé"; -TAG_TELEPORTERBEACON = "Balise de téléportation"; -TAG_METALARMOR = "Armure en Métal"; -TAG_LEATHER = "Armure en Cuir"; -TAG_HEGRENADES = "Grenades Explosives"; -TAG_PHGRENADES = "Grenades Incendiaires"; -TAG_CLIPOFBULLETS = "Chargeur d'Assaut"; -TAG_BOXOFBULLETS = "Bôite de Munitions"; -TAG_MINIMISSILES = "Mini-Missiles"; -TAG_CRATEOFMISSILES = "Caisse de Mini-Missiles"; -TAG_ENERGYPOD = "Cellule Energétique"; -TAG_ENERGYPACK = "Pack Energétique"; -TAG_POISONBOLTS = "Carreaux Empoisonnés"; -TAG_ELECTRICBOLTS = "Carreaux Electriques"; -TAG_AMMOSATCHEL = "Sacoche à munitions"; - - -TAG_BASEKEY = "Clé de la base"; -TAG_GOVSKEY = "Clé du Gouverneur"; -TAG_PASSCARD = "Passe"; -TAG_IDBADGE = "Badge d'Identification"; -TAG_PRISONKEY = "Clé de la Prison"; -TAG_SEVEREDHAND = "Main coupée"; -TAG_POWER1KEY = "Clé Power1"; -TAG_POWER2KEY = "Clé Power2"; -TAG_POWER3KEY = "Clé Power3"; -TAG_GOLDKEY = "Clé en Or"; -TAG_IDCARD = "Carte d'Identité"; -TAG_SILVERKEY = "Clé en Argent"; -TAG_ORACLEKEY = "Clé de l'Oracle"; -TAG_MILITARYID = "Identification Militaire"; -TAG_ORDERKEY = "Clé de l'Ordre"; -TAG_WAREHOUSEKEY = "Clé de l'Entrepôt"; -TAG_BRASSKEY = "Clé en Bronze"; -TAG_REDCRYSTALKEY = "Clé de Cristal Rouge"; -TAG_BLUECRYSTALKEY = "Clé de Crisal Bleu"; -TAG_CHAPELKEY = "Clé de la Chapelle"; -TAG_CATACOMBKEY = "Clé des Catacombes"; -TAG_SECURITYKEY = "Clé de la Sécurité"; -TAG_COREKEY = "Clé du Réacteur"; -TAG_MAULERKEY = "Clé du Broyeur"; -TAG_FACTORYKEY = "Clé de l'Usine"; -TAG_MINEKEY = "Clé de la Mine"; -TAG_ORACLEPASS = "Passe de l'Oracle"; - -// Item tags: misc Strife stuff -TAG_10GOLD = "10 Pièces"; -TAG_25GOLD = "25 Pièces"; -TAG_50GOLD = "50 Pièces"; -TAG_300GOLD = "300 Pièces"; - -// Item tags: Strife NPCs -TAG_ACOLYTE = "Acolyte"; -TAG_ARMORER = "Armurier"; -TAG_BARKEEP = "Barman"; -TAG_BEGGAR = "Mendiant"; -TAG_MACIL1 = "Macil"; -TAG_MACIL2 = "Macil"; -TAG_MEDIC = "Médecin"; -TAG_ORACLE = "Oracle"; -TAG_PRIEST = "Prêtre"; -TAG_RATBUDDY = "Copain Rat"; -TAG_REBEL = "Rebelle"; -TAG_TEMPLAR = "Templier"; -TAG_WEAPONSMITH = "Forgeron"; - -// Item tags: Chex weapons -TAG_SPOON = "Cuillère à Botte"; -TAG_SPORK = "Super Fourchette"; -TAG_MINIZORCHER = "Mini Zorcheur"; -TAG_LARGEZORCHER = "Zorcheur Large"; -TAG_SUPERLARGEZORCHER = "Zorcheur Extra-large"; -TAG_RAPIDZORCHER = "Zorcheur Rapide"; -TAG_ZORCHPROPULSOR = "Propulseur de Zorch"; -TAG_PHASINGZORCHER = "Zorcheur à Phase"; -TAG_LAZDEVICE = "ZZL"; - - -// Heretic strings -HE1TEXT = - "Avec la destruction des liches\n" - "de fer et leur serviteurs, les derniers\n" - "mort-vivants furent eliminés de\n" - "cette plaine de l'existence.\n\n" - "ces créatures doivent venir de \n" - "quelque part, bien que vous ayez\n" - "un soupçon que ce portail\n" - "ardent de l'enfer puisse conduire\n" - "dans leur dimension.\n\n" - "pour etre sûr qu'aucun des\n" - "mort-vivants ou pire ne suivent\n" - "ce chemin, vous scemllez dûment le\n" - "portail de l'autre côté.\n" - "Bien sur cela veut dire que vous\n" - "auriez pû rester coincé dans un monde\n" - "très hostile, mais personne n'a\n" - "jamais dit qu'être un hérétique\n" - "soit facile!"; -HE2TEXT = - "les puissants massetaures ont fini par\n" - "prouver qu'il n'étaient pas votre égal,\n" - "et leurs cadavres fumants étalés sur\n" - "le sol, vous sentez l'infernale\n" - "satisfaction de les avoir complètement\n" - "détruits.\n\n" - "la passage qu'ils gardaient\n" - "s'ouvrit, révélant ce que vous\n" - "espérez être le chemin du retour.\n" - "Mais au fur et a mesure que vous \n" - "avancez, un rire moqueur sonne\n" - "à vos oreilles.\n\n" - "était-ce quelque autre force contrôlant\n" - "les massetaures? Ait elle pû être\n" - "plus atroce que les créatures de\n" - "ce portail? La forme d'un dôme\n" - "de cristal dépasse de\n" - "l'horizon, couvrant le ciel,\n" - "ce n'est pas de bon augure...."; -HE3TEXT = - "la mort de d'sparil a liberé\n" - "les liens magiques liant\n" - "les créatures de ce monde,\n" - "leurs cris d'agonie surpassant\n" - "ses propres hurlements.\n\n" - "votre serment de vengeance rempli,\n" - "vous pénétrez dans le portail vers\n" - "votre monde, un court moment\n" - "avant que la coupole vole en éclats.\n" - "Mais avec le pouvoir de d'sparil\n" - "rompu a jamais, pourquoi vous ne\n" - "pouvez pas vous sentir en sécurite?\n" - "Serai-çe à cause de son dernier cri\n" - "celui qui résonna comme une\n" - "malédiction? une invocation? vous\n" - "ne pouvez pas en être sûr, mais\n" - "ce n'est peut être qu un cri.\n\n" - "De plus, qu'adviendrat-il\n" - "des autres chevaucheurs de serpent?"; -HE4TEXT = - "vous aviez cru pouvoir retourner dans\n" - "votre monde apres que d'sparil\n" - "ne trépasse, mais son acte\n" - "final fut de vous bannir dans sa\n" - "propre dimension. Ici vous errez\n" - "dans les territoires ruinés des\n" - "conquêtes de d'sparil. vous êtes\n" - "le dernier gardien de ces terres,\n" - "mais a ce moment vous vous tenez\n" - "devant le bastion de d'sparil." - "jusqu'à ce moment vous n'aviez\n" - "aucun doute sur votre capacite\n" - "à affronter tout ce que vous pouviez\n" - "rencontrer, mais derrière ce portail\n" - "gît le coeur du mal profond\n" - "qui envahit votre monde. d'sparil\n" - "peut être mort, mais le puis d'où\n" - "il est sorti ne l'est pas. Maintenant\n" - "vous devez y entrer dans l'espoir\n" - "de trouver une sortie, quelque part,\n" - "dans la plus sombre partie du\n" - "royaume de d'sparil,\n" - "Sa garde personnelle attend votre\n" - "arrivée ..."; -HE5TEXT = - "dès que le massetaure final eu mugit\n" - "son râle d'agonie, vous réalisez que\n" - "vous n'avez jamais été aussi proche de\n" - "votre propre mort. Même le \n" - "combat contre d'sparil et ses\n" - "disciples n'eut ete a ce point \n" - "éreintant. Souriant, vous \n" - "regardez fixement le portail s'ouvrir \n" - "devant vous, vous demandant s'il mêne\n" - "chez vous, où si il ouvre sur une\n" - "horreur inimaginable. Vous n'êtes \n" - "pas sûr d'avoir la force d'y aller,\n" - "si rien d'autre que souffrance\n" - "et mort ne vous y attendent.\n" - "mais que faire d'autre, si la\n" - "volonté de vous battre disparaît?\n" - "Comment voulez-vous vous forcer à\n" - "continuer face a un tel désespoir? \n" - "En avez vous le courage? Vous pensez,\n" - "a la fin que ce n'est pas dans votre nature\n" - "de vous rendre sans combattre. les yeux\n" - "larges, vous partez rencontrer votre\n" - "destinée."; - -// EPISODE 1 - LA CITE DES DAMNES -HHUSTR_E1M1 = "LES DOCKS"; -HHUSTR_E1M2 = "LE DONJON"; -HHUSTR_E1M3 = "LE CORPS DE GARDE"; -HHUSTR_E1M4 = "LA TOUR DE GARDE"; -HHUSTR_E1M5 = "LA CITADELLE"; -HHUSTR_E1M6 = "LA CATHEDRALE"; -HHUSTR_E1M7 = "LA CRYPTE"; -HHUSTR_E1M8 = "LA GEULE DE L'ENFER"; -HHUSTR_E1M9 = "LE CIMETIERE"; - -// EPISODE 2 - LA BOUCHE DE L ENFER -HHUSTR_E2M1 = "LE CRATERE"; -HHUSTR_E2M2 = "LES PUITS DE LAVE"; -HHUSTR_E2M3 = "LA RIVIERE DE FEU"; -HHUSTR_E2M4 = "LA GROTTE DE GLACE"; -HHUSTR_E2M5 = "LES CATACOMBES"; -HHUSTR_E2M6 = "LE LABYRINTHE"; -HHUSTR_E2M7 = "LE GRAND HALL"; -HHUSTR_E2M8 = "LE PORTAIL DU CHAOS"; -HHUSTR_E2M9 = "LE GLACIER"; - -// EPISODE 3 - LA COUPOLE DE D'SPARIL -HHUSTR_E3M1 = "L'ENTREPOT"; -HHUSTR_E3M2 = "LE BOURBIER"; -HHUSTR_E3M3 = "LA CONFLUENCE"; -HHUSTR_E3M4 = "LA FORTRESSE D'AZUR"; -HHUSTR_E3M5 = "LE REPAIRE DES OPHIDIENS"; -HHUSTR_E3M6 = "LES COULOIRS DE LA PEUR"; -HHUSTR_E3M7 = "LE GOUFFRE"; -HHUSTR_E3M8 = "LE DONJON DE D'SPARIL"; -HHUSTR_E3M9 = "L AQUIFERE"; - -// EPISODE 4: L'OSSUAIRE -HHUSTR_E4M1 = "LE CATAFALQUE"; -HHUSTR_E4M2 = "LE FORTIN"; -HHUSTR_E4M3 = "LE DEAMBULATOIRE"; -HHUSTR_E4M4 = "LE SEPULCRE"; -HHUSTR_E4M5 = "LE GRAND ESCALIER"; -HHUSTR_E4M6 = "LEs HALLS DE L'APOTRE"; -HHUSTR_E4M7 = "LES RAMPARTS DE LA PERDITION"; -HHUSTR_E4M8 = "LE PONT EFFONDRE"; -HHUSTR_E4M9 = "LE MAUSOLEE"; - -// EPISODE 5: LE DOMAINE STAGNANT -HHUSTR_E5M1 = "LES FALAISES OCHRE"; -HHUSTR_E5M2 = "LES RAPIDES"; -HHUSTR_E5M3 = "LE QUAI"; -HHUSTR_E5M4 = "LA COUR"; -HHUSTR_E5M5 = "L'HYDRATYR"; -HHUSTR_E5M6 = "LA COLONNADE"; -HHUSTR_E5M7 = "LE PRESBYTERE FETIDE"; -HHUSTR_E5M8 = "LE CHAMPS DU JUGEMENT"; -HHUSTR_E5M9 = "L'ECHEVAUX DE D'SPARIL"; - -// Keys - -TXT_GOTBLUEKEY = "CLÉ BLEUE"; -TXT_GOTYELLOWKEY = "CLÉ JAUNE"; -TXT_GOTGREENKEY = "CLÉ VERTE"; - -// Artifacts - -TXT_ARTIHEALTH = "FLASQUE EN QUARTZ"; -TXT_ARTIFLY = "LES AILES DU COURROUX"; -TXT_ARTIINVULNERABILITY = "L'ANNEAU D'INVINCIBILITE"; -TXT_ARTITOMEOFPOWER = "LIVRE DU POUVOIR"; -TXT_ARTIINVISIBILITY = "SPHERE D'OMBRE"; -TXT_ARTIEGG = "OVULE DE METAMORPHOSE"; -TXT_ARTISUPERHEALTH = "URNE MYSTIQUE"; -TXT_ARTITORCH = "LA TORCHE"; -TXT_ARTIFIREBOMB = "BOMBE A RETARDEMENT DES ANCIENS"; -TXT_ARTITELEPORT = "L'OUTIL DU CHAOS"; - -// Items - -TXT_ITEMHEALTH = "FIOLE DE CRISTAL"; -TXT_ITEMBAGOFHOLDING = "SAC SANS FOND"; -TXT_ITEMSHIELD1 = "BOUCLIER D'ARGENT"; -TXT_ITEMSHIELD2 = "BOUCLIER ENCHANTE"; -TXT_ITEMSUPERMAP = "ROULEAU DU CARTOGRAPHE"; - -// Ammo - -TXT_AMMOGOLDWAND1 = "CRISTAL ELFIQUE"; -TXT_AMMOGOLDWAND2 = "GEODE DE CRYSTAL"; -TXT_AMMOMACE1 = "SPHERES DE MASSE"; -TXT_AMMOMACE2 = "PILE DE SPHERES DE MASSE"; -TXT_AMMOCROSSBOW1 = "CARREAUX ETHERIQUES"; -TXT_AMMOCROSSBOW2 = "CARQUOIS DE CARREAUX ETHERIQUES"; -TXT_AMMOBLASTER1 = "ORBE DE GRIFFE"; -TXT_AMMOBLASTER2 = "ORBE D'ENERGIE DRACONIQUE"; -TXT_AMMOSKULLROD1 = "RUNES MINEURES"; -TXT_AMMOSKULLROD2 = "RUNES SUPERIEURES"; -TXT_AMMOPHOENIXROD1 = "ORBE DE FLAMES"; -TXT_AMMOPHOENIXROD2 = "ORBE INFERNAL"; - -// Weapons - -TXT_WPNMACE = "MASSE DE FEU"; -TXT_WPNCROSSBOW = "ARBALETE ETHERIQUE"; -TXT_WPNBLASTER = "GRIFFE DRACONIQUE"; -TXT_WPNSKULLROD = "BATON INFERNAL"; -TXT_WPNPHOENIXROD = "BATON INFERNAL"; -TXT_WPNGAUNTLETS = "GANTELETS DU NECROMANCIEN"; - -TXT_NEEDBLUEKEY = "CETTE PORTE NESCESSITE UNE CLE BLEUE POUR S'OUVRIR"; -TXT_NEEDGREENKEY = "CETTE PORTE NESCESSITE UNE CLE VERTE POUR S'OUVRIR"; -TXT_NEEDYELLOWKEY = "CETTE PORTE NESCESSITE UNE CLE JAUNE POUR S'OUVRIR"; - -TXT_CHEATPOWERON = "ENERGIE ACTIVEE"; -TXT_CHEATPOWEROFF = "ENERGIE DESACTIVEE"; -TXT_CHEATHEALTH = "PLEINE SANTE"; -TXT_CHEATKEYS = "TOUTES LES CLES"; -TXT_CHEATSOUNDON = "DEBOGUAGE DU SON ACTIVE"; -TXT_CHEATSOUNDOFF = "DEBOGUAGE DU SON DESACTIVE"; -TXT_CHEATIDDQD = "TU ESSAIE DE TRICHER, HEIN? MAINTENANT TU CREVE!"; -TXT_CHEATIDKFA = "TRICHEUR - TU NE MERITE PAS D'ARMES!"; -TXT_CHEATTICKERON = "COMPTEUR ALLUME"; -TXT_CHEATTICKEROFF = "COMPTER ETEINT"; -TXT_CHEATARTIFACTS3 = "VOUS L'AVEZ"; -TXT_GOTSTUFF = "Voilà ton équipement!"; -TXT_FREEZEON = "Temps arrêté."; -TXT_FREEZEOFF = "Le temps reprend son cours.."; -TXT_STRANGE = "Vous vous sentez mal à l'aise..."; -TXT_STRANGER = "Vous vous sentez très mal à l'aise..."; -TXT_NOTSTRANGE = "Vous vous sentez mieux."; -TXT_LEADBOOTSON = "Bottes en plomb ON"; -TXT_LEADBOOTSOFF = "Bottes en plomb OFF"; -TXT_LIGHTER = "Vous vous sentez très léger."; -TXT_GRAVITY = "La gravité vous ramène au sol."; - -TXT_IMKILLS = "MORTS"; -TXT_IMITEMS = "OBJETS"; -TXT_IMTIME = "TEMPS"; - -RAVENQUITMSG = "ETES VOUS SUR DE VOULOIR QUITTER?"; - -FN_CHICKEN = "Poulet"; -FN_BEAST = "Dragon-garou"; -FN_CLINK = "Sabregriffe"; -FN_DSPARIL = "D'Sparil"; -FN_HERETICIMP = "Gargouille"; -FN_IRONLICH = "Liche de Fer"; -FN_BONEKNIGHT = "Guerrier Mort-Vivant"; -FN_MINOTAUR = "Massetaure"; -FN_MUMMY = "Golem"; -FN_MUMMYLEADER = "Nitrogolem"; -FN_SNAKE = "Ophidien"; -FN_WIZARD = "Magicien"; - -// Hexen strings - -// Mana - -TXT_MANA_1 = "MANA BLEU"; -TXT_MANA_2 = "MANA VERT"; -TXT_MANA_BOTH = "MANA COMBINE"; - -// Keys - -TXT_KEY_STEEL = "CLE D'ACIER"; -TXT_KEY_CAVE = "CLE DE LA CAVE"; -TXT_KEY_AXE = "CLE DE LA HACHE"; -TXT_KEY_FIRE = "CLE DU FEU"; -TXT_KEY_EMERALD = "CLE D'EMERAUDE"; -TXT_KEY_DUNGEON = "CLE DU DONJON"; -TXT_KEY_SILVER = "CLE D'ARGENT"; -TXT_KEY_RUSTED = "CLE ROUILLEE"; -TXT_KEY_HORN = "CLE CORNE"; -TXT_KEY_SWAMP = "CLE DES MARECAGES"; -TXT_KEY_CASTLE = "CLE DU CHATEAU"; - -TXT_NEED_KEY_STEEL = "Vous avez besoin de la CLE D'ACIER"; -TXT_NEED_KEY_CAVE = "Vous avez besoin de la CLE DE LA CAVE"; -TXT_NEED_KEY_AXE = "Vous avez besoin de la CLE DE LA HACHE"; -TXT_NEED_KEY_FIRE = "Vous avez besoin de la CLE DU FEU"; -TXT_NEED_KEY_EMERALD = "Vous avez besoin de la CLE D'EMERAUDE"; -TXT_NEED_KEY_DUNGEON = "Vous avez besoin de la CLE DU DONJON"; -TXT_NEED_KEY_SILVER = "Vous avez besoin de la CLE D'ARGENT"; -TXT_NEED_KEY_RUSTED = "Vous avez besoin de la CLE ROUILLEE"; -TXT_NEED_KEY_HORN = "Vous avez besoin de la CLE CORNE"; -TXT_NEED_KEY_SWAMP = "Vous avez besoin de la CLE DES MARECAGES"; -TXT_NEED_KEY_CASTLE = "Vous avez besoin de la CLE DU CHATEAU"; - -// Artifacts - -TXT_ARTIINVULNERABILITY2 = "ICONE DU DEFENSEUR"; -TXT_ARTISUMMON = "SERVITEUR NOIR"; -TXT_ARTIEGG2 = "PORCIFICATEUR"; -TXT_ARTITELEPORTOTHER = "OUTIL DE BANISSEMENT"; -TXT_ARTISPEED = "BOTTES DE CELERITE"; -TXT_ARTIBOOSTMANA = "CRATERE DE POUVOIR"; -TXT_ARTIBOOSTARMOR = "BRACELETS EN PEAU DE DRAGON"; -TXT_ARTIBLASTRADIUS = "DISQUE DE REPULSION"; -TXT_ARTIHEALINGRADIUS = "INCANTATION MYSTIQUE"; - -// Puzzle artifacts - -TXT_ARTIPUZZSKULL = "CRANE DE YORICK"; -TXT_ARTIPUZZGEMBIG = "COEUR DE D'SPARIL"; -TXT_ARTIPUZZGEMRED = "PLANETE DE RUBIS"; -TXT_ARTIPUZZGEMGREEN1 = "PLANETE D'EMERAUDE"; -TXT_ARTIPUZZGEMGREEN2 = "PLANETE D'EMERAUDE"; -TXT_ARTIPUZZGEMBLUE1 = "PLANETE DE SAPHIR"; -TXT_ARTIPUZZGEMBLUE2 = "PLANETE DE SAPHIR"; -TXT_ARTIPUZZBOOK1 = "CODEX DEMONIAQUE"; -TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; -TXT_ARTIPUZZSKULL2 = "MASQUE DE FLAMMES"; -TXT_ARTIPUZZFWEAPON = "SCEAU DU GLAIVE"; -TXT_ARTIPUZZCWEAPON = "RELIQUE SACREE"; -TXT_ARTIPUZZMWEAPON = "SCEAU DU MAGE"; -TXT_ARTIPUZZGEAR = "ROUAGE D'HORLOGE"; -TXT_USEPUZZLEFAILED = "VOUS NE POUVEZ PAS UTILISER CET OBJET ICI"; - - -// Items - -TXT_ARMOR1 = "ARMURE DE MAILLES"; -TXT_ARMOR2 = "BOUCLIER DU FAUCON"; -TXT_ARMOR3 = "CASQUE DE PLATINE"; -TXT_ARMOR4 = "AMULET DE PROTECTION"; - -// Weapons - -TXT_WEAPON_F2 = "HACHE DE TIMON"; -TXT_WEAPON_F3 = "MARTEAU DE LA RETRIBUTION"; -TXT_WEAPON_F4 = "QUIETUS ASSEMBLE"; -TXT_WEAPON_C2 = "SCEPTRE DU SERPENT"; -TXT_WEAPON_C3 = "TEMPETE DE FEU"; -TXT_WEAPON_C4 = "VERGE PHANTASMALE ASSEMBLE"; -TXT_WEAPON_M2 = "ECLATS DE GIVRE"; -TXT_WEAPON_M3 = "FOUDRE MORTELLE"; -TXT_WEAPON_M4 = "FLEAU SANGLANT ASSEMBLE"; -TXT_WEAPONPIECE = "Une piece d'arme! C'est votre jour de chance!"; -TXT_QUIETUS_PIECE = "SEGMENT DE QUIETUS"; -TXT_WRAITHVERGE_PIECE = "SEGMENT DE LA VERGE PHANTASMALE"; -TXT_BLOODSCOURGE_PIECE = "SEGMENT DU FLEAU SANGLANT"; - -// Strife locks - -TXT_NEEDKEY = "Vous n'avez pas la clé."; -TXT_NEED_PASSCARD = "Vous avez besoin du passe."; -TXT_NEED_PASSCARD_DOOR = "Vous avez besoin du passe ouvrir cette porte."; -TXT_NEED_IDCARD = "Vous avez besoin d'une carte d'identité."; -TXT_NEED_PRISONKEY = "Vous n'avez pas la clé de la prison."; -TXT_NEED_HANDPRINT = "Votre main n'est pas reconnue par le scanner."; -TXT_NEED_GOLDKEY = "Vous avez besoin d'une clé d'or."; -TXT_NEED_IDBADGE = "Vous avez besoin d'un badge d'identification."; -TXT_NEED_IDBADGE_DOOR = "Vous avez besoin d'un badge d'identification pour ouvrir cette porte."; -TXT_NEED_SILVERKEY = "Vous avez besoin de la clé en argent."; -TXT_NEED_BRASSKEY = "Vous avez besoin de la clé en bronze."; -TXT_NEED_REDCRYSTAL = "Vous avez besoin du cristal rouge."; -TXT_NEED_BLUECRYSTAL = "Vous avez besoin du cristal bleu."; -TXT_RETAIL_ONLY = "CETTE ZONE N'EST ACCESSIBLE QUE DANS LA VERSION COMPLETE DE STRIFE"; -TXT_DOES_NOT_WORK = "Cela ne semble pas fonctionner."; - - -// Strife Quest messages - -TXT_QUEST_14 = "Vous avez explosé le cristal!"; -TXT_QUEST_16 = "Vous avez explosé les portes!"; -TXT_QUEST_27 = "Vous avez explosé l'ordinateur!"; - -TXT_KILLED_BISHOP = "Vous avez tué l'évèque!"; -TXT_KILLED_ORACLE = "Vous avez tué l'oracle!"; -TXT_KILLED_MACIL = "Vous avez tué Macil!"; -TXT_KILLED_LOREMASTER = "Vous avez tué le Maitre des traditions!"; - -// Strife pickup messages - -TXT_METALARMOR = "Vous avez pris l'armure de métal."; -TXT_LEATHERARMOR = "Vous avez pris l'armure de cuir."; -TXT_MEDPATCH = "Vous avez pris le pansement."; -TXT_MEDICALKIT = "Vous avez pris le kit médical."; -TXT_SURGERYKIT = "Vous avez pris le kit de chirurgie."; -TXT_STRIFEMAP = "Vous avez pris la carte"; -TXT_BELDINSRING = "Vous avez pris l'anneau."; -TXT_OFFERINGCHALICE = "Vous avez pris le Calice d'obole."; -TXT_EAR = "Vous avez pris l'oreille."; -TXT_BROKENCOUPLING = "Vous avez pris le coupleur energétique cassé."; -TXT_SHADOWARMOR = "Vous avez pris l'armure de l'ombre."; -TXT_ENVSUIT = "Vous avez pris la combinaison hazmat."; -TXT_GUARDUNIFORM = "Vous avez pris l'Uniforme du garde."; -TXT_OFFICERSUNIFORM = "Vous avez pris l'Uniforme de l'officier."; -TXT_FTHROWERPARTS = "Vous avez pris les pièces du lance-flames."; -TXT_REPORT = "Vous avez pris le compte-rendu."; -TXT_INFO = "Vous avez pris l'info."; -TXT_TARGETER = "Vous avez pris le cibleur."; -TXT_COMMUNICATOR = "Vous avez pris le Communicateur"; -TXT_COIN = "Vous avez pris la pièce."; -TXT_XGOLD = "Vous avez pris %d pièces."; -TXT_BEACON = "Vous avez pris la balise de téléporteur."; -TXT_DEGNINORE = "Vous avez pris le minerai de Degnin."; -TXT_SCANNER = "Vous avez pris l'analyseur."; -TXT_NEEDMAP = "L'analyseur ne marchera pas sans une carte!\n"; -TXT_PRISONPASS = "Vous avez pris le passe de la prison."; - -TXT_STRIFECROSSBOW = "Vous avez pris l'arbalète."; -TXT_ASSAULTGUN = "Vous avez pris le fusil d'assaut."; -TXT_MMLAUNCHER = "Vous avez pris le lance mini-missile."; -TXT_FLAMER = "Vous avez pris le lance-flames."; -TXT_MAULER = "Vous avez pris le Broyeur."; -TXT_GLAUNCHER = "Vous avez pris le lance-grenades"; -TXT_SIGIL = "Vous avez pris le SIGIL."; - - -TXT_BASEKEY = "Vous avez pris la clé de la Base."; -TXT_GOVSKEY = "Vous avez pris la clé du Gouverneur."; -TXT_PASSCARD = "Vous avez pris le passe."; -TXT_IDBADGE = "Vous avez pris le Badge d'identification."; -TXT_PRISONKEY = "Vous avez pris la clé de la Prison."; -TXT_SEVEREDHAND = "Vous avez pris la main coupée."; -TXT_POWER1KEY = "Vous avez pris la clé Power1."; -TXT_POWER2KEY = "Vous avez pris la clé Power2."; -TXT_POWER3KEY = "Vous avez pris la clé Power3."; -TXT_GOLDKEY = "Vous avez pris la clé d'or."; -TXT_IDCARD = "Vous avez pris la Carte d'identité."; -TXT_SILVERKEY = "Vous avez pris la clé d'argent."; -TXT_ORACLEKEY = "Vous avez pris la clé Oraclé."; -TXT_MILITARYID = "Vous avez pris l'ID Militaire."; -TXT_ORDERKEY = "Vous avez pris la clé de l'Ordre."; -TXT_WAREHOUSEKEY = "Vous avez pris la clé de l'entrepot."; -TXT_BRASSKEY = "Vous avez pris la clé de bronze."; -TXT_REDCRYSTAL = "Vous avez pris la clé cristal rouge."; -TXT_BLUECRYSTAL = "Vous avez pris la clé cristal bleu."; -TXT_CHAPELKEY = "Vous avez pris la clé de la chapel."; -TXT_CATACOMBKEY = "Vous avez pris la clé des Catacombes."; -TXT_SECURITYKEY = "Vous avez pris la clé de la Sécurité."; -TXT_COREKEY = "Vous avez pris la clé du réacteur."; -TXT_MAULERKEY = "Vous avez pris la clé du Broyeur."; -TXT_FACTORYKEY = "Vous avez pris la clé de l'usine."; -TXT_MINEKEY = "Vous avez pris la clé de la mine."; -TXT_NEWKEY5 = "Vous avez pris la nouvelle clé 5."; -TXT_ORACLEPASS = "Vous avez pris le passe de l'Oracle."; - -TXT_HEGRENADES = "Vous avez pris les Grenades Explosives."; -TXT_PHGRENADES = "Vous avez pris les Grenades Phosphoriques."; -TXT_CLIPOFBULLETS = "Vous avez pris le Chargeur."; -TXT_BOXOFBULLETS = "Vous avez pris la boîte de balles."; -TXT_MINIMISSILES = "Vous avez pris les mini-missiles."; -TXT_CRATEOFMISSILES = "Vous avez pris la caisse de missiles."; -TXT_ENERGYPOD = "Vous avez pris la cellule d'énergie."; -TXT_ENERGYPACK = "Vous avez pris le pack energétique."; -TXT_POISONBOLTS = "Vous avez pris les carreaux empoisonnés."; -TXT_ELECTRICBOLTS = "Vous avez pris les carreaux électriques."; -TXT_AMMOSATCHEL = "Vous avez pris la sacoche de munitions"; - -// Random dialogs - -TXT_RANDOM_PEASANT_01 = "S'il vous plaît, laissez-moi tranquille."; -TXT_RANDOM_PEASANT_02 = "Si vous cherchez à me faire mal, Je n'en mérite pas l'effort."; -TXT_RANDOM_PEASANT_03 = "Je ne sais rien."; -TXT_RANDOM_PEASANT_04 = "Allez vous en ou j'appelle les gardes!"; -TXT_RANDOM_PEASANT_05 = "Je voudrais qu'a un moment, ces rebelles apprennent quelle est leur place et arrètent cette idiotie."; -TXT_RANDOM_PEASANT_06 = "Laissez moi seul, OK?"; -TXT_RANDOM_PEASANT_07 = "Je ne suis pas sûr, mais quelque fois je pense reconnaître certains des acolytes."; -TXT_RANDOM_PEASANT_08 = "L'ordre maintient la sûreté aux alentours."; -TXT_RANDOM_PEASANT_09 = "Ca ne peut pas être juste une escouade de sécurité..."; -TXT_RANDOM_PEASANT_10 = "J'ai entendu dire que l'ordre était sur les nerfs à cause des actions au front."; - -TXT_RANDOM_REBEL_01 = "L'ordre n'a aucune chance contre nous."; -TXT_RANDOM_REBEL_02 = "Nous sommes presque prêts à agir. Les plans de Macil se déroulent comme prévu."; -TXT_RANDOM_REBEL_03 = "On couvre tes arrières, t'inquiète pas."; -TXT_RANDOM_REBEL_04 = "Ne vous approchez pas trop des gros robots. Ils brûleront jusqu'à l'os!"; -TXT_RANDOM_REBEL_05 = "Le jour de gloire arrivera bientôt, et ceux qui s'opposeront a nous seront écrasés!"; -TXT_RANDOM_REBEL_06 = "Ne vous reposez pas sur vos lauriers. Du travail nous attend encore."; -TXT_RANDOM_REBEL_07 = "Macil nous dit que tu es notre nouvel espoir. Garde ca à l'esprit."; -TXT_RANDOM_REBEL_08 = "Une fois que nous nous serons débarassés de ces charlatans, nous serons capable de rebâtir le monde tel qu'il devrait être."; -TXT_RANDOM_REBEL_09 = "Souviens-toi, tu ne te bas pas seulement pour toi, mais pour tous le monde ici et ailleurs."; -TXT_RANDOM_REBEL_10 = "Aussi longtemps qu'un de nous est vivant, nous vaincrons."; - -TXT_RANDOM_AGUARD_01 = "Barre-toi, paysan!"; -TXT_RANDOM_AGUARD_02 = "Suis la vraie foi, tu commençeras a comprendre."; -TXT_RANDOM_AGUARD_03 = "C'est seulement a travers la mort que quelqu'un peut renaître."; -TXT_RANDOM_AGUARD_04 = "Je ne suis pas interessé par tes idioties inutiles."; -TXT_RANDOM_AGUARD_05 = "Si j'avais voulu te parler je te l'aurais dis."; -TXT_RANDOM_AGUARD_06 = "Va ennuyer quelqu'un d'autre!"; -TXT_RANDOM_AGUARD_07 = "Bouge!"; -TXT_RANDOM_AGUARD_08 = "Si l'alarme s'enclenche, reste en dehors de notre chemin!"; -TXT_RANDOM_AGUARD_09 = "L'ordre nettoira le monde et le conduira dans une nouvelle ère."; -TXT_RANDOM_AGUARD_10 = "Un problème? Je pense que non."; - -TXT_RANDOM_BEGGAR_01 = "L'aumône pour les pauvres?"; -TXT_RANDOM_BEGGAR_02 = "Tu regarde qui, habitant de la surface?"; -TXT_RANDOM_BEGGAR_03 = "Aurais-tu de la nourriture en trop sur toi?"; -TXT_RANDOM_BEGGAR_04 = "Vous, les gens de la surface, vous ne comprendrez jamais."; -TXT_RANDOM_BEGGAR_05 = "Ha, les gardes ne nous trouveront jamais, ces idiots ne savent même pas qu'on existe!"; -TXT_RANDOM_BEGGAR_06 = "Un jour, tous sauf les membres de l'ordre seront forcés de nous rejoindre."; -TXT_RANDOM_BEGGAR_07 = "Moque nous si tu veux, mais tu sais que ceci sera aussi ton sort un jour."; -TXT_RANDOM_BEGGAR_08 = "Il n'y rien de plus barbant qu'un type de la surface et son orgeuil!"; -TXT_RANDOM_BEGGAR_09 = "L'ordre se débarrassera de vos soldats pathétiques."; -TXT_RANDOM_BEGGAR_10 = "Prend guarde a toi, habitant de la surface. Nous connaîssons nos ennemis!"; - -TXT_RANDOM_PGUARD_01 = "Nous sommes les mains du destin. Apprendre notre colère est l'égal de trouver l'oubli!"; -TXT_RANDOM_PGUARD_02 = "L'ordre nettoira le monde des faibles et corrompus!"; -TXT_RANDOM_PGUARD_03 = "Obéissez à la volonté de vos maîtres!"; -TXT_RANDOM_PGUARD_04 = "Longue vie aux membres de l'Ordre!"; -TXT_RANDOM_PGUARD_05 = "La liberté de penser est l'illusion qui aveugle les faible d'esprit."; -TXT_RANDOM_PGUARD_06 = "le pouvoir est le chemin de la gloire. Suivre l'ordre c'est suivre ce chemin!"; -TXT_RANDOM_PGUARD_07 = "Prend ta place parmi les justes, rejoins nous!"; -TXT_RANDOM_PGUARD_08 = "L'ordre protège les siens."; -TXT_RANDOM_PGUARD_09 = "Les Acolytes? Ils n'ont pas encore été témoins de la vraie gloire de l'ordre."; -TXT_RANDOM_PGUARD_10 = "Si il y a une once de gloire dans ce corps pathétique, ceux de l'ordre te prendront parmi les leurs."; - -TXT_RANDOMGOODBYE_1 = "Au revoir!"; -TXT_RANDOMGOODBYE_2 = "Merci, au revoir!"; -TXT_RANDOMGOODBYE_3 = "A plus tard!"; -TXT_HAVEENOUGH = "Vous avez l'air d'en avoir assez!"; -TXT_GOAWAY = "Allez-vous en!"; - -TXT_COMM0 = "Message reçu."; -TXT_COMM1 = "Message reçu de BlackBird"; - -TXT_TRADE = " pour %u"; - -AMMO_CLIP = "Balles"; -AMMO_SHELLS = "Cartouches"; -AMMO_ROCKETS = "Roquettes"; -AMMO_CELLS = "Cellules"; -AMMO_GOLDWAND = "Cristaux"; -AMMO_CROSSBOW = "Carreaux"; -AMMO_BLASTER = "Orbes"; -AMMO_MACE = "Sphères"; -AMMO_PHOENIXROD = "Orbes de Feu"; -AMMO_MANA1 = "Mana Bleu"; -AMMO_MANA2 = "Mana Vert"; -$ifgame(chex) AMMO_CLIP = "Charge Zorch"; -$ifgame(chex) AMMO_SHELLS = "Charge de Zorcheur Large"; -$ifgame(chex) AMMO_ROCKETS = "Charge de Propulseur"; -$ifgame(chex) AMMO_CELLS = "Charge de Phaseur"; - - -// Menu -MNU_NEWGAME = "NOUVELLE PARTIE"; -MNU_OPTIONS = "OPTIONS"; -MNU_GAMEFILES = "FICHIERS DE JEU"; -MNU_INFO = "INFO"; -MNU_QUITGAME = "QUITTER LE JEU"; - -MNU_FIGHTER = "GUERRIER"; -MNU_CLERIC = "MOINE"; -MNU_RANDOM = "AU HASARD"; - -MNU_LOADGAME = "CHARGEMENT"; -MNU_SAVEGAME = "SAUVEGARDE"; - -MNU_COTD = "LA CITE DES DAMNES"; -MNU_HELLSMAW = "LA GEULE DE L'ENFER"; -MNU_DOME = "LE DOME DE D'SPARIL"; -MNU_OSSUARY = "L'OSSUAIRE"; -MNU_DEMESNE = "LE DOMAINE STAGNANT"; - -MNU_WETNURSE = "VOUS AVEZ BESOIN D'UNE NOURRICE"; -MNU_YELLOWBELLIES = "UN TROUILLARD-TU-EST"; -MNU_BRINGEST = "AMENEZ LES MOI!"; -MNU_SMITE = "TU EST UN MAITRE-MEURTRIER"; -MNU_BLACKPLAGUE = "LA PESTE NOIRE ME POSSEDE"; - -MNU_NOPICTURE = "Pas d'image"; -MNU_DIFFVERSION = "Version\nDifférente"; -MNU_NOFILES = "Pas de fichier"; - -MNU_CHOOSECLASS = "CHOISISSEZ UNE CLASSE:"; -MNU_CHOOSESKILL = "CHOISISSEZ UN NIVEAU DE DIFICULTE:"; - -SKILL_BABY = "Je suis trop jeune pour mourir!"; -SKILL_EASY = "Hé, pas trop fort!"; -SKILL_NORMAL = "Fais-moi mal!"; -SKILL_HARD = "Ultra-Violence!"; -SKILL_NIGHTMARE = "CAUCHEMAR!"; - -CSKILL_BABY = "On y Va Doucement"; -CSKILL_EASY = "Pas trop Collant"; -CSKILL_NORMAL = "Des Tonnes de Gelée"; -CSKILL_HARD = "Extrêmement Gluant"; -CSKILL_NIGHTMARE = "Carrément Crade!"; - -SSKILL_BABY = "Entrâinement"; -SSKILL_EASY = "Recrue"; -SSKILL_NORMAL = "Véteran"; -SSKILL_NIGHTMARE = "Massacre!"; - -MNU_SQUIRE = "ECUYER"; -MNU_KNIGHT = "CHEVALIER"; -MNU_WARRIOR = "GUERRIER"; - -MNU_ALTARBOY = "ENFANT DE CHOEUR"; -MNU_PRIEST = "PRETRE"; -MNU_POPE = "PAPE"; - -MNU_APPRENTICE = "APPRENTI"; -MNU_ENCHANTER = "ENCHANTEUR"; -MNU_SORCERER = "SORCIER"; -MNU_WARLOCK = "MAGE DE GUERRE"; -MNU_ARCHMAGE = "ARCHIMAGE"; - -MNU_PLAYERSETUP = "REGLAGE DU JOUEUR"; - -MNU_DELETESG = "Voulez vous vraiment effacer cette sauvegarde?\n"; - -$ifgame(heretic) SWSTRING = "SEULEMENT DISPONIBLE DANS LA VERSION ENREGISTREE"; - -// Options Menu -OPTMNU_CONTROLS = "Modifier les Contrôles"; -OPTMNU_MOUSE = "Options de la Souris"; -OPTMNU_JOYSTICK = "Options de la Manette"; -OPTMNU_PLAYER = "Options du Joueur"; -OPTMNU_GAMEPLAY = "Options du Gameplay"; -OPTMNU_COMPATIBILITY = "Options de Compatibilité"; -OPTMNU_AUTOMAP = "Options de la Carte"; -OPTMNU_HUD = "Options de l'ATH"; -OPTMNU_MISCELLANEOUS = "Options Annexes"; -OPTMNU_NETWORK = "Options Réseau"; -OPTMNU_SOUND = "Options du Son"; -OPTMNU_DISPLAY = "Options de l'Affichage"; -OPTMNU_VIDEO = "Choisir Mode D'Affichage"; -OPTMNU_CHANGERENDER = "Changer de Moteur de Rendu"; -OPTMNU_DEFAULTS = "Réinitialiser les paramètres"; -OPTMNU_RESETTOSAVED = "Recharger dernière config."; -OPTMNU_CONSOLE = "Ouvrir la console"; -OPTMNU_REVERB = "Editeur environement de révérb."; -OPTMNU_LANGUAGE = "Langage"; -// Controls Menu - -CNTRLMNU_TITLE = "MODIFIER CONTROLES"; -CNTRLMNU_SWITCHTEXT1 = "ENTREE pour changer, RET. ARRIERE pour effacer."; -CNTRLMNU_SWITCHTEXT2 = "Appuyez sur la nouvelle touche pour l'assigner,\nAppuyez sur ECHAP pour annuler."; -CNTRLMNU_CONTROLS = "Contrôles"; -CNTRLMNU_ATTACK = "Tirer"; -CNTRLMNU_ALTATTACK = "Tir Secondaire"; -CNTRLMNU_RELOAD = "Recharger Arme"; -CNTRLMNU_ZOOM = "Zoom avec Arme"; -CNTRLMNU_USER1 = "Etat d'Arme 1"; -CNTRLMNU_USER2 = "Etat d'Arme 2"; -CNTRLMNU_USER3 = "Etat d'Arme 3"; -CNTRLMNU_USER4 = "Etat d'Arme 4"; -CNTRLMNU_USE = "Utiliser/Ouvrir"; -CNTRLMNU_FORWARD = "Avancer"; -CNTRLMNU_BACK = "Reculer"; -CNTRLMNU_MOVELEFT = "Aller à Gauche"; -CNTRLMNU_MOVERIGHT = "Aller à Droite"; -CNTRLMNU_TURNLEFT = "Tourner à Gauche"; -CNTRLMNU_TURNRIGHT = "Tourner à Droite"; -CNTRLMNU_TURN180 = "Faire un 180"; -CNTRLMNU_JUMP = "Sauter"; -CNTRLMNU_CROUCH = "S'accroupir (tenir)"; -CNTRLMNU_TOGGLECROUCH = "S'accroupir (alterner)"; -CNTRLMNU_MOVEUP = "Voler/Nager en haut"; -CNTRLMNU_MOVEDOWN = "Voler/Nager en bas"; -CNTRLMNU_LAND = "Arrêter de voler"; -CNTRLMNU_MOUSELOOK = "Vue à la souris"; -CNTRLMNU_KEYBOARDLOOK = "Vue au clavier"; -CNTRLMNU_LOOKUP = "Regarder en haut"; -CNTRLMNU_LOOKDOWN = "Regarder en bas"; -CNTRLMNU_CENTERVIEW = "Recentrer Vue"; -CNTRLMNU_RUN = "Courir (tenir)"; -CNTRLMNU_TOGGLERUN = "Courir (alterner)"; -CNTRLMNU_STRAFE = "Pas de côté"; -CNTRLMNU_SCOREBOARD = "Afficher Scores (tenir)"; -CNTRLMNU_TOGGLESCOREBOARD = "Afficher Scores (alterner)"; -CNTRLMNU_CHAT = "Chat"; -CNTRLMNU_SAY = "Parler"; -CNTRLMNU_TEAMSAY = "Parler (équipe)"; -CNTRLMNU_WEAPONS = "Armes"; -CNTRLMNU_NEXTWEAPON = "Arme Suivante"; -CNTRLMNU_PREVIOUSWEAPON = "Arme Précédente"; -CNTRLMNU_SLOT1 = "Emplacement D'Arme 1"; -CNTRLMNU_SLOT2 = "Emplacement D'Arme 2"; -CNTRLMNU_SLOT3 = "Emplacement D'Arme 3"; -CNTRLMNU_SLOT4 = "Emplacement D'Arme 4"; -CNTRLMNU_SLOT5 = "Emplacement D'Arme 5"; -CNTRLMNU_SLOT6 = "Emplacement D'Arme 6"; -CNTRLMNU_SLOT7 = "Emplacement D'Arme 7"; -CNTRLMNU_SLOT8 = "Emplacement D'Arme 8"; -CNTRLMNU_SLOT9 = "Emplacement D'Arme 9"; -CNTRLMNU_SLOT0 = "Emplacement D'Arme 0"; -CNTRLMNU_INVENTORY = "Inventaire"; -CNTRLMNU_USEITEM = "Activer objet"; -CNTRLMNU_USEALLITEMS = "Activer tous les objets"; -CNTRLMNU_NEXTITEM = "Objet suivant"; -CNTRLMNU_PREVIOUSITEM = "Objet précédent"; -CNTRLMNU_DROPITEM = "Lâcher objet"; -CNTRLMNU_QUERYITEM = "Vérifier objet"; -CNTRLMNU_DROPWEAPON = "Lâcher arme"; -CNTRLMNU_OTHER = "Autres"; -CNTRLMNU_AUTOMAP = "Activer Carte"; -CNTRLMNU_CHASECAM = "Caméra 3ième personne"; -CNTRLMNU_COOPSPY = "Espionner Coéquiper"; -CNTRLMNU_SCREENSHOT = "Capture d'écran"; -CNTRLMNU_CONSOLE = "Ouvrir Console"; -CNTRLMNU_POPUPS = "Popups de Strife"; -CNTRLMNU_MISSION = "Objectifs de Mission"; -CNTRLMNU_KEYS = "Liste des Clés"; -CNTRLMNU_STATS = "Statistiques, armes et munitions"; - -// Mouse Menu - -MOUSEMNU_TITLE = "OPTIONS SOURIS"; -MOUSEMNU_ENABLEMOUSE = "Activer Souris"; -MOUSEMNU_MOUSEINMENU = "Activer Souris dans les Menus"; -MOUSEMNU_SHOWBACKBUTTON = "Afficher le bouton retour"; -MOUSEMNU_CURSOR = "Curseur"; -MOUSEMNU_SENSITIVITY = "Sensibilité générale"; -MOUSEMNU_NOPRESCALE = "Prescaling mouvement souris"; -MOUSEMNU_SMOOTHMOUSE = "Lissage Souris"; -MOUSEMNU_TURNSPEED = "Vitesse pour tourner"; -MOUSEMNU_MOUSELOOKSPEED = "Vitesse Vue Souris"; -MOUSEMNU_FORWBACKSPEED = "Vitesse Avancer/reculer"; -MOUSEMNU_STRAFESPEED = "Vitesse Gauche/Droite"; -MOUSEMNU_ALWAYSMOUSELOOK = "Toujours vue Souris"; -MOUSEMNU_INVERTMOUSE = "Inverser Souris"; -MOUSEMNU_LOOKSPRING = "Recentrer après Vue Souris"; -MOUSEMNU_LOOKSTRAFE = "Mouvement Latéral par Souris"; - -// Joystick Menu - -JOYMNU_TITLE = "CONFIGURER MANETTE"; -JOYMNU_OPTIONS = "OPTIONS MANNETTE"; -JOYMNU_NOMENU = "Bloquer la manette dans les menus"; - -// Player Setup Menu -MNU_PLAYERSETUP = "OPTIONS JOUEUR"; -PLYRMNU_NAME = "Nom"; -PLYRMNU_TEAM = "Equipe"; -PLYRMNU_PLAYERCOLOR = "Couleur"; -PLYRMNU_RED = "Rouge"; -PLYRMNU_GREEN = "Vert"; -PLYRMNU_BLUE = "Bleu"; -PLYRMNU_PLAYERCLASS = "Classe"; -PLYRMNU_PLAYERGENDER = "Genre"; -PLYRMNU_AUTOAIM = "Auto-visée"; -PLYRMNU_SWITCHONPICKUP = "Dernière arme"; -PLYRMNU_ALWAYSRUN = "Toujours courir"; -PLYRMNU_PRESSSPACE = "APPUYEZ SUR \cjESPACE"; -PLYRMNU_SEEFRONT = "POUR VOIR L'AVANT"; -PLYRMNU_SEEBACK = "POUR VOIR L'ARRIERE"; - -// Display Options -DSPLYMNU_TITLE = "OPTIONS AFFICHAGE"; -DSPLYMNU_SCOREBOARD = "Options Tableau des Scores"; -DSPLYMNU_SCREENSIZE = "Taille de l'écran"; -DSPLYMNU_BRIGHTNESS = "Luminosité"; -DSPLYMNU_VSYNC = "Synchronisation Verticale"; -DSPLYMNU_CAPFPS = "Interpolation du rendu"; -DSPLYMNU_COLUMNMETHOD = "Rendu par Colonnes"; -DSPLYMNU_BLENDMETHOD = "Mode de Rendu transparence"; - -DSPLYMNU_WIPETYPE = "Style de Fondu d'écran"; -DSPLYMNU_SHOWENDOOM = "Montrer la fenêtre ENDOOM"; -DSPLYMNU_BLOODFADE = "Intensité du flash dommages"; -DSPLYMNU_PICKUPFADE = "Intensité du flash objets"; -DSPLYMNU_WATERFADE = "Intensité du fondu sous l'eau"; -DSPLYMNU_SKYMODE = "Mode du rendu du Ciel"; -DSPLYMNU_LINEARSKY = "Ciel linéaire"; -DSPLYMNU_GZDFULLBRIGHT = "Fullbright ignore couleur secteur"; -DSPLYMNU_SCALEFUZZ = "Scaling de l'effet de bruit"; -DSPLYMNU_DRAWFUZZ = "Effet de bruit"; -DSPLYMNU_OLDTRANS = "Transparence classique"; -DSPLYMNU_TRANSSOUL = "Transparence des âmes perdues"; -DSPLYMNU_FAKECONTRAST = "Faux Contraste"; -DSPLYMNU_ROCKETTRAILS = "Trainées des Roquettes"; -DSPLYMNU_BLOODTYPE = "Type de particules Sang"; -DSPLYMNU_PUFFTYPE = "Type de particules Balles"; -DSPLYMNU_MAXPARTICLES = "Nombre de particules"; -DSPLYMNU_MAXDECALS = "Number de décalques"; -DSPLYMNU_PLAYERSPRITES = "Montrer les sprites joueur"; -DSPLYMNU_DEATHCAM = "Caméra 3ème pers à la mort"; -DSPLYMNU_TELEZOOM = "Zoom sur téléportation"; -DSPLYMNU_QUAKEINTENSITY = "Intensité des séismes"; -DSPLYMNU_NOMONSTERINTERPOLATION = "Interpolation des monstres"; -DSPLYMNU_MENUDIM = "Assombrissement menu"; -DSPLYMNU_DIMCOLOR = "Couleur de l'assombrissement"; -DSPLYMNU_MOVEBOB = "Chaloupage arme en movement"; -DSPLYMNU_STILLBOB = "Chaloupage arme statique"; -DSPLYMNU_BOBSPEED = "Vitesse du chaloupage"; -DSPLYMNU_GPUSWITCH = "GPU alternatif sur PC Portable"; - -// HUD Options -HUDMNU_TITLE = "OPTIONS ATH"; -HUDMNU_ALTHUD = "ATH Alternatif"; -HUDMNU_MESSAGE = "Options des Messages"; -HUDMNU_UISCALE = "Echelle de l'interface"; -HUDMNU_CROSSHAIR = "Viseur par défaut"; -HUDMNU_FORCECROSSHAIR = "Forcer Viseur par défaut"; -HUDMNU_GROWCROSSHAIR = "Agrandir viseur en prenant un objet"; -HUDMNU_CROSSHAIRCOLOR = "Couleur Viseur"; -HUDMNU_CROSSHAIRHEALTH = "Coleur Viseur selon santé"; -HUDMNU_CROSSHAIRSCALE = "Mise à l'échelle du viseur"; -HUDMNU_NAMETAGS = "Afficher noms des objets"; -HUDMNU_NAMETAGCOLOR = "Couleur des noms d'objet"; -HUDMNU_SCALEFULLSCREENHUD = "Etirer l'ATH plein écran"; -HUDMNU_OLDOUCH = "Ancien code pour l' 'ouch face'"; -HUDMNU_HEXENFLASHES = "Flash d'arme dans Hexen"; -HUDMNU_POISONFLASHES = "Flash de poison dans Hexen"; -HUDMNU_ICEFLASHES = "Flash de morts par glace"; -HUDMNU_HAZARDFLASHES = "Flash d'accumulation de poison"; -HUDMNU_SCALEOPT = "Option de mise à l'échelle"; - -// Scaling options -SCALEMNU_TITLE = "OPTIONS MISE A L ECHELLE"; -SCALEMNU_OVERRIDE = "Annule les paramètres au dessus"; -SCALEMNU_MESSAGES = "Messages"; -SCALEMNU_CONSOLE = "Console"; -SCALEMNU_STATBAR = "Barre d'état"; -SCALEMNU_HUD = "ATH plein écran"; -SCALEMNU_ALTHUD = "ATH alternatif"; -SCALEMNU_HUDASPECT = "ATH préserve le rapport d'aspect"; -SCALEMNU_USEUI = "Défaut"; -SCALEMNU_USEFS = "Plein écran"; -SCALEMNU_ADAPT = "Ecran"; - -// AltHUD Options -ALTHUDMNU_TITLE = "ATH ALTERNATIF"; -ALTHUDMNU_ENABLE = "Activer l'ATH Alternatif"; -ALTHUDMNU_SHOWSECRETS = "Afficher compteur de secrets"; -ALTHUDMNU_SHOWMONSTERS = "Afficher compteur de monstres"; -ALTHUDMNU_SHOWITEMS = "Afficher compteur d'objets"; -ALTHUDMNU_SHOWSTATS = "Afficher Endurance et Précision"; -ALTHUDMNU_SHOWBERSERK = "Afficher Berserk"; -ALTHUDMNU_SHOWWEAPONS = "Afficher Armes"; -ALTHUDMNU_SHOWAMMO = "Afficher Munitions pour"; -ALTHUDMNU_SHOWTIME = "Afficher temps niveau"; -ALTHUDMNU_TIMECOLOR = "Couleur du timer"; -ALTHUDMNU_SHOWLAG = "Afficher latence réseau"; -ALTHUDMNU_AMMOORDER = "Ordre d'affichage des munitions"; -ALTHUDMNU_AMMORED = "Compteur de munitions rouge sous"; -ALTHUDMNU_AMMOYELLOW = "Compteur de munitions jaune sous"; -ALTHUDMNU_HEALTHRED = "Compteur de santé rouge sous"; -ALTHUDMNU_HEALTHYELLOW = "Compteur de santé jaune sous"; -ALTHUDMNU_HEALTHGREEN = "Compteur de santé vert sous"; -ALTHUDMNU_ARMORRED = "Compteur d' armure rouge sous"; -ALTHUDMNU_ARMORYELLOW = "Compteur d' armure jaune sous"; -ALTHUDMNU_ARMORGREEN = "Compteur d' armure bleu sous"; -ALTHUDMNU_AUTOMAPHUD = "ATH Alternatif pour carte"; -ALTHUDMNU_TITLECOLOR = "Couleur titre du niveau"; -ALTHUDMNU_MAPTIMECOLOR = "Couleur temps du niveau"; -ALTHUDMNU_HUBTIMECOLOR = "Couleur temps du hub"; -ALTHUDMNU_TOTALTIMECOLOR = "Couleur temps total"; -ALTHUDMNU_COORDINATECOLOR = "Couleur coordonnées"; -ALTHUDMNU_COORDINATEMODE = "Mode coordonnées"; -ALTHUDMNU_STATSNAMECOLOR = "Couleur nom des statistiques"; -ALTHUDMNU_STATSCOLOR = "Couleur statistiques"; - -// Misc. Options -MISCMNU_TITLE = "OPTIONS ANNEXES"; -MISCMNU_MERGEKEYS = "Combiner Alt/Ctrl/maj gauche & droite"; -MISCMNU_WINFULLSCREENTOGGLE = "Alt-Entrée alterne plein écran"; -MISCMNU_MACFULLSCREENTOGGLE = "Command-F alterne plein écran"; -MISCMNU_QUERYIWAD = "Afficher la séléction d'IWAD"; -MISCMNU_ALLCHEATS = "Activer cheats de tous les jeux"; -MISCMNU_ENABLEAUTOSAVES = "Activer Sauvegardes auto"; -MISCMNU_AUTOSAVECOUNT = "Total de sauvegardes auto"; -MISCMNU_SAVELOADCONFIRMATION = "Confirmation C/S"; -MISCMNU_DEHLOAD = "Charger fichiers *.deh/*.bex"; -MISCMNU_CACHENODES = "Mise en cache des nodes"; -MISCMNU_CACHETIME = "Limite cache des nodes"; -MISCMNU_CLEARNODECACHE = "Vider le cache des nodes"; -MISCMNU_INTERSCROLL = "Sauter compteurs d'intermission"; -// Automap Options -AUTOMAPMNU_TITLE = "OPTIONS CARTE"; -AUTOMAPMNU_COLORSET = "Set de couleurs de la carte"; -AUTOMAPMNU_CUSTOMCOLORS = "Couleurs définies par carte"; -AUTOMAPMNU_SETCUSTOMCOLORS = "Choisir couleurs personnalisées"; -AUTOMAPMNU_CONTROLS = "Choisir contrôles de la carte"; -AUTOMAPMNU_ROTATE = "Rotation de la Carte"; -AUTOMAPMNU_OVERLAY = "Carte en Surimpression"; -AUTOMAPMNU_TEXTURED = "Activer affichage texturé"; -AUTOMAPMNU_FOLLOW = "Suivre le joueur"; -AUTOMAPMNU_SHOWITEMS = "Afficher compte d'objets"; -AUTOMAPMNU_SHOWMONSTERS = "Afficher compte de monstres"; -AUTOMAPMNU_SHOWSECRETS = "Afficher compte de secrets"; -AUTOMAPMNU_SHOWTIME = "Afficher temps passé"; -AUTOMAPMNU_SHOWTOTALTIME = "Afficher total de temps passé"; -AUTOMAPMNU_MAPSECRETS = "Afficher secrets sur carte"; -AUTOMAPMNU_SHOWMAPLABEL = "Afficher label de carte"; -AUTOMAPMNU_DRAWMAPBACK = "Afficher fond d'écran carte"; -AUTOMAPMNU_SHOWKEYS = "Afficher les clés (cheat)"; -AUTOMAPMNU_SHOWTRIGGERLINES = "Afficher lignes d'action"; -AUTOMAPMNU_SHOWTHINGSPRITES = "Afficher objets comme sprites"; -AUTOMAPMNU_PTOVERLAY = "Superposer les portails"; -AUTOMAPMNU_EMPTYSPACEMARGIN = "Marge d'espace vide"; - -// Automap Controls -MAPCNTRLMNU_TITLE = "CONTROLES CARTE"; -MAPCNTRLMNU_CONTROLS = "Contrôles de la carte"; -MAPCNTRLMNU_PANLEFT = "Aller à gauche"; -MAPCNTRLMNU_PANRIGHT = "Aller à droite"; -MAPCNTRLMNU_PANUP = "Aller en haut"; -MAPCNTRLMNU_PANDOWN = "Aller en bas"; -MAPCNTRLMNU_ZOOMIN = "Zoom avant"; -MAPCNTRLMNU_ZOOMOUT = "Zoom arrière"; -MAPCNTRLMNU_TOGGLEZOOM = "Alterner zoom"; -MAPCNTRLMNU_TOGGLEFOLLOW = "Alterner suivi"; -MAPCNTRLMNU_TOGGLEGRID = "Alterner grille"; -MAPCNTRLMNU_TOGGLETEXTURE = "Alterner texture"; -MAPCNTRLMNU_SETMARK = "Placer repère"; -MAPCNTRLMNU_CLEARMARK = "Enlever repères"; - -// Automap Colors -MAPCOLORMNU_TITLE = "COULEURS CARTE"; -MAPCOLORMNU_DEFAULTMAPCOLORS = "Couleurs par défaut"; -MAPCOLORMNU_BACKCOLOR = "Fond"; -MAPCOLORMNU_YOURCOLOR = "Votre couleur"; -MAPCOLORMNU_WALLCOLOR = "Murs à 1 côté"; -MAPCOLORMNU_FDWALLCOLOR = "Murs à 2 côtés avec différents sols"; -MAPCOLORMNU_CDWALLCOLOR = "Murs à 2 côtés avec différents plafonds"; -MAPCOLORMNU_EFWALLCOLOR = "Murs à 2 côtés avec sols 3d"; -MAPCOLORMNU_GRIDCOLOR = "Quadrillage"; -MAPCOLORMNU_XHAIRCOLOR = "Point Central"; -MAPCOLORMNU_NOTSEENCOLOR = "Murs non découvers"; -MAPCOLORMNU_LOCKEDCOLOR = "Portes verouillées"; -MAPCOLORMNU_INTRALEVELCOLOR = "Téléporteurs (même niveau)"; -MAPCOLORMNU_INTERLEVELCOLOR = "Téléporteurs (autre niveau)"; -MAPCOLORMNU_SECRETSECTORCOLOR = "Secteur Secret"; -MAPCOLORMNU_SPECIALWALLCOLOR = "Lignes d'actions spéciales"; -MAPCOLORMNU_CHEATMODE = "Mode Cheat"; -MAPCOLORMNU_TSWALLCOLOR = "Murs à 2 côtés invisibles"; -MAPCOLORMNU_SECRETWALLCOLOR = "Murs Secrets"; -MAPCOLORMNU_THINGCOLOR = "Acteurs"; -MAPCOLORMNU_MONSTERCOLOR = "Monstres"; -MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR = "Monstres non comptés"; -MAPCOLORMNU_FRIENDCOLOR = "Amis"; -MAPCOLORMNU_ITEMCOLOR = "Objets"; -MAPCOLORMNU_COUNTITEMCOLOR = "Objets comptés"; -MAPCOLORMNU_OVERLAY = "Mode surimpression"; -MAPCOLORMNU_OVCHEATMODE = "Mode Cheat Surimpression"; -MAPCOLORMNU_PORTAL = "Portails superposés"; - -// Message Options -MSGMNU_SHOWMESSAGES = "Afficher messages"; -MSGMNU_SHOWOBITUARIES = "Afficher avis de décès"; -MSGMNU_SHOWSECRETS = "Afficher secrets"; -MSGMNU_MESSAGELEVEL = "Niveau de message minimum"; -MSGMNU_CENTERMESSAGES = "Messages centrés"; -MSGMNU_MESSAGECOLORS = "Couleur des messages"; -MSGMNU_ITEMPICKUP = "Objets ramassés"; -MSGMNU_OBITUARIES = "Avis de décès"; -MSGMNU_CRITICALMESSAGES = "Messages d'erreur"; -MSGMNU_CHATMESSAGES = "Message de Chat"; -MSGMNU_TEAMMESSAGES = "Messages d'équipe"; -MSGMNU_CENTEREDMESSAGES = "Messages centrés"; -MSGMNU_SCREENSHOTMESSAGES = "Messages de capture d'écran"; -MSGMNU_LONGSAVEMESSAGES = "Messages de sauvegarde détailés"; -MSGMNU_DEVELOPER = "Mode de Développement"; - -// Scoreboard Options -SCRBRDMNU_TITLE = "TABLEAU DES SCORES"; -SCRBRDMNU_COOPERATIVE = "Options Mode Coop"; -SCRBRDMNU_ENABLE = "Activer Tableau des Scores"; -SCRBRDMNU_HEADERCOLOR = "Couleur du Titre"; -SCRBRDMNU_YOURCOLOR = "Votre couleur"; -SCRBRDMNU_OTHERPLAYERCOLOR = "Couleur des autres joueurs"; -SCRBRDMNU_DEATHMATCH = "Options Deathmatch"; -SCRBRDMNU_TEAMDEATHMATCH = "Options Deathmatch en équipe"; - -// Gameplay Menu -GMPLYMNU_TITLE = "OPTIONS GAMEPLAY"; -GMPLYMNU_TEAMPLAY = "Jeu en équipe"; -GMPLYMNU_TEAMDAMAGE = "Facteur de Tir Fratricide"; -GMPLYMNU_SMARTAUTOAIM = "Autovisée intelligente"; -GMPLYMNU_FALLINGDAMAGE = "Dommages de chute"; -GMPLYMNU_DROPWEAPON = "Arme lâchée à la mort"; -GMPLYMNU_DOUBLEAMMO = "Double munitions"; -GMPLYMNU_INFINITEAMMO = "Munitions infinies"; -GMPLYMNU_INFINITEINVENTORY = "Objets infinis"; -GMPLYMNU_NOMONSTERS = "Pas de monstres"; -GMPLYMNU_NOMONSTERSTOEXIT = "Rien à tuer pour sortir"; -GMPLYMNU_MONSTERSRESPAWN = "Monstres réapparaissent"; -GMPLYMNU_NORESPAWN = "Pas de réapparition"; -GMPLYMNU_ITEMSRESPAWN = "Objets réapparaissent"; -GMPLYMNU_SUPERRESPAWN = "Powerups réapparaissent"; -GMPLYMNU_FASTMONSTERS = "Monstres Rapides"; -GMPLYMNU_DEGENERATION = "Dégéneration"; -GMPLYMNU_NOAUTOAIM = "Autoriser Auto-visée"; -GMPLYMNU_ALLOWSUICIDE = "Autoriser Suicide"; -GMPLYMNU_ALLOWJUMP = "Autoriser Sauts"; -GMPLYMNU_ALLOWCROUCH = "Autoriser Acroupissement"; -GMPLYMNU_ALLOWFREELOOK = "Autoriser Vue Libre"; -GMPLYMNU_ALLOWFOV = "Autoriser Angles de vue"; -GMPLYMNU_BFGFREEAIM = "Autoriser Visée au BFG"; -GMPLYMNU_ALLOWAUTOMAP = "Autoriser Carte"; -GMPLYMNU_AUTOMAPALLIES = "Alliés sur la carte"; -GMPLYMNU_ALLOWSPYING = "Autoriser espionnage"; -GMPLYMNU_CHASECAM = "Cheat caméra 3ième personne"; -GMPLYMNU_DONTCHECKAMMO = "Vérifier munitions pour changement arme"; -GMPLYMNU_KILLBOSSSPAWNS = "Tuer L'Icône tue tous ses monstres"; -GMPLYMNU_NOCOUNTENDMONSTER = "Ennemis du secteur sortie comptés"; -GMPLYMNU_DEATHMATCH = "Options Deathmatch"; -GMPLYMNU_WEAPONSSTAY = "Armes restent au sol quand récupérées"; -GMPLYMNU_ALLOWPOWERUPS = "Autoriser powerups"; -GMPLYMNU_ALLOWHEALTH = "Autoriser objets santé"; -GMPLYMNU_ALLOWARMOR = "Autoriser objets armure"; -GMPLYMNU_SPAWNFARTHEST = "Apparaître au plus loin"; -GMPLYMNU_SAMEMAP = "Même Carte"; -GMPLYMNU_FORCERESPAWN = "Forcer Réapparition"; -GMPLYMNU_ALLOWEXIT = "Autoriser Sortie"; -GMPLYMNU_BARRELSRESPAWN = "Réapparition des Tonneaux"; -GMPLYMNU_RESPAWNPROTECTION = "Protection à la réapparition"; -GMPLYMNU_LOSEFRAG = "Perdre 1 frag quand tué"; -GMPLYMNU_KEEPFRAGS = "Garder les frags gagnés"; -GMPLYMNU_NOTEAMSWITCH = "Pas de changement d'équipe"; -GMPLYMNU_COOPERATIVE = "Options Coopératives"; -GMPLYMNU_MULTIPLAYERWEAPONS = "Spawns d'armes deathmatch"; -GMPLYMNU_LOSEINVENTORY = "Perdre l'inventaire"; -GMPLYMNU_KEEPKEYS = "Garder clés"; -GMPLYMNU_KEEPWEAPONS = "Garder armes"; -GMPLYMNU_KEEPARMOR = "Garder armure"; -GMPLYMNU_KEEPPOWERUPS = "Garder powerups"; -GMPLYMNU_KEEPAMMO = "Garder munitions"; -GMPLYMNU_LOSEHALFAMMO = "Perdre la moité des munitions"; -GMPLYMNU_SPAWNWHEREDIED = "Réapparaitre sur lieu de mort"; - -// Compatibility Options -CMPTMNU_TITLE = "OPTIONS COMPATIBILITE"; -CMPTMNU_MODE = "Mode de compatibilité"; -CMPTMNU_ACTORBEHAVIOR = "Comportement des Acteurs"; -CMPTMNU_CORPSEGIBS = "Monstres écrasés résucitables"; -CMPTMNU_NOBLOCKFRIENDS = "Monstres amicaux non bloqués"; -CMPTMNU_LIMITPAIN = "Limiter âmes des élémentaires"; -CMPTMNU_MBFMONSTERMOVE = "Mouvement monstre affecté par effets"; -CMPTMNU_CROSSDROPOFF = "Monstres ne passent pas les corniches"; -CMPTMNU_DROPOFF = "Monstres bloqués par les corniches"; -CMPTMNU_INVISIBILITY = "Monstres voient joueurs invisibles"; -CMPTMNU_MINOTAUR = "Pas de feu de Massetaur sur l'eau"; -CMPTMNU_NOTOSSDROPS = "Objets lâchés direct au sol"; -CMPTMNU_DEHACKEDBEHAVIOR = "Comportement DeHackEd"; -CMPTMNU_DEHHEALTH = "Niveaux de santé DEH comme Doom2.EXE"; -CMPTMNU_MUSHROOM = "Vitesse A_Mushroom originale pour DEH"; -CMPTMNU_MAPACTIONBEHAVIOR = "Comportement Niveau/Actions"; -CMPTMNU_USEBLOCKING = "Toute ligne d'action bloque "; -CMPTMNU_ANYBOSSDEATH = "N'importe quel boss active actions boss"; -CMPTMNU_NODOORLIGHT = "Pas d'effet de lumière BOOM sur portes"; -CMPTMNU_LIGHT = "Trouver prochaine texture comme DOOM"; -CMPTMNU_SHORTTEX = "Trouver plus petite texture comme Doom"; -CMPTMNU_STAIRS = "Construction d'escalier plus buggée"; -CMPTMNU_FLOORMOVE = "Mouvement des sols à la DOOM"; -CMPTMNU_POINTONLINE = "Algorithme point-sur-ligne de DOOM"; -CMPTMNU_MULTIEXIT = "Sortie niveau utilisable plusieures fois"; -CMPTMNU_PHYSICSBEHAVIOR = "Comportement Physique"; -CMPTMNU_NOPASSOVER = "Hauteur des acteurs infinie"; -CMPTMNU_BOOMSCROLL = "Glisseurs BOOM additifs"; -CMPTMNU_BADANGLES = "Direction pure NSEO impossible"; -CMPTMNU_WALLRUN = "Activer Wallrunning"; -CMPTMNU_RAVENSCROLL = "Glisseurs Raven à leur vitesse originale"; -CMPTMNU_TRACE = "Secteurs en autoréférence ne bloque pas les tirs"; -CMPTMNU_HITSCAN = "Vérification Hitscan à la DOOM"; -CMPTMNU_MISSILECLIP = "Clipping des missiles à la DOOM"; -CMPTMNU_RENDERINGBEHAVIOR = "Comportement d'affichage"; -CMPTMNU_POLYOBJ = "Dessiner les Polyobjets comme Hexen"; -CMPTMNU_MASKEDMIDTEX = "Offsets Y ignorés sur les textures centrales"; -CMPTMNU_SPRITESORT = "Ordres des sprites inversé"; -CMPTMNU_SOUNDBEHAVIOR = "Comportement Sonore"; -CMPTMNU_SOUNDSLOTS = "Massacrer le son pour BFG silencieux"; -CMPTMNU_SILENTPICKUP = "Autres joueurs n'entendent pas les ramassages"; -CMPTMNU_SILENTINSTANTFLOORS = "Sols à movement instanté font du bruit"; -CMPTMNU_SECTORSOUNDS = "Sons secteur utilisent le centre comme origine"; -CMPTMNU_SOUNDCUTOFF = "Sons s'arrêtent quand acteur disparait"; -CMPTMNU_SOUNDTARGET = "Ciblage des sons selon algorithme original"; -CMPTMNU_TELEPORT = "Téléports par scripts n'activent pas le secteur"; -CMPTMNU_PUSHWINDOW = "Lignes non-bloquantes sont non-poussables"; - -// Sound Options -SNDMNU_TITLE = "OPTIONS SONORES"; -SNDMNU_SFXVOLUME = "Volume des Sons"; -SNDMNU_MENUVOLUME = "Volume du Menu"; -SNDMNU_MUSICVOLUME = "Volume Musique"; -SNDMNU_MIDIDEVICE = "Sortie MIDI"; -SNDMNU_BACKGROUND = "Son activé en arrière plan"; -SNDMNU_UNDERWATERREVERB = "Reverbération sous l'eau"; -SNDMNU_RANDOMIZEPITCHES = "Tons sonores aléatoires"; -SNDMNU_CHANNELS = "Canaux sonores"; -SNDMNU_BACKEND = "Traitement Son"; -SNDMNU_OPENAL = "Options OpenAL"; -SNDMNU_RESTART = "Redémarrer moteur sonore"; -SNDMNU_ADVANCED = "Options avancées"; -SNDMNU_MODREPLAYER = "Options lecteur de module"; - -// OpenAL Options -OPENALMNU_TITLE = "OPTIONS OPENAL"; -OPENALMNU_PLAYBACKDEVICE = "Sortie sonore"; -OPENALMNU_ENABLEEFX = "Activer EFX"; -OPENALMNU_RESAMPLER = "Resampler"; - -// Advanced Sound Options -ADVSNDMNU_TITLE = "OPTIONS SONORES AVANCEES"; -ADVSNDMNU_SAMPLERATE = "Cadence de Sampling"; -ADVSNDMNU_HRTF = "HRTF"; -ADVSNDMNU_OPLSYNTHESIS = "Synthèse OPL"; -ADVSNDMNU_OPLNUMCHIPS = "Puces OPL émulées"; -ADVSNDMNU_OPLFULLPAN = "Latéralisation complète MIDI"; -ADVSNDMNU_OPLCORES = "Coeur émulateur OPL"; -ADVSNDMNU_GUSEMULATION = "Emulation GUS"; -ADVSNDMNU_GUSCONFIG = "Fichier Config. GUS"; -ADVSNDMNU_MIDIVOICES = "Voix MIDI"; -ADVSNDMNU_DMXGUS = "Lire fichiers DMXGUS"; -ADVSNDMNU_GUSMEMSIZE = "Taille mémoire GUS"; -ADVSNDMNU_TIMIDITYEXE = "Chemin exécutable"; -ADVSNDMNU_TIMIDITYCONFIG = "Fichier de config. TiMidity"; -ADVSNDMNU_TIMIDITYVOLUME = "Volume Relatif"; -ADVSNDMNU_WILDMIDICONFIG = "Fichier config. WildMidi"; -ADVSNDMNU_SELCONFIG = "Sélectionner configuration"; -ADVSNDMNU_ADVRESAMPLING = "Resampling Avancé"; -ADVSNDMNU_OPLBANK = "Banque OPL"; -ADVSNDMNU_ADLOPLCORES = "Coeur Emulateur OPL"; -ADVSNDMNU_RUNPCMRATE = "Emulateur utilise cadence PCM"; -ADVSNDMNU_ADLNUMCHIPS = "Puces OPL émulées"; -ADVSNDMNU_VLMODEL = "Modèle de Volume"; -ADVSNDMNU_OPNNUMCHIPS = "Puces OPN émulées"; - -// ADLMIDI's volume models -ADLVLMODEL_AUTO = "Auto (Utiliser paramètre banque)"; -ADLVLMODEL_GENERIC = "Générique"; -ADLVLMODEL_NATIVE = "OPL Natif"; - - -// Module Replayer Options -MODMNU_TITLE = "OPTIONS LECTEUR MODULES"; -MODMNU_REPLAYERENGINE = "Moteur de lecture"; -MODMNU_MASTERVOLUME = "Volume maître"; -MODMNU_QUALITY = "Qualité"; -MODMNU_VOLUMERAMPING = "Rampe du volume"; - -// Renderer Options -RNDMNU_TITLE = "SELECTION MOTEUR RENDU"; -RNDMNU_RENDERER = "Accélération Matérielle"; -RNDMNU_TRUECOLOR = "Mode Software Couleurs Réeles"; -RNDMNU_POLY = "Moteur Poly (expérimental)"; -RNDMNU_CANVAS = "Canvas Software"; - -// Video Options -VIDMNU_TITLE = "MODE VIDEO"; -IDMNU_RENDERMODE = "Mode de Rendu"; -VIDMNU_FULLSCREEN = "Plein écran"; -VIDMNU_HIDPI = "Support Retina/HiDPI "; -VIDMNU_BRDLSS = "Mode fenêtré sans bordures"; -VIDMNU_ASPECTRATIO = "Rapport D'Aspect"; -VIDMNU_FORCEASPECT = "Forcer Rapport"; -VIDMNU_CROPASPECT = "Style de Ratio forcé"; -VIDMNU_5X4ASPECTRATIO = "Activer Rapport 5:4"; -VIDMNU_SCALEMODE = "Echelle de Résolution"; -VIDMNU_SCALEFACTOR = "Facteur d'échelle"; -VIDMNU_ENTERTEXT = "Appuyez sur ENTREE pour choisir un mode"; -VIDMNU_TESTTEXT1 = "Appuyez sur T pour tester ce mode pendant 5 secondes."; -VIDMNU_TESTTEXT2 = "Veuillez attendre 5 secondes..."; - -VIDMNU_USELINEAR = "Mise à l'échelle Linéaire (Plein écran)"; -VIDMNU_CUSTOMRES = "Résolution Personalisée"; -VIDMNU_CUSTOMX = "Largeur Personalisée"; -VIDMNU_CUSTOMY = "Hauteur Personalisée"; -VIDMNU_APPLYW = "Appliquer Changements (Fenêtre)"; -VIDMNU_APPLYFS = "Appliquer Changements (Plein écran)"; -VIDMNU_RESPRESET = "Choisir paramètre personalisé"; -VIDMNU_RESPRESETTTL = "Résolutions Personalisée"; -VIDMNU_RESPRESETHEAD = "Choisir mode de Résolution"; - -// Network Options -NETMNU_TITLE = "OPTIONS RESEAU"; -NETMNU_LOCALOPTIONS = "Options Locales"; -NETMNU_MOVEPREDICTION = "Prédiction de Mouvement"; -NETMNU_LINESPECIALPREDICTION = "Prédiction des actions de ligne"; -NETMNU_PREDICTIONLERPSCALE = "Prédiction d'échelle LERP"; -NETMNU_LERPTHRESHOLD = "Limite LERP"; -NETMNU_HOSTOPTIONS = "Options Hôte"; -NETMNU_EXTRATICS = "Tics supplémentaires"; -NETMNU_TICBALANCE = "Equilibrage de latence"; - -// Joystick menu - -JOYMNU_ENABLE = "Activer support contrôleur"; -JOYMNU_DINPUT = "Activer contrôleurs DirectInput"; -JOYMNU_XINPUT = "Activer contrôleurs XInput"; -JOYMNU_PS2 = "Activer adaptateurs PS2 bruts"; -JOYMNU_NOCON = "Aucun Contrôleur détecté."; -JOYMNU_CONFIG = "Configurer contrôleurs:"; -JOYMNU_DISABLED1 = "Le Support de contrôleur doit être activé"; -JOYMNU_DISABLED2 = "avant de pouvoir en détecter un."; -JOYMNU_INVALID = "Contrôleur invalide spécifé dans le menu."; -JOYMNU_OVRSENS = "Sensibilité générale"; -JOYMNU_AXIS = "Configuration des axes"; -JOYMNU_INVERT = "Inverser"; -JOYMNU_DEADZONE = "Zone neutre"; -JOYMNU_NOAXES = "Aucun axe à configurer"; - -// Option Values -OPTVAL_MALE = "Masculin"; -OPTVAL_FEMALE = "Féminin"; -OPTVAL_OTHER = "Neutre"; -OPTVAL_UPPERLEFT = "Supérieur gauche"; -OPTVAL_UPPERRIGHT = "Supérieur droite"; -OPTVAL_LOWERLEFT = "Inférieur gauche"; -OPTVAL_LOWERRIGHT = "Inférieur droite"; -OPTVAL_TOUCHSCREENLIKE = "Style écran tactile"; -OPTVAL_NONE = "Aucun"; -OPTVAL_TURNING = "Tourner"; -OPTVAL_LOOKINGUPDOWN = "Vue haut/bas"; -OPTVAL_MOVINGFORWARD = "Avancer"; -OPTVAL_STRAFING = "Pas de côté"; -OPTVAL_MOVINGUPDOWN = "Mouvement haut/bas"; -OPTVAL_INVERTED = "Inversé"; -OPTVAL_NOTINVERTED = "Non Inversé"; -OPTVAL_ORIGINAL = "Original"; -OPTVAL_OPTIMIZED = "Optimisé"; -OPTVAL_CLASSIC = "Classique (+ Rapide)"; -OPTVAL_PRECISE = "Précis"; -OPTVAL_STRETCH = "Etirer"; -OPTVAL_CAPPED = "Limité"; -OPTVAL_PARTICLES = "Particules"; -OPTVAL_SPRITESPARTICLES = "Sprites & Particules"; -OPTVAL_MELT = "Fondu"; -OPTVAL_BURN = "Brûlure"; -OPTVAL_CROSSFADE = "Fondu en croix"; -OPTVAL_ONLYMODIFIED = "Modifié seulement"; -OPTVAL_SMOOTH = "Lisse"; -OPTVAL_TRANSLUCENT = "Transparent"; -OPTVAL_FUZZ = "Bruit Blanc"; -OPTVAL_SHADOW = "Ombre"; -OPTVAL_ITEMS = "Objets"; -OPTVAL_WEAPONS = "Armes"; -OPTVAL_BOTH = "Les Deux"; -OPTVAL_PLAYER = "Joueur"; -OPTVAL_MAP = "Niveau"; -OPTVAL_SCALETO640X400 = "Echelle 640x400"; -OPTVAL_CURRENTWEAPON = "Arme actuelle"; -OPTVAL_AVAILABLEWEAPONS = "Armes Disponibles"; -OPTVAL_ALLWEAPONS = "Toutes les armes"; -OPTVAL_LEVELMILLISECONDS = "Niveau, milisecondes"; -OPTVAL_LEVELSECONDS = "Niveau, secondes"; -OPTVAL_LEVEL = "Niveau"; -OPTVAL_HUBSECONDS = "Hub, secondes"; -OPTVAL_HUB = "Hub"; -OPTVAL_TOTALSECONDS = "Total, secondes"; -OPTVAL_TOTAL = "Total"; -OPTVAL_SYSTEMSECONDS = "Système, secondes"; -OPTVAL_SYSTEM = "Système"; -OPTVAL_NETGAMESONLY = "Parties en Ligne seulement"; -OPTVAL_ALWAYS = "Toujours"; -OPTVAL_AMMOIMAGETEXT = "Image et Texte"; -OPTVAL_AMMOTEXTIMAGE = "Texte et Image"; -OPTVAL_SCRIPTSONLY = "Scripts seulement"; -OPTVAL_NEVER = "Jamais"; -OPTVAL_ALL = "Tout"; -OPTVAL_ONLYLASTONE = "Dernier seulement"; -OPTVAL_CUSTOM = "Modifié"; -OPTVAL_TRADITIONALDOOM = "Doom Traditionnel"; -OPTVAL_TRADITIONALSTRIFE = "Strife Traditionnel"; -OPTVAL_TRADITIONALRAVEN = "Raven Traditionnel"; -OPTVAL_ONLYWHENFOUND = "Seulement découverts"; -OPTVAL_ONFOROVERLAYONLY = "On pour Surimpression"; -OPTVAL_OVERLAYNORMAL = "Surimpression+Normal"; -OPTVAL_OVERLAYONLY = "Surimpression seulement"; -OPTVAL_NOTFORHUBS = "Pas pour les hubs"; -OPTVAL_FRONT = "Devant"; -OPTVAL_ANIMATED = "Animés"; -OPTVAL_ROTATED = "Tournés"; -OPTVAL_MAPDEFINEDCOLORSONLY = "Couleurs définies carte seul."; -OPTVAL_NODOORS = "Tout sauf portes"; -OPTVAL_ITEMPICKUP = "Objets Ramassés"; -OPTVAL_OBITUARIES = "Avis de décès"; -OPTVAL_CRITICALMESSAGES = "Messages Critiques"; -OPTVAL_NEVERFRIENDS = "Jamais les Amis"; -OPTVAL_ONLYMONSTERS = "Monstres Seulement"; -OPTVAL_HEXEN = "Hexen"; -OPTVAL_OLD = "Ancien"; -OPTVAL_DEFAULT = "Défaut"; -OPTVAL_SOUNDSYSTEM = "Système Sonore"; -OPTVAL_LINEAR = "Linéaire"; -OPTVAL_NEAREST = "Nearest"; -OPTVAL_PCF_LOW = "PCF (Low)"; -OPTVAL_PCF_MEDIUM = "PCF (Medium)"; -OPTVAL_PCF_HIGH = "PCF (High)"; -OPTVAL_CUBIC = "Cubique"; -OPTVAL_BLEP = "Step limité sur bande"; -OPTVAL_LINEARSLOW = "Linéaire (Lent)"; -OPTVAL_BLAM = "Linéaire limité sur bande"; -OPTVAL_CUBICSLOW = "Cubique (Lent)"; -OPTVAL_NOTEONOFFONLY = "Note on/off seulement"; -OPTVAL_FULLRAMPING = "Rampe complète"; -OPTVAL_ALLUNACKNOWLEDGED = "Tout non-confirmé"; -OPTVAL_ERRORS = "Erreurs"; -OPTVAL_WARNINGS = "Alertes"; -OPTVAL_EVERYTHING = "Tout"; -OPTVAL_FULLSCREENONLY = "Plein écran seulement"; -OPTVAL_HWPOLY = "OpenGL-Accéléré"; -OPTVAL_SWDOOM = "Moteur Software Doom"; -OPTVAL_DEDICATED = "Haute-Performance"; -OPTVAL_INTEGRATED = "Sauvegarde d'énergie"; -OPTVAL_VTFZDOOM = "ZDoom (Forcé)"; -OPTVAL_VTFVANILLA = "Vanilla (Forcé)"; -OPTVAL_VTAZDOOM = "Auto (ZDoom Préféré)"; -OPTVAL_VTAVANILLA = "Auto (Vanilla Préféré)"; -OPTVAL_SCALENEAREST = "Mise à l'échelle (Proche Voisin)"; -OPTVAL_SCALELINEAR = "Mise à l'échelle (Linéaire)"; -OPTVAL_LINEAR = "Linéaire"; -OPTVAL_CUBIC = "Cubique"; -OPTVAL_BLEP = "Step limité par bande"; -OPTVAL_LINEARSLOW = "Linéaire (Lent)"; -OPTVAL_BLAM = "Linéaire limité par bande"; -OPTVAL_CUBICSLOW = "Cubique (Lent)"; -OPTVAL_NOTEONOFFONLY = "Note on/off seulement"; -OPTVAL_FULLRAMPING = "Rampe complète"; -OPTVAL_ALLUNACKNOWLEDGED = "Tout non-acknowledged"; -OPTVAL_ERRORS = "Erreurs"; -OPTVAL_WARNINGS = "Avertissements"; -OPTVAL_EVERYTHING = "Tout"; -OPTVAL_FULLSCREENONLY = "Plein écran seulement"; -OPTVAL_HWPOLY = "Accéléré par OpenGL"; -OPTVAL_SWDOOM = "Rendu Software Doom"; -OPTVAL_SWDOOMTC = "Rendu Software Couleurs Réeles"; -OPTVAL_SWPOLY = "Rendu Softpoly"; -OPTVAL_SWPOLYTC = "Softpoly Couleurs Réeles"; -OPTVAL_DEDICATED = "Hautes Performances"; -OPTVAL_INTEGRATED = "Economie d'Energie"; -OPTVAL_VTFZDOOM = "ZDoom (Forcé)"; -OPTVAL_VTFVANILLA = "Vanilla (Forcé)"; -OPTVAL_VTAZDOOM = "Auto (ZDoom Préféré)"; -OPTVAL_VTAVANILLA = "Auto (Vanilla Préféré)"; -OPTVAL_SCALENEAREST = "Mis à l'échelle (Proche Voisin)"; -OPTVAL_SCALELINEAR = "Mis à l'échelle (Linéaire)"; - - -// Colors -C_BRICK = "\cabrique"; -C_TAN = "\cbbeige"; -C_GRAY = "\ccgris"; -C_GREEN = "\cdvert"; -C_BROWN = "\cebrun"; -C_GOLD = "\cfor"; -C_RED = "\cgrouge"; -C_BLUE = "\chbleu"; -C_WHITE = "\cjblanc"; -C_YELLOW = "\ckjaune"; -C_DEFAULT = "\cldéfaut"; -C_BLACK = "\cmnoir"; -C_LIGHTBLUE = "\cnbleu clair"; -C_CREAM = "\cocrème"; -C_DARKGREEN = "\cqvert sombre"; -C_DARKRED = "\crrouge sombre"; -C_DARKBROWN = "\csbrun sombre"; -C_PURPLE = "\ctviolet"; -C_DARKGRAY = "\cugris sombre"; -C_ICE = "\cwglace"; -C_FIRE = "\cxfeu"; -C_SAPPHIRE = "\cysaphir"; -C_TEAL = "\czturquoise"; -// Option Strings -OPTSTR_SIMPLEARROW = "Flèche simple"; -OPTSTR_SYSTEMCURSOR = "Curseur Système"; -OPTSTR_NOSOUND = "Pas de son"; -OPTSTR_SURROUND = "5 enceintes"; -OPTSTR_5POINT1 = "Enceintes 5.1"; -OPTSTR_7POINT1 = "Enceintes 7.1"; -OPTSTR_NOINTERPOLATION = "Pas d'interpolation"; - - - -SAFEMESSAGE = "Voulez-vous vraiment faire ça?"; -MNU_COLORPICKER = "CHOISIR COULEUR"; - - -WI_FINISHED = "terminé"; -WI_ENTERING = "Entrant:"; - -AM_MONSTERS = "Monstres:"; -AM_ITEMS = "Objets:"; - - -// Bloodbath announcer - -BBA_BONED = "%k désossa %o comme un poisson"; -BBA_CASTRA = "%k castra %o"; -BBA_CREAMED = "%k a battu %o à plate couture "; -BBA_DECIMAT = "%k a décimé %o"; -BBA_DESTRO = "%k a détruit %o"; -BBA_DICED = "%k a coupé en dés %o"; -BBA_DISEMBO = "%k a étripé %o"; -BBA_FLATTE = "%k a aplati %o"; -BBA_JUSTICE = "%k a rendu une justice anale a %o"; -BBA_MADNESS = "%k a donné la FOLIE ANALE a %o"; -BBA_KILLED = "%k a tué %o"; -BBA_MINCMEAT = "%k a fait de la viande hachée de %o"; -BBA_MASSACR = "%k a massacré %o"; -BBA_MUTILA = "%k a mutilé %o"; -BBA_REAMED = "%k a découpé en fines lamelles %o"; -BBA_RIPPED = "%k a ouvert un nouvel orifice a %o"; -BBA_SLAUGHT = "%k a meurtri %o"; -BBA_SMASHED = "%k a enfoncé %o"; -BBA_SODOMIZ = "%k y a sodomisé n %o"; -BBA_SPLATT = "%k a explosé de %o"; -BBA_SQUASH = "%k a écrabouillé %o"; -BBA_THROTTL = "%k a étouffé %o"; -BBA_WASTED = "%k a décharne %o"; -BBA_BODYBAG = "%k a placé %o dans son linceul"; -BBA_HELL = "%k a envoyé %o en enfer"; -BBA_TOAST = "%k a grillé %o"; -BBA_SNUFF = "%k a crevé %o"; -BBA_HOSED = "%k a arrosé %o"; -BBA_SPRAYED = "%k a pulvérise %o"; -BBA_DOGMEAT = "%k a fait de la patée pour chien %o"; -BBA_BEATEN = "%k a battu %o"; - -BBA_EXCREMENT = "%o est une merde"; -BBA_HAMBURGER = "%o est un hamburger"; -BBA_SCROTUM = "%o a souffert d'une séparation du scrotum"; -BBA_POPULATION = "%o s'est proposé pour un controle de la population"; -BBA_SUICIDE = "%o s'est suicidé"; -BBA_DARWIN = "%o a recu la médaille Darwin"; - - -// Chex Quest Strings -CHUSTR_E1M1 = "E1M1: La piste d'atterissage"; -CHUSTR_E1M2 = "E1M2: Le centre de stockage"; -CHUSTR_E1M3 = "E1M3: Les labos éxperimentaux"; -CHUSTR_E1M4 = "E1M4: L'Arboretum"; -CHUSTR_E1M5 = "E1M5: Les cavernes de Bazoik"; - -CE1TEXT = - "Mission accomplie.\n" - "\n" - "Etes vous prêt pour la prochaine mission?\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "Appuyez sur échap pour continuer..."; - -CE2TEXT = "Vous l'avez fait!"; -CE3TEXT = "Merveilleux travail!"; -CE4TEXT = "Fantastique!"; -//These replaced Doom2 messages -CE5TEXT = "Trop fort!"; -CE6TEXT = "Dans la bonne voie!"; -CE7TEXT = "Merci pour l'aide!"; -CE8TEXT = "Génial!\n"; -CE9TEXT = "Fabuleux!"; -//The next for plutonia -CE10TEXT = "Joliment fait!"; -CE11TEXT = "Joli travail!"; -CE12TEXT = "Bien joué!"; -CE13TEXT = "Mangez du Chex(R)!"; -CE14TEXT = "Etes vous prêt?"; -CE15TEXT = "Etiez vous prêt.."; -//TNT -CE16TEXT = "Il y en plus a venir..."; -CE17TEXT = "Continuez le bon travail!"; -CE18TEXT = "Soyez prêts!"; -CE19TEXT = "Soyez fiers."; -CE20TEXT = "Wow!"; -CE21TEXT = "Génial!"; - -CLOADNET = "Vous ne pouvez pas charger quand\n vous êtes en ligne!\n\nappuyez sur une touche."; -$ifgame(chex) QSPROMPT = "Sauvegarde rapide sur le fichier\n\n'%s'?\n\nAppuyez sur Y ou N."; -$ifgame(chex) QLOADNET = "Vous ne pouvez pas charger quand\n vous êtes en ligne!\n\nappuyez sur une touche."; -$ifgame(chex) QLPROMPT = "Chargement rapide sur le fichier\n\n'%s'?\n\nAppuyez sur Y ou N."; -CNEWGAME = "Vous ne pouvez pas lancer une partie quand\n vous êtes en ligne!\n\nappuyez sur une touche."; - -CNIGHTMARE = "Attention, ce mode n'y va pas avec tact...\nVoulez-vous continuer?\n\nAppuyez sur Y ou N."; - -CSWSTRING = "Ceci est Chex(R) Quest. Attendez-vous\n\nà de futur niveaux sur www.chexquest.com.\n\nappuyez sur une touche."; - -$ifgame(chex) NETEND = "Vous ne pouvez pas arrêter la partie quand\n vous êtes en ligne!\n\nappuyez sur une touche."; -$ifgame(chex) ENDGAME = "Finir la partie?\n\nAppuyez sur Y ou N."; - -CC_FLEMOIDUSCOMMONUS = "FLEMOIDUS COMMONUS"; -CC_FLEMOIDUSBIPEDICUS = "FLEMOIDUS BIPEDICUS"; -CC_FLEMOIDUSBIPEDICUSWITHARMOR = "FLEMOIDUS BIPEDICUS AVEC ARMURE"; -CC_THEFLEMBRANE = "LA FLEMBRANE"; - -GOTCHEXARMOR = "Vous avez pris l'armure Chex(R)."; -GOTSUPERCHEXARMOR = "Vous avez pris la super armure Chex(R)!"; -GOTWATER = "Vous avez pris un verre d'eau."; -GOTREPELLENT = "Vous avez pris de la chaux répulsive."; -GOTBREAKFAST = "Petit-déjeuner superchargé!"; -GOTCBLUEKEY = "Vous avez pris une clé bleue."; -GOTCYELLOWKEY = "Vous avez pris une clé jaune."; -GOTCREDKEY = "Vous avez pris une clé rouge."; -GOTFRUIT = "Vous avez pris un bol de fruits."; -GOTVEGETABLESNEED = "Les légumes sont VRAIMENT bons pour vous!"; -GOTVEGETABLES = "Vous avez pris un bol de légumes."; -GOTSLIMESUIT = "Combinaison pare-gelée"; -GOTCHEXMAP = "Vous avez trouve une carte informatique de la zone."; - -GOTZORCHRECHARGE = "Vous avez pris une mini recharge zorch."; -GOTMINIZORCHPACK = "Vous avez pris un pack de mini recharges zorch."; -GOTPROPULSORPACK = "Vous avez pris un paquet propulseur zorch."; -GOTPHASINGZORCHERRECHARGE = "Vous avez pris une recharge zorch phasée."; -GOTPHASINGZORCHERPACK = "Vous avez pris un pack de recharges zorch phasée."; -GOTLARGEZORCHERRECHARGE = "Vous avez pris une recharge pour zorcheur large."; -GOTLARGEZORCHERPACK = "Vous avez pris un pack de recharges pour zorcheur large."; -GOTZORCHPACK = "Vous avez pris un zorchpak!"; - -GOTLAZDEVICE = "Vous avez pris l'Outil ZZL! Wahou!"; -GOTRAPIDZORCHER = "Vous avez pris le Zorcheur Rapide!"; -GOTSUPERBOOTSPORK = "Vous avez pris la Super Fourchette!"; -GOTZORCHPROPULSOR = "Vous avez pris le Propulseur Zorch!"; -GOTPHASINGZORCHER = "Vous avez pris le Zorcheur phasé!"; -GOTLARGEZORCHER = "Vous avez pris le Zorcheur Large!"; -GOTSUPERLARGEZORCHER = "Vous avez pris le méga Zorcheur!"; -GOTMINIZORCHER = "Vous avez pris le Mini Zorcheur."; - -$ifgame(chex) STSTR_DQDON = "Mode invincible ON"; -$ifgame(chex) STSTR_DQDOFF = "Mode invincible OFF"; -$ifgame(chex) STSTR_FAADDED = "Zorch Ajouté"; -$ifgame(chex) STSTR_KFAADDED = "Super Zorch Ajouté"; -$ifgame(chex) STSTR_CHOPPERS = "... Mangez du Chex(R)!"; - -OB_COMMONUS = "%o à été gélifié par un flemoid."; -OB_BIPEDICUS = "%o à été gélifié par un bipedicus."; -OB_BIPEDICUS2 = "%o à été gélifié par un bipedicus en armure."; -OB_CYCLOPTIS = "%o à été gélifié par un cycloptis."; -OB_FLEMBRANE = "%o à été battu par la Flembrane."; - -OB_MPSPOON = "%o à été nourri a la petite cuillière par %k."; -OB_MPBOOTSPORK = "%o à été mélange minutieusement par la Super Fourchette de %k."; -OB_MPZORCH = "%o à été zorché par %k."; -OB_MPMEGAZORCH = "%o à été frappé par le mega zorcheur de %k."; -OB_MPRAPIDZORCH = "%o à été zorché rapidement par %k."; -OB_MPPROPULSOR = "%o à été zorché par le propulseur de %k."; -OB_MPP_SPLASH = "%o à été frappé par le propulseur de %k."; -OB_MPPHASEZORCH = "%o à été phasé par %k."; -OB_MPLAZ_BOOM = "%o est devenu la proie de l'ustensil ZZL %k."; -OB_MPLAZ_SPLASH = "%o à été pris par le ZZL de %k."; - -// GZDoom exclusive: - -DSPLYMNU_GLOPT = "Moteur de Rendu OpenGL"; -DSPLYMNU_SWOPT = "Moteur de Rendu Software"; -DSPLYMNU_GAMMA = "Correction Gamma"; -DSPLYMNU_CONTRAST = "Contraste"; -DSPLYMNU_HWGAMMA = "Gamma moniteur"; - -// OpenGL Options -GLMNU_TITLE = "OPTIONS OPENGL"; -GLMNU_DYNLIGHT = "Options Lumières Dynamiques"; -GLMNU_TEXOPT = "Options Textures"; -GLMNU_PREFS = "Préférences"; - -// Texture Options -GLTEXMNU_TITLE = "OPTIONS TEXTURE"; -GLTEXMNU_TEXENABLED = "Textures activées"; -GLTEXMNU_TEXFILTER = "Mode de Filtrage Texture"; -GLTEXMNU_ANISOTROPIC = "Filtre Anisotropique"; -GLTEXMNU_TEXFORMAT = "Format Texture"; -GLTEXMNU_ENABLEHIRES = "Activer Textures haute résolution"; -GLTEXMNU_HQRESIZE = "Mise à l'échelle haute résolution"; -GLTEXMNU_RESIZETEX = "Mise à l'échelle textures"; -GLTEXMNU_RESIZESPR = "Mise à l'échelle sprites"; -GLTEXMNU_RESIZEFNT = "Mise à l'échelle texte"; -GLTEXMNU_PRECACHETEX = "Mise en cache des textures"; -GLTEXMNU_TRIMSPREDGE = "Nettoyer le bord des sprites"; -GLTEXMNU_SORTDRAWLIST = "Ordonner liste de rendu par texture"; - -// Dynamic Light Options -GLLIGHTMNU_TITLE = "LUMIERES DYNAMIQUES"; -GLLIGHTMNU_LIGHTSENABLED = "Lumières Dynamiques (OpenGL)"; -GLLIGHTMNU_LIGHTDEFS = "Activer les définitions GLDEFS"; -GLLIGHTMNU_CLIPLIGHTS = "Limiter taille des lumières"; -GLLIGHTMNU_LIGHTSPRITES = "Lumières affectent les sprites"; -GLLIGHTMNU_LIGHTPARTICLES = "Lumières affectent les particules"; -GLLIGHTMNU_LIGHTSHADOWMAP = "Shadowmaps"; -GLLIGHTMNU_LIGHTSHADOWMAPQUALITY = "Qualité Shadowmap"; - -// OpenGL Preferences -GLPREFMNU_TITLE = "Préférences OpenGL"; -GLPREFMNU_SECLIGHTMODE = "Mode de lumière Secteur"; -GLPREFMNU_FOGMODE = "Mode du broullard"; -GLPREFMNU_FOGFORCEFULLBRIGHT = "Brouillard force fullbright"; -GLPREFMNU_WPNLIGHTSTR = "Intensité lumineuse des armes"; -GLPREFMNU_ENVIRONMENTMAPMIRROR = "Mappage environment sur les miroirs"; -GLPREFMNU_ENV = "Mode de vision nocture amélioré"; -GLPREFMNU_ENVSTEALTH = "VNA affiche monstres invisibles"; -GLPREFMNU_SPRBRIGHTFOG = "Forcer luminosité dans brouillard"; -GLPREFMNU_SPRCLIP = "Adjusted le clipping des sprites"; -GLPREFMNU_SPRBLEND = "Adoucir bords des sprites"; -GLPREFMNU_FUZZSTYLE = "Style de bruit blanc"; -GLPREFMNU_SPRBILLBOARD = "Etalage des sprites"; -GLPREFMNU_SPRBILLFACECAMERA = "Sprites font face à la caméra"; -GLPREFMNU_PARTICLESTYLE = "Style de particules"; -GLPREFMNU_AMBLIGHT = "Niveau de lumière ambiente"; -GLPREFMNU_RENDERQUALITY = "Qualité du rendu"; -GLPREFMNU_MENUBLUR = "Flou menu"; -GLPREFMNU_VRMODE = "3D VR Stéréo"; -GLPREFMNU_VRQUADSTEREO = "Activer Quad Stereo"; -GLPREFMNU_TONEMAP = "Mode Tonemap"; -GLPREFMNU_BLOOM = "Effet surbrillance"; -GLPREFMNU_LENS = "Effet distorsion de lentille"; -GLPREFMNU_SSAO = "Qualité Occlusion Ambiente"; -GLPREFMNU_SSAO_PORTALS = "OA pour les portails"; -GLPREFMNU_FXAA = "Qualité FXAA"; -GLPREFMNU_PALTONEMAPORDER = "Ordre des palettes tonemap"; -GLPREFMNU_PALTONEMAPPOWER = "Exponent des palettes tonemap"; -GLPREFMNU_SWLMBANDED = "Lumière bandées en Software"; - -// Option Values -OPTVAL_SMART = "Intelligent"; -OPTVAL_SMARTER = "+ Intelligent"; -OPTVAL_INFRAREDONLY = "Vis. Noct. Seulement"; -OPTVAL_INFRAREDANDTORCH = "Iis Noct. & Torche"; -OPTVAL_ANYFIXEDCOLORMAP = "N'importe quelle colormap"; -OPTVAL_NONENEARESTMIPMAP = "Aucun (mipmap proche voisin)"; -OPTVAL_NONELINEARMIPMAP = "Aucun (mipmap linéaire)"; -OPTVAL_NONETRILINEAR = "Aucun (mipmap trilinéaire)"; -OPTVAL_BILINEAR = "Bilinéaire"; -OPTVAL_TRILINEAR = "Trilinéaire"; -OPTVAL_USEASPALETTE = "Utiliser comme pallette"; -OPTVAL_BLEND = "Mélanger"; -OPTVAL_BRIGHT = "Clair"; -OPTVAL_DARK = "Sombre"; -OPTVAL_SPEED = "Vitesse"; -OPTVAL_QUALITY = "Qualité"; -OPTVAL_OPTIMAL = "Optimiser"; -OPTVAL_YAXIS = "Axe Y"; -OPTVAL_XYAXIS = "Axes X/Y"; -OPTVAL_SQUARE = "Carrées"; -OPTVAL_ROUND = "Rondes"; -OPTVAL_PIXELFUZZ = "Bruit Pixélisé"; -OPTVAL_SMOOTHFUZZ = "Bruit doux"; -OPTVAL_SWIRLYFUZZ = "Bruit marbré"; -OPTVAL_TRANSLUCENTFUZZ = "Bruit transparent"; -OPTVAL_NOISE = "Neige"; -OPTVAL_SMOOTHNOISE = "Neige adoucie"; -OPTVAL_JAGGEDFUZZ = "Neige rugeuse"; -OPTVAL_GREENMAGENTA = "Vert/Magenta"; -OPTVAL_REDCYAN = "Rouge/Bleu"; -OPTVAL_AMBERBLUE = "Ambre/Bleu"; -OPTVAL_LEFTEYE = "Oeil Gauche"; -OPTVAL_RIGHTEYE = "Oeil Droit"; -OPTVAL_SBSFULL = "Côte-â-côte Complet"; -OPTVAL_SBSNARROW = "Côte-â-côte étroit"; -OPTVAL_TOPBOTTOM = "Dessus/Dessous"; -OPTVAL_ROWINTERLEAVED = "Entrelacement rangée"; -OPTVAL_COLUMNINTERLEAVED = "Entralcement colonne"; -OPTVAL_CHECKERBOARD = "Damier"; -OPTVAL_QUADBUFFERED = "Quadruple-tampon"; -OPTVAL_LOW = "Bas"; -OPTVAL_MEDIUM = "Moyen"; -OPTVAL_HIGH = "Haut"; -OPTVAL_EXTREME = "Extrême"; -OPTVAL_REVERSEFIRST = "Inverse"; - -// QZDoom exclusive: - -DSPLYMNU_TCOPT = "Options TrueColor"; - -TCMNU_TITLE = "OPTIONS TRUECOLOR"; - - -TCMNU_TRUECOLOR = "Sortie Truecolor"; -TCMNU_MINFILTER = "Filtrage linéaire en réduction"; -TCMNU_MAGFILTER = "Filtrage linéaire en agrandissement"; -TCMNU_MIPMAP = "Utiliser textures mipmappées"; -TCMNU_DYNLIGHTS = "Lumières Dynamiques (Software)"; - -// SVE strings: - -TAG_TALISMANRED = "Talisman Rouge"; -TAG_TALISMANGREEN = "Talisman Vert"; -TAG_TALISMANBLUE = "Talisman Bleu"; -MSG_TALISMANRED = "Vous avez un pressentiment qu'il ne fallait pas y toucher....."; -MSG_TALISMANGREEN = "Quel que soit cette chose, elle ne devrait pas être ici..."; -MSG_TALISMANBLUE = "Ca doit servir a quelque chose..."; -MSG_TALISMANPOWER = "Vous avez une puissance inégalée!"; diff --git a/wadsrc/static/language.ita b/wadsrc/static/language.ita deleted file mode 100644 index de344d1b0..000000000 --- a/wadsrc/static/language.ita +++ /dev/null @@ -1,1138 +0,0 @@ -/* Italian strings. Contributed, but alas, I forget by who. - * If whoever wrote these wants credit, send me an e-mail and I'll add your name to this header. - */ - -[ita] - -D_DEVSTR = "Modalita' sviluppo ATTIVA.\n"; -D_CDROM = "Versione del CD-ROM: zdoom.cfg da c:\\zdoomdat\n"; -PRESSKEY = "premi un tasto."; -PRESSYN = "premi y oppure n."; - -QUITMSG = "Sei sicuro di volere uscire\nda questo grandioso gioco?"; -TXT_YES = "Si"; -TXT_NO = "No"; - -// QuitDoom1 messages -QUITMSG1 = "per favore non uscire, ci sono altri\ndemoni da ammazzare!"; -QUITMSG2 = "ammettiamolo - tutto cio' si sta\ntrasformando in un bagno di sangue!"; -QUITMSG3 = "non uscirei se fossi in te.\nil dos e' molto peggio."; -QUITMSG4 = "stai cercando di dire che il dos\nti piace piu' di me, vero?"; -QUITMSG5 = "non abbandonare ora - c'e' un\ndemone dietro l'angolo!"; -QUITMSG6 = "sai, la prossima volta che verrai qui\nti faro' a pezzi."; -QUITMSG7 = "continua ed esci. sai che mi frega."; - -// QuitDOOM II messages -QUITMSG8 = "vuoi uscire?\nallora hai perso il senno!"; -QUITMSG9 = "non andartene adesso, c'e' un\nportale dimensionale che ti aspetta\nal prompt del dos!"; -QUITMSG10 = "vai fuori di qui e torna\nai tuoi noiosi programmi."; -QUITMSG11 = "se fossi il tuo capo, ti batterei\na un deathmatch in un minuto!"; -QUITMSG12 = "senti amico, esci adesso\ne perdi il tuo body count!"; -QUITMSG13 = "esci pure. quanto tornerai\nti aspettero' con un bastone."; -QUITMSG14 = "sei fortunato che non ti picchi\nper aver pensato di andartene."; - -// Quit Strife messages -QUITMSG15 = "dove stai andando?!\ne la ribellione?"; -QUITMSG16 = "macellus interruptus...\nche presa in giro!"; -QUITMSG17 = "ma tu sei la speranza\n-- la mia unica possibilita'!!"; -QUITMSG18 = "nessuno gira le spalle a Blackbird."; -QUITMSG19 = "pensavo tu fossi diverso..."; -QUITMSG20 = "ma bravo! uccidi e scappi!"; -QUITMSG21 = "puoi uscire...\nma non puoi nasconderti..."; -QUITMSG22 = "eehi, che problema c'e'?\nla mamma ha detto che e' ora di cena?"; - -// Quit Chex messages -QUITMSG23 = "Non uscire ora, ci sono ancora\nflemoidi a piede libero!"; -QUITMSG24 = "Non arrenderti -- i flemoidi\nci sopraffaranno!"; -QUITMSG25 = "Non andartene ora.\nCi serve il tuo aiuto!"; -QUITMSG26 = "Spero tu stia solo facendo un\nbreak per prendere un Chex(R) party mix."; -QUITMSG27 = "non uscire ora!\nCi serve il tuo aiuto!"; -QUITMSG28 = "Non abbandonare la\nFederazione Intergalattica dei Cereali!"; -QUITMSG29 = "Il vero guerriero Chex(R)\nnon si arrenderebbe cosi' in fretta!"; - -LOADNET = "non puoi caricare una partita durante un netgame!\n\npremi un tasto."; -QLOADNET = "non puoi fare un quickload durante un netgame!\n\npremi un tasto."; -QSAVESPOT = "non hai ancora scelto uno slot per il quicksave!\n\npremi un tasto."; -SAVEDEAD = "non puoi salvare se non stai giocando!\n\npremi un tasto."; -QSPROMPT = "sovrascrivere il salvataggio\n\n'%s'?\n\npremi y oppure n."; -QLPROMPT = "vuoi fare un quickload della partita\n\n'%s'?\n\npremi y oppure n."; -NEWGAME = "non puoi iniziare una nuova partita\ndurante una partita in rete.\n\npremi un tasto."; -NIGHTMARE = "sei sicuro? questo livello di difficolta'\ne' dannatamente difficile.\n\npremi y oppure n."; -SWSTRING = "questa e' la versione shareware di doom.\n\ndevi ordinare la trilogia completa.\n\npremi un tasto."; -MSGOFF = "messaggi disattivati"; -MSGON = "messaggi attivati"; -NETEND = "non puoi terminare un netgame!\n\npremi un tasto"; -ENDGAME = "sei sicuro di voler terminare la partita?\n\npremi y oppure n."; -DOSY = "(premi y per uscire)"; -EMPTYSTRING = "slot libero"; -GOTARMOR = "Hai trovato un'armatura."; -GOTMEGA = "Hai trovato una MegaArmatura!"; -GOTHTHBONUS = "Raccolto un bonus d'energia."; -GOTARMBONUS = "Raccolto un bonus d'armatura."; -GOTSTIM = "Raccolto uno stimpack."; -GOTMEDINEED = "Hai raccolto un medikit di cui avevi PROPRIO bisogno!"; -GOTMEDIKIT = "Raccolto un medikit."; -GOTSUPER = "Sfera dell'Anima!"; -GOTBLUECARD = "Raccolta una card blu."; -GOTYELWCARD = "Raccolta una card gialla."; -GOTREDCARD = "Raccolta una card rossa."; -GOTBLUESKUL = "Raccolta una chiave-teschio blu."; -GOTYELWSKUL = "Raccolta una chiave-teschio gialla."; -GOTREDSKUL = "Raccolta una chiave-teschio rossa."; -GOTINVUL = "Invulnerabilita'!"; -GOTBERSERK = "Berserk!"; -GOTINVIS = "Invisibilita' parziale"; -GOTSUIT = "Tuta anti-radiazioni"; -GOTMAP = "Mappa Completata."; -GOTVISOR = "Amplificatore di luce"; -GOTMSPHERE = "MegaSfera!"; -GOTCLIP = "Raccolto un caricatore."; -GOTCLIPBOX = "Raccolta una scatola di proiettili."; -GOTROCKET = "Raccolto un razzo."; -GOTROCKBOX = "Raccolta una cassa di razzi."; -GOTCELL = "Raccolta una batteria."; -GOTCELLBOX = "Raccolta una confezione di batterie."; -GOTSHELLS = "Raccolte 4 cartucce per fucile."; -GOTSHELLBOX = "Raccolta una scatola di cartucce per fucile."; -GOTBACKPACK = "Raccolto uno zaino zeppo di munizioni!"; -GOTBFG9000 = "Hai trovato il BFG9000! Eh, si'!"; -GOTCHAINGUN = "Hai trovato un mitragliatore!"; -GOTCHAINSAW = "Una motosega! Trova un po' di carne!"; -GOTLAUNCHER = "Hai trovato un lanciarazzi!"; -GOTPLASMA = "Hai trovato un fucile al plasma!"; -GOTSHOTGUN = "Hai trovato un fucile!"; -GOTSHOTGUN2 = "Hai trovato una doppietta!"; -PD_BLUEO = "Ti serve una chiave blu per attivare questo oggetto"; -PD_REDO = "Ti serve una chiave rossa per attivare questo oggetto"; -PD_YELLOWO = "Ti serve una chiave gialla per attivare questo oggetto"; -PD_BLUEK = "Ti serve una chiave blu per aprire questa porta"; -PD_REDK = "Ti serve una chiave rossa per aprire questa porta"; -PD_YELLOWK = "Ti serve una chiave gialla per aprire questa porta"; -GGSAVED = "gioco salvato"; -HUSTR_MSGU = "[Messaggio non inviato]"; -PICKUP_PISTOL_DROPPED = "Raccolta una pistola."; - -// Level names -HUSTR_E1M1 = "E1M1: Hangar"; -HUSTR_E1M2 = "E1M2: Centrale Nucleare"; -HUSTR_E1M3 = "E1M3: Raffineria delle Tossine"; -HUSTR_E1M4 = "E1M4: Centrale di Comando"; -HUSTR_E1M5 = "E1M5: Laboratorio di Phobos"; -HUSTR_E1M6 = "E1M6: Zona Elaboratori"; -HUSTR_E1M7 = "E1M7: Stazione dei Computer"; -HUSTR_E1M8 = "E1M8: L'anomalia di Phobos"; -HUSTR_E1M9 = "E1M9: Base militare"; -HUSTR_E2M1 = "E2M1: L'anomalia di Deimos"; -HUSTR_E2M2 = "E2M2: Area di contenimento"; -HUSTR_E2M3 = "E2M3: Raffineria"; -HUSTR_E2M4 = "E2M4: Laboratorio di Deimos"; -HUSTR_E2M5 = "E2M5: Centro di Comando"; -HUSTR_E2M6 = "E2M6: Sale dei Dannati"; -HUSTR_E2M7 = "E2M7: Vasche di Riproduzione"; -HUSTR_E2M8 = "E2M8: Torre di Babele"; -HUSTR_E2M9 = "E2M9: Fortezza del Mistero"; -HUSTR_E3M1 = "E3M1: Bastioni dell'Inferno"; -HUSTR_E3M2 = "E3M2: Palude della Disperazione"; -HUSTR_E3M3 = "E3M3: Pandemonio"; -HUSTR_E3M4 = "E3M4: Casa del Dolore"; -HUSTR_E3M5 = "E3M5: Cattedrale Blasfema"; -HUSTR_E3M6 = "E3M6: Monte Erebus"; -HUSTR_E3M7 = "E3M7: Limbo"; -HUSTR_E3M8 = "E3M8: Dite"; -HUSTR_E3M9 = "E3M9: Le Garenne"; -HUSTR_E4M1 = "E4M1: L'inferno sotto"; -HUSTR_E4M2 = "E4M2: Odio Puro"; -HUSTR_E4M3 = "E4M3: Spezza il maligno"; -HUSTR_E4M4 = "E4M4: Male Ingovernabile"; -HUSTR_E4M5 = "E4M5: Essi si pentiranno"; -HUSTR_E4M6 = "E4M6: Contro di te Crudelmente"; -HUSTR_E4M7 = "E4M7: E l'inferno segui'"; -HUSTR_E4M8 = "E4M8: Verso il Crudele"; -HUSTR_E4M9 = "E4M9: Paura"; - -HUSTR_1 = "livello 1: ingresso"; -HUSTR_2 = "livello 2: sotterranei"; -HUSTR_3 = "livello 3: le forche"; -HUSTR_4 = "livello 4: l'epicentro"; -HUSTR_5 = "livello 5: i tunnel dei rifiuti"; -HUSTR_6 = "livello 6: la pressa"; -HUSTR_7 = "livello 7: morte pura"; -HUSTR_8 = "livello 8: trucchi e trappole"; -HUSTR_9 = "livello 9: il pozzo"; -HUSTR_10 = "livello 10: base di rifornimento"; -HUSTR_11 = "livello 11: 'o' della distruzione!"; -HUSTR_12 = "livello 12: la fabbrica"; -HUSTR_13 = "livello 13: periferia"; -HUSTR_14 = "livello 14: gli antri profondi"; -HUSTR_15 = "livello 15: zona industriale"; -HUSTR_16 = "livello 16: sobborghi"; -HUSTR_17 = "livello 17: possedimenti"; -HUSTR_18 = "livello 18: il cortile"; -HUSTR_19 = "livello 19: la cittadella"; -HUSTR_20 = "livello 20: preso!"; -HUSTR_21 = "livello 21: nirvana"; -HUSTR_22 = "livello 22: le catacombe"; -HUSTR_23 = "livello 23: barili del divertimento"; -HUSTR_24 = "livello 24: l'abisso"; -HUSTR_25 = "livello 25: cascate di sangue"; -HUSTR_26 = "livello 26: le miniere abbandonate"; -HUSTR_27 = "livello 27: casa dei mostri"; -HUSTR_28 = "livello 28: il mondo dello spirito"; -HUSTR_29 = "livello 29: la fine imminente"; -HUSTR_30 = "livello 30: icona del peccato"; -HUSTR_31 = "livello 31: wolfenstein"; -HUSTR_32 = "livello 32: grosse"; - -PHUSTR_1 = "livello 1: congo"; -PHUSTR_2 = "livello 2: pozzo delle anime"; -PHUSTR_3 = "livello 3: Aztec"; -PHUSTR_4 = "livello 4: Ingabbiato"; -PHUSTR_5 = "livello 5: Citta' Fantasma"; -PHUSTR_6 = "livello 6: la tana del barone"; -PHUSTR_7 = "livello 7: cortile prigione"; -PHUSTR_8 = "livello 8: reame"; -PHUSTR_9 = "livello 9: mattatoio"; -PHUSTR_10 = "livello 10: assalto"; -PHUSTR_11 = "livello 11: braccato"; -PHUSTR_12 = "livello 12: velocita'"; -PHUSTR_13 = "livello 13: la cripta"; -PHUSTR_14 = "livello 14: genesi"; -PHUSTR_15 = "livello 15: il crepuscolo"; -PHUSTR_16 = "livello 16: la visione"; -PHUSTR_17 = "livello 17: recinto"; -PHUSTR_18 = "livello 18: neurosfera"; -PHUSTR_19 = "livello 19: nme"; -PHUSTR_20 = "livello 20: il dominio della morte"; -PHUSTR_21 = "livello 21: assassino"; -PHUSTR_22 = "livello 22: missione impossibile"; -PHUSTR_23 = "livello 23: tombstone"; -PHUSTR_24 = "livello 24: la frontiera finale"; -PHUSTR_25 = "livello 25: il tempio dell'oscurita'"; -PHUSTR_26 = "livello 26: bunker"; -PHUSTR_27 = "livello 27: anticristo"; -PHUSTR_28 = "livello 28: le fogne"; -PHUSTR_29 = "livello 29: odissea di rumori"; -PHUSTR_30 = "livello 30: il cancello dell'inferno"; -PHUSTR_31 = "livello 31: cybergabbia"; -PHUSTR_32 = "livello 32: dacci dentro"; - -THUSTR_1 = "livello 1: controllo del sistema"; -THUSTR_2 = "livello 2: barbecue umano"; -THUSTR_3 = "livello 3: centrale energetica"; -THUSTR_4 = "livello 4: wormhole"; -THUSTR_5 = "livello 5: ganci"; -THUSTR_6 = "livello 6: stagione aperta"; -THUSTR_7 = "livello 7: prigione"; -THUSTR_8 = "livello 8: metallo"; -THUSTR_9 = "livello 9: fortezza"; -THUSTR_10 = "livello 10: redenzione"; -THUSTR_11 = "livello 11: impianto di stoccaggio"; -THUSTR_12 = "livello 12: cratere"; -THUSTR_13 = "livello 13: raffineria delle tossine"; -THUSTR_14 = "livello 14: acciaieria"; -THUSTR_15 = "livello 15: zona morta"; -THUSTR_16 = "livello 16: le profondita'"; -THUSTR_17 = "livello 17: area di elaborazione"; -THUSTR_18 = "livello 18: fabbrica"; -THUSTR_19 = "livello 19: consegna/respawn"; -THUSTR_20 = "livello 20: Centrale di elaborazione"; -THUSTR_21 = "livello 21: centro amministrativo"; -THUSTR_22 = "livello 22: habitat"; -THUSTR_23 = "livello 23: progetto minerario lunare"; -THUSTR_24 = "livello 24: caccia"; -THUSTR_25 = "livello 25: antro del barone"; -THUSTR_26 = "livello 26: ballistyx"; -THUSTR_27 = "livello 27: monte del dolore"; -THUSTR_28 = "livello 28: la grata"; -THUSTR_29 = "livello 29: fiume stige"; -THUSTR_30 = "livello 30: ultima chiamata"; -THUSTR_31 = "livello 31: faraone"; -THUSTR_32 = "livello 32: caraibi"; - -HUSTR_TALKTOSELF1 = "Pensi fra te e te"; -HUSTR_TALKTOSELF2 = "Chi c'e' li'?"; -HUSTR_TALKTOSELF3 = "Ti spaventi da solo"; -HUSTR_TALKTOSELF4 = "Inizi a delirare"; -HUSTR_TALKTOSELF5 = "Sei andato..."; -HUSTR_MESSAGESENT = "[Messaggio Inviato]"; - -AMSTR_FOLLOWON = "Mappa scorribile disattivata"; -AMSTR_FOLLOWOFF = "Mappa scorribile attivata"; -AMSTR_GRIDON = "Griglia Attivata"; -AMSTR_GRIDOFF = "Griglia Disattivata"; -AMSTR_MARKEDSPOT = "Posizione segnata"; -AMSTR_MARKSCLEARED = "Cancellati tutti i segni"; -STSTR_MUS = "Musica cambiata"; -STSTR_NOMUS = "SELEZIONE IMPOSSIBILE"; -STSTR_DQDON = "Invincibilita' attivata"; -STSTR_DQDOFF = "Invincibilita' disattivata"; -STSTR_KFAADDED = "Equipaggiamento Completato"; -STSTR_FAADDED = "Equipaggiamento Completato (senza chiavi)"; -STSTR_NCON = "No Clipping Attivato"; -STSTR_NCOFF = "No Clipping Disattivato"; -STSTR_BEHOLD = "inVuln, BerSerk, Invisib, Tuta anti-Rad, MAppa, o Amplif-Luce"; -STSTR_BEHOLDX = "Power-up concesso/tolto"; -STSTR_CHOPPERS = "Ora vai e segali tutti!"; -STSTR_CLEV = "Cambio di livello...\n"; -TXT_BUDDHAON = "Modalita' Buddha attivata"; -TXT_BUDDHAOFF = "Modalita' Buddha disattivata"; - -E1TEXT = - "Una volta che hai eliminato i cattivi e\n" - "liberato la base lunare dovresti aver\n" - "vinto, vero? Vero? Dove sono la tua\n" - "ricca ricompensa e il biglietto per\n" - "casa? Cosa diavolo e' questo? Non\n" - "avrebbe dovuto finire cosi'!\n" - "\n" - "Puzza come carne marcia, ma pare\n" - "essere la dispersa base di Deimos.\n" - "Pare proprio che tu sia approdato\n" - "sulle Coste dell'Inferno.\n" - "L'unica uscita ci passa in mezzo.\n" - "\n" - "Per continuare l'esperienza di DOOM\n" - "gioca 'The Shores of Hell' e il suo\n" - "incredibile seguito, 'Inferno'!\n"; -E2TEXT = - "Ce l'hai fatta! Il malvagio cyber-\n" - "demonio che governava la dispersa\n" - "base di Deimos e' stato ucciso e tu\n" - "sei trionfante! Ma... dove ti trovi?\n" - "Sali fino all'orlo della luna e\n" - "guardi giu' scoprendo l'orribile\n" - "verita'.\n" - "\n" - "Deimos fluttua sopra l'Inferno stesso!\n" - "Non hai mai sentito di nessuno fuggito\n" - "dall'Inferno, ma quei bastardi si\n" - "pentiranno di aver anche solo\n" - "sentito parlare di te!\n" - "Velocemente scendi verso la superficie\n" - "dell'Inferno.\n" - "\n" - "E' ora del capitolo finale di\n" - "DOOM! - 'Inferno'."; -E3TEXT = - "Il terribile demone-ragno che aveva\n" - "progettato l'invasione delle basi\n" - "lunari e causato cosi' tanta morte ha\n" - "sempre avuto i minuti contati.\n" - "\n" - "Una porta nascosta si apre ed entri.\n" - "Sei stato troppo forte perche' l'Inferno\n" - "ti fermasse ed ora l'Inferno gioca pulito\n" - "per una volta, perche' emergi dalla porta\n" - "per vedere i campi verdi della Terra!\n" - "Finalmente a casa.\n" - "\n" - "Ti chiedi cosa sia successo sulla\n" - "Terra mentre combattevi il male.\n" - "E' un bene che nessuna creatura dell'\n" - "Inferno sia passata per quella porta\n" - "con te..."; -E4TEXT = - "Il demone ragno doveva aver mandato\n" - "avanti le sue legioni infernali prima\n" - "del tuo confronto finale con quella\n" - "terribile bestia. Ma ti sei fatto avanti\n" - "e hai portato dannazione eterna e\n" - "sofferenza all'orda come un vero eroe\n" - "farebbe di fronte a qualcosa di cosi'\n" - "crudele.\n" - "\n" - "Inoltre, qualcuno doveva pagare per\n" - "quello che era successo a Daisy, la\n" - "tua coniglietta domestica.\n" - "\n" - "Ma ora vedi diffondersi davanti a te\n" - "ulteriori dolori e massacri mentre\n" - "una popolazione di demoni si sparge\n" - "furiosa per le nostre citta'.\n" - "\n" - "prossima fermata, l'Inferno in terra!"; -C1TEXT = - "SEI ENTRATO PROFONDAMENTE NEL SPAZIOPORTO\n" - "INFESTATO. MA QUALCOSA NON VA. I\n" - "MOSTRI HANNO PORTATO LA LORO REALTA'\n" - "CON SE' E LA TECNOLOGIA DELLO SPAZIOPORTO\n" - "E' SOVVERTITA DALLA LORO PRESENZA.\n" - "\n" - "PIU' AVANTI VEDI UN AVAMPOSTO DELL'INFERNO,\n" - "UNA ZONA FORTIFICATA. SE RIESCI A PASSARLA,\n" - "POTRAI PENETRARE NEL CUORE INFESTATO DELLA\n" - "STAZIONE SPAZIALE E TROVARE L'INTERRUTTORE\n" - "DI CONTROLLO CHE TIENE LA POPOLAZIONE \n" - "DELLA TERRA IN OSTAGGIO."; -C2TEXT = - "HAI VINTO! LA TUA VITTORIA HA PERMESSO\n" - "AL GENERE UMANO DI EVACUARE LA TERRA E\n" - "DI FUGGIRE DALL'INCUBO. ORA SEI IL SOLO\n" - "UMANO RIMASTO SULLA FACCIA DEL PIANETA.\n" - "MUTAZIONI CANNIBALI, ALIENI CARNIVORI E\n" - "SPIRITI MALVAGI SONO I TUOI SOLI VICINI.\n" - "TI SIEDI E ASPETTI LA MORTE, FELICE DI\n" - "AVER SALVATO LA TUA SPECIE.\n" - "\n" - "PROPRIO ALLORA, IL CONTROLLO DELLA TERRA\n" - "RIMANDA UN MESSAGGIO DALLO SPAZIO: \"I\n" - "SENSORI HANNO LOCALIZZATO LA FONTE \n" - "DELL'INVASIONE ALIENA. SE ANDRAI LI'\n" - "POTRAI FORSE BLOCCARE IL LORO\n" - "INGRESSO. LA BASE ALIENA E' NEL CUORE\n" - "DELLA TUA CITTA' NATALE, NON LONTANO\n" - "DALLO SPAZIOPORTO.\"\n" - "LENTAMENTE E DOLOROSAMENTE TI ALZI\n" - "E RITORNI ALLA BATTAGLIA."; -C3TEXT = - "SEI NEL CUORE INFESTATO DELLA CITTA',\n" - "CIRCONDATO DAI CORPI DEI TUOI NEMICI.\n" - "NON VEDI IL MODO DI DISTRUGGERE L'INGRESSO\n" - "DELLE CREATURE DA QUESTO LATO, COSI'\n" - "STRINGI I DENTI E TI CI BUTTI ATTRAVERSO.\n" - "\n" - "CI DEVE ESSERE UN MODO PER CHIUDERELO DALL'\n" - "ALTRO LATO. QUELLO CHE TI CHIEDI E' SE\n" - "DOVRAI ATTRAVERSARE L'INFERNO PER TROVARLO?"; -C4TEXT = - "L'ORRENDO VISO DEL DEMONE PIU' GROSSO\n" - "CHE TU ABBIA MAI VISTO SI SFASCIA DAVANTI\n" - "A TE, DOPO CHE HAI SPARATO I TUOI RAZZI\n" - "NEL SUO CERVELLO ESPOSTO. IL MOSTRO SI\n" - "CONTORCE E MUORE, LE SUE MEMBRA CHE SI\n" - "AGITANO DEVASTANO MIGLIA INDICIBILI\n" - "DELLA SUPERFICIE DELL'INFERNO.\n" - "\n" - "CE L'HAI FATTA. L'INVASIONE E' FINITA.\n" - "LA TERRA E' SALVA. L'INFERNO UNA ROVINA.\n" - "TI CHIEDI DOVE ANDRANNO I MALVAGI QUANDO\n" - "MORIRANNO, ORA. ASCIUGANDOTI IL SUDORE\n" - "DALLA FRONTE INIZI LA LUNGA STRADA PER\n" - "CASA.\n" - "RICOSTRUIRE LA TERRA DOVREBBE ESSERE\n" - "MOLTO PIU' DIVERTENTE DI QUANTO NON\n" - "LO SIA STATO DISTRUGGERLA\n"; -C5TEXT = - "CONGRATULAZIONI, HAI TROVATO IL LIVELLO\n" - "SEGRETO! SEMBRA ESSERE STATO EDIFICATO\n" - "DA UMANI PIU' CHE DA DEMONI. TI CHIEDI\n" - "CHI SIANO GLI ABITANTI DI QUESTO ANGOLO\n" - "DELL'INFERNO."; -C6TEXT = - "CONGRATULAZIONI, HAI TROVATO IL\n" - "LIVELLO SUPER SEGRETO! E' MEGLIO\n" - "CHE TU LO PERCORRA DI CORSA!\n"; -P1TEXT = - "Esulti sulla carcassa fumante del\n" - "Guardiano. con la sua morte hai estratto\n" - "l'Acceleratore dagli schifosi artigli\n" - "dell'inferno. Ti rilassi e guardi attorno.\n" - "Dannazione! Ci dovrebbe essere almeno un\n" - "prototipo funzionante, ma non riesci a\n" - "vederlo. I demoni devono averlo preso.\n" - "\n" - "Devi trovare il prototipo o tutti i tuoi\n" - "sforzi saranno stati vani. Continua a\n" - "muoverti, continua a combattere, continua\n" - "a uccidere. E continua a restare vivo."; -P2TEXT = - "Neanche il letale labirinto degli Arch-Vile\n" - "ti ha fermato e sei arrivato al prototipo\n" - "dell'acceleratore che viene disattivato\n" - "efficientemente e permanentemente.\n" - "\n" - "Sei bravo in questo genere di cose."; -P3TEXT = - "Ti sei aperto la via nel cuore del nido\n" - "dei demoni. E' ora di una missione\n" - "Cerca e Distruggi con obiettivo il\n" - "Guardiano del cancello le cui malvage\n" - "creature si riversano sulla Terra. Si',\n" - "e' malvagio, ma tu sai chi e' peggio!\n" - "\n" - "Sorridendo malignamente controlli il tuo\n" - "equipaggiamento e ti prepari a dare al\n" - "bastardo un piccolo inferno di tua fattura!"; -P4TEXT = - "Il viso del Guardiano e' sparso dappertutto\n" - "Mentre il suo corpo sbrindellato collassa\n" - "un cancello invertito si forma e risucchia\n" - "i resti dell'ultimo acceleratore\n" - "prototipo, per non parlare dei pochi demoni\n" - "rimanenti. Sei soddisfatto. L'Inferno\n" - "e' tornato a perseguitare i dannati invece\n" - "dei vivi. Ricordati di dire ai tuoi nipoti\n" - "di mettere un lanciarazzi nella tua\n" - "bara. Se andrai all'inferno quando\n" - "morirai, ne avrai bisogno per fare un\n" - "repulisti finale..."; -P5TEXT = - "Hai trovato il secondo livello piu' tosto\n" - "che abbiamo. Spero che tu abbia salvato uno\n" - "o due livelli fa. Se no, preparati a morire\n" - "in continuazione. Solo per marine veterani."; -P6TEXT = - "Scommetto che ti chiedevi quale fosse il\n" - "livello piu' duro che avessimo per te.\n" - "Adesso lo sai.\n" - "Nessuno ne esce vivo."; -T1TEXT = - "Ti sei aperto la via fuori dai laboratori\n" - "sperimentali infestati. Sembra che la UAC\n" - "abbia fatto il passo più lungo della gamba\n" - "di nuovo. Con questi continui turnover,\n" - "deve essere dura per la UAC comprare delle\n" - "polizze di assicurazione sulla vita degli\n" - "impiegati di questi tempi...\n" - "\n" - "Piu' avanti si trova il complesso militare,\n" - "ora infestato da orrori malati, ansiosi di\n" - "mettere i loro denti su di te. Con un po'\n" - "di fortuna nel complesso potrebbero ancora\n" - "esserci delle armi in giro."; -T2TEXT = - "Senti lo sferragliare di grossi macchinari\n" - "piu' avanti. Ti auguri che non stiano\n" - "producendo nuovi demoni, ma sei pronto per\n" - "farne fuori un intero branco se fosse\n" - "necessario.\n" - "Staranno progettando un'orgia di sangue,\n" - "ma ti senti forte come duecento pazzi\n" - "assiepati in un unico maniaco omicida.\n" - "\n" - "Non intendi farti battere facilmente."; -T3TEXT = - "Il panorama visibile sembra dannatamente\n" - "familiare. Ha pure un puzzo familiare, da\n" - "escrementi fritti. Non ti piaceva questo\n" - "posto prima e non pensi di fartelo piace-\n" - "re proprio adesso. Piu' ci pensi e piu'\n" - "diventi nervoso.\n" - "Soppesando l'arma, un sorriso maligno\n" - "si fa strada sul tuo volto.\n" - "E' ora di prendere un po' di nomi."; -T4TEXT = - "Improvvisamente tutto si fa silenzioso, da\n" - "un orizzonte all'altro. L'agonizzante eco\n" - "dell'inferno svanisce, il cielo da incubo\n" - "diventa blu, le pile dei cadaveri dei\n" - "mostri iniziano a evaporare con il maligno\n" - "fetore che riempiva l'aria. Diamine, forse\n" - "ce l'hai fatta. Hai davvero vinto?\n" - "\n" - "Qualcosa tuona distante.\n" - "Una luce bluastra inizia a brillare dentro\n" - "il cranio in rovina dello sputa-demoni."; -T5TEXT = - "E ora? Tutto sembra differente. Tipo\n" - "dimora del faraone Tutankamon. Be',\n" - "qualunque cosa ci sia qui non sara' peggio\n" - "del solito, o no? O forse sarebbe meglio\n" - "non disturbare le divinita' dormienti..."; -T6TEXT = - "Tempo di una vacanza. Hai percorso le\n" - "profondita' dell'inferno e sei pronto\n" - "per una pausa. Dici a te stesso che\n" - "forse qualcun altro puo' rompere la testa\n" - "ai demoni la prossima volta. Laggiu' c'e'\n" - "una cittadina tranquilla, con dell'acqua\n" - "che scorre pacifica, edifici pittoreschi\n" - "e probabilmente nessun demone.\n" - "\n" - "Mentre scendi dal trasporto senti il\n" - "tonfo del piede ferrato di un Cyberdemonio."; - -// Cast list (must appear in this order) -CC_ZOMBIE = "ZOMBIE MARINE"; -CC_SHOTGUN = "ZOMBIE SERGENTE"; -CC_HEAVY = "ZOMBIE COMMANDO"; -CC_IMP = "IMP"; -CC_DEMON = "DEMONE"; -CC_LOST = "ANIMA PERDUTA"; -CC_CACO = "CACODEMONE"; -CC_HELL = "CAVALIERE INFERNALE"; -CC_BARON = "BARONE INFERNALE"; -CC_ARACH = "ARACHNOTRON"; -CC_PAIN = "DOLORE ELEMENTALE"; -CC_REVEN = "REVENANT"; -CC_MANCU = "MANCUBO"; -CC_ARCH = "ARCH-VILE"; -CC_SPIDER = "IL CERVELLO RAGNO"; -CC_CYBER = "IL CYBERDEMONIO"; -CC_HERO = "IL NOSTRO EROE"; - -// New strings from BOOM -PD_BLUEC = "Ti serve una tessera blu per aprire questa porta"; -PD_REDC = "Ti serve una tessera rossa per aprire questa porta"; -PD_YELLOWC = "Ti serve una tessera gialla per aprire questa porta"; -PD_BLUES = "Ti serve una chiave-teschio blu per aprire questa porta"; -PD_REDS = "Ti serve una chiave-teschio rossa per aprire questa porta"; -PD_YELLOWS = "Ti serve una chiave-teschio gialla per aprire questa porta"; -PD_ANY = "Una chiave qualunque aprira' questa porta"; -PD_ALL3 = "Ti servono tutte e tre le chiavi per aprire questa porta"; -PD_ALL6 = "Ti servono tutte e sei le chiavi per aprire questa porta"; - -PD_ALL3O = "Ti servono tutte e tre le chiavi per attivare questo oggetto "; -PD_ALL6O = "Ti servono tutte e tre le chiavi per attivare questo oggetto "; -PD_BLUECO = "ti serve una tessera blu per attivare questo oggetto "; -PD_REDCO = "ti serve una tessera rossa per attivare questo oggetto "; -PD_YELLOWCO = "ti serve una tessera gialla per attivare questo oggetto "; -PD_BLUESO = "ti serve una chiave-teschio blu per attivare questo oggetto "; -PD_REDSO = "ti serve una chiave-teschio rossa per attivare questo oggetto "; -PD_YELLOWSO = "ti serve una chiave-teschio gialla per attivare questo oggetto "; - -PD_ALLKEYS = "Ti servono tutte le chiavi"; - - -// Gameflow messages -TXT_FRAGLIMIT = "Fraglimit raggiunto."; -TXT_TIMELIMIT = "Timelimit raggiunto."; - -// Spree messages -SPREEKILLSELF = "%o stava andando bene finche' non si e' ucciso da solo!"; -SPREEOVER = "La sequela di frag di %o e' stata terminata da %k"; -SPREE5 = "%k e' preda di un momento omicida!"; -SPREE10 = "%k sta facendo un massacro!"; -SPREE15 = "%k sta dominando tutti!"; -SPREE20 = "%k e' inarrestabile!"; -SPREE25 = "%k e' un dio!"; - -// Mulitkill messages -MULTI2 = "Frag doppio!"; -MULTI3 = "Frag multiplo!"; -MULTI4 = "Frag ultra!"; -MULTI5 = "Frag DA PAURA!"; -//MULTI2 = "Double kill!"; -//MULTI3 = "Multi kill!"; -//MULTI4 = "Ultra kill!"; -//MULTI5 = "Monster kill!"; - -// Obituary strings -// First the self-kills, then the other-kills -OB_SUICIDE = "%o si e' suicidato."; -OB_FALLING = "%o e' caduto troppo in basso."; -OB_CRUSH = "%o e' stato schiacciato."; -OB_EXIT = "%o ha provato a uscire."; -OB_WATER = "%o non sapeva nuotare."; -OB_SLIME = "%o e' mutato."; -OB_LAVA = "%o si e' sciolto."; -OB_BARREL = "%o ha fatto bum."; -OB_SPLASH = "%o si e' trovato nel posto sbagliato."; -OB_R_SPLASH = "%o avrebbe dovuto allontanarsi."; -OB_ROCKET = "%o avrebbe dovuto allontanarsi."; -OB_KILLEDSELF = "%o ha ucciso se stesso."; -OB_VOODOO = "%o e' stato ucciso dalla potenza del voodoo."; - -OB_STEALTHBABY = "a %o sembrava di aver visto un arachnotron."; -OB_STEALTHVILE = "a %o sembrava di aver visto un Arch-Vile."; -OB_STEALTHBARON = "a %o sembrava di aver visto un Barone Infernale."; -OB_STEALTHCACO = "a %o sembrava di aver visto un cacodemone."; -OB_STEALTHCHAINGUY = "a %o sembrava di aver visto uno zombie commando."; -OB_STEALTHDEMON = "a %o sembrava di aver visto un demone."; -OB_STEALTHKNIGHT = "a %o sembrava di aver visto un Cavaliere Infernale."; -OB_STEALTHIMP = "a %o sembrava di aver visto un imp."; -OB_STEALTHFATSO = "a %o sembrava di aver visto un mancubo."; -OB_STEALTHUNDEAD = "a %o sembrava di aver visto un revenant."; -OB_STEALTHSHOTGUY = "a %o sembrava di aver visto un sergente."; -OB_STEALTHZOMBIE = "a %o sembrava di aver visto uno zombie."; -OB_UNDEADHIT = "%o e' stato massacrato da un revenant."; -OB_IMPHIT = "%o e' stato squarciato da un imp."; -OB_CACOHIT = "%o si e' avvicinato troppo a un cacodemone."; -OB_DEMONHIT = "%o e' stato sbranato da un demone."; -OB_SPECTREHIT = "%o e' stato divorato da uno spettro."; -OB_BARONHIT = "%o e' stato scoperchiato da un Barone dell'Inferno."; -OB_KNIGHTHIT = "%o e' stato sbudellato da un Cavaliere dell'Inferno."; -OB_ZOMBIE = "%o e' stato ucciso da uno zombie."; -OB_SHOTGUY = "%o e' sato impallinato da un sergente."; -OB_VILE = "%o e' stato incenerito da un arch-vile."; -OB_UNDEAD = "%o non ha potuto evitare il missile di un revenant."; -OB_FATSO = "%o e' stato disintegrato da un mancubo."; -OB_CHAINGUY = "%o e' stato perforato da uno zombie commando."; -OB_SKULL = "%o e' stato spaventato a morte da un'Anima Perduta."; -OB_IMP = "%o e' stato bruciato da un imp."; -OB_CACO = "%o e' stato abbattuto da un cacodemone."; -OB_BARON = "%o e' stato scorticato da un Barone Infernale."; -OB_KNIGHT = "%o e' stato squartato da un Cavaliere Infernale."; -OB_SPIDER = "%o e' stato soggiogato dal Cervello Ragno."; -OB_BABY = "%o ha permesso che un arachnotron l'uccidesse."; -OB_CYBORG = "%o e' stato spiaccicato da un Cyberdemonio."; -OB_WOLFSS = "%o ha incontrato un Nazista."; - -OB_DOG = "%o e' stato sbranato da un cane."; -OB_CHICKEN = "%o e' stato beccato a morte."; -OB_BEAST = "%o e' stato carbonizzato da una bestia."; -OB_CLINK = "%o e' stato squarciato da un lapillo."; -OB_DSPARIL1 = "%o e' stato bruciato dal serpente di D'Sparil."; -OB_DSPARIL1HIT = "%o e' stato masticato dal serpente di D'Sparil."; -OB_DSPARIL2 = "%o non era all'altezza di D'Sparil."; -OB_DSPARIL2HIT = "%o e' stato abbattuto da D'Sparil."; -OB_HERETICIMP = "%o e' stato terrorizzato da un imp."; -OB_HERETICIMPHIT = "%o e' stato eliminato da un imp."; -OB_IRONLICH = "%o e' stato devastato da un ironlich."; -OB_IRONLICHHIT = "%o e' andato troppo vicino a un ironlich."; -OB_BONEKNIGHT = "%o e' stato accettato da un cavaliere."; -OB_BONEKNIGHTHIT = "%o e' stato ucciso da un cavaliere."; -OB_MUMMY = "%o e' stato schiacciato da una mummia."; -OB_MUMMYLEADER = "%o e' stato stroncato da una mummia."; -OB_SNAKE = "%o e' stato stritolato da un serpente."; -OB_WIZARD = "%o e' stato maledetto da un mago."; -OB_WIZARDHIT = "%o e' stato toccato da un mago."; - -OB_MPFIST = "%o si e' schiantato contro il pugno di %k."; -OB_MPCHAINSAW = "%o e' stato falciato dalla motosega di %k."; -OB_MPPISTOL = "%o e' stato sforacchiato dalla pistola di %k'."; -OB_MPSHOTGUN = "%o si e' trovato davanti il fucile di %k."; -OB_MPSSHOTGUN = "%o e' stato smembrato dalla doppietta di %k."; -OB_MPCHAINGUN = "%o e' stato falciato dal mitragliatore di %k."; -OB_MPROCKET = "%o ha cavalcato il razzo di %k."; -OB_MPR_SPLASH = "%o aveva quasi schivato il razzo di %k."; -OB_MPPLASMARIFLE = "%o e' stato fuso dal fucile al plasma di %k."; -OB_MPBFG_BOOM = "%o e' stato sminuzzato dal BFG di %k."; -OB_MPBFG_SPLASH = "%o non poteva nascondersi dal BFG di %k."; -OB_MPTELEFRAG = "%o e' stato telefraggato da %k."; -OB_RAILGUN = "%o e' stato bucherellato dal railgun di %k."; - -// Same as OB_MPTELEFRAG, but shown when a monster telefrags you -OB_MONTELEFRAG = "%o si e' fatto telefraggare."; - -OB_DEFAULT = "%o e' morto."; -OB_FRIENDLY1 = "%k falcia via un compagno."; -OB_FRIENDLY2 = "%k si controlla gli occhiali."; -OB_FRIENDLY3 = "%k regala un frag all'altro team."; -OB_FRIENDLY4 = "%k perde un altro amico."; - -SAVEGAMENAME = "zdoomsv"; -STARTUP1 = ""; -STARTUP2 = ""; -STARTUP3 = ""; -STARTUP4 = ""; -STARTUP5 = ""; - -// Heretic strings -HE1TEXT = - "con la distruzione degli iron lich\n" - "e dei loro servi, gli ultimi non-\n" - "morti vengono rimossi da questo\n" - "piano dell'esistenza.\n\n" - "quelle creature dovevano venire da\n" - "qualche parte, pensi, e hai il\n" - "sospetto che l'ardente portale\n" - "delle fauci dell'inferno si apra\n" - "sul loro posto di provenienza.\n\n" - "per assicurarti che altri non-morti\n" - "(o altro di peggio) non vi passino\n" - "attraverso, devi sigillare la porta\n" - "dell'inferno dall'altro lato.\n" - "certo, questo significa che rischi\n" - "rimanere bloccato in un posto poco\n" - "amichevole, ma chi ha detto che\n" - "essere un eretico fosse facile!"; -HE2TEXT = - "nemmeno i possenti maulotaur erano\n" - "alla tua altezza e mentre le loro\n" - "carcasse fumanti cadono al suolo\n" - "provi una feroce soddisfazione\n" - "nell'averli distrutti.\n\n" - "i portali cui facevano la guardia\n" - "si sono aperti rivelando quella che\n" - "speri sia la via di casa. ma mentre\n" - "la attraversi, odi risa di scherno\n" - "echeggiare nelle tue orecchie.\n\n" - "una qualche altra forza controllava\n" - "i maulotaur? che possano esserci\n" - "altri piu' spaventosi esseri oltre\n" - "questo portale? il baluginio di una\n" - "volta cristallina la' dove dovrebbe\n" - "esserci il cielo non e' certo un\n" - "buon segno..."; -HE3TEXT = - "la morte di d'sparil ha spezzato i\n" - "magici legami che tenevano le sue\n" - "creature in questa dimensione, e i\n" - "loro lamenti di morte coprono le\n" - "sue urla di agonia.\n\n" - "il tuo voto di vendetta e' sciolto,\n" - "ed entri nel portale che conduce al\n" - "tuo mondo pochi secondi prima che\n" - "la cupola vada in mille pezzi.\n\n" - "ma se il potere di d'sparil e'\n" - "infranto per sempre, perche' non ti\n" - "senti al sicuro? e' a causa del suo\n" - "ultimo urlo prima di morire, quello\n" - "che suonava come una maledizione? o\n" - "un'invocazione? non puoi esserne\n" - "certo, poteva essere solo un urlo.\n\n" - "ma allora, cosa ne e' degli altri\n" - "serpent rider?"; -HE4TEXT = - "pensavi di tornare nel tuo mondo\n" - "dopo la morte di d'sparil, ma il\n" - "il suo ultimo atto ti ha esiliato\n" - "in questo posto. sei quindi entrato\n" - "nei resti infranti delle terre\n" - "conquistate da d'sparil. Ne hai poi\n" - "abbattuto gli ultimi guardiani,\n" - "ma ora ti trovi davanti ai cancelli\n" - "della fortezza di d'sparil. finora\n" - "non avevi avuto dubbi sulla tua\n" - "abilita' nel fronteggiare di tutto,\n" - "ma oltre questo portale si trova\n" - "il cuore del male che ha invaso\n" - "il tuo mondo. d'sparil sara' anche\n" - "morto, ma il pozzo dove e' apparso\n" - "esiste ancora. devi entrare in quel\n" - "pozzo nella speranza di trovare\n" - "un'uscita. e da qualche parte,\n" - "negli oscuri angoli del dominio\n" - "di d'sparil le sue guardie del\n" - "corpo aspettano il tuo arrivo..."; -HE5TEXT = - "mentre l'ultimo maulotaur muggisce\n" - "agonizzante, comprendi che non eri\n" - "mai stato cosi' vicino alla tua\n" - "distruzione. nemmeno la lotta con\n" - "d'sparil e i suoi discepoli fu\n" - "cosi' disperata. triste, guardi i\n" - "cancelli che ti si aprono innanzi,\n" - "chiedendoti se portino a casa o se\n" - "conducano a un altro inimmaginabile\n" - "orrore. ti chiedi se avrai la forza\n" - "di andare avanti, se niente tranne\n" - "dolore e morte ti attendano, ma che\n" - "altro puoi fare se la forza di\n" - "combattere se ne va? puoi sforzarti\n" - "di continuare, nonostante la\n" - "disperazione?\n" - "ne hai il coraggio? decidi infine\n" - "che non e' da te arrendersi senza\n" - "combattere. ad occhi aperti\n" - "vai incontro al tuo destino."; - -// EPISODE 1 - LA CITTA' DEI DANNATI -HHUSTR_E1M1 = "IL MOLO"; -HHUSTR_E1M2 = "I SOTTERRANEI"; -HHUSTR_E1M3 = "L'INGRESSO"; -HHUSTR_E1M4 = "LA TORRE DI GUARDIA"; -HHUSTR_E1M5 = "LA CITTADELLA"; -HHUSTR_E1M6 = "LA CATTEDRALE"; -HHUSTR_E1M7 = "LE CRIPTE"; -HHUSTR_E1M8 = "LA BOCCA DELL'INFERNO"; -HHUSTR_E1M9 = "IL CIMITERO"; - -// EPISODE 2 - LA BOCCA DELL'INFERNO -HHUSTR_E2M1 = "IL CRATERE"; -HHUSTR_E2M2 = "I POZZI DELLA LAVA"; -HHUSTR_E2M3 = "IL FIUME DI FUOCO"; -HHUSTR_E2M4 = "LA GROTTA DEL GHIACCIO"; -HHUSTR_E2M5 = "LE CATACOMBE"; -HHUSTR_E2M6 = "IL LABIRINTO"; -HHUSTR_E2M7 = "LA GRANDE SALA"; -HHUSTR_E2M8 = "I PORTALI DEL CAOS"; -HHUSTR_E2M9 = "IL GHIACCIAIO"; - -// EPISODE 3 - LA CUPOLA DI D'SPARIL -HHUSTR_E3M1 = "IL MAGAZZINO"; -HHUSTR_E3M2 = "IL POZZO NERO"; -HHUSTR_E3M3 = "LA CONFLUENZA"; -HHUSTR_E3M4 = "LA FORTEZZA AZZURRA"; -HHUSTR_E3M5 = "L'ANTRO DEGLI OPHIDIAN"; -HHUSTR_E3M6 = "LE SALE DELLA PAURA"; -HHUSTR_E3M7 = "L'ABISSO"; -HHUSTR_E3M8 = "LA DIMORA DI D'SPARIL"; -HHUSTR_E3M9 = "L'ACQUEDOTTO"; - -// EPISODE 4: L'OSSARIO -HHUSTR_E4M1 = "CATAFALCO"; -HHUSTR_E4M2 = "BLOCCO DI CASE"; -HHUSTR_E4M3 = "AMBULATORIO"; -HHUSTR_E4M4 = "SEPOLCRO"; -HHUSTR_E4M5 = "GRANDE SCALA"; -HHUSTR_E4M6 = "SALE DELL'APOSTATA"; -HHUSTR_E4M7 = "TORRIONI DELLA PERDIZIONE"; -HHUSTR_E4M8 = "PONTE DISTRUTTO"; -HHUSTR_E4M9 = "MAUSOLEO"; - -// EPISODE 5: I POSSEDIMENTI STAGNANTI -HHUSTR_E5M1 = "COLLINE OCRA"; -HHUSTR_E5M2 = "RAPIDE"; -HHUSTR_E5M3 = "BANCHINA"; -HHUSTR_E5M4 = "CORTILE"; -HHUSTR_E5M5 = "HYDRATYR"; -HHUSTR_E5M6 = "COLONNATO"; -HHUSTR_E5M7 = "FETIDO CASTELLO"; -HHUSTR_E5M8 = "CAMPO DEL GIUDIZIO"; -HHUSTR_E5M9 = "GROVIGLIO DI D'SPARIL"; - -// Keys - -TXT_GOTBLUEKEY = "CHIAVE BLU"; -TXT_GOTYELLOWKEY = "CHIAVE GIALLA"; -TXT_GOTGREENKEY = "CHIAVE VERDE"; - -// Artifacts - -TXT_ARTIHEALTH = "AMPOLLA DI QUARZO"; -TXT_ARTIFLY = "ALI DELLA RABBIA"; -TXT_ARTIINVULNERABILITY = "ANELLO DELL'INVINCIBILITA'"; -TXT_ARTITOMEOFPOWER = "LIBRO DEL POTERE"; -TXT_ARTIINVISIBILITY = "SFERA DELL'OMBRA"; -TXT_ARTIEGG = "UOVO DELLA METAMORFOSI"; -TXT_ARTISUPERHEALTH = "URNA MISTICA"; -TXT_ARTITORCH = "TORCIA"; -TXT_ARTIFIREBOMB = "BOMBA A TEMPO DEGLI ANTICHI"; -TXT_ARTITELEPORT = "STRUMENTO DEL CAOS"; - -// Items - -TXT_ITEMHEALTH = "FIALA DI CRISTALLO"; -TXT_ITEMBAGOFHOLDING = "BORSA PORTAOGGETTI"; -TXT_ITEMSHIELD1 = "SCUDO D'ARGENTO"; -TXT_ITEMSHIELD2 = "SCUDO INCANTATO"; -TXT_ITEMSUPERMAP = "MAPPA"; - -// Ammo - -TXT_AMMOGOLDWAND1 = "BACCHETTA DI CRISTALLO"; -TXT_AMMOGOLDWAND2 = "GEOIDE DI CRISTALLO"; -TXT_AMMOMACE1 = "SFERE PER MAZZA"; -TXT_AMMOMACE2 = "PILA DI SFERE PER MAZZA"; -TXT_AMMOCROSSBOW1 = "FRECCIE ETEREE"; -TXT_AMMOCROSSBOW2 = "FARETRA DI FRECCIE ETEREE"; -TXT_AMMOBLASTER1 = "GLOBO ARTIGLIATO"; -TXT_AMMOBLASTER2 = "GLOBO DI ENERGIA"; -TXT_AMMOSKULLROD1 = "RUNE INFERIORI"; -TXT_AMMOSKULLROD2 = "RUNE SUPERIORI"; -TXT_AMMOPHOENIXROD1 = "GLOBO DI FUOCO"; -TXT_AMMOPHOENIXROD2 = "GLOBO INFERNALE"; - -// Weapons - -TXT_WPNMACE = "MAZZA DI FUOCO"; -TXT_WPNCROSSBOW = "BALESTRA ETEREA"; -TXT_WPNBLASTER = "ARTIGLIO DEL DRAGO"; -TXT_WPNSKULLROD = "BASTONE INFERNALE"; -TXT_WPNPHOENIXROD = "SFERA DELLA FENICE"; -TXT_WPNGAUNTLETS = "GUANTI DEL NEGROMANTE"; - -TXT_NEEDBLUEKEY = "TI SERVE UNA CHIAVE BLU PER APRIRE QUESTA PORTA"; -TXT_NEEDGREENKEY = "TI SERVE UNA CHIAVE VERDE PER APRIRE QUESTA PORTA"; -TXT_NEEDYELLOWKEY = "TI SERVE UNA CHIAVE GIALLA PER APRIRE QUESTA PORTA"; - -TXT_CHEATHEALTH = "ENERGIA COMPLETA"; -TXT_CHEATKEYS = "TUTTE LE CHIAVI"; -TXT_CHEATSOUNDON = "DEBUG DEL SUONO ATTIVATO"; -TXT_CHEATSOUNDOFF = "DEBUG DEL SUONO DISATTIVATO"; -TXT_CHEATIDDQD = "CERCHI DI BARARE, EH? ALLORA MUORI!"; -TXT_CHEATIDKFA = "BARO - NON MERITI ARMI!"; -TXT_CHEATTICKERON = "TICKER ATTIVATO"; -TXT_CHEATTICKEROFF = "TICKER DISATTIVATO"; -TXT_CHEATARTIFACTS3 = "CONCESSO"; - -RAVENQUITMSG = "SEI SICURO DI VOLER ABBANDONARE?"; - -// Hexen strings - -// Mana - -TXT_MANA_1 = "MANA BLU"; -TXT_MANA_2 = "MANA VERDE"; -TXT_MANA_BOTH = "MANA MISTO"; - -// Keys - -TXT_KEY_STEEL = "CHIAVE D'ACCIAIO"; -TXT_KEY_CAVE = "CHIAVE DELLA CAVERNA"; -TXT_KEY_AXE = "CHIAVE DELL'ASCIA"; -TXT_KEY_FIRE = "CHIAVE DEL FUOCO"; -TXT_KEY_EMERALD = "CHIAVE DI SMERALDO"; -TXT_KEY_DUNGEON = "CHIAVE DEL DUNGEON"; -TXT_KEY_SILVER = "CHIAVE D'ARGENTO"; -TXT_KEY_RUSTED = "CHIAVE ARRUGGINITA"; -TXT_KEY_HORN = "CHIAVE DEL CORNO"; -TXT_KEY_SWAMP = "CHIAVE DELLA PALUDE"; -TXT_KEY_CASTLE = "CHIAVE DEL CASTELLO"; - -// Artifacts - -TXT_ARTIINVULNERABILITY2 = "ICONA DEL DIFENSORE"; -TXT_ARTISUMMON = "SERVITORE OSCURO"; -TXT_ARTIEGG2 = "MAIALIZZATORE"; -TXT_ARTIPOISONBAG = "FIASCHETTA"; -TXT_ARTITELEPORTOTHER = "ARTIFATTO DELL'ESILIO"; -TXT_ARTISPEED = "STIVALI DELLA VELOCITA'"; -TXT_ARTIBOOSTMANA = "CRATERE DELLA FORZA"; -TXT_ARTIBOOSTARMOR = "BRACCIALI IN PELLE DI DRAGO"; -TXT_ARTIBLASTRADIUS = "DISCO DELLA REPULSIONE"; -TXT_ARTIHEALINGRADIUS = "CONFINE MISTICO"; - -// Puzzle artifacts - -TXT_ARTIPUZZSKULL = "TESCHIO DI YORICK"; -TXT_ARTIPUZZGEMBIG = "CUORE DI D'SPARIL"; -TXT_ARTIPUZZGEMRED = "PIANETA DI RUBINO"; -TXT_ARTIPUZZGEMGREEN1 = "PIANETA DI SMERALDO"; -TXT_ARTIPUZZGEMGREEN2 = "PIANETA DI SMERALDO"; -TXT_ARTIPUZZGEMBLUE1 = "PIANETA DI ZAFFIRO"; -TXT_ARTIPUZZGEMBLUE2 = "PIANETA DI ZAFFIRO"; -TXT_ARTIPUZZBOOK1 = "DAEMON CODEX"; -TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; -TXT_ARTIPUZZSKULL2 = "MASCHERA DELLA FIAMMA"; -TXT_ARTIPUZZFWEAPON = "SIGILLO DEL BRANDO"; -TXT_ARTIPUZZCWEAPON = "RELIQUIA SACRA"; -TXT_ARTIPUZZMWEAPON = "SUGELLO DEL MAGUS"; -TXT_ARTIPUZZGEAR = "INGRANAGGIO D'OROLOGIO"; -TXT_USEPUZZLEFAILED = "NON PUOI USARE QUESTO OGGETTO QUI"; - -// Items - -TXT_ARMOR1 = "MAGLIA METALLICA"; -TXT_ARMOR2 = "SCUDO DEL FALCO"; -TXT_ARMOR3 = "ELMO DI PLATINO"; -TXT_ARMOR4 = "AMULETO DI PROTEZIONE"; - -// Weapons - -TXT_WEAPON_F2 = "ASCIA DI TIMONE"; -TXT_WEAPON_F3 = "MARTELLO DELLA RETRIBUZIONE"; -TXT_WEAPON_F4 = "QUIETUS ASSEMBLATO"; -TXT_WEAPON_C2 = "BASTONE DEL SERPENTE"; -TXT_WEAPON_C3 = "TEMPESTA DI FUOCO"; -TXT_WEAPON_C4 = "VERGA DELLA FURIA ASSEMBLATA"; -TXT_WEAPON_M2 = "FRANTUMI GELATI"; -TXT_WEAPON_M3 = "ARCO DELLA MORTE"; -TXT_WEAPON_M4 = "FLAGELLO DI SANGUE ASSEMBLATO"; -TXT_QUIETUS_PIECE = "PARTE DEL QUIETUS"; -TXT_WRAITHVERGE_PIECE = "PARTE DELLA VERGA DELLA FURIA"; -TXT_BLOODSCOURGE_PIECE = "PARTE DEL FLAGELLO DI SANGUE"; - - -// Bloodbath announcer - -BBA_BONED = "%k ha dissossato %o come un pesce"; -BBA_CASTRA = "%k ha castrato %o"; -BBA_CREAMED = "%k ha cremato %o"; -BBA_DECIMAT = "%k ha decimato %o"; -BBA_DESTRO = "%k ha distrutto %o"; -BBA_DICED = "%k ha tagliato a cubetti %o"; -BBA_DISEMBO = "%k ha smembrato %o"; -BBA_FLATTE = "%k ha schiacciato %o"; -BBA_JUSTICE = "%k da' a %o Giustizia Anale"; -BBA_MADNESS = "%k da' FoLlIa AnAle a %o"; -BBA_KILLED = "%k ha ucciso %o"; -BBA_MINCMEAT = "%k ha triturato %o"; -BBA_MASSACR = "%k ha massacrato %o"; -BBA_MUTILA = "%k ha mutilato %o"; -BBA_REAMED = "%k ha squartato %o"; -BBA_RIPPED = "%k ha aperto a %o un altro orifizio"; -BBA_SLAUGHT = "%k ha macellato %o"; -BBA_SMASHED = "%k ha colpito %o"; -BBA_SODOMIZ = "%k ha sodomizzato %o"; -BBA_SPLATT = "%k ha spiaccicato %o"; -BBA_SQUASH = "%k ha schiacciato %o"; -BBA_THROTTL = "%k ha strozzato %o"; -BBA_WASTED = "%k ha distrutto %o"; -BBA_BODYBAG = "%k ha mandato %o all'obitorio"; -BBA_HELL = "%k ha spedito all'Inferno %o"; -BBA_TOAST = "%k ha arrostito %o"; -BBA_SNUFF = "%k ha spento %o"; -BBA_HOSED = "%k l'ha fatta sopra %o"; -BBA_SPRAYED = "%k ha vaporizzato %o"; -BBA_DOGMEAT = "%k ha fatto polpette di %o"; -BBA_BEATEN = "%k ha battuto %o come un cane"; - -BBA_EXCREMENT = "%o e' un escremento"; -BBA_HAMBURGER = "%o e' un hamburger"; -BBA_SCROTUM = "%o ha subito la separazione dello scroto"; -BBA_POPULATION = "%o si e' offerto per il controllo della popolazione"; -BBA_SUICIDE = "%o si e' suicidato"; -BBA_DARWIN = "%o ha ricevuto il Darwin Award"; - -// Chex Quest Strings -CHUSTR_E1M1 = "E1M1: Zona di Atterraggio"; -CHUSTR_E1M2 = "E1M2: Struttura di Immagazzinamento"; -CHUSTR_E1M3 = "E1M3: Laboratorio Sperimentale"; -CHUSTR_E1M4 = "E1M4: Arboreto"; -CHUSTR_E1M5 = "E1M5: Caverne di Bazoik"; - -CE1TEXT = - "Missione compiuta.\n" - "\n" - "Sei preparato per la prossima missione?\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "Premi il tasto 'esc' per continuare..."; - -CE2TEXT = "Ce l'hai fatta!"; -CE3TEXT = "Meraviglioso!"; -CE4TEXT = "Fantastico"; - -CLOADNET = "non puoi caricare una quest durante una net quest!\n\npress a key."; -$ifgame(chex) QSPROMPT = "sovrascrivere il salvataggio\n\n'%s'?\n\npremi y oppure n."; -$ifgame(chex) QLOADNET = "non puoi fare un quickload durante una netquest!\n\npremi un tasto."; -$ifgame(chex) QLPROMPT = "vuoi fare un quickload della quest\n\n'%s'?\n\npremi y oppure n."; -CNEWGAME = "non puoi iniziare una nuova quest\ndurante una quest in rete.\n\npremi un tasto."; - -CNIGHTMARE = "Attento, sara' dura.\nVuoi continuare?\n\npremi y oppure n."; - -$ifgame(chex) NETEND = "non puoi terminare una netquest!\n\npremi un tasto"; -$ifgame(chex) ENDGAME = "sei sicuro di voler terminare la quest?\n\npremi y oppure n."; - -GOTCHEXARMOR = "Raccolta un'Armatura Chex(R)."; -GOTSUPERCHEXARMOR = "Raccolta la Super Armatura Chex(R)!"; -GOTWATER = "Raccolto un bicchiere d'acqua."; -GOTREPELLENT = "Raccolto del repellente allo slime."; -GOTBREAKFAST = "Colazione da supercarica!"; -GOTCBLUEKEY = "Raccolta una chiave blu."; -GOTCYELLOWKEY = "Raccolta una chiave gialla."; -GOTCREDKEY = "Raccolta una chiave rossa."; -GOTFRUIT = "Raccolto un vassoio di frutta."; -GOTVEGETABLESNEED = "La verdura ti fa DAVVERO bene!"; -GOTVEGETABLES = "Raccolto un vassoio di verdura."; -GOTSLIMESUIT = "Raccolto un vestito a prova di slime"; -GOTCHEXMAP = "Trovata una mappa computerizzata"; - -GOTZORCHRECHARGE = "Raccolta una ricarica di mini zorch."; -GOTMINIZORCHPACK = "Raccolta una scatola di mini zorch."; -GOTPROPULSORRECHARGE = "Raccolta una ricarica di zorch a propulsione."; -GOTPROPULSORPACK = "Raccolta una scatola di zorch a propulsione."; -GOTPHASINGZORCHERRECHARGE = "Raccolta una ricarica per zorcher a phasing"; -GOTPHASINGZORCHERPACK = "Raccolta una scatola per zorcher a phasing."; -GOTLARGEZORCHERRECHARGE = "Raccolta una ricarica per zorcher grande."; -GOTLARGEZORCHERPACK = "Raccolta una scatola per zorcher grande."; -GOTZORCHPACK = "Raccolto uno ZorchZaino!"; - -GOTLAZDEVICE = "Hai trovato il dispositivo LAZ! Cavolo!"; -GOTRAPIDZORCHER = "Hai trovato il zorcher rapido!"; -GOTSUPERBOOTSPORK = "Hai trovato il super bootspork!"; -GOTZORCHPROPULSOR = "Hai trovato il propulsore zorch!"; -GOTPHASINGZORCHER = "Hai trovato il zorcher a phasing!"; -GOTLARGEZORCHER = "Hai trovato il zorcher grande!"; -GOTSUPERLARGEZORCHER = "Hai trovato il mega zorcher!"; -GOTMINIZORCHER = "Raccolto un mini zorcher."; - -$ifgame(chex) STSTR_DQDON = "Modalita' invincibile attivata"; -$ifgame(chex) STSTR_DQDOFF = "Modalita' invincibile disattivata"; -$ifgame(chex) STSTR_FAADDED = "Zorch aggiunto"; -$ifgame(chex) STSTR_KFAADDED = "Super Zorch aggiunto"; -$ifgame(chex) STSTR_CHOPPERS = "... Mangia Chex(R)!"; - -OB_COMMONUS = "%o e' stato coperto di slime da un flemoid."; -OB_BIPEDICUS = "%o e' stato coperto di slime da un bipedicus."; -OB_BIPEDICUS2 = "%o e' stato coperto di slime da un bipedicus corazzato."; -OB_CYCLOPTIS = "%o e' stato coperto di slime da un cycloptis."; -OB_FLEMBRANE = "%o e' stato sconfitto dalla Flembrana."; - -OB_MPSPOON = "%o e' stato imboccato da %k."; -OB_MPBOOTSPORK = "%o e' stato mischiato ben bene dal bootspork di %k."; -OB_MPZORCH = "%o e' stato zorchato da %k."; -OB_MPMEGAZORCH = "%o e' stato colpito dal mega-zorcher di %k."; -OB_MPRAPIDZORCH = "%o e' stato rapid-zorchato da %k."; -OB_MPPROPULSOR = "%o e' stato zorchato dal propulsore di %k."; -OB_MPP_SPLASH = "%o e' stato colpito dal propulsore di %k."; -OB_MPPHASEZORCH = "%o e' stato phase-zorchato da %k."; -OB_MPLAZ_BOOM = "%o e' stato preda del dispositivo LAZ di %k."; -OB_MPLAZ_SPLASH = "%o e' stato lazzato da %k."; diff --git a/wadsrc/static/language.ptb b/wadsrc/static/language.ptb deleted file mode 100644 index d46e1681f..000000000 --- a/wadsrc/static/language.ptb +++ /dev/null @@ -1,1732 +0,0 @@ -/* Português Brasileiro. Feito por Patryck Padilha de Oliveira */ -/* Não está totalmente completo */ -/* Doom está traduzido 100% */ -/* Chex(R) Quest traduzido 100% */ -/* Heretic 75% traduzido (algumas telas ainda faltam) */ -/* Hexen ainda não traduzido */ -/* Strife totalmente traduzido neste arquivo, certas partes não serão implementadas no ZDoom */ -/* Plutonia Experiment ainda precisa ser traduzido */ -/* Para atualizações visite: */ -/* http://forum.zdoom.org/viewtopic.php?f=34&t=34682 */ -/* Versão 0.97 - 07/12/2012 */ -/* No final das traduções, tentarei adicionar os outros jogos suportados pelo ZDoom */ - -[ptb pt br] - -D_DEVSTR = "Modo de desenvolvimento ATIVADO.\n"; -D_CDROM = "Rodando do CD/DVD-ROM: zdoom.ini em c:\\zdoomdat\n"; -PRESSKEY = "aperte qualquer tecla."; -PRESSYN = "escolha Sim ou Não"; - -QUITMSG = "deseja mesmo sair?"; -TXT_YES = "Sim"; -TXT_NO = "Não"; - -// Mensagens de saída DooM 1 -QUITMSG1 = "por favor, não saia, \nprecisamos matá-los..."; -QUITMSG2 = "vamo nessa, isso já está\nficando insuportável!"; -QUITMSG3 = "eu não sairia se fosse você.\nWindows é muito mais chato."; -QUITMSG4 = "então você gosta mais do windows\ndo que de mim, certo?"; -QUITMSG5 = "nao vá, eu acho que vi algo\nse mexendo naquele canto!"; -QUITMSG6 = "sabe, na próxima vez,\nvocê já era."; -QUITMSG7 = "vá em frente, saia.\nveja se me preocupo."; - -// Mensagens de saída DooM II -QUITMSG8 = " >sair \n >pedindo permissão para sair\n(tem certeza??)"; -QUITMSG9 = "nao vá agora, um \nburaco negro lhe espera\n na saida!"; -QUITMSG10 = "saia daqui e volte\npara seus programas chatos."; -QUITMSG11 = "se fosse seu chefe, \nvocê estaria demitido!"; -QUITMSG12 = "OK, pode ir.\nmas pode esquecer sua pontuação!"; -QUITMSG13 = "vá. \nquando voltar, estarei lhe esperando\ncom meu BFG."; -QUITMSG14 = "você tem sorte por não\nlhe dar um prêmio por pensar\n em sair."; - -// Mensagens de saída Strife -QUITMSG15 = "aonde pensa que vai?!\n e quanto a nos?"; -QUITMSG16 = "interrompendo carnificina....\n tem certeza disso?"; -QUITMSG17 = "mas voce e a nossa\n unica esperanca!"; -QUITMSG18 = "ninguem vai embora assim.\n"; -QUITMSG19 = "pensei que fosse diferente..."; -QUITMSG20 = "OK! tchau para voce tambem!"; -QUITMSG21 = "pode ir.\nmas sabemos seu esconderijo..."; -QUITMSG22 = "hein? pode repetir?\nvoce deseja sair?"; - -// Mensagens de saída Chex -QUITMSG23 = "Nao saia agora, precisamos\nacabar com eles!"; -QUITMSG24 = "Nao desista --- porque\neles nunca desistirao!"; -QUITMSG25 = "Nao va.\nPrecisamos de sua ajuda!"; -QUITMSG26 = "Espero que tudo isso\nso seja fome."; -QUITMSG27 = "Nao va.\nPrecisamos de sua ajuda!"; -QUITMSG28 = "Nao nos abandone!!!"; -QUITMSG29 = "O verdadeiro Chex(R) Warrior\n nunca desistiria!"; - -LOADNET = "impossível carregar, porque \n está em partida online!\naperte uma tecla."; -QLOADNET = "impossível carregar, porque está online!\n\naperte uma tecla."; -QSAVESPOT = "escolha um slot antes de fazer isso de novo.\n\naperte uma tecla."; -SAVEDEAD = "precisa estar jogando para fazê-lo.\n\naperte uma tecla."; -QSPROMPT = "deseja mesmo salvar aqui?\n\n'%s'\n"; -QLPROMPT = "deseja carregar esse jogo?\n\n'%s'\n"; -NEWGAME = "impossivel iniciar um novo jogo\nenquanto se está online.\n\naperte uma tecla."; -NIGHTMARE = "tem certeza? nem eu mesmo me\nsujeito a jogar nesse modo.\n"; -SWSTRING = "essa e a versao shareware de doom.\nque contem somente o primeiro episódio.\npara continuar, compre a trilogia.\n\naperte uma tecla."; -MSGOFF = "Mensagens DESATIVADO"; -MSGON = "Mensagens ATIVADO"; -NETEND = "nâo pode desligar esse jogo!\n\naperte uma tecla."; -ENDGAME = "tem certeza que deseja fechar esse jogo?\n"; -DOSY = "tem certeza disso?"; -EMPTYSTRING = "V A Z I O"; -GOTARMOR = "Colete equipado."; -GOTMEGA = "Armadura equipada."; -GOTHTHBONUS = "Pegou bônus de vida"; -GOTARMBONUS = "Pegou bônus de proteção (colete)"; -GOTSTIM = "Pegou um kit de primeiros socorros\npequeno."; -GOTMEDINEED = "Pegou um kit de primeiros socorros\n na HORA CERTA!!"; -GOTMEDIKIT = "Pegou um kit de primeiros socorros\ngrande."; -GOTSUPER = "Supercarga!"; -GOTBLUECARD = "Achou a credencial azul."; -GOTYELWCARD = "Achou a credencial amarela."; -GOTREDCARD = "Achou a credencial vermelha."; -GOTBLUESKUL = "Achou o crânio azul."; -GOTYELWSKUL = "Achou o crânio amarelo."; -GOTREDSKUL = "Achou o crânio vermelho."; -GOTINVUL = "Invencibilidade (30 sec)!"; -GOTBERSERK = "Pílulas de força (30 sec)!"; -GOTINVIS = "Invisibilidade (30 sec)"; -GOTSUIT = "Roupa anti-radiação (1 min)"; -GOTMAP = "Mapa do nível"; -GOTVISOR = "Óculos de visão noturna (1 min)"; -GOTMSPHERE = "Megaesfera!"; -GOTCLIP = "Pegou um clipe."; -GOTCLIPBOX = "Caixa de munição equipada."; -GOTROCKET = "Foguete equipado."; -GOTROCKBOX = "Caixa de foguetes equipada."; -GOTCELL = "Pack de energia(pequeno) equipada."; -GOTCELLBOX = "Pack de energia(grande) equipada."; -GOTSHELLS = "Cartuchos de espingarda coletada."; -GOTSHELLBOX = "Caixa de cartuchos de espingarda coletada."; -GOTBACKPACK = "Mochila CHEIA de munição coletada!"; -GOTBFG9000 = "BFG9000 equipado. Uau!"; -GOTCHAINGUN = "Metralhadora equipada!"; -GOTCHAINSAW = "A motoserra, enfim!"; -GOTLAUNCHER = "Lança-foguetes equipada!"; -GOTPLASMA = "Metralhadora de plasma equipada!"; -GOTSHOTGUN = "Espingarda equipada!"; -GOTSHOTGUN2 = "Espingarda de cano duplo equipada!"; -PD_BLUEO = "Precisa de credencial azul para ativar este objeto"; -PD_REDO = "Precisa de credencial vermelha para ativar este objeto"; -PD_YELLOWO = "Precisa de credencial amarela para ativar este objeto"; -PD_BLUEK = "Precisa de credencial azul para ativar esta porta"; -PD_REDK = "Precisa de credencial vermelha para ativar esta porta"; -PD_YELLOWK = "Precisa de credencial amarela para ativar esta porta"; -PD_BLUECO = "Precisa de credencial azul para ativar este objeto"; -PD_REDCO = "Precisa de credencial vermelha para ativar este objeto"; -PD_YELLOWCO = "Precisa de credencial amarela para ativar este objeto"; -PD_BLUESO = "Precisa de crânio azul para ativar este objeto"; -PD_REDSO = "Precisa de crânio vermelho para ativar este objeto"; -PD_YELLOWSO = "Precisa de crânio amarelo para ativar este objeto"; -GGSAVED = "Jogo salvo."; -HUSTR_MSGU = "[Mensagem não enviada]"; -PICKUP_PISTOL_DROPPED = "Pistola equipada."; -BETA_BONUS1 = "Voce pegou uma adaga demoniaca."; -BETA_BONUS2 = "Voce pegou um skullchest."; -BETA_BONUS3 = "Voce pegou um cetro maligno."; -BETA_BONUS4 = "Voce pegou uma biblia nao sagrada."; - -// Níveis (preferi deixar original por compatibilidade) -HUSTR_E1M1 = "E1M1: Hangar"; -HUSTR_E1M2 = "E1M2: Nuclear Plant"; -HUSTR_E1M3 = "E1M3: Toxin Refinery"; -HUSTR_E1M4 = "E1M4: Command Control"; -HUSTR_E1M5 = "E1M5: Phobos Lab"; -HUSTR_E1M6 = "E1M6: Central Processing"; -HUSTR_E1M7 = "E1M7: Computer Station"; -HUSTR_E1M8 = "E1M8: Phobos Anomaly"; -HUSTR_E1M9 = "E1M9: Military Base"; -HUSTR_E2M1 = "E2M1: Deimos Anomaly"; -HUSTR_E2M2 = "E2M2: Containment Area"; -HUSTR_E2M3 = "E2M3: Refinery"; -HUSTR_E2M4 = "E2M4: Deimos Lab"; -HUSTR_E2M5 = "E2M5: Command Center"; -HUSTR_E2M6 = "E2M6: Halls of the Damned"; -HUSTR_E2M7 = "E2M7: Spawning Vats"; -HUSTR_E2M8 = "E2M8: Tower of Babel"; -HUSTR_E2M9 = "E2M9: Fortress of Mystery"; -HUSTR_E3M1 = "E3M1: Hell Keep"; -HUSTR_E3M2 = "E3M2: Slough of Despair"; -HUSTR_E3M3 = "E3M3: Pandemonium"; -HUSTR_E3M4 = "E3M4: House of Pain"; -HUSTR_E3M5 = "E3M5: Unholy Cathedral"; -HUSTR_E3M6 = "E3M6: Mt. Erebus"; -HUSTR_E3M7 = "E3M7: Limbo"; -HUSTR_E3M8 = "E3M8: Dis"; -HUSTR_E3M9 = "E3M9: Warrens"; -HUSTR_E4M1 = "E4M1: Hell Beneath"; -HUSTR_E4M2 = "E4M2: Perfect Hatred"; -HUSTR_E4M3 = "E4M3: Sever The Wicked"; -HUSTR_E4M4 = "E4M4: Unruly Evil"; -HUSTR_E4M5 = "E4M5: They Will Repent"; -HUSTR_E4M6 = "E4M6: Against Thee Wickedly"; -HUSTR_E4M7 = "E4M7: And Hell Followed"; -HUSTR_E4M8 = "E4M8: Unto The Cruel"; -HUSTR_E4M9 = "E4M9: Fear"; - -HUSTR_1 = "nivel 1: entryway"; -HUSTR_2 = "nivel 2: underhalls"; -HUSTR_3 = "nivel 3: the gantlet"; -HUSTR_4 = "nivel 4: the focus"; -HUSTR_5 = "nivel 5: the waste tunnels"; -HUSTR_6 = "nivel 6: the crusher"; -HUSTR_7 = "nivel 7: dead simple"; -HUSTR_8 = "nivel 8: tricks and traps"; -HUSTR_9 = "nivel 9: the pit"; -HUSTR_10 = "nivel 10: refueling base"; -HUSTR_11 = "nivel 11: 'o' of destruction!"; -HUSTR_12 = "nivel 12: the factory"; -HUSTR_13 = "nivel 13: downtown"; -HUSTR_14 = "nivel 14: the inmost dens"; -HUSTR_15 = "nivel 15: industrial zone"; -HUSTR_16 = "nivel 16: suburbs"; -HUSTR_17 = "nivel 17: tenements"; -HUSTR_18 = "nivel 18: the courtyard"; -HUSTR_19 = "nivel 19: the citadel"; -HUSTR_20 = "nivel 20: gotcha!"; -HUSTR_21 = "nivel 21: nirvana"; -HUSTR_22 = "nivel 22: the catacombs"; -HUSTR_23 = "nivel 23: barrels o' fun"; -HUSTR_24 = "nivel 24: the chasm"; -HUSTR_25 = "nivel 25: bloodfalls"; -HUSTR_26 = "nivel 26: the abandoned mines"; -HUSTR_27 = "nivel 27: monster condo"; -HUSTR_28 = "nivel 28: the spirit world"; -HUSTR_29 = "nivel 29: the living end"; -HUSTR_30 = "nivel 30: icon of sin"; -HUSTR_31 = "nivel 31: wolfenstein"; -HUSTR_32 = "nivel 32: grosse"; - -PHUSTR_1 = "nivel 1: congo"; -PHUSTR_2 = "nivel 2: well of souls"; -PHUSTR_3 = "nivel 3: aztec"; -PHUSTR_4 = "nivel 4: caged"; -PHUSTR_5 = "nivel 5: ghost town"; -PHUSTR_6 = "nivel 6: baron's lair"; -PHUSTR_7 = "nivel 7: caughtyard"; -PHUSTR_8 = "nivel 8: realm"; -PHUSTR_9 = "nivel 9: abattoire"; -PHUSTR_10 = "nivel 10: onslaught"; -PHUSTR_11 = "nivel 11: hunted"; -PHUSTR_12 = "nivel 12: speed"; -PHUSTR_13 = "nivel 13: the crypt"; -PHUSTR_14 = "nivel 14: genesis"; -PHUSTR_15 = "nivel 15: the twilight"; -PHUSTR_16 = "nivel 16: the omen"; -PHUSTR_17 = "nivel 17: compound"; -PHUSTR_18 = "nivel 18: neurosphere"; -PHUSTR_19 = "nivel 19: nme"; -PHUSTR_20 = "nivel 20: the death domain"; -PHUSTR_21 = "nivel 21: slayer"; -PHUSTR_22 = "nivel 22: impossible mission"; -PHUSTR_23 = "nivel 23: tombstone"; -PHUSTR_24 = "nivel 24: the final frontier"; -PHUSTR_25 = "nivel 25: the temple of darkness"; -PHUSTR_26 = "nivel 26: bunker"; -PHUSTR_27 = "nivel 27: anti-christ"; -PHUSTR_28 = "nivel 28: the sewers"; -PHUSTR_29 = "nivel 29: odyssey of noises"; -PHUSTR_30 = "nivel 30: the gateway of hell"; -PHUSTR_31 = "nivel 31: cyberden"; -PHUSTR_32 = "nivel 32: go 2 it"; - -THUSTR_1 = "nivel 1: system control"; -THUSTR_2 = "nivel 2: human bbq"; -THUSTR_3 = "nivel 3: power control"; -THUSTR_4 = "nivel 4: wormhole"; -THUSTR_5 = "nivel 5: hanger"; -THUSTR_6 = "nivel 6: open season"; -THUSTR_7 = "nivel 7: prison"; -THUSTR_8 = "nivel 8: metal"; -THUSTR_9 = "nivel 9: stronghold"; -THUSTR_10 = "nivel 10: redemption"; -THUSTR_11 = "nivel 11: storage facility"; -THUSTR_12 = "nivel 12: crater"; -THUSTR_13 = "nivel 13: nukage processing"; -THUSTR_14 = "nivel 14: steel works"; -THUSTR_15 = "nivel 15: dead zone"; -THUSTR_16 = "nivel 16: deepest reaches"; -THUSTR_17 = "nivel 17: processing area"; -THUSTR_18 = "nivel 18: mill"; -THUSTR_19 = "nivel 19: shipping/respawning"; -THUSTR_20 = "nivel 20: central processing"; -THUSTR_21 = "nivel 21: administration center"; -THUSTR_22 = "nivel 22: habitat"; -THUSTR_23 = "nivel 23: lunar mining project"; -THUSTR_24 = "nivel 24: quarry"; -THUSTR_25 = "nivel 25: baron's den"; -THUSTR_26 = "nivel 26: ballistyx"; -THUSTR_27 = "nivel 27: mount pain"; -THUSTR_28 = "nivel 28: heck"; -THUSTR_29 = "nivel 29: river styx"; -THUSTR_30 = "nivel 30: last call"; -THUSTR_31 = "nivel 31: pharaoh"; -THUSTR_32 = "nivel 32: caribbean"; - -HUSTR_TALKTOSELF1 = "Você pensa..."; -HUSTR_TALKTOSELF2 = "Tem alguém aí?"; -HUSTR_TALKTOSELF3 = "Não tem ninguém que possa responder"; -HUSTR_TALKTOSELF4 = "Você está ficando louco..."; -HUSTR_TALKTOSELF5 = "Eu juro que vi alguém..."; -HUSTR_MESSAGESENT = "[Mensagem enviada]"; - -AMSTR_FOLLOWON = "Siga-me ATIVADO"; -AMSTR_FOLLOWOFF = "Siga-me DESATIVADO"; -AMSTR_GRIDON = "Area quad. ATIVADO"; -AMSTR_GRIDOFF = "Area quad. DESATIVADO"; -AMSTR_TEXON = "Modo Textura ATIVADO"; -AMSTR_TEXOFF = "Modo Textura DESATIVADO"; -AMSTR_MARKEDSPOT = "Marcado!"; -AMSTR_MARKSCLEARED = "Marcas retiradas."; -STSTR_MUS = "Trocando musica..."; -STSTR_NOMUS = "IMPOSSIVEL"; -STSTR_DQDON = "Modo DEUS ATIVADO"; -STSTR_DQDOFF = "Modo DEUS DESATIVADO"; -STSTR_KFAADDED = "O Pacote completo... Trapaceiro!"; -STSTR_FAADDED = "Precisa de mais municao?"; -STSTR_NCON = "No Clip ATIVADO"; -STSTR_NCOFF = "No Clip DESATIVADO"; -STSTR_BEHOLD = "Escolha um poder:\nForça-s; invulnerabilidade-v; invisibilidade-i\nanti-radiação-r; mapa-a; óculos-l"; -STSTR_BEHOLDX = "Power-up ATIVADO"; -STSTR_CHOPPERS = "... nao enche."; -STSTR_CLEV = "Pulando para...\n"; -TXT_BUDDHAON = "Modo Buddha ATIVADO"; -TXT_BUDDHAOFF = "Modo Buddha DESATIVADO"; -TXT_DEFAULTPICKUPMSG = "Você pegou um objeto"; - -E1TEXT = - "Apos todo o esforço limpando \n" - "a base da lua, voce deveria ganhar um prêmio, \n" - "não deveria? Hein? Cadê o maravilhoso \n" - "presente: voltar para casa? \n" - "Parece que este pesadelo só está começando. \n" - "\n" - "Cheira como carne podre, mas é a base Deimos, \n" - "eu acho. Parece que estou preso no meio do \n" - "Inferno... \n" - "\n" - "O único jeito de sair é passando dentro. \n" - "\n" - "Para continuar, escolha o prox. episódio, \n" - "The Shores of Hell e, na sequência, \n" - "Inferno!\n"; -E2TEXT = - "Você conseguiu! O gigante cyber-\n" - "demon que comandava a base lunar\n" - "Deimos foi morto, e voce foi o\n" - "triunfante nessa batalha... E agora?\n" - "Você olha pelo parapeito da base e\n" - "entao vê a assustadora verdade.\n" - "\n" - "A base está flutuando em cima do\n" - "que parece um portal para o inferno!\n" - "Você nunca ouviu falar de alguém que\n" - "escapou de lá, mas aqueles que você\n" - "matou se arrependem de ter lhe conhe-\n" - "cido. Você toma fôlego e comeca sua jor-\n" - "nada no ultimo episódio de DooM! \n" - " Inferno\n" - "\n" - " "; -E3TEXT = - "O inigualável spiderdemon que esque-\n" - "matizou a invasão na lua causou tanta\n" - "destruição e morte que foi enfim derro-\n" - "tado.\n" - "\n" - "Uma passagem secreta abre e você entra.\n" - "Você mostrou que inferno nenhum pode\n" - "contê-lo, pelo menos agora acabou.\n" - "Agora está na hora de voltar para a Terra,\n" - "para enfim descansar.\n" - "Lar doce lar.\n" - "\n" - "Você imagina o que aconteceu nesse\n" - "meio tempo enquanto voce batalhava\n" - "contra o mal. Espero que nenhum daque-\n" - "les monstros tenham vindo junto com\n" - "você naquela passagem ..."; -E4TEXT = - "O spider mastermind deve ter sido \n" - "mandado junto com sua legião de monstros\n" - "para os confins do inferno depois dessa\n" - "batalha. sorte sua que você se manteve\n" - "vivo para fazer de tudo para limpar\n" - "esse mundo de sofrimento de uma forma que\n" - "só um herói poderia fazer diante de tanto mal.\n" - "\n" - "aliás, alguem teria que pagar pelo que\n" - "aconteceu com daisy, seu coelho de estimação.\n" - "\n" - "Mas agora, voce vê o que aconteceu no\n" - "planeta enquanto estava fora: dor e sangue\n" - "trazido pelos demônios que estão a solta nas\n" - "cidades. agora é hora de acabar com isso!\n" - "você recarrega sua pistola e continua seu árduo\n" - "trabalho: acabar com esses monstros!"; -C1TEXT = - "VOCÊ FOI FUNDO DENTRO DO PORTO\n" - "ESTELAR, MAS ALGO ESTÁ ERRADO. OS\n" - "MONSTROS TROUXERAM SUA REALIDADE\n" - "COM ELES, E A TECNOLOGIA AQUI CONTIDA\n" - "ESTÁ SENDO MODIFICADA COM SUA PRESENÇA.\n" - "\n" - "ADIANTE, VOCÊ VÊ UM POSTO DE GUARDA,\n" - "UMA ZONA FORTIFICADA. SE VOCÊ PASSAR ALI,\n" - "PODERÁ ENTRAR DENTRO DO CORAÇÃO DA\n" - "BASE ESTELAR E DESATIVAR O DISPOSITIVO\n" - "QUE MANTÊM O QUE SOBROU DA POPULAÇÃO\n" - "DA TERRA REFÉM."; -C2TEXT = - "VOCÊ CONSEGUIU! APÓS ESSA VITÓRIA VOCÊ SALVA\n" - "A RAÇA HUMANA DA DIZIMACAO, FAZENDO COM QUE\n" - "ELES EVACUASSEM A TERRA DE VEZ. AGORA VOCÊ\n" - "É O ÚNICO HUMANO NA FACE DA TERRA.\n" - "MUTAÇÕES CANIBAIS, ALIENS CARNÍVOROS\n" - "E MAUS ESPÍRITOS SÃO SEUS VIZINHOS.\n" - "VOCÊ SENTA E ESPERA PELA MORTE, FELIZ\n" - "POR TER SALVADO A POPULAÇÃO.\n" - "\n" - "MAS ELES MANDAM UMA MENSAGEM DO ESPAÇO:\n" - "\"SENSORES LOCALIZARAM O FOCO DA INVASÃO\n" - "SE VOCÊ FOR LÁ, PODERÁ BLOQUEAR SUA ENTRADA.\n" - "A BASE ALIEN FICA NO CORAÇÃO DE SUA CIDADE\n" - "NATAL, NÃO MUITO LONGE DO PORTO ESTELAR.\" \n" - "LENTAMENTE E SENTINDO MUITA DOR, VOCÊ SE\n" - "LEVANTA E DECIDE CONTINUAR A LIMPEZA.\n"; -C3TEXT = - "VOCÊ CONSEGUE CHEGAR NO CORAÇÃO DA CIDADE,\n" - "CERCADA PELOS CADÁVERES DE SEUS INIMIGOS.\n" - "VOCÊ NAO VÊ NENHUM JEITO DE DESTRUIR A ENTRADA\n" - "POR ESTE LADO, ENTAO VOCE CERRA OS DENTES\n" - "E MERGULHA ATRAVÉS DA PASSAGEM.\n" - "\n" - "DEVE HAVER UM JEITO DE FECHÁ-LA DO OUTRO LADO.\n" - "PRA QUÊ SE PREOCUPAR SE TEREI QUE ATRAVESSAR O\n" - "INFERNO PARA FECHÁ-LA?"; -C4TEXT = - "A HORRENDA VISTA DO MAIOR DEMÔNIO QUE\n" - "VOCÊ JÁ VIU DESMORONA NA SUA FRENTE\n" - "DEPOIS DE VOCE LANCAR ALGUNS FOGUETES\n" - "DENTRO DE SEU CÉREBRO EXPOSTO. ELE\n" - "MURCHA E MORRE, SEUS MEMBROS ESTAO\n" - "DEVASTANDO MILHAS E MILHAS DA\n" - "SUPERFÍCIE DO INFERNO.\n" - "\n" - "VOCÊ CONSEGUIU. A INVASÃO ACABOU.\n" - "A TERRA ESTÁ SALVA. O INFERNO DESTRUIDO.\n" - "VOCÊ IMAGINA PARA ONDE OS MAUS IRÃO\n" - "QUANDO MORREREM AGORA. VOCÊ SECA O\n" - "SUOR DE SUA TESTA E COMEÇA A LONGA\n" - "JORNADA DE VOLTA PRA CASA. E PENSA EM\n" - "RECONSTRUIR A TERRA PARA SER MAIS\n" - "DIVERTIDA DO QUE ANTES.\n"; -C5TEXT = - "MEUS PARABÉNS, VOCÊ ACHOU O NÍVEL SECRETO!\n" - "PARECE TER SIDO CONSTRUÍDO POR HUNANOS,\n" - "EM VEZ DE DEMÔNIOS. VOCÊ IMAGINA O QUE\n" - "DEVE HABITAR OS CORREDORES DESTE LUGAR.\n"; -C6TEXT = - "MEUS PARABÉNS, DE NOVO! VOCÊ ACHOU\n" - "OUTRO NÍVEL SECRETO. QUERO VER PASSAR\n" - "ESSE AGORA!\n"; - -// Plutonia and TNT intermission screens (50% ainda não traduzido) -P1TEXT = - "Voce vangloria sua vitoria em cima da carcaca\n" - "do Guardiao. Apos mata-lo, voce arranca o \n" - "Acelerador das garras fedorentas do Inferno.\n" - "Voce relaxa e olha em volta da sala. Droga!\n" - "Deveria ter pelo menos mais um prototipo\n" - "funcionando, mas voce nao o acha em lugar\n" - "nenhum. Os demonios devem ter levado-o\n" - "\n" - "Voce deve achar o prototipo, ou todos os\n" - "seus esforcos serao em vao. Mexa-se,\n" - "lute, mate. Ah, se mantenha vivo tambem.\n"; -P2TEXT = - "Nem o labirinto mortal do Arch-Vile pode\n" - "para-lo, e agora voce tem o prototipo do\n" - "Acelerador, o qual está com pouca energia\n" - "e logo se desativara permanentemente.\n" - "\n" - "Voce e bom nesse tipo de coisa."; -P3TEXT = - "Voce batalhou e fez de tudo para chegar\n" - "no coracao da colmeia demoniaca. Esta na\n" - "hora de destruir o protetor do portao, cuja\n" - "prole esta vindo aos montes para a Terra.\n" - "E, ele e mau, mas voce sabe quem e pior!\n" - "\n" - "Sorrindo maldosamente, voce checa seu\n" - "equipamento e se prepara para dar ao\n" - "bastardo um pequeno inferno de sua propria\n" - "criacao!"; -P4TEXT = - "A face do protetor do portao esta espalhada\n" - "por todo o lugar. Seu corpo entra em colapso,\n" - "um portao inverso se forma e engole os restos\n" - "do ultimo Acelerador, sem mencionar os poucos\n" - "demonios que restaram. Voce conseguiu.\n" - "O Inferno voltou ao seu lugar, para os vivos\n" - "viverem suas vidas. Lembre-se de pedir aos\n" - "seus netos para colocarem um lanca-foguete\n" - "em seu caixao. Se for para o Inferno, vai precisar\n" - "para poder terminar o que comecou......\n"; -P5TEXT = - "Voce achou o segundo nivel mais dificil que temos.\n" - "Espero que tenha salvo o jogo uns dois niveis atras.\n" - "Para veteranos apenas."; -P6TEXT = - "Estava pensando qual ERA o nivel mais dificil\n" - "que preparamos? Agora voce sabe.\n" - "Ninguem sai vivo."; -T1TEXT = - "You've fought your way out of the infested\n" - "experimental labs. It seems that UAC has\n" - "once again gulped it down. With their\n" - "high turnover, it must be hard for poor\n" - "old UAC to buy corporate health insurance\n" - "nowadays..\n" - "\n" - "Ahead lies the military complex, now\n" - "swarming with diseased horrors hot to get\n" - "their teeth into you. With luck, the\n" - "complex still has some warlike ordnance\n" - "laying around."; -T2TEXT = - "You hear the grinding of heavy machinery\n" - "ahead. You sure hope they're not stamping\n" - "out new hellspawn, but you're ready to\n" - "ream out a whole herd if you have to.\n" - "They might be planning a blood feast, but\n" - "you feel about as mean as two thousand\n" - "maniacs packed into one mad killer.\n" - "\n" - "You don't plan to go down easy."; -T3TEXT = - "The vista opening ahead looks real damn\n" - "familiar. Smells familiar, too -- like\n" - "fried excrement. You didn't like this\n" - "place before, and you sure as hell ain't\n" - "planning to like it now. The more you\n" - "brood on it, the madder you get.\n" - "Hefting your gun, an evil grin trickles\n" - "onto your face. Time to take some names."; -T4TEXT = - "Suddenly, all is silent, from one horizon\n" - "to the other. The agonizing echo of Hell\n" - "fades away, the nightmare sky turns to\n" - "blue, the heaps of monster corpses start \n" - "to evaporate along with the evil stench \n" - "that filled the air. Jeeze, maybe you've\n" - "done it. Have you really won?\n" - "\n" - "Something rumbles in the distance.\n" - "A blue light begins to glow inside the\n" - "ruined skull of the demon-spitter."; -T5TEXT = - "What now? Looks totally different. Kind\n" - "of like King Tut's condo. Well,\n" - "whatever's here can't be any worse\n" - "than usual. Can it? Or maybe it's best\n" - "to let sleeping gods lie.."; -T6TEXT = - "Time for a vacation. You've burst the\n" - "bowels of hell and by golly you're ready\n" - "for a break. You mutter to yourself,\n" - "Maybe someone else can kick Hell's ass\n" - "next time around. Ahead lies a quiet town,\n" - "with peaceful flowing water, quaint\n" - "buildings, and presumably no Hellspawn.\n" - "\n" - "As you step off the transport, you hear\n" - "the stomp of a cyberdemon's iron shoe."; - -// Lista de personagens (ordem deve ser seguida a risca) -CC_ZOMBIE = "ZOMBIEMAN"; -CC_SHOTGUN = "SHOTGUN GUY"; -CC_HEAVY = "HEAVY WEAPON DUDE"; -CC_IMP = "IMP"; -CC_DEMON = "DEMON"; -CC_LOST = "LOST SOUL"; -CC_CACO = "CACODEMON"; -CC_HELL = "HELL KNIGHT"; -CC_BARON = "BARON OF HELL"; -CC_ARACH = "ARACHNOTRON"; -CC_PAIN = "PAIN ELEMENTAL"; -CC_REVEN = "REVENANT"; -CC_MANCU = "MANCUBUS"; -CC_ARCH = "ARCH-VILE"; -CC_SPIDER = "THE SPIDER MASTERMIND"; -CC_CYBER = "THE CYBERDEMON"; -CC_HERO = "OUR HERO"; - -// New strings from BOOM -PD_BLUEC = "Precisa de uma credencial azul para abrir a porta"; -PD_REDC = "Precisa de uma credencial vermelha para abrir a porta"; -PD_YELLOWC = "Precisa de uma credencial amarela para abrir a porta"; -PD_BLUES = "Precisa de um crânio azul para abrir a porta"; -PD_REDS = "Precisa de um crânio vermelho para abrir a porta"; -PD_YELLOWS = "Precisa de um crânio amarelo para abrir a porta"; -PD_ANY = "Qualquer chave abre a porta"; -PD_ANYOBJ = "Qualquer chave ativa este objeto"; -PD_ALL3 = "Precisa das 3 chaves para abrir a porta"; -PD_ALL3O = "Precisa das 3 chaves para ativar este objeto"; -PD_ALL6 = "Precisa das 6 chaves para abrir a porta"; -PD_ALL6O = "Precisa das 6 chaves para ativar este objeto"; -PD_ALLKEYS = "Precisa de todas as chaves"; - -// Mensagens de fim de partida online -TXT_FRAGLIMIT = "Pontuação atingida."; -TXT_TIMELIMIT = "Tempo atingido."; - -// Mensagens de pontos cumulativos -SPREEKILLSELF = "%o estava indo bem até se matar!"; -SPREEOVER = "A matança de %o foi interrompida por %k"; -SPREE5 = "%k está indo bem!"; -SPREE10 = "%k continua indo bem!"; -SPREE15 = "%k está dominando!"; -SPREE20 = "%k não se cansa por nada!"; -SPREE25 = "%k parece profissional!"; - -// Mensagens de COMBO -MULTI2 = "COMBO 2X!"; -MULTI3 = "COMBO 3X!"; -MULTI4 = "COMBO 4X!"; -MULTI5 = "Santa Mãe do Céu!!!"; - -// Obituario -// Primeiro suicidios, depois as mortes -OB_SUICIDE = "%o suicidou-se."; -OB_FALLING = "%o caiu."; -OB_CRUSH = "%o foi esmagado."; -OB_EXIT = "%o tentou sair."; -OB_WATER = "%o não sabe nadar."; -OB_SLIME = "%o se entoxicou."; -OB_LAVA = "%o derreteu."; -OB_BARREL = "%o explodiu."; -OB_SPLASH = "%o parou no lugar errado."; -OB_R_SPLASH = "%o deveria ter se afastado."; -OB_ROCKET = "%o deveria ter se afastado."; -OB_KILLEDSELF = "%o se matou."; - -OB_VOODOO = "%o morreu pelo poder do voodoo."; -OB_STEALTHBABY = "%o achou que viu um arachnotron."; -OB_STEALTHVILE = "%o achou que viu um archvile."; -OB_STEALTHBARON = "%o achou que viu um Baron of Hell."; -OB_STEALTHCACO = "%o achou que viu um cacodemon."; -OB_STEALTHCHAINGUY = "%o achou que viu um chaingunner."; -OB_STEALTHDEMON = "%o achou que viu um demon."; -OB_STEALTHKNIGHT = "%o achou que viu um Hell Knight."; -OB_STEALTHIMP = "%o achou que viu um imp."; -OB_STEALTHFATSO = "%o achou que viu um mancubus."; -OB_STEALTHUNDEAD = "%o achou que viu um revenant."; -OB_STEALTHSHOTGUY = "%o achou que viu um sergeant."; -OB_STEALTHZOMBIE = "%o achou que viu um zombieman."; -OB_UNDEADHIT = "%o foi socado por um revenant."; -OB_IMPHIT = "%o foi dilacerado por um imp."; -OB_CACOHIT = "%o chegu muito perto de um cacodemon."; -OB_DEMONHIT = "%o foi mordido por um demon."; -OB_SPECTREHIT = "%o foi comido vivo por um spectre."; -OB_BARONHIT = "%o foi cortado por um Baron of Hell."; -OB_KNIGHTHIT = "%o foi estripado por um Hell Knight."; -OB_ZOMBIE = "%o foi morto por um zombieman."; -OB_SHOTGUY = "%o levou um tiro de um sergeant."; -OB_VILE = "%o foi incinerado pelo archvile."; -OB_UNDEAD = "%o nao conseguiu desviar da bola de\nfogo do revenant."; -OB_FATSO = "%o foi esmagado por um mancubus."; -OB_CHAINGUY = "%o foi perfurado por um chaingunner."; -OB_SKULL = "%o se assustou com um lost soul."; -OB_IMP = "%o foi queimado por um imp."; -OB_CACO = "%o foi golpeado por um cacodemon."; -OB_BARON = "%o foi ferido por um Baron of Hell."; -OB_KNIGHT = "%o foi espalmado por um Hell Knight."; -OB_SPIDER = "%o se ajoelhou em frente do spider demon."; -OB_BABY = "%o foi pego por um arachnotron."; -OB_CYBORG = "%o foi arrebentado pelo cyberdemon."; -OB_WOLFSS = "%o viu um Nazi."; -OB_DOG = "%o foi atacado por um cachorro."; - -OB_CHICKEN = "%o foi cutucado ate a morte."; -OB_BEAST = "%o foi carbonizado por um weredragon."; -OB_CLINK = "%o foi cortado por um sabreclaw."; -OB_DSPARIL1 = "%o foi escaldado pela serpente de D'Sparil."; -OB_DSPARIL1HIT = "%o foi mastigado pela serpente de D'Sparil."; -OB_DSPARIL2 = "%o nao foi pareo para D'Sparil."; -OB_DSPARIL2HIT = "%o foi morto por D'Sparil."; -OB_HERETICIMP = "%o foi cicatrizado por um gargoyle."; -OB_HERETICIMPHIT = "%o foi cortado por um gargoyle."; -OB_IRONLICH = "%o foi devastado por um ironlich."; -OB_IRONLICHHIT = "%o cheou muito perto de um ironlich."; -OB_BONEKNIGHT = "%o foi decepado por um undead warrior."; -OB_BONEKNIGHTHIT = "%o foi picotado por um undead warrior."; -OB_MUMMY = "%o foi esmagado por um golem."; -OB_MUMMYLEADER = "%o agonizou na frente de um nitrogolem."; -OB_SNAKE = "%o foi sacudido por um ophidian."; -OB_WIZARD = "%o foi amaldicoado por um wizard."; -OB_WIZARDHIT = "%o foi apalpado por um wizard."; - -//Hexen Obituaries (Ainda não traduzido) -OB_FIREDEMON = "%o tasted an Afrit's fire."; -OB_DEMON1 = "%o was scalded by a Serpent."; -OB_DEMON2 = "%o was poisoned by a Serpent."; -OB_ETTIN = "%o was mashed by an Ettin."; -OB_CENTAUR = "%o was cut up by a Centaur."; -OB_SLAUGHTAURHIT = "%o was cut up by a Slaughtaur."; -OB_SLAUGHTAUR = "%o was struck down by a Slaughtaur's fireball."; -OB_BISHOP = "%o succumbed to a Bishop's dark power."; -OB_ICEGUY = "%o was frozen solid by a Wendigo."; -OB_SERPENTHIT = "%o was mauled by a Stalker."; -OB_SERPENT = "%o was melted by a Stalker."; -OB_WRAITH = "%o was charred by a Reiver."; -OB_WRAITHHIT = "%o had %p life stolen by a Reiver."; -OB_DRAGON = "%o was incinerated by the Death Wyvern."; -OB_KORAX = "%o was swept from the board by Korax."; -OB_FBOSS = "%o was slain by Zedek."; -OB_MBOSS = "%o couldn't absorb Menelkir's Mana."; -OB_CBOSS = "%o was baptized by Traductus."; -OB_HERESIARCH = "%o had %p bones rolled by the Heresiarch."; - -//Strife obituaries (ainda não traduzido) -OB_ACOLYTE = "%o was zealously shot down by an Acolyte."; -OB_MACIL = "%o should have never rebelled against Macil."; -OB_REBEL = "%o was gunned down by a Rebel."; -OB_BEGGAR = "%o was beaten to death by the poor."; -OB_PEASANT = "%o should have never picked a fight with a civilian."; -OB_ALIENSPECTRE = "%o was struck down by the Spectre."; -OB_ENTITY = "%o felt the wrath of The One God."; -OB_LOREMASTER = "%o couldn't escape from the Lore Master's grasp."; -OB_PROGRAMMER = "%o was deleted by the Programmer."; -OB_STFBISHOP = "%o was blown away by the Bishop."; -OB_SENTINEL = "%o was shot down by a Sentinel."; -OB_CRUSADER = "%o was swept away by a Crusader."; -OB_INQUISITOR = "%o was sentenced by an Inquisitor."; -OB_STALKER = "%o was bugged by a Stalker."; -OB_TURRET = "%o triggered the automatic defenses."; -OB_TEMPLARHIT = "%o was clawed by a Templar."; -OB_TEMPLAR = "%o was vaporized by a Templar."; -OB_REAVERHIT = "%o was sliced open by a Reaver."; -OB_REAVER = "%o was shot down by a Reaver."; -OB_COMMONUS = "%o foi eslameado por um flemoid."; - -// Chex obituaries -OB_BIPEDICUS = "%o foi eslameado por um bipedicus."; -OB_BIPEDICUS2 = "%o foi eslameado por um armored bipedicus."; -OB_CYCLOPTIS = "%o foi eslameado por um cycloptis."; -OB_SUPERCYCLOPTIS = "%o foi eslameado por um super cycloptis."; -OB_FLEMBRANE = "%o foi derrotado pela Flembrane."; -OB_STRIDICUS = "%o foi eslameado por um stridicus."; -OB_LARVA = "%o foi eslameado por uma larva."; -OB_QUADRUMPUS = "%o foi eslameado por um quadrumpus."; -OB_MAXIMUS = "%o foi derrotado por um Maximus."; -// Existe um "You defeated a maximus" que eu não pude traduzir, se alguém souber qual a linha que traduz me diga no fórum onde você o baixou -OB_FLEMMINE = "%o foi eslameado por um Flem mine."; -OB_SNOTFOLUS = "%o foi derrotado pelo Lord Snotfolus."; - -OB_MPFIST = "%k fez justiça com as próprias mãos, na cara de %o."; -OB_MPCHAINSAW = "%k usou o poder da motoserra para abrir %o."; -OB_MPPISTOL = "%o foi morto pela pistola de %k."; -OB_MPSHOTGUN = "%o foi morto pela espingarda de %k."; -OB_MPSSHOTGUN = "%o foi morto pela espingarda de cano duplo de %k."; -OB_MPCHAINGUN = "%o foi massacrado pela metralhadora de %k."; -OB_MPROCKET = "%o não viu o foguete de %k."; -OB_MPR_SPLASH = "%o quase escapou do foguete de %k. Quase..."; -OB_MPPLASMARIFLE = "%o foi torrado pelo rifle de plasma de %k."; -OB_MPBFG_BOOM = "%o foi pego pelo BFG de %k."; -OB_MPBFG_SPLASH = "Ninguem se esconde do BFG de %k, nem mesmo %o."; -OB_MPTELEFRAG = "%o foi "telefragged" por %k."; -OB_RAILGUN = "%o was railed by %k."; -OB_MPBFG_MBF = "%o foi arrebentado pelo BFG de %k."; - -OB_MPSTAFF = "%o levou uma sova do bastão de %k."; -OB_MPGAUNTLETS = "%o tomou um choque das luvas de %k."; -OB_MPGOLDWAND = "%o acenou para o bastao magico de %k."; -OB_MPCROSSBOW = "%o foi esmigalhado pela besta magica de %k."; -OB_MPBLASTER = "%o sentiu o poder da garra de dragao de %k."; -OB_MPSKULLROD = "%o foi mandado bem pra baixo pelo bastao do inferno de %k."; -OB_MPPHOENIXROD = "%o virou cinzas com o bastao da fenix de %k."; -OB_MPMACE = "%o saiu pulando apos ver a clava de fogo de %k."; - -OB_MPPSTAFF = "%o tomou um tapa do bastao de %k."; -OB_MPPGAUNTLETS = "%o sangrou nas luvas de %k."; -OB_MPPGOLDWAND = "%o foi massacrado pelo bastao magico de %k."; -OB_MPPCROSSBOW = "%o foi flechado pela besta magica de %k."; -OB_MPPBLASTER = "%o foi cortado pela garra de dragao de %k."; -OB_MPPSKULLROD = "%k usou seu bastao do inferno para banir %o."; -OB_MPPPHOENIXROD = "%o foi queimado pelo bastao da fenix de %k."; -OB_MPPMACE = "%o foi esmagado pela clava de %k."; - -OB_MPFWEAPFIST = "%o was beaten to a pulp by %k's bare fists."; -OB_MPFWEAPAXE = "%o got the axe from %k."; -OB_MPFWEAPHAMMERM = "%o had %p head caved in by %k's hammer."; -OB_MPFWEAPHAMMERR = "%o's soul was forged anew by %k's hammer."; -OB_MPFWEAPQUIETUS = "%o was silenced by %k's mighty Quietus."; -OB_MPCWEAPMACE = "%o got a mace to the face from %k."; -OB_MPCWEAPSTAFFM = "%o was bitten by %k's serpent staff."; -OB_MPCWEAPSTAFFR = "%o choked on %k's serpent staff."; -OB_MPCWEAPFLAME = "%o was lit up by %k's flames."; -OB_MPCWEAPWRAITHVERGE = "%o was cleansed by %k's Wraithverge."; -OB_MPMWEAPWAND = "%o took one too many sapphire beams from %k."; -OB_MPMWEAPFROST = "%o was turned into a frosty fellow by %k."; -OB_MPMWEAPLIGHTNING = "%o recieved a shocking revelation from %k."; -OB_MPMWEAPBLOODSCOURGE = "%o was wiped off the face of the universe by %k's Bloodscourge."; - -OB_MPPUNCHDAGGER = "%o foi pego pela faca de %k."; -OB_MPELECTRICBOLT = "%o recebeu alguns choques de %k."; -OB_MPPOISONBOLT = "%o recebeu uma dose letal da ira de %k."; -OB_MPASSAULTGUN = "%o virou uma peneira diante da metralhadora de %k."; -OB_MPMINIMISSILELAUNCHER = "%o engoliu misseis de %k."; -OB_MPSTRIFEGRENADE = "%o foi pego pelas granadas de %k."; -OB_MPPHOSPHOROUSGRENADE = "%o nao fugiu do fogo causado pelas granadas PH de %k."; -OB_MPFLAMETHROWER = "%o virou churrasco por causa de %k."; -OB_MPMAULER = "%o foi vaporizado por %k."; -OB_MPSIGIL = "%o sentiu o poder de %k:SIGIL."; - -// Same as OB_MPTELEFRAG, but shown when a monster telefrags you -OB_MONTELEFRAG = "%o foi "telefragged" por um monstro."; - -OB_DEFAULT = "%o morreu."; -OB_MPDEFAULT = "%o foi morto por %k."; -OB_FRIENDLY1 = "%k é cego."; -OB_FRIENDLY2 = "%k pensa que sabe o que faz."; -OB_FRIENDLY3 = "%k errou o tiro."; -OB_FRIENDLY4 = "%k perde outro ponto."; - -// Item tags: Doom weapons -TAG_FIST ="Soco Ingles"; -TAG_CHAINSAW = "Motoserra"; -TAG_PISTOL = "Pistola"; -TAG_SHOTGUN = "Espingarda"; -TAG_SUPERSHOTGUN = "Espingarda de cano duplo"; -TAG_CHAINGUN = "Metralhadora"; -TAG_ROCKETLAUNCHER = "Lança-foguetes"; -TAG_PLASMARIFLE = "Rifle de Plasma"; -TAG_BFG9000 = "O BFG 9000"; - -// Item tags: Heretic weapons -TAG_STAFF = "Bastao"; -TAG_GAUNTLETS = "Luvas do Necromancer"; -TAG_GOLDWAND = "Bastao magico"; -TAG_CROSSBOW = "Besta magica"; -TAG_BLASTER = "Garras de dragao"; -TAG_SKULLROD = "Bastao do inferno"; -TAG_PHOENIXROD = "Bastao da Fenix"; -TAG_MACE = "Clava de fogo"; - -// Item tags: Heretic artifacts -TAG_ARTIEGG = "Ovo mutante"; -TAG_ARTIFIREBOMB = "Bomba-relogio dos Antigos"; -TAG_ARTIFLY = "Asas de ira"; -TAG_ARTIHEALTH = "Frasco de quartzo"; -TAG_ARTIINVISIBILITY = "Esfera negra"; -TAG_ARTIINVULNERABILITY = "Anel da invencibilidade"; -TAG_ARTISUPERHEALTH = "Urna mistica"; -TAG_ARTITELEPORT = "Dispositivo do caos"; -TAG_ARTITOMEOFPOWER = "Livro do poder"; -TAG_ARTITORCH = "Tocha"; - -// Item tags: Hexen weapons -TAG_CWEAPMACE = "Mace of Contrition"; -TAG_CWEAPSTAFF = "Serpent Staff"; -TAG_CWEAPFLAME = "Firestorm"; -TAG_CWEAPWRAITHVERGE = "Wraithverge"; -TAG_FWEAPFIST = "Spiked Gauntlets"; -TAG_FWEAPAXE = "Timon's Axe"; -TAG_FWEAPHAMMER = "Hammer of Retribution"; -TAG_FWEAPQUIETUS = "Quietus"; -TAG_MWEAPWAND = "Sapphire Wand"; -TAG_MWEAPFROST = "Frost Shards"; -TAG_MWEAPLIGHTNING = "Arcs of Death"; -TAG_MWEAPBLOODSCOURGE = "Bloodscourge"; - -// Item tags: Hexen artifacts -TAG_ARTIBLASTRADIUS = "Disc of Repulsion"; -TAG_ARTIBOOSTARMOR = "Dragonskin Bracers"; -TAG_ARTIBOOSTMANA = "Krater of Might"; -TAG_ARTIPOISONBAG = "Flechette"; -TAG_ARTIPOISONBAG1 = "Poison Cloud Flechette"; -TAG_ARTIPOISONBAG2 = "Timebomb Flechette"; -TAG_ARTIPOISONBAG3 = "Grenade Flechette"; -TAG_ARTIHEALINGRADIUS = "Mystic Ambit Incant"; -TAG_ARTIDEFENDER = "Icon of the Defender"; -TAG_ARTIPORK = "Porkelator"; -TAG_ARTISPEED = "Boots of Speed"; -TAG_ARTISUMMON = "Dark Servant"; -TAG_ARTITELEPORTOTHER = "Banishment Device"; - -// Item tags: Hexen puzzle items -TAG_ARTIPUZZSKULL = "Yorick's Skull"; -TAG_ARTIPUZZGEMBIG = "Heart of D'Sparil"; -TAG_ARTIPUZZGEMRED = "Ruby Planet"; -TAG_ARTIPUZZGEMGREEN1 = "Emerald Planet (1)"; -TAG_ARTIPUZZGEMGREEN2 = "Emerald Planet (2)"; -TAG_ARTIPUZZGEMBLUE1 = "Sapphire Planet (1)"; -TAG_ARTIPUZZGEMBLUE2 = "Sapphire Planet (2)"; -TAG_ARTIPUZZBOOK1 = "Daemon Codex"; -TAG_ARTIPUZZBOOK2 = "Liber Oscura"; -TAG_ARTIPUZZSKULL2 = "Flame Mask"; -TAG_ARTIPUZZFWEAPON = "Glaive Seal"; -TAG_ARTIPUZZCWEAPON = "Holy Relic"; -TAG_ARTIPUZZMWEAPON = "Sigil of the Magus"; -TAG_ARTIPUZZGEAR1 = "Iron gear"; -TAG_ARTIPUZZGEAR2 = "Brass gear"; -TAG_ARTIPUZZGEAR3 = "Brass and iron gear"; -TAG_ARTIPUZZGEAR4 = "Silver and brass gear"; - -// Item tags: Strife weapons -TAG_PUNCHDAGGER = "Faca"; -TAG_STRIFECROSSBOW1 = "Besta"; -TAG_STRIFECROSSBOW2 = "Besta"; -TAG_ASSAULTGUN = "Metralhadora"; -TAG_MMLAUNCHER = "Mini Lanca-misseis"; -TAG_FLAMER = "Lanca-chamas"; -TAG_MAULER1 = "Mauler"; -TAG_MAULER2 = "Mauler"; -TAG_GLAUNCHER1 = "Lanca-granadas"; -TAG_GLAUNCHER2 = "Lanca-granadas"; -TAG_SIGIL = "SIGIL"; - -// Item tags: Strife artifacts -TAG_COIN = "moeda(s)"; -TAG_MEDPATCH = "Primeiros socorros (pequeno)"; -TAG_MEDICALKIT = "Primeiros socorros (medio)"; -TAG_SURGERYKIT = "Primeiros socorros (grande)"; // "full_health" in the Teaser -TAG_BELDINSRING = "Anel"; -TAG_OFFERINGCHALICE = "Calice de oferenda"; -TAG_EAR = "Orelha"; -TAG_BROKENCOUPLING = "Acoplador de energia quebrado"; -TAG_SHADOWARMOR = "Armadura das sombras"; -TAG_ENVSUIT = "Roupa anti-radiacao"; -TAG_GUARDUNIFORM = "Uniforme - Guarda"; -TAG_OFFICERSUNIFORM = "Uniforme - Oficial"; -TAG_FTHROWERPARTS = "Partes do lanca-chamas"; -TAG_REPORT = "Relatorio"; -TAG_INFO = "Informacao"; -TAG_TARGETER = "Targeter"; -TAG_COMMUNICATOR = "Transmissor"; -TAG_DEGNINORE = "Minerio Degnin"; -TAG_GUNTRAINING = "Precisao"; -TAG_HEALTHTRAINING = "Forca"; -TAG_SCANNER = "Scanner"; -TAG_PRISONPASS = "Credencial - Prisao"; -TAG_ALARM = "Alarme"; -TAG_AMMOFILLUP = "Municao"; -TAG_HEALTHFILLUP = "Saude"; -TAG_TELEPORTERBEACON = "Sinalizador para teletransporte"; -TAG_METALARMOR = "Armadura de metal"; -TAG_LEATHER = "Armadura leve"; -TAG_HEGRENADES = "Municao - Granadas HE"; -TAG_PHGRENADES = "Municao - Granadas PH"; // "Fire-Grenade_Rounds" in the Teaser -TAG_CLIPOFBULLETS = "Clipe de balas"; // "bullets" in the Teaser -TAG_BOXOFBULLETS = "Caixa de balas"; -TAG_MINIMISSILES = "Misseis"; //"rocket" in the Teaser -TAG_CRATEOFMISSILES = "Caixa de Misseis"; //"box_of_rockets" in the Teaser -TAG_ENERGYPOD = "Energia (pequeno)"; -TAG_ENERGYPACK = "Energia (grande)"; -TAG_POISONBOLTS = "Flechas (veneno)"; // "poison_arrows" in the Teaser -TAG_ELECTRICBOLTS = "Flechas (eletricas)"; // "electric_arrows" in the Teaser -TAG_AMMOSATCHEL = "Pacote de municao"; // "Back_pack" in the Teaser - -// Item tags: Strife keys -TAG_BASEKEY = "Chave da Base"; -TAG_GOVSKEY = "Chave do Governador"; // "Rebel_Key" in the Teaser -TAG_PASSCARD = "Cartao de passe"; -TAG_IDBADGE = "Distintivo de Identificacao"; -TAG_PRISONKEY = "Chave da prisao"; -TAG_SEVEREDHAND = "Mao"; -TAG_POWER1KEY = "Chave Power1"; -TAG_POWER2KEY = "Chave Power2"; -TAG_POWER3KEY = "Chave Power3"; -TAG_GOLDKEY = "Chave de ouro"; -TAG_IDCARD = "Cartao de Identificacao"; -TAG_SILVERKEY = "Chave de prata"; -TAG_ORACLEKEY = "Chave do Oraculo"; -TAG_MILITARYID = "ID do militar"; -TAG_ORDERKEY = "Chave da Ordem"; -TAG_WAREHOUSEKEY = "Chave do barracao"; -TAG_BRASSKEY = "Chave de bronze"; -TAG_REDCRYSTALKEY = "Chave - Cristal vermelho"; -TAG_BLUECRYSTALKEY = "Chave - Cristal azul"; -TAG_CHAPELKEY = "Chave da capela"; -TAG_CATACOMBKEY = "Chave da catatumba"; // "Tunnel_Key" in the Teaser -TAG_SECURITYKEY = "Chave de seguranca"; -TAG_COREKEY = "Chave principal"; // "New_Key1" in the Teaser -TAG_MAULERKEY = "Chave - Mauler"; // "New_Key2" in the Teaser -TAG_FACTORYKEY = "Chave da fabrica"; // "New_Key3" in the Teaser -TAG_MINEKEY = "Chave da mina"; // "New_Key4" in the Teaser -TAG_NEWKEY5 = "Chave Nova5"; -TAG_ORACLEPASS = "Passe do Oraculo"; - -// Item tags: misc Strife stuff -TAG_10GOLD = "10 moedas"; -TAG_25GOLD = "25 moedas"; -TAG_50GOLD = "50 moedas"; -TAG_300GOLD = "sortudo! 300 moedas"; - -// Item tags: Strife NPCs -TAG_ACOLYTE = "ACOLYTE"; -TAG_ARMORER = "Armeiro"; -TAG_BARKEEP = "Garcom de bar"; -TAG_BEGGAR = "Pedinte"; -TAG_MACIL1 = "MACIL"; -TAG_MACIL2 = "MACIL"; -TAG_MEDIC = "Medico"; -TAG_ORACLE = "Oraculo"; -TAG_PRIEST = "PRIEST"; -TAG_RATBUDDY = "rat buddy"; -TAG_REBEL = "Rebelde"; -TAG_TEMPLAR = "TEMPLAR"; -TAG_WEAPONSMITH = "Ferreiro"; - -// Item tags: Chex weapons -TAG_SPOON = "Colher"; -TAG_SPORK = "Super garfo"; -TAG_MINIZORCHER = "Mini Zorcher"; -TAG_LARGEZORCHER = "Zorcher grande"; -TAG_SUPERLARGEZORCHER = "Super Zorcher"; -TAG_RAPIDZORCHER = "Zorcher automatico"; -TAG_ZORCHPROPULSOR = "Propulsor Zorch"; -TAG_PHASINGZORCHER = "Mega Zorcher"; -TAG_LAZDEVICE = "LAZ Device"; - -// Heretic strings (ainda não traduzida) -HE1TEXT = - "with the destruction of the iron\n" - "liches and their minions, the last\n" - "of the undead are cleared from this\n" - "plane of existence.\n\n" - "those creatures had to come from\n" - "somewhere, though, and you have the\n" - "sneaky suspicion that the fiery\n" - "portal of hell's maw opens onto\n" - "their home dimension.\n\n" - "to make sure that more undead\n" - "(or even worse things) don't come\n" - "through, you'll have to seal hell's\n" - "maw from the other side. of course\n" - "this means you may get stuck in a\n" - "very unfriendly world, but no one\n" - "ever said being a Heretic was easy!"; -HE2TEXT = - "the mighty maulotaurs have proved\n" - "to be no match for you, and as\n" - "their steaming corpses slide to the\n" - "ground you feel a sense of grim\n" - "satisfaction that they have been\n" - "destroyed.\n\n" - "the gateways which they guarded\n" - "have opened, revealing what you\n" - "hope is the way home. but as you\n" - "step through, mocking laughter\n" - "rings in your ears.\n\n" - "was some other force controlling\n" - "the maulotaurs? could there be even\n" - "more horrific beings through this\n" - "gate? the sweep of a crystal dome\n" - "overhead where the sky should be is\n" - "certainly not a good sign...."; -HE3TEXT = - "the death of d'sparil has loosed\n" - "the magical bonds holding his\n" - "creatures on this plane, their\n" - "dying screams overwhelming his own\n" - "cries of agony.\n\n" - "your oath of vengeance fulfilled,\n" - "you enter the portal to your own\n" - "world, mere moments before the dome\n" - "shatters into a million pieces.\n\n" - "but if d'sparil's power is broken\n" - "forever, why don't you feel safe?\n" - "was it that last shout just before\n" - "his death, the one that sounded\n" - "like a curse? or a summoning? you\n" - "can't really be sure, but it might\n" - "just have been a scream.\n\n" - "then again, what about the other\n" - "serpent riders?"; -HE4TEXT = - "you thought you would return to your\n" - "own world after d'sparil died, but\n" - "his final act banished you to his\n" - "own plane. here you entered the\n" - "shattered remnants of lands\n" - "conquered by d'sparil. you defeated\n" - "the last guardians of these lands,\n" - "but now you stand before the gates\n" - "to d'sparil's stronghold. until this\n" - "moment you had no doubts about your\n" - "ability to face anything you might\n" - "encounter, but beyond this portal\n" - "lies the very heart of the evil\n" - "which invaded your world. d'sparil\n" - "might be dead, but the pit where he\n" - "was spawned remains. now you must\n" - "enter that pit in the hopes of\n" - "finding a way out. and somewhere,\n" - "in the darkest corner of d'sparil's\n" - "demesne, his personal bodyguards\n" - "await your arrival ..."; -HE5TEXT = - "as the final maulotaur bellows his\n" - "death-agony, you realize that you\n" - "have never come so close to your own\n" - "destruction. not even the fight with\n" - "d'sparil and his disciples had been\n" - "this desperate. grimly you stare at\n" - "the gates which open before you,\n" - "wondering if they lead home, or if\n" - "they open onto some undreamed-of\n" - "horror. you find yourself wondering\n" - "if you have the strength to go on,\n" - "if nothing but death and pain await\n" - "you. but what else can you do, if\n" - "the will to fight is gone? can you\n" - "force yourself to continue in the\n" - "face of such despair? do you have\n" - "the courage? you find, in the end,\n" - "that it is not within you to\n" - "surrender without a fight. eyes\n" - "wide, you go to meet your fate."; - -// EPISODE 1 - THE CITY OF THE DAMNED -HHUSTR_E1M1 = "THE DOCKS"; -HHUSTR_E1M2 = "THE DUNGEONS"; -HHUSTR_E1M3 = "THE GATEHOUSE"; -HHUSTR_E1M4 = "THE GUARD TOWER"; -HHUSTR_E1M5 = "THE CITADEL"; -HHUSTR_E1M6 = "THE CATHEDRAL"; -HHUSTR_E1M7 = "THE CRYPTS"; -HHUSTR_E1M8 = "HELL'S MAW"; -HHUSTR_E1M9 = "THE GRAVEYARD"; - -// EPISODE 2 - HELL'S MAW -HHUSTR_E2M1 = "THE CRATER"; -HHUSTR_E2M2 = "THE LAVA PITS"; -HHUSTR_E2M3 = "THE RIVER OF FIRE"; -HHUSTR_E2M4 = "THE ICE GROTTO"; -HHUSTR_E2M5 = "THE CATACOMBS"; -HHUSTR_E2M6 = "THE LABYRINTH"; -HHUSTR_E2M7 = "THE GREAT HALL"; -HHUSTR_E2M8 = "THE PORTALS OF CHAOS"; -HHUSTR_E2M9 = "THE GLACIER"; - -// EPISODE 3 - THE DOME OF D'SPARIL -HHUSTR_E3M1 = "THE STOREHOUSE"; -HHUSTR_E3M2 = "THE CESSPOOL"; -HHUSTR_E3M3 = "THE CONFLUENCE"; -HHUSTR_E3M4 = "THE AZURE FORTRESS"; -HHUSTR_E3M5 = "THE OPHIDIAN LAIR"; -HHUSTR_E3M6 = "THE HALLS OF FEAR"; -HHUSTR_E3M7 = "THE CHASM"; -HHUSTR_E3M8 = "D'SPARIL'S KEEP"; -HHUSTR_E3M9 = "THE AQUIFER"; - -// EPISODE 4: THE OSSUARY -HHUSTR_E4M1 = "CATAFALQUE"; -HHUSTR_E4M2 = "BLOCKHOUSE"; -HHUSTR_E4M3 = "AMBULATORY"; -HHUSTR_E4M4 = "SEPULCHER"; -HHUSTR_E4M5 = "GREAT STAIR"; -HHUSTR_E4M6 = "HALLS OF THE APOSTATE"; -HHUSTR_E4M7 = "RAMPARTS OF PERDITION"; -HHUSTR_E4M8 = "SHATTERED BRIDGE"; -HHUSTR_E4M9 = "MAUSOLEUM"; - -// EPISODE 5: THE STAGNANT DEMESNE -HHUSTR_E5M1 = "OCHRE CLIFFS"; -HHUSTR_E5M2 = "RAPIDS"; -HHUSTR_E5M3 = "QUAY"; -HHUSTR_E5M4 = "COURTYARD"; -HHUSTR_E5M5 = "HYDRATYR"; -HHUSTR_E5M6 = "COLONNADE"; -HHUSTR_E5M7 = "FOETID MANSE"; -HHUSTR_E5M8 = "FIELD OF JUDGEMENT"; -HHUSTR_E5M9 = "SKEIN OF D'SPARIL"; - -// Keys - -TXT_GOTBLUEKEY = "CHAVE AZUL"; -TXT_GOTYELLOWKEY = "CHAVE AMARELA"; -TXT_GOTGREENKEY = "CHAVE AZUL"; - -// Artifacts - -TXT_ARTIHEALTH = "FRASCO DE QUARTZO"; -TXT_ARTIFLY = "ASAS DE IRA"; -TXT_ARTIINVULNERABILITY = "ANEL DE INVENCIBILIDADE"; -TXT_ARTITOMEOFPOWER = "LIVRO DO PODER"; -TXT_ARTIINVISIBILITY = "ESFERA NEGRA"; -TXT_ARTIEGG = "OVO MUTANTE"; -TXT_ARTISUPERHEALTH = "URNA MISTICA"; -TXT_ARTITORCH = "TOCHA"; -TXT_ARTIFIREBOMB = "BOMBA-RELOGIO DOS ANTIGOS"; -TXT_ARTITELEPORT = "DISPOSITIVO DO CAOS"; - -// Items - -TXT_ITEMHEALTH = "AMPOLA DE CRISTAL"; -TXT_ITEMBAGOFHOLDING = "BOLSA DE UTENSILIOS"; -TXT_ITEMSHIELD1 = "ESCUDO DE PRATA"; -TXT_ITEMSHIELD2 = "ESCUDO ENCANTADO"; -TXT_ITEMSUPERMAP = "PERGAMINHO - MAPA"; - -// Ammo - -TXT_AMMOGOLDWAND1 = "CRISTAL MAGICO"; -TXT_AMMOGOLDWAND2 = "GEODO DE CRISTAL"; -TXT_AMMOMACE1 = "ESFERAS PARA CLAVA"; -TXT_AMMOMACE2 = "PILHA DE ESFERAS PARA CLAVA"; -TXT_AMMOCROSSBOW1 = "FLECHAS MAGICAS"; -TXT_AMMOCROSSBOW2 = "MAIS FLECHAS MAGICAS"; -TXT_AMMOBLASTER1 = "ESFERA PARA GARRAS"; -TXT_AMMOBLASTER2 = "ESFERA DE ENERGIA"; -TXT_AMMOSKULLROD1 = "RUNAS PEQUENAS"; -TXT_AMMOSKULLROD2 = "RUNAS GRANDES"; -TXT_AMMOPHOENIXROD1 = "ESFERA DE CHAMAS"; -TXT_AMMOPHOENIXROD2 = "ESFERA DO INFERNO"; - -// Weapons - -TXT_WPNMACE = "CLAVA DE FOGO"; -TXT_WPNCROSSBOW = "BESTA MAGICA"; -TXT_WPNBLASTER = "GARRAS DE DRAGAO"; -TXT_WPNSKULLROD = "BASTAO DO INFERNO"; -TXT_WPNPHOENIXROD = "BASTAO DA FENIX"; -TXT_WPNGAUNTLETS = "LUVAS DO NECROMANCER"; - -TXT_NEEDBLUEKEY = "VOCE PRECISA DA CHAVE AZUL PARA ABRIR A PORTA"; -TXT_NEEDGREENKEY = "VOCE PRECISA DA CHAVE VERDE PARA ABRIR A PORTA"; -TXT_NEEDYELLOWKEY = "VOCE PRECISA DA CHAVE AMARELA PARA ABRIR A PORTA"; - -TXT_CHEATPOWERON = "PODER ATIVADO"; -TXT_CHEATPOWEROFF = "PODER DESATIVADO"; -TXT_CHEATHEALTH = "SAUDE CHEIA"; -TXT_CHEATKEYS = "TODAS AS CHAVES"; -TXT_CHEATSOUNDON = "DEBUG DE SOM ATIVADO"; -TXT_CHEATSOUNDOFF = "DEBUG DE SOM DESATIVADO"; -TXT_CHEATIDDQD = "CODIGO ERRADO, TENTE NOVAMENTE!"; -TXT_CHEATIDKFA = "SO NAO TIRO O BASTAO PORQUE NAO POSSO"; -TXT_CHEATTICKERON = "TICKER ATIVADO"; -TXT_CHEATTICKEROFF = "TICKER DESATIVADO"; -TXT_CHEATARTIFACTS3 = "ESTA FELIZ AGORA?"; -TXT_MIDASTOUCH = "YOU GOT THE MIDAS TOUCH, BABY"; -TXT_GOTSTUFF = "Pegou tudo?"; -TXT_FREEZEON = "modo congelado ATIVADO"; -TXT_FREEZEOFF = "modo congelado DeSaTiVaDo"; -TXT_STRANGE = "Voce se sente estranho"; -TXT_STRANGER = "Voce se sente mais estranho."; -TXT_NOTSTRANGE = "voce se sente melhor agora."; -TXT_LEADBOOTSON = "BOTAS ATIVADAS"; -TXT_LEADBOOTSOFF = "BOTAS DESATIVADAS"; -TXT_LIGHTER = "Voce se sente leve"; -TXT_GRAVITY = "Gravidade volta a funcionar normalmente"; - -RAVENQUITMSG = "DESEJA MESMO SAIR?"; - -// Hexen strings - -// Mana - -TXT_MANA_1 = "MANA AZUL"; -TXT_MANA_2 = "MANA VERDE"; -TXT_MANA_BOTH = "MANA COMBINADA"; - -// Keys - -TXT_KEY_STEEL = "STEEL KEY"; -TXT_KEY_CAVE = "CAVE KEY"; -TXT_KEY_AXE = "AXE KEY"; -TXT_KEY_FIRE = "FIRE KEY"; -TXT_KEY_EMERALD = "EMERALD KEY"; -TXT_KEY_DUNGEON = "DUNGEON KEY"; -TXT_KEY_SILVER = "SILVER KEY"; -TXT_KEY_RUSTED = "RUSTED KEY"; -TXT_KEY_HORN = "HORN KEY"; -TXT_KEY_SWAMP = "SWAMP KEY"; -TXT_KEY_CASTLE = "CASTLE KEY"; - -TXT_NEED_KEY_STEEL = "You need the STEEL KEY"; -TXT_NEED_KEY_CAVE = "You need the CAVE KEY"; -TXT_NEED_KEY_AXE = "You need the AXE KEY"; -TXT_NEED_KEY_FIRE = "You need the FIRE KEY"; -TXT_NEED_KEY_EMERALD = "You need the EMERALD KEY"; -TXT_NEED_KEY_DUNGEON = "You need the DUNGEON KEY"; -TXT_NEED_KEY_SILVER = "You need the SILVER KEY"; -TXT_NEED_KEY_RUSTED = "You need the RUSTED KEY"; -TXT_NEED_KEY_HORN = "You need the HORN KEY"; -TXT_NEED_KEY_SWAMP = "You need the SWAMP KEY"; -TXT_NEED_KEY_CASTLE = "You need the CASTLE KEY"; - -// Artifacts - -TXT_ARTIINVULNERABILITY2 = "ICON OF THE DEFENDER"; -TXT_ARTISUMMON = "DARK SERVANT"; -TXT_ARTIEGG2 = "PORKALATOR"; -TXT_ARTIPOISONBAG = "FLECHETTE"; -TXT_ARTITELEPORTOTHER = "BANISHMENT DEVICE"; -TXT_ARTISPEED = "BOOTS OF SPEED"; -TXT_ARTIBOOSTMANA = "KRATER OF MIGHT"; -TXT_ARTIBOOSTARMOR = "DRAGONSKIN BRACERS"; -TXT_ARTIBLASTRADIUS = "DISC OF REPULSION"; -TXT_ARTIHEALINGRADIUS = "MYSTIC AMBIT INCANT"; - -// Puzzle artifacts - -TXT_ARTIPUZZSKULL = "YORICK'S SKULL"; -TXT_ARTIPUZZGEMBIG = "HEART OF D'SPARIL"; -TXT_ARTIPUZZGEMRED = "RUBY PLANET"; -TXT_ARTIPUZZGEMGREEN1 = "EMERALD PLANET"; -TXT_ARTIPUZZGEMGREEN2 = "EMERALD PLANET"; -TXT_ARTIPUZZGEMBLUE1 = "SAPPHIRE PLANET"; -TXT_ARTIPUZZGEMBLUE2 = "SAPPHIRE PLANET"; -TXT_ARTIPUZZBOOK1 = "DAEMON CODEX"; -TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; -TXT_ARTIPUZZSKULL2 = "FLAME MASK"; -TXT_ARTIPUZZFWEAPON = "GLAIVE SEAL"; -TXT_ARTIPUZZCWEAPON = "HOLY RELIC"; -TXT_ARTIPUZZMWEAPON = "SIGIL OF THE MAGUS"; -TXT_ARTIPUZZGEAR = "CLOCK GEAR"; -TXT_USEPUZZLEFAILED = "YOU CANNOT USE THIS HERE"; - -// Items - -TXT_ARMOR1 = "MESH ARMOR"; -TXT_ARMOR2 = "FALCON SHIELD"; -TXT_ARMOR3 = "PLATINUM HELMET"; -TXT_ARMOR4 = "AMULET OF WARDING"; - -// Weapons - -TXT_WEAPON_F2 = "TIMON'S AXE"; -TXT_WEAPON_F3 = "HAMMER OF RETRIBUTION"; -TXT_WEAPON_F4 = "QUIETUS ASSEMBLED"; -TXT_WEAPON_C2 = "SERPENT STAFF"; -TXT_WEAPON_C3 = "FIRESTORM"; -TXT_WEAPON_C4 = "WRAITHVERGE ASSEMBLED"; -TXT_WEAPON_M2 = "FROST SHARDS"; -TXT_WEAPON_M3 = "ARC OF DEATH"; -TXT_WEAPON_M4 = "BLOODSCOURGE ASSEMBLED"; -TXT_WEAPONPIECE = "A weapon piece! This is your lucky day!"; -TXT_QUIETUS_PIECE = "SEGMENT OF QUIETUS"; -TXT_WRAITHVERGE_PIECE = "SEGMENT OF WRAITHVERGE"; -TXT_BLOODSCOURGE_PIECE = "SEGMENT OF BLOODSCOURGE"; - -// Strife locks - -TXT_NEEDKEY = "Voce nao possui a chave"; -TXT_NEED_PASSCARD = "Precisa do cartao de passe"; -TXT_NEED_PASSCARD_DOOR = "Precisa do cartao de passe para abrir a porta"; -TXT_NEED_IDCARD = "Precisa do cartao de indentificacao"; -TXT_NEED_PRISONKEY = "Voce nao tem a chave da prisao"; -TXT_NEED_HANDPRINT = "Biometria nao autorizada"; -TXT_NEED_GOLDKEY = "Voce precisa da chave dourada"; -TXT_NEED_IDBADGE = "Voce precisa do distintivo de identificacao"; -TXT_NEED_IDBADGE_DOOR = "Voce precisa do distintivo de identificacao para abrir a porta"; -TXT_NEED_SILVERKEY = "Voce precisa da chave de prata"; -TXT_NEED_BRASSKEY = "Voce precisa da chave de latao"; -TXT_NEED_REDCRYSTAL = "Voce precisa do cristal vermelho"; -TXT_NEED_BLUECRYSTAL = "Voce precisa do cristal azul"; -TXT_RETAIL_ONLY = "AREA DISPONIVEL NA VERSAO REGISTRADA"; -TXT_DOES_NOT_WORK = "Parece que nao funciona"; - -// Strife - mensagens de missoes - -TXT_QUEST_14 = "Voce explodiu o cristal"; -TXT_QUEST_16 = "Voce explodiu as portas"; -TXT_QUEST_27 = "Voce explodiu o computador"; - -TXT_KILLED_BISHOP = "Voce matou o bispo!"; -TXT_KILLED_ORACLE = "Voce matou o Oraculo!"; -TXT_KILLED_MACIL = "Voce matou Macil!"; -TXT_KILLED_LOREMASTER = "Voce matou o Loremaster!"; - -// Strife - mensagens gerais - -TXT_METALARMOR = "Voce pegou a armadura de metal."; -TXT_LEATHERARMOR = "Voce pegou a armadura leve."; -TXT_MEDPATCH = "Voce pegou um pequeno kit de primeiros socorros."; -TXT_MEDICALKIT = "Voce pegou um kit medio de primeiros socorros."; -TXT_SURGERYKIT = "Voce pegou um kit de primeiros socorros grande."; -TXT_STRIFEMAP = "Voce pegou o mapa."; -TXT_BELDINSRING = "Voce pegou o anel."; -TXT_OFFERINGCHALICE = "Voce pegou o calice de oferenda."; -TXT_EAR = "Voce pegou a orelha."; -TXT_BROKENCOUPLING = "Você pegou o acoplador de energia quebrado."; -TXT_SHADOWARMOR = "Voce pegou a armadura das sombras."; -TXT_ENVSUIT = "Voce pegou a roupa anti-radiacao."; -TXT_GUARDUNIFORM = "Voce pegou o uniforme - Guarda."; -TXT_OFFICERSUNIFORM = "Voce pegou o uniforme - Oficial."; -TXT_FTHROWERPARTS = "Voce pegou uma parte do lanca-chamas."; -TXT_REPORT = "Voce pegou o relatorio."; -TXT_INFO = "Voce pegou a informacao."; -TXT_TARGETER = "Voce pegou o Targeter."; -TXT_COMMUNICATOR = "Voce pegou o Transmissor."; -TXT_COIN = "Voce pegou a moeda."; -TXT_XGOLD = "Voce pegou %d moedas."; -TXT_BEACON = "Voce pegou o sinalizador de teletransporte."; -TXT_DEGNINORE = "Voce pegou o minerio Degnin."; -TXT_SCANNER = "Voce pegou o scanner."; -TXT_NEEDMAP = "O scanner nao funciona sem um mapa!\n"; -TXT_PRISONPASS = "Voce pegou o passe da prisao."; - -TXT_STRIFECROSSBOW = "Voce pegou a besta."; -TXT_ASSAULTGUN = "Voce pegou a metralhadora."; -TXT_MMLAUNCHER = "Voce pegou o mini lanca-misseis."; -TXT_FLAMER = "Voce pegou o lanca-chamas."; -TXT_MAULER = "Voce pegou o mauler."; -TXT_GLAUNCHER = "Voce pegou o lanca-granadas."; -TXT_SIGIL = "Voce pegou o SIGIL."; - - -TXT_BASEKEY = "Voce pegou a chave da Base."; -TXT_GOVSKEY = "Voce pegou a chave do Governador."; -TXT_PASSCARD = "Voce pegou o cartao de passe."; -TXT_IDBADGE = "Voce pegou o distintivo de identificacao."; -TXT_PRISONKEY = "Voce pegou a chave da prisao."; -TXT_SEVEREDHAND = "Voce pegou a mao decepada."; -TXT_POWER1KEY = "Voce pegou a chave Power1."; -TXT_POWER2KEY = "Voce pegou a chave Power2."; -TXT_POWER3KEY = "Voce pegou a chave Power3."; -TXT_GOLDKEY = "Voce pegu a chave de ouro."; -TXT_IDCARD = "Voce pegou o cartao de identificacao."; -TXT_SILVERKEY = "Voce pegou a chave de prata."; -TXT_ORACLEKEY = "Voce pegou a chave do Oraculo."; -TXT_MILITARYID = "Voce pegou a ID do militar."; -TXT_ORDERKEY = "Voce pegou a chave da Ordem."; -TXT_WAREHOUSEKEY = "Voce pegou a chave do barracao."; -TXT_BRASSKEY = "Voce pegou a chave de bronze."; -TXT_REDCRYSTAL = "Voce pegou a chave - Cristal Vermelho."; -TXT_BLUECRYSTAL = "Voce pegou a chave - Cristal Azul."; -TXT_CHAPELKEY = "Voce pegou a chave da capela."; -TXT_CATACOMBKEY = "Voce pegou a chave da catatumba."; -TXT_SECURITYKEY = "Voce pegou a chave de seguranca."; -TXT_COREKEY = "Voce pegou a chave principal."; -TXT_MAULERKEY = "Voce pegou a chave do Mauler."; -TXT_FACTORYKEY = "Voce pegou a chave da Fabrica."; -TXT_MINEKEY = "Voce pegou a chave da Mina."; -TXT_NEWKEY5 = "Voce pegou a Chave Nova5."; -TXT_ORACLEPASS = "Voce pegou o passe do Oraculo."; - -TXT_HEGRENADES = "Voce pegou granadas HE."; -TXT_PHGRENADES = "Voce pegou granadas PH."; -TXT_CLIPOFBULLETS = "Voce pegou um clipe."; -TXT_BOXOFBULLETS = "Voce pegou uma caixa de balas."; -TXT_MINIMISSILES = "Voce pegou mini-misseis."; -TXT_CRATEOFMISSILES = "Voce pegou uma caixa de misseis."; -TXT_ENERGYPOD = "Voce pegou uma celula de energia (pequeno)."; -TXT_ENERGYPACK = "Voce pegou uma celula de energia (grande)."; -TXT_POISONBOLTS = "Voce pegou flechas (venenosas)."; -TXT_ELECTRICBOLTS = "Voce pegou flechas (eletricas)."; -TXT_AMMOSATCHEL = "Voce pegou uma mochila de municao."; - -// Diálogos aleatórios - -TXT_RANDOM_PEASANT_01 = "Por favor, nao me machuque."; -TXT_RANDOM_PEASANT_02 = "Se pretende me machucar, te digo que nao valera a pena."; -TXT_RANDOM_PEASANT_03 = "Eu nao sei de nada."; -TXT_RANDOM_PEASANT_04 = "Va embora antes que eu chame os guardas!"; -TXT_RANDOM_PEASANT_05 = "Eu queria que esses rebeldes soubessem se por em seu lugar e parassem com essa maluquice."; -TXT_RANDOM_PEASANT_06 = "So me deixa em paz, OK?"; -TXT_RANDOM_PEASANT_07 = "Eu nao tenho certeza, mas acho que conheco alguns dos acolytes."; -TXT_RANDOM_PEASANT_08 = "A Ordem mantem tudo trancado a sete chaves."; -TXT_RANDOM_PEASANT_09 = "Nao tem como isso ser uma forca de seguranca."; -TXT_RANDOM_PEASANT_10 = "Eu soube que a Ordem esta bem nervosa por causa das acoes dos opositores por aqui."; - -TXT_RANDOM_REBEL_01 = "Nao ha como a Ordem ficar contra a gente."; -TXT_RANDOM_REBEL_02 = "Estamos quase prontos para o ataque. Os planos de Macil estao fazendo efeito."; -TXT_RANDOM_REBEL_03 = "Estamos todos lhe protegendo, nao se preocupe."; -TXT_RANDOM_REBEL_04 = "Nem pense em ficar perto daqueles robos. Te transformam em ferro velho em um instante!"; -TXT_RANDOM_REBEL_05 = "O dia de nossa gloria chegara, e aqueles que se opuserem serao esmagados!"; -TXT_RANDOM_REBEL_06 = "Nao fique muito confortavel. Ainda temos trabalho a fazer."; -TXT_RANDOM_REBEL_07 = "Macil disse que voce e a nova esperanca. Lembre-se disso."; -TXT_RANDOM_REBEL_08 = "Assim que derrubarmos esses charlatas, poderemos reconstruir o mundo do jeito certo."; -TXT_RANDOM_REBEL_09 = "Lembre-se que nao esta lutando por si mesmo, mas por todos nos."; -TXT_RANDOM_REBEL_10 = "Enquanto um de nos ainda estiver em pe, teremos chance de vencer."; - -TXT_RANDOM_AGUARD_01 = "Continue andando."; -TXT_RANDOM_AGUARD_02 = "Siga a verdadeirta fe e entao comecara a entender."; -TXT_RANDOM_AGUARD_03 = "Somente atraves da morte que alguem podera renascer."; -TXT_RANDOM_AGUARD_04 = "Nao estou interessado em lhe ouvir."; -TXT_RANDOM_AGUARD_05 = "Se quisesse falar com voce, eu mesmo teria te dito."; -TXT_RANDOM_AGUARD_06 = "Va pertubar outro!"; -TXT_RANDOM_AGUARD_07 = "Continue andando!"; -TXT_RANDOM_AGUARD_08 = "Se o alarme disparar, nao fique no nosso caminho!"; -TXT_RANDOM_AGUARD_09 = "A Ordem vai limpar o mundo e arruma-lo dentro da nova era."; -TXT_RANDOM_AGUARD_10 = "Algum problema? Eu acho que nao."; - -TXT_RANDOM_BEGGAR_01 = "Uma ajuda para os pobres?"; -TXT_RANDOM_BEGGAR_02 = "O que esta olhando, terrestre?"; -TXT_RANDOM_BEGGAR_03 = "Voce nao tem comida, tem?"; -TXT_RANDOM_BEGGAR_04 = "Voces da superficie nunca nos entenderao."; -TXT_RANDOM_BEGGAR_05 = "Ha, os guardas nunca nos acharao. Estes idiotas nem sabem que existimos."; -TXT_RANDOM_BEGGAR_06 = "Um dia todos, exceto aqueles que servem a Ordem, se juntarao a nos."; -TXT_RANDOM_BEGGAR_07 = "Observe, pois este sera seu futuro um dia."; -TXT_RANDOM_BEGGAR_08 = "Nao ha nada mais irritante do que um da superficie com atitude!"; -TXT_RANDOM_BEGGAR_09 = "A Ordem nao tera muito trabalho com voces, pateticos opositores."; -TXT_RANDOM_BEGGAR_10 = "Cuidado, o da superficie; Nos sabemos quem sao nossos inimigos!"; - -TXT_RANDOM_PGUARD_01 = "Nos somos as maos da fe. Se nos irritar, esqueca da gente!"; -TXT_RANDOM_PGUARD_02 = "A Ordem limpara o mundo dos fracos e corruptos!"; -TXT_RANDOM_PGUARD_03 = "Obedeca a lei dos mestres!"; -TXT_RANDOM_PGUARD_04 = "Vida longa aos irmaos da Ordem!"; -TXT_RANDOM_PGUARD_05 = "Livre arbitrio e uma ideia que passa em mentes fracas."; -TXT_RANDOM_PGUARD_06 = "O poder e o caminho para a gloria. Siga a Ordem e andara por esse caminho!"; -TXT_RANDOM_PGUARD_07 = "Tenha seu lugar junto com os certos, junte-se a nos!"; -TXT_RANDOM_PGUARD_08 = "A Ordem protege a si propria."; -TXT_RANDOM_PGUARD_09 = "Acolytes? Eles ainda tem de ver a gloria total da Ordem."; -TXT_RANDOM_PGUARD_10 = "Se ainda existe honra dentro de seu patetico corpo, voce vai entrar para os bracos da Ordem."; - -TXT_RANDOMGOODBYE_1 = "Fui!"; -TXT_RANDOMGOODBYE_2 = "Muito obrigado."; -TXT_RANDOMGOODBYE_3 = "Ate mais tarde!"; -TXT_HAVEENOUGH = "Voce parece ter bastante!"; -TXT_GOAWAY = "Va embora!"; - -// Skills: (partes não traduzidas ainda) - -SKILL_BABY = "Facil"; -SKILL_EASY = "Medio"; -SKILL_NORMAL = "Dificil"; -SKILL_HARD = "Desafio"; -SKILL_NIGHTMARE = "PESADELO!"; - -$ifgame(chex) SKILL_BABY = "Bem facil"; -$ifgame(chex) SKILL_EASY = "Ainda facil"; -$ifgame(chex) SKILL_NORMAL = "Muita gosma"; -$ifgame(chex) SKILL_HARD = "Gosma extrema"; -$ifgame(chex) SKILL_NIGHTMARE = "So para os melhores!"; - -SSKILL_BABY = "Treino"; -SSKILL_EASY = "Iniciante"; -SSKILL_NORMAL = "Veterano"; -SSKILL_HARD = "Elite"; -SSKILL_NIGHTMARE = "Banho de sangue"; - -// Menu -MNU_NEWGAME = "NOVO JOGO"; -MNU_OPTIONS = "OPCOES"; -MNU_GAMEFILES = "JOGOS SALVOS"; -MNU_INFO = "INFO"; -MNU_QUITGAME = "SAIR"; - -MNU_FIGHTER = "FIGHTER"; -MNU_CLERIC = "CLERIC"; -MNU_MAGE = "MAGE"; -MNU_RANDOM = "RANDOM"; - -MNU_LOADGAME = "CARREGAR"; -MNU_SAVEGAME = "SALVAR"; - -MNU_COTD = "CITY OF THE DAMNED"; -MNU_HELLSMAW = "HELL'S MAW"; -MNU_DOME = "THE DOME OF D'SPARIL"; -MNU_OSSUARY = "THE OSSUARY"; -MNU_DEMESNE = "THE STAGNANT DEMESNE"; - -MNU_WETNURSE = "THOU NEEDETH A WET-NURSE"; -MNU_YELLOWBELLIES = "YELLOWBELLIES-R-US"; -MNU_BRINGEST = "BRINGEST THEM ONETH"; -MNU_SMITE = "THOU ART A SMITE-MEISTER"; -MNU_BLACKPLAGUE = "BLACK PLAGUE POSSESSES THEE"; - -MNU_NOPICTURE = "No Picture"; -MNU_DIFFVERSION = "Versao\nDiferente"; -MNU_NOFILES = "Vazio"; - -MNU_CHOOSECLASS = "Escolha a classe:"; -MNU_CHOOSESKILL = "ESCOLHA A DIFICULDADE:"; - -MNU_SQUIRE = "SQUIRE"; -MNU_KNIGHT = "KNIGHT"; -MNU_WARRIOR = "WARRIOR"; -MNU_BERSERKER = "BERSERKER"; -MNU_TITAN = "TITAN"; - -MNU_ALTARBOY = "ALTAR BOY"; -MNU_ACOLYTE = "ACOLYTE"; -MNU_PRIEST = "PRIEST"; -MNU_CARDINAL = "CARDINAL"; -MNU_POPE = "POPE"; - -MNU_APPRENTICE = "APPRENTICE"; -MNU_ENCHANTER = "ENCHANTER"; -MNU_SORCERER = "SORCERER"; -MNU_WARLOCK = "WARLOCK"; -MNU_ARCHMAGE = "ARCHMAGE"; - -MNU_PLAYERSETUP = "PLAYER SETUP"; - -MNU_DELETESG = "Deseja mesmo deletar:\n"; - -$ifgame(heretic) SWSTRING = "SOMENTE DISPONIVEL NA VERSAO REGISTRADA"; - -MNU_EPISODE = "Selecione um episodio"; - -WI_FINISHED = "finalizado"; -WI_ENTERING = "Entrando:"; - -// Bloodbath announcer (não traduzido ainda) - -BBA_BONED = "%k boned %o like a fish"; -BBA_CASTRA = "%k castrated %o"; -BBA_CREAMED = "%k creamed %o"; -BBA_DECIMAT = "%k decimated %o"; -BBA_DESTRO = "%k destroyed %o"; -BBA_DICED = "%k diced %o"; -BBA_DISEMBO = "%k disembowled %o"; -BBA_FLATTE = "%k flattened %o"; -BBA_JUSTICE = "%k gave %o Anal Justice"; -BBA_MADNESS = "%k gave AnAl MaDnEsS to %o"; -BBA_KILLED = "%k killed %o"; -BBA_MINCMEAT = "%k made mincemeat out of %o"; -BBA_MASSACR = "%k massacred %o"; -BBA_MUTILA = "%k mutilated %o"; -BBA_REAMED = "%k reamed %o"; -BBA_RIPPED = "%k ripped %o a new orifice"; -BBA_SLAUGHT = "%k slaughtered %o"; -BBA_SMASHED = "%k smashed %o"; -BBA_SODOMIZ = "%k sodomized %o"; -BBA_SPLATT = "%k splattered %o"; -BBA_SQUASH = "%k squashed %o"; -BBA_THROTTL = "%k throttled %o"; -BBA_WASTED = "%k wasted %o"; -BBA_BODYBAG = "%k body bagged %o"; -BBA_HELL = "%k sent %o to Hell"; -BBA_TOAST = "%k toasted %o"; -BBA_SNUFF = "%k snuffed %o"; -BBA_HOSED = "%k hosed %o"; -BBA_SPRAYED = "%k sprayed %o"; -BBA_DOGMEAT = "%k made dog meat out of %o"; -BBA_BEATEN = "%k beat %o like a cur"; - -BBA_EXCREMENT = "%o is excrement"; -BBA_HAMBURGER = "%o is hamburger"; -BBA_SCROTUM = "%o suffered scrotum separation"; -BBA_POPULATION = "%o volunteered for population control"; -BBA_SUICIDE = "%o has suicided"; -BBA_DARWIN = "%o received the Darwin Award"; - -// Chex Quest Strings -$ifgame(chex) HUSTR_E1M1 = "E1M1: Landing Zone"; -$ifgame(chex) HUSTR_E1M2 = "E1M2: Storage Facility"; -$ifgame(chex) HUSTR_E1M3 = "E1M3: Experimental Lab"; -$ifgame(chex) HUSTR_E1M4 = "E1M4: Arboretum"; -$ifgame(chex) HUSTR_E1M5 = "E1M5: Caverns of Bazoik"; -$ifgame(chex) HUSTR_E2M1 = "E2M1: Spaceport"; -$ifgame(chex) HUSTR_E2M2 = "E2M2: Cinema"; -$ifgame(chex) HUSTR_E2M3 = "E2M3: Chex Museum"; -$ifgame(chex) HUSTR_E2M4 = "E2M4: City Streets"; -$ifgame(chex) HUSTR_E2M5 = "E2M5: Sewer System"; -$ifgame(chex) HUSTR_E3M1 = "E3M1: Central Command"; -$ifgame(chex) HUSTR_E3M2 = "E3M2: United Cereals"; -$ifgame(chex) HUSTR_E3M3 = "E3M3: Villa Chex"; -$ifgame(chex) HUSTR_E3M4 = "E3M4: Provincial Park"; -$ifgame(chex) HUSTR_E3M5 = "E3M5: Meteor Spaceship"; - -$ifgame(chex) E1TEXT = - "Apos mandar a monstruosa Flembrane.\n" - "de volta a sua dimensao, voce solta os\n" - "prisioneiros. Mas ainda ha flemoids por\n" - "todo canto! Voce e os cativos dao um\n" - "jeito de chegar na sua espaconave. Os\n" - "flemoids eslameiam sua nave, mas voce\n" - "consegue chegar a orbita, escapando deles.\n" - "Enquanto comemoram felizes o resgate\n" - "e fuga, voce percebe uma coisa:\n" - "ainda nao acabou! Chegando ao seu lar, voce\n" - "ve que os flemoids de algum jeito chegaram\n" - "aqui. Prepare-se para\n" - "Chex Quest 2: Terror in Chex City!"; - -$ifgame(chex) E2TEXT = - "Voce zorcheou os flemoids restantes\n" - "que ficaram nos esgotos. Chex City foi\n" - "salva. Parece que a invasao acabou.\n" - "\nDez anos se passam. Mas os flemoids nao\n" - "foram derrotados, e seu desejo de dominar a\n" - "dimensao do cereal rico em nutrientes nao \n" - "diminuiu. Eles juntam todas as suas forcas e \n" - "abrem um buraco inter-dimensional no espaco.\n" - "Agora uma grande bola de muco esta vindo direto\n" - "para o planeta dos cereais!" - "\n Prepare-se para\n" - "Chex Quest 3: Invasion!"; - -$ifgame(chex) E3TEXT = - "Com este ultimo tiro, voce zorcheia Lord\n" - "Snotfolus de volta a sua dimensao! Contra\n" - "tudo e todos, voce conseguiu conter a \n" - "invasao!\n" - "\n" - "Voce espera que esses flemoids tenham \n" - "aprendido a licao e nunca mais retornar ao\n" - "mundo dos cereais.\n" - "\n" - "Mas se eles voltarem, voce sabe que estara\n" - "pronto para lutar!\n"; - -CLOADNET = "impossivel carregar, porque \n esta em partida online!\naperte uma tecla."; -CNEWGAME = "impossivel iniciar um novo jogo\nenquanto se esta online.\n\naperte uma tecla."; - -CNIGHTMARE = "Cuidado, isto vai ser dificil.\nDeseja continuar?\n"; - -CSWSTRING = "este e Chex(R) Quest. procure\npor outros niveis na internet.\n"; - -$ifgame(chex) NETEND = "voce nao pode finalizar uma partida online!\npressione qualquer tecla."; -$ifgame(chex) ENDGAME = "deseja realmente sair?\n"; - -GOTCHEXARMOR = "Pegou a armadura Chex(R)."; -GOTSUPERCHEXARMOR = "Pegou a super armadura Chex(R)!"; -GOTWATER = "Pegou um copo de agua."; -GOTREPELLENT = "Pegou repelente de lesma."; -GOTBREAKFAST = "Um belo cafe da manha!"; -GOTCBLUEKEY = "Pegou a chave azul."; -GOTCYELLOWKEY = "Pegou a chave amarela."; -GOTCREDKEY = "Pegou a chave vermelha."; -GOTFRUIT = "Pegou uma bacia de frutas."; -GOTVEGETABLESNEED = "Vegetais sao REALMENTE bons para voce!"; -GOTVEGETABLES = "Pegou uma bacia de vegetais."; -GOTSLIMESUIT = "Achou roupa anti-radiacao"; -GOTCHEXMAP = "Achou um GPS"; - -GOTZORCHRECHARGE = "Pegou carga para mini zorcher."; -GOTMINIZORCHPACK = "Pegou mais cargas para mini zorcher."; -GOTPROPULSORRECHARGE = "Pegou carga para propulsor zorch."; -GOTPROPULSORPACK = "Pegou mais cargas para propulsor zorch."; -GOTPHASINGZORCHERRECHARGE = "Pegou carga para mega zorcher."; -GOTPHASINGZORCHERPACK = "Pegou mais carga para mega zorcher."; -GOTLARGEZORCHERRECHARGE = "Pegou carga para zorcher grande."; -GOTLARGEZORCHERPACK = "Pegou mais carga para zorcher grande."; -GOTZORCHPACK = "Pegou um Zorchpak!"; - -GOTLAZDEVICE = "Voce achou LAZ Device! Legal!"; -GOTRAPIDZORCHER = "Voce achou Zorcher automatico!"; -GOTSUPERBOOTSPORK = "Voce achou Super garfo!"; -GOTZORCHPROPULSOR = "Voce achou Propulsor Zorch!"; -GOTPHASINGZORCHER = "Voce achou Mega Zorcher!"; -GOTLARGEZORCHER = "Voce achou Zorcher grande!"; -GOTSUPERLARGEZORCHER = "Voce achou Super Zorcher!"; -GOTMINIZORCHER = "Voce achou Mini Zorcher."; - -$ifgame(chex) STSTR_DQDON = "Modo invencivel ATIVADO"; -$ifgame(chex) STSTR_DQDOFF = "Modo invencivel DESATIVADO"; -$ifgame(chex) STSTR_FAADDED = "Zorch adicionado"; -$ifgame(chex) STSTR_KFAADDED = "Super Zorch adicionado"; -$ifgame(chex) STSTR_CHOPPERS = "... coma Chex(R)!"; - -OB_MPSPOON = "%o foi comido de colher por %k."; -OB_MPBOOTSPORK = "%o foi misturado pelo garfo de %k."; -OB_MPZORCH = "%o foi zorcheado por %k."; -OB_MPMEGAZORCH = "%o foi pego pelo zorcher grande de %k."; -OB_MPRAPIDZORCH = "%o foi zorcheado rapidamente por %k."; -OB_MPPROPULSOR = "%o foi zorcheado pelo propulsor de %k."; -OB_MPP_SPLASH = "%o foi pego pelo propulsor de %k."; -OB_MPPHASEZORCH = "%o foi mega zorcheado por %k."; -OB_MPLAZ_BOOM = "%o foi vitima do LAZ device de %k."; -OB_MPLAZ_SPLASH = "%o foi pego pelo LAZ device de %k."; diff --git a/wadsrc/static/language.rus b/wadsrc/static/language.rus deleted file mode 100644 index 1facbc50f..000000000 --- a/wadsrc/static/language.rus +++ /dev/null @@ -1,2869 +0,0 @@ -/* РуÑÑкий Ñзык */ - -[rus] - -SECRETMESSAGE = "Обнаружен тайник!"; - -D_DEVSTR = "Включен режим разработчика."; -D_CDROM = "ВерÑÐ¸Ñ Ð´Ð»Ñ Ð´Ð¸Ñка: файл zdoom.ini в c:\\zdoomdat\n"; -PRESSKEY = "Ðажмите любую клавишу."; -PRESSYN = "Ðажмите Y или N."; - -QUITMSG = "Ты дейÑтвительно хочешь выйти\nиз Ñтой замечательной игры?"; -TXT_YES = "Да"; -TXT_NO = "Ðет"; - -// Quit Doom 1 messages -QUITMSG1 = "ПожалуйÑта, не уходи!\nТут еще много демонов!"; -QUITMSG2 = "Да, давай, убегай, еÑли Ñта\nÐºÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð±Ð°Ð½Ñ Ñ‚ÐµÐ±Ðµ не по зубам!"; -QUITMSG3 = "Ðа твоем меÑте Ñ Ð±Ñ‹ не уходил.\nDOS намного Ñкучнее."; -QUITMSG4 = "Ты хочешь Ñказать, что DOS\nтебе нравитÑÑ Ð±Ð¾Ð»ÑŒÑˆÐµ, чем Ñ, а?"; -QUITMSG5 = "Ðе уходи! За углом\nпритаилÑÑ ÐµÑ‰Ðµ один монÑÑ‚Ñ€!"; -QUITMSG6 = "Знаешь, по возвращении тебÑ\nбудут ждать большие неприÑтноÑти."; -QUITMSG7 = "Давай, уходи. Мне Ñовершенно вÑе равно."; - -// Quit Doom II messages -QUITMSG8 = "Ð’Ñерьез задумываешь выйти?\nПолагаю, Ñто не очень-то разумно!"; -QUITMSG9 = "Ðе уходи! Тут чудовище из другого\nмира ожидает оÑобого приглашениÑ!"; -QUITMSG10 = "Вот и убирайÑÑ Ð¾Ñ‚Ñюда к\nÑвоим Ñкучным программам."; -QUITMSG11 = "Будь Ñ Ñ‚Ð²Ð¾Ð¸Ð¼ боÑÑом,\nразобралÑÑ Ð±Ñ‹ Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ ровно за минуту!"; -QUITMSG12 = "ПоÑлушай, дружище. Выйдешь —\nи ÑброÑишь Ñвой Ñчетчик убийÑтв!"; -QUITMSG13 = "Уходи, уходи... но когда вернешьÑÑ,\nÑ Ð±ÑƒÐ´Ñƒ ждать Ñ‚ÐµÐ±Ñ Ñ Ð±Ð¸Ñ‚Ð¾Ð¹."; -QUITMSG14 = "Тебе повезло, что Ñ Ð½Ðµ вмажу тебе\nза то, что Ñ‚Ñ‹ выходишь."; - -// Quit Strife messages -QUITMSG15 = "Куда Ñ‚Ñ‹ ÑобралÑÑ?\nРкак же воÑÑтание?!"; -QUITMSG16 = "Ð ÐµÐ·Ð½Ñ Ð¿Ñ€ÐµÐºÑ€Ð°Ñ‰Ð°ÐµÑ‚ÑÑ...\nÐа Ñамом интереÑном меÑте!"; -QUITMSG17 = "Ðо на Ñ‚ÐµÐ±Ñ Ð²ÑÑ Ð½Ð°Ð´ÐµÐ¶Ð´Ð° —\nÑ‚Ñ‹ мой единÑтвенный шанÑ!"; -QUITMSG18 = "Ðикто не броÑает Птицу."; -QUITMSG19 = "Я думала, Ñ‚Ñ‹ другой..."; -QUITMSG20 = "Отлично! ПоÑтрелÑл и ÑмылÑÑ!"; -QUITMSG21 = "Ты можешь уйти...\nно не можешь ÑпрÑтатьÑÑ..."; -QUITMSG22 = "Ха! Ð’ чем дело?\nМама зовет обедать?"; - -// Quit Chex messages -QUITMSG23 = "Ðе выходи ÑейчаÑ! ЗдеÑÑŒ еÑÑ‚ÑŒ\nеще много флемоидов!"; -QUITMSG24 = "Ðе ÑдавайÑÑ â€” не то флемоиды\nполучат преимущеÑтво!"; -QUITMSG25 = "Ðе уходи ÑейчаÑ.\nÐам нужна Ñ‚Ð²Ð¾Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ!"; -QUITMSG26 = "ÐадеюÑÑŒ, Ñ‚Ñ‹ лишь делаешь\nперерыв на тарелку хлопьев Chex(R)."; -QUITMSG27 = "Ðе уходи ÑейчаÑ!\nÐам нужна Ñ‚Ð²Ð¾Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ!"; -QUITMSG28 = "Ðе оÑтавлÑй\nМежгалактичеÑкую Федерацию Хлопьев!"; -QUITMSG29 = "ÐаÑтоÑщий Воин Chex(R)\nне ÑдаÑÑ‚ÑÑ Ñ‚Ð°Ðº быÑтро!"; - -LOADNET = "Ðевозможно загрузить Ñохранение в Ñетевой игре!\n\nÐажмите любую клавишу."; -QLOADNET = "Ðевозможно загрузить быÑтрое Ñохранение в Ñетевой игре!\n\nÐажмите любую клавишу."; -QSAVESPOT = "У Ð’Ð°Ñ Ð½Ðµ выбран Ñлот быÑтрого ÑохранениÑ!\n\nÐажмите любую клавишу."; -SAVEDEAD = "Ðевозможно Ñохранить игру, не начав ее!\n\nÐажмите любую клавишу."; -QSPROMPT = "ПерезапиÑать быÑтрое Ñохранение\n\n'%s'?\n\nÐажмите Y или N."; -QLPROMPT = "Загрузить быÑтрое Ñохранение\n\n'%s'?\n\nÐажмите Y или N."; -NEWGAME = "Ðевозможно начать новую игру\nпри активной Ñетевой игре.\n\nÐажмите любую клавишу."; -NIGHTMARE = "Уверены? Этот уровень ÑложноÑти\nдаже не близок к чеÑтному.\n\nÐажмите Y или N."; -SWSTRING = "Это демонÑÑ‚Ñ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Doom.\n\nВам необходимо приобреÑти вÑÑŽ трилогию.\n\nÐажмите любую клавишу."; -MSGOFF = "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐžÐ¢ÐšÐ›Ð®Ð§Ð•ÐЫ"; -MSGON = "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð’ÐšÐ›Ð®Ð§Ð•ÐЫ"; -NETEND = "Ðевозможно закончить Ñетевую игру!\n\nÐажмите любую клавишу."; -ENDGAME = "Ð’Ñ‹ дейÑтвительно хотите закончить игру?\n\nÐажмите Y или N."; -DOSY = "(Ðажмите Y, чтобы выйти)"; -EMPTYSTRING = "ПуÑтой Ñлот"; -GOTARMOR = "Получена бронÑ."; -GOTMEGA = "Получена мегабронÑ!"; -GOTHTHBONUS = "Получен Ð±Ð¾Ð½ÑƒÑ Ðº здоровью."; -GOTARMBONUS = "Получен Ð±Ð¾Ð½ÑƒÑ Ðº броне."; -GOTSTIM = "Получен ÑтимулÑтор."; -GOTMEDINEED = "Получена крайне Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð°Ð¿Ñ‚ÐµÑ‡ÐºÐ°!"; -GOTMEDIKIT = "Получена аптечка."; -GOTSUPER = "СверхзарÑд!"; -GOTBLUECARD = "Получена ÑинÑÑ ÐºÐ»ÑŽÑ‡-карта."; -GOTYELWCARD = "Получена Ð¶ÐµÐ»Ñ‚Ð°Ñ ÐºÐ»ÑŽÑ‡-карта"; -GOTREDCARD = "Получена краÑÐ½Ð°Ñ ÐºÐ»ÑŽÑ‡-карта."; -GOTBLUESKUL = "Получен Ñиний ключ-череп."; -GOTYELWSKUL = "Получен желтый ключ-череп."; -GOTREDSKUL = "Получен краÑный ключ-череп."; -GOTINVUL = "ÐеуÑзвимоÑÑ‚ÑŒ!"; -GOTBERSERK = "БерÑерк!"; -GOTINVIS = "ЧаÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚ÑŒ."; -GOTSUIT = "КоÑтюм радиационной защиты."; -GOTMAP = "ÐšÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° уровнÑ."; -GOTVISOR = "Очки ночного видениÑ."; -GOTMSPHERE = "МегаÑфера!"; -GOTCLIP = "Получен магазин."; -GOTCLIPBOX = "Получена коробка патронов."; -GOTROCKET = "Получена ракета."; -GOTROCKBOX = "Получен Ñщик ракет."; -GOTCELL = "Получена ÑнергобатареÑ."; -GOTCELLBOX = "Получен ÑнергоаккумулÑтор."; -GOTSHELLS = "Получено 4 патрона Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°."; -GOTSHELLBOX = "Получена коробка патронов Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°."; -GOTBACKPACK = "Получен рюкзак, полный патронов!"; -GOTBFG9000 = "Получено BFG9000! О, да!"; -GOTCHAINGUN = "Получен пулемет!"; -GOTCHAINSAW = "Бензопила! Ðайди немного мÑÑа!"; -GOTLAUNCHER = "Получена ракетница!"; -GOTPLASMA = "Получен плазмомет!"; -GOTSHOTGUN = "Получен дробовик!"; -GOTSHOTGUN2 = "Получен Ñупер-дробовик!"; -PD_BLUEO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний ключ"; -PD_REDO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный ключ"; -PD_YELLOWO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен желтый ключ"; -PD_BLUEK = "Ðужен Ñиний ключ, чтобы открыть"; -PD_REDK = "Ðужен краÑный ключ, чтобы открыть"; -PD_YELLOWK = "Ðужен желтый ключ, чтобы открыть"; -PD_BLUECO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний ключ"; -PD_REDCO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный ключ"; -PD_YELLOWCO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен желтый ключ"; -PD_BLUESO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний череп."; -PD_REDSO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный череп."; -PD_YELLOWSO = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен желтый череп."; -NEWSAVE = "<Ðовое Ñохранение>"; -GGSAVED = "Игра Ñохранена!"; -HUSTR_MSGU = "[Сообщение не отправлено]"; -PICKUP_PISTOL_DROPPED = "Получен пиÑтолет."; -BETA_BONUS1 = "Ð’Ñ‹ подобрали демоничеÑкий кинжал."; -BETA_BONUS2 = "Ð’Ñ‹ подобрали Ñундук Ñ Ñ‡ÐµÑ€ÐµÐ¿Ð¾Ð¼."; -BETA_BONUS3 = "Ð’Ñ‹ подобрали Ñкипетр зла."; -BETA_BONUS4 = "Ð’Ñ‹ подобрали порочную Библию."; - -// ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¹ -HUSTR_E1M1 = "E1M1: Ðнгар"; -HUSTR_E1M2 = "E1M2: ÐÑ‚Ð¾Ð¼Ð½Ð°Ñ Ð­Ð»ÐµÐºÑ‚Ñ€Ð¾ÑтанциÑ"; -HUSTR_E1M3 = "E1M3: Завод По Переработке ТокÑинов"; -HUSTR_E1M4 = "E1M4: Командный Пункт"; -HUSTR_E1M5 = "E1M5: Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Ðа ФобоÑе"; -HUSTR_E1M6 = "E1M6: Центральный Пункт Обработки"; -HUSTR_E1M7 = "E1M7: ВычиÑлительный Центр"; -HUSTR_E1M8 = "E1M8: ÐÐ½Ð¾Ð¼Ð°Ð»Ð¸Ñ Ð¤Ð¾Ð±Ð¾Ñа"; -HUSTR_E1M9 = "E1M9: Ð’Ð¾ÐµÐ½Ð½Ð°Ñ Ð‘Ð°Ð·Ð°"; -HUSTR_E2M1 = "E2M1: ÐÐ½Ð¾Ð¼Ð°Ð»Ð¸Ñ Ð”ÐµÐ¹Ð¼Ð¾Ñа"; -HUSTR_E2M2 = "E2M2: Хранилище"; -HUSTR_E2M3 = "E2M3: ОчиÑтительный Завод"; -HUSTR_E2M4 = "E2M4: Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Ðа ДеймоÑе"; -HUSTR_E2M5 = "E2M5: Командный Центр"; -HUSTR_E2M6 = "E2M6: Залы ПроклÑÑ‚Ñ‹Ñ…"; -HUSTR_E2M7 = "E2M7: ÐереÑтилище"; -HUSTR_E2M8 = "E2M8: ВавилонÑÐºÐ°Ñ Ð‘Ð°ÑˆÐ½Ñ"; -HUSTR_E2M9 = "E2M9: КрепоÑÑ‚ÑŒ Тайн"; -HUSTR_E3M1 = "E3M1: КрепоÑÑ‚ÑŒ Ðда"; -HUSTR_E3M2 = "E3M2: ТрÑÑина ОтчаÑниÑ"; -HUSTR_E3M3 = "E3M3: Пандемониум"; -HUSTR_E3M4 = "E3M4: Дом Боли"; -HUSTR_E3M5 = "E3M5: ÐечеÑтивый Собор"; -HUSTR_E3M6 = "E3M6: ЭребуÑ"; -HUSTR_E3M7 = "E3M7: Лимб"; -HUSTR_E3M8 = "E3M8: Дит"; -HUSTR_E3M9 = "E3M9: Кроличий Сад"; -HUSTR_E4M1 = "E4M1: ПреиÑподнÑÑ Ð’Ð½Ð¸Ð·Ñƒ"; -HUSTR_E4M2 = "E4M2: ÐŸÐ¾Ð»Ð½Ð°Ñ ÐенавиÑÑ‚ÑŒ"; -HUSTR_E4M3 = "E4M3: Отделить Злых"; -HUSTR_E4M4 = "E4M4: Ðеудержимое Зло"; -HUSTR_E4M5 = "E4M5: Они ПокаютÑÑ"; -HUSTR_E4M6 = "E4M6: Против Ð¢ÐµÐ±Ñ ÐечеÑтиво"; -HUSTR_E4M7 = "E4M7: И ПоÑледовал Ðд"; -HUSTR_E4M8 = "E4M8: К Мучителю"; -HUSTR_E4M9 = "E4M9: Страх"; - -hustr_1 = "уровень 1: вход"; -hustr_2 = "уровень 2: подземные ходы"; -hustr_3 = "уровень 3: вызов брошен"; -hustr_4 = "уровень 4: Ñредоточие"; -hustr_5 = "уровень 5: Ñточные туннели"; -hustr_6 = "уровень 6: преÑÑ"; -hustr_7 = "уровень 7: Ñмертельно проÑто"; -hustr_8 = "уровень 8: уловки и ловушки"; -hustr_9 = "уровень 9: Ñма"; -hustr_10 = "уровень 10: Ð·Ð°Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð±Ð°Ð·Ð°"; -hustr_11 = "уровень 11: круг разрушениÑ!"; -hustr_12 = "уровень 12: фабрика"; -hustr_13 = "уровень 13: деловой район"; -hustr_14 = "уровень 14: глубочайшие логовища"; -hustr_15 = "уровень 15: Ð¿Ñ€Ð¾Ð¼Ñ‹ÑˆÐ»ÐµÐ½Ð½Ð°Ñ Ð·Ð¾Ð½Ð°"; -hustr_16 = "уровень 16: пригород"; -hustr_17 = "уровень 17: владениÑ"; -hustr_18 = "уровень 18: внутренний двор"; -hustr_19 = "уровень 19: цитадель"; -hustr_20 = "уровень 20: попалÑÑ!"; -hustr_21 = "уровень 21: нирвана"; -hustr_22 = "уровень 22: катакомбы"; -hustr_23 = "уровень 23: бочки веÑельÑ"; -hustr_24 = "уровень 24: пропаÑÑ‚ÑŒ"; -hustr_25 = "уровень 25: кровопады"; -hustr_26 = "уровень 26: заброшенные шахты"; -hustr_27 = "уровень 27: жилище монÑтров"; -hustr_28 = "уровень 28: мир духов"; -hustr_29 = "уровень 29: конец вÑего живого"; -hustr_30 = "уровень 30: икона греха"; -hustr_31 = "уровень 31: вольфенштайн"; -hustr_32 = "уровень 32: гроÑÑе"; -hustr_31b = "уровень 31: idkfa"; -hustr_32b = "уровень 32: кин"; -hustr_33 = "уровень 33: предательÑтво"; - -NHUSTR_1 = "уровень 1: база на земле"; -NHUSTR_2 = "уровень 2: лаборатории боли"; -NHUSTR_3 = "уровень 3: каньон мертвецов"; -NHUSTR_4 = "уровень 4: адÑÐºÐ°Ñ Ð³Ð¾Ñ€Ð°"; -NHUSTR_5 = "уровень 5: вивиÑекциÑ"; -NHUSTR_6 = "уровень 6: ÐºÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð¿Ñ€ÐµÐ¸ÑподнÑÑ"; -NHUSTR_7 = "уровень 7: банкет у барона"; -NHUSTR_8 = "уровень 8: гробница злобы"; -NHUSTR_9 = "уровень 9: шеÑтвие демонов"; - -PHUSTR_1 = "уровень 1: конго"; -PHUSTR_2 = "уровень 2: колодец душ"; -PHUSTR_3 = "уровень 3: ацтек"; -PHUSTR_4 = "уровень 4: запертый в клетке"; -PHUSTR_5 = "уровень 5: город-призрак"; -PHUSTR_6 = "уровень 6: обитель барона"; -PHUSTR_7 = "уровень 7: двор-ловушка"; -PHUSTR_8 = "уровень 8: царÑтво"; -PHUSTR_9 = "уровень 9: аббатÑтво"; -PHUSTR_10 = "уровень 10: натиÑк"; -PHUSTR_11 = "уровень 11: преÑледуемый"; -PHUSTR_12 = "уровень 12: ÑкороÑÑ‚ÑŒ"; -PHUSTR_13 = "уровень 13: Ñклеп"; -PHUSTR_14 = "уровень 14: зарождение"; -PHUSTR_15 = "уровень 15: Ñумерки"; -PHUSTR_16 = "уровень 16: предзнаменование"; -PHUSTR_17 = "уровень 17: компаунд"; -PHUSTR_18 = "уровень 18: нейроÑфера"; -PHUSTR_19 = "уровень 19: в.Ñ€.а.г."; -PHUSTR_20 = "уровень 20: обитель Ñмерти"; -PHUSTR_21 = "уровень 21: убийца"; -PHUSTR_22 = "уровень 22: невыполнимое задание"; -PHUSTR_23 = "уровень 23: надгробие"; -PHUSTR_24 = "уровень 24: поÑледний рубеж"; -PHUSTR_25 = "уровень 25: храм тьмы"; -PHUSTR_26 = "уровень 26: бункер"; -PHUSTR_27 = "уровень 27: антихриÑÑ‚"; -PHUSTR_28 = "уровень 28: канализациÑ"; -PHUSTR_29 = "уровень 29: одиÑÑÐµÑ ÑˆÑƒÐ¼Ð¾Ð²"; -PHUSTR_30 = "уровень 30: врата ада"; -PHUSTR_31 = "уровень 31: киберлогово"; -PHUSTR_32 = "уровень 32: иди к Ñему"; - -THUSTR_1 = "уровень 1: центр ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемой"; -THUSTR_2 = "уровень 2: барбекю из человечины"; -THUSTR_3 = "уровень 3: центр ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¸Ñ‚Ð°Ð½Ð¸ÐµÐ¼"; -THUSTR_4 = "уровень 4: червоточина"; -THUSTR_5 = "уровень 5: виÑелица"; -THUSTR_6 = "уровень 6: открытый Ñезон"; -THUSTR_7 = "уровень 7: тюрьма"; -THUSTR_8 = "уровень 8: металл"; -THUSTR_9 = "уровень 9: крепоÑÑ‚ÑŒ"; -THUSTR_10 = "уровень 10: иÑкупление"; -THUSTR_11 = "уровень 11: Ñклад"; -THUSTR_12 = "уровень 12: кратер"; -THUSTR_13 = "уровень 13: переработка Ñдерных отходов"; -THUSTR_14 = "уровень 14: металлургиÑ"; -THUSTR_15 = "уровень 15: Ð¼ÐµÑ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð°"; -THUSTR_16 = "уровень 16: глубочайшие доÑтижениÑ"; -THUSTR_17 = "уровень 17: зона обработки"; -THUSTR_18 = "уровень 18: завод"; -THUSTR_19 = "уровень 19: погрузка/отправка"; -THUSTR_20 = "уровень 20: центральный пункт обработки"; -THUSTR_21 = "уровень 21: админиÑтративный центр"; -THUSTR_22 = "уровень 22: обиталище"; -THUSTR_23 = "уровень 23: лунный горный проект"; -THUSTR_24 = "уровень 24: карьер"; -THUSTR_25 = "уровень 25: логово барона"; -THUSTR_26 = "уровень 26: баллиÑтикÑ"; -THUSTR_27 = "уровень 27: гора боль"; -THUSTR_28 = "уровень 28: чертовщина"; -THUSTR_29 = "уровень 29: река ÑтикÑ"; -THUSTR_30 = "уровень 30: поÑледний вызов"; -THUSTR_31 = "уровень 31: фараон"; -THUSTR_32 = "уровень 32: карибы"; - -HUSTR_TALKTOSELF1 = "Ðеразборчивое бормотание"; -HUSTR_TALKTOSELF2 = "Кто там?"; -HUSTR_TALKTOSELF3 = "Что Ñто было?"; -HUSTR_TALKTOSELF4 = "Ð’Ñ‹ бредите."; -HUSTR_TALKTOSELF5 = "ÐšÐ°ÐºÐ°Ñ Ð´Ð¾Ñада..."; -HUSTR_MESSAGESENT = "[Сообщение Отправлено]"; - -AMSTR_FOLLOWON = "ПривÑзка к игроку ВКЛЮЧЕÐÐ"; -AMSTR_FOLLOWOFF = "ПривÑзка к игроку ОТКЛЮЧЕÐÐ"; -AMSTR_GRIDON = "Сетка ВКЛЮЧЕÐÐ"; -AMSTR_GRIDOFF = "Сетка ОТКЛЮЧЕÐÐ"; -AMSTR_TEXON = "ТекÑтурный режим ВКЛЮЧЕÐ"; -AMSTR_TEXOFF = "ТекÑтурный режим ОТКЛЮЧЕÐ"; -AMSTR_MARKEDSPOT = "Отметка"; -AMSTR_MARKSCLEARED = "Отметки очищены"; -STSTR_MUS = "Смена музыки"; -STSTR_NOMUS = "ÐЕКОРРЕКТÐЫЙ ВЫБОР"; -STSTR_DQDON = "ÐеуÑзвимоÑÑ‚ÑŒ включена"; -STSTR_DQDOFF = "ÐеуÑзвимоÑÑ‚ÑŒ выключена"; -STSTR_DQD2ON = "ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÑƒÑзвимоÑÑ‚ÑŒ включена"; -STSTR_DQD2OFF = "ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÑƒÑзвимоÑÑ‚ÑŒ выключена"; -STSTR_KFAADDED = "Ð‘Ð¾ÐµÐ·Ð°Ð¿Ð°Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½"; -STSTR_FAADDED = "Ð‘Ð¾ÐµÐ·Ð°Ð¿Ð°Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½ (без ключей)"; -STSTR_NCON = "Прохождение Ñквозь Ñтены включено"; -STSTR_NCOFF = "Прохождение Ñквозь Ñтены выключено"; -STSTR_NC2ON = "Полёт Ñковозь Ñтены включен"; -STSTR_BEHOLD = "m=беÑÑм., s=берÑ., i=нев., r=коÑ., a=крт., l=виз."; -STSTR_BEHOLDX = "Предмет переключен"; -STSTR_CHOPPERS = "... неплохо — г.м."; -STSTR_CLEV = "Смена уровнÑ...\n"; -TXT_BUDDHAON = "Ð’Ñ‹ теперь Будда."; -TXT_BUDDHAOFF = "Ð’Ñ‹ больше не Будда."; -TXT_BUDDHA2ON = "Ð’Ñ‹ теперь абÑолютный Будда."; -TXT_BUDDHA2OFF = "Ð’Ñ‹ больше не абÑолютный Будда."; -TXT_DEFAULTPICKUPMSG = "Что-то подобрано"; - -E1TEXT = - "Уничтожив Баронов Ðда и зачиÑтив лунную\n" - "базу, Ð’Ñ‹ должны были победить, не так ли?\n" - "Ðе так ли? Где заÑÐ»ÑƒÐ¶ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° и\n" - "билет домой? Что Ñто за чертовщина?\n" - "Ð’Ñе должно было закончитьÑÑ Ð½Ðµ так!\n" - "\n" - "Это меÑто пахнет как гнилое мÑÑо, а\n" - "выглÑдит как потерÑÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° на ДеймоÑе.\n" - "Похоже, Ð’Ñ‹ заÑÑ‚Ñ€Ñли на «Берегах Ðда», и\n" - "единÑтвенный путь теперь — пройти их.\n" - "\n" - "Чтобы продолжить погружение в игру,\n" - "пройдите Ñпизод «Берега Ðда» и его\n" - "замечательный Ñиквел «Инферно»!"; -E2TEXT = - "У Ð’Ð°Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð»Ð¾ÑÑŒ! УжаÑный Лорд-\n" - "Кибердемон, правÑщий потерÑнной\n" - "деймоÑовÑкой базой, был повержен\n" - "и Ð’Ñ‹ торжеÑтвуете! Ðо... Где Ð’Ñ‹?\n" - "ПодобравшиÑÑŒ к краю Ñпутника, Ð’Ñ‹\n" - "обращаете взор вниз, чтобы\n" - "увидеть ужаÑную правду.\n" - "\n" - "Ð”ÐµÐ¹Ð¼Ð¾Ñ Ð¿Ð»Ñ‹Ð²ÐµÑ‚ над Ñамим Ðдом!\n" - "Ð’Ñ‹ никогда не Ñлышали, чтобы кто-нибудь\n" - "Ñбегал из Ðда, но Ð’Ñ‹ заÑтавите ублюдков\n" - "пожалеть о том, что они проÑлышали о ВаÑ.\n" - "ПоÑпешно обвÑзавшиÑÑŒ веревкой, Ð’Ñ‹\n" - "ÑпуÑкаетеÑÑŒ на поверхноÑÑ‚ÑŒ Ðда.\n" - "\n" - "Теперь наÑтупает Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледней главы\n" - "— «Инферно»."; -E3TEXT = - "Омерзительный паукодемон,\n" - "руководивший вторжением на лунные\n" - "базы и принеÑший Ñтоль много\n" - "Ñмертей, был окончательно повержен.\n" - "\n" - "ОткрываетÑÑ Ñ‚Ð°Ð¹Ð½Ð¸ÐºÐ½Ð°Ñ Ð´Ð²ÐµÑ€ÑŒ и Ð’Ñ‹\n" - "входите в нее. Ð’Ñ‹ доказали, что\n" - "Ñлишком круты Ð´Ð»Ñ Ð°Ð´Ð°, и поÑтому\n" - "Ðд, наконец, поÑтупает Ñправедливо —\n" - "Ð’Ñ‹ выходите из двери прÑмо на\n" - "зеленые Ð¿Ð¾Ð»Ñ Ð—ÐµÐ¼Ð»Ð¸. Ðаконец-то дом.\n" - "\n" - "Ð’Ñ‹ Ñпрашиваете ÑебÑ: что проиÑходило\n" - "на Земле, пока Ð’Ñ‹ ÑражалиÑÑŒ Ñ\n" - "выÑвободившимÑÑ Ð·Ð»Ð¾Ð¼? Хорошо, что ни\n" - "одно порождение Ðда не Ñмогло пройти\n" - "через Ñту дверь вмеÑте Ñ Ð’Ð°Ð¼Ð¸..."; -E4TEXT = - "паук-предводитель, должно быть, поÑлал\n" - "вперед Ñвои легионы порождений ада\n" - "перед вашим поÑледним Ñражением Ñ Ñтим\n" - "ужаÑным отродьем. но вы пошли до конца\n" - "и принеÑли вечное проклÑтье и Ñтрадание\n" - "Ñтой орде так, как поÑтупил бы наÑтоÑщий\n" - "герой перед лицом Ñмертельной опаÑноÑти.\n" - "\n" - "кроме того, кто-то должен был заплатить\n" - "за то, что ÑлучилоÑÑŒ Ñ Ð´Ñйзи, вашей\n" - "домашней крольчихой.\n" - "\n" - "теперь вы видите, Ñколь много боли и\n" - "крови вам пророчат полчища демонов,\n" - "неиÑтовÑтвующих в наших городах.\n" - "\n" - "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð¾Ñтановка — ад на земле!"; -C1TEXT = - "ВЫ ПРОШЛИ ВГЛУБЬ ЗÐРÐЖЕÐÐОГО КОСМОПОРТÐ,\n" - "ÐО ЧТО-ТО ЗДЕСЬ ÐЕ ТÐК. МОÐСТРЫ ПРИÐЕСЛИ\n" - "С СОБОЙ СВОЮ СОБСТВЕÐÐУЮ РЕÐЛЬÐОСТЬ,\n" - "И ТЕХÐИКРКОСМОПОРТÐ\n" - "ТРÐÐСФОРМИРУЕТСЯ ОТ ИХ ПРИСУТСТВИЯ.\n" - "\n" - "ВПЕРЕДИ ВЫ ВИДИТЕ ÐÐ’ÐÐПОСТ ÐДÐ.\n" - "ЕСЛИ Ð’ÐÐœ УДÐСТСЯ ПРОБРÐТЬСЯ ЧЕРЕЗ ÐЕГО,\n" - "ВЫ СМОЖЕТЕ ПРОÐИКÐУТЬ Ð’ ÐÐСЕЛЕÐÐЫЙ\n" - "ДЕМОÐÐМИ ЦЕÐТР БÐЗЫ И ÐÐЙТИ УПРÐВЛЯЮЩИЙ\n" - "ВЫКЛЮЧÐТЕЛЬ, ДЕРЖÐЩИЙ ÐÐСЕЛЕÐИЕ ЗЕМЛИ\n" - "Ð’ ЗÐЛОЖÐИКÐÐ¥."; -C2TEXT = - "ВЫ ПОБЕДИЛИ! Ð’ÐШРПОБЕДРПОЗВОЛИЛÐ\n" - "ЧЕЛОВЕЧЕСТВУ ЭВÐКУИРОВÐТЬСЯ С ЗЕМЛИ\n" - "И СПÐСТИСЬ ОТ КОШМÐРÐ. ТЕПЕРЬ ВЫ —\n" - "ЕДИÐСТВЕÐÐЫЙ ЧЕЛОВЕК, ОСТÐВШИЙСЯ ÐÐ\n" - "ПЛÐÐЕТЕ, И ЛЮДОЕДЫ-МУТÐÐТЫ, ХИЩÐЫЕ\n" - "ИÐОПЛÐÐЕТЯÐЕ И ЗЛЫЕ ДУХИ — Ð’ÐШИ\n" - "ЕДИÐСТВЕÐÐЫЕ СОСЕДИ. УДОВЛЕТВОРЕÐÐЫЙ\n" - "СПÐСЕÐИЕМ СВОЕГО ВИДÐ, ВЫ СПОКОЙÐО\n" - "ДОЖИДÐЕТЕСЬ ÐЕМИÐУЕМОЙ ГИБЕЛИ.\n" - "\n" - "ÐО ВСКОРЕ РУКОВОДСТВО ЗЕМЛИ ПЕРЕДÐЕТ\n" - "СООБЩЕÐИЕ С ОРБИТЫ: «СЕÐСОРЫ ОБÐÐРУЖИЛИ\n" - "ИСТОЧÐИК ИÐОПЛÐÐЕТÐОГО ВТОРЖЕÐИЯ. Ð’ÐШÐ\n" - "ЗÐДÐЧР— ЛИКВИДИРОВÐТЬ ЕГО». ИÐОПЛÐÐЕТÐÐЯ\n" - "БÐЗРÐÐХОДИТСЯ Ð’ ЦЕÐТРЕ Ð’ÐШЕГО ГОРОДÐ,\n" - "ÐЕДÐЛЕКО ОТ КОСМОПОРТÐ. МЕДЛЕÐÐО И\n" - "МУЧИТЕЛЬÐО ВЫ ВОЗВРÐЩÐЕТЕСЬ Ð’ БОЙ.\n"; -C3TEXT = - "ВЫ ÐÐХОДИТЕСЬ Ð’ РÐЗЛÐГÐЮЩЕМСЯ СЕРДЦЕ\n" - "ГОРОДÐ, Ð’ ОКРУЖЕÐИИ ТРУПОВ СВОИХ ВРÐГОВ.\n" - "ВЫ ÐЕ ВИДИТЕ ÐИКÐКОГО СПОСОБРУÐИЧТОЖИТЬ\n" - "ПОРТÐЛ ÐРЭТОЙ СТОРОÐЕ, И ПОЭТОМУ, СТИСÐУВ\n" - "ЗУБЫ, ПРОХОДИТЕ СКВОЗЬ ÐЕГО.\n" - "\n" - "ДОЛЖЕРБЫТЬ СПОСОБ ЗÐКРЫТЬ ПОРТÐЛ\n" - "ÐРДРУГОЙ СТОРОÐЕ. И КÐКОЕ Ð’ÐÐœ ДЕЛО ДО\n" - "ТОГО, ЧТО ПРИДЕТСЯ ПРОЙТИ ЧЕРЕЗ ÐД, ЧТОБЫ\n" - "ДОБРÐТЬСЯ ДО ÐЕГО?"; -C4TEXT = - "ЖУТЧÐЙШИЙ ЛИК СÐМОГО БОЛЬШОГО ДЕМОÐÐ,\n" - "КОТОРОГО ВЫ КОГДÐ-ЛИБО ВИДЕЛИ, РУШИТСЯ\n" - "ÐÐ Ð’ÐШИХ ГЛÐЗÐÐ¥ ПОСЛЕ ТОГО, КÐК ВЫ\n" - "ÐÐКÐЧÐЛИ РÐКЕТÐМИ ЕГО ÐЕЗÐЩИЩЕÐÐЫЙ\n" - "МОЗГ. МОÐСТР УГÐСÐЕТ И ГИБÐЕТ,\n" - "РÐЗРУШÐЯ БЕСЧИСЛЕÐÐЫЕ МИЛИ ПОВЕРХÐОСТИ\n" - "ÐДÐ.\n" - "\n" - "ВЫ СДЕЛÐЛИ ЭТО. ВТОРЖЕÐИЮ КОÐЕЦ. ЗЕМЛЯ\n" - "СПÐСЕÐÐ. ÐД ПОВЕРЖЕÐ. ВЫ СПРÐШИВÐЕТЕ\n" - "СЕБЯ: КУДРТЕПЕРЬ ПОСЛЕ СМЕРТИ БУДУТ\n" - "ПОПÐДÐТЬ ПЛОХИЕ ЛЮДИ? УТЕРЕВ ПОТ\n" - "СО ЛБÐ, ВЫ ÐÐЧИÐÐЕТЕ ДОЛГОЕ ПУТЕШЕСТВИЕ\n" - "ОБРÐТÐО ДОМОЙ. ВОССТÐÐОВЛЕÐИЕ ЗЕМЛИ\n" - "ДОЛЖÐО БЫТЬ ГОРÐЗДО БОЛЕЕ ИÐТЕРЕСÐЫМ\n" - "ЗÐÐЯТИЕМ, ÐЕЖЕЛИ ЕЕ РÐЗРУШЕÐИЕ."; -C5TEXT = - "ПОЗДРÐВЛЯЕМ, ВЫ ÐÐШЛИ СЕКРЕТÐЫЙ УРОВЕÐЬ!\n" - "ПОХОЖЕ, ОРБЫЛ ПОСТРОЕРЛЮДЬМИ, Ð ÐЕ\n" - "ДЕМОÐÐМИ. ЛЮБОПЫТÐО, КТО ЖЕ ÐÐСЕЛЯЕТ\n" - "ЭТОТ УГОЛОК ÐДÐ?\n"; -C6TEXT = - "ПОЗДРÐВЛЯЕМ, ВЫ ÐÐШЛИ СВЕРХСЕКРЕТÐЫЙ\n" - "УРОВЕÐЬ! ЛУЧШЕ БЫ Ð’ÐÐœ СТРЕМИТЕЛЬÐО\n" - "ПРОРВÐТЬСЯ СКВОЗЬ ÐЕГО!"; -P1TEXT = - "Ð’Ñ‹ Ñо злорадÑтвом Ñмотрите на горÑщий\n" - "ÐºÐ°Ñ€ÐºÐ°Ñ Ð¡Ñ‚Ñ€Ð°Ð¶Ð°. С его Ñмертью Ð’Ñ‹ вырвали\n" - "УÑкоритель из зловонных когтей Ðда.\n" - "РаÑÑлабившиÑÑŒ, Ð’Ñ‹ окидываете взглÑдом\n" - "помещение. ПроклÑтье! Тут должен быть\n" - "Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один рабочий прототип, но\n" - "демоны, должно быть, забрали его Ñ Ñобой.\n" - "\n" - "Ð’Ñ‹ должны найти прототип, иначе вÑе Ваши\n" - "прошлые уÑÐ¸Ð»Ð¸Ñ Ð¾ÐºÐ°Ð¶ÑƒÑ‚ÑÑ Ð½Ð°Ð¿Ñ€Ð°Ñными.\n" - "Продолжайте двигатьÑÑ, продолжайте\n" - "ÑражатьÑÑ, продолжайте убивать. И да,\n" - "продолжайте выживать."; -P2TEXT = - "Даже Ñмертельный лабиринт арчвайлов не\n" - "Ñмог оÑтановить ВаÑ. Ð’Ñ‹ добралиÑÑŒ до\n" - "прототипа УÑкорителÑ, который вÑкоре\n" - "был уничтожен раз и навÑегда.\n" - "\n" - "Уничтожение — Ваша ÑпециальноÑÑ‚ÑŒ."; -P3TEXT = - "Ð’Ñ‹ пробили путь в Ñамое\n" - "Ñердце дьÑвольÑкого ульÑ. ÐаÑтало времÑ\n" - "Ð´Ð»Ñ Ð¼Ð¸ÑÑии «найти и уничтожить»,\n" - "объектом которой Ñтанет Привратник,\n" - "чьи нечеÑтивые отпрыÑки низвергаютÑÑ\n" - "на Землю.\n" - "\n" - "Да, он плохой. Ðо Ð’Ñ‹ знаете кто еще хуже!\n" - "\n" - "Злобно ухмылÑÑÑÑŒ, Ð’Ñ‹ проверÑете Ñвое\n" - "ÑнарÑжение, и готовитеÑÑŒ преподать\n" - "ублюдку немного Ðда Вашего\n" - "ÑобÑтвенного производÑтва!"; -P4TEXT = - "ПоÑле ÑƒÐ½Ð¸Ñ‡Ñ‚Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ° Привратника\n" - "начинают формироватьÑÑ Ð¸Ð½Ð²ÐµÑ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ðµ\n" - "Врата, которые затÑгивают в ÑебÑ\n" - "поÑледние обломки УÑÐºÐ¾Ñ€Ð¸Ñ‚ÐµÐ»Ñ Ð¸\n" - "неÑкольких оÑтавшихÑÑ Ð´ÐµÐ¼Ð¾Ð½Ð¾Ð².\n" - "\n" - "Готово. Ðд вернулÑÑ Ð½Ð° круги ÑвоÑ,\n" - "Ð¿Ð¾Ð³Ð»Ð¾Ñ‰Ð°Ñ Ð»Ð¸ÑˆÑŒ грешных людей, а не\n" - "праведных.\n" - "\n" - "Ðе забудьте попроÑить внуков положить\n" - "ракетницу в Ваш гроб. ЕÑли поÑле Ñмерти\n" - "Ð’Ñ‹ попадете в Ðд, она понадобитÑÑ\n" - "Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ поÑледней зачиÑтки..."; -P5TEXT = - "Ð’Ñ‹ нашли второй по ÑложноÑти уровень,\n" - "который у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ. ÐадеемÑÑ, Ð’Ñ‹\n" - "Ñохранили игру на предыдущем уровне\n" - "или еще раньше. ЕÑли нет, приготовьтеÑÑŒ\n" - "много умирать.\n" - "\n" - "Уровень раÑÑчитан иÑключительно на\n" - "профеÑÑионалов."; -P6TEXT = - "Спорим, Ð’Ñ‹ удивлÑлиÑÑŒ, какой же уровень\n" - "СÐМЫЙ Ñложный? Теперь Ð’Ñ‹ знаете.\n" - "Ðикто не выберетÑÑ Ð¶Ð¸Ð²Ñ‹Ð¼."; -T1TEXT = - "СражаÑÑÑŒ, Ð’Ñ‹ выбралиÑÑŒ из зараженных\n" - "ÑкÑпериментальных лабораторий.\n" - "Похоже, ОÐК раÑтранжирила и их, неÑмотрÑ\n" - "на огромные корпоративные доходы. Они\n" - "даже не позаботилиÑÑŒ о покупке Ñтраховок\n" - "Ð´Ð»Ñ Ñвоих Ñотрудников...\n" - "\n" - "Впереди раÑположен военный комплекÑ,\n" - "кишащий вируÑами и только ждущий\n" - "как бы вгрызтьÑÑ Ð² Вашу плоть. Что ж,\n" - "еÑли повезет, в комплекÑе вÑе еще\n" - "должны оÑтаватьÑÑ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°ÑÑ‹."; -T2TEXT = - "Впереди Ñлышен металличеÑкий Ñкрежет\n" - "Ñ‚Ñжелых механизмов. Ð’Ñ‹ уверены, что они\n" - "не штампуют очередную партию\n" - "дьÑвольÑких отродий, но даже еÑли\n" - "и так, Ð’Ñ‹ к Ñтому готовы.\n" - "\n" - "Эти звуки могут означать очередной\n" - "кровавый феÑтиваль, но Ð’Ñ‹ чувÑтвуете\n" - "ÑÐµÐ±Ñ ÐºÐ°Ðº Ñ‚Ñ‹ÑÑчи головорезов,\n" - "Ñобранных в одном безумном убийце.\n" - "\n" - "Ð’Ñ‹ так проÑто не ÑдадитеÑÑŒ."; -T3TEXT = - "ОткрывающаÑÑÑ Ð¿ÐµÑ€Ñпектива выглÑдит\n" - "чертовÑки знакомой и пахнет\n" - "Ñловно зажаренные ÑкÑкременты.\n" - "Это меÑто не нравилоÑÑŒ Вам раньше,\n" - "и Ð’Ñ‹ чертовÑки уверены, что не\n" - "понравитÑÑ Ð¸ ÑейчаÑ. Чем больше Ð’Ñ‹\n" - "размышлÑете над Ñтим, тем печальнее\n" - "вÑе ÑтановитÑÑ.\n" - "\n" - "ВзвеÑив Ñвое оружие, Ð’Ñ‹ зловеще\n" - "ухмылÑетеÑÑŒ. ÐаÑтало Ð²Ñ€ÐµÐ¼Ñ Ð²Ñерьез\n" - "надрать кое-кому задницу."; -T4TEXT = - "Внезапно вÑе окуталоÑÑŒ тишиной до\n" - "Ñамого горизонта. Ðгонизирующее ÐдÑкое\n" - "Ñхо Ñтихло, кошмарное небо Ñтало вновь\n" - "голубым, трупы монÑтров начали\n" - "разлагатьÑÑ Ñо зловонным Ñмрадом.\n" - "Боже, неужели Ð’Ñ‹ и правда победили?\n" - "\n" - "ПоÑле короткого землетрÑÑениÑ, из\n" - "разгромленного черепа ИзрыгателÑ\n" - "Демонов начинает пробиватьÑÑ Ñркое\n" - "Ñинее Ñвечение."; -T5TEXT = - "И что теперь? Ð’Ñе выглÑдит Ñовершенно\n" - "по-другому, Ñловно покои владыки\n" - "Тутанхамона.\n" - "\n" - "Что ж, что бы не ожидало Ð’Ð°Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸,\n" - "хуже уже быть не может, не так ли?\n" - "Или может лучше не тревожить\n" - "ÑпÑщих богов..."; -T6TEXT = - "Пришло Ð²Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¿ÑƒÑка. Ей-богу,\n" - "вороша недра Ðда, Ð’Ñ‹ только о нем\n" - "и мечтали! ПуÑÑ‚ÑŒ кто-нибудь другой\n" - "теперь боретÑÑ Ñ Ð¿Ð¾Ð»Ñ‡Ð¸Ñ‰Ð°Ð¼Ð¸ демонов.\n" - "\n" - "Впереди раÑполагаетÑÑ Ñ‚Ð¸Ñ…Ð¸Ð¹ городок Ñ\n" - "неÑпешно текущей водой, причудливыми\n" - "домиками, и, вероÑтно, не наÑеленный\n" - "адÑким отродьем.\n" - "\n" - "Покинув транÑпортное ÑредÑтво,\n" - "Ð’Ñ‹ Ñлышите топот железного копыта\n" - "кибердемона." - -NERVETEXT = - "ÐЕПРИЯТÐОСТИ, КÐЗÐЛОСЬ, ÐÐСТИГЛИ Ð’ СÐМЫЙ\n" - "ÐЕПОДХОДЯЩИЙ МОМЕÐТ...\b" - "ÐЕСМОТРЯ ÐРРÐЗГРОМÐОЕ ПОРÐЖЕÐИЕ СИЛ\n" - "ÐДÐ, ОБЕЗУМЕВШИЙ КИБЕРДЕМОРРЕШИЛ, ЧТО\n" - "СМОЖЕТ ИЗМЕÐИТЬ ХОД СОБЫТИЙ И Ð’ÐОВЬ\n" - "ПОВЕРГÐУТЬ ЗЕМЛЮ Ð’ ДЕМОÐИЧЕСКИЙ Ð¥ÐОС.\n" - "\b" - "И МУЧИТЕЛЬÐÐЯ СМЕРТЬ СТÐЛРПЛÐТОЙ ЗРЭТУ\n" - "РОКОВУЮ ОШИБКУ. СТЕÐЫ ЕГО ОБИТЕЛИ ЕЩЕ\n" - "ДОЛГО БУДУТ ПОМÐИТЬ ПРЕДСМЕРТÐУЮ ÐГОÐИЮ\n" - "ЭТОГО ПОРОЖДЕÐИЯ ПОТУСТОРОÐÐИХ СИЛ.\n" - "И ПУСТЬ ЕГО ГÐИЮЩИЕ ОСТÐÐКИ СТÐÐУТ\n" - "ВЕЧÐЫМ ÐÐПОМИÐÐÐИЕМ ДЛЯ ТЕХ, КТО Ð’ÐОВЬ\n" - "ОСМЕЛИТСЯ ÐÐРУШИТЬ ПОКОЙ ÐÐШЕГО МИРÐ.\n" - "\n" - "ЭТРМИССИЯ ЗÐВЕРШЕÐÐ."; - -// Cast list (должны идти в Ñтом порÑдке) -CC_ZOMBIE = "ЗОМБИ"; -CC_SHOTGUN = "ЗОМБИ-СЕРЖÐÐТ"; -CC_HEAVY = "ПУЛЕМЕТЧИК"; -CC_IMP = "ИМП"; -CC_DEMON = "ДЕМОÐ"; -CC_LOST = "ПОТЕРЯÐÐÐЯ ДУШÐ"; -CC_CACO = "КÐКОДЕМОÐ"; -CC_HELL = "РЫЦÐРЬ ÐДÐ"; -CC_BARON = "БÐРОРÐДÐ"; -CC_ARACH = "ÐРÐÐ¥ÐОТРОÐ"; -CC_PAIN = "ЭЛЕМЕÐТÐЛЬ БОЛИ"; -CC_REVEN = "РЕВЕÐÐÐТ"; -CC_MANCU = "ÐœÐÐКУБУС"; -CC_ARCH = "ÐРЧВÐЙЛ"; -CC_SPIDER = "ПÐУК-ПРЕДВОДИТЕЛЬ"; -CC_CYBER = "КИБЕРДЕМОÐ"; -CC_HERO = "ÐÐШ ГЕРОЙ"; - -// Friendly names -FN_ZOMBIE = "Зомби"; -FN_SHOTGUN = "Сержант"; -FN_HEAVY = "Пулеметчик"; -FN_IMP = "Имп"; -FN_DEMON = "Демон"; -FN_SPECTRE = "Спектр"; -FN_LOST = "ПотерÑÐ½Ð½Ð°Ñ Ð´ÑƒÑˆÐ°"; -FN_CACO = "Какодемон"; -FN_HELL = "Рыцарь Ðда"; -FN_BARON = "Барон Ðда"; -FN_ARACH = "Ðрахнотрон"; -FN_PAIN = "Элементаль боли"; -FN_REVEN = "Ревенант"; -FN_MANCU = "МанкубуÑ"; -FN_ARCH = "Ðрчвайл"; -FN_SPIDER = "Паук-предводитель"; -FN_CYBER = "Кибердемон"; -FN_WOLFSS = "ÐациÑÑ‚"; -FN_DOG = "Собака"; - -// Ðовые Ñтроки из BOOM -PD_BLUEC = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна ÑинÑÑ ÐºÐ°Ñ€Ñ‚Ð°"; -PD_REDC = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна краÑÐ½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -PD_YELLOWC = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужна Ð¶ÐµÐ»Ñ‚Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -PD_BLUES = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен Ñиний череп"; -PD_REDS = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен краÑный череп"; -PD_YELLOWS = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен желтый череп"; -PD_ANY = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен любой ключ"; -PD_ANYOBJ = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нужен любой ключ"; -PD_ALL3 = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе три ключа"; -PD_ALL3O = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе три ключа"; -PD_ALL6 = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе шеÑÑ‚ÑŒ ключей"; -PD_ALL6O = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе шеÑÑ‚ÑŒ ключей"; -PD_ALLKEYS = "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ требуютÑÑ Ð²Ñе ключи"; - -// Gameflow messages -TXT_FRAGLIMIT = "ДоÑтигнут лимит фрагов."; -TXT_TIMELIMIT = "ДоÑтигнут лимит времени."; - -// Spree messages -SPREEKILLSELF = "Игрок %o хорошо ÑмотрелÑÑ, пока не покончил Ñ Ñобой!"; -SPREEOVER = "Игрок %k прервал череду убийÑтв игрока %o"; -SPREE5 = "Игрок %k Ñовершил череду убийÑтв!"; -SPREE10 = "Игрок %k в неиÑтовÑтве!"; -SPREE15 = "Игрок %k доминирует!"; -SPREE20 = "Игрок %k неоÑтановимый!"; -SPREE25 = "Игрок %k богоподобен!"; - -// Multikill messages -MULTI2 = "Двойное убийÑтво!"; -MULTI3 = "МаÑÑовое убийÑтво!"; -MULTI4 = "Ультра убийÑтво!"; -MULTI5 = "Чудовищное убийÑтво!"; - -// Ðекрологи -// First the self-kills, then the other-kills -OB_SUICIDE = "Игрок %o покончил Ñ Ñобой."; -OB_FALLING = "Игрок %o упал Ñлишком выÑоко."; -OB_CRUSH = "Игрок %o был раздавлен."; -OB_EXIT = "Игрок %o попыталÑÑ Ñвалить."; -OB_WATER = "Игрок %o не умеет плавать."; -OB_SLIME = "Игрок %o мутировал."; -OB_LAVA = "Игрок %o раÑплавилÑÑ."; -OB_BARREL = "Игрок %o взорвалÑÑ."; -OB_SPLASH = "Игрок %o ÑтоÑл в неверной точке."; -OB_R_SPLASH = "Игрок %o не отÑтупил в Ñторону."; -OB_ROCKET = "Игрок %o не отÑтупил в Ñторону."; -OB_KILLEDSELF = "Игрок %o покончил Ñ Ñобой."; - -OB_VOODOO = "Игрока %o убила Ñила Вуду."; -OB_STEALTHBABY = "Игрок %o краем глаза заметил арахнотрона."; -OB_STEALTHVILE = "Игрок %o краем глаза заметил арчвайла."; -OB_STEALTHBARON = "Игрок %o краем глаза заметил барона Ðда."; -OB_STEALTHCACO = "Игрок %o краем глаза заметил какодемона."; -OB_STEALTHCHAINGUY = "Игрок %o краем глаза заметил пулеметчика."; -OB_STEALTHDEMON = "Игрок %o краем глаза заметил демона."; -OB_STEALTHKNIGHT = "Игрок %o краем глаза заметил Ñ€Ñ‹Ñ†Ð°Ñ€Ñ Ðда."; -OB_STEALTHIMP = "Игрок %o краем глаза заметил импа."; -OB_STEALTHFATSO = "Игрок %o краем глаза заметил манкубуÑа."; -OB_STEALTHUNDEAD = "Игрок %o краем глаза заметил ревенанта."; -OB_STEALTHSHOTGUY = "Игрок %o краем глаза заметил Ñержанта."; -OB_STEALTHZOMBIE = "Игрок %o краем глаза заметил зомби."; -OB_UNDEADHIT = "Игрока %o ударил ревенант."; -OB_IMPHIT = "Игрока %o раÑцарапал имп."; -OB_CACOHIT = "Игрок %o Ñлишком ÑблизилÑÑ Ñ ÐºÐ°ÐºÐ¾Ð´ÐµÐ¼Ð¾Ð½Ð¾Ð¼."; -OB_DEMONHIT = "Игрока %o укуÑил демон."; -OB_SPECTREHIT = "Игрока %o Ñожрал Ñпектр."; -OB_BARONHIT = "Игрока %o разорвал барон Ðда."; -OB_KNIGHTHIT = "Игрока %o раÑпотрошил рыцарь Ðда."; -OB_ZOMBIE = "Игрока %o убил зомби."; -OB_SHOTGUY = "Игрока %o заÑтрелил Ñержант."; -OB_VILE = "Игрока %o кремировал арчвайл."; -OB_UNDEAD = "Игрок %o не уÑпел увернутьÑÑ Ð¾Ñ‚ ÑнарÑда ревенанта."; -OB_FATSO = "Игрока %o раздавил манкубуÑ."; -OB_CHAINGUY = "Игрока %o продырÑвил пулеметчик."; -OB_SKULL = "Игрок %o иÑпугалÑÑ Ð¿Ð¾Ñ‚ÐµÑ€Ñнной души."; -OB_IMP = "Игрока %o Ñжег имп."; -OB_CACO = "Игрока %o поразил какодемон."; -OB_BARON = "Игрок %o получил ÑинÑк от барона Ðда."; -OB_KNIGHT = "Игрока %o раÑплаÑтал рыцарь Ðда."; -OB_SPIDER = "Игрок %o ÑтоÑл в воÑторге перед пауком-предводителем."; -OB_BABY = "Игрок %o дал арахнотрону ÑÐµÐ±Ñ ÑƒÐ±Ð¸Ñ‚ÑŒ."; -OB_CYBORG = "Игрока %o размазал кибердемон."; -OB_WOLFSS = "Игрок %o вÑтретил нациÑта."; -OB_DOG = "Игрока %o разорвала Ñобака."; - -OB_CHICKEN = "Игрока %o заклевал до Ñмерти цыпленок."; -OB_BEAST = "Игрока %o обуглил дракон-оборотень."; -OB_CLINK = "Игрока %o нарезал Ñаблекоготь."; -OB_DSPARIL1 = "Игрока %o обжег Ñерпент Д'Спарила."; -OB_DSPARIL1HIT = "Игрока %o пожрал Ñерпент Д'Спарила."; -OB_DSPARIL2 = "Игрок %o был не Ñ€Ð¾Ð²Ð½Ñ Ð”'Спарилу."; -OB_DSPARIL2HIT = "Игрока %o Ñбил Д'Спарил."; -OB_HERETICIMP = "Игрока %o изуродовала горгульÑ."; -OB_HERETICIMPHIT = "Игрока %o покалечила горгульÑ."; -OB_IRONLICH = "Игрока %o раÑтоптал железный лич."; -OB_IRONLICHHIT = "Игрок %o ÑближалÑÑ Ñ Ð¶ÐµÐ»ÐµÐ·Ð½Ñ‹Ð¼ личем."; -OB_BONEKNIGHT = "Игрока %o зарубил воин-нежить."; -OB_BONEKNIGHTHIT = "Игрока %o Ñразил воин-нежить."; -OB_MINOTAUR = "Игрока %o Ñ€Ð°Ð·Ð½ÐµÑ Ð½Ð° Ñгоревшие чаÑти Молотавр."; // fix — «превратил в пепел»? -OB_MINOTAURHIT = "Игрока %o превратил в кровавое меÑиво Молотавр."; -OB_MUMMY = "Игрока %o разбил голем."; -OB_MUMMYLEADER = "Игрока %o убил криком нитроголем."; -OB_SNAKE = "Игрока %o потрÑÑ Ð¾Ñ„Ð¸Ð´Ð¸Ð°Ð½."; -OB_WIZARD = "Игрока %o проклÑл волшебник."; -OB_WIZARDHIT = "Игрока %o нащупал волшебник."; - -OB_FIREDEMON = "Игрок %o отведал Ð¾Ð³Ð½Ñ Ðфрита."; -OB_DEMON1 = "Игрока %o Ñпалил Серпент."; -OB_DEMON2 = "Игрока %o отравил Серпент."; -OB_ETTIN = "Игрока %o раздробил Эттин."; -OB_CENTAUR = "Игрока %o разрезал Кентавр."; -OB_SLAUGHTAURHIT = "Игрока %o разрезал Старший кентавр."; -OB_SLAUGHTAUR = "Игрока %o Ñбил огненным шаром Старший кентавр."; -OB_BISHOP = "Игрок %o поддалÑÑ Ñ‡ÐµÑ€Ð½Ñ‹Ð¼ Ñилам ЕпиÑкопа."; -OB_ICEGUY = "Игрока %o полноÑтью заморозил Вендиго."; -OB_SERPENTHIT = "Игрока %o Ñломал Сталкер."; -OB_SERPENT = "Игрока %o раÑплавил Сталкер."; -OB_WRAITH = "Игрока %o обуглил Грабитель."; -OB_WRAITHHIT = "Жизнь игрока %o украл Грабитель."; -OB_DRAGON = "Игрока %o кремировала Виверна Смерти."; -OB_KORAX = "Игрока %o Ñкинул Ñ Ð´Ð¾Ñки КоракÑ."; -OB_FBOSS = "Игрока %o Ñразил Зедек."; -OB_MBOSS = "Игрок %o не Ñмог боротьÑÑ Ñ Ð¼Ð°Ð½Ð¾Ð¹ Менелкира."; -OB_CBOSS = "Игрока %o креÑтил ТрадуктуÑ."; -OB_HERESIARCH = "ЕреÑиарх Ñыграл в коÑти игрока %o."; - -OB_ACOLYTE = "Игрока %o ревноÑтно заÑтрелил Ðколит."; -OB_MACIL = "Игроку %o не Ñледовало Подобрань мÑтеж против ÐœÑйÑила."; -OB_REBEL = "Игрока %o раÑÑтрелÑл ÐœÑтежник."; -OB_BEGGAR = "Игрока %o забили до Ñмерти бедные."; -OB_PEASANT = "Игроку %o не Ñледовало затеÑÑ‚ÑŒ драку Ñ Ð“Ñ€Ð°Ð¶Ð´Ð°Ð½Ñким."; -OB_ALIENSPECTRE = "Игрока %o Ñбил Спектр."; -OB_ENTITY = "Игрок %o иÑпытал на Ñебе ÑроÑÑ‚ÑŒ Единого Бога."; -OB_LOREMASTER = "Игрок %o не Ñмог избежать длани Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ ÐœÑƒÐ´Ñ€Ð¾Ñти."; -OB_PROGRAMMER = "Игрока %o удалил ПрограммиÑÑ‚."; -OB_STFBISHOP = "Игрока %o отдул ЕпиÑкоп."; -OB_SENTINEL = "Игрока %o уничтожил Страж."; -OB_CRUSADER = "Игрока %o Ñмёл КреÑтоноÑец."; -OB_INQUISITOR = "Игрока %o приговорил Инквизитор."; -OB_STALKER = "Игрок %o пугалÑÑ Ð´Ð¾ Ñмерти из-за Сталкера."; // fix — Оригинал: «%o was bugged by a Stalker.» -OB_TURRET = "Игрок %o включил автоматичеÑкую защиту."; -OB_TEMPLARHIT = "Игрока %o раÑцарапал Тамплиер."; -OB_TEMPLAR = "Игрока %o иÑпарил Тамплиер."; -OB_REAVERHIT = "Игрока %o разрезал на куÑки Похититель."; -OB_REAVER = "Игрока %o заÑтрелил Похититель."; - -OB_MPFIST = "Игрок %o отведал кулака %k."; -OB_MPCHAINSAW = "Игрок %k ÑкоÑил бензопилой игрока %o."; -OB_MPPISTOL = "Игрок %k пощекотал пукалкой игрока %o."; -OB_MPSHOTGUN = "Игрок %o отведал дробовик игрока %k."; -OB_MPSSHOTGUN = "Игрок %k размазал из обреза игрока %o."; -OB_MPCHAINGUN = "Игрок %k выкоÑил Ñ Ð¿ÑƒÐ»ÐµÐ¼ÐµÑ‚Ð° игрока %o."; -OB_MPROCKET = "Игрок %k прокатил на ракете игрока %о."; -OB_MPR_SPLASH = "Игрок %o почти увильнул от ракеты %k."; -OB_MPPLASMARIFLE = "Игрок %k раÑплавил плазмометом игрока %o."; -OB_MPBFG_BOOM = "Игрок %k раÑщепил игрока %o Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ BFG."; -OB_MPBFG_SPLASH = "Игрок %o не уÑпел ÑпрÑтатьÑÑ Ð¾Ñ‚ BFG игрока %k."; -OB_MPTELEFRAG = "Игрок %k телефрагнул игрока %o."; -OB_RAILGUN = "Игрок %k показал Ñвой рельÑотрон игроку %o."; -OB_MPBFG_MBF = "Игрока %o Ñжег %k Ñ BFG."; - -OB_MPSTAFF = "Игрок %o Ñел на поÑох игрока %k."; -OB_MPGAUNTLETS = "Игрок %o шокирован перчатками %k."; -OB_MPGOLDWAND = "Игрок %o узрел прощальный взмах ÑльфийÑкого жезла %k."; -OB_MPCROSSBOW = "Игрок %o изранен болтами Ñфирного арбалета %k."; -OB_MPBLASTER = "Игрок %o взорван драконьим когтем %k."; -OB_MPSKULLROD = "Игрок %o ÑоÑлан в Ñамый низ поÑохом Ðда %k."; -OB_MPPHOENIXROD = "Игрок %o Ñожжен в пепел жезлом феникÑа %k."; -OB_MPMACE = "Игрок %o отбит огненной булавой %k."; - -OB_MPPSTAFF = "Игрок %o отведал зарÑженного поÑоха %k."; -OB_MPPGAUNTLETS = "Игрок %o опуÑтошен перчатками %k."; -OB_MPPGOLDWAND = "Игрок %o атакован %k Ñ ÑльфийÑким жезлом."; -OB_MPPCROSSBOW = "Игрок %o пробит Ñфирным арбалетом %k."; -OB_MPPBLASTER = "Игрок %o разорван драконьим когтем %k."; -OB_MPPSKULLROD = "%k залил игрока %o горÑчим дождем, иÑпользовав поÑох ада."; -OB_MPPPHOENIXROD = "Игрок %o Ñожжен жезлом феникÑа %k."; -OB_MPPMACE = "Игрок %o раздавлен огромной Ñферой из огненной булавы %k."; - -OB_MPFWEAPFIST = "Игрок %o избит в мÑÑо голыми руками %k."; -OB_MPFWEAPAXE = "Игрок %o Ñловил топорик %k."; -OB_MPFWEAPHAMMERM = "Голова игрока %o была вдолблена в тело молотом %k."; -OB_MPFWEAPHAMMERR = "Душа игрока %o была перекована молотом %k."; -OB_MPFWEAPQUIETUS = "Игрок %o утихомирен легендарным ПоÑледним доводом %k."; -OB_MPCWEAPMACE = "Игрок %o получил по морде булавой %k."; -OB_MPCWEAPSTAFFM = "Игрок %o иÑкуÑан змеиным поÑохом %k."; -OB_MPCWEAPSTAFFR = "Игрок %o задушен змеиным поÑохом %k."; -OB_MPCWEAPFLAME = "Игрок %o Ñгорел в огне %k."; -OB_MPCWEAPWRAITHVERGE = "Игрок %o очищен Жезлом Духов %k."; -OB_MPMWEAPWAND = "Игрок %o Ñхватил Ñлишком много Ñапфировых зарÑдов от %k."; -OB_MPMWEAPFROST = "Игрок %o обращаетÑÑ Ð² ледÑную Ñкульптуру Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ %k."; -OB_MPMWEAPLIGHTNING = "Игрок %o откровенно шокирован %k."; -OB_MPMWEAPBLOODSCOURGE = "Игрок %o Ñтерт Ñ Ð»Ð¸Ñ†Ð° вÑеленной Кровавым бичем %k."; - -OB_MPPUNCHDAGGER = "Игрок %o был непреднамеренно заколот кинжалом %k."; -OB_MPELECTRICBOLT = "Игрок %o был прибит к Ñтене %k."; -OB_MPPOISONBOLT = "Игрок %o получил Ñмертельную дозу гнева %k."; -OB_MPASSAULTGUN = "Игрок %o изрешечен штурмовой винтовкой %k."; -OB_MPMINIMISSILELAUNCHER = "Игрок %o проглотил ракету %k."; -OB_MPSTRIFEGRENADE = "Игрок %o инвертируетÑÑ H-E гранатой %k."; -OB_MPPHOSPHOROUSGRENADE = "Игрок %o принÑл горÑчую ванну из чиÑтого фоÑфора %k."; -OB_MPFLAMETHROWER = "Игрок %k поджарил игрока %o."; -OB_MPMAULER1 = "Игрок %k ударил током игрока %o."; -OB_MPMAULER = "Игрок %k безжалоÑтно раÑпылил игрока %o."; -OB_MPSIGIL = "Игрок %o ÑклонилÑÑ Ð¿ÐµÑ€ÐµÐ´ Ñилой Сигила %k."; - -// Same as OB_MPTELEFRAG, but shown when a monster telefrags you -OB_MONTELEFRAG = "Игрока %o телефрагнуло."; - -OB_DEFAULT = "Игрок %o погиб."; -OB_MPDEFAULT = "Игрок %o убит %k."; -OB_FRIENDLY1 = "Игрок %k убил Ñоюзника."; -OB_FRIENDLY2 = "Игроку %k Ñледует проверить Ñвои очки."; -OB_FRIENDLY3 = "Игрок %k Ð¿Ñ€ÐµÐ¿Ð¾Ð´Ð½ÐµÑ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ команде фраг."; -OB_FRIENDLY4 = "Игрок %k потерÑл еще одного друга."; - -SAVEGAMENAME = "zdoomsv"; -STARTUP1 = ""; -STARTUP2 = ""; -STARTUP3 = ""; -STARTUP4 = ""; -STARTUP5 = ""; - -// Таблица очков -SCORE_ITEMS = "Предметы"; -SCORE_BONUS = "БонуÑ"; -SCORE_COLOR = "Цвет"; -SCORE_SECRET = "Тайники"; -SCORE_NAME = "ИмÑ"; -SCORE_DELAY = "Задержка (мÑ)"; -SCORE_KILLS = "УбийÑтва"; -SCORE_FRAGS = "Фраги"; -SCORE_DEATHS = "Смерти"; -SCORE_MISSED = "Пропущено"; -SCORE_TOTAL = "Ð’Ñего"; -SCORE_LVLTIME = "Ð’Ñ€ÐµÐ¼Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ"; - -// Item tags: Doom weapons -TAG_FIST = "Кулаки"; -TAG_CHAINSAW = "Бензопила"; -TAG_PISTOL = "ПиÑтолет"; -TAG_SHOTGUN = "Дробовик"; -TAG_SUPERSHOTGUN = "Супер-дробовик"; -TAG_CHAINGUN = "Пулемет"; -TAG_ROCKETLAUNCHER = "Ракетница"; -TAG_PLASMARIFLE = "ÐŸÐ»Ð°Ð·Ð¼ÐµÐ½Ð½Ð°Ñ Ð¿ÑƒÑˆÐºÐ°"; -TAG_BFG9000 = "BFG 9000"; - -// Item tags: Heretic weapons -TAG_STAFF = "ПоÑох"; -TAG_GAUNTLETS = "Перчатки Ðекроманта"; -TAG_GOLDWAND = "ЭльфийÑкий Жезл"; -TAG_CROSSBOW = "Эфирный Ðрбалет"; -TAG_BLASTER = "Драконий Коготь"; -TAG_SKULLROD = "ПоÑох Ðда"; -TAG_PHOENIXROD = "Жезл ФеникÑа"; -TAG_MACE = "ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð‘ÑƒÐ»Ð°Ð²Ð°"; - -TAG_STAFFP = "ПоÑох"; -TAG_GAUNTLETSP = "Перчатки Ðекроманта"; -TAG_GOLDWANDP = "ЭльфийÑкий Жезл"; -TAG_CROSSBOWP = "Эфирный Ðрбалет"; -TAG_BLASTERP = "Драконий Коготь"; -TAG_SKULLRODP = "ПоÑох Ðда"; -TAG_PHOENIXRODP = "Жезл ФеникÑа"; -TAG_MACEP = "ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð‘ÑƒÐ»Ð°Ð²Ð°"; - -// Item tags: Heretic artifacts -TAG_ARTIEGG = "Морф Овум"; -TAG_ARTIFIREBOMB = "ЧаÑÐ¾Ð²Ð°Ñ Ð±Ð¾Ð¼Ð±Ð° Древних"; -TAG_ARTIFLY = "ÐšÑ€Ñ‹Ð»ÑŒÑ ÐŸÑ€Ð¸Ð·Ñ€Ð°ÐºÐ°"; -TAG_ARTIHEALTH = "ÐšÐ²Ð°Ñ€Ñ†ÐµÐ²Ð°Ñ ÐºÐ¾Ð»Ð±Ð°"; -TAG_ARTIINVISIBILITY = "ТенеÑфера"; -TAG_ARTIINVULNERABILITY = "Кольцо ÐевидимоÑти"; -TAG_ARTISUPERHEALTH = "МиÑтичеÑÐºÐ°Ñ Ð£Ñ€Ð½Ð°"; -TAG_ARTITELEPORT = "Механизм ХаоÑа"; -TAG_ARTITOMEOFPOWER = "Том Силы"; -TAG_ARTITORCH = "Факел"; - -// Item tags: Hexen weapons -TAG_CWEAPMACE = "Булава РаÑкаÑниÑ"; -TAG_CWEAPSTAFF = "Змеиный ПоÑох"; -TAG_CWEAPFLAME = "Огненный Шторм"; -TAG_CWEAPWRAITHVERGE = "Жезл Духов"; -TAG_FWEAPFIST = "ШипаÑтые Рукавицы"; -TAG_FWEAPAXE = "Топор Тимона"; -TAG_FWEAPHAMMER = "Молот ВозмездиÑ"; -TAG_FWEAPQUIETUS = "ПоÑледний довод"; -TAG_MWEAPWAND = "Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð²Ð¾Ð»ÑˆÐµÐ±Ð½Ð°Ñ Ð¿Ð°Ð»Ð¾Ñ‡ÐºÐ°"; -TAG_MWEAPFROST = "Замораживающие ОÑколки"; -TAG_MWEAPLIGHTNING = "Дуга Смерти"; -TAG_MWEAPBLOODSCOURGE = "Кровавый бич"; - -// Item tags: Hexen artifacts -TAG_ARTIBLASTRADIUS = "Отражающий ДиÑк"; -TAG_ARTIBOOSTARMOR = "Ðаручи драконьей кожи"; -TAG_ARTIBOOSTMANA = "Кубок МогущеÑтва"; -TAG_ARTIPOISONBAG = "Флешетта"; -TAG_ARTIPOISONBAG1 = "Флешетта Ядовитого Облака"; -TAG_ARTIPOISONBAG2 = "Флешетта ЧаÑовой бомбы"; -TAG_ARTIPOISONBAG3 = "Флешетта Граната"; -TAG_ARTIHEALINGRADIUS = "МиÑтичеÑкий зачарованный Ñвиток"; -TAG_ARTIDEFENDER = "Икона Защитника"; -TAG_ARTIPORK = "ХрÑкинатор"; -TAG_ARTISPEED = "Сапоги СкороÑти"; -TAG_ARTISUMMON = "Темный Слуга"; -TAG_ARTITELEPORTOTHER = "Механизм ИзгнаниÑ"; - -// Item tags: Hexen puzzle items -TAG_ARTIPUZZSKULL = "Череп Йорика"; -TAG_ARTIPUZZGEMBIG = "Серце Д'Спарила"; -TAG_ARTIPUZZGEMRED = "Ð ÑƒÐ±Ð¸Ð½Ð¾Ð²Ð°Ñ ÐŸÐ»Ð°Ð½ÐµÑ‚Ð°"; -TAG_ARTIPUZZGEMGREEN1 = "Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ ÐŸÐ»Ð°Ð½ÐµÑ‚Ð° (1)"; -TAG_ARTIPUZZGEMGREEN2 = "Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ ÐŸÐ»Ð°Ð½ÐµÑ‚Ð° (2)"; -TAG_ARTIPUZZGEMBLUE1 = "Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ ÐŸÐ»Ð°Ð½ÐµÑ‚Ð° (1)"; -TAG_ARTIPUZZGEMBLUE2 = "Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ ÐŸÐ»Ð°Ð½ÐµÑ‚Ð° (2)"; -TAG_ARTIPUZZBOOK1 = "ÐšÐ¾Ð´ÐµÐºÑ Ð”ÐµÐ¼Ð¾Ð½Ð°"; -TAG_ARTIPUZZBOOK2 = "Либер ОÑкура"; -TAG_ARTIPUZZSKULL2 = "ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ ÐœÐ°Ñка"; -TAG_ARTIPUZZFWEAPON = "Запечатанный Палаш"; -TAG_ARTIPUZZCWEAPON = "СвÑÑ‚Ð°Ñ Ð ÐµÐ»Ð¸ÐºÐ²Ð¸Ñ"; -TAG_ARTIPUZZMWEAPON = "Сигила МагнуÑа"; -TAG_ARTIPUZZGEAR1 = "Ð–ÐµÐ»ÐµÐ·Ð½Ð°Ñ ÑˆÐµÑтернÑ"; -TAG_ARTIPUZZGEAR2 = "Ð›Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ ÑˆÐµÑтернÑ"; -TAG_ARTIPUZZGEAR3 = "Ð›Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ Ð¸ Ð¶ÐµÐ»ÐµÐ·Ð½Ð°Ñ ÑˆÐµÑтерни"; -TAG_ARTIPUZZGEAR4 = "СеребрÑÐ½Ð°Ñ Ð¸ Ð»Ð°Ñ‚ÑƒÐ½Ð½Ð°Ñ ÑˆÐµÑтерни"; - -// Item tags: Strife weapons -TAG_PUNCHDAGGER = "Ðож"; -TAG_STRIFECROSSBOW1 = "Ðрбалет"; -TAG_STRIFECROSSBOW2 = "Ðрбалет"; -TAG_ASSAULTGUN = "Винтовка"; -TAG_MMLAUNCHER = "Мини-ракетница"; -TAG_FLAMER = "Огнемет"; -TAG_MAULER1 = "ИÑÑ‚Ñзатель"; -TAG_MAULER2 = "ИÑÑ‚Ñзатель"; -TAG_GLAUNCHER1 = "Гранатомет"; -TAG_GLAUNCHER2 = "Гранатомет"; -TAG_SIGIL = "Сигил"; - -// Item tags: Strife artifacts -TAG_COIN = "Монета"; -TAG_MEDPATCH = "Бинт"; -TAG_MEDICALKIT = "Ðптечка"; -TAG_SURGERYKIT = "Мед-комплект"; // "full_health" в Тизере -TAG_BELDINSRING = "Кольцо"; -TAG_OFFERINGCHALICE = "Чаша Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ñний"; -TAG_EAR = "Ухо"; -TAG_BROKENCOUPLING = "Сломанное ÑопрÑжение"; -TAG_SHADOWARMOR = "Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ"; -TAG_ENVSUIT = "Защитный коÑтюм"; -TAG_GUARDUNIFORM = "Униформа Ñтражника"; -TAG_OFFICERSUNIFORM = "ОфицерÑÐºÐ°Ñ ÑƒÐ½Ð¸Ñ„Ð¾Ñ€Ð¼Ð°"; -TAG_FTHROWERPARTS = "ЧаÑти огнемета"; -TAG_REPORT = "Отчет"; -TAG_INFO = "ИнформациÑ"; -TAG_TARGETER = "Целеуказатель"; -TAG_COMMUNICATOR = "Коммуникатор"; -TAG_DEGNINORE = "ДенгинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð°"; -TAG_GUNTRAINING = "МеткоÑÑ‚ÑŒ"; -TAG_HEALTHTRAINING = "ЖивучеÑÑ‚ÑŒ"; -TAG_SCANNER = "Сканнер"; -TAG_PRISONPASS = "ПропуÑк в тюрьму"; -TAG_ALARM = "Тревога"; -TAG_AMMOFILLUP = "БоеприпаÑÑ‹"; -TAG_HEALTHFILLUP = "Здоровье"; -TAG_TELEPORTERBEACON = "z маÑк"; -TAG_METALARMOR = "МеталличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ"; -TAG_LEATHER = "ÐšÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ"; -TAG_HEGRENADES = "Противопехотные гранаты"; -TAG_PHGRENADES = "Зажигательные гранаты"; // "Fire-Grenade_Rounds" в Teaser -TAG_CLIPOFBULLETS = "Обойма пуль"; // "bullets" в Teaser -TAG_BOXOFBULLETS = "БоеприпаÑÑ‹"; -TAG_MINIMISSILES = "Мини-ракеты"; //"rocket" в Teaser -TAG_CRATEOFMISSILES = "Коробка ракет"; //"box_of_rockets" в Teaser -TAG_ENERGYPOD = "ЭненгоÑчейка"; -TAG_ENERGYPACK = "Энергопакет"; -TAG_POISONBOLTS = "Ядовитые Ñтрелы"; // "poison_arrows" в Teaser -TAG_ELECTRICBOLTS = "ЭлектричеÑкие Ñтрелы"; // "electric_arrows" в Teaser -TAG_AMMOSATCHEL = "Ðмуничный рюкзак"; // "Back_pack" в Teaser - -// Item tags: Strife keys -TAG_BASEKEY = "Ключ от базы"; -TAG_GOVSKEY = "Ключ ГовÑа"; // "Rebel_Key" в Teaser -TAG_PASSCARD = "ПропуÑк"; -TAG_IDBADGE = "Бейдж Ñ ID"; -TAG_PRISONKEY = "Ключ от тюрьмы"; -TAG_SEVEREDHAND = "ÐžÑ‚Ð¾Ñ€Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÑƒÐºÐ°"; -TAG_POWER1KEY = "Ключ от ЭнерниÑ1"; -TAG_POWER2KEY = "Ключ от ЭнергиÑ2"; -TAG_POWER3KEY = "Ключ от ЭнергиÑ3"; -TAG_GOLDKEY = "Золотой ключ"; -TAG_IDCARD = "УдоÑтоверение"; -TAG_SILVERKEY = "СеребрÑный ключ"; -TAG_ORACLEKEY = "Ключ Оракула"; -TAG_MILITARYID = "Военное удоÑтоверение личноÑти"; -TAG_ORDERKEY = "Заказной ключ"; -TAG_WAREHOUSEKEY = "СкладÑкой ключ"; -TAG_BRASSKEY = "Латунный ключ"; -TAG_REDCRYSTALKEY = "КраÑный криÑталличеÑкий ключ"; -TAG_BLUECRYSTALKEY = "Синий криÑталличеÑкий ключ"; -TAG_CHAPELKEY = "Ключ от ЧаÑовни"; -TAG_CATACOMBKEY = "Ключ от катакомб"; // "Tunnel_Key" в Teaser -TAG_SECURITYKEY = "Ключ охраны"; -TAG_COREKEY = "Ключ Ядра"; // "New_Key1" в Teaser -TAG_MAULERKEY = "Ключ МучителÑ"; // "New_Key2" в Teaser -TAG_FACTORYKEY = "ЗаводÑкой ключ"; // "New_Key3" в Teaser -TAG_MINEKEY = "Ключ от шахты"; // "New_Key4" в Teaser -TAG_NEWKEY5 = "Ðовый ключ5"; -TAG_ORACLEPASS = "ПропуÑк Оракула"; - -// Item tags: misc Strife stuff -TAG_10GOLD = "10 золотых"; -TAG_25GOLD = "25 золотых"; -TAG_50GOLD = "50 золотых"; -TAG_300GOLD = "300 золотых"; - -// Item tags: Strife NPCs -TAG_ACOLYTE = "Служитель"; -TAG_ARMORER = "Бронник"; -TAG_BARKEEP = "Бармен"; -TAG_BEGGAR = "Ðищий"; -TAG_MACIL1 = "ÐœÑйÑил"; -TAG_MACIL2 = "ÐœÑйÑил"; -TAG_MEDIC = "Врач"; -TAG_ORACLE = "Оракул"; -TAG_PRIEST = "Жрец"; -TAG_RATBUDDY = "КрыÑа"; -TAG_REBEL = "ПовÑтанец"; -TAG_TEMPLAR = "Храмовник"; -TAG_WEAPONSMITH = "Оружейник"; - -// Item tags: Chex weapons -TAG_SPOON = "Ложка"; -TAG_SPORK = "Супер Ботинок"; -TAG_MINIZORCHER = "Мини-Зорчер"; -TAG_LARGEZORCHER = "Большой Зорчер"; -TAG_SUPERLARGEZORCHER = "Огромный Зорчер"; -TAG_RAPIDZORCHER = "СкороÑтрельный Зорчер"; -TAG_ZORCHPROPULSOR = "Зорч-пропульÑор"; -TAG_PHASINGZORCHER = "Фазовый Зорчер"; -TAG_LAZDEVICE = "УÑтройÑтво «ЛÐЗ»"; - -// Heretic strings -HE1TEXT = - "С уничтожением Железных Личей\n" - "и их приÑпешников, окреÑтные земли\n" - "очиÑтилиÑÑŒ от омерзительной нежити.\n\n" - "Эта нежить, Ð¿Ñ€Ð¾Ð½Ð¸ÐºÑˆÐ°Ñ Ð² наш мир из\n" - "темного измерениÑ, открыла Огненный\n" - "Портал. Он как Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¿Ñ‹Ð»Ð°ÑŽÑ‰Ð°Ñ\n" - "паÑÑ‚ÑŒ Ðда ведет в Ñвою жуткую утробу.\n\n" - "Угроза иÑходит из Огненного Портала —\n" - "Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ðда и черной магии могут\n" // Какой-то бред - "изринутьÑÑ Ð¸Ð· него. Ваша цель —\n" - "Ñойти в Ðд и запечатать проклÑтый\n" - "портал.\n\n" - "Это Ñмертельно опаÑное деÑние, и Ð’Ñ‹\n" - "риÑкуете навÑегда увÑзнуть во Тьме.\n" - "Ðо кто говорил, что путь иÑтинного\n" - "Еретика легок и проÑÑ‚?"; -HE2TEXT = - "Могучие Молотавры повержены.\n" - "Их дымÑщиеÑÑ Ñ‚Ñ€ÑƒÐ¿Ñ‹ падают,\n" - "разваливаÑÑÑŒ на куÑки, к Вашим\n" - "ногам, и мрачное удовлетворение\n" - "наполнÑет ВаÑ.\n\n" - "Врата, которые они охранÑли, открылиÑÑŒ.\n" - "Ð’Ñ‹ шагнули в них, думаÑ, что\n" - "вернетеÑÑŒ в родной мир, но лишь\n" - "громкий, наÑмешливый хохот был\n" - "ответом на Вашу надежду.\n\n" - "Чей Ñто злобный хохот? Быть может\n" - "Ñто Ð³Ð¾Ð»Ð¾Ñ Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‡ÐµÑких Ñил,\n" - "управлÑющих Молотаврами? Какие\n" - "чудовищные ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑŽÑ‚ ВаÑ\n" - "за Ñтими вратами? Ðе голубое небо\n" - "родного мира над головой, а\n" - "криÑтальный купол, — Ñто плохой знак..."; -HE3TEXT = - "С гибелью Д'Спарила иÑчезла магиÑ,\n" - "ÑохранÑÐ²ÑˆÐ°Ñ Ð¶Ð¸Ð·Ð½ÑŒ порождениÑм Тьмы.\n" - "Стоны умирающих демонов заглушили\n" - "вопль агонии Ñамого Д'Спарила.\n\n" - "Ð’Ñ‹ иÑполнили Ñвою клÑтву. МеÑÑ‚ÑŒ\n" - "ÑвершилаÑÑŒ. И за Ñекунду до\n" - "Ñ€Ð°Ð·Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ñ…Ñ€ÑƒÑтального купола,\n" - "Ð’Ñ‹ наконец-то, входите во врата,\n" - "ведущие в родной мир.\n\n" - "Ðо и теперь, поÑле гибели Д'Спарила,\n" - "душа Ваша не Ñпокойна, и ее\n" - "одолевают плохие предчувÑтвиÑ. Ðе был\n" - "ли проклÑтием его предÑмертный\n" - "крик? Или призывом темных Ñил?\n\n" - "И где таÑÑ‚ÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ðµ Змеиные\n" - "Ð’Ñадники?"; -HE4TEXT = - "С гибелью Д'Спарила умерла и Ваша\n" - "надежда вернутьÑÑ Ð² родной мир.\n" - "Своим предÑмертным проклÑтьем\n" - "он отправил Ð’Ð°Ñ Ð² те немногие,\n" - "ещё оÑтавшиеÑÑ Ð¿Ð¾Ð´Ð²Ð»Ð°Ñтными\n" - "ему земли. Ð’Ñ‹ разбили поÑледних\n" - "хранителей Ñтих земель и Ñтоите\n" - "перед опуÑтевшим замком Д'Спарила,\n" - "оплотом его темных Ñил.\n\n" - "Само Сердце Зла раÑтворило перед\n" - "Вами врата. И Ñ…Ð¾Ñ‚Ñ Ð”'Спарил\n" - "повержен, глубины, породившие его,\n" - "ÑтоÑÑ‚ нерушимы.\n\n" - "Ð’Ñ‹ Ñойдете в Ñту преиÑподнюю, ибо\n" - "единÑтвенный ÑпоÑоб вернутьÑÑ Ð²\n" - "родной мир — отыÑкать вход в него\n" - "в темных глубинах опуÑтевшей вотчины\n" - "Д'Спарила. Личные Ñтражи мертвого\n" - "гоÑподина уже дожидаютÑÑ Ð’Ð°Ñ..."; -HE5TEXT = - "ÐÐ°Ð±Ð»ÑŽÐ´Ð°Ñ Ñ Ð¼Ñ€Ð°Ñ‡Ð½Ñ‹Ð¼ отвращением\n" - "предÑмертную агонию поÑледнего\n" - "Ñраженного Молотавра, Ð’Ñ‹ только\n" - "теперь понимаете, что Ñмерть еще\n" - "никогда не была так близка. Даже\n" - "во Ð²Ñ€ÐµÐ¼Ñ ÑроÑтной битвы Ñ Ñамим\n" - "Д'Спарилом и его темными Ñлугами.\n\n" - "С угрюмым отчаÑнием приближаетеÑÑŒ\n" - "Ð’Ñ‹ к открытым порталам. СлабаÑ\n" - "надежда теплитÑÑ Ð² Вашей душе, —\n" - "быть может за ними Ñкрыта дорога\n" - "домой, а не бездны чужих миров?\n\n" - "ОтчаÑние наделÑет Ð’Ð°Ñ Ð¼Ñ€Ð°Ñ‡Ð½Ð¾Ð¹\n" - "решимоÑтью. Ðичто не ÑпоÑобно\n" - "оÑтановить ВаÑ, одна только — Ñмерть.\n" - "Ðе ÑдавайтеÑÑŒ без боÑ, взглÑните в\n" - "глаза Ñвоей Ñудьбе. Знайте, еÑли Ð’Ñ‹\n" - "упали на Ñамое дно, еÑÑ‚ÑŒ лишь один\n" - "путь — наверх."; - -// ЭПИЗОД 1 - ГОРОД ПРОКЛЯТЫХ -HHUSTR_E1M1 = "Доки"; -HHUSTR_E1M2 = "Темницы"; -HHUSTR_E1M3 = "ПривратницкаÑ"; -HHUSTR_E1M4 = "Ð¡Ñ‚Ð¾Ñ€Ð¾Ð¶ÐµÐ²Ð°Ñ Ð±Ð°ÑˆÐ½Ñ"; -HHUSTR_E1M5 = "Цитадель"; -HHUSTR_E1M6 = "Кафедральный Ñобор"; -HHUSTR_E1M7 = "Склепы"; -HHUSTR_E1M8 = "ÐдÑÐºÐ°Ñ ÑƒÑ‚Ñ€Ð¾Ð±Ð°"; -HHUSTR_E1M9 = "Кладбище"; - -// ЭПИЗОД 2 - ÐДСКÐЯ УТРОБР-HHUSTR_E2M1 = "Кратер"; -HHUSTR_E2M2 = "Лавовые очаги"; -HHUSTR_E2M3 = "Река огнÑ"; -HHUSTR_E2M4 = "ЛедÑной грот"; -HHUSTR_E2M5 = "Катакомбы"; -HHUSTR_E2M6 = "Лабиринт"; -HHUSTR_E2M7 = "Большой зал"; -HHUSTR_E2M8 = "Порталы хаоÑа"; -HHUSTR_E2M9 = "Ледник"; - -// ЭПИЗОД 3 - КУПОЛ Д'СПÐРИЛР-HHUSTR_E3M1 = "КладоваÑ"; -HHUSTR_E3M2 = "Сточный колодец"; -HHUSTR_E3M3 = "СлиÑние"; -HHUSTR_E3M4 = "Ð›Ð°Ð·ÑƒÑ€Ð½Ð°Ñ ÐºÑ€ÐµÐ¿Ð¾ÑÑ‚ÑŒ"; -HHUSTR_E3M5 = "Логово офидианов"; -HHUSTR_E3M6 = "Залы Ñтраха"; -HHUSTR_E3M7 = "ПропаÑÑ‚ÑŒ"; -HHUSTR_E3M8 = "КрепоÑÑ‚ÑŒ Д'Спарила"; -HHUSTR_E3M9 = "ВодоноÑный Ñлой"; - -// ЭПИЗОД 4: СКЛЕП -HHUSTR_E4M1 = "Катафалк"; -HHUSTR_E4M2 = "Укрытие"; -HHUSTR_E4M3 = "МонаÑÑ‚Ñ‹Ñ€ÑÐºÐ°Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ"; -HHUSTR_E4M4 = "Гробница"; -HHUSTR_E4M5 = "Ð’ÐµÐ»Ð¸ÐºÐ°Ñ Ð»ÐµÑтница"; -HHUSTR_E4M6 = "Залы отÑтупников"; -HHUSTR_E4M7 = "Твердыни погибели"; -HHUSTR_E4M8 = "Разрушенный моÑÑ‚"; -HHUSTR_E4M9 = "Мавзолей"; - -// ЭПИЗОД 5: ЗÐСТОЙÐЫЕ ВЛÐДЕÐИЯ -HHUSTR_E5M1 = "Охровые утеÑÑ‹"; -HHUSTR_E5M2 = "Стремнина"; -HHUSTR_E5M3 = "Причал"; -HHUSTR_E5M4 = "Внутренний двор"; -HHUSTR_E5M5 = "Гидротир"; -HHUSTR_E5M6 = "Колоннада"; -HHUSTR_E5M7 = "Зловонный оÑобнÑк"; -HHUSTR_E5M8 = "Поле выÑшего Ñуда"; -HHUSTR_E5M9 = "Путаница Д'Спарила"; - -// Keys - -TXT_GOTBLUEKEY = "Синий ключ"; -TXT_GOTYELLOWKEY = "Желтый ключ"; -TXT_GOTGREENKEY = "Зеленый ключ"; - -// Artifacts - -TXT_ARTIHEALTH = "Кварцевый флакон"; -TXT_ARTIFLY = "ÐšÑ€Ñ‹Ð»ÑŒÑ Ð³Ð½ÐµÐ²Ð°"; -TXT_ARTIINVULNERABILITY = "Кольцо неуÑзвимоÑти"; -TXT_ARTITOMEOFPOWER = "Том могущеÑтва"; -TXT_ARTIINVISIBILITY = "Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ñфера"; -TXT_ARTIEGG = "Морфийное Ñйцо"; -TXT_ARTISUPERHEALTH = "МиÑтичеÑÐºÐ°Ñ ÑƒÑ€Ð½Ð°"; -TXT_ARTITORCH = "Факел"; -TXT_ARTIFIREBOMB = "ЧаÑÐ¾Ð²Ð°Ñ Ð±Ð¾Ð¼Ð±Ð° древних"; -TXT_ARTITELEPORT = "Эмблема ХаоÑа"; - -// Items - -TXT_ITEMHEALTH = "КриÑтальный флакон"; -TXT_ITEMBAGOFHOLDING = "ÐоÑильный кошель"; -TXT_ITEMSHIELD1 = "СеребрÑный щит"; -TXT_ITEMSHIELD2 = "Зачарованный щит"; -TXT_ITEMSUPERMAP = "Свиток карты"; - -// Ammo - -TXT_AMMOGOLDWAND1 = "КриÑталл Ð´Ð»Ñ ÑльфийÑкого жезла"; -TXT_AMMOGOLDWAND2 = "Жеода криÑталла"; -TXT_AMMOMACE1 = "Сферы Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹"; -TXT_AMMOMACE2 = "Груда Ñфер Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹"; -TXT_AMMOCROSSBOW1 = "Эфирные Ñтрелы"; -TXT_AMMOCROSSBOW2 = "Колчан Ñфирных Ñтрел"; -TXT_AMMOBLASTER1 = "Когтевой шар"; -TXT_AMMOBLASTER2 = "ЭнергетичеÑкий шар"; -TXT_AMMOSKULLROD1 = "ÐœÐ»Ð°Ð´ÑˆÐ°Ñ Ñ€ÑƒÐ½Ð°"; -TXT_AMMOSKULLROD2 = "Ð¡Ñ‚Ð°Ñ€ÑˆÐ°Ñ Ñ€ÑƒÐ½Ñ‹"; -TXT_AMMOPHOENIXROD1 = "Пламенный шар"; -TXT_AMMOPHOENIXROD2 = "Инфернальный шар"; - -// Weapons - -TXT_WPNGOLDWAND = "ЭльфийÑкий жезл"; -TXT_WPNMACE = "ÐžÐ³Ð½ÐµÐ½Ð½Ð°Ñ Ð±ÑƒÐ»Ð°Ð²Ð°"; -TXT_WPNCROSSBOW = "Эфирный арбалет"; -TXT_WPNBLASTER = "Коготь дракона"; -TXT_WPNSKULLROD = "ПоÑох ада"; -TXT_WPNPHOENIXROD = "Жезл феникÑа"; -TXT_WPNGAUNTLETS = "Перчатки некроманта"; - -TXT_NEEDBLUEKEY = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ Ñиний ключ"; -TXT_NEEDGREENKEY = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ зеленый ключ"; -TXT_NEEDYELLOWKEY = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ желтый ключ"; - -TXT_CHEATPOWERON = "POWER ON"; -TXT_CHEATPOWEROFF = "POWER OFF"; -TXT_CHEATHEALTH = "МакÑимальное здоровье"; -TXT_CHEATKEYS = "Ð’Ñе ключи"; -TXT_CHEATSOUNDON = "Отладка звука ВКЮЧЕÐÐ"; -TXT_CHEATSOUNDOFF = "Отладка звука ВЫКЮЧЕÐÐ"; -TXT_CHEATIDDQD = "Жульничаешь, Ñ? Умрешь!"; -TXT_CHEATIDKFA = "Обманщик — Ñ‚Ñ‹ не заÑлуживаешь оружиÑ"; -TXT_CHEATTICKERON = "TICKER ON"; -TXT_CHEATTICKEROFF = "TICKER OFF"; -TXT_CHEATARTIFACTS3 = "ВЫ ПОЛУЧИЛИ ЭТО"; -TXT_MIDASTOUCH = "У Ñ‚ÐµÐ±Ñ Ð¿Ñ€Ð¸ÐºÐ¾Ñновение МидаÑа, детка"; -TXT_GOTSTUFF = "You got the stuff!"; -TXT_FREEZEON = "Freeze mode on"; -TXT_FREEZEOFF = "Freeze mode off"; -TXT_STRANGE = "Ð’Ñ‹ чувÑтвуете ÑÐµÐ±Ñ Ñтранно..."; -TXT_STRANGER = "Ð’Ñ‹ чувÑтвуете ÑÐµÐ±Ñ Ð¾Ñ‡ÐµÐ½ÑŒ Ñтранно."; -TXT_NOTSTRANGE = "Ð’Ñ‹ Ñнова чувÑтвуете ÑÐµÐ±Ñ Ñобой."; -TXT_LEADBOOTSON = "LEAD BOOTS ON"; -TXT_LEADBOOTSOFF = "LEAD BOOTS OFF"; -TXT_LIGHTER = "Ð’Ñ‹ чувÑтвуете легкоÑÑ‚ÑŒ."; -TXT_GRAVITY = "Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ñнет Ð’Ð°Ñ Ð²Ð½Ð¸Ð·."; - -// Raven intermission - -TXT_IMKILLS = "Враги"; -TXT_IMITEMS = "Тайники"; -TXT_IMSECRETS = "Предметы"; -TXT_IMTIME = "ВремÑ"; - -RAVENQUITMSG = "Ð’Ñ‹ дейÑтвительно желаете выйти?"; - -// Friendly names -FN_CHICKEN = "Цыпленок"; -FN_BEAST = "Дракон-оборотень"; -FN_CLINK = "Саблекоготь"; -FN_DSPARIL = "Д'Спарил"; -FN_HERETICIMP = "ГоргульÑ"; -FN_IRONLICH = "Железный лич"; -FN_BONEKNIGHT = "Воин-нежить"; -FN_MINOTAUR = "Молотавр"; -FN_MUMMY = "Голем"; -FN_MUMMYLEADER = "Ðитроголем"; -FN_SNAKE = "Офидиан"; -FN_WIZARD = "Волшебник"; - -// Hexen strings - -// Mana - -TXT_MANA_1 = "СинÑÑ Ð¼Ð°Ð½Ð°"; -TXT_MANA_2 = "Ð—ÐµÐ»ÐµÐ½Ð°Ñ Ð¼Ð°Ð½Ð°"; -TXT_MANA_BOTH = "ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¼Ð°Ð½Ð°"; - -// Keys - -TXT_KEY_STEEL = "Стальной ключ"; -TXT_KEY_CAVE = "Пещерный ключ"; -TXT_KEY_AXE = "Ключ-топор"; -TXT_KEY_FIRE = "Огненный ключ"; -TXT_KEY_EMERALD = "Изумрудный ключ"; -TXT_KEY_DUNGEON = "Ключ от подземельÑ"; -TXT_KEY_SILVER = "СеребрÑный ключ"; -TXT_KEY_RUSTED = "Ржавый ключ"; -TXT_KEY_HORN = "Роговой ключ"; -TXT_KEY_SWAMP = "Болотный ключ"; -TXT_KEY_CASTLE = "Ключ от замка"; - -TXT_NEED_KEY_STEEL = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ Ñтальной ключ"; -TXT_NEED_KEY_CAVE = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ пещерный ключ"; -TXT_NEED_KEY_AXE = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ-топор"; -TXT_NEED_KEY_FIRE = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ огненный ключ"; -TXT_NEED_KEY_EMERALD = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ изумрудный ключ"; -TXT_NEED_KEY_DUNGEON = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ от подземельÑ"; -TXT_NEED_KEY_SILVER = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ÑеребрÑный ключ"; -TXT_NEED_KEY_RUSTED = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ржавый ключ"; -TXT_NEED_KEY_HORN = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ роговой ключ"; -TXT_NEED_KEY_SWAMP = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ болотный ключ"; -TXT_NEED_KEY_CASTLE = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ ключ от замка"; - -// Artifacts - -TXT_ARTIINVULNERABILITY2 = "Символ защитника"; -TXT_ARTISUMMON = "Темный Ñлуга"; -TXT_ARTIEGG2 = "Свиноморфер"; -TXT_ARTIPOISONBAG = "Зелье"; -TXT_ARTITELEPORTOTHER = "Эмблема изгнаниÑ"; -TXT_ARTISPEED = "Сапоги-Ñкороходы"; -TXT_ARTIBOOSTMANA = "Чаша могущеÑтва"; -TXT_ARTIBOOSTARMOR = "Ðаручи из драконьей кожи"; -TXT_ARTIBLASTRADIUS = "ДиÑк отторжениÑ"; -TXT_ARTIHEALINGRADIUS = "Чары магичеÑкого единÑтва"; - -// Puzzle artifacts - -TXT_ARTIPUZZSKULL = "Череп Йорика"; -TXT_ARTIPUZZGEMBIG = "Сердце Д'Спарила"; -TXT_ARTIPUZZGEMRED = "Ð ÑƒÐ±Ð¸Ð½Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°"; -TXT_ARTIPUZZGEMGREEN1 = "Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°"; -TXT_ARTIPUZZGEMGREEN2 = "Ð˜Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°"; -TXT_ARTIPUZZGEMBLUE1 = "Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°"; -TXT_ARTIPUZZGEMBLUE2 = "Ð¡Ð°Ð¿Ñ„Ð¸Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð»Ð°Ð½ÐµÑ‚Ð°"; -TXT_ARTIPUZZBOOK1 = "ÐšÐ¾Ð´ÐµÐºÑ Ð´ÐµÐ¼Ð¾Ð½Ð°"; -TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; -TXT_ARTIPUZZSKULL2 = "МаÑка пламени"; -TXT_ARTIPUZZFWEAPON = "Печать воителÑ"; -TXT_ARTIPUZZCWEAPON = "СвÑÑ‚Ð°Ñ Ñ€ÐµÐ»Ð¸ÐºÐ²Ð¸Ñ"; -TXT_ARTIPUZZMWEAPON = "Символ мага"; -TXT_ARTIPUZZGEAR = "ЧаÑÐ¾Ð²Ð°Ñ ÑˆÐµÑтернÑ"; -TXT_USEPUZZLEFAILED = "ЗдеÑÑŒ Ñто невозможно иÑпользовать"; - -// Items - -TXT_ARMOR1 = "Кольчуга"; -TXT_ARMOR2 = "Соколиный щит"; -TXT_ARMOR3 = "Платиновый шлем"; -TXT_ARMOR4 = "Ðмулет Ñтража"; - -// Weapons - -TXT_WEAPON_F2 = "Топор Тимона"; -TXT_WEAPON_F3 = "Молот возмездиÑ"; -TXT_WEAPON_F4 = "ПоÑледний довод Ñобран воедино"; -TXT_WEAPON_C2 = "Змеиный поÑох"; -TXT_WEAPON_C3 = "Огненный шторм"; -TXT_WEAPON_C4 = "Жезл духов Ñобран воедино"; -TXT_WEAPON_M2 = "ЛедÑные оÑколки"; -TXT_WEAPON_M3 = "Дуга Ñмерти"; -TXT_WEAPON_M4 = "Кровавый бич Ñобран воедино"; -TXT_WEAPONPIECE = "ЧаÑÑ‚ÑŒ оружиÑ! Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð’Ð°Ñˆ ÑчаÑтливый день!"; -TXT_QUIETUS_PIECE = "ЧаÑÑ‚ÑŒ поÑледнего довода"; -TXT_WRAITHVERGE_PIECE = "ЧаÑÑ‚ÑŒ жезла духов"; -TXT_BLOODSCOURGE_PIECE = "ЧаÑÑ‚ÑŒ кровавого бича"; - -// Friendly names - -FN_FIREDEMON = "Ðфрит"; -FN_DEMON1 = "Серпент"; -FN_ETTIN = "Эттин"; -FN_CENTAUR = "Кентавр"; -FN_SLAUGHTAUR = "Старший кентавр"; -FN_BISHOP = "ЕпиÑкоп"; -FN_ICEGUY = "Вендиго"; -FN_SERPENT = "Сталкер"; -FN_WRAITH = "Грабитель"; -FN_DRAGON = "Виверна Смерти"; -FN_KORAX = "КоракÑ"; -FN_FBOSS = "Зедек"; -FN_MBOSS = "Менелкир"; -FN_CBOSS = "ТрадуктуÑ"; -FN_HERESIARCH = "ЕреÑиарх"; - -// Strife locks - -TXT_NEEDKEY = "Ðужен ключ"; -TXT_NEED_PASSCARD = "Ðужен пропуÑк"; -TXT_NEED_PASSCARD_DOOR = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶ÐµÐ½ пропуÑк"; -TXT_NEED_IDCARD = "Ðужна Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -TXT_NEED_PRISONKEY = "Ðужен ключ от тюрьмы"; -TXT_NEED_HANDPRINT = "Отпечаток руки не раÑпознан"; -TXT_NEED_GOLDKEY = "Ðужен золотой ключ"; -TXT_NEED_IDBADGE = "Ðужна Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -TXT_NEED_IDBADGE_DOOR = "Ð”Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð° Ð»Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -TXT_NEED_SILVERKEY = "Ðужен ÑеребрÑный ключ"; -TXT_NEED_BRASSKEY = "Ðужен латунный ключ"; -TXT_NEED_REDCRYSTAL = "Ðужен краÑный криÑталл"; -TXT_NEED_BLUECRYSTAL = "Ðужен Ñиний криÑталл"; -TXT_RETAIL_ONLY = "ЭТРЛОКÐЦИЯ ДОСТУПÐРТОЛЬКО Ð’ ПОЛÐОЙ ВЕРСИИ ИГРЫ STRIFE"; -TXT_DOES_NOT_WORK = "Похоже, Ñто не работает"; - -// Strife Quest messages - -TXT_QUEST_14 = "КриÑталл взорван"; -TXT_QUEST_16 = "Ворота взорваны"; -TXT_QUEST_27 = "Компьютер взорван"; - -TXT_KILLED_BISHOP = "ЕпиÑкоп убит!"; -TXT_KILLED_ORACLE = "Оракл убит!"; -TXT_KILLED_MACIL = "ÐœÑйÑил убит!"; -TXT_KILLED_LOREMASTER = "Хранитель МудроÑти убит!"; - -TXT_YOUFOOL = "Придурок. Ты включил Ñигнализацию!"; -TXT_YOUREDEAD = "Считай, Ñ‚Ñ‹ мертв; Ñ‚Ñ‹ включил Ñигнализацию."; - -// Strife pickup messages - -TXT_METALARMOR = "Получена металличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ."; -TXT_LEATHERARMOR = "Получена ÐºÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ."; -TXT_MEDPATCH = "Получен медицинÑкий бинт."; -TXT_MEDICALKIT = "Получена аптечка."; -TXT_SURGERYKIT = "Получен медкомплект."; -TXT_STRIFEMAP = "Получена карта."; -TXT_BELDINSRING = "Получено кольцо."; -TXT_OFFERINGCHALICE = "Получена чаша Ð´Ð»Ñ Ð¿Ð¾Ð´Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¹."; -TXT_EAR = "Получено ухо."; -TXT_BROKENCOUPLING = "Получено Ñломанное ÑопрÑжение."; -TXT_SHADOWARMOR = "Получена Ñ‚ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ."; -TXT_ENVSUIT = "Получен защитный коÑтюм."; -TXT_GUARDUNIFORM = "Получена униформа Ñтражника."; -TXT_OFFICERSUNIFORM = "Получена униформа офицера."; -TXT_FTHROWERPARTS = "Получены запчаÑти Ð´Ð»Ñ Ð¾Ð³Ð½ÐµÐ¼ÐµÑ‚Ð°."; -TXT_REPORT = "Получен отчет."; -TXT_INFO = "Получена Ñводка."; -TXT_TARGETER = "Получен прицел."; -TXT_COMMUNICATOR = "Получен коммуникатор."; -TXT_COIN = "Получена монета."; -TXT_XGOLD = "Получено %d золотых."; -TXT_BEACON = "Получен z маÑк."; -TXT_DEGNINORE = "Получена дегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð°."; -TXT_SCANNER = "Получен Ñканер."; -TXT_NEEDMAP = "Сканер не работает без карты!\n"; -TXT_PRISONPASS = "Получен пропуÑк в тюрьму."; - -TXT_STRIFECROSSBOW = "Получен арбалет."; -TXT_ASSAULTGUN = "Получена ÑˆÑ‚ÑƒÑ€Ð¼Ð¾Ð²Ð°Ñ Ð²Ð¸Ð½Ñ‚Ð¾Ð²ÐºÐ°."; -TXT_MMLAUNCHER = "Получена мини-ракетница."; -TXT_FLAMER = "Получен огнемет."; -TXT_MAULER = "Получен иÑÑ‚Ñзатель."; -TXT_GLAUNCHER = "Получен гранатомет."; -TXT_SIGIL = "Получен СИГИЛ."; - -TXT_BASEKEY = "Получен ключ от базы."; -TXT_GOVSKEY = "Получен ключ губернатора."; -TXT_PASSCARD = "Получен пропуÑк."; -TXT_IDBADGE = "Получен идентификационный значок."; -TXT_PRISONKEY = "Получен ключ от тюрьмы."; -TXT_SEVEREDHAND = "Получена Ð¾Ñ‚Ñ€ÐµÐ·Ð°Ð½Ð½Ð°Ñ Ñ€ÑƒÐºÐ°."; -TXT_POWER1KEY = "Получен ключ ÑлектроÑтанции 1."; -TXT_POWER2KEY = "Получен ключ ÑлектроÑтанции 2."; -TXT_POWER3KEY = "Получен ключ ÑлектроÑтанции 3."; -TXT_GOLDKEY = "Получен золотой ключ."; -TXT_IDCARD = "Получен удоÑтоверение."; -TXT_SILVERKEY = "Получен ÑеребрÑный ключ."; -TXT_ORACLEKEY = "Получен ключ оракула."; -TXT_MILITARYID = "Получен армейÑкий жетон."; -TXT_ORDERKEY = "Получен ключ ордена."; -TXT_WAREHOUSEKEY = "Получен ключ от Ñклада."; -TXT_BRASSKEY = "Получен латунный ключ."; -TXT_REDCRYSTAL = "Получен краÑный криÑталл."; -TXT_BLUECRYSTAL = "Получен Ñиний криÑталл."; -TXT_CHAPELKEY = "Получен ключ от капеллы."; -TXT_CATACOMBKEY = "Получен ключ от катакомб."; -TXT_SECURITYKEY = "Получен ключ охраны."; -TXT_COREKEY = "Получен ключ от реактора."; -TXT_MAULERKEY = "Получен ключ иÑÑ‚ÑзаниÑ."; -TXT_FACTORYKEY = "Получен ключ от завода."; -TXT_MINEKEY = "Получен ключ от шахт."; -TXT_NEWKEY5 = "Получен новый ключ 5."; -TXT_ORACLEPASS = "Получен пропуÑк оракула."; - -TXT_HEGRENADES = "Получена ÑвÑзка гранат."; -TXT_PHGRENADES = "Получена ÑвÑзка фоÑфорных гранат."; -TXT_CLIPOFBULLETS = "Получена обойма пуль."; -TXT_BOXOFBULLETS = "Получена коробка пуль."; -TXT_MINIMISSILES = "Получены мини-ракеты."; -TXT_CRATEOFMISSILES = "Получен Ñщик мини-ракет."; -TXT_ENERGYPOD = "Получена ÑнергоÑчейка."; -TXT_ENERGYPACK = "Получен Ñнергоблок."; -TXT_POISONBOLTS = "Получены Ñдовитые болты."; -TXT_ELECTRICBOLTS = "Получены ÑлектричеÑкие болты."; -TXT_AMMOSATCHEL = "Получен амуничный рюкзак."; - -// Random dialogs - -TXT_RANDOM_PEASANT_01 = "ПожалуйÑта, не трогай менÑ."; -TXT_RANDOM_PEASANT_02 = "ЕÑли Ñ‚Ñ‹ ÑобираешьÑÑ Ð½Ð°Ð²Ñ€ÐµÐ´Ð¸Ñ‚ÑŒ мне, то Ñ Ð½Ðµ Ñтою твоих уÑилий."; -TXT_RANDOM_PEASANT_03 = "Я ничего не знаю."; -TXT_RANDOM_PEASANT_04 = "Уходи, или Ñ Ð¿Ð¾Ð·Ð¾Ð²Ñƒ Ñтражу!"; -TXT_RANDOM_PEASANT_05 = "Иногда мне проÑто хочетÑÑ, чтобы вÑе Ñти повÑтанцы уÑÑнили Ñебе Ñвое меÑто и прекратили веÑÑŒ Ñтот бред."; -TXT_RANDOM_PEASANT_06 = "ПроÑто оÑтавь Ð¼ÐµÐ½Ñ Ð² покое, хорошо?"; -TXT_RANDOM_PEASANT_07 = "Я не уверен, но порой мне кажетÑÑ, что Ñ ÑƒÐ·Ð½Ð°ÑŽ некоторых Ñлужителей."; -TXT_RANDOM_PEASANT_08 = "Орден держит тут вÑе под замком."; -TXT_RANDOM_PEASANT_09 = "Эта Ñлужба безопаÑноÑти не дает и шагу Ñтупить без ÑпроÑа."; -TXT_RANDOM_PEASANT_10 = "Я Ñлыхал, что Орден Ñерьезно обеÑпокоен дейÑтвиÑми повÑтанцев в Ñтом районе."; - -TXT_RANDOM_REBEL_01 = "Ордену никак не уÑтоÑÑ‚ÑŒ против наÑ."; -TXT_RANDOM_REBEL_02 = "Мы почти готовы атаковать. Планы ÐœÑйÑила ÑтановÑÑ‚ÑÑ ÑÑны."; -TXT_RANDOM_REBEL_03 = "Мы вÑе поÑтоим за тебÑ. Ðе беÑпокойÑÑ."; -TXT_RANDOM_REBEL_04 = "ДержиÑÑŒ подальше от Ñтих больших роботов. Они и мокрого меÑта от Ñ‚ÐµÐ±Ñ Ð½Ðµ оÑтавÑÑ‚!"; -TXT_RANDOM_REBEL_05 = "Скоро наÑтупит день нашего триумфа, и те, кто противоÑтоит нам, будут Ñокрушены!"; -TXT_RANDOM_REBEL_06 = "Ðе раÑÑлаблÑйÑÑ. У Ð½Ð°Ñ Ð¿Ð¾-прежнему хватает дел."; -TXT_RANDOM_REBEL_07 = "ÐœÑйÑил говорит, Ñ‚Ñ‹ наша Ð½Ð¾Ð²Ð°Ñ Ð½Ð°Ð´ÐµÐ¶Ð´Ð°. Имей Ñто в виду."; -TXT_RANDOM_REBEL_08 = "Когда мы Ñвергнем Ñтих шарлатанов, то Ñможем воÑÑоздать Ñтот мир таким, каким он должен быть."; -TXT_RANDOM_REBEL_09 = "Помни, Ñ‚Ñ‹ ÑпаÑешьÑÑ Ð½Ðµ только за ÑебÑ, но и за каждого здеÑÑŒ и Ñнаружи."; -TXT_RANDOM_REBEL_10 = "Пока Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из Ð½Ð°Ñ ÐµÑ‰Ðµ дышит, мы не побеждены."; - -TXT_RANDOM_AGUARD_01 = "Проходи, рабочий."; -TXT_RANDOM_AGUARD_02 = "Прими иÑтинную веру. Только тогда Ñ‚Ñ‹ начнешь понимать."; -TXT_RANDOM_AGUARD_03 = "ИÑтинное перерождение возможно только через Ñмерть."; -TXT_RANDOM_AGUARD_04 = "Мне не интереÑна Ñ‚Ð²Ð¾Ñ Ð±ÐµÑÑмыÑÐ»ÐµÐ½Ð½Ð°Ñ Ð±Ð¾Ð»Ñ‚Ð¾Ð²Ð½Ñ."; -TXT_RANDOM_AGUARD_05 = "ЕÑли бы Ñ Ñ…Ð¾Ñ‚ÐµÐ» поговорить Ñ Ñ‚Ð¾Ð±Ð¾Ð¹, то Ñказал бы об Ñтом."; -TXT_RANDOM_AGUARD_06 = "Иди и надоедай кому-нибудь другому!"; -TXT_RANDOM_AGUARD_07 = "Иди куда шел!"; -TXT_RANDOM_AGUARD_08 = "ЕÑли подниметÑÑ Ñ‚Ñ€ÐµÐ²Ð¾Ð³Ð°, не попадайÑÑ Ð½Ð°Ð¼ под ноги!"; -TXT_RANDOM_AGUARD_09 = "Орден очиÑтит мир и начнетÑÑ Ð½Ð¾Ð²Ð°Ñ Ñра."; -TXT_RANDOM_AGUARD_10 = "Проблемы? КажетÑÑ, нет."; - -TXT_RANDOM_BEGGAR_01 = "У Ñ‚ÐµÐ±Ñ Ð½Ðµ найдетÑÑ Ð¼ÐµÐ»Ð¾Ñ‡Ð¸ Ð´Ð»Ñ Ð±ÐµÐ´Ð½Ñка?"; -TXT_RANDOM_BEGGAR_02 = "Ðа что уÑтавилÑÑ, незнакомец?"; -TXT_RANDOM_BEGGAR_03 = "У Ñ‚ÐµÐ±Ñ Ñлучайно не найдетÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ лишней еды?"; -TXT_RANDOM_BEGGAR_04 = "Ð’Ñ‹, люди Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти, никогда не поймете наÑ."; -TXT_RANDOM_BEGGAR_05 = "Ха, Ñтражники не могут найти наÑ. Эти дураки даже не знают, что мы ÑущеÑтвуем."; -TXT_RANDOM_BEGGAR_06 = "ÐаÑтупит день, когда вÑе, кроме Ñлуг Ордена, будут вынуждены приÑоединитьÑÑ Ðº нам."; -TXT_RANDOM_BEGGAR_07 = "Смотри Ñколько влезет, но знай, что когда-нибудь так будет выглÑдеть и твое лицо."; -TXT_RANDOM_BEGGAR_08 = "Ðичто так не выводит из ÑебÑ, как болтун Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти!"; -TXT_RANDOM_BEGGAR_09 = "Орден быÑтро раÑправитÑÑ Ñ Ñ‚Ð²Ð¾Ð¸Ð¼ беÑÑильным Ñопротивлением."; -TXT_RANDOM_BEGGAR_10 = "Следи за Ñобой, пришедший Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти. Мы знаем наших врагов!"; - -TXT_RANDOM_PGUARD_01 = "Мы длани Ñудьбы. Прогневить Ð½Ð°Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°ÐµÑ‚ вÑтретить забвение!"; -TXT_RANDOM_PGUARD_02 = "Орден очиÑтит мир от Ñлабых и порочных!"; -TXT_RANDOM_PGUARD_03 = "ПодчиниÑÑŒ воле хозÑев!"; -TXT_RANDOM_PGUARD_04 = "Долгой жизни братьÑм Ордена!"; -TXT_RANDOM_PGUARD_05 = "Ð¡Ð²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ Ð²Ð¾Ð»Ñ â€” лишь иллюзиÑ, приÑÑƒÑ‰Ð°Ñ Ñлабоумным."; -TXT_RANDOM_PGUARD_06 = "Сила — путь к величию. Ð’Ñтупить в Ñ€Ñды Ордена означает пойти Ñтим путем!"; -TXT_RANDOM_PGUARD_07 = "Займи Ñвое меÑто Ñреди праведников. ПриÑоединиÑÑŒ к нам!"; -TXT_RANDOM_PGUARD_08 = "Орден защищает Ñвою ÑобÑтвенноÑÑ‚ÑŒ."; -TXT_RANDOM_PGUARD_09 = "Служители? Им еще только предÑтоит узреть подлинное величие Ордена."; -TXT_RANDOM_PGUARD_10 = "ЕÑли внутри Ñтой бренной телеÑной оболочки еÑÑ‚ÑŒ хоть ÐºÐ°Ð¿Ð»Ñ Ñ‡ÐµÑти, Ñ‚Ñ‹ приÑоединишьÑÑ Ðº Ордену."; - -TXT_RANDOMGOODBYE_1 = "Пока!"; -TXT_RANDOMGOODBYE_2 = "СпаÑибо, пока!"; -TXT_RANDOMGOODBYE_3 = "До вÑтречи!"; -TXT_HAVEENOUGH = "КажетÑÑ, тебе хватит!"; -TXT_GOAWAY = "Уходи!"; - -TXT_COMM0 = "ВходÑщее Ñообщение"; -TXT_COMM1 = "ВходÑщее Ñообщение от Черной птицы"; - -TXT_TRADE = " за %u"; - -AMMO_CLIP = "Пули"; -AMMO_SHELLS = "Патроны Ð´Ð»Ñ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ð¸ÐºÐ°"; -AMMO_ROCKETS = "Ракеты"; -AMMO_CELLS = "ЭнергетичеÑкие Ñчейки"; -AMMO_GOLDWAND = "КриÑталл Ð´Ð»Ñ ÑльфийÑкого жезла"; -AMMO_CROSSBOW = "Эфирные Ñтрелы"; -AMMO_BLASTER = "Когтевой шар"; -AMMO_MACE = "Сферы Ð´Ð»Ñ Ð±ÑƒÐ»Ð°Ð²Ñ‹"; -AMMO_SKULLROD = "ÐœÐ»Ð°Ð´ÑˆÐ°Ñ Ñ€ÑƒÐ½Ð°"; -AMMO_PHOENIXROD = "Пламенный шар"; -AMMO_MANA1 = "СинÑÑ ÐœÐ°Ð½Ð°"; -AMMO_MANA2 = "Ð—ÐµÐ»ÐµÐ½Ð°Ñ ÐœÐ°Ð½Ð°"; -$ifgame(chex) AMMO_CLIP = "ЗарÑд мини-Зорчера"; -$ifgame(chex) AMMO_SHELLS = "ЗарÑд большого Зорчера"; -$ifgame(chex) AMMO_ROCKETS = "ЗарÑд пропульÑора"; -$ifgame(chex) AMMO_CELLS = "ЗарÑд фазового Зорчера"; - -// Menu Strings - -// Main Menu -MNU_NEWGAME = "ÐÐ¾Ð²Ð°Ñ Ð¸Ð³Ñ€Ð°"; -MNU_OPTIONS = "ÐаÑтройки"; -MNU_GAMEFILES = "Игровые файлы"; -MNU_INFO = "ИнформациÑ"; -MNU_QUITGAME = "Выход"; - -// Skills -MNU_CHOOSESKILL = "Уровень ÑложноÑти:"; - -SKILL_BABY = "Мне рано умирать."; -SKILL_EASY = "Эй, не так грубо."; -SKILL_NORMAL = "Сделай мне больно."; -SKILL_HARD = "УльтранаÑилие"; -SKILL_NIGHTMARE = "КОШМÐР!"; - -CSKILL_BABY = "Easy does it"; -CSKILL_EASY = "Ðе оÑобо липко"; -CSKILL_NORMAL = "МаÑÑа Ñлизи"; -CSKILL_HARD = "ЭкÑÑ‚Ñ€ÐµÐ¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð³Ñ€Ñзь"; -CSKILL_NIGHTMARE = "СверхÑклизÑкий!"; - -SSKILL_BABY = "Разминка"; -SSKILL_EASY = "Ðовичок"; -SSKILL_NORMAL = "Ветеран"; -SSKILL_HARD = "Элита"; -SSKILL_NIGHTMARE = "ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð±Ð¾Ð¹Ð½Ñ"; - -MNU_WETNURSE = "ÐÑнечка надобна мне"; -MNU_YELLOWBELLIES = "Ðе Ñтоль мужеÑтвенен Ñ"; -MNU_BRINGEST = "Подайте мне их"; -MNU_SMITE = "ИÑкушен Ñ ÑражениÑми"; -MNU_BLACKPLAGUE = "Чума овладела мной"; - -MNU_SQUIRE = "ОруженоÑец"; -MNU_KNIGHT = "Рыцарь"; -MNU_WARRIOR = "Воитель"; -MNU_BERSERKER = "БерÑерк"; -MNU_TITAN = "Титан"; - -MNU_ALTARBOY = "Ðлтарник"; -MNU_ACOLYTE = "Служитель"; -MNU_PRIEST = "СвÑщенник"; -MNU_CARDINAL = "Кардинал"; -MNU_POPE = "ЕпиÑкоп"; - -MNU_APPRENTICE = "Ученик"; -MNU_ENCHANTER = "Чародей"; -MNU_SORCERER = "Колдун"; -MNU_WARLOCK = "Чернокнижник"; -MNU_ARCHMAGE = "Ðрхимаг"; - -// КлаÑÑÑ‹ -MNU_CHOOSECLASS = "КлаÑÑ:"; -MNU_FIGHTER = "Воин"; -MNU_CLERIC = "Клерик"; -MNU_MAGE = "Маг"; -MNU_RANDOM = "Ðаугад"; - -// Game Files -MNU_LOADGAME = "Загрузить игру"; -MNU_SAVEGAME = "Сохранить игру"; -MNU_NOPICTURE = "Ðет\nИзображениÑ"; -MNU_DIFFVERSION = "ДругаÑ\nВерÑиÑ"; -MNU_NOFILES = "Ðет файлов"; -MNU_DELETESG = "Ð’Ñ‹ дейÑтвительно хотите удалить Ñохранение\n"; - -// Episodes -MNU_EPISODE = "Выберите Ñпизод"; -MNU_COTD = "Город проклÑÑ‚Ñ‹Ñ…"; -MNU_HELLSMAW = "ÐдÑÐºÐ°Ñ ÑƒÑ‚Ñ€Ð¾Ð±Ð°"; -MNU_DOME = "Купол Д'Спарила"; -MNU_OSSUARY = "Склеп"; -MNU_DEMESNE = "ЗаÑтойные владениÑ"; -$ifgame(heretic) SWSTRING = "Эпизод недоÑтупен в демоверÑии"; - -// Меню наÑтроек -OPTMNU_TITLE = "ÐÐСТРОЙКИ"; -OPTMNU_CONTROLS = "Управление"; -OPTMNU_MOUSE = "Мышь"; -OPTMNU_JOYSTICK = "ДжойÑтик"; -OPTMNU_PLAYER = "Игрок"; -OPTMNU_GAMEPLAY = "Геймплей"; -OPTMNU_COMPATIBILITY = "СовмеÑтимоÑÑ‚ÑŒ"; -OPTMNU_AUTOMAP = "Ðвтокарта"; -OPTMNU_HUD = "HUD"; -OPTMNU_MISCELLANEOUS = "Дополнительно"; -OPTMNU_NETWORK = "Сеть"; -OPTMNU_SOUND = "Звук"; -OPTMNU_DISPLAY = "Экран"; -OPTMNU_VIDEO = "Видеорежим"; -OPTMNU_CHANGERENDER = "Режим рендеринга"; -OPTMNU_DEFAULTS = "СброÑить вÑе наÑтройки"; -OPTMNU_RESETTOSAVED = "Вернуть предыдущие наÑтройки"; -OPTMNU_CONSOLE = "Открыть конÑоль"; -OPTMNU_REVERB = "Редактор реверберации"; - -// Controls Menu - -CNTRLMNU_TITLE = "ÐÐСТРОЙКИ УПРÐВЛЕÐИЯ"; -CNTRLMNU_SWITCHTEXT1 = "ENTER — изменить, BACKSPACE — очиÑтить"; -CNTRLMNU_SWITCHTEXT2 = "Ðажмите клавишу управлениÑ, ESC Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹"; -CNTRLMNU_CONTROLS = "Управление"; -CNTRLMNU_ATTACK = "Ðтака"; -CNTRLMNU_ALTATTACK = "Ð’Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ð°Ñ‚Ð°ÐºÐ°"; -CNTRLMNU_RELOAD = "ПерезарÑдка"; -CNTRLMNU_ZOOM = "Приближение"; -CNTRLMNU_USER1 = "Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 1"; -CNTRLMNU_USER2 = "Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 2"; -CNTRLMNU_USER3 = "Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 3"; -CNTRLMNU_USER4 = "Положение Ð¾Ñ€ÑƒÐ¶Ð¸Ñ 4"; -CNTRLMNU_USE = "ИÑпользовать/открыть"; -CNTRLMNU_FORWARD = "Движение вперед"; -CNTRLMNU_BACK = "Движение назад"; -CNTRLMNU_MOVELEFT = "Движение влево"; -CNTRLMNU_MOVERIGHT = "Движение вправо"; -CNTRLMNU_TURNLEFT = "Поворот налево"; -CNTRLMNU_TURNRIGHT = "Поворот направо"; -CNTRLMNU_TURN180 = "БыÑтрый разворот"; -CNTRLMNU_JUMP = "Прыжок"; -CNTRLMNU_CROUCH = "ПриÑедание"; -CNTRLMNU_TOGGLECROUCH = "СеÑÑ‚ÑŒ/вÑтать"; -CNTRLMNU_MOVEUP = "Лететь/плыть вверх"; -CNTRLMNU_MOVEDOWN = "Лететь/плыть вниз"; -CNTRLMNU_LAND = "ПриземлитьÑÑ"; -CNTRLMNU_MOUSELOOK = "Обзор мышью"; -CNTRLMNU_KEYBOARDLOOK = "Обзор клавиатурой"; -CNTRLMNU_LOOKUP = "Смотреть вверх"; -CNTRLMNU_LOOKDOWN = "Смотреть вниз"; -CNTRLMNU_CENTERVIEW = "Отцентрировать взглÑд"; -CNTRLMNU_RUN = "Бег"; -CNTRLMNU_TOGGLERUN = "Бежать/идти"; -CNTRLMNU_STRAFE = "Движение боком"; -CNTRLMNU_SCOREBOARD = "Таблица очков"; -CNTRLMNU_TOGGLESCOREBOARD = "Таблица очков (перекл.)"; -CNTRLMNU_CHAT = "Чат"; -CNTRLMNU_SAY = "Сообщение"; -CNTRLMNU_TEAMSAY = "Сообщение команде"; -CNTRLMNU_WEAPONS = "Оружие"; -CNTRLMNU_NEXTWEAPON = "Следующее оружие"; -CNTRLMNU_PREVIOUSWEAPON = "Предыдущее оружие"; -CNTRLMNU_SLOT1 = "Оружие 1"; -CNTRLMNU_SLOT2 = "Оружие 2"; -CNTRLMNU_SLOT3 = "Оружие 3"; -CNTRLMNU_SLOT4 = "Оружие 4"; -CNTRLMNU_SLOT5 = "Оружие 5"; -CNTRLMNU_SLOT6 = "Оружие 6"; -CNTRLMNU_SLOT7 = "Оружие 7"; -CNTRLMNU_SLOT8 = "Оружие 8"; -CNTRLMNU_SLOT9 = "Оружие 9"; -CNTRLMNU_SLOT0 = "Оружие 0"; -CNTRLMNU_INVENTORY = "Инвентарь"; -CNTRLMNU_USEITEM = "ИÑпользовать предмет"; -CNTRLMNU_USEALLITEMS = "ИÑпользовать вÑе предметы"; -CNTRLMNU_NEXTITEM = "Следующий предмет"; -CNTRLMNU_PREVIOUSITEM = "Предыдущий предмет"; -CNTRLMNU_DROPITEM = "ВыброÑить предмет"; -CNTRLMNU_QUERYITEM = "Показать предмет"; -CNTRLMNU_DROPWEAPON = "ВыброÑить оружие"; -CNTRLMNU_OTHER = "Прочее"; -CNTRLMNU_AUTOMAP = "Переключить автокарту"; -CNTRLMNU_CHASECAM = "Вид от 3-го лица (chasecam)"; -CNTRLMNU_COOPSPY = "Вид от другого игрока"; -CNTRLMNU_SCREENSHOT = "Скриншот"; -CNTRLMNU_CONSOLE = "Открыть конÑоль"; -CNTRLMNU_POPUPS = "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð² Strife"; -CNTRLMNU_MISSION = "Текущее задание"; -CNTRLMNU_KEYS = "СпиÑок ключей"; -CNTRLMNU_STATS = "Оружие и ÑтатиÑтика"; - -// Mouse Menu - -MOUSEMNU_TITLE = "ÐÐСТРОЙКИ МЫШИ"; -MOUSEMNU_ENABLEMOUSE = "ИÑпользовать мышь"; -MOUSEMNU_MOUSEINMENU = "ИÑпользовать мышь в меню"; -MOUSEMNU_SHOWBACKBUTTON = "Кнопка «назад»"; -MOUSEMNU_CURSOR = "КурÑор"; -MOUSEMNU_SENSITIVITY = "ÐžÐ±Ñ‰Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ"; -MOUSEMNU_NOPRESCALE = "Ð£Ð²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð½Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ"; -MOUSEMNU_SMOOTHMOUSE = "Плавное перемещение"; -MOUSEMNU_TURNSPEED = "СкороÑÑ‚ÑŒ поворота"; -MOUSEMNU_MOUSELOOKSPEED = "СкороÑÑ‚ÑŒ обзора"; -MOUSEMNU_FORWBACKSPEED = "СкороÑÑ‚ÑŒ передвижениÑ"; -MOUSEMNU_STRAFESPEED = "СкороÑÑ‚ÑŒ Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾ÐºÐ¾Ð¼"; -MOUSEMNU_ALWAYSMOUSELOOK = "Обзор мышью"; -MOUSEMNU_INVERTMOUSE = "Инвертирование мыши"; -MOUSEMNU_LOOKSPRING = "Передвижение мышью"; -MOUSEMNU_LOOKSTRAFE = "Движение боком мышью"; - -// Joystick Menu - -JOYMNU_TITLE = "ÐÐСТРОИТЬ ДЖОЙСТИК"; -JOYMNU_OPTIONS = "ÐаÑтройки джойÑтика"; -JOYMNU_NOMENU = "Отключить джойÑтик в меню"; - -// Player Setup Menu -MNU_PLAYERSETUP = "ÐаÑтройки игрока"; -PLYRMNU_NAME = "ИмÑ"; -PLYRMNU_TEAM = "Команда"; -PLYRMNU_PLAYERCOLOR = "Цвет"; -PLYRMNU_RED = "КраÑ."; -PLYRMNU_GREEN = "Зел."; -PLYRMNU_BLUE = "Синий"; -PLYRMNU_PLAYERCLASS = "КлаÑÑ"; -PLYRMNU_PLAYERSKIN = "Скин"; -PLYRMNU_PLAYERGENDER = "Пол"; -PLYRMNU_AUTOAIM = "Ðвтоприц."; -PLYRMNU_SWITCHONPICKUP = "Перекл. при подборе"; -PLYRMNU_ALWAYSRUN = "ПоÑтоÑнный бег"; -PLYRMNU_PRESSSPACE = "\n\cjSPACE"; -PLYRMNU_SEEFRONT = "\nПовернуть"; -PLYRMNU_SEEBACK = "\nПовернуть"; - -// Display Options -DSPLYMNU_TITLE = "ÐÐСТРОЙКИ ЭКРÐÐÐ"; -DSPLYMNU_SCOREBOARD = "Таблица очков"; -DSPLYMNU_SCREENSIZE = "Размер Ñкрана"; -DSPLYMNU_BRIGHTNESS = "ЯркоÑÑ‚ÑŒ"; -DSPLYMNU_VSYNC = "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð°Ñ ÑинхронизациÑ"; -DSPLYMNU_CAPFPS = "Сглаживание рендеринга"; -DSPLYMNU_COLUMNMETHOD = "Режим рендеринга колонок"; -DSPLYMNU_BLENDMETHOD = "Режим рендеринга прозрачноÑти"; - -DSPLYMNU_WIPETYPE = "Эффект плавной Ñмены Ñкранов"; -DSPLYMNU_SHOWENDOOM = "Показать Ñкран ENDOOM"; -DSPLYMNU_BLOODFADE = "ИнтенÑивноÑÑ‚ÑŒ вÑпышки при ранении"; -DSPLYMNU_PICKUPFADE = "ИнтенÑивноÑÑ‚ÑŒ вÑпышки при подборе"; -DSPLYMNU_WATERFADE = "ИнтенÑивноÑÑ‚ÑŒ Ñффекта под водой"; -DSPLYMNU_SKYMODE = "Режим отриÑовки неба"; -DSPLYMNU_LINEARSKY = "Линейной небо"; -DSPLYMNU_GZDFULLBRIGHT = "ÐŸÐ¾Ð»Ð½Ð°Ñ ÑркоÑÑ‚ÑŒ замещает цвет Ñектора"; -DSPLYMNU_MODELS = "Модели"; -DSPLYMNU_SCALEFUZZ = "МаÑштабировать Ñффект шума"; -DSPLYMNU_DRAWFUZZ = "ИÑпользовать Ñффект шума"; -DSPLYMNU_OLDTRANS = "КлаÑÑичеÑÐºÐ°Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾ÑÑ‚ÑŒ"; -DSPLYMNU_TRANSSOUL = "ПрозрачноÑÑ‚ÑŒ потерÑнных душ"; -DSPLYMNU_FAKECONTRAST = "Ð˜Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð°Ñтного оÑÐ²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñтен"; -DSPLYMNU_ROCKETTRAILS = "Дымовой Ñлед у ракет"; -DSPLYMNU_BLOODTYPE = "Тип крови"; -DSPLYMNU_PUFFTYPE = "Тип рикошетов"; -DSPLYMNU_MAXPARTICLES = "КоличеÑтво чаÑтиц"; -DSPLYMNU_MAXDECALS = "КоличеÑтво декалей"; -DSPLYMNU_PLAYERSPRITES = "Показывать Ñпрайты игрока"; -DSPLYMNU_DEATHCAM = "Вид от 3-го лица камеры при Ñмерти"; -DSPLYMNU_TELEZOOM = "Зум при телепортации"; -DSPLYMNU_QUAKEINTENSITY = "ИнтенÑивноÑÑ‚ÑŒ землетрÑÑений"; -DSPLYMNU_NOMONSTERINTERPOLATION = "Сглаживание Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð½Ñтров"; -DSPLYMNU_MENUDIM = "Затемнение фона меню"; -DSPLYMNU_DIMCOLOR = "Цвет затемнениÑ"; -DSPLYMNU_MOVEBOB = "Покачивание камеры при движении"; -DSPLYMNU_STILLBOB = "Покачивание камеры при бездейÑтвии"; -DSPLYMNU_BOBSPEED = "СкороÑÑ‚ÑŒ Ð¿Ð¾ÐºÐ°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ€ÑƒÐ¶Ð¸Ñ"; -DSPLYMNU_GPUSWITCH = "ИÑпользование GPU ноутбука"; - -// HUD Options -HUDMNU_TITLE = "ÐаÑтройки HUD"; -HUDMNU_ALTHUD = "Ðльтернативный HUD"; -HUDMNU_MESSAGE = "ÐаÑтройки Ñообщений"; -HUDMNU_UISCALE = "МаÑштаб. интерфейÑа"; -HUDMNU_CROSSHAIR = "Тип прицела"; -HUDMNU_FORCECROSSHAIR = "Ð’Ñегда Ñтандартный прицел"; -HUDMNU_GROWCROSSHAIR = "Увеличение прицела при подборе"; -HUDMNU_CROSSHAIRCOLOR = "Цвет прицела"; -HUDMNU_CROSSHAIRHEALTH = "Цвет прицела по ÑоÑтоÑнию здоровьÑ"; -HUDMNU_CROSSHAIRSCALE = "МаÑштаб. прицела"; -HUDMNU_NAMETAGS = "Указание Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ð¾Ð²"; -HUDMNU_NAMETAGCOLOR = "Цвет Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ð¾Ð²"; -HUDMNU_SCALEFULLSCREENHUD = "МаÑштаб. полноÑкранного интерфейÑа"; -HUDMNU_OLDOUCH = "Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ»Ð° Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ñ€ÐµÑ‚Ð°"; -HUDMNU_HEXENFLASHES = "Тип вÑпышки Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð² Hexen"; -HUDMNU_POISONFLASHES = "Тип вÑпышки Ñда"; -HUDMNU_ICEFLASHES = "Тип вÑпышки при Ñмерти от льда"; -HUDMNU_HAZARDFLASHES = "Тип вÑпышки при Ñкоплении Ñда"; -HUDMNU_SCALEOPT = "ÐаÑтройки маÑштабированиÑ"; - -// Scaling options -SCALEMNU_TITLE = "ÐÐСТРОЙКИ ÐœÐСШТÐБИРОВÐÐИЯ"; -SCALEMNU_OVERRIDE = "Задать Ñпециальные наÑтройки"; -SCALEMNU_MESSAGES = "СообщениÑ"; -SCALEMNU_CONSOLE = "КонÑоль"; -SCALEMNU_STATBAR = "Строка ÑоÑтоÑниÑ"; -SCALEMNU_HUD = "ПолноÑкранный HUD"; -SCALEMNU_ALTHUD = "Ðльтернативный HUD"; -SCALEMNU_HUDASPECT = "Соотношение Ñторон"; -SCALEMNU_USEUI = "Размер по умолчанию"; -SCALEMNU_USEFS = "МаÑштабировать Ñо вÑем Ñкраном"; -SCALEMNU_ADAPT = "ÐдаптироватьÑÑ Ðº размеру Ñкрана"; - -// AltHUD Options -ALTHUDMNU_TITLE = "Ðльтернативный HUD"; -ALTHUDMNU_ENABLE = "Ðльтернативный HUD"; -ALTHUDMNU_SHOWSECRETS = "Отображение обнаруженных тайников"; -ALTHUDMNU_SHOWMONSTERS = "Отображение количеÑтва монÑтров"; -ALTHUDMNU_SHOWITEMS = "Отображение количеÑтва предметов"; -ALTHUDMNU_SHOWSTATS = "Отображение ÑтойкоÑти и точноÑти"; -ALTHUDMNU_SHOWBERSERK = "Отображение берÑерка"; -ALTHUDMNU_SHOWWEAPONS = "Отображение оружиÑ"; -ALTHUDMNU_SHOWAMMO = "Показывать патроны длÑ"; -ALTHUDMNU_SHOWTIME = "Отображение времени"; -ALTHUDMNU_TIMECOLOR = "Цвет времени"; -ALTHUDMNU_SHOWLAG = "Отображение задержки Ñети"; -ALTHUDMNU_AMMOORDER = "ПорÑдок Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов"; -ALTHUDMNU_AMMORED = "Кр. отображение боеприпаÑов под %"; -ALTHUDMNU_AMMOYELLOW = "Жл. отображение боеприпаÑов под %"; -ALTHUDMNU_HEALTHRED = "КраÑное отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´"; -ALTHUDMNU_HEALTHYELLOW = "Желтое отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´"; -ALTHUDMNU_HEALTHGREEN = "Зел. отображение Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¿Ð¾Ð´"; -ALTHUDMNU_ARMORRED = "КраÑное отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´"; -ALTHUDMNU_ARMORYELLOW = "Желтое отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´"; -ALTHUDMNU_ARMORGREEN = "Зел. отображение Ð±Ñ€Ð¾Ð½Ñ Ð¿Ð¾Ð´"; -ALTHUDMNU_AUTOMAPHUD = "Ðльт. HUD на автокарте"; -ALTHUDMNU_TITLECOLOR = "Цвет Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ"; -ALTHUDMNU_MAPTIMECOLOR = "Цвет времени Ð´Ð»Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¹"; -ALTHUDMNU_HUBTIMECOLOR = "Цвет времени Ð´Ð»Ñ Ñ…Ð°Ð±Ð¾Ð²"; -ALTHUDMNU_TOTALTIMECOLOR = "Цвет общего времени"; -ALTHUDMNU_COORDINATECOLOR = "Цвет координат"; -ALTHUDMNU_COORDINATEMODE = "Координаты игрока"; -ALTHUDMNU_STATSNAMECOLOR = "Цвет имен в ÑтатиÑтике"; -ALTHUDMNU_STATSCOLOR = "Цвет ÑтатиÑтики"; - -// Misc. Options -MISCMNU_TITLE = "ДОПОЛÐИТЕЛЬÐЫЕ ÐÐСТРОЙКИ"; -MISCMNU_MERGEKEYS = "Ðе разделÑÑ‚ÑŒ левый/правый ALT/CTRL/SHIFT"; -MISCMNU_WINFULLSCREENTOGGLE = "Переключение полного Ñкрана по ALT+ENTER"; -MISCMNU_MACFULLSCREENTOGGLE = "Переключение полного Ñкрана по Command+F"; -MISCMNU_QUERYIWAD = "Выбор IWAD при запуÑке"; -MISCMNU_ALLCHEATS = "Читы из вÑех игр"; -MISCMNU_ENABLEAUTOSAVES = "ÐвтоÑохранениÑ"; -MISCMNU_AUTOSAVECOUNT = "КоличеÑтво автоÑохранений"; -MISCMNU_SAVELOADCONFIRMATION = "Подтверждение при Ñохранении/загрузке"; -MISCMNU_DEHLOAD = "Загружать файлы *.deh/*.bex"; -MISCMNU_CACHENODES = "КÑширование нодов"; -MISCMNU_CACHETIME = "Временной порог Ð´Ð»Ñ ÐºÑÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð´Ð¾Ð²"; // ИмеетÑÑ Ð² виду количеÑтво времени, затрачиваемое на загрузку карты, чтобы ноды начали кешироватьÑÑ -MISCMNU_CLEARNODECACHE = "ОчиÑтить кÑш нодов"; -MISCMNU_INTERSCROLL = "Разрешение пропуÑка текÑтовых вÑтавок"; -// Automap Options -AUTOMAPMNU_TITLE = "ÐаÑтройки автокарты"; -AUTOMAPMNU_COLORSET = "Цвета автокарты"; -AUTOMAPMNU_CUSTOMCOLORS = "ÐаÑтроить цвета автокарты"; -AUTOMAPMNU_SETCUSTOMCOLORS = "Выбор цветов"; -AUTOMAPMNU_CONTROLS = "Управление"; -AUTOMAPMNU_ROTATE = "ВращающаÑÑÑ Ð°Ð²Ñ‚Ð¾ÐºÐ°Ñ€Ñ‚Ð°"; -AUTOMAPMNU_OVERLAY = "ÐŸÑ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð°Ñ Ð°Ð²Ñ‚Ð¾ÐºÐ°Ñ€Ñ‚Ð°"; -AUTOMAPMNU_TEXTURED = "ТекÑтуры на автокарте"; -AUTOMAPMNU_FOLLOW = "ПривÑзка к игроку"; -AUTOMAPMNU_SHOWITEMS = "КоличеÑтво предметов"; -AUTOMAPMNU_SHOWMONSTERS = "КоличеÑтво монÑтов"; -AUTOMAPMNU_SHOWSECRETS = "КоличеÑтво тайников"; -AUTOMAPMNU_SHOWTIME = "Прошедшее времÑ"; -AUTOMAPMNU_SHOWTOTALTIME = "Общее времÑ"; -AUTOMAPMNU_MAPSECRETS = "Тайники на карте"; -AUTOMAPMNU_SHOWMAPLABEL = "Ðазвание карты"; -AUTOMAPMNU_DRAWMAPBACK = "Отображать фон автокарты"; -AUTOMAPMNU_SHOWKEYS = "Отображать ключи (только чит)"; -AUTOMAPMNU_SHOWTRIGGERLINES = "Отображать триггеры"; -AUTOMAPMNU_SHOWTHINGSPRITES = "Отображать Ñпрайты предметов"; -AUTOMAPMNU_PTOVERLAY = "Порталы в прозрачном режиме"; -AUTOMAPMNU_EMPTYSPACEMARGIN = "Край автокарты"; - -// Automap Controls -MAPCNTRLMNU_TITLE = "ÐÐСТРОЙКИ УПРÐВЛЕÐИЯ КÐРТОЙ"; -MAPCNTRLMNU_CONTROLS = "Управление автокартой"; -MAPCNTRLMNU_PANLEFT = "Сдвиг влево"; -MAPCNTRLMNU_PANRIGHT = "Сдвиг вправо"; -MAPCNTRLMNU_PANUP = "Сдвиг вверх"; -MAPCNTRLMNU_PANDOWN = "Сдвиг вниз"; -MAPCNTRLMNU_ZOOMIN = "Увеличить маÑштаб"; -MAPCNTRLMNU_ZOOMOUT = "Уменьшить маÑштаб"; -MAPCNTRLMNU_TOGGLEZOOM = "Переключить зум"; -MAPCNTRLMNU_TOGGLEFOLLOW = "Переключить Ñледование"; -MAPCNTRLMNU_TOGGLEGRID = "Переключить Ñетку"; -MAPCNTRLMNU_TOGGLETEXTURE = "Переключить текÑтуры"; -MAPCNTRLMNU_SETMARK = "ПоÑтавить отметку"; -MAPCNTRLMNU_CLEARMARK = "Убрать отметку"; - -// Automap Colors -MAPCOLORMNU_TITLE = "ÐÐСТРОЙКИ ЦВЕТОВ ÐВТОКÐРТЫ"; -MAPCOLORMNU_DEFAULTMAPCOLORS = "Вернуть Ñтандартные цвета"; -MAPCOLORMNU_BACKCOLOR = "Фон"; -MAPCOLORMNU_YOURCOLOR = "Игрок"; -MAPCOLORMNU_WALLCOLOR = "ОдноÑторонние Ñтены"; -MAPCOLORMNU_FDWALLCOLOR = "ДвуÑторонние Ñтены"; -MAPCOLORMNU_CDWALLCOLOR = "ДвуÑторонние Ñтены Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ потолками"; -MAPCOLORMNU_EFWALLCOLOR = "ДвуÑторонние Ñтены Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ полами"; -MAPCOLORMNU_GRIDCOLOR = "Цвет Ñетки"; -MAPCOLORMNU_XHAIRCOLOR = "КурÑор"; -MAPCOLORMNU_NOTSEENCOLOR = "Ðеобнаруженные Ñтены"; -MAPCOLORMNU_LOCKEDCOLOR = "Запертые двери"; -MAPCOLORMNU_INTRALEVELCOLOR = "Телепорт в пределах уровнÑ"; -MAPCOLORMNU_INTERLEVELCOLOR = "Телепорт на другой уровень"; -MAPCOLORMNU_SECRETSECTORCOLOR = "Тайный Ñектор"; -MAPCOLORMNU_UNEXPLOREDSECRETCOLOR = "Ðеобнаруженный тайник"; -MAPCOLORMNU_SPECIALWALLCOLOR = "Специальные триггер-линии"; -MAPCOLORMNU_CHEATMODE = "Чит-режим"; -MAPCOLORMNU_TSWALLCOLOR = "Ðевидимые двуÑторонние Ñтены"; -MAPCOLORMNU_SECRETWALLCOLOR = "Тайные Ñтены"; -MAPCOLORMNU_THINGCOLOR = "Объекты"; -MAPCOLORMNU_MONSTERCOLOR = "МонÑтры"; -MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR = "Ðеучитываемые монÑтры"; -MAPCOLORMNU_FRIENDCOLOR = "ДружеÑтвенные"; -MAPCOLORMNU_ITEMCOLOR = "Предметы"; -MAPCOLORMNU_COUNTITEMCOLOR = "Учитываемые предметы"; -MAPCOLORMNU_OVERLAY = "Прозрачный режим"; -MAPCOLORMNU_OVCHEATMODE = "Прозрачный чит-режим"; -MAPCOLORMNU_PORTAL = "Порталы в прозрачном режиме"; - -// Message Options -MSGMNU_TITLE = "СООБЩЕÐИЯ"; -MSGMNU_SHOWMESSAGES = "Отображение Ñообщений"; -MSGMNU_SHOWOBITUARIES = "Отображение некрологов"; -MSGMNU_SHOWSECRETS = "Отображение Ñообщений о тайниках"; -MSGMNU_MESSAGELEVEL = "Минимальный уровень Ñообщений"; -MSGMNU_CENTERMESSAGES = "Центрирование Ñообщений"; -MSGMNU_MESSAGECOLORS = "Цвета Ñообщений"; -MSGMNU_ITEMPICKUP = "Подбор предмета"; -MSGMNU_OBITUARIES = "Ðекрологи"; -MSGMNU_CRITICALMESSAGES = "Важные ÑообщениÑ"; -MSGMNU_CHATMESSAGES = "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² чате"; -MSGMNU_TEAMMESSAGES = "Командные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² чате"; -MSGMNU_CENTEREDMESSAGES = "Центрированные ÑообщениÑ"; -MSGMNU_SCREENSHOTMESSAGES = "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ Ñкриншотах"; -MSGMNU_LONGSAVEMESSAGES = "Подробные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ ÑохранениÑÑ…"; -MSGMNU_DEVELOPER = "Режим Ñообщений Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²"; - -// Scoreboard Options -SCRBRDMNU_TITLE = "ÐÐСТРОЙКИ ТÐБЛИЦЫ ОЧКОВ"; -SCRBRDMNU_COOPERATIVE = "ÐаÑтройки Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´"; -SCRBRDMNU_ENABLE = "Включить таблицу очков"; -SCRBRDMNU_HEADERCOLOR = "Цвет заголовка"; -SCRBRDMNU_YOURCOLOR = "Ваш цвет"; -SCRBRDMNU_OTHERPLAYERCOLOR = "Цвет других игроков"; -SCRBRDMNU_DEATHMATCH = "ÐаÑтройки Deathmatch"; -SCRBRDMNU_TEAMDEATHMATCH = "ÐаÑтройки командного Deathmatch"; - -// Gameplay Menu -GMPLYMNU_TITLE = "ÐÐСТРОЙКИ ГЕЙМПЛЕЯ"; -GMPLYMNU_TEAMPLAY = "Командный режим"; -GMPLYMNU_TEAMDAMAGE = "Множитель урона по Ñвоим"; -GMPLYMNU_SMARTAUTOAIM = "Умное автоприцеливание"; -GMPLYMNU_FALLINGDAMAGE = "Урон от падениÑ"; -GMPLYMNU_DROPWEAPON = "СохранÑÑ‚ÑŒ оружие поÑле Ñмерти"; -GMPLYMNU_DOUBLEAMMO = "Удвоенные патроны"; -GMPLYMNU_INFINITEAMMO = "БеÑконечные патроны"; -GMPLYMNU_INFINITEINVENTORY = "БеÑконечный инвентарь"; -GMPLYMNU_NOMONSTERS = "Отключить монÑтров"; -GMPLYMNU_NOMONSTERSTOEXIT = "Убить вÑех монÑтров Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°"; -GMPLYMNU_MONSTERSRESPAWN = "МонÑтры воÑкрешаютÑÑ"; -GMPLYMNU_NORESPAWN = "Отключение воÑкрешениÑ"; -GMPLYMNU_ITEMSRESPAWN = "ВоÑÑтановление предметов"; -GMPLYMNU_SUPERRESPAWN = "ВоÑÑтановление Ñупер-бонуÑов"; -GMPLYMNU_FASTMONSTERS = "УÑкоренные монÑтры"; -GMPLYMNU_DEGENERATION = "Уменьшать доп. здоровье"; // Или "ДегенерациÑ" =D -GMPLYMNU_NOAUTOAIM = "Разрешить автоприцеливание"; -GMPLYMNU_ALLOWSUICIDE = "Разрешить Ñуицид"; -GMPLYMNU_ALLOWJUMP = "Прыжки"; -GMPLYMNU_ALLOWCROUCH = "ПриÑедание"; -GMPLYMNU_ALLOWFREELOOK = "Обзор мышью"; -GMPLYMNU_ALLOWFOV = "Разрешить изменение FOV"; -GMPLYMNU_BFGFREEAIM = "Разрешить прицеливание Ñ BFG"; -GMPLYMNU_ALLOWAUTOMAP = "Разрешить иÑпользование автокарты"; -GMPLYMNU_AUTOMAPALLIES = "Показывать Ñоюзников на автокарте"; -GMPLYMNU_ALLOWSPYING = "Разрешить вид от других игроков"; -GMPLYMNU_CHASECAM = "Разрешить вид от 3-го лица"; -GMPLYMNU_DONTCHECKAMMO = "ПроверÑÑ‚ÑŒ патроны при переключении оружиÑ"; // Именно при перелиÑтывании, а не Ñмене на конкретное -GMPLYMNU_KILLBOSSSPAWNS = "Убить Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð˜ÐºÐ¾Ð½Ñ‹ при ее Ñмерти"; -GMPLYMNU_NOCOUNTENDMONSTER = "Считать монÑтров в конечном Ñекторе убитыми"; // Или "Пройденные Ñектора ÑчитаютÑÑ Ð·Ð° % убийÑтв -GMPLYMNU_DEATHMATCH = "ÐаÑтройки deathmatch"; -GMPLYMNU_WEAPONSSTAY = "ОÑтавлÑÑ‚ÑŒ оружие поÑле подбора"; -GMPLYMNU_ALLOWPOWERUPS = "Разрешить бонуÑÑ‹"; -GMPLYMNU_ALLOWHEALTH = "Разрешить бонуÑÑ‹ к здоровью"; -GMPLYMNU_ALLOWARMOR = "Разрешить броню"; -GMPLYMNU_SPAWNFARTHEST = "ВоÑÑтановление подальше от оÑтальных"; -GMPLYMNU_SAMEMAP = "Зациклить уровень"; -GMPLYMNU_FORCERESPAWN = "Моментальное воÑÑтановление"; -GMPLYMNU_ALLOWEXIT = "Разрешить выход"; -GMPLYMNU_BARRELSRESPAWN = "ВоÑÑтановление бочек"; -GMPLYMNU_RESPAWNPROTECTION = "ÐšÑ€Ð°Ñ‚ÐºÐ¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð° поÑле воÑкрешениÑ"; -GMPLYMNU_LOSEFRAG = "ТерÑÑ‚ÑŒ фраг при Ñмерти"; -GMPLYMNU_KEEPFRAGS = "СохранÑÑ‚ÑŒ фраги между уровнÑми"; -GMPLYMNU_NOTEAMSWITCH = "Запретить переход между командами"; -GMPLYMNU_COOPERATIVE = "ÐаÑтройки кооператива"; -GMPLYMNU_MULTIPLAYERWEAPONS = "ПоÑвление Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¸Ð· мультиплеера"; -GMPLYMNU_LOSEINVENTORY = "ТерÑÑ‚ÑŒ веÑÑŒ инвентарь при Ñмерти"; -GMPLYMNU_KEEPKEYS = "СохранÑÑ‚ÑŒ ключи"; -GMPLYMNU_KEEPWEAPONS = "СохранÑÑ‚ÑŒ оружие"; -GMPLYMNU_KEEPARMOR = "СохранÑÑ‚ÑŒ броню"; -GMPLYMNU_KEEPPOWERUPS = "СохранÑÑ‚ÑŒ Ñупер-бонуÑÑ‹"; -GMPLYMNU_KEEPAMMO = "СохранÑÑ‚ÑŒ патроны"; -GMPLYMNU_LOSEHALFAMMO = "ТерÑÑ‚ÑŒ половину патронов"; -GMPLYMNU_SPAWNWHEREDIED = "ВоÑÑтановление на меÑте Ñмерти"; - -// Compatibility Options -CMPTMNU_TITLE = "ÐÐСТРОЙКИ СОВМЕСТИМОСТИ"; -CMPTMNU_MODE = "Режим ÑовмеÑтимоÑти"; -CMPTMNU_ACTORBEHAVIOR = "Поведение акторов"; -CMPTMNU_CORPSEGIBS = "Раздавленные монÑтры могут быть воÑкрешены"; -CMPTMNU_NOBLOCKFRIENDS = "Ðе блокировать дружеÑтвенных монÑтров"; -CMPTMNU_LIMITPAIN = "Ограничить чиÑло потер. душ из Ñлементалей боли"; -CMPTMNU_MBFMONSTERMOVE = "Эффекты влиÑÑŽÑ‚ на движение монÑтров"; -CMPTMNU_CROSSDROPOFF = "МонÑтрам Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÑекать уÑтупы"; -CMPTMNU_DROPOFF = "МонÑтры заÑтревают на уÑтупах"; -CMPTMNU_INVISIBILITY = "МонÑтры видÑÑ‚ невидимых игроков"; -CMPTMNU_MINOTAUR = "Минотавры не Ñоздают огонь в воде"; -CMPTMNU_NOTOSSDROPS = "Выброшенные предметы ÑоздаютÑÑ Ð½Ð° земле"; -CMPTMNU_DEHACKEDBEHAVIOR = "Поведение DeHackEd"; -CMPTMNU_DEHHEALTH = "ÐаÑтройки Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ DEH как в Doom2.exe"; -CMPTMNU_MUSHROOM = "ÐžÑ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÑкороÑÑ‚ÑŒ A_Mushroom в модах DEH"; -CMPTMNU_MAPACTIONBEHAVIOR = "Поведение уровней/дейÑтвий"; -CMPTMNU_USEBLOCKING = "Ð’Ñе Ñпециальные линии могут блокировать "; -CMPTMNU_ANYBOSSDEATH = "Любой A_BossDeath активирует special на уровне"; -CMPTMNU_NODOORLIGHT = "Отключить Ñветовой Ñффект на дверÑÑ… из BOOM"; -CMPTMNU_LIGHT = "ИÑкать ÑоÑеднего Ñвета как в Doom"; -CMPTMNU_SHORTTEX = "ИÑкать кратчайшие текÑтуры как в Doom"; -CMPTMNU_STAIRS = "ИÑпользовать неиÑправленное поÑтроение леÑтниц"; -CMPTMNU_FLOORMOVE = "Поведение Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ полу из Doom"; -CMPTMNU_POINTONLINE = "ИÑпользовать алгоритм point-on-line из Doom"; -CMPTMNU_MULTIEXIT = "Выходы могут быть активированы более одного раза"; -CMPTMNU_PHYSICSBEHAVIOR = "Поведение физики"; -CMPTMNU_NOPASSOVER = "Ðкторы беÑконечно выÑокие"; -CMPTMNU_BOOMSCROLL = "Скроллеры из BOOM ÑвлÑÑŽÑ‚ÑÑ Ð°Ð´Ð´Ð¸Ñ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸"; -CMPTMNU_BADANGLES = "Запрещено двигатьÑÑ Ð¿Ñ€Ñмо на С, Ю, З, Ð’"; -CMPTMNU_WALLRUN = "Включить быÑтрый бег вдоль Ñтен (wallrun)"; -CMPTMNU_RAVENSCROLL = "Raven-Ñкроллеры иÑпользуют оригинальную ÑкороÑÑ‚ÑŒ"; -CMPTMNU_TRACE = "СамоÑÑылающиеÑÑ Ñекторы не блокируют выÑтрелы"; -CMPTMNU_HITSCAN = "ИÑпользовать код из Doom Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¾Ðº хит-Ñканов"; -CMPTMNU_MISSILECLIP = "ИÑпользовать выÑоты из Doom Ð´Ð»Ñ ÑÑ‚Ð¾Ð»ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ñ€Ð°ÐºÐµÑ‚"; -CMPTMNU_RENDERINGBEHAVIOR = "Поведение рендеринга"; -CMPTMNU_POLYOBJ = "РиÑовать полиобъекты как в Hexen"; -CMPTMNU_MASKEDMIDTEX = "Игнорировать Ñмещение Y на Ñкрытых мид-текÑтурах"; -CMPTMNU_SPRITESORT = "Инвертировать Ñортировку Ñпрайтов"; -CMPTMNU_SOUNDBEHAVIOR = "Поведение звуков"; -CMPTMNU_SOUNDSLOTS = "ИÑказить звуки Ð´Ð»Ñ Ñ‚Ñ€ÑŽÐºÐ° беÑшумной BFG"; -CMPTMNU_SILENTPICKUP = "Запрещать другим Ñлышать Ваш подбор предметов"; -CMPTMNU_SILENTINSTANTFLOORS = "Мгновенно двигающиеÑÑ Ð¿Ð¾Ð»Ñ‹ не беззвучны"; -CMPTMNU_SECTORSOUNDS = "Звуки Ñекторов иÑпользуют центр как иÑточник"; -CMPTMNU_SOUNDCUTOFF = "ОÑтанавливать звуки при иÑчезновении актора"; -CMPTMNU_SOUNDTARGET = "ÐžÑ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° иÑточников звука"; -CMPTMNU_TELEPORT = "Скрипт. телепорты не инициируют дейÑÑ‚Ð²Ð¸Ñ Ñекторов"; -CMPTMNU_PUSHWINDOW = "Ðеблокирующие линии могут быть отодвинуты"; - -// Sound Options -SNDMNU_TITLE = "ÐÐСТРОЙКИ ЗВУКÐ"; -SNDMNU_SFXVOLUME = "ГромкоÑÑ‚ÑŒ звука"; -SNDMNU_MENUVOLUME = "ГромкоÑÑ‚ÑŒ меню"; -SNDMNU_MUSICVOLUME = "ГромкоÑÑ‚ÑŒ музыки"; -SNDMNU_MIDIDEVICE = "MIDI проигрыватель"; -SNDMNU_BACKGROUND = "Звуки в фоне"; -SNDMNU_UNDERWATERREVERB = "Эффект под водой"; -SNDMNU_RANDOMIZEPITCHES = "ИзменÑÑ‚ÑŒ выÑоту"; -SNDMNU_CHANNELS = "КоличеÑтво каналов"; -SNDMNU_BACKEND = "Ð—Ð²ÑƒÐºÐ¾Ð²Ð°Ñ ÑиÑтема"; -SNDMNU_OPENAL = "ÐаÑтройки OpenAL"; -SNDMNU_RESTART = "ПерезапуÑтить звук"; -SNDMNU_ADVANCED = "РаÑширенные наÑтройки"; -SNDMNU_MODREPLAYER = "ПÐРÐМЕТРЫ МОДУЛЯ ВОСПРОИЗВЕДЕÐИЯ"; -SNDMNU_MIDIPLAYER = "ÐÐСТРОЙКИ MIDI-ПРОИГРЫВÐТЕЛЯ"; - -// OpenAL Options -OPENALMNU_TITLE = "ÐÐСТРОЙКИ OPENAL"; -OPENALMNU_PLAYBACKDEVICE = "УÑтройÑтво воÑпроизведениÑ"; -OPENALMNU_ENABLEEFX = "Включить EFX"; -OPENALMNU_RESAMPLER = "РеÑемплер"; - -// Advanced Sound Options -ADVSNDMNU_TITLE = "РÐСШИРЕÐÐЫЕ ÐÐСТРОЙКИ"; -ADVSNDMNU_SAMPLERATE = "ЧаÑтота диÑкретизации"; -ADVSNDMNU_HRTF = "HRTF"; -ADVSNDMNU_OPLSYNTHESIS = "Синтез OPL"; -ADVSNDMNU_OPLNUMCHIPS = "КоличеÑтво Ñмулируемых OPL чипов"; -ADVSNDMNU_OPLFULLPAN = "ÐŸÐ¾Ð»Ð½Ð°Ñ Ñтереопанорама Ð´Ð»Ñ MIDI"; -ADVSNDMNU_OPLCORES = "Ядро ÑмулÑции OPL"; -ADVSNDMNU_OPNCORES = "Ядро ÑмулÑции OPN2"; -ADVSNDMNU_GUSEMULATION = "ЭмулÑÑ†Ð¸Ñ GUS"; -ADVSNDMNU_GUSCONFIG = "Файл конфигурации Ð´Ð»Ñ GUS"; -ADVSNDMNU_MIDIVOICES = "MIDI-голоÑа"; -ADVSNDMNU_DMXGUS = "Читать файлы DMXGUS"; -ADVSNDMNU_GUSMEMSIZE = "Размер памÑти GUS"; -ADVSNDMNU_FLUIDSYNTH = "FluidSynth"; -ADVSNDMNU_FLUIDPATCHSET = "Патч-набор"; -ADVSNDMNU_FLUIDGAIN = "УÑиление"; -ADVSNDMNU_REVERB = "РеверберациÑ"; -ADVSNDMNU_REVERB_LEVEL = "Уровень реверберации"; -ADVSNDMNU_CHORUS = "ХоруÑ"; -ADVSNDMNU_TIMIDITY = "Timidity++"; -ADVSNDMNU_ADLMIDI = "ADLMidi"; -ADVSNDMNU_OPNMIDI = "OPNMidi"; -ADVSNDMNU_TIMIDITYEXE = "Путь к Ñинтезатору"; -ADVSNDMNU_TIMIDITYCONFIG = "Файл конфигурации Timidity"; -ADVSNDMNU_TIMIDITYVOLUME = "ОтноÑÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ"; -ADVSNDMNU_WILDMIDI = "WildMidi"; -ADVSNDMNU_WILDMIDICONFIG = "Файл конфигурации WildMidi"; -ADVSNDMNU_SELCONFIG = "Выбор конфигурации"; -ADVSNDMNU_GLOBAL = "Общие"; -ADVSNDMNU_FREEVERB = "Freeverb"; -ADVSNDMNU_GLOBAL_FREEVERB = "Global Freeverb"; -ADVSNDMNU_ADVRESAMPLING = "Продвинутый реÑемплинг"; -ADVSNDMNU_OPLBANK = "OPL Bank"; -ADVSNDMNU_ADLOPLCORES = "OPL Emulator Core"; -ADVSNDMNU_RUNPCMRATE = "Run emulator at PCM rate"; -ADVSNDMNU_ADLNUMCHIPS = "Number of emulated OPL chips"; -ADVSNDMNU_VLMODEL = "Volume model"; -ADVSNDMNU_OPNNUMCHIPS = "Number of emulated OPN chips"; -ADVSNDMNU_ADLCUSTOMBANK = "Use custom WOPL bank"; -ADVSNDMNU_OPLBANKFILE = "WOPL Bank file"; -ADVSNDMNU_OPNCUSTOMBANK = "Use custom WOPN bank"; -ADVSNDMNU_OPNBANKFILE = "WOPN Bank file"; - -// ADLMIDI's emulation cores - -// ADLMIDI's volume models -ADLVLMODEL_AUTO = "Auto (Use setup of bank)"; -ADLVLMODEL_GENERIC = "Generic"; -ADLVLMODEL_NATIVE = "OPL Native"; -ADLVLMODEL_DMX = "DMX"; -ADLVLMODEL_APOGEE = "Apogee"; -ADLVLMODEL_WIN9X = "Win9X-like"; - -// Module Replayer Options -MODMNU_TITLE = "ПÐРÐМЕТРЫ МОДУЛЯ ВОСПРОИЗВЕДЕÐИЯ"; -MODMNU_REPLAYERENGINE = "Звуковой движок"; -MODMNU_MASTERVOLUME = "ÐžÐ±Ñ‰Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ"; -MODMNU_QUALITY = "КачеÑтво"; -// MODMNU_VOLUMERAMPING = "Объем-Ñ€Ñмпинг"; // TODO: Fix -MODMNU_CHIPOMATIC = "Chip-o-matic"; - -// Renderer Options -RNDMNU_TITLE = "СМЕÐИТЬ РЕÐДЕРЕР"; -RNDMNU_RENDERER = "Ðппаратное уÑкорение"; -RNDMNU_TRUECOLOR = "Полноцветный програмный"; -RNDMNU_POLY = "Поли-рендерер (ÑкÑпериментальный)"; -RNDMNU_CANVAS = "ХолÑÑ‚ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ рендеринга"; - -// Video Options -VIDMNU_TITLE = "ÐÐСТРОЙКИ ВИДЕОРЕЖИМÐ"; -VIDMNU_RENDERMODE = "Режим рендеринга"; -VIDMNU_FULLSCREEN = "Полный Ñкран"; -VIDMNU_HIDPI = "Поддержка Retina/HiDPI"; -VIDMNU_BRDLSS = "Безрамочный оконный режим"; -VIDMNU_ASPECTRATIO = "Соотношение Ñторон"; -VIDMNU_FORCEASPECT = "Принудительное Ñоот. Ñторон"; -VIDMNU_CROPASPECT = "Принудительный тип Ñоот."; -VIDMNU_5X4ASPECTRATIO = "Включить Ñоотношение Ñторон 5:4"; -VIDMNU_SCALEMODE = "МаÑштабирование"; -VIDMNU_SCALEFACTOR = "Значение маÑштаба"; -VIDMNU_ENTERTEXT = "Ðажмите ENTER Ð´Ð»Ñ ÑƒÑтановки режима"; -VIDMNU_TESTTEXT1 = "T Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра режима в течение 5 Ñекунд"; -VIDMNU_TESTTEXT2 = "ПожалуйÑта, подождите 5 Ñекунд..."; -VIDMNU_USELINEAR = "Линейное МаÑшт. (Полный Экран)"; -VIDMNU_CUSTOMRES = "ПользовательÑкое разрешение"; -VIDMNU_CUSTOMX = "Польз. Длина"; -VIDMNU_CUSTOMY = "Польз. Ð’Ñ‹Ñота"; -VIDMNU_APPLYW = "Сохранить Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (Оконный Режим)"; -VIDMNU_APPLYFS = "Сохранить Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (Полный Экран)"; -VIDMNU_RESPRESET = "Выбор преÑета разрешениÑ"; -VIDMNU_RESPRESETTTL = "ПОЛЬЗОВÐТЕЛЬСКИЕ ПРЕСЕТЫ РÐЗРЕШЕÐИЯ"; -VIDMNU_RESPRESETHEAD = "ДоÑтупные разрешениÑ"; -VIDMNU_ASPECT43 = "4:3"; -VIDMNU_ASPECT54 = "5:4"; -VIDMNU_ASPECT169 = "16:9"; -VIDMNU_ASPECT1610 = "16:10"; - -// Network Options -NETMNU_TITLE = "ÐÐСТРОЙКИ СЕТИ"; -NETMNU_LOCALOPTIONS = "Локальные наÑтройки"; -NETMNU_MOVEPREDICTION = "ПредÑказание движениÑ"; -NETMNU_LINESPECIALPREDICTION = "ПредÑказание дейÑтвий на уровне"; -NETMNU_PREDICTIONLERPSCALE = "ПредÑказание маÑштаба лÑрпа"; // ?? -NETMNU_LERPTHRESHOLD = "Порог лÑрпа"; // ?? -NETMNU_HOSTOPTIONS = "ÐаÑтройки хоÑта"; -NETMNU_EXTRATICS = "Дополнительные тики"; -NETMNU_TICBALANCE = "БаланÑировка задержки"; - -// Joystick menu - -JOYMNU_ENABLE = "Включить поддержку джойÑтика"; -JOYMNU_DINPUT = "Включить джойÑтики DirectInput"; -JOYMNU_XINPUT = "Включить джойÑтики XInput"; -JOYMNU_PS2 = "ИÑпользовать адаптеры Playstation 2 напрÑмую"; -JOYMNU_NOCON = "ДжойÑтики не обнаружены"; -JOYMNU_CONFIG = "ÐаÑтроить джойÑтик:"; -JOYMNU_DISABLED1 = "ÐаÑтройка «включить поддержку джойÑтика»"; -JOYMNU_DISABLED2 = "должна быть включена, чтобы выÑвить джойÑтик"; -JOYMNU_INVALID = "ÐедопуÑтимый джойÑтик выбран Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ"; -JOYMNU_OVRSENS = "ÐžÐ±Ñ‰Ð°Ñ Ñ‡ÑƒÐ²ÑтвительноÑÑ‚ÑŒ"; -JOYMNU_AXIS = "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñей"; -JOYMNU_INVERT = "Инвертировать"; -JOYMNU_DEADZONE = "ÐœÐµÑ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð°"; -JOYMNU_NOAXES = "Ðет наÑтраиваемых оÑей"; - -// Option Values -OPTVAL_OFF = "Откл."; -OPTVAL_ON = "Вкл."; -OPTVAL_AUTO = "Ðвто"; -OPTVAL_MALE = "МужÑкой"; -OPTVAL_FEMALE = "ЖенÑкий"; -OPTVAL_NEUTRAL = "Ðейтральный"; -OPTVAL_OTHER = "Предмет"; -OPTVAL_UPPERLEFT = "Вверху Ñлева"; -OPTVAL_UPPERRIGHT = "Вверху Ñправа"; -OPTVAL_LOWERLEFT = "Внизу Ñлева"; -OPTVAL_LOWERRIGHT = "Внизу Ñправа"; -OPTVAL_TOUCHSCREENLIKE = "Как ÑенÑорный Ñкран"; -OPTVAL_NONE = "Откл."; -OPTVAL_TURNING = "Поворот"; -OPTVAL_LOOKINGUPDOWN = "ВзглÑд вверх/вниз"; -OPTVAL_MOVINGFORWARD = "Движение вперед"; -OPTVAL_STRAFING = "Движение боком"; -OPTVAL_MOVINGUPDOWN = "Движение вверх/вниз"; -OPTVAL_INVERTED = "Инвертировано"; -OPTVAL_NOTINVERTED = "ПрÑмо"; -OPTVAL_ORIGINAL = "Оригинальный"; -OPTVAL_OPTIMIZED = "Оптимизированный"; -OPTVAL_CLASSIC = "КлаÑÑичеÑкий (более быÑтрый)"; -OPTVAL_PRECISE = "Точный"; -OPTVAL_NORMAL = "Обычный"; -OPTVAL_STRETCH = "РаÑÑ‚Ñнутый"; -OPTVAL_CAPPED = "Ограниченный"; -OPTVAL_PARTICLES = "ЧаÑтицы"; -OPTVAL_SPRITES = "Спрайты"; -OPTVAL_SPRITESPARTICLES = "Спрайты и чаÑтицы"; -OPTVAL_MELT = "ТаÑние"; -OPTVAL_BURN = "Жжение"; -OPTVAL_CROSSFADE = "УвÑдание"; -OPTVAL_ONLYMODIFIED = "Только модифицированный"; -OPTVAL_SMOOTH = "Плавно"; -OPTVAL_TRANSLUCENT = "Полупрозрачный"; -OPTVAL_FUZZ = "Шумовой"; -OPTVAL_SHADOW = "Теневой"; -OPTVAL_ITEMS = "Предметы"; -OPTVAL_WEAPONS = "Оружие"; -OPTVAL_BOTH = "Оба"; -OPTVAL_ZDOOM = "ZDoom"; -OPTVAL_STRIFE = "Strife"; -OPTVAL_PLAYER = "Игрок"; -OPTVAL_MAP = "Карта"; -OPTVAL_SCALETO640X400 = "МаÑштабировать до 640x400"; -OPTVAL_PIXELDOUBLE = "Двойные пикÑели"; -OPTVAL_PIXELQUADRUPLE = "Четверные пикÑели"; -OPTVAL_CURRENTWEAPON = "Текущее оружие"; -OPTVAL_AVAILABLEWEAPONS = "ДоÑтупное оружие"; -OPTVAL_ALLWEAPONS = "Ð’Ñе оружие"; -OPTVAL_LEVELMILLISECONDS = "Уровень, миллиÑекунды"; -OPTVAL_LEVELSECONDS = "Уровень, Ñекунды"; -OPTVAL_LEVEL = "Уровень"; -OPTVAL_HUBSECONDS = "Хаб, Ñекунды"; -OPTVAL_HUB = "Хаб"; -OPTVAL_TOTALSECONDS = "Общее, Ñекунды"; -OPTVAL_TOTAL = "Общее"; -OPTVAL_SYSTEMSECONDS = "СиÑтема, Ñекунды"; -OPTVAL_SYSTEM = "СиÑтема"; -OPTVAL_NETGAMESONLY = "Только Ñетевые игры"; -OPTVAL_ALWAYS = "Ð’Ñегда"; -OPTVAL_AMMOIMAGETEXT = "Изобр. и текÑÑ‚"; -OPTVAL_AMMOTEXTIMAGE = "ТекÑÑ‚ и изобр."; -OPTVAL_SCRIPTSONLY = "Только Ñкрипты"; -OPTVAL_NEVER = "Ðикогда"; -OPTVAL_ALL = "Ð’Ñе"; -OPTVAL_ONLYLASTONE = "Только поÑледнее"; -OPTVAL_CUSTOM = "ПользовательÑкие"; -OPTVAL_TRADITIONALDOOM = "Цвета из Doom"; -OPTVAL_TRADITIONALSTRIFE = "Цвета из Strife"; -OPTVAL_TRADITIONALRAVEN = "Цвета из Raven"; -OPTVAL_ONLYWHENFOUND = "ПоÑле обнаружениÑ"; -OPTVAL_ONFOROVERLAYONLY = "Только прозрачный"; -OPTVAL_OVERLAYNORMAL = "Прозрач. + обыч."; -OPTVAL_OVERLAYONLY = "Только прозрачный"; -OPTVAL_NOTFORHUBS = "Кроме хабов"; -OPTVAL_FRONT = "Перед"; -OPTVAL_ANIMATED = "Ðнимированные"; -OPTVAL_ROTATED = "Повернутые"; -OPTVAL_MAPDEFINEDCOLORSONLY = "Только определенные картой цвета"; -OPTVAL_NODOORS = "Кроме дверей"; -OPTVAL_DOUBLE = "Двойной"; -OPTVAL_TRIPLE = "Тройной"; -OPTVAL_QUADRUPLE = "Четверной"; -OPTVAL_ITEMPICKUP = "Подбор"; -OPTVAL_OBITUARIES = "Ðекрологи"; -OPTVAL_CRITICALMESSAGES = "Важные ÑообщениÑ"; -OPTVAL_NEVERFRIENDS = "Ðе Ð´Ð»Ñ Ñоюзников"; -OPTVAL_ONLYMONSTERS = "Ð”Ð»Ñ Ð¼Ð¾Ð½Ñтров"; -OPTVAL_HEXEN = "Hexen"; -OPTVAL_OLD = "Старый"; -OPTVAL_DEFAULT = "По умол."; -OPTVAL_DOOM = "Doom"; -OPTVAL_DOOMSTRICT = "Doom (Ñтрогий)"; -OPTVAL_BOOM = "Boom"; -OPTVAL_BOOMSTRICT = "Boom (Ñтрогий)"; -OPTVAL_MBF = "MBF"; -OPTVAL_ZDOOM2063 = "ZDoom 2.0.63"; -OPTVAL_4000HZ = "4000 Гц"; -OPTVAL_8000HZ = "8000 Гц"; -OPTVAL_11025HZ = "11025 Гц"; -OPTVAL_22050HZ = "22050 Гц"; -OPTVAL_32000HZ = "32000 Гц"; -OPTVAL_44100HZ = "44100 Гц"; -OPTVAL_48000HZ = "48000 Гц"; -OPTVAL_64SAMPLES = "64 Ñемпла"; -OPTVAL_128SAMPLES = "128 Ñемплов"; -OPTVAL_256SAMPLES = "256 Ñемплов"; -OPTVAL_512SAMPLES = "512 Ñемплов"; -OPTVAL_1024SAMPLES = "1024 Ñемпла"; -OPTVAL_2048SAMPLES = "2048 Ñемплов"; -OPTVAL_4096SAMPLES = "4096 Ñемплов"; -OPTVAL_UNLIMITED = "Без ограничений"; -OPTVAL_256K = "256K"; -OPTVAL_512K = "512K"; -OPTVAL_768K = "768K"; -OPTVAL_1024K = "1024K"; -OPTVAL_MAMEOPL2 = "MAME OPL2"; -OPTVAL_MAMEOPN2 = "MAME YM2612"; -OPTVAL_DOSBOXOPL3 = "DOSBox OPL3"; -OPTVAL_JAVAOPL3 = "Java OPL3"; -OPTVAL_NUKEDOPL3 = "Nuked OPL3"; -OPTVAL_NUKEDOPL3174 = "Nuked OPL3 v1.7.4"; -OPTVAL_NUKEDOPN2 = "Nuked OPN2"; -OPTVAL_GENSOPN2 = "GENS YM2612"; -OPTVAL_SOUNDSYSTEM = "ÐудиоÑиÑтема"; -OPTVAL_FOO_DUMB = "foo_dumb"; -OPTVAL_ALIASING = "ÐлиаÑинг"; -OPTVAL_LINEAR = "Линейный/ое/аÑ"; -OPTVAL_NEAREST = "Ближайший"; -OPTVAL_PCF_LOW = "PCF (Ðизкий)"; -OPTVAL_PCF_MEDIUM = "PCF (Средний)"; -OPTVAL_PCF_HIGH = "PCF (Ð’Ñ‹Ñокий)"; -OPTVAL_CUBIC = "КубичеÑкий"; -OPTVAL_BLEP = "Band-limited step"; // fix -OPTVAL_LINEARSLOW = "Линейный (Медленнее)"; -OPTVAL_BLAM = "Band-limited linear"; -OPTVAL_CUBICSLOW = "КубичеÑкий (Медленнее)"; -OPTVAL_SINC = "Вход"; -OPTVAL_NOTEONOFFONLY = "Note on/off only"; -OPTVAL_FULLRAMPING = "Full ramping"; -OPTVAL_ALLUNACKNOWLEDGED = "All unacknowledged"; -OPTVAL_ERRORS = "Ошибки"; -OPTVAL_WARNINGS = "ПредупреждениÑ"; -OPTVAL_NOTIFICATIONS = "УведомлениÑ"; -OPTVAL_EVERYTHING = "Ð’Ñе"; -OPTVAL_FULLSCREENONLY = "Ð’ полном Ñкране"; -OPTVAL_GL = "OpenGL"; -OPTVAL_D3D = "Direct3D"; -OPTVAL_SDL = "SDL"; -OPTVAL_COCOA = "Cocoa"; -OPTVAL_HWPOLY = "OpenGL аппаратный"; -OPTVAL_SWDOOM = "Программный"; -OPTVAL_SWDOOMTC = "Полноцветный програмный"; -OPTVAL_SWPOLY = "Полирендер"; -OPTVAL_SWPOLYTC = "Полноцветный полирендер"; -OPTVAL_DEDICATED = "Ð’Ñ‹ÑÐ¾ÐºÐ°Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ÑÑ‚ÑŒ"; -OPTVAL_INTEGRATED = "ЭнергоÑбережение"; -OPTVAL_VANILLA = "Ванильный"; -OPTVAL_VTFZDOOM = "ZDoom (форÑирована)"; -OPTVAL_VTFVANILLA = "Vanilla (форÑирована)"; -OPTVAL_VTAZDOOM = "Auto (предпочитать ZDoom)"; -OPTVAL_VTAVANILLA = "Auto (предпочитать Preferred)"; -OPTVAL_SCALENEAREST = "МаÑштаб. (Nearest)"; -OPTVAL_SCALELINEAR = "МаÑштаб. (Linear)"; -OPTVAL_LETTERBOX = "Формат Letterbox"; - -// Colors -C_BRICK = "\caКирпичный"; -C_TAN = "\cbБежевый"; -C_GRAY = "\ccСерый"; -C_GREEN = "\cdЗеленый"; -C_BROWN = "\ceКоричневый"; -C_GOLD = "\cfЗолотой"; -C_RED = "\cgКраÑный"; -C_BLUE = "\chСиний"; -C_ORANGE = "\ciОранжевый"; -C_WHITE = "\cjБелый"; -C_YELLOW = "\ckЖелтый"; -C_DEFAULT = "\clПо умол."; -C_BLACK = "\cmЧерный"; -C_LIGHTBLUE = "\cnГолубой"; -C_CREAM = "\coКремовый"; -C_OLIVE = "\cpОливковый"; -C_DARKGREEN = "\cqТемно-зеленый"; -C_DARKRED = "\crТемно-краÑный"; -C_DARKBROWN = "\csТемно-коричневый"; -C_PURPLE = "\ctФиолетовый"; -C_DARKGRAY = "\cuТемно-Ñерый"; -C_CYAN = "\cvСине-зеленый"; -C_ICE = "\cwЛедÑной"; -C_FIRE = "\cxОгненный"; -C_SAPPHIRE = "\cyСапфировый"; -C_TEAL = "\czМорÑкой"; -// Option Strings -OPTSTR_SIMPLEARROW = "Стрелка"; -OPTSTR_HERETIC = "Heretic"; -OPTSTR_CHEX = "Chex"; -OPTSTR_SYSTEMCURSOR = "СиÑтемный курÑор"; -OPTSTR_NOSOUND = "Без звука"; -OPTSTR_AUTO = "Ðвто"; -OPTSTR_MONO = "Моно"; -OPTSTR_STEREO = "Стерео"; -OPTSTR_PROLOGIC = "Dolby Prologic Декодер"; -OPTSTR_QUAD = "ЧетырехмеÑтный"; -OPTSTR_SURROUND = "5 динамиков"; -OPTSTR_5POINT1 = "Динамики 5.1"; -OPTSTR_7POINT1 = "Динамики 7.1"; -OPTSTR_NOINTERPOLATION = "Без интерполÑции"; -OPTSTR_SPLINE = "Сплайн"; -OPTSTR_OPENAL = "OpenAL"; - -NOTSET = "Ðе задан"; -SAFEMESSAGE = "Ð’Ñ‹ уверены?"; -MNU_COLORPICKER = "Выбор цветов"; - -WI_FINISHED = "завершен"; -WI_ENTERING = "ЗагружаетÑÑ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ:"; - -AM_MONSTERS = "МонÑтры:"; -AM_SECRETS = "Тайники:"; -AM_ITEMS = "Предметы:"; - -// Bloodbath announcer - -BBA_BONED = "%k boned %o like a fish"; -BBA_CASTRA = "%k castrated %o"; -BBA_CREAMED = "%k creamed %o"; -BBA_DECIMAT = "%k decimated %o"; -BBA_DESTRO = "%k destroyed %o"; -BBA_DICED = "%k diced %o"; -BBA_DISEMBO = "%k disembowled %o"; -BBA_FLATTE = "%k flattened %o"; -BBA_JUSTICE = "%k gave %o Anal Justice"; -BBA_MADNESS = "%k gave AnAl MaDnEsS to %o"; -BBA_KILLED = "%k killed %o"; -BBA_MINCMEAT = "%k made mincemeat out of %o"; -BBA_MASSACR = "%k massacred %o"; -BBA_MUTILA = "%k mutilated %o"; -BBA_REAMED = "%k reamed %o"; -BBA_RIPPED = "%k ripped %o a new orifice"; -BBA_SLAUGHT = "%k slaughtered %o"; -BBA_SMASHED = "%k smashed %o"; -BBA_SODOMIZ = "%k sodomized %o"; -BBA_SPLATT = "%k splattered %o"; -BBA_SQUASH = "%k squashed %o"; -BBA_THROTTL = "%k throttled %o"; -BBA_WASTED = "%k wasted %o"; -BBA_BODYBAG = "%k body bagged %o"; -BBA_HELL = "%k sent %o to Hell"; -BBA_TOAST = "%k toasted %o"; -BBA_SNUFF = "%k snuffed %o"; -BBA_HOSED = "%k hosed %o"; -BBA_SPRAYED = "%k sprayed %o"; -BBA_DOGMEAT = "%k made dog meat out of %o"; -BBA_BEATEN = "%k beat %o like a cur"; - -BBA_EXCREMENT = "%o is excrement"; -BBA_HAMBURGER = "%o is hamburger"; -BBA_SCROTUM = "%o suffered scrotum separation"; -BBA_POPULATION = "%o volunteered for population control"; -BBA_SUICIDE = "%o has suicided"; -BBA_DARWIN = "%o received the Darwin Award"; - -// Chex Quest Strings -CHUSTR_E1M1 = "E1M1: Зона приземлениÑ"; -CHUSTR_E1M2 = "E1M2: Хранилище"; -CHUSTR_E1M3 = "E1M3: ЛабораториÑ"; -CHUSTR_E1M4 = "E1M4: Дендрарий"; -CHUSTR_E1M5 = "E1M5: Каверны Базоика"; - -CE1TEXT = - "МиÑÑÐ¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð°.\n" - "\n" - "Готовы к Ñледующей миÑÑии?\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "Ðажмите ESC Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ..."; - -CE2TEXT = "Ты Ñделал Ñто!"; -CE3TEXT = "ПревоÑÑ…Ð¾Ð´Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°!"; -CE4TEXT = "ФантаÑтичеÑки."; - -CLOADNET = "you can't do load while in a net quest!\n\npress a key."; -$ifgame(chex) QSPROMPT = "quicksave over your quest named\n\n'%s'?\n\npress y or n."; -$ifgame(chex) QLOADNET = "you can't quickload during a netquest!\n\npress a key."; -$ifgame(chex) QLPROMPT = "do you want to quickload the quest named\n\n'%s'?\n\npress y or n."; -CNEWGAME = "you can't start a new quest\nwhile in a network quest.\n\npress a key."; - -CNIGHTMARE = "Careful, this will be tough.\nDo you wish to continue?\n\npress y or n."; - -CSWSTRING = "Ñто — Chex(R) Quest. look for\n\nfuture levels at www.chexquest.com.\n\npress a key."; // fix - -$ifgame(chex) NETEND = "Ðевозможно прервать Ñетевой квеÑÑ‚!\n\nÐажмите любую клавишу."; -$ifgame(chex) ENDGAME = "Ð’Ñ‹ точно хотите завершить квеÑÑ‚?\n\nÐажмите Y или N."; - -GOTCHEXARMOR = "Получена Chex(R)-бронÑ."; -GOTSUPERCHEXARMOR = "Получена Chex(R)-ÑверхбронÑ!"; -GOTWATER = "Получен Ñтакан воды."; -GOTREPELLENT = "Получен репеллент против Ñлизи."; -GOTBREAKFAST = "Супер-завтрак!"; -GOTCBLUEKEY = "Получен Ñиний ключ."; -GOTCYELLOWKEY = "Получен желтый ключ."; -GOTCREDKEY = "Получен краÑный ключ."; -GOTFRUIT = "ВзÑта тарелка Ñ Ñ„Ñ€ÑƒÐºÑ‚Ð°Ð¼Ð¸."; -GOTVEGETABLESNEED = "ВзÑÑ‚Ñ‹ овощи при крайней необходимоÑти!"; -GOTVEGETABLES = "ВзÑта тарелка Ñ Ð¾Ð²Ð¾Ñ‰Ð°Ð¼Ð¸."; -GOTSLIMESUIT = "Ðайден противоÑлизневый коÑтюм"; -GOTCHEXMAP = "Ðайдена ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° меÑтноÑти"; - -GOTZORCHRECHARGE = "Picked up a mini zorch recharge."; -GOTMINIZORCHPACK = "Picked up a mini zorch pack."; -GOTPROPULSORRECHARGE = "Picked up a zorch propulsor recharge."; -GOTPROPULSORPACK = "Picked up a zorch propulsor pack."; -GOTPHASINGZORCHERRECHARGE = "Picked up a phasing zorcher recharge"; -GOTPHASINGZORCHERPACK = "Picked up a phasing zorcher pack."; -GOTLARGEZORCHERRECHARGE = "Picked up a large zorcher recharge."; -GOTLARGEZORCHERPACK = "Picked up a large zorcher pack."; -GOTZORCHPACK = "Picked up a Zorchpak!"; - -GOTLAZDEVICE = "You got the LAZ Device! Woot!"; -GOTRAPIDZORCHER = "You got the Rapid Zorcher!"; -GOTSUPERBOOTSPORK = "You got the Super Bootspork!"; -GOTZORCHPROPULSOR = "You got the Zorch Propulsor!"; -GOTPHASINGZORCHER = "You got the Phasing Zorcher!"; -GOTLARGEZORCHER = "You got the Large Zorcher!"; -GOTSUPERLARGEZORCHER = "You got the Mega Zorcher!"; -GOTMINIZORCHER = "Picked up a Mini Zorcher."; - -$ifgame(chex) STSTR_DQDON = "Invincible Mode ON"; -$ifgame(chex) STSTR_DQDOFF = "Invincible Mode OFF"; -$ifgame(chex) STSTR_FAADDED = "Zorch Added"; -$ifgame(chex) STSTR_KFAADDED = "Super Zorch Added"; -$ifgame(chex) STSTR_CHOPPERS = "... Eat Chex(R)!"; - -OB_COMMONUS = "%o was slimed by a flemoid."; -OB_BIPEDICUS = "%o was slimed by a bipedicus."; -OB_BIPEDICUS2 = "%o was slimed by an armored bipedicus."; -OB_CYCLOPTIS = "%o was slimed by a cycloptis."; -OB_FLEMBRANE = "%o was defeated by the Flembrane."; - -OB_MPSPOON = "%o was spoon fed by %k."; -OB_MPBOOTSPORK = "%o was thoroughly mixed with %k bootspork."; -OB_MPZORCH = "%o was zorched by %k."; -OB_MPMEGAZORCH = "%o was hit by %k mega-zorcher."; -OB_MPRAPIDZORCH = "%o was rapid zorched by %k."; -OB_MPPROPULSOR = "%o was zorched by %k propulsor."; -OB_MPP_SPLASH = "%o was hit by %k propulsor."; -OB_MPPHASEZORCH = "%o was phase zorched by %k."; -OB_MPLAZ_BOOM = "%o fell prey to %k LAZ device."; -OB_MPLAZ_SPLASH = "%o was lazzed by %k."; - -// GZDoom exclusive: - -DSPLYMNU_GLOPT = "Рендерер OpenGL"; -DSPLYMNU_SWOPT = "Программный рендерер"; -DSPLYMNU_GAMMA = "Гамма-коррекциÑ"; -DSPLYMNU_CONTRAST = "КонтраÑÑ‚"; -DSPLYMNU_SATURATION = "ÐаÑыщенноÑÑ‚ÑŒ"; -DSPLYMNU_HWGAMMA = "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð³Ð°Ð¼Ð¼Ð°"; - -// OpenGL Options -GLMNU_TITLE = "ÐÐСТРОЙКИ OPENGL"; -GLMNU_DYNLIGHT = "ДинамичеÑкое оÑвещение"; -GLMNU_TEXOPT = "ÐаÑтройки текÑтур"; -GLMNU_PREFS = "ПредпочтениÑ"; - -// Texture Options -GLTEXMNU_TITLE = "ÐÐСТРОЙКИ ТЕКСТУР"; -GLTEXMNU_TEXENABLED = "Вклюить текÑтуры"; -GLTEXMNU_TEXFILTER = "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚ÐµÐºÑтур"; -GLTEXMNU_ANISOTROPIC = "ÐÐ½Ð¸Ð·Ð¾Ñ‚Ñ€Ð¾Ð¿Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ"; -GLTEXMNU_TEXFORMAT = "Формат текÑтур"; -GLTEXMNU_ENABLEHIRES = "ТекÑтуры Ñ Ð²Ñ‹Ñоким разрешением"; -GLTEXMNU_HQRESIZE = "МаÑштабирование текÑтур"; -GLTEXMNU_HQRESIZEMULT = "Множитель маÑштабированиÑ"; -GLTEXMNU_HQRESIZEWARN = "Потребует в %d раз больше видеопамÑти"; -GLTEXMNU_RESIZETEX = "МаÑштабирование текÑтур"; -GLTEXMNU_RESIZESPR = "МаÑштабирование Ñпрайтов"; -GLTEXMNU_RESIZEFNT = "МаÑштабирование шрифтов"; -GLTEXMNU_PRECACHETEX = "КÑшировать GL-текÑтур"; -GLTEXMNU_TRIMSPREDGE = "Обрезание краев Ñпрайтов"; -GLTEXMNU_SORTDRAWLIST = "Сортировать ÑпиÑки текÑтур"; - -// Dynamic Light Options -GLLIGHTMNU_TITLE = "ДИÐÐМИЧЕСКОЕ ОСВЕЩЕÐИЕ"; -GLLIGHTMNU_LIGHTSENABLED = "ДинамичеÑкое оÑвещение (OpenGL)"; -GLLIGHTMNU_LIGHTDEFS = "Включить Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñвета"; -GLLIGHTMNU_CLIPLIGHTS = "Обрезать Ñвет"; -GLLIGHTMNU_LIGHTSPRITES = "ОÑвещение Ñпрайтов"; -GLLIGHTMNU_LIGHTPARTICLES = "ОÑвещение чаÑтиц"; -GLLIGHTMNU_LIGHTSHADOWMAP = "Свет на теневых картах"; -GLLIGHTMNU_LIGHTSHADOWMAPQUALITY = "КачеÑтво теневых карт"; -GLLIGHTMNU_LIGHTSHADOWMAPFILTER = "Фильтр теневых карт"; - -// OpenGL Preferences -GLPREFMNU_TITLE = "ÐÐСТРОЙКИ OPENGL"; -GLPREFMNU_SECLIGHTMODE = "Режим оÑÐ²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñекторов"; -GLPREFMNU_FOGMODE = "Режим тумана"; -GLPREFMNU_FOGFORCEFULLBRIGHT = "Туман увеличивает ÑркоÑÑ‚ÑŒ"; -GLPREFMNU_WPNLIGHTSTR = "ИнтенÑивноÑÑ‚ÑŒ вÑпышек оружиÑ"; -GLPREFMNU_ENVIRONMENTMAPMIRROR = "Карта Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð½Ð° зеркалах"; -GLPREFMNU_ENV = "Улучшенный режим ночного видениÑ"; -GLPREFMNU_ENVSTEALTH = "ПÐÐ’ показывает Ñкрытых монÑтров"; -GLPREFMNU_SPRBRIGHTFOG = "ÐŸÐ¾Ð»Ð½Ð°Ñ ÑркоÑÑ‚ÑŒ в тумане"; -GLPREFMNU_SPRCLIP = "ÐаÑтроить обрезку Ñпрайтов"; -GLPREFMNU_SPRBLEND = "Размытие краев Ñпрайтов"; -GLPREFMNU_FUZZSTYLE = "Тип шума"; -GLPREFMNU_SPRBILLBOARD = "Поворот Ñпрайтов"; -GLPREFMNU_SPRBILLFACECAMERA = "Спрайты направлены к камере"; -GLPREFMNU_PARTICLESTYLE = "Тип чаÑтиц"; -GLPREFMNU_AMBLIGHT = "Уровень раÑÑеÑннего Ñвета"; -GLPREFMNU_RENDERQUALITY = "КачеÑтво рендеринга"; -GLPREFMNU_MENUBLUR = "Размытие фона меню"; -GLPREFMNU_VRMODE = "VR режим"; -GLPREFMNU_VRQUADSTEREO = "Quad Stereo"; -GLPREFMNU_MULTISAMPLE = "МультиÑÑмплинг"; -GLPREFMNU_TONEMAP = "Режим тоун-мÑппинга"; -GLPREFMNU_BLOOM = "Режим блум"; -GLPREFMNU_LENS = "ИÑкажение линзы"; -GLPREFMNU_SSAO = "КачеÑтво Ð·Ð°Ñ‚ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾ÐºÑ€ÑƒÐ¶Ð°ÑŽÑ‰ÐµÐ¹ Ñреды"; -GLPREFMNU_SSAO_PORTALS = "КоличеÑтво порталов Ð´Ð»Ñ Ð—Ð°Ñ‚. Окр. Среды"; -GLPREFMNU_FXAA = "КачеÑтво FXAA"; -GLPREFMNU_DITHER = "Вывод дизеринга"; -GLPREFMNU_PALTONEMAPORDER = "ПорÑдок палитры тоун-мÑпа"; -GLPREFMNU_PALTONEMAPPOWER = "ЭкÑпонента палитры тоун-мÑпа"; -GLPREFMNU_SWLMBANDED = "Banded SW Lightmode"; // fix -GLPREFMNU_VRIPD = "РаÑÑтоÑние Между Глазами"; -GLPREFMNU_VRSCREENDIST = "РаÑÑтоÑние От Экрана"; - -// Option Values -OPTVAL_SMART = "Умный"; -OPTVAL_SMARTER = "Умнее"; -OPTVAL_INFRAREDONLY = "Только инфракраÑный"; -OPTVAL_INFRAREDANDTORCH = "ИнфракраÑный и факел"; -OPTVAL_ANYFIXEDCOLORMAP = "Ð›ÑŽÐ±Ð°Ñ Ñ„Ð¸ÐºÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ†Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"; -OPTVAL_NONENEARESTMIPMAP = "Ðет (ближайший мипмап)"; -OPTVAL_NONELINEARMIPMAP = "Ðет (линейный мипмап)"; -OPTVAL_NONETRILINEAR = "Ðет (трехлинейнаÑ)"; -OPTVAL_BILINEAR = "БилинейнаÑ"; -OPTVAL_TRILINEAR = "ТрехлинейнаÑ"; -OPTVAL_RGBA8 = "RGBA8"; -OPTVAL_RGB5A1 = "RGB5_A1"; -OPTVAL_RGBA4 = "RGBA4"; -OPTVAL_RGBA2 = "RGBA2"; -OPTVAL_COMPRRGBA = "COMPR_RGBA"; -OPTVAL_S3TCDXT1 = "S3TC_DXT1"; -OPTVAL_S3TCDXT3 = "S3TC_DXT3"; -OPTVAL_S3TCDXT5 = "S3TC_DXT5"; -OPTVAL_2X = "2x"; -OPTVAL_4X = "4x"; -OPTVAL_8X = "8x"; -OPTVAL_16X = "16x"; -OPTVAL_32X = "32x"; -OPTVAL_USEASPALETTE = "ИÑпользовать как палитру"; -OPTVAL_BLEND = "Смешать"; -OPTVAL_STANDARD = "Стандартный"; -OPTVAL_BRIGHT = "Яркий"; -OPTVAL_DARK = "Темный"; -OPTVAL_LEGACY = "Legacy"; -OPTVAL_SOFTWARE = "Программный"; -OPTVAL_SPEED = "СкороÑÑ‚ÑŒ"; -OPTVAL_QUALITY = "КачеÑтво"; -OPTVAL_OPTIMAL = "Оптимальный"; -OPTVAL_60 = "60"; -OPTVAL_70 = "70"; -OPTVAL_72 = "72"; -OPTVAL_75 = "75"; -OPTVAL_85 = "85"; -OPTVAL_100 = "100"; -OPTVAL_YAXIS = "По горизонтали"; -OPTVAL_XYAXIS = "По обеим оÑÑм"; -OPTVAL_SQUARE = "Квадратный"; -OPTVAL_ROUND = "Круглый"; -OPTVAL_SCALENX = "ScaleNx"; -OPTVAL_NORMALNX = "NormalNx"; -OPTVAL_HQNX = "hqNx"; -OPTVAL_HQNXMMX = "hqNx MMX"; -OPTVAL_NXBRZ = "xBRZ"; -OPTVAL_OLD_NXBRZ = "Старый xBRZ"; -OPTVAL_RADIAL = "Радиальный"; -OPTVAL_PIXELFUZZ = "ПикÑельный шум"; -OPTVAL_SMOOTHFUZZ = "Гладкий шум"; -OPTVAL_SWIRLYFUZZ = "КружащийÑÑ ÑˆÑƒÐ¼"; -OPTVAL_TRANSLUCENTFUZZ = "Прозрачный шум"; -OPTVAL_NOISE = "Шум"; // fix? -OPTVAL_SMOOTHNOISE = "ÐœÑгкий шум"; // fix? -OPTVAL_JAGGEDFUZZ = "Зазубренный шум"; -OPTVAL_GREENMAGENTA = "Зеленый/Маджента"; -OPTVAL_REDCYAN = "КраÑный/Голубой"; -OPTVAL_AMBERBLUE = "Янтарный/Синий"; -OPTVAL_LEFTEYE = "Левый глаз"; -OPTVAL_RIGHTEYE = "Правый глаз"; -OPTVAL_SBSFULL = "Бок-о-бок, полно"; -OPTVAL_SBSNARROW = "Бок-о-бок, узко"; -OPTVAL_TOPBOTTOM = "Вверх/вниз"; -OPTVAL_ROWINTERLEAVED = "Row Interleaved"; // fix -OPTVAL_COLUMNINTERLEAVED = "Column Interleaved"; // fix -OPTVAL_CHECKERBOARD = "Ð¨Ð°Ñ…Ð¼Ð°Ñ‚Ð½Ð°Ñ Ð´Ð¾Ñка"; -OPTVAL_QUADBUFFERED = "Quad-buffered"; // fix -OPTVAL_UNCHARTED2 = "Uncharted 2"; -OPTVAL_HEJLDAWSON = "Хейл ДоуÑон"; -OPTVAL_REINHARD = "Рейнхард"; -OPTVAL_PALETTE = "Doom палитра"; // Чтобы было понÑтнее -OPTVAL_LOW = "Ðизкий"; -OPTVAL_MEDIUM = "Средний"; -OPTVAL_HIGH = "Ð’Ñ‹Ñокий"; -OPTVAL_EXTREME = "Крайний"; -OPTVAL_OBVERSEFIRST = "Лицевой"; -OPTVAL_REVERSEFIRST = "Обратный"; - -DSPLYMNU_TCOPT = "ПолноцветноÑÑ‚ÑŒ"; - -TCMNU_TITLE = "ÐÐСТРОЙКИ ПОЛÐОЦВЕТÐОСТИ"; - -TCMNU_TRUECOLOR = "Полноцветный вывод"; -TCMNU_MINFILTER = "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ уменьшении"; -TCMNU_MAGFILTER = "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ увеличении"; -TCMNU_MIPMAP = "ИÑпользовать мип-маппинг"; -TCMNU_DYNLIGHTS = "ДинамичеÑкое оÑвещение (программное)"; - -// SVE strings: - -TAG_TALISMANRED = "КраÑный талиÑман"; -TAG_TALISMANGREEN = "Зеленый талиÑман"; -TAG_TALISMANBLUE = "Синий талиÑман"; -MSG_TALISMANRED = "You have a feeling that it wasn't to be touched..."; -MSG_TALISMANGREEN = "Whatever it is, it doesn't belong in this world..."; -MSG_TALISMANBLUE = "It must do something..."; -MSG_TALISMANPOWER = "You have super strength!"; - -GZDRT_LANGUAGE = "Язык"; diff --git a/wadsrc/static/lmacros.csv b/wadsrc/static/lmacros.csv new file mode 100644 index 000000000..d82d900f9 --- /dev/null +++ b/wadsrc/static/lmacros.csv @@ -0,0 +1,12 @@ +name,language,male,female,neutral,object +ao_esp,es,o,a,o,o +e_fr,fr,,e,, +ao_rus,ru,,а,о,о +refl_rus,ru,ÑÑ,аÑÑŒ,оÑÑŒ,оÑÑŒ +adj_1_rus,ru,ый,аÑ,ое,ое +adj_2_rus,ru,ен,на,но,но +adj_3_rus,ru,ён,на,но,но +irreg_1_rus,ru,ёл,ла,ло,ло +irreg_2_rus,ru,,ла,ло,ло +ao_1_srb,sr,о,ла,ло,ло +ao_2_srb,sr,ао,ла,ло,ло \ No newline at end of file diff --git a/wadsrc_extra/static/language.csv b/wadsrc_extra/static/language.csv new file mode 100644 index 000000000..8901e73be --- /dev/null +++ b/wadsrc_extra/static/language.csv @@ -0,0 +1,5254 @@ +default,Identifier,Filter,Remarks,eng enc ena enz eni ens enj enb enl ent enw,de,es,esa esb esc esd ese esf esg esh esi esl esm esn eso esr ess esu esv esy esz,fr,hu,it,pt,ru,sr +,,,Doom Episode names,,,,,,,,,, +Knee-Deep in the Dead,TXT_D1E1,,,,Knietief im Tod,Hasta las Rodillas entre Muertos,,Plongé dans la Mort,,,,По колено в трупах, +The Shores of Hell,TXT_D1E2,,,,Die Ufer der Hölle,Las Orillas del Infierno,,Les Portes de l'Enfer,,,,Берега Ðда, +Inferno,TXT_D1E3,,,,,Averno,,,,,,Инферно, +Thy Flesh Consumed,TXT_D1E4,,,,Dein Fleisch ist verbraucht,Tu Carne Consumida,,Votre Chair Consumée,,,,Ð¢Ð²Ð¾Ñ Ð¿Ð»Ð¾Ñ‚ÑŒ иÑтощена, +Hell On Earth,TXT_D2E1,,,,Hölle auf Erden,Infierno en la Tierra,,Enfer sur Terre,,,,Ðд на Земле, +No Rest for the Living,TXT_D2E2,,,,Keine Ruhe für die Lebenden,No hay Descanso para los Vivos,,Pas de repos pour les vivants,,,,Ðет Ð¿Ð¾ÐºÐ¾Ñ Ð´Ð»Ñ Ð¶Ð¸Ð²Ñ‹Ñ…, +The Plutonia Experiment,TXT_PLUT_EP,,,,Das Plutonia Experiment,El Experimento Plutonia,,L'expérience Plutonia,,,,ЭкÑперимент «ПлутониÑ», +TNT: Evilution,TXT_TNT_EP,,,,,TNT: Malvolución,,,,,,TNT: ДьÑволюциÑ, +Chex Quest,TXT_CHEX_EP,,,,,,,,,,,, +,,,Level names,,,,,,,,,, +,,,Doom 1,,,,,,,,,, +E1M1: Hangar,HUSTR_E1M1,,,,,,,,E1M1: Hangár,,,E1M1: Ðнгар,E1M1: Хангар +E1M2: Nuclear Plant,HUSTR_E1M2,,,,E1M2: Nuklearfabrik,E1M2: Planta Nuclear,,E1M2: Centrale Nucléaire,E1M2: AtomerÅ‘mű,E1M2: Centrale Nucleare,,E1M2: ÐÑ‚Ð¾Ð¼Ð½Ð°Ñ ÑлектроÑтанциÑ,E1M2: Ðуклеарна електрана +E1M3: Toxin Refinery,HUSTR_E1M3,,,,E1M3: Giftraffinerie,E1M3: Refinería de Toxinas,,E1M3: Raffinerie de Toxines,E1M3: Méreg Finomító,E1M3: Raffineria delle Tossine,,E1M3: Завод по переработке токÑинов,E1M3: Рафинерија за токÑине +E1M4: Command Control,HUSTR_E1M4,,,,E1M4: Betriebssteuerung,E1M4: Control de Mando,,E1M4: Centre de Contrôle,E1M4: Parancsnoki irányítás,E1M4: Centrale di Comando,,E1M4: Командный пункт,E1M4: Заповедни центар +E1M5: Phobos Lab,HUSTR_E1M5,,,,E1M5: Phobos-Labor,E1M5: Laboratorio de Fobos,,E1M5: Laboratoires Phobos,E1M5: Phobos Laboratórium,E1M5: Laboratorio di Phobos,,E1M5: Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° ФобоÑе,E1M5: Лабораторија на ФобоÑу +E1M6: Central Processing,HUSTR_E1M6,,,,E1M6: Zentralverarbeitung,E1M6: Procesador Central,,E1M6: Centre de Traitement,E1M6: Központi Feldolgozó,E1M6: Zona Elaboratori,,E1M6: Центральный пункт обработки, +E1M7: Computer Station,HUSTR_E1M7,,,,E1M7: Computerstation,E1M7: Estación de Cómputo,,E1M7: Station Informatique,E1M7: Számítógép Ãllomás,E1M7: Stazione dei Computer,,E1M7: ВычиÑлительный центр,E1M7: КомпјутерÑка Ñтаница +E1M8: Phobos Anomaly,HUSTR_E1M8,,,,E1M8: Phobos-Anomalie,E1M8: Anomalía de Fobos,,E1M8: Anomalie de Phobos,E1M8: Phobos Anomália,E1M8: L'anomalia di Phobos,,E1M8: ÐÐ½Ð¾Ð¼Ð°Ð»Ð¸Ñ Ð¤Ð¾Ð±Ð¾Ñа,E1M8: Ðномалија на ФобоÑу +E1M9: Military Base,HUSTR_E1M9,,,,E1M9: Militärbasis,E1M9: Base Militar,,E1M9: Base Militaire ,E1M9: Katonai Bázis,E1M9: Base militare,,E1M9: Ð’Ð¾ÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð°,E1M9: Војна база +E2M1: Deimos Anomaly,HUSTR_E2M1,,,,E2M1: Deimos-Anomalie,E2M1: Anomalía de Deimos,,E2M1: Anomalie de Déimos,E2M1: Deimos Anomália,E2M1: L'anomalia di Deimos,,E2M1: ÐÐ½Ð¾Ð¼Ð°Ð»Ð¸Ñ Ð”ÐµÐ¹Ð¼Ð¾Ñа, +E2M2: Containment Area,HUSTR_E2M2,,,,E2M2: Lagerhalle,E2M2: Ãrea de Confinamiento,,E2M2: Zone de Stockage,E2M2: Konténer Terület,E2M2: Area di contenimento,,E2M2: Хранилище, +E2M3: Refinery,HUSTR_E2M3,,,,E2M3: Raffinerie,E2M3: Refinería,,E2M3: Raffinerie,E2M3: Finomító,E2M3: Raffineria,,E2M3: ОчиÑтительный завод, +E2M4: Deimos Lab,HUSTR_E2M4,,,,E2M4: Deimos Labor,E2M4: Laboratorio de Deimos,,E2M4: Laboratoires Déimos,E2M4: Deimos Laboratórium,E2M4: Laboratorio di Deimos,,E2M4: Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° деймоÑе, +E2M5: Command Center,HUSTR_E2M5,,,,E2M5: Kommandozentrum,E2M5: Centro de Mando,,E2M5: Centre de Commandement,E2M5: Parancsnoki központ,E2M5: Centro di Comando,,E2M5: Командный центр, +E2M6: Halls of the Damned,HUSTR_E2M6,,,,E2M6: Säle der Verdammten,E2M6: Salones de los Malditos,,E2M6: Halls des Damnés,E2M6: Az Ãtkozottak Csarnokai,E2M6: Sale dei Dannati,,E2M6: Залы проклÑÑ‚Ñ‹Ñ…, +E2M7: Spawning Vats,HUSTR_E2M7,,,,E2M7: Laichbottiche,E2M7: Cubas de Desove,,E2M7: Cuves de Reproduction,E2M7: Reprodukciós Tartályok,E2M7: Vasche di Riproduzione,,E2M7: ÐереÑтилище, +E2M8: Tower of Babel,HUSTR_E2M8,,,,E2M8: Turmbau zu Babel,E2M8: Torre de Babel,,E2M8: Tour de Babel,E2M8: Babel Tornya,E2M8: Torre di Babele,,E2M8: ВавилонÑÐºÐ°Ñ Ð±Ð°ÑˆÐ½Ñ, +E2M9: Fortress of Mystery,HUSTR_E2M9,,,,E2M9: Geheimnisvolle Festung,E2M9: Fortaleza del Misterio,,E2M9: Mystérieuse Forteresse,E2M9: A Rejtélyek Kastélya,E2M9: Fortezza del Mistero,,E2M9: КрепоÑÑ‚ÑŒ тайн, +E3M1: Hell Keep,HUSTR_E3M1,,,,E3M1: Höllenbollwerk,E3M1: Torreón del Infierno,E3M1: Torre del Infierno,E3M1: Donjon Infernal,E3M1: Pokol Tartály ,E3M1: Bastioni dell'Inferno,,E3M1: КрепоÑÑ‚ÑŒ Ðда, +E3M2: Slough of Despair,HUSTR_E3M2,,,,E3M2: Sumpf der Verzweiflung,E3M2: Ciénaga de la Desesperación,,E3M2: Bourbier du Désespoir,E3M2: A kétségbeesés mocsara,E3M2: Palude della Disperazione,,E3M2: ТрÑÑина отчаÑниÑ, +E3M3: Pandemonium,HUSTR_E3M3,,,,E3M3: Pandämonium,,,E3M3: Pandémonium,E3M3: Zűrzavar,E3M3: Pandemonio,,E3M3: Пандемониум, +E3M4: House of Pain,HUSTR_E3M4,,,,E3M4: Haus des Schmerzes,E3M4: Casa del Dolor,,E3M4: Maison de la Douleur,E3M4: A Fájdalmak Háza,E3M4: Casa del Dolore,,E3M4: Дом боли, +E3M5: Unholy Cathedral,HUSTR_E3M5,,,,E3M5: Unheilige Kathedrale,E3M5: Catedral Profana,,E3M5: Cathédrale Profane,E3M5: Istentelen Katedrál,E3M5: Cattedrale Blasfema,,E3M5: ÐечеÑтивый Ñобор, +E3M6: Mt. Erebus,HUSTR_E3M6,,,,,E3M6: Monte Érebo,,E3M6: Mont Erèbe,,E3M6: Monte Erebus,,E3M6: ЭребуÑ, +E3M7: Limbo,HUSTR_E3M7,,,,,,,E3M7: Limbes,E3M7: Pokol Tornáca,E3M7: Limbo,,E3M7: Лимб, +E3M8: Dis,HUSTR_E3M8,,,,,,,,,E3M8: Dite,,E3M8: Дит, +E3M9: Warrens,HUSTR_E3M9,,,,E3M9: Rattennest,E3M9: Madrigueras,,E3M9: Clapiers,E3M9: Nyúlkert,E3M9: Le Garenne,,E3M9: Кроличий Ñад, +E4M1: Hell Beneath,HUSTR_E4M1,,,,E4M1: Jenseits der Hölle,E4M1: Bajo el Infierno,,E4M1: Le Séjour des Morts,E4M1: Pokol Alatt,E4M1: L'inferno sotto,,E4M1: ПреиÑподнÑÑ Ð²Ð½Ð¸Ð·Ñƒ, +E4M2: Perfect Hatred,HUSTR_E4M2,,,,E4M2: Perfekter Hass,E4M2: Odio Perfecto,,E4M2: Une Parfaite Haine,E4M2: Tökéletes Gyűlölet,E4M2: Odio Puro,,E4M2: ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÐ½Ð°Ð²Ð¸ÑÑ‚ÑŒ, +E4M3: Sever The Wicked,HUSTR_E4M3,,,,E4M3: Trennt die Bösen,E4M3: Cercena a los impíos,,E4M3: Séparer les Vicieux,E4M3: Gonosz Szétzúzása,E4M3: Spezza il maligno,,E4M3: Отделить злых, +E4M4: Unruly Evil,HUSTR_E4M4,,,,E4M4: Widerspenstiges Ãœbel,E4M4: Maldad Incontrolable,,E4M4: Un Mal Irrépréssible,E4M4: Rakoncátlan Gonosz,E4M4: Male Ingovernabile,,E4M4: Ðеудержимое зло, +E4M5: They Will Repent,HUSTR_E4M5,,,,E4M5: Sie werden bereuen,E4M5: Se Arrepentirán,,E4M5: Ils se repentiront,E4M5: Sajnálni Fogják,E4M5: Essi si pentiranno,,E4M5: Они покаютÑÑ, +E4M6: Against Thee Wickedly,HUSTR_E4M6,,,,E4M6: Böse gegen dich,E4M6: Perversamente Contra ti,,E4M6: D'une manière criminelle,E4M6: Gonosz Ellen,E4M6: Contro di te Crudelmente,,E4M6: Против Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‡ÐµÑтиво, +E4M7: And Hell Followed,HUSTR_E4M7,,,,E4M7: Und die Hölle folgte,E4M7: Y Siguió el Infierno,,E4M7: Et l'Enfer Suivit,E4M7: És a Pokol Követett,E4M7: E l'inferno seguì,,E4M7: И поÑледовал Ðд, +E4M8: Unto The Cruel,HUSTR_E4M8,,,,E4M8: Gegen den Grausamen,E4M8: En lo Cruel,,E4M8: A un Homme cruel,E4M8: A Szörnyűségbe,E4M8: Verso il Crudele,,E4M8: К мучителю, +E4M9: Fear,HUSTR_E4M9,,,,E4M9: Angst,E4M9: Miedo,,E4M9: Terreur,E4M9: Félelem,E4M9: Paura,,E4M9: Страх, +,,,Doom 2,,,,,,,,,, +Level 1: Entryway,HUSTR_1,,,,Level 1: Eingangshalle,Nivel 1: Entrada,,NIVEAU 1: Hall D'Entrée,Szint 1: Bejárat,livello 1: ingresso,,Уровень 1: Вход, +Level 2: Underhalls,HUSTR_2,,,,Level 2: Kellergewölbe,Nivel 2: Salones,,NIVEAU 2: Souterrains,Szint 2: Teremalatt,livello 2: sotterranei,,Уровень 2: Подземные ходы, +Level 3: The Gantlet,HUSTR_3,,,,Level 3: Spießrutenlauf,Nivel 3: El Desafío,,NIVEAU 3: Parcours du Combatant,Szint 3: Páncélkesztyű,livello 3: le forche,,Уровень 3: Вызов брошен, +Level 4: The Focus,HUSTR_4,,,,Level 4: Der Fokus,Nivel 4: El Foco,,NIVEAU 4: Le Focus,Szint 4: A Fókusz,livello 4: l'epicentro,,Уровень 4: Средоточие, +Level 5: The Waste Tunnels,HUSTR_5,,,,Level 5: Die Abfall-Tunnel,Nivel 5: Los Túneles de Desechos,,NIVEAU 5: Les Egouts,Szint 5: A Hulladék Alagutak,livello 5: i tunnel dei rifiuti,,Уровень 5: Сточные туннели, +Level 6: The Crusher,HUSTR_6,,,,Level 6: Die Presse,Nivel 6: El Triturador,,NIVEAU 6: Le Broyeur,Szint 6: A Daráló,livello 6: la pressa,,Уровень 6: ПреÑÑ, +Level 7: Dead Simple,HUSTR_7,,,,Level 7: Tödlich einfach,Nivel 7: Simplemente Muerto,,NIVEAU 7: Mortellement Simple,Szint 7: Halálosan Szimpla,livello 7: morte pura,,Уровень 7: Смертельно проÑто, +Level 8: Tricks and Traps,HUSTR_8,,,,Level 8: Tricks und Fallen,Nivel 8: Trucos y Trampas,,NIVEAU 8: Ruses et Pièges,Szint 8: Trükkök és Csapdák,livello 8: trucchi e trappole,,Уровень 8: Уловки и ловушки, +Level 9: The Pit,HUSTR_9,,,,Level 9: Die Grube,Nivel 9: La Cantera,,NIVEAU 9: La Fosse,Szint 9: A Gödör,livello 9: il pozzo,,Уровень 9: Яма, +Level 10: Refueling Base,HUSTR_10,,,,Level 10: Treibstoffbunker,Nivel 10: Base de Reabastecimiento,,NIVEAU 10: Base de Ravitaillement,Szint 10: ÚjratöltÅ‘ Bázis,livello 10: base di rifornimento,,Уровень 10: Ð—Ð°Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð±Ð°Ð·Ð°, +Level 11: 'O' of Destruction!,HUSTR_11,,,,Level 11: 'O' der Zerstörung!,Nivel 11: 'O' de Destrucción,,NIVEAU 11: Le Cercle de la Mort!,Szint 11: 'O' mint Rombolás!,livello 11: 'O'della distruzione!,,Уровень 11: Круг разрушениÑ!, +Level 12: The Factory,HUSTR_12,,,,Level 12: Die Fabrik,Nivel 12: La Fábrica,,NIVEAU 12: L'Usine,Szint 12: A Gyár,livello 12: la fabbrica,,Уровень 12: Фабрика, +Level 13: Downtown,HUSTR_13,,,,Level 13: Stadtzentrum,Nivel 13: Centro de la Ciudad,,NIVEAU 13: Centre-Ville,Szint 13: Belváros,livello 13: periferia,,Уровень 13: Деловой район, +Level 14: The Inmost Dens,HUSTR_14,,,,Level 14: Die innersten Bauten,Nivel 14: Los Antros más Recónditos,,NIVEAU 14: Les Antres Profondes,Szint 14: A Mély Barlangok,livello 14: gli antri profondi,,Уровень 14: Глубочайшие логовища, +Level 15: Industrial Zone,HUSTR_15,,,,Level 15: Industriegebiet,Nivel 15: Zona Industrial,,NIVEAU 15: Zone Industrielle,Szint 15: Ipari Zóna,livello 15: zona industriale,,Уровень 15: ÐŸÑ€Ð¾Ð¼Ñ‹ÑˆÐ»ÐµÐ½Ð½Ð°Ñ Ð·Ð¾Ð½Ð°, +Level 16: Suburbs,HUSTR_16,,,,Level 16: Vororte,Nivel 16: Suburbios,,NIVEAU 16: Banlieue,Szint 16: Külváros,livello 16: sobborghi,,Уровень 16: Пригород, +Level 17: Tenements,HUSTR_17,,,,Level 17: Wohnbezirk,Nivel 17: Viviendas,,NIVEAU 17: Immeubles,Szint 17: Bérházak,livello 17: possedimenti,,Уровень 17: ВладениÑ, +Level 18: The Courtyard,HUSTR_18,,,,Level 18: Der Innenhof,Nivel 18: El Patio,,NIVEAU 18: La Cour,Szint 18: Az Udvar,livello 18: il cortile,,Уровень 18: Внутренний двор, +Level 19: The Citadel,HUSTR_19,,,,Level 19: Die Zizadelle,Nivel 19: La Ciudadela,,NIVEAU 19: La Citadelle,Szint 19: A Citadella,livello 19: la cittadella,,Уровень 19: Цитадель, +Level 20: Gotcha!,HUSTR_20,,,,Level 20: Erwischt!,Nivel 20: ¡Te Pillé!,,NIVEAU 20: Je t'ai eu!,Szint 20: Megvagy!,livello 20: preso!,,Уровень 20: ПопалÑÑ!, +Level 21: Nirvana,HUSTR_21,,,,,Nivel 21: Nirvana,,NIVEAU 21: Nirvana,Szint 21: Nirvána,livello 21: nirvana,,Уровень 21: Ðирвана, +Level 22: The Catacombs,HUSTR_22,,,,Level 22: Katakomben,Nivel 22: Las Catacumbas,,NIVEAU 22: Les Catacombes,Szint 22: A Katakombák,livello 22: le catacombe,,Уровень 22: Катакомбы, +Level 23: Barrels O' Fun,HUSTR_23,,,,Level 23: Lustige Fässer,Nivel 23: Barriles de Diversión,,NIVEAU 23: Une Tonne-eau de plaisir,Szint 23: Hordók 'Oly Szórakoztatóak,livello 23: barili del divertimento,,Уровень 23: Бочки веÑельÑ, +Level 24: The Chasm,HUSTR_24,,,,Level 24: Die Kluft,Nivel 24: El Desfiladero,,NIVEAU 24: Le Gouffre,Szint 24: Szakadék,livello 24: l'abisso,,Уровень 24: ПропаÑÑ‚ÑŒ, +Level 25: Bloodfalls,HUSTR_25,,,,Level 25: Blutfälle,Nivel 25: Cataratas de Sangre,,NIVEAU 25: Chutes de Sang,Szint 25: Véresések,livello 25: cascate di sangue,,Уровень 25: Кровопады, +Level 26: The Abandoned Mines,HUSTR_26,,,,Level 26: Die aufgegebene Mine,Nivel 26: Las Minas Abandonadas,,NIVEAU 26: Les Mines Abandonnées,Szint 26: Az Elhagyatott Bányák,livello 26: le miniere abbandonate,,Уровень 26: Заброшенные шахты, +Level 27: Monster Condo,HUSTR_27,,,,Level 27: Monsterbehausung,Nivel 27: Condominio de Monstruos,,NIVEAU 27: Monstrueuse Résidence,Szint 27: Szörnyek Lakása,livello 27: casa dei mostri,,Уровень 27: Жилище монÑтров, +Level 28: The Spirit World,HUSTR_28,,,,Level 28: Die Geisterwelt,Nivel 28: El Mundo Espiritual,,NIVEAU 28: Le Monde Spirituel,Szint 28: A Szellem Világ,livello 28: il mondo dello spirito,,Уровень 28: Мир духов, +Level 29: The Living End,HUSTR_29,,,,Level 29: Das lebende Ende,Nivel 29: El Final Viviente,,NIVEAU 29: La Limite,Szint 29: Az ÉlÅ‘ Vég,livello 29: la fine imminente,,Уровень 29: Конец вÑего живого, +Level 30: Icon of Sin,HUSTR_30,,,,Level 30: Symbol der Sünde,Nivel 30: Icono del Pecado,Nivel 30: Ãcono del Pecado,NIVEAU 30: L'Icône du Péché,Szint 30: A Bűn Ikonja,livello 30: icona del peccato,,Уровень 30: Икона греха, +Level 31: Wolfenstein,HUSTR_31,,,,,Nivel 31: Wolfenstein,,,Szint 31: Wolfenstein,livello 31: Wolfenstein,,Уровень 31: Вольфенштайн, +Level 32: Grosse,HUSTR_32,,,,,Nivel 32: Grosse,,,Szint 32: Grosse,livello 32: Grosse,,Уровень 32: ГроÑÑе, +Level 31: IDKFA,HUSTR_31B,,,,,Nivel 31: IDKFA,,NIVEAU 31: IDKFQ,Szint 31: IDKFA,livello 31: IDKFA,,Уровень 31: IDKFA, +Level 32: Keen,HUSTR_32B,,,,,Nivel 32: Keen,,,Szint 32: Keen,livello 32: Keen,,Уровень 32: Кин, +Level 33: Betray,HUSTR_33,,,,Level 33: Verrat,Nivel 33: Traiciona,,NIVEAU 33: Trahison,Szint 33: Ãrulás,Livello 33: Tradimento ,,Уровень 33: ПредательÑтво, +,,,No Rest For The Living,,,,,,,,,, +Level 1: The Earth Base,NHUSTR_1,,,,Level 1: Die Erd-Basis,Nivel 1: La Base Terrestre,,NIVEAU 1: La Base Terrienne,Szint 1: A Föld Bázis,Livello 1: La Base Terrestre ,,Уровень 1: База на земле, +Level 2: The Pain Labs,NHUSTR_2,,,,Level 2: Die Folterlabore,Nivel 2: Los Laboratorios del Dolor,,NIVEAU 2: Les Laboratoires de la Douleur,Szint 2: A Fájdalom Laboratóriumai,Livello 2: I Laboratori del Dolore,,Уровень 2: Лаборатории боли, +Level 3: Canyon of The Dead,NHUSTR_3,,,,Level 3: Schlucht der Toten,Nivel 3: Cañón de los Muertos,,NIVEAU 3: Canyon des Morts,Szint 3: A Halottak Kanyonja,Livello 3: Il Canyon dei Morti,,Уровень 3: Каньон мертвецов, +Level 4: Hell Mountain,NHUSTR_4,,,,Level 4: Höllenberg,Nivel 4: Montaña Infernal,,NIVEAU 4: Montagne Infernale,Szint 4: Pokol Hegy,Livello 4: Promontorio Infernale ,,Уровень 4: ÐдÑÐºÐ°Ñ Ð³Ð¾Ñ€Ð°, +Level 5: Vivisection,NHUSTR_5,,,,Level 5: Vivisektion,Nivel 5: Vivisección,,NIVEAU 5: Vivisection,Szint 5: Vivisection,Livello 5: Vivisezione ,,Уровень 5: ВивиÑекциÑ, +Level 6: Inferno of Blood,NHUSTR_6,,,,Level 6: Blutiges Inferno,Nivel 6: Hoguera de Sangre,,NIVEAU 6: Enfer Sanglant,Szint 6: Vérpokol,Livello 6: Inferno di Sangue ,,Уровень 6: ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ Ð¿Ñ€ÐµÐ¸ÑподнÑÑ, +Level 7: Baron's Banquet,NHUSTR_7,,,,Level 7: Das Bankett des Barons,Nivel 7: Banquete del Barón,,NIVEAU 7: Banquet du Baron,Szint 7: Pokol Báró Bankettje,Livello 7:Il Banchetto del Barone ,,Уровень 7: Банкет у барона, +Level 8: Tomb of Malevolence,NHUSTR_8,,,,Level 8: Feindselige Gruft,Nivel 8: Tumba de Malevolencia,,NIVEAU 8: Tombe Maléfique,Szint 8: A Rosszindulat Sírja,Livello 8: Tomba della Malevolenza,,Уровень 8: Гробница злобы, +Level 9: March of The Demons,NHUSTR_9,,,,Level 9: Marsch der Dämonen,Nivel 9: Marcha de los Demonios,,NIVEAU 9: Marche des Démons,Szint 9: A Démonok Menetelése,Livello 9: La Marcia dei Demoni ,,Уровень 9: ШеÑтвие демонов, +,,,Plutonia,,,,,,,,,, +Level 1: Congo,PHUSTR_1,,,,Level 1: Kongo,Nivel 1: Congo,,NIVEAU 1: Congo,Szint 1: Kongó,livello 1: congo,,Уровень 1: Конго, +Level 2: Well of Souls,PHUSTR_2,,,,Level 2: Seelenbrunnen,Nivel 2: Pozo de las Almas,,NIVEAU 2: Puits des Ames,Szint 2: Lelkek Kútja,livello 2: pozzo delle anime,,Уровень 2: Колодец душ, +Level 3: Aztec,PHUSTR_3,,,,Level 3: Aztekisch,Nivel 3: Azteca,,NIVEAU 3: Aztèque,Szint 3: Aszték,livello 3: Aztec,,Уровень 3: Ðцтек, +Level 4: Caged,PHUSTR_4,,,,Level 4: Eingesperrt,Nivel 4: Enjaulado,,NIVEAU 4: Enfermé,Szint 4: Bezárva,livello 4: Ingabbiato,,Уровень 4: Запертый в клетке, +Level 5: Ghost Town,PHUSTR_5,,,,Level 5: Geisterstadt,Nivel 5: Pueblo Fantasma,,NIVEAU 5: Ville Fantôme,Szint 5: Szellem Város,livello 5: Città Fantasma,,Уровень 5: Город-призрак, +Level 6: Baron's Lair,PHUSTR_6,,,,Level 6: Lager des Barons,Nivel 6: Guarida del Barón,,NIVEAU 6: Repaire du Baron,Szint 6: Baron Odúja,livello 6: la tana del barone,,Уровень 6: Обитель барона, +Level 7: Caughtyard,PHUSTR_7,,,,Level 7: Gehege,Nivel 7: Campo de Concentración,,NIVEAU 7: Cour-oincé,Szint 7: Elkapottak Udvara,livello 7: cortile prigione,,Уровень 7: Двор-ловушка, +Level 8: Realm,PHUSTR_8,,,,Level 8: Bereich,Nivel 8: Reino,,NIVEAU 8: Royaume,Szint 8: Birodalom,livello 8: reame,,Уровень 8: ЦарÑтво, +Level 9: Abattoire,PHUSTR_9,,,,Level 9: Schlachthaus,Nivel 9: Matadero,,NIVEAU 9: Abattoir,Szint 9: Vágóhíd,livello 9: mattatoio,,Уровень 9: ÐббатÑтво, +Level 10: Onslaught,PHUSTR_10,,,,Level 10: Angriff,Nivel 10: Arremetida,,NIVEAU 10: Assaut,Szint 10: Támadás,livello 10: assalto,,Уровень 10: ÐатиÑк, +Level 11: Hunted,PHUSTR_11,,,,Level 11: Gehetzt,Nivel 11: Cazado,,NIVEAU 11: Traque,Szint 11: Vadászva,livello 11: braccato,,Уровень 11: ПреÑледуемый, +Level 12: Speed,PHUSTR_12,,,,Level 12: Tempo,Nivel 12: Velocidad,,NIVEAU 12: Vitesse,Szint 12: Sebesség,livello 12: velocità,,Уровень 12: СкороÑÑ‚ÑŒ, +Level 13: The Crypt,PHUSTR_13,,,,Level 13: Die Gruft,Nivel 13: La Cripta,,NIVEAU 13: La Crypte,Szint 13: A Kripta,livello 13: la cripta,,Уровень 13: Склеп, +Level 14: Genesis,PHUSTR_14,,,,,Nivel 14: Génesis,,NIVEAU 14: Genèse,Szint 14: Genezis,livello 14: genesi,,Уровень 14: Зарождение, +Level 15: The Twilight,PHUSTR_15,,,,Level 15: Zwielicht,Nivel 15: El Ocaso,,NIVEAU 15: Le Crépuscule,Szint 15: A Szürkület,livello 15: il crepuscolo,,Уровень 15: Сумерки, +Level 16: The Omen,PHUSTR_16,,,,Level 16: Das Omen,Nivel 16: El Presagio,,NIVEAU 16: Le Présage,Szint 16: Az Ómen,livello 16: la visione,,Уровень 16: Предзнаменование, +Level 17: Compound,PHUSTR_17,,,,Level 17: Anlage,Nivel 17: Recinto,,NIVEAU 17: Installation,Szint 17: Összetéve,livello 17: recinto,,Уровень 17: Компаунд, +Level 18: Neurosphere,PHUSTR_18,,,,Level 18: Neurosphäre,Nivel 18: Neuroesfera,,NIVEAU 18: Neurosphère,Szint 18: Neuroszféra,livello 18: neurosfera,,Уровень 18: ÐейроÑфера, +Level 19: NME,PHUSTR_19,,"“NME†read out loud means “enemyâ€, so translators should consider the translation of “enemy†into their language.",,,Nivel 19: NME,,NIVEAU 19: NMI,Szint 19: LNSÉG,livello 19: nme,,Уровень 19: Ð’.Р.Ð.Г., +Level 20: The Death Domain,PHUSTR_20,,,,Level 20: Die Todeszone,Nivel 20: El Dominio Mortal,,NIVEAU 20: Le Domaine de la Mort,Szint 20: A Halott Birtok,livello 20: il dominio della morte,,Уровень 20: Обитель Ñмерти, +Level 21: Slayer,PHUSTR_21,,,,Level 21: Töter,Nivel 21: Asesino,,NIVEAU 21: Pourfendeur,Szint 21: ÖlÅ‘,livello 21: assassino,,Уровень 21: Убийца, +Level 22: Impossible Mission,PHUSTR_22,,,,Level 22: Unmögliche Mission,Nivel 22: Misión Imposible,,NIVEAU 22: Mission Impossible,Szint 22: Lehetetlen Küldetés,livello 22: missione impossibile,,Уровень 22: Ðевыполнимое задание, +Level 23: Tombstone,PHUSTR_23,,,,Level 23: Grabstein,Nivel 23: Lápida,,NIVEAU 23: Pierre Tombale,Szint 23: SírkÅ‘,livello 23: tombstone,,Уровень 23: Ðадгробие, +Level 24: The Final Frontier,PHUSTR_24,,,,Level 24: Die letzte Grenze,Nivel 24: La Frontera Final,Nivel 24: La Última Frontera,NIVEAU 24: La Frontière Finale,Szint 24: A VégsÅ‘ Határ,livello 24: la frontiera finale,,Уровень 24: ПоÑледний рубеж, +Level 25: The Temple of Darkness,PHUSTR_25,,,,Level 25: Der Tempel der Dunkelheit,Nivel 25: El Templo de la Oscuridad,,NIVEAU 25: Le Temple des Ténèbres,Szint 25: A Sötétség Temploma,livello 25: il tempio dell'oscurità,,Уровень 25: Храм тьмы, +Level 26: Bunker,PHUSTR_26,,,,Level 26: Bunker,Nivel 26: Búnker,,NIVEAU 26: Bunker,Szint 26: Bunker,livello 26: bunker,,Уровень 26: Бункер, +Level 27: Anti-christ,PHUSTR_27,,,,Level 27: Antichrist,Nivel 27: Anti-cristo,,NIVEAU 27: Anti-Christ,Szint 27: Anti-Krisztus,livello 27: anticristo,,Уровень 27: ÐнтихриÑÑ‚, +Level 28: The Sewers,PHUSTR_28,,,,Level 28: Die Kanäle,Nivel 28: Las Alcantarillas,,NIVEAU 28: Les Egouts,Szint 28: A Szennyvízcsatornák,livello 28: le fogne,,Уровень 28: КанализациÑ, +Level 29: Odyssey of Noises,PHUSTR_29,,,,Level 29: Odyssee der Geräusche,Nivel 29: Odisea de Ruidos,,NIVEAU 29: Odysée de Bruits,Szint 29: A Hangok Odüsszeája,livello 29: odissea di rumori,,Уровень 29: ОдиÑÑÐµÑ ÑˆÑƒÐ¼Ð¾Ð², +Level 30: The Gateway of Hell,PHUSTR_30,,,,Level 30: Tor zur Hölle,Nivel 30: La Entrada al Infierno,,NIVEAU 30: La Porte des Enfers,Szint 30: Pokolhoz VezetÅ‘ Ãtjáró,livello 30: il cancello dell'inferno,,Уровень 30: Врата ада, +Level 31: Cyberden,PHUSTR_31,,,,Level 31: Cyberbau,Nivel 31: Cibercubil,,NIVEAU 31: Cyber-Antre,Szint 31: Kiborg-Odú,livello 31: cybergabbia,,Уровень 31: Киберлогово, +Level 32: Go 2 It,PHUSTR_32,,,,,Nivel 32: ¡Ve A x Ello!,Nivel 32: ¡Ve Adelante!,NIVEAU 32: Go 2 It,Szint 32: Menj Oda,livello 32: dacci dentro,,Уровень 32: Иди к Ñему, +,,,TNT: Evilution,,,,,,,,,, +Level 1: System Control,THUSTR_1,,,,Level 1: Systemkontrolle,Nivel 1: Control del Sistema,,NIVEAU 1: Système de Contrôle,Szint 1: Rendszer Vezérlés,livello 1: controllo del sistema,,Уровень 1: Центр ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемой, +Level 2: Human BBQ,THUSTR_2,,,,Level 2: Menschliches Barbecue,Nivel 2: Barbacoa Humana,,NIVEAU 2: Barbecue Humain,Szint 2: Ember Barbecue,livello 2: barbecue umano,,Уровень 2: Барбекю из человечины, +Level 3: Power Control,THUSTR_3,,,,Level 3: Energiekontrolle,Nivel 3: Control de Energía,,NIVEAU 3: Contrôle Energétique,Szint 3: Ãram Vezérlés,livello 3: centrale energetica,,Уровень 3: Центр ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¸Ñ‚Ð°Ð½Ð¸ÐµÐ¼, +Level 4: Wormhole,THUSTR_4,,,,Level 4: Wurmloch,Nivel 4: Agujero de Gusano,,NIVEAU 4: Trou de Ver,Szint 4: Féreglyuk,livello 4: wormhole,,Уровень 4: Червоточина, +Level 5: Hanger,THUSTR_5,,,,Level 5: Hangar,Nivel 5: Hangar,Nivel 5: Colgador,NIVEAU 5: Hangar,Szint 5: Akasztó,livello 5: ganci,,Уровень 5: ВиÑелица, +Level 6: Open Season,THUSTR_6,,,,Level 6: Jagdsaison,Nivel 6: Temporada Abierta,,NIVEAU 6: La Chasse Est Ouverte,Szint 6: Nyitott Szezon,livello 6: stagione aperta,,Уровень 6: Открытый Ñезон, +Level 7: Prison,THUSTR_7,,,,Level 7: Gefängnis,Nivel 7: Prisión,,NIVEAU 7: Prison,Szint 7: Börtön,livello 7: prigione,,Уровень 7: Тюрьма, +Level 8: Metal,THUSTR_8,,,,Level 8: Metall,Nivel 8: Metal,,NIVEAU 8: Métal,Szint 8: Metál,livello 8: metallo,,Уровень 8: Металл, +Level 9: Stronghold,THUSTR_9,,,,Level 9: Festung,Nivel 9: Fortaleza,,NIVEAU 9: Forteresse,Szint 9: ErÅ‘d,livello 9: fortezza,,Уровень 9: КрепоÑÑ‚ÑŒ, +Level 10: Redemption,THUSTR_10,,,,Level 10: Erlösung,Nivel 10: Redención,,NIVEAU 10: Rédemption,Szint 10: Megváltás,livello 10: redenzione,,Уровень 10: ИÑкупление, +Level 11: Storage Facility,THUSTR_11,,,,Level 11: Lagerstätte,Nivel 11: Depósito de Almacenamiento,,NIVEAU 11: Complexe de Stockage,Szint 11: Raktár Létesítmény,livello 11: impianto di stoccaggio,,Уровень 11: Склад, +Level 12: Crater,THUSTR_12,,,,Level 12: Krater,Nivel 12: Cráter,,NIVEAU 12: Cratère,Szint 12: Kráter,livello 12: cratere,,Уровень 12: Кратер, +Level 13: Nukage Processing,THUSTR_13,,,,Level 13: Nuklearverarbeitung,Nivel 13: Procesamiento Nuclear,,NIVEAU 13: Traitement Nucléaire,Szint 13: Atom Feldolgozó,livello 13: raffineria delle tossine,,Уровень 13: Переработка Ñдерных отходов, +Level 14: Steel Works,THUSTR_14,,,,Level 14: Stahlwerk,Nivel 14: Acerera,,NIVEAU 14: Aciérie,Szint 14: Acélművek,livello 14: acciaieria,,Уровень 14: МеталлургиÑ, +Level 15: Dead Zone,THUSTR_15,,,,Level 15: Tote Zone,Nivel 15: Zona Muerta,,NIVEAU 15: Zone Morte,Szint 15: Halott Zóna,livello 15: zona morta,,Уровень 15: ÐœÑ‘Ñ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð°, +Level 16: Deepest Reaches,THUSTR_16,,,,Level 16: Tiefe,Nivel 16: Alcances más Profundos,,NIVEAU 16: Profondeurs,Szint 16: Legmélyebb Elérések,livello 16: le profondità,,Уровень 16: Глубочайшие доÑтижениÑ, +Level 17: Processing Area,THUSTR_17,,,,Level 17: Verarbeitungsbereich,Nivel 17: Ãrea de Procesamiento,,NIVEAU 17: Zone de Traitement,Szint 17: Feldolgozó Terület,livello 17: area di elaborazione,,Уровень 17: Зона обработки, +Level 18: Mill,THUSTR_18,,,,Level 18: Mühle,Nivel 18: Molino,,NIVEAU 18: Fonderie,Szint 18: Malom,livello 18: fabbrica,,Уровень 18: Завод, +Level 19: Shipping/respawning,THUSTR_19,,,,Level 19: Versandlager,Nivel 19: Enviando/Reapareciendo,,NIVEAU 19: Envoi/Réapparition,Szint 19: Szállítás/Újra Megjelenés,livello 19: consegna/respawn,,Уровень 19: Погрузка/отправка, +Level 20: Central Processing,THUSTR_20,,,,Level 20: Zentralverarbeitung,Nivel 20: Procesamiento Central,,NIVEAU 20: Organisme Central,Szint 20: Középponti Feldolgozó,livello 20: Centrale di elaborazione,,Уровень 20: Центральный пункт обработки, +Level 21: Administration Center,THUSTR_21,,,,Level 21: Verwaltungszentrum,Nivel 21: Centro de Administración,,NIVEAU 21: Centre Administratif,Szint 21: Adminisztráció Központ,livello 21: centro amministrativo,,Уровень 21: ÐдминиÑтративный центр, +Level 22: Habitat,THUSTR_22,,,,,Nivel 22: Hábitat,,NIVEAU 22: Habitat,Szint 22: ÉlÅ‘hely,livello 22: habitat,,Уровень 22: Обиталище, +Level 23: Lunar Mining Project,THUSTR_23,,,,Level 23: Mondbergbuprojekt,Nivel 23: Proyecto de Minería Lunar,,NIVEAU 23: Projet Minier Lunaire,Szint 23: Hold Bányászó Projekt,livello 23: progetto minerario lunare,,Уровень 23: Лунный горный проект, +Level 24: Quarry,THUSTR_24,,,,Level 24: Steinbruch,Nivel 24: Cantera,,NIVEAU 24: Carrière,Szint 24: Zsákmány,livello 24: caccia,,Уровень 24: Карьер, +Level 25: Baron's Den,THUSTR_25,,,,Level 25: Der Bau des Barons,Nivel 25: Guarida del Barón,,NIVEAU 25: l'Antre des Barons,Szint 25: Baron Odúja,livello 25: antro del barone,,Уровень 25: Логово барона, +Level 26: Ballistyx,THUSTR_26,,,,,Nivel 26: Balística,,NIVEAU 26: Ballistyx,Szint 26: Ballisztika,livello 26: ballistyx,,Уровень 26: БаллиÑтикÑ, +Level 27: Mount Pain,THUSTR_27,,,,Level 27: Berg des Schmerzes,Nivel 27: Monte Dolor,,NIVEAU 27: Mont Souffrance,Szint 27: Fájdalom Hegye,livello 27: monte del dolore,,Уровень 27: Гора боль, +Level 28: Heck,THUSTR_28,,,,Level 28: Zum Teufel,Nivel 28: Diablos,,NIVEAU 28: Que Diable?,Szint 28: Fene,livello 28: la grata,,Уровень 28: Чертовщина, +Level 29: River Styx,THUSTR_29,,,,Level 29: Fluss Styx,Nivel 29: Río Estigia,,NIVEAU 29: Fleuve Styx,Szint 29: Folyó Styx,livello 29: fiume stige,,Уровень 29: Река ÑтикÑ, +Level 30: Last Call,THUSTR_30,,,,Level 30: Letzter Aufruf,Nivel 30: Última Llamada,,NIVEAU 30: Dernier Appel,Szint 30: Az Utolsó Hívás,livello 30: ultima chiamata,,Уровень 30: ПоÑледний вызов, +Level 31: Pharaoh,THUSTR_31,,,,Level 31: Pharao,Nivel 31: Faraón,,NIVEAU 31: Pharaon,Szint 31: Fáraó,livello 31: faraone,,Уровень 31: Фараон, +Level 32: Caribbean,THUSTR_32,,,,Level 32: Karibik,Nivel 32: Caribeño,,NIVEAU 32: Caraïbes,Szint 32: Karib-,livello 32: caraibi,,Уровень 32: Карибы, +,,,Heretic,,,,,,,,,, +The Docks,HHUSTR_E1M1,,,,Die Docks,Los Muelles,,Les Docks,,Il Molo,,Доки, +The Dungeons,HHUSTR_E1M2,,,,Die Kerker,Los Calabozos,,Le Donjon,,I Sotterranei,,Темницы, +The Gatehouse,HHUSTR_E1M3,,,,Das Pförtnerhaus,El Cuerpo de Guardia,,Le Corps de Garde,,L'ingresso,,ПривратницкаÑ, +The Guard Tower,HHUSTR_E1M4,,,,Der Wachturm,La Torre de Guardia,,La Tour de Garde,,La Torre di Guardia,,Ð¡Ñ‚Ð¾Ñ€Ð¾Ð¶ÐµÐ²Ð°Ñ Ð±Ð°ÑˆÐ½Ñ, +The Citadel,HHUSTR_E1M5,,,,Die Festung,La Ciudadela,,La Citadelle,,La Cittadella,,Цитадель, +The Cathedral,HHUSTR_E1M6,,,,Die Kathedrale,La Catedral,,La Cathédrale,,La Cattedrale,,Кафедральный Ñобор, +The Crypts,HHUSTR_E1M7,,,,Die Krypten,Las Criptas,,La Crypte,,Le Cripte,,Склепы, +Hell's Maw,HHUSTR_E1M8,,,,Der Höllenschlund,Fauces del Infierno,,La Geule de l'Enfer,,La Bocca dell'Inferno,,ÐдÑÐºÐ°Ñ ÑƒÑ‚Ñ€Ð¾Ð±Ð°, +The Graveyard,HHUSTR_E1M9,,,,Der Friedhof,El Cementerio,,Le Cimetière,,Il Cimitero,,Кладбище, +The Crater,HHUSTR_E2M1,,,,Der Krater,El Cráter,,Le Cratère,,Il Cratere,,Кратер, +The Lava Pits,HHUSTR_E2M2,,,,Die Lavagruben,Las Canteras de Lava,,Les Puits de Lave,,I Pozzi della Lava,,Лавовые очаги, +The River of Fire,HHUSTR_E2M3,,,,Der Feuerfluss,El Río de Fuego,,La Rivière de Feu,,Il Fiume di Fuoco,,Река огнÑ, +The Ice Grotto,HHUSTR_E2M4,,,,Die Eisgrotte,La Gruta de Hielo,,La Grotte de Glace,,La Grotta del Ghiaccio,,ЛедÑной грот, +The Catacombs,HHUSTR_E2M5,,,,Die Katakomben,Las Catacumbas,,Les Catacombes,,Le Catacombe,,Катакомбы, +The Labyrinth,HHUSTR_E2M6,,,,Das Labyrinth,El Laberinto,,Le Labyrinthe,,Il Labirinto,,Лабиринт, +The Great Hall,HHUSTR_E2M7,,,,Die große Halle,El Gran Salón,,Le Grand Hall,,La Grande Sala,,Большой зал, +The Portals of Chaos,HHUSTR_E2M8,,,,Das Portal des Chaos,Los Portales del Caos,,Le Portail du Chaos,,I Portali del Caos,,Порталы хаоÑа, +The Glacier,HHUSTR_E2M9,,,,Der Gletscher,El Glaciar,,Le Glacier,,Il Ghiacciaio,,Ледник, +The Storehouse,HHUSTR_E3M1,,,,Die Lagerhalle,El Almacén,,L'Entrepôt,,Il Magazzino,,КладоваÑ, +The Cesspool,HHUSTR_E3M2,,,,Die Latrine,El Pozo,,Le Bourbier,,Il Pozzo Nero,,Сточный колодец, +The Confluence,HHUSTR_E3M3,,,,Die Vereinigung,La Confluencia,,La Confluence,,La Confluenza,,СлиÑние, +The Azure Fortress,HHUSTR_E3M4,,,,Die himmelblaue Festung,La Fortaleza de Azur,,La Fortresse d'Azur,,La Fortezza Azzurra,,Ð›Ð°Ð·ÑƒÑ€Ð½Ð°Ñ ÐºÑ€ÐµÐ¿Ð¾ÑÑ‚ÑŒ, +The Ophidian Lair,HHUSTR_E3M5,,,,Das Schlangennest,La Guarida Ofídica,,Le Repaire des Ophidiens,,L'antro degli Ophidian,,Логово офидианов, +The Halls of Fear,HHUSTR_E3M6,,,,Die Hallen der Angst,Los Salones del Miedo,,Les Couloirs de la Peur,,Le Sale della Paura,,Залы Ñтраха, +The Chasm,HHUSTR_E3M7,,,,Der Abgrund,El Abismo,,Le Gouffre,,L'abisso,,ПропаÑÑ‚ÑŒ, +D'Sparil's Keep,HHUSTR_E3M8,,,,D'Sparils Außenposten,Guarida de D'Sparil,,Le Donjon de D'Sparil,,La Dimora di D'sparil,,КрепоÑÑ‚ÑŒ Д'Спарила, +The Aquifer,HHUSTR_E3M9,,,,Der Wasserspeicher,El Acuífero,,L'Aquifère,,L'acquedotto,,ВодоноÑный Ñлой, +Catafalque,HHUSTR_E4M1,,,,Katafalk,Catafalco,,Le Catafalque,,Catafalco,,Катафалк, +Blockhouse,HHUSTR_E4M2,,,,Blockhaus,Fortín,,Le Fortin,,Blocco di Case,,Укрытие, +Ambulatory,HHUSTR_E4M3,,,,Wandelgang,Ambulatorio,,Le Déambulatoire,,Ambulatorio,,МонаÑÑ‚Ñ‹Ñ€ÑÐºÐ°Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ, +Sepulcher,HHUSTR_E4M4,,,,Grabstätte,Sepulcro,,Le Sépulcre,,Sepolcro,,Гробница, +Great Stair,HHUSTR_E4M5,,,,Große Treppe,Gran Escalera,,Le Grand Escalier,,Grande Scala,,Ð’ÐµÐ»Ð¸ÐºÐ°Ñ Ð»ÐµÑтница, +Halls of the Apostate,HHUSTR_E4M6,,,,Halle des Abtrünnigen,Salas de los Apóstatas,,Les Halls de l'Apôtre,,Sale dell'Apostata,,Залы отÑтупников, +Ramparts of Perdition,HHUSTR_E4M7,,,,Wälle der Verdammnis,Murallas de la Perdición,,Les Remparts de la Perdition,,Torrioni della Perdizione,,Твердыни погибели, +Shattered Bridge,HHUSTR_E4M8,,,,Zerstörte Brücke,Puente Destrozado,,Le Pont effondré,,Ponte Distrutto,,Разрушенный моÑÑ‚, +Mausoleum,HHUSTR_E4M9,,,,,Mausoleo,,Le Mausolée,,Mausoleo,,Мавзолей, +Ochre Cliffs,HHUSTR_E5M1,,,,Ockerfarbene Klippen,Acantilados Ocres,,Les Falaises Ochre,,Colline Ocra,,Охровые утёÑÑ‹, +Rapids,HHUSTR_E5M2,,,,Stromschnellen,Rápidos,,Les Rapides,,Rapide,,Стремнина, +Quay,HHUSTR_E5M3,,,,Kai,Muelle,,Le Quai,,Banchina,,Причал, +Courtyard,HHUSTR_E5M4,,,,Schlosshof,Patio,,La Cour,,Cortile,,Внутренний двор, +Hydratyr,HHUSTR_E5M5,,,,,Hydratyr,,L'Hydratyr,,Hydratyr,,Гидротир, +Colonnade,HHUSTR_E5M6,,,,Kolonnaden,Columnata,,La Colonnade,,Colonnato,,Колоннада, +Foetid Manse,HHUSTR_E5M7,,,,Stinkendes Pfarrhaus,Mansión Fétida,,Le Presbytère Fétide,,Fetido Castello,,Зловонный оÑобнÑк, +Field of Judgement,HHUSTR_E5M8,,,,Richtstätte,Campo de Juicio,,Les Champs du Jugement,,Campo del Giudizio,,Поле выÑшего Ñуда, +Skein of D'sparil,HHUSTR_E5M9,,,,DSparils Bau,Madeja de D'Sparil,,L'échevaux de D'Sparil,,Groviglio di D'sparil,,Путаница Д'Спарила, +,,,Strife,,,,,,,,,, +AREA 1: Sanctuary,TXT_STRIFE_MAP01,,,,ZONE 1: Heiligtum,ÃREA 1: Santuario,,ZONE 1: Sanctuaire,1. Terület: Szentély,,,МеÑтноÑÑ‚ÑŒ 1: СвÑтилище, +AREA 2: Town,TXT_STRIFE_MAP02,,,,ZONE 2: Stadt,ÃREA 2: Pueblo,,ZONE 2: Ville,2. Terület: Város,,,МеÑтноÑÑ‚ÑŒ 2: Город, +AREA 3: Front Base,TXT_STRIFE_MAP03,,,,ZONE 3: Basis der Front,ÃREA 3: Base del Frente,,ZONE 3: Base du Front,3. Terület: ElülsÅ‘ bázis,,,МеÑтноÑÑ‚ÑŒ 3: База СопротивлениÑ, +AREA 4: Power Station,TXT_STRIFE_MAP04,,,,ZONE 4: Kraftwerk,ÃREA 4: Central Eléctrica,,ZONE 4: Centrale,4. Terület: ErÅ‘mű,,,МеÑтноÑÑ‚ÑŒ 4: ЭлектроÑтанциÑ, +AREA 5: Prison,TXT_STRIFE_MAP05,,,,ZONE 5: Gefängnis,ÃREA 5: Prisión,,ZONE 5: Prison,5. Terület: Börtön,,,МеÑтноÑÑ‚ÑŒ 5: Тюрьма, +AREA 6: Sewers,TXT_STRIFE_MAP06,,,,ZONE 6: Kanalisation,ÃREA 6: Alcantarillas,,ZONE 6: Egouts,6. Terület: Szennyvízcsatornák,,,МеÑтноÑÑ‚ÑŒ 6: КанализациÑ, +AREA 7: Castle,TXT_STRIFE_MAP07,,,,ZONE 7: Burg,ÃREA 7: Castillo,,ZONE 7: Château,7. Terület: Vár,,,МеÑтноÑÑ‚ÑŒ 7: Замок, +AREA 8: Audience Chamber,TXT_STRIFE_MAP08,,,,ZONE 8: Audienzsaal,ÃREA 8: Cámara de Audiencias,,ZONE 8: Chambre d'Audience,,,,МеÑтноÑÑ‚ÑŒ 8: ПриёмнаÑ, +AREA 9: Castle: Programmer's Keep,TXT_STRIFE_MAP09,,,,ZONE 9: Burg: Unterkunft des Programmierers,ÃREA 9: Castillo: Guarida del Programador,,ZONE 9: Château: Donjon du Programmeur,9. Terület: Vár: Programozó parcellája,,,МеÑтноÑÑ‚ÑŒ 9: Замок (Цитадель ПрограммиÑта), +AREA 10: New Front Base,TXT_STRIFE_MAP10,,,,ZONE 10: Neue Basis der Front,ÃREA 10: Nueva Base del Frente,,ZONE 10: Nouvelle Base du Front,10. Terület: Új elsÅ‘ bázis,,,МеÑтноÑÑ‚ÑŒ 10: ÐÐ¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° СопротивлениÑ, +AREA 11: Borderlands,TXT_STRIFE_MAP11,,,,ZONE 11: Grenzgebiete,ÃREA 11: Tierras Fronterizas,,ZONE 11: Terres Sauvages,11. Terület: Peremvidék,,,МеÑтноÑÑ‚ÑŒ 11: Пограничье, +AREA 12: The Temple of the Oracle,TXT_STRIFE_MAP12,,,,ZONE 12: Der Tempel des Orakels,ÃREA 12: El Templo del Oráculo,,ZONE 12: Temple de l'Oracle,12. Terület: Az Orákulum Temploma,,,МеÑтноÑÑ‚ÑŒ 12: Храм Оракула, +AREA 13: Catacombs,TXT_STRIFE_MAP13,,,,ZONE 13: Katakomben,ÃREA 13: Catacumbas,,ZONE 13: Catacombes,13. Terület: Katakombák,,,МеÑтноÑÑ‚ÑŒ 13: Катакомбы, +AREA 14: Mines,TXT_STRIFE_MAP14,,,,ZONE 14: Die Minen,ÃREA 14: Minas,,ZONE 14: Mines,14. Terület: Bánya,,,МеÑтноÑÑ‚ÑŒ 14: Шахты, +AREA 15: Fortress: Administration,TXT_STRIFE_MAP15,,,,ZONE 15: Festung: Administration,ÃREA 15: Fortaleza: Administración,,ZONE 15: Forteresse: Administration,15. Terület: ErÅ‘d: Adminisztráció,,,МеÑтноÑÑ‚ÑŒ 15: КрепоÑÑ‚ÑŒ (ÐдминиÑтрациÑ), +AREA 16: Fortress: Bishop's Tower,TXT_STRIFE_MAP16,,,,ZONE 16: Festung: Bischofsturm,ÃREA 16: Fortaleza: Torre del Obispo,,ZONE 16: Forteresse: Tour de l'évèque,16. Terület: Püspök tornya,,,МеÑтноÑÑ‚ÑŒ 16: КрепоÑÑ‚ÑŒ (Ð‘Ð°ÑˆÐ½Ñ Ð•Ð¿Ð¸Ñкора), +AREA 17: Fortress: The Bailey,TXT_STRIFE_MAP17,,,,ZONE 17: Festung: Vorhof,ÃREA 17: Fortaleza: El Patio,,ZONE 17: Forteresse: Mur d'enceinte,,,,МеÑтноÑÑ‚ÑŒ 17: КрепоÑÑ‚ÑŒ (Двор), +AREA 18: Fortress: Stores,TXT_STRIFE_MAP18,,,,ZONE 18: Festung: Lager,ÃREA 18: Fortaleza: Almacenes,,ZONE 18: Forteresse: Réserves,,,,МеÑтноÑÑ‚ÑŒ 18: КрепоÑÑ‚ÑŒ (Склады), +AREA 19: Fortress: Security Complex,TXT_STRIFE_MAP19,,,,ZONE 19: Festung: Sicherheitsanlage,ÃREA 19: Fortaleza: Complejo de Seguridad,,ZONE 19: Forteresse: Complexe Sécurité,,,,МеÑтноÑÑ‚ÑŒ 19: КрепоÑÑ‚ÑŒ (Охранный комплекÑ), +AREA 20: Factory: Receiving,TXT_STRIFE_MAP20,,,,ZONE 20: Fabrik: Empfang,ÃREA 20: Fábrica: Recepción,,ZONE 20: Usine: Réception,,,,МеÑтноÑÑ‚ÑŒ 20: Фабрика (Приём), +AREA 21: Factory: Manufacturing,TXT_STRIFE_MAP21,,,,ZONE 21: Fabrik: Herstellung,ÃREA 21: Fábrica: Manufactura,,ZONE 21: Usine: Manufacture,,,,МеÑтноÑÑ‚ÑŒ 21: Фабрика (Обработка), +AREA 22: Factory: Forge,TXT_STRIFE_MAP22,,,,ZONE 22: Fabrik: Schmiede,ÃREA 22: Fábrica: Forja,,ZONE 22: Usine: Forge,,,,МеÑтноÑÑ‚ÑŒ 22: Фабрика (КузнÑ), +AREA 23: Order Commons,TXT_STRIFE_MAP23,,,,ZONE 23: Mensa des Ordens,ÃREA 23: Condominios de la Orden,,ZONE 23: Mess de l'Ordre,,,,МеÑтноÑÑ‚ÑŒ 23: ПоÑеление Ордена, +AREA 24: Factory: Conversion Chapel,TXT_STRIFE_MAP24,,,,ZONE 24: Umwandlungskapelle,ÃREA 24: Fábrica: Capilla de Conversión,,ZONE 24: Usine: Chapelle de Conversion,,,,МеÑтноÑÑ‚ÑŒ 24: ЧаÑÐ¾Ð²Ð½Ñ Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ, +AREA 25: Catacombs: Ruined Temple,TXT_STRIFE_MAP25,,,,ZONE 25: Katakomben: Zerstörter Tempel,ÃREA 25: Catacumbas: Templo Arruinado,,ZONE 25: Catacombes: Temple Ruiné,,,,МеÑтноÑÑ‚ÑŒ 25: Катакомбы (Руины храма), +AREA 26: Proving Grounds,TXT_STRIFE_MAP26,,,,ZONE 26: Testgelände,ÃREA 26: Campo de Pruebas,,ZONE 26: Terrain d'entraînement,,,,МеÑтноÑÑ‚ÑŒ 26: ИÑпытательный полигон, +AREA 27: The Lab,TXT_STRIFE_MAP27,,,,ZONE 27: Das Labor,ÃREA 27: El Laboratorio,,ZONE 27: Laboratoire,,,,МеÑтноÑÑ‚ÑŒ 27: ЛабораториÑ, +AREA 28: Alien Ship,TXT_STRIFE_MAP28,,,,ZONE 28: Außerirdisches Schiff,ÃREA 28: Nave Alienígena,,ZONE 28: Vaisseau Alien,,,,МеÑтноÑÑ‚ÑŒ 28: Корабль пришельцев, +AREA 29: Entity's Lair,TXT_STRIFE_MAP29,,,,ZONE 29: Das Nest der Entität,ÃREA 29: Escondite de la Entidad,,ZONE 29: Demeure de L'Entité,,,,МеÑтноÑÑ‚ÑŒ 29: Логово СущноÑти, +AREA 30: Abandoned Front Base,TXT_STRIFE_MAP30,,,,ZONE 30: Verlassene Basis der Front,ÃREA 30: Base Abandonada del Frente,,ZONE 30: Base Abandonnée du Front,,,,МеÑтноÑÑ‚ÑŒ 30: Ð—Ð°Ð±Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° СопротивлениÑ, +AREA 31: Training Facility,TXT_STRIFE_MAP31,,,,ZONE 31: Trainingseinrichtung,ÃREA 31: Facilidad de Entrenamiento,,ZONE 31: Complexe d'Entraînement,,,,МеÑтноÑÑ‚ÑŒ 31: Тренировочный корпуÑ, +AREA 1: Sanctuary,TXT_STRIFE_MAP32,,,,ZONE 1: Heiligtum,ÃREA 1: Santuario,,ZONE 1: Sanctuaire,,,,МеÑтноÑÑ‚ÑŒ 1: СвÑтилище, +AREA 2: Town,TXT_STRIFE_MAP33,,,,ZONE 2: Stadt,ÃREA 2: Pueblo,,ZONE 2: Ville,,,,МеÑтноÑÑ‚ÑŒ 2: Город, +AREA 3: Movement Base,TXT_STRIFE_MAP34,,,,ZONE 3: Rebellenbasis,ÃREA 3: Base del Movimiento,,ZONE 3: Base du Front,,,,МеÑтноÑÑ‚ÑŒ 3: База ÑопротивлениÑ, +AREA 35: Factory: Production,TXT_STRIFE_MAP35,,,,ZONE 35: Fabrik: Produktion,ÃREA 35: Fábrica: Producción,,ZONE 35: Usine: Production,,,,МеÑтноÑÑ‚ÑŒ 35: Фабрика (ПроизводÑтво), +AREA 36: Castle Clash,TXT_STRIFE_MAP36,,,,ZONE 36: Burg-Konflikt,ÃREA 36: Ataque al Castillo,,ZONE 36: Bataille du Château,,,,МеÑтноÑÑ‚ÑŒ 36: Битва в замке, +AREA 37: Killing Grounds,TXT_STRIFE_MAP37,,,,ZONE 37: Kampfgelände,ÃREA 37: Campo de Matanza,,ZONE 37: Zone de Chasse,,,,МеÑтноÑÑ‚ÑŒ 37: Секторы обÑтрела, +AREA 38: Ordered Chaos,TXT_STRIFE_MAP38,,,,ZONE 38: Geordnetes Chaos,ÃREA 38: Caos Ordenado,,ZONE 38: Chaos Ordonné,,,,МеÑтноÑÑ‚ÑŒ 38: УправлÑемый хаоÑ, +,,,Hexen,,,,,,,,,, +Winnowing Hall,TXT_HEXEN_MAP01,,,,Trennungshalle,Sala de los Vientos,,Chambre de la Séparation,,,,Зал отÑеиваниÑ,Овејан хол +Seven Portals,TXT_HEXEN_MAP02,,,,Sieben Portale,Siete Portales,,Les Sept Portails,,,,Семь порталов,Седам портала +Guardian of Ice,TXT_HEXEN_MAP03,,,,Wächter des Eises,Guardián de Hielo,,Gardien de Glace,,,,Страж льда,Чувар леда +Guardian of Fire,TXT_HEXEN_MAP04,,,,Wächter des Feuers,Guardián de Fuego,,Gardien de Feu,,,,Страж огнÑ,Чувар ватре +Guardian of Steel,TXT_HEXEN_MAP05,,,,Wächter des Stahls,Guardián de Acero,,Gardien d'Acier,,,,Страж Ñтали,Чувар челика +Bright Crucible,TXT_HEXEN_MAP06,,,,Glänzende Feuerprobe,Crisol de Luz,,Creuset Radiant,,,,ИÑпытание Ñвета,СветлоÑни лонац +Shadow Wood,TXT_HEXEN_MAP13,,,,Schattenwald,Bosque de la Sombra,,Forêt des Ombres,,,,Ð›ÐµÑ Ñ‚ÐµÐ½ÐµÐ¹,Шума Ñена +Darkmere,TXT_HEXEN_MAP08,,,,Düstersee,Pantano,,Marais Noir,,,,Ð‘Ð¾Ð»Ð¾Ñ‚Ð½Ð°Ñ Ñ‚Ð¾Ð¿ÑŒ,Мочваре +Caves of Circe,TXT_HEXEN_MAP09,,,,Circes Höhle,Cuevas de Circe,,Caves de Circé,,,,Пещеры цирцеи,Пећине цирке +Wastelands,TXT_HEXEN_MAP10,,,,Ödland,Yermo,,Terres Ruinées,,,,ПуÑтоши,ПуÑтаре +Sacred Grove,TXT_HEXEN_MAP11,,,,Heiliger Hain,Arboleda Sagrada,,Bosquet Sacré,,,,СвÑÑ‰ÐµÐ½Ð½Ð°Ñ Ñ€Ð¾Ñ‰Ð°,Свети шумарак +Hypostyle,TXT_HEXEN_MAP12,,,,Säulenhalle,Hipóstila,,Hypostyle,,,,ГипоÑтильный зал,ХипоÑтил +Heresiarch's Seminary,TXT_HEXEN_MAP27,,,,Seminar des Erzketzers,Seminario del Heresiarca,,Séminaire de l'Hérésiarche,,,,Ð¡ÐµÐ¼Ð¸Ð½Ð°Ñ€Ð¸Ñ Ð•Ñ€ÐµÑиарха,ЈереÑијархов Ñеминар +Dragon Chapel,TXT_HEXEN_MAP28,,,,Drachenkapelle,Capilla Dragón,,Chapelle du Dragon,,,,ЧаÑÐ¾Ð²Ð½Ñ Ð´Ñ€Ð°ÐºÐ¾Ð½Ð°,Змајева капела +Griffin Chapel,TXT_HEXEN_MAP30,,,,Greifenkapelle,Capilla Grifo,,Chapelle du Grifon,,,,ЧаÑÐ¾Ð²Ð½Ñ Ð³Ñ€Ð¸Ñ„Ð¾Ð½Ð°,Грифинова капела +Deathwind Chapel,TXT_HEXEN_MAP31,,,,Todeswindkapelle,Capilla Viento de Muerte,,Chapelle du Vent Tueur,,,,ЧаÑÐ¾Ð²Ð½Ñ Ð²ÐµÑ‚Ñ€Ð° Ñмерти,Капела ветра Ñмрти +Orchard of Lamentations,TXT_HEXEN_MAP32,,,,Garten der Wehklagen,Huerto de los Lamentos,,Verger des Lamentations,,,,Сады плача,Воћњак тужбалица +Silent Refectory,TXT_HEXEN_MAP33,,,,Stilles Refektorium,Refectorio Silencioso,,Réfectoire Silencieux,,,,Ð‘ÐµÐ·Ð¼Ð¾Ð»Ð²Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð¿ÐµÐ·Ð½Ð°Ñ,Тиха трпезарија +Wolf Chapel,TXT_HEXEN_MAP34,,,,Wolfskapelle,Capilla Lobo,,Chapelle du Loup,,,,ЧаÑÐ¾Ð²Ð½Ñ Ð²Ð¾Ð»ÐºÐ°,Вучја капела +Forsaken Outpost,TXT_HEXEN_MAP21,,,,Verlassener Vorposten,Puesto de Avanzada Abandonado,,Base Abandonnée,,,,ÐŸÐ¾ÐºÐ¸Ð½ÑƒÑ‚Ð°Ñ Ð·Ð°Ñтава,Ðапуштена поÑтаја +Castle of Grief,TXT_HEXEN_MAP22,,,,Leidensburg,Castillo del Pesar,,Château de la Souffrance,,,,Замок Ñкорби,Замак жалоÑти +Gibbet,TXT_HEXEN_MAP23,,,,Richtstätte,Horca,,Gibet,,,,ВиÑелица,Вешала +Effluvium,TXT_HEXEN_MAP24,,,,Effluvium,Efluvio,,Effluvium,,,,Зловонный Ñток,Ефлувиум +Dungeons,TXT_HEXEN_MAP25,,,,Kerker,Calabozos,,Donjons,,,,ПодземельÑ,Тамнице +Desolate Garden,TXT_HEXEN_MAP26,,,,Verwildeter Garten,Jardín Desolado,,Jardin de la Désolation,,,,Заброшенный Ñад,ПуÑта башта +Necropolis,TXT_HEXEN_MAP35,,,,Nekropole,Necrópolis,,Nécropole,,,,Ðекрополь,ÐÐµÐºÑ€Ð¾Ð¿Ð¾Ð»Ð¸Ñ +Zedek's Tomb,TXT_HEXEN_MAP36,,,,Zedeks Gruft,Tumba de Zedek,,Tombeau de Zedek,,,,Гробница зедека,Зедеков гроб +Menelkir's Tomb,TXT_HEXEN_MAP37,,,,Menelkirs Gruft,Tumba de Menelkir,,Tombeau de Menelkir,,,,Гробница менелкира,Менелкиров гроб +Traductus' Tomb,TXT_HEXEN_MAP38,,,,Traductus' Gruft,Tumba de Traductus,,Tombeau de Traductus,,,,Гробница традактуÑа,ТрадуктуÑов гроб +Vivarium,TXT_HEXEN_MAP39,,,,Vivarium,Vivario,,Vivarium,,,,Виварий,Зверињак +Dark Crucible,TXT_HEXEN_MAP40,,,,Dunkle Feuerprobe,Crisol de Oscuridad,,Creuset Sombre,,,,ИÑпытание тьмы,Мрачни лонац +,,,Hexen Deathkings,,,,,,,,,, +Ruined Village,TXT_HEXDD_MAP41,,,,Zerstörtes Dorf,Pueblo en Ruinas,,Village en Ruines,,,,Ð Ð°Ð·Ñ€ÑƒÑˆÐµÐ½Ð½Ð°Ñ Ð´ÐµÑ€ÐµÐ²Ð½Ñ, +Blight,TXT_HEXDD_MAP42,,,,Fäule,Decaimiento,,Peste,,,,Упадок, +Sump,TXT_HEXDD_MAP43,,,,Sumpf,Pozo de Barro,,Puisard,,,,ГрÑзеотÑтойник, +Catacomb,TXT_HEXDD_MAP44,,,,Katakombe,Catacumba,,Catacombe,,,,Катакомба, +Badlands,TXT_HEXDD_MAP45,,,,Ödland,Páramos,,Terres Sauvages,,,,БеÑплодные земли, +Brackenwood,TXT_HEXDD_MAP46,,,,Moorwald,Brackenwood,,Forêt de Bracken,,,,Брекенвуд, +Pyre,TXT_HEXDD_MAP47,,,,Scheiterhaufen,Pira Funeraria,,Brasier,,,,Погребальный коÑÑ‚Ñ‘Ñ€, +Constable's Gate,TXT_HEXDD_MAP48,,,,Wachtor,Puerta del Alguacil,,Portail du Constable,,,,КомендантÑкие врата, +Treasury,TXT_HEXDD_MAP49,,,,Schatzkammer,Tesorería,,Trésorerie,,,,Сокровищница, +Market Place,TXT_HEXDD_MAP50,,,,Marktplatz,Plaza del Mercado,,Place du Marché,,,,Ð Ñ‹Ð½Ð¾Ñ‡Ð½Ð°Ñ Ð¿Ð»Ð¾Ñ‰Ð°Ð´ÑŒ, +Locus Requiescat,TXT_HEXDD_MAP51,,,,Locus Requiescat,Lugar de Descanso Eterno,,Locus Requiescat,,,,МеÑто вечного упокоениÑ, +Ordeal,TXT_HEXDD_MAP52,,,,Heimsuchung,Prueba,,Supplice,,,,ИÑпытание, +Armory,TXT_HEXDD_MAP53,,,Armoury,Waffenkammer,Armería,,Amurerie,,,,ОружейнаÑ, +Nave,TXT_HEXDD_MAP54,,,,Kirchenschiff,La Nave,,Nef,,,,Ðеф, +Chantry,TXT_HEXDD_MAP55,,,,Kantorei,Capilla,,Chapelle,,,,ЧаÑовнÑ, +Abattoir,TXT_HEXDD_MAP56,,,,Schlachthaus,Matadero,,Abbatoire,,,,БойнÑ, +Dark Watch,TXT_HEXDD_MAP57,,,,Dunkle Wache,Guardia Oscura,,Garde Noire,,,,Тёмный Ñтраж, +Cloaca,TXT_HEXDD_MAP58,,,,Kloake,Cloaca,,Cloaque,,,,Клоака, +Ice Hold,TXT_HEXDD_MAP59,,,,Eiskammer,Tierra de Hielo,,Fort de Glace,,,,ЛедÑÐ½Ð°Ñ Ñ‚Ð²ÐµÑ€Ð´ÑŒ, +Dark Citadel,TXT_HEXDD_MAP60,,,,Dunkle Festung,Fortaleza Oscura,,Citadelle Sombre,,,,Ð¢Ñ‘Ð¼Ð½Ð°Ñ Ñ†Ð¸Ñ‚Ð°Ð´ÐµÐ»ÑŒ, +Transit,TXT_HEXDD_MAP33,,,,,Sala de Espera,,Transit,,,,Комната ожиданиÑ, +Over'n Under,TXT_HEXDD_MAP34,,,,Drunter und Drüber,Arriba y Abajo,,Sens Dessus Dessous,,,,Выше и ниже, +Deathfog,TXT_HEXDD_MAP35,,,,Todesnebel,Niebla de Muerte,,Brume Mortelle,,,,Туман Ñмерти, +Castle of Pain,TXT_HEXDD_MAP36,,,,Burg der Angst,Castillo del Dolor,,Château de la Douleur,,,,Замок боли, +Sewer Pit,TXT_HEXDD_MAP37,,,,Kanalgrube,Pozo de Residuos,,Trou d'Egout,,,,Ð¡Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ñма, +The Rose,TXT_HEXDD_MAP38,,,,Die Rose,La Rosa,,La Rose,,,,Роза, +,,,Intermission texts,,,,,,,,,, +"Once you beat the big badasses and +clean out the moon base you're supposed +to win, aren't you? Aren't you? Where's +your fat reward and ticket home? What +the hell is this? It's not supposed to +end this way! + +It stinks like rotten meat, but looks +like the lost Deimos base. Looks like +you're stuck on The Shores of Hell. +The only way out is through. + +To continue the DOOM experience, play +The Shores of Hell and its amazing +sequel, Inferno! +",E1TEXT,,Doom Ep.1,,"Nachdem du die großen Schurken besiegt und in +der Mondbasis aufgeräumt hast, hättest du +sicher erwartet, zu gewinnen, nicht wahr? +Nicht wahr? Wo ist deine fette Belohnung und +dein Ticket nach Hause? Was zur Hölle ist das? +So sollte es nicht enden. + +Es stinkt nach faulem Fleisch, sieht aber aus +wie die vergessene Deimos-Basis. Sieht aus als +ob du an den Ufern der Hölle festsitzt. +Der einzige Weg hier raus ist durch. + +Um das DOOM-Erlebnis fortzusetzen, spiele +„Die Ufer der Hölle“ und die erstaunliche +Fortsetzung, „Inferno“!","Una vez has vencido a los tremendos bastardos +y limpiado la base lunar se supone +que deberías ganar ¿verdad? ¡¿Verdad?! +¿Dónde esta tu suculenta recompensa +y tu pasaje a casa? ¿Qué diablos es esto? +¡Esto no debería terminar así! + +Huele a carne podrida, pero se ve como +la base perdida de Deimos. Parece que estás +atrapad@[ao_esp] en las orillas del infierno. +La única salida es a través. + +Para continuar la experiencia de DOOM, +juega Las orillas del infierno y su +sorprendente secuela, ¡Averno! ","Una vez que venciste a los tremendos bastardos +y limpiaste la base lunar se supone +que habrías ganado ¿verdad? ¡¿Verdad?! +¿Dónde esta tu suculenta recompensa +y tu pasaje a casa? ¿Qué diablos es esto? +¡No se supone que termine así! + +Huele a carne podrida, pero se ve como +la base perdida de Deimos. Parece que estás +atrapad@[ao_esp] en las orillas del infierno. +La única salida es por ahí. + +Para continuar la experiencia de DOOM, +juega Las orillas del infierno y su +sorprendente secuela, ¡Averno! ","Après avoir vaincu les grosses brutes +et nettoyé la base lunaire, vous êtes sensé +avoir gagné, non? Où est votre belle +récompense et votre billet retour? +Qu'est-ce que ça veut dire? + +Ca pue la viande pourrie, mais on +dirait la base perdue de Déimos. Il semble +que vous êtes bloqué aux portes de l'enfer. +La seule sortie est de l'autre côté. + +Pour continuer à découvrir DOOM, jouez +à « LES PORTES DE L'ENFER » et à son +incroyable suite, « INFERNO »! +","Amikor egyszer elvered a nagy lurkókat és +kitisztítod a hold bázist akkor neked nyerned +kéne, nem? Nem?? Hol van a zsír jutalmad +és a jegyed haza? Mi a pokol ez? Ennek nem +így kellett volna végzÅ‘dnie! + +Olyan bűz van mint a rothadó húsnak, de +úgy néz ki hogy ez az elveszett Deimos bázis. +Úgy néz ki a pokol partján ragadtál. Az +egyetlen kiút az az elÅ‘re. + +Hogy folytasd a DOOM élményt, játssz +A Pokol Partja epizóddal, és a bámulatos +folytatásával, Az Infernóval!","Una volta che hai eliminato i cattivi e +liberato la base lunare dovresti aver +vinto, vero? Vero? Dove sono la tua +ricca ricompensa e il biglietto per +casa? Cosa diavolo è questo? Non +avrebbe dovuto finire così! + +Puzza come carne marcia, ma pare +essere la dispersa base di Deimos. +Pare proprio che tu sia approdato +sulle Coste dell'Inferno. +L'unica uscita ci passa in mezzo. + +Per continuare l'esperienza di DOOM +gioca 'The Shores of Hell' e il suo +incredibile seguito, 'Infernò! +","Apos todo o esforço limpando +a base da lua, voce deveria ganhar um prêmio, +não deveria? Hein? Cadê o maravilhoso +presente: voltar para casa? +Parece que este pesadelo só está começando. + +Cheira como carne podre, mas é a base Deimos, +eu acho. Parece que estou preso no meio do +Inferno... + +O único jeito de sair é passando dentro. + +Para continuar, escolha o prox. episódio, +The Shores of Hell e, na sequência, +Inferno! +","Уничтожив Баронов Ðда и зачиÑтив лунную +базу, Ð’Ñ‹ должны были победить, не так ли? +Ðе так ли? Где заÑÐ»ÑƒÐ¶ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° и +билет домой? Что Ñто за чертовщина? +Ð’Ñе должно было закончитьÑÑ Ð½Ðµ так! + +Это меÑто пахнет как гнилое мÑÑо, а +выглÑдит как потерÑÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° на ДеймоÑе. +Похоже, Ð’Ñ‹ заÑÑ‚Ñ€Ñли на берегах Ðда, и +единÑтвенный путь теперь — пройти их. + +Чтобы продолжить погружение в игру, +пройдите Ñпизод «Берега Ðда» и его +замечательный Ñиквел «Инферно»!","Једном када Ñредите велике момке и +очиÑтите базу меÑеца, требало би да +победите, зар не? Зар не? Где је ваша +грандиозна награда и карта кyћи? Шта +је, бре, ово? Ðе би требало да Ñе +Ñврши на овај начин! + +Смрди као труло меÑо, али изгледа +као изгубљена база ДеимоÑа. Изгледа +да Ñи заглављен на обалама пакла. +Једини излаз напоље је кроз Ñве то. + +Да биÑте наÑтавили иÑкуÑтво DOOM-а, +играјте Обале пакла и његов невероватни +наÑтавак, Инферно! +" +"You've done it! The hideous cyber- +demon lord that ruled the lost Deimos +moon base has been slain and you +are triumphant! But ... where are +you? You clamber to the edge of the +moon and look down to see the awful +truth. + +Deimos floats above Hell itself! +You've never heard of anyone escaping +from Hell, but you'll make the bastards +sorry they ever heard of you! Quickly, +you rappel down to the surface of +Hell. + +Now, it's on to the final chapter of +DOOM! -- Inferno.",E2TEXT,,Doom Ep.2,,"Du hast es geschafft! Der fiese Cyber- +dämonenlord, der die vergessene Deimos-Basis +beherrschte, ist tot und du triumphierst. +Aber ... wo bist du? +Du kletterst zum Rand des Mondes und +schaust nach unten, um die schreckliche +Wahrheit zu erkennen: + +Deimos schwebt über der Hölle! +Du hast noch nie von jemandem gehört, +der aus der Hölle entkam, aber du wirst es +den Bastarden schon zeigen, dass sie +wünschten, nie von dir gehört zu haben. + +Nun geht es weiter zum letzten Kapitel von +DOOM - Inferno.","¡Lo hiciste! ¡El horrendo ciber-demonio que +regía la base lunar perdida de Deimos +ha sido asesinado y has triunfado! +Pero... ¿dónde estás? Trepas hasta el +borde de la luna y miras abajo para +ver la horrorosa verdad. + +¡Deimos flota sobre el mismísimo infierno! +Nunca has oído de alguien escapar del +infierno, ¡pero harás que los bastardos +lamenten no haber escuchado sobre ti! +Rápidamente, desciendes a rapel +hacia la superficie del infierno. + +¡Ahora, estás en el capitulo final de DOOM! +Averno.",,"Vous avez réussi! L'hideux cyber-démon +qui régnait sur la base lunaire de Déimos +est enfin mort et vous êtes triomphant! +Mais.. Où êtes vous? Vous vous penchez +au dessus de la bordure de la lune et +découvrez l'atroce vérité. + +Déimos flotte au dessus des enfers! +Vous n'avez jamais entendu parler que +quelqu'un s'en soit sorti, mais vous +allez faire payer ces fumiers pour +le foutoir qu'ils ont causé! Rapidement, +vous descendez en rappel aux enfers. + +Il est maintenant temps pour le +chapitre final de DOOM! -- INFERNO.","Megcsináltad! A förtelmes kiborg-démon +aki az egész elveszett Deimos hold bázist +uralta meghalt és te gyÅ‘zedelmeskedsz! +De ... hol vagy valójában? Felmászol a hold +élére és lenézel hogy lásd a szörnyű igazságot. + +Deimos lebeg a Pokol fölött! +Még nem hallottál arról, hogy valaki megszökött +volna a Pokolból, de te megleckézteted ezeket +a rohadékokat annyira hogy sajnálni fogják +hogy hallottak rólad! Gyorsan, igázva lemész +a Pokol felszínére. + +Most, a DOOM végsÅ‘ fejezetében! +-- Inferno -- ","Ce l'hai fatta! Il malvagio cyber- +demonio che governava la dispersa +base di Deimos è stato ucciso e tu +sei trionfante! Ma... dove ti trovi? +Sali fino all'orlo della luna e +guardi giù scoprendo l'orribile verità. + +Deimos fluttua sopra l'Inferno stesso! +Non hai mai sentito di nessuno fuggito +dall'Inferno, ma quei bastardi si +pentiranno di aver anche solo +sentito parlare di te! +Velocemente scendi verso la superficie +dell'Inferno. + +è ora del capitolo finale di +DOOM! - 'Infernò.","Você conseguiu! O gigante cyber- +demon que comandava a base lunar +Deimos foi morto, e voce foi o +triunfante nessa batalha... E agora? +Você olha pelo parapeito da base e +entao vê a assustadora verdade. + +A base está flutuando em cima do +que parece um portal para o inferno! +Você nunca ouviu falar de alguém que +escapou de lá, mas aqueles que você +matou se arrependem de ter lhe conhe- +cido. Você toma fôlego e comeca sua jor- +nada no ultimo episódio de DooM! +Inferno + +","У Ð’Ð°Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð»Ð¾ÑÑŒ! УжаÑный Лорд- +Кибердемон, правÑщий потерÑнной +деймоÑовÑкой базой, был повержен +и Ð’Ñ‹ торжеÑтвуете! Ðо... Где Ð’Ñ‹? +ПодобравшиÑÑŒ к краю Ñпутника, Ð’Ñ‹ +обращаете взор вниз, чтобы +увидеть ужаÑную правду. + +Ð”ÐµÐ¹Ð¼Ð¾Ñ Ð¿Ð»Ñ‹Ð²Ñ‘Ñ‚ над Ñамим Ðдом! +Ð’Ñ‹ никогда не Ñлышали, чтобы кто-нибудь +Ñбегал из Ðда, но Ð’Ñ‹ заÑтавите ублюдков +пожалеть о том, что они проÑлышали о ВаÑ. +ПоÑпешно обвÑзавшиÑÑŒ верёвкой, Ð’Ñ‹ +ÑпуÑкаетеÑÑŒ на поверхноÑÑ‚ÑŒ Ðда. + +Теперь наÑтупает Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледней главы +— «Инферно».","УÑпели Ñте! Грозни Ñајбер-демонÑки +владар који је владао изгубљеном базом +ДеимоÑовог меÑеца је убијен и ви +Ñте победили! Ðли ... где Ñте? +Довлачите Ñе до ивице меÑеца и +гледате доле да видите Ñтрашну +иÑтину. + +Ð”ÐµÐ¸Ð¼Ð¾Ñ Ð¿Ð»Ð¾Ð²Ð¸ изнад Ñамог пакла! +Ðикада ниÑте чули за било кога да бежи +из Пакла, али ће ти кучкини Ñинови жалити +жалити што Ñу уопште чули за ваÑ! +Брзо Ñе враћате доле на површину +пакла. + +Сада, оÑтатак је на поÑледњем поглављу +DOOM! -- Инферно." +"The loathsome spiderdemon that +masterminded the invasion of the moon +bases and caused so much death has had +its ass kicked for all time. + +A hidden doorway opens and you enter. +You've proven too tough for Hell to +contain, and now Hell at last plays +fair -- for you emerge from the door +to see the green fields of Earth! +Home at last. + +You wonder what's been happening on +Earth while you were battling evil +unleashed. It's good that no Hell- +spawn could have come through that +door with you ...",E3TEXT,,Doom Ep.3,,"Der widerwärtige Spinnendämon, der die +Invasion der Mondbasen erdacht und so +viel Tod verursacht hat, hat für alle +Zeiten einen Tritt in den Arsch erhalten. + +Eine versteckte Tür öffnet sich und du +trittst ein. Du hast dich als zu zäh +erwiesen, um in der Hölle zu verbleiben, +aber wenigstens jetzt spielt die Hölle +fair - denn du kommst aus der Tür +um die grünen Felder der Erde zu sehen! +Endlich Zuhause. + +Du fragst sich, was auf der Erde passiert ist, +während du gegen das Böse gekämpft hast. +Wie gut, dass keine Höllenkreatur mit dir +durch das Tor gekommen ist... +","El abominable demonio arácnido que orquestó +la invasión de las bases lunares y causó +numerosas muertes ha tenido su culo pateado +por todos los tiempos. + +Una puerta oculta se abre y entonces entras. +Has demostrado ser demasiado rud@[ao_esp] para +el infierno para contener, y ahora el +infierno al final juega limpio -- ¡emerges +desde la puerta para ver los campos verdes +de la Tierra! Hogar al fin. + +Te preguntas qué ha sucedido en la Tierra +mientras combatías a la maldad desatada. +Menos mal que ningún ser infernal ha podido +entrar a través de esa puerta contigo...",,"Le maléfique démon arachnéen qui +a mené l'invasion des bases lunaires +et causé des morts à n'en plus finir +a enfin eu son cul botté pour toujours. + +Une porte cachée s'ouvre et vous y entrez. +Vous avez prouvé que vous étiez trop +fort pour les enfers, et il décide d'être +bon joueur: Vous émergez de l'autre +côté, dans les vertes prairies de la Terre! +Enfin rentré à la maison. + +Vous vous demandez ce qu'il se passait +ici tandis que vous vous battiez contre +les forces du mal. C'est bien de savoir +qu'aucun démon ne vous a suivi..","Az undorító pókdémon aki +kiagyalta a Hold bázis invázióját +és annyi halált okozott végre +megdöglött. + +Egy rejtett kapualj kinyílik és te belépsz. +A Pokol megtanulta hogy te túl kemény vagy +nekik, és most a Pokol legutolsó pillanatban +fer lesz veled -- hogy te felbukkanj az ajtóból +és végre lásd a Földnek a zöld mezÅ‘it! +Otthon édes otthon. + +Elgondolkodtál azon hogy vajon mitörténhetett +a Földön miközben te kegyetlenül verted a +gonoszt. Az jó dolog hogy egyetlen Pokoli lény +sem tudott átmenni azon az ajtón veled ...","Il terribile demone-ragno che aveva +progettato l'invasione delle basi +lunari e causato così tanta morte ha +sempre avuto i minuti contati. + +Una porta nascosta si apre ed entri. +Sei stato troppo forte perchè l'Inferno +ti fermasse ed ora l'Inferno gioca pulito +per una volta, perchè emergi dalla porta +per vedere i campi verdi della Terra! +Finalmente a casa. + +Ti chiedi cosa sia successo sulla +Terra mentre combattevi il male. +è un bene che nessuna creatura dell' +Inferno sia passata per quella porta +con te...","O inigualável spiderdemon que esque- +matizou a invasão na lua causou tanta +destruição e morte que foi enfim derro- +tado. + +Uma passagem secreta abre e você entra. +Você mostrou que inferno nenhum pode +contê-lo, pelo menos agora acabou. +Agora está na hora de voltar para a Terra, +para enfim descansar. +Lar doce lar. + +Você imagina o que aconteceu nesse +meio tempo enquanto voce batalhava +contra o mal. Espero que nenhum daque- +les monstros tenham vindo junto com +você naquela passagem ...","Омерзительный паукодемон, +руководивший вторжением на лунные +базы и принёÑший Ñтоль много +Ñмертей, был окончательно повержен. + +ОткрываетÑÑ Ñ‚Ð°Ð¹Ð½Ð¸ÐºÐ½Ð°Ñ Ð´Ð²ÐµÑ€ÑŒ и Ð’Ñ‹ +входите в неё. Ð’Ñ‹ доказали, что +Ñлишком круты Ð´Ð»Ñ Ð°Ð´Ð°, и поÑтому +Ðд, наконец, поÑтупает Ñправедливо — +Ð’Ñ‹ выходите из двери прÑмо на +зелёные Ð¿Ð¾Ð»Ñ Ð—ÐµÐ¼Ð»Ð¸. Ðаконец-то дом. + +Ð’Ñ‹ Ñпрашиваете ÑебÑ: что проиÑходило +на Земле, пока Ð’Ñ‹ ÑражалиÑÑŒ Ñ +выÑвободившимÑÑ Ð·Ð»Ð¾Ð¼? Хорошо, что ни +одно порождение Ðда не Ñмогло пройти +через Ñту дверь вмеÑте Ñ Ð’Ð°Ð¼Ð¸...","Гадни Ñпајдердемон, који је +управљао инвазијом на меÑечевим базама +и изазвао толико Ñмрти, добио је +по дупету једном за Ñвагда. + +Отварају Ñе Ñкривена врата и пролазите +кроз њих. Доказали Ñте Ñе превише +Ñнажним да Ð²Ð°Ñ Ð¿Ð°ÐºÐ°Ð¾ задржи, а Ñад тај +пакао коначно игра поштено - јер излазите +кроз врата да видите зелена поља на Земљи! +Коначно Ñте кyћи. + +Питате Ñе шта Ñе догађало на Земљи +док Ñте Ñе борили против зла. Добро +је што ниједно Ñтворење пакла +не може проћи кроз та врата +Ñ Ð²Ð°Ð¼Ð°..." +"The spider mastermind must have sent forth +its legions of hellspawn before your +final confrontation with that terrible +beast from hell. but you stepped forward +and brought forth eternal damnation and +suffering upon the horde as a true hero +would in the face of something so evil. + +Besides, someone was gonna pay for what +happened to Daisy, your pet rabbit. + +But now, you see spread before you more +potential pain and gibbitude as a nation +of demons run amok among our cities. + +Next stop, Hell on Earth!",E4TEXT,,Doom Ep.4,,"Der Spinnenmeister muss seine Legionen +der Höllenbrut vor deiner Konfrontation mit +ihm ausgesandt haben. +Aber du hast ja ewige Verdammnis und Leiden +über diese Horde des Bösen hereinbrechen +lassen wie ein wahrer Held. + +Außerdem würde jemand für das bezahlen +müssen, was mit Daisy passiert ist, deinem +Kaninchen. + +Aber jetzt siehst du noch mehr Schmerz und +Blutvergießen vor dir, da die Dämonen in +unseren Städten Amok laufen. + +Nächster Halt, Hölle auf Erden!","La mente maestra arácnida debió haber +enviado sus legiones de seres infernales +antes de tu confrontación final con esa +terrible bestia del infierno. Pero diste un +paso adelante y provocaste una eterna +condenación y sufrimiento sobre la horda +como un verdadero héroe lo haría frente +a algo tan malvado. + +Además, alguien pagará por lo que le +hicieron a Daisy, tu coneja mascota. + +Pero ahora, ves como se esparce ante ti +el dolor potencial y la carnicería exacerbada +como una nación de demonios corren sin +control sobre nuestras ciudades. + +Próxima parada, ¡infierno en la tierra!",,"Le démon arachnéen a du envoyer ses +légions de démons avant votre confrontation +finale avec cette terrible bête des enfers. +Mais vous avez mis fin à tout cela et +apporté damnation et souffrance éternelle +à cette horde comme un vrai héros le fairait +face à quelque chose d'aussi atroce. + +De toutes façons, quelqu'un devait payer +pour ce qu'ils ont fait à Daisy, votre lapin. + +Mais maintenant, vous voyez s'étendre +devant vous encore plus de douleur et +de massacre potentiels: une nation de démons +se déversent dans nos cités! + +Prochain arrèt: L'enfer sur terre!","A Pók Agytröszt talán elÅ‘re küldte a pokoli légióit +mielÅ‘tt leszámoltál volna vele a végsÅ‘ csatában +azzal a szörnyű teremtéssel a pokolból. de te +elÅ‘re léptél és igazi poklot és szenvedést csináltál +a hordára mint egy igazi hÅ‘s tenne egy gonosz +elÅ‘tt. + +amúgy, valaki fizetni fog ami Daisy-vel történt, +a házikedvenc nyúladdal. + +de most, szerteszét nézel magad elÅ‘tt +potenciális fájdalmat és vérontást +látsz miközben több ámokfutó démont látsz a +városunk közt. + +A következÅ‘ megálló: Pokol a Földön!","Il demone ragno doveva aver mandato +avanti le sue legioni infernali prima +del tuo confronto finale con quella +terribile bestia. Ma ti sei fatto avanti +e hai portato dannazione eterna e +sofferenza all'orda come un vero eroe +farebbe di fronte a qualcosa di così +crudele. + +Inoltre, qualcuno doveva pagare per +quello che era successo a Daisy, la +tua coniglietta domestica. + +Ma ora vedi diffondersi davanti a te +ulteriori dolori e massacri mentre +una popolazione di demoni si sparge +furiosa per le nostre città. + +prossima fermata, l'Inferno in terra!","O spider mastermind deve ter sido +mandado junto com sua legião de monstros +para os confins do inferno depois dessa +batalha. sorte sua que você se manteve +vivo para fazer de tudo para limpar +esse mundo de sofrimento de uma forma que +só um herói poderia fazer diante de tanto mal. + +aliás, alguem teria que pagar pelo que +aconteceu com daisy, seu coelho de estimação. + +Mas agora, voce vê o que aconteceu no +planeta enquanto estava fora: dor e sangue +trazido pelos demônios que estão a solta nas +cidades. agora é hora de acabar com isso! +você recarrega sua pistola e continua seu +árduo trabalho: acabar com esses +monstros!","Паук-предводитель, должно быть, поÑлал +вперёд Ñвои легионы порождений Ðда +перед вашим поÑледним Ñражением Ñ Ñтим +ужаÑным отродьем. Ðо Ð’Ñ‹ пошли до конца +и принеÑли вечное проклÑтье и Ñтрадание +Ñтой орде так, как поÑтупил бы наÑтоÑщий +герой перед лицом Ñмертельной опаÑноÑти. + +Кроме того, кто-то должен был заплатить +за то, что ÑлучилоÑÑŒ Ñ Ð”Ñйзи, вашей +домашней крольчихой. + +Теперь Ð’Ñ‹ видите, Ñколь много боли и +крови Вам пророчат полчища демонов, +неиÑтовÑтвующих в наших городах. + +Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð¾Ñтановка — Ðд на земле!","паук-геније вероватно је поÑлао Ñвоје +легије из пакла пред ваш поÑледњи Ñукоб +Ñа том Ñтрашном звери из пакла. али +али ви Ñте кренули напред и довели вечно +проклетÑтво и патњу хорди, као што би и +прави херој у ÑукобуÑа нечим тако злим. + +поред тога, неко је морао платити +за оно што Ñе деÑило Ñа даиÑи, +вашим љубимцем зецом. + +али Ñада пред вама видите могyћноÑÑ‚ +за још више потенцијалних болова и гадоÑти +док Ñе хорда демона креће међу нашим +градовима. + +Ñледећа Ñтаница, пакао на земљи!" +"You have entered deeply into the infested +starport. But something is wrong. The +monsters have brought their own reality +with them, and the starport's technology +is being subverted by their presence. + +Ahead, you see an outpost of hell, a +fortified zone. If you can get past it, +You can penetrate into the haunted heart +of the starbase and find the controlling +switch which holds earth's population +hostage.",C1TEXT,,Doom2 after MAP06,,"Du bist tief in den verseuchten Sternenhafen +eingedrungen. Aber etwas stimmt nicht. Die +Monster haben ihre eigene Realität +mitgebracht und die Technologie wird +durch ihre Anwesenheit transformiert. + +Voraus siehst du einen Vorposten der Hölle, +eine befestigte Zone. Wenn du daran vorbei +kommst, kannst du in das Herz der +Basis eindringen und den Schalter finden, +der die Menschheit als Geiseln hält.","Te has introducido profundamente en el +infestado puerto espacial. Pero algo está +mal. Los monstruos han traído su propia +realidad con ellos, y la tecnología del +puerto espacial está siendo +desvirtuada por su presencia. + +Adelante, ves un puesto de avanzada del +infierno, una zona fortificada. Si puedes +pasarlo, podrás penetrar en el corazón +atormentado de la base espacial y +encontrar el interruptor de control, el +cual mantiene a la población de +la tierra como rehén.",,"Vous êtes maintenant au plus profond +de l'astroport infesté, mais quelque chose +ne va pas. Les monstres ont apporté avec eux +leur propre réalité, et la technologie de +l'astroport se déforme en leur présence. + +Devant vous, vous voyez une base infernale, +une zone fortifiée. Si vous pouvez passer à +travers, vous pouvez pénétrer dans le cÅ“ur +hanté de la base spatiale et trouver la +commande qui garden les terriens en +otage.","Beléptél jó mélyen a fertÅ‘zött csillagkikötÅ‘be. +De valami nem stimmel. A szörnyek elhozták +a saját valóságukat magukkal, és a csillagkikötÅ‘ +technológiái fellettek forgatva ezáltal a +jelenlétük miatt. + +ElÅ‘l, látsz egy pokoli elÅ‘Å‘rsöt, egy megerÅ‘sített +zónát. Ha túl tudsz menni rajta, akkor +betudsz hatolni a csillagkikötÅ‘ kísérteties szívébe +és megkeresni az irányító kapcsolót ami fogságba +tartja a föld populációját.","Sei entrato profondamente nel spazioporto +infestato. Ma qualcosa non va. I +mostri hanno portato la loro realtà +con sè e la tecnologia dello spazioporto +è sovvertita dalla loro presenza. +Più avanti vedi un avamposto dell'inferno, +una zona fortificata. Se riesci a passarla, +potrai penetrare nel cuore infestato della +stazione spaziale e trovare l'interruttore +di controllo che tiene la popolazione +della terra in ostaggio.","VOCÊ FOI FUNDO DENTRO DO PORTO +ESTELAR, MAS ALGO ESTà ERRADO. OS +MONSTROS TROUXERAM SUA REALIDADE +COM ELES, E A TECNOLOGIA AQUI CONTIDA +ESTà SENDO MODIFICADA COM SUA PRESENÇA. + +ADIANTE, VOCÊ VÊ UM POSTO DE GUARDA, +UMA ZONA FORTIFICADA. SE VOCÊ PASSAR ALI, +PODERà ENTRAR DENTRO DO CORAÇÃO DA +BASE ESTELAR E DESATIVAR O DISPOSITIVO +QUE MANTÊM O QUE SOBROU DA POPULAÇÃO +DA TERRA REFÉM.","Ð’Ñ‹ прошли вглубь заражённого коÑмопорта, +но что-то здеÑÑŒ не так. МонÑтры принеÑли +Ñ Ñобой Ñвою ÑобÑтвенную реальноÑÑ‚ÑŒ, +и техника коÑмопорта +транÑформируетÑÑ Ð¾Ñ‚ их приÑутÑтвиÑ. + +Впереди вы видите аванпоÑÑ‚ Ðда. +ЕÑли вам удаÑÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±Ñ€Ð°Ñ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· него, +Ð’Ñ‹ Ñможете проникнуть в наÑелённый +демонами центр базы и найти управлÑющий +выключатель, держащий наÑеление земли +в заложниках.","Дубоко Ñте зашли у опуÑтошен Ñтарпорт. +Ðешто није било у реду, додуше. Чудовишта +Ñу донелу Ñвоју ÑопÑтвену реалноÑÑ‚ Ñа +Ñобом, а Ñтарпортова технологија +бива нарушена због њиховог приÑуÑтва. + +ИÑпред Ð²Ð°Ñ Ð²Ð¸Ð´Ð¸Ñ‚Ðµ предÑтражу пакла, +обезбеђено подручје. Ðко можете проћи +кроз њега, моћи ћете да Ñе пробијете до +Ñамог уклетог Ñрца Ñтарбазе и да нађете +контролишyће дугме које држи Ñве +Ñтановништво земље таоце." +"You have won! Your victory has enabled +Humankind to evacuate earth and escape +the nightmare. Now you are the only +Human left on the face of the planet. +Cannibal mutations, carnivorous aliens, +and evil spirits are your only neighbors. +You sit back and wait for death, content +that you have saved your species. + +But then, earth control beams down a +message from space: ""Sensors have located +the source of the alien invasion. If you +go there, you may be able to block their +entry. The alien base is in the heart of +your own home city, not far from the +starport."" slowly and painfully you get +up and return to the fray.",C2TEXT,,Doom2 after MAP11,"You have won! Your victory has enabled +Humankind to evacuate earth and escape +the nightmare. Now you are the only +Human left on the face of the planet. +Cannibal mutations, carnivorous aliens, +and evil spirits are your only neighbours. +You sit back and wait for death, content +that you have saved your species. + +But then, earth control beams down a +message from space: ""Sensors have located +the source of the alien invasion. If you +go there, you may be able to block their +entry. The alien base is in the heart of +your own home city, not far from the +starport."" slowly and painfully you get +up and return to the fray.","Du hast gewonnen! Dein Sieg hat der +Menschheit die Evakuation der Erde +ermöglicht. Jetzt bist du der einzige +Mensch auf der Planetenoberfläche. +Kannibalen-Mutationen, +fleischfressende Aliens und böse Geister +sind deine einzigen Nachbarn. Du lehnst dich +zurück und wartest auf den Tod, zufrieden, +dass du deine Spezies gerettet hast. + +Dann sendet die Flotte ein Signal aus dem +Weltraum: „Sensoren haben die Quelle der +außerirdischen Invasion gefunden. Wenn du +sie erreichst, können wir möglicherweise ihr +weiteres Eindringen blockieren. Die Basis +liegt im Herzen von deiner Heimatstadt, +nicht weit vom Hafen.“ +Langsam und schmerzerfüllt kommst +du hoch und gehst zurück in den Kampf.","¡Has ganado! Tu victoria ha permitido a la +humanidad evacuar la tierra y escapar de +la pesadilla. Ahora tú eres el único ser +humano que queda en la faz de la tierra. +Mutaciones caníbales, alienígenas +carnívoros, y espíritus malvados son tus +únicos vecinos. Te sientas y esperas la +muerte, content@[ao_esp] de haber salvado +a tu especie. + +Pero entonces, los controles de la tierra +emiten un mensaje desde el espacio: 'Los +sensores han localizado el origen de la +invasión alienígena. Si vas ahí, serás capaz +de bloquear su entrada. La base alienígena +está en el corazón de tu propia ciudad +natal, no tan lejos del puerto espacial' +Lenta y dolorosamente te levantas y +vuelves a la carga.","¡Has ganado! Tu victoria ha permitido a la +humanidad evacuar la tierra y escapar de +la pesadilla. Ahora tú eres el único ser +humano que queda en la faz de la tierra. +Mutaciones caníbales, alienígenas +carnívoros, y espíritus malvados son tus +únicos vecinos. Te sientas y esperas la +muerte, content@[ao_esp] de haber salvado +a tu especie. + +Pero entonces, los controles de la tierra +emiten un mensaje desde el espacio: 'Los +sensores han localizado el origen de la +invasión alienígena. Se entras ahí, podrás +bloquear su entrada. La base alienígena +está en el corazón de tu propia ciudad +natal, no tan lejos del puerto espacial' +Lenta y dolorosamente te levantas y +vuelves a la carga.","Vous avez gagné! Votre victoire a permis à +l'humanité d'évacuer la Terre et d'échapper +au cauchemar. Vous êtes maintenant le +seul humain sur la surface de la planète. +Mutants cannibales, aliens carnivores et +esprits maléfiques sont votre seule +companie. Vous vous reposez et attendez la +mort, satisfait d'avoir sauvé votre espèce. + +Mais le commandemet vous envoie un +message depuis l'espace: ""Les senseurs +ont découvert l'origine de l'invasion +alien. Si vous y allez, vous pouvez les +empêcher de nous envahir. La base +se trouve au cÅ“ur de votre ville natale, +non loin de l'astroport."" Lentement et +douloureusement, vous vous levez +et retournez au combat.","Nyertél! A gyÅ‘zelmed megengedte az +emberiségnek hogy evakuálják a földet és +megmeneküljenek a rémálomtól. Most te vagy +az egyetlen ember a föld felszínén. +Kannibális mutációk, húsevÅ‘ űrlények, és a +gonosz lelkek az egyetlen szomszédjaid. +Leülsz, és vársz a halálra, büszkén amiért +megmentetted fajodat. + +De aztán, a Föld VezérlÅ‘ lesugároz egy üzenetet +az űrbÅ‘l: ""Szenzoraink megtalálták az űrlény +invázió forrását. Ha odamész, talán te képes leszel +elhárítani a bejáratukat. Az űrlény bázis pontosan +a te városodban tartozkodik, nem messze a +csillagkikötÅ‘tÅ‘l."" lassan és fájdalmasan felállsz +és folytatod a küzdelmet.","Hai vinto! La tua vittoria ha permesso +al genere umano di evacuare la terra e +di fuggire dall'incubo. Ora sei il solo +umano rimasto sulla faccia del pianeta. +Mutazioni cannibali, alieni carnivori e +spiriti malvagi sono I tuoi soli vicini. +Ti siedi e aspetti la morte, felice di +aver salvato la tua specie. + +Proprio allora, il controllo della terra +rimanda un messaggio dallo spazio: ""I +sensori hanno localizzato la fonte +dell'invasione aliena. Se andrai lì +potrai forse bloccare il loro +ingresso. La base aliena è nel cuore +della tua città natale, non lontano +dallo spazioporto."" +Lentamente e dolorosamente ti alzi +è ritorni alla battaglia.","VOCÊ CONSEGUIU! APÓS ESSA VITÓRIA VOCÊ SALVA +A RAÇA HUMANA DA DIZIMACAO, FAZENDO COM QUE +ELES EVACUASSEM A TERRA DE VEZ. AGORA VOCÊ +É O ÚNICO HUMANO NA FACE DA TERRA. +MUTAÇÕES CANIBAIS, ALIENS CARNÃVOROS +E MAUS ESPÃRITOS SÃO SEUS VIZINHOS. +VOCÊ SENTA E ESPERA PELA MORTE, FELIZ +POR TER SALVADO A POPULAÇÃO. + +MAS ELES MANDAM UMA MENSAGEM DO ESPAÇO: +""SENSORES LOCALIZARAM O FOCO DA INVASÃO +SE VOCÊ FOR LÃ, PODERà BLOQUEAR SUA ENTRADA. +A BASE ALIEN FICA NO CORAÇÃO DE SUA CIDADE +NATAL, NÃO MUITO LONGE DO PORTO ESTELAR."" +LENTAMENTE E SENTINDO MUITA DOR, VOCÊ SE +LEVANTA E DECIDE CONTINUAR A LIMPEZA. +","Ð’Ñ‹ победили! Ваша победа позволила +человечеÑтву ÑвакуироватьÑÑ Ñ Ð·ÐµÐ¼Ð»Ð¸ +и ÑпаÑтиÑÑŒ от кошмара. Теперь Ð’Ñ‹ — +пдинÑтвенный человек, оÑтавшийÑÑ Ð½Ð° +планете, и людоеды-мутанты, хищные +инопланетÑне и злые духи — Ваши +единÑтвенные ÑоÑеди. Удовлетворённый +ÑпаÑением Ñвоего вида, Ð’Ñ‹ Ñпокойно +дожидаетеÑÑŒ неминуемой гибели. + +Ðо вÑкоре руководÑтво земли передаёт +Ñообщение Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ñ‹: «СенÑоры обнаружили +иÑточник инопланетного вторжениÑ. Ваша +задача — ликвидировать его». Ð˜Ð½Ð¾Ð¿Ð»Ð°Ð½ÐµÑ‚Ð½Ð°Ñ +база находитÑÑ Ð² центре вашего города, +недалеко от коÑмопорта. Медленно и +мучительно Ð’Ñ‹ возвращаетеÑÑŒ в бой. +","Победили Ñте! Ваша победа дозволила је +човечанÑтву да евакуише земљу и побегне +из те ноћне море. Ви Ñте Ñад једино људÑко +биће на кугли земаљÑкој. Мутанти канибали, +ванземаљци карнивори и зле душе Ñу вам Ñада +били једине комшије. Седате доле и Ñтрпљиво +чекате Ñмрт, задовољни што Ñте ÑпаÑли +Ñвоју врÑту. + +Ðли тада земљина контрола шаље вам доле +поруку из Ñвемира. „Сензори Ñу лоцилари +извор ванземаљÑке инвазије. Ðко одеш тамо, +можда ћеш уÑпети зауÑтавити њихов улазак. +ванземаљÑка база Ñе налази у вашем родном +граду, недалеко од Ñтарпорта.“ Полако и +безвољно уÑтајете да би Ñе вратили +у окршај." +"You are at the corrupt heart of the city, +surrounded by the corpses of your enemies. +You see no way to destroy the creatures' +entryway on this side, so you clench your +teeth and plunge through it. + +There must be a way to close it on the +other side. What do you care if you've +got to go through hell to get to it?",C3TEXT,,Doom 2 after MAP20,,"Du bist im korrupten Herzen der Stadt, +umgeben von den Leichen deiner Feinde. +Du siehst keine Möglichkeit, das Tor der +Kreaturen von dieser Seite zu zerstören. +Also beißt du die Zähne zusammen und +springst hinein. + +Es muss einen Weg geben, um es auf der +anderen Seite zu schließen. Und wenn du +dafür durch die Hölle gehen musst!","Estas en el corazón corrompido de la +ciudad, rodead@[ao_esp] por los cadáveres +de tus enemigos. No ves otra manera +de destruir la entrada de las criaturas +desde este lado, así que aprietas +tus dientes y te zambulles en medio. + +Debe haber una forma de cerrarla desde +el otro lado. ¿Qué te preocupa si de todas +formas tienes que pasar por el infierno +para llegar a ella?",,"Vous êtes au cÅ“ur de la cité corrompue, +entouré des cadavres de vos ennemis. +Il ne semble pas qu'il y ait une manière +de détruire leur point d'entrée de ce côté. +Vous grincez des dents et plongez à +travers. + +Il doit y avoir un moyen de l'autre côté. +En quoi ça importe d'avoir à traverser +les enfers pour y arriver?","A városnak a korrupt szívén tartózkodsz, +beborítva az ellenségeid hulláival. Nem találsz +módot arra, hogy megsemmisítsd a bejáratot +ezen az oldalon, szóval te összeszorítod a fogaidat +és keresztül vergÅ‘dsz rajta. + +Muszáj lennie egy módnak hogy bezárjad a másik +oldalon. Miért érdekel ez ha már a poklon keresztül +mentél, csak hogy eljuss hozzá?","Sei nel cuore infestato della città, +Circondato dai corpi dei tuoi nemici. +Non vedi il modo di distruggere l'ingresso +delle creature da questo lato, così +stringi I denti e ti ci butti attraverso. + +Ci deve essere un modo per chiuderelo dall' +altro lato. Quello che ti chiedi è se +dovrai attraversare l'inferno per trovarlo?","VOCÊ CONSEGUE CHEGAR NO CORAÇÃO DA CIDADE, +CERCADA PELOS CADÃVERES DE SEUS INIMIGOS. +VOCÊ NAO VÊ NENHUM JEITO DE DESTRUIR A +ENTRADA POR ESTE LADO, ENTAO VOCE +CERRA OS DENTES E MERGULHA ATRAVÉS +DA PASSAGEM. + +DEVE HAVER UM JEITO DE FECHÃ-LA DO OUTRO +LADO. PRA QUÊ SE PREOCUPAR SE TEREI QUE +ATRAVESSAR O INFERNO PARA FECHÃ-LA?","Ð’Ñ‹ находитеÑÑŒ в разлагающемÑÑ Ñердце +города, в окружении трупов Ñвоих врагов. +Ð’Ñ‹ не видите никакого ÑпоÑоба уничтожить +портал на Ñтой Ñтороне, и поÑтому, ÑтиÑнув +зубы, проходите Ñквозь него. + +Должен быть ÑпоÑоб закрыть портал +на другой Ñтороне. И какое Вам дело до +того, что придётÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ через ад, чтобы +добратьÑÑ Ð´Ð¾ него?","Ðалазите Ñе у Ñамом корумпираном Ñрцу +града, окружени лешевима Ñвојих +непријатеља. + +Ðе видите никакав начин да уништите њихов +пролаз Ñа ове Ñтране па ÑтиÑкате зубе +и залећете Ñе кроз пролаз. + +Мора поÑтојати начин да Ñе пролаз уништи +Ñа друге Ñтране. Шта Ð²Ð°Ñ Ð±Ñ€Ð¸Ð³Ð° ако +морате проћи пакао да би Ñте га нашли?" +"The horrendous visage of the biggest +demon you've ever seen crumbles before +you, after you pump your rockets into +his exposed brain. The monster shrivels +up and dies, its thrashing limbs +devastating untold miles of hell's +surface. + +You've done it. The invasion is over. +Earth is saved. Hell is a wreck. You +wonder where bad folks will go when they +die, now. Wiping the sweat from your +forehead you begin the long trek back +home. Rebuilding earth ought to be a +lot more fun than ruining it was. +",C4TEXT,,Doom2 victory,,"Das schreckliche Antlitz des größten +Dämonen, den du jemals gesehen hast, +zerbröckelt, nachdem du deine Raketen in +sein Hirn gepumpt hast. +Das Monster schreit auf und stirbt, seine +schlagenden Glieder unzählige Kilometer +der Hölle verwüstend. + +Du hast es geschafft. Die Invasion ist vorbei. +Die Erde ist gerettet. Die Hölle ist ein Wrack. +Du fragst dich, wohin böse Menschen nun +kommen, wenn sie sterben. +Du wischst den Schweiß von deiner Stirn und +begibst dich auf den langen Weg nach Hause. +Der Wiederaufbau der Erde dürfte +erfreulicher sein, als ihre Zerstörung.","El horrendo rostro del demonio más grande +que hayas visto se derrumba ante ti, +después de bombear tus cohetes en su +cerebro expuesto. El monstruo se +desintegra y muere, sus miembros azotan +el suelo devastando incontables +kilómetros de suelo infernal. + +Lo has hecho. La invasión se acabó. La tierra +está a salvo. El infierno es una ruina. Te +preguntas adónde irán los malos cuando +mueran ahora. Secándote el sudor de la +frente comienzas el largo camino de vuelta +a casa. Reconstruir la tierra debería +ser mucho más divertido que arruinarla.",,"L'horrible visage du démon le plus +colossal que vous n'avez jamais vu +s'écroule devant vos yeux après que +vous avez explosé sa cervelle avec +vos roquettes. Le monstre s'écroule et +meurt, ses membres dévastant des +kilomètres de la surface des enfers +dans leurs spasmes d'agonie. + +Vous avez réussi. L'invasion est terminée. +La Terre est sauvée. L'enfers est ruiné. +Vous vous demandez où les salopards +iront quand ils seront morts maintenant. +Essuyant la sueur de votre front, vous +entreprenez le long chemin du retour. +Reconstruire la Terre devrait être plus +amusant que de la détruire.","A borzalmas tekintete a legnagyobb démonnak +amit valaha láttál összeomlik elÅ‘tted, amikor +betömködted a rakétáidat a védtelen agyába. +A szörny összeroncsolodik és meghal, a +végtagjai szanaszét repülnek a pokol felszínén. + +Megcsináltad. Az inváziónak vége. +A föld megmenekült. A Pokolnak annyi. +Elgondolkodsz azon hogy hova mennek a rossz +fiúk amikor meghalnak, most. Letörlöd az +izzadságot a homlokodról mielÅ‘tt +visszacammogsz haza. Újra építeni a földet +szórakoztató lesz, mint elpusztítani volt.","L'orrendo viso del demone più grosso +che tu abbia mai visto si sfascia davanti +a te, dopo che hai sparato I tuoi razzi +nel suo cervello esposto. Il mostro si +contorce e muore, le sue membra che si +agitano devastano miglia indicibili +della superficie dell'inferno. + +Ce l'hai fatta. L'invasione è finita. +La terra è salva. L'inferno una rovina. +Ti chiedi dove andranno I malvagi quando +moriranno, ora. Asciugandoti il sudore +dalla fronte inizi la lunga strada per +casa. +Ricostruire la terra dovrebbe essere +molto più divertente di quanto non +lo sia stato distruggerla. +","A HORRENDA VISTA DO MAIOR DEMÔNIO QUE +VOCÊ Jà VIU DESMORONA NA SUA FRENTE +DEPOIS DE VOCE LANCAR ALGUNS FOGUETES +DENTRO DE SEU CÉREBRO EXPOSTO. ELE +MURCHA E MORRE, SEUS MEMBROS ESTAO +DEVASTANDO MILHAS E MILHAS DA +SUPERFÃCIE DO INFERNO. + +VOCÊ CONSEGUIU. A INVASÃO ACABOU. +A TERRA ESTà SALVA. O INFERNO DESTRUIDO. +VOCÊ IMAGINA PARA ONDE OS MAUS IRÃO +QUANDO MORREREM AGORA. VOCÊ SECA O +SUOR DE SUA TESTA E COMEÇA A LONGA +JORNADA DE VOLTA PRA CASA. E PENSA EM +RECONSTRUIR A TERRA PARA SER MAIS +DIVERTIDA DO QUE ANTES. +","Жутчайший лик Ñамого большого демона, +которого вы когда-либо видели, рушитÑÑ +на ваших глазах поÑле того, как вы +накачали ракетами его незащищённый +мозг. МонÑÑ‚Ñ€ угаÑает и гибнет, +Ñ€Ð°Ð·Ñ€ÑƒÑˆÐ°Ñ Ð±ÐµÑчиÑленные мили поверхноÑти +Ðда. + +Ð’Ñ‹ ÑправилиÑÑŒ. Вторжению конец. Ð—ÐµÐ¼Ð»Ñ +ÑпаÑена. Ðд повержен. Ð’Ñ‹ Ñпрашиваете +ÑебÑ: куда теперь поÑле Ñмерти будут +попадать плохие люди? Утерев пот +Ñо лба, вы начинаете долгое путешеÑтвие +обратно домой. ВоÑÑтановление земли +должно быть гораздо более интереÑным +занÑтием, нежели её разрушение.","КатаÑтрофална прилика највећег демона +кога Ñте икад видели рађа Ñе пред вама, +и одмах након палите Ñвоје ракете и +гађате га у откривени део мозга. Чудовиште +Ñе Ñкврчи и умире на меÑту, његови +машyћи удови разарајyћи небројане миље +површине пакла. + +УÑпели Ñте. Инвазија је готова. Земља +је Ñачувана. Пакао је у хаоÑу. Размишљате +где ће лоши људи ићи кад умру. Сада, бришyћи +зној Ñа чела, почињете дугачак пут кyћи. +Поновна изградња земље би требала бити +забавнија од уништења иÑте. +" +"Congratulations, you've found the secret +level! Looks like it's been built by +Humans, rather than demons. You wonder +who the inmates of this corner of hell +will be.",C5TEXT,,Doom2 before MAP31,,"Herzlichen Glückwunsch, du hast den +Geheimlevel gefunden. Sieht so aus, +als ob es von Menschen gebaut wurde, +und nicht von Dämonen. +Du fragst dich, wer wohl in diesem +Bereich der Hölle zuhause ist. +","¡Enhorabuena, has encontrado el nivel +secreto! Parece que fue creado por +seres humanos, en lugar de demonios. +Te preguntas quienes serán los inquilinos +de este rincón del infierno.","¡Felicitaciones, has encontrado el nivel +secreto! Parece que fue creado por +seres humanos, en lugar de demonios. +Te preguntas quienes serán los inquilinos +de este rincón del infierno.","Félicitations! Vous avez découvert le +niveau secret! Il semble avoir été +construit part des humains, plutôt +que par des démons. Vous vous +demandez qui donc se trouve +prisonnier des enfers ici...","Gratulálok, megtaláltad a titkos szintet! +Úgy néz ki hogy ezt emberek építették, és nem +démonok. Elgondolkodsz azon hogy miféle +bennlakók tartozkodnak ennél a pokoli saroknál.","Congratulazioni, hai trovato il livello +degreto! Sembra essere stato edificato +da umani più che da demoni. Ti chiedi +chi siano gli abitanti di questo angolo +dell'inferno. +","MEUS PARABÉNS, VOCÊ ACHOU O NÃVEL SECRETO! +PARECE TER SIDO CONSTRUÃDO POR HUNANOS, +EM VEZ DE DEMÔNIOS. VOCÊ IMAGINA O QUE +DEVE HABITAR OS CORREDORES DESTE LUGAR. +","ПоздравлÑем — Ð’Ñ‹ нашли Ñекретный +уровень! Похоже, он был поÑтроен +людьми, а не демонами. Любопытно, +кто же наÑелÑет Ñтот уголок Ðда?","ЧеÑтитамо, пронашли Ñте Ñкривени ниво! +Изгледа да је био изграђен од Ñтране +људи, а не монÑтрума. Размишљате ко +ће бити Ñтановници овог дела пакла." +"Congratulations, you've found the +super secret level! You'd better +blaze through this one! +",C6TEXT,,Doom2 before MAP32,,"Herzlichen Glückwunsch, du hast den +Super-Geheimlevel gefunden. +Sieh zu, dass du hier schnellstens +rauskommst! +","¡Enorabuena, has encontrado el nivel +súper secreto! ¡Será mejor que eches +lumbre a través de este!","¡Felicitaciones, has encontrado el nivel +súper secreto! ¡Será mejor que eches +lumbre a través de este!","Félicitations, vous avez trouvé le +niveau super secret! Vous avez +intérêt à y aller franchement +pour celui-ci! +","Gratulálok, megtaláltad a szuper titkos szintet! +Jobban jársz ha ezen áttöröd magad!","Congratulazioni, hai trovato il +livello super segreto! È meglio +che tu lo percorra di corsa! +","MEUS PARABÉNS, DE NOVO! VOCÊ ACHOU +OUTRO NÃVEL SECRETO. QUERO VER PASSAR +ESSE AGORA! +","ПоздравлÑем — Ð’Ñ‹ нашли ÑверхÑекретный +уровень! Лучше бы Вам Ñтремительно +прорватьÑÑ Ñквозь него!","ЧеÑтитамо, пронашли Ñте +Ñупер Ñкривени ниво! +Боље да пролетите кроз ово!" +"You gloat over the steaming carcass of the +Guardian. With its death, you've wrested +the Accelerator from the stinking claws +of Hell. You relax and glance around the +room. Damn! There was supposed to be at +least one working prototype, but you can't +see it. The demons must have taken it. + +You must find the prototype, or all your +struggles will have been wasted. Keep +moving, keep fighting, keep killing. +Oh yes, keep living, too.",P1TEXT,,Plutonia after MAP06,,"Du ergötzt dich an dem dampfenden Kadaver +des Wächters. Nach seinem Tod hast du ihm den +Beschleuniger aus seinen stinkenden Höllen- +klauen gerungen. Du entspannst dich und +siehst dich im Raum um. Verdammt! Da hätte +mindestens ein funktionierender Prototyp +sein sollen, aber du kannst ihn nicht finden. +Die Dämonen haben ihn wohl mitgenommen. + +Du musst ihn finden oder all deine Mühen +wären umsonst gewesen. Also marschiere +weiter, kämpfe weiter, töte weiter. +Und ja, lebe auch weiter.","Te regocijas sobre el cadáver humeante del +Guardián. Con su muerte, has arrebatado +el acelerador de las pestilentes garras del +infierno. Te relajas y echas un vistazo a la +habitación. ¡Maldición! +Se suponía que al menos había un prototipo +en funcionamiento, pero no puedes verlo. Los +demonios debieron haberlo tomado. + +Debes encontrar el prototipo o todo tu +esfuerzo habrá sido en vano. Sigue en +movimiento, sigue peleando, sigue matando. +Ah, y sigue viviendo, también.","Te regocijas sobre el cadáver humeante del +Guardián. Con su muerte, has arrebatado +el acelerador de las pestilentes garras del +infierno. Te relajas y echas un vistazo a la +habitación. ¡Maldición! +Se suponía que al menos había un prototipo +funcionando, pero no puedes verlo. Los +demonios debieron haberlo tomado. + +Debes encontrar el prototipo o todo tú +esfuerzo habrá sido en vano. Sigue en +movimiento, sigue peleando, sigue matando. +Ah, y sigue viviendo, también.","Vous jubilez sur la carcasse brûlante +du Gardien. Avec sa mort, vous avez +arraché l'accélerateur des griffes +fétides de l'enfer. Vous vous reposez +et observez vos alentours. +Mince! Il était sensé y avoir au +moins un prototype qui marche, +mais vous ne le trouvez pas. Les démons +l'on sûrement pris avec eux. + +Vous devez trouver le prototype, ou +tous vos combats auront été vains. +continez à avancer, à vous battre, à tuer. +Oh oui, à vivre, aussi.","Kéjsóvár tekintettel nézel az áramló +ÅrzÅ‘ hulláján. A halálával kicsavartad a +gyorsítót a Pokol büdös karmaiból. Ellazulsz és +egy pillantást teszel körül a szobában. Az istenit! +Kellett volna lennie legalább egy működÅ‘ +prototípusnak, de te nem találod sehol. +A démonok talán elvihették. + +Megkell találnod a prototípust, vagy az összes +erÅ‘lködésed eddig kudarcba fullad. Mozogj, +harcolj, ölj. +Oh igen, és ne halj meg.","Esulti sulla carcassa fumante del +Guardiano. con la sua morte hai estratto +l'Acceleratore dagli schifosi artigli +dell'inferno. Ti rilassi e guardi attorno. +Dannazione! Ci dovrebbe essere almeno un +prototipo funzionante, ma non riesci a +vederlo. I demoni devono averlo preso. + +Devi trovare il prototipo o tutti i tuoi +sforzi saranno stati vani. Continua a +muoverti, continua a combattere, continua +a uccidere. E continua a restare vivo.","Voce vangloria sua vitoria em cima da carcaca +do Guardiao. Apos mata-lo, voce arranca o +Acelerador das garras fedorentas do Inferno. +Voce relaxa e olha em volta da sala. Droga! +Deveria ter pelo menos mais um prototipo +funcionando, mas voce nao o acha em lugar +nenhum. Os demonios devem ter levado-o + +Voce deve achar o prototipo, ou todos os +seus esforcos serao em vao. Mexa-se, +lute, mate. Ah, se mantenha vivo tambem. +","Ð’Ñ‹ Ñо злорадÑтвом Ñмотрите на горÑщий +ÐºÐ°Ñ€ÐºÐ°Ñ Ð¡Ñ‚Ñ€Ð°Ð¶Ð°. С его Ñмертью Ð’Ñ‹ вырвали +УÑкоритель из зловонных когтей Ðда. +РаÑÑлабившиÑÑŒ, Ð’Ñ‹ окидываете взглÑдом +помещение. ПроклÑтье! Тут должен быть +Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один рабочий прототип, но +демоны, должно быть, забрали его Ñ Ñобой. + +Ð’Ñ‹ должны найти прототип, иначе вÑе Ваши +прошлые уÑÐ¸Ð»Ð¸Ñ Ð¾ÐºÐ°Ð¶ÑƒÑ‚ÑÑ Ð½Ð°Ð¿Ñ€Ð°Ñными. +Продолжайте двигатьÑÑ, продолжайте +ÑражатьÑÑ, продолжайте убивать. И да, +продолжайте выживать.", +"Even the deadly Arch-Vile labyrinth could +not stop you, and you've gotten to the +prototype Accelerator which is soon +efficiently and permanently deactivated. + +You're good at that kind of thing.",P2TEXT,,Plutonia after MAP11,,"Sogar das tödliche Labyrinth der Scheusale +konnte dich nicht aufhalten und du hast +den Beschleuniger-Prototypen erreicht, +der kurz darauf effizient und dauerhaft +deaktiviert ist. + +Darin bist du gut.","Ni siquiera el laberinto mortal de los +archi-viles te ha podido detener y +has llegado al prototipo de acelerador +el cual es desactivado de forma +eficiente y permanente. + +Eres buen@[ao_esp] para ese tipo de +cosas.","Ni siquiera el laberinto mortal de los +archi-viles te ha podido detener y +has llegado al prototipo de acelerador +el cual debería desactivarse de forma +eficiente y permanente. + +Eres buen@[ao_esp] para ese tipo de +cosas.","Même le labyrinthe mortel des +arche-viles ne vous a pas arrêté, +et vous obtenez le prototype +d'accelerateur que vous parvenez à +désactiver efficacement et pour toujours. + +Vous êtes doué pour ces choses là.","Még a halálos Arch-Ördög labirintus sem tudott +megállítani, és eljutottál a Gyorsító prototípushoz, +ami hamarosan végleg kilesz kapcsolva. + +Te jó vagy az ilyesmiben.","Neanche il letale labirinto degli Arch-Vile +ti ha fermato e sei arrivato al prototipo +dell'acceleratore che viene disattivato +efficientemente e permanentemente. + +Sei bravo in questo genere di cose.","Nem o labirinto mortal do Arch-Vile pode +para-lo, e agora voce tem o prototipo do +Acelerador, o qual está com pouca energia +e logo se desativara permanentemente. + +Voce e bom nesse tipo de coisa.","Даже Ñмертельный лабиринт арчвайлов не +Ñмог оÑтановить ВаÑ. Ð’Ñ‹ добралиÑÑŒ до +прототипа УÑкорителÑ, который вÑкоре +был уничтожен раз и навÑегда. + +Уничтожение — Ваша ÑпециальноÑÑ‚ÑŒ.", +"You've bashed and battered your way into +the heart of the devil-hive. Time for a +Search-and-Destroy mission, aimed at the +Gatekeeper, whose foul offspring is +cascading to Earth. Yeah, he's bad. But +you know who's worse! + +Grinning evilly, you check your gear, and +get ready to give the bastard a little Hell +of your own making!",P3TEXT,,Plutonia after MAP20,,"Du hast dich bis ins Herz dieses Höllenbaus +durchgeschlagen. Zeit für eine Such- und +Zerstörungsmission gegen den +Torwächter, dessen stinkende Abkommen auf +die Erde drängen. Ja, er ist schlimm. Aber +du weißt, wer noch schlimmer ist! + +Böse grinsend, überprüfst du deine +Ausrüstung und machst dich bereit, dem +Bastard einen höllischen Empfang zu +bereiten. +","Has golpeado y vapuleado tú camino al +corazón de la colmena diabólica. Es +hora de una misión de búsqueda y +destrucción, con el guardián del portal +como objetivo, cuyos viles vástagos se +dirigen a la Tierra. Sí, él es malo. +¡Pero sabes quién es peor! + +Sonriendo maliciosamente, compruebas +tú equipo y te preparas para darle a ese +bastardo un poco de su propia medicina.",,"Vous vous êtes frayé votre chemin à +travers le cÅ“ur d'une ruche de +diables. Il est temps pour une mission +de recherche et destruction visant le +gardien de la porte, avec sa +progéniture répugnante descendant en +cascade sur terre. Oui, il est cruel. +Mais vous savez qui est pire! + +Souriant malicieusement, vous vérifiez +l'équipement et vous vous préparez a +faire voir a ce fumier un petit enfer +fait de vos propres mains!","Ãttörted magad az ördög-fészek szívébe. +Itt az idÅ‘ egy kis Keresés-és-Lerombol +küldetéshez, a KapuÅ‘rzÅ‘ felé, akinek a rohadt +kölykei a föld felé zuhognak. Igen, Å‘ rossz. De +te tudod hogy ki a rosszabb! + +Gonoszan mosolyogva, ellenÅ‘rzöd a felszerelésed, +és felkészülsz hogy adj annak a mitugrásznak egy +kis sajátos poklot!","Ti sei aperto la via nel cuore del nido +dei demoni. è ora di una missione +Cerca e Distruggi con obiettivo il +Guardiano del cancello le cui malvage +creature si riversano sulla Terra. Sì, +è malvagio, ma tu sai chi è peggio! + +Sorridendo malignamente controlli il tuo +equipaggiamento e ti prepari a dare al +bastardo un piccolo inferno di tua fattura!","Voce batalhou e fez de tudo para chegar +no coracao da colmeia demoniaca. Esta na +hora de destruir o protetor do portao, cuja +prole esta vindo aos montes para a Terra. +E, ele e mau, mas voce sabe quem e pior! + +Sorrindo maldosamente, voce checa seu +equipamento e se prepara para dar ao +bastardo um pequeno inferno de sua propria +criacao!","Ð’Ñ‹ пробили путь в Ñамое +Ñердце дьÑвольÑкого ульÑ. ÐаÑтало Ð²Ñ€ÐµÐ¼Ñ +Ð´Ð»Ñ Ð¼Ð¸ÑÑии «найти и уничтожить», +объектом которой Ñтанет Привратник, +чьи нечеÑтивые отпрыÑки низвергаютÑÑ +на Землю. + +Да, он плохой. Ðо Ð’Ñ‹ знаете, кто ещё хуже! + +Злобно ухмылÑÑÑÑŒ, Ð’Ñ‹ проверÑете Ñвоё +ÑнарÑжение, и готовитеÑÑŒ преподать +ублюдку немного Ðда Вашего +ÑобÑтвенного производÑтва!", +"The Gatekeeper's evil face is splattered +all over the place. As its tattered corpse +collapses, an inverted Gate forms and +sucks down the shards of the last +prototype Accelerator, not to mention the +few remaining demons. You're done. Hell +has gone back to pounding bad dead folks +instead of good live ones. Remember to +tell your grandkids to put a rocket +launcher in your coffin. If you go to Hell +when you die, you'll need it for some +final cleaning-up ...",P4TEXT,,Plutonia victory,,"Das böse Gesicht des Wächters ist mit +Blut besudelt. Als seine zerfledderte +Leiche kollabiert, bildet sich ein inverses +Tor und saugt die letzten Ãœberreste des +Beschleuniger-Prototypen ab, ganz zu +schweigen von den letzten verbliebenen +Dämonen. Du hast es geschafft, die Hölle +ist wieder dazu zurückgekehrt, tote, böse +Menschen zu bestrafen, statt guten, +lebenden. +Vergiss nicht, deinen Enkeln zu sagen, sie +sollen einen Raketenwerfer in deinen Sarg +packen, damit du, wenn du in die Hölle kommst, +eine letzte Reinigung vornehmen kannst...","El malvado rostro del guardián del +portal está repartido por todo el +lugar. Conforme su andrajoso +cadáver se desmorona, se forma un +portal invertido y absorbe los restos +del último prototipo del acelerador, +sin mencionar a los pocos demonios +que quedan. Lo lograste. El infierno +nuevamente va a castigar a los +muertos que hacen el mal, en vez +de hacerlo con los vivos que obran +bien. Recuerda decirle a tus nietos que +pongan un lanzacohetes en tú +ataúd. Si al morir vas al infierno, +lo necesitarás para hacer la +última ronda de limpieza...",,"La face maléfique du gardien de la porte +est éparpillee aux alentours. Comme son +corps en lambeaux vacille, un portail +inverse se forme et aspire les éclats du +dernier prototype d'accélerateur, sans +parler des quelques demons restants. +Vous avez gagné. L'enfer a fini de +libérer des mort-vivants au lieu de +gens bien vivants. +Souvenez vous de dire a vos enfants de +mettre un lance-roquette dans votre +cercueil. Si vous allez en enfer, +quand vous serez mort, vous en aurez +besoin, pour un nettoyage définitif...","A KapuÅ‘rzÅ‘ gonosz arca szétloccsant az egész +környéken. Ahogy a hullája összecsuklik, egy +átfordított Kapú megjelenik és beszippantja +a Gyorsító Prototípus összes maradványait, +és a pár démont ami még maradt. Készen vagy. +A Pokol visszatért a rossz huligánok püfélésébe, +a jó emberek helyett. Ne felejtsd el elmondani +az unokáidnak hogy rakjanak egy RakétavetÅ‘t +a sírodba. Ha a pokolba jutsz amikor meghalsz, +kelleni fog egy kis tisztogatás ...","Il viso del Guardiano è sparso dappertutto +Mentre il suo corpo sbrindellato collassa +un cancello invertito si forma e risucchia +i resti dell'ultimo acceleratore +prototipo, per non parlare dei pochi demoni +rimanenti. Sei soddisfatto. L'Inferno +è tornato a perseguitare i dannati invece +dei vivi. Ricordati di dire ai tuoi nipoti +di mettere un lanciarazzi nella tua +bara. Se andrai all'inferno quando +morirai, ne avrai bisogno per fare un +repulisti finale...","A face do protetor do portao esta espalhada +por todo o lugar. Seu corpo entra em +colapso, um portao inverso se forma e +engole os restos do ultimo Acelerador, +sem mencionar os poucos demonios +que restaram. Voce conseguiu. +O Inferno voltou ao seu lugar, para os vivos +viverem suas vidas. Lembre-se de pedir aos +seus netos para colocarem um lanca-foguete +em seu caixao. Se for para o Inferno, vai +precisar para poder terminar o que +comecou...... +","ПоÑле ÑƒÐ½Ð¸Ñ‡Ñ‚Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ° Привратника +начинают формироватьÑÑ Ð¸Ð½Ð²ÐµÑ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ðµ +Врата, которые затÑгивают в ÑÐµÐ±Ñ +поÑледние обломки УÑÐºÐ¾Ñ€Ð¸Ñ‚ÐµÐ»Ñ Ð¸ +неÑкольких оÑтавшихÑÑ Ð´ÐµÐ¼Ð¾Ð½Ð¾Ð². + +Готово. Ðд вернулÑÑ Ð½Ð° круги ÑвоÑ, +Ð¿Ð¾Ð³Ð»Ð¾Ñ‰Ð°Ñ Ð»Ð¸ÑˆÑŒ грешных людей, а не +праведных. + +Ðе забудьте попроÑить внуков положить +ракетницу в Ваш гроб. ЕÑли поÑле Ñмерти +Ð’Ñ‹ попадёте в Ðд, она понадобитÑÑ +Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ поÑледней зачиÑтки...", +"You've found the second-hardest level we +got. Hope you have a saved game a level or +two previous. If not, be prepared to die +aplenty. For master marines only.",P5TEXT,,Plutonia before MAP31,,"Du hast den zweitschwersten Level gefunden, +den wir haben. Lass uns hoffen, dass du noch +einen Spielstand vom letzten oder vorletzten +Level hast. Falls nicht, bereite dich darauf +vor, oft zu sterben. Nur für Top-Soldaten! +","Has encontrado el segundo nivel más +difícil que tenemos. Esperemos que +hayas guardado la partida con uno +o dos niveles de anticipación. De lo +contrario, prepárate a morir a placer. +Sólo para soldados profesionales.",,"Vous avez trouvé le deuxième niveau +le plus difficile que nous avons. +J'espère que vous avez sauvegardé +lors du précédant... +Sinon, soyez prêt a mourir souvent. +Pour les pros seulement.","Megtaláltad a második legnehezebb szintet +amit csináltunk. Reméljük hogy van egy mentésed, +vagy kettÅ‘. Ha nem, akkor készülj a halálra +kegyetlenül. Csak szakértÅ‘ +tengerészgyalogosoknak.","Hai trovato il secondo livello più tosto +che abbiamo. Spero che tu abbia salvato uno +o due livelli fa. Se no, preparati a morire +in continuazione. Solo per marine veterani.","Voce achou o segundo nivel mais dificil +que temos. Espero que tenha salvo o +jogo uns dois niveis atras. +Para veteranos apenas.","Ð’Ñ‹ нашли второй по ÑложноÑти уровень, +который у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ. ÐадеемÑÑ, Ð’Ñ‹ +Ñохранили игру на предыдущем уровне +или ещё раньше. ЕÑли нет, приготовьтеÑÑŒ +много умирать. + +Уровень раÑÑчитан иÑключительно на +профеÑÑионалов.", +"Betcha wondered just what WAS the hardest +level we had ready for ya? Now you know. +No one gets out alive.",P6TEXT,,Plutonia before MAP32,,"Du hast dich sicher gefragt, was denn nun +der schwerste Level ist, nicht wahr? +Jetzt weißt du es - niemand kommt hier +lebend raus! +","¿Apostamos a que te preguntabas +cuál SERÃA el nivel más difícil que +teníamos preparado para ti?. +Ahora lo sabes. +Nadie sale con vida de aquí.","¿Apostamos a que te preguntabas +cuál SERÃA el nivel más difícil que +teníamos preparado para ti?. +Ahora lo sabes. +Nadie ha salido con vida de aquí.","Alors, vous vous demandiez quel +était le niveau le plus dur que nous +avions préparé pour vous? Maintenant, +vous savez. Nul n'en sortira vivant. +","Nos talán elgondolkodtál azon hogy MELYIK a +legnehezebb szint amit felkészítettünk neked? +Most már tudod. +Senki sem megy ki innen élve.","Scommetto che ti chiedevi quale fosse il +livello più duro che avessimo per te. +Adesso lo sai. +Nessuno ne esce vivo.","Estava pensando qual ERA o nivel mais dificil +que preparamos? Agora voce sabe. +Ninguem sai vivo.","Спорим, Ð’Ñ‹ удивлÑлиÑÑŒ, какой же уровень +СÐМЫЙ Ñложный? Теперь Ð’Ñ‹ знаете. +Ðикто не выберётÑÑ Ð¶Ð¸Ð²Ñ‹Ð¼.", +"You've fought your way out of the infested +experimental labs. It seems that UAC has +once again gulped it down. With their +high turnover, it must be hard for poor +old UAC to buy corporate health insurance +nowadays.. + +Ahead lies the military complex, now +swarming with diseased horrors hot to get +their teeth into you. With luck, the +complex still has some warlike ordnance +laying around.",T1TEXT,,TNT after MAP06,,"Du hast dich aus den heimgesuchten Experi- +mentier-Laboren herausgekämpft. Es sieht +so aus, als ob die UAC es wieder mal ver- +geigt hätte. Mit solchen Verlusten dürfte +es inzwischen schwierig sein, überhaupt +noch eine Versicherung zu erhalten... + +Vor dir liegt jetzt der militärische +Komplex - jetzt heimgesucht von erkrankten +Kreaturen, die nur darauf warten, dich zu +zerreißen. Wenn du Glück hast, liegen hier +vielleicht noch einige Kampfmittel herum. +","Has luchado por salir de los infestados +laboratorios experimentales. Parece +que la UAC una vez más ha vuelto a +estropearlo todo. Con la alta rotación +de personal, debe ser difícil para la +precaria UAC comprar un seguro de +vida corporativo en la actualidad... + +Más adelante se encuentra el +complejo militar, que ahora está +plagado de engendros horrendos +ansiosos por hincar sus dientes en ti. +Para tu suerte, el complejo aún +mantiene algo de material de guerra +repartido en los alrededores.",,"Vous vous êtes frayé un chemin vers la +sortie des labos expérimentaux infestés. +Il semble que l'UAC a encore passé +l'arme à gauche. +Avec leur turnover élevé, ça doit être +drôlement dûr pour la pauvre vieille +UAC de payer la couverture +santé des employés de nos jours... + +Vous avez devant vous le complexe +militaire, cela grouille d'horreurs +morbides prêtes a vous estropier. +Avec un peu de chance, le complexe a +encore quelques armes de guerre +aux alentours.","Végig vergÅ‘dtél a fertÅ‘zött kísérleti +laboratóriumokon. Úgy néz ki hogy a UAC +még utóljára lenyelte ezt. +A nagy irányváltásuk miatt, +eléggé nehéz lehet a régi szegény UAC-nek cégi +egészségbiztosítást venni a mai napokban... + +ElÅ‘l található a Katonaság, rajozó beteg +borzalmakkal van tele hogy megkaparintsák a +fogad fehérjét. Szerencsével, a Katonaságnak még +mindig akadt némi lÅ‘szer ami szerteszét van.","Ti sei aperto la via fuori dai laboratori +sperimentali infestati. Sembra che la UAC +abbia fatto il passo più lungo della gamba +di nuovo. Con questi continui turnover, +deve essere dura per la UAC comprare delle +polizze di assicurazione sulla vita degli +impiegati di questi tempi... + +Più avanti si trova il complesso militare, +ora infestato da orrori malati, ansiosi di +mettere i loro denti su di te. Con un pò +di fortuna nel complesso potrebbero ancora +esserci delle armi in giro.",,"СражаÑÑÑŒ, Ð’Ñ‹ выбралиÑÑŒ из заражённых +ÑкÑпериментальных лабораторий. +Похоже, ОÐК раÑтранжирила и их, неÑÐ¼Ð¾Ñ‚Ñ€Ñ +на огромные корпоративные доходы. Они +даже не позаботилиÑÑŒ о покупке Ñтраховок +Ð´Ð»Ñ Ñвоих Ñотрудников... + +Впереди раÑположен военный комплекÑ, +кишащий вируÑами и только ждущий +как бы вгрызтьÑÑ Ð² Вашу плоть. Что ж, +еÑли повезёт, в комплекÑе вÑÑ‘ ещё +должны оÑтаватьÑÑ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°ÑÑ‹.", +"You hear the grinding of heavy machinery +ahead. You sure hope they're not stamping +out new hellspawn, but you're ready to +ream out a whole herd if you have to. +They might be planning a blood feast, but +you feel about as mean as two thousand +maniacs packed into one mad killer. + +You don't plan to go down easy.",T2TEXT,,TNT after MAP11,,"Du hörst das Mahlen schwerer Maschinen. +Man kann nur hoffen, dass sie keine neue +Höllenbrut produzieren. Aber du würdest +die ganze Herde ausrotten, wenn nötig. +Vielleicht planen sie ein Blutmahl aber +du fühlst dich so stark wie zweitausend +Wahnsinnige, zusammengepackt in einen +verrückten Killer. + +Du wirst es ihnen nicht einfach machen.","Oyes el rechinido de la maquinaria pesada +más adelante. De seguro esperas que no estén +generando nuevos engendros infernales, pero +estás list@[ao_esp] para hacer trizas a toda +una masa si es necesario. +Deben estar planeando un festín de sangre, +pero te sientes tan mal@[ao_esp] como dos +mil maniáticos unidos en un solo ser +demencialmente homicida. + +No caerás con demasiada facilidad.",,"Vous entendez le grincement de gros +engins devant vous. Vous espérez qu'ils +ne sont pas en train de fabriquer +de nouvelles créatures infernales, +mais vous êtes prêt a en balayer tout +un troupeau si vous le deviez. +Ils pourraient être en train de préparer +un festin de sang, mais vous vous sentez +comme deux milliers de fous dans le +corps d'un seul et même tueur. + +Vous ne pensez pas mourir si facilement.","Hallod ahogy a golyószóró dübörög elÅ‘l. +Te halál biztos vagy benne hogy már nem jelenik +meg több pokoli lény, de te készen állsz arra hogy +szembeszállj egy hordával ha kellene. +Talán egy véres lakomát terverznek, de te +úgy érzel mintha kétezer Å‘rjöngÅ‘s szembeszáll +egyetlen Å‘rült gyilkossal szemben. + +Nem tervezel elbukni olyan könnyen.","Senti lo sferragliare di grossi macchinari +più avanti. Ti auguri che non stiano +producendo nuovi demoni, ma sei pronto per +farne fuori un intero branco se fosse +necessario. +Staranno progettando un'orgia di sangue, +ma ti senti forte come duecento pazzi +assiepati in un unico maniaco omicida. + +Non intendi farti battere facilmente.",,"Впереди Ñлышен металличеÑкий Ñкрежет +Ñ‚Ñжёлых механизмов. Ð’Ñ‹ уверены, что они +не штампуют очередную партию +дьÑвольÑких отродий, но даже еÑли +и так, Ð’Ñ‹ к Ñтому готовы. + +Эти звуки могут означать очередной +кровавый феÑтиваль, но Ð’Ñ‹ чувÑтвуете +ÑÐµÐ±Ñ ÐºÐ°Ðº Ñ‚Ñ‹ÑÑчи головорезов, +Ñобранных в одном безумном убийце. + +Ð’Ñ‹ так проÑто не ÑдадитеÑÑŒ.", +"The vista opening ahead looks real damn +familiar. Smells familiar, too -- like +fried excrement. You didn't like this +place before, and you sure as hell ain't +planning to like it now. The more you +brood on it, the madder you get. +Hefting your gun, an evil grin trickles +onto your face. Time to take some names.",T3TEXT,,TNT after MAP20,,"Der Blick voraus zeigt etwas sehr Vertrautes. +Und es riecht auch bekannt - wie verbrannte +Exkremente. Dieser Ort hat die schon vorher +nicht gefallen, und du wirst deine Meinung +auch sicher nicht ändern. Je mehr du darüber +nachdenkst, desto wütender wirst du. +Also du deine Waffe bereitmachst, überzieht +ein böses Grinsen dein Gesicht. +Zeit um aufzuräumen. +","El paisaje que tienes ante tus ojos te +resulta demasiado familiar. Incluso el +olor se hace conocido... como a +excremento frito. No te gustó este +lugar antes, y desde luego no tienes +planes de que te guste ahora. +Mientras más lo recuerdas, más +furios@[ao_esp] te pones. Levantas tu +arma, una sonrisa perversa fluye en tu +cara. Es hora de enseñarles quien manda.",,"La vue s'ouvrant devant vous semble +sacrément, diablement familière. +Les odeurs familières, aussi, trop -- +Des excrèments frits. Vous n'aimiez +pas cet endroit avant, et vous êtes +franchement sûr de ne pas envisager +de l'aimer maintenant. +Plus vous pensiez a cette idée, +plus vous sombrez dans la folie. +Saisissant votre arme, un sourire +maléfique apparait sur votre visage. +Il est l'heure de buter du démon....","Az a kilátás elÅ‘l rohadtul ismerÅ‘snek látszik. +És a szaga is -- égetett ürülék. Nem szeretted ezt +a helyet elÅ‘tte, és egyáltalán nem is fogod +tervezni azt. Sokáig gondolkodsz rajta, annál +dühÅ‘sebb leszel. +Jól megfogod a fegyvered, egy gonosz mosoly +tántorog az arcodon. Itt az idÅ‘ hogy csináljunk +néhány nevet.","Il panorama visibile sembra dannatamente +familiare. Ha pure un puzzo familiare, da +escrementi fritti. Non ti piaceva questo +posto prima e non pensi di fartelo piace- +re proprio adesso. Più ci pensi e più +diventi nervoso. +Soppesando l'arma, un sorriso maligno +si fa strada sul tuo volto. +è ora di prendere un pò di nomi.",,"ОткрывающаÑÑÑ Ð¿ÐµÑ€Ñпектива выглÑдит +чертовÑки знакомой и пахнет +Ñловно зажаренные ÑкÑкременты. +Это меÑто не нравилоÑÑŒ Вам раньше, +и Ð’Ñ‹ чертовÑки уверены, что не +понравитÑÑ Ð¸ ÑейчаÑ. Чем больше Ð’Ñ‹ +размышлÑете над Ñтим, тем печальнее +вÑÑ‘ ÑтановитÑÑ. + +ВзвеÑив Ñвоё оружие, Ð’Ñ‹ зловеще +ухмылÑетеÑÑŒ. ÐаÑтало Ð²Ñ€ÐµÐ¼Ñ Ð²Ñерьёз +надрать кое-кому задницу.", +"Suddenly, all is silent, from one horizon +to the other. The agonizing echo of Hell +fades away, the nightmare sky turns to +blue, the heaps of monster corpses start +to evaporate along with the evil stench +that filled the air. Jeeze, maybe you've +done it. Have you really won? + +Something rumbles in the distance. +A blue light begins to glow inside the +ruined skull of the demon-spitter.",T4TEXT,,TNT victory,,"Plötzlich ist alles still, von einem Horizont +zum anderen. Das quälende Echo der Hölle +verblasst, der Albtraumhimmel wird wieder +blau, der Haufen Monsterleichen beginnt sich +aufzulösen, zusammen mit dem ekligen +Gestank, der in der Luft hing. Ja, du hast +es geschafft. Aber hast du wirklich +gewonnen? + +In der Ferne rumpelt etwas. +Ein blaues Licht beginnt im Inneren +des Schädels zu leuchten.","De repente, todo se silencia. El eco +agonizante del Infierno se desvanece, +el cielo pesadillezco se vuelve azul, +las pilas de cadáveres se empiezan a +desvanecer junto con el malvado hedor +que se sentía en el aire. +Dios, tal vez lo has logrado. ¿Ganaste +realmente? + +Algo retumba a la distancia. Una luz +azul empieza a brillar dentro de +la calavera destruida del +escupedemonios.",,"Tout a coup, tout est silencieux, +d'un horizon a l'autre. +L'écho agonisant de l'enfer s'estompe, +le ciel cauchemardeque tourne au bleu, +les tas de cadavres de monstres +commencent a s'évaporer avec +une puanteur nauséabonde. +La vache, peut être l'avez vous fait. +Avez vous réellement gagné? + +Quelque chose gronde au loin. +une lumière bleue a commence a luire +dans le crâne défoncé du cracheur +de démons.","Hirtelen, minden néma lett, az egyik horizontból +a másikra. A kínzó Pokoli visszhang fokozatosan +elhalkul, a rémálom ég kékké válik, a szörnyeknek +a hullái elpárolog a gonosz bűzzel együtt ami a +levegÅ‘ben volt. Végre, talán megcsináltad. +Biztos hogy gyÅ‘ztél? + +Valami rezeg a távolban. +Egy kék fény kezd izzítani egy démon +romos koponyájában.","Improvvisamente tutto si fa silenzioso, da +un orizzonte all'altro. L'agonizzante eco +dell'inferno svanisce, il cielo da incubo +diventa blu, le pile dei cadaveri dei +mostri iniziano a evaporare con il maligno +fetore che riempiva l'aria. Diamine, forse +ce l'hai fatta. Hai davvero vinto? + +Qualcosa tuona distante. +Una luce bluastra inizia a brillare dentro +il cranio in rovina dello sputa-demoni.",,"Внезапно вÑе окуталоÑÑŒ тишиной до +Ñамого горизонта. Ðгонизирующее ÐдÑкое +Ñхо Ñтихло, кошмарное небо Ñтало вновь +голубым, трупы монÑтров начали +разлагатьÑÑ Ñо зловонным Ñмрадом. +Боже, неужели Ð’Ñ‹ и правда победили? + +ПоÑле короткого землетрÑÑениÑ, из +разгромленного черепа Ð˜Ð·Ñ€Ñ‹Ð³Ð°Ñ‚ÐµÐ»Ñ +Демонов начинает пробиватьÑÑ Ñркое +Ñинее Ñвечение.", +"What now? Looks totally different. Kind +of like King Tut's condo. Well, +whatever's here can't be any worse +than usual. Can it? Or maybe it's best +to let sleeping gods lie..",T5TEXT,,TNT before MAP31,,"Was jetzt? Sieht ganz anders aus. Fast +wie die Wohnung von König Tut. Gut, +was auch immer hier ist, kann nicht +schlimmer sein als, was du bisher +erlebt hast. Oder kann es? +Oder vielleicht ist es besser, die +schlafenden Götter ruhen zu lassen ..","¿Y ahora qué? Esto se ve totalmente +diferente. Se parece a la choza del +rey Tut. Bueno, sea lo que sea no +puede ser peor que los sitios +usuales. ¿O sí? O tal vez sería mejor +dejar dormir a los dioses que +permanecen ahí…",,"Quoi maintenant? Cela semble +complètement different. +Une sorte de lotissement au +bon vieux Toutankhamon. +Bon, rien ne peut être pire +que d'habitude. N'est-ce pas? +Ou peut être est ce mieux +de laisser dormir les dieux.. +","Most mi lesz? Nagyon másnak tűnik. Olyan mint +Tutanhamon Király kongója. Legalább, bármi +ami itt tartozkodik csak nem lehet rosszabb +a szokásosnál. Vagy mégis? Vagy talán az a legjobb +ha hagyjuk hogy a fekvÅ‘ istenek aludjanak..","E ora? Tutto sembra differente. Tipo +dimora del faraone Tutankamon. Bè, +qualunque cosa ci sia qui non sarà peggio +del solito, o no? O forse sarebbe meglio +non disturbare le divinità dormienti...","What now? Looks totally different. Kind +of like King Tut's condo. Well, +whatever's here can't be any worse +than usual. Can it? Or maybe it's best +to let sleeping gods lie..","И что теперь? Ð’ÑÑ‘ выглÑдит Ñовершенно +по-другому, Ñловно покои владыки +Тутанхамона. + +Что ж, что бы не ожидало Ð’Ð°Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸, +хуже уже быть не может, не так ли? +Или может лучше не тревожить +ÑпÑщих богов...", +"Time for a vacation. You've burst the +bowels of hell and by golly you're ready +for a break. You mutter to yourself, +Maybe someone else can kick Hell's ass +next time around. Ahead lies a quiet town, +with peaceful flowing water, quaint +buildings, and presumably no Hellspawn. + +As you step off the transport, you hear +the stomp of a cyberdemon's iron shoe.",T6TEXT,,TNT before MAP32,,"Zeit für einen Urlaub. Du hast die +Eingeweide der Hölle platzen lassen und +verdammt, du hast dir eine Pause verdient. +Du murmelst zu dir selbst, vielleicht sollte +das nächste Mal jemand anderer der Hölle +in den Arsch treten. Vor dir liegt eine +ruhige Stadt mit friedlich fließendem Wasser, +einfachen Gebäuden, und hoffentlich keinen +Höllenkreaturen. + +Als du den Transporter verlässt, hörst du +das Stampfen eines Cyberdämonen.","Hora de tomarse unas vacaciones. +Arrasaste con las entrañas del +Infierno y por dios que estás +list@[ao_esp] para un descanso. +Murmuras a ti mism@[ao_esp], +tal vez alguien más debería ir a +patear traseros infernales la próxima +vez. Más adelante se encuentra un +pueblo tranquilo, con agua tranquila, +construcciones pintorescas, y +probablemente ningún engendro +proveniente del infierno. + +Apenas sales de tu transporte, +escuchas las pisadas de la pezuña +metálica de un ciberdemonio.",,"Vous aviez besoin de vacances. +Vous avez éclaté les entrailles +de l'enfer et pour sûr vous êtes +prêt pour une pause. +Vous marmonnez à vous même: +Peut-être quelqu'un pourrait botter +le cul de l'enfer a votre place, +la prochaine fois. +Une ville tranquille réside devant, +avec le flot paisible de l'eau, +les bâtiments pittoresques, et +probablement pas une créature +de l'enfer. + +Quand vous descendez du transport, +vous entendez le bruit du sabot d'acier +d'un Cyberdémon.","Itt az idÅ‘ a vakációra. Felrobbantottad a Pokol +beleit, és a kutyafáját, megérdemled a pihenést! +Magadhoz motyogsz, +Talán valaki más seggberúghatná a Pokol valagát +legközelebb. ElÅ‘l egy csendes város tartozkodik, +békés áramló vizzel, furcsa épületekkel, és +--talán-- szörnyek nélkül. + +Ahogy kiszállsz a járműbÅ‘l, hallod egy +Kiborgdémon vas patáinak hangját.","Tempo di una vacanza. Hai percorso le +profondità dell'inferno e sei pronto +per una pausa. Dici a te stesso che +forse qualcun altro può rompere la testa +ai demoni la prossima volta. Laggiù c'è +una cittadina tranquilla, con dell'acqua +che scorre pacifica, edifici pittoreschi +e probabilmente nessun demone. + +Mentre scendi dal trasporto senti il +tonfo del piede ferrato di un Cyberdemonio.","Time for a vacation. You've burst the +bowels of hell and by golly you're ready +for a break. You mutter to yourself, +Maybe someone else can kick Hell's ass +next time around. Ahead lies a quiet town, +with peaceful flowing water, quaint +buildings, and presumably no Hellspawn. + +As you step off the transport, you hear +the stomp of a cyberdemon's iron shoe.","Пришло Ð²Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¿ÑƒÑка. Ей-богу, +вороша недра Ðда, Ð’Ñ‹ только о нём +и мечтали! ПуÑÑ‚ÑŒ кто-нибудь другой +теперь боретÑÑ Ñ Ð¿Ð¾Ð»Ñ‡Ð¸Ñ‰Ð°Ð¼Ð¸ демонов. + +Впереди раÑполагаетÑÑ Ñ‚Ð¸Ñ…Ð¸Ð¹ городок Ñ +неÑпешно текущей водой, причудливыми +домиками, и, вероÑтно, не наÑелённый +адÑким отродьем. + +Покинув транÑпортное ÑредÑтво, +Ð’Ñ‹ Ñлышите топот железного копыта +кибердемона.", +"Trouble was brewing again in your favorite +vacation spot... Hell. Some Cyberdemon +punk thought he could turn Hell into a +personal amusement park, and make Earth +the ticket booth. + +Well, that half-robot freak show didn't +know who was coming to the fair. There's +nothing like a shooting gallery full of +hellspawn to get the blood pumping... + +Now the walls of the demon's labyrinth +echo with the sound of his metallic limbs +hitting the floor. His death moan gurgles +out through the mess you left of his face. + +This ride is closed. + +",NERVETEXT,,NRFTL victory,"Trouble was brewing again in your favourite +vacation spot... Hell. Some Cyberdemon +punk thought he could turn Hell into a +personal amusement park, and make Earth +the ticket booth. + +Well, that half-robot freak show didn't +know who was coming to the fair. There's +nothing like a shooting gallery full of +hellspawn to get the blood pumping... + +Now the walls of the demon's labyrinth +echo with the sound of his metallic limbs +hitting the floor. His death moan gurgles +out through the mess you left of his face. + +This ride is closed. + +","Und wieder mal gab es Ärger an deinem +liebsten Urlaubsort... der Hölle. Irgend so +ein Cyberdämonen-Punk glaubte doch tat- +sächlich, er könnte die Hölle in seinen +persönlichen Vergnügungspark +verwandeln, und die Erde in die Kasse. + +Nun, dieser halb-Roboter-Freak konnte +nicht ahnen, wer zur Kirmes kam. +Es gibt nichts besseres als einen +Schießstand voller Dämonen, um das Blut in +Wallung zu bringen... + +Nun hallen die Wände des Dämonenlabyrinths +mit dem Klang, wie seine metallischen +Gliedmaßen auf den Boden schlagen. +Sein Stöhnen tönt durch das Chaos, das +du hier hinterlassen hast. + +Der Jahrmarkt ist geschlossen. +","Otra vez se avecinan problemas en +tu lugar de vacaciones favorito... +El infierno. A un bruto ciberdemonio +se le ocurrió convertir el infierno +en su parque de diversiones +personal, y hacer a la Tierra la +taquilla de entradas. + +Bien, ese fenómeno de circo +mitad-robot no sabía quien vendría a +la feria. No hay nada como una +galería de tiro repleta de engendros +provenientes del infierno para ver +correr sangre a borbotones... + +Ahora las paredes del laberinto +demoníaco resuenan con el eco de +sus miembros metálicos golpeando +el suelo. Sus gemidos de muerte +salen a duras penas por la mezcla +de cables y carne que solía ser su +rostro. + +Esta atracción se ha cerrado. +","Otra vez se avecinan problemas en +tu lugar de vacaciones favorito... +Demonios. A un ciberdemonio +bruto se le ocurrió convertir el +infierno en su parque de diversiones +personal, y hacer a la tierra la +taquilla de entradas. + +Bien, ese fenómeno de circo +mitad-robot no sabía quien vendría a +la feria. No hay nada como una +galería de tiro repleta de engendros +provenientes del infierno para ver +correr sangre a borbotones... + +Ahora las paredes del laberinto +demoníaco resuenan con el eco de +sus miembros metálicos golpeando +el suelo. Sus gemidos de muerte +salen a duras penas por la mezcla +de cables y carne que solía ser su +rostro. + +Este paseo se ha cerrado. +","Quelqu'un avait décidé de foutre le bordel +sur votre lieu de vacances préféré: L'Enfer. +Un cyberdémon à la noix avait décidé d'en +faire son parc d'attractions, et la terre +son petit guichet. + +Cet abruti méchanique ne s'attendait pas +à ce que vous visitiez son chantier, +rien de mieux qu'un stand de tir plein de +démons pour faire chauffer l'ambiance.. + +Maintenant que le cadavre croulant du +démon résonne en s'écrasant au sol, ses +gémissements d'agonie se déversent de +son visage que vous avez laissé en charpie. + +Le manège est fermé! +","Megint csak a baj történik a kedvenc vakáció +helyeden... Pokol. Néhány Kiborgdémon +fajankó jónak hitte hogy áttudják változtatni a +Pokolt személyes vidámparkká, és a Föld lesz a +jegyfülke. + +Hát, ez a félig-robot szörnyszülött nem tudta +hogy kijön ide. Nincs annál jobb mint amikor +szétlÅ‘sz néhány szörnyet csak hogy felmenjen +a vérben a pumpa... + +Most a démon labirintus falai visszhangoznak +az acél végtagjai miatt ahogy leér a földre. +A halál nyögése kicsörgedezik azon a +rendetlenségen amit hagytál az arcán. + +Ez a menet zárva van.","C'era di nuovo odore di guai nella tua meta di vacanze preferita... L'inferno. Questo teppista di un cyberdemonio pensava di poter fare dell'inferno il proprio parco giochi personale. E rendere la terra la bancarella dei biglietti di ingresso. + +Beh, quel fenomeno mezzo-robot non sapeva chi sarebbe venuto alla festa. Non c'è niente di meglio di un po' di tiro a segno con dellla prole Infernale per sentire il sangue pompare nelle vene... + +Adesso le mura del labirinto del demone riecheggiano col suono dei suoi arti mozzati che cadono al suolo. I suoi gemiti di morte gorgogliano fuori dallo schifo che hai lasciato della sua faccia. + +Questo giro di giostra è finito. ",,"ÐеприÑтноÑти, казалоÑÑŒ, наÑтигли в Ñамый +неподходÑщий момент... ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° +разгромное поражение Ñил Ðда, +обезумевший кибердемон решил, +что Ñможет изменить ход Ñобытий и +вновь повергнуть землю в демоничеÑкий +хаоÑ. + +И Ð¼ÑƒÑ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñмерть Ñтала платой за Ñту +роковую ошибку. Стены его обители ещё +долго будут помнить предÑмертную агонию +Ñтого Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚ÑƒÑторонних Ñил. +и пуÑÑ‚ÑŒ его гниющие оÑтанки Ñтанут +вечным напоминанием Ð´Ð»Ñ Ñ‚ÐµÑ…, кто вновь +оÑмелитÑÑ Ð½Ð°Ñ€ÑƒÑˆÐ¸Ñ‚ÑŒ покой нашего мира. + +Эта миÑÑÐ¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°.", +"With the destruction of the Iron +Liches and their minions, the last +of the undead are cleared from this +plane of existence. + +Those creatures had to come from +somewhere, though, and you have the +sneaky suspicion that the fiery +portal of hell's maw opens onto +their home dimension. + +To make sure that more undead +(or even worse things) don't come +through, you'll have to seal Hell's +maw from the other side. Of course +this means you may get stuck in a +very unfriendly world, but no one +ever said being a heretic was easy!",HE1TEXT,,Heretic Ep.1,,"Mit der Vernichtung der Eisernen Leichen +und ihrer Untergebenen hat der letzte +Untote diese Existenzebene verlassen. + +Diese Kreaturen müssen von irgendwoher +gekommen sein und du hast den +unangenehmen Verdacht, dass +das feurige Portal des +Höllenschlunds in ihre Dimension führt. + +Um sicherzugehen, dass nicht mehr +Untote (oder Schlimmeres) das Tor +passieren kann, musst du es von der +anderen Seite versiegeln. Das bedeutet, +dass in einer sehr unfreundlichen Welt +festsitzen wirst, aber hat jemals jemand +behauptet, dass das Leben eines Ketzers +einfach ist?","Con la destrucción de los Liches de +Hierro y sus lacayos, los últimos +no-muertos son limpiados de este plano +de existencia. + +Sin embargo, esas criaturas debieron +venir de alguna parte, y tienes la +ligera sospecha de que el fiero portal +de las fauces del infierno se abre en +su propia dimensión. + +Para asegurarte de que más no-muertos +(o cosas aún peores) no lleguen a través +de él, tendrás que sellar las fauces del +infierno desde el otro lado. Esto +significa por supuesto que podrías +quedarte atrapad@[ao_esp] en un mundo +muy desagradable, ¡pero nadie ha dicho +que ser un Hereje sería fácil!",,"Avec la destruction des liches +de fer et leur serviteurs, les derniers +mort-vivants furent éliminés de +cette plaine de l'existence. + +Ces créatures doivent venir de +quelque part, bien que vous ayez +un soupçon que ce portail +ardent de l'enfer puisse conduire +dans leur dimension. + +Pour etre sûr qu'aucun des +mort-vivants ou pire ne suivent +ce chemin, vous scellez dûment le +portail de l'autre côté. +Bien sûr cela veut dire que vous +auriez pû rester coincé dans un monde +très hostile, mais personne n'a +jamais dit qu'être un hérétique +soit facile!",,"con la distruzione degli iron lich +e dei loro servi, gli ultimi non- +morti vengono rimossi da questo +piano dell'esistenza. + +quelle creature dovevano venire da +qualche parte, pensi, e hai il +sospetto che l'ardente portale +delle fauci dell'inferno si apra +sul loro posto di provenienza. + +per assicurarti che altri non-morti +(o altro di peggio) non vi passino +attraverso, devi sigillare la porta +dell'inferno dall'altro lato. +certo, questo significa che rischi +rimanere bloccato in un posto poco +amichevole, ma chi ha detto che +essere un eretico fosse facile!",,"С уничтожением Железных Личей +и их приÑпешников, окреÑтные земли +очиÑтилиÑÑŒ от омерзительной нежити. + +Эта нежить, Ð¿Ñ€Ð¾Ð½Ð¸ÐºÑˆÐ°Ñ Ð² наш мир из +тёмного измерениÑ, открыла Огненный +Портал. Он как Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¿Ñ‹Ð»Ð°ÑŽÑ‰Ð°Ñ +паÑÑ‚ÑŒ Ðда ведёт в Ñвою жуткую утробу. + +Угроза иÑходит из Огненного Портала — +Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ðда и чёрной магии могут +изринутьÑÑ Ð¸Ð· него. Ваша цель — +Ñойти в Ðд и запечатать проклÑтый +портал. + +Это Ñмертельно опаÑное деÑние, и Ð’Ñ‹ +риÑкуете навÑегда увÑзнуть во Тьме. +Ðо кто говорил, что путь иÑтинного +Еретика лёгок и проÑÑ‚?", +"The mighty maulotaurs have proved +to be no match for you, and as +their steaming corpses slide to the +ground you feel a sense of grim +satisfaction that they have been +destroyed. + +The gateways which they guarded +have opened, revealing what you +hope is the way home. But as you +step through, mocking laughter +rings in your ears. + +Was some other force controlling +the maulotaurs? Could there be even +more horrific beings through this +gate? The sweep of a crystal dome +overhead where the sky should be is +certainly not a good sign....",HE2TEXT,,Heretic Ep.2,,"Die mächtigen Minotauren waren keine +Herausforderung für dich, und als ihre +dampfenden Kadaver zusammenbrechen, +fühlst du eine grimmige Genugtuung +darüber. + +Die Tore, die sie bewacht haben, sind +nun offen, und du hoffst, dass sie +einen Weg nach Hause ermöglichen. +Aber als du hindurchschreitest, hörst +du ein spöttisches Lachen, das dir in den +Ohren klingelt. + +Hat irgend eine andere Macht diese +Monstren kontrolliert. Ist da wirklich +etwas noch Schlimmeres auf der anderen +Seite dieser Tore? + +Die Krümmung einer riesigen Kuppel, +dort wo der Himmel sein sollte, ist +jedenfalls kein gutes Zeichen.","Los poderosos maulotauros han probado +no ser un encuentro difícil para ti, y mientras +que sus cadáveres humeantes +se deslizan al suelo sientes una +siniestra satisfacción de que han sido +destruidos. + +Las puertas de acceso que custodiaban +se han abierto, revelando lo que +tú esperas sea el camino a casa. Pero +mientras avanzas, paso a paso, risas +burlescas resuenan en tus oídos. + +¿Controlaba otra fuerza a los +maulotauros? ¿Podría haber seres más +horribles al otro lado de esta puerta? +La visión de una cúpula de cristal sobre ti +donde debería estar el cielo no es +ciertamente una buena señal...","Los poderosos maulotauros han probado +no ser un encuentro difícil para ti, y a +medida que sus cadáveres humeantes +se deslizan al suelo sientes una +siniestra satisfacción de que han sido +destruidos. + +Las puertas de acceso que custodiaban +se han abierto, revelando lo que +tú esperas sea el camino a casa. Pero +mientras avanzas, paso a paso, risas +burlescas resuenan en tus oídos. + +¿Habrá otra fuerza controlando los +maulotauros? ¿Podría haber seres más +horribles al otro lado de esta puerta? +La visión de un domo de cristal sobre ti +donde debería estar el cielo no es +ciertamente una buena señal...","Les puissants massetaures ont fini par +prouver qu'il n'étaient pas votre égal, +et leurs cadavres fumants étalés sur +le sol, vous sentez l'infernale +satisfaction de les avoir détruits. + +La passage qu'ils gardaient +s'ouvre, révélant ce que vous +espérez être le chemin du retour. +Mais au fur et a mesure que vous +avancez, un rire moqueur sonne +à vos oreilles. + +Etait-ce une autre force contrôlant +les massetaures? Ait elle pû être +plus atroce que les créatures de +ce portail? La forme d'un dôme +de cristal dépasse de l'horizon, +couvrant le ciel, ce n'est pas +de bon augure....",,"nemmeno i possenti maulotaur erano +alla tua altezza e mentre le loro +carcasse fumanti cadono al suolo +provi una feroce soddisfazione +nell'averli distrutti. + +i portali cui facevano la guardia +si sono aperti rivelando quella che +speri sia la via di casa. ma mentre +la attraversi, odi risa di scherno +echeggiare nelle tue orecchie. + +una qualche altra forza controllava +i maulotaur? che possano esserci +altri più spaventosi esseri oltre +questo portale? il baluginio di una +volta cristallina là dove dovrebbe +esserci il cielo non è certo un +buon segno...",,"Могучие Молотавры повержены. +Их дымÑщиеÑÑ Ñ‚Ñ€ÑƒÐ¿Ñ‹ падают, +разваливаÑÑÑŒ на куÑки, к Вашим +ногам, и мрачное удовлетворение +наполнÑет ВаÑ. + +Врата, которые они охранÑли, открылиÑÑŒ. +Ð’Ñ‹ шагнули в них, думаÑ, что +вернётеÑÑŒ в родной мир, но лишь +громкий, наÑмешливый хохот был +ответом на Вашу надежду. + +Чей Ñто злобный хохот? Быть может +Ñто Ð³Ð¾Ð»Ð¾Ñ Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‡ÐµÑких Ñил, +управлÑющих Молотаврами? Какие +чудовищные ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑŽÑ‚ Ð’Ð°Ñ +за Ñтими вратами? Ðе голубое небо +родного мира над головой, а +криÑтальный купол, — Ñто плохой знак...", +"The death of D'Sparil has loosed +the magical bonds holding his +creatures on this plane, their +dying screams overwhelming his own +cries of agony. + +Your oath of vengeance fulfilled, +you enter the portal to your own +world, mere moments before the dome +shatters into a million pieces. + +But if D'Sparil's power is broken +forever, why don't you feel safe? +Was it that last shout just before +his death, the one that sounded +like a curse? Or a summoning? You +can't really be sure, but it might +just have been a scream. + +Then again, what about the other +Serpent Riders?",HE3TEXT,,Heretic Ep.3,,"D'Sparils Tod hat die magischen Fesseln, +die diese Kreaturen banden, gelöst, und +ihre Todesschreie übertönen sogar +seine eigenen Schmerzenslaute. + +Dein Racheschwur ist erfüllt, du +schreitest durch das Portal zu deiner +eigenen Welt, Momente bevor der +gesamte Dom kollabiert und +in Millionen Teile zerbricht. + +Aber warum fühlst du dich nicht sicher, +obwohl D'Sparils Bann gebrochen ist? +War es nur sein letzter Todesschrei, der +wie ein Fluch klang? Oder eine +Beschwörung? Du kannst nicht +sicher sein, aber vielleicht +war es doch nur ein Schrei. + +Und dennoch: Was ist mit den anderen +Schlangenreitern? +","La muerte de D'Sparil ha soltado +los vínculos mágicos que mantenían +a sus criaturas en este plano, sus +gritos moribundos abrumando sus +propios llantos de agonía. + +Con tu juramento de venganza +cumplido, entras al portal hacia tú +mundo, momentos antes que la +cúpula se desintegre en mil pedazos. + +Pero si el poder de D'Sparil se ha +roto para siempre ¿Por qué no te +sientes segur@[ao_esp]? ¿Sería +ese grito justo antes de su muerte, +que sonó como una maldición? +¿O una invocación? No puedes estar +del todo segur@[ao_esp], pero +podría haber sido solo un grito. + +De todos modos, ¿Qué hay de los otros +Jinetes de Serpientes?","La muerte de D'Sparil ha soltado +los vínculos mágicos que mantenían +a sus criaturas en este plano, sus +gritos moribundos abrumando sus +propios llantos de agonía. + +Con tu juramento de venganza +cumplido, entras al portal hacia tú +mundo, momentos antes que el +domo se desintegre en mil pedazos. + +Pero si el poder de D'Sparil se ha +roto para siempre ¿Por qué no te +sientes segur@[ao_esp]? ¿Será que +ese grito justo antes de su muerte, +sonó como una maldición? ¿O +una invocación? No lo sabes, +podría haber sido solo un grito. + +De todos modos, ¿Qué hay de los otros +Jinetes de Serpientes?","La mort de D'Sparil a libéré les +liens magiques liant les créatures +de ce monde, leurs cris d'agonie +surpassant ses propres hurlements. + +Votre serment de vengeance rempli, +vous pénétrez dans le portail vers +votre monde, un court moment +avant que la coupole vole en éclats. +Mais avec le pouvoir de d'sparil +rompu a jamais, pourquoi vous ne +pouvez pas vous sentir en sécurité? +Serai-çe à cause de son dernier cri, +celui qui résonna comme une +malédiction? Une invocation? vous +ne pouvez pas en être sûr, mais +ce n'est peut être qu un cri. + +De plus, qu'adviendra-il +des autres chevaucheurs de serpent?",,"la morte di d'sparil ha spezzato i +magici legami che tenevano le sue +creature in questa dimensione, e i +loro lamenti di morte coprono le +sue urla di agonia. + +il tuo voto di vendetta è sciolto, +ed entri nel portale che conduce al +tuo mondo pochi secondi prima che +la cupola vada in mille pezzi. + +ma se il potere di d'sparil è +infranto per sempre, perchè non ti +senti al sicuro? è a causa del suo +ultimo urlo prima di morire, quello +che suonava come una maledizione? o +un'invocazione? non puoi esserne +certo, poteva essere solo un urlo. + +ma allora, cosa ne è degli altri +serpent rider?",,"С гибелью Д'Спарила иÑчезла магиÑ, +ÑохранÑÐ²ÑˆÐ°Ñ Ð¶Ð¸Ð·Ð½ÑŒ порождениÑм Тьмы. +Стоны умирающих демонов заглушили +вопль агонии Ñамого Д'Спарила. + +Ð’Ñ‹ иÑполнили Ñвою клÑтву. МеÑÑ‚ÑŒ +ÑвершилаÑÑŒ. И за Ñекунду до +Ñ€Ð°Ð·Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ñ…Ñ€ÑƒÑтального купола, +Ð’Ñ‹ наконец-то, входите во врата, +ведущие в родной мир. + +Ðо и теперь, поÑле гибели Д'Спарила, +душа Ваша не Ñпокойна, и её +одолевают плохие предчувÑтвиÑ. Ðе был +ли проклÑтием его предÑмертный +крик? Или призывом тёмных Ñил? + +И где таÑÑ‚ÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ðµ Змеиные +Ð’Ñадники?", +"You thought you would return to your +own world after D'Sparil died, but +his final act banished you to his +own plane. Here you entered the +shattered remnants of lands +conquered by D'Sparil. You defeated +the last guardians of these lands, +but now you stand before the gates +to d'Sparil's stronghold. Until this +moment you had no doubts about your +ability to face anything you might +encounter, but beyond this portal +lies the very heart of the evil +which invaded your world. D'Sparil +might be dead, but the pit where he +was spawned remains. Now you must +enter that pit in the hopes of +finding a way out. And somewhere, +in the darkest corner of d'Sparil's +demesne, his personal bodyguards +await your arrival ...",HE4TEXT,,Heretic Ep.4,,"Du dachtest, du würdest in deine eigene +Welt zurückkehren nach D'Sparils Tod, +aber seine letzte Tat hat dich in diese +Existenzebene verbannt. Hier hast du +die zerfallenen Reste von D'Sparils +Reich gesehen, aber jetzt stehst du +vor den Toren von D'Sparils Festung. + +Bis zu diesem Moment hattest du keine +Zweifel über deine Fähigkeiten aber +jenseits dieses Portals befindet sich +das Herz des Bösen, welches deine Welt +heimgesucht hat. D'Sparil mag tot sein, +aber der Abgrund, dem er entsprang, +existiert noch. Jetzt musst du in diesen +Abgrund herabsteigen, in der Hoffnung, +einen Weg dort heraus zu finden. Und +irgendwo dort, in den dunkelsten Ecken +von D'Sparils Reich, warten seine +Leibwächter auf dich... +","Creíste que volverías a tu propio +mundo después de que D'Sparil +hubiera muerto, pero su acto final +te ha desterrado hacia su propio +plano. Aquí entraste a los vestigios +rotos de las tierras conquistadas por +D'Sparil. Venciste a los últimos +guardianes de estas tierras, +pero ahora estás parado delante de +las puertas a la fortaleza de D'Sparil. +Hasta este momento no tuviste +dudas sobre tu habilidad de +enfrentarte a lo que pudieras +encontrar, pero más allá de este +portal yace el corazón del mal que +invadió tu mundo. D'Sparil podrá estar +muerto, pero la fosa de la que salió aún +perdura. Ahora debes entrar a esa fosa +con la esperanza de encontrar una salida. +Y en alguna parte, en la esquina más oscura +de la heredad de D'Sparil, sus guardaespaldas +personales aguardan tú llegada...","Creíste que volverías a tu propio +mundo después de que D'Sparil +hubiera muerto, pero su acto final +te ha desterrado hacia su propio +plano. Aquí entraste a los vestigios +rotos de las tierras conquistadas por +D'Sparil. Venciste a los últimos +guardianes de estas tierras, +pero ahora estás parado delante de +las puertas a la fortaleza de D'Sparil. +Hasta este momento no tuviste +dudas sobre tu habilidad de +enfrentarte a lo que pudieras +encontrar, pero más allá de este +portal yace el corazón del mal que +invadió tu mundo. D'Sparil podrá estar +muerto, pero la fosa donde él fue +invocado aún perdura. Ahora debes +entrar a esa fosa con la esperanza de +encontrar una salida. Y en alguna parte, +en la esquina más oscura de la heredad +de D'Sparil, sus guardaespaldas +personales aguardan tú llegada...","Vous aviez cru pouvoir retourner dans +votre monde après que D'Sparil ne +trépasse, mais son acte final +fut de vous bannir dans sa +propre dimension. Ici vous errez +dans les territoires ruinés des +conquêtes de D'Sparil. Vous avez +vaincu les dernier gardien de +ces terres, mais a ce moment +vous vous tenez devant le bastion +de d'sparil. Jusqu'à ce moment vous +n'aviez aucun doute sur votre capacité +à affronter tout ce que vous pouviez +rencontrer, mais derrière ce portail +gît le cÅ“ur du mal profond +qui envahit votre monde. D'Sparil +peut être mort, mais le puits d'où +il est sorti ne l'est pas. Maintenant +vous devez y entrer dans l'espoir +de trouver une sortie, quelque part, +dans la plus sombre partie du +royaume de D'Sparil. +Sa garde personnelle attend votre +arrivée ...",,"pensavi di tornare nel tuo mondo +dopo la morte di d'sparil, ma il +il suo ultimo atto ti ha esiliato +in questo posto. sei quindi entrato +nei resti infranti delle terre +conquistate da d'sparil. Ne hai poi +abbattuto gli ultimi guardiani, +ma ora ti trovi davanti ai cancelli +della fortezza di d'sparil. finora +non avevi avuto dubbi sulla tua +abilità nel fronteggiare di tutto, +ma oltre questo portale si trova +il cuore del male che ha invaso +il tuo mondo. d'sparil sarà anche +morto, ma il pozzo dove è apparso +esiste ancora. devi entrare in quel +pozzo nella speranza di trovare +un'uscita. e da qualche parte, +negli oscuri angoli del dominio +di d'sparil le sue guardie del +corpo aspettano il tuo arrivo...",,"С гибелью Д'Спарила умерла и Ваша +надежда вернутьÑÑ Ð² родной мир. +Своим предÑмертным проклÑтьем +он отправил Ð’Ð°Ñ Ð² те немногие, +ещё оÑтавшиеÑÑ Ð¿Ð¾Ð´Ð²Ð»Ð°Ñтными +ему земли. Ð’Ñ‹ разбили поÑледних +хранителей Ñтих земель и Ñтоите +перед опуÑтевшим замком Д'Спарила, +оплотом его тёмных Ñил. + +Само Сердце Зла раÑтворило перед +Вами врата. И Ñ…Ð¾Ñ‚Ñ Ð”'Спарил +повержен, глубины, породившие его, +ÑтоÑÑ‚ нерушимы. + +Ð’Ñ‹ Ñойдёте в Ñту преиÑподнюю, ибо +единÑтвенный ÑпоÑоб вернутьÑÑ Ð² +родной мир — отыÑкать вход в него +в тёмных глубинах опуÑтевшей вотчины +Д'Спарила. Личные Ñтражи мёртвого +гоÑподина уже дожидаютÑÑ Ð’Ð°Ñ...", +"As the final maulotaur bellows his +death-agony, you realize that you +have never come so close to your own +destruction. Not even the fight with +D'Sparil and his disciples had been +this desperate. Grimly you stare at +the gates which open before you, +wondering if they lead home, or if +they open onto some undreamed-of +horror. You find yourself wondering +if you have the strength to go on, +if nothing but death and pain await +you. But what else can you do, if +the will to fight is gone? Can you +force yourself to continue in the +face of such despair? Do you have +the courage? You find, in the end, +that it is not within you to +surrender without a fight. Eyes +wide, you go to meet your fate.",HE5TEXT,,Heretic Ep.5,,"Als der letzter Minotaurus seinen +Todesschrei herausbellt, wird dir +bewusst, dass du niemals zuvor deinem +Ende so nahe warst. Nicht mal der Kampf +mit D'Sparil und seinen Jüngern war +so verzweifelt. Grimmig starrst du die +Tore an, die sich vor dir geöffnet haben, +und fragst dich, ob sie einen Weg nach +Hause bieten, oder ob sie zu etwas noch +Schlimmerem führen. Du fragst dich, ob +du die Kraft hast, weiterzukämpfen, +wenn alles was auf dich wartet, Tod +und Verderben ist. Aber was kannst du +machen, wenn der Kampfeswille nicht +mehr vorhanden ist? Kannst du dich +dazu zwingen im Angesicht solcher +Hoffnungslosigkeit weiterzumachen? +Hast du den Mut dazu? Aber es ist +nicht dein Ding, ohne Kampf +einfach aufzugeben, also wirst du +dich mit offenen Augen deinem +Schicksal stellen.","Mientras el último maulotauro brama +su muerte agonizante, te das cuenta +que nunca has estado tan cerca de tu +propia destrucción. Ni la pelea con +D'Sparil y sus discípulos había sido tan +desesperada. Sombríamente te quedas +mirando a las puertas que se abren +ante ti, preguntándote si te llevarán +a casa, o si se abren hacia alguna clase +de horror inimaginable. Te preguntas a +ti mism@[ao_esp] si tienes la fuerza +para avanzar, si nada excepto la +muerte y el dolor te aguardan. ¿Pero +qué más puedes hacer, si la voluntad +de pelear se ha ido? ¿Puedes forzarte +a continuar en el enfrentamiento de +tal desesperación? ¿Tienes el valor? +Encuentras que al final, no está en +ti rendirte sin pelear. Con ojos abiertos, +vas a encontrarte con tu destino. ",,"Dès que le dernier massetaure eût mugi +son râle d'agonie, Vous réalisez que +vous n'avez jamais été aussi proche de +votre propre mort. Même le +combat contre D'Sparil et ses +disciples n'eût été a ce point +éreintant. Epuisé, vous regardez +fixement le portail s'ouvrir devant +vous, vous demandant s'il mêne +chez vous, où si il ouvre sur une +horreur inimaginable. Vous n'êtes +pas sûr d'avoir la force d'y aller, +si rien d'autre que souffrance et +mort ne vous y attendent. mais que +faire d'autre, si la volonté de vous +battre disparaît? +Comment voulez-vous vous forcer à +continuer face a un tel désespoir? +En avez vous le courage? Vous pensez +a la fin que ce n'est pas dans votre +nature de vous rendre sans +combattre. Les yeux larges, vous +partez rencontrer votre destinée.",,"mentre l'ultimo maulotaur muggisce +agonizzante, comprendi che non eri +mai stato così vicino alla tua +distruzione. nemmeno la lotta con +d'sparil e i suoi discepoli fu +così disperata. triste, guardi i +cancelli che ti si aprono innanzi, +chiedendoti se portino a casa o se +conducano a un altro inimmaginabile +orrore. ti chiedi se avrai la forza +di andare avanti, se niente tranne +dolore e morte ti attendano, ma che +altro puoi fare se la forza di +combattere se ne va? puoi sforzarti +di continuare, nonostante la +disperazione? +ne hai il coraggio? decidi infine +che non è da te arrendersi senza +combattere. ad occhi aperti +vai incontro al tuo destino.",,"ÐÐ°Ð±Ð»ÑŽÐ´Ð°Ñ Ñ Ð¼Ñ€Ð°Ñ‡Ð½Ñ‹Ð¼ отвращением +предÑмертную агонию поÑледнего +Ñражённого Молотавра, Ð’Ñ‹ только +теперь понимаете, что Ñмерть ещё +никогда не была так близка. Даже +во Ð²Ñ€ÐµÐ¼Ñ ÑроÑтной битвы Ñ Ñамим +Д'Спарилом и его тёмными Ñлугами. + +С угрюмым отчаÑнием приближаетеÑÑŒ +Ð’Ñ‹ к открытым порталам. Ð¡Ð»Ð°Ð±Ð°Ñ +надежда теплитÑÑ Ð² Вашей душе, — +быть может за ними Ñкрыта дорога +домой, а не бездны чужих миров? + +ОтчаÑние наделÑет Ð’Ð°Ñ Ð¼Ñ€Ð°Ñ‡Ð½Ð¾Ð¹ +решимоÑтью. Ðичто не ÑпоÑобно +оÑтановить ВаÑ, одна только — Ñмерть. +Ðе ÑдавайтеÑÑŒ без боÑ, взглÑните в +глаза Ñвоей Ñудьбе. Знайте, еÑли Ð’Ñ‹ +упали на Ñамое дно, еÑÑ‚ÑŒ лишь один +путь — наверх.", +"having passed the seven portals +which sealed this realm, a vast +domain of harsh wilderness stretches +before you. fire, ice and steel have +tested you, but greater challenges +remain ahead. the dense tangle of +forest surely hides hostile eyes, +but what lies beyond will be worse. + +barren desert, dank swamps and +musty caverns bar your way, but you +cannot let anything keep you from +your fate, even if you might come +to wish that it would. + +and beyond, flickering in the +distance, the ever-shifting walls +of the hypostyle seem to mock +your every effort.",TXT_HEXEN_CLUS1MSG,,,,"Nachdem du die Sieben Portale passiert +hast, die dieses Reich versiegelten, +erstreckt sich vor dir das weite Land +einer rauen Wildnis. Feuer, Eis und +Stahl hast du getrotzt, aber +größere Herausforderungen stehen +noch bevor. Das dichte Gewirr des +Waldes versteckt gewiss bedrohliche +Augen, aber was dahinter liegt wird +schlimmer sein. + +Karge Wüsten, feuchte Sümpfe und +modrige Höhlen versperren den Weg, +aber du lässt dich durch nichts von +deinem Schicksal abhalten, selbst wenn +du es dir wünschen könntest. + +Und dahinter, flackernd in der Ferne, +scheinen die sich ständig verändernen +Wände der Säulenhalle all +deinen Fortschritt zu verspotten.","Habiendo pasado los siete portales que +sellaban este reino, un vasto dominio +de tierra salvaje se extiende ante ti. +Fuego, hielo y acero te han probado, +pero hay desafíos más grandes adelante. +La densa maraña de bosque seguramente +esconde ojos hostiles,pero lo que está +más allá será peor. + +Desierto árido, pantanos húmedos y +cavernas mohosas te cierran el paso, +pero no puedes dejar que nada te +desvíe de tu destino, aún si llegaras +a desear que así fuera. + +Y más allá, parpadeantes a la distancia, +las paredes siempre cambiantes de los +hipóstilos parecen burlarse de todos +tus esfuerzos.","Haz pasado los siete portales que +sellaban este reino, un vasto dominio +se extiende ante ti. Fuego, hielo y +acero te han probado, pero hay +desafíos más grandes adelante. La +densa maraña de bosque +seguramente esconde ojos hostiles, +pero lo que está más allá será peor. + +Desierto árido, pantanos húmedos y +cavernas mohosas te cierran el paso, +pero no puedes dejar que nada te +desvíe de tu destino, aún si llegaras +a desear que así fuera. + +Y más allá, parpadeantes a la distancia, +las paredes siempre cambiantes de los +hipóstilos parecen burlarse de todos +tus esfuerzos.","Après avoir passé les sept portails +et scellé ce domaine, un vaste domaine +de terres sauvages s'étend devant vous. +Feu, glace et acier vous ont testé mais +des défis plus sordides encore vous +attendent. La forêt impénétrable cache +sans doute des yeux hostiles, et +bien pire encore au delà. + +Déserts sans vie, marais putrides et +caves lugubres barrent le passage mais +rien ne peut arrêter votre destinée, +même si vous souhaitez que ce soit le +cas. + +Plus loin, brillant à l'horizon, les murs +toujours changeants de l'Hypostyle +semblent moquer vos efforts.",,,,"Ð’Ñ‹ прошли Семь порталов, что +влаÑтвовали над Ñтими землÑми, +и Ð·Ð»Ð¾Ð²ÐµÑ‰Ð°Ñ Ð±ÐµÑкрайнÑÑ Ð¼ÐµÑтноÑÑ‚ÑŒ +проÑтираетÑÑ Ñ‚ÐµÐ¿ÐµÑ€ÑŒ перед Вами. +Ð’Ð°Ñ Ð¸Ñпытывали огонь, лёд и Ñталь, +но впереди ожидают и более Ñ‚Ñжкие +иÑпытаниÑ. Ðеведомые и коварные +угрозы таÑÑ‚ÑÑ Ð² леÑу теней, и Ñтрах +неизвеÑтноÑти не Ñамое ужаÑное из +того, что может ÑлучитьÑÑ. + +БеÑплодные пуÑтоши, гнилые болота +и затхлые Ð¿Ð¾Ð´Ð·ÐµÐ¼ÐµÐ»ÑŒÑ Ð¿Ñ€ÐµÐ³Ñ€Ð°Ð¶Ð´Ð°ÑŽÑ‚ +Ваш путь, но ничто не Ñможет +изменить предначертанную Ñудьбу, +хотите Ð’Ñ‹ того или нет. + +И где-то далеко, в глубинах +беÑконечных гипоÑтильных залов +Ñами Ñтены ожили, чтобы отÑготить +каждый Ваш шаг.","Ðакон што Ñте прошли Ñедам +портала који Ñу запечатили овај +Ñвет, проÑтрани домен грубе +дивљине протеже Ñе пред вама. +ватра, лед и челик Ñу Ð²Ð°Ñ Ð¸Ñпитали, +али већи изазови оÑтају пред вама. +гуÑти завој шуме Ñигурно Ñакрива +непријатељÑке очи, али оно што +лежи напред ће бити још горе. + +Празна пуÑтиња, мрачне мочваре +и уÑтајале пећине Ñпречавају пут, +али не можете дозволити да Ð²Ð°Ñ +ишта задржава од Ñвоје Ñудбине, +чак и ако би вам дошло да то пожелите. + +И даље, жмиркајући у даљини, +изгледа да Ñтално померајући +зидови хипоÑтила иÑмејавају +Ñве ваше напоре." +"your mind still reeling from your +encounters within the hypostyle, you +stagger toward what you hope is +a way out. things seem to move faster +and faster, your vision blurs and +begins to fade... +as the world collapses around you, +the brightness of a teleportal +engulfs you. a flash of light, and then +you climb wearily to your feet. + +you stand atop a high tower, and +from below come the screams of the +damned. you step forward, and +instantly the sound of demonic +chanting chills your blood. +by all the gods of death! what place +have you come to? by all the gods of +pain, how will you ever find your +way out?",TXT_HEXEN_CLUS2MSG,,,,"Während deine Gedanken immer noch +um die Begegnungen in der Säulenhalle +kreisen, taumelst du auf etwas zu, von +dem du hoffst, dass es ein Ausweg ist. +Alles scheint sich schneller und schneller +zu bewegen, dein Blick trübt sich und +beginnt zu schwinden... +Als die Welt um dich herum zusammen- +bricht umgibt dich das Licht eines +Teleportals. Ein Lichtblitz, dann +richtest du dich erschöpft auf. + +Du stehst oben auf einem hohen Turm +und kannst von unten die Schreie der +Verdammten hören. Du trittst vor +und sofort lassen dir die Geräusche von +dämonischen Gesängen das Blut in +den Adern gefrieren. Bei all den +Göttern des Todes! An welchem Ort +bist du hier nur gelandet? Bei all +den Göttern des Schmerzes, wie wirst +du jemals hinaus finden können?","Con tú mente aún nublada por tus +batallas en el hipóstilo, te tambaleas +hacia lo que esperas que sea una +salida. Las cosas parecen moverse +más rápido cada vez, tú visión se +difumina y comienza a desvanecerse... +Mientras el mundo se derrumba a tu +alrededor, el brillo de un teleportal +te envuelve, luego un destello de luz +y con esfuerzo te pones en pie. + +Te encuentras sobre una torre alta, y +desde abajo se oyen los gritos de los +condenados. Das un paso adelante, y +de inmediato el sonido de cánticos +demoniacos enfría tu sangre. +¡Por todos los Dioses de la muerte! +¿A qué lugar has llegado? ¡Por todos +los Dioses del dolor! ¿Cómo vas a +encontrar la salida? +",,"Votre esprit souffre encore de vos +combats dans l'Hypostyle. Vous vous +traînez néanmoins dans l'espoir qu'il y +ait une sortie. Tout semble bouger de +plus en plus vite, votre vision devient +floue et s'assombrit.. +Tandis que le monde s'écroule autour +de vous, la lumière d'un téléportail +vous envelope. Un éclair, et vous vous +relevez difficilement. + +Vous êtes au sommet d'une haute +tour, et d'en dessous émanent +les cris des damnés. Vous vous +avancez et les chants démoniaques +vous glacent le sang. +Par les dieux de la douleur, où +êtes vous arrivé? Comment sortir d'ici?",,,,"Едва Ð¿ÐµÑ€ÐµÐ²ÐµÐ´Ñ Ð´ÑƒÑ… поÑле +изнурительного ÑражениÑ, вы идёте +вперёд, пытаÑÑÑŒ выбратьÑÑ Ð¸Ð· Ñтих +проклÑÑ‚Ñ‹Ñ… земель. Внезапно +проÑтранÑтво вокруг начинает +Ñтремительно изменÑÑ‚ÑŒÑÑ, Ñвет +меркнет и тьма окутывает ваÑ... +Ð’ÑÑ‘ рушитÑÑ. Ð¯Ñ€ÐºÐ°Ñ Ð²Ñпышка пронзает +тьму, — Ñто телепорт переноÑит Ð²Ð°Ñ Ð² +новую реальноÑÑ‚ÑŒ. Миг и вы вновь +твёрдо Ñтоите на ногах. + +Ð’Ñ‹ оказалиÑÑŒ на верхней площадке +гигантÑкой башни. От Ð¿Ð¾Ð´Ð½Ð¾Ð¶Ð¸Ñ +доноÑÑÑ‚ÑÑ ÐºÑ€Ð¸ÐºÐ¸ и проклÑÑ‚Ð¸Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-то +дьÑвольÑкого отродьÑ. Лишь шаг вперёд, +и демоничеÑкие заклÑÑ‚Ð¸Ñ ÐºÐ°ÑаютÑÑ +Вашего Ñлуха, наполнÑÑ ÐºÑ€Ð¾Ð²ÑŒ +леденÑщим ужаÑом. +О, боги Ñмерти, что Ñто за меÑто? +О, боги боли, как выбратьÑÑ Ð¸Ð· него?","Твојим умом још увек обмотаним око +твојих прошлих ÑуÑрета унутра хипоÑтила, +ти Ñе тетураш ка ономе чему Ñе надаш +да је излаз напоље. Предмети Ñе чине +да Ñе покрећу брже и брже, твој вид +Ñе мути и почиње неÑтајати... Док Ñвет +пропада око тебе, ÑветлоÑÑ‚ телепортала +те обухвата. БлеÑак ÑветлоÑти, и онда +Ñе уморно пењеш на Ñвоје ноге. + +Стојиш на врху виÑоке куле, и од доле +Ñтижу крици проклетих. Ти корачиш напред, +и моментално звуци демонÑког певања леде +твоју крв. Од Ñвих богова Ñмрти! Ðа какво +меÑто Ñи дошао? Од Ñвих богова бола, +како ћеш ти икада наћи Ñвој пут ка излазу?" +"the mightiest weapons and artifacts +of the ancients barely sufficed to +defeat the heresiarch and his +minions, but now their foul remains +lie strewn at your feet. gathering +the last of your strength, you +prepare to enter the portal which +leads from the heresiarch's inner +sanctum. + +above you, the ramparts of an +immense castle loom. silent towers +and bare walls surround a single +spire of black stone, which squats +in the center of the castle like a +brooding giant. fire and shadow +twist behind gaping windows, dozens +of baleful eyes glaring down upon +you. +somewhere within, your enemies are +waiting...",TXT_HEXEN_CLUS3MSG,,,,"Die mächtigsten Waffen und Artefakte +der Alten reichte kaum aus um den +Erzketzer und seine Schergen zu +besiegen. Aber jetzt liegen ihre +stinkenden Ãœberreste zu deinen Füßen. +Du sammelst alle Kräfte und +durchschreitest das Portal, das dich +aus dem Heiligtum des Erzketzers +herausführt. + +Hoch über dir drohen die Wälle einer +gewaltigen Burg mit stillen Türmen und +nackten Wänden, die einen Turm aus +schwarzem Stein umgeben, der in der +Mitte der Burg wie ein brütender Riese +zu thronen scheint. Feuer und Schatten +verzerren sich hinter klaffenden +Fenstern. Dutzende von bösen Augen +blicken auf dich herab. +Irgendwo da drin warten deine Feinde +auf dich...","Las armas y artefactos más poderosos +de los Antiguos apenas fueron +suficientes para derrotar al Heresiarca +y sus secuaces, pero ahora sus sucios +restos están esparcidos a tus pies. +Reuniendo lo último de tu fuerza te +preparas a entrar al portal que lleva al +santuario interior del Heresiarca. + +Por encima de ti se ciernen las murallas +de un inmenso castillo. Torres silenciosas +y paredes desnudas rodean una sola aguja +de piedra negra, asentada en el centro del +castillo como un gigante amenazante. Fuego +y sombra se retuercen detrás de ventanas +abiertas, docenas de ojos funestos descienden +su mirada ante ti. +En algún lugar adentro, tus enemigos +te esperan... +",,"Les plus puissantes armes et artéfacts +des anciens ont à peine suffit à +défaire l'Hérésiarche et ses sous-fifres. +Leur vils cadavres s'étendent à vos +pieds. Regagnant vos forces, vous +vous préparez à traverser le +portail qui mène dans le +sanctuaire de l'Hérésiarche. + +Au dessus de vous, les remparts d'un +immense château dominent le paysage. +Des tours silencieuses et des murs nus +entourent une pointe de pierre noire +qui se tient au centre du château +comme un géant esseulé. Feu et ombres +se tordent derrière des vastes vitraux, +des douzaines d'yeux sinistres vous +observant. +Quelque part ici, vos enemis vous +attendent... +",,,,"Сил могущеÑтвенного Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¸ чар +древних артефактов едва хватило, +чтобы Ñразить ЕреÑиарха и его +приÑпешников. Их раÑтерзанные +оÑтанки лежат у ваших ног. Ð’Ñ‹ +обеÑÑилены битвой, но Ñобрав +оÑтатки Ñвоей воли, входите в +портал внутренних покоев +обители ЕреÑиарха. + +Перед Вами величеÑтвенный замок. +мрачные Ñтены Ñ Ñ‚Ñ‘Ð¼Ð½Ñ‹Ð¼Ð¸ бойницами +окружают одинокую башню. Она выÑитÑÑ +за ними Ñловно зловещий, безмолвный +гигант. За Ñмотровыми щелÑми +дьÑвольÑкого замка извиваютÑÑ Ñзыки +адÑкого пламени, мелькают тени, +деÑÑтки злобных глаз ÑмотрÑÑ‚ на Ð’Ð°Ñ +неотрывно из темноты. + +ПритаившиеÑÑ Ð²Ñ€Ð°Ð³Ð¸ уже ждут внутри...","Ðајмоћније оружје и артифакти античких +народа једва да Ñу били довољни да +поразе јереÑијарха и његове Ñледбенике, +али Ñада њихова гадоÑÑ‚ оÑтаје на поду +крај ваших Ñтопала. Прикупљајући Ñвоју +поÑледњу Ñнагу, припремате Ñе за улазак +на портал који води од ЈереÑијарховог +унутрашњег храма. + +Бедеми огромног замка Ñе назиру +изнад ваÑ. Тихи торњеви и големи +зидови окружују јединÑтвену Ñпиралу +црног камена, који у центру дворца +Ñтоји као уÑнули гигант. Ватра и +Ñенка Ñе увијају иза прозрачних прозора, +а на деÑетине мрачних очију Ð²Ð°Ñ +продиру погледом. + +Ðегде унутра, ваши непријатељи чекају..." +"""... and he shall journey into the +realms of the dead, and contest with +the forces therein, unto the very +gates of despair. but whether he +shall return again to the world of +light, no man knows."" + + + + + +damn.",TXT_HEXEN_CLUS4MSG,,,,"„... und er soll reisen in das Reich der +Toten und die Mächte darin +bekämpfen, bis hin zu den wahrhaftigen +Toren der Verzweiflung. Aber ob er +zur Welt des Lichtes zurückkehren soll, +mag niemand vorraussagen.“ + + + + + +Verdammt.","""... y él viajará hasta el reino +de los muertos y competirá contra +las fuerzas que estén en él, hasta +las mismísimas puertas de la +desesperación. Pero si él podrá +regresar al mundo de la luz, +nadie lo puede saber."" + + + + +¡Demonios!",,"« ...et ainsi il voyagera à travers +le domaine des morts, et mettra au défi +les factions qu'il y trouvera, jusqu'au +portes du désespoir. Mais qu'il +revienne ou non au monde +de la lumière, personne ne le sait. » + + + +Merde!",,,,"«...И Ñойдёт он в царÑтво мёртвых, +и очиÑтит его от Ñил тьмы, и в +жеÑтокой борьбе дойдёт он до Ñамых +врат отчаÑниÑ. Суждено ли ему +вернутьÑÑ Ð½Ð°Ð·Ð°Ð´, в царÑтво Ñвета, +неведомо никому...» + + + + + +ПроклÑтье.","„...И он ће путовати у Ñветове +мртвих, и оÑпорити Ñе Ñа тим Ñилама, +Ñве док не дође до Ñаме капије очајања. +али да ли ће Ñе икада вратити у Ñвет +ÑветлоÑти, ниједан човек не зна.“ + + + + + +ПроклетÑтво." +"with a scream of agony you are +wrenched from this world into +another, every part of your body +wreathed in mystic fire. when your +vision clears, you find yourself +standing in a great hall, filled +with ghostly echoes and menacing +shadows. in the distance you can +see a raised dais, and upon it the +only source of light in this world.",TXT_HEXEN_WIN1MSG,,,,"Mit einem Schmerzensschrei wirst du +aus dieser Welt in eine andere gerissen, +jeder Teil deines Körpers in mystisches +Feuer gehüllt. Nachdem du wieder klar +sehen kannst, findest du dich in einem +großen Saal wieder, gefüllt mit +geisterhaften Echos und bedrohlichen +Schatten. In der Ferne siehst du ein +erhabenes Podium und darauf die +einzige Lichtquelle in dieser Welt.","Con un grito de agonía eres +arrancado de este mundo a otro, +cada parte de tu cuerpo +es envuelta en un fuego místico. +Cuando tu visión se aclara, te +encuentras de pie en un gran salón, +lleno de ecos fantasmales y +amenazantes sombras. A la +distancia puedes ver un estrado +elevado y sobre él, la única fuente +de luz de este mundo.",,"Avec un cri d'agonie, vous êtes arraché +de ce monde et violemment +jeté dans un autre. Chaque membre +de votre corps est recouvert de +feu mystique. Quand votre vision +s'éclaircit, vous vous retrouvez dans +un grand hall, rempli d'échos spectraux +et d'ombres menaçantes. +Plus loin, vous pouvez voir une estrade +sur laquelle se trouve la seule source +de lumière dans ce monde.",,,,"Внезапно Ð’Ð°Ñ Ð¾ÐºÑƒÑ‚Ð°Ð» огонь. +С воплем боли и Ñтраха Ð’Ñ‹ +перемещаетеÑÑŒ в другой мир, и +ÐºÐ°Ð¶Ð´Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ Вашего тела пронизана +миÑтичеÑким пламенем. Ð’Ð¸Ð´ÐµÐ½Ð¸Ñ +отÑтупили, взор Ñнова ÑÑен. Ð’Ñ‹ в +огромном зале, наполненном +призрачным Ñхом и грозными, +неведомыми тенÑми. Одинокий Ñвет +ÑтруитÑÑ Ñ Ð²Ð¾Ð·Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð´Ð°Ð»Ñ‘ÐºÑƒ +от ВаÑ.","Са вриÑком агоније ви Ñте пренеÑени +Ñа овог Ñвета до другог, Ñваки део вашег +тела бива обухваћен миÑтичном ватром. +Када Ñе ваша визија разјаÑни, видите +да Ñтојите у великој Ñали, иÑпуњени +одјецима духова и заÑтрашујућим Ñенкама. +У даљини можете видети подигнути подијум, +а на њему извор ÑветлоÑти за овај Ñвет." +" this can only be the chaos sphere, +the source of korax's power. with +this, you can create worlds... or +destroy them. by rights of battle +and conquest it is yours, and with +trembling hands you reach to grasp +it. perhaps, now, a new player will +join the cosmic game of power. like +the pawn who is promoted to queen, +suddenly the very reaches of the +board seem to be within your grasp.",TXT_HEXEN_WIN2MSG,,,,"Dies kann nur die Chaossphäre sein, +die Quelle von Korax' Macht. Mit ihr +kannst du Welten erschaffen... oder +sie zerstören. Durch Kampf und +Eroberung ist sie nun dein und du +streckst deine zitternden Hände aus +um sie zu greifen. Vielleicht, jetzt, +wird ein neuer Spieler dem +kosmischen Spiel der Macht +beitreten. Genau so wie der Bauer +zur Königin befördert wird, ist nun +das gesamte Spielbrett für dich zum +Greifen nahe.","Esta solo puede ser la esfera del caos, +la fuente del poder de Korax. Con +ella tu puedes crear mundos… o +destruirlos. Por derechos de batalla +y conquista ahora es tuya, y con +manos temblorosas alcanzas a agarrarla. +Tal vez, ahora, un nuevo jugador se +unirá al juego cósmico de poder. Como +un peón que es ascendido a Reina, +de repente los bordes del tablero +parecen estar a tu alcance.",,"Cela ne peut être que la Sphère du +Chaos, la source du pouvoir de Korax. +Avec ceci, vous pouvez créer des +mondes.. Et les détruire. +Par le droit du vainqueur +et conquérant, elle est vôtre. Vos mains +tremblantes la saisissent. Peut-être, +un nouveau joueur va rejoindre le jeu +cosmique du pouvoir. +Comme un pion promu au rang de reine, +les extrêmités de l'échiquier sont +maintenant à votre portée.",,,,"Это Ñфера хаоÑа, иÑточник Ñилы +КоракÑа. С её помощью можно +Ñоздавать миры... или разрушать их. +Дрогнувшей рукой вы берёте её. +Теперь она Ваша по праву Ñилы. + +Должно быть, новый игрок теперь +вÑтупит в коÑмичеÑкую битву за +влаÑÑ‚ÑŒ, хитро Ð²ÐµÐ´Ñ Ñвою партию +на вÑеленÑкой шахматной доÑке. +Ñловно Ð½Ð¸Ñ‡Ñ‚Ð¾Ð¶Ð½Ð°Ñ Ð¿ÐµÑˆÐºÐ°, уÑÐ»ÑƒÐ¶Ð°ÑŽÑ‰Ð°Ñ +Ñвоему королю, и, предав его, +Ð¿Ñ‹ÑˆÐµÐ´ÑˆÐ°Ñ Ð² дамки.","То може бити Ñамо Ñфера хаоÑа, извор +КоракÑове моћи. Са овим, можете +Ñтворити Ñветове... или их уништити. +Путем битке и оÑвајања то је ваше, +а дрхтавим рукама грабите да га ухватите. +Можда, Ñада, нови играч ће Ñе придружити +коÑмичкој игри моћи. Као пешак који Ñе +промовише у краљицу, чини Ñе да Ñу +изненада твоја доÑтигнућа у вашем домету." +"\nbut there are other players mightier +than you, and who can know their +next moves?",TXT_HEXEN_WIN3MSG,,,,"\nAber es gibt andere Spieler, die +mächtiger sind als du, und wer +kann schon deren nächste +Züge erahnen?","\nPero hay otros jugadores más +fuertes que tú y ¿Quién puede +saber sus próximos movimientos?",,"Mais il y a encore des joueurs plus +puissants que vous encore, et qui +peut prédire ce qu'ils feront pendant +leur tour?",,,,"\n...Ðо еÑÑ‚ÑŒ более опытные игроки, и +кому ведомы их дальнейшие ходы?","\nÐли поÑтоје и други играчи моћнији +од ваÑ, и ко може знати њихове +Ñледеће потезе?" +"wiping a trembling hand across your +bleeding face, you try to clear +your mind for what lies ahead... + +...and forget what lies behind. + +in the distance, the stark ramparts +of a great castle complex seem to +rend the sky above, and the stench +of decay wafts from the violated +graves of uncounted dead. + +carefully counting what little +remains of your artifacts, you try +to reassure yourself that it will +be enough. after all, it has to be +enough, doesn't it? + + +doesn't it?",TXT_HEXDD_CLUS1MSG,,,,"Mit zitternden Händen wischst du dir +über dein blutiges Gesicht und +versuchst, einen klaren Kopf für das +zu bekommen, was vor dir liegt... + +...und um das zu vergessen was du +hinter dir gelassen hast. + +In der Ferne siehst du einen kahlen +Befestigungswall eines großen +Schlosses, das den Himmel darüber +zu zerreißen scheint, und der +Gestank der Verwesung +weht von den unzähligen Toten der +geschändeten Gräber herüber. + +Sorgfältig zählst du die wenigen +Artefakte die du noch übrig hast +und versucht dir zu versichern, das +sie ausreichen werden. Im +Grunde genommen muss es doch +einfach ausreichen, oder nicht? + +Oder nicht?","Pasando una mano temblorosa por +tu cara sangrante, intentas +aclarar tu mente para lo que +se avecina… + +…y olvidar lo que quedó detrás. + +A la distancia, las murallas rígidas +de un gran complejo de castillos +parecen rasgar el cielo y el hedor +putrefacto flota de las tumbas +violadas de incontables muertos. + +Contando cuidadosamente lo +que queda de tus artefactos, +tratas de asegurarte que será +suficiente, después de todo, +tiene que ser suficiente, ¿o no? + +¿o no?",,"Essuyant la sueur de votre front +ensanglanté, vous essayer de +vous éclaircir l'esprit pour vous +préparer à ce qui vous attend... + +...Et oublier ce que vous avez fait. + +A l'horizon, les remparts imposants +d'un immense château semblent +empaler les cieux et la puanteur +de la mort émane des tombes violées +de morts oubliés. + +Comptant avec attention le peu +d'artéfacts qui vous restent, vous +essayez de vous rassurer. Cela +suffira, après tout, cela doit suffir, +n'est-ce pas? + +N'est-ce pas?",,,,"Отерев кровь Ñ Ð»Ð¸Ñ†Ð° дрожащей рукой, +Ð’Ñ‹ ÑтараетеÑÑŒ ÑобратьÑÑ Ñ Ð¼Ñ‹ÑлÑми и +понÑÑ‚ÑŒ, что ждёт впереди... + +...и забыть ужаÑ, оÑтавшийÑÑ Ð¿Ð¾Ð·Ð°Ð´Ð¸. + +Вдали, в легкой дымке, виден +величеÑтвенный замок, подпирающий +небо Ñвоими мрачными башнÑми. От +разоренных могил веет зловонием +и раÑпадом разложившихÑÑ Ñ‚ÐµÐ». + +Тщательно переÑчитав оÑтатки Ñвоих +артефактов, Ð’Ñ‹ ÑтараетеÑÑŒ убедить +ÑебÑ, что их хватит Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ +пути. И в конце концов, Ñтого +дейÑтвительно должно быть +доÑтаточно, не так ли? + + +Ðе так ли?", +"surely the souls of the damned inhabit +this world, for nothing fair or good +could survive here for long. + +but what has passed before can only +be a pale shadow of what bars your +passage now: the dark citadel itself. + +the grim bulk of the cathedral blocks +all but fragmentary glimpses of the +citadel proper, but what can be seen +speaks in sibilant whispers of cold, +lingering death... + + + + + +...for the fortunate.",TXT_HEXDD_CLUS2MSG,,,,"Es sind sicherlich die Seelen der +Verdammten, die diese Welt be- +wohnen, denn nichts Gutes oder +Ehrliches könnte hier lange überleben. + +Aber was vorher vergangen ist, +kann nur ein blasser Schatten +dessen sein, was deinen Weg +blockiert: die dunkle Zitadelle selbst. + +Die düstere Masse der Kathedrale +blockiert alles andere als frag- +mentarische Einblicke in die +eigentliche Zitadelle, aber was +man sehen kann, spricht in +zischendem Flüstern von +Kälte und lauerndem Tod ...","Seguramente las almas de los +condenados habitan este mundo, +porque nada bueno o justo podría +sobrevivir aquí por mucho tiempo. + +Pero lo que has pasado antes solo +puede ser una sombra pálida de lo +que te impide el paso ahora: la +mismísima ciudadela oscura. + +La silueta macabra de la catedral +bloquea todo menos pequeñas +partes de la ciudadela en si, pero +lo que se aprecia, habla en susurros +sibilantes de muerte fría y prolongada ... + + +... para los afortunados.","Seguramente las almas de los +condenados habitan este mundo, +porque nada bueno o justo podría +sobrevivir aquí por mucho tiempo. + +Pero lo que has pasado antes solo +puede ser una sombra pálida de lo +que te impide el paso ahora: la +mismísima ciudadela oscura. + +La silueta macabra de la catedral +bloquea todo, menos pequeñas +partes de la propia ciudadela, pero +lo que se aprecia, habla en +susurros sibilantes de muerte fría +y prolongada ... + + +... para los afortunados.","Les âmes des damnés habitent +certainement ce monde. Rien +de bon ou de pieux ne pourrait +survive ici pour longtemps. + +Mais ce qu'il s'est passé avant +ne peut être qu'une pâle imitation +de ce qui vous barre le passage +maintenant: La Citadelle Sombre. + +La vaste silhouette lugubre de la +cathédrale bloque tout sauf le +plus petit indice de la citadelle, +mais ce qui peut être vu parle +en murmures glaçants, menaçant +de mort.. + + + +...pour les fortunés.",,,,"Лишь проклÑтые души наÑелÑÑŽÑ‚ Ñтот +мир, ибо ничто доброе и Ñправедливое +не может здеÑÑŒ выжить. + +СтраданиÑ, пережитые Вами, — ничто, +Ð±Ð»ÐµÐ´Ð½Ð°Ñ Ñ‚ÐµÐ½ÑŒ тех иÑпытаний, что ждут +в тёмной цитадели, ÑтоÑщей на Вашем +пути. + +СилуÑÑ‚ тёмной цитадели едва виден за +мрачными очертаниÑми кафедрального +Ñобора. холод, ÑтруÑщийÑÑ Ð¾Ñ‚ её Ñтен, +ÑвиÑÑ‚Ñщим шёпотом повеÑтвует о +медленных, мучительных ÑмертÑÑ…... + + + + + +...Ð´Ð»Ñ ÑƒÐ´Ð°Ñ‡Ð»Ð¸Ð²Ñ‹Ñ….", +"once again you find yourself in the +great hall of the chaos sphere, as +if no time had passed from when +last you moved among these shadows. + +but something is eerily different, +a silence where once had been soft +whispers, a sense of being watched +by hidden eyes... + +...eyes which shield a malefic +intent.",TXT_HEXDD_WIN1MSG,,,,"Wieder findest du dich in der großen +Halle der Chaossphäre, als wenn seit +dem letzten Mal, als du dich zwischen +diesen Schatten bewegtest, keine Zeit +vergangen wäre. + +Aber etwas ist anders, eine schaurige +Stille, wo einst leises Flüstern gewesen +ist, ein Gefühl, von verborgenen Augen +beobachtet zu werden... + +... Augen, die eine boshafte Absicht +verbergen...","Una vez más te encuentras en el +gran salón de la esfera del caos, +como si no hubiera pasado el +tiempo desde la última vez que +te moviste entre estas sombras. + +Pero algo es inquietantemente +diferente, hay silencio donde +antes hubo susurros suaves, +la sensación de ser observado +por ojos ocultos.... + +...ojos que escudan una intención +maléfica.",,"Une fois de plus vous vous trouvez +dans le grand hall de la sphère +du Chaos, comme si le temps +n'avait pas avancé depuis la +dernière fois que vous avez +mis pied ici. + +Mais quelque chose semble +étrangement différent, comme +un silence là où l'on trouvait +des murmures, une sensation +d'être observé par des yeux +tapis dans l'ombre.. + +..des yeux dissimulant des +maléfiques volontés.",,,,"Ð’Ñ‹ вновь в зале Ñферы хаоÑа. Ðичего +Ðе изменилоÑÑŒ здеÑÑŒ Ñ Ð¿Ð¾Ñледнего +Вашего поÑещениÑ. Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ñтыло. + +И вÑÑ‘ же... Тихий шёпот в темноте. +Ð’Ñ‹ чувÑтвуете, что невидимые +враждебные глаза ÑледÑÑ‚ за +каждым вашим движением... + +...ЗдеÑÑŒ те, кто таит угрозу +и готовит погибель Ð´Ð»Ñ Ð²Ð°Ñ.", +"once before you grasped the chaos +sphere, held it within trembling +hands. now your hands tremble with +something more than avarice, and +dread meshes with the hunger for +power. + +if even the power of the sphere is +not enough to protect you from the +forces of darkness, perhaps it is +better left untouched, its promise +left unkept. + + + +but then, you never were one to +back down from a challenge...",TXT_HEXDD_WIN2MSG,,,,"Schon einmal hast du die Chaossphäre +in deinen zitternden Händen gehalten. +Doch dieses mal erzittert du durch mehr +als nur Gier, denn Furcht vermischt sich +mit dem Verlangen nach Macht. + +Wenn selbst die Chaossphäre nicht +genug ist, um dich vor den Mächten der +Dunkelheit zu beschützen, dann sollte +sie vielleicht doch lieber unberührt +bleiben und das Versprechen +nicht eingelöst werden. + +Andererseits bist du noch nie vor einer +Herausforderung zurückgewichen...","Una vez tomaste la esfera +del caos, con manos +temblorosas. Ahora tus manos +tiemblan con algo más que +avaricia y el miedo se mezcla +con el hambre de poder. + +Si aún el poder de la esfera no +es suficiente para protegerte +de las fuerzas de la oscuridad, +tal vez es mejor dejarlo intacto +y su promesa incumplida. + + + +Sin embargo, nunca tú nunca has +rechazado un desafío...",,"Auparavant, vous teniez la Sphère +du Chaos avec des mains tremblantes. +Maintenant, vos mains tremblent +de quelque chose pire encore que +l'avarice, et la terreur se mélange au +désir de pouvoir. + +Si même le pouvoir de la Sphère +ne suffit plus pour vous protéger +des forces des ténèbres, alors il +faudrait sans doute la retirer +des mains de tous, ses promesses +laissées à l'abandon. + +Mais vous n'êtes pas le type de +personne à avoir peur d'un défi..",,,,"Когда-то Ð’Ñ‹ уже владели Ñферой +хаоÑа и держали её в трепещущих +руках. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð’Ð°ÑˆÐ¸ руки дрожат не +от алчноÑти, но от вÑепоглощающей +жажды влаÑти. + +ЕÑли Ñилы Ñферы не хватило, чтобы +защитить Ð²Ð°Ñ Ð¾Ñ‚ демонов тьмы, может +быть, не Ñледует брать её? Ведь её +иÑтинное предназначение оÑталоÑÑŒ +Ð´Ð»Ñ Ð’Ð°Ñ Ñ‚Ð°Ð¹Ð½Ð¾Ð¹. + + + +И вÑÑ‘ же, Ð’Ñ‹ не уÑтоите перед +иÑкушением и примёте вызов...", +"\n...and other players await. + +",TXT_HEXDD_WIN3MSG,,,,\n...und andere Spieler warten.,\n...y otros jugadores esperan.,,\n...Et d'autres joueurs attendent.,,,,"\n...Ð’ то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº другие игроки будут +ждать Ñвоего чаÑа, чтобы Ñовершить +Ñвой ход.", +,,,Hexen script texts,,,,,,,,,, +The door is locked,TXT_ACS_MAP01_5_THEDO,,,,Die Tür ist verschlossen,La puerta está cerrada,,Cette porte est verouillée.,,,,Дверь заблокирована,Врата Ñу закључана +"Greetings, mortal",TXT_ACS_MAP02_9_GREET,,,,"Sei gegrüßt, Sterblicher","Saludos, mortal",,"Salutations, humain.",,,,"ПриветÑтвую, Ñмертный","Поздрав, Ñмртниче" +Are you ready to die?,TXT_ACS_MAP02_11_AREYO,,,,Bist du bereit zu sterben?,¿Estás listo para morir?,,Etes-vous prêt à mourir?,,,,Готов ли Ñ‚Ñ‹ умереть?,Да ли Ñи Ñпреман за Ñмрт? +A door opened on the Guardian of Ice,TXT_ACS_MAP02_20_ADOOR,,,,Eine Tür öffnet sich zum Wächter des Eises,Se abrió una puerta en el Guardián de Hielo,,Une porte s'est ouverte dans le Gardien de Glace.,,,,Дверь открыта у Стража льда,Врата Ñу Ñе отворила на Чувару леда +This path is barred,TXT_ACS_MAP03_12_THISP,,,,Dieser Pfad ist blockiert,Este camino está atrancado,,Ce chemin est barré.,,,,Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñтот путь закрыт,Овај пут је забрањен +One half of the puzzle has been solved,TXT_ACS_MAP04_9_ONEHA,,,,Eine Hälfte des Rätsels wurde gelöst,Una mitad del acertijo se ha resuelto,,La moitié du puzzle à été résolu,,,,Половина головоломки разгадана,Једна половина загонетке је решена +on the Seven Portals,TXT_ACS_MAP04_10_ONTHE,,,,bei den Sieben Portalen,en los Siete Portales,,pour les Sept Portails.,,,,на Семи порталах,на Седам портала +One third of the puzzle has been solved,TXT_ACS_MAP04_11_ONETH,,,,Ein Drittel des Rätsels wurde gelöst,Un tercio del acertijo se ha resuelto,,Un tiers du puzzle à été résolu,,,,Треть головоломки разгадана,Једна трећина загонетке је решена +Stairs have risen on the Seven Portals,TXT_ACS_MAP04_12_STAIR,,,,Stufen bei den Sieben Portale wurden erbaut,Unas escaleras se han erguido en los Siete Portales,,Des escaliers sont apparus dans les Sept Portails.,,,,ЛеÑтница воздвигнетÑÑ Ð½Ð° Семи порталах,Степенице Ñу Ñе подигле између Седам портала +One third of the puzzle has been solved,TXT_ACS_MAP05_6_ONETH,,,,Ein Drittel des Rätsels wurde gelöst,Un tercio del acertijo se ha resuelto,,Un tiers du puzzle à été résolu,,,,Треть головоломки разгадана,Једна трећина загонетке је решена +On the Seven Portals,TXT_ACS_MAP05_7_ONTHE,,,,bei den Sieben Portalen,en los Siete Portales,,pour les Sept Portails.,,,,на Семи порталах,на Седам портала +Stairs have risen on the Seven Portals,TXT_ACS_MAP05_8_STAIR,,,,Stufen bei den Sieben Portale wurden erbaut,Unas escaleras se han erguido en los Siete Portales,,Des escaliers sont apparus dans les Sept Portails.,,,,ЛеÑтница воздвигнетÑÑ Ð½Ð° Семи порталах,Степенице Ñу Ñе подигле између Седам портала +You have to find another switch...,TXT_ACS_MAP05_9_YOUHA,,,,Du must einen weiteren Schalter finden...,Debes encontrar otro interruptor...,Debes encontrar otro switch...,Vous devez trouver un autre bouton..,,,,ОÑталÑÑ ÐµÑ‰Ñ‘ один переключатель...,Требате наћи још један прекидач... +Stones grind on the Seven Portals,TXT_ACS_MAP05_10_STONE,,,,Steine schleifen bei den Sieben Portalen,Las piedras giran en los Siete Portales,,Des pierres grincent dans les Sept Portails.,,,,ÐºÐ°Ð¼ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€ÐµÐ³Ñ€Ð°Ð´Ð° отÑтупила,Камени Ñе мељу на Седам портала +One sixth of the puzzle has been solved,TXT_ACS_MAP08_6_ONESI,,,,Ein Sechstel des Rätsels wurde gelöst,Un sexto del acertijo se ha resuelto,,Un sixième du puzzle à été résolu,,,,Одна шеÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна шеÑтина загонетке је решена +On the Shadow Wood,TXT_ACS_MAP08_7_ONTHE,,,,Im Schattenwald,En el Bosque de Sombras,,dans le Bois des Ombres.,,,,в ЛеÑу теней,у Шуми Ñена +The door is barred from the inside,TXT_ACS_MAP08_10_THEDO,,,,Die Tür ist von innen verriegelt,La puerta está atrancada desde el interior,,Cette porte est bloquée de l'intérieur.,,,,Дверь заблокирована изнутри,Врата Ñу закључана изнутра +You hear a door open in the distance,TXT_ACS_MAP08_11_YOUHE,,,,"Du hörst, wie sich in der Ferne eine Tür öffnet",Escuchas que una puerta se abre a la distancia,,Vous entendez une porte s'ouvrir au loin.,,,,Слышен звук открывающейÑÑ Ð´Ð²ÐµÑ€Ð¸,Чује Ñе отварање врата из даљине +One sixth of the puzzle has been solved,TXT_ACS_MAP09_6_ONESI,,,,Ein Sechstel des Rätsels wurde gelöst,Un sexto del acertijo se ha resuelto,,Un sixième du puzzle à été résolu,,,,Одна шеÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна шеÑтина загонетке је решена +On the Shadow Wood,TXT_ACS_MAP09_7_ONTHE,,,,Im Schattenwald,En el Bosque de Sombras,,dans le Bois des Ombres.,,,,в ЛеÑу теней,у Шуми Ñена +One sixth of the puzzle has been solved,TXT_ACS_MAP10_6_ONESI,,,,Ein Sechstel des Rätsels wurde gelöst,Un sexto del acertijo se ha resuelto,,Un sixième du puzzle à été résolu,,,,Одна шеÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна шеÑтина загонетке је решена +On the Shadow Wood,TXT_ACS_MAP10_7_ONTHE,,,,Im Schattenwald,En el Bosque de Sombras,,dans le Bois des Ombres.,,,,в ЛеÑу теней,у Шуми Ñена +\ ettins left,TXT_ACS_MAP11_0_ETTIN,,"rus +Ðужно придумать что-то получше.",,\ Ettins übrig,\ Ettins restantes,,\ ettins restants,,,,\ оÑтавшихÑÑ Ñттинов,\ еттина је оÑтало +"You waited too long, now you die!",TXT_ACS_MAP11_1_YOUWA,,,,"Du hast zu lange gewartet, jetzt stirbst du!","Esperaste demasiado, ¡ahora morirás!",,"Vous avez attendu trop longtemps, maintenant, mourrez!",,,,Слишком долго! ГотовьÑÑ Ðº Ñмерти!,Предуго Ñи чекао! Припреми Ñе за Ñмрт! +A door opened on the Forsaken Outpost,TXT_ACS_MAP11_7_ADOOR,,,,Eine Tür im verlassenen Vorposten hat sich geöffnet,Una puerta se abrió en el Puesto de Avanzada Abandonado,,Une porte s'est ouverte dans la base abandonnée.,,,,Дверь открылаÑÑŒ на покинутой заÑтаве,Врата Ñу Ñе отворила у Ðапуштеној поÑтаји +This door won't open yet,TXT_ACS_MAP12_9_THISD,,,,Die Tür öffnet sich noch nicht,Esta puerta no se abrirá todavía,,Cette porte ne s'ouvre pas pour l'instant.,,,,Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñта дверь закрыта,Ова врата још Ñе не отварају +"My servants can smell your blood, human",TXT_ACS_MAP13_11_MYSER,,,,"Meine Diener riechen dein Blut, Menschling","Mis sirvientes pueden oler tú sangre, humano",,"Mes servants peuvent sentir votre sang, humain.",,,,"Мои приÑлужники чуют твою кровь, человек","Моје Ñлуге миришу твоју крв, Ñмртниче" +A door opened in the Gibbet,TXT_ACS_MAP21_0_ADOOR,,,,Eine Tür in der Richtstätte wurde geöffnet,Una puerta se abrió en la horca,,Une porte s'est ouverte dans le gibet.,,,,Проход будет открыт возле виÑелицы,Врата Ñу Ñе отворили у вешалима +The door is barred from the inside,TXT_ACS_MAP21_2_THEDO,,,,Die Tür ist von innen verriegelt,La puerta está atrancada desde el interior,,Cette porte est bloquée de l'intérieur.,,,,Дверь заблокирована изнутри,Врата Ñу закључана изнутра +A platform has lowered in the tower,TXT_ACS_MAP22_3_APLAT,,,,Im Turm hat sich eine Plattform gesenkt,Una plataforma ha bajado en la torre,,Une plateforme est descendue dans la tour.,,,,Площадка опуÑтилаÑÑŒ в центральной башне,A platform has lowered in the tower +"You have played this game too long, mortal...",TXT_ACS_MAP22_27_YOUHA,,,,"Du spielst schon zu lange, Sterblicher...","Has jugado este juego demasiado tiempo, mortal...",,"Vous avez joué à ce jeu trop longtemps, mortel..",,,,"Ты Ñлишком заигралÑÑ, Ñмертный...","Заиграо Ñи Ñе, Ñмртниче..." +I think I shall remove you from the board,TXT_ACS_MAP22_29_ITHIN,,,,Ich denke ich sollte dich vom Brett entfernen,Creo que te retiraré del tablero,,Je pense qu'il est l'heure de vous retirer de l'échiquier.,,,,Пришло Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ твою партию,МиÑлим да би требао да те уклоним Ñа лиÑте +You hear a door open upstairs,TXT_ACS_MAP23_10_YOUHE,,,,"Du hörst, wie sich oben eine Tür öffnet",Escuchas una puerta que se abre arriba,,Vous entendez une porte s'ouvrir à l'étage.,,,,Из Ñеверного зала доноÑитÑÑ Ð·Ð²ÑƒÐº,Чује Ñе отварање врата на горњем Ñпрату +"Worship me, and I may yet be merciful",TXT_ACS_MAP27_8_WORSH,,,,Verehre mich und ich könnte gnädig sein,"Adórame, y aun puedo ser misericordioso",,"Prosternez vous devant moi, et je pourrai considérer de vous épargner.",,,,"ПреклониÑÑŒ предо мной, и, может быть, Ñ Ð±ÑƒÐ´Ñƒ милоÑерден","Обожавај ме, и можда ћу бити милоÑтив" +"Then again, maybe not",TXT_ACS_MAP27_10_THENA,,,,"Andererseits, vielleicht aber auch nicht","Aunque, tal vez no",,Quoi que cela soit peu probable.,,,,"Рможет быть, и нет",Рможда и нећу +One ninth of the puzzle has been solved,TXT_ACS_MAP28_6_ONENI,,,,Ein Neuntel des Rätsels wurde gelöst,Un noveno del acertijo se ha resuelto,,Un neuvième du puzzle à été résolu,,,,Одна девÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна деветина загонетке је решена +On the Monastery,TXT_ACS_MAP28_7_ONTHE,,,,Im Kloster,En el Monasterio,,dans le monastère.,,,,в Семинарии ЕреÑиарха,у манаÑтиру +One ninth of the puzzle has been solved,TXT_ACS_MAP30_6_ONENI,,,,Ein Neuntel des Rätsels wurde gelöst,Un noveno del acertijo se ha resuelto,,Un neuvième du puzzle à été résolu,,,,Одна девÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна деветина загонетке је решена +On the Monastery,TXT_ACS_MAP30_7_ONTHE,,,,Im Kloster,En el Monasterio,,dans le monastère.,,,,в Семинарии ЕреÑиарха,у манаÑтиру +One ninth of the puzzle has been solved,TXT_ACS_MAP34_1_ONENI,,,,Ein Neuntel des Rätsels wurde gelöst,Un noveno del acertijo se ha resuelto,,Un neuvième du puzzle à été résolu,,,,Одна девÑÑ‚Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ¸ разгадана,Једна деветина загонетке је решена +On the Monastery,TXT_ACS_MAP34_2_ONTHE,,,,Im Kloster,En el Monasterio,,dans le monastère.,,,,в Семинарии ЕреÑиарха,у манаÑтиру +The portal has been sealed,TXT_ACS_MAP35_0_THEPO,,,,Das Portal wurde versiegelt,El portal se ha sellado,,Le portail est scellé.,,,,Врата закрылиÑÑŒ,Портал је затворен +Choose your fate,TXT_ACS_MAP35_1_CHOOS,,,,Wähle dein Schicksal,Escoge tu destino,Escoge tú destino,Choisissez votre sort.,,,,Сделай Ñвой выбор,Изабери Ñвоју Ñудбину +The door is barred from the inside,TXT_ACS_MAP35_3_THEDO,,,,Die Tür ist von innen verriegelt,La puerta está atrancada desde el interior,,Cette porte est bloquée de l'intérieur.,,,,Дверь заблокирована изнутри,Врата Ñу закључана изнутра +Are you strong enough,TXT_ACS_MAP35_12_AREYO,,,,Bist du stark genug,Eres lo suficientemente fuerte,,Etes vous suffisamment fort,,,,"ДоÑтаточно ли Ñ‚Ñ‹ Ñилён,",Да ли Ñи довољно Ñнажан +To face your own masters?,TXT_ACS_MAP35_14_TOFAC,,,,Dich deinen eigenen Meistern zu stellen?,¿Para enfrentarte a tus maestros?,,pour faire face à vos maîtres?,,,,чтобы ÑразитьÑÑ Ñо Ñвоими наÑтавниками?,да Ñе Ñуочиш Ñа Ñвојим мајÑторима? +,,,Hexen: Deathkings script texts,,,,,,,,,, +You dare battle in the ready room?,TXT_ACS_MAP33_6_YOUDA,,,,Du wagst es im Bereitschaftsraum zu kämpfen?,¿Te atreves a luchar en la sala de preparación?,,Vous osez faire escarmouche dans la salle de préparation?,,,,Ты поÑмел ÑражатьÑÑ Ð² комнате ожиданиÑ?, +"For that, you shall die!",TXT_ACS_MAP33_7_FORTH,,,,Dafür sollst du sterben!,"Por eso, ¡Deberás morir!",,"Pour cette insulte, vous trépasserez!",,,,Так умри же!, +The waterfall is open,TXT_ACS_MAP41_6_THEWA,,,,Der Wasserfall ist geöffnet,La cascada se ha abierto,,La cascade s'est ouverte.,,,,Поток воды оÑтановлен, +The waterfall is blocked,TXT_ACS_MAP41_7_THEWA,,,,Der Wasserfall ist blockiert,La cascada está bloqueada,,La cascade est bloquée.,,,,Поток воды преграждает путь, +A door has opened in the chapel,TXT_ACS_MAP41_8_ADOOR,,,,Eine Tür in der Kapelle hat sich geöffnet,Una puerta se abrió en la Capilla,,Une porte s'est ouverte dans la chapelle.,,,,Дверь открылаÑÑŒ в чаÑовне, +Now that's odd...,TXT_ACS_MAP42_4_NOWTH,,,,Hm. Das ist merkwürdig...,Eso es extraño...,,Ca c'est étrange....,,,,Как Ñтранно..., +Three more parts of the puzzle remain,TXT_ACS_MAP44_1_THREE,,,,Drei weitere Teile des Rätsels verbleiben,Quedan tres partes más del acertijo,,Trois parties du puzzle restent à résoudre.,,,,ОÑталоÑÑŒ три чаÑти головоломки, +Two more parts of the puzzle remain,TXT_ACS_MAP44_2_TWOMO,,,,Zwei weitere Teile des Rätsels verbleiben,Quedan dos partes más del acertijo,,Deux parties du puzzle restent à résoudre.,,,,ОÑталоÑÑŒ две чаÑти головоломки, +One more part of the puzzle remains,TXT_ACS_MAP44_3_ONEMO,,,,Ein weiteres Teil des Rätsels ist übrig,Queda una parte más del acertijo,,Il reste une partie du puzzle à résoudre.,,,,ОÑталаÑÑŒ одна чаÑÑ‚ÑŒ головоломки, +The puzzle is complete,TXT_ACS_MAP44_4_THEPU,,,,Das Rätsel ist abgeschlossen,El acertijo está completo,,Le puzzle est résolu.,,,,Головоломка разгадана, +You have not completed the puzzle,TXT_ACS_MAP44_6_YOUHA,,,,Du hast das Rätsel noch nicht gelöst,No has completado el acertijo,,Vous n'avez pas résolu le puzzle.,,,,Головоломка не разгадана, +The floor is not safe!,TXT_ACS_MAP44_8_THEFL,,,,Der Boden hier ist nicht sicher!,¡El suelo no es seguro!,,Le sol est dangereux!,,,,Пол ÑовÑем прогнил!, +One third of the puzzle is solved,TXT_ACS_MAP44_10_ONETH,,,,Ein Drittel des Rätsels ist gelöst,Un tercio del acertijo se ha resuelto,,Un tiers du puzzle à été résolu,,,,Одна треть головоломки разгадана, +Two thirds of the puzzle is solved,TXT_ACS_MAP44_11_TWOTH,,,,Zwei Drittel des Rätsels sind gelöst,Dos tercios del acertijo se han resuelto,,Deux tiers du puzzle ont été résolus,,,,Две трети головоломки разгаданы, +You hear a platform moving in the distance,TXT_ACS_MAP45_1_YOUHE,,,,"Du hörst, wie sich in der Ferne eine Platform bewegt",Escuchas una plataforma moverse a la distancia,,Vous entendez une plateforme se déplacer au loin,,,,"Ðеподалёку раздаётÑÑ Ð·Ð²ÑƒÐº +движущейÑÑ Ð´ÐµÑ€ÐµÐ²Ñнной площадки", +It is done...,TXT_ACS_MAP46_0_ITISD,,,,Es ist getan...,Está terminado...,,C'est terminé...,,,,Готово..., +You have not completed the puzzle,TXT_ACS_MAP46_1_YOUHA,,,,Du hast das Rätsel noch nicht gelöst,No has completado el acertijo,,Vous n'avez pas résolu le puzzle.,,,,Головоломка не разгадана, +I'm warning you...,TXT_ACS_MAP46_2_IMWAR,,,,Ich warne dich...,Te lo advierto...,,Je vous avertis...,,,,Я Ñ‚ÐµÐ±Ñ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´Ð°ÑŽ..., +"Stubborn, aren't you?",TXT_ACS_MAP46_3_STUBB,,,,"Du bist aber stur, was?","Eres obstinado, ¿verdad?",,"Obstiné, n'est-ce pas?",,,,Ðе Ñлишком ли Ñ‚Ñ‹ упрÑмый?, +"And stupid, too",TXT_ACS_MAP46_4_ANDST,,,,Und auch noch dumm,"Y estúpido, también",,"Et stupide, aussi.",,,,И не Ñлишком-то разумный!, +One fourth of this puzzle is complete,TXT_ACS_MAP46_8_ONEFO,,,,Ein Viertel des Rätsels ist gelöst,Un cuarto del acertijo se ha resuelto,,Un quart du puzzle à été résolu,,,,Одна Ñ‡ÐµÑ‚Ð²Ñ‘Ñ€Ñ‚Ð°Ñ Ñтой головоломки разгадана, +Bad choice...,TXT_ACS_MAP46_9_BADCH,,,,Falsche Wahl...,Mala decisión...,,Mauvaise décision...,,,,Плохой выбор..., +The symbols are not aligned,TXT_ACS_MAP47_2_THESY,,,,Die Symbole sind nicht ausgerichtet,Los símbolos no están alineados,,Les symboles ne sont pas alignés.,,,,Символы не Ñовпадают, +The door won't open from this side,TXT_ACS_MAP48_2_THEDO,,,,Die Tür kann sich von dieser Seite nicht öffnen,La puerta no abrirá por este lado,,La porte ne s'ouvre pas de ce côté.,,,,С Ñтой Ñтороны дверь не открыть, +The door is barred from the outside,TXT_ACS_MAP50_1_THEDO,,,,Die Tür ist von außen verriegelt,La puerta está atrancada por fuera,,Cette porte est bloquée de l'extérieur.,,,,Дверь заблокирована Ñнаружи, +Sacrilege !,TXT_ACS_MAP51_5_SACRI,,,,Gotteslästerung!,¡Sacrilegio!,,Sacrilège!,,,,СвÑтотатÑтво !, +You have defiled eric's tomb !!,TXT_ACS_MAP51_6_YOUHA,,,,Du hast Erics Gruft entehrt!!,¡Has profanado la tumba de Erick!,,Vous avez vandalisé la tombe d'Eric!,,,,Ты оÑквернил могилу Эрика !!, +And now you die !!!,TXT_ACS_MAP51_7_ANDNO,,,,Und nun stirbst du!,¡Y ahora muere!,¡Y ahora morirás!,"Pour cela, vous allez mourir!",,,,И умрёшь за Ñто Ñтрашной Ñмертью !!!, +One third of the puzzle is solved,TXT_ACS_MAP51_8_ONETH,,,,Ein Drittel des Rätsels ist gelöst,Un tercio del acertijo se ha resuelto,,Un tiers du puzzle à été résolu,,,,Одна треть головоломки разгадана, +Two thirds of the puzzle is solved,TXT_ACS_MAP51_9_TWOTH,,,,Zwei Drittel des Rätsels sind gelöst,Dos tercios del acertijo se han resuelto,,deux tiers du puzzle ont été résolus,,,,Две трети головоломки разгаданы, +The crypt is open,TXT_ACS_MAP51_10_THECR,,,,Die Gruft ist offen,La cripta ahora está abierta,,La crypte est ouverte,,,,Склеп открыт, +Beware the spider's tomb,TXT_ACS_MAP51_11_BEWAR,,,,Hüte dich vor dem Grab der Spinne,Cuidado con la tumba de la araña,,Attention à la tombe de l'araignée.,,,,ОпаÑайÑÑ Ð³Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‹ паука, +You hear a platform rise outside,TXT_ACS_MAP51_13_YOUHE,,,,"Du hörst, wie sich draußen eine Plattform erhebt",Escuchas una plataforma erguirse afuera,,Vous entendez une platforme s'élever dehors,,,,Снаружи Ñлышен звукподнимающегоÑÑ ÐºÐ°Ð¼Ð½Ñ, +Do you feel lucky?,TXT_ACS_MAP51_14_DOYOU,,,,Denkst du das heute dein Glückstag ist?,¿Te sientes afortunado?,,Vous pensez être chanceux?,,,,ЧувÑтвуешь ли Ñ‚Ñ‹ ÑÐµÐ±Ñ Ð²ÐµÐ·ÑƒÑ‡Ð¸Ð¼?, +You guessed wrong!,TXT_ACS_MAP51_15_YOUGU,,,,Du hast falsch geraten!,¡Adivinaste incorrectamente!,,Et bien non!,,,,Ðеправильное предположение!, +Good guess,TXT_ACS_MAP51_16_GOODG,,,,Gut geraten,¡Buena elección!,,Vous avez deviné!,,,,Правильное предположение, +Can you do all the scripting for my level?,TXT_ACS_MAP51_17_CANYO,,,,Kannst du die Skripte für all meine Level schreiben?,¿Podrías hacer todo el script para mi nivel?,,Vous pouvez faire tout le script de mon niveau?,,,,Можешь напиÑать за Ð¼ÐµÐ½Ñ Ð²Ñе Ñкрипты?, +Don't touch my gloppy,TXT_ACS_MAP51_18_DONTT,,,,Berühr mein Ding nicht!,No toques mi gloppy,,Ne touche pas mon gloppy,,,,Ðе трогай мою вкуÑнÑшку, +Vorpal ?!?!?!,TXT_ACS_MAP51_19_VORPA,,,,Tödlich ?!?!?!,¡¿¡¿¡¿ Vorpal ?!?!?!,,,,,,ОÑтренько ?!?!?!, +"Gimme some sugar, baby",TXT_ACS_MAP51_20_GIMME,,,,"Gib mir etwas Zucker, Baby","Dame un poco de azúcar, baby","Dame algo de azúcar, bebe",,,,,"Подай-ка мне Ñахар, детка", +Duh-uhhh...,TXT_ACS_MAP51_21_DUHUH,,,,,,,,,,,Ðга-а-а-а..., +Film in an hour?,TXT_ACS_MAP51_22_FILMI,,,,Film in einer Stunde,¿Película en una hora?,¿Una película en una hora?,Un film dans une heure?,,,,Фильм на чаÑ?, +I don't even get my own tombstone - cf,TXT_ACS_MAP51_23_IDONT,,,,Ich bekomme noch nicht einmal meinen eigenen Grabstein - cf,Ni siquiera tengo mi propia lápida - cf,,J'ai même pas le droit à ma propre tombe - cf,,,,У Ð¼ÐµÐ½Ñ Ð´Ð°Ð¶Ðµ нет Ñвоего Ð½Ð°Ð´Ð³Ñ€Ð¾Ð±Ð¸Ñ (к.Ñ„.), +Let no blood be spilt,TXT_ACS_MAP51_24_LETNO,,,,Lass kein Blut vergossen sein,Que no se derrame sangre,,Qu'aucune goutte de sang ne soit tirée,,,,Да не прольётÑÑ ÐºÑ€Ð¾Ð²ÑŒ, +Let no hand be raised in anger,TXT_ACS_MAP51_25_LETNO,,,,Lass keine Hand in Wut erhoben sein,Que ninguna mano se levante con ira,,Qu'aucune main de se lève avec colère,,,,И да не подниметÑÑ Ñ€ÑƒÐºÐ° во гневе, +Who dares disturb our slumber?,TXT_ACS_MAP52_9_WHODA,,,,Wer wagt es unseren Schlummer zu stören?,¿Quién se atreve a perturbar nuestro sueño?,,Qui ose troubler notre sommeil?,,,,Кто оÑмелилÑÑ Ð¿Ð¾Ñ‚Ñ€ÐµÐ²Ð¾Ð¶Ð¸Ñ‚ÑŒ наш покой?, +The way is open,TXT_ACS_MAP52_10_THEWA,,,,Der Weg ist offen,El camino está abierto,,Le chemin est ouvert.,,,,Путь открыт, +You have ,TXT_ACS_MAP53_2_YOUHA,,,,Du hast,Tienes,,Vous avez,,,,ОÑталоÑÑŒ, + switches left,TXT_ACS_MAP53_3_SWITC,,,, Schalter übrig,interruptores restantes,switches restantes, boutons à trouver,,,,Переключателей, +You have only ,TXT_ACS_MAP53_4_YOUHA,,,,Du hast nur,Tienes solo,,Vous avez seulement,,,,ОÑталÑÑ Ð²Ñего, + switch left,TXT_ACS_MAP53_5_SWITC,,,, Schalter übrig,interruptor restante,switch restante, bouton à trouver,,,,переключатель, +The exit is open,TXT_ACS_MAP53_6_THEEX,,,,Der Ausgang ist offen,La salida está abierta,,La sortie est ouverte,,,,Выход открыт, +The doors won't open from this side,TXT_ACS_MAP54_1_THEDO,,,,Die Türen werden sich nicht von dieser Seite öffnen,Las puertas no abrirán de este lado,,Les portes ne s'ouvrent pas de ce côté,,,,С Ñтой Ñтороны дверь не открыть, +The doors are open...,TXT_ACS_MAP54_4_THEDO,,,,Die Türen sind offen,Las puertas están abiertas...,,Les portes sont ouvertes...,,,,Путь в цитадель открыт..., +...If you are ready,TXT_ACS_MAP54_5_IFYOU,,,,...Wenn du bereit bist,...si estás listo,,...si vous êtes prêt.,,,,...ОÑмелишьÑÑ Ð»Ð¸ Ñ‚Ñ‹ войти?, +A door has opened,TXT_ACS_MAP54_9_ADOOR,,,,Eine Tür hat sich geöffnet,Una puerta se abrió,,Une porte est ouverte,,,,Дверь откроетÑÑ, +On the Chantry,TXT_ACS_MAP54_10_ONTHE,,,,In der Kantorei,En la capilla,,dans la chapelle.,,,,в ЧаÑовне, +A bridge has been built,TXT_ACS_MAP54_11_ABRID,,,,Eine Brücke wurde errichtet,Se construyó un puente,,Une pont a été construit,,,,МоÑÑ‚ воздвигнетÑÑ, +On the Abattoir,TXT_ACS_MAP54_12_ONTHE,,,,Im Schlachthaus,En el matadero,,dans l'abbatoir.,,,,на Бойне, +A stair has been built,TXT_ACS_MAP54_13_ASTAI,,,,Eine Treppe wurde errichtet,Se construyó una escalera,,Un escalier a été construit,,,,ЛеÑтница воздвигнетÑÑ, +On the Dark Watch,TXT_ACS_MAP54_14_ONTHE,,,,auf der Dunklen Wache,En la guardia oscura,,dans la Garde Noire.,,,,у Тёмного Ñтража, +One gear has been placed,TXT_ACS_MAP54_15_ONEGE,,,,Ein Zahnrad wurde eingesetzt,Un engranaje se ha puesto,Un engrane se ha puesto,Un engrenage a été placé,,,,ШеÑÑ‚ÐµÑ€Ð½Ñ ÑƒÑтановлена, + gears have been placed,TXT_ACS_MAP54_16_GEARS,,,, Zahnräder wurden eingesetzt, engranajes se han puesto, engranes se han puesto, engrenages ont été placés,,,,шеÑтернёй уÑтановлено, +A barricade has opened,TXT_ACS_MAP54_17_ABARR,,,,Eine Barrikade wurde geöffnet,La barricada se ha abierto,,Une barricade s'est ouverte,,,,Преграда подниметÑÑ, +On the Cloaca,TXT_ACS_MAP54_18_ONTHE,,,,In der Kloake,En la Cloaca,,dans le cloaque,,,,в Клоаке, +The way back is open,TXT_ACS_MAP54_20_THEWA,,,,Der Weg zurück ist offen,El camino está abierto,,Un chemin s'est ouvert,,,,Путь назад открыт, +The door is barred from the inside,TXT_ACS_MAP55_9_THEDO,,,,Die Tür ist von innen verriegelt,La puerta está atrancada desde el interior,,La porte est bloquée de ce côté,,,,Дверь заблокирована изнутри, +You dare plunder the tomb,TXT_ACS_MAP56_0_YOUDA,,,,Wagst du es,¿Te atreves a saquear la tumba,,Vous osez piller la tombe,,,,Ты поÑмел ограбить могилу, +of the executioner?,TXT_ACS_MAP56_1_OFTHE,,,,das Grab des Henkers zu plündern?,del ejecutor?,,du bourreau?,,,,верховного палача?, +Prepare to die,TXT_ACS_MAP56_2_PREPA,,,,Bereite dich vor zu sterben,¡Prepárate para morir!,,Préparez vous à mourir!,,,,ГотовьÑÑ Ðº Ñмерти, +You have ,TXT_ACS_MAP59_1_YOUHA,,,,Du musst,Aún tienes,,Vous avez,,,,ОÑталоÑÑŒ, + more switches to find,TXT_ACS_MAP59_2_MORES,,,, weitere Schalter finden, interruptores más que encontrar, switches más que encontrar, boutons à trouver,,,, переключателей, +You have only ,TXT_ACS_MAP59_3_YOUHA,,,,Du musst nur,Tienes solo,,Vous avez seulement,,,,ОÑталÑÑ Ð²Ñего, + switch left,TXT_ACS_MAP59_4_SWITC,,,, Schalter finden, interruptor restante, switch restante, bouton a trouver,,,, переключатель, +The way to the tower is open,TXT_ACS_MAP59_5_THEWA,,,,Der Weg zum Turm ist offen,El camino a la torre está abierto,,Le chemin vers la tour est ouvert.,,,,Путь к башне открыт, +The way is open,TXT_ACS_MAP60_3_THEWA,,,,Der Weg ist offen,El camino está abierto,,Le chemin est ouvert.,,,,Портал открыт, +,,,Strife dialogue,,,,,,,,,, +"I don't want any trouble, stay away from me. I've had enough trouble with what that bastard Harris did to me. He promised me money, instead I get to look forward to being Questioned by the Programmer.",TXT_DLG_SCRIPT01_D0_IDONT,,,,"Ich möchte keinen Ärger, bleib weg von mir. Ich hatte genug Ärger mit dem was der Bastard Harris mir angetan hat. Er hat mir Geld versprochen, stattdessen musste ich mich darauf vorbereiten von dem Programmierer ausgefragt zu werden.","No quiero ningún problema, aléjate de mí. He tenido suficientes problemas con lo que me hizo Harris. Me prometió dinero, en lugar de eso, ahora espero a ser cuestionado por El Programador.",,"Je ne veux pas d'embrouilles. Laissez moi tranquille. J'ai déjà assez de problèmes avec ce que ce salaud d'Harris ma fait. Il m'a promis de l'argent, maintenant, je risque de me faire interroger par le Programmeur.","Én nem akarok semmi gondot, maradj távol tÅ‘lem. Elég baj nekem az amit az a barom Harris okozott. Pénzt ígért, ehelyett az vár rám, hogy A Programozó kételkedik bennem.",,,"Ðе подходи ко мне, мне не нужны неприÑтноÑти! У Ð¼ÐµÐ½Ñ Ð¸Ñ… и так доÑтаточно из-за Ñтого мерзавца ХарриÑа. Он обещал мне деньги, а вмеÑто Ñтого Ð¼ÐµÐ½Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ‚ «допроÑ» у ПрограммиÑта.", +I'll help you if you help me. Five pieces of gold and I'll tell all I know.,TXT_DLG_SCRIPT02_D0_ILLHE,,,,Ich helfe dir wenn du mir hilfst. Fünf Goldstücke und ich erzähle alles was ich weiß.,Te ayudaré si me ayudas. Cinco piezas de oro y te cuento todo lo que sé.,,"Tu m'aide, je t'aide. Cinq pièces et je te dis ce que je sais.","Segítek, ha segítesz. 5 arany és mindent elmondok, amit tudok.",,,"Я помогу тебе, еÑли Ñ‚Ñ‹ поможешь мне. ПÑÑ‚ÑŒ золотых, и Ñ Ñ€Ð°ÑÑкажу вÑе, что знаю.", +Here's the gold.,TXT_RPLY0_SCRIPT02_D0_HERES,,,,Hier ist dein Gold.,Aquí está el oro.,,Voilà l'argent.,Ãme az arany.,,,Вот золото., +"Be stealthy when you kill, you won't set off alarms.",TXT_RYES0_SCRIPT02_D0_BESTE,,,,"Sei leise, wenn du jemanden tötest, damit du keinen Alarm auslöst.",Sé cauteloso cuando mates y no activarás las alarmas.,,Tuez discrètement et vous n'aurez pas de problème avec les alarmes.,"Lopakodva, halkan gyilkolj, kézzel, így nem indul be a riasztó.",,,"Убивай беÑшумно, чтобы не поднÑÑ‚ÑŒ тревогу.", +"Well, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D0_WELLI,,,,"Na ja, für umsonst werde ich dir nichts erzählen!","Bueno, ¡No te diré nada gratis!",,Je ne vous dirai rien si vous ne me donnez rien!,"Figyelj, ingyen semmit sem mondok el neked.",,,"Что ж, Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не Ñкажу даром!", +Have you by any chance got another 5 gold on you?,TXT_DLG_SCRIPT02_D1516_HAVEY,,,,Hast du vielleicht 5 weitere Goldmünzen dabei?,¿Por casualidad has conseguido otros 5 de oro?,,T'aurais pas 5 pièces en plus sur toi?,"Van bármi esély arra, hogy még 5 aranyad azért van?",,,У Ñ‚ÐµÐ±Ñ Ñлучайно не найдётÑÑ ÐµÑ‰Ñ‘ 5 монеток?, +5 gold.,TXT_RPLY0_SCRIPT02_D1516_5GOLD,,,,5 Gold.,5 de oro.,,5 pièces.,5 arany.,,,ПÑÑ‚ÑŒ золотых., +"Well, poison bolts can kill the guards instantly and won't set off the alarms.",TXT_RYES0_SCRIPT02_D1516_WELLP,,,,Also Giftpfeile können die Wachen sofort töten und lösen keinen Alarm aus.,"Bien, las saetas envenenadas pueden matar a los guardias al instante sin activar las alarmas.",,Les carreaux empoisonnés tuent les gardes instantanément et discrètement.,"Hát, a mérgezÅ‘ nyilak azonnal a túlvilágra küldik az Å‘röket, és a riasztó sem kapcsol be.",,,"Что ж, отравленными Ñтрелами можно убивать охранников быÑтро и беÑшумно.", +"No sir, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D1516_NOSIR,,,,"Nein, ich werde dir nichts für umsonst erzählen!","No, ¡No diré nada gratis!",,"Non, monsieur, je ne vous dirait rien si je ne me fais pas payer!","Nem uram, tudja, semmi sincs ingyen.",,,"Ðет, товарищ! Даром — только за амбаром!", +You've wrung the last bit of gossip out of me already!,TXT_DLG_SCRIPT02_D3032_YOUVE,,,,Du hast bereits das letzte bisschen Klatsch aus mir herausgequetscht!,¡Ya me has sacado hasta el último chisme!,,Vous m'avez tiré tous les vers du nez!,Már a legutolsó pletykát is kiszedted belÅ‘lem.,,,"Ты уже вытÑнул из Ð¼ÐµÐ½Ñ Ð²ÑÑ‘, что только можно!", +What can I get for you?,TXT_DLG_SCRIPT02_D4548_WHATC,,,,Was kann ich für dich tun?,¿Qué puedo ofrecerte?,,Qu'est ce que je peux pour vous?,Mit tehetnék érted?,,,Что Ñ Ð¼Ð¾Ð³Ñƒ тебе предложить?, +Assault gun,TXT_RPLY0_SCRIPT02_D4548_ASSAU,,,,Sturmgewehr,Fusil de Asalto,,Fusil d'Assaut,Gépfegyver,,,Штурмовую винтовку, +Here you go.,TXT_RYES0_SCRIPT02_D4548_HEREY,,,,Bitte sehr!,Aquí tienes.,,Voilà pour vous.,Tessék,,,Держи., +You can't afford that right now.,TXT_RNO0_SCRIPT02_D4548_YOUCA,,,,Das kannst du dir momentan nicht leisten.,No puedes adquirir esto ahora.,,Vous n'avez pas assez d'argent.,Erre most nincs pénzed.,,,Ты пока не можешь Ñебе Ñто позволить., +Clip of bullets,TXT_RPLY1_SCRIPT02_D4548_CLIPO,,,,Gewehrmunition.,Cargador con balas,,Chargeur de balles,Egy tár töltény,,,Обойму патронов., +Thanks.,TXT_RYES1_SCRIPT02_D4548_THANK,,,,Danke.,Gracias.,,Merci.,Köszi.,,,Благодарю., +"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D4548_COMEO,,,,"Na komm, 10 Gold.",¡Vamos! 10 de oro.,,"Allez, 10 pièces.","Rajta, 10 aranyat.",,,"Ðу же, 10 золотых.", +Ammo box,TXT_RPLY2_SCRIPT02_D4548_AMMOB,,,,Munitionsschachtel,Caja de balas,,Bôite de balles,Egy doboz lÅ‘szer,,,Коробку патронов, +Here's your ammo.,TXT_RYES2_SCRIPT02_D4548_HERES,,,,Hier ist deine Munition.,Aquí tienes tus municiones.,,Voilà vos munitions.,Itt a lÅ‘szered.,,,Вот твои патроны., +Maybe some other time.,TXT_RNO2_SCRIPT02_D4548_MAYBE,,,,Vielleicht ein anderes Mal.,Tal vez en otra ocasión.,,Peut être une autre fois.,Talán majd máskor.,,,"Может, в другой раз.", +Good news from the Front for a change. Macil sent you for a reward and training. He's instructed me to give them to you.,TXT_DLG_SCRIPT02_D6064_GOODN,,,,"Gute Nachrichten von der Front zur Abwechslung. Macil lässt dir eine Belohnung und Training zukommen. Er hat mir aufgetragen, es dir zu geben.","Buenas noticias desde el Frente, para variar. Macil mandó una recompensa y entrenamiento para ti. Me solicitó dártelos.",,Des bonnes nouvelles du Front pour une fois. Macil t'a envoyé pour une récompense et de l'entraînement. Il m'a instruit de te les procurer.,"Jó hírek a Fronttól a változások miatt! Macil jutalomért és gyakorlásért küldött. Arra kért, nyújtsam át ezeket neked.",,,"Ðаконец-то, хорошие новоÑти от СопротивлениÑ. Ты пришёл от ÐœÑйÑила за наградой и обучением? Он раÑпорÑдилÑÑ, чтобы Ñ‚Ñ‹ получил их от менÑ.", +Thanks.,TXT_RPLY0_SCRIPT02_D6064_THANK,,,,Danke.,Gracias.,,Merci.,Köszi.,,,СпаÑибо., +Glad to be of service.,TXT_RYES0_SCRIPT02_D6064_GLADT,,,,Es war mir eine Freude dir zu Diensten zu sein,Un placer atenderte.,,Ravi de vous avoir servi.,Örülök hogy szólgálhatok.,,,Рад помочь., +"All right, here's a few pointers on what to do: don't get in the way of Crusaders: firing short bursts from your assault gun keeps it on target.",TXT_DLG_SCRIPT02_D7580_ALLRI,,,,"Also, hier hast du ein paar Hinweise: Gerate nicht ins Visier der Ordensritter: Wenn du kurze Feuerstöße mit deinem Sturmgewehr abgibst, triffst du besser.","De acuerdo, aquí algunos consejos: No te cruces en el camino de los Cruzados: disparar rachas cortas del Fusil de Asalto lo mantendrá en el objetivo.",,"Bon, voilà quelques conseils sur ce que tu devrais faire: Ne vas pas te mêler aux croisés. Tirer en courte rafales avec le fusil d'assaut te permet de rester sur la cible.","Na jól van, itt egy-két útbaigazítás neked: Ne kerülj a keresztesek útjába: Rövid sorozatokat leadva rájuk a gépfegyveredbÅ‘l pontosab célzást biztosít.",,,"Отлично, вот неÑколько Ñоветов: не попадайÑÑ Ð¿Ð¾Ð´ ноги креÑтоноÑцам. Из штурмовой винтовки лучше вÑего ÑтрелÑÑ‚ÑŒ короткими очередÑми.", +Is that it?,TXT_RPLY0_SCRIPT02_D7580_ISTHA,,,,War es das?,¿Eso es todo?,,C'est tout?,Ennyi?,,,И вÑÑ‘?, +"Look, you'll learn more later.",TXT_RYES0_SCRIPT02_D7580_LOOKY,,,,Fürs Erste ja. Du wirst später noch mehr lernen.,"Mira, aprenderás más tarde.",,T'en apprendras davantage plus tard.,"Nézd, késÅ‘bb többet fogsz tanulni.",,,"Позже узнаешь больше, хорошо?", +"I think I can convert a flamethrower from one of the Crusaders for use by a human. Oh, anything else I can get you?",TXT_DLG_SCRIPT02_D9096_ITHIN,,,,"Ich denke ich kann einen Flammenwerfer von einen der Ordensritter umbauen, damit ein Mensch ihn benutzen kann. Oh, kann ich dir sonst noch etwas besorgen?","Creo que puedo convertir un lanzallamas de uno de los cruzados para que un humano pueda utilizarlo. Oh, ¿Algo más que pueda ofrecerte?",,Je crois que je peux convertir un lance-flammes de croisé pour être utilisé par un humain. Je peux faire quelque chose d'autre pour vous?,"Azt hiszem ha az egyik keresztesrÅ‘l leszednénk egy lángszórót, azt át tudnám alakítani emberi használatra. Ó, még valamit tehetek érted?",,,"Думаю, Ñ Ñмогу приÑпоÑобить огнемёт Ð´Ð»Ñ Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ иÑпользованиÑ. Ð, Ñ‚Ñ‹ что-то ещё хотел? +", +Flamethrower.,TXT_RPLY0_SCRIPT02_D9096_FLAME,,,,Flammenwerfer,Lanzallamas.,,Lance-flammes.,Lángszóró.,,,Огнемёт., +"I knew that'd work! Here you go, take her for a spin!",TXT_RYES0_SCRIPT02_D9096_IKNEW,,,,"Ich wusste das würde funktionieren! Bitte sehr, probiere ihn mal aus!","¡Sabía que eso funcionaría! Aquí tienes, ¡Dale un paseo!","¡Sabía que eso funcionaría! Aquí tienes, ¡Dale una vuelta!",Je savais que ça marcherait! Prends-le et va donc l'essayer!,"Tudtam, hogy ez működni fog! Nesze vidd el egy körre!",,,"Я и не ÑомневалÑÑ, что вÑÑ‘ получитÑÑ! Держи, иÑпробуй его на ком-нибудь!", +"Listen, I can't make anything without the right parts!",TXT_RNO0_SCRIPT02_D9096_LISTE,,,,"Hör zu, ohne die richtigen Teile kann ich dir nichts machen!","Escucha, ¡No puedo hacer nada sin las partes correctas!",,"Ecoute, je ne peux pas faire quoi que ce soit si je n'ai pas les pièces dont j'ai besoin!","Figyu, az alkatrészek nélkül semmit sem tudok tenni.",,,"Слушай, у Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚ нужных деталей!", +Assault gun,TXT_RPLY1_SCRIPT02_D9096_ASSAU,,,,Sturmgewehr,Fusil de Asalto,,Fusil d'Assaut,Gépfegyver,,,Штурмовую винтовку, +"Well, here you go sir!",TXT_RYES1_SCRIPT02_D9096_WELLH,,,,"Alles klar, bitteschön!","Bien, ¡Aquí tiene, caballero!",,"Voilà pour vous, monsieur!","Nos, íme, lásson csodát!",,,Забирай!, +"Obviously, you can't afford that right now.",TXT_RNO1_SCRIPT02_D9096_OBVIO,,,,Offensichtlich kannst du dir das im Moment nicht leisten.,"Obviamente, no puedes adquirir esto por ahora.",,"Manifestement, vous ne pouvez pas vous l'offrir.","Egyértelmű, hogy ezt nem tudod most kifizetni.",,,"Похоже, тебе Ñто не по карману.", +Clip of bullets,TXT_RPLY2_SCRIPT02_D9096_CLIPO,,,,Gewehrmunition.,Cargador con balas,,Chargeur de balles,Egy tár töltény.,,,Обойму патронов., +Thanks.,TXT_RYES2_SCRIPT02_D9096_THANK,,,,Danke.,Gracias.,,Merci.,Köszi.,,,Благодарю., +"Come on, 10 gold.",TXT_RNO2_SCRIPT02_D9096_COMEO,,,,"Na komm, 10 Gold.",¡Vamos! 10 de oro.,,"Allez, 10 pièces.","Rajta, 10 arnyat.",,,"Ðу же, 10 золотых.", +Ammo box,TXT_RPLY3_SCRIPT02_D9096_AMMOB,,,,Munitionsschachtel,Caja de balas,,Bôite de balles,LÅ‘szeres doboz.,,,Коробку патронов, +Here's your ammo.,TXT_RYES3_SCRIPT02_D9096_HERES,,,,Hier ist deine Munition.,Aquí tienes tus municiones.,,Voilà vos munitions.,Ãme a lÅ‘szered.,,,Вот твои патроны., +Maybe some other time. Goodbye!,TXT_RNO3_SCRIPT02_D9096_MAYBE,,,,Vielleicht ein anderes mal. Auf Wiedersehen!,Tal vez en otra ocasión. ¡Adiós!,,"Peut être une autre fois, au revoir!",Talán majd valamikor máskor. Viszontlátásra!,,,"Может, в другой раз. Пока!", +"Now that you have the flamethrower, is there anything else I can get you?",TXT_DLG_SCRIPT02_D10612_NOWTH,,,,"Jetzt wo du den Flammenwerfer hast, gibt es etwas anderes was ich dir besorgen kann?","Ahora que tienes el lanzallamas, ¿Hay algo más que pueda ofrecerte?",,"Maintenant que vous avez le lance-flammes, est-ce que je peux faire quelque chose pour vous?","Most, hogy megkaptad a lángszórót is, tehetek még valamit érted?",,,"Теперь, когда у Ñ‚ÐµÐ±Ñ ÐµÑÑ‚ÑŒ огнемёт, могу Ñ ÐµÑ‰Ñ‘ чем-нибудь тебе помочь?", +Assault gun,TXT_RPLY0_SCRIPT02_D10612_ASSAU,,,,Sturmgewehr,Fusil de Asalto,,Fusil d'Assaut,Gépfegyver,,,Штурмовую винтовку, +Here you go.,TXT_RYES0_SCRIPT02_D10612_HEREY,,,,Bitte sehr!,Aquí tienes.,,Voilà pour vous.,,,,Забирай!, +You can't afford that right now.,TXT_RNO0_SCRIPT02_D10612_YOUCA,,,,Das kannst du dir im Moment nicht leisten.,No puedes adquirir esto ahora.,,Vous n'avez pas assez d'argent.,,,,"Похоже, тебе Ñто не по карману.", +Clip of bullets,TXT_RPLY1_SCRIPT02_D10612_CLIPO,,,,Gewehrmunition.,Cargador con balas,,Chargeur de balles,,,,Обойму патронов., +Thanks.,TXT_RYES1_SCRIPT02_D10612_THANK,,,,Danke.,Gracias.,,Merci.,,,,Благодарю., +"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D10612_COMEO,,,,"Komm schon, 10 Gold.",¡Vamos! 10 de oro.,,"Allez, 10 pièces.",,,,"Ðу же, 10 золотых.", +Ammo box,TXT_RPLY2_SCRIPT02_D10612_AMMOB,,,,Munitionsschachtel,Caja de balas,,Boîte de balles,,,,Коробку патронов, +Here's your ammo.,TXT_RYES2_SCRIPT02_D10612_HERES,,,,Hier ist deine Munition.,Aquí tienes tus municiones.,,Voilà vos munitions.,,,,Вот твои патроны., +Maybe some other time.,TXT_RNO2_SCRIPT02_D10612_MAYBE,,,,Vielleicht ein anderes mal.,Tal vez en otra ocasión.,,Peut être une autre fois.,,,,"Может, в другой раз.", +"Now that you have the flamethrower, is there anything else I can get you?",TXT_DLG_SCRIPT02_D12128_NOWTH,,,,"Jetzt wo du den Flammenwerfer hast, gibt es etwas anderes was ich dir besorgen kann?","Ahora que tienes el lanzallamas, ¿Hay algo más que pueda ofrecerte?",,"Maintenant que vous avez le lance-flammes, est-ce que je peux faire quelque chose pour vous?",,,,"Теперь, когда у Ñ‚ÐµÐ±Ñ ÐµÑÑ‚ÑŒ огнемёт, могу Ñ ÐµÑ‰Ñ‘ чем-нибудь тебе помочь?", +Clip of bullets,TXT_RPLY0_SCRIPT02_D12128_CLIPO,,,,Gewehrmunition.,Caja de balas,,Chargeur de balles,,,,Обойму патронов., +Thanks.,TXT_RYES0_SCRIPT02_D12128_THANK,,,,Danke.,Gracias.,,Merci.,,,,Благодарю., +"Come on, 10 gold.",TXT_RNO0_SCRIPT02_D12128_COMEO,,,,"Na komm, 10 Gold.",¡Vamos! 10 de oro.,,"Allez, 10 pièces.",,,,"Ðу же, 10 золотых.", +Ammo box,TXT_RPLY1_SCRIPT02_D12128_AMMOB,,,,Munitionsschachtel,Caja de balas,,Bôite de balles,,,,Коробку патронов, +Here's your ammo.,TXT_RYES1_SCRIPT02_D12128_HERES,,,,Hier ist deine Munition.,Aquí tienes tus municiones.,,Voilà vos munitions.,,,,Вот твои патроны., +Maybe some other time.,TXT_RNO1_SCRIPT02_D12128_MAYBE,,,,Vielleicht ein anderes Mal.,Tal vez en otra ocasión.,,Peut être une autre fois.,,,,"Может, в другой раз.", +Phosphor grenades,TXT_RPLY2_SCRIPT02_D12128_PHOSP,,,,Phosphorgranaten,Granadas de Fósforo,,Grenades phosphoriques,,,,ФоÑфорные гранаты, +Thanks.,TXT_RYES2_SCRIPT02_D12128_THANK,,,,Danke.,Gracias.,,Merci.,,,,Благодарю., +You don't have enough,TXT_RNO2_SCRIPT02_D12128_YOUDO,,,,Du hast nicht genug,No tienes suficiente,,Vous n'avez pas assez d'argent.,,,,Тебе не хватает на них., +Poison bolts,TXT_RPLY3_SCRIPT02_D12128_POISO,,,,Giftbolzen,Saetas envenenadas,,Carreaux Empoisonnés,,,,Отравленные болты, +Worth every gold!,TXT_RYES3_SCRIPT02_D12128_WORTH,,,,Jedes Goldstück wert!,¡Valen cada moneda de oro!,,Ca vaut son prix!,,,,Они того ÑтоÑÑ‚!, +"Come on, 200 gold!",TXT_RNO3_SCRIPT02_D12128_COMEO,,,,"Na komm, 200 Gold!",¡Vamos! 200 de oro.,,"Allez, 200 pièces!",,,,"Ðу же, 200 золотых!", +I can't believe that I got stuck with this duty. They say that something evil came up out of this sewer gate... Now I get to stand here until it comes up again!,TXT_DLG_SCRIPT02_D13644_ICANT,,,,"Ich kann's nicht glauben dass ich diesen Dienst hier machen muss. Sie haben gesagt, dass etwas Böses aus dem Kanalisationstor gekommen ist... Nun muss ich hier stehen, bis es wieder kommt!",No puedo creer que me quedara con esta tarea. Dicen que algo maligno salió de esta compuerta de alcantarilla... ¡Ahora tengo que quedarme aquí hasta que salga de nuevo!,,J'arrive pas à croire que je me retrouve coincé ici. On me raconte qu'une chose maléfique est sortie de cette barrière des égouts.. Maintenant je me retrouve planté ici jusqu'a ce qu'elle revienne!,,,,"Ðе могу поверить, что заÑÑ‚Ñ€Ñл на дежурÑтве. Они говорÑÑ‚, что какаÑ-то пакоÑÑ‚ÑŒ поднимаетÑÑ Ð¸Ð· Ñтого люка... и теперь Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑтоÑÑ‚ÑŒ тут и ждать, пока она не поÑвитÑÑ Ñнова!", +What gate?,TXT_RPLY0_SCRIPT02_D13644_WHATG,,,,Welches Tor?,¿Qué compuerta?,,Quelle barrière?,,,,Какого люка?, +The sewer overflow gate.,TXT_RYES0_SCRIPT02_D13644_THESE,,,,Das Ãœberlauftor der Kanalisation.,La compuerta de desagüe de alcantarillado.,,La barrière de débordement des égouts.,,,,Канализационного люка., +Hello friend. What can I get for you?,TXT_DLG_SCRIPT02_D15160_HELLO,,,,"Hallo, Freund. Was darf es sein?",Saludos amigo. ¿Qué puedo ofrecerte?,,"Bonjour mon ami, que puis-je faire pour vous?",,,,ЗдравÑтвуй. Что-нибудь интереÑует?, +Electric bolts,TXT_RPLY0_SCRIPT02_D15160_ELECT,,,,Elektrische Bolzen,Saetas eléctricas,,Carreaux électriques,,,,ЭлектричеÑкие болты, +You got the electric bolts.,TXT_RYES0_SCRIPT02_D15160_YOUGO,,,,Du hast die elektrischen Bolzen erhalten.,Obtuviste las saetas eléctricas.,,Vous recevez les carreaux électriques.,,,,Вот твои ÑлектричеÑкие болты., +Ammo satchel,TXT_RPLY1_SCRIPT02_D15160_AMMOS,,,,Munitionstasche,Bolsa de Municiones,,Sacoche de Munitions,,,,Ранец Ð´Ð»Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов, +No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D15160_NOYOU,,,,"Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",No. ¡No tienes lo que quiero por las saetas eléctricas!,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!","Nem. Neked nincs olyanod, ami nekem kéne az elektromos nyilakért.",,,Ðет. У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ денег на ÑлектричеÑкие болты!, +No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D16676_NOYOU,,,,"Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",No. ¡No tienes lo que quiero por las saetas eléctricas!,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!",,,,Ðет. У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ денег на ÑлектричеÑкие болты!, +Thank you. Anything else?,TXT_RYES1_SCRIPT02_D15160_THANK,,,,Danke. Sonst noch etwas?,Gracias. ¿Algo más?,,"Merci, Autre chose?",,,,Благодарю. Что-нибудь ещё?, +"You can't afford that, good day.",TXT_RNO1_SCRIPT02_D15160_YOUCA,,,,Das kannst du dir nicht leisten. Guten Tag.,"No puedes adquirir esto, buen día.",,Vous n'avez pas assez d'argent. Bonne journée.,,,,У Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег. Ð’Ñего доброго., +What can I get for you?,TXT_DLG_SCRIPT02_D16676_WHATC,,,,Was darf es sein?,¿Qué puedo ofrecerte?,,Que puis-je faire pour vous?,,,,Чем могу быть полезен?, +Electric bolts,TXT_RPLY0_SCRIPT02_D16676_ELECT,,,,Elektrische Bolzen,Saetas eléctricas,,Carreaux électriques,,,,ЭлектричеÑкие болты, +You got the electric bolts.,TXT_RYES0_SCRIPT02_D16676_YOUGO,,,,Du hast die elektrischen Bolzen erhalten.,Obtuviste las saetas eléctricas.,,Vous recevez les carreaux électriques.,,,,Вот твои ÑлектричеÑкие болты., +Ammo satchel,TXT_RPLY1_SCRIPT02_D16676_AMMOS,,,,Munitionstasche,Bolsa de Municiones,,Sacoche de Munitions,,,,Ранец Ð´Ð»Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов, +"Thank you, anything else?",TXT_RYES1_SCRIPT02_D16676_THANK,,,,Danke. Sonst noch etwas?,Gracias. ¿Algo más?,,"Merci, Autre chose?",,,,Благодарю. Что-нибудь ещё?, +"You can't afford that, good day to you!",TXT_RNO1_SCRIPT02_D16676_YOUCA,,,,Das kannst du dir nicht leisten. Guten Tag!,"No puedes adquirir esto, buen día.",,Vous n'avez pas assez d'argent. Bonne journée.,,,,У Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег. Ð’Ñего доброго!, +Welcome. What may I show you?,TXT_DLG_SCRIPT02_D18192_WELCO,,,,Willkommen. Was kann ich dirZeigen.,Bienvenido. ¿Qué puedo mostrarte?,,"Bienvenue, que souhaitez vous?",,,,ЗдравÑтвуй. Что-нибудь интереÑует?, +Environmental suit,TXT_RPLY0_SCRIPT02_D18192_ENVIR,,,,Schutzanzug.,Traje Ambiental,,Combinaison hazmat,,,,Защитный коÑтюм, +"Well, here you are.",TXT_RYES0_SCRIPT02_D18192_WELLH,,,,Bitte sehr.,"Bien, aquí tienes.",,Voilà pour vous.,,,,"Хорошо, бери.", +I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D18192_IMSOR,,,,"Es tut mir Leid, aber du hast nicht genug Geld dabei.","Lo siento, no tienes suficiente dinero para esto.",,Je suis désolé mais vous n'avez pas assez d'argent.,,,,"Извини, но у Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег.", +Leather armor,TXT_RPLY1_SCRIPT02_D18192_LEATH,,,Leather armour,Lederrüstung,Armadura de Cuero,,Armure en cuir,,,,ÐšÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Here you are.,TXT_RYES1_SCRIPT02_D18192_HEREY,,,,Bitte sehr.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +Perhaps some other time?,TXT_RNO1_SCRIPT02_D18192_PERHA,,,,Vielleicht ein anderes Mal?,¿Quizás en otra ocasión?,,Peut être une autre fois?,,,,"Может, в Ñледующий раз?", +Metal armor,TXT_RPLY2_SCRIPT02_D18192_METAL,,,Metal armour,Metallrüstung,Armadura de Metal,,Armure en Métal,,,,МеталличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Wear it in good health.,TXT_RYES2_SCRIPT02_D18192_WEARI,,,,Trage sie mit Stolz.,Úsala con buena salud.,,Portez la en bonne santé.,,,,ÐоÑи на здоровье., +Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D18192_COMEB,,,,"Komm zurück wenn du dir etwas leisten kannst, du Rüpel!","¡Vuelve cuando puedas comprar algo, patán! ",,"Revenez quand vous avez de l'argent, rustre!",,,,"ВернёшьÑÑ, когда поднакопишь на то, что хочешь!", +Welcome. What may I show you?,TXT_DLG_SCRIPT02_D19708_WELCO,,,,Willkommen. Was kann ich dir zeigen.,Bienvenido. ¿Qué puedo mostrarte?,,"Bienvenue, que souhaitez vous?",,,,ЗдравÑтвуй. Что-нибудь интереÑует?, +Environmental suit,TXT_RPLY0_SCRIPT02_D19708_ENVIR,,,,Schutzanzug.,Traje Ambiental,,Combinaison hazmat,,,,Защитный коÑтюм, +"Well, here you are.",TXT_RYES0_SCRIPT02_D19708_WELLH,,,,Bitte sehr.,"Bien, aquí tienes.",,Voilà pour vous.,,,,"Хорошо, бери.", +I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D19708_IMSOR,,,,"Es tut mir Leid, aber du hast nicht genug Geld dabei.","Lo siento, no tienes suficiente dinero para esto.",,Je suis désolé mais vous n'avez pas assez d'argent.,,,,"Извини, но у Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег.", +Leather armor,TXT_RPLY1_SCRIPT02_D19708_LEATH,,,Leather armour,Lederrüstung,Armadura de Cuero,,Armure en cuir,,,,ÐšÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Here you are.,TXT_RYES1_SCRIPT02_D19708_HEREY,,,,Bitte sehr.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +Perhaps some other time?,TXT_RNO1_SCRIPT02_D19708_PERHA,,,,Vielleicht ein anderes Mal?,¿Quizás en otra ocasión?,,Peut être une autre fois?,,,,"Может, в Ñледующий раз?", +Metal armor,TXT_RPLY2_SCRIPT02_D19708_METAL,,,Metal armour,Metallrüstung,Armadura de Metal,,Armure en Métal,,,,МеталличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Wear it in good health.,TXT_RYES2_SCRIPT02_D19708_WEARI,,,,Trage sie mit Stolz.,Úsala con buena salud.,,Portez la en bonne santé.,,,,ÐоÑи на здоровье., +Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D19708_COMEB,,,,"Komm zurück wenn du dir etwas leisten kannst, du Rüpel!","¡Vuelve cuando puedas comprar algo, patán! ",,"Revenez quand vous avez de l'argent, rustre!",,,,"ВернёшьÑÑ, когда поднакопишь на то, что хочешь!", +How may I assist you?,TXT_DLG_SCRIPT02_D21224_HOWMA,,,,Wie kann ich dir helfen?,¿Cómo puedo ayudarte?,,Comment puis-je vous assister?,,,,Чем могу помочь?, +Med patch,TXT_RPLY0_SCRIPT02_D21224_MEDPA,,,,Medizinische Bandage,Parche Médico,,Pansement,,,,Бинтами, +Here's your patch.,TXT_RYES0_SCRIPT02_D21224_HERES,,,,Hier ist deine Bandage,Aquí tienes tu parche.,,Voilà votre pansement.,,,,Вот они., +You need 10 gold for that.,TXT_RNO0_SCRIPT02_D21224_YOUNE,,,,Dafür brauchst du 10 Gold.,Necesitarás 10 de oro para esto.,,Il vous faut 10 pièces pour cela.,,,,Тебе не хватает 10 золотых., +Medical kit,TXT_RPLY1_SCRIPT02_D21224_MEDIC,,,,Verbandskasten,Kit Médico,,Kit médical,,,,Ðптечкой, +Thank you.,TXT_RYES1_SCRIPT02_D21224_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D21224_IWISH,,,,"Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.","Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,,"С радоÑтью бы отдал, но они по 25 золотых.", +Field surgery kit,TXT_RPLY2_SCRIPT02_D21224_FIELD,,,,Erste-Hilfe-Kasten,Kit Quirúrgico,,Kit de chirurgie,,,,Медкомплектом, +There you go. Take care now.,TXT_RYES2_SCRIPT02_D21224_THERE,,,,Bitte schön. Mach's gut.,Aquí tienes. Cuídate.,,Voilà pour vous. Faites attention à vous maintenant.,,,,ПожалуйÑта. Береги ÑебÑ!, +"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D21224_WELLM,,,,"Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?","Bien, ¿Quizás te alcance para algunos parches médicos?",,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",,,,"Тогда, может быть, купишь неÑколько бинтов?", +"I hope Macil knows what he's doing. If the Order finds out I'm helping the Front I'm as good as dead... Not that this matters to you any. The Front's medic gave me an upgrade chip for you, are you ready? ",TXT_DLG_SCRIPT02_D22740_IHOPE,,,,"Ich hoffe Macil weiß was er tut. Wenn der Orden herausfindet das ich der Front helfe, bin ich so gut wie tot... auch wenn es für dich keine Rolle spielt. Ein Sanitäter der Front hat mir einen Verbesserungschip für dich mitgegeben, bist du bereit?","Espero que Macil sepa lo que está haciendo. Si la Orden descubre que ayudo al Frente, estoy muerto... Tampoco es que te importe nada. El médico del Frente me dio un chip para ti, ¿Estás listo?",,"J'espère que Macil sait ce qu'il fait. Si l'Ordre se rend compte que j'aide le Front, c'est comme ci j'étais mort.. bon, cela ne vous importe pas. Le médecin du Front m'a donnée une puce d'augmentation pour vous. Etes vous prêt?",,,,"ÐадеюÑÑŒ, ÐœÑйÑил знает, что делает. ЕÑли Орден обнаружит, что Ñ Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÑŽ повÑтанцам, Ñ Ð½Ðµ жилец... Ñ…Ð¾Ñ‚Ñ Ñ‚ÐµÐ±Ðµ-то какое дело. Медик Ð¡Ð¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð» мне Ñтот чип Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ. Ты готов? +", +"Yes, I'm ready.",TXT_RPLY0_SCRIPT02_D22740_YESIM,,,,"Ja, ich bin bereit.","Si, estoy listo.",,"Oui, je suis prêt.",,,,"Да, готов.", +"Well then, this won't take but a second. There, done already.",TXT_RYES0_SCRIPT02_D22740_WELLT,,,,"Nun dann, das wird nicht mal eine Sekunde dauern. So, bereits erledigt.","Bueno entonces. Esto no tomará si no un segundo. Bien, hecho.","Bueno entonces. Esto no tomará sino un segundo. Bien, hecho.","Bon, cela ne prendra qu'une seconde. Voilà, c'est fait.",,,,"Хорошо. Секундочку... Ð’ÑÑ‘, готово.", +How may I assist you?,TXT_DLG_SCRIPT02_D24256_HOWMA,,,,Wie kann ich dir helfen?,¿Cómo puedo ayudarte?,,Comment puis-je vous assister?,,,,Чем могу тебе помочь?, +Med patch,TXT_RPLY0_SCRIPT02_D24256_MEDPA,,,,Medizinische Bandage,Parche Médico,,Pansement,,,,Бинтами, +Here's your patch.,TXT_RYES0_SCRIPT02_D24256_HERES,,,,Hier ist deine Bandage,Aquí tienes tu parche.,,Voilà votre pansement.,,,,Вот они., +You need 10 gold for that.,TXT_RNO0_SCRIPT02_D24256_YOUNE,,,,Dafür brauchst du 10 Gold.,Necesitarás 10 de oro para esto.,,Il vous faut 10 pièces pour cela.,,,,Тебе не хватает 10 золотых., +Medical kit,TXT_RPLY1_SCRIPT02_D24256_MEDIC,,,,Verbandskasten,Kit Médico,,Kit médical,,,,Ðптечкой, +Thank you.,TXT_RYES1_SCRIPT02_D24256_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D24256_IWISH,,,,"Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.","Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,,"С радоÑтью бы отдал, но они по 25 золотых.", +Field surgery kit,TXT_RPLY2_SCRIPT02_D24256_FIELD,,,,Erste-Hilfe-Kasten,Kit Quirúrgico,,Kit de chirurgie,,,,Медкомплект, +There you go. Take care now.,TXT_RYES2_SCRIPT02_D24256_THERE,,,,Bitte schön. Mach's gut.,Aquí Tienes. Cuídate.,,Voilà pour vous. Faites attention à vous maintenant.,,,,ПожалуйÑта. Береги ÑебÑ!, +"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D24256_WELLM,,,,"Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?","Bien, ¿Quizás te alcance para algunos parches médicos?",,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",,,,"Тогда, может быть, купишь неÑколько бинтов?", +"Hello stranger, I haven't seen you around here before. Let me give you a piece of free advice. I'd be careful if I were you. The Order does not tolerate free will, and their justice is swift.",TXT_DLG_SCRIPT02_D25772_HELLO,,,,"Hallo, Fremder. Ich habe dich hier vorher noch nie gesehen. Lass mich dir einen kostenlosen Rat geben. An deiner Stelle wäre ich vorsichtig. Der Orden duldet keinen freien Willen und sie greifen hart durch.","Hola extranjero, no te he visto por aquí antes. Déjame darte un consejo gratis. Tendría cuidado si fuera tú. La orden no tolera el libre albedrío, y su justicia es veloz.",,"Bien le bonjour, étranger. On ne vous a pas encore vu dans ce coin. Laissez-moi vous donner un petit conseil. Je ferais attention si j'étais vous. L'Ordre ne tolère pas le libre arbitre et leur justice est fulgurante.",,,,"Привет, незнакомец. Что-то Ñ Ð½Ðµ видел Ñ‚ÐµÐ±Ñ Ñ‚ÑƒÑ‚ раньше. Позволь дать тебе беÑплатный Ñовет: Ñ Ð½Ð° твоём меÑте был бы пооÑторожнее. Орден не терпит неповиновениÑ, и их правоÑудие быÑтро.", +What's the word?,TXT_RPLY0_SCRIPT02_D25772_WHATS,,,,Was erzählt man sich so?,¿Qué se dice por aquí?,,C'est quoi la rumeur?,,,,ЕÑÑ‚ÑŒ новоÑти?, +The word is... The sewers hold more than just rats and robots.,TXT_RYES0_SCRIPT02_D25772_THEWO,,,,"Man erzählt sich, dass die Kanalisation mehr als Ratten und Roboter zu bieten hat.",Se dice que... Las alcantarillas albergan más que solo ratas y robots.,,La rumeur est.. Que les égouts cachent quelque chose de plus gros que des rats et des robots.,,,,Ð’ канализации еÑÑ‚ÑŒ не только крыÑÑ‹ и роботы., +What can I do for you now?,TXT_DLG_SCRIPT02_D27288_WHATC,,,,Was kann ich jetzt für dich tun?,¿Qué puedo hacer por ti?,,Que puis-je faire pour vous?,,,,Что Ñ Ð¼Ð¾Ð³Ñƒ Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ Ñделать?, +More info.,TXT_RPLY0_SCRIPT02_D27288_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,РаÑÑказать больше., +The Governor is a simple reminder to us that we aren't free people anymore.,TXT_RYES0_SCRIPT02_D27288_THEGO,,,,"Der Gouverneur ist eine einfache Erinnerung daran, das wir keine freien Menschen mehr sind.",El gobernador es un simple recordatorio de que ya no somos personas libres.,,Le gouverneur n'est qu'un exemple parmi d'autres pour nous montrer que ne nous somme plus un peuple libre.,,,,"Губернатор — живое напоминание, что мы больше не Ñвободные люди.", +Come back when you get some gold.,TXT_RNO0_SCRIPT02_D27288_COMEB,,,,"Komm zurück, wenn du etwas Gold hast.",Vuelve cuando hayas obtenido algo de oro.,,Revenez quand vous avez de l'argent.,,,,"ВозвращайÑÑ, когда у Ñ‚ÐµÐ±Ñ Ð±ÑƒÐ´ÐµÑ‚ золото.", +"Well, you're asking a lot of questions for someone who's not trying to die. Make sure you don't go and get yourself killed, or worse.",TXT_DLG_SCRIPT02_D28804_WELLY,,,,"Hmm, du stellst aber ziemlich viele Fragen für jemand der nicht versucht zu sterben. Lass dich nicht umbringen, oder schlimmeres.","Bueno, estás haciendo muchas preguntas para ser alguien que no está tratando de morir. Asegúrate que no vayas a hacer que te maten o algo peor.",,"Vous demandez beaucoup de questions pour quelqu'un qui n'essaie pas de se faire tuer. Essaie donc de ne pas te faire descendre, ou pire..",,,,"Ты задаёшь Ñлишком много вопроÑов Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, кто не хочет Ñдохнуть. Перед тем, как выйти отÑюда, проверь Ñвоё оружие.", +More info.,TXT_RPLY0_SCRIPT02_D28804_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,Говори дальше., +There's more to the Order than meets the eye.,TXT_RYES0_SCRIPT02_D28804_THERE,,,,An dem Orden ist mehr dran als man auf den ersten Blick denkt.,Hay más de la Orden de lo que parece.,Hay más de La Orden de lo que parece.,L'Ordre cache bien son jeu.,,,,"Орден — нечто большее, чем кажетÑÑ.", +We'll talk when you get gold!,TXT_RNO0_SCRIPT02_D28804_WELLT,,,,"Wir werden reden, wenn du Gold hast!",¡Hablaremos cuando traigas oro!,,On parlera quand tu auras des sous!,,,,"Поговорим, когда принеÑешь золото!", +"That's it friend, the well of knowledge has run dry. I've told you more than I should have anyway. Good luck... And don't come back.",TXT_DLG_SCRIPT02_D30320_THATS,,,,"Das war's mein Freund, der Brunnen der Weisheit ist versiegt. Ich habe dir sowieso mehr erzählt als ich sollte. Viel Glück... und komm nicht zurück.",Ya está amigo. El pozo del conocimiento se ha secado. De todas formas te he dicho más de lo que debería. Buena suerte ... y no vuelvas.,,"Eh bien voilà, mon ami, le puits de la connaîssance s'est enfin asséché.. Je t'en ai dit plus que je n'aurai du, de toutes manières! Bonne chance.. Et ne reviens pas!",,,,"Это вÑÑ‘, дружище. Кладезь мудроÑти иÑчерпан. Я и так раÑÑказал тебе больше, чем Ñледовало. Удачи... и не возвращайÑÑ.", +"Hey, I'm only here in case of an emergency. If the core breaches, then I make sure no one gets in... Or out.",TXT_DLG_SCRIPT02_D31836_HEYIM,,,,"Hey, ich bin nur für den Fall eines Notfalls hier. Im Falle eines Kernbruchs sorge ich dafür das niemand rein kommt... oder raus.","Oye, sólo estoy aquí en caso de una emergencia. Si el núcleo se rompe, entonces me aseguro de que nadie entre... o salga.",,"Hé, je ne suis là qu'en cas d'urgence. Si le coeur a une brèche, il faut que je fasse en sorte que rien ne rentre.. Ou ne sorte.",,,,"Эй, Ñ Ñ‚ÑƒÑ‚ только на Ñлучай аварии. ЕÑли реактор даÑÑ‚ течь, Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть уверен, что никто не войдёт... и не выйдет.", +"Watch your step, peasant!",TXT_DLG_SCRIPT02_D33352_WATCH,,"Not sure with the translation of ""peasant"" in this case. +[GZ] As long as it is meant as an insult, ""Bauer"" is fine.",,"Pass auf wo du hintrittst, Bauer!","¡Cuida por donde caminas, campesino!",,"Regarde où tu va, paysan!",,,,"Смотри, куда прёшь, рабочий!", +We're going to kill you! ,TXT_DLG_SCRIPT02_D34868_WEREG,,,,Wir werden dich umbringen!,"¡Vamos a matarte! +",,On va te descendre!,,,,ГотовьÑÑ Ðº Ñмерти!, +Who in the blazes are you? No one's supposed to be loitering about in this area!,TXT_DLG_SCRIPT02_D36384_WHOIN,,,,Wer zum Teufel bist du? Hier soll doch eigentlich niemand rumschnüffeln!,¿Quién diantres eres tú? ¡Se supone que nadie debería de estar merodeando por esta área!,¿Quién demonios eres tú? ¡Se supone que nadie debería de estar merodeando por esta área!,Qu'est ce que c'est ça? Que faites vous ici? Personne n'est sensé se trouver dans cette zone!,,,,"Кто Ñ‚Ñ‹, черт побери, такой? Ðикому не разрешено тут шлÑÑ‚ÑŒÑÑ!", +"You there, nobody's allowed in here. Move along!",TXT_DLG_SCRIPT02_D37900_YOUTH,,,,"Hey, du da. Hier darfst du nicht rein. Geh weiter!","¡Oye tú! No está permitido que estés aquí, ¡Muévete!",,"Vous, là, personne n'est autorisé à traîner ici, dégagez!",,,,"Эй, Ñ‚Ñ‹! Ðикому не позволено тут ошиватьÑÑ. Проваливай!", +Irale will set you right up!,TXT_DLG_SCRIPT02_D39416_IRALE,,,,Irale wird sich darum kümmern!,¡Irale te pondrá a punto!,¡Irale te pondrá listo!,Irale a ce qu'il te faut!,,,,ИрÑйл Ñнабдит Ñ‚ÐµÐ±Ñ Ð²Ñем необходимым!, +I'm kinda a talent broker for the rebels. A guy who's as good as you could make a lot of gold... If you hooked up with the right people.,TXT_DLG_SCRIPT02_D40932_IMKIN,,,,"Ich bin sowas wie ein Talentsucher für die Rebellen. Jemand, der so gut ist wie du kann hier eine Menge Gold verdienen... wenn du mit den richtigen Leuten in Verbindung stehst.",Soy algo así como un buscador de talento para los rebeldes. Alguien que es tan bueno como tú podría ganar mucho oro... Si te juntas con las personas adecuadas.,,"Je suis une sorte de chasseur de têtes pour les rebelles. Un type comme toi pourrait se faire pas mal de fric... Avec les bons contacts, bien entendu.",,,,"Я, Ñкажем так, вербовщик повÑтанцев. Такой парень, как Ñ‚Ñ‹, может неплохо заработать... ЕÑли ÑоÑтыкуетÑÑ Ñ Ð½ÑƒÐ¶Ð½Ñ‹Ð¼Ð¸ людьми.", +I'm interested.,TXT_RPLY0_SCRIPT02_D40932_IMINT,,,,Ich bin interessiert.,Me interesa.,,Je suis intéressé.,,,,Я заинтригован., +Screw the rebels!,TXT_RPLY1_SCRIPT02_D40932_SCREW,,,,Scheiß auf die Rebellen!,¡Al demonio los rebeldes!,,Je m'en fous des rebelles!,,,,К чёрту повÑтанцев!, +"No, no second chance. Oh guards, kill him.",TXT_DLG_SCRIPT02_D42448_NONOS,,,,"Nein, keine zweite Chance. Oh, Wachen, tötet ihn.","No, no hay otra oportunidad. Oh guardias, mátenlo.",,"Non, non, pas de deuxième chance. Gardes, tuez-le.",,,,"Ðет, никакого второго шанÑа. Эй, Ñтража, убейте его.", +Good choice. The Order's sanctuary by the river is their unofficial torture chamber. Hidden inside there's a golden chalice. You swipe it and reap your reward.,TXT_DLG_SCRIPT02_D43964_GOODC,,,,Gute Wahl. Das Heiligtum des Ordens bei dem Fluss ist ihre inoffiziele Folterkammer. Darin versteckt ist ein goldener Kelch. Du klaust ihn und erntest deinen Lohn.,Buena elección. El santuario de la Orden junto al río es su cámara de tortura no oficial. Escondido adentro hay un cáliz dorado. Tráemelo y recoges tú recompensa.,,Bon choix. Le sanctuaire de l'ordre près de la rivière est leur chambre torture.. officieusement. A l'intérieur se trouve un calice en or. Récupérez le et venez prendre votre récompense.,,,,Правильный выбор. Ð’ ÑвÑтилище Ордена у реки — там у них неглаÑÐ½Ð°Ñ ÐºÐ°Ð¼ÐµÑ€Ð° пыток — ÑпрÑтана Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ñ‡Ð°ÑˆÐ°. Ты крадёшь её и получаешь Ñвою награду., +How am I supposed to do that?,TXT_RPLY0_SCRIPT02_D43964_HOWAM,,,,Wie soll ich das anstellen?,¿Cómo se supone que debo hacer eso?,,Comment est-ce que je suis sensé faire ça?,,,,И как Ñ Ñто Ñделаю?, +"Here's a crossbow, just aim straight and --splat--. Remember, grab the fancy cup and get to the tavern.",TXT_DLG_SCRIPT02_D45480_HERES,,,,"Hier ist eine Armbust, einfach gerade zielen und --Platsch--. Denk dran, schnapp dir den schicken Kelch und dann ab zur Taverne.","Toma una ballesta, solo apunta en línea recta y --splat--. Recuerda, toma la bonita copa y ven a la taberna.",,Voilà une arbalète. Vous avez juste à viser droit et paf! Souvenez-vous. Prenez le goblet et ramenez le à la taverne.,,,,Вот арбалет — проÑто прицельÑÑ Ð¸ «шлеп!» Запомни — хватаешь чашу и возвращаешьÑÑ Ð² таверну., +Cool. I'll get it.,TXT_RPLY0_SCRIPT02_D45480_COOLI,,,,Cool. Ich werde ihn holen.,Genial. La conseguiré.,,Ok. Je m'en occupe.,,,,"КлаÑÑ. Я доÑтану её. +", +What are you waiting for? Bring me that chalice.,TXT_DLG_SCRIPT02_D46996_WHATA,,,,Worauf wartest du noch? Bring mir den Kelch.,¿A que estas esperando? Tráeme ese cáliz.,¿Qué estas esperando? Tráeme ese cáliz.,Qu'attendez vous? Récupérez-moi ce calice.,,,,Чего Ñ‚Ñ‹ ждешь? ПринеÑи мне Ñту чашу., +"Hey, I know, kinda looks like a set-up. I would never do that to such a great killing machine. Got the item? Great! Now get ready, gold and glory just like I promised. Take this key and the Governor will reward you.",TXT_DLG_SCRIPT02_D48512_HEYIK,,,,"Hey, ich weiß, es sieht anscheinend wie eine Falle aus, aber so etwas würde ich einer so großeartigen Tötungsmaschine nicht antun. Hast du ddas Ding? Großartig! Nun mach dich bereit, Geld und Ruhm, genau wie ich es dir versprochen habe. Nimm diesen Schlüssel und der Gouverneur wird dich belohnen.","Si, lo sé, esto parece un timo. Nunca le haría eso a una gran máquina de matar. ¿Tienes el objeto? ¡Genial! Ahora prepárate, oro y gloria tal como lo prometí. Toma esta llave y el gobernador te recompensará.",,"Hé, je sais que ça à l'air d'être un coup monté, mais je ne ferais jamais ça à une aussi bonne machine à tuer. Vous avez le butin? Excellent! Préparez vous, l'or et la gloire vous attend, comme promis. Prenez cette clé et le gouverneur vous récompensera.",,,,"Эй, Ñ Ð·Ð½Ð°ÑŽ, похоже на подÑтаву. Ðо Ñ Ñ‚Ð°ÐºÐ¾Ð¹ машиной Ð´Ð»Ñ ÑƒÐ±Ð¸Ð¹Ñтв, как Ñ‚Ñ‹, Ñ Ð±Ñ‹ никогда Ñтого не Ñделал. ДоÑтал то, что Ñ Ð¿Ñ€Ð¾Ñил? Отлично! Ð¢ÐµÐ±Ñ Ð¶Ð´Ñ‘Ñ‚ золото и Ñлава, как Ñ Ð¸ обещал. Возьми Ñтот ключ, губернатор лично наградит тебÑ.", +He'd better. For your sake!,TXT_RPLY0_SCRIPT02_D48512_HEDBE,,,,Das macht er besser. Deinetwillen!,Más le vale. ¡Por tú propio bien!,Será lo mejor. ¡Por tú propio bien!,"Il a intérêt, pour votre bien!",,,,ÐадеюÑÑŒ. Это в твоих интереÑах!, +What! Where's my money?,TXT_RPLY1_SCRIPT02_D48512_WHATW,,,,Was! Wo ist mein Geld?,¡Qué! ¿Dónde está mi dinero?,,Quoi? Où est mon argent!,,,,Что? Где мои деньги?, +"Get lost kid, you bother me.",TXT_DLG_SCRIPT02_D50028_GETLO,,,,"Verzieh dich Jungchen, du störst mich.","Piérdete mocoso, me molestas.",,"Dégage, gamin, tu m'agaces.",,,,"Пропади, малой. Ты Ð¼ÐµÐ½Ñ Ñ€Ð°Ð·Ð´Ñ€Ð°Ð¶Ð°ÐµÑˆÑŒ.", +"No second chance. Oh guards, kill him.",TXT_DLG_SCRIPT02_D51544_NOSEC,,,,"Keine zweite Chance. Oh Wachen, tötet ihn.","No hay otra oportunidad. Oh guardias, mátenlo.",,"Pas de deuxième chance. Gardes, tuez-le.",,,,"Ðет, никакого второго шанÑа. Эй, Ñтража, убейте его.", +"First they slaughter thousands, now they want all able-bodied peasants for unspecified 'tests'. How does the Order expect me to keep the peace? What the hell do you want?",TXT_DLG_SCRIPT02_D53060_FIRST,,,,Zuerst metzeln sie Tausende nieder und nun wollen sie alle gesunden Bauern für unspezifierte „Testsâ€. Wie kann es der Orden nur so von mir verlangen Frieden zu bewahren? Was zum Teufel willst du?,"Primero matan a miles, ahora quieren a todos los campesinos sanos para 'Pruebas' no especificadas. ¿Cómo espera la orden que yo guarde la paz? ¿Qué demonios quieres?",,"D'abord ils en massacrent des miliers, maintenant ils veulent tous les paysans en bonne santé pour leur ""tests"" dont personne ne sait rien. Comment est-ce que l'ordre veut que je garde la paix? Qu'est-ce que vous voulez?",,,,"Сначала они убивают людей Ñ‚Ñ‹ÑÑчами, а теперь им нужны вÑе пригодные рабочие Ð´Ð»Ñ ÐºÐ°ÐºÐ¸Ñ…-то «ÑкÑпериментов»! И Орден ещё хочет, чтобы Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°Ð» мир? Какого чёрта тебе нужно?", +"A prison pass, let's deal.",TXT_RPLY0_SCRIPT02_D53060_APRIS,,,,Ein Gefängnispass. Lassen Sie uns verhandeln.,"Un pase de la prisión, negociemos.",,Un passe de la prison. Faisons affaires.,,,,ПропуÑк в тюрьму. Заключим Ñделку., +"I like you already. I have two chores that I don't want to do myself. One is messy, the other bloody.",TXT_DLG_SCRIPT02_D54576_ILIKE,,,,"Du gefällst mir bereits. Ich habe zwei lästige Angelegenheiten, um die ich mich nicht selber kümmern möchte. Die eine davon ist dreckig, die andere blutig.","Ya me caes bien. Tengo dos tareas que no quiero hacer yo mismo. Una es sucia, la otra +sangrienta.",,"Vous me plaisez déjà. J'ai deux corvées que je n'ai pas envie de faire. Une est.. Sale, l'autre est sanglante.",,,,"Мне нравитÑÑ Ñ‚Ð²Ð¾Ð¹ наÑтрой! У Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ два неприÑтных дела, которыми Ñ Ð½Ðµ хочу заниматьÑÑ Ñам. Одно грÑзное, а другое кровавое.", +Call me the cleaner,TXT_RPLY0_SCRIPT02_D54576_CALLM,,,,Nennen Sie mich den Säuberer,Llámame el limpiador,,Appelez-moi le nettoyeur.,,,,Я — лучший чиÑтильщик!, +I'm not squeamish,TXT_RPLY1_SCRIPT02_D54576_IMNOT,,,,Ich bin nicht zimperlich.,No soy escrupuloso,,J'ai pas peur de me tacher les mains.,,,,Я не боюÑÑŒ крови., +One of my minions is stealing power with a tap on the mains somewhere. Find it and truncate his supply and I'll provide you with what you want. Bring me something as a token.,TXT_DLG_SCRIPT02_D56092_ONEOF,,,,"Einer meiner Untertanen zapft irgendwo Strom ab. Finde die Anzapfung und kappe sie. Falls du Erfolg hast, kriegst du was du brauchst. Aber bring mir einen Beweis mit!","Uno de mis secuaces está robando energía interviniendo la red en algún lugar. Encuéntralo, trunca su suministro y te proporcionaré lo que quieras. Tráeme algo como prueba de que está hecho.",,Un de mes larbins pompe de l'électricité avec une connection pirate dans les transformateurs là haut. Trouvez là et coupez sa connection. Je vous donnerai ce que vous voulez. Ramenez moi une preuve.,,,,"Кто-то из моих подчинённых отводит Ñнергию откуда-то из питающей Ñети. Ðайди и отключи Ñту уÑтановку, тогда получишь то, за чем пришёл. И принеÑи мне что-нибудь в качеÑтве доказательÑтва.", +Where do I find this tap?,TXT_RPLY0_SCRIPT02_D56092_WHERE,,,,Wo finde ich die Anzapfung?,¿Dónde encuentro la intervención?,,Où est-ce que je trouve cette connection?,,,,Где может находитьÑÑ Ñта уÑтановка?, +"If I knew, it wouldn't be a chore now would it? Use your charm, but shut off his supply.",TXT_DLG_SCRIPT02_D57608_IFIKN,,,,"Wenn ich das wüsste, wäre das keine lästige Angelegenheit, nicht wahr? Benutze deinen Charme, aber schalte seine Versorgung aus.","Si lo supiera, no sería un recado, ¿no? Usa tu encanto, pero corta su suministro. +","Si lo supiera, no sería un problema ahora, ¿verdad? Usa tu encanto, pero corta su suministro. +","Si je le savais, ce ne serait pas une corvée, non? Utiliser votre charme si il le faut, mais coupez cette connection.",,,,"ЕÑли бы Ñ Ð·Ð½Ð°Ð», то ÑправилÑÑ Ð±Ñ‹ Ñ Ñтим Ñам, как Ñчитаешь? Делай что хочешь, но прекрати утечку Ñнергии.", +"Tell you what, there's a lying sack named Derwin who has been selling children to the Order. I won't tolerate that kind of depravity. Not without my cut. Derwin works in the warehouse. Kill him and bring me his, ear, and I'll see what I can do.",TXT_DLG_SCRIPT02_D59124_TELLY,,,,"Ich sag dir was, da gibt es so einen lügenden Kerl namens Derwin, der Kinder an den Orden verkauft hat. Ich kann so eine Verdorbenheit nicht tolerieren. Nicht ohne meinen Anteil. Derwin arbeitet im Lagerhaus. Töte ihn und bring mir sein Ohr und ich werde sehen was ich tun kann.","Te diré qué, hay un saco mentiroso llamado Derwin que ha estado vendiendo niños a La Orden. No toleraré ese tipo de depravación. No sin mi parte. Derwin trabaja en el almacén. Mátalo y tráeme su, oreja, y veré qué puedo hacer.",,"Eh bien, il y a une raclure appelée Derwin qui vend des enfants à l'Ordre. Je ne tolère pas ce type d'atrocité, du moins pas sans ma part des frais. Derwin travaille dans l'entrepôt. Tuez-le et ramenez moi son oreille, je verrais ce que je peux faire pour vous.",,,,"Лживый мешок дерьма по имени дервин продаёт Ордену детей. Я не терплю такой безнравÑтвенноÑти, оÑобенно когда Ð¼ÐµÐ½Ñ Ð½Ðµ берут в долю. Дервин работает на Ñкладе, убей его и принеÑи мне его... ухо, и Ñ Ð¿Ð¾Ñмотрю, чем cмогу тебе помочь.", +How do I get in?,TXT_RPLY0_SCRIPT02_D59124_HOWDO,,,,Wie komme ich hinein?,¿Cómo entro?,,Comment j'y rentre?,,,,Как мне туда попаÑÑ‚ÑŒ?, +"This key will get you into the power station. On second thought, cut off the ear and then kill him. Much better.",TXT_DLG_SCRIPT02_D60640_THISK,,,,"Dieser Schlüssel wird dich ins Kraftwerk bringen. Andererseits, schneide ihm erst das Ohr ab und dann töte ihn. Viel besser.","Esta llave te llevará a la central eléctrica. Pensándolo bien, córtale la oreja y luego mátalo. Mucho mejor.",,"Cette clé vous laissera entrer dans la centrale électrique. Maintenant que j'y pense, coupez-lui l'oreille, puis tuez-le. Ca me plaît plus comme ça.",,,,"С Ñтим ключом Ñ‚Ñ‹ пройдёшь на ÑлектроÑтанцию. Ð, да, Ñ Ñ‚ÑƒÑ‚ подумал — Ñначала отрежь ему ухо, а затем убей. Так будет намного лучше.", +"Oh, I just love souvenirs. Here, this will get you into the prison. Talk to Warden Montag. Whatever you do after that, I don't want to know.",TXT_DLG_SCRIPT02_D62156_OHIJU,,,,"Oh, ich liebe Souvenirs. Hier, damit kommst du in das Gefängnis. Sprich mit Direktor Montag. Was du danach machen musst, weiß ich nicht.","Oh, me encantan los recuerdos. Toma, esto te llevará a la prisión. Habla con el director Montag. Lo que hagas después de eso, no quiero saberlo.",,"Oh, j'adore les souvenirs. Voilà, ça vous laissera entrer dans la prison. Parlez au gardien Montag. Ce que vous faites après, je m'en fous complètement.",,,,"О, как Ñ Ð»ÑŽÐ±Ð»ÑŽ Ñувениры! Вот твой пропуÑк в тюрьму. ОбратиÑÑŒ к тюремщику Монтагу, а что Ñ‚Ñ‹ потом будешь делать, Ñ Ð¸ знать не желаю.", +Thanks.,TXT_RPLY0_SCRIPT02_D62156_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"Give you a hint. When I stop talking to you, you leave.",TXT_DLG_SCRIPT02_D63672_GIVEY,,,,"Hier mal ein Tipp. Wenn ich aufgehört habe mit dir zu reden, dann gehst du.","Un consejo. Cuando dejo de hablarte, te vas.",,"Petit conseil. Quand j'arrète de vous parler, vous sortez d'ici.",,,,"Дам тебе подÑказку: когда Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ñƒ говорить, Ñ‚Ñ‹ уходишь.", +Do you have good news for me? I'm all ears.,TXT_DLG_SCRIPT02_D65188_DOYOU,,,,Hast du gute Neuigkeiten für mich? Ich bin ganz Ohr.,¿Tienes buenas noticias para mí? Soy todo oídos.,,De bonnes nouvelles? Mes oreilles sont à vous.,,,,ЕÑÑ‚ÑŒ Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ðµ новоÑти? Слушаю во вÑе уши., +The deed is done!,TXT_RPLY0_SCRIPT02_D65188_THEDE,,,,Es ist geschehen!,¡El trato está hecho!,,C'est bel est bien fait.,,,,Дело Ñделано!, +"Oh, I just love souvenirs. Here, this will get you into the prison. Talk to Warden Montag. Whatever you do after that, I don't want to know.",TXT_DLG_SCRIPT02_D66704_OHIJU,,,,"Oh, ich liebe Souvenirs. Hier, damit kommst du in das Gefängnis. Sprich mit Direktor Montag. Was du danach machen musst, weiß ich nicht.","Oh, me encantan los recuerdos. Toma, esto te llevará a la prisión. Habla con el director Montag. Que hagas después de eso, no quiero saberlo.",,"Oh, j'adore les souvenirs. Voilà, ça vous laissera entrer dans la prison. Parlez au gardien Montag. Ce que vous faites après, je m'en fous complètement.",,,,"О, как Ñ Ð»ÑŽÐ±Ð»ÑŽ Ñувениры! Вот твой пропуÑк в тюрьму. ОбратиÑÑŒ к тюремщику Монтагу, а что Ñ‚Ñ‹ потом будешь делать, Ñ Ð¸ знать не желаю.", +Fine by me.,TXT_RPLY0_SCRIPT02_D66704_FINEB,,,,Ist mir recht.,Bien por mi.,,Ca me convient.,,,,По рукам!, +"So you're the fool who stole the chalice? I'm going to have you arrested as a rebel thief... Thereby enhancing my position with the Order. How does it feel to be an unwitting pawn? I'll give you a hint, it's gonnà hurt. ",TXT_DLG_SCRIPT02_D68220_SOYOU,,,,"So, du bist also der Narr der den Kelch gestohlen hat? Ich werde dich als Dieb der Rebellen verhaften lassen und dadurch meine Position im Orden verbessern. Wie fühlt es sich an als ahnungslose Schachfigur? Ich geb' dir einen Tipp: Es wird wehtun.","¿Así que tú eres el necio que robó el cáliz? Voy a arrestarte como ladrón rebelde... Con ello mejorando mi posición con la Orden. ¿Cómo se siente ser un inconsciente peón? Te daré una pista, va a doler.","¿Tú eres quién robó el cáliz? Voy a arrestarte como ladrón rebelde... Con ello, mejoraré mi posición con La Orden. ¿Cómo se siente ser un peón? Te daré una pista, te va a doler.","Vous êtes l'abruti qui a volé le calice? Maintenant il faut que je vous arrète comme voleur rebelle.. Ca va aider ma position dans l'Ordre. Comment ça fait d'être un pion ignorant? Petite idée, ça va faire mal.",,,,"Так Ñ‚Ñ‹ и еÑÑ‚ÑŒ тот недоумок, что украл чашу? Я передам тебÑ, как вора повÑтанцев, Ордену, чтобы укрепить Ñвои Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð½Ð¸Ð¼. Каково чувÑтвовать ÑÐµÐ±Ñ Ð±ÐµÐ·Ð¼Ð¾Ð·Ð³Ð»Ð¾Ð¹ пешкой? Дам тебе подÑказку: очень больно! +", +It sucks!,TXT_RPLY0_SCRIPT02_D68220_ITSUC,,,,Scheiße!,¡Apesta!,,Quelle merde!,,,,Чтоб Ñ‚Ñ‹ Ñдох!, +For you it does.,TXT_RYES0_SCRIPT02_D68220_FORYO,,,,Du steckst ganz tief drin.,Para ti si.,,"Pour vous, en effet.",,,,Скоро Ñдохнешь Ñ‚Ñ‹., +Harris promised me money!,TXT_RPLY1_SCRIPT02_D68220_HARRI,,,,Harris hat mir Geld versprochen!,¡Harris me prometió dinero!,,Harris m'a promis de l'argent!,,,,Ð¥Ð°Ñ€Ñ€Ð¸Ñ Ð¾Ð±ÐµÑ‰Ð°Ð» мне деньги!, +Too bad. The only thing you're getting is dead!,TXT_RYES1_SCRIPT02_D68220_TOOBA,,,,Jammerschade. Das Einzige was du bekommen wirst ist der Tod!,Que mal. ¡Lo único que vas a tener es la muerte!,Que mal. ¡Lo único que obtendrás es la muerte!,"C'est dommage. Tout ce que vous gagnez, c'est une mort rapide!",,,,"Увы. Ð’ÑÑ‘, что Ñ‚Ñ‹ получишь, — Ñто Ñмерть!", +"In a small world, word travels fast. I hear you just removed some obstacles from your path. Nice work. Are you interested in some more lucrative projects?",TXT_DLG_SCRIPT02_D69736_INASM,,,,"Mir sind da Gerüchte zu Ohren gekommen, dass du gerade ein paar Hindernisse aus dem Weg geräumt hast. Gute Arbeit. Bist du an lukrativeren Angeboten interessiert?","En un mundo pequeño, las palabras viajan rápido. Escuché que acabas de quitar algunos obstáculos de tu camino. Buen trabajo. ¿Estás interesado en proyectos más lucrativos?",,"Dans un petit monde, les rumeurs courent vite. J'entends que vous avez.. enlevé certains obstacles de votre chemin. Bon travail. Vous seriez intéressé par des projets plus lucratifs?",,,,"Мир теÑен, и новоÑти разлетаютÑÑ Ð±Ñ‹Ñтро. Я Ñлышал, как Ñ‚Ñ‹ только что убрал пару препÑÑ‚Ñтвий Ñо Ñвоего пути. Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°. ЗаинтереÑован в более прибыльных занÑтиÑÑ…?", +"Sure, why not.",TXT_RPLY0_SCRIPT02_D69736_SUREW,,,,"Sicher, warum nicht.","Por supuesto, porque no.",,"Ouais, pourquoi pas.",,,,"Конечно, почему бы и нет.", +No thanks.,TXT_RPLY1_SCRIPT02_D69736_NOTHA,,,,Nein danke.,No gracias.,,Non merci.,,,,"Ðет, ÑпаÑибо.", +Then get lost!,TXT_RYES1_SCRIPT02_D69736_THENG,,,,Dann verzieh dich!,¡Entonces piérdete!,,Alors dégage!,,,,, +"Fool! Guards, rid me of this meddlesome peon.",TXT_DLG_SCRIPT02_D71252_FOOLG,,,,"Du Narr! Wachen, entledigt mich von diesem lästigen Tagelöhner.","¡Insensato! Guardias, líbrenme de este entrometido peón.","¡Tonto! Guardias, líbrenme de este entrometido peón.","Idiot! Gardes, débarassez-moi de ce pion embêtant!",,,,"Глупец! Стража, избавьте Ð¼ÐµÐ½Ñ Ð¾Ñ‚ Ñтого недоумка.", +"Good. Some uh, friends of mine need someone silenced. Beldin is being held by the Order in their sanctuary. There's a rarely used entrance by a small pier off the river which is unguarded. Get in, shut him up, and bring his ring back to me as proof.",TXT_DLG_SCRIPT02_D72768_GOODS,,,,"Gut. Einige, äh, Freunde von mir müssen zum Schweigen gebracht werden. Beldin wird vom Orden im Heiligtum gefangen gehalten. Es gibt dort einen selten benutzen Eingang bei einem kleinen Pier am Fluss, welcher unbewacht ist. Geh rein, mach ihn kalt und bringe mir seinen Ring als Beweis zurück.","Bien. Algunos uh, amigos míos necesitan a alguien silenciado. Beldin es retenido por La Orden en su santuario. Hay una entrada rara vez utilizada por un pequeño muelle frente al río que está sin vigilancia. Entra, cállalo y tráeme su anillo como prueba.",,"Bien. Certains... amis à moi demandent à ce que quelqu'un arrète de parler. Beldin est retenu par l'Ordre dans leur sanctuaire. Il y a une entrée rarement utilisée près d'un ponton près de la rivièer qui n'est pas gardée. Entrez, coupez-lui le sifflet et ramenez moi son anneau comme preuve.",,,,"Хорошо. Ðекоторые мои, Ñ-Ñ-Ñ, приÑтели, хотÑÑ‚, чтобы кое-кто замолчал. Орден держит Ð¿Ñ€ÐµÐ´Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ имени Белдин в Ñвоём ÑвÑтилище. Ðа берегу реки еÑÑ‚ÑŒ вход, который редко иÑпользуетÑÑ, а потому не охранÑетÑÑ. ПробериÑÑŒ внутрь, заÑтавь Ð¿Ñ€ÐµÐ´Ð°Ñ‚ÐµÐ»Ñ Ð·Ð°Ð¼Ð¾Ð»Ñ‡Ð°Ñ‚ÑŒ навÑегда и принеÑи мне его кольцо в качеÑтве доказательÑтва.", +Will it be worth the effort?,TXT_RPLY0_SCRIPT02_D72768_WILLI,,,,Wird es die Mühe denn wert sein?,¿Valdrá la pena el esfuerzo?,,Est-ce que ça en vaudra l'effort?,,,,Оно того Ñтоит?, +"I'll guarantee 50 gold and if you return without setting off every alarm in town, there's the chance to earn much, much more, and here's a little helper that should give you an edge.",TXT_DLG_SCRIPT02_D74284_ILLGU,,,,"Ich garantiere dir 50 Gold und wenn du zurückkehrst ohne den Alarm in der Stadt ausgelöst zu haben, dann hast du noch die Chance, viel, viel mehr zu verdienen und hier ist noch ein kleiner Helfer der dir einen Vorteil verschaffen wird.","Te garantizo 50 de oro y si vuelves sin activar todas las alarmas del pueblo, existe la posibilidad de ganar mucho, mucho más, y aquí hay un pequeño ayudante que debería darte una ventaja.",,"Je vous garantis 50 pièces et si vous revenez sans déclencher toutes les alarmes de la ville, vous avez la possibilité de gagner bien plus. Voilà une petite avance qui pourra vous aider.",,,,"Я обещаю тебе 50 золотых, и Ñ‚Ñ‹ Ñможешь заработать куда больше, еÑли вернешьÑÑ, не включив вÑе Ñирены в городе. Рчтобы у Ñ‚ÐµÐ±Ñ Ð±Ñ‹Ð»Ð¾ некоторое преимущеÑтво, вот тебе небольшой помощник. +", +"Thanks, I'll need it.",TXT_RPLY0_SCRIPT02_D74284_THANK,,,,"Danke, das werde ich brauchen.","Gracias, lo necesitaré.",,"Merci, j'en aurais besoin.",,,,"СпаÑибо, он мне пригодитÑÑ.", +"Good. Remember, his silence is golden.",TXT_DLG_SCRIPT02_D75800_GOODR,,,,Gut. Denke dran. Sein Schweigen ist Gold wert.,"Bien. Recuerda, su silencio es oro.",,Bien. Souvenez-vous. Le silence est d'or.,,,,"ПревоÑходно. Запомни, его молчание — золото.", +I'll get him.,TXT_RPLY0_SCRIPT02_D75800_ILLGE,,,,Ich krieg ihn.,Lo encontraré.,,Je m'occupe de lui.,,,,Я прикончу его., +Mission accomplished? You have the ring of the traitor?,TXT_DLG_SCRIPT02_D77316_MISSI,,,,Mission ausgeführt? Hast du den Ring des Verräters?,¿Misión cumplida? ¿Tienes el anillo del traidor?,,Mission accomplie? Vous avez l'anneau du traître?,,,,Задание выполнено? Ты Ð¿Ñ€Ð¸Ð½Ñ‘Ñ ÐºÐ¾Ð»ÑŒÑ†Ð¾ предателÑ?, +"He's dead, where's my money?",TXT_RPLY0_SCRIPT02_D77316_HESDE,,,,"Er ist tot, wo ist mein Geld?","Está muerto, ¿dónde está mi dinero?",,"Il est mort, où est mon argent?",,,,Он мёртв. Где мои деньги?, +Liar! Go get the ring!,TXT_RNO0_SCRIPT02_D77316_LIARG,,,,Lügner! Hol' den Ring!,¡Mentiroso! ¡Ve por el anillo!,,Mensonges! Ramenez-moi l'anneau!,,,,Лжец! ПринеÑи мне кольцо!, +"Here, you earned it. The traitor you killed was about to reveal the location of the Front. You saved lives. How would you like to earn more gold, and a future free from tyranny?",TXT_DLG_SCRIPT02_D78832_HEREY,,,,"Hier, das hast du dir verdient. Der Verräter den du getötet hast war dabei über die Position der Front auszupacken. Du hast Leben gerettet. Wie würde es dir gefallen noch mehr Gold zu verdienen und eine tyrannenfreie Zukunft zu haben?","Toma, te lo ganaste. El traidor que mataste estaba a punto de revelar la ubicación del frente. Salvaste vidas. ¿Te gustaría ganar más oro y un futuro libre de tiranía?",,"Voilà, vouls l'avez bien mérité. Ce traître que vous avez tué allait révéler la base du Front. Vous avez sauvé de nombreuses vies. Est-ce que ça vous intéresserait de vous faire plus d'argent et garantir un futur libre de la tyrannie?",,,,"Вот, Ñ‚Ñ‹ заÑлужил их. Убитый тобой предатель мог выдать Ордену меÑтоположение базы СопротивлениÑ. Ты ÑÐ¿Ð°Ñ Ð¼Ð½Ð¾Ð³Ð¾ жизней. Тебе бы не хотелоÑÑŒ ещё золота и будущего, Ñвободного от тирании?", +Tell me more.,TXT_RPLY0_SCRIPT02_D78832_TELLM,,,,Erzähl mir mehr.,Dime más.,,Dites-moi en plus.,,,,РаÑÑкажи мне больше., +Not my style.,TXT_RPLY1_SCRIPT02_D78832_NOTMY,,,,Nicht mein Stil.,No es mi estilo.,,Pas mon genre.,,,,Ðе в моём вкуÑе., +"I have a business relationship with the Front's leader, Macil. I know he needs an incisive fellow like yourself, and he pays well. Take this recovered com unit and you'll be led to, shall we say, opportunities.",TXT_DLG_SCRIPT02_D80348_IHAVE,,,,"Ich habe Geschäftsbeziehungen mit dem Anführer der Front, Macil. Er braucht einen pfiffigen Typen wie dich und er bezahlt gut. Nimm dieses erbeutete Kommunikationsgerät und es wird dich zu, sagen wir mal, Möglichkeiten führen.","Tengo una relación de negocios con el líder del frente, Macil. Sé que necesita un compañero incisivo como tú, y paga bien. Toma esta unidad de comunicaciones recuperada y serás conducido a, digamos, oportunidades.",,"J'ai une relation d'affaires avec le leader du Front, Macil. Je sais qu'il a besoin de quelqu'un d'incisif comme vous, et il paye bien. Prenez ce communicateur avec vous, et vous serez mené à des.. on va dire des opportunités.",,,,"У Ð¼ÐµÐ½Ñ Ð´ÐµÐ»Ð¾Ð²Ñ‹Ðµ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð»Ð¸Ð´ÐµÑ€Ð¾Ð¼ повÑтанцев, ÐœÑйÑилом. Я знаю, что ему нужны отчаÑнные парни вроде тебÑ, и он неплохо платит. Возьми Ñту рацию, и перед тобой откроютÑÑ, Ñкажем так, новые перÑпективы.", +Thanks.,TXT_RPLY0_SCRIPT02_D80348_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"Get going. If you hang around here, we're both dead.",TXT_DLG_SCRIPT02_D81864_GETGO,,,,"Beweg dich. Wenn wir beide hier rumhängen, dann sind wir beide tot.","Ponte en marcha. Si te quedas por aquí, los dos estamos muertos.",,"Partez maintenant, si vous traînez ici, nous serons morts tous les deux.",,,,"Двигай. ЕÑли продолжишь тут ошиватьÑÑ, Ð½Ð°Ñ Ð¾Ð±Ð¾Ð¸Ñ… убьют.", +"A pity, but now that you know about my friends, I must kill you. Guards, take out this trash!",TXT_DLG_SCRIPT02_D83380_APITY,,,,"Ein Jammer, aber nun, da du über meine Freunde Bescheid weißt, muss ich dich umbringen. Wachen? Entsorgt ihn!","Una pena, pero ahora que sabes de mis amigos, debo matarte. ¡Guardias, saquen esta basura!",,"Dommage. Mais maintenant que vous savez qui sont mes amis, je dois me débarasser de vous. Garde, débarassez moi de mes ordures!",,,,"Жаль, но теперь, когда Ñ‚Ñ‹ знаешь о моих друзьÑÑ…, мне придётÑÑ ÑƒÐ±Ð¸Ñ‚ÑŒ тебÑ. Стража, уберите его!", +Fool. Guards! Rid me of meddlesome peon.,TXT_DLG_SCRIPT02_D84896_FOOLG,,,,Du Narr! Wachen! Entledigt mich von diesem lästigen Tagelöhner.,"¡Insensato! Guardias, líbrenme de este entrometido peón.","¡Tonto! Guardias, líbrenme de este entrometido peón.","Idiot! Gardes, débarassez-moi de ce pion embêtant!",,,,"Глупец! Стража, избавьте Ð¼ÐµÐ½Ñ Ð¾Ñ‚ Ñтого недоумка.", +"Walk away, boy, just walk away.",TXT_DLG_SCRIPT02_D86412_WALKA,,,,"Geh weg Jungchen, geh einfach weg.","Aléjate, muchacho, sólo aléjate.",,"Pars, gamin, pars.",,,,"Уходи, парень. ПроÑто уходи.", +What are you doing here?,TXT_DLG_SCRIPT02_D87928_WHATA,,,,Was machst du hier?,¿Qué estás haciendo aquí?,,Qu'est-ce que vous foutez ici?,,,,Что Ñ‚Ñ‹ тут делаешь?, +"Hey, I need gold!",TXT_RPLY0_SCRIPT02_D87928_HEYIN,,,,"Hey, ich brauche Gold!","¡Hey, necesito oro!",,"Hé, j'ai besoin de sous!",,,,"Эй, мне нужно золото!", +"Blackbird told you the code, huh? Let me shut off the alarm. Macil is one flight down.",TXT_DLG_SCRIPT02_D89444_BLACK,,,,"Blackbird hat dir den Code gegeben, wie? Lass mich mal eben den Alarm abschalten. Macil ist eine Etage tiefer.","Blackbird te dijo el código, ¿eh? Déjame apagar la alarma. Macil está un vuelo hacia abajo.",,"Blackbird t'as donné le code, hein? Bon, laisse moi désactiver l'alarme. Macil est en bas des escaliers.",,,,"Чёрный дрозд Ñказал тебе пароль, так? Давай Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ñƒ Ñигнализацию. ÐœÑйÑил Ñтажом ниже.", +Thanks.,TXT_RPLY0_SCRIPT02_D89444_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"Walk away, boy, just walk away.",TXT_DLG_SCRIPT02_D90960_WALKA,,,,"Geh weg Jungchen, geh einfach weg.","Aléjate, muchacho, sólo aléjate.",,"Pars, gamin, pars.",,,,"Проходи, парень. ПроÑто проходи.", +Do you have an appointment with the Governor? ,TXT_DLG_SCRIPT02_D92476_DOYOU,,,,Hast du einen Termin bei dem Gouverneur?,¿Tienes una cita con el gobernador?,,Avez-vous un rendez-vous avec le gouverneur?,,,,У Ð²Ð°Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° вÑтреча Ñ Ð³ÑƒÐ±ÐµÑ€Ð½Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼?, +Of course!,TXT_RPLY0_SCRIPT02_D92476_OFCOU,,,,Natürlich!,¡Claro que si!,,Bien sûr!,,,,Конечно!, +"No, and I don't need one!",TXT_RPLY1_SCRIPT02_D92476_NOAND,,,,"Nein, und ich brauche auch keinen!","¡No, y no la necesito!",,"Non, et j'en ai pas besoin!",,,,"Ðет, и Ñ Ð² ней не нуждаюÑÑŒ!", +Sorry! I didn't mean... Please go right up.,TXT_DLG_SCRIPT02_D93992_SORRY,,,,Entschuldigung! Das war nicht so gemeint... Bitte geh durch.,"¡Lo siento! No quise decir ... Por favor, suba.",,"Désolé, je.. Vous pouvez monter, bien sûr.",,,,"ПроÑтите! Я не хотел... ПожалуйÑта, пройдите наверх.", +I knew you'd say that.,TXT_RPLY0_SCRIPT02_D93992_IKNEW,,,,"Ich dachte mir schon, das du das sagen würdest.",Sabía que dirías eso.,,Je savais que vous diriez ceci.,,,,"Я знал, что Ñ‚Ñ‹ Ñто Ñкажешь.", +"If you're in such a hurry, don't waste your time with me.",TXT_DLG_SCRIPT02_D95508_IFYOU,,,,"Wenn du so in Eile bist, dann verschwende deine Zeit nicht mit mir.","Si tienes tanta prisa, no pierdas el tiempo conmigo.",,"Si vous êtes tellement pressé, ne perdez pas votre temps avec moi.",,,,"ЕÑли вы так торопитеÑÑŒ, не тратьте на Ð¼ÐµÐ½Ñ Ð²Ñ€ÐµÐ¼Ñ.", +"Release me, leave an old man alone.",TXT_DLG_SCRIPT02_D97024_RELEA,,,,"Pack mich nicht an, lass einen alten Mann in Ruhe","Suéltame, deja en paz a un anciano.",,"Laissez moi tranquille, un vieil homme a le droit d'être seul.",,,,ОÑтавь Ñтарика в покое!, +"You seek wisdom, my son? The order has seen to it that we only ask one question, 'Why?'",TXT_DLG_SCRIPT02_D98540_YOUSE,,,,"Du suchst Weisheit, mein Sohn? Der Orden hat zugesehen das wir nur noch eine Frage stellen, „Warum?â€","¿Buscas sabiduría, hijo mío? La orden se ha asegurado de que solo hagamos una pregunta, '¿Por qué?'",,"Vous cherchez ma sagesse, jeune homme? L'Ordre ne pose qu'une seule question: ""Pourquoi?""",,,,"Ищешь Ñовета, Ñын мой? Орден заботитÑÑ Ð¾ том, чтобы Ð½Ð°Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°Ð» только один вопроÑ: «За что?»", +Where's the power coupling?,TXT_RPLY0_SCRIPT02_D98540_WHERE,,,,Wo ist der Stromabnehmer?,¿Dónde está el acoplamiento eléctrico?,,Où est le coupleur énergétique?,,,,Где ÑÐ¾ÐµÐ´Ð¸Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¼ÑƒÑ„Ñ‚Ð°?, +Where's the Order's main?,TXT_RPLY1_SCRIPT02_D98540_WHERE,,,,Wo ist die Stromleitung des Ordens?,¿Dónde está la red principal de la Orden?,,Où est le transformateur de l'Ordre?,,,,Где Ð»Ð¸Ð½Ð¸Ñ Ñлектропередачи Ордена?, +Where's the illegal tap?,TXT_RPLY2_SCRIPT02_D98540_WHERE,,,,Wo ist die illegale Anzapfung?,¿Dónde está la intervención ilegal?,,Où est la connection pirate?,,,,Где нелегальное подключение?, +"I'll tell you where it is, but I don't know whose coupling you'll be tampering with. It's right here in the sewage plant.",TXT_DLG_SCRIPT02_D100056_ILLTE,,,,"Ich sage dir wo er ist, aber ich weiß nicht, an wessen Anzapfung du herummanipulieren willst. Er ist genau hier in der Kläranlage.","Te diré dónde está, pero no sé de quién será la línea eléctrica que estarás manipulando. Está justo aquí en la planta de aguas residuales.",,"Je peux vous dire où il est, mais je ne peux pas vous dire à qui il appartient. Il se trouve dans le traitement des égouts.",,,,"Я Ñкажу тебе, где она, но не знаю, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ‚ÐµÐ±Ðµ нужна. Она прÑмо здеÑÑŒ, в очиÑтной ÑиÑтеме.", +Thanks,TXT_RPLY0_SCRIPT02_D100056_THANK,,,,Danke,Gracias,,Merci.,,,,СпаÑибо., +That's right here in the sewage plant. But it's the Front's coupling. Whoever told you that it was the Order's was wrong.,TXT_DLG_SCRIPT02_D101572_THATS,,,,"Genau hier, in der Kläranlage. Aber sie gehört der Front. Wer auch immer dir gesagt hat, sie gehöre dem Orden, hat gelogen.","Eso es justo aquí en la planta de aguas residuales. Pero es el acoplamiento del frente. Quien te dijo que era de la Orden estaba equivocado. +",,"Il se trouve ici dans le traitement des égouts, mais c'est le coupleur du Front . Celui qui vous a dit qu'il appartient à l'Ordre se plante.",,,,"Она прÑмо здеÑÑŒ, в очиÑтном Ñооружении. Ðо Ñто Ð»Ð¸Ð½Ð¸Ñ Ð¡Ð¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ. Тот, кто Ñказал тебе, что она принадлежит Ордену, ошибÑÑ. +", +Thanks,TXT_RPLY0_SCRIPT02_D101572_THANK,,,,Danke.,Gracias,,Merci.,,,,СпаÑибо., +If you say it's illegal I want nothing to do with you. I have enough trouble as it is.,TXT_DLG_SCRIPT02_D103088_IFYOU,,,,"Wenn du sagst, es sei illegal, möchte ich nichts damit zu tun haben. Ich habe schon genug Probleme.",Si dices que es ilegal no quiero tener nada que ver contigo. Ya tengo suficientes problemas.,,"Si vous dites que c'est un truc illégal, alors je ne veux pas m'en mêler. J'ai déjà assez de problèmes.",,,,"Раз Ñ‚Ñ‹ говоришь, что оно нелегально, Ñ Ð½Ðµ хочу иметь Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ дел. Мне и так хватает проблем.", +Thanks,TXT_RPLY0_SCRIPT02_D103088_THANK,,,,Danke,Gracias,,Merci.,,,,СпаÑибо., +"Release me, leave an old man alone.",TXT_DLG_SCRIPT02_D104604_RELEA,,,,Bitte lass einen alten Mann in Ruhe,"Suéltame, deja en paz a un anciano.",,"Laissez moi tranquille, un vieil homme a le droit d'être seul.",,,,ОÑтавь Ñтарика в покое!, +"Welcome to the last flicker of hope. Only we have the free will to oppose the Order. We have the sharpest scientific minds, and many able bodies, but we lack that one real, uh... Problemsolver, who will give us the edge we need. Help us.",TXT_DLG_SCRIPT03_D0_WELCO,,,,"Wilkommen beim letzten Hoffnungsschimmer. Nur wir haben noch den freien Willen, um gegen den Orden zu arbeiten. Wir haben die besten Wissenschaftler und viele fähige Kämpfer aber was uns fehlt ist ein spezieller... äh... Problemlöser, der uns den nötigen Vorteil verschafft. Bitte hilf uns.","Bienvenido al último destello de esperanza. Solo nosotros tenemos el libre albedrío para oponernos a la Orden. Tenemos las mentes científicas más inteligentes y muchos cuerpos capaces, pero nos falta un, uh ... solucionador de problemas, quien nos dará la ventaja que necesitamos. Ayúdanos.",,"Bienvenue au dernier lieu d'espoir. Nous seuls avons la liberté d'esprit pour opposer l'Ordre. Nous avons les esprits scientifiques les plus aiguisés et de nombreux hommes habiles et sains.. Mais il nous manque quelqu'un qui pourrait.. résoudre nos problèmes. Nous donner un peu d'aide, nous permettre de prendre l'avantage.",,,,"Добро пожаловать в поÑледний оплот надежды. Только мы обладаем Ñвободной волей, чтобы противоÑтоÑÑ‚ÑŒ Ордену. С нами лучшие учёные умы, и у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ много толковых людей, но нам не хватает одного-единÑтвенного, Ñ... Â«Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Â», который поможет нам получить необходимое преимущеÑтво. Помоги нам.", +"All right, I accept.",TXT_RPLY0_SCRIPT03_D0_ALLRI,,,,"Klar, ich bin dabei.","De acuerdo, acepto.",,Très bien. J'accepte.,,,,Хорошо. Я ÑоглаÑен., +No thanks!,TXT_RPLY1_SCRIPT03_D0_NOTHA,,,,"Nein, danke!",¡No gracias!,,Non merci.,,,,"Ðет уж, ÑпаÑибо!", +"You might want to reconsider, seeing that you're surrounded by heavily armed angry rebels.",TXT_DLG_SCRIPT03_D1516_YOUMI,,,,"Bitte überdenke das nochmal, angesichts der Tatsache, dass du von befaffneten und zornigen Rebellen umgeben bist.","Es posible que desees reconsiderar, ya que estas rodeado de rebeldes enojados fuertemente armados.",,"J'espère que vous pouvez y réfléchir. Après tout, vous êtes entouré de rebelles lourdement armés et prêts à se défendre.",,,,"Возможно, при виде нервных и вооружённых до зубов повÑтанцев Ñ‚Ñ‹ передумаешь.", +"All right, I'm in!",TXT_RPLY0_SCRIPT03_D1516_ALLRI,,,,"Na gut, ich bin dabei.","De acuerdo, ¡quiero entrar!",,"Ok, d'accord, j'accepte!",,,,"Хорошо, Ñ Ñ Ð²Ð°Ð¼Ð¸!", +No thanks.,TXT_RPLY1_SCRIPT03_D1516_NOTHA,,,,"Nein, danke!",No gracias.,,Non merci.,,,,"Ðет, ÑпаÑибо.", +Then die in shame and dishonor.,TXT_DLG_SCRIPT03_D3032_THEND,,,Then die in shame and dishonour.,Dann wirst du in Schande und Unehre sterben.,Entonces muere en vergüenza y deshonra.,,Périssez dans la honte et le déshonneur.,,,,Тогда умри в беÑчеÑтии и позоре., +"Good, Blackbird will continue to be your guide. She's taken quite a shine to you. Together you've got to unlock the secrets of the Order and their inhuman servants. Get inside and take them down.",TXT_DLG_SCRIPT03_D4548_GOODB,,,,"Gut so! Blackbird wird weiter deine Leiterin sein, sie scheint dich zu mögen. Zusammen müsst ihr die Geheimnisse des Ordens und ihrer unmenschlichen Diener ergründen. Dann haben wir eine Chance, sie niederzuringen.","Bien, Blackbird continuará siendo tu guía. Parece que le caes bien. Juntos debéis descubrir los secretos de la Orden y sus sirvientes inhumanos. Entrad y echadlos abajo.","Bien, Blackbird continuará siendo tu guía. Parece que le caes bien. Juntos deberán descubrir los secretos de la Orden y sus sirvientes inhumanos. Penetrar y echarlos abajo.","Parfait. Blackbird continuera à être votre guide. Elle semble vous apprécier. Ensemble, vous allez découvrir les secrets de l'Ordre et leurs servants inhumains. Infiltrez-les et détruisez-les.",,,,Хорошо. Чёрный дрозд оÑтанетÑÑ Ñ‚Ð²Ð¾Ð¸Ð¼ проводником. Она тебе неÑколько Ñимпатизирует. ВмеÑте вы раÑкроете Ñекреты Ордена и его беÑчеловечных Ñлуг. Проникни на их территорию и ударь по ним как Ñледует!, +Where do I start?,TXT_RPLY0_SCRIPT03_D4548_WHERE,,,,Wo fange ich an?,¿Por dónde empiezo?,,Où est-ce que je commence?,,,,С чего мне начать?, +Frankly the situation is a mess. You must accomplish several missions to prepare the way for more attacks on the Order. Our last raid was a disaster and most of our troops were captured. I need you to free these prisoners.,TXT_DLG_SCRIPT03_D6064_FRANK,,,,"Ehrlich gesagt, die Situation ist eine Sauerei. Du musst mehrere Aufgaben erfüllen um den Weg für weitere Angriffe vorzubereiten. Der letzte Ãœberfall war ein Desaster und die meisten unserer Leute wurden gefangengenommen. Du musst sie wieder befreien.",Fráncamente la situación es un lío. Debes completar varias misiones para preparar el camino a más ataques contra la Orden. Nuestra última incursión fue un desastre y la mayoría de nuestras tropas fueron capturadas. Necesito que liberes a estos prisioneros.,,"Franchement, nous sommes dans un bazar sans précédent. Vous devez accomplir de nombreuses missions pour préparer nos futures attaques contre l'Ordre. Notre dernier raid à été un désastre et la majorité de nos troupes ont été capturées. Il faut que vous les libérez.",,,,"ЧеÑтно говорÑ, наши дела идут не лучшим образом. Тебе предÑтоит выполнить неÑколько заданий, чтобы раÑчиÑтить путь Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐ¸Ñ… атак на Орден. Ðаша поÑледнÑÑ Ð²Ñ‹Ð»Ð°Ð·ÐºÐ° обернулаÑÑŒ катаÑтрофой, и большинÑтво наших бойцов были Ñхвачены. Мне нужно, чтобы Ñ‚Ñ‹ оÑвободил их.", +I think I can handle it.,TXT_RPLY0_SCRIPT03_D6064_ITHIN,,,,"Ich denke, das kann ich schaffen.",Creo que puedo hacerlo.,,Je pense pouvoir m'en occuper.,,,,"Думаю, ÑправлюÑÑŒ.", +"Take this money and visit Irale who supplies our weapons. Then, this key will get you in to see the Governor. He's a corrupt puppet of the Order, but he loves to make deals. Do whatever you need to free our brothers in arms.",TXT_DLG_SCRIPT03_D7580_TAKET,,,,"Nimm das Geld hier und geh zu Irale, der und mit Waffen versorgt. Und dieser Schlüssel erlaubt die Zutritt zum Haus des Gouverneurs. Er ist eine korrupte Marionette des Ordens aber er liebt es, Deals zu machen. Mach was nötig ist um unsere Waffenbrüder zu befreien.","Toma este dinero y ve a ver a Irale, que suministra nuestras armas. Después, esta llave te servirá para ver al gobernador. Es una marioneta corrupta de la Orden, pero le encantan los tratos. Haz lo que creas necesario para liberar a nuestros compatriotas.",,Prenez cet argent et allez voir Irale qui nous approvisionne en armes. Utilisez ensuite cette clé pour aller voir le gouverneur. Il est un pantin de l'Ordre mais il adore faire affaires. Faites ce qu'il faut pour libérer nos compatriotes.,,,,"Возьми Ñти деньги и поÑети ИрÑйла, нашего поÑтавщика оружиÑ. Затем, Ñ Ñтим ключом, Ñ‚Ñ‹ пройдёшь к губернатору. Он — Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ Ð¼Ð°Ñ€Ð¸Ð¾Ð½ÐµÑ‚ÐºÐ° Ордена, но обожает торговатьÑÑ. Делай вÑÑ‘, что захочешь, но оÑвободи наших братьев по оружию.", +I'll see to it.,TXT_RPLY0_SCRIPT03_D7580_ILLSE,,,,"Ich seh, was ich machen kann.",Veré que hacer.,,Je m'y attelle.,,,,Я позабочуÑÑŒ об Ñтом., +Fight for the Front and freedom. Move out.,TXT_DLG_SCRIPT03_D9096_FIGHT,,,,Kämpfe für die Front und die Freiheit. Nun geh.,Lucha por el frente y la libertad. En marcha.,,Battez vous pour le Front et pour la liberté. Repos.,,,,СражайÑÑ Ð·Ð° Ñвободу и ÑправедливоÑÑ‚ÑŒ. Вперёд., +"The prisoners have been welcomed back, thanks to you. Here's some gold, go visit the medic and the weapons trainer and then, I have higher goals for you.",TXT_DLG_SCRIPT03_D10612_THEPR,,,,"Die Gefangenen sind zu uns zrückgekehrt, dank dir. Hier hast du etwas Gold, schau mal beim Sanitäter und beim Waffentrainer rein, danach sind höhere Ziele in Aussicht.","Los prisioneros han sido bienvenidos de vuelta, gracias a ti. Aquí tienes algo de oro, ve a ver al médico y al entrenador de armamento y después, tengo mayores metas para ti.",,"Les prisonniers sont revenus à bon port, grâce à vous. Voici de l'argent, allez voir le médecin et le maître d'armes, puis j'aurais d'autres missions pour vous.",,,,"Ð‘Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ñ‚ÐµÐ±Ðµ, пленники вернулиÑÑŒ к нам. Вот немного золота, поÑети медика и инÑтруктора по Ñтрельбе, а потом Ñ‚ÐµÐ±Ñ Ð¶Ð´ÑƒÑ‚ ещё более ответÑтвенные заданиÑ.", +I will. What's next?,TXT_RPLY0_SCRIPT03_D10612_IWILL,,,,"Alles klar, was gibt's als Nächstes?",Lo haré. ¿Qué es lo siguiente?,Lo haré. ¿Qué sigue?,"Très bien, quoi maintenant?",,,,Хорошо. Что дальше?, +"A single crystal runs the power grid which drives the Order's shields. Destroy that crystal and you will punch huge holes in the Order's defenses. Blackbird will lead you to a spy who has a way in, good luck.",TXT_DLG_SCRIPT03_D12128_ASING,,,,"Ein einziger Kristall kontrolliert das gesamte Energiesystem für die Kraftschilde des Ordens. Zerstöre diesen Kristall und du wirst riesige Löcher in die Verteidigungsanlagen des Ordens schlagen. Blackbird führt dich zu einem Spion, der dir Einlass verschaffen kann. Viel Glück.","Un único cristal alimenta la red eléctrica que mantiene los escudos de la Orden. Destruye ese cristal y abrirás grandes brechas en las defensas de la Orden. Blackbird te guiará ante un espía que tiene una forma de entrar, buena suerte.","Un único cristal alimenta la red eléctrica que mantiene los escudos de la Orden. Destruye ese cristal y abrirás grandes brechas en las defensas de la Orden. Blackbird te guiará hacia un espía que tiene una forma de entrar, buena suerte.",Un seul cristal fait fonctionner la grille énergétique qui alimente les boucliers de l'Ordre. Détruisez ce cristal et vous créez des énormes failles dans les défenses de l'Ordre. Blackbird va vous mener à un espion qui a un moyen de vous faire rentrer. Bonne chance.,,,,"ЭнергоÑеть, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¸Ñ‚Ð°ÐµÑ‚ щиты Ордена, работает от одного криÑталла. Уничтожь Ñтот криÑталл, и Ñ‚Ñ‹ пробьёшь огромную брешь в их обороне. Чёрный дрозд приведёт Ñ‚ÐµÐ±Ñ Ðº шпиону, который знает, как проникнуть на Ñтанцию. Удачи!", +We'll get it.,TXT_RPLY0_SCRIPT03_D12128_WELLG,,,,Das werden wir hinkriegen.,Lo conseguiremos.,,Je m'en occupe.,,,,Мы ÑправимÑÑ., +Fight for the Front and freedom. Move out.,TXT_DLG_SCRIPT03_D13644_FIGHT,,,,Kämpfe für die Front und die Freiheit. Nun geh.,Lucha por el frente y la libertad. En marcha.,,Battez vous pour le Front et pour la liberté. Repos.,,,,СражайÑÑ Ð·Ð° Ñвободу и ÑправедливоÑÑ‚ÑŒ. Вперёд., +"You've exceeded all of our expectations. Because of your daring our troops are on the move. I want you two to join the assault, with a specific target. Take out the Programmer. It's time to reveal what we've found out about this layer of the Order.",TXT_DLG_SCRIPT03_D15160_YOUVE,,,,"Du hast alle unsere Erwartungen übertroffen. Dank dir sind unsere Truppen auf dem Vormarsch. Ich möchte, dass du auch an dem Angriff teilnimmst, aber mit einer Spezialmission. Eliminiere den Programmierer. Es ist Zeit zu enthüllen, was wir über dien Teil des Ordens herausgefunden haben.","Has superado todas nuestras expectativas. Por tú hazaña nuestras tropas están en movimiento. Quiero que los dos os unais al asalto, con un objetivo específico. Acabar con el Programador. Es hora de revelar lo que hemos encontrado de esta capa de la Orden.","Has superado todas nuestras expectativas. Por tú hazaña nuestras tropas están en movimiento. Quiero que ambos se unan al asalto, con un objetivo específico. Acabar con el Programador. Es hora de revelar lo que hemos encontrado de esta capa de la Orden.","Vous avez dépassé toutes nos attentes. Grâce à votre audace, nos troupes sont sur le pied de guerre. Je que vous rejoignez l'assaut tous les deux, avec une cible précise. Eliminez le Programmeur. Il est l'heure de révéler ce que nous avons découvert sur cette facette de l'Ordre.",,,,"Ты превзошёл вÑе наши ожиданиÑ. Ð‘Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ñ‚Ð²Ð¾ÐµÐ¹ отваге, наши войÑка уже в пути. Я хочу, чтобы вы двое приÑоединилиÑÑŒ к атаке, Ñ Ð¾Ñобой целью - уничтожить ПрограммиÑта. ÐаÑтало Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑказать вÑе, что мы Ñмогли узнать об Ñтом уровне влаÑти в Ордене.", +Tell me what we know.,TXT_RPLY0_SCRIPT03_D15160_TELLM,,,,Sag mir was du weißt.,Dime lo que sabemos.,,Donnez-moi ce que vous savez.,,,,РаÑÑкажи мне вÑÑ‘., +"The Programmer's lair is in the castle. Now, see the medic, grab some ammo and go get him.",TXT_DLG_SCRIPT03_D16676_THEPR,,,,Der Programmierer hät sich irgendwo in der Burg auf. Und nun gehe bitter zum Sanitäter und beschaff dir neue Munition - und dann mach ihn fertig.,"La guarida del Programador está en el castillo. Ahora, ve a ver al médico, toma algo de munición y ve a por él.","La guarida del Programador está en el castillo. Ahora, ve a ver al médico, toma algo de munición y ve por él.","Le repaire du Programmeur est dans le château. Allez voir le médecin, rechargez vos armes, et allez vous occuper de lui.",,,,"ПрограммиÑÑ‚ уÑтроил Ñебе логово в замке. Теперь проверь ÑнарÑжение, возьми вÑÑ‘, что тебе понадобитÑÑ, и раÑправьÑÑ Ñ Ð½Ð¸Ð¼.", +Let me at 'em!,TXT_RPLY0_SCRIPT03_D16676_LETME,,,,Lass mich das nur machen.,¡Voy a por ellos!,¡Voy por ellos!,Je vais me le faire!,,,,Я им покажу!, +Fight for the Front and freedom. Move out.,TXT_DLG_SCRIPT03_D18192_FIGHT,,,,Kämpfe für die Front und die Freiheit. Nun geh.,Lucha por el frente y la libertad. En marcha.,,Battez vous pour le Front et pour la liberté. Repos.,,,,СражайÑÑ Ð·Ð° Ñвободу и ÑправедливоÑÑ‚ÑŒ. Вперёд., +Remember what the town hall looked like? That's a gentle reminder of what they're willing to do to get at us. Be careful.,TXT_DLG_SCRIPT03_D19708_REMEM,,,,"Denk daran, wie unser Rathaus aussieht. Das ist nur ein Dankzettel dafür, wie weit sie gehen würden um uns zu finden. Sei vorsichtig.",¿Recuerdas cómo se ve el ayuntamiento? Ese es un pequeño recordatorio de lo que son capaces de hacer contra nosotros. Ten cuidado.,,Souvenez-vous de l'hôtel de ville avant tout cela? C'est une manière gentille de nous montrer ce qu'ils sont capables de faire pour se débarasser de nous. Faites attention.,,,,"Видел, что Ñтало Ñ Ð³Ð¾Ñ€Ð¾Ð´Ñкой ратушей? Это мÑгкий намёк на то, что они Ñделают, еÑли доберутÑÑ Ð´Ð¾ наÑ. Будь оÑторожен.", +Talk to Macil. He'll be able to help you.,TXT_DLG_SCRIPT03_D21224_TALKT,,,,Rede mit Macil. Er kann dir helfen.,Habla con Macil. Él te podrá ayudar.,,Parlez à Macil. Il pourra vous aider.,,,,Поговори Ñ ÐœÑйÑилом. Он Ñможет тебе помочь., +I've heard that Macil's got a plan to subvert the Order. It had better be good. One more failure and we're all just dead meat.,TXT_DLG_SCRIPT03_D22740_IVEHE,,,,"Ich habe gehört, Macil hätte einen Plan um den Orden zu unterwandern. Ich hoffe mal, er taugt was. Noch ein Fehlschlag und wir können uns gleich begraben lassen.",He oído que Macil tiene un plan para desestabilizar a la Orden. Más vale que sea bueno. Un fallo más y somos carne muerta.,,J'ai entendu que Macil a un plan pour repousser l'Ordre. Il a intérêt à être bon. Une erreur de plus et nous sommes tous morts.,,,,"Я Ñлышал, что ÐœÑйÑил разработал план ÑÐ²ÐµÑ€Ð¶ÐµÐ½Ð¸Ñ ÐžÑ€Ð´ÐµÐ½Ð°. Лучше бы ему Ñработать. Ещё одна ошибка, и мы вÑе покойники.", +A few of these barrels dumped into their water supply should even the odds a little.,TXT_DLG_SCRIPT03_D24256_AFEWO,,,,"Wenn wir ein paar von diesen Fässern in die Wasserversorgung kippen, sollte das unsere Chancen etwas verbessern.",Unos cuantos de estos barriles arrojados en su suministro de agua deberían igualar las probabilidades un poco.,,Quelques uns de ces tonneaux vidés dans leur réserve d'eau devrait équilibrer le terrain de jeu.,,,,"ÐеÑколько таких бочек, Ñброшенных в их водоÑнабжение, причинÑÑ‚ немало неприÑтноÑтей.", +"So you're the new operative? Thanks, without you, we'd all be dead right now.",TXT_DLG_SCRIPT03_D25772_SOYOU,,,,"So, du bist der neue Agent? Danke, ohne dich wären wir schon alle tot.","¿Así que eres el nuevo operativo? Gracias, sin ti, estaríamos todos muertos.",,"Vous êtes le nouvel agent? Merci, sans vous, nous serions tous morts.",,,,"Так Ñто Ñ‚Ñ‹ наш новый агент? СпаÑибо. ЕÑли бы не Ñ‚Ñ‹, мы бы вÑе уже были мертвы.", +I'm working on something that will give us an edge. It will increase your stamina and completely jack you up. I've almost got all the bugs worked out. Can I do something for you?,TXT_DLG_SCRIPT03_D27288_IMWOR,,,,"Ich arbeite an etwas, das uns einen Vorteil verschaffen kann. Es würde deine Ausdauer erhöhen und dir Superkräfte verleihen. Kann ich was für dich tun?",Estoy trabajando en algo que nos dará una ventaja. Aumentará tu aguante y te pondrá las pilas. Casi tengo todos los fallos corregidos. ¿Puedo hacer algo por ti?,,Je travaille sur quelque chose qui nous donnera un peu d'avance. Ca devrait augmenter votre endurance et vous donner un sacré coup de jus. Je crois que j'ai corrigé presque tous les bugs. Je peux vous aider?,,,,"Я работаю кое над чем, что может нам пригодитьÑÑ. Оно увеличит твою выноÑливоÑÑ‚ÑŒ и улучшит ÑамочувÑтвие. Я уже иÑправил почти вÑе дефекты. Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Patch me up.,TXT_RPLY0_SCRIPT03_D27288_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +"Boy, you're a real mess. I'll see what I can do.",TXT_RYES0_SCRIPT03_D27288_BOYYO,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.","Chico, estás hecho un desastre. Veré que puedo hacer.",,"Mon petit, vous êtes dans un sale état. Je vais voir ce que je peux faire.",,,,"Парень, да на Ñ‚ÐµÐ±Ñ Ñмотреть Ñтрашно. ПриÑтупим...", +Stamina implant?,TXT_RPLY1_SCRIPT03_D27288_STAMI,,,,Ausdauerimplantat?,¿Implante de aguante?,,Implant d'endurance?,,,,ВыноÑливоÑтный имплантат?, +"All right, this won't take but a moment.",TXT_RYES1_SCRIPT03_D27288_ALLRI,,,,"Alles klar, das haben wir sofort.","Muy bien, esto solo tomará un momento.",,"Pas de problème, ça ne prendra qu'un moment.",,,,"Отлично, Ñто займёт вÑего пару Ñекунд.", +It's not done yet.,TXT_RNO1_SCRIPT03_D27288_ITSNO,,,,Es ist noch nicht soweit.,Aún no está listo.,,Ce n'est pas encore terminé.,,,,Он ещё не готов., +"Hey, I'm working on an updated version of your implant. Is there anything else I can do?",TXT_DLG_SCRIPT03_D28804_HEYIM,,,,"He, ich arbeite an einer verbesserten Version deines Implantats. Gibt es sonst etwas, das ich für dich tun kann?","Hey, estoy trabajando en una versión mejorada de tu implante. ¿Hay algo más que pueda hacer?",,"Hé, je travaille sur une version améliorée de l'implant. Qu'est-ce que je peux faire pour vous?",,,,"Я работаю над улучшенной верÑией твоего имплантата. Рпока, чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Patch me up.,TXT_RPLY0_SCRIPT03_D28804_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +Well at least your seeing action.,TXT_RYES0_SCRIPT03_D28804_WELLA,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.",Bueno al menos estás viendo algo de acción.,,"Eh bien, au moins vous en voyez, de l'action.",,,,"Что ж, зато Ñ‚Ñ‹ учаÑтвуешь в операциÑÑ….", +Implant upgrade?,TXT_RPLY1_SCRIPT03_D28804_IMPLA,,,,Implantatsupgrade?,¿Mejora de implante?,,Mise à jour de l'implant?,,,,Улучшение имплантата?, +"Good thing, never can be too safe.",TXT_RYES1_SCRIPT03_D28804_GOODT,,,,"Alles klar, das haben wir sofort.","Bien, nunca se puede estar del todo seguro.",,Bonne idée. On ne peut jamais être trop sûr.,,,,"Очень Ñоветую, ни в чём Ð½ÐµÐ»ÑŒÐ·Ñ Ð±Ñ‹Ñ‚ÑŒ уверенным до конца.", +"I'm almost finished, but not quite.",TXT_RNO1_SCRIPT03_D28804_IMALM,,,,Es ist noch nicht soweit.,"Casi he terminado, pero no del todo.",,"Presque fini, mais pas encore.",,,,Я почти закончил. Ещё немного., +"All right, I've almost got everything working perfectly. There were a few problems left to get rid of. Do you need anything else? ",TXT_DLG_SCRIPT03_D30320_ALLRI,,,,"He, ich arbeite an einer verbesserten Version deines Implantats. Gibt es sonst etwas, das ich für dich tun kann?","Muy bien, tengo casi todo funcionando a la perfección. Solo quedaron algunos problemas que eliminar. ¿Necesitas algo mas?",,"Très bien, je crois que j'ai réussi à tout faire marcher parfaitement. Il y avait quelques problèmes dont je devais me débarrasser. Vous voulez quelque chose?",,,,"Ладно, почти вÑÑ‘ работает идеально. Впрочем, оÑталаÑÑŒ пара проблем. Что-нибудь ещё?", +Patch me up.,TXT_RPLY0_SCRIPT03_D30320_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +What have you been trying to do? Go head to head with a Crusader?,TXT_RYES0_SCRIPT03_D30320_WHATH,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.",¿Qué has intentado hacer? ¿Encabezonarte con un Cruzado?,¿Qué has intentado hacer? ¿Pelear cabeza a cabeza con un Cruzado?,Qu'est-ce que vous avez fait? Vous avez essayé de faire ami avec un Croisé?,,,,"Ты что, билÑÑ Ð¾Ð´Ð¸Ð½ на один Ñ ÐºÑ€ÐµÑтоноÑцем?", +Implant upgrade?.,TXT_RPLY1_SCRIPT03_D30320_IMPLA,,,,Implantatsupgrade?,¿Mejora de implante?,,Mise à jour de l'implant?,,,,Улучшение имплантата?, +That should do it for you.,TXT_RYES1_SCRIPT03_D30320_THATS,,,,"Alles klar, das haben wir sofort.",Con esto debería estar.,,Ca devrait faire l'affaire.,,,,Вот оно., +Let me run some more tests first.,TXT_RNO1_SCRIPT03_D30320_LETME,,,,Es ist noch nicht soweit.,Déjame hacer algunas pruebas primero.,,Laissez moi faire quelques tests d'abord.,,,,Дай мне ещё времени на теÑÑ‚Ñ‹., +That's all I can do on the implant right now. Maybe some healing?,TXT_DLG_SCRIPT03_D31836_THATS,,,,"Das ist alles, was ich im Moment mit dem Implantat machen kann. Vielleicht etwas medizinische Versorgung?",Eso es todo lo que puedo hacer con el implante por ahora. ¿Qué tal una cura?,,C'est tout ce que je peux faire pour l'implant. Vous voulez que je vous soigne?,,,,Пока что Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ ничего не могу Ñделать Ñ Ð¸Ð¼Ð¿Ð»Ð°Ð½Ñ‚Ð°Ñ‚Ð¾Ð¼. Как наÑчёт лечениÑ?, +Yeah.,TXT_RPLY0_SCRIPT03_D31836_YEAH,,,,Ja.,Sí.,,Ouais.,,,,Давай., +"Boy, you're a real mess. I'll see what I can do.",TXT_RYES0_SCRIPT03_D31836_BOYYO,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.","Chico, estás hecho un desastre. Veré que puedo hacer.",,"Mon petit, vous êtes dans un sale état. Je vais voir ce que je peux faire.",,,,"Ты проÑто меÑиво. ПоÑмотрим, что Ñ Ñмогу Ñделать.", +What can I do for you?,TXT_DLG_SCRIPT03_D33352_WHATC,,,,Was kann ich für dich tun?,¿Qué puedo hacer por ti?,,Que puis-je faire pour vous?,,,,Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?, +I'm out of bullets.,TXT_RPLY0_SCRIPT03_D33352_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT03_D33352_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes algo de munición. No la desperdicies.,,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +Teach me.,TXT_RPLY1_SCRIPT03_D33352_TEACH,,,,Unterrichte mich.,Entréname.,,Apprenez-moi.,,,,Обучи менÑ., +"All right, I'll just show you a few little pointers.",TXT_RYES1_SCRIPT03_D33352_ALLRI,,,,"Alles klar, ich zeige dir ein paar Kniffe.","Muy bien, te daré algunos pequeños consejos.",,Pas de problème. Laissez moi vous montrer quelques trucs.,,,,Хорошо. Покажу тебе пару приёмов., +You're not ready yet.,TXT_RNO1_SCRIPT03_D33352_YOURE,,,,Du bist noch nicht so weit.,Aun no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +Back again? What do you need?,TXT_DLG_SCRIPT03_D34868_BACKA,,,,Scxhon zurück? Was brauchst du?,¿Ya de vuelta? ¿Qué necesitas?,,Déjà de retour? De quoi avez-vous besoin?,,,,Ты вернулÑÑ? Что тебе нужно?, +I'm out of bullets.,TXT_RPLY0_SCRIPT03_D34868_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT03_D34868_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes algo de munición. No la desperdicies.,,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT03_D34868_YOUVE,,,,Du hast genug.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ð¸Ñ… доÑтаточно., +Teach me.,TXT_RPLY1_SCRIPT03_D34868_TEACH,,,,Unterrichte mich.,Entréname.,,Apprenez-moi.,,,,Обучи менÑ., +"All right, this should keep you going for a while.",TXT_RYES1_SCRIPT03_D34868_ALLRI,,,,"Alles klar, das sollte fürs erste reichen.","Muy bien, esto te mantendrá por un tiempo.",,"Bien, ça devrait vous suffir pour un bon moment.",,,,"Хорошо, Ñто не раз ÑпаÑÑ‘Ñ‚ тебе жизнь.", +"Sorry, can't. I'm just following Macil's orders.",TXT_RNO1_SCRIPT03_D34868_SORRY,,,,"Tut mir leid, aber ich kann nicht. Ich folge nur Macils Befehlen.","Lo siento, no puedo. Solo sigo las órdenes de Macil.",,"Désolé, pas possible. Je ne fais que suivre les ordres de Macil.",,,,"Увы, не могу. Я подчинÑÑŽÑÑŒ ÐœÑйÑилу.", +"Well which is it, bullets or training? I can't wait to get my hands on those new weapons we captured. A little bit of training and then a lot of revenge.",TXT_DLG_SCRIPT03_D36384_WELLW,,,,"Also, was willst du? Munition oder Training? Ich kann kaum erwarten, diese neuen Waffen, die wir erbeutet haben, in die Finger zu kriegen. ein bisschen Training und dann jede Menge Vergeltung.","Bien, ¿Qué va a ser?, ¿Balas o entrenamiento? No puedo esperar a poner mis manos en esas nuevas armas que hemos capturado. Un poco de entrenamiento y luego mucha venganza.",,"Qu'est-ce qu'il vous faut? Des munitions ou de l'entraînement? J'ai hâte d'essayer ces nouvelles armes que l'on a capturé, un peu d'entraînement et beaucoup de vengeance.",,,,"Что теперь, патроны или тренировка? Мне не терпитÑÑ Ð¾Ð¿Ñ€Ð¾Ð±Ð¾Ð²Ð°Ñ‚ÑŒ Ñто новое трофейное оружие. Чуть-чуть тренировки, и они за вÑÑ‘ заплатÑÑ‚.", +I'm out of ammo.,TXT_RPLY0_SCRIPT03_D36384_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ боеприпаÑÑ‹., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT03_D36384_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes algo de munición. No la desperdicies.,,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT03_D36384_YOUVE,,,,Du hast genug.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ патронов., +Teach me.,TXT_RPLY1_SCRIPT03_D36384_TEACH,,,,Unterrichte mich.,Entréname.,,Apprenez-moi.,,,,Обучи менÑ., +O.K. Take what you've learned here and show those Order clods the way to hell.,TXT_RYES1_SCRIPT03_D36384_OKTAK,,,,"OK. Nutze, was du hier gelernt hast um diesen Tölpeln vom Orden den Weg in die Hölle zu zeigen.",OK. Toma lo que has aprendido y muéstrales a esos patanes de la Orden el camino al infierno.,,OK. Utilisez ce que vous avez appris et envoyez ces abrutis de l'Ordre en enfer.,,,,"Запоминай внимательно, покажешь Ñтим прихвоÑтнÑм Ордена быÑтрую дорогу в ад.", +"Come back later, when Macil says it's time.",TXT_RNO1_SCRIPT03_D36384_COMEB,,,,"Komm wieder, wenn Macil dir Bescheid gibt.","Vuelve más tarde, cuando Macil diga que es la hora.",,Revenez plus tard quand Macil décide qu'il est temps.,,,,"Приходи позже, когда прикажет ÐœÑйÑил.", +I've taught you everything I can right now. Give me some time to put the new weapons through their paces. That is unless you're out of bullets.,TXT_DLG_SCRIPT03_D37900_IVETA,,,,"Ich habe dir alles gezeigt, was ich momentan kann. Gib mir etwas Zeit um die neuen Waffen zu testen. Munition kriegst du natürlich auch so.","Te he enseñado todo lo que puedo por ahora. Dame un tiempo para poner las nuevas armas a punto. Claro está, si no es que te has quedado sin balas.",,"Je vous ai enseigné tout ce que je sais. Laissez moi un peu de temps pour tester ces nouvelles armes. Sauf si vous n'avez plus de munitions, bien sûr.",,,,Я не могу научить Ñ‚ÐµÐ±Ñ Ð½Ð¸Ñ‡ÐµÐ¼Ñƒ новому прÑмо ÑейчаÑ. Дай мне Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð·Ð¾Ð±Ñ€Ð°Ñ‚ÑŒÑÑ Ð² Ñтом новом оружии. Или у Ñ‚ÐµÐ±Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны?, +Yes I am.,TXT_RPLY0_SCRIPT03_D37900_YESIA,,,,"Ja, bin ich.",Eso mismo.,,"En effet, je le suis.",,,,"Да, закончилиÑÑŒ.", +Here you go.,TXT_RYES0_SCRIPT03_D37900_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +Don't get trigger happy in the town. You'll set off the alarm and they'll start sending in guards from the castle. ,TXT_DLG_SCRIPT03_D39416_DONTG,,,,"Fang nicht an, hier in der Stadt herumzuballern. Wenn du hier den Alarm auslöst, senden sie gleich die Truppen aus der Burg.",No te líes a tiros en el pueblo. Activarás las alarmas y empezarán a enviar guardias desde el castillo.,,Ne tirez pas partout en ville. Vous risquez de déclencher l'alarme et ils enverront tous les gardes du château à vos trousses.,,,,"Когда будешь в городе, не ÑтрелÑй направо и налево. ЕÑли Ñ‚Ñ‹ поднимешь тревогу, они вызовут подкрепление из замка.", +"Welcome, we can always use more help.",TXT_DLG_SCRIPT03_D40932_WELCO,,,,"Willkommen, wir können immer etwas Hilfe gebrauchen.","Bienvenido, siempre nos viene bien algo más de ayuda.",,Bienvenue. Nous apprécions toute l'aide que nous pouvons recevoir.,,,,Добро пожаловать. Ðам вÑегда пригодитÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ., +"When I was still in action we had the chance to examine an acolyte before the reinforcements arrived. Listen, they're not human.",TXT_DLG_SCRIPT03_D42448_WHENI,,,,"Als ich noch aktiv war, hatten wir mal die Möglichkeit, einen der Ministranten zu untersuchen, bevor Verstärkung eintraf. Hör zu, sie sind nicht menschlich!","Cuando aún estaba en acción tuvimos la oportunidad de examinar a un acólito antes de que llegaran los refuerzos. Escucha, no son humanos.",,"Quand j'étais encore en service, j'ai eu l'opportunité d'examiner un acolyte avant que les renforts n'arrivent. Vous savez, ils ne sont pas humains.",,,,"Пока Ñ Ð±Ñ‹Ð» в оперативной группе, нам удалоÑÑŒ вÑкрыть одного из Ñлужителей, прежде чем прибыло подкрепление. Так вот, они не люди.", +"We're trying to find where the castle gate mechanisms are, but so far we've had no luck.",TXT_DLG_SCRIPT03_D43964_WERET,,,,"Wir versuchen herauszufinden, von wo das Burgtor kontrolliert wird, aber bisher hatten wir kein Glück.","Estamos intentando encontrar donde se encuentran los mecanismos de la puerta del castillo, pero de momento no hemos tenido suerte.",,"On essaie de trouver où se trouvent les contrôles de la porte du château, mais pour l'instant, on les a pas encore localisés.",,,,"Мы пытаемÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸ замка, но пока безуÑпешно. +", +Don't get caught. I've heard horror stories about what they do to our people after they're imprisoned. They just disappear... Without a trace.,TXT_DLG_SCRIPT03_D45480_DONTG,,,,"Lass dich nicht erwischen. Ich habe Horrorgeschichten darüber gehört, was sie unseren Leuten antun, die sie gefangengenommen haben. Sie verschwinden einfach... ohne jede Spur.",Que no te atrapen. He oído historias terroríficas sobre lo que hacen con nuestra gente después de ser detenidos. Símplemente desaparecen... sin dejar rastro alguno.,,Ne vous faites pas avoir. J'ai entendu des choses horribles sur ce qu'ils font à ceux qu'ils emprisonnent. Ils disparaîssent... Sans laisser de trace.,,,,"Ðе дай ÑÐµÐ±Ñ Ñхватить. Я Ñлышал ужаÑные иÑтории о том, что они делают Ñ Ð°Ñ€ÐµÑтованными. Те проÑто иÑчезают... без Ñледа.", +"Here's some advice, if you ever see any of the Order's Tinsoldiers go in the other direction. They're fast and brutal.",TXT_DLG_SCRIPT03_D46996_HERES,,,,"Hier ist ein guter Rat, falls du jemals einen dieser Zinnsoldaten des Ordens vorbeigehen siehst. Sie sind schnell und brutal. ","Un consejo, si ves ir alguno de los soldaditos de la Orden ve para otro lado. Son rápidos y brutales.",,"Voilà un conseil. Si vous voyez un des soldats mécanisés de l'Ordre, retournez vous et courez. Ils sont rapides et brutaux.",,,,"Ðебольшой тебе Ñовет: еÑли увидишь «оловÑнных Ñолдатиков» Ордена, Ñворачивай в другую Ñторону. Они быÑтры и жеÑтоки.", +Leave me be. I'm doing something for Macil.,TXT_DLG_SCRIPT03_D48512_LEAVE,,,,Lass mich in Ruhe. Ich muss etwas für Macil erledigen.,Déjame. Estoy haciendo algo para Macil.,,Laissez moi. Je suis en train de faire quelque chose pour Macil.,,,,ОÑтавь Ð¼ÐµÐ½Ñ Ð² покое. Я выполнÑÑŽ поручение ÐœÑйÑила., +"Sorry, no. You do not have clearance.",TXT_DLG_SCRIPT04_D0_SORRY,,,,"Tut mir leid, aber Sie haben keine Berechtigung.","Lo siento, no. No tienes permiso.",,"Non, désolé. Vous n'avez pas d'autorisation.",,,,"Увы, нет. У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ пропуÑка.", +Stop! Show me your id badge.,TXT_DLG_SCRIPT04_D1516_STOPS,,,,Halt. Zeigen Sie mir Ihre Identitätskarte.,¡Alto! Muéstrame tu insignia de identificación.,,Stop! Montrez moi votre carte d'identité.,,,,Стой! Покажи мне Ñвоё удоÑтоверение., +Here's my I.D.,TXT_RPLY0_SCRIPT04_D1516_HERES,,,,Hier ist sie.,Aquí está mi identificación.,,La voilà.,,,,Вот оно., +"Oh, ok. Sure go ahead. Have a nice day.",TXT_DLG_SCRIPT04_D3032_OHOKS,,,,"Alles klar, ich wünsche einen schönen Tag.","Oh, ok. Vale, adelante. Ten un buen día.",,"Bon, ok. Allez-y. Passez une bonne journée.",,,,"Ладно, проходи. Ð’Ñего доброго.", +"Derwin? Yeah, he's down in the warehouse, but you're not getting in unless you're cleared.",TXT_DLG_SCRIPT04_D4548_DERWI,,,,"Derwin? Ja, der ist unten im Lagerhaus, aber da kommst du nicht rein ohne Berechtigung.","¿Derwin? Si, está abajo en el almacén, pero no puedes entrar a menos que tengas permiso.",,"Derwin? Ouais, il est dans l'entrepôt. Vous ne pouvez pas y entrer sans autorisation.",,,,"Дервин? Да, он внизу, на Ñкладе, но Ñ‚ÐµÐ±Ñ Ñ‚ÑƒÐ´Ð° не пуÑÑ‚ÑÑ‚, еÑли у Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ пропуÑка.", +I've got clearance.,TXT_RPLY0_SCRIPT04_D4548_IVEGO,,,,Ich habe eine Berechtigung.,Tengo permiso.,,J'ai une autorisation.,,,,У Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ пропуÑк., +Go on.,TXT_DLG_SCRIPT04_D6064_GOON,,,,Alles klar.,Ve entonces.,,Allez-y.,,,,Проходи., +Do you know where he is?,TXT_RPLY0_SCRIPT04_D6064_DOYOU,,,,"Weißt du, wo er ist?",¿Sabes donde está?,,Vous savez où il est?,,,,"Ð’Ñ‹ знаете, где Дервин?", +I don't know where anybody is. I just keep the lid on the rat trap.,TXT_DLG_SCRIPT04_D7580_IDONT,,,,"Ich weiß von niemandem, wo er ist. Ich kümmere mich nur um die Rattenfalle.",No se donde está nadie. Solo mantengo la tapa de la trampa de ratones.,,Je ne sais pas où se trouve qui que ce soit. Je ne fais que garder le couvercle de ce trou à rats.,,,,"Ðичего Ñ Ð½Ðµ знаю. Я проÑто Ñлежу, чтобы никто из них не Ñбежал из западни.", +You are an unpleasant distraction.,TXT_DLG_SCRIPT04_D9096_YOUAR,,,,Du bist eine unerwünschte Ablenkung,Eres una distracción incómoda.,,Vous êtes une distraction déplaisante.,,,,Ты — доÑÐ°Ð´Ð½Ð°Ñ Ð¿Ð¾Ð¼ÐµÑ…Ð°., +Move along or taste metal.,TXT_DLG_SCRIPT04_D10612_MOVEA,,,,Beweg dich oder du schmeckst Metall.,Muévete o prueba metal.,,Circulez ou préparez vous à manger de l'acier.,,,,"Прочь, или отведаешь металла.", +Pass your ID through here for access.,TXT_DLG_SCRIPT04_D12128_PASSY,,,,Reichen Sie Ihre Identitätskarte hier durch!,Pasa tu identificación por aquí para acceder.,,Faites passer votre carte d'identité ici pour continuer.,,,,"Покажи Ñвоё удоÑтоверение, чтобы получить допуÑк.", +"Get back to work, now!",TXT_DLG_SCRIPT04_D13644_GETBA,,,,Gehen Sie sofort zurück an die Arbeit!,"Vuelve al trabajo, ¡Ahora!",,"Retournez au boulot, maintenant!",,,,"За работу, немедленно!", +"Get back to work, now!",TXT_DLG_SCRIPT04_D15160_GETBA,,,,Gehen Sie sofort zurück an die Arbeit!,"Vuelve al trabajo, ¡Ahora!",,"Retournez au boulot, maintenant!",,,,"За работу, немедленно!", +We've been running around the clock for weeks with no down time. I'd say that the Order is planning a suppression raid on the Front.,TXT_DLG_SCRIPT04_D16676_WEVEB,,,,"Die Station hier läuft seit Wochen ohne Stillstand. Ich vermute mal, der Orden bereitet einen großen Schlag gegen die Front vor.","Hemos trabajado todo el tiempo durante semanas, sin descanso. Diría que la Orden está planeando una incursión para suprimir al frente.",,J'ai fait le tour de l'horloge depuis des semaines sans temps de repos. Je pense que l'Ordre prépare un raid de suppression sur le Front.,,,,"Мы работаем круглые Ñутки без перерыва уже неÑколько недель. Мне кажетÑÑ, Орден готовит решительный рейд, чтобы окончательно покончить Ñ Ð¡Ð¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼.", +"Oh, damn. The governor sent you. I was going to give him his cut, really I was. Ok, listen. I've got a bundle stashed. It's yours if you look the other way.",TXT_DLG_SCRIPT04_D18192_OHDAM,,,,"Verdammt, der Gouverneur hat dich geschickt. Ich wollte ihm seinen Anteil geben - wirklich ich wollte das. Hör zu, ich habe hier was zur Seite geschafft, es gehört die wenn du die Sache auf sich beruhen läßt.","Oh, maldición. El gobernador te ha enviado. Iba a darle su parte, en serio. Ok, escucha. Tengo un par escondido. Es tuyo si miras a otro lado.",,"Oh, merde. Le gouverneur t'a envoyé? J'allais lui donner sa part, si, vraiment. Ok, écoute. J'en ai un paquet de mis de côté. Si tu veux, tu peux le prendre, si tu m'oublies.",,,,"Ох черт, Ñ‚Ñ‹ от губернатора. Я ÑобиралÑÑ Ð¾Ñ‚Ð´Ð°Ñ‚ÑŒ ему его долю, клÑнуÑÑŒ. Слушай, Ñ Ð¿Ð¾Ð´Ð½Ð°ÐºÐ¾Ð¿Ð¸Ð» изрÑдно денег, они твои, еÑли найдешь иной выход из Ñитуации.", +"All right, I'll let you go.",TXT_RPLY0_SCRIPT04_D18192_ALLRI,,,,"Ok, ich lass dich gehen.","Muy bien, te dejaré ir.",,"D'accord, tu peux y aller.",,,,"Ладно, Ñ Ð´Ð°Ð¼ тебе уйти.", +"Sorry, nothing personal.",TXT_RPLY1_SCRIPT04_D18192_SORRY,,,,"Tut mir leid, nimm es nicht persönlich","Lo siento, no es nada personal.",,"Désolé, rien de personnel.",,,,"ПроÑти, ничего личного.", +"Nuts, if I'm going down, then so are you. Guards!!",TXT_DLG_SCRIPT04_D19708_NUTSI,,,,"Scheiße, aber wenn ich dran bin, bist du es auch. Wärter!","Cuernos, si caigo, tú lo harás conmigo. ¡¡Guardias!!",,"Putain, si je crève ici, alors tu y passe aussi! Gardes!",,,,"К чёрту, раз уж Ñ Ñдохну, то и Ñ‚Ñ‹ Ñо мной. Стража!", +"Business my ass. Help, guards, I've got a live one.",TXT_DLG_SCRIPT04_D21224_BUSIN,,,,"Scheiß' aufs Geschäft. Wärter, ich habe hier einen Eindringling.","¿Negocios? Venga ya. Ayuda, guardias, tengo uno vivo.","¿Negocios? Al demonio. Ayuda, guardias, tengo uno vivo.","Une affaire, mon cul! Gardes, à l'aide, j'en ai un de vivant ici!",,,,"Дело дрÑнь. Стража, на помощь, тут живой повÑтанец.", +"Ah, I got word from Macil that you'd be coming. I have a way to get you inside the power station, but it's on the risky side.",TXT_DLG_SCRIPT04_D22740_AHIGO,,,,"Ah, Macil hat mir mitgeteilt, dass du kommst. Ich kenne einen Weg, um in das Werk reinzukommen, aber es ist etwas riskant.","Ah, tengo palabra de Macil de que vendrías. Tengo una forma de meterte en la estación eléctrica, pero es algo arriesgada.",,"Ah, Macil m'a prévenu que vous viendriez. J'ai une entrée dans la centrale pour vous mais elle est un peu risquée.",,,,"Ðга, мне Ñообщили, что Ñ‚Ñ‹ от ÐœÑйÑила. Я помогу тебе проникнуть на Ñтанцию, но Ñто довольно риÑкованно.", +I'll take my chances.,TXT_RPLY0_SCRIPT04_D22740_ILLTA,,,,Ich riskiere es.,Puedo asumir el riesgo.,,Je suis prêt à prendre ces risques.,,,,Я риÑкну., +"All right, I stole an I.D. from the corpse of some fool who fell into the reactor's coolant pit. --blat-- instant deep fry.",TXT_DLG_SCRIPT04_D24256_ALLRI,,,,"Alles klar. Ich habe hier die Identitätskarte von so 'nem Trottel, der in die Kühlanlage des Reaktors reingefallen ist. --platsch-- hat ihn schockgefrostet.","Muy bien, he robado la idenficiación del cadaver de un inútil que cayó en el pozo de refrigeración del reactor. --blat-- frito al instante.",,Très vien. J'ai volé la carte d'identité d'un idiot qui est tombé dans le puits de refroidissement du réacteur. Plouf! Instantanément frit.,,,,"Очень хорошо, Ñ ÑƒÐºÑ€Ð°Ð» удоÑтоверение личноÑти Ñ Ñ‚Ñ€ÑƒÐ¿Ð° одного идиота, упавшего в резервуар Ð¾Ñ…Ð»Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¾Ñ€Ð°. «ШмÑк!» Моментальное прожаривание до коÑтей.", +What should I do once I'm in?,TXT_RPLY0_SCRIPT04_D24256_WHATS,,,,"Was soll ich machen, wenn ich drin bin?",¿Qué debo hacer una vez dentro?,,Qu'est ce que je fais une fois que je suis rentré?,,,,И что дальше?, +"Tell whoever asks that you're the replacement worker for Mr. Crispy. It's just dumb enough to work. Oh, and you might want to check out the storeroom that's right above us.",TXT_DLG_SCRIPT04_D25772_TELLW,,,,"Sage jedem, der dich fragt, dass du der Ersatz für Mister Crispy bist. Es is idiotisch genug, um zu funktionieren. Oh, du solltest auch mal einen Blick in den Lagerraum auf der oberen Etage werfen.","Dile a quien pregunte que eres el sustituto del Sr. Crujiente. Es suficientemente estúpido para que funcione. Oh, y puede que quieras comprobar el cuarto de alacenamiento justo sobre nosotros.",,"Expliquez à qui veut l'entrendre que vous remplacez Mr. Frite. C'et suffisamment stupide pour marcher. Oh, et pensez à fouiller la salle de stockage au dessus de nous.",,,,"Говори вÑем, что Ñ‚Ñ‹ заменÑешь г-на КриÑпи. Это так глупо, что должно Ñработать. И ещё, наверное, тебе захочетÑÑ Ð½Ð°Ð²ÐµÐ´Ð°Ñ‚ÑŒÑÑ Ð½Ð° Ñклад, прÑмо над нами.", +Boy I hope this I.D. Works.,TXT_RPLY0_SCRIPT04_D25772_BOYIH,,,,"Mann, ich hoffe, dass diese Karte auch funktioniert.","Vaya, espero que esta identificación funcione.",,"Eh bien, j'espère que cette carte fonctionnera.",,,,"Ох, надеюÑÑŒ, Ñто Ñработает.", +"Get out of here, unless you want to end up Mr. Dead.",TXT_DLG_SCRIPT04_D27288_GETOU,,,,"Und nun verschwinde, wenn du nicht als Mister Tot enden willst.","Lárgate de aqui, a menos que quieras acabar Sr. Muerto.",,"Sortez de là, sauf si vous voulez être Mr. Mort.",,,,"Уходи ÑÐµÐ¹Ñ‡Ð°Ñ Ð¶Ðµ, еÑли не хочешь получить Ð¸Ð¼Ñ Â«Ð³-н Покойник».", +"Hey, leave me alone. If they catch us wasting time we get dead, or extra work.",TXT_DLG_SCRIPT04_D28804_HEYLE,,,,"Lass mich in Ruhe. Wenn sie uns beim Quatschen erwischen, sind wir entweder beide tot oder kriegen Extraarbeit aufgebrummt.","Hey, déjame en paz. Si nos pillan perdiendo el tiempo nos matan, o nos dan más trabajo.",,"Hé, foutez-moi la paix, si ils nous attrappent ici à nous tourner les pouces, on y passe où c'est le travail forcé.",,,,"Эй, оÑтавь Ð¼ÐµÐ½Ñ Ð² покое. ЕÑли они увидÑÑ‚, что мы болтаем, Ð½Ð°Ñ ÑƒÐ±ÑŒÑŽÑ‚... или добавÑÑ‚ работы.", +"Such pressure, at this rate we'll be back to normal shifts soon. We're pumping tons of power to the castle and I'm almost finished logging those new weapons.",TXT_DLG_SCRIPT04_D30320_SUCHP,,,,"So viel Druck. Wenn es so weiter geht, gibt es bald wieder normale Schichten. Wir pumpen Tonnen von Energie in die Burg und ich habe die neuen Waffen fast alle verstaut.","Cuanta presión, a este ritmo podremos volver pronto a turnos normales. Estamos dando montones de potencia al castillo y casi he terminado de registrar esas nuevas armas.","Cuanta presión, a este ritmo podremos volver pronto a turnos normales. Estamos dando montones de potencia al castillo y casi he terminado el registro de esas nuevas armas.","Quelle pression. Si ça continue, on devrait revenir au rhytme de travail de base. On pompe des tonnes d'énergies pour le château et j'ai presque fini d'enregistrer toutes ces nouvelles armes.",,,,"Ð¢Ð°ÐºÐ°Ñ Ñпешка, но Ñкоро мы вернёмÑÑ Ðº нормальному графику. Мы направлÑем маÑÑу Ñнергии в замок, и Ñ Ð¿Ð¾Ñ‡Ñ‚Ð¸ закончил Ñ Ð¿Ð¾Ð³Ñ€ÑƒÐ·ÐºÐ¾Ð¹ нового оружиÑ.", +Weapons?,TXT_RPLY0_SCRIPT04_D30320_WEAPO,,,,Waffen?,¿Armas?,,Des armes?,,,,ОружиÑ?, +"What do you think, we're backed up on socks?",TXT_DLG_SCRIPT04_D31836_WHATD,,,,"Was dachtest du denn, glaubst du wir verteidigen uns mit Socken?","¿Qué crees, que vamos con calcetines?",,Vous croyez quoi? Qu'on a un surplus de chausettes?,,,,"Ты что, думаешь, мы ноÑками воюем?", +What kind of weapons?,TXT_RPLY0_SCRIPT04_D31836_WHATK,,,,Was für Waffen?,¿Qué clase de armas?,,Quel type d'armes?,,,,Какое оружие?, +Are you deaf? I just told you how busy I am. Get back to work.,TXT_DLG_SCRIPT04_D33352_AREYO,,,,"Bist du taub? Ich hab dir dock gerade gesagt, wie beschäftigt ich bin. Geh zurück an die Arbeit.",¿Estás sordo? Ya te he dicho lo ocupado que estoy. Vuelve al trabajo.,,"Vous êtes sourd? Je viens de vous dire que je suis occupé, retournez au travail!",,,,"Ты глухой, что ли? Я только что объÑÑнил тебе, наÑколько занÑÑ‚. ВозвращайÑÑ Ðº работе.", +Who are you? Only clearance level two personnel are permitted in this area.,TXT_DLG_SCRIPT04_D34868_WHOAR,,,,Wer bist du? Nur Personal mit Zugangsstufe 2 hst hier Zutritt.,¿Quién eres? Solo el personal con permiso de nivel dos puede estar aquí.,,Qui êtes vous? Seuls les personnes avec un niveau d'autorisation deux peuvent accéder à cette zone.,,,,Ты кто такой? Только перÑоналу второго ÑƒÑ€Ð¾Ð²Ð½Ñ Ð´Ð¾Ð¿ÑƒÑка разрешено находитьÑÑ Ð² Ñтой зоне., +I'm the replacement worker.,TXT_RPLY0_SCRIPT04_D34868_IMTHE,,,,Ich bin der Ersatzarbeiter.,Soy el sustituto.,,Je suis le remplaçant.,,,,Я замещаю рабочего., +"About time you showed up. Go talk with Ketrick in the core. Oh, and take this key card. Don't want you getting shot on your first day, huh?",TXT_DLG_SCRIPT04_D36384_ABOUT,,,,"Wird auch Zeit, dass du hier erscheinst. Rede mit Ketrick im Reaktorkern, Und nimm diesen Schlüssel. Du willst ja wohl nicht gleich am ersten Tag erschossen werden, oder?","Ya era hora. Ve a hablar con Ketrick en el núcleo. Oh, y toma esta tarjeta llave. No querrás que te peguen un tiro en tu primer día, ¿eh?",,"Ah. Enfin. Il vous en a fallu, du temps! Allez parler avec Ketrick dans la section du cÅ“ur. Oh, et prenez ce passe. Vous ne voulez pas vous faire tirer dessus lors de votre premier jour, non?",,,,"Как раз вовремÑ. Иди поговори Ñ ÐšÐµÑ‚Ñ€Ð¸ÐºÐ¾Ð¼ возле Ñдра реактора. О, и возьми Ñту карточку. Мы ведь не хотим, чтобы Ñ‚ÐµÐ±Ñ Ð¿Ð¾Ð´Ñтрелили в первый же рабочий день?", +Where's the power crystal?,TXT_RPLY0_SCRIPT04_D36384_WHERE,,,,Wo ist der Energiekristall?,¿Dónde está el cristal de poder?,,Où se trouve le cristal du réacteur?,,,,Где ÑнергетичеÑкий криÑталл?, +"If you don't get to work, you'll get shot anyway. Move your tunic.",TXT_DLG_SCRIPT04_D37900_IFYOU,,,,"Wenn du nicht arbeitest, wirst du eh erschossen. Und nun beweg deinen Arsch!","Si no te pones a trabajar, te pegarán un tiro igual. Mueve tu túnica.",,"Si vous ne partez pas travailler, vous allez vous faire tirer dessus de toutes manières. Bougez-vous les miches.",,,,"ЕÑли Ñ‚Ñ‹ не приÑтупишь к работе, Ñ‚ÐµÐ±Ñ Ð²ÑÑ‘ равно приÑтрелÑÑ‚. ШевелиÑÑŒ!", +"I don't mean to sound alarmist, but if they keep pushing the power crystal this hard it's gonna flaw, and then shatter, and then *boom*! ...Just a thought.",TXT_DLG_SCRIPT04_D39416_IDONT,,,,"Ich will ja nicht herumunken, aber wenn sie den Kristall weiter so überstrapazieren, nimmt er Schaden, und dann *bumm*! ...nur so ein Gedanke.","No quiero sonar alarmante, pero ¡Si siguen forzando tanto el cristal de poder se rallará, y luego se partirá, y luego *boom*! ... Solo una idea.",,"Je n'ai pas envie d'être alarmiste, mais si ils continuent de mettre autant de tension sur le cristal du réacteur, il risque d'être endommagé, éclater, et puis boum! Enfin, c'est juste ce que je pense.",,,,"Ðе хочу показатьÑÑ Ð¿Ð°Ð½Ð¸ÐºÑ‘Ñ€Ð¾Ð¼, но еÑли продолжать так же Ñильно нагружать криÑталл, он треÑнет, потом раÑколетÑÑ, а потом «бум!».. ПроÑто предположение.", +"Let me be quite clear. If this terminal locks up again, the coolant level will drop and we'll all have to answer to the Programmer. If we survive.",TXT_DLG_SCRIPT04_D40932_LETME,,,,"Lass es mich klar und deutlich sagen. Wenn dieses Terminal nochmal abstürzt, sinkt der Kühlungsflüssigkeitspegel und wir dürfen uns vor dem Programmierer verantworten - wenn wir überleben.","Que quede claro. Si esta terminal vuelve a bloquearse, el nivel de refrigerante caerá y todos tendremos que responder ante al Programador. Si sobrevivimos.","Que quede claro. Si esta terminal vuelve a bloquearse, el nivel de refrigerante caerá y todos tendremos que responderle al Programador. Si sobrevivimos.","Je vais être clair. Si ce terminal plante encore, les niveaux de liquide de refroidissement vont descendre et on aura tous à faire face au Programmeur. Si on survit, bien entendu.",,,,"Давай говорить начиÑтоту. ЕÑли Ñтот терминал опÑÑ‚ÑŒ заклинит, то уровень Ð¾Ñ…Ð»Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ ÑƒÐ¿Ð°Ð´Ñ‘Ñ‚, и нам вÑем придётÑÑ Ð¾Ñ‚Ð²ÐµÑ‡Ð°Ñ‚ÑŒ перед ПрограммиÑтом — еÑли выживем.", +"You! Yeah, you. You aren't cleared for this area. Let me have your key card, fast. I'm in such a bad mood!",TXT_DLG_SCRIPT04_D42448_YOUYE,,,,"Du da! Ja, du. Du hast keine Berechtigung für diesen Bereich. Gib mir deine Schlüsselkarte, und zwar schnell! Ich bin ja sowas von sauer!","¡Tú! Si, tú. No tienes permiso en esta área. Déjame tu tarjeta llave, rápido. ¡Estoy de tan mal humor!",,"Vous! Oui, vous, vous, vous n'avez pas l'autorisation d'être dans cette zone! Donnez moi votre passe maintenant, et vite, je suis de sale humeur aujourd'hui!",,,,"Ты! Да, Ñ‚Ñ‹. У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ Ñюда допуÑка. Давай Ñюда Ñвою карточку, быÑтро. Я ÑÐµÐ³Ð¾Ð´Ð½Ñ Ð² плохом наÑтроении!", +"Here, here's my card.",TXT_RPLY0_SCRIPT04_D42448_HEREH,,,,"Hier, hier ist meine Karte.","Toma, aquí está mi tarjeta.",,Voilà mon passe.,,,,"Вот, вот Ð¼Ð¾Ñ ÐºÐ°Ñ€Ñ‚Ð°.", +This is garbage! Wait here. Oh screw it. Guards kill this intruder!,TXT_DLG_SCRIPT04_D43964_THISI,,,,"Das ist ja wohl die Höhe! Warte hier. Ach was. Wärter, tötet hn!","¡Esto es basura! Espera aquí. Oh que más da. Guardias, ¡matad a este intruso!","¡Esto es basura! Espera aquí. Oh que más da. Guardias, ¡Maten a este intruso!","C'est quoi cette blague? Attendez ici. Non, en fait, Gardes! Descendez cet intrus!",,,,"Этой карточкой можно только подтеретьÑÑ! Жди здеÑÑŒ. Ð, к чёрту. Стража, здеÑÑŒ нарушитель! Убейте его!", +"Work, sleep, get tortured, what a life. Say, you the replacement for the careless pit diver?",TXT_DLG_SCRIPT04_D45480_WORKS,,,,"Arbeiten, schlafen, gefoltert werden, was für ein Leben. Sag mal, bist du der Ersatz für diesen sorglosen Grubentaucher?","Trabajar, dormir, ser torturado, vaya vida. Dime, ¿eres el sustituto del imprudente buceador?",,"Travail, sommeil, torture, quelle vie! Dites, vous êtes le remplaçant de l'unfortuné plongeur?",,,,"Работа, Ñон и пытки, что за жизнь. Так Ñ‚Ñ‹ заменÑешь нашего беÑпечного нырÑльщика?", +"Yeah, can't wait to start.",TXT_RPLY0_SCRIPT04_D45480_YEAHC,,,,"Ja, ich kanns kaum erwarten, hier anzufangen.","Sí, tengo ganas de empezar.",,"Oui, j'ai hâte de commencer.",,,,"Да, поÑкорей бы уже за дело.", +"Yeah, right. Ok, get your ass to work.",TXT_DLG_SCRIPT04_D46996_YEAHR,,,,"Na gut, schwing deinen Arsch zur Arbeit.","Sí, claro. Ok, ponte a trabajar.",,"Ouais, bien sûr. Allez bosser.",,,,"Да, конечно. Ладно, шуруй работать.", +Where's the crystal?,TXT_RPLY0_SCRIPT04_D46996_WHERE,,,,Wo ist der Kristall?,¿Dónde está el cristal?,,Où est le cristal?,,,,Где криÑталл?, +"Go talk to Ketrick. Bring the walkway up using the switches, then use this I.D. For the elevator.",TXT_DLG_SCRIPT04_D48512_GOTAL,,,,"Rede mit Ketrick. Hebe den Steg mit den Schaltern an, dann benutze dies ID für den Lift.","Habla con Ketrick. Alza la pasarela usando los interruptores, luego usa esta identificación para el ascensor.","Habla con Ketrick. Alza la pasarela usando los interruptores, luego usa esta identificación para el elevador.","Parlez à Ketrick. Vous pouvez étendre la coursive avec les boutons, puis utilisez ce passe pour l'ascenseur.",,,,"Сходи поговори Ñ ÐšÐµÑ‚Ñ€Ð¸ÐºÐ¾Ð¼. ИÑпользуй переключатели на Ñтене, чтобы поднÑÑ‚ÑŒÑÑ Ð½Ð°Ð²ÐµÑ€Ñ…, потом запуÑти лифт Ñтой карточкой.", +Where's the crystal again?,TXT_RPLY0_SCRIPT04_D48512_WHERE,,,,"Wo ist der Kristall, nochmal?","De nuevo, ¿Dónde está el cristal?",,Mais où est le cristal?,,,,Ещё раз: где криÑталл?, +"None of your business, go talk to Ketrick.",TXT_DLG_SCRIPT04_D50028_NONEO,,,,"Geht dich nichts an, und jetzt rede mit Ketrick.","No es asunto tuyo, ve a hablar con Ketrick.",,Rien qui ne vous concerne. Allez voir Ketrick.,,,,Ðе твоё дело. Иди поговори Ñ ÐšÐµÑ‚Ñ€Ð¸ÐºÐ¾Ð¼., +Ok.,TXT_RPLY0_SCRIPT04_D50028_OK,,,,Ok.,Ok.,,OK.,,,,ПонÑл., +"If it's busy work you want, go stare at that screen for a while, it'll bore you to tears.",TXT_DLG_SCRIPT04_D51544_IFITS,,,,"Wenn du richtige Arbeit willst, dann starre mal für längere Zeit auf den Bildschirm. Das langweilt zu Tränen.","Si es trabajo ocioso lo que buscas, ve a mirar esa pantalla un rato, te aburrirá hasta llorar.",,"Si vous voulez un boulot éreintant, allez fixer cet écran pour quelques heures. Ca va vous ennuyer jusqu'a en pleurer.",,,,ЕÑли Ñ‚Ñ‹ хочешь муравьиной работы — попÑльÑÑ ÐºÐ°ÐºÐ¾Ðµ-то Ð²Ñ€ÐµÐ¼Ñ Ð² тот Ñкран... ÐаÑкучит до Ñлёз., +The almighty Programmer is so paranoid of infiltration that he's locked up the computer core. How am I supposed to get my work done? The only way in is the suicide run.,TXT_DLG_SCRIPT04_D53060_THEAL,,,,"Der allmächtige Programmierer ist so paranoid, dass er den Computer blockiert hat. Wie soll ich so meine Arbeit machen? Der einzige weg wäre über den Selbstmordpfad.",El todopoderoso Programador tiene tal paranoia de infiltración que ha cerrado el núcleo de la computadora. ¿Cómo se supone que voy a hacer mi trabajo? La única entrada es la vía suicida.,,"Ce tout-puissant Programmeur est tellement paranoïaque au sujet des infiltrations qu'il a mis le cÅ“ur informatique sous les verrous. Comment je peux faire mon travail maintenant? Si je veux essayer d'y entrer, faut que j'utilise le couloir du suicide!",,,,"Ð’Ñемогущий ПрограммиÑÑ‚ наÑтолько боитÑÑ Ð²Ñ‚Ð¾Ñ€Ð¶ÐµÐ½Ð¸Ñ, что заблокировал компьютеры. И как мне выполнÑÑ‚ÑŒ Ñвою работу? ЕдинÑтвенный путь туда — Ñто ÑамоубийÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð±ÐµÐ¶ÐºÐ°.", +Suicide run? What's that?,TXT_RPLY0_SCRIPT04_D53060_SUICI,,,,"Selbstmordpfad, was ist das?",¿Vía suicida? ¿Qué es eso?,,Couloir du suicide? Comment ça?,,,,СамоубийÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð±ÐµÐ¶ÐºÐ°? О чём Ñ‚Ñ‹?, +"It's a sure-fire way to get killed, but that's not important right now. Go down the lift if you're so inclined.",TXT_DLG_SCRIPT04_D54576_ITSAS,,,,"Es ist ein todsicherer weg um das Zeitliche zu segnen, aber das ist jetzt nicht wichtig. Nimm den Lift da drüben, wenn du Lust hast,und sieh selbst unten nach.","Es una forma segura de matarte, pero eso no importa ahora. Baja por el ascensor si te atreves.",,C'est un moyen garanti de se tuer. Mais ce n'est pas important pour l'instant. Descendez avec l'acsenseur si vous voulez absolument essayer.,,,,"Это Ð²ÐµÑ€Ð½Ð°Ñ Ð³Ð¸Ð±ÐµÐ»ÑŒ. Впрочем, ÑÐµÐ¹Ñ‡Ð°Ñ Ñто уже неважно. Иди, еÑли не боишьÑÑ.", +Halt. No one gets through here without authorization from the Warden or the Governor.,TXT_DLG_SCRIPT05_D0_HALTN,,,,Halt. Niemand kommt hier ohne Autorisierung des Direktors durch.,Alto. Nadie entra aquí sin autorización del Carcelero o el Gobernador.,Alto. Nadie entra aquí sin autorización del Director o del Gobernador.,Halte! Personne ne passe sans autorisation du gardien ou du gouverneur.,,,,Стой. Ðикто не может пройти Ñюда без Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ тюремщика или губернатора., +"Here's my pass, let me in.",TXT_RPLY0_SCRIPT05_D0_HERES,,,,"Hier is mein Pass, lassen Sie mich rein.","Aquí está mi pase, déjame entrar.",,Voilà mon passe. Laissez-moi passer.,,,,Вот мой пропуÑк. Дай войти., +"Ok, but talk only to the Warden.",TXT_DLG_SCRIPT05_D1516_OKBUT,,,,"Ok, aber reden Sie nur mit dem Direktor.","Ok, pero habla solo con el Carcelero.","Ok, pero habla solo con el Director.","D'accord, mais vous ne vous pouvez parler qu'au gardien.",,,,"Проходи, но говори только Ñ Ñ‚ÑŽÑ€ÐµÐ¼Ñ‰Ð¸ÐºÐ¾Ð¼.", +"Do I look like the Warden to you? Keep moving, this area's off limits.",TXT_DLG_SCRIPT05_D3032_DOILO,,,,"Sehe ich wie ein Direktor aus? Beweg dich, du hast hier nichts zuz suchen.","¿Te parezco el Carcelero? Sigue andando, esta área está fuera de límite.","¿Te parezco el Director? Sigue moviéndote, esta área está fuera de límite.","Je ressemble au gardien, à ton avis? Bouge, cette zone est hors-limites!",,,,"Я что, похож на тюремщика? Двигай отÑюда, здеÑÑŒ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ñ‚ÐµÑ€Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ!", +The Order's wrath will rain down on these servants until they beg for death.,TXT_DLG_SCRIPT05_D4548_THEOR,,,,"Der Zorn des Ordens wird auf diese Untergebenen herabregnen, bis sie um den Tod betteln.",La ira de la Orden caerá sobre estos sirvientes hasta que supliquen por su muerte.,,La colère de l'Ordre s'abbatra sur ces serviles miséreux jusqu'a ce qu'ils pleurent pour leur propre mort.,,,,"Гнев Ордена обрушитÑÑ Ð½Ð° Ñтих рабов, и они будут молить о Ñмерти.", +"I don't care if Mourel gave you a pass. This is my prison. My key is the only way in or out, and I'm not taking any chances. The Order does not tolerate mistakes.",TXT_DLG_SCRIPT05_D6064_IDONT,,,,"Es ist mir egal ob Mourel Ihnen einen Pass gegeben hat. Das ist mein Gefängnis. Mein Schlüssel ist die einzige Möglichkeit herein- oder herauszukommen, und ich riskiere da gar nichts. Der Orden toleriert keine Fehler.","No me importa que Mourel te diera un pase. Ésta es mi prisión. Mi llave es la única forma de entrar o salir, y no voy a arriesgarme. La Orden no tolera los fallos.",,"Je m'en fous que Mourel t'ai donné un passe. C'est ma prison. Ma clé est la seule façon d'entrer ou de sortir, et je ne prends pas de risque. L'Ordre ne tolère pas les erreurs.",,,,"Мне плевать, дал ли тебе Морел пропуÑк или нет. Это Ð¼Ð¾Ñ Ñ‚ÑŽÑ€ÑŒÐ¼Ð°, без моего ключа не войдёшь и не выйдешь. И Ñ Ð½Ðµ хочу риÑковать — Орден не прощает ошибок!", +Give me the damn key!,TXT_RPLY0_SCRIPT05_D6064_GIVEM,,,,Geben Sie mir den verdammten Schlüssel!,¡Dame la maldita llave!,,Donne moi cette putain de clé!,,,,Дай мне чёртов ключ!, +Over my dead body!,TXT_DLG_SCRIPT05_D7580_OVERM,,,,Nur über meine Leiche!,¡Sobre mi tumba!,,Il faudra me passer sur le corps!,,,,Только через мой труп!, +Great idea!,TXT_RPLY0_SCRIPT05_D7580_GREAT,,,,Gute Idee!,¡Buena idea!,,Excellente idée!,,,,Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ð¼Ñ‹Ñль!, +"Shackles or chains, I want you to hang around.",TXT_DLG_SCRIPT05_D9096_SHACK,,,,Fesseln oder Ketten - ich will dich hier herumhängen sehen.,"Grilletes o cadenas, te quiero ver colgado.",,Chaînes ou menottes? J'ai vraiment envie de vous retenir aux alentours.,,,,"Кандалы или цепи? Я хочу, чтобы Ñ‚Ñ‹ подольше тут задержалÑÑ.", +"I don't know how you managed to get past the guards and the Warden, but I hope you like the decor, because you just moved in.",TXT_DLG_SCRIPT05_D10612_IDONT,,,,"Ich habe keine Ahnung, wie du an den Wachen und dem Direktor vorbeigekommen bist, aber ich hoffe du magst das Dekor, denn du bist gerade eingezogen.","No sé como has logrado pasar por los guardias y el Carcelero, pero espero que te guste la decoración, porque te acabas de mudar aquí.","No sé como has logrado pasar por los guardias y el Director, pero espero que te guste la decoración, porque te acabas de mudar aquí.","Je ne sais pas comment vous êtes passé à travers les gardes et le gardien, mais j'espère que vous aimez le décor car ceci sera votre nouveau domicile.",,,,"Ðе знаю, как тебе удалоÑÑŒ миновать Ñтражу и Монтага. Ðо, Ñ Ð½Ð°Ð´ÐµÑŽÑÑŒ, тебе нравитÑÑ Ð¸Ð½Ñ‚ÐµÑ€ÑŒÐµÑ€? Потому что отÑюда Ñ‚Ñ‹ уже не выйдешь.", +Free my comrades or die!,TXT_RPLY0_SCRIPT05_D10612_FREEM,,,,Befreien Sie meine Kameraden oder sterben Sie!,¡Libera a mis camaradas o muere!,,Libère mes camarades ou meurs!,,,,"ОÑвободи моих товарищей, или Ñ‚Ñ‹ умрёшь!", +Kill me and you'll never set anyone free. I possess the only pattern key that will unlock the cells.,TXT_DLG_SCRIPT05_D12128_KILLM,,,,"Töte mich und du befreist niemanden. Ich bin der einzige, der autorisiert ist, die Gefangenen freizulassen.",Mátame y nunca liberarás a nadie. Poseo la única huella digital que abre las celdas.,,Tuez moi et personne ne sera libéré. Je suis le seul qui possède la clé qui peut ouvrir les cellules.,,,,"Убив менÑ, Ñ‚Ñ‹ никого не оÑвободишь. Только у Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ ключ, которым можно открыть камеры.", +Can you lend me a hand then?,TXT_RPLY0_SCRIPT05_D12128_CANYO,,,,Können Sie mir Ihre Hand leihen?,¿Me puedes echar una mano entonces?,,"Tu peux me prêter main forte, alors?",,,,"Может быть, Ñ‚Ñ‹ дашь мне руку помощи?", +Move along or join your friends.,TXT_DLG_SCRIPT05_D13644_MOVEA,,,,Hau ab oder zieh bei deinen Freunden ein.,Muévete o únete a tus amigos.,,Bougez ou rejoignez vos amis.,,,,"Ðе подходи ко мне, или приÑоединишьÑÑ Ðº Ñвоим друзьÑм.", +"Don't just stand there, get us out of here!",TXT_DLG_SCRIPT05_D15160_DONTJ,,,,"Steh da nicht so rum, hol uns raus!","No te quedes ahí, ¡sácanos de aquí!",,"Ne vous tenez pas là, sortez nous d'ici!",,,,Ðе Ñтой проÑто так — вытащи Ð½Ð°Ñ Ð¾Ñ‚Ñюда!, +"The sky, I want to see the sky.",TXT_DLG_SCRIPT05_D16676_THESK,,,,"Der Himmel, ich möchte den Himmel sehen.","El cielo, quiero ver el cielo.",,"Le ciel, je veux voir le ciel!",,,,Ðебо. Я хочу увидеть небо., +"Five feet by four feet, five feet by four feet, five feet by four feet.",TXT_DLG_SCRIPT05_D18192_FIVEF,,,,"Fünf Fuß mal vier Fuß, fünf Fuß mal vier Fuß, fünf Fuß mal vier Fuß...","Cinco pies por cuatro pies, cinco pies por cuatro pies, cinco pies por cuatro pies.",,Un mètre cinquante par un mètre trente. Un mètre cinquante par un mètre trente. Un mètre cinquante par un mètre trente.,,,,ПÑÑ‚ÑŒ шагов на четыре шага. ПÑÑ‚ÑŒ шагов на четыре шага. ПÑÑ‚ÑŒ шагов на четыре шага., +Don't release me if the Order's still in charge. I can't stand the terror.,TXT_DLG_SCRIPT05_D19708_DONTR,,,,"Bitte befreie mich nicht, wenn der Orden hier noch herrscht, ich halte den Horror nicht aus.",No me dejes ir si la Orden sigue al mando. No puedo soportar el terror.,,Laissez moi ici si l'Ordre est toujours au pouvoir. Je ne veux pas voir cette horreur.,,,,"Ðе оÑвобождай менÑ, еÑли Орден вÑÑ‘ ещё у влаÑти. Я не вынеÑу террора.", +"I don't want to bitch, but it's about time Macil sent someone to get us out.",TXT_DLG_SCRIPT05_D21224_IDONT,,,,"Ich möchte ja nicht meckern, aber es wurde auch Zeit, dass Macil jemanden schickt, der uns hier rausholt","No quiero quejarme, pero ya iba siendo hora de que Macil enviase a alguien a sacarnos.","No quiero quejarme, pero ya era hora de que Macil enviara a alguien a sacarnos.","J'ai pas envie de me plaindre, mais vous Macil a vraiment pris son temps pour nous sortir d'ici!",,,,"Ðе хочу ныть, но пора бы ÐœÑйÑилу уже поÑлать кого-нибудь оÑвободить наÑ.", +I'd give anything for just a crust of bread. I'm so hungry.,TXT_DLG_SCRIPT05_D22740_IDGIV,,,,Ich gäbe alles für eine Brotkruste. Ich habe so einen Hunger.,Daría lo que fuera por una migaja de pan. Tengo tanta hambre.,,Je donnerai n'importe quoi pour une bouchée de pain. J'ai tellement faim!,,,,Я бы вÑÑ‘ отдал проÑто за ломоть хлеба. Я так голоден., +"Ah, a surfacer in need of a favor. Down here you do a favor to get a favor and I need the town entrance that is our path to food opened. The Order has it sealed and guarded.",TXT_DLG_SCRIPT06_D0_AHASU,,,"Ah, a surfacer in need of a favour. Down here you do a favour to get a favour and I need the town entrance that is our path to food opened. The Order has it sealed and guarded.","Oh, ein Oberflächler, der Hilfe braucht. Hier unten musst du uns einen Gefallen erweisen, bevor wir dir helfen können. Der Ausgang zur Stadt, der unser Zugang zu Nahrung ist, muss wieder freigemacht werden. Der Orden hat ihn verschlossen und lässt ihn bewachen.","Ah, alguien de la superficie que necesita un favor. Aquí abajo se ofrece un favor a cambio de otro favor y necesito abierta la entrada al pueblo que es nuestro camino a la comida. La Orden lo tiene sellado y guardado.",,"Ah, quelqu'un de la surface qui a besoin d'une faveur. Ici, on en fait une pour en avoir une, et j'ai besoin que l'entrée de la ville qui est notre chemin pour les vivres ouverte. L'Ordre l'a scellée et mise sous garde.",,,,"ÐÑ…, гоÑÑ‚ÑŽ Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти нужно одолжение. ЗдеÑÑŒ, внизу, Ñ‚Ñ‹ должен что-то Ñделать, прежде чем о чем-то попроÑить, и мне нужно, чтобы дверь в город, наш путь к пище, была открыта. Орден закрыл её и поÑтавил охрану.", +Where is the gate mechanism?,TXT_RPLY0_SCRIPT06_D0_WHERE,,,,Wo ist der Tormechanismus?,¿Dónde está el mecanismo de la puerta?,,Où se trouve le mécanisme d'ouverture de la porte?,,,,Где механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸?, +"Do my favor first, or you'll get squat from me.",TXT_DLG_SCRIPT06_D1516_DOMYF,,,"Do my favour first, or you'll get squat from me.",Tu erst mir einen Gefallen oder ich sage gar nichts.,"Cumple mi favor primero, o no tendrás nada de mi.",,Faites moi une faveur ou vous n'aurez rien.,,,,"Сначала выполни мою проÑьбу, или Ñ‚Ñ‹ ничего не получишь.", +How will you know it's open?,TXT_RPLY0_SCRIPT06_D1516_HOWWI,,,,"Wodurch wirst du wissen, ob er offen ist?",¿Cómo sabrás si está abierto?,,Comment est-ce que je saurais qu'elle est ouverte?,,,,"Как Ñ‚Ñ‹ узнаешь, что дверь открыта?", +Bring me back the guard's uniform. That way one of my ratfellows can wear it and no one will try to shut the door again.,TXT_DLG_SCRIPT06_D3032_BRING,,,,"Bring mir die Uniform des Wächters. So kann einer meiner Rattenkumpel sie tragen und niemand wird wieder versuchen, die Tür zu schließen.",Tráeme el uniforme del guardia. Así uno de mis rateros lo llevará y nadie intentará cerrar la puerta de nuevo.,,"Ramenez moi l'uniforme du garde. Comme ça, un de mes amis rats pourra le porter et personne n'essaiera de fermer cette porte.",,,,"ПринеÑи мне униформу Ñтражника. Тогда один из моих приÑтелей Ñможет ноÑить её, и никто не попытаетÑÑ Ñнова закрыть дверь.", +You want his uniform?,TXT_RPLY0_SCRIPT06_D3032_YOUWA,,,,Du möchtest seine Uniform haben?,¿Quieres su uniforme?,,Vous voulez son uniforme?,,,,Тебе нужна его форма?, +"Open the door, bring me the uniform and we trade. Otherwise, piss off.",TXT_DLG_SCRIPT06_D4548_OPENT,,,,"Öffne die Tür, bring mir die Uniform und wir können handeln. Ansonsten verschwinde.","Abre la puerta, tráeme el uniforme y negociamos. Si no, que te den.",,"Ouvrez la porte, ramenez moi l'uniforme et nous ferons affaire. Sinon, barrez-vous.",,,,"Открой Ñту дверь, принеÑи мне униформу и мы ÑторгуемÑÑ. Иначе, отвали.", +Have you brought me what I want?,TXT_DLG_SCRIPT06_D6064_HAVEY,,,,Hast du mir was mitgebracht?,¿Me has traído lo que quiero?,,Avez-vous ramené ce dont j'ai besoin?,,,,"Ты Ð¿Ñ€Ð¸Ð½Ñ‘Ñ Ð¼Ð½Ðµ то, что Ñ Ð¿Ñ€Ð¾Ñил?", +How about this uniform?,TXT_RPLY0_SCRIPT06_D6064_HOWAB,,,,Wie findest du diese Uniform?,¿Qué tal este uniforme?,,"Il vous convient, cet uniforme?",,,,Эта униформа подойдет?, +Bring me the uniform.,TXT_RNO0_SCRIPT06_D6064_BRING,,,,Bring mir seine Uniform.,Tráeme el uniforme.,,Amenez moi l'uniforme.,,,,ПринеÑи мне униформу., +"Good. Here's something extra. My fellows tore this off of a fallen Crusader, it's the parts that make up a flamethrower. Now Irale can make one for you. You can have such fun.",TXT_DLG_SCRIPT06_D7580_GOODH,,,,Gut so. Hier ist ein kleiner Bonus. Meine Kumpel haben das hier von einem gefallenen Ordensritter abgerissen. Es sind die Teile seines Flammenwerfers. Jetzt kann Irale dir auch einen machen. Du kannst so viel Spaß damit haben...,"Bien. Aquí tienes algo extra. Mis compañeros arrancaron esto de un Cruzado caído, son las partes que componen un lanzallamas. Ahora Irale puede hacer uno para ti. Te vas a divertir cantidad.","Bien. Aquí tienes algo extra. Mis compañeros arrancaron esto de un Cruzado caído, son las partes que componen un lanzallamas. Ahora Irale puede hacer uno para ti. ¡Tendrás tanta diversión!",Bien. Voilà un petit bonus. Mes amis ont arraché ceci à un croisé. C'est les pièces nécessaires à monter un lance-flammes. Irale peut en assembler un pour vous. Vous allez vraiment vous amuser.,,,,"Хорошо. Я могу предложить тебе кое-что Ñверх уговора. Мои приÑтели ÑнÑли Ñто Ñ Ð¿Ð¾Ð´Ð±Ð¸Ñ‚Ð¾Ð³Ð¾ креÑтоноÑца. Это детали огнемёта. ИрÑйл Ñоберёт его Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ, и Ñ‚Ñ‹ Ñможешь повеÑелитьÑÑ Ð¾Ñ‚ души.", +Where's the gate mechanism?,TXT_RPLY0_SCRIPT06_D7580_WHERE,,,,Wo ist der Tormechanismus?,¿Dónde está el mecanismo de la puerta?,,Où se trouve le mécanisme d'ouverture de la porte?,,,,Где механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸?, +"You have to enter another part of the sewers. To get there you must enter the castle from a sewer maintenance door and drain the fluid reclamation tank. At the bottom is the hidden entrance to sewers, and right beyond that is the manual gate control.",TXT_DLG_SCRIPT06_D9096_YOUHA,,,,"Du musst in einen anderen Teil der Kanalisation. Um dort hinzukommen, musst du durch einen Wartungsgang in die Burg und den Wasserrückgewinnungstank entleeren. Am Boden des Tanks ist der versteckte Eingang zur Kanalisation und gleich dahinter die manuelle Torkontrolle.","Tienes que adentrarte en otra parte de las cloacas. Para llegar ahí debes entrar al castillo por la puerta de mantenimiento de las cloacas y drenar el tanque de recuperación de fluído. Al fondo está la entrada oculta a las cloacas, y justo más allá está el control manual de la puerta.",,"Vous devez entrer dans une autre section des égouts. Quand vous y êtes, vous devez entrer dans le château à partir de la porte de maintenance des égouts, et drainer le réservoir de recyclage d'eau. Au fond se trouve l'entrée cachée des égouts, et juste après elle, les contrôles manuels de la porte.",,,,"Это в другой чаÑти канализации. Чтобы попаÑÑ‚ÑŒ туда, пройди в замок через дверь обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ и Ñлей жидкоÑÑ‚ÑŒ из бака Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸. Ðа его дне еÑÑ‚ÑŒ Ñкрытый вход в Ñтоки, и прÑмо за ним - ручной механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸.", +Anything else you can do?,TXT_RPLY0_SCRIPT06_D9096_ANYTH,,,,Kannst du sonst noch was für mich tun?,¿Algo más que puedas hacer?,,Que pouvez vous faire d'autre?,,,,Можешь помочь мне чем-нибудь ещё?, +"Good luck. I've opened several of our tunnels for you. It should make your task easier. Oh, size ten, perfect! ...But dreadful colors.",TXT_DLG_SCRIPT06_D10612_GOODL,,,,"Viel Glück. Ich habe mehrere von unseren Tunnels für dich geöffnet. Es sollte deine Aufgabe vereinfachen. Oh, Größe 10. Perfekt! Aber scheußliche Farben...","Buena suerte. He abierto varios de nuestros tuneles para ti. Te debería hacer el trabajo más fácil. Oh, talla diez, ¡perfecto! ... Pero colores horribles.",,"Bonne chance. J'ai ouvert plusieurs de nos tunnels pour vous. Ca devrait rendre votre travail plus facile. Oh! Taille dix? Parfait! Les couleurs sont immondes, par contre.",,,,"Разве что пожелать удачи. Я открыл Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ Ð½ÐµÑколько наших туннелей, Ñто может Ñделать твою задачу чуть проще. О, деÑÑтый размер! Как раз впору!.. Ðо ужаÑные цвета.", +Thanks for your help.,TXT_RPLY0_SCRIPT06_D10612_THANK,,,,Danke für deine Hilfe.,Gracias por tu ayuda.,,Merci pour votre aide.,,,,СпаÑибо за помощь., +"You give me nothing, you get nothing.",TXT_DLG_SCRIPT06_D12128_YOUGI,,,,"Du gibst mir nichts, ich gebe dir nichts.","No me das nada, no recibes nada.",,"Vous ne me donnez rien, je ne vous donne rien.",,,,Ðичего не даёшь _x0097_— ничего не получаешь., +Weran will save us. He's never failed us yet.,TXT_DLG_SCRIPT06_D13644_WERAN,,,,Weran wird uns retten. Er hat uns noch nie enttäuscht.,Weran nos salvará. Nunca nos ha fallado.,,Weran nous sauvera. Il ne nous a jamais failli.,,,,УÑран поможет нам. Он ещё ни разу не подводил наÑ., +"If you seek an answer to your problem, find Weran. ",TXT_DLG_SCRIPT06_D15160_IFYOU,,,,"Wenn du Lösungen für deine Probleme suchst, frag Weran.","Si buscas una respuesta a tú problema, encuentra a Weran.",,"Si vous avez besoin d'une réponse à vos problèmes, allez voir Weran.",,,,ЕÑли ищешь ответ — найди УÑрана., +Long live the Front? That's all crap. We're all just waiting to die. ,TXT_DLG_SCRIPT06_D16676_LONGL,,,,Lang lebe die Front? Was für ein Mist. Wir warten doch nur auf den Tod.,¿Larga vida al frente? Menuda mierda. Todos esperamos la muerte.,,Longue vie au Front? Quelles conneries! On est tous en train d'attendre de mourir!,,,,Да здравÑтвует Сопротивление? Это вÑÑ‘ чушь. Мы вÑе проÑто ждём Ñмерти., +"With our passage to the surface sealed, we can't even feed ourselves.",TXT_DLG_SCRIPT06_D18192_WITHO,,,,"Da unser Zugang zur Oberfläche verschlossen ist, haben wir nichts mehr zu essen.","Con nuestro pasaje a la superficie sellado, no podemos ni alimentarnos.",,"Avec notre passage vers la surface scellé, on ne peut même plus nous nourrir.",,,,"Пока выход на поверхноÑÑ‚ÑŒ закрыт, мы не можем даже прокормить ÑебÑ.", +"Food, do you have any food? Please help us.",TXT_DLG_SCRIPT06_D19708_FOODD,,,,"Essen, hast du was zu essen? Bitte hilf uns.","Comida, ¿Tienes algo de comida? Por favor ayúdanos.",,"A manger, vous avez à manger? Aidez-nous, s'il vous plaît.",,,,"Еда. У Ñ‚ÐµÐ±Ñ ÐµÑÑ‚ÑŒ еда? ПожалуйÑта, помоги нам.", +"This is my reward for letting prisoners escape, guarding the sewers. If I ever find the guy who broke them out, I'll slaughter him.",TXT_DLG_SCRIPT06_D21224_THISI,,,,"Das ist meine Belohnung dafür, dass ich die Gefangenen entkommen lassen habe. Jetzt darf ich die Kanalisation bewachen. Wenn ich jemals den Kerl finde, der das gemacht hat, mache ich Hackfleisch aus ihm!","Ésta es mi recompensa por dejar a prisioneros escapar, vigilar las cloacas. Si encuentro al tipo que los liberó, me lo cargo.","Ésta es mi recompensa por dejar escapar a los prisioneros, vigilar las cloacas. Si encuentro al tipo que los liberó, lo mataré.","Voici ma récompense pour avoir laissé les prisonniers s'évader: garder les égouts. Si je trouve celui qui les a libéré, je l'étripe.",,,,"Я отбываю наказание за то, что не оÑтановил побег из тюрьмы: охранÑÑŽ канализацию. ЕÑли Ñ ÐºÐ¾Ð³Ð´Ð°-нибудь найду того парнÑ, что оÑвободил пленников, Ñ Ð¿Ð¾Ñ€Ð²Ñƒ его на куÑки.", +"We've got those little beggars just where we want them. Few more days of this, and they'll have starved themselves into oblivion.",TXT_DLG_SCRIPT06_D22740_WEVEG,,,,"Wir haben diese armseligen Bettler doch genau da, wo wir sie haben wollen. Noch ein paar Tage und sie wären verhungert.","Tenemos a esos indigentes justo donde los queremos. Unos cuantos días más así, y se habrán consumido por el hambre.",,On a enfin ces sales clodos là où on veut qu'ils soient. Quelques jours de plus et il seront tous morts de faim.,,,,"Мы загнали Ñтих жалких нищих туда, где они и должны быть. Ещё неÑколько дней, и вÑе они подохнут Ñ Ð³Ð¾Ð»Ð¾Ð´Ñƒ.", +What's your clearance? There's no unauthorized personnel allowed up here.,TXT_DLG_SCRIPT06_D24256_WHATS,,,,Wo ist deine Berechtigung? Unautorisiertes Personal darf hier nicht rein.,¿Qué permiso tienes? No se permite al personal no autorizado aquí.,,Où est votre autorisation? Aucun personnel non autorisé ne peut venir ici.,,,,Где твой пропуÑк? ЗдеÑÑŒ нечего делать неуполномоченному перÑоналу., +What the hell? Who opened the gates? Sound the alarm!!!,TXT_DLG_SCRIPT07_D0_WHATT,,,,Was zur Hölle? Wer hat die Tore geöffne? Alarm!,¿Qué demonios? ¿Quién ha abierto las puertas? ¡¡¡Activad la alarma!!!,¿Qué demonios? ¿Quién ha abierto las puertas? ¡¡¡Activen la alarma!!!,Qu'est-ce que c'est que ce bordel? Qui a ouvert les portes? Faites sonner l'alarme!,,,,Что за чертовщина? Кто открыл ворота? Бейте тревогу!, +"There's another way into the sewers, throw that switch and then go up and purge the reclamation tank.",TXT_DLG_SCRIPT07_D1516_THERE,,,,Da ist ein anderer Weg in die Kanalisation. Drück den Schalter da und leere den Rückgewinnungstank.,"Hay otra entrada a las cloacas, dale a ese interruptor y luego sube y purga el tanque de recuperación.","Hay otra entrada a las cloacas, activa ese interruptor y luego sube y purga el tanque de recuperación.",Il y a une autre entrée pour les égouts. Utilisez ce bouton et montez purger le réservoir de recyclage.,,,,"ЕÑÑ‚ÑŒ другой путь в канализацию. Переведи Ñтот рычаг, затем иди наверх и Ñлей жидноÑÑ‚ÑŒ из бака Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸.", +"What the hell's your problem. If the Programmer comes up from his audience chamber, you're dead.",TXT_DLG_SCRIPT07_D3032_WHATT,,,,"Was, verdammt, ist dein Problem? Wenn der Programmierer seine Audienzkammer verläßt, bist du tot.","¡Qué demonios te pasa! Si el Programador viene de su cámara de audición, estás muerto.",,"C'est quoi votre problème? Si le Programmeur sort de sa chambre d'audience, vous êtes mort.",,,,"ПроклÑтье, что Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ не так? ЕÑли ПрограммиÑÑ‚ подниметÑÑ Ð¸Ð· приёмного зала, Ñ‚Ñ‹ покойник!", +"Hey, you're not cleared to go down there.",TXT_DLG_SCRIPT07_D4548_HEYYO,,,,"He, du darfst da nicht runtergehen.","Hey, no tienes permiso para bajar aquí.",,"Hé, vous n'avez pas le droit d'être ici.",,,,"Эй, у Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑпуÑкатьÑÑ Ñюда.", +Programmer? Who told you that? There is no Programmer. That story was spread ages ago. Don't tell me the Front actually believed that crap. Idiots.,TXT_DLG_SCRIPT07_D6064_PROGR,,,,"Programmierer? Wer hat dir das erzählt? Es gibt keinen Programmierer. Das ist eine alte Legende. Sag mir nicht, dass die Front an diesen Blödsinn glaubt. Idioten.",¿Programador? ¿Quién te ha dicho eso? No hay Programador. Esa historia se ha extendido hace años. No me digas que el frente realmente se ha creído el cuento. Idiotas.,,Programmeur? Qui vous a raconté ça? Il n'y a pas de Programmeur. Cette rumeur a commencé il y a des années. J'arrive pas à croire que ces abrutis du Fronty croient. Idiots.,,,,"ПрограммиÑÑ‚? Кто тебе Ñто Ñказал? Ðет никакого программиÑта. Этой байке уже лет Ñто. Только не говори мне, что Сопротивление и правда поверило в Ñту чушь. Идиоты.", +"Well, what's the truth then?",TXT_RPLY0_SCRIPT07_D6064_WELLW,,,,"Nun, was ist denn die Wahrheit?","Bien, ¿Cuál es la verdad entonces?",,"Quelle est la vérité, alors?",,,,"Ладно, и что же тогда правда?", +I told you all I know. You are wasting your time.,TXT_DLG_SCRIPT07_D7580_ITOLD,,,,"Ich habe alles gesagt, was ich weiß. Du verschwendest deine Zeit.",Te he dicho todo lo que sé. Estás perdiendo el tiempo.,,Je t'ai dit tous ce que je sais. Tu perds ton temps.,,,,"Я раÑÑказал вÑе, что знаю. Ты попуÑту тратишь времÑ.", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D9096_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D10612_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D12128_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D13644_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D15160_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"Fight on, we will triumph. This day will belong to us!",TXT_DLG_SCRIPT07_D16676_FIGHT,,,,"Lass uns kämpfen, wir werden gewinnen. Dieser Tag gehört uns!","Luchad, triunfaremos. ¡Este día nos pertenece!",Luchemos y triunfaremos. ¡Este día nos pertenece!,"Continuez à vous battre, nous allons triompher! Ce jour nous appartient!",,,,"СражайÑÑ, и Ð½Ð°Ñ Ð¶Ð´Ñ‘Ñ‚ триумф. СегоднÑшний день будет нашим!", +"You killed all the guards. Don't hurt me. I told him this was a dumb idea. The real Programmer's in the keep. Here, take this key.",TXT_DLG_SCRIPT08_D0_YOUKI,,,,"Du hast alle Wächter getötet. Bitte tu mir nichts. Ich habe ihm gesagt, es wäre eine dumme Idee. Der Programmierer ist in seiner Unterkunft. Hier nimm diesen Schlüssel.","Has matado a todos los guardias. No me hagas daño. Le dije que era una idea estúpida. El verdadero Programador está en el torreón. Ten, toma esta llave.","Has matado a todos los guardias. No me hagas daño. Le dije que era una idea estúpida. El verdadero Programador está en la torre. Ten, toma esta llave.",Vous avez tué tous les gardes. Ne me faites pas de mal. Je lui ai dit que c'était une idée stupide. Le vrai Programmeur se trouve dans le donjon. Prenez cette clé.,,,,"Ты убил вÑех Ñтражников. Ðе трогай менÑ! Я говорил ему, что Ñто Ð³Ð»ÑƒÐ¿Ð°Ñ Ð¸Ð´ÐµÑ. ÐаÑтоÑщий ПрограммиÑÑ‚ в цитадели. Вот, возьми Ñтот ключ.", +You're the Programmer!,TXT_RPLY0_SCRIPT08_D0_YOURE,,,,Du bist der Programmierer!,¡Tú eres el Programador!,,Vous êtes le Programmeur!,,,,Ты программиÑÑ‚!, +"Do I look like I wield ultimate power? The Order uses us all. Now go, I'm dead already.",TXT_DLG_SCRIPT08_D1516_DOILO,,,,"Sehe ich so aus, als ob ich unendliche Macht hätte? Der Orden benutzt uns alle. Nun geh, ich bin ohnehin schon tot.","¿Te parece que posea el poder absoluto? La Orden nos usa a todos. Ahora ve, yo ya estoy muerto.","¿Te parece que posea el poder absoluto? La Orden nos usa a todos. Vete, yo ya estoy muerto.","Est-ce que j'ai l'air d'avoir le pouvoir suprême? L'Ordre nous utilise tous. Partez, je suis déjà mort.",,,,Разве Ñ Ð¿Ð¾Ñ…Ð¾Ð¶ на Ð¾Ð±Ð»Ð°Ð´Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÐ²ÐµÑ€Ð¾Ñтной мощи? Орден иÑпользует Ð½Ð°Ñ Ð²Ñех. Теперь иди. Я уже вÑÑ‘ равно мёртв., +Power is the key!,TXT_DLG_SCRIPT08_D3032_POWER,,,,Macht ist der Schlüssel!,¡El poder es la clave!,,Le pouvoir est la clé!,,,,Ð’ Ñиле — вÑÑ‘!, +"Good, you're conscious again. When you grabbed that item the Programmer dropped you let loose some terrible secrets.",TXT_DLG_SCRIPT10_D0_GOODY,,,,"Gut, du bist wieder wach. Als du das Ding, das der Programmierer fallengelassen hat, packtest, hast du einige schlimme Geheimnisse enthüllt.","Bien, vuelves a estar consciente. Cuando agarraste ese objeto que el Programador soltó has dejado sueltos algunos secretos terribles.",,"Bien. Vous êtes conscient. Quand vous avez pris ceci au Programmeur, vous avez libéré d'affreux secrets.",,,,"Хорошо, Ñ‚Ñ‹ пришёл в ÑебÑ. ВзÑв в руки артефакт, который выронил ПрограммиÑÑ‚, Ñ‚Ñ‹ раÑкрыл Ñтрашные тайны.", +What kind of secrets. ,TXT_RPLY0_SCRIPT10_D0_WHATK,,,,Was für Geheimnisse?,¿Qué clase de secretos?,,De quels secrets parlez-vous?,,,,Какие тайны?, +"We have no idea where this weapon came from, but we must find out. You have wrested one from the Order, but we must have all five. We have reached the limits of my knowledge. Seek out the Oracle and ask it for help.",TXT_DLG_SCRIPT10_D1516_WEHAV,,,,"Wir haben keine Ahnung, wo diese Waffe herkommt, aber wir müssen es herausfinden. Du hast ein Teil dem Orden entrungen aber wir brauchen alle fünf. Wir haben die Grenzen meines Wissens erreicht. Suche das Orakel und frage es um Hilfe.","No sabemos de donde ha venido esta arma, pero debemos averiguarlo. Has arrebatado uno de la Orden, pero debemos tener los cinco. Hemos alcanzado el límite de mis conocimientos. Busca al Oráculo y pide ayuda.","No sabemos de donde ha venido esta arma, pero debemos averiguarlo. Has arrebatado una de la Orden, pero debemos tener las cinco. Hemos alcanzado el límite de mis conocimientos. Busca al Oráculo y pídele ayuda.","Je n'ai aucune idée d'où vient cette arme, mais il faut que nous le découvrions. Vous en avez arraché une à l'Ordre, mais il faut trouver toutes les cinq. C'est tout ce que je sais pour l'instant. Allez voir l'Oracle et demandez son aide.",,,,"Мы не знаем, откуда взÑлоÑÑŒ Ñто оружие, и мы должны выÑÑнить Ñто. Ты отбил один фрагмент у Ордена, но нам нужны вÑе пÑÑ‚ÑŒ. Я раÑÑказал тебе вÑÑ‘, что знал. Ðайди Оракула и попроÑи его о помощи.", +I'm gonna need more supplies.,TXT_RPLY0_SCRIPT10_D1516_IMGON,,,,Ich brauche mehr Ausrüstung.,Voy a necesitar más suministros.,,Il me faut de l'équipment.,,,,Мне потребуютÑÑ ÐµÑ‰Ñ‘ припаÑÑ‹, +"Here's some gold. Go visit the medic and the weapons trainer and then, move out!",TXT_DLG_SCRIPT10_D3032_HERES,,,,Hier ist etwas Gold. Geh zum Sanitäter und zum Waffentrainer und dann los!,"Aquí tienes algo de oro. Ve a ver al médico y al entrenador de armas y luego, ¡en marcha!",,"Voilà de l'argent. Allez voir le médecin et le maître d'armes, puis partez!",,,,"Вот немного золота. ПоÑети медика и инÑтруктора по Ñтрельбе, и выдвигайÑÑ!", +Right!,TXT_RPLY0_SCRIPT10_D3032_RIGHT,,,,Ja.,¡Claro!,,Bien!,,,,ЕÑÑ‚ÑŒ!, +Fight for the Front and freedom. Move out.,TXT_DLG_SCRIPT10_D4548_FIGHT,,,,Kämpfe für die Front und die Freiheit. Nun geh.,Lucha por el frente y la libertad. En marcha.,,Battez vous pour le Front et pour la liberté. Repos.,,,,СражайÑÑ Ð·Ð° Ñвободу и ÑправедливоÑÑ‚ÑŒ. Вперёд., +"What prompts your return? Are you hurt? There's no time to lose, continue with your mission. Complete the Sigil.",TXT_DLG_SCRIPT10_D6064_WHATP,,,,"Warum kommst du zurück? Bist du verletzt? Wir haben keine Zeit zu verlieren, du musst deine Mission fortsetzen. Vervollständige das Sigil.","¿A qué se debe tu retorno? ¿Estás herido? No hay tiempo que perder, continua con tu misión. Completa el Emblema.",,"Qu'est ce qui vous amène? Vous avez mal? Il n'y a pas de temps à perdre. Continuez votre mission, complétez le Sigil.",,,,С какой целью Ñ‚Ñ‹ вернулÑÑ? Ты ранен? ÐÐµÐ»ÑŒÐ·Ñ Ñ‚ÐµÑ€ÑÑ‚ÑŒ ни минуты. Продолжай выполнение заданиÑ. Собери Сигил!, +The Oracle says you must die!,TXT_RPLY0_SCRIPT10_D6064_THEOR,,,,"Das Orakel sagt, du musst sterben.",¡El Oráculo dice que debes morir!,,L'Oracle dit que vous devez mourir!,,,,"Оракул Ñказал, что Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ убить тебÑ!", +I have sworn myself to freedom. It is the Oracle who holds the third piece. There's your traitor.,TXT_DLG_SCRIPT10_D7580_IHAVE,,,,Ich habe mich der Freiheit verpflichtet. Das Orakel besitzt das dritte Teilstück. Dort ist dein Verräter.,He hecho un juramento por la libertad. Es el Oráculo quien tiene la tercera pieza. Ahí tienes a tu traidor.,,J'ai juré donner ma vie à la liberté. C'est l'Oracle qui porte la troisième pièce. Voilà votre traître.,,,,Я приÑÑгнул борьбе за Ñвободу. Ру Оракула хранитÑÑ Ñ‚Ñ€ÐµÑ‚Ð¸Ð¹ фрагмент. И кто же теперь предатель?, +The Oracle will die then!,TXT_RPLY0_SCRIPT10_D7580_THEOR,,,,Dann wird das Orakel sterben.,¡El Oráculo morirá entonces!,,L'Oracle va donc mourir!,,,,Тогда умрёт Оракул!, +I think you're the traitor!,TXT_RPLY1_SCRIPT10_D7580_ITHIN,,,,"Ich denke, du bist der Verräter.",¡Creo que tú eres el traidor!,,"Je pense que c'est vous, le traître!",,,,"Я думаю, что предатель — Ñто Ñ‚Ñ‹!", +Spirit of the One God avenge me and turn this world into dust.,TXT_DLG_SCRIPT10_D9096_SPIRI,,,,"Geist des einen Gottes, räche mich und verwandle diese Welt zu Staub.",Espíritu del Dios Único véngame y convierte este mundo en polvo.,,Que le Saint Esprit du Seul Dieu me venge et brûle ce monde jusqu'au cendres.,,,,Дух Единого Бога отомÑтит за Ð¼ÐµÐ½Ñ Ð¸ обратит Ñтот мир в прах., +You have made the right decision. Its clear that the Oracle is controlled by whatever evil is driving the Order. Return to it and claim the third piece of the Sigil.,TXT_DLG_SCRIPT10_D10612_YOUHA,,,,"Du hast die richtige Wahl getroffen. Es ist offensichtlich, dass das Orakel von demselben Ãœbel kontrolliert wird, das den Orden antreibt. Kehre zu ihm zurück und hol dir das dritte Teilstück.",Has tomado la decisión correcta. Está claro que el Oráculo está siendo controlado por el mal que está detras de la Orden. Vuelve ante él y reclama la tercera pieza del Emblema.,,Vous avez fait le bon choix. Il est clair que l'Oracle est contrôlé par le mal qui est derrière l'Ordre. Retournez le voir et récupérez la troisième pièce du Sigil.,,,,"Ты Ñделал правильный выбор. ЯÑно, что Оракулом управлÑет то же Ñамое зло, что Ñтоит за Орденом. ВерниÑÑŒ к Оракулу и потребуй отдать тебе третий фрагмент Сигила!", +"There seems no end to the horror we face. We have found out that the Order is not killing our people. It is transforming them, into bio-mechanical soldiers. Find the facility where this is being done and close it, permanently.",TXT_DLG_SCRIPT10_D12128_THERE,,,,"Der Horror, dem wir ausgesetzt sind, scheint kein Ende zu nehmen. Wir haben herausgefunden, dass der Orden unsere Leute nicht tötet, sondern sie transformiert - int biomechanische Soldaten.Finde die Einrichtung, wo dies passiert und schließe sie - endgültig.","Parece que no hay fin para el horror al que nos enfrentamos. Hemos descubierto que la Orden no solo mata a nuestra gente. La está transformando, en soldados bio-mecánicos. Encuentra la instalación donde esto se hace y clausúrala, permanentemente.",,"Il semble qu'il n'y ait pas de fin aux horreurs auxquelles nous devons faire face. Nous venons de découvrir que l'Ordre n'exécute pas notre peuple, il le transforme en soldats biomécaniques. Trouvez l'usine qui gère ce processus et fermez la pour toujours.",,,,"Иногда кажетÑÑ, что Ñти ужаÑÑ‹ никогда не закончатÑÑ. Мы узнали, что Орден не убивает наших людей. Он перерабатывает их в биомеханичеÑких Ñолдат. Ðайди фабрику, где проиÑходит Ñта переработка, и закрой её раз и навÑегда!", +Where is this located?,TXT_RPLY0_SCRIPT10_D12128_WHERE,,,,Wo finde ich sie?,¿Dónde se encuentra?,,Où se trouve-elle?,,,,Где она находитÑÑ?, +"One of our captains, Richter, is waiting for you by the waterfall in the commons. He has seen the facility and can guide you inside. Stop this atrocity, now.",TXT_DLG_SCRIPT10_D13644_ONEOF,,,,"Einer unserer Anführer, Rickter warted auf dich, am Wasserfall bei der Mensa. Er hat es gesehen und kann dich dort hinführen. Stope dieses Gräuel - sofort.","Uno de nuestros capitanes, Richter, está esperando por ti junto a la cascada en los comunes. Ha visto la instalación y puede guiarte dentro. Detén esta atrocidad, ahora.","Uno de nuestros capitanes, Richter, está esperándote junto a la cascada en los comunes. Ha visto la instalación y puede guiarte dentro. Detén esta atrocidad, ahora.","Un de nos capitaines, Richter, vous attend près de la cascade dans le réfectoire. Il a vu l'usine et peut vous guider jusqu'a l'intérieur. Arrêtez cette atrocité maintenant.",,,,"Один из наших капитанов, Рихтер, ожидает Ñ‚ÐµÐ±Ñ Ð²Ð¾Ð·Ð»Ðµ водопада в поÑелении Ордена. Он уже проникал на фабрику, и он Ñкажет тебе, как туда попаÑÑ‚ÑŒ. Положи конец Ñтим зверÑтвам, немедленно!", +They'll pay for this!,TXT_RPLY0_SCRIPT10_D13644_THEYL,,,,Dafür werden sie bezahlen.,¡Pagarán por esto!,,Ils paieront pour cela!,,,,Они за вÑÑ‘ заплатÑÑ‚!, +Fight for the Front and freedom. Move out.,TXT_DLG_SCRIPT10_D15160_FIGHT,,,,Kämpfe für die Front und die Freiheit. Nun geh.,Lucha por el frente y la libertad. En marcha.,,Battez vous pour le Front et pour la liberté. Repos.,,,,СражайÑÑ Ð·Ð° Ñвободу и ÑправедливоÑÑ‚ÑŒ. Вперёд., +"I am the One God... I need his spirit to be free so that I can leave my body, and join him in flight. You have no idea what you possess... And what terror you face... The One God must be free... And he will reward me... I will be one...",TXT_DLG_SCRIPT10_D16676_IAMTH,,,,"Ich bin der Eine Gott... Sein Geist muss frei sein so dass ich seinen Körper verlassen und mit ihm fliegen kann. Du hast keine Ahnung, was du besitzt... And welcher Terror die bevorsteht... Der Eine Gott muss frei sein... Und er wird mich belohnen... Ich werde eins...","Soy el Dios Único... Necesito que su espíritu sea libre para poder abandonar mi cuerpo, y unirme a él en vuelo. No tienes ni idea de lo que posees... Y de el terror al que te enfrentas... El Dios Único debe ser libre... Y me recompensará... Seré uno...",,"Je suis le Seul Dieu.. Il me faut libérer son esprit pour qu'il puisse sortir de mon corps, et le rejoindre dans sa fuite. Vous ne savez pas ce que vous possédez.. Et la terreur à laquelle vous devrez faire face... Le Seul Dieu doit être libre.. Et il me récompensera.. Je serais un avec lui..",,,,"Я — Единый Бог... Я должен выÑвободить его дух, тогда Ñ Ñмогу покинуть бренную оболочку моего тела и улететь вмеÑте Ñ Ð½Ð¸Ð¼. Ты понÑÑ‚Ð¸Ñ Ð½Ðµ имеешь, что попало к тебе в руки... И Ñ ÐºÐ°ÐºÐ¸Ð¼ кошмаром Ñ‚Ñ‹ ÑтолкнулÑÑ... ОÑвободить Единого Бога... И он вознаградит менÑ... Это Ñделаю Ñ!", +I will destroy you!,TXT_RPLY0_SCRIPT10_D16676_IWILL,,,,Ich werde dich zerstören!,¡Te destruiré!,,L'heure est venue de vous détruire!,,,,Я уничтожу тебÑ!, +Glad to see you made it. What do you need? ,TXT_DLG_SCRIPT10_D18192_GLADT,,,,"Gut, dass du es geschafft hast. Was brauchst du?",Me alegro de verte de una pieza. ¿Qué necesitas?,,Ravi de voir que vous vous en êtes sorti. Que puis-je faire pour vous?,,,,"Я рад, что Ñ‚Ñ‹ ÑправилÑÑ. Чем могу помочь?", +Heal me.,TXT_RPLY0_SCRIPT10_D18192_HEALM,,,,Mach mich gesund.,Cúrame.,,Soignez moi.,,,,Подлечи менÑ., +"Well, lets get you fixed up.",TXT_RYES0_SCRIPT10_D18192_WELLL,,,,"Gut, das hier sollte helfen.","Bien, vamos a hacerte unos arreglos.",,"Allez, on va vous remettre sur pied.",,,,"Ðу, давай приведём Ñ‚ÐµÐ±Ñ Ð² порÑдок.", +You're fine.,TXT_RNO0_SCRIPT10_D18192_YOURE,,,,Die geht es gut.,Estás bien.,,Vous allez bien.,,,,Ты здоров., +Anything new?,TXT_RPLY1_SCRIPT10_D18192_ANYTH,,,,Irgend etwas Neues?,¿Algo nuevo?,,Quoi de neuf?,,,,ЕÑÑ‚ÑŒ что-нибудь новое?, +"Yes, I've got some new hardware for you.",TXT_RYES1_SCRIPT10_D18192_YESIV,,,,"Ja, ich habe neue Hardware für dich.","Sí, tengo nuevo hardware para ti.",,"Ah, j'ai du nouveau matériel pour vous.",,,,Да. ÐÐ¾Ð²Ð°Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚ÑƒÑ€Ð° Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ., +"Nope, I'm working on it though.",TXT_RNO1_SCRIPT10_D18192_NOPEI,,,,"Nein, ich arbeite noch daran.","No, pero estoy trabajando en ello.",,"Rien, mais j'y travaille.",,,,"Ðет, но Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽ над ним.", +"What can I do for you now? Feris is decrypting some really complex files, but it's all worth it. There's already some information that I'll be able to apply to the next version of the stamina implant.",TXT_DLG_SCRIPT10_D19708_WHATC,,,,"Was kann ich für dich tun? Feris entschlüsselt gerade einige sehr komplexe Dateien, aber es ist den Aufwand wert. Einige dieser Informationen kann ich für die nächste Version deines Implantats anwenden.","¿Qué puedo hacer por ti? Feris está desencriptando unos archivos bastante complejos, pero valdrá la pena. Ya hay algo de información que puedo aplicar a la próxima version del implante de aguante.",,"Que puis-je faire pour vous? Feris est en train de décrypter des fichiers très complexes, mais ça à l'air d'en valoir la peine. Il y a déjà des informations très intéressantes que l'on va pouvoir utiliser pour la prochaine version de l'implant d'endurance.",,,,"Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь? Ð¤ÐµÑ€Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ñшифровывает файлы Ордена. Это нелегко, но результат Ñтоит того. Я уже получил кое-какие новые данные, которые помогут мне при разработке новой верÑии твоего имплантата.", +Heal me.,TXT_RPLY0_SCRIPT10_D19708_HEALM,,,,Mach mich gesund.,Cúrame.,,Soignez moi.,,,,Подлечи менÑ., +You should learn to be a little more careful.,TXT_RYES0_SCRIPT10_D19708_YOUSH,,,,Du solltest wirklich etwas vorsichtiger sein.,Deberías aprender a tener un poco más de cuidado.,,Vous devriez faire plus attention à vous.,,,,Ð’ Ñледующий раз тебе Ñтоит быть пооÑторожнее., +When will that be ready?,TXT_RPLY1_SCRIPT10_D19708_WHENW,,,,Wann ist es soweit?,¿Cuándo estará eso listo?,,Quand-est-ce que t'il sera prêt?,,,,Когда он будет готов?, +It's ready now. This won't take but a moment.,TXT_RYES1_SCRIPT10_D19708_ITSRE,,,,"Es ist fertig. Einen kurzen Moment, bitte.",Ya está listo. Ésto solo tomará un momento.,,"Il est déjà prêt, çe ne prendra qu'un moment.",,,,Уже готово. Это не займёт много времени..., +Soon.,TXT_RNO1_SCRIPT10_D19708_SOON,,,,Bald.,Pronto.,,Bientôt.,,,,Скоро., +I think I found a glitch in your implant hardware. Feris is helping me design a retrofit that will take care of it and boost the speed of your hardware a little. Is there something I can do for you?,TXT_DLG_SCRIPT10_D21224_ITHIN,,,,"Ich glaube ich habe eine Fehlfunktion in deinem Implantat gefunden. Feris hilft mir, einen Nachrüstsatz zu bauen und seine Funktion nochmal zu verbessern. Gibt es sonst etwas, das ich für dich tun kann?",Creo que he encontrado un defecto en el hardware de tu implante. Feris me está ayudando a diseñar un reequipamiento que se ocupará de él y aumentará la velocidad de tu hardware un poco. ¿Hay algo que pueda hacer por ti?,,Je crois que j'ai découvert un bug dans votre implant. Feris m'aide à concevoir une mise à jour qui la corrigera et rendra le matériel encore plus rapide. Je peux faire quelque chose pour vous?,,,,"КажетÑÑ, Ñ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶Ð¸Ð» неполадку в уÑтройÑтве твоего имплантата. Ð¤ÐµÑ€Ð¸Ñ Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ‚ мне в разработке модификации, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ñправит её и немного уÑкорит работу уÑтройÑтва. Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Patch me up.,TXT_RPLY0_SCRIPT10_D21224_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,"Вот, прÑмо как новенький.", +"There, as good as new I guess.",TXT_RYES0_SCRIPT10_D21224_THERE,,,,"So, fast wie neu, würde ich sagen.","Ya está, como nuevo, supongo.",,"Voilà, comme neuf, je crois.",,,,Ты в полном порÑдке., +Retrofit?,TXT_RPLY1_SCRIPT10_D21224_RETRO,,,,Nachrüstsatz?,¿Reequipamiento?,,Mise à jour de l'implant?,,,,МодификациÑ?, +"Ah, now we're cooking.",TXT_RYES1_SCRIPT10_D21224_AHNOW,,,,"Ah, jetzt bist du bei der Sache.","Ah, ahora sí que sí.",,"Ah, on va s'amuser.",,,,Да. Мы Ñлавно поработали над ней., +I'll have it as soon as Feris finishes it.,TXT_RNO1_SCRIPT10_D21224_ILLHA,,,,"Ich gebe es dir, sobald Feris fertig ist.",Lo tendré listo en cuanto Feris lo termine.,,Je l'aurai dès que Feris l'a terminée.,,,,"Я получу её, как только Ð¤ÐµÑ€Ð¸Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ñ‚.", +"How's it going? Man, some of this new technology is simply amazing. This should also help with your implant. I've got a couple ideas that I'm sketching out and I'll have them ready soon. What can I do for you, maybe some healing?",TXT_DLG_SCRIPT10_D22740_HOWSI,,,,"Wie läuft es? Mann, einiges von dieser Technologie ist einfach erstaunlich. Da sollte auch mit deinem Implantat helfen. Ich habe da schon einige Ideen, die ich noch ausarbeiten muss, aber sie werden bald fertig sein. Was kann ich sonst für dich tun?","¿Cómo te va? Tío, algunas de estas nuevas tecnologías son realmente sorprendentes. Esto debería ayudar con tu implante. Tengo unas cuantas ideas que voy planeando y las tendré listas pronto. ¿Qué puedo hacer por ti?, ¿tal vez una cura?","¿Cómo te va? Hombre, algunas de estas nuevas tecnologías son realmente sorprendentes. Esto debería ayudar con tu implante. Tengo unas cuantas ideas que voy planeando y las tendré listas pronto. ¿Qué puedo hacer por ti?, ¿tal vez una curación?","Comment ça va? La vache, cete nouvelle technologie est simplement géniale. Elle devrait également aider pour le dévelopment de votre implant. J'ai quelques idées que je suis en train de tester et elles devraient être bientôt prêtes. Que puis-je faire pour vous? Des soins, peut être?",,,,"Как дела? Дружище, некоторые из Ñтих новых технологий проÑто изумительны. Они могут помочь Ñ ÑƒÑовершенÑтвованием твоего имплантата. У Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ парочка идей, которые Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ð¾Ð¿Ð»Ð¾Ñ‰Ð°ÑŽ в жизнь, и Ñкоро вÑÑ‘ будет готово. Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь? ПеревÑзкой?", +"Yes, heal me.",TXT_RPLY0_SCRIPT10_D22740_YESHE,,,,"Ja, mach mich gesund.","Sí, cúrame.",,"Oui, soignez-moi.",,,,"Да, перевÑжи менÑ.", +"All right, here you go.",TXT_RYES0_SCRIPT10_D22740_ALLRI,,,,Alles klar soweit.,"Muy bien, ya está.",,"Très bien, bous pouvez y aller.",,,,Хорошо. Уже готово., +How about that new tech?,TXT_RPLY1_SCRIPT10_D22740_HOWAB,,,,Was ist mit der neuen Technologie?,¿Qué tal la nueva tecnología?,,Quoi de nouveau pour cette technologie?,,,,Как там Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ технологиÑми?, +Let me know how this works.,TXT_RYES1_SCRIPT10_D22740_LETME,,,,"Erklär mir, wie es funktioniert.",Cuéntame que tal funciona.,,Dites-moi si ça fonctionne.,,,,"Дай мне знать, еÑли будут неполадки.", +I'm not done designing it yet.,TXT_RNO1_SCRIPT10_D22740_IMNOT,,,,Ich bin noch nicht fertig damit.,Aún no he terminado de diseñarla.,,Je n'ai pas fini mon concept pour l'instant.,,,,Я ещё не закончил Ñ Ð½Ð¸Ð¼Ð¸., +"Back again, don't you ever tire of this? I've got some good news, Feris found a way to increase the output of your implant. He gave the specs to me and I'm trying to get it to blend with your physiology. I'm force growing some tissue, totally new stuff here, I hope it takes. Do you need healing?",TXT_DLG_SCRIPT10_D24256_BACKA,,,,"Schon wieder zurück, wird das nicht langweilig? Ivh habe gute Nachrichten. Feris hat eine Methode gefunden, um dein Implantat zu optimieren. Er hat mir die Spezifikationen gegeben und ich versuche, sie mit deiner Physiologie zu kombinieren. Ich lasse hier etwas Gewebe wachsen, völlig neues Zeug. Brauchst du medizinische Versorgung?","¿De vuelta otra vez?, ¿nunca te cansas de esto? Tengo buenas noticias, Feris ha encontrado una forma de potenciar la salida de tu implante. Me ha dado las especificaciones y estoy intentando que se mezcle con tu fisiología. Estoy forzando el crecimiento de algunos tejidos, totalmente nuevos, espero que sirva. ¿Necesitas una cura?",,"Déjà de retour? Vous n'êtes jamais fatigué, hein? J'ai de bonnes nouvelles. Feris à trouvé un moyen d'augementer la capacité de votre implant. Il m'a donné les spécifications et j'essaie de les faire correspondre à votre physiologie. Je suis en train de forcer la croissance de tissus, quelque chose de totalement nouveau. J'espère que ça fonctionnera. Vous avez besoin de soins?",,,,"Ты Ñнова ранен? Тебе Ñамому ещё не надоело? У Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ðµ новоÑти: Ð¤ÐµÑ€Ð¸Ñ Ð½Ð°ÑˆÑ‘Ð» ÑпоÑоб увеличить ÑффективноÑÑ‚ÑŒ твоего имплантата. Он дал мне Ñхемы, и Ñ Ð¿Ñ‹Ñ‚Ð°ÑŽÑÑŒ подогнать имплантат под твою физиологию. Я ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹Ñ€Ð°Ñ‰Ð¸Ð²Ð°ÑŽ кое-какие ткани. Раньше Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° Ñтого не делал, но надеюÑÑŒ, что Ñто Ñработает. Итак, тебе нужно лечение?", +"Yes, heal me.",TXT_RPLY0_SCRIPT10_D24256_YESHE,,,,"Ja, mach mich gesund.","Sí, cúrame.",,"Oui, soignez-moi.",,,,"Да, подлатай менÑ.", +"Done, now take care of yourself.",TXT_RYES0_SCRIPT10_D24256_DONEN,,,,"Alles klar, und nun pass auf dich auf.","Hecho, ahora ve con cuidado.",,"Fini, faites attention à vous.",,,,Сделано. Береги ÑебÑ., +When will you be done?,TXT_RPLY1_SCRIPT10_D24256_WHENW,,,,Wann wird es fertig sein?,¿Cuándo habrás terminado?,,Quand aurez-vous fini?,,,,Когда он будет готов?, +"Now. Hey great, it worked!",TXT_RYES1_SCRIPT10_D24256_NOWHE,,,,"Oh, klasse. Es funktioniert.","Ahora. Mira que bien, ¡Ha funcionado!",,"Maintenant. Hé, super, ça à fonctionné!",,,,"Секунду. Отлично, он работает!", +I'm waiting on the tissue to finish its growth cycle.,TXT_RNO1_SCRIPT10_D24256_IMWAI,,,,"Ich muss warten, bis das Gewebe fertig gewachsen ist. ",Estoy esperando a que los tejidos terminen su ciclo de desarrollo.,,J'attends que le tissu ait fini son cycle de croissance.,,,,Подожди. Мне нужно проÑледить за циклом роÑта клеток ткани., +"Well, I'm back up to my old tricks again, I'm still working on your implants. Did you know that Macil has now authorized them for everyone? No, huh? It's because you turned out so well. Anything I can do for you?",TXT_DLG_SCRIPT10_D25772_WELLI,,,,"Ich arbeite immer noch an deinem Implantat. Wußtest du schon, dass Macil sie für alle autorisiert hat? Nein, was? Hat er getan, weil es bei dir so gut funktioniert hat. Kann ich sonst was für dich tun?","Bueno, vuelvo a las andadas otra vez, sigo trabajando en tus implantes. ¿Sabías que Macil ahora los ha autorizado para todos? No, ¿eh? Es por lo bien que te ha salido. ¿Algo que pueda hacer por ti?",,"Eh bien, je suis de retour à mes vieux violons, je suis toujours en train de travailler sur vos implants. Vous saviez que Macil les a autorisé pour tous les soldats? Non, hein? C'est parce que vous vous en êtes tellement bien sorti. Que puis-je faire pour vous?",,,,"Я Ñнова вернулÑÑ Ðº Ñтарым занÑтиÑм и по-прежнему работаю над твоим имплантатом. Ты знаешь, что ÐœÑйÑил теперь вÑем разрешил иÑпользовать имплантаты? Ðет? Это потому что Ñ‚Ñ‹ так хорошо показал ÑебÑ. Могу Ñ Ñ‡ÐµÐ¼-нибудь тебе помочь?", +Help me out here.,TXT_RPLY0_SCRIPT10_D25772_HELPM,,,,Hilf mir mal.,Ayúdame.,,Aidez moi.,,,,Помоги мне вот Ñ Ñтим., +That's all I can do.,TXT_RYES0_SCRIPT10_D25772_THATS,,,,"Da ist alles, was ich tun kann.",Eso es todo lo que puedo hacer.,,C'est tout ce que je peux faire.,,,,"Это вÑе, что Ñ Ð¼Ð¾Ð³Ñƒ Ñделать.", +New implant?,TXT_RPLY1_SCRIPT10_D25772_NEWIM,,,,Neues Implantat?,¿Nuevo implante?,,Un nouvel implant?,,,,Ðовый имплантат?, +"Yep, my best one yet.",TXT_RYES1_SCRIPT10_D25772_YEPMY,,,,"Ja, mein bestes bisher.","Si, el mejor que tengo.",,"Oui, le meilleur que j'ai jamais conçu.",,,,Да. Мое лучшее творение., +"Sorry, but you just have to wait.",TXT_RNO1_SCRIPT10_D25772_SORRY,,,,"Tut mir leid, du musst noch warten.","Lo siento, pero tendrás que esperar.",,"Désolé, il faudra attendre encore.",,,,"ПроÑти, но тебе придётÑÑ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°Ñ‚ÑŒ.", +"This is it, Feris has managed to drain everything he could out of all the data we have, this will the best, and last implant upgrade. It will be sort of depressing, seeing my best creation reach its peak. Well, at least the rest of this crew will keep me occupied.",TXT_DLG_SCRIPT10_D27288_THISI,,,,"Das ist es, Feris hat aus den Daten alles herausgeholt, was möglich war. Das wird das beste und letzte Upgrade sein. Irgendwie deprimierend zu sehen, dass meine beste Erfindung ihren Höhepunkt erreicht hat. Nun ja, wenigstens wird der Rest dieser Truppe mich lange genug beschäftigen.","Ya está, Feris ha conseguido exprimir todo lo que ha podido de los datos que tenemos, este va a ser la mejor, y última mejora del implante. Es un poco triste ver mi mejor creación llegar a su cima. Bueno, al menos el resto del personal me mantendrá ocupado.",,"C'est fini, Feris a réussi à tirer toutes ce qu'on pouvait des données que l'on a récupéré. Ce sera la dernière, et meilleure mise à jour. C'est un peu déprimant, de savoir que ma meilleure invention à déjà atteint son pinnacle.. Bon, au moins, le reste de l'équipe me gardera occupé.",,,,"Вот и вÑÑ‘. ФериÑу удалоÑÑŒ вытÑнуть вÑÑ‘, что только можно, из тех данных, которыми мы раÑполагаем. Это Ð»ÑƒÑ‡ÑˆÐ°Ñ Ð¸ поÑледнÑÑ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¸Ð¼Ð¿Ð»Ð°Ð½Ñ‚Ð°Ñ‚Ð°. Ðемного груÑтно видеть, что твоё творение доÑтигло Ñвоего предела. Ðу, по крайнеи мере, Ñ Ð²ÑÑ‘ ещё нужен оÑтальной чаÑти команды.", +Could you heal me?,TXT_RPLY0_SCRIPT10_D27288_COULD,,,,Kannst du mich gesund machen?,¿Podrías curarme?,,Vous pouvez me soigner?,,,,Вылечишь менÑ?, +"There, you're all set now.",TXT_RYES0_SCRIPT10_D27288_THERE,,,,"So, das wär's dann.","Ya está, listo.",,"Voilà, vous pouvez y aller.",,,,Конечно. Теперь Ñ‚Ñ‹ в норме., +It's the hero. Great job! What can I get for you? We've got a little larger selection now that we have all the ordinance from the castle. If you need to buy some ammo talk to Justin. He'll take care of you. ,TXT_DLG_SCRIPT10_D28804_ITSTH,,,,"Das ist der Held. Guter Job! Was kann ich für dich tun. Wir haben jetzt eine größere Auswahl nachdem wir die Burg geplündert haben. Wenn du noch Munition brauchst, wende dich an Justin. Er kümmert sich darum.",Es el héroe. ¡Buen trabajo! ¿Qué puedo ofrecerte? Tenemos una selección un poco más amplia ahora que tenemos todo el arsenal del castillo. Si necesitas comprar municiones habla con Justin. Él se ocupará de ti.,,"Voilà notre héros! Fantastique travail! Que puis-je faire pour vous? Nous avons étendu notre séléction maintenant que nous avons l'arsenal du château à notre disposition. Si vous avez besoin de munitions, parlez à Justin. Il s'occupera de vous.",,,,"Рвот и наш герой. Отлично Ñработано! Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь? Теперь, когда мы заполучили вÑÑ‘ оружие из замка, у Ð½Ð°Ñ Ñ‡ÑƒÑ‚ÑŒ более богатый выбор. ЕÑли тебе нужны боеприпаÑÑ‹, обратиÑÑŒ к ДжаÑтину. Он поможет тебе.", +I'm out of bullets.,TXT_RPLY0_SCRIPT10_D28804_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT10_D28804_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes algo de munición. No la gastes.,Aquí tienes algo de munición. No la desperdicies.,Voilà des munitions. Ne les gaspillez pas.,,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +Teach me.,TXT_RPLY1_SCRIPT10_D28804_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +"Now, a few tips on the big guns.",TXT_RYES1_SCRIPT10_D28804_NOWAF,,,,Nun einige Ratschläge für die großen Waffen,"Ahora, unos cuantos consejos sobre las armas pesadas.",,"Bon, voilà quelques conseils pour les armes plus grosses.",,,,"Ртеперь, пара Ñоветов наÑчёт больших пушек.", +You're not ready yet.,TXT_RNO1_SCRIPT10_D28804_YOURE,,,,Du bist noch nicht soweit,Aún no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +"How's the war effort? Nevermind, if we're still here, it must be going fine. What can I do for you?",TXT_DLG_SCRIPT10_D30320_HOWST,,,,"Wie geht der Krieg voran? Egal, solange wir noch hier sind, kann es nicht schlecht laufen. Was kann ich für dich tun?","¿Cómo va la guerra? No importa, si seguimos aquí, debe de ir bien. ¿Qué puedo hacer por ti?",,"Comment va l'effort de guerre? Non, oubliez. Si vous êtes ici, ça veut dire que tout va bien. Que puis-je faire pour vous?",,,,"Как дела на фронте? Впрочем, неважно. ÐавернÑка вÑÑ‘ хорошо, раз мы ещё живы. Что Ñ Ð¼Ð¾Ð³Ñƒ Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ Ñделать?", +I ran out of bullets.,TXT_RPLY0_SCRIPT10_D30320_IRANO,,,,Mir ist die Munition ausgegangen.,Me he quedado sin balas.,,Je suis à court de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +That should help.,TXT_RYES0_SCRIPT10_D30320_THATS,,,,Das hier sollte helfen.,Esto debería ayudar.,,Cela devrait aider.,,,,"Вот, пожалуйÑта.", +You've got enough ammo.,TXT_RNO0_SCRIPT10_D30320_YOUVE,,,,Du hast genug Munition.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,Вполне доÑтаточно., +Teach me.,TXT_RPLY1_SCRIPT10_D30320_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +"Here, I'll show you a few tricks of the trade.",TXT_RYES1_SCRIPT10_D30320_HEREI,,,,"Hier, ich zeige dir mal ein paar Geheimtricks.","Bien, te mostraré algunos trucos de oficio.",,Voilà quelques conseils dont vous pouvez faire usage.,,,,"Давай, Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñƒ тебе пару Ñекретных приёмов.", +You're not ready yet.,TXT_RNO1_SCRIPT10_D30320_YOURE,,,,Du bist noch nicht soweit,Aún no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +Well have you come for tutelage or is it some ammo you're looking for? Don't think that I'm done with you yet. I've still got a few tricks up my sleeve.,TXT_DLG_SCRIPT10_D31836_WELLH,,,,"Also, bist du zum Lernen gekommen, oder weil du mal wieder Munition brauchst? Denk bloß nicht, dass ich mit dir fertig bin. Ich habe noch ein paar Tricks auf Lager.","Bien, ¿has venido a por tutela o buscas municiones? No creas que he terminado contigo. Aun tengo algunos trucos bajo la manga.",,"Vous êtes venu pour des leçons ou avez-vous besoin de munitions? Je n'ai pas encore fini avec vous, ne vous inquiétez-pas. J'ai enore des tours dans mon sac.",,,,"Итак, Ñ‚Ñ‹ пришёл за напутÑтвием? Или тебе нужны боеприпаÑÑ‹? Ðе думай, что твоё обучение окончено. У Ð¼ÐµÐ½Ñ ÐµÑ‰Ñ‘ еÑÑ‚ÑŒ кое-какие козыри в рукаве!", +It's ammo for now.,TXT_RPLY0_SCRIPT10_D31836_ITSAM,,,,Im Moment ist es Munition.,Es munición por ahora.,,Munitions pour l'instant.,,,,Мне нужны боеприпаÑÑ‹., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT10_D31836_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aqui tienes algo de munición. No la gastes.,Aquí tienes algo de munición. No la desperdicies.,Voilà des munitions. Ne les gaspillez pas.,,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT10_D31836_YOUVE,,,,Du hast genug Munition.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ патронов., +Teach me.,TXT_RPLY1_SCRIPT10_D31836_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +Time for the advanced lessons.,TXT_RYES1_SCRIPT10_D31836_TIMEF,,,,Zeit für fortgeschrittene Lektionen.,Es hora de las lecciones avanzadas.,,Il est temps de passer à des leçons plus avancées.,,,,Пришло Ð²Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ ÑƒÐ³Ð»ÑƒÐ±Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ Ð¸Ð·ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ€ÑƒÐ¶Ð¸Ñ!, +You're not ready yet.,TXT_RNO1_SCRIPT10_D31836_YOURE,,,,Du bist noch nicht soweit.,Aún no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +"Well, what is it now? Don't you ever take a break? I'm glad that you're still breathing. I'd hate for my favorite student to come back looking out from the inside of a body bag.",TXT_DLG_SCRIPT10_D33352_WELLW,,,"Well, what is it now? Don't you ever take a break? I'm glad that you're still breathing. I'd hate for my favourite student to come back looking out from the inside of a body bag.","Also, was ist es dieses Mal? Machst du jemals eine Pause? Bin ich froh, dass du noch atmest.Gefiele mir nicht, meinen Lieblingschüler in einem Leichensack zurückkommen zu sehen.","Bien, ¿Qué es ahora? ¿Es que nunca descansas? Me alegra que sigas respirando. Odiaría ver a mi estudiante favorito volver asomándose de dentro de una bolsa para cadáveres.",,"Eh bien, comment allez vous? Vous prenez une pause de temps en temps? Je suis content de voir que vous êtes toujours vivant, çe me ferait mal de voir mon apprenti préféré dans un sac mortuaire.",,,,"Итак, Ñ‚Ñ‹ ÑправилÑÑ Ð¸ даже ни разу не оÑтановилÑÑ Ð¿ÐµÑ€ÐµÐ´Ð¾Ñ…Ð½ÑƒÑ‚ÑŒ? Рад видеть, что Ñ‚Ñ‹ вÑÑ‘ ещё дышишь. Мне бы не хотелоÑÑŒ, чтобы мой лучший ученик вернулÑÑ Ð²Ñ‹Ð³Ð»Ñдывающим из мешка Ð´Ð»Ñ Ñ‚Ñ€ÑƒÐ¿Ð¾Ð².", +I need some more bullets.,TXT_RPLY0_SCRIPT10_D33352_INEED,,,,Ich brauche mehr Munition.,Necesito más balas.,,J'ai besoin de munitions.,,,,Мне нужны патроны., +"There, don't waste it.",TXT_RYES0_SCRIPT10_D33352_THERE,,,,"Hier, verschwende sie nicht.","Toma, no las gastes.","Toma, no las desperdicies.","Voilà, ne les gaspillez pas.",,,,Вот. Ðе трать их попуÑту., +You have enough.,TXT_RNO0_SCRIPT10_D33352_YOUHA,,,,Du hast genug.,Tienes suficientes.,,Vous en avez assez.,,,,Тебе хватает., +What can you teach me?,TXT_RPLY1_SCRIPT10_D33352_WHATC,,,,Was kannst du mir beibringen?,¿Qué puedes enseñarme?,,Que pouvez-vous m'apprendre.,,,,Чему Ñ‚Ñ‹ можешь Ð¼ÐµÐ½Ñ Ð½Ð°ÑƒÑ‡Ð¸Ñ‚ÑŒ?, +"Don't get snippy, you've still some room to grow.",TXT_RYES1_SCRIPT10_D33352_DONTG,,,,"Werd nicht leichtsinnig, du kannst noch einiges dazulernen.","No seas insolente, aún tienes mucho que aprender.",,"Ne faites pas l'orgeuilleux, vous avez encore de quoi apprendre.",,,,Ðе задирай ноÑ. Тебе ещё еÑÑ‚ÑŒ куда раÑти., +Nothing until you're ready.,TXT_RNO1_SCRIPT10_D33352_NOTHI,,,,"Nichts, bevor diu nicht bereit bist.",Nada hasta que estés listo.,,Pas avant que vous ne soyez prêt.,,,,"Ðичему, пока Ñ‚Ñ‹ не готов.", +"Look who's back, what's on your mind? I know it's been hard, but all of us appreciate your efforts, believe me.",TXT_DLG_SCRIPT10_D34868_LOOKW,,,,"Sieh mal an, wer zurück ist. Was gibt es? Ich weiß, es ist schwierig, aber wir alle wissen deine Arbeit zu würdigen, glaub mir.","Mira quien ha vuelto, ¿Qué tienes en mente? Se que es duro, pero todos apreciamos tus esfuerzos, créeme.",,"Regardez qui revient! Comment ça va? Je sais que les temps sont durs mais nous apprécions vos efforts, vraiment.",,,,"ПоÑмотрите-ка, кто вернулÑÑ. Что у Ñ‚ÐµÐ±Ñ ÑÑ‚Ñ€ÑÑлоÑÑŒ? Я знаю, твои Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñложны, но мы вÑе ценим твои уÑилиÑ. Поверь мне.", +I've run out of bullets.,TXT_RPLY0_SCRIPT10_D34868_IVERU,,,,Mir ist die Munition ausgegangen.,Me he quedado sin balas.,,Je suis à court de munitions.,,,,Мне нужны патроны., +"What else is new, here you go.",TXT_RYES0_SCRIPT10_D34868_WHATE,,,,Kennen wir das nicht? Hier hast du welche.,"Que más es nuevo, aquí tienes.",,"Rien de nouveau, voilà pour vous.",,,,"Знаю, знаю. Вот, держи!", +You have more than I can give you.,TXT_RNO0_SCRIPT10_D34868_YOUHA,,,,"Du hast mehr, als ich dir geben könnte.",Tienes más de las que podría darte.,,Vous avez plus que je ne suis autorisé à vous donner.,,,,"Да у Ñ‚ÐµÐ±Ñ Ð¸Ñ… больше, чем на нашем Ñкладе.", +Teach me what you can.,TXT_RPLY1_SCRIPT10_D34868_TEACH,,,,Zeig mir was du weißt.,Enseñame lo que puedas.,,Enseignez-moi ce que vous pouvez.,,,,"Ðаучи менÑ, чему можешь.", +"All right, here's some pointers.",TXT_RYES1_SCRIPT10_D34868_ALLRI,,,,"Ok, ich erklär dir ein paar Tricks.","Muy bien, aquí tienes unos consejos.",,Voilà deux ou trois trucs.,,,,Ðу хорошо. Вот пара Ñоветов., +Not right now.,TXT_RNO1_SCRIPT10_D34868_NOTRI,,,,Nicht jetzt.,Ahora no.,,Pas maintenant.,,,,Ðе ÑейчаÑ., +What is it you need? I hope that you're giving the Order a taste of the kind of pain that we have been feeling for years.,TXT_DLG_SCRIPT10_D36384_WHATI,,,,"Was brauchst du? Ich hoffe, du gibst dem Orden etwas von dem Schmerz zurück, den sie und allen haben zukommen lassen.",¿Qué necesitas? Espero que le estés dando a la Orden un poco del tipo de dolor que hemos estado sufriendo durante años.,,De quoi avez-vous besoin? J'espère que vous donnez à l'Ordre une idée de la douleur que nous avons ressenti pendant des années.,,,,"Что тебе нужно? ÐадеюÑÑŒ, Ñ‚Ñ‹ даёшь Ордену почувÑтвовать ту боль, что мы терпели годами.", +Some ammo.,TXT_RPLY0_SCRIPT10_D36384_SOMEA,,,,Etwas Munition.,Algo de munición.,,Des munitions.,,,,БоеприпаÑÑ‹., +"There you go, don't waste it.",TXT_RYES0_SCRIPT10_D36384_THERE,,,,Hier hast du welche. Verschwende sie nicht.,"Toma, no la gastes.","Toma, no las desperdicies.",Voilà pour vous. Ne les gaspillez pas.,,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT10_D36384_YOUVE,,,,Du hast genug Munition.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ патронов., +Teach me.,TXT_RPLY1_SCRIPT10_D36384_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +A few more lessons and you'll know all that I can teach.,TXT_RYES1_SCRIPT10_D36384_AFEWM,,,,"Ein paar mehr Lektionen, und du weißt alles, was ich weiß.",Unas cuantas lecciones más y sabrás todo lo que puedo enseñar.,,Quelque leçons en plus et vous saurez tout ce que je peux vous enseigner.,,,,"Ещё немного, и Ñ‚Ñ‹ будешь знать вÑе, что знаю Ñ.", +You're not ready yet.,TXT_RNO1_SCRIPT10_D36384_YOURE,,,,Du bist noch nicht soweit.,Aún no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +"I can't believe that we're still around, you and I. There's just too many of us that have passed since the beginning. What can I do for you friend?",TXT_DLG_SCRIPT10_D37900_ICANT,,,,"Ich kann kaum glauben, dass wir immer noch da sind, du und ich. Es sind so viele, die uns verlassen haben, seit alles anfing. Was kann ich für dich tun, Freund?","No puedo creer que sigamos aquí, tu y yo. Se han ido tantos como tú desde que todo empezó. ¿Qué puedo hacer por ti, amigo?",,"J'arrive pas a croire que vous êtes toujours avec nous. Tellement de nos camarades ont disparu depuis que tout a commencé. Que puis-je faire pour vous, mon ami?",,,,"Ðе могу поверить, что мы вÑÑ‘ ещё живы, Ñ‚Ñ‹ и Ñ. За вÑе Ñто Ð²Ñ€ÐµÐ¼Ñ ÑƒÐ¶Ðµ Ñтольких из Ð½Ð°Ñ Ð½Ðµ Ñтало. Что Ñ Ð¼Ð¾Ð³Ñƒ Ñделать Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ, дружище?", +I'm out of bullets.,TXT_RPLY0_SCRIPT10_D37900_IMOUT,,,,Ich habe keine Munition mehr.,Me he quedado sin balas.,,Je suis à court de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +"Here, use them to keep you in good health.",TXT_RYES0_SCRIPT10_D37900_HEREU,,,,"Hier, benutze sie um gesund zu bleiben,","Aquí tienes, úsalas para mantenerte en buena salud.",,"Voilà, gardez vous en bonne santé.",,,,"Вот. ИÑпользуй их, чтобы Ñохранить ÑебÑ.", +You have enough.,TXT_RNO0_SCRIPT10_D37900_YOUHA,,,,Du hast genug.,Tienes suficientes.,,Vous en avez assez.,,,,Тебе хватает., +Teach me.,TXT_RPLY1_SCRIPT10_D37900_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +"Well, that's it, you're done. I can teach no more.",TXT_RYES1_SCRIPT10_D37900_WELLT,,,,"So, das war's. Ich kann dir nicht mehr beibringen.","Bueno, eso es todo, estás listo. No tengo más que enseñar.",,"Eh bien, voilà. Vous savez tout. Je n'ai rien de plus pour vous!",,,,"Что ж, Ñто вÑÑ‘. Твоё обучение закончено. Больше Ñ Ð½Ð¸Ñ‡ÐµÐ¼Ñƒ не могу Ñ‚ÐµÐ±Ñ Ð½Ð°ÑƒÑ‡Ð¸Ñ‚ÑŒ.", +Return after Macil tells you it's time.,TXT_RNO1_SCRIPT10_D37900_RETUR,,,,"Komm wieder, wenn Macil sagt, dass es Zeit ist.",Vuelve cuando Macil diga que es la hora.,,Revenez quand Macil vous dit qu'il est temps.,,,,"ВозвращайÑÑ, когда Ñкажет ÐœÑйÑил.", +"I've taught you everything I can right now. I've given you all that you should ever need, unless you're out of bullets. Those I can still help you with.",TXT_DLG_SCRIPT10_D39416_IVETA,,,,"Ich habe dir alles beigebracht, was ich weiß. Das sollte alles sein, was du brauchen wirst, es sei denn, du brauchst wieder mal Munition. Damit kann ich dir jederzeit helfen.","Te he enseñado todo lo que puedo por ahora. Te he dado todo lo que puedas necesitar, a menos que te hayas quedado sin balas. Con eso si que te puedo ayudar todavía.",,"Je vous ai enseigné tout ce que je sais, et tout ce qu'il vous faudra, sauf si n'avez plus de munitions.. Et je peux vous aider pour ça, aussi.",,,,"Я обучил Ñ‚ÐµÐ±Ñ Ð²Ñему, что умею Ñам. Ð’Ñему, что тебе может когда-нибудь пригодитьÑÑ. Больше Ñ Ð½Ð¸Ñ‡ÐµÐ¼ не могу тебе помочь, еÑли, конечно, у Ñ‚ÐµÐ±Ñ Ð½Ðµ кончилиÑÑŒ патроны.", +Yes I am.,TXT_RPLY0_SCRIPT10_D39416_YESIA,,,,"Ja, bin ich.","Si, eso es.",,"Oui, j'en ai besoin.",,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here you go. ,TXT_RYES0_SCRIPT10_D39416_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +"Check out what's new, the teleporter beacon. When you use the beacon, we'll track the signal and send help. Is there something I can get you?",TXT_DLG_SCRIPT10_D40932_CHECK,,,,"Sieh mal, was ich Neues habe, das Teleportersignal. Wenn du es benutzt können wir das Signal anpeilen und dir Hilfe schicken. Gibt es sonst was, was ich tun kann?","Mira qué novedad, el faro de teletransporte. Cuando uses el faro, trazaremos la señal y enviaremos ayuda. ¿Hay algo que pueda ofrecerte?",,"Regardez ce qu'on vient de sortir: L'antenne de téléporteur. Quand vous l'utilisez, on traque le signal et on envoie des renforts. Que puis-je faire pour vous?",,,,"ПоÑмотри на Ñту новинку: телепортационный маÑк. Когда Ñ‚Ñ‹ его включишь, мы проÑледим Ñигнал и вышлем подмогу. Ртеперь, что Ñ Ð¼Ð¾Ð³Ñƒ тебе предложить?", +Box of rockets,TXT_RPLY0_SCRIPT10_D40932_BOXOF,,,,Kiste Raketen.,Caja de cohetes.,,Boîte de roquettes.,,,,Коробку ракет, +There you go.,TXT_RYES0_SCRIPT10_D40932_THERE,,,,Bitteschön.,Ahí tienes.,,Voilà pour vous.,,,,Бери., +You can't afford that!,TXT_RNO0_SCRIPT10_D40932_YOUCA,,,,Das kannst du dir nicht leisten.,¡No puedes adquirir eso!,,Vous n'avez pas assez d'argent.,,,,Ты не можешь Ñебе Ñтого позволить!, +H-E grenades.,TXT_RPLY1_SCRIPT10_D40932_HEGRE,,,,HE-Granaten.,Granadas HE.,,Grenades explosives.,,,,ОÑколочные гранаты, +Here you go.,TXT_RYES1_SCRIPT10_D40932_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +Come back when you have enough money.,TXT_RNO1_SCRIPT10_D40932_COMEB,,,,"Komm wieder, wenn du genug Gold hast.",Vuelve cuando tengas suficiente dinero.,,Revenez quand vous avez assez d'argent.,,,,"ВозвращайÑÑ, когда у Ñ‚ÐµÐ±Ñ Ð±ÑƒÐ´ÑƒÑ‚ деньги.", +Energy pod,TXT_RPLY2_SCRIPT10_D40932_ENERG,,,,Energiezelle.,Vaina de energía,,Cellule énergétique.,,,,ЭнергоÑчейку, +Here's your energy pod,TXT_RYES2_SCRIPT10_D40932_HERES,,,,Hier hast du deine Energiezele.,Aquí tienes tu vaina de energía,,Voilà votre cellule.,,,,Вот Ñ‚Ð²Ð¾Ñ ÑнергоÑчейка., +You don't have enough for that.,TXT_RNO2_SCRIPT10_D40932_YOUDO,,,,"Nein, du hast nicht genug Gold dafür.",No tienes suficiente para eso.,,Vous n'avez pas assez d'argent pour ça.,,,,У Ñ‚ÐµÐ±Ñ Ð½ÐµÐ´Ð¾Ñтаточно денег., +Teleporter beacon,TXT_RPLY3_SCRIPT10_D40932_TELEP,,,,Teleportersignal.,Faro de teletransporte,,Antenne de téléporteur.,,,,Телепортационный маÑк, +"Help, when and where you need it.",TXT_RYES3_SCRIPT10_D40932_HELPW,,,,"Hilfe, wenn und wo sie gebraucht wird.","Ayuda, cuando y donde la necesites.",,"De l'aide, quand il vous en faut.",,,,Теперь Ñ‚Ñ‹ Ñможешь получить помощь вÑегда и везде., +"Sorry, no charity.",TXT_RNO3_SCRIPT10_D40932_SORRY,,,,"Tut mir leid, wir sind keine Wohltätigkeitsveranstaltung.","Lo siento, no es caridad.",,"Désolé, on n'est pas une charité.",,,,ПроÑти. Ðикакой благотворительноÑти., +"Now that we actually have the castle under control, we have to be extra vigilant to keep it. The Order's probably getting ready to strike back right now.",TXT_DLG_SCRIPT10_D42448_NOWTH,,,,"Jetzt, wo wir die Burg unter Kontrolle haben, müssen wir besonders wachsam sein, um sie nicht wieder zu verlieren. Der Orden bereitet womöglich gerade jetze einen Gegenschlag vor.",Ahora que realmente tenemos el castillo bajo control tenemos que estar bien alerta para guardarlo. La Orden probablemente se esté preparando para contraatacar ahora mismo.,,"Maintenant que le château est sous notre contrôle, nous devons être très vigilants pour le conserver. L'Ordre se prépare sans doute à riposter maintenant.",,,,"Теперь, когда мы захватили замок, нам нужно быть оÑобенно бдительными, чтобы удержать его. Может быть, в Ñтот Ñамый момент Орден готовитÑÑ ÐºÐ¾Ð½Ñ‚Ñ€Ð°Ñ‚Ð°ÐºÐ¾Ð²Ð°Ñ‚ÑŒ.", +Be careful out there.,TXT_DLG_SCRIPT10_D43964_BECAR,,,,Sei vorsichtig da draußen.,Ten cuidado ahí fuera.,,Faites attention à vous.,,,,Будь наÑтороже., +"Keep up the great work, we couldn't have done it without you.",TXT_DLG_SCRIPT10_D45480_KEEPU,,,,"Großartige Arbeit, mach weiter so. Ohne dich hätten wir es nicht schaffen können.","Sigue así, no podríamos haberlo logrado sin ti.",,"Continuez votre magnifique travail, nous n'aurions jamais réussi sans vous.",,,,Продолжай в том же духе. Без Ñ‚ÐµÐ±Ñ Ð¼Ñ‹ бы не ÑправилиÑÑŒ., +I'm the keymaster.,TXT_DLG_SCRIPT11_D0_IMTHE,,,,Ich bin der Schlüsselmeister.,Soy el amo de llaves.,,Je suis le maître des clés.,,,,Я ключник., +"A lot of people would say this is a thankless and insignificant job. But it's not, in fact...",TXT_DLG_SCRIPT11_D1516_ALOTO,,,,"Eine Menge Leute würden sagen, dies sei eine undankbare Aufgabe, aber das ist es nicht, in Wirklichkeit...","Mucha gente diría que éste es un trabajo ingrato e insignificante. Pero no, de hecho...",,"Beaucoup de gens diraient que c'est un travail insignifiant et ingrat.. Mais en fait, ce n'est vraiment pas le cas.",,,,"Многие Ñкажут, что Ñто Ð½ÐµÐ±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ð½Ð°Ñ Ð¸ Ð½ÐµÐ·Ð½Ð°Ñ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°, но Ñто не так. Ðа Ñамом деле...", +Give me the key!,TXT_RPLY0_SCRIPT11_D1516_GIVEM,,,,Gib mir den Schlüssel.,¡Dame la llave!,,Donne moi la clé!,,,,Дай мне ключ!, +"Ok, but remember, I'm the keymaster.",TXT_DLG_SCRIPT11_D3032_OKBUT,,,,"Ok, aber vergiß nicht, dass ICH der Schlüsselmeister bin.","Ok, pero recuerda, soy el amo de llaves.",,"Ok, mais souviens-toi, je suis le maître des clés.",,,,"Держи, но помни — Ñ ÐºÐ»ÑŽÑ‡Ð½Ð¸Ðº!", +"Ok pal, whatever.",TXT_RPLY0_SCRIPT11_D3032_OKPAL,,,,"Was auch immer, Kumpel.","Ok colega, lo que tú digas.",,"Comme tu veux, mon ami.",,,,Без проблем., +I'm the keymaster.,TXT_DLG_SCRIPT11_D4548_IMTHE,,,,Ich bin der Schlüsselmeister.,Soy el amo de llaves.,,Je suis le maître des clés.,,,,Я ключник., +Die traitor!,TXT_DLG_SCRIPT11_D6064_DIETR,,,,"Stirb, Verräter.","¡Muere, traidor!",,"Meurs, traître!",,,,"Умри, предатель!", +Die traitor!,TXT_DLG_SCRIPT11_D7580_DIETR,,,,"Stirb, Verräter.","¡Muere, traidor!",,"Meurs, traître!",,,,"Умри, предатель!", +"Have you come to gloat? Even though we're behind these bars, as long as we hold on, you still lose.",TXT_DLG_SCRIPT11_D9096_HAVEY,,,,"Bist du zum Glotzen gekommen? Auch wenn wir hinter Gittern sind, solange wir nicht aufgeben wirst du immer noch verlieren.","¿Has venido a regodearte? Aunque estemos entre rejas, mientras sigamos en pie, has perdido.",,"Vous êtes venu vous moquer de nous? Même si on est derrière les barreaux, du moment que l'on reste en vie, vous allez perdre.",,,,"Пришел поглумитьÑÑ? ПуÑÑ‚ÑŒ мы и за Ñтими решётками, но пока мы живы, вам не победить.", +Let us out of here!,TXT_DLG_SCRIPT11_D10612_LETUS,,,,Lass uns hier raus!,¡Sácanos de aquí!,,Sortez nous de là!,,,,ВыпуÑти Ð½Ð°Ñ Ð¾Ñ‚Ñюда!, +Leave me alone!,TXT_DLG_SCRIPT11_D12128_LEAVE,,,,Lass mich in Ruhe!,¡Déjame en paz!,,Foutez moi la paix!,,,,ОÑтавь Ð¼ÐµÐ½Ñ Ð² покое!, +"What is the wisdom you seek, simple one?",TXT_DLG_SCRIPT12_D0_WHATI,,,,"Welche Weisheit suchst du, Menschling?","¿Cuál es la sabiduría que buscas, simple criatura?",,"Quelle est la sagesse que vous recherchez, simple humain?",,,,"Какой мудроÑти Ñ‚Ñ‹ ищешь, непоÑвÑщённый?", +The Sigil of the One God.,TXT_RPLY0_SCRIPT12_D0_THESI,,,,Das Sigil des Einen Gottes.,El Emblema del Dios Único.,,Le Sigil du Seul Dieu.,,,,Сигил Единого Бога., +"I feel one fragment resonate within you. The second lies at the heart of the crimson and obsidian tower. There you must combat the Bishop, who is aware, and awaits you. You will find him by following his symbol of power. Take this token to the keymaster. Return to me after you have slain the beast.",TXT_DLG_SCRIPT12_D1516_IFEEL,,,,"Ich fühle, wie ein Fragment in dir pulsiert, Das zweite Teilstück des Sigils befindet sich im Herzen des Turms aus Purpur und Obsidian. Dort wartet der Bischof auf dich, den du bekämpfen musst. Er weiß von dir und wartet. Du findest ihm, wenn du seinem Symbol der Macht folgst. Nimm dieses Zeichen und gebe es dem Schlüsselmeister. Kehr zu mir zurück, nachdem du das Biest vernichtet hast.","Siento un fragmento resonar en ti. El segundo se encuentra en el corazón de la torre carmesí y obsidiana. Ahí debes combatir con el Obispo, quien sabe, y espera tu llegada. Lo encontrarás siguiendo su símbolo de poder. Lleva este vale al amo de llaves. Vuelve a mí tras haber matado a la bestia.",,"Je sens un fragment résonner en toi. Le deuxième repose au cÅ“ur de la tour d'obsidienne et d'écarlate. Ici, vous devrez défaire l'évêque, qui connaît déjà votre statut, et vous attend patiamment. Vous le trouverez en suivant son symbole de pouvoir. Prenez ce jeton et amenez le au maître des clés. Retournez à moi après que vous ayez vaincu la bête.",,,,"Я чувÑтвую один фрагмент, наÑтроенный на тебÑ. Второй лежит в Ñердце багрово-обÑидиановой башни. Там тебе предÑтоит ÑразитьÑÑ Ñ Ð•Ð¿Ð¸Ñкопом, который начеку, и ожидает тебÑ. Ты найдёшь его, ÑÐ»ÐµÐ´ÑƒÑ ÐµÐ³Ð¾ Ñимволу влаÑти. ОтнеÑи Ñтот знак ключнику. ВозвращайÑÑ, когда убьёшь зверÑ.", +I'll be back.,TXT_RPLY0_SCRIPT12_D1516_ILLBE,,,,Ich werde zurückkommen.,Volveré.,,Je reviendrai.,,,,Я вернуÑÑŒ., +"Although the Bishop is formidable, this quest is slight. Return to me when you possess the next fragment.",TXT_DLG_SCRIPT12_D3032_ALTHO,,,,"Auch wenn der Bischof ein schwerer Gegner ist, diese Aufgabe ist geringfügig. Komm zu mir zurück, wenn du das nächste Fragment besitzt.","Aunque el Obispo es formidable, esta misión es leve. Vuelve a mí cuando poseas el siguiente fragmento.",,"Bien que l'évêque soit un puissant adversaire, cette quête n'est qu'une courte aventure. Revenez à moi quand vous possédez le deuxième fragment.",,,,"Каким бы Ñтрашным ЕпиÑкоп ни был, Ñто задание проÑто. ВозвращайÑÑ, когда добудешь Ñледующий фрагмент.", +Your next challenge will test your spirit. The third piece is held by your own leader. He is the same as that which he sends you to kill.,TXT_DLG_SCRIPT12_D4548_YOURN,,,,"Die nächste Herausforderung wird deinen Geist prüfen. Das dritte Teilstück wird von deinem eigenen Anführer, Macil, gehalten. Er ist das Gleiche, was er dich töten lässt.",Tu próximo desafío pondrá a prueba tu espíritu. El tercer fragmento está en manos de tu propio líder. Él es igual que aquello que te envía a matar.,,Le prochain défi testera votre esprit. Le troisième fragment est possédé par votre leader. Il est le même que celui qu'il vous a envoyé tuer.,,,,"Следующее иÑпытание проверит Ñилу твоего духа. Третий фрагмент у вашего лидера. Он Ñродни тем, кого вы убиваете по его приказу.", +Macil? A traitor?,TXT_RPLY0_SCRIPT12_D4548_MACIL,,,,Macil? Ein Verräter?,¿Macil? ¿Un traidor?,,Macil? Un traître?,,,,ÐœÑйÑил? Предатель?, +Your blind faith has allowed him to advance to his goals with each piece you gain. Confront him and resolve your fate.,TXT_DLG_SCRIPT12_D6064_YOURB,,,,"Deine blinde Treue hat es ihm erlaubt, seine eigenen Ziele voranzutreiben - mit jedem Fragment, das du findest. Konfrontiere ihn und kläre dein Schicksal.",Tu fé ciega le ha permitido avanzar en sus objetivos con cada pieza que ganas. Confróntalo y resuelve tu destino.,,"Votre dévotion aveugle lui a permis d'avancer vers ses fins. Avec chaque fragment que vous récupérez, il s'en rapproche encore. Confrontez le et faites-face à votre destinée.",,,,"Ð¢Ð²Ð¾Ñ ÑÐ»ÐµÐ¿Ð°Ñ Ð²ÐµÑ€Ð° позволÑла ему приближатьÑÑ Ðº Ñвоей цели Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¼ фрагментом, который Ñ‚Ñ‹ находил. СразиÑÑŒ Ñ Ð½Ð¸Ð¼ и реши Ñвою Ñудьбу.", +"All right, it is Macil.",TXT_RPLY0_SCRIPT12_D6064_ALLRI,,,,"Na gut, es ist Macil.","Muy bien, es Macil.",,Très bien. C'est le tour de Macil.,,,,ПонÑтно. Я убью ÐœÑйÑила., +It's you I don't trust.,TXT_RPLY1_SCRIPT12_D6064_ITSYO,,,,"Du bist es, dem ich nicht vertraue.",Eres tú de quien no me fío.,,C'est vous à qui je ne fais pas confiance.,,,,"Я думаю, что Ñто Ñ‚Ñ‹ лжешь!", +Whatever choice you make your kind shall perish under the will of the One God.,TXT_DLG_SCRIPT12_D7580_WHATE,,,,"Welche Wahl du auch triffst, deine Spezies wird unter dem Willen des Einen Gottes zugrunde gehen.",Cualquiera que sea tu elección tu especie perecerá bajo la voluntad del Dios Único.,,"Quel que soit le choix que vous faites, votre espèce périra par la volonté du Seul Dieu.",,,,"ÐезавиÑимо от твоего выбора, твой вид покоритÑÑ Ð²Ð¾Ð»Ðµ Единого Бога.", +I'll be back when Macil's dead.,TXT_RPLY0_SCRIPT12_D7580_ILLBE,,,,"Ich komme wieder, wenn Macil tot ist.",Volveré cuando Macil esté muerto.,,Je reviendrai quand Macil sera mort.,,,,Я вернуÑÑŒ поÑле Ñмерти ÐœÑйÑила., +I can't let that happen.,TXT_RPLY1_SCRIPT12_D7580_ICANT,,,,Das darf nicht passieren.,No pienso permitirlo.,,Je ne peux pas vous laisser faire ça.,,,,Я не могу Ñтого допуÑтить., +"The river of time moves forever onward, while you stand still.",TXT_DLG_SCRIPT12_D9096_THERI,,,,"Der Fluss der Zeit bewegt sich immer vorwärts, während du stillstehst.","La corriente del tiempo sigue adelante, mientras tú sigues quieto.",,"La rivière du temps continue à couler, tandis que vous restez immobile.",,,,"Река времени течёт лишь вперёд, пока Ñ‚Ñ‹ Ñтоишь на меÑте.", +"You have cut the cancer from your body, but your heart still beats. Next you must find the surgeon who butchers and controls your people, the Loremaster. Stop him, and the next piece will be yours.",TXT_DLG_SCRIPT12_D10612_YOUHA,,,,"Du hast das Geschwür aus deinem Körper entferrnt, aber dein Herz schlägt noch. Als Nächstes musst du den Wissensmeister finden, der deine Leute kontrolliert und abschlachtet. Stoppe ihn und das nächste Teilstück ist Dein.","Has cortado el cáncer de tu cuerpo, pero tu corazón aún late. Lo siguiente es encontrar al cirujano que destroza y controla a tu gente, el Maestro del Conocimiento. Deténlo, y la próxima pieza será tuya.",,"Vous avez arraché le cancer de votre corps, mais le cÅ“ur bat encore. Vous devez maintenant trouver le chirurgien qui massacre votre peuple, le Maître des traditions. Arrètez-le, et le fragment suivant sera le vôtre.",,,,"Ты вырезал рак из Ñвоего тела, но твоё Ñердце вÑÑ‘ ещё бьётÑÑ. Теперь тебе предÑтоит найти вивиÑектора, который вÑкрывает твоих людей и управлÑет ими — Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти. ОÑтанови его, и Ñледующий фрагмент твой.", +Where do I find him?,TXT_RPLY0_SCRIPT12_D10612_WHERE,,,,Wo finde ich ihn?,¿Dónde lo encuentro?,,Où puis-je le trouver?,,,,Где мне иÑкать его?, +"Use the teleporter behind the door I just opened to reach the Loremaster. When he is dead, use the same device to return to me.",TXT_DLG_SCRIPT12_D12128_USETH,,,,"Benutze den Teleporter hinter der Tür, die ich gerade geöffnet habe. Wenn er tot ist, benutze dasselbe Gerät, um zu mir zurückzukehren.","Usa el teleportador tras la puerta que he abierto para llegar hasta el Maestro del Conocimiento. Cuando esté muerto, usa el mismo dispositivo para volver a mí.",,"Utilisez le téléporteur derrière la porte que je viens d'ouvrir pour trouver le Maître des traditions. Quand il sera mort, utilisez ce même téléporteur pour revenir ici.",,,,"ИÑпользуй телепорт за той дверью, что Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ что открыл, чтобы добратьÑÑ Ð´Ð¾ ХранителÑ. Когда он умрёт, найди другой телепорт, чтобы вернутьÑÑ ÐºÐ¾ мне.", +"I'll be back, with his piece!",TXT_RPLY0_SCRIPT12_D12128_ILLBE,,,,"Ich komme wieder, mit dem Teilstück.","Volveré, ¡con su pieza!",,"Je reviendrai, avec son fragment!",,,,Я доÑтану его фрагмент!, +"The river of time moves forever onward, while you stand still.",TXT_DLG_SCRIPT12_D13644_THERI,,,,"Der Fluss der Zeit bewegt sich immer vorwärts, während du stillstehst.","La corriente del tiempo sigue adelante, mientras tú sigues quieto.",,"La rivière du temps continue à couler, tandis que vous restez immobile.",,,,"Река времени течёт лишь вперёд, пока Ñ‚Ñ‹ Ñтоишь на меÑте.", +"Pitiful man, you have done what thousands have failed to do... You bring me the power of the Sigil, the voice of the One God.",TXT_DLG_SCRIPT12_D15160_PITIF,,,,"Armseliger Wurm, du hast getan woran Tausende gescheitert sind... Du brachtest mir die Macht des Sigils, die Stimme des Einen Gottes.","Despreciable humano, has hecho lo que miles no han podido... Traes ante mí el poder del Emblema, la voz del Dios Único.",,"Pathétique mortel, vous avez réussi là où des milliers ont failli.. Vous m'amenez le pouvoir du Sigil, la voix du Seul Dieu.",,,,"Ðичтожный человечишка, тебе удалоÑÑŒ то, Ñ Ñ‡ÐµÐ¼ не ÑправилиÑÑŒ Ñ‚Ñ‹ÑÑчи... Ты Ð¿Ñ€Ð¸Ð½Ñ‘Ñ Ð¼Ð½Ðµ мощь Сигила, Ð³Ð»Ð°Ñ Ð•Ð´Ð¸Ð½Ð¾Ð³Ð¾ Бога.", +I don't understand.,TXT_RPLY0_SCRIPT12_D15160_IDONT,,,,Ich verstehe nicht.,No entiendo.,,Je ne comprends pas.,,,,Я не понимаю., +The Sigil will open the door and free the spirit which will cleanse this planet and let me live forever. I will strip this world of its energies and find new worlds to conquer.,TXT_DLG_SCRIPT12_D16676_THESI,,,,"Das Sigil wird die Tür öffnen und den Geist befreien, den Planeten läutern und mich für immer leben lassen. Ich werde dieser Welt alle Energie entziehen und neue Welten finden, um sie zu erobern.",El Emblema abrirá la puerta y liberará el espíritu que limpiará éste planeta y me dejará vivir eternamente. Despojaré a este mundo de su energía y buscaré otros que conquistar.,,Le Sigil ouvrira la porte et libérera l'âme qui purifiera cette planète et me donnera la vie éternelle. J'arracherai toutes les énergies de ce monde et en trouverai d'autres à conquérir.,,,,"Сигил раÑпахнёт дверь и выÑвободит ÑущноÑÑ‚ÑŒ, что очиÑтит Ñту планету и дарует мне новую жизнь. Я выкраду вÑÑŽ Ñнергию Ñтого мира и отправлюÑÑŒ на завоевание Ñледующих.", +I can't let you do that.,TXT_RPLY0_SCRIPT12_D16676_ICANT,,,,Ich kann das nicht erlauben.,No puedo dejarte hacer eso.,,Je ne peux pas vous laisser faire ça.,,,,Я не могу Ñтого допуÑтить., +You can if you're dead.,TXT_DLG_SCRIPT12_D18192_YOUCA,,,,"Du kannst, wenn du tot bist.","Puedes, si estás muerto.",,"Vous pouvez, une fois que vous êtes mort.",,,,"Сможешь, когда умрёшь.", +"Are you here to free us? Because I've been good, they took my implant out. I still have to stay down here and wipe up the drool though.",TXT_DLG_SCRIPT14_D0_AREYO,,,,"Bist du hier, um uns zu befreien? Ich war gut, sie haben mein Implasntat herasusgenommen. Ich muss aber hier bleiben und den Sabber aufwischen.","¿Estás aquí para liberarnos? Porque he sido bueno, me han quitado el implante. Aunque aún tengo que quedarme aquí abajo y fregar la saliva.","¿Estás aquí para liberarnos? Porque he sido bueno, me han quitado el implante. Aunque aún tengo que quedarme aquí abajo y limpiar la saliva.","Vous êtes venus nous libérer? Je me suis bien comporté! Il m'on retiré mon implant, il faut que je reste ici et que j'essuie la bave, par contre.",,,,"Ты пришёл ÑпаÑти наÑ? Я был поÑлушным, так что они вынули мой имплантат. И вÑÑ‘ равно Ñ Ð²Ñ‹Ð½ÑƒÐ¶Ð´ÐµÐ½ оÑтаватьÑÑ Ñ‚ÑƒÑ‚, внизу, и подтирать Ñлюни за дронами.", +"Yes, I'm here to free you.",TXT_RPLY0_SCRIPT14_D0_YESIM,,,,"Ja, ich werde eiuch befreien.","Sí, estoy aquí para liberarte.",,"Oui, je viens vous libérer.",,,,"Да, Ñ Ð·Ð´ÐµÑÑŒ, чтобы ÑпаÑти ваÑ.", +You mean it?,TXT_RYES0_SCRIPT14_D0_YOUME,,,,Wirklich?,¿En serio?,,Vraiment?,,,,Правда?, +I can't help nobody else. Not until you blow up the transmitter. That's what's behind the forcefield upstairs. My job is to check on the conveyors to make sure they aren't jammed. Not anymore!,TXT_DLG_SCRIPT14_D1516_ICANT,,,,"Ich kann niemandem helfen. Nich bevor jemand den Transmitter hochjagt. Er ist hinter dem Kraftfeld da oben. Meine Aufgabe ist es, die Förderbänder zu prüfen um sicherzustellen, dass sie nicht blockieren. Jetzt nicht mehr!",No puedo ayudar a nadie más. No hasta que revientes el transmisor. Eso es lo que está tras el campo de fuerza escaleras arriba. Mi trabajo es comprobar los transportadores para asegurarme de que no esten atascados. ¡Nunca más!,No puedo ayudar a nadie más. No hasta que destruyas el transmisor. Eso es lo que está detrás del campo de fuerza escaleras arriba. Mi trabajo es comprobar los transportadores para asegurarme de que no esten atascados. ¡Ya no más!,"Je ne peux pas aider qui que ce soit d'autre, du moins pas avant que vous détruisez le transmetteur. C'est la chose derrière le champ de force à l'étage. Mon travail est de faire en sorte que les tapis roulants ne se coincent pas, mais plus maintenant!",,,,"Я не могу помочь другим, пока Ñ‚Ñ‹ не взорвёшь передатчик. Он находитÑÑ Ð·Ð° Ñиловым полем наверху. ÐœÐ¾Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° — проверÑÑ‚ÑŒ, не заклинило ли конвейеры. Теперь уже нет!", +"That's right, you're saved!",TXT_RPLY0_SCRIPT14_D1516_THATS,,,,"Das ist richtig, du bist in Sicherheit!","Correcto, ¡estás salvado!",,"C'est ça, vous êtes sauvé!",,,,"Да, Ñто так! Ð’Ñ‹ ÑпаÑены!", +"Oh, thank you!",TXT_RYES0_SCRIPT14_D1516_OHTHA,,,,"Oh, danke sehr!","Oh, ¡gracias!",,"Oh, merci!",,,,Ура! СпаÑибо тебе!, +We're free!! We're free!! We're free!!,TXT_DLG_SCRIPT14_D3032_WEREF,,,,Wir sind frei! Wir sind frei! Wir sind frei!,¡¡Somos libres!! ¡¡Somos libres!! ¡¡Somos libres!!,,On est libres! Libres! Libres!,,,,Мы Ñвободны! Мы Ñвободны! Мы Ñвободны!, +Must mine more ore!,TXT_DLG_SCRIPT14_D4548_MUSTM,,,,Muss Erz abbauen.,¡Debo picar más mineral!,,Faut que je trouve plus de minerai!,,,,Ðужно добыть больше руды!, +We're free!! We're free!! We're free!!,TXT_DLG_SCRIPT14_D6064_WEREF,,,,Wir sind frei! Wir sind frei! Wir sind frei!,¡¡Somos libres!! ¡¡Somos libres!! ¡¡Somos libres!!,,On est libres! Libres! Libres!,,,,Мы Ñвободны! Мы Ñвободны! Мы Ñвободны!, +Must mine more ore!,TXT_DLG_SCRIPT14_D7580_MUSTM,,,,Muss Erz abbauen.,¡Debo picar más mineral!,,Faut que je trouve plus de minerai!,,,,Ðужно добыть больше руды!, +We're free!! We're free!! We're free!!,TXT_DLG_SCRIPT14_D9096_WEREF,,,,Wir sind frei! Wir sind frei! Wir sind frei!,¡¡Somos libres!! ¡¡Somos libres!! ¡¡Somos libres!!,,On est libres! Libres! Libres!,,,,Мы Ñвободны! Мы Ñвободны! Мы Ñвободны!, +Must mine more ore!,TXT_DLG_SCRIPT14_D10612_MUSTM,,,,Muss Erz abbauen.,¡Debo picar más mineral!,,Faut que je trouve plus de minerai!,,,,Ðужно добыть больше руды!, +We're free!! We're free!! We're free!!,TXT_DLG_SCRIPT14_D12128_WEREF,,,,Wir sind frei! Wir sind frei! Wir sind frei!,¡¡Somos libres!! ¡¡Somos libres!! ¡¡Somos libres!!,,On est libres! Libres! Libres!,,,,Мы Ñвободны! Мы Ñвободны! Мы Ñвободны!, +What are you doing here?,TXT_DLG_SCRIPT15_D0_WHATA,,,,Was machst du hier?,¿Qué haces aquí?,,Qu'est ce que vous faites ici?,,,,По какому делу Ñ‚Ñ‹ здеÑÑŒ?, +Routine inspection.,TXT_RPLY0_SCRIPT15_D0_ROUTI,,,,Eine Routineinspektion.,Inspección rutinaria.,,Inspection de routine.,,,,ÐŸÐ»Ð°Ð½Ð¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°., +"All right, carry on.",TXT_RYES0_SCRIPT15_D0_ALLRI,,,,"In Ordnung, mach weiter.","Muy bien, continúa.",,"D'accord, continuez.",,,,ПонÑтно. Продолжай., +"Nothing to report here. Everything is working fine. If anything goes wrong, I'll be sure to report it.",TXT_DLG_SCRIPT15_D1516_NOTHI,,,,"Keine besonderen Vorkommnisse. Alles funktioniert wie es soll. Wenn irgendetwas schief geht, werde ich es sofort melden.","Nada que reportar aquí. Todo está funcionando bien. Si cualquier cosa sale mal, me aseguraré de reportarlo.",,"Rien à signaler ici. Tout fonctionne comme prévu. Si quelque chose tombe en panne, je ferai un rapport.",,,,"Тут не о чём докладывать. Ð’ÑÑ‘ работает превоÑходно. ЕÑли что-нибудь пойдёт не так, Ñ Ð¾Ð±Ñзательно доложу об Ñтом.", +"Sir, there was a problem earlier, but it was taken care of.",TXT_DLG_SCRIPT15_D3032_SIRTH,,,,"Vor kurzem gab es ein Problem, aber das wurde bereits gelöst.","Señor, hubo un problema antes, pero ha sido solucionado.",,"Monsieur, il y a eu un problème récemment mais nous l'avons corrigé.",,,,"СÑÑ€, тут была одна неполадка, но её уже уÑтранили.", +Move along or taste metal.,TXT_DLG_SCRIPT17_D0_MOVEA,,,,Beweg dich oder spüre meinen Stahl.,Sigue caminando o prueba metal.,,Bougez ou préparez-vous à goûter de l'acier.,,,,"Прочь, или отведаешь металла.", +I.D. check.,TXT_DLG_SCRIPT17_D1516_IDCHE,,,,Ausweisüberprüfung.,Comprobación de identificación.,,Vérification de carte d'identité.,,,,Ваши документы., +"Here, I'm in a hurry.",TXT_RPLY0_SCRIPT17_D1516_HEREI,,,,"Hier, ich hab's eilig.","Ten, tengo prisa.",,"Voilà, je suis pressé.",,,,Вот. Я тороплюÑÑŒ., +Stop waving your id in my face and go in.,TXT_DLG_SCRIPT17_D3032_STOPW,,,,Hör auf mit deinem Ausweis vor meinem Gesicht herumzufuchteln und geh hinein.,Deja de agitar tu identificación en mi cara y entra.,,Arrêtez de l'agiter dans ma figure et passez.,,,,Прекрати махать Ñвоей карточкой перед моим лицом и проходи., +Nothing to see here. Move along.,TXT_DLG_SCRIPT17_D4548_NOTHI,,,,Hier gibt es nichts zu sehen. Geh weiter.,Nada que ver aquí. Sigue caminando.,,Rien à voir ici. Bougez.,,,,Тут не на что Ñмотреть. Проваливай., +"What a healthy specimen. You don't need my help, do you?",TXT_DLG_SCRIPT17_D6064_WHATA,,,,"Was für ein schönes Exemplar. Du brauchst meine Hilfe nicht, oder?","Que espécimen más saludable. No necesitas mi ayuda, ¿verdad?",,"Quel magnifique spécimen! Vous n'avez pas besoin de mon aide, si?",,,,"Какой здоровый Ñубъект. Тебе не нужна Ð¼Ð¾Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ, или нужна?", +"Well, yes. Macil sent me.",TXT_RPLY0_SCRIPT17_D6064_WELLY,,,,"Nun, doch. Macil hat mich geschickt.","Bueno, sí. Macil me ha enviado.",,"Eh bien, si, Macil m'envoie.",,,,"Ðу, нужна. Я от ÐœÑйÑила.", +"Shhhh... Keep it quiet, unless you want us both killed. Now, what can I do for you?",TXT_DLG_SCRIPT17_D7580_SHHHH,,,,"Psst... sei leise, oder willst du uns beide umbringen? Nun, was kann ich für dich tun?","Shhhh... No tan alto, a menos que quieras que nos maten a ambos. Bueno, ¿Qué puedo hacer por ti?",,"Silence! Baissez de ton, sauf si vous voulez que l'on se fasse descendre tous le deux.. Que puis-je faire pour vous?",,,,"ТÑÑÑ... Тише, еÑли не хочешь, чтобы Ð½Ð°Ñ Ð¾Ð±Ð¾Ð¸Ñ… убили. Теперь, как Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Tell me how to find the Bishop.,TXT_RPLY0_SCRIPT17_D7580_TELLM,,,,"Sage mir, wie ich den Bischof finde.",Dime como encontrar al Obispo.,,Où puis-je trouver l'évêque?,,,,"Скажи, как мне найти ЕпиÑкопа.", +"Ohhh, I knew you would ask me for that. Look behind you. That's the entrance to the Bishop's citadel. It's guarded by a force field that is only shut off for official visitors, not you.",TXT_DLG_SCRIPT17_D9096_OHHHI,,,,"Oh, hab ich's doch geahnt, dass du mich das fragen würdest. Schau mal hinter dich. Dort ist der Eingang zu der Festung des Bischofs. Er ist durch ein Kraftfeld geschützt, welches sich nur für offizielle Besucher abschaltet und nicht für dich.","Ohhh, sabía que me preguntarías eso. Mira detrás de ti. Esa es la entrada a la ciudadela del Obispo. Está guardada por un campo de fuerza que solo se apaga para visitantes oficiales, no tú.",,"Ohh, je savais que vous me demanderiez cela. Regardez derrière vous. C'est l'entrée de la citadelle de l'évêque. Elle est gardée par un champ de force qui ne s'ouvre que pour les visites officielles, pas vous.",,,,"Ð, Ñ Ð·Ð½Ð°Ð», что Ñ‚Ñ‹ ÑпроÑишь об Ñтом. ОглÑниÑÑŒ. Это вход в цитадель ЕпиÑкопа. Он защищён Ñиловым полем, которое отключаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ñ… поÑетителей, не Ð´Ð»Ñ Ñ‚ÐµÐ±Ñ.", +I must kill the Bishop.,TXT_RPLY0_SCRIPT17_D9096_IMUST,,,,Ich muss den Bischof töten.,Debo matar al Obispo.,,Je dois tuer l'évêque.,,,,Я должен убить ЕпиÑкопа., +"Oh, sure you do. First, fight your way into the security complex and use the teleporter. And this might be more to your liking, destroy the computer in central administration. No computer, no force field.",TXT_DLG_SCRIPT17_D10612_OHSUR,,,,"Oh, aber klar doch. Erst kämpf dich bis zum Sicherheitskomplex durch und benutze den Teleporter. Und er nächste Schritt dürfte dir gefallen: zerstöre den Computer in der Hauptverwaltung. Kein Computer, kein Kraftfeld.","Oh, seguro que sí. Primero, lucha camino adentro del complejo de seguridad y usa el teletransporte. Y esto puede que sea de tu agrado, destruye la computadora en administración central. Sin computadora, no hay campo de fuerza.","Oh, seguro que sí. Primero, pelea para entrar al complejo de seguridad y usa el teletransporte. Y esto puede que sea de tu agrado, destruye la computadora en administración central. Sin computadora, no hay campo de fuerza.","Oh, oui, bien sûr que vous devez. D'abord il faudra forcer le chemin vers le complexe de sécurité, puis utiliser le téléporteur. Ce qui vous plaira aussi, détruisez l'ordinateur dans le centre d'administration. Pas d'ordinateur, pas de champ de force.",,,,"О, не ÑомневаюÑÑŒ. Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°, пробериÑÑŒ в охранный ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ Ð¸ иÑпользуй телепортер. И, что тебе должно больше понравитьÑÑ, уничтожь компьютер в центральной админиÑтрации. Ðет компьютера — нет Ñилового полÑ.", +"Great, that sounds easy.",TXT_RPLY0_SCRIPT17_D10612_GREAT,,,,"Großartig, das klingt doch einfach.","Genial, suena fácil.",,"Bien, ça à l'air facile.",,,,"Здорово. Легче Ñказать, чем Ñделать.", +"There's an advantage to destroying the computer, that's where the plans to the tower are kept. Can you say, five finger discount? Heh heh!",TXT_DLG_SCRIPT17_D12128_THERE,,,,"Es hätte sein Gutes, den Computer zu zerstören, denn dort sind auch die Pläne für den Turm. Kannst du sagen: Mitgehen lassen? Hehe!","Hay una ventaja al destruir la computadora, ahí se guardan los planos de la torre. Puedes decir... ¿descuento a cinco dedos? ¡je je!",,Ce serait avantageux de détruire l'ordinateur car c'est là qu'ils gardent les plans de la tour. C'est facile d'avoir ça gratuitement quand on peut juste les prendre comme ça!,,,,"Ð’ уничтожении компьютера еÑÑ‚ÑŒ ещё один плюÑ: планы башни хранÑÑ‚ÑÑ Ñ‚Ð°Ð¼. Можно Ñказать, Ñкидка на вÑе Ñто? Хе-хе!", +Anything else?,TXT_RPLY0_SCRIPT17_D12128_ANYTH,,,,Noch etwas?,¿Algo más?,,Quoi d'autre?,,,,Что-нибудь ещё?, +"Oh well, word has it that the bailey's warehouse received a shipment of maulers, that's the weapon that vaporizes.",TXT_DLG_SCRIPT17_D13644_OHWEL,,,,"Nun, man sagt, dass im Lagerhaus eine Ladung Vernichter abgeliefert wurde, die Waffe die verdampft.","Oh bueno, se dice que el almacén de la muralla ha recibido un envío de trituradores, es el arma que vaporiza.",,Oh. La rumeur court que le dépôt du mur d'enceinte a reçu une cargaison de broyeurs. C'est l'arme qui vaporise les gens.,,,,"Хорошо. ЕÑÑ‚ÑŒ Ñлух, что Ñклад крепоÑти получил партию ИÑÑ‚Ñзателей: оружиÑ, которое «иÑпепелÑет».", +"Is that it, now?",TXT_RPLY0_SCRIPT17_D13644_ISTHA,,,,War es das jetzt?,"Así que sí, ¿eh?","Con que eso es, ¿eh?",Vraiment?,,,,Теперь вÑе?, +Don't you know the meaning of the words Getlost?,TXT_DLG_SCRIPT17_D15160_DONTY,,,,Sagen dir die Worte „Verzieh dich“ etwas?,¿No sabes lo que significa la palabra Piérdete?,,"Vous ne connaîssez pas le sens du mot: ""Dégage?""",,,,Ты не знаешь Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñлова «иÑчезни»?, +Talk to Quincy first. I'm not allowed to help anyone unless he says it's ok.,TXT_DLG_SCRIPT17_D16676_TALKT,,,,"Rede erst mit Quincy. Ich darf mit niemanden reden, solange er nicht sein OK gegeben hat.",Habla con Quincy primero. No se me permite ayudar a nacie a menos que lo diga.,,Parlez à Quincy d'abord. Je ne suis pas autorisé à aider qui que ce soit sans son autorisation.,,,,"Сперва поговори Ñ ÐšÑƒÐ¸Ð½Ñи. Мне не позволено помогать кому-либо, пока он не разрешит.", +How how can I help you today?,TXT_DLG_SCRIPT17_D18192_HOWHO,,,,Wie kann ich dir heute helfen?,¿Cómo puedo ayudarte hoy?,,Comment puis-je vous aider aujourd'hui?,,,,Чем Ñ Ð¼Ð¾Ð³Ñƒ помочь тебе ÑегоднÑ?, +Med patch,TXT_RPLY0_SCRIPT17_D18192_MEDPA,,,,Medizinische Bandage,Parche médico.,,Pansement.,,,,Бинтами, +Here's your patch.,TXT_RYES0_SCRIPT17_D18192_HERES,,,,Hier ist deine Bandage.,Aquí tienes tu parche.,,Voilà votre pansement.,,,,Вот твой набор бинтов., +That is 15 gold my friend.,TXT_RNO0_SCRIPT17_D18192_THATI,,,,"Das macht 15 Gold, mein Freund.","Son 15 de oro, amigo mío.",,"15 pièces pour ça, mon ami.",,,,"Они ÑтоÑÑ‚ 15 золотых, друг.", +Medical kit,TXT_RPLY1_SCRIPT17_D18192_MEDIC,,,,Verbandskasten,Kit médico,,Kit médical.,,,,Ðптечкой, +Here's your medical kit.,TXT_RYES1_SCRIPT17_D18192_HERES,,,,Hier ist dein Verbandskasten,Aquí tienes tu kit médico.,,Voilà votre kit médical.,,,,Вот Ñ‚Ð²Ð¾Ñ Ð°Ð¿Ñ‚ÐµÑ‡ÐºÐ°., +You're a bit low on funds for that.,TXT_RNO1_SCRIPT17_D18192_YOURE,,,,Du hast zu wenig Geld dafür.,Estás un poco bajo de efectivo para eso.,,Vous manquez d'argent pour ça.,,,,Тебе на Ñто не хватает ÑредÑтв., +Field surgery kit,TXT_RPLY2_SCRIPT17_D18192_FIELD,,,,Erste-Hilfe-Kasten,Kit quirúrgico,,Kit de chirurgie.,,,,Медкомплектом, +"One field surgery kit, done.",TXT_RYES2_SCRIPT17_D18192_ONEFI,,,,"Eine Erste-Hilfe-Kasten, kommt sofort.","Un kit quirúrgico, hecho.",,"Un kit de chirurgie, voilà.",,,,Один медкомплект. Держи., +Come back when you have money!,TXT_RNO2_SCRIPT17_D18192_COMEB,,,,"Komm wieder, wenn du etwas Geld hast.",¡Vuelve cuando tengas dinero!,,Revenez quand vous avez des sous!,,,,ВозвращайÑÑ Ñ Ð´ÐµÐ½ÑŒÐ³Ð°Ð¼Ð¸!, +What is it?,TXT_DLG_SCRIPT18_D0_WHATI,,,,Was gibt es?,¿Qué pasa?,,Vous voulez quoi?,,,,Что тебе нужно?, +Just looking around.,TXT_RPLY0_SCRIPT18_D0_JUSTL,,,,Ich schaue mich bloß um.,Solo estoy mirando.,,Je fais juste un tour.,,,,ПроÑто оÑматриваюÑÑŒ., +Just keep out of the way.,TXT_RYES0_SCRIPT18_D0_JUSTK,,,,Sei einfach niemandem im Weg.,Mantente fuera de mi camino.,,Restez hors du chemin.,,,,ПроÑто не путайÑÑ Ð¿Ð¾Ð´ ногами., +The templars will be here soon to pick up their new maulers. If you get in their way you're a dead man.,TXT_DLG_SCRIPT18_D1516_THETE,,,,"Die Templer werden bald hier sein, um ihre neuen Vernichter abzuholen. Wenn du ihnen im Weg bist, dann bist du ein toter Mann.",Los templarios estarán aquí pronto para recoger sus nuevos trituradores. Si te interpones en su camino eres hombre muerto.,,"Les templiers vont venier chercher les nouveaux broyeurs. Si vous les gênez, vous êtes mort.",,,,Храмовники Ñкоро придут Ñюда забрать Ñвои новые иÑÑ‚Ñзатели. ЕÑли попадёшьÑÑ Ð¸Ð¼ на пути — Ñтанешь покойником., +Maulers?,TXT_RPLY0_SCRIPT18_D1516_MAULE,,,,Vernichter?,¿Trituradores?,,Des broyeurs?,,,,ИÑÑ‚Ñзатели?, +The templar's favorite weapon.,TXT_RYES0_SCRIPT18_D1516_THETE,,,The templar's favourite weapon.,Die Lieblingswaffe der Templer.,El arma favorita de los templarios.,,L'arme favorite du templier.,,,,Их любимое оружие., +They came in earlier. That's what all the security's about. I got a chance to look at them when I locked up. Nobody's supposed to go in or out of there until the rest of the platoon comes to claim their weapons.,TXT_DLG_SCRIPT18_D3032_THEYC,,,,"Die sind heute früh hier eingetroffen. Daher all die Wachen. Ich konnte aber mal einen Blick darauf werfen. Niemand darf da rein, bevor die Waffen an die Truppen verteilt worden sind.",Vinieron antes. Para eso toda esta seguridad. Tuve una oportunidad de verlos cuando cerraba. Se supone que nadie puede entrar o salir hasta que el resto del pelotón venga a pedir sus armas.,,Ils sont passés plus tôt. C'est pour ça qu'il y a autant de personnel de sécurité. J'ai eu l'opportunité de les voire quand je suis parti verouiller les accès. Personne n'est sensé entrer ou sortir tant que la section n'a pas fini de récupérer leur armes.,,,,"Их доÑтавили раньше. Вот зачем вÑÑ Ñта охрана. Мне удалоÑÑŒ взглÑнуть на них, когда Ñ Ð·Ð°Ð¿Ð¸Ñ€Ð°Ð» хранилище. Ðикому не позволено входить или выходить, пока веÑÑŒ отрÑд не придёт за Ñвоим оружием.", +This is where you get the plans for the central administration.,TXT_DLG_SCRIPT19_D0_THISI,,,,Dort bekommst du die Pläne für die Hauptverwaltung.,Aquí es donde obtienes los planos de la administración central.,,C'est ici qu evous pouvez récuperer les plans du centre d'administration.,,,,ЗдеÑÑŒ Ñ‚Ñ‹ добудешь Ñхему центральной админиÑтрации., +"I run this place. My job is to build the raw parts needed for the Loremaster's robot designs. If you're not here on official business, then I'm afraid I don't have time to talk.",TXT_DLG_SCRIPT22_D0_IRUNT,,,,"Ich leite dieses Unternehmen. Meine Aufgabe ist es, die Teile für die neuen Roboterdesigns des Wissensmeisters zu konstruieren. Wenn du hier nicht dienstlich hier bist, habe ich keine Zeit für dich.","Yo manejo este sitio. Mi trabajo es contruir las partes necesarias para los diseños de robot del Maestro del Conocimiento. Si no estás aquí por asuntos oficiales, entonces me temo que no tengo tiempo para hablar.",,"Je suis le chef de cet endroit. Mon travail est de faire fabriquer les pièces brutes utilisées pour les robots du Maître des traditions. Si vous n'êtes pas ici en visite officielle, je n'ai pas le temps de vous parler.",,,,"Я здеÑÑŒ главный. ÐœÐ¾Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° — изготавливать детали роботов Ð´Ð»Ñ Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти. ЕÑли Ñ‚Ñ‹ здеÑÑŒ не по Ñлужебным делам, то, боюÑÑŒ, мне некогда Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ болтать.", +I am on official business.,TXT_RPLY0_SCRIPT22_D0_IAMON,,,,Ich bin dienstlich hier.,Estoy por asuntos oficiales.,,Je suis en visite officielle.,,,,Я по Ñлужебным делам., +"So you've spoken with Timothy, I see. He and I have worked together to try to unravel the mysteries of the Order, before it's too late for us all. Maybe you can help us. I've opened the door to the production sector.",TXT_DLG_SCRIPT22_D1516_SOYOU,,,,"Du hast mit Timothy gesprochen, ich verstehe. Er und ich haben zusammengearbeitet und versucht die Mysterien des Ordens ergründen, bevor es für uns alle zu spät ist. Vielleicht kannst du uns helfen. Ich habe die Tür zum Produktionsektor geöffnet.","Así que has ablado con Timothy, ya veo. Él y yo hemos trabajado juntos para intentar desenredar los misterios de la Orden, antes de que sea demasiado tarde para todos nosotros. Tal vez puedas ayudarnos. He abierto la puerta al sector de producción.",,Je vous que vous avez parlé à Timothy. Nous avons travaillé ensemble pour dénouer les mystères de l'Ordre avant qu'il soit trop tard. Peut être que vous pouvez nous aider. J'ai ouvert l'accès vers le secteur de production.,,,,"Итак, Ñ‚Ñ‹ уже поговорил Ñ Ð¢Ð¸Ð¼Ð¾Ñ‚Ð¸. Мы Ñ Ð½Ð¸Ð¼ вмеÑте пытаемÑÑ Ñ€Ð°Ñкрыть тайны Ордена, пока не Ñтало Ñлишком поздно. Возможно, Ñ‚Ñ‹ Ñможешь помочь нам. Я открыл дверь в производÑтвенный Ñектор.", +Do you know what's inside?,TXT_RPLY0_SCRIPT22_D1516_DOYOU,,,,Weißt du was da drin ist?,¿Sabes que hay dentro?,¿Sabes que hay adentro?,Vous savez ce qu'il y à dedans?,,,,"Ты знаешь, что там?", +"It's a top secret area. Not only is the Order breeding some kind of... Creature in there, I've seen with my own eyes a strange artifact called a Talisman. nobody's allowed near it. Rumor is that it holds great power if united with two others of its kind.",TXT_DLG_SCRIPT22_D3032_ITSAT,,,,"Das ist alles streng geheim. Dort wird nicht nur irgendeine Art von... Kreatur vom Orden gezüchtet, sondern es gibt dort auch ein merkwürdiges Artefakt, ein Talisman. Keiner darf in auch nur in die Nähe davon. Gerüchten zufolge erhält man große Macht, wenn man es mit zwei anderen vereint.","Es un área de alto secreto. No solo está la Orden criando una especie de... Criatura ahí, he visto con mis propios ojos un extraño artefacto llamado Talismán. No se permite a nadie acercarse a él. Se rumorea que posee un gran poder si se reune con otros dos de su tipo.",,C'est une zone tope secrète. L'Ordre essaie de.. faire une sorte de créature là dedans. J'ai vu avec mes yeux un artéfact étrange qu'ils appellent un Talisman. Personne n'a le droit de l'approcher. Les rumeurs disent qu'il contient un pouvoir phénoménal si il est réuni aux deux autres du même type.,,,,"Это Ñовершенно Ñекретно. Во-первых, Орден разводит там каких-то... ÑущеÑтв. Во-вторых, Ñ Ñвоими глазами видел Ñтранный артефакт, «ТалиÑман». К нему никого и близко не подпуÑкают. ГоворÑÑ‚, что в нём Ð²ÐµÐ»Ð¸ÐºÐ°Ñ Ñила, еÑли объединить его Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸.", +I suppose you want this thing?,TXT_RPLY0_SCRIPT22_D3032_ISUPP,,,,"Ich denke mal, du willst dieses Ding haben?",¿Supongo que quieres esto?,,Je suppose que vous le voulez?,,,,"Похоже, Ñ‚Ñ‹ и Ñам хочешь Ñтот артефакт?", +"No! If you can find it, it's yours to keep. Maybe you can use it to help free us from our oppression. I'd wish you luck, but you're going to need a lot more than that if you go in there...",TXT_DLG_SCRIPT22_D4548_NOIFY,,,,"Nein! Wenn du es findest, darfst du es behalten. Vielleicht kannst du es benutzen, um uns von unserer Unterdrückung zu befreien. Ich würde dir Glück wünschen, aber du wirst viel mehr brauchen, wenn du dort hinein gehst.","¡No! Si lo encuentras, quédatelo. Tal vez puedas usarlo para ayudar a librarnos de nuestra opresión. Te desearía suerte, pero vas a necesitar más que eso si vas ahí...",,"Non! Si vous le trouvez, gardez le pour vous. Peut être qu'il vous aidera à nous débarasser de nos oppresseurs.. Je vous souhaiterais bonne chance, mais vous allez avoir besoin de beaucoup plus que ça si vous y entrez..",,,,"Ðет! ЕÑли Ñ‚Ñ‹ его найдёшь, он твой. Может быть, он поможет тебе оÑвободить Ð½Ð°Ñ Ð¾Ñ‚ гнёта. Я бы пожелал тебе удачи, но, еÑли Ñ‚Ñ‹ пойдёшь туда, проÑтой удачи будет недоÑтаточно...", +What's all this about the past?,TXT_RPLY0_SCRIPT22_D4548_WHATS,,,,Was ist dieses ganze Gerede über die Vergangenheit?,¿Qué es todo esto sobre el pasado?,,Qu'est-ce que j'entends au sujet du passé?,,,,Что такого творилоÑÑŒ здеÑÑŒ в прошлом?, +"You've surely seen the other ruins nearby. It seems that the Comet which crashed on our planet is actually a space ship, and believe it or not, it originated on this very world a long time ago.",TXT_DLG_SCRIPT22_D6064_YOUVE,,,,"Du hast doch sicherlich die Ruinen hier in der Nähe gesehen. Es scheint als wäre der Komet, der hier auf dem Planeten aufgeschlagen ist, eigentlich ein Raumschiff, und ob du es glaubst oder nicht, aber es kam vor langer Zeit sogar von dieser Welt.","Seguramente has visto las otras ruinas cercanas. Al parecer el cometa que se estrelló sobre nuestro planeta es en realidad una nave espacial, y lo creas o no, es originaria de este mundo hace mucho tiempo.",,"Vous avez sans doute vu toutes ces ruines aux alentours. Il semble que la comète qui s'est écrasée sur notre planète était en fait un vaisseau spatial, et.. du moins si vous y croyez, venait aussi de notre planète, il y a très, très longtemps.",,,,"Скорее вÑего, Ñ‚Ñ‹ уже видел Ñти руины. Тот метеорит, который упал на нашу планету, — на Ñамом деле Ñто коÑмичеÑкий корабль. Веришь или нет, его поÑтроили на Ñтой Ñамой планете, давным-давно.", +"So the spectres, the One God...",TXT_RPLY0_SCRIPT22_D6064_SOTHE,,,,"Also die Schemen, der Eine Gott...","O sea que los espectros, el Dios Único...",,"Donc, les Spectres, le Seul Dieu..",,,,Так фантомы и Единый Бог..., +"They are creatures who once ruled this world and are bent on consuming its life. The ancients managed to seal them away, but gave their lives in the process. I'm afraid that's all I know.",TXT_DLG_SCRIPT22_D7580_THEYA,,,,"Das sind Wesen, die einst diese Welt regiert haben und sie ausbeuten wollen. Die Alten haben es geschafft, sie wegzusperren aber verloren ihr Leben dabei. Tut mir leid, das ist alles, was ich weiß","Son criaturas que una vez dominaron este mundo e insisten en consumir su vida. Los antiguos consiguieron sellarlos, pero dieron sus vidas en el proceso. Me temo que eso es todo lo que sé.",,"Ce sont des créatures qui régnaient sur cette planète il y a longtemps, et étaient bornées à détruire toute vie sur sa surface, mais les anciens ont réussi à les sceller. Ils sont morts pour cela, j'ai peur que ce soit tout ce que je sais.",,,,"Эти ÑущеÑтва когда-то правили Ñтим миром и ÑтремилиÑÑŒ выжать из него вÑе Ñоки. Древние Ñмогли запечатать и изгнать их, пожертвовав Ñвоими жизнÑми. Больше, боюÑÑŒ, Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не знаю.", +Thanks... I'll do what I can.,TXT_RPLY0_SCRIPT22_D7580_THANK,,,,Danke. Ich werde tun was ich kann.,Gracias... Haré lo que pueda.,,Merci.. Je vais faire ce que je peux.,,,,"СпаÑибо... Я Ñделаю вÑÑ‘, что Ñмогу.", +"Godspeed, friend.",TXT_DLG_SCRIPT22_D9096_GODSP,,,,"Viel Erfolg, Freund.","Buena suerte, amigo.",,"Bonne chance, mon ami.",,,,"Удачи, друг.", +Talk to the master smithy if you have questions. All I do is put labels on the crates.,TXT_DLG_SCRIPT22_D10612_TALKT,,,,"Sprich mit dem Meister Smithy, wenn du Fragen hast. Ich versehe die Kisten nur mit Etiketten.",Habla con el maestro herrero si tienes preguntas. Todo lo que hago yo es etiquetar las cajas.,,"Parlez au maître forgeron si vous avez des questions. Tout ce que je fais, c'est mettre des étiquettes sur des caisses.",,,,"ЕÑли у Ñ‚ÐµÐ±Ñ ÐµÑÑ‚ÑŒ какие-то вопроÑÑ‹, обратиÑÑŒ к маÑтеру. Я проÑто подпиÑываю Ñщики.", +"What can I get you, citizen?",TXT_DLG_SCRIPT23_D0_WHATC,,,,"Was darf es sein, Bürger?","¿Qué puedo ofrecerte, ciudadano?",,"Qu'est-ce que je peux faire pour vous, citoyen?",,,,"Что Ñ Ð¼Ð¾Ð³Ñƒ тебе предложить, гражданин?", +Ammo box,TXT_RPLY0_SCRIPT23_D0_AMMOB,,,,Munitionsschachtel,Caja de municiones,,Boîte de munitions.,,,,Коробку патронов, +Here's your ammo.,TXT_RYES0_SCRIPT23_D0_HERES,,,,Hier ist deine Munition.,Aquí tienes tus municiones.,,Voilà vos munitions.,,,,Вот твои патроны., +You don't have enough for that!,TXT_RNO0_SCRIPT23_D0_YOUDO,,,,Du hast nich genug Gold!,¡No tienes suficiente para eso!,,Vous n'avez pas assez d'argent.,,,,У Ñ‚ÐµÐ±Ñ Ð½ÐµÐ´Ð¾Ñтаточно денег!, +Crate of missiles,TXT_RPLY1_SCRIPT23_D0_CRATE,,,,Raketenkiste,Caja de misiles,,Caisse de missiles.,,,,Коробку ракет, +"Here, citizen.",TXT_RYES1_SCRIPT23_D0_HEREC,,,,"Hier, Bürger.","Toma, ciudadano.",,"Voilà, citoyen.",,,,"Вот, гражданин.", +"It's 85 gold, citizen!",TXT_RNO1_SCRIPT23_D0_ITS85,,,,"Das macht 85 Gold, Bürger!","¡Son 85 de oro, ciudadano!",,"Cela coûte 85 pièces, citoyen!",,,,"Это Ñтоит 85 золотых, гражданин!", +H-E grenades,TXT_RPLY2_SCRIPT23_D0_HEGRE,,,,HE-Granaten,Granadas HE,,Grenades explosives.,,,,ОÑколочные гранаты, +Here are your grenades.,TXT_RYES2_SCRIPT23_D0_HEREA,,,,Hier sind deine Granaten.,Aquí tienes tus granadas.,,Voilà vos grenades.,,,,Забирай Ñвои гранаты., +"They are 100 gold, friend.",TXT_RNO2_SCRIPT23_D0_THEYA,,,,"Sie kosten 100 Gold, mein Freund.","Son 100 de oro, amigo.",,"Cela coûte 100 pièces, mon ami.",,,,"Они по 100 золотых, друг.", +Energy pod,TXT_RPLY3_SCRIPT23_D0_ENERG,,,,Energiezelle.,Vaina de energía,,Cellule énergetique.,,,,ЭнергоÑчейку, +Here you are.,TXT_RYES3_SCRIPT23_D0_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Получай., +"That's 135 gold, sorry.",TXT_RNO3_SCRIPT23_D0_THATS,,,,"Entschuldigung, aber das macht 135 Gold.","Son 135 de oro, lo siento.",,"Cela coûte 135 pièces, désolé.",,,,Она Ñтоит 135 золотых. Извини., +What can I assist you with?,TXT_DLG_SCRIPT23_D1516_WHATC,,,,Wie kann ich dir behilflich sein?,¿Con qué puedo ayudarte?,,Commen puis-je vous assister?,,,,Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?, +Leather armor,TXT_RPLY0_SCRIPT23_D1516_LEATH,,,Leather armour,Lederrüstung,Armadura de cuero,,Armure de cuir.,,,,Кожаной бронёй, +Here it is citizen.,TXT_RYES0_SCRIPT23_D1516_HEREI,,,,"Hier ist sie, Bürger.","Aquí está, ciudadano.",,"Voilà pour vous, citoyen.",,,,"Вот она, гражданин.", +There's no charity given here!,TXT_RNO0_SCRIPT23_D1516_THERE,,,,Hier gibt es nichts umsonst!,¡Aquí no damos limosna!,,On n'est pas une charité ici.,,,,Я благотворительноÑтью не занимаюÑÑŒ!, +Metal armor,TXT_RPLY1_SCRIPT23_D1516_METAL,,,Metal armour,Metallrüstung,Armadura de metal,,Armure de métal.,,,,МеталличеÑкой бронёй, +An excellent choice citizen.,TXT_RYES1_SCRIPT23_D1516_ANEXC,,,,"Eine exzellente Wahl, Bürger.","Excelente elección, ciudadano.",,"Un excellent choix, citoyen.",,,,"Отличный выбор, гражданин.", +You don't have enough for this!,TXT_RNO1_SCRIPT23_D1516_YOUDO,,,,Du hast nich genug Gold dafür!,¡No tienes suficiente para esto!,,Vous n'avez pas assez d'argent.,,,,У Ñ‚ÐµÐ±Ñ Ð½ÐµÐ´Ð¾Ñтаточно денег!, +Environmental suit,TXT_RPLY2_SCRIPT23_D1516_ENVIR,,,,Schutzanzug.,Traje ambiental,,Combinaison Hazmat.,,,,Защитным коÑтюмом, +Here you are.,TXT_RYES2_SCRIPT23_D1516_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +"No money, no suit.",TXT_RNO2_SCRIPT23_D1516_NOMON,,,,"Kein Geld, kein Anzug.",Sin dinero no hay traje.,,"Pas d'argent, pas de combi.",,,,"Ðет денег, нет коÑтюма.", +Something different?,TXT_RPLY3_SCRIPT23_D1516_SOMET,,,,Irgendetwas anderes?,¿Algo distinto?,,Quelque chose d'autre?,,,,Что-нибудь ещё?, +Go through the door down the hall.,TXT_RYES3_SCRIPT23_D1516_GOTHR,,,,Geh durch die Tür zur Halle.,Ve por la puerta pasillo abajo.,,"Passez par la porte, vers le hall.",,,,"Дальше по коридору, за дверью.", +You must pay if you want to play.,TXT_RNO3_SCRIPT23_D1516_YOUMU,,,,"Du musst bezahlen, wenn du spielen willst.",Debes pagar si quieres jugar.,,Vous devez payer si vous voulez jouer.,,,,"Любишь играть, люби и платить!", +What can I get you?,TXT_DLG_SCRIPT23_D3032_WHATC,,,,Was darf es sein?,¿Qué puedo ofrecerte?,,Que puis-je pour vous?,,,,Что Ñ Ð¼Ð¾Ð³Ñƒ тебе предложить?, +Leather armor,TXT_RPLY0_SCRIPT23_D3032_LEATH,,,Leather armour,Lederrüstung,Armadura de cuero,,Armure de cuir.,,,,Кожаную броню, +"Here it is, citizen.",TXT_RYES0_SCRIPT23_D3032_HEREI,,,,"Hier ist sie, Bürger.","Aquí está, ciudadano.",,"Voilà pour vous, citoyen.",,,,"Вот она, гражданин.", +There's no charity given here!,TXT_RNO0_SCRIPT23_D3032_THERE,,,,Hier gibt es nichts umsonst!,¡Aquí no damos limosna!,,On n'est pas une charité ici.,,,,Я благотворительноÑтью не занимаюÑÑŒ!, +Metal armor,TXT_RPLY1_SCRIPT23_D3032_METAL,,,Metal armour,Metallrüstung,Armadura de metal,,Armure de métal.,,,,МеталличеÑкую броную, +An excellent choice citizen.,TXT_RYES1_SCRIPT23_D3032_ANEXC,,,,"Eine exzellente Wahl, Bürger.","Excelente elección, ciudadano.",,"Un excellent choix, citoyen.",,,,"Отличный выбор, гражданин.", +You don't have enough for this!,TXT_RNO1_SCRIPT23_D3032_YOUDO,,,,Du hast nich genug Gold dafür!,¡No tienes suficiente para esto!,,Vous n'avez pas assez d'argent.,,,,У Ñ‚ÐµÐ±Ñ Ð½ÐµÐ´Ð¾Ñтаточно денег!, +Environmental suit,TXT_RPLY2_SCRIPT23_D3032_ENVIR,,,,Schutzanzug.,Traje ambiental,,Combinaison Hazmat.,,,,Защитный коÑтюм, +Here you are.,TXT_RYES2_SCRIPT23_D3032_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +"No money, no suit.",TXT_RNO2_SCRIPT23_D3032_NOMON,,,,"Kein Geld, kein Anzug.",Sin dinero no hay traje.,,"Pas d'argent, pas de combi.",,,,"Ðет денег, нет коÑтюма.", +How can I help you today?,TXT_DLG_SCRIPT23_D4548_HOWCA,,,,Wie kann ich dir heute weiterhelfen?,¿Cómo puedo ayudarte hoy?,,Comment puis-je vous aider aujourd'hui?,,,,Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь ÑегоднÑ?, +Med patch,TXT_RPLY0_SCRIPT23_D4548_MEDPA,,,,Medizinische Bandage,Parche médico.,,Pansement.,,,,Бинтами, +Here's your patch.,TXT_RYES0_SCRIPT23_D4548_HERES,,,,Hier ist deine Bandage.,Aquí tienes tu parche.,,Voilà votre pansement.,,,,Вот твой набор бинтов., +That is 15 gold my friend.,TXT_RNO0_SCRIPT23_D4548_THATI,,,,"Das macht 15 Gold, mein Freund.","Son 15 de oro, amigo mío.",,"15 pièces pour ça, mon ami.",,,,"Они ÑтоÑÑ‚ 15 монет, друг.", +Medical kit,TXT_RPLY1_SCRIPT23_D4548_MEDIC,,,,Verbandskasten,Kit médico,,Kit médical.,,,,Ðптечкой, +Here's your medical kit.,TXT_RYES1_SCRIPT23_D4548_HERES,,,,Hier ist dein Verbandskasten,Aquí tienes tu kit médico.,,Voilà votre kit médical.,,,,Вот Ñ‚Ð²Ð¾Ñ Ð°Ð¿Ñ‚ÐµÑ‡ÐºÐ°., +Your a bit low on funds for that.,TXT_RNO1_SCRIPT23_D4548_YOURA,,,,Du hast zu wenig Geld dafür.,Estás un poco bajo de efectivo para eso.,,Vous manquez d'argent pour ça.,,,,Тебе на Ñто не хватает ÑредÑтв., +Field surgery kit,TXT_RPLY2_SCRIPT23_D4548_FIELD,,,,Erste-Hilfe-Kasten,Kit quirúrgico,,Kit de chirurgie.,,,,Медкомплектом, +One field surgery kit.,TXT_RYES2_SCRIPT23_D4548_ONEFI,,,,"Eine Erste-Hilfe-Kasten, kommt sofort.",Un kit quirúrgico.,,"Un kit de chirurgie, voilà.",,,,Один медкомплект. Держи., +Come back when you have money!,TXT_RNO2_SCRIPT23_D4548_COMEB,,,,"Komm wieder, wenn du etwas Geld hast.",¡Vuelve cuando tengas dinero!,,Revenez quand vous avez des sous?,,,,ВозвращайÑÑ Ñ Ð´ÐµÐ½ÑŒÐ³Ð°Ð¼Ð¸!, +"Hello friend, what can I get you?",TXT_DLG_SCRIPT23_D6064_HELLO,,,,"Hallo Freund, was darf es sein?","Hola amigo, ¿Qué puedo ofrecerte?",,"Bienvenu, l'ami, que puis-je pour vous?",,,,"Привет, друг. Могу Ñ Ñ‚ÐµÐ±Ðµ что-нибудь предложить?", +Information,TXT_RPLY0_SCRIPT23_D6064_INFOR,,,,Informationen,Información,,Des infos.,,,,Информацию, +"I've never seen anyone go in or out of the factory, the forcefield's always up.",TXT_RYES0_SCRIPT23_D6064_IVENE,,,,"Ich habe noch niemanden gesehen, der die Fabrik betreten oder verlassen hat. Das Kraftfeld ist immer aktiv.","Nunca he visto a nadie entrar o salir de la fábrica, el campo de fuerza siempre está encendido.",,Je n'ai jamais vu quelqu'un rentrer dans l'usine. Les champs de force sont toujours en ligne.,,,,"Ðикогда не видел, чтобы кто-нибудь приходил на фабрику или уходил Ñ Ð½ÐµÑ‘. Поле вÑегда включено.", +"No money, no info.",TXT_RNO0_SCRIPT23_D6064_NOMON,,,,"Kein Geld, keine Informationen.",Sin dinero no hay información.,,"Pas d'argent, pas d'infos.",,,,"Ðет денег, нет Ñведений.", +"Yes, what would you like?",TXT_DLG_SCRIPT23_D7580_YESWH,,,,"Ja, was darf es sein?","Sí, ¿Qué quieres?",,"Oui, que voulez-vous?",,,,Да? Что Ñ‚Ñ‹ хотел?, +More info.,TXT_RPLY0_SCRIPT23_D7580_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,Ещё Ñведений., +The factory's built on the comet's impact site. I don't think it's by chance.,TXT_RYES0_SCRIPT23_D7580_THEFA,,,,"Die Fabrik wurde dort gebaut, wo der Komet eingeschlagen ist. Ich denke nicht, dass das Zufall ist.",La fábrica está construida sobre el lugar de impacto del cometa. No creo que sea casualidad.,,L'usine est construite sur le site d'impact de la comète. Je ne crois pas que c'est une coïncidence.,,,,"Фабрика была поÑтроена в кратере от Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚ÐµÐ¾Ñ€Ð¸Ñ‚Ð°. Ðе думаю, что Ñто ÑлучайноÑÑ‚ÑŒ.", +"Come on, it's a measly 5 gold.",TXT_RNO0_SCRIPT23_D7580_COMEO,,,,"Komm schon, es sind doch nur 5 mickrige Goldstücke.","Venga, solo 5 míseras monedas de oro.",,"Allez, ça ne coûte que 5 pièces!",,,,"Ðу же, вÑего-то 5 золотых.", +"Hello again, what'll it be?",TXT_DLG_SCRIPT23_D9096_HELLO,,,,Willkommen zurück. Was darf es sein?,"Hola otra vez, ¿Qué va a ser?",,"Rebonjour, que puis-je pour vous?",,,,И Ñнова привет. Что на Ñтот раз?, +More info.,TXT_RPLY0_SCRIPT23_D9096_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,Ещё информацию., +The factory closed when the Order unveiled its new horror: the Inquisitor.,TXT_RYES0_SCRIPT23_D9096_THEFA,,,,"Die Fabrik wurde geschlossen, als der Orden seinen neuesten Horror enthült hat: Den Inquisitor.",La fábrica cerró cuando la Orden desveló su nuevo horror: el inquisidor.,,"L'usine a été fermée quand l'Ordre a révélé sa nouvelle atrocité, L'inquisiteur.",,,,"Фабрика закрылаÑÑŒ, когда Орден показал Ñвоё новое Ñтрашилище — инквизитора.", +5 gold please.,TXT_RNO0_SCRIPT23_D9096_5GOLD,,,,"5 Gold, bitte.",5 de oro por favor.,,"5 pièces, s'il vous plaît.",,,,"5 золотых, пожалуйÑта.", +"That's all I know. Even bartenders run out of stuff to say, sorry.",TXT_DLG_SCRIPT23_D10612_THATS,,,,"Das ist alles was ich weiß. Selbst ein Barkeeper hat irgendwann keine Neugikeiten mehr, tut mir Leid.","Eso es todo lo que sé. Incluso los taberneros se quedan sin cosas que decir, lo siento.",,"C'est tout ce que je sais. Même les barmans peuvent arriver à court d'infos, désolé.",,,,"Это вÑе, что Ñ Ð·Ð½Ð°ÑŽ. Даже у хозÑев таверн заканчиваютÑÑ Ñ‚ÐµÐ¼Ñ‹ Ð´Ð»Ñ Ð±Ð¾Ð»Ñ‚Ð¾Ð²Ð½Ð¸, увы.", +Hello.,TXT_DLG_SCRIPT23_D12128_HELLO,,,,Hallo.,Hola.,,Bonjour.,,,,Привет., +What are you doing?,TXT_RPLY0_SCRIPT23_D12128_WHATA,,,,Was machst du?,¿Qué estás haciendo?,,Qu'est-ce que vous faites?,,,,Чем Ñ‚Ñ‹ занимаешьÑÑ?, +"I'm doing stuff, go away!",TXT_RYES0_SCRIPT23_D12128_IMDOI,,,,"Ich mach' halt was, geh weg!","Estoy haciendo cosas, ¡Lárgate!",,"Je suis occupé, laissez-moi tranquille!",,,,Ерундой вÑÑкой. Отвали!, +"Now, what can I help you with?",TXT_DLG_SCRIPT23_D13644_NOWWH,,,,"Nun, wie kann ich dir weiterhelfen?","Ahora, ¿En qué puedo ayudarte?",,"Bon, que puis-je pour vous?",,,,"Итак, чем Ñ Ð¼Ð¾Ð³Ñƒ быть тебе полезен?", +Shadow armor?,TXT_RPLY0_SCRIPT23_D13644_SHADO,,,Shadow armour?,Schattenrüstung?,¿Armadura de sombra?,,Armure des ombres?,,,,Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ?, +"Ahh, to be heard, but not seen!",TXT_RYES0_SCRIPT23_D13644_AHHTO,,,,"Ah, um gehört zu werden, aber ungesehen zu bleiben.","Ah, ¡para ser oído, pero no visto!",,"Ah, à entendre, mais pas à voir!",,,,"ÐÑ…, чтобы быть уÑлышанным, но не увиденным!", +"Get out of here, come back when you have some cash.",TXT_RNO0_SCRIPT23_D13644_GETOU,,,,"Verzieh dich, komm wieder, wenn du etwas Geld hast.","Vete de aquí, vuelve cuando tengas algo de efectivo.",,"Sortez de là, revenez quand vous avez de l'argent!",,,,"ВыметайÑÑ Ð²Ð¾Ð½, вернешьÑÑ, когда раздобудешь наличноÑти.", +"Thank deus you got here. To enter the factory you need a key. We stole it but our agent is missing in the web of catacombs under the Order's stronghold. I have sent ten good men into those tunnels to find him, and none have returned. Something is down there!",TXT_DLG_SCRIPT23_D15160_THANK,,,,"Deus sei dank bist du hier. Um die Fabrik zu betreten, brauchst du einen Schlüssel. Wir haben ihn gestohlen, aber unser Agent ist in den Irrwegen der Katakomben unter der Festung des Ordens verschollen. Ich habe zehn gute Männer da hinunter geschickt um ihn zu finden, aber niemand ist zurückgekehrt. Irgendetwas ist da unten!","Gracias a deus que estás aquí. Para entrar en la fábrica necesitas una llave. La robamos, pero nuestro agente está perdido en la red de catacumbas bajo la fortaleza de la Orden. He enviado diez buenos hombres a esos túneles para encontrarlo, y ninguno ha regresado. ¡Hay algo ahí abajo!","Gracias a deus que estás aquí. Para entrar en la fábrica necesitas una llave. La robamos, pero nuestro agente está perdido en la red de catacumbas debajo de la fortaleza de la Orden. He enviado diez buenos hombres a esos túneles para encontrarlo, y ninguno ha regresado. ¡Hay algo ahí abajo!","Merci Dieu, vous êtes là. Pour entrer dans l'usine, il vous faut une clé. On l'a volé, mais notre agent a disparu dans le dédale de catacombes sous la forteresse de l'Ordre. On a envoyé dix hommes dans ces tunnels pour le retrouver mais personne n'est revenu. Il doit y avoir quelque chose, là dedans!",,,,"Хвала гоÑподу, Ñ‚Ñ‹ добралÑÑ Ñюда. Тебе нужен ключ, чтобы проникнуть на фабрику. Мы выкрали его, но наш агент пропал в Ñети катакомб под крепоÑтью Ордена. Чтобы разыÑкать его, Ñ Ð¿Ð¾Ñлал в Ñти туннели деÑÑÑ‚ÑŒ хороших бойцов, и ни один не вернулÑÑ. Там внизу что-то еÑÑ‚ÑŒ!", +What is it? Human or... ?,TXT_RPLY0_SCRIPT23_D15160_WHATI,,,,Was ist es? Mensch oder...?,¿Qué es? ¿Humano ó...?,,"Qu'est-ce que c'est? Un humain, où...",,,,Что Ñто? Человек или...?, +"Not. Definitely not. Whatever it is, you must fight it to retrieve the key. I'll open the catacombs' entrance. When you've got it, the factory is next to the mines. Hurry, each second counts.",TXT_DLG_SCRIPT23_D16676_NOTDE,,,,"Nein. Definitiv nicht. Was auch immer es ist, du musst es bekämpfen, um an den Schlüssel zu kommen. Ich werde den Eingang zu den Katakomben öffnen. Wenn du ihn hast, die Fabrik ist direkt neben den Minen. Beeil dich, jede Sekunde zählt.","No. Definitivamente no. Sea lo que sea, debes luchar contra ello para recuperar la llave. Abriré la entrada a las catacumbas. Cuando la tengas, la fábrica está junto a las minas. Date prisa, cada segundo cuenta.","No. Definitivamente no. Sea lo que sea, debes luchar contra eso para recuperar la llave. Abriré la entrada a las catacumbas. Cuando la tengas, la fábrica está junto a las minas. Date prisa, cada segundo cuenta.","Non, absolument pas. Je ne sais pas ce que c'est, mais il faudra s'en débarasser pour récupérer la clé. Je vais ouvrir l'entrée des catacombes. Quand vous êtes à l'intérieur, l'usine est près des ruines. Vite, chaque seconde compte.",,,,"Ðет. Определённо нет. Что бы Ñто ни было, Ñ‚Ñ‹ должен ÑразитьÑÑ Ñ Ð½Ð¸Ð¼, чтобы заполучить ключ. Я открою ворота в катакомбы. Когда добудешь его, путь на фабрику лежит через шахты. ТоропиÑÑŒ. Дорога ÐºÐ°Ð¶Ð´Ð°Ñ Ñекунда.", +"Something inhuman, eh?, great.",TXT_RPLY0_SCRIPT23_D16676_SOMET,,,,Irgendetwas unmenschliches? Na großartig.,"Algo inhumano, ¿eh?, genial.",,"Quelque chose d'inhumain, hein? Parfait.",,,,Что-то иное? ПроÑто отлично., +You're wasting time and lives! Move!,TXT_DLG_SCRIPT23_D18192_YOURE,,,,Du verschwendest Zeit und Leben! Beweg dich!,¡Estás perdiendo tiempo y vidas! ¡Muévete!,,Vous perdez votre temps et des vies! Bougez!,,,,Ты тратишь Ð²Ñ€ÐµÐ¼Ñ Ð¸ жизни! ШевелиÑÑŒ!, +Can I be of more help?,TXT_DLG_SCRIPT23_D10612_CANIB,,,,Kann ich dir sonst noch irgendwie helfen?,¿Puedo ser de más ayuda?,,Je peux vous aider?,,,,Могу ли Ñ Ñ‡ÐµÐ¼-нибудь помочь?, +More info.,TXT_RPLY0_SCRIPT23_D10612_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,Информацией., +Look for Timothy. I've heard he knows some of the Order's secrets.,TXT_RYES0_SCRIPT23_D10612_LOOKF,,,,"Suche Timothy. Ich habe gehört, das er etwas über die Geheimnisse des Ordens weiß.",Busca a Timothy. He oído que sabe algo sobre los secretos de la Orden.,,"Cherchez Timothy, j'entends qu'il sait des secrets de l'Ordre.",,,,"Ðайди Тимоти. Я Ñлышал, он знает какие-то Ñекреты Ордена.", +Just another 5 gold.,TXT_RNO0_SCRIPT23_D10612_JUSTA,,,,Nur 5 weitere Goldstücke.,Solo otros 5 de oro.,,Juste 5 pièces.,,,,Ð’Ñего лишь ещё 5 золотых!, +"That's all I know. Even bartenders run out of stuff to say, sorry.",TXT_DLG_SCRIPT23_D12128_THATS,,,,"Das ist alles was ich weiß. Selbst ein Wirt hat irgendwann keine Neugikeiten mehr, tut mir Leid.","Eso es todo lo que sé. Incluso los taberneros se quedan sin cosas que decir, lo siento.",,"C'est tout ce que je sais. Même les barmans peuvent arriver à court d'infos, désolé.",,,,"Это вÑе, что Ñ Ð·Ð½Ð°ÑŽ. Даже у хозÑев таверн заканчиваютÑÑ Ñ‚ÐµÐ¼Ñ‹ Ð´Ð»Ñ Ð±Ð¾Ð»Ñ‚Ð¾Ð²Ð½Ð¸, увы.", +Hello.,TXT_DLG_SCRIPT23_D13644_HELLO,,,,Hallo.,Hola.,,Bonjour.,,,,Привет., +What are you doing?,TXT_RPLY0_SCRIPT23_D13644_WHATA,,,,Was machst du?,¿Qué estás haciendo?,,Qu'est-ce que vous faites?,,,,Чем Ñ‚Ñ‹ занимаешьÑÑ?, +"I'm doing stuff, go away!",TXT_RYES0_SCRIPT23_D13644_IMDOI,,,,"Ich mach' halt was, geh weg!","Estoy haciendo cosas, ¡Lárgate!",,"Je suis occupé, laissez-moi tranquille!",,,,Ерундой вÑÑкой. Отвали!, +"If you have this much time to waste, see if you can find the blue chalice. My studies on the Order suggest they have hidden it somewhere in the manufacturing sector of the factory. This artifact would be of great value to me, so, bring it to me, and I'll help you out.",TXT_DLG_SCRIPT23_D15160_IFYOU,,,,"Wenn du so viel Zeit zu verschwenden hast, dann sieh zu, dass du den blauen Kelch finden kannst. Meine Studien über den Orden deuten an, dass er irgendwo im Produktionssektor der Fabrik versteckt sein muss. Dieses Artefakt würde mir viel bedeuten, also bring es mir, und ich werde dir weiterhelfen.","Si tienes tanto tiempo que perder, mira a ver si puedes encontrar el cáliz azul. Mis estudios sobre la Orden sugieren que lo tienen oculto en alguna parte del sector de producción de la fábrica. Este artefacto sería de gran valor para mi, así que, tráemelo, y te ayudaré.","Si tienes tanto tiempo que perder, ve si puedes encontrar el cáliz azul. Mis estudios sobre la Orden sugieren que lo tienen oculto en alguna parte del sector de producción de la fábrica. Este artefacto sería de gran valor para mi, así que, tráemelo, y te ayudaré.","Si vous avez autant de temps à perdre, allez voir si vous pouvez récupérer le Calice Bleu. Mes études sur l'Ordre suggèrent qu'ils l'ont caché dans le secteur de manufacture de l'usine. Cet artéfact serait de grande valeur pour moi, amenez-le moi et je vous aiderai.",,,,"ЕÑли тебе не жаль времени, найди Ñинюю чашу. Я изучал Орден и узнал, что они ÑпрÑтали её где-то в обрабатывающем Ñекторе фабрики. Мне очень нужен Ñтот артефакт. ПринеÑи его мне, и Ñ Ð¿Ð¾Ð¼Ð¾Ð³Ñƒ тебе.", +"You found the blue chalice! Ok, give it to me first, and we'll trade.",TXT_DLG_SCRIPT23_D16676_YOUFO,,,,"Du hast den blauen Kelch gefunden! Ok, erst gibst du ihn mir, dann handeln wir.","¡Has encontrado el cáliz azul! Ok, dámelo primero, y negociamos.",,"Vous avez le Calice Bleu! Ok, donnez le moi et nous échangerons.",,,,"Ты нашёл Ñинюю чашу! Отдай её мне, и Ñ Ð¸Ñполню Ñвою чаÑÑ‚ÑŒ договора.", +"Take it, it's bad luck anyway.",TXT_RPLY0_SCRIPT23_D16676_TAKEI,,,,"Nimm ihn, er bringt sowieso Unglück.","Toma, de todos modos da mala suerte.",,"Gardez le, je parie qu'il file malchance.",,,,Держи. Она вÑÑ‘ равно приноÑит неÑчаÑтье., +"Screw you, I'm keeping it.",TXT_RPLY1_SCRIPT23_D16676_SCREW,,,,"Ach, was soll's. Ich behalte ihn.","Que te zurzan, me lo quedo.","Al diablo, me lo quedo.","Allez vous faire voir, il est à moi maintenant.",,,,Пошёл Ñ‚Ñ‹! Я оÑтавлю её Ñебе., +Then I'm not giving you anything. Get lost!,TXT_RYES1_SCRIPT23_D16676_THENI,,,,Dann bekommst du auch nichts von mir. Verzieh dich!,Entonces no te voy a dar nada. ¡Piérdete!,,"Rien pour vous, alors, dégagez!",,,,Тогда Ñ Ñ‚ÐµÐ±Ðµ ничего не Ñкажу. УбирайÑÑ!, +Locate the forge. The information I just gave you should help you enter a secretive sector of the factory. One of the forge workers can open the door.,TXT_DLG_SCRIPT23_D18192_LOCAT,,,,"Finde die Schmiede. Die Informationen, die ich dir gegeben habe, sollten dir helfen einen geheimen Sektor der Fabrik zu betreten. Einer der Schmiedearbeiter kann dir helfen die Tür zu öffnen.",Localiza la forja. La información que te he dado debería ayudarte a entrar a un sector secreto de la fábrica. Uno de los trabajadores de la forja puede abrir la puerta.,,Localisez la forge. L'information que je vous ai donnée devrait vous aider à entrer dans une section secrète de l'usine. L'un des travailleurs de la forge peut ouvrir la porte pour vous.,,,,"Ðайди кузню. СведениÑ, которые Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð» тебе, помогут тебе пройти в Ñекретный Ñектор фабрики. Один из работников в кузне откроет тебе дверь.", +What can I find there?,TXT_RPLY0_SCRIPT23_D18192_WHATC,,,,Was kann ich dort finden?,¿Qué puedo encontrar allí?,,Qu'est ce que je peux y trouver?,,,,Что там находитÑÑ?, +My research suggests that some dark power from the ancient past is hidden there. Be careful!,TXT_DLG_SCRIPT23_D19708_MYRES,,,,"Meine Nachforschungen lassen vermuten, dass dort eine dunkle Macht aus längst vergangenen Zeiten versteckt ist. Sei vorsichtig!",Mi investigación sugiere que algún poder oscuro de la antigüedad se oculta allí. ¡Ten cuidado!,,Mes recherches suggèrent qu'il y a un pouvoir sombre ancien qui s'y cache. Faites attention!,,,,Ð¡ÑƒÐ´Ñ Ð¿Ð¾ результатам иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ â€” какаÑ-то Ñ‚Ñ‘Ð¼Ð½Ð°Ñ Ñила из далёкого прошлого. Будь оÑторожен!, +"That blue chalice, how'd you come by it? I've been researching the Order and their links to the distant past, and that artifact would help me. Let's make a deal. Give me the chalice, and I'll give you some info.",TXT_DLG_SCRIPT23_D21224_THATB,,,,"Dieser blaue Kelch, wie bist du da ran gekommen? Ich habe bereits über den Orden und deren Verbindung zur fernen Vergangenheit recherchiert, und dieses Artefakt könnte mir weiterhelfen. Ich schlage dir etwas vor: Gib mir den Kelch und ich gebe dir Informationen.","Ese cáliz azul, ¿Cómo lo has encontrado? He estado investigando a la Orden y sus conexiones con el pasado distante, y ese artefacto me ayudaría. Hagamos un trato. Dame el cáliz, y te daré algo de información.",,"Ce calice bleu, comment l'avez vous trouvé? Je fais des recherches sur l'Ordre et leurs liens avec le passé. Cet artéfact m'aiderait beaucoup. Faisons affaires: donnez le moi et je vous aiderai.",,,,"Эта ÑинÑÑ Ñ‡Ð°ÑˆÐ°, откуда она у тебÑ? Мои иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ ÐžÑ€Ð´ÐµÐ½Ð° ÑвÑзаны Ñ ÑобытиÑми далёкого прошлого, и мне очень нужен Ñтот артефакт. Давай заключим Ñделку. Ты мне чашу, а Ñ Ñ‚ÐµÐ±Ðµ - информацию.", +"Take it, it's bad luck anyway.",TXT_RPLY0_SCRIPT23_D21224_TAKEI,,,,"Nimm ihn, er bringt sowieso Unglück.","Toma, de todos modos da mala suerte.",,"Gardez le, je parie qu'il file malchance.",,,,Держи. Она вÑÑ‘ равно приноÑит неÑчаÑтье., +"Screw you, I'm keeping it.",TXT_RPLY1_SCRIPT23_D21224_SCREW,,,,"Ach, was soll's. Ich behalte ihn.","Que te zurzan, me lo quedo.","Al diablo, me lo quedo.","Allez vous faire voir, il est à moi maintenant.",,,,Пошёл Ñ‚Ñ‹! Я оÑтавлю её Ñебе., +Then I'm not giving you anything. Get lost!,TXT_RYES1_SCRIPT23_D21224_THENI,,,,Dann bekommst du auch nichts von mir. Verzieh dich!,Entonces no te voy a dar nada. ¡Piérdete!,,"Rien pour vous, alors, dégagez!",,,,Тогда Ñ Ñ‚ÐµÐ±Ðµ ничего не Ñкажу. УбирайÑÑ!, +"Now, what can I help you with?",TXT_DLG_SCRIPT23_D22740_NOWWH,,,,"Nun, wie kann ich dir weiterhelfen?","Ahora, ¿En qué puedo ayudarte?",,"Bon, que puis-je pour vous?",,,,"Итак, чем Ñ Ð¼Ð¾Ð³Ñƒ быть тебе полезен?", +Shadow armor?,TXT_RPLY0_SCRIPT23_D22740_SHADO,,,Shadow armour?,Schattenrüstung?,¿Armadura de sombra?,,Armure des ombres?,,,,Ð¢ÐµÐ½ÐµÐ²Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ?, +"Ahh, to be heard, but not seen!",TXT_RYES0_SCRIPT23_D22740_AHHTO,,,,"Ah, um gehört zu werden, aber ungesehen zu bleiben.","Ahh, ¡Para ser oído, pero no visto!",,"Ah, à entendre, mais pas à voir!",,,,"ÐÑ…, чтобы быть уÑлышанным, но не увиденным!", +"Get out of here, come back when you have some cash.",TXT_RNO0_SCRIPT23_D22740_GETOU,,,,"Verzieh dich, komm wieder, wenn du etwas Geld hast.","Vete de aquí, vuelve cuando tengas algo de efectivo.",,"Sortez de là, revenez quand vous avez de l'argent!",,,,"ВыметайÑÑ Ð²Ð¾Ð½, вернешьÑÑ, когда раздобудешь наличноÑти.", +"Thank deus you got here. To enter the factory you need a key. We stole it but our agent is missing in the web of catacombs under the Order's stronghold. I have sent ten good men into those tunnels to find him, and none have returned. Something is down there!",TXT_DLG_SCRIPT23_D24256_THANK,,,,"Deus sei dank bist du hier. Um die Fabrik zu betreten, brauchst du einen Schlüssel. Wir haben ihn gestohlen, aber unser Agent ist in den Irrwegen der Katakomben unter Festung des Ordens verschwunden. Ich habe zehn gute Männer da hinunter geschickt um ihn zu finden, aber niemand ist zurückgekehrt. Irgendetwas ist da unten!","Gracias a deus que estás aquí. Para entrar en la fábrica necesitas una llave. La robamos, pero nuestro agente está perdido en la red de catacumbas bajo la fortaleza de la Orden. He enviado diez buenos hombres a esos túneles para encontrarlo, y ninguno ha regresado. ¡Hay algo ahí abajo!","Gracias a deus que estás aquí. Para entrar en la fábrica necesitas una llave. La robamos, pero nuestro agente está perdido en la red de catacumbas debajo de la fortaleza de la Orden. He enviado diez buenos hombres a esos túneles para encontrarlo, y ninguno ha regresado. ¡Hay algo ahí abajo!","Merci Dieu, vous êtes là. Pour entrer dans l'usine, il vous faut une clé. On l'a volé, mais notre agent a disparu dans le dédale de catacombes sous la forteresse de l'Ordre. On a envoyé dix hommes dans ces tunnels pour le retrouver mais personne n'est revenu. Il doit y avoir quelque chose, là dedans!",,,,"Хвала гоÑподу, Ñ‚Ñ‹ добралÑÑ Ñюда. Тебе нужен ключ, чтобы проникнуть на фабрику. Мы выкрали его, но наш агент пропал в Ñети катакомб под крепоÑтью Ордена. Чтобы разыÑкать его, Ñ Ð¿Ð¾Ñлал в Ñти туннели деÑÑÑ‚ÑŒ хороших бойцов, и ни один не вернулÑÑ. Там внизу что-то еÑÑ‚ÑŒ!", +What is it? Human or... ?,TXT_RPLY0_SCRIPT23_D24256_WHATI,,,,Was ist es? Mensch oder...?,¿Qué es? ¿Humano ó...?,,"Qu'est-ce que c'est? Un humain, où...",,,,Что Ñто? Человек или...?, +"Not. Definitely not. Whatever it is, you must fight it to retrieve the key. I'll open the catacombs' entrance. When you've got it, the factory is next to the mines. Hurry, each second counts.",TXT_DLG_SCRIPT23_D25772_NOTDE,,,,"Nein. Definitiv nicht. Was auch immer es ist, du musst es bekämpfen, um an den Schlüssel zu kommen. Ich werde den Eingang zu den Katakomben öffnen. Wenn du ihn hast, die Fabrik ist direkt neben den Minen. Beeil dich, jede Sekunde zählt.","No. Definitivamente no. Sea lo que sea, debes luchar contra ello para recuperar la llave. Abriré la entrada a las catacumbas. Cuando la tengas, la fábrica está jundo a las minas. Date prisa, cada segundo cuenta.","No. Definitivamente no. Sea lo que sea, debes luchar contra eso para recuperar la llave. Abriré la entrada a las catacumbas. Cuando la tengas, la fábrica está junto a las minas. Date prisa, cada segundo cuenta.","Non, absolument pas. Je ne sais pas ce que c'est, mais il faudra s'en débarasser pour récupérer la clé. Je vais ouvrir l'entrée des catacombes. Quand vous êtes à l'intérieur, l'usine est près des ruines. Vite, chaque seconde compte.",,,,"Ðет. Определённо нет. Что бы Ñто ни было, Ñ‚Ñ‹ должен ÑразитьÑÑ Ñ Ð½Ð¸Ð¼, чтобы заполучить ключ. Я открою ворота в катакомбы. Когда добудешь его, путь на фабрику лежит через шахты. ТоропиÑÑŒ. Дорога ÐºÐ°Ð¶Ð´Ð°Ñ Ñекунда.", +"Something inhuman, eh?, great.",TXT_RPLY0_SCRIPT23_D25772_SOMET,,,,Irgendetwas unmenschliches? Na großartig.,"Algo inhumano, ¿eh?, genial.",,"Quelque chose d'inhumain, hein? Parfait.",,,,Что-то иное? ПроÑто отлично., +You're wasting time and lives! Move!,TXT_DLG_SCRIPT23_D27288_YOURE,,,,Du verschwendest Zeit und Leben! Beweg dich!,¡Estás perdiendo tiempo y vidas! ¡Muévete!,,Vous perdez votre temps et des vies! Bougez!,,,,Ты тратишь Ð²Ñ€ÐµÐ¼Ñ Ð¸ жизни! ШевелиÑÑŒ!, +"The master doesn't like visitors. He likes all of his work to remain undisturbed. I've got to go get fresh parts from the storage room. I think he said a leg and an arm. Oh, well no time to talk anymore. I'd leave before he finds you.",TXT_DLG_SCRIPT27_D0_THEMA,,,,"Der Meister mag keine Besucher. Er hat es gern, wenn er bei der Arbeit nicht gestört wird. Ich muss gehen und neue Teile aus dem Lagerraum holen. Ich glaube er sagte ein Bein und eine Arm. Naja, keine Zeit mehr zum Reden. Du solltest gehen, bevor er dich findet.","Al maestro no le gustan las visitas. Le gusta que su trabajo permanezca ininterrumpido. Tengo que ir a recoger partes frescas del almacén. Creo que dijo una pierna y un brazo. Oh, bueno, no queda tiempo para hablar. Yo me iría antes de que te encuentre.",,"Le Maître n'aime pas les visiteurs. Il préfère que son travail se déroule dans le calme. Il faut que j'aille chercher des pièces dans la salle de stockage. Il m'a demandé une jambe et un bras, je crois. Bon, plus de temps pour parler. Je partirais si j'étais vous.",,,,"ХозÑин не любит гоÑтей. Ему не нравитÑÑ, когда его работу прерывают. Мне нужно принеÑти Ñвежие чаÑти Ñо Ñклада. По-моему он Ñказал руку и ногу. Ох, больше нет времени на разговоры. Я уйду до того, как он Ñ‚ÐµÐ±Ñ Ð½Ð°Ð¹Ð´Ñ‘Ñ‚.", +Why's that.,TXT_RPLY0_SCRIPT27_D0_WHYST,,,,Wieo das?,¿Por qué?,,Pourquoi donc?,,,,Почему так?, +"Because, I told you he doesn't like visitors!",TXT_RYES0_SCRIPT27_D0_BECAU,,,,"Ich habe dir doch gesagt, dass er keine Besucher mag!","Porque, ¡Te he dicho que no le gustan las visitas!",,"Je vous ai dit, il n'aime pas les visiteurs!",,,,"Потому что, как Ñ ÑƒÐ¶Ðµ Ñказал тебе, он не любит поÑетителей!", +"You know, you're about the right size for one of the acolyte's uniforms.",TXT_DLG_SCRIPT27_D1516_YOUKN,,,,"Weißt du, du hast genau die richtige Größe für die Uniform eines Missionars.","Sabes, tienes la talla justa para uno de los uniformes de acólito.",,"Vous savez, vous avez juste la taille qu'il faut pour un uniforme d'acolyte.",,,,"Знаешь, тебе бы как раз впору пошла униформа ÑлужителÑ.", +"Oh no, I'm not the real Programmer, he's hiding. Continue past the guard training area, very tough. If you survive, you might be able to talk to him. Or kill him.",TXT_DLG_SCRIPT31_D0_OHNOI,,,,"O nein, ich bin nicht der echte Programmierer. Er versteckt sich. Ich glaube irgendwo jenseits des Trainingsbereichs für die Wächter. verdammt schwierig. Wenn du überlebst könntest du in finden. Oder töten.","Oh no, no soy el verdadero Programador, está escondido. Continúa a traves del área de entrenamiento de guardias, muy difícil. Si sobrevives, tal vez puedas hablar con él. O matarlo.","Oh no, no soy el verdadero Programador, él está escondido. Continúa a traves del área de entrenamiento de guardias, muy duro. Si sobrevives, tal vez puedas hablar con él. O matarlo.","Oh non, je ne suis pas le vrai Programmeur. Il se cache. Continuez après la zone d'entraînement des gardes. C'est dangereux, mais si vous y arrivez, vous devriez pouvoir lui parler.. Ou le tuer.",,,,"О, нет. Я не наÑтоÑщий ПрограммиÑÑ‚. Он прÑчетÑÑ. Ðа твоём пути лежит зона тренировки Ñтражи. Пройти её очень непроÑто. ЕÑли уцелеешь, то Ñможешь поговорить Ñ Ð½Ð¸Ð¼... Или убить его.", +Who are you?,TXT_RPLY0_SCRIPT31_D0_WHOAR,,,,Wer bist du?,¿Quién eres?,,Qui êtes vous?,,,,Кто Ñ‚Ñ‹?, +You'll never find anything if you hang around here.,TXT_DLG_SCRIPT31_D1516_YOULL,,,,"Du wirst niemals etwas finden, wenn du hier herumhängst.",Nunca encontrarás nada si permaneces aquí.,,Vous ne découvrerez rien si vous traînez ici.,,,,"Ты ничего не добьёшьÑÑ, еÑли будешь ошиватьÑÑ Ñ‚ÑƒÑ‚.", +Piss off peasant!,TXT_DLG_SCRIPT32_D0_PISSO,,,,"Verpiss dich, du Bauer!","¡Esfúmate, campesino!",,"Dégage, paysan!",,,,"Вали отÑюда, рабочий!", +Die little man!,TXT_DLG_SCRIPT32_D1516_DIELI,,"Appears in MAP32 and is supposed to be spoken by the AcolyteRust actor (named “Interrogatorâ€). However, no such actor is spawned in the map, rendering this line unused.",,"Stirb, kleiner Mann!","¡Muere, hombrecillo!",,"Meurs, petite frappe!",,,,"Сдохни, человечишка!", +Finally I can get out of this cell.,TXT_DLG_SCRIPT32_D3032_FINAL,,,,Endlich kann ich aus dieser Zelle raus.,Por fin puedo salir de esta celda.,,"Enfin, je peux sortir de cette cellule.",,,,Ðаконец-то Ñ Ð¼Ð¾Ð³Ñƒ Ñбежать из Ñтой камеры!, +Why are you in here?,TXT_RPLY0_SCRIPT32_D3032_WHYAR,,,,Warum bist du da drin?,¿Por que estás aquí?,,Pourquoi êtes vous ici?,,,,Как Ñ‚Ñ‹ здеÑÑŒ оказалÑÑ?, +I was framed.,TXT_RYES0_SCRIPT32_D3032_IWASF,,,,Ich wurde hereingelegt.,Fui incriminado.,,J'ai été victime d'un coup monté.,,,,ÐœÐµÐ½Ñ Ð¿Ð¾Ð´Ñтавили., +Harris said that I was plotting to kill the Governor. I would never harm a soul.,TXT_DLG_SCRIPT32_D4548_HARRI,,,,"Harris hat erzählt, das ich plante den Gouverneur zu ermorden. Ich könnte keiner Menschenseele etwas antun.",Harris dijo que estaba planeando matar al Gobernador. Yo nunca le haría daño a nadie.,,Harris a dit que j'avais un plan pour tuer le gouverneur. Je ne ferais pas de mal à qui que ce soit.,,,,"Ð¥Ð°Ñ€Ñ€Ð¸Ñ Ñказал, что Ñ Ð·Ð°Ð¼Ñ‹ÑˆÐ»Ñл убийÑтво губернатора. Ð Ñ Ð¸ мухи не обижу!", +Be careful out there.,TXT_DLG_SCRIPT33_D0_BECAR,,,,Sei vorsichtig dort draußen.,Ten cuidado ahí fuera.,,Faites attention à vous.,,,,Будь пооÑторожнее., +"Say friend, I'll help you, if you help me. Give me 5 gold and I'll tell you what I know.",TXT_DLG_SCRIPT33_D1516_SAYFR,,,,"Sag, mein Freund. Ich helfe dir, wenn du mir hilst. Gib mir 5 Gold und ich sage dir was ich weiß.","Dime, amigo, te ayudo, si tú me ayudas. Dame 5 de oro y te digo todo lo que sé.",,"Dites, l'ami. Je vous aide si vous m'aidez. Donnez moi 5 pièces et je vous dirais ce que je sais.",,,,"Дружище, Ñ Ð¿Ð¾Ð¼Ð¾Ð³Ñƒ тебе, еÑли Ñ‚Ñ‹ поможешь мне. ПÑÑ‚ÑŒ золотых, и Ñ Ñ€Ð°ÑÑкажу тебе вÑÑ‘, что знаю!", +Here's the gold.,TXT_RPLY0_SCRIPT33_D1516_HERES,,,,Hier ist das Gold.,Aquí tienes el oro.,,Voilà votre argent.,,,,Вот монеты., +"If you punch someone, you won't set off the alarms.",TXT_RYES0_SCRIPT33_D1516_IFYOU,,,,"Wenn du jemanden schlägst, wirst du keinen Alarm auslösen.","Si golpeas a alguien, no activarás las alarmas.",,"Si vous plantez quelqu'un avec votre dague de poing, vous n'activez pas les alarmes.",,,,"Убивай холодным оружием, тогда Ñ‚Ñ‹ не поднимешь тревогу.", +I won't tell you anything for free!,TXT_RNO0_SCRIPT33_D1516_IWONT,,,,Umsonst werde ich dir nichts sagen.,¡No te voy a decir nada gratis!,,Je ne vous dirai rien gratuitement!,,,,БеÑплатно Ñ Ð½Ðµ Ñкажу ничего!, +I've already told you what I know.,TXT_DLG_SCRIPT33_D3032_IVEAL,,,,"Ich habe dir alles gesagt, was ich weiß.",Ya te he dicho lo que sé.,,Je vous ai dit tout ce que je sais.,,,,"Я уже Ñказал тебе вÑÑ‘, что знал.", +Hello friend. What can I get for you?,TXT_DLG_SCRIPT33_D4548_HELLO,,,,"Hallo, Freund, was kann ich dir geben?","Hola amigo, ¿Qué puedo ofrecerte?",,"Bonjour, l'ami, que puis-je pour vous?",,,,ЗдравÑтвуй. Что-нибудь интереÑует?, +Electric bolts,TXT_RPLY0_SCRIPT33_D4548_ELECT,,,,Elektrische Pfeile,Saetas eléctricas.,,Carreaux électriques.,,,,ЭлектричеÑкие болты, +One quarrel it is.,TXT_RYES0_SCRIPT33_D4548_ONEQU,,,,Hier hast du sie.,Marchando unas flechas.,,Un carquois pour vous.,,,,Один колчан., +You're broke!,TXT_RNO0_SCRIPT33_D4548_YOURE,,,,Du bist pleite!,¡Estás sin blanca!,¡Estás quebrado!,Vous êtes à sec!,,,,"Друг, да Ñ‚Ñ‹ на мели!", +Clip of bullets,TXT_RPLY1_SCRIPT33_D4548_10ROU,,,,10-Kugeln-Magazin,Cargador de balas,,Chargeur de 10 cartouches.,,,,Обойма патронов., +Here's your ammo,TXT_RYES1_SCRIPT33_D4548_HERES,,,,Hier ist deine Munition.,Aquí tienes tu munición.,,Voilà vos balles.,,,,Вот твои патроны., +"Sorry, no money, no bullets.",TXT_RNO1_SCRIPT33_D4548_SORRY,,,,"Tut mir leid. Kein Geld, keine Munition.","Lo siento, sin dinero, no hay balas.",,"Désolé, pas d'argent, pas de munitions.",,,,"Извини, нет денег — нет патронов!", +Ammo box,TXT_RPLY2_SCRIPT33_D4548_50ROU,,,,50-Kugeln-Schachtel,Caja de municiones,,Boîte de 50 balles.,,,,Коробка патронов, +Here you go,TXT_RYES2_SCRIPT33_D4548_HEREY,,,,Bitteschön.,Aquí tienes,,Voilà pour vous.,,,,Держи., +You don't have enough gold!,TXT_RNO2_SCRIPT33_D4548_YOUDO,,,,Du hast nicht genug Gold.,¡No tienes suficiente oro!,,Vous n'avez pas assez d'argent.,,,,У Ñ‚ÐµÐ±Ñ Ð½ÐµÐ´Ð¾Ñтаточно золота!, +Ammo satchel,TXT_RPLY3_SCRIPT33_D4548_AMMOS,,,,Munitionstasche.,Mochila de municiones,,Sacoche de munitions.,,,,Ранец Ð´Ð»Ñ Ð±Ð¾ÐµÐ¿Ñ€Ð¸Ð¿Ð°Ñов, +"Thank you, anything else?",TXT_RYES3_SCRIPT33_D4548_THANK,,,,"Danke, sonst noch was?","Gracias, ¿algo más?",,"Merci, quelque chose d'autre?",,,,Благодарю. Что-нибудь ещё?, +"You can't afford that, good day.",TXT_RNO3_SCRIPT33_D4548_YOUCA,,,,Das kannst du dir nicht leisten. Guten Tag.,"No puedes permitirte eso, buen día.","No puedes pagar eso, buen día.",Vous ne pouvez pas l'acheter. Au revoir.,,,,У Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег. Ð’Ñего доброго!, +Welcome. What may I show you?,TXT_DLG_SCRIPT33_D6064_WELCO,,,,Willkommen. Was darf ich dir zeigen?,Bienvenido. ¿Qué puedo mostrarte?,,"Bienvenue, comment puis-je vous servir?",,,,ЗдравÑтвуй. Что-нибудь интереÑует?, +Environmental suit,TXT_RPLY0_SCRIPT33_D6064_ENVIR,,,,Schutzanzug.,Traje ambiental,,Combinaison Hazmat.,,,,Защитный коÑтюм, +Here you are.,TXT_RYES0_SCRIPT33_D6064_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,"Хорошо, бери.", +You don't have enough money for that.,TXT_RNO0_SCRIPT33_D6064_YOUDO,,,,Dafür hast du nicht genug Geld.,No tienes suficiente dinero para eso.,,Vous n'avez pas assez d'argent.,,,,"Извини, но у Ñ‚ÐµÐ±Ñ Ð½Ðµ хватает денег.", +Leather armor.,TXT_RPLY1_SCRIPT33_D6064_LEATH,,,Leather armour,Lederrüstung,Armadura de cuero.,,Armure de cuir.,,,,ÐšÐ¾Ð¶Ð°Ð½Ð°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Here you are.,TXT_RYES1_SCRIPT33_D6064_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +Perhaps some other time?,TXT_RNO1_SCRIPT33_D6064_PERHA,,,,Vielleicht ein anderes Mal?,¿Tal vez en otro momento?,,Peut être une autre fois?,,,,"Может, в Ñледующий раз?", +Metal armor,TXT_RPLY2_SCRIPT33_D6064_METAL,,,Metal armour,Metallrüstung,Armadura de metal,,Armure de métal.,,,,МеталличеÑÐºÐ°Ñ Ð±Ñ€Ð¾Ð½Ñ, +Wear it in good health.,TXT_RYES2_SCRIPT33_D6064_WEARI,,,,Trage sie und bleib gesund.,Llévala en buena salud.,,Portez-la en bonne santé.,,,,ÐоÑи на здоровье., +Come back when you can afford it.,TXT_RNO2_SCRIPT33_D6064_COMEB,,,,"Komme wieder, wenn du dir sie leisten kannst.",Vuelve cuando puedas permitírtela.,Vuelve cuando puedas pagarlo.,Revenez quand vous pouvez l'acheter.,,,,"ВернёшьÑÑ, когда поднакопишь на то, что хочешь!", +How may I assist you?,TXT_DLG_SCRIPT33_D7580_HOWMA,,,,Womit kann ich dienen?,¿Cómo puedo ayudarte?,,Comment puis-je vous aider aujourd'hui?,,,,Чем могу помочь?, +Med patch,TXT_RPLY0_SCRIPT33_D7580_MEDPA,,,,Medizinische Bandage,Parche médico.,,Pansement.,,,,Бинтами, +Here's your patch kit.,TXT_RYES0_SCRIPT33_D7580_HERES,,,,Hier ist deine Bandage.,Aquí tienes tu kit de parches.,,Voilà votre pansement.,,,,Вот они., +You need 10 gold for that.,TXT_RNO0_SCRIPT33_D7580_YOUNE,,,,Dafür brauchst du 10 Gold.,Necesitas 10 de oro para eso.,,Il vous faut 10 pièces pour ça.,,,,Тебе не хватает 10 золотых., +Field surgery kit,TXT_RPLY1_SCRIPT33_D7580_FIELD,,,,Erste-Hilfe-Kasten,Kit quirúrgico,,Kit de chirurgie.,,,,Ðптечкой, +Thank you.,TXT_RYES1_SCRIPT33_D7580_THANK,,,,Danke.,Gracias.,,Merci.,,,,СпаÑибо., +"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT33_D7580_IWISH,,,,"Ich wünschte, ich könnte sie verschenken, aber sie kosten 25 Gold.","Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,"J'adorerais les donner gratuitement, mais non, ça coûte 25 pièces.",,,,"С радоÑтью бы отдал, но они по 25 золотых.", +Healing,TXT_RPLY2_SCRIPT33_D7580_HEALI,,,,Heilung,Curación,,Des soins.,,,,Медкомплект, +There you go. Take care now.,TXT_RYES2_SCRIPT33_D7580_THERE,,,,Bitteschön. Aber sei vorsichtiger.,Aquí tienes. Cúidate.,,"Voilà pour vous, portez-vous-bien.",,,,ПожалуйÑта. Береги ÑебÑ!, +"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT33_D7580_WELLM,,,,"Naja, vielleicht kannst du dir ein paar Bandagen leisten?","Bueno, ¿tal vez puedas permitirte algunos parches médicos?","Bueno, ¿tal vez puedas comprar algunos parches médicos?","Eh bien, peut être pouvez-vous vous acheter quelques pansements?",,,,"Тогда, может быть, купишь неÑколько бинтов?", +"Hello friend, I haven't seen you around here before. All I can say is that I'd be careful if I were you, there's a lot going on and it's better if you don't get in the way.",TXT_DLG_SCRIPT33_D9096_HELLO,,,,"Hallo, Freund, ich habe dich hier noch nicht gesehen. Ich kann nur sagen, sei vorsichtig und wenn ich du wäre, würde ich es vorziehen, niemandem im Weg zu stehen.","Hola amigo, no te he visto antes por aquí. Todo lo que puedo decir es que tendría cuidado si fuera tú, están pasando muchas cosas y es mejor que no te entrometas.",,"Bienvenue, l'ami. Je ne vous ai pas vu ici avant. Tout ce que peux vous dire, c'est de faire attention à vous. Il se passe beaucoup de choses ici, et je pense que vous ne voulez pas vous en mêler.",,,,"Привет, дружище. Что-то Ñ Ð½Ðµ видел Ñ‚ÐµÐ±Ñ Ñ‚ÑƒÑ‚ раньше. Дам тебе один Ñовет — Ñ Ð±Ñ‹ на твоём меÑте был пооÑторожнее. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð·Ð´ÐµÑÑŒ такое творитÑÑ, что лучше не выÑовыватьÑÑ.", +Information,TXT_RPLY0_SCRIPT33_D9096_INFOR,,,,Informationen,Información,,Des infos.,,,,ЕÑÑ‚ÑŒ новоÑти?, +The sewers hold more than just rats and robots.,TXT_RYES0_SCRIPT33_D9096_THESE,,,,Die Kanalisation hat mehr zu bieten als Ratten und Roboter.,Las alcantarillas tienen más que ratas y robots.,,Les égouts contiennent plus que des rats et des robots.,,,,Ð’ канализации водÑÑ‚ÑÑ Ð½Ðµ только крыÑÑ‹ и роботы., +Hey a guy's got to make some money. You think these jokers tip well?,TXT_RNO0_SCRIPT33_D9096_HEYAG,,,,"Hey, mann muss auch sein Auskommen haben, glaubst du, diese Witzbolde geben einem Trinkgeld?",Hey un servidor tiene que ganar algo de dinero. ¿Crees que estos graciosos dan buena propina?,Hey un servidor tiene que ganar algo de dinero. ¿Crees que estos payasos dan buena propina?,"Hé, j'ai besoin de me faire de l'argent, vous savez? Vous croyez que ces salauds me paient bien?",,,,"Заработай немного денег, парень. Или Ñ‚Ñ‹ думаешь, что вÑе Ñти шутники щедро платÑÑ‚?", +"Back again huh? Well, at least you know enough to keep your own skin intact. What can I do for you now?",TXT_DLG_SCRIPT33_D10612_BACKA,,,,"Schon wieder zurück, was? Na, wenigstens weißt du inzwischen, wie du das mit heiler Haut hinkriegst. Was kann ich jetzt für dich tun?","¿De vuelta otra vez, eh? Bueno, al menos sabes suficiente para mantener tu pellejo intacto. ¿Qué puedo ofrecerte ahora?",,"Déjà de retour, hein? Au moins vous savez sauver votre peau. Que puis-je faire pour vous?",,,,"Снова Ñ‚Ñ‹? Ðу что ж, Ñ‚Ñ‹ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ знаешь, как Ñберечь Ñвою шкуру. Что Ñ Ð¼Ð¾Ð³Ñƒ тебе предложить?", +More info,TXT_RPLY0_SCRIPT33_D10612_MOREI,,,,Mehr Informationen.,Más información,,Plus d'infos.,,,,РаÑÑкажи больше., +The governor is a simple reminder of the Order's influence.,TXT_RYES0_SCRIPT33_D10612_THEGO,,,,Der Gouverneur ist eine einfache Erinnering an die Macht des Ordens.,El gobernador es un simple recordatorio de la influencia de la Orden,,Le gouverneur d'est qu'un rappel de l'influence de l'ordre.,,,,Губернатор — живое напоминание о влаÑти Ордена., +Come back if you change your mind.,TXT_RNO0_SCRIPT33_D10612_COMEB,,,,"Komm zurück, wenn du deine Meinung geändert hast.",Vuelve si cambias de idea.,,Revenez si vous changez d'avis.,,,,Передумаешь — возвращайÑÑ., +"Well, you're sure asking a lot of questions for someone who's lived this long. That's ok though, I'd rather talk to someone like you than most of this lot.",TXT_DLG_SCRIPT33_D12128_WELLY,,,,"Du stellst eine Menge Fragen für jemanden, der schon so lange überlebt hat. Das ist ok, ich rede lieber mit jemandem wie dir als mit dem Rest der Typen da.","Bueno, ciertamente estás haciendo muchas preguntas para alguien que ha vivido tanto. Aunque eso es bueno, preferiría hablar con alquien como tú que con la mayoría de esta gente.",,"Vous posez beacoup de questions pour quelqu'un qui a survécu aussi longtemps. Ca me convient, je préfère parler à quelqu'un comme vous qu'a la majorité de ces idiots.",,,,"Да, Ð´Ð»Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°, который прожил так долго, Ñ‚Ñ‹ задаёшь многовато вопроÑов. Впрочем, Ñто неплохо: Ñ Ð±Ñ‹ Ñкорее предпочёл говорить Ñ ÐºÐµÐ¼-то вроде тебÑ, чем Ñ Ð¼ÐµÑтными.", +More info.,TXT_RPLY0_SCRIPT33_D12128_MOREI,,,,Mehr Informationen.,Más información.,,Plus d'infos.,,,,Говори дальше., +There's more to the Order than what goes on around here.,TXT_RYES0_SCRIPT33_D12128_THERE,,,,"Hinter dem Orden steckt mehr, als es den Anschein hat.",Hay más de la Orden que lo que pasa por aquí.,,L'Ordre cache beaucoup plus que ce qui ne se passe ici.,,,,"Орден — нечто большее, чем кажетÑÑ.", +Come back if you change your mind.,TXT_RNO0_SCRIPT33_D12128_COMEB,,,,"Komm zurück, wenn du deine Meinung geändert hast.",Vuelve si cambias de idea.,,Revenez si vous changez d'avis.,,,,Передумаешь — возвращайÑÑ., +"That's it friend, the well of knowledge has been tapped. I've told you more than I should have anyway.",TXT_DLG_SCRIPT33_D13644_THATS,,,,"Das ist es, Freund, der Brunnen des Wissens ist versiegt. Ich habe dir schon mehr gesagt, als ich eigentlich sollte.","Ya está amigo, el pozo del conocimiento se ha secado. Te he dicho más de lo que debería, de todos modos.",,"C'est tout, mon ami. Le puits de la sagesse s'est tari. Je vous en ai trop dit de toutes manières.",,,,"Это вÑÑ‘, дружище. Кладезь мудроÑти иÑчерпан. Я и так раÑÑказал тебе больше, чем Ñледовало.", +Hard to shop for new toys... when you're broke. Run a little errand for me and you'll get more than you could ever spend. I'll make you a rich man.,TXT_DLG_SCRIPT33_D15160_HARDT,,,,"Ist es nicht schwierig, an neue Sachen zu kommen, wenn du pleite bist? Tu mir einen Gefallen und du kannst mehr Gold kriegen, als du jemals ausgeben kannst. Ich mache dich reich.",Difícil comprarse nuevos jugetes... cuando estás sin blanca. Haz algunos recados para mi y conseguirás más de lo que puedas gastarte. Te haré un hombre rico.,Difícil comprarse nuevos jugetes... cuando estás quebrado. Haz algunos encargos para mi y conseguirás más de lo que puedas gastarte. Te haré un hombre rico.,Difficile de s'acheter de nouveaux joujous quand on n'a plus de sous. Faites-moi une petite course et vous aurez plus que vous ne pourrez jamais dépenser. Je vous rendrai riche.,,,,"Трудновато покупать игрушки, когда нет и гроша за душой... Выполни одно заданьице Ð´Ð»Ñ Ð¼ÐµÐ½Ñ, и Ñ‚Ñ‹ заработаешь Ñтолько, Ñколько в твоих карманах Ñроду не водилоÑÑŒ. Ты будешь богатым!", +I got nothing better to do.,TXT_RPLY0_SCRIPT33_D15160_IGOTN,,,,Ich habe nichts besseres zu tun.,No tengo nada mejor que hacer.,,Je n'ai rien de mieux à faire.,,,,Заманчивое предложение., +No thanks.,TXT_RPLY1_SCRIPT33_D15160_NOTHA,,,,"Nein, danke.",No gracias.,,Non merci.,,,,"Ðет, ÑпаÑибо.", +Nobody walks away from me!,TXT_RYES1_SCRIPT33_D15160_NOBOD,,,,Niemand sagt Nein zu mir.,¡Nadie pasa de mí!,¡Nadie se aleja de mí!,Personne ne se barre après mon offre!,,,,От Ð¼ÐµÐ½Ñ ÐµÑ‰Ñ‘ никто не уходил!, +"Good choice. The Order's sanctuary by the river is their unofficial torture chamber. Hidden inside there's a golden chalice. You swipe it, you meet me at the tavern, and reap your reward.",TXT_DLG_SCRIPT33_D16676_GOODC,,,,Gute Wahl. Das Heiligtum des Ordens bei dem Fluss ist ihre inoffiziele Folterkammer. Darin versteckt ist ein goldener Kelch. Du klaust ihn und erntest deinen Lohn.,"Buena elección. El santuario de la Orden junto al río es su cámara de tortura no oficial. Oculto adentro hay un cáliz de oro. Lo pillas, me vienes a ver a la taberna, y consigues tu recompensa.","Buena elección. El santuario de la Orden junto al río es su cámara de tortura no oficial. Oculto adentro hay un cáliz de oro. Lo robas, me vienes a ver a la taberna, y consigues tu recompensa.",Bon choix. Le sanctuaire de l'ordre près de la rivière est leur chambre torture.. officieusement. A l'intérieur se trouve un calice en or. Récupérez le et venez prendre votre récompense.,,,,"Правильный выбор. Ð’ ÑвÑтилище Ордена у реки — там у них неглаÑÐ½Ð°Ñ ÐºÐ°Ð¼ÐµÑ€Ð° пыток — ÑпрÑтана Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ñ‡Ð°ÑˆÐ°. Ты крадёшь её, возвращаешьÑÑ ÐºÐ¾ мне в таверну и получаешь Ñвою награду.", +How am I supposed to do that?,TXT_RPLY0_SCRIPT33_D16676_HOWAM,,,,Wie soll ich das anstellen?,¿Cómo se supone que hago eso?,,Comment est-ce que je suis sensé faire ça?,,,,Как мне Ñто Ñделать?, +Let me think about it.,TXT_RPLY1_SCRIPT33_D16676_LETME,,,,Lass mich darüber nachdenken.,Déjame pensarlo.,,Laissez-moi y réfléchir.,,,,Я подумаю над твоим предложением., +"Sorry, no second chances. Oh, guards, kill him!",TXT_RYES1_SCRIPT33_D16676_SORRY,,,,"Keine zweite Chance. Oh Wachen, tötet ihn.","Lo siento, no hay segundas oportunidades. Oh, guardias, ¡Mátenlo!",,"Pas de deuxième chance. Gardes, tuez-le.",,,,"Ðет, никакого второго шанÑа. Эй, Ñтража, убейте его.", +"Here's a crossbow, just aim straight and -- splat!--. Remember, grab the fancy cup and meet me at the tavern.",TXT_DLG_SCRIPT33_D18192_HERES,,,,"Hier ist eine Armbust, einfach gerade zielen und --Platsch--. Denk dran, schnapp dir den schicken Kelch und dann ab zur Taverne.","Toma una ballesta, solo apunta derecho y -- ¡splat! --. Recuerda, toma la copa bonita y ven a verme a la taberna.",,Voilà une arbalète. Vous avez juste à viser droit et paf! Souvenez-vous. Prenez le goblet et ramenez le à la taverne.,,,,Вот арбалет — проÑто прицельÑÑ Ð¸ «шлеп!» Запомни — хватаешь чашу и возвращаешьÑÑ Ð² таверну., +I'll see you there.,TXT_RPLY0_SCRIPT33_D18192_ILLSE,,,,Wir sehen uns dort.,Te veré allí.,,Je vous y verrais.,,,,Я вернуÑÑŒ Ñ Ñ‡Ð°ÑˆÐµÐ¹., +"What are you waiting for? Don't worry, I'll clean up the bodies, just bring me that chalice!",TXT_DLG_SCRIPT33_D19708_WHATA,,,,"Worauf wartest du noch? Keine Sorge, ich kümmere mich um die Leichen. Bring mir den Kelch.","¿A qué estás esperando? No te preocupes, me desharé de los cuerpos, ¡solo tráeme ese cáliz!","¿Qué estás esperando? No te preocupes, me desharé de los cuerpos, ¡solo tráeme ese cáliz!","Qu'attendez vous? Je m'occuperai des corps, ne vous inquiétez pas. Apportez-moi le calice!",,,,"Чего Ñ‚Ñ‹ ждёшь? Ðе беÑпокойÑÑ, Ñ Ñам избавлюÑÑŒ от трупов, проÑто принеÑи мне чашу!", +Guards! Kill the traitor!,TXT_DLG_SCRIPT33_D21224_GUARD,,,,,¡Guardias! ¡Maten al traidor!,,Gardes! Tuez ce traître!,,,,Стража! Убейте предателÑ!, +"Hey, I know what you're thinking, kinda looks like a setup, I would never do that to such a killing machine, I mean it. Whew, all this fuss over a cup, weird. Now get ready, gold and glory, like I promised. Take this key and the Governor himself will reward you.",TXT_DLG_SCRIPT33_D22740_HEYIK,,,,"Hey, ich weiß, es sieht anscheinend wie eine Falle aus, aber so etwas würde ich einer so großeartigen Tötungsmaschine nicht antun. Hast du ddas Ding? Großartig! Nun mach dich bereit, Geld und Ruhm, genau wie ich es dir versprochen habe. Nimm diesen Schlüssel und der Gouverneur wird dich belohnen.","Hey, sé lo que estás pensando, parece un timo, pero nunca haría algo así a tal máquina de matar, lo juro. Uf, todo este lío por una copa, que raro. Ahora prepárate, oro y gloria, tal y como prometí. Toma esta llave y el mismísimo gobernador te recompensará.",,"Hé, je sais que ça à l'air d'être un coup monté, mais je ne ferais jamais ça à une aussi bonne machine à tuer. Vous avez le butin? Excellent! Préparez vous, l'or et la gloire vous attend, comme promis. Prenez cette clé et le gouverneur vous récompensera.",,,,"Слушай, Ñ Ð·Ð½Ð°ÑŽ, о чём Ñ‚Ñ‹ думаешь. Ты думаешь, что Ñто подÑтава. Ðо Ñ Ð±Ñ‹ никогда не Ñделал Ñтого Ñ Ñ‚Ð°ÐºÐ¾Ð¹ машиной Ð´Ð»Ñ ÑƒÐ±Ð¸Ð¹Ñтв, как Ñ‚Ñ‹, правда-правда. Тем более, ради какой-то чаши. Ртеперь, Ñ‚ÐµÐ±Ñ Ð¶Ð´ÑƒÑ‚ золото и Ñлава, как Ñ Ð¸ обещал. Возьми Ñтот ключ, губернатор лично наградит тебÑ.", +"Great, I can't wait!",TXT_RPLY0_SCRIPT33_D22740_GREAT,,,,"Toll, ich kann es kaum erwarten!","Genial, ¡no puedo esperar!",,"Parfait, je ne peux pas attendre!",,,,"ПрекраÑно, мне уже не терпитÑÑ!", +"No chalice, no money!",TXT_RNO0_SCRIPT33_D22740_NOCHA,,,,"Kein Kelch, kein Geld.",¡Sin cáliz no hay dinero!,,"Pas de calice, pas d'argent!",,,,Ðет чаши — нет денег!, +"I'll keep the chalice, thanks.",TXT_RPLY1_SCRIPT33_D22740_ILLKE,,,,"Ich behalte den Kelch, danke.","Me quedaré el caliz, gracias.",,"Je le garde, merci.",,,,"СпаÑибо, но Ñ Ð¾Ñтавлю чашу Ñебе.", +Keep it? I think not!,TXT_RYES1_SCRIPT33_D22740_KEEPI,,,,"Behalten? Ich glaube, nicht.",¿Quedártelo? ¡Me parece que no!,,Le garder? Je ne pense pas!,,,,ОÑтавишь Ñебе? Ещё чего!, +What are you waiting for? The governor himself will reward you.,TXT_DLG_SCRIPT33_D24256_WHATA,,,,Worauf wartest du? Der Gouverneur wird dich belohnen.,¿A qué estás esperando? El mismísimo gobernador te recompensará.,¿Qué estás esperando? El mismísimo gobernador te recompensará.,Qu'attendez-vous? Le gouverneur vous récompensera lui même.,,,,Чего Ñ‚Ñ‹ ждёшь? Губернатор лично наградит тебÑ., +Die traitor! ,TXT_DLG_SCRIPT33_D25772_DIETR,,,,"Stirb, Verräter!","¡Muere, traidor!",,"Meurs, traître!",,,,"Умри, предатель!", +So you're the fool who stole the chalice? I'm going to have you arrested as a rebel thief... Thereby enhancing my position with the Order. How does it feel to be an unwitting pawn? ,TXT_DLG_SCRIPT33_D27288_SOYOU,,,,"So, du bist also der Narr der den Kelch gestohlen hat? Ich werde dich als Dieb der Rebellen verhaften lassen und dadurch meine Position im Orden verbessern. Wie fühlt es sich an als ahnungslose Schachfigur?",¿Así que tú eres el insensato que robó el cáliz? Voy a arrestarte como ladrón rebelde... Mejorando así mí posición con la Orden. ¿Cómo se siente ser un inconsciente peón?,,"Vous êtes l'abruti qui a volé le calice? Maintenant il faut que je vous arrète comme voleur rebelle.. Ca va aider ma position dans l'Ordre. Comment ça fait d'être un pion ignorant? Petite idée, ça va faire mal.",,,,"Так Ñто Ñ‚Ñ‹ тот недоумок, что украл чашу? Я передам Ñ‚ÐµÐ±Ñ ÐžÑ€Ð´ÐµÐ½Ñƒ, как вора повÑтанцев... Это укрепит мои Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð½Ð¸Ð¼. Каково чувÑтвовать ÑÐµÐ±Ñ Ð±ÐµÐ·Ð¼Ð¾Ð·Ð³Ð»Ð¾Ð¹ пешкой?", +It sucks!,TXT_RPLY0_SCRIPT33_D27288_ITSUC,,,,Scheiße!,¡Apesta!,,Quelle merde!,,,,Чтоб Ñ‚Ñ‹ Ñдох!, +For you it does.,TXT_RYES0_SCRIPT33_D27288_FORYO,,,,Du steckst ganz tief drin.,"Para ti, sí.",,"Pour vous, en effet.",,,,Скоро Ñдохнешь Ñ‚Ñ‹., +Harris promised me money!,TXT_RPLY1_SCRIPT33_D27288_HARRI,,,,Harris hat mir Geld versprochen!,¡Harris me prometió dinero!,,Harris m'a promis de l'argent!,,,,Ð¥Ð°Ñ€Ñ€Ð¸Ñ Ð¾Ð±ÐµÑ‰Ð°Ð» мне деньги!, +Too bad. The only thing you're getting is death!,TXT_RYES1_SCRIPT33_D27288_TOOBA,,,,Jammerschade. Das Einzige was du bekommen wirst ist der Tod!,Una pena. ¡Lo único que tendrás es la muerte!,,"Dommage. Tout ce que vous allez recevoir, c'est votre mort!",,,,"Увы. Ð’ÑÑ‘, что Ñ‚Ñ‹ получишь, — Ñто Ñмерть!", +We're going to kill you!,TXT_DLG_SCRIPT33_D28804_WEREG,,,,Wir werden euch töten!,¡Vamos a matarte!,,On va te buter!,,,,ГотовьÑÑ Ðº Ñмерти!, +Get out of here!,TXT_DLG_SCRIPT33_D30320_GETOU,,,,Verschwinde von hier!,¡Sal de aquí!,,Sortez de là!,,,,УбирайÑÑ Ð¾Ñ‚Ñюда!, +We're going to kill you!,TXT_DLG_SCRIPT33_D31836_WEREG,,,,Wir werden euch töten!,¡Vamos a matarte!,,On va te buter!,,,,ГотовьÑÑ Ðº Ñмерти!, +Get out of here!,TXT_DLG_SCRIPT33_D33352_GETOU,,,,Verschwinde von hier!,¡Sal de aquí!,,Sortez de là!,,,,УбирайÑÑ Ð¾Ñ‚Ñюда!, +"What a perfect place for us, under the old town hall. The Order thinks they've wiped us out, but all it was is a reminder to us of what can happen when you become careless. ",TXT_DLG_SCRIPT34_D0_WHATA,,,,"Was für ein Perfekter Ort für uns, unter dem alten Rathaus. Der Orden glaubt, er hätte uns vernichtet, aber es war nur ein Denkzettel für uns, was passieren kann wenn man unaufmerksam ist.","Que lugar tan perfecto para nosotros, bajo el antiguo ayuntamiento. La Orden cree que nos ha aniquilado, pero todo lo que ha sido es un recordatorio para nosotros de lo que puede pasar cuando te descuidas.",,"Quel endroit parafait pour nous, sous la mairie. L'Ordre pense qu'ils nous ont tous tués, mais ça leur servira de leçon, ils verront se qu'il se passe quand on ne fait pas attention..",,,,"ЗдеÑÑŒ, под городÑкой ратушей, такое чудеÑное меÑто Ð´Ð»Ñ Ð½Ð°ÑˆÐµÐ¹ базы! Орден думает, что мы разгромлены, но мы вÑего лишь уÑвоили урок о цене беÑпечноÑти.", +"Talk to Macil, he'll be able to help you.",TXT_DLG_SCRIPT34_D1516_TALKT,,,,Rede mit Macil. Er kann dir helfen.,"Habla con Macil, él podrá ayudarte.",,Parlez à Macil. Il pourra vous aider.,,,,ОбратиÑÑŒ к ÐœÑйÑилу. Он поможет тебе., +I've heard that Macil's going to start something again soon. We need a big hit after the last fiasco. One more like that and we'll be too weak to continue.,TXT_DLG_SCRIPT34_D3032_IVEHE,,,,"Ich habe gehört, Macil hätte einen Plan um den Orden zu unterwandern. Ich hoffe mal, er taugt was. Noch ein Fehlschlag und wir können uns gleich begraben lassen.",He oído que Macil va a empezar algo nuevo pronto. Necesitamos un buen golpe después del último fiasco. Uno más como ese y seremos demasiado débiles para continuar.,,J'entends que Macil va essayer de faire quelque chose bientôt. Il nous faut frapper un grand coup après le dernier fiasco. Encore un comme celui-ci et on sera trop affaibli pour continuer.,,,,"Я Ñлышал, что ÐœÑйÑил готовит новую операцию поÑле провала предыдущей. Она должна быть крайне уÑпешной. ПоÑле второго такого провала мы уже не оправимÑÑ.", +A few of these barrels dumped into their water supply should even the odds a little. ,TXT_DLG_SCRIPT34_D4548_AFEWO,,,,"Wenn wir ein paar von diesen Fässern in die Wasserversorgung kippen, sollte das unsere Chancen etwas verbessern.",Unos cuantos de estos barriles arrojados a su suministro de agua debería igualar las probabilidades un poco.,,Quelques tonneaux vidés dans leur réserve d'eau devrait aplanir le terrain de jeu.,,,,"ÐеÑколько таких бочек, Ñброшенных в их водоÑнабжение, причинÑÑ‚ немало неприÑтноÑтей.", +I'm working on something that will give us an edge. It will increase your stamina and completely jack you up. I've almost got all the bugs worked out. Can I do something for you? ,TXT_DLG_SCRIPT34_D6064_IMWOR,,,,"Ich arbeite an etwas, das uns einen Vorteil verschaffen kann. Es würde deine Ausdauer erhöhen und dir Superkräfte verleihen. Kann ich was für dich tun?",Estoy trabajando en algo que nos dará una ventaja. Aumentará tu aguante y te pondrá a tope. Casi tengo todos los fallos corregidos. ¿Puedo hacer algo por ti?,,Je travaille sur quelque chose qui nous donnera un peu d'avance. Ca devrait augmenter votre endurance et vous donner un sacré coup de jus. Je crois que j'ai corrigé presque tous les bugs. Je peux vous aider?,,,,"Я работаю кое над чем, что может нам пригодитьÑÑ. Оно увеличит твою выноÑливоÑÑ‚ÑŒ и улучшит ÑамочувÑтвие. Я уже иÑправил почти вÑе дефекты. Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Patch me up.,TXT_RPLY0_SCRIPT34_D6064_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +"Boy, you're a real mess. I'll see what I can do.",TXT_RYES0_SCRIPT34_D6064_BOYYO,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.","Chico, estás hecho un desastre. Veré que puedo hacer.",,"Mon petit, vous êtes dans un sale état. Je vais voir ce que je peux faire.",,,,"Ты проÑто меÑиво. ПоÑмотрим, что Ñ Ñмогу Ñделать.", +Stamina implant?,TXT_RPLY1_SCRIPT34_D6064_STAMI,,,,Ausdauerimplantat?,¿Implante de aguante?,,Implant d'endurance?,,,,ВыноÑливоÑтный имплантат?, +All right this won't take but a moment.,TXT_RYES1_SCRIPT34_D6064_ALLRI,,,,"Alles klar, das haben wir sofort.","Muy bien, esto solo tomará un momento.",,"Pas de problème, ça ne prendra qu'un moment.",,,,"Отлично, Ñто займёт вÑего пару Ñекунд.", +It's not done yet.,TXT_RNO1_SCRIPT34_D6064_ITSNO,,,,Es ist noch nicht soweit.,Aún no está listo.,,Ce n'est pas encore terminé.,,,,Он ещё не готов., +"Hey, I'm working on an updated version of your implant. Is there anything else I can do?",TXT_DLG_SCRIPT34_D7580_HEYIM,,,,"He, ich arbeite an einer verbesserten Version deines Implantats. Gibt es sonst etwas, das ich für dich tun kann?","Hey, estoy trabajando en una versión actualizada de tu implante. ¿Hay algo que pueda hacer por ti?",,"Hé, je travaille sur une version améliorée de l'implant. Qu'est-ce que je peux faire pour vous?",,,,"Я работаю над улучшенной верÑией твоего имплантата. Рпока, чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?", +Patch me up.,TXT_RPLY0_SCRIPT34_D7580_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +Well at least you're seeing action.,TXT_RYES0_SCRIPT34_D7580_WELLA,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.","Bueno, al menos ves algo de acción.",,"Eh bien, au moins vous en voyez, de l'action.",,,,"Что ж, зато Ñ‚Ñ‹ учаÑтвуешь в операциÑÑ….", +Implant upgrade?,TXT_RPLY1_SCRIPT34_D7580_IMPLA,,,,Implantatsupgrade?,¿Mejora de implante?,,Mise à jour de l'implant?,,,,Улучшение имплантата?, +"Good thing, never can be too safe.",TXT_RYES1_SCRIPT34_D7580_GOODT,,,,"Alles klar, das haben wir sofort.","Cosa buena, nunca se puede estar seguro del todo.",,Bonne idée. On ne peut jamais être trop sûr.,,,,"Очень Ñоветую, ни в чём Ð½ÐµÐ»ÑŒÐ·Ñ Ð±Ñ‹Ñ‚ÑŒ уверенным до конца.", +"I'm almost finished, but not quite.",TXT_RNO1_SCRIPT34_D7580_IMALM,,,,Es ist noch nicht soweit.,"Casi he terminado, pero no del todo.",,"Presque fini, mais pas encore.",,,,Я почти закончил. Ещё немного., +"All right, this is it. I've almost got everything working perfectly. There were a few problems left to fix, do you need anything else? ",TXT_DLG_SCRIPT34_D9096_ALLRI,,,,"He, ich arbeite an einer verbesserten Version deines Implantats. Gibt es sonst etwas, das ich für dich tun kann?","Muy bien, esto es todo. Casi tengo todo funcionando perfectamente. Hubo algunos problemas restantes para arreglar, ¿necesitas alguna otra cosa?",,"Très bien, je crois que j'ai réussi à tout faire marcher parfaitement. Il y avait quelques problèmes dont je devais me débarrasser. Vous voulez quelque chose?",,,,"Ладно, почти вÑÑ‘ работает идеально. Впрочем, оÑталаÑÑŒ пара проблем. Что-нибудь ещё?", +Patch me up.,TXT_RPLY0_SCRIPT34_D9096_PATCH,,,,Flick mich zusammen.,Cúrame.,,Soignez moi.,,,,Перебинтуй менÑ., +What have you been trying to do? Go head to head with a Crusader?,TXT_RYES0_SCRIPT34_D9096_WHATH,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.",¿Qué has intentado hacer? ¿Encabezonarte con un cruzado?,¿Qué has intentado hacer? ¿Pelear cabeza a cabeza contra un cruzado?,Qu'est-ce que vous avez fait? Vous avez essayé de faire ami avec un Croisé?,,,,"Ты что, билÑÑ Ð¾Ð´Ð¸Ð½ на один Ñ ÐºÑ€ÐµÑтоноÑцем?", +Implant upgrade?.,TXT_RPLY1_SCRIPT34_D9096_IMPLA,,,,Implantatsupgrade?,¿Mejora de implante?,,Mise à jour de l'implant?,,,,Улучшение имплантата?, +That should do it for you.,TXT_RYES1_SCRIPT34_D9096_THATS,,,,"Alles klar, das haben wir sofort.",Esto te debería servir.,,Ca devrait faire l'affaire.,,,,Вот оно., +Let me run some more tests first.,TXT_RNO1_SCRIPT34_D9096_LETME,,,,Es ist noch nicht soweit.,Déjame hacer algunas pruebas primero.,,Laissez moi faire quelques tests d'abord.,,,,Дай мне ещё времени на теÑÑ‚Ñ‹., +That's all I can do on the implant right now. Maybe some healing?,TXT_DLG_SCRIPT34_D10612_THATS,,,,"Das ist alles, was ich im Moment mit dem Implantat machen kann. Vielleicht etwas medizinische Versorgung?",Eso es todo lo que puedo hacer con el implante por ahora. ¿Qué tal una cura?,,C'est tout ce que je peux faire pour l'implant. Vous voulez que je vous soigne?,,,,Пока что Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ ничего не могу Ñделать Ñ Ð¸Ð¼Ð¿Ð»Ð°Ð½Ñ‚Ð°Ñ‚Ð¾Ð¼. Как наÑчёт лечениÑ?, +Yeah.,TXT_RPLY0_SCRIPT34_D10612_YEAH,,,,Ja.,Sí.,,Ouais.,,,,Давай., +"Boy, you're a real mess. I'll see what I can do.",TXT_RYES0_SCRIPT34_D10612_BOYYO,,,,"Mann, du siehst aber gar nicht gut aus. Mal sehen, was ich machen kann.","Chico, estás hecho un desastre. Veré que puedo hacer.",,"Mon petit, vous êtes dans un sale état. Je vais voir ce que je peux faire.",,,,"Ты проÑто меÑиво. ПоÑмотрим, что Ñ Ñмогу Ñделать.", +What can I do for you?,TXT_DLG_SCRIPT34_D12128_WHATC,,,,Was kann ich für dich tun?,¿Qué puedo hace por ti?,,Que puis-je faire pour vous?,,,,Чем Ñ Ð¼Ð¾Ð³Ñƒ тебе помочь?, +I'm out of bullets.,TXT_RPLY0_SCRIPT34_D12128_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT34_D12128_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes un poco de munición. No la gastes.,Aquí tienes un poco de munición. No la desperdicies.,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +Teach me.,TXT_RPLY1_SCRIPT34_D12128_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +"All right, I'll just show you a few little pointers.",TXT_RYES1_SCRIPT34_D12128_ALLRI,,,,"Alles klar, ich zeige dir ein paar Kniffe.","Muy bien, te daré algunos pequeños consejos.",,Pas de problème. Laissez moi vous montrer quelques trucs.,,,,Хорошо. Покажу тебе пару приёмов., +You're not ready yet.,TXT_RNO1_SCRIPT34_D12128_YOURE,,,,Du bist noch nicht so weit.,Aún no estás listo.,,Vous n'êtes pas encore prêt.,,,,Ты ещё не готов., +Back again? What do you need?,TXT_DLG_SCRIPT34_D13644_BACKA,,,,Scxhon zurück? Was brauchst du?,¿De vuelta otra vez? ¿Qué necesitas?,,Déjà de retour? De quoi avez-vous besoin?,,,,Ты вернулÑÑ? Что тебе нужно?, +I'm out of bullets.,TXT_RPLY0_SCRIPT34_D13644_IMOUT,,,,Ich habe keine Munition mehr.,No me quedan balas.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT34_D13644_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes un poco de munición. No la gastes.,,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT34_D13644_YOUVE,,,,Du hast genug.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ð¸Ñ… доÑтаточно., +Teach me.,TXT_RPLY1_SCRIPT34_D13644_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +"All right, this should keep you going for a while.",TXT_RYES1_SCRIPT34_D13644_ALLRI,,,,"Alles klar, das sollte fürs erste reichen.","Muy bien, esto te mantendrá a punto durante un tiempo.",,"Bien, ça devrait vous suffir pour un bon moment.",,,,"Хорошо, Ñто не раз ÑпаÑÑ‘Ñ‚ тебе жизнь.", +"Sorry, can't. I'm just following Macil's orders.",TXT_RNO1_SCRIPT34_D13644_SORRY,,,,"Tut mir leid, aber ich kann nicht. Ich folge nur Macils Befehlen.","Lo siento, no puedo. Solo sigo órdenes de Macil.",,"Désolé, pas possible. Je ne fais que suivre les ordres de Macil.",,,,"Увы, не могу. Я подчинÑÑŽÑÑŒ ÐœÑйÑилу.", +"Well which is it, bullets or training? I can't wait to get my hands on those new weapons we captured. Once I get done with them, I'll be able to begin training everyone else.",TXT_DLG_SCRIPT34_D15160_WELLW,,,,"Also, was willst du? Munition oder Training? Ich kann kaum erwarten, diese neuen Waffen, die wir erbeutet haben, in die Finger zu kriegen. ein bisschen Training und dann jede Menge Vergeltung.","Bueno ¿qué va a ser?, ¿balas o entrenamiento? No puedo esperar a tener en mis manos esas nuevas armas que hemos capturado. En cuanto termine con ellas, podré empezar a entrenar al resto.",,"Qu'est-ce qu'il vous faut? Des munitions ou de l'entraînement? J'ai hâte d'essayer ces nouvelles armes que l'on a capturé, un peu d'entraînement et beaucoup de vengeance.",,,,"Что теперь, патроны или тренировка? Мне не терпитÑÑ Ð¾Ð¿Ñ€Ð¾Ð±Ð¾Ð²Ð°Ñ‚ÑŒ Ñто новое трофейное оружие. Чуть-чуть тренировки, и они за вÑÑ‘ заплатÑÑ‚.", +I'm out of ammo.,TXT_RPLY0_SCRIPT34_D15160_IMOUT,,,,Ich habe keine Munition mehr.,No me queda minicion.,,Je suis à cours de munitions.,,,,У Ð¼ÐµÐ½Ñ ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ боеприпаÑÑ‹., +Here's some ammo for you. Don't waste it.,TXT_RYES0_SCRIPT34_D15160_HERES,,,,Hier hast du welche. Verschwende sie nicht.,Aquí tienes un poco de munición. No la gastes.,Aquí tienes un poco de munición. No la desperdicies.,"En voilà pour vous, ne les gaspillez pas.",,,,Можешь взÑÑ‚ÑŒ немного. Ðе трать их понапраÑну., +You've got enough ammo.,TXT_RNO0_SCRIPT34_D15160_YOUVE,,,,Du hast genug.,Tienes suficiente munición.,,Vous avez assez de munitions.,,,,У Ñ‚ÐµÐ±Ñ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ патронов., +Teach me.,TXT_RPLY1_SCRIPT34_D15160_TEACH,,,,Unterrichte mich.,Enséñame.,,Apprenez-moi.,,,,Обучи менÑ., +O.K. Take what you've learned and show those Order bastards the way to hell.,TXT_RYES1_SCRIPT34_D15160_OKTAK,,,,"OK. Nutze, was du hier gelernt hast um diesen Tölpeln vom Orden den Weg in die Hölle zu zeigen.",OK. Toma lo que has aprendido y muéstrales a los de la Orden el camino al infierno.,,OK. Utilisez ce que vous avez appris et envoyez ces abrutis de l'Ordre en enfer.,,,,"Запоминай внимательно, покажешь Ñтим прихвоÑтнÑм Ордена быÑтрую дорогу в ад.", +"Come back later, when Macil says it's time.",TXT_RNO1_SCRIPT34_D15160_COMEB,,,,"Komm wieder, wenn Macil dir Bescheid gibt.","Vuelve más tarde, cuando Macil diga que es hora.",,Revenez plus tard quand Macil décide qu'il est temps.,,,,"Приходи позже, когда прикажет ÐœÑйÑил.", +I've taught you everything I can right now. Give me some time to put the new weapons through their paces. That is unless you're out of bullets.,TXT_DLG_SCRIPT34_D16676_IVETA,,,,"Ich habe dir alles gezeigt, was ich momentan kann. Gib mir etwas Zeit um die neuen Waffen zu testen. Munition kriegst du natürlich auch so.","Te he enseñado todo lo que puedo de momento. Dame algo de tiempo para poner esas nuevas armas a punto. Eso es, a menos que estés sin balas.",,"Je vous ai enseigné tout ce que je sais. Laissez moi un peu de temps pour tester ces nouvelles armes. Sauf si vous n'avez plus de munitions, bien sûr.",,,,Я не могу научить Ñ‚ÐµÐ±Ñ Ð½Ð¸Ñ‡ÐµÐ¼Ñƒ новому прÑмо ÑейчаÑ. Дай мне Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð·Ð¾Ð±Ñ€Ð°Ñ‚ÑŒÑÑ Ð² Ñтом новом оружии. Или у Ñ‚ÐµÐ±Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¸ÑÑŒ патроны?, +Yes I am.,TXT_RPLY0_SCRIPT34_D16676_YESIA,,,,"Ja, bin ich.",Eso mismo.,,"En effet, je le suis.",,,,"Да, закончилиÑÑŒ.", +Here you go.,TXT_RYES0_SCRIPT34_D16676_HEREY,,,,Bitteschön.,Aquí tienes.,,Voilà pour vous.,,,,Держи., +"Don't get trigger happy in the town, you'll set off the alarm and they will start sending in guards from the castle.",TXT_DLG_SCRIPT34_D18192_DONTG,,,,"Fang nicht an, hier in der Stadt herumzuballern. Wenn du hier den Alarm auslöst, senden sie gleich die Truppen aus der Burg.","No te lies a tiros en el pueblo, activarás las alarmas y empezarán a enviar guardias desdel el castillo.",,Ne tirez pas partout en ville. Vous risquez de déclencher l'alarme et ils enverront tous les gardes du château à vos trousses.,,,,"Когда будешь в городе, не ÑтрелÑй направо и налево. ЕÑли Ñ‚Ñ‹ поднимешь тревогу, они вызовут подкрепление из замка.", +"Welcome, we can always use more help.",TXT_DLG_SCRIPT34_D19708_WELCO,,,,"Willkommen, wir können immer etwas Hilfe gebrauchen.","Bienvenido, siempre nos viene bien algo de ayuda.",,Bienvenue. Nous apprécions toute l'aide que nous pouvons recevoir.,,,,Добро пожаловать. Ðам вÑегда пригодитÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ., +"When I was still in action we had the chance to examine an acolyte before the reinforcements arrived, they're not human I tell you.",TXT_DLG_SCRIPT34_D21224_WHENI,,,,"Als ich noch aktiv war, hatten wir mal die Möglichkeit, einen der Ministranten zu untersuchen, bevor Verstärkung eintraf. Hör zu, sie sind nicht menschlich!","Cuando aún estaba en acción tuvimos la oportunidad de examinar un acólito antes de que llegaran los refuerzos, te digo que no son humanos.",,"Quand j'étais encore en service, j'ai eu l'opportunité d'examiner un acolyte avant que les renforts n'arrivent. Vous savez, ils ne sont pas humains.",,,,"Пока Ñ Ð±Ñ‹Ð» в оперативной группе, нам удалоÑÑŒ вÑкрыть одного из Ñлужителей, прежде чем прибыло подкрепление. Так вот, они не люди.", +"We're trying to find where the castle gate mechanisms are, but so far we've had no luck.",TXT_DLG_SCRIPT34_D22740_WERET,,,,"Wir versuchen herauszufinden, von wo das Burgtor kontrolliert wird, aber bisher hatten wir kein Glück.","Estamos intentando encontrar donde están los mecanismos de la puerta del castillo, pero por ahora no hemos tenido suerte.",,"On essaie de trouver où se trouvent les contrôles de la porte du château, mais pour l'instant, on les a pas encore localisés.",,,,"Мы пытаемÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸ замка, но пока безуÑпешно. +", +"Don't get caught. I've heard horror stories about what they do to our people after they're imprisoned. They just disappear, no traces, nothing. ",TXT_DLG_SCRIPT34_D24256_DONTG,,,,"Lass dich nicht erwischen. Ich habe Horrorgeschichten darüber gehört, was sie unseren Leuten antun, die sie gefangengenommen haben. Sie verschwinden einfach... ohne jede Spur.","Que no te atrápen. He oído historias de terror sobre lo que hacen con nuestra gente despues de estar presa. Símplemente desaparecen, ni rastro, nada.","Que no te atrápen. He oído historias de terror sobre lo que hacen con nuestra gente despues de estar encarcelados. Símplemente desaparecen, ni rastro, nada.",Ne vous faites pas avoir. J'ai entendu des choses horribles sur ce qu'ils font à ceux qu'ils emprisonnent. Ils disparaîssent... Sans laisser de trace.,,,,"Ðе дай ÑÐµÐ±Ñ Ñхватить. Я Ñлышал ужаÑные иÑтории о том, что они делают Ñ Ð°Ñ€ÐµÑтованными. Те проÑто иÑчезают... без Ñледа.", +"Here's some advice, if you ever see any of the Order's tin soldiers, run the other way. I especially don't like the Reavers, those things are just damned fast!",TXT_DLG_SCRIPT34_D25772_HERES,,,,"Hier ist ein guter Rat, falls du jemals einen dieser Zinnsoldaten des Ordens vorbeigehen siehst. Sie sind schnell und brutal. ","Un consejo, si ves algún soldadito de la Orden, da la vuelta y corre. En especial no me gustan los Saqueadores, ¡esas cosas son jodidamente rápidas!",,"Voilà un conseil. Si vous voyez un des soldats mécanisés de l'Ordre, retournez vous et courez. Ils sont rapides et brutaux. J'aime surtout pas les Reavers, ces satanés trucs vont trop vite!",,,,"Ðебольшой тебе Ñовет: еÑли увидишь «оловÑнных Ñолдатиков» Ордена, Ñворачивай в другую Ñторону. Они быÑтры и жеÑтоки.", +"Welcome to the last flicker of hope. Only we have the free will to oppose the Order. We have the sharpest scientific minds, and many able bodies. But we lack that one real problem solver, who will give us the edge we need.",TXT_DLG_SCRIPT34_D27288_WELCO,,,,"Wilkommen beim letzten Hoffnungsschimmer. Nur wir haben noch den freien Willen, um gegen den Orden zu arbeiten. Wir haben die besten Wissenschaftler und viele fähige Kämpfer aber was uns fehlt ist ein spezieller Problemlöser, der uns den nötigen Vorteil verschafft.","Bienvenido al último destello de esperanza. Solo nosotros tenemos el libre albedrío para oponernos a la Orden. Tenemos las mentes científicas más brillantes, y muchos cuerpos capaces. Pero nos falta un verdadero solucionador de problemas, alguien que nos de la ventaja que necesitamos.",,"Bienvenue au dernier lieu d'espoir. Nous seuls avons la liberté d'esprit pour opposer l'Ordre. Nous avons les esprits scientifiques les plus aiguisés et de nombreux hommes habiles et sains.. Mais il nous manque quelqu'un qui pourrait.. résoudre nos problèmes. Nous donner un peu d'aide, nous permettre de prendre l'avantage.",,,,"Добро пожаловать в поÑледний оплот надежды. Только мы обладаем Ñвободной волей, чтобы противоÑтоÑÑ‚ÑŒ Ордену. С нами лучшие учёные умы, и у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ много толковых людей, но нам не хватает одного-единÑтвенного, Ñ... Â«Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Â», который поможет нам получить необходимое преимущеÑтво.", +What will I need to do? ,TXT_RPLY0_SCRIPT34_D27288_WHATW,,,,Was muss ich tun?,¿Qué necesito hacer?,,Que dois-je faire?,,,,Что Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñделать?, +Help us. Help us steal their technology. Free our comrades. Fight these twisted psychopaths to the death. I'm asking you to risk your life for the truth.,TXT_DLG_SCRIPT34_D28804_HELPU,,,,"Hilf uns. Hilf uns ihre Technologie zu stehlen. Befreie unsere Kameraden. Bekämpfe diese verwirrten Psychopathen bis zum Tod. Ich bitte dich, dein Leben zu riskieren um die Wahrheit zu verteidigen.",Ayúdanos. Ayúdanos a robar su tecnología. Libera a nuestros camaradas. Lucha contra estos retorcidos psicópatas hasta la muerte. Te estoy pidiendo que arriesgues tu vida por la verdad.,,Aidez nous. Aidez nous à voler leur technologie. Libérer nos camarades. Combattre ces psychopathes jusqu'à la mort. Je vous demande de risquer votre vie pour la vérité.,,,,Помочь нам. Помочь нам украÑÑ‚ÑŒ их технологии. ОÑвободить наших товарищей. СразитьÑÑ Ñ Ñтими извращёнными пÑихопатами и убить их. РиÑкнуть Ñвоей жизнью ради правого дела., +I'm with you!,TXT_RPLY0_SCRIPT34_D28804_IMWIT,,,,Ich bin dabei.,¡Estoy contigo!,,Je suis avec vous!,,,,Хорошо! Я Ñ Ð²Ð°Ð¼Ð¸!, +"Good. Blackbird will continue to be your guide. She's taken quite a shine to you. Together, you've got to unlock the secrets of the Order and their inhuman servants. There's a presence that lurks just outside our understanding which guides their terror. Get inside and take them down. ",TXT_DLG_SCRIPT34_D30320_GOODB,,,,"Gut so! Blackbird wird weiter deine Leiterin sein, sie scheint dich zu mögen. Zusammen müsst ihr die Geheimnisse des Ordens und ihrer unmenschlichen Diener ergründen. Dann haben wir eine Chance, sie niederzuringen. Da ist eine Präsenz außerhalb unseres Vorstellungsvermögens, das diesen Terror leitet. Wir müssen sie unterwandern und dann vernichten.","Bien. Blackbird continuará siendo tu guía. Le caes bastante bien. Juntos, teneis que desvelar los secretos de la Orden y sus sirvientes inhumanos. Hay una presencia que acecha más allá de nuestro conocimiento que guía su terror. Adéntrate y derríbalos.","Bien. Blackbird continuará siendo tu guía. Le caes bastante bien. Juntos, deberán que desvelar los secretos de la Orden y sus sirvientes inhumanos. Hay una presencia que acecha más allá de nuestro conocimiento que guía su terror. Adéntrate y derríbalos.","Parfait. Blackbird continuera à être votre guide. Elle semble vous apprécier. Ensemble, vous allez découvrir les secrets de l'Ordre et leurs servants inhumains. Il existe une présece qui rôde juste au dehors de notre compréhension qui guide cette terreur. Infiltrez-les et détruisez-les.",,,,Хорошо. Чёрный дрозд оÑтанетÑÑ Ñ‚Ð²Ð¾Ð¸Ð¼ проводником. Она тебе неÑколько Ñимпатизирует. ВмеÑте вы раÑкроете Ñекреты Ордена и его беÑчеловечных Ñлуг. За Ñтим ужаÑом Ñтоит нечто лежащее далеко за пределами нашего пониманиÑ. Проникни на их территорию и ударь по ним как Ñледует!, +Let me at 'em!,TXT_RPLY0_SCRIPT34_D30320_LETME,,,,Lass mich das nur machen.,¡Voy a por ellos!,¡Voy por ellos!,Laissez moi m'en occuper!,,,,Я им покажу!, +That's the spirit.,TXT_RYES0_SCRIPT34_D30320_THATS,,,,Das ist die richtige Einstellung.,Ese es el espíritu.,,J'aime entendre ça.,,,,Правильный наÑтрой., +Welcome friend!,TXT_DLG_SCRIPT34_D31836_WELCO,,,,"Wilkommen, Freund.",¡Bienvenido amigo!,,"Bievenue, notre ami!",,,,"Добро пожаловать, друг!", +,,,Random dialogue,,,,,,,,,, +Please don't hurt me.,TXT_RANDOM_PEASANT_01,,,,Bitte tu mir nicht weh.,Por favor no me haga daño.,,"S'il vous plaît, laissez-moi tranquille.",Kérlek ne bánts!,Ti prego non farmi male.,"Por favor, nao me machuque.","ПожалуйÑта, не трогай менÑ.", +"If you're looking to hurt me, I'm not really worth the effort.",TXT_RANDOM_PEASANT_02,,,,"Falls du mir was antun willst, ich bin den Aufwand nicht wert.","Si está tratando de hacerme daño, no vale la pena realmente.",,"Si vous cherchez à me faire mal, Je n'en mérite pas l'effort.","Ha bántani akarsz, nem éri meg a fáradozást.","Sembra che tu voglia farmi del male, ma davvero, non ne valgo lo sforzo.","Se pretende me machucar, te digo que nao valera a pena.","ЕÑли Ñ‚Ñ‹ хочешь ударить менÑ, то Ñто не Ñтоит того.", +I don't know anything.,TXT_RANDOM_PEASANT_03,,,,Ich weiß nichts.,No se nada.,,Je ne sais rien.,Én semmit sem tudok.,Non so nulla.,Eu nao sei de nada.,Я ничего не знаю., +Go away or I'll call the guards!,TXT_RANDOM_PEASANT_04,,,,Hau ab oder ich rufe die Wachen!,¡Vete o llamaré a los guardias!,,Allez vous en ou j'appelle les gardes!,"Tűnj innen, vagy hívom az Å‘röket!",Vattene o chiamo le guardie!,Va embora antes que eu chame os guardas!,"Уходи, или Ñ Ð¿Ð¾Ð·Ð¾Ð²Ñƒ Ñтражу!", +I wish sometimes that all these rebels would just learn their place and stop this nonsense.,TXT_RANDOM_PEASANT_05,,,,"Manchmal wünsche ich mir, dass diese Rebellen ihren Unsinn stoppen würden.",A veces deseo que todos los rebeldes simplemente aprendieran a vivir y se dejaran de tonterías.,A veces deseo que todos los rebeldes simplemente aprendan a vivir y parar con este absurdo.,"Je voudrais qu'a un moment, ces rebelles apprennent quelle est leur place et arrètent cette idiotie.","Néha azt kívánom, hogy ezek a lázadók bár megtanulnák, hol a helyük, és felhagynának ezzel az eszeveszett dologgal.",A volte vorrei che tutti questi ribelli imparassero semplicemente a stare al loro posto e la smettessero con tutte queste fesserie.,Eu queria que esses rebeldes soubessem se por em seu lugar e parassem com essa maluquice.,"Иногда мне хочетÑÑ, чтобы вÑе Ñти повÑтанцы проÑто понÑли Ñвоё меÑто и прекратили беÑÑмыÑленное Ñопротивление.", +"Just leave me alone, OK?",TXT_RANDOM_PEASANT_06,,,,"Lass mich bitte in Ruhe, ok?","Déjame en paz, ¿vale?","Déjame solo, ¿de acuerdo?","Laissez moi seul, OK?","Csak hagyj magamra, jó?","Lasciami in pace e basta, OK?","So me deixa em paz, OK?","ПроÑто оÑтавь Ð¼ÐµÐ½Ñ Ð² покое, хорошо?", +"I'm not sure, but sometimes I think that I know some of the acolytes.",TXT_RANDOM_PEASANT_07,,,,"Ich bin nicht ganz sicher, aber manchmal kommt es mir vor, als kenne ich diese Ministranten.","No estoy seguro, pero a veces creo que reconozco a algunos de los acólitos.","No estoy seguro, pero a veces creo que ya conozco a algunos de los acólitos.","Je ne suis pas sûr, mais quelque fois je pense reconnaître certains des acolytes.","Nem vagyok benne bizonyos, de néha mintha ismerném némelyik ministránst.","Non ne sono sicuro, ma volte mi sembra di conoscere alcuni degli accoliti.","Eu nao tenho certeza, mas acho que conheco alguns dos acolytes.","Я не уверен, но порой мне кажетÑÑ, что Ñ ÑƒÐ·Ð½Ð°ÑŽ некоторых Ñлужителей.", +The Order's got everything around here pretty well locked up tight.,TXT_RANDOM_PEASANT_08,,,,Der Orden hat hier alles ziemlich gut unter Kontrolle.,La orden tiene todo por aquí fuertemente bloqueado.,,L'ordre maintient la sûreté aux alentours.,A Rend mindent jól elzárt elÅ‘lünk.,L'Ordine si è dato parecchio da fare per chiudere e sbarrare un po' tutto qui in giro.,A Ordem mantem tudo trancado a sete chaves.,Орден держит тут вÑÑ‘ под замком., +There's no way that this is just a security force.,TXT_RANDOM_PEASANT_09,,,,Das sind niemals nur Sicherheitskräfte.,No hay manera de que esto sea sólo una fuerza de seguridad.,,Ca ne peut pas être juste une escouade de sécurité...,Na ez már tutira nem lehet csak a biztonsági szolgálat.,"E' impossibile che questa sia solo una ""Forza di Sicurezza"".",Nao tem como isso ser uma forca de seguranca.,Эта Ñлужба безопаÑноÑти не даёт и шагу Ñтупить без ÑпроÑа., +I've heard that the Order is really nervous about the Front's actions around here.,TXT_RANDOM_PEASANT_10,,,,"Ich habe gehört, dass der Orden sehr beunruhigt über die Aktionen der Front ist.",He oído que la orden está realmente nerviosa por las acciones del frente en los alrededores.,,J'ai entendu dire que l'ordre était sur les nerfs à cause des actions du front.,Úgy hírlik A Rend nagyon ideges a Front munkálkodásai miatt mostanság.,Ho sentito che l'Ordine è parecchio nervoso riguardo le azioni del Fronte nei dintorni.,Eu soube que a Ordem esta bem nervosa por causa das acoes dos opositores por aqui.,"Я Ñлыхал, что Орден Ñерьёзно обеÑпокоен дейÑтвиÑми повÑтанцев в Ñтом районе.", +There's no way the Order will stand against us.,TXT_RANDOM_REBEL_01,,,,Niemals wird sich der Orden gegen uns stellen!,No hay forma de que la orden aguante contra nosotros.,No hay forma de que la orden se levante contra nosotros.,L'ordre n'a aucune chance contre nous.,A Rend labdába sem rúghat ellenünk!,Non esiste che l'Ordine possa mettersi contro di noi.,Nao ha como a Ordem ficar contra a gente.,Ордену никак не уÑтоÑÑ‚ÑŒ против наÑ., +We're almost ready to strike. Macil's plans are falling in place.,TXT_RANDOM_REBEL_02,,,,Wir sind zum großen Schlag bereit. Macils Plane werden bald umgesetzt.,Estamos casi listos para atacar. Los planes de Macil están cayendo en su lugar.,Estamos casi listos para atacar. Los planes de Macil se están cayendo en su lugar.,Nous sommes presque prêts à agir. Les plans de Macil se déroulent comme prévu.,"Már majdnem készen állunk, hogy lecsapjunk. Macil tervei kezdenek bejönni.",Siamo quasi pronti a colpire. I piani di Macil stanno andando lisci come l'olio.,Estamos quase prontos para o ataque. Os planos de Macil estao fazendo efeito.,Мы почти готовы атаковать. Планы ÐœÑйÑила ÑтановÑÑ‚ÑÑ ÑÑны., +"We're all behind you, don't worry.",TXT_RANDOM_REBEL_03,,,,"Wir stehen zu dir, keine Sorge.","Todos estamos detrás de ti, no te preocupes.",,"On couvre tes arrières, t'inquiète pas.","Mind itt vagyunk mögötted, ne aggódj!","Non preoccuparti, ti copriamo tutti le spalle.","Estamos todos lhe protegendo, nao se preocupe.",Ðе беÑпокойÑÑ. Мы Ñразу за тобой., +Don't get too close to any of those big robots. They'll melt you down for scrap!,TXT_RANDOM_REBEL_04,,,,Komm diesen großen Robotern nicht zu nahe. Die schmelzen dich zu Schrott ein.,No te acerques tanto a uno de esos robots grandes. ¡Podrían derretirte para chatarra!,,Ne vous approchez pas trop des gros robots. Ils vous brûleront jusqu'à l'os!,Azokhoz a nagy robotokhoz ne nagyon menj közel. Felaprítanak tüzifának!,,Nem pense em ficar perto daqueles robos. Te transformam em ferro velho em um instante!,ДержиÑÑŒ подальше от Ñтих больших роботов. Они и мокрого меÑта от Ñ‚ÐµÐ±Ñ Ð½Ðµ оÑтавÑÑ‚!, +"The day of our glory will soon come, and those who oppose us will be crushed!",TXT_RANDOM_REBEL_05,,,,"Der Tag des Triumphes ist nahe, und die, die gegen uns sind, werden vernichtet.","¡El día de nuestra gloria llegará pronto, y aquellos que se opusieron a nosotros serán destruidos!",,"Le jour de gloire arrivera bientôt, et ceux qui s'opposeront a nous seront écrasés!","DicsÅ‘ségünk napja hamarosan eljön, és akik ellenünk szegülnek, elkárhoznak.",,"O dia de nossa gloria chegara, e aqueles que se opuserem serao esmagados!","Близок день нашего триумфа, Ñкоро наши враги будут уничтожены!", +Don't get too comfortable. We've still got our work cut out for us.,TXT_RANDOM_REBEL_06,,,,"Werd nicht leichtsinnig, es gibt noch eine Menge zu tun.",No te pongas muy cómod@[ao_esp]. Ya tenemos nuestro propio trabajo asignado a cada uno.,,Ne vous reposez pas sur vos lauriers. Du travail nous attend encore.,Annyira azért ne érezd otthon magad. Nekünk még van némi munka kiosztva idelenn.,,Nao fique muito confortavel. Ainda temos trabalho a fazer.,Ðе раÑÑлаблÑйÑÑ. У Ð½Ð°Ñ Ð¿Ð¾-прежнему хватает дел., +Macil says that you're the new hope. Bear that in mind.,TXT_RANDOM_REBEL_07,,,,Macil nennt dich unsere neue Hoffnung. Vergiss das nicht.,Macil dice que eres la nueva esperanza. Ten eso en mente.,,Macil nous dit que tu es notre nouvel espoir. Garde ca à l'esprit.,Macil szerint te vagy az új reményünk. Ezt sose feledd!,,Macil disse que voce e a nova esperanca. Lembre-se disso.,"ÐœÑйÑил говорит, что на Ñ‚ÐµÐ±Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð²ÑÑ Ð½Ð°Ð´ÐµÐ¶Ð´Ð°. Имей Ñто в виду.", +"Once we've taken these charlatans down, we'll be able to rebuild this world as it should be.",TXT_RANDOM_REBEL_08,,,,"Wenn wir diese Scharlatane entmachtet haben, können wir unsere Welt endlich neu aufbauen.","Una vez que hayamos eliminado a estos charlatanes, podremos reconstruir este mundo como debe ser.","Una vez que hayamos bajado a estos charlatanes, podremos reconstruir este mundo como debe ser.","Une fois que nous nous serons débarassés de ces charlatans, nous serons capable de rebâtir le monde tel qu'il devrait être.","Amint lenyomtuk ezeket a sarlatánokat, végre újjáépíthetjük ezt a világot olyanra, amilyennek lennie kéne.",,"Assim que derrubarmos esses charlatas, poderemos reconstruir o mundo do jeito certo.","Когда мы Ñвергнем Ñтих шарлатанов, то Ñможем воÑÑоздать Ñтот мир таким, каким он должен быть.", +"Remember that you aren't fighting just for yourself, but for everyone here and outside.",TXT_RANDOM_REBEL_09,,,,"Vergiß nicht, dass du nicht nur für dich selbst kämpfst, sondern für alle von uns da draußen.","Recuerda que no estás peleando solo por ti, sino por todos aquí y afuera.","Recuerda que no estás peleando sol@[ao_esp] por ti, sino por todos aquí y afuera.","Souviens-toi, tu ne te bas pas seulement pour toi, mais pour tous le monde ici et ailleurs.","Ne feledd, nem csak magadért harcolsz, hanem mindnyájunkért idebent, és odakint.",,"Lembre-se que nao esta lutando por si mesmo, mas por todos nos.","Помни, Ñ‚Ñ‹ ÑражаешьÑÑ Ð½Ðµ только за ÑебÑ, но и за каждого здеÑÑŒ и Ñнаружи.", +"As long as one of us still stands, we will win.",TXT_RANDOM_REBEL_10,,,,"Solange nur einer von uns steht, werden wir gewinnen.","Mientras uno de nosotros siga en pie, ganaremos.",,"Aussi longtemps qu'un de nous est vivant, nous vaincrons.","Ha csak egy is marad meg közülünk, nyerni fogunk.",,"Enquanto um de nos ainda estiver em pe, teremos chance de vencer.","Пока Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из Ð½Ð°Ñ ÐµÑ‰Ñ‘ дышит, мы непобедимы.", +"Move along, peasant.",TXT_RANDOM_AGUARD_01,,,,"Beweg dich, Bauer!","Muévete, plebeyo.",,"Barre-toi, paysan!","Mozgás, paraszt. Egy kettÅ‘.",,Continue andando.,"Проходи, рабочий.", +"Follow the true faith, only then will you begin to understand.",TXT_RANDOM_AGUARD_02,,,,Folge dem wahren Glauben und du wirst verstehen.,"Sigue la fe verdadera, sólo entonces empezarás a entender.",,"Suis la vraie foi, tu commençeras a comprendre.","Csak ha az igaz hitet követed, csakis akkor kezded majd megérteni.",,Siga a verdadeirta fe e entao comecara a entender.,Следуй иÑтинной вере. Только тогда Ñ‚Ñ‹ начнёшь понимать., +Only through death can one be truly reborn.,TXT_RANDOM_AGUARD_03,,,,Nur durch den Tod kann man wirklich wiedergeboren werden.,Sólo a través de la muerte uno puede realmente renacer.,,C'est seulement a travers la mort que quelqu'un peut renaître.,Csak a halál útján lehet igazán újjászületni.,,Somente atraves da morte que alguem podera renascer.,ИÑтинное перерождение возможно только через Ñмерть., +I'm not interested in your useless drivel.,TXT_RANDOM_AGUARD_04,,,,Dein nutzloses Geschwafel interessiert mich nicht.,No estoy interesado en tu charlatanería.,No estoy interesado en tus inútiles tonterías.,Je ne suis pas intéressé par tes idioties inutiles.,Nem érdekel az értelmetlen hablatyolásod.,,Nao estou interessado em lhe ouvir.,Мне неинтереÑна Ñ‚Ð²Ð¾Ñ Ð±ÐµÑÑмыÑÐ»ÐµÐ½Ð½Ð°Ñ Ð±Ð¾Ð»Ñ‚Ð¾Ð²Ð½Ñ., +If I had wanted to talk to you I would have told you so.,TXT_RANDOM_AGUARD_05,,,,"Wenn ich mich mit dir unterhalten wollte, hätte ich dir das gesagt.",Si hubiera querido hablar contigo te lo habría dicho.,,Si j'avais voulu te parler je te l'aurais dit.,"Ha beszélni akartam volna veled, azt mondtam volna.",,"Se quisesse falar com voce, eu mesmo teria te dito.","ЕÑли бы Ñ Ñ…Ð¾Ñ‚ÐµÐ» поговорить Ñ Ñ‚Ð¾Ð±Ð¾Ð¹, то Ñказал бы об Ñтом.", +Go and annoy someone else!,TXT_RANDOM_AGUARD_06,,,,Bitte nerve jemand anderen.,¡Ve a molestar a otro!,,Va ennuyer quelqu'un d'autre!,Menj és idegesíts valaki mást!,,Va pertubar outro!,Иди и надоедай кому-нибудь другому!, +Keep moving!,TXT_RANDOM_AGUARD_07,,,,Beweg dich!,¡Sigue tu camino!,,Bouge!,Mozgás!,,Continue andando!,Иди куда шёл!, +"If the alarm goes off, just stay out of our way!",TXT_RANDOM_AGUARD_08,,,,"Wenn der Alarm losgeht, steh uns nicht im Weg!","¡Si la alarma se activa, sólo quítate de nuestro camino!",,"Si l'alarme s'enclenche, reste en dehors de notre chemin!","Ha beindul a riasztó, csak ne állj az utunkba.",,"Se o alarme disparar, nao fique no nosso caminho!","ЕÑли подниметÑÑ Ñ‚Ñ€ÐµÐ²Ð¾Ð³Ð°, не попадайÑÑ Ð½Ð°Ð¼ под ноги!", +The order will cleanse the world and usher it into the new era.,TXT_RANDOM_AGUARD_09,,,,Der Orden wird die Welt läutern und in eine neue Ära führen.,La orden limpiará el mundo y marcará el inicio de la nueva era.,,L'ordre nettoira le monde et le conduira dans une nouvelle ère.,"A Rend megtisztítja a világot, és egy új korszakba vezeti.",,A Ordem vai limpar o mundo e arruma-lo dentro da nova era.,Орден очиÑтит мир и начнётÑÑ Ð½Ð¾Ð²Ð°Ñ Ñра., +"Problem? No, I thought not.",TXT_RANDOM_AGUARD_10,,,,"Hast du Probleme? Nein, ich glaube nicht.","¿Algún problema? No, no lo creo.",,Un problème? Je pense que non.,Baj van? Nem? Én is így gondoltam.,,Algum problema? Eu acho que nao.,"Проблемы? КажетÑÑ, нет.", +Alms for the poor?,TXT_RANDOM_BEGGAR_01,,,,Almosen für die Armen.,¿Limosnas para los pobres?,,L'aumône pour les pauvres?,Alamizsna a szegényeknek?,,Uma ajuda para os pobres?,У Ñ‚ÐµÐ±Ñ Ð½Ðµ найдётÑÑ Ð¼ÐµÐ»Ð¾Ñ‡Ð¸ Ð´Ð»Ñ Ð±ÐµÐ´Ð½Ñка?, +"What are you looking at, surfacer?",TXT_RANDOM_BEGGAR_02,,,,"Wonach suchst du, Oberflächler?","¿Que estas mirando, prejuicios@[ao_esp]?",,"Tu regarde qui, habitant de la surface?","Mit nézel, felszínlakó?",,"O que esta olhando, terrestre?","Что уÑтавилÑÑ, незнакомец?", +"You wouldn't have any extra food, would you?",TXT_RANDOM_BEGGAR_03,,,,"Du hast nichts zu Essen übrig, oder?","¿No tendría algo de comida, verdad?",,Aurais-tu de la nourriture en trop sur toi?,"Nincs egy kis felesleges ételed, ugye?",,"Voce nao tem comida, tem?",У Ñ‚ÐµÐ±Ñ Ñлучайно не найдётÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ лишней еды?, +You surface people will never understand us.,TXT_RANDOM_BEGGAR_04,,,,Ihr Oberflächenleute werdet uns nie verstehen.,Ustedes gente de la superficie nunca podrán entendernos.,,"Vous, les gens de la surface, vous ne comprendrez jamais.",Ti felszíniek sosem fogtok megérteni minket.,,Voces da superficie nunca nos entenderao.,"Ð’Ñ‹, люди Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти, никогда не поймёте наÑ.", +"Ha, the guards can't find us. Those idiots don't even know we exist.",TXT_RANDOM_BEGGAR_05,,,,"Ha, die Wächter können uns nicht finden. Die Idioten ahnen nicht mal, dass wir existieren.","Ja, los guardias no nos encontrarán. Esos idiotas ni siquiera saben que existimos.",,"Ha, les gardes ne nous trouveront jamais, ces idiots ne savent même pas qu'on existe!","Ha! Az Å‘rök az életben nem találnak meg minket. Azok a barmok azt sem tudják, hogy létezünk.",,"Ha, os guardas nunca nos acharao. Estes idiotas nem sabem que existimos.","Ха, Ñтражники не могут найти наÑ. Эти дураки даже не знают, что мы ÑущеÑтвуем.", +One day everyone but those who serve the Order will be forced to join us.,TXT_RANDOM_BEGGAR_06,,,,"Eines Tages werden alle, die nicht dem Orden dienen, sich uns anschließen.","Un día, todos excepto aquellos que sirvan a la Orden serán forzados a unirse a nosotros.",,"Un jour, tous sauf les membres de l'ordre seront forcés de nous rejoindre.","Egy nap mindenki, kivéve a Rend szolgálói arra kényszerülnek majd, hogy hozzánk tartozzanak.",,"Um dia todos, exceto aqueles que servem a Ordem, se juntarao a nos.","Рано или поздно к нам приÑоединÑÑ‚ÑÑ Ð²Ñе, кто не Ñлужит Ордену.", +"Stare now, but you know that this will be your own face one day.",TXT_RANDOM_BEGGAR_07,,,,"Glotz nur, aber irgendwann wirst du auch so aussehen.","Observe ahora, pero esté segur@[ao_esp] que esta podría ser su propia cara algún día.",,"Moque nous si tu veux, mais tu sais que ceci sera aussi ton sort un jour.","Bámulj csak, de tudd, hogy egy nap ez az arc a sajátod lesz.",,"Observe, pois este sera seu futuro um dia.","Смотри Ñколько влезет, но знай, что когда-нибудь так будет выглÑдеть и твоё лицо.", +There's nothing more annoying than a surfacer with an attitude!,TXT_RANDOM_BEGGAR_08,,,,Es gibt nichts nervigeres als einen Oberflächler mit Gesinnung.,¡No hay nada más irritante que una persona de la superficie con mala actitud!,,Il n'y rien de plus barbant qu'un type de la surface et son orgeuil!,Nincs bosszantóbb egy felszíninél ilyen hozzáállással.,,Nao ha nada mais irritante do que um da superficie com atitude!,"Ðичто так не выводит из ÑебÑ, как болтун Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти!", +The Order will make short work of your pathetic Front.,TXT_RANDOM_BEGGAR_09,,,,Der Orden wird eure armselige Front auseinandernehmen.,La Orden acabará fácilmente con su patético Frente.,,L'ordre se débarrassera de vos soldats pathétiques.,A Rendnek gyerekjáték lesz a szánalmas kis Frontotok.,,"A Ordem nao tera muito trabalho com voces, pateticos opositores.",Орден быÑтро раÑправитÑÑ Ñ Ñ‚Ð²Ð¾Ð¸Ð¼ беÑÑильным Ñопротивлением., +"Watch yourself, surfacer. We know our enemies!",TXT_RANDOM_BEGGAR_10,,,,"Pass nur auf, Oberflächler. Wir kennen unsere Feinde.","Mírese a si mism@[ao_esp], superficial. ¡Conocemos a nuestros enemigos!",,"Prend guarde a toi, habitant de la surface. Nous connaîssons nos ennemis!","Óvakodj, felszíni! Ismerjük az ellenségeinket!",,"Cuidado, o da superficie; Nos sabemos quem sao nossos inimigos!","ПооÑторожнее, человек Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти. Мы знаем, кто наш враг!", +We are the hands of fate. To earn our wrath is to find oblivion!,TXT_RANDOM_PGUARD_01,,,,Wir sind die Hände des Schicksals. Wer sich unseren Zorn verdient wird vernichtet!,Somos las manos del destino. ¡Encontrar nuestra ira es encontrar el olvido!,,Nous sommes les mains du destin. Apprendre notre colère est l'égal de trouver l'oubli!,"Mi vagyunk a sors keze. Kárhozatra ítéltetett, ki haragunkat elnyeri.",,"Nos somos as maos da fe. Se nos irritar, esqueca da gente!",Мы длани Ñудьбы. Прогневить Ð½Ð°Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°ÐµÑ‚ вÑтретить забвение!, +The Order will cleanse the world of the weak and corrupt!,TXT_RANDOM_PGUARD_02,,,,Der Orden wird die Welt von allem Schwachen und Korrupten säubern.,¡La orden limpiará el mundo de los débiles y los corruptos!,,L'ordre nettoira le monde des faibles et corrompus!,A Rend megtisztítja a világot a gyengéktÅ‘l és a korruptaktól!,,A Ordem limpara o mundo dos fracos e corruptos!,Орден очиÑтит мир от Ñлабых и порочных!, +Obey the will of the masters!,TXT_RANDOM_PGUARD_03,,,,Gehorche dem Willen der Meister.,¡Obedece la voluntad de los maestros!,,Obéissez à la volonté de vos maîtres!,Engedelmeskedj mestereink akaratának!,,Obedeca a lei dos mestres!,ПодчиниÑÑŒ воле хозÑев!, +Long life to the brothers of the Order!,TXT_RANDOM_PGUARD_04,,,,Lang lebe die Brüder des Ordens.,¡Larga vida a los hermanos de la Orden!,,Longue vie aux membres de l'Ordre!,Éljenek sokáig a Rend testvérei!,,Vida longa aos irmaos da Ordem!,Да здравÑтвуют Ð±Ñ€Ð°Ñ‚ÑŒÑ ÐžÑ€Ð´ÐµÐ½Ð°!, +Free will is an illusion that binds the weak minded.,TXT_RANDOM_PGUARD_05,,,,Freier Wille ist eine Illusion die die Schwachen fesselt.,El libre albedrio es una ilusión que une a los débiles de mente.,,La liberté de penser est l'illusion qui aveugle les faible d'esprit.,"A Szabad akarat egy illúzió, ami csupán a gyengéknek mentsvára.",,Livre arbitrio e uma ideia que passa em mentes fracas.,"Ð¡Ð²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ Ð²Ð¾Ð»Ñ â€” лишь иллюзиÑ, ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð°Ñ Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñлабыми духом.", +Power is the path to glory. To follow the Order is to walk that path!,TXT_RANDOM_PGUARD_06,,,,"Macht ist der Weg zum Ruhm. Dem Orden zu folgen bedeutet, diesen Weg zu gehen.",El poder es el camino a la gloria. ¡Seguir a la Orden es alcanzar ese camino!,,le pouvoir est le chemin de la gloire. Suivre l'ordre c'est suivre ce chemin!,"A dicsőéghez vezetÅ‘ út az erÅ‘. Aki A Rendet követi, ezt az utat járja.",,O poder e o caminho para a gloria. Siga a Ordem e andara por esse caminho!,Сила — путь к величию. Ð’Ñтупить в Ñ€Ñды Ордена означает пойти Ñтим путём!, +"Take your place among the righteous, join us!",TXT_RANDOM_PGUARD_07,,,,Nimm deinen Platz unter den Gerechten ein. ,"Tome su lugar entre los justos, ¡Únase a nosotros!",,"Prend ta place parmi les justes, rejoins nous!","Foglalj helyet az igazak között, csatlakozz hozzánk!",,"Tenha seu lugar junto com os certos, junte-se a nos!",Займи Ñвоё меÑто Ñреди праведных. ПриÑоединиÑÑŒ к нам!, +The order protects its own.,TXT_RANDOM_PGUARD_08,,,,Der Orden beschützt seine Jünger.,La Orden protege a los suyos.,La Orden se protege a los suyos.,L'ordre protège les siens.,A Rend a magáét védi.,,A Ordem protege a si propria.,Орден защищает Ñвоих., +Acolytes? They have yet to see the full glory of the Order.,TXT_RANDOM_PGUARD_09,,,,Ministranten? Die müssen erst noch die volle Macht des Ordens erfahren.,¿Acólitos? Ellos aún no han visto la gloria de nuestra Orden.,,Les Acolytes? Ils n'ont pas encore été témoins de la vraie gloire de l'ordre.,Ministránsok? Még nem látták A Rend igazi dicsÅ‘ségét.,,Acolytes? Eles ainda tem de ver a gloria total da Ordem.,Служители? Им ещё только предÑтоит узреть подлинное величие Ордена., +"If there is any honor inside that pathetic shell of a body, you'll enter into the arms of the Order.",TXT_RANDOM_PGUARD_10,,,"If there is any honour inside that pathetic shell of a body, you'll enter into the arms of the Order.","Wenn du noch einen Hauch von Ehre hast, wirst du dem Orden beitreten.","Si hay algo de honor dentro de esa patética cáscara de cuerpo, podrás entrar a los brazos de la Orden.",,"Si il y a une once de gloire dans ce corps pathétique, ceux de l'ordre te prendront parmi les leurs.","Ha csak egy csipetnyi becsület is van testednek szánalmas páncéljában, A Rend katonáinak sorába fogsz beállni.",,"Se ainda existe honra dentro de seu patetico corpo, voce vai entrar para os bracos da Ordem.","ЕÑли внутри Ñтой бренной телеÑной оболочки еÑÑ‚ÑŒ хоть ÐºÐ°Ð¿Ð»Ñ Ñ‡ÐµÑти, Ñ‚Ñ‹ приÑоединишьÑÑ Ðº Ордену.", +Bye!,TXT_RANDOMGOODBYE_1,,,,Tschüss!,¡Adiós!,,Au revoir!,Szervusz!,,Fui!,Пока!, +"Thanks, bye!",TXT_RANDOMGOODBYE_2,,,,"Danke, tschüss!","Gracias, ¡Adiós!",,"Merci, au revoir!","Köszi, szia!",,Muito obrigado.,"СпаÑибо, пока!", +See you later!,TXT_RANDOMGOODBYE_3,,,,Bis später!,¡Nos vemos!,,A plus tard!,KésÅ‘bb találkozunk!,,Ate mais tarde!,До вÑтречи!, +,,,Strife logs,,,,,,,,,, +"Hello? Command, a com unit has just been activated... Am receiving visuals and sound from... Somebody... Hey you, get out of there now... And drop the chalice!",TXT_ILOG1,,,,"Hallo, Kommandozentrale, eine Kommunikationseinheit wurde gerade aktiviert.... Ich empfange Bilder und Ton von... irgend jemandem... Hey, du, verschwinde da sofort... Und schmeiß den Kelch weg!","¿Hola? Comando, una unidad de comunicación acaba de ser activada... Recibo visuales y sonido de... Alguien... Eh tú, sal de ahí ahora mismo... ¡Y tira el cáliz!",,"Allô? Central, un communicateur à été activé.. Je recois visuel et son de.. quelqu'un.. Hé, vous, sortez de là! Et lâchez le calice!",,,,"Ðлло? Штаб, передатчик только что включилÑÑ... Я принимаю звук и картинку от... кого-то... Эй, Ñ‚Ñ‹, беги оттуда, ÑÐµÐ¹Ñ‡Ð°Ñ Ð¶Ðµ... и броÑÑŒ чашу!", +"Listen, this com unit tells me that you're 100% human. I've been ordered to bring you in, we're talking trust here. Betray me and pay. Oh, and by the way, you can call me Blackbird.",TXT_ILOG2,,,,"Hör zu, dieser Kommunikator sagt mit, dass du noch 100% menschlich bist. Mir wurde aufgetragen, dich zu unserer Zentrale zu führen. Wir reden über Vertrauen, wenn du mich verrätst, wirst du bezahlen. Ãœbrigens, du kannst mich Blackbird nennen.","Escucha, esta unidad de comunicación me dice que eres 100% humano. Se me ha ordenado hacerte entrar, hablamos en confianza. Traicióname y paga. Oh, por cierto, puedes llamarme Blackbird.",,"Ecoute, ce communicateur me dit que tu est 100% humain. On m'a ordonnée de te ramener, c'est une question de confiance. Trahis-moi et tu paieras. Oh, et tu peux m'appeler Blackbird.",,,,"Слушай, ÑÑƒÐ´Ñ Ð¿Ð¾ Ñтому передатчику, Ñ‚Ñ‹ на Ñто процентов человек. Я получила приказ показать тебе дорогу к нам. Тебе оказано большое доверие. Ты поплатишьÑÑ, еÑли решишь предать менÑ. Да, кÑтати, обращайÑÑ ÐºÐ¾ мне «Чёрный дрозд».", +"Listen, this com-unit tells me that you're 100% human. You might be one of us, and maybe we can try and trust each other. Consider this test, there's a flamethrower in the Governor's mansion. Get it, and I'll lead you to us",TXT_ILOG2,strifeteaser,,,"Hör zu, dieser Kommunikator sagt mit, dass du noch 100% menschlich bist. Du magst einer von uns sein und vielleicht können wir einander vertrauen. Betrachte dies als einen Test, da ist ein Flammenwerfer in der Villa des Gouverneurs. Hole ihn und ich führe dich zu uns.","Escucha, esta unidad de comunicación me dice que eres 100% humano. Podrías ser uno de nosotros, y tal vez podamos intentar confiar el uno en el otro. Considera esto una prueba, hay un lanzallamas en la mansión del gobernador. Tómalo, y te llevará a nosotros",,"Ecoute, ce communicateur me dit que tu est 100% humain. Il se peut que tu est l'un des nôtres, on pourrait se faire confiance. Considère cela comme un test. Il y a un lance-flammes dans le manoir du gouverneur. Récupère le et je te mènerai à nous.",,,,"Слушай, ÑÑƒÐ´Ñ Ð¿Ð¾ Ñтому передатчику, Ñ‚Ñ‹ на Ñто процентов человек. Ты можешь приÑоединитьÑÑ Ðº нам, и мы должны доверÑÑ‚ÑŒ друг другу. Ðебольшое тебе иÑпытание: в оÑобнÑке губернатора еÑÑ‚ÑŒ огнемёт. ДоÑтань его, и Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñƒ тебе дорогу к нам.", +Head over to the old town hall. Macil had a tunnel built that lets us get in and out without the acolytes' knowledge.,TXT_ILOG3,,,,"Geh zum alten Rathaus. Macil hat einen Tunnel bauen lassen, durch den wir dort reinkommen, ohne dass die Ministranten das mitbekommen.",Dirígete al antiguo ayuntamiento. Macil hizo construir un túnel que nos permite entrar y salir sin que los acólitos lo sepan.,,Dirige-toi vers l'ancienne mairie. Macil a fait construire un tunnel qui nous permet d'y entrer sans que l'Ordre nous remarque.,,,,"Иди к Ñтарой ратуше. ÐœÑйÑил поÑтроил туннели, так что мы можем входить и выходить без ведома Ñлужителей.", +"Go through the door on your left, then the one on the right. The guard's name is Geoff. Tell him you need gold.",TXT_ILOG4,,,,"Geh durch die linke Tür, dann durch die rechte. Der Wächter heißt Geoff. Sag ihm du brauchst Gold.","Ve por la puerta a tu izquierda, y luego a tu derecha. El guardia se llama Geoff. Dile que necesitas oro.",,Passe par la porte à gauche puis celle à droite. Le garde s'appelle Geoff. Dis-lui que tu as besoin d'argent.,,,,"Пройди через левую дверь, затем через правую. Стражника зовут Джефф. Скажи ему, что тебе нужно золото.", +"Don't enter the town hall. It's not safe anymore, our cover's been blown. Kill all the big robots, the 'Crusaders' and I'll guide you to us.",TXT_ILOG5,,,,"Geh nicht ins Rathaus. Da ist es nicht mehr sicher, unsere Tarnung ist aufgeflogen. Erledige die großen Roboter, die „Ordensritter†und ich führe dich zu uns.","No entres en el ayuntamiento. Ya no es seguro, nos han descubierto. Mata a todos los robots grandes, los 'Cruzados' y te guiaré a nosotros.","No entres en el ayuntamiento. Ya no es seguro, fuimos descubiertos. Mata a los robots gigantes, los 'Cruzados' y te guiaré a nosotros.","N'entre pas dans la mairie, ce n'est plus sûr. Notre couverture ne marche plus. Détruis tous les gros robots, les ""Croisés"" et je te mènerai à nous.",,,,"Ðе ходи к ратуше. Ðаше убежище было разгромлено, теперь там небезопаÑно. Перебей Ñтих больших роботов, «креÑтоноÑцев», и Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñƒ тебе дорогу к нам. ", +"The door next to the weapons shop will open once all the Crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us",TXT_ILOG6,,,,"Die Tür neben dem Waffengeschäft wird sich öffnen, wenn alle Ordensritter tot sind. Dahinter ist ein Teleporter. Benutze ihn, er bringt dich zu uns.","La puerta junto a la tienda de armas se abrirá en cuanto todos los cruzados estén muertos. Dentro del almacén hay un teletransporte, úsalo, y te traerá a nosotros.","La puerta junto a la tienda de armamento se abrirá una vez que todos los cruzados estén muertos. Adentro hay un teleporte, úsalo y te traerá a nosotros","La porte à côté du magasin d'armes s'ouvrira quand tous les croisés seront détruits. A l'intérieur de la salle de stockage se trouve un téléporteur, utilise-le pour nous rejoindre.",,,,"Дверь возле оружейного магазина откроетÑÑ, когда вÑе креÑтоноÑцы будут уничтожены. Ðа Ñкладе Ñ‚Ñ‹ найдёшь телепорт. ИÑпользуй его — он доÑтавит Ñ‚ÐµÐ±Ñ Ðº нам.", +"The door next to the weapons shop will open once all the Crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us",TXT_ILOG7,,,,"Die Tür neben dem Waffengeschäft wird sich öffnen, wenn alle Ordensritter tot sind. Dahinter ist ein Teleporter. Benutze ihn, er bringt dich zu uns.","La puerta junto a la tienda de armas se abrirá en cuanto todos los cruzados estén muertos. Dentro del almacén hay un teletransporte, úsalo, y te traerá a nosotros.","La puerta junto a la tienda de armamento se abrirá una vez que todos los cruzados estén muertos. Adentro hay un teleporte, úsalo y te traerá a nosotros","La porte à côté du magasin d'armes s'ouvrira quand tous les croisés seront détruits. A l'intérieur de la salle de stockage se trouve un téléporteur, utilise-le pour nous rejoindre.",,,,"Дверь возле оружейного магазина откроетÑÑ, когда вÑе креÑтоноÑцы будут уничтожены. Ðа Ñкладе Ñ‚Ñ‹ найдёшь телепорт. ИÑпользуй его — он доÑтавит Ñ‚ÐµÐ±Ñ Ðº нам.", +"Kill as many of the big robots, Crusaders, as you can. When you're done, I'll guide you to Macil",TXT_ILOG8,,,,"Erledige so viele von den großen Robotern - „Ordensritternâ€, wie möglich. Wann das erledigt ist, führe ich dich zu Macil.","Mata a tantos de los robots grandes, los cruzados, que puedas. Cuando termines, te guiaré hasta Macil.","Mata a tantos robots gigantes como puedas. Cuando termines, te guiaré a Macil","Détruis autant des gros robots, les croisés, que tu peux, et je te mènerai à Macil.",,,,"Убей Ñтолько больших роботов, — креÑтоноÑцев, — Ñколько Ñможешь. Когда закончишь, Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´Ñƒ Ñ‚ÐµÐ±Ñ Ðº ÐœÑйÑилу.", +"Go through the door, and talk to Macil.",TXT_ILOG9,,,,Geh durch die Tür und rede mit Macil.,"Ve por la puerta, y habla con Macil.",Ve por la puerta y habla con Macil.,Traverse cette porte et va parler à Macil.,,,,ОбратиÑÑŒ к ÐœÑйÑилу. Он за Ñтой дверью., +"Find the power tap on the mains, and shut it off. Bring something back to the Governor as proof. Find Macguffin, and talk to him.",TXT_ILOG10,,,,Finde die Stromanzapfung und schalte sie ab. Bringe einen Beweis zum Gouverneur. Finde Macguffin und rede mit ihm. ,"Encuentra la intervención eléctrica en la red principal, y apágala. Trae algo de vuelta al gobernador como prueba. Encuentra a Macguffin, y habla con él.",Encuentra la intervención eléctrica de la red principal y elimínala. Trae una prueba de vuelta al gobernador. Encuentra a Macguffin y habla con él.,Trouve la connection pirate sur le transformateur et désactive la. Amène quelque chose au gouverneur comme preuve. Trouve Macguffin et parle-lui.,,,,Ðайди нелегальное подключение к линии Ñлектропередачи и выведи его из ÑтроÑ. ПринеÑи что-нибудь губернатору в качеÑтве доказательÑтва. Ðайди МакГаффина и поговори Ñ Ð½Ð¸Ð¼., +"Find the power tap on the mains, and shut it off. Bring something back to the Governor as proof. Find Macguffin, and talk to him. He's up by the sewage treatment plant, in the 'bum hole', down the stairs.",TXT_ILOG11,,,,"Finde die Stromanzapfung und schalte sie ab. Bringe einen Beweis zum Gouverneur. Finde Macguffin und rede mit ihm. Er ist in der Nähe der Kläranlage im „Pennerlochâ€, die Treppe runter.","Encuentra la intervención eléctrica en la red principal, y apágala. Trae algo de vuelta al gobernador como prueba. Encuentra a Macguffin, y habla con él. Está arriba junto a la planta de tratamiento de aguas residuales, en el 'hoyo vagabundo', bajando las escaleras.","Encuentra la intervención eléctrica de la red principal y elimínala. Trae una prueba de vuelta al gobernador. Encuentra a Macguffin y habla con él. Se encuentra en la planta de tratamiento de aguas residuales, en el 'agujero vagabundo', bajando las escaleras.","Trouve la connection pirate sur le transformateur et désactive la. Amène quelque chose au gouverneur comme preuve. Trouve Macguffin et parle-lui. Il se trouve dans la centrale de traitement des eaux, dans le ""trou à rats"" en bas des escaliers.",,,,"Ðайди нелегальное подключение к линии Ñлектропередачи и выведи его из ÑтроÑ. ПринеÑи что-нибудь губернатору в качеÑтве доказательÑтва. Ðайди МакГаффина и поговори Ñ Ð½Ð¸Ð¼. Он возле очиÑтного ÑооружениÑ, в «бомжевой норе», вниз по леÑтнице.", +"You idiot! You've shut off the power to the jamming circuits we use to conceal our base from the Order. Head to the town hall and take out the scanning crew, now! Then, go back to the Governor and give him the broken coupling.",TXT_ILOG13,,,,"Du Idiot! Du hast die Energie für unsere Störsender unterbrochen, mit denen wir unsere Basis vor dem Orden verborgen haben. Geh schnell zum Rathaus und schalte den Suchtrupp aus. Geh danach zum Gouverneur und gib ihm den zerstörten Stromabnehmer.","¡Idiota! Has apagado la energía a los circuitos de interferencia que usamos para ocultar nuestra base a la Orden. Dirígete al ayuntamiento y elimina al equipo de escaneo, ¡ahora! Luego, vuelve con el gobernador y dale el acoplador roto.","¡Idiota! Quitaste la energía a los circuitos de interferencia que utilizamos para que la Orden no vea nuestra base. Dirígete al ayuntamiento y saca al equipo de escaneo. Luego, ve con el gobernador y dale el acoplador roto.",Idiot! Tu as désactivé les circuits brouilleurs qui cachaient notre base des senseurs de l'Ordre. Retourne vite à la mairie et tue l'équipe de scan maintenant! Retourne ensuite au gouverneur et donne lui le coupleur cassé.,,,,"Ты идиот! Ты обеÑточил генератор радиопомех, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ которого мы Ñкрывали меÑтоположение нашей базы от Ордена. ВозвращайÑÑ Ðº ратуше и уничтожь разведывательную группу как можно Ñкорее! Затем верниÑÑŒ к губернатору и отдай ему повреждённую муфту.", +"Ok, 'trust no one' is the name of the game! Let's get that prison pass from the Governor. Take the broken coupling to him.",TXT_ILOG14,,,,"Ok, „Trau keinem†heißt dieses Spiel. Lass uns den Gefängnispass vom Gouverneur holen. Bring ihm den Stromabnehmer.","OK, ¡'no te fies de nadie' es el nombre del juego! Consigamos ese pase de la prisión del gobernador. Llévale el acoplador roto.","OK, ¡'no confíes en nadie' es el nombre del juego! Consigamos ese pase de la prision del gobernador. Llévale el acoplador roto.","Ok, ""ne fais confiance à personne"" est notre nouveau slogan. On va récupérer le passe de la prison chez le gouverneur. Amène lui le coupleur cassé.",,,,"Что ж, Ñта игра называетÑÑ Â«Ð½Ðµ верь никому»! Давай получим пропуÑк в тюрьму у губернатора. ОтнеÑи ему повреждённую муфту.", +Good move! The governor is a liar. That's our power coupling. We're using it to hide the base from the Order. Take this broken coupling back to him and let's get that pass.,TXT_ILOG15,,,,Das war klasse! Der Gouverneur ist ein verdammter Lügner. Das war unsere Anzapfung. Wir benutzen sie um unsere Basis vor dem Orden zu verstecken. Und nun bring ihm den Stromabnehmer und hol den Gefängnispass.,¡Buen paso! El gobernador es un mentiroso. Ese es nuestro acoplador de energía. Lo estamos usando para ocultar nuestra base a la Orden. Llévale de vuelta este acoplador roto y consigamos ese pase.,¡Buena movida! El gobernador es un mentiroso. Ese es nuestro acoplador de energía. Lo estamos utilizando para esconder nuestra base de la Orden. Llévale este acoplador roto y consigamos ese pase.,Bonne idée! Le gouverneur est un menteur. Voilà notre coupleur. On l'utilise pour dissimuler notre présence à l'Ordre. Amène ce coupleur cassé à lui et récupère le passe.,,,,"Отличный ход! Губернатор — лжец. Это наше подключение к Ñиловой линии. Мы иÑпользуем его, чтобы Ñкрывать меÑтоположение нашей базы от Ордена. ОтнеÑи повреждённую муфту губернатору и получи пропуÑк.", +Use the Warden's key to get into the prison cell blocks and find a way to free the prisoners.,TXT_ILOG18,,,,"Benutze den Schlüssel des Direktors um in die Zellenblöcke zu kommen und finde heraus, wie man die Gefangenen befreien kann.",Usa la llave del Carcelero para entrar en los bloques de celdas y encuentra una forma de liberar a los prisioneros.,Usa la llave del Director para entrar a los bloques de celdas y encontrar una manera de liberar a los prisioneros.,Utilise la clé du gardien pour entrer dans le bloc de cellules et trouver une manière de libérer les prisonniers.,,,,"ИÑпользуй ключ тюремщика, чтобы пройти к камерам. Ðайди ÑпоÑоб оÑвободить пленников.", +Find a way to free the prisoners. Find a way to open the hand scanner switch.,TXT_ILOG19,,,,"Finde heraus, wie man die Gefangenen befreien kann und wie du den Handscanner umgehen kannst.",Encuentra una forma de liberar a los prisioneros. Encuentra una forma de abrir el interruptor de escáner de mano.,Encuentra una manera de liberar a los prisioneros. Encuentra una forma de abrir el switch de escaneo de manos.,Trouve un moyen de libérer les prisonniers. Trouve une manière d'activer le scanner à empreinte digitale.,,,,Ðайди ÑпоÑоб оÑвободить пленников. Ðайди ÑпоÑоб открыть замок Ñо Ñканером отпечатка руки., +Find a way to free the prisoners. Use the judge's hand to operate the hand scanner switch.,TXT_ILOG20,,,,"Finde heraus, wie man die Gefangenen befreien kann. Benutze die Hand des Richters um den Handscannerschalter zu betätigen.",Encuentra una forma de liberar a los prisioneros. Usa la mano del juez para operar el interruptor de escáner de mano.,Encuentra una manera de liberar a los prisioneros. Utiliza la mano del juez para operar el switch de escaneo de manos.,Trouve un moyen de libérer les prisonniers. Utilise la main du juge pour activer le scanner à empreinte digitale.,,,,"Ðайди ÑпоÑоб оÑвободить пленников. ИÑпользуй руку Ñудьи, чтобы открыть замок Ñо Ñканером отпечатка руки.", +Way to go my friend. Good work freeing the prisoners. Jump on one of the teleporters and it will bring you back to base.,TXT_ILOG21,,,,"Das war gute Arbeit, wie du die Gefangenen befreit hast. Benutze einen der Teleporter um zur Basis zurückzugelangen.",Así se hace amigo. Buen trabajo liberando a los prisioneros. Ponte en uno de los teletransportes y te traerá de vuelta a la base.,Que forma de avanzar amigo mío. Buen trabajo liberando a los prisioneros. Entra en alguno de los teleportes y te traerá de vuelta a la base.,Bien joué mon ami! Bon travail avec ces prisonniers. Utilise l'un des téléporteurs pour revenir à la base.,,,,"Так держать, дружище. Ты отлично поработал и оÑвободил пленников. Прыгай в любой телепорт, и он вернёт Ñ‚ÐµÐ±Ñ Ð½Ð° базу.", +"Destroy the power crystal that runs the power grid which drives the Order's shields. Go visit Worner, a spy we recruited in the warehouse of the power station.",TXT_ILOG22,,,,"Zerstöre den Energiekristall der die Energieversorgung für die Kraftschilde kontrolliert. Suche Worner auf, einen Spion, den wir im Lagerhaus des Kraftwerks rekrutiert haben. ","Destruye el cristal de poder que impulsa la red eléctrica que alimenta los escudos de la Orden. Ve a visitar a Worner, un espía que reclutamos en el almacén de la estación eléctrica.","Destruye el cristal de poder que impulsa la red eléctrica que abastece los escudos de la Orden. Visita a Worner, un espía que reclutamos en el almacén de la Estación Eléctrica.","Détruis le cristal qui contrôle la grille énergétique des boucliers de l'Ordre. Va voir Worner, un espion que l'on a recruté dans l'entrepôt de la centrale.",,,,"Уничтожь криÑталл, питающий ÑнергоÑеть Ордена, от которой работают их щиты. Ð’ÑтретьÑÑ Ñ Ð£Ð¾Ñ€Ð½Ñром, нашим шпионом, на Ñкладе ÑлектроÑтанции.", +Let's get lost. There's more fun to come.,TXT_ILOG24,,,,Lass uns verschwinden. Hier wird's gleich ungemütlich.,Perdámonos. Hay más diversion por venir.,Vamos a perdernos. Aún hay más diversión por venir.,"Partons d'ici, il y a encore de quoi s'amuser.",,,,Давай-ка иÑчезнем отÑюда. ЗдеÑÑŒ Ñкоро начнетÑÑ Ð²ÐµÑелье., +"One more adventure before command feels it's safe to attack the castle. Macil's arranged for Irale to give you gold and some training. After you visit him, see the medic in town for strength.",TXT_ILOG25,,,,"Eine weitere Aufgabe noch, bevor Macil es für sicher hält, die Burg anzugreifen. Macil hat Irale gebeten, dir Gold zu geben und Training zu organisieren. Nachdem du bei ihm warst, lass dir vom Sanitäter in der Stadt deine Ausdauer erhöhen.","Una aventura más antes de que el comando sienta que es seguro atacar el castillo. Macil ha acordado con Irale que te de oro y algo de entrenamiento. Despues de visitarlo, ve al médico en el pueblo para ganar fuerza.","Una aventura más antes de que el comando se sienta listo para atacar el castillo. Macil le dijo a Irale que te de algo de oro y entrenamiento. Después de visitarlo, ve al médico en el pueblo para obtener fuerza.","Encore une aventure avant que le commandement ne pense qu'il soit bon temps d'attaquer le château. Macil s'est arrangé pour qu'Irale te donne de l'argent et qu'il t'entraîne. Une fois que tu en as fini avec lui, va visiter le médecin en ville pour qu'il te rende des forces.",,,,"Ðужно Ñделать ещё кое-что, чтобы командир был уверен в уÑпешноÑти атаки на замок. ÐœÑйÑил поручил ИрÑйлу выплатить тебе награду и дать пару уроков. ПоÑле вÑтречи Ñ Ð½Ð¸Ð¼, поÑети городÑкого медика.", +"Visit Irale and the medic in town for gold and training, then find the sewers. Head along the river across from the Governor's mansion.",TXT_ILOG26,,,,"Geh zu Irale und dem Sanitäter in der Stadt, um etwas Gold und Training zu bekommen, dann finde die Kanalisation. Folge dem Fluss auf der gegenüberliegenden Seite der Villa des Gouverneurs.","Visita a Irale y al médico en el pueblo para oro y entrenamiento, luego encuentra las alcantarillas. Dirígete a través del río junto a la mansión del governador.","Visita a Irale y al médico del pueblo para obtener oro y entrenamiento, luego encuentra las alcantarillas. Dirígete a través del río enfrente de la mansión del gobernador.","Visite Irale et le médecin en ville pour de l'argent et de l'entraînement, puis trouve l'entrée des égouts. Descend le long de la rivière de l'autre côté du manoir du gouverneur.",,,,"Зайди к ИрÑйлу и городÑкому медику за золотом и обучением, потом ÑпуÑтиÑÑŒ в канализацию. Иди вдоль берега реки, ÑпуÑк прÑмо напротив оÑобнÑка губернатора.", +"We're looking for Weran, who calls himself the Rat King. I'm sure it's descriptive as well as colorful.",TXT_ILOG28,,,,"Wir suchen Weran, den man auch den Rattenkönig nennt. Ich bin sicher, dass dies ihn sehr anschaulich beschreibt.","Estamos buscando a Weran, quien se autoproclama el Rey de las Ratas. Estoy segura de que es tanto descriptivo como vistoso.","Buscamos a Weran, quién se llama a sí mismo el Rey de las Ratas. Estoy segura que es descriptivo y colorido.","Cherche Weran, il se fait appeler le Roi des Rats. Je suis sur que c'est aussi descriptif que flatteur.",,,,"Ðам нужен УÑран. Он называет ÑÐµÐ±Ñ ÐºÑ€Ñ‹Ñиным королем. Уверена, прозвище так же емко, как и краÑочно.", +"Take the flamethrower parts to Irale. Drain the reclamation tank. At the bottom is a hidden entrance to the sewers. The gate controls are down there, somewhere. Destroy them.",TXT_ILOG33,,,,Bringe dir Flammenwerferteile zu Irale. Leere den Sammeltank. Am Boden ist ein versteckter Eingang zur Kanalisation. Dort ist die Steuerung für die Tore. Zerstöre sie.,"Llévale las partes de lanzallamas a Irale. Drena el tanque de recuperación. Al fondo hay una entrada secreta a las alcantarillas. Los controles de la puerta están ahí abajo, en algún lugar. Destrúyelos.","Llévale las partes del lanzallamas a Irale. Drena el tanque de recuperación. En la parte inferior hay una entrada oculta a las alcantarillas. Los controles de la puerta están ahí abajo, en alguna parte. Destruyelos.",Amène les pièces du lance-flamme à Irale. Fais vider le réservoir de recyclage. Au fond se trouve une entrée cachée vers les égouts. Les contrôles de la porte s'y trouvent. Détruis-les.,,,,"ОтнеÑи детали огнемёта ИрÑйлу. Слей жидкоÑÑ‚ÑŒ из бака Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸. Ðа его дне Ñкрытый вход в канализацию. Механизм ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸ где-то там, внизу. Сломай его.", +"Command, he's done it! The gates are open. Send in the shock troops and tell Macil we're coming in! Let's get back to the Front base.",TXT_ILOG37,,,,Kommandozentrale: Er hat's geschafft! Die Tore sind offen. Schickt die Schocktruppen hinein und sagt Macil das wir auf dem Weg sind! Lass uns zur Frontbasis zurückkehren.,"Comando, ¡Lo ha hecho! Las puertas están abiertas. ¡Enviad a las tropas de choque y decidle a Macil que venimos adentro! Volvamos a la base del Frente.","Comando, ¡Lo ha hecho! Las puertas están abiertas. ¡Envíen las tropas de choque y díganel a Macil que estamos entrando! Regresemos a la base del Frente.","C'est bon, commandement, il a réussi! Les portes sont ouvertes, envoyez les soldats de choc et dites à Macil que l'on arrive! Retournons à la base du Front.",,,,"Штаб, он выполнил задание! Ворота открыты. ПоÑылайте ударный отрÑд и доложите ÐœÑйÑилу, что мы пробилиÑÑŒ! ВозвращайÑÑ Ð½Ð° базу СопротивлениÑ.", +"Join the assault on the castle. Find and take out the Programmer. We have conflicting reports about his location. One says he in a computer room, another hiding in a sub-level temple, and yet another at the end of a long hallway.",TXT_ILOG38,,,,"Schließe dich dem Angriff auf die Burg an. Finde den Programmierer und schalte ihn aus. Wir haben widersprüchliche Angaben über seinen Aufenthaltsort. Einer sagt, in einem Computerraum, ein anderer, dass er sich in einem Tempelkeller versteckt und noch ein anderer sagt was vom Ende eines langen Flurs.","Únete al asalto en el castillo. Encuentra y elimina al Programador. Tenemos informes contradictorios sobre su ubicación. Uno dice que está en una sala de computadoras, otro que escondido en un templo en el subnivel, y también otro que al final de un largo pasillo.","Únete al asalto en el castillo. Encuentra y saca al programador. Tenemos informes contradictorios sobre su ubicación. Uno dice que está en una sala de computadora, otro que se esconde en un templo en el sub-nivel y uno más que está al final de un largo pasillo.","Rejoins l'assaut sur le château. Trouve et élimine le Programmeur. On a des rapports en conflit sur sa position. L'un d'entre eux nous dit qu'il se trouve dans la salle des ordinateurs, l'autre nous dit qu'il se cache dans un temple en sous sol, et un autre encore au bout d'un long couloir.",,,,"ПриÑоединиÑÑŒ к атаке на замок. Ðайди и уничтожь ПрограммиÑта. Ðаши ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ его меÑтонахождении противоречивы. Одни говорÑÑ‚, что он в компьютерной комнате, другие — что он укрываетÑÑ Ð² подземном храме, а третьи — что он в конце длинного коридора.", +Find the Programmer and kill him.,TXT_ILOG45,,,,Finde den Programmierer und töte ihn.,Encuentra al Programador y mátalo.,,Trouve le Programmeur et tue-le.,,,,Ðайди ПрограммиÑта и убей его., +"Seek out the Oracle and ask it about the other Sigil pieces. The Oracle resides in the borderlands, just outside of town. Cross the river, head towards the castle and go left through the archway.",TXT_ILOG46,,,,"Suche das Orakel auf und befrage es bezüglich der anderen Teile des Sigils. Das Orakel ist in den Grenzgebieten zu finden, außerhalb der Stadt. Ãœberquere den Fluss, gehe zur Burg und dann links durch das Tor.","Busca al Oráculo y pregúntale sobre las otras piezas del Emblema. El Oráculo reside en las fronteras, justo fuera del pueblo. Cruza el río, dirígete hacia el castillo y gira a la izquierda a través del arco.","Busca al Oráculo y pregúntale acerca de las otras piezas del Emblema. El Oráculo reside en las fronteras, en las afueras de la ciudad. Cruza el río, dirígete hacia el castillo y gira a la izquierda a través del arco.","Trouve l'Oracle et demande lui où se trouvent les autres pièces du Sigil. L'Oracle se trouve dans les terrains vagues à l'extérieur de la ville. Traverse la rivière, va vers le château puis à gauche après l'arche.",,,,"Ðайди Оракула и ÑпроÑи его про другие фрагменты Сигила. Ð ÐµÐ·Ð¸Ð´ÐµÐ½Ñ†Ð¸Ñ ÐžÑ€Ð°ÐºÑƒÐ»Ð° находитÑÑ Ð² пограничье, Ñразу за городÑкой чертой. ПереÑеки реку, иди в Ñторону крепоÑти и Ñверни налево, Ð¿Ñ€Ð¾Ð¸Ð´Ñ Ñ‡ÐµÑ€ÐµÐ· арку.", +"Seek out the Oracle and ask it about the other Sigil pieces. The Oracle's temple is in the borderlands, on the outskirts of town.",TXT_ILOG47,,,,"Suche das Orakel auf und befrage es bezüglich der anderen Teile des Sigils. Der Tempel des Orakels ist in den Grenzgebieten zu finden, in den Außenbezirken der Stadt.","Busca al Oráculo y pregúntale sobre las otras piezas del Emblema. El templo del Oráculo está en las fronteras, en las afueras del pueblo.","Busca al Oráculo y pregúntale acerca de las otras piezas del Emblema. El Oráculo reside en las fronteras, en las afueras de la ciudad.",Trouve l'Oracle et demande lui où se trouvent les autres pièces du Sigil. Le temple de l'Oracle se trouve dans les terrains vagues à l'extérieur de la ville. ,,,,"Ðайди Оракула и ÑпроÑи его про другие фрагменты Сигила. Храм Оракула раÑположен в пограничье, на окраине города.", +"Seek out the Oracle and ask it about the other Sigil pieces. Take your reward and go across to the medic and weapons trainer for health and training. The Oracle's temple is in the borderlands, on the outskirts of town.",TXT_ILOG48,,,,"Suche das Orakel auf und befrage es bezüglich der anderen Teile des Sigils. Nimm deine Belohnung und suche den Sanitäter und den Waffentrainer auf. Der Tempel des Orakels ist in den Grenzgebieten zu finden, in den Außenbezirken der Stadt.","Busca al Oráculo y pregúntale sobre las otras piezas del Emblema. Toma tu recompensa y ve al médico y al entrenador de armas para salud y entrenamiento. El templo del Oráculo está en las fronteras, en las afueras del pueblo.","Busca al Oráculo y pregúntale acerca de las otras piezas del Emblema. Obtén tu recompensa y ve con el médico y el entrenador de armas para obtener salúd y entrenamiento. El templo del Oráculo está en las fronteras, a las afueras de la ciudad.",Trouve l'Oracle et demande lui où se trouvent les autres pièces du Sigil. Va chercher ta récompense chez le médecin et le maître d'armes pour de la santé et de l'entraînement. Le temple de l'Oracle se trouve dans les terrains vagues à l'extérieur de la ville. ,,,,"Ðайди Оракула и ÑпроÑи его про другие фрагменты Сигила. Возьми Ñвою награду и зайди к медику и оружейному учителю. Храм Оракула находитÑÑ Ð² пограничье, на окраине города.", +Seek out the Oracle's temple and ask it about the other Sigil pieces. Here it is. I'm recording everything. It's not that I don't have faith that you'll survive. It's just that we can't let the Order control the Sigil.,TXT_ILOG50,,,,"Suche das Orakel auf und befrage es bezüglich der anderen Teile des Sigils. Ich protokolliere alles. Ich glaube zwar schon daran, dass du überleben wirst, aber wir können es halt nicht zulassen, dass der Orden das Sigil kontrolliert.",Busca al Oráculo y pregúntale sobre las otras piezas del Emblema. Aquí está. Lo estoy grabando todo. No es que no tenga fe en tu supervivencia. Es solo que no podemos dejar que la Orden controle el Emblema.,Busca al Oráculo y pregúntale acerca de las otras piezas del Emblema. Aquí está. Estoy grabando todo. No es que no tenga fé en que vas a sobrevivir. Solo es que no podemos dejar que la Orden controle el Emblema.,"Trouve l'Oracle et demande lui où se trouvent les autres pièces du Sigil. Le voilà. J'enregistre tout, ce n'est pas que je n'ai pas confiance en ta capacité de survie, c'est juste que je ne peux pas laisser l'Ordre contrôler le Sigil.",,,,"Ðайди храм Оракула и ÑпроÑи его про другие фрагменты Сигила. Так. Я вÑÑ‘ запиÑываю на пленку. Это не потому, что Ñ Ð½Ðµ верю, что Ñ‚Ñ‹ уцелеешь. ПроÑто мы не можем позволить Ордену заполучить Сигил.", +The second piece lies at the heart of the crimson and obsidian tower. There you will find the Bishop. The Bishop is the Order's military leader. We off him and we score twice. Take the Oracle's token to the key master in the borderlands.,TXT_ILOG56,,,,"Das zweite Stück liegt im Zentrum des Turms aus Purpur und Obsidian. Dort wirst du den Bischof, den militärischen Anführer des Ordens, finden. Wenn wir ihn kalt machen, können wir zwei Fliegen mit einer Klappe schlagen. Nimm das Zeichen des Orakels und bringe es zum Schlüsselmeister in den Grenzgebieten.",La segunda pieza se encuentra en el corazón e la torre carmesí y obsidiana. Ahí encontrarás al Obispo. El Obispo es el líder militar de la Orden. Nos lo cargamos y marcamos dos puntos. Lleva el vale del Oráculo al amo de llaves en las fronteras.,La segunda pieza está en el corazón de la torre carmesí y obsidiana. Ahí deberás encontrar al Obispo. El Obispo es el líder militar de la Orden. Acabamos con él y anotamos doble. Lleva el símbolo del Oráculo al Amo de Llaves en las fronteras.,"La deuxième pièce se trouve au cÅ“ur de la tour d'obsidienne et d'écarlate. Tu y trouvera l'évêque. L'évêque est le chef militaire de l'Ordre. Si on le tue, on marque deux points. Prends le jeton de l'Oracle et amène le au Mâitre des Clés dans les terrains vagues. ",,,,Второй фрагмент лежит в Ñердце багрово-обÑидиановой башни. Там Ñ‚Ñ‹ ÑразишьÑÑ Ñ Ð•Ð¿Ð¸Ñкопом. ЕпиÑкоп — военный лидер Ордена. От его убийÑтва мы выигрываем вдвойне. Отдай знак Оракула ключнику в пограничье., +"The Bishop is going to be heavily guarded, so why don't we swipe a uniform and blend in? Locate the Bishop. Once you have destroyed him, return to the Oracle.",TXT_ILOG57,,,,"Der Bischof wird schwer bewacht sein, also warum besorgen wir uns nicht eine Uniform und mischen uns unter seine Leute? Finde den Bischof. Wenn du ihn vernichtet hast, kehre zum Orakel zurück.","El Obispo estará fuertemente protegido, así que ¿por qué no robamos un uniforme y nos mezclamos? Localiza al Obispo. Una vez lo hayas destruído, vuelve con el Oráculo.","El Obispo estará fuertemente resguardado, así que, ¿Porque no robamos el uniforme de un guardia y nos mezclamos? Localiza al Obispo. Una vez que lo destruyas, regresa con el Oráculo.","L'évêque sera lourdement protégé. Pourquoi ne pas faire une entrée discrète avec un uniforme? Trouve l'évêque, une fois qu'il est mort, retourne à l'Oracle.",,,,"Похоже, что ЕпиÑкопа неплохо охранÑÑŽÑ‚, так что почему бы нам не ÑÑ‚Ñнуть униформу и прокраÑÑ‚ÑŒÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÑŒ? Ðайди ЕпиÑкопа. ПоÑле того, как Ñ‚Ñ‹ уничтожишь его, возвращайÑÑ Ðº Оракулу.", +"I just got word that we have an informer inside the fortress. Let's head for the hospital. He works there. After that, locate the Bishop and destroy him. Once he's dead return to the Oracle.",TXT_ILOG59,,,,"Mir ist gerade zu Ohren gekommen, dass wir einen Informanten in der Festung haben. Lasst uns zum Krankenhaus gehen, er arbeitet dort. Danach finde den Bischof unz vernichte ihn. Sobald er tot ist kehre zum Orakel zurück.","Acaban de decirme que tenemos un informante dentro de la fortaleza. Vayamos al hospital. Trabaja allí. Después, localiza al Obispo y destrúyelo. Una vez muerto, vuelve con el Oráculo.","Acaban de decirme que tenemos un informante adentro de la fortaleza. Dirijámonos al hospital. Él trabaja ahí. Después, localiza al Obispo y destruyelo. Cuando esté muerto, regresa con el Oráculo.","Je viens d'avoir vent que l'on a un informant dans la forteresse. Allons à l'hôpital, il y travaille. Après ça, trouve l'évêque et tue-le, puis retourne à l'Oracle.",,,,"Мне только что Ñказали, что у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ информатор внутри крепоÑти. Идем к гоÑпиталю. Он работает там. Затем найди ЕпиÑкопа и убеи его. ПоÑле его Ñмерти верниÑÑŒ к Оракулу.", +"Don't give up. This is it. Straight ahead. Jump on the teleporter to central administration and destroy the computer core. This will kill the force field on the entrance to the Bishop's tower. Once he's dead, return to the Oracle.",TXT_ILOG64,,,,Nicht aufgeben. Da ist es. Direkt voraus. Springe auf den Teleporter zur Zentralverwaltung und zerstöre den Kern des Computers. Das wird das Kraftfeld zum Eingang des Turms des Bischofs lahmlegen. Sobald er tot ist kehre zum Orakel zurück.,"No te rindas. Aquí es. Justo de frente. Entra al teletransporte a la administración central y destruye el núcleo de la computadora. Esto apagará el campo de fuerza en la entrada a la torre del Obispo. Una vez muerto, vuelve con el Oráculo.","No re rindas. Aquí está. Justo enfrente. Entra al teleporte a la Administración Central y destruye el núcleo de la computadora. Esto quitará el campo de fuerza a la entrada de la torre del Obispo. Cuando esté muerto, regresa con el Oráculo.","N'abandonne pas, on y est bientôt. Utilise le téléporteur vers le centre d'administration et détruis le cÅ“ur informatique. Cela désactivera le champ de force et l'entrée vers la tour de l'évêque. Une fois qu'il est mort, retourne voir l'Oracle.",,,,Ðе падай духом. Цель близка. ПрÑмо впереди. Запрыгивай на телепорт до центральнои админиÑтрации и уничтожь центральный компьютер. Это отключит Ñиловое поле на входе в башню ЕпиÑкопа. ПоÑле его Ñмерти возвращайÑÑ Ðº Оракулу., +"Very impressive. Lets blow it up. That should take care of the force field. Let's get back to the bailey, then off to the tower and the Bishop.",TXT_ILOG70,,,,"Sehr eindrucksvoll. Lass es uns in die Luft jagen. Damit sollte das Kraftfeld ausgeschaltet sein. Lass uns zum Vorhof zurückkehren, dann zum Turm und dem Bischof.","Muy impresionante. Vamos a volarlo. Eso debería ocuparse del campo de fuerza. Volvamos a la muralla, luego derechos a la torre y al Obispo.","Muy Impresionante. Vamos a volarlo. Eso debería de encargárse del campo de fuerza. Luego regresemos al Patio, luego a la torre y al Obispo.","Excellent, maintenant, faisons tout sauter. Cela devrait nous débarasser du cÅ“ur informatique. Retourne au mur d'enceinte puis rentre dans la tour de l'évêque.",,,,"ВпечатлÑюще. Давай взорвем его. Это должно избавить Ð½Ð°Ñ Ð¾Ñ‚ проблем Ñ Ñиловым полем. ВозвращаемÑÑ Ð²Ð¾ внутренний двор, затем к башне и ЕпиÑкопу.", +"Bravo, another piece of the Sigil! Did you see that weird spectre that came out of the Bishop's body? Where have I seen that before? Let's get back to the Oracle.",TXT_ILOG74,,,,"Gratulation, ein weiteres Teil des Sigils! Hast du den merkwürdigen Schemen gesehen, der aus dem Körper des Bischofs herauskam? Wo habe ich ihn bloß schon einmal gesehen? Lass uns zum Orakel zurückkehren.","¡Bravo, otra pieza del Emblema! ¿Viste ese extraño espectro que salió del cuerpo del Obispo? ¿Donde he visto eso antes? Volvamos con el Oráculo.","¡Bravo, otra pieza del Emblema! ¿Viste ese extraño espectro que salió del cuerpo del Obispo? ¿Dónde he visto eso antes? Regresemos con el Oráculo.","Bravo, encore une pièce du Sigil! Tu a vu ce spectre étrange qui est sorti du corps de l'évêque? Je crois l'avoir vu avant, retournons à l'Oracle.",,,,"Браво, ещё один фрагмент Сигила! Видел тот Ñтранный фантом, вышедший из тела ЕпиÑкопа? Где Ñ Ð¼Ð¾Ð³Ð»Ð° видеть такое раньше? Давай вернёмÑÑ Ðº Оракулу.", +"I have a report that the spectral energy we found near the Bishop is also present by the Oracle, let's be careful",TXT_ILOG76,,,,"Ich habe einen Report, dass die spektrale Energie, die wir beim Bischof vorfanden, auch in der Nähe des Orakels vorhanden ist. Wir sollten vorsichtig sein.","Tengo un informe de que la energía espectral que encontramos cerca del Obispo también está presente junto al Oráculo, tengamos cuidado","Tengo reportes de que la energía espectral que encontramos cerca del Obispo también está presente en el Oráculo, tengamos cuidado","Je recois un rapport que l'énergie spectrale qui possédait l'évêque se trouve aussi aux alentours de l'Oracle, fais attention.",,,,"Мне доложили, что ÑÐ¿ÐµÐºÑ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÑнергиÑ, Ð½Ð°Ð¹Ð´ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ð¼Ð¸ возле ЕпиÑкопа, также иÑходит от Оракула. Будь начеку.", +Richter has taken over command of our forces. It looks like Macil has been deceiving us all along. His true allegiance was to the Order. What a snake. Let's get back to the Oracle.,TXT_ILOG79,,,,Richter hat das Kommando über unsere Streitkräfte übernommen. Es scheint als hätte Macil uns die ganze Zeit über getäuscht. Sein wahre Loyalität gehörte dem Orden. Was für eine Ratte. Lass uns zum Orakel zurückkehren.,Richter ha tomado el mando de nuestras fuerzas. Parece que Macil nos ha estado engañando todo este tiempo. Su verdadera lealtad era a la Orden. Qué serpiente. Volvamos con el Oráculo.,Richter ha tomado el mando de nuestras fuerzas. Parece que Macil nos ha estado engañando todo el tiempo. Su verdadera lealtad fue a la Orden. Que serpiente. Volvamos con el Oráculo.,"Richter a pris le contrôle de nos forces. Il semble que Macil nous a menti tout du long. Sa vraie allégiance était avec l'Ordre, quel serpent! Retournous à l'Oracle.",,,,"Рихтер принÑл на ÑÐµÐ±Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð²Ð°Ð½Ð¸Ðµ нашими Ñилами. Похоже, что ÐœÑйÑил обманывал вÑех Ð½Ð°Ñ Ñ Ñамого начала. Ðа Ñамом деле он был предан Ордену. Подлец. Давай вернёмÑÑ Ðº Оракулу.", +Another Sigil peice. We are one step closer to freedom. And you are one step closer to me. Let's get back to the Oracle!,TXT_ILOG83,,,,Ein weiteres Teilstück des Sigils. Wir sind der Freiheit einen Schritt näher gekommen. Lass uns zurückgehen zum Orakel.,Otra pieza del Emblema. Estamos un paso más cerca de la libertad. Y estás un paso más cerca de mí. ¡Volvamos con el Oráculo!,Otra pieza del Emblema. Estamos un paso más cerca de la libertad. Y estás un paso más cerca de mí. ¡Regresemos con el Oráculo!,"Encore une pièce du Sigil. Nous nous rapprochons de la liberté, et tu te rapproche aussi de moi. Retournons à l'Oracle!",,,,Очередной фрагмент Сигила. Теперь мы ещё на шаг ближе к оÑвобождению. Ð Ñ‚Ñ‹ — ещё на шаг ближе ко мне. Давай возвращатьÑÑ Ðº Оракулу!, +You wield the power of the complete Sigil. What do you say we get some closure. Let's see what the Loremaster's been protecting.,TXT_ILOG85,,,,"Du hältst die Kraft des kompletten Sigils in deinen Händen. Meinst du nicht auch, wir sollten die Sache jetzt zu Ende bringen? Lass und nachsehen, was der Wissensmeister beschützt hat.",Empuñas el poder del Emblema completo. Que te parece si conseguimos algo de clausura. Vamos a ver lo que el Maestro del Conocimiento ha estado protegiendo.,Manejas el poder completo del Emblema. ¿Qué dices si conseguimos algún cierre? Veamos qué ha estado protegiendo el Maestro del Conocimiento.,Tu as maintenant le plein pouvoir du Sigil. Je pense qu'il est l'heure d'en finir. Allons voir ce que le Maître des Traditions cachait.,,,,"Ты обладаешь Ñилой целого Сигила. Что Ñкажешь, еÑли мы познакомимÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ поближе? Давай поÑмотрим, что же охранÑл Хранитель мудроÑти.", +"Well, so much for prognostication. Hold it, Macil is calling us back. Let's get out of here in one piece.",TXT_ILOG87,,,,"Soviel zum Thema Vorhersagen. Warte, Macil ruft uns zurück. Lass uns hier heile herauskommen.","Bueno, tanto por un presentimiento. Espera, Macil nos reclama. Salgamos de aquí de una pieza.","Bueno, tanto para el pronóstico. Espera, Macil nos está llamando de vuelta. Salgamos de aquí en una pieza.","Bon, je pense que l'heure n'est plus au pronostics.. Attends, Macil nous appelle. Sortons d'ici en vie, si possible.",,,,"Да, Ñто превзошло вÑе наши ожиданиÑ. УÑпокойÑÑ, ÐœÑйÑил вызывает Ð½Ð°Ñ Ð½Ð°Ð·Ð°Ð´. Давай выбиратьÑÑ Ð¾Ñ‚Ñюда.", +"The factory is next to the mines. Richter must mean the mines of Degnin. The Degnin ore is magnetic and explosive, just the thing for shutting down force fields. Let's get that key from the catacombs, and then off to the mines for some ore.",TXT_ILOG89,,,,"Die Fabrik liegt neben den Minen. Richter muss von den Degnin-Minen reden. Dasa Degnin-Erz ist magnetisch und explosiv., genau das, was wir brauchen, um die Kraftfelder auszuschalten. Lass uns den Schlüssel aus den Katakomben holen, und dann ab in die Minen für etwas Erz.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magético y explosivo, justo para apagar campos de fuerza. Obtengamos esa llave de las catacumbas, y luego derechos a las minas a por algo de mineral.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magnético y explosivo, justo para apagar campos de fuerza. Obtengamos esa llave de las Catacumbas y luego vayamos a las minas por algo de mineral.","L'usine est près des mines. Richter doit parler des mines de degnin. Le minérai de degnin est magnétisé et explosif, c'est parfait pour désactiver les champs de force. Récupérons la clé dans les catacombes, puis partons pour les mines pour récupérer du minerai.",,,,"Путь на фабрику лежит через шахты. Рихтер, должно быть, имел в виду шахты Дегнина. ДегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð° магнитна и взрывоопаÑна — то, что надо, еÑли хочешь отключить Ñиловое поле. ДоÑтань ключ из катакомб, а потом ÑпуÑтиÑÑŒ в шахты за рудой.", +"The factory is next to the mines. The Degnin ore is magnetic and explosive, just the thing for shutting down force fields. Let's get that key from the catacombs, and then we go down for some ore. This must be the ruins Richter's agents were searching for, be careful.",TXT_ILOG93,,,,"Die Fabrik liegt neben den Minen. Richter muss von den Degnin-Minen reden. Dasa Degnin-Erz ist magnetisch und explosiv., genau das, was wir brauchen, um die Kraftfelder auszuschalten. Lass uns den Schlüssel aus den Katakomben holen, und dann ab in die Minen für etwas Erz. Dies müssen die Ruinen sein, die Richters Agenten gesucht haben. Sei vorsichtig.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magético y explosivo, justo para apagar campos de fuerza. Obtengamos esa llave de las catacumbas, y luego derechos a las minas a por algo de mineral. Estas deben de ser las ruínas que los agentes de Richter estaban buscando, ten cuidado.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magnético y explosivo, justo para apagar campos de fuerza. Obtengamos esa llave de las Catacumbas y luego vayamos a las minas por algo de mineral. Estas deben ser las ruinas que los agentes de Richter estaban buscando, ten cuidado.","L'usine est près des mines. Richter doit parler des mines de degnin. Le minérai de degnin est magnétisé et explosif, c'est parfait pour désactiver les champs de force. Récupérons la clé dans les catacombes, puis partons pour les mines pour récupérer du minerai. Cela doit être les ruines que les agent de Richter cherchaient. Fais attention.",,,,"Путь на фабрику лежит через шахты. ДегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð° магнитна и взрывоопаÑна — то, что надо, еÑли хочешь отключить Ñиловое поле. ДоÑтань Ñтот ключ в катакомбах, а потом ÑпуÑтиÑÑŒ за рудой. Должно быть, именно Ñти руины иÑкали агенты Рихтера. Будь оÑторожен.", +"The factory is next to the mines. The Degnin ore is magnetic and explosive, just the thing for shutting down force fields. My friend, whatever it is we're fighting, it's more than just the Order. Back to the commons then off to the mines. We need ore.",TXT_ILOG95,,,,"Die Fabrik liegt neben den Minen. Richter muss von den Degnin-Minen reden. Dasa Degnin-Erz ist magnetisch und explosiv., genau das, was wir brauchen, um die Kraftfelder auszuschalten. Mein Freund, was immer wir hier bekämpfen, es ist mehr als der Orden. Zurück zur Mensa, und dann ab in die Minen. Wir brauchen Erz.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magético y explosivo, justo para apagar campos de fuerza. Amigo, lo que sea contra lo que estamos luchando, es más que sólo la Orden. Volvamos a los comunes y luego derechos a las minas. Necesitamos mineral.","La Fábrica está junto a las minas. El mineral Degnin es magnético y explosivo, justo para apagar campos de fuerza. Amigo mío, sea lo que sea con lo que estamos pelando, es algo más que solo la Orden. Regresemos a los comunes, luego vayamos a las minas. Necesitamos mineral.","L'usine est près des mines. Richter doit parler des mines de degnin. Le minérai de degnin est magnétisé et explosif, c'est parfait pour désactiver les champs de force. Mon ami, c'est clair que l'on se bat contre plus que juste l'Ordre. Retournons au réfectoire puis aux mines. Il nous faut du minerai.",,,,"Путь на фабрику лежит через шахты. ДегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð° магнитна и взрывоопаÑна — то, что надо, еÑли хочешь отключить Ñиловое поле. Друг мой, Ñ Ñ‡ÐµÐ¼ бы мы не ÑражалиÑÑŒ, Ñто нечто большее, чем проÑто Орден. ВерниÑÑŒ назад в поÑеление и ÑпуÑтиÑÑŒ в шахты. Ðам нужна руда.", +"The factory is next to the mines. The degnin ore is magnetic and explosive, just the thing for shutting down force fields. Without letting down your guard, look for deposits of ore.",TXT_ILOG96,,,,"Die Fabrik liegt neben den Minen. Richter muss von den Degnin-Minen reden. Dasa Degnin-Erz ist magnetisch und explosiv., genau das, was wir brauchen, um die Kraftfelder auszuschalten. Lass uns nach Erz suchen, aber wir müssen vorsichtig sein.","La fábrica está junto a las minas. Richter debe referirse a las minas de Degnin. El mineral Degnin es magético y explosivo, justo para apagar campos de fuerza. Sin bajar la guardia, busca depósitos de mineral.","La Fábrica está junto a las minas. El mineral Degnin es magnético y explosivo, justo para apagar campos de fuerza. Sin bajar la guardia, busca depósitos de mineral.","L'usine est près des mines. Richter doit parler des mines de degnin. Le minérai de degnin est magnétisé et explosif, c'est parfait pour désactiver les champs de force. Cherche des veines de minerai, mais fais attention.",,,,"Путь на фабрику лежит через шахты. ДегнинÑÐºÐ°Ñ Ñ€ÑƒÐ´Ð° магнитна и взрывоопаÑна — то, что надо, еÑли хочешь отключить Ñиловое поле. Поищи залежи руды, но не терÑй бдительноÑти!", +"Without letting down your guard, look for deposits of ore. These poor souls are drones. Their synaptic functions are being jammed by rc implants. We destroy the transmitter, and they're free.",TXT_ILOG97,,,,"Lass uns nach Erz suchen, aber wir müssen vorsichtig sein. Diese armen Seelen sind wie Drohnen. Ihre Gehirnfunktionen werden von Implantaten blockiert. Wir müssen den Transmitter ausschalten, dann sind sie befreit.","Sin bajar la guardia, busca depósitos de mineral. Estas pobres almas son zánganos. Sus funciones sinápticas están bloqueadas por implantes de control remoto. Destruimos el transmisor, y son libres.","Sin bajar la guardia, busca depósitos de mineral. Estas pobres almas son drones. Sus funciones sinápticas están siendo bloqueadas por implantes rc. Debemos destruir el transmisor y serán libres.","Cherche des veines de minerai, mais fais attention. Ces pauvres esclaves sont des drones. Leurs fonctions synaptiques sont brouillées par des implants radiocommandés. Détruisons le transmetteur pour les libérer.",,,,"Поищи залежи руды, но не терÑй бдительноÑти. Эти неÑчаÑтные души — дроны. Их Ñознание полноÑтью подавлено диÑтанционно управлÑемыми имплантатами. ЕÑли мы уничтожим передатчик, они Ñвободны.", +"The factory is next to the mines. Without letting down your guard, look for deposits of ore. My suggestion is, toss the ore at the force field and then blast it, the resulting compression should create a magnetic blanket and turn off the lights.",TXT_ILOG99,,,,"Die Fabrik liegt neben den Minen. Lass uns nach Erz suchen, aber wir müssen vorsichtig sein. Ich schlage vor, wir werfen das Erz vor das Krsftfeld und sprengen es dann. Die Druckwelle sollte einen Magnetpuls erzeugen, und die Lichter ausschalten.","La fábrica está junto a las minas. Sin bajar la guardia, busca depósitos de mineral. Mi sugerencia es, tirar el mineral hacia el campo de fuerza y luego reventarlo, la presión resultante debería crear un manto magnético y apagar las luces.","La Fábrica está junto a las minas. Sin bajar la guardia, busca depósitos de mineral. Mi sugerencia es, aventar el mineral al campo de fuerza y luego hacerlo estallar, la compresión que resulte debería crear una manta magnética y apagar las luces.","L'usine est près des mines. Cherche des veines de minerai, mais fais attention. Je suggère que tu lance du minerai sur le champ de force et que tu tire dessus. Le champ magnétique que l'explosion causera désactivera les lumières.",,,,"Путь на фабрику лежит через шахты. Поищи залежи руды, но не терÑй бдительноÑти. Мой план: броÑить руду поближе к Ñиловому полю и взорвать её. Взрыв ÑоздаÑÑ‚ магнитное поле, которое накроет Ñлектронику и отрубит её.", +Now on to the factory. Exit the mines and you can't miss it. Let's find that machine and shut it down!,TXT_ILOG100,,,,"Und jetzt zur Fabrik. Verlasse die Minen, du kannst sie nicht verpassen. Lass uns die Maschine finden und abschalten.",Ahora vamos a la fábrica. Sal de las minas y no puedes perderlo. ¡Encontremos esa máquina y desactivémosla!,Ahora vamos a la Fábrica. Sal de las minas y no puedes perderla. ¡Encontremos esa máquina y desactivémosla!,"C'est parti pour l'usine. Sors des mines, tu ne peux pas la rater. Trouvons cette machine et détruisons-la!",,,,"Теперь — на фабрику. Выйди из шахты, и Ñ‚Ñ‹ Ñразу увидишь вход. Ðайди Ñту машину и оÑтанови её!", +I'm reading massive neural wave distortions from straight ahead. I think we've found it. Let's get in there and shut it down!,TXT_ILOG102,,,,"Ich empfange massive neurale Verzerrungen direkt voraus. Ich denke, wir haben sie gefunden. Lass uns reingehen und sie abschalten.",Estoy leyendo distorsiones de ondas neuronales masivas adelante. Creo que la hemos encontrado. ¡Entremos ahí y destruyámosla!,Estoy leyendo distorsiones neuronales masivas adelante. Creo que la hemos encontrado. ¡Entremos y desactivémosla!,Je recois des distorsions neurales colossales devant nous. Je crois que nous l'avons trouvé. Détruisons-la!,,,,"Я вижу маÑÑивный иÑточник помех прÑмо по курÑу. Думаю, мы нашли конвертер. Войди и оÑтанови его!", +Just when I think we've seen it all! They go in human and come out... I dont even want to think about it. Destroy this horror!,TXT_ILOG103,,,,"Und da denkt man, man hätte schon alles gesehen. Die kommen als Menschen rein und kommen raus als... Ich möchte gar nicht drüber nachdenken. Zerstöre diesen Horror.",¡Justo cuando creía haberlo visto todo! Entran humanos y salen... No quiero ni pensarlo. ¡Destruye este horror!,¡Justo cuando creía haberlo visto todo! Entran humanos y salen... No quiero ni pensarlo. ¡Destruye este horror!,"Et quand je pense avoir tout vu.. Des humains entrent, et puis.. Non, je ne veux pas y penser. Détruis cette horreur!",,,,"Ð Ñ-то думала, что хуже уже не будет! Они входÑÑ‚ людьми, а выходÑÑ‚... Ðе хочу даже думать об Ñтом. Покончи Ñ Ñтим кошмаром!", +Macil's gone nuts. He just knowingly sent 200 men to their deaths. I want vengeance! For the dead and for the living dead! Let's get back and find out what's going on.,TXT_ILOG104,,,,"Macil hat den Verstand verloren. Er hat gerade absichtlich 200 unserer Leute in den Tod geschickt. Ich will Rache! Für die Toten und für die lebenden Toten. Lass uns zurückgehen und herausfinden, was da los ist.",Macil se ha vuelto loco. Conscientemente ha enviado 200 hombres a su muerte. ¡Quiero venganza! ¡Por los muertos y los muertos vivientes! Regresemos y descubramos que está pasando.,Macil se ha vuelto loco. Conscientemente envió a 200 hombres a su muerte. ¡Quiero venganza! Por los muertos y por los muertos vivientes! Regresemos y veamos que está pasando.,"Macil a complètement perdu les pédales! Il a envoyé 200 hommes se faire tuer, et il le savait! Il faut les venger, pour eux et pour leurs camarades! On retourne à la base et on va trouver ce qu'il se passe.",,,,"ÐœÑйÑил озверел. Он намеренно поÑлал двеÑти человек на верную Ñмерть. Я жажду меÑти! За убитых и за живых мертвецов! Давай вернёмÑÑ Ð¸ выÑÑним, что проиÑходит.", +"The factory leads to a 'lab', and they're getting a Sigil piece power signature from within. Back to the factory and our next step to freedom.",TXT_ILOG106,,,,"In der Fabrik gibt es ein „Laborâ€, und dort gibt es eine Sigil-Signatur. Zurück zur Fabrik und dem nächsten Schritt zu unserer Freiheit.","La fábrica conduce a un 'laboratorio', y están obteniendo una señal de poder del Emblema desde dentro. De vuelta a la fábrica y nuestro siguiente paso a la libertad.",La Fábrica conduce a un Laboratorio y tiene una firma de poder del Emblema desde adentro. Regresemos a la Fábrica y a nuestro siguiente paso a la libertad.,"L'usine mène à un ""laboratoire"", et je reçois le signal d'une pièce du Sigil à l'intérieur. Retournons à l'usine pour prendre le prochain pas vers la liberté.",,,,"За фабрикой находитÑÑ Â«Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ», и мы заÑекли характерную Ñнергию фрагмента Сигила, иÑходÑщую оттуда. ВерниÑÑŒ на фабрику и Ñделай ещё один шаг к нашему оÑвобождению.", +"Find the Bishop and destroy him! Once he's dead, return to the Oracle.",TXT_ILOG120,,,,"Finde den Bischof und vernichte ihn. Sobald er tot ist, kehre zum Orakel zurück.","¡Encuentra al Obispo y destrúyelo! En cuanto esté muerto, regresa con el Oráculo.","¡Encuentra al Obispo y destruyelo! Cuando esté muerto, regresa con el Oráculo.","Trouve l'évêque et tues-le! Une fois qu'il est mort, retourne à l'Oracle.",,,,"Ðайди ЕпиÑкопа и уничтожь его! ПоÑле, верниÑÑŒ к Оракулу.", +The Loremaster's lab is beyond the teleporter that just opened. Let's go find out what he was just yapping about.And our next step to freedom.,TXT_ILOG122,,,,"Das Labor des Wissensmeisters ist jenseits des Teleporters, der gerade geöffnet wurde. Lass uns herausfinden, worüber er da gerade geschwafelt hat. Und zum nächsten Schritt für unsere Freiheit.",El laboratorio del Maestro del Conocimiento está al otro lado del teletransporte que acaba de abrirse. Vayamos a ver de qué tanto parloteaba. Y nuestro siguiente paso a la libertad.,El laboratorio del Maestro del Conocimiento está más allá del teleporte que se ha abierto. Vamos a encontrar de qué tanto balbucea. Y nuestro siguiente paso a la libertad.,"Le laboratoire du Maître des Traditions est de l'autre côté du téléporteur que nous venons d'ouvrir. Allons voir pourquoi il était en train de brailler, et prendre le prochain pas vers la liberté.",,,,"Телепорт, который Ñ‚Ñ‹ нашёл, приведёт Ñ‚ÐµÐ±Ñ Ð² лабораторию Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти. Давай узнаем, о чём он там бормотал, и Ñделаем ещё один шаг к оÑвобождению.", +"Come on, let's get the hell out of here. The force field is down, off to the Bishop's tower. Once he's dead, get back to the Oracle.",TXT_ILOG211,,,,"Komm schon, lass uns von hier verschwinden. Das Kraftfeld ist abgeschaltet, also ab zum Turm des Bischofs. Sobald er tot ist, geht es zurück zum Orakel","Venga, larguémonos de aquí. El campo de fuerza está desactivado, derechos a la torre del Obispo. En cuanto esté muerto, regresa con el Oráculo.","Vamos, larguémonos de aquí. El campo de fuerza fue desactivado, vamos a la torre del Obispo. Cuando esté muerto, regresa con el Oráculo.","Allez, il faut qu'on se barre d'ici. Le champ de force est hors-ligne. Entre dans la tour de l'évêque. Quand il sera mort, retourne à l'Oracle.",,,,"Давай, пора убиратьÑÑ Ð¾Ñ‚Ñюда к чертÑм. Силовое поле отключено, пора двигатьÑÑ Ðº башне ЕпиÑкопа. Когда он умрёт, возвращайÑÑ Ðº Оракулу.", +Find the sanctuary by the river. Steal the chalice from inside. Bring it to Harris in the tavern.,TXT_ILOG1001,,,,"Finde das Heiligtum am Fluss. Stehle den Kelch, der dort aufbewahrt wird und bringe ihn zu Harris in der Taverne.",Encuentra el santuario junto al río. Roba el cáliz de adentro. Tráeselo a Harris en la taberna.,Encuentra el santuario por el río. Roba el Cáliz de adentro. Tráelo con Harris a la taverna.,Trouve le sanctuaire près de la rivière. Prends le Calice qui s'y trouve et amène le à Harris dans la taverne.,,,,Ðайди ÑвÑтилище возле реки. Укради оттуда чашу. ПринеÑи её ХарриÑу в таверну., +Find the Governor. Talk to him about your reward.,TXT_ILOG1002,,,,Finde den Gouverneur. Rede mit ihm über deine Belohnung.,Encuentra al Gobernador. Háblale sobre tu recompensa.,Encuentra al gobernador. Habla con él acerca de tú recompensa.,Trouve le gouverneur et demande ta récompense.,,,,Ðайди губернатора. ОбÑуди Ñ Ð½Ð¸Ð¼ Ñвою награду., +"Find the sanctuary by the river. Inside someone called Beldin is being held. Shut him up, and bring his ring back to Rowan as proof.",TXT_ILOG1003,,,,Finde das Heiligtum am Fluss. Dort drinnen wird jemand namens Beldin festgehalten. Bringe ihn zum Schweigen und gebe Rowan seinen Ring als Beweis.,"Encuentra el santuario junto al río. Dentro alguien llamado Beldin está retenido. Siléncialo, y tráe de vuelta su anillo a Rowan como prueba.",Encuentra el santuario por el río. Adentro alguien llamado Beldin está retenido. Cállalo y tráele su anillo a Rowan como prueba.,"Trouve le sanctuaire près de la rivière. Quelqu'un qui s'appelle Beldin s'y trouve emprisonnée. Cloue-lui le bec, et ramène son anneau à Rowan comme preuve.",,,,"Ðайди ÑвÑтилище возле реки. Внутри ÑодержитÑÑ Ð¿Ð»ÐµÐ½Ð½Ð¸Ðº по имени Белдин. ЗаÑтавь его замолчать, и принеÑи его кольцо РоуÑну в качеÑтве доказательÑтва.", +Find the location of the Front and talk to Macil.,TXT_ILOG1004,,,,Finde die Basis der Front und rede mit Macil.,Encuentra la localización del Frente y habla con Macil.,Encuentra la localización del Frente y habla con Macil.,Trouve où se cache le Front et parle à Macil.,,,,Ðайди базу Ð¡Ð¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ поговори Ñ ÐœÑйÑилом., +"Go down the stairs, find and talk to Macil.",TXT_ILOG1005,,,,Geh die Treppe runter und rede mit Macil.,"Baja por las escaleras, encuentra y habla con Macil.","Baja las escaleras, encuentra y habla con Macil.","Descends les escaliers, trouve et parle à Macil.",,,,"СпуÑтиÑÑŒ на Ñтаж ниже, найди ÐœÑйÑила и поговори Ñ Ð½Ð¸Ð¼.", +"Visit Irale, the Front's weapons supplier in town. He's behind the door next to the weapons shop. Then, use the key Macil gave you to talk to the Governor.",TXT_ILOG1006,,,,"Suche Irale auf, den Waffenbeschaffer der Front in der Stadr. Er hält sich in dem Gebäude neben dem Waffengeschäft auf. Danach benutze den Schlüssel, den Macil dir gegeben hat, um mit dem Gouverneur zu reden","Visita a Irale, el proveedor de armamento del Frente. Está detrás de la puerta junto a la tienda de armas. Luego, usa la llave que te dió Macil para hablar con el Gobernador.","Visita a Irale, el proveedor de armamento del Frente. Está detrás de la puerta junto a la tienda de armas. Luego, usa la llave que te dió Macil para hablar con el Gobernador.","Va voir Irale, le chef de l'arsenal du Front, en ville. Il se trouve derrière la porte à côté du marchand d'armes. Utilise la clé que Macil t'a donné pour parler au gouverneur.",,,,"ПоÑети ИрÑйла, поÑтавщика Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð¡Ð¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð² городе. Он за Ñледующей поÑле оружейного магазина дверью. Затем, воÑпользуйÑÑ ÐºÐ»ÑŽÑ‡Ð¾Ð¼, который тебе дал ÐœÑйÑил, чтобы поговорить Ñ Ð³ÑƒÐ±ÐµÑ€Ð½Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼.", +"Find the power tap on the mains, and shut it off. Bring something back to the Governor as proof.",TXT_ILOG1007,,,,Finde die Energieanzapfung und schalte sie aus. Bringe dem Gouverneur irgend etwas als Beweis.,Encuentra la intervención de la red principal y desactívala. Trae algo de vuelta al Gobernador como prueba.,Encuentra la intervención de la red principal y desactívala. Regresa con una prueba con el Gobernador.,Trouve la connection pirate sur le transformateur et enlève la. Amène quelque chose au gouverneur comme preuve.,,,,Ðайди нелегальное подключение к ÑнергоÑети и выведи его из ÑтроÑ. ПринеÑи что-нибудь губернатору в качеÑтве доказательÑтва., +"Find Derwin in the warehouse of the power station. Kill him, and bring Mourel his ear.",TXT_ILOG1008,,,,Finde Derwin im Lagerhaus des Kraftwerks. Töte ihn und bringe Mourel sein Ohr.,"Encuentra a Derwin en el almacén de la estación eléctrica. Mátalo, y tráele su oreja a Mourel.",Encuentra a Derwin en el almacén de la Estación Eléctrica. Mátalo y táele a Mourel su oreja.,"Trouve Derwin dans l'entrepôt de la centrale électrique. Tue-le, et amène son oreille à Mourel.",,,,Ðайди Дервина на Ñкладе ÑлектроÑтанции. Убей его и принеÑи Морелу его ухо., +"Use the pass Mourel gave you to get into the prison. Once inside, talk to Warden Montag. Find a way to free the prisoners.",TXT_ILOG1009,,,,"Benutze den Pass, den Mourel dir gegeben hat um in das Gefängnis hereinzukommen. Wenn du drin bist, rede mit Direktor Montag. Finde einen Weg um die Gefangenen zu befreien.","Usa el pase que Mourel te dió para entrar en la prisión. Una vez dentro, habla con el Carcelero Montag. Encuentra una forma de liberar a los prisioneros.","Usa el pase que Mourel te dió para entrar en la prisión. Una vez dentro, habla con el Director Montag. Encuentra una manera de liberar a los prisioneros.","Utilise le passe que Mourel t'a donné pour entrer dans la prison. Une fois à l'intérieur, parle au gardien Montag. Trouve un moyen de libérer les prisonniers.",,,,"ИÑпользуй пропуÑк, который Ñ‚Ñ‹ получил у Морела, чтобы пройти в тюрьму. Когда Ñ‚Ñ‹ будешь внутри, поговори Ñ Ñ‚ÑŽÑ€ÐµÐ¼Ñ‰Ð¸ÐºÐ¾Ð¼ Монтагом. Ðайди ÑпоÑоб оÑвободить пленников.", +Use the Warden's key to get into the prison cell blocks and find a way to free the prisoners.,TXT_ILOG1010,,,,"Benutze den Schlüssel des Direktors um in die Zellenblöcke zu kommen und finde heraus, wie man die Gefangenen befreien kann.",Usa la llave del Carcelero para entrar en los bloques de celdas y encuentra una forma de liberar a los prisioneros.,Usa la llave del Director para entrar en los bloques de celdas y encuentra una manera de liberar a los prisioneros.,Utilisé la clé du Gardien pour entrer dans les blocs de cellules et trouve un moyen de libérer les prisonners.,,,,"ИÑпользуй ключ тюремщика, чтобы пройти к камерам, и найди ÑпоÑоб оÑвободить пленников.", +"Destroy the power crystal that runs the power grid which drives the Order's shields. Go visit worner, a spy we recruited in the warehouse of the power station. Don't forget to visit the medic and the weapons trainer before you go",TXT_ILOG1011,,,,"Zerstöre den Energiekristall der die Energieversorgung für die Kraftschilde kontrolliert. Suche Worner auf, einen Spion, den wir im Lagerhaus des Kraftwerks rekrutiert haben. Vergiß nicht, den Sanitäter und den Waffentrainer aufzusuchen, bevor du gehst.","Destruye el cristal de poder que impulsa la red eléctrica que alimenta los escudos de la Orden. Ve a visitar a Worner, un espía que reclutamos en el almacén de la estación eléctrica. No te olvides de visitar al médico y el entrenador de armas antes de irte","Destruye el cristal de poder que impulsa la red eléctrica que abastece los escudos de la Orden. Visita a Worner, un espía que reclutamos en el almacén de la Estación Eléctrica. No olvides visitar al médico y el entrenador de armas antes de irte.","Détruis le cristal qui alimente la grille énergétique des boucliers de l'Ordre. Va voir Worner, un espion que nous avons recruté dans l'entrepôt de la central éléctrique. N'oublie pas d'aller voir le maître d'armes et le médecin avant d'y aller.",,,,"Уничтожь криÑталл, питающий ÑнергоÑеть, от которой работают щиты Ордена. Поговори Ñ Ð£Ð¾Ñ€Ð½Ñром, шпионом СопротивлениÑ, на Ñкладе ÑлектроÑтанции. Ðе забудь перед уходом поÑетить медика и инÑтруктора по Ñтрельбе.", +Destroy the power crystal that runs the power grid which drives the Order's shields. Use the I.D. to get into the power station. You may want to check out the storeroom above Worner.,TXT_ILOG1012,,,,Zerstöre den Energiekristall der die Energieversorgung für die Kraftschilde kontrolliert. Benutze die Identitätskarte. um in das Kraftwerk zu gelangen. Du solltest den Abstellraum beim Lagerhaus mal inspizieren.,Destruye el cristal de poder que impulsa la rede eléctrica que alimenta los escudos de la Orden. Usa la identificación para entrar a la estación eléctrica. Quizas quieras comprobar el cuarto de almacenamiento encima de Worner.,Destruye el cristal de poder que impulsa la red eléctrica que abastece los escudos de la Orden. Usa la Identificación para entrar a la Estación Eléctrica. Quizás quieras revisar el cuarto de almacenaje arriba de Worner.,Détruis le cristal qui alimente la grille énergétique des boucliers de l'Ordre. Utilise la carte d'identité pour entrer dans la centrale. Il faudrait que tu aille voir la salle de stockage au dessus de Worner.,,,,"Уничтожь криÑталл, питающий ÑнергоÑеть, от которой работают щиты Ордена. Пройди на ÑлектроÑтанцию по удоÑтоверению. Возможно, Ñ‚Ñ‹ захочешь проверить Ñклад на втором Ñтаже, о котором говорил УорнÑÑ€.", +Destroy the power crystal that runs the power grid which drives the Order's shields. Go talk to Ketrick in the core area.,TXT_ILOG1013,,,,"Zerstöre den Energiekristall der die Energieversorgung für die Kraftschilde kontrolliert. Suche Worner auf, einen Spion, den wir im Lagerhaus des Kraftwerks rekrutiert haben. Vergiß nicht, den Sanitäter und den Waffentrainer aufzusuchen, bevor du gehst.",Destruye el cristal de poder que impulsa la rede eléctrica que alimenta los escudos de la Orden. Habla con Ketrick en el área del núcleo.,Destruye el cristal de poder que impulsa la red eléctrica que abastece los escudos de la Orden. Ve a hablar con Ketrick en el área del núcleo.,Détruis le cristal qui alimente la grille énergétique des boucliers de l'Ordre. Va parler à Ketrick dans la zone du cÅ“ur.,,,,"Уничтожь криÑталл, питающий ÑнергоÑеть Ордена и их щиты. Поговори Ñ ÐšÐµÑ‚Ñ€Ð¸ÐºÐ¾Ð¼ возле реактора.", +"Destroy the power crystal. Go talk to Ketrick, bring the walkway up using the switches, then use this id for the elevator.",TXT_ILOG1014,,,,Zerstöre den Energiekristall der die Energieversorgung für die Kraftschilde kontrolliert. Gehe zu Ketrick im Reaktorkern.,"Destruye el cristal de poder. Habla con Ketrick, alza la pasarela usando los interruptores, luego usa esta identificación para el ascensor.","Destruye el cristal de poder. Ve a hablar con Ketrick, levanta el pasaje usando los switches, luego, usa está identificación para el elevador.","Détruis le cristal. Va parler à Ketrick. Fais monter la coursive en utilisant les boutons, puis utilise ta carte d'identité pour accéder à l'ascenseur.",,,,"Уничтожь криÑталл. Поговори Ñ ÐšÐµÑ‚Ñ€Ð¸ÐºÐ¾Ð¼, пройди наверх Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ переключателей, затем иÑпользуй удоÑтоверение Ð´Ð»Ñ Ð´Ð¾Ñтупа к лифту.", +Find the town entrance that the Order has guarded. Open the door and bring the guard's uniform back to Weran.,TXT_ILOG1015,,,,"Finde den Ausgang zur Stadt, der vom Orden bewacht wird. Öffne dir Tür und bringe die Uniform des Wächters zu Weran.",Encuentra la entrada al pueblo que la Orden tiene guardada. Abre la puerta y trae de vuelta a Weran el uniforme del guardia.,Encuentra la entrada al pueblo que la Orden ha guardado. Abre la puerta y trae el uniforme del guardia de regreso a Weran.,Trouve l'entrée de la ville que L'Ordre garde fermée. Ouvre-la et amène l'uniforme du garde à Weran.,,,,"Ðайди выход в город, охранÑемый Орденом. Открой дверь и принеÑи униформу Ñтражника УÑрану.", +"Take the flamethrower parts to Irale. Find the sewer maintenance door. Find and drain the reclamation tank inside the castle. At the bottom is a hidden entrance to the sewers. Down that entrance is where the gate controls are, somewhere.",TXT_ILOG1016,,,,Bringe dir Flammenwerferteile zu Irale. Finde die Wartungstür in der Kanalisation. Finde und leere den Sammeltank in der Burg. Am Boden ist ein versteckter Eingang zur Kanalisation. Dort ist die Steuerung für die Tore. Zerstöre sie.,"Llévale las partes de lanzallamas a Irale. Encuentra la puerta de mantenimiento de las alcantarillas. Encuentra y drena el tanque de reclamación dentro del castillo. Al fondo hay una entrada oculta a las alcantarillas. Bajando por esa entrada es donde se encuentran los controles de la puerta, en algún lugar.","Llévale las partes del lanzallamas a Irale. Encuentra la puerta de mantenimiento de la alcantarilla. Encuentra y drena el tanque de recuperación adentro del castillo. En el fondo de esa entrada están los controles de las puertas, en algún lugar.",Amène les pièces du lance-flamme à Irale. Trouve l'entrée de maintenance des égouts. Fais vider le réservoir de recyclage du château. Au fond se trouve une entrée cachée vers les égouts. Les contrôles de la porte s'y trouvent.,,,,ОтнеÑи детали огнемёта ИрÑйлу. Ðайди дверь техобÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸. Ðайди бак Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ и Ñлей из него жидкоÑÑ‚ÑŒ. Ðа его дне находитÑÑ Ð¿Ð¾Ñ‚Ð°Ð¹Ð½Ð¾Ð¹ вход в Ñтоки. Где-то за ним находитÑÑ Ð¼ÐµÑ…Ð°Ð½Ð¸Ð·Ð¼ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ñ€Ð¾Ñ‚Ð°Ð¼Ð¸., +Join the assault on the castle. Find and take out the Programmer. See the medic and the weapons trainer. Spend everything you've got. This is going to be a hell of a fight.,TXT_ILOG1017,,,,"Schließe dich dem Angriff auf die Burg an. Finde den Programmierer und schalte ihn aus. Suche den Sanitäter und den Waffentrainer auf. Kaufe was immer du kannst, das wird ein höllischer Kampf.",Únete al asalto en el castillo. Encuentra y elimina al Programador. Ve a ver al médico y entrenador de armas. Gasta todo lo que tengas. Esto va a ser una batalla tremenda.,Únete al asalto en el castillo. Encuentra y elimina al Programador. Ve al médico y al entrenador de armas. Gasta todo lo que tengas. Esta será una tremenda batalla.,"Rejoins l'assaut sur le château. Trouve et tue le Programmeur. Va voir le médecin et le maître d'armes. Dépense tout ce que tu as, ça va être un sacré bain de sang!",,,,ПриÑоединиÑÑŒ к атаке на замок. Ðайди и убей ПрограммиÑта. ПоÑети медика и инÑтруктора по Ñтрельбе. Ðе жалей золота - битва будет чертовÑки жаркой., +Use the key the false Programmer gave you to open an entrance to the Programmer's keep. It has to be where he's hiding. Find the Programmer and kill him.,TXT_ILOG1018,,,,"Benutze den Schlüssel des falschen Programmierers um in die Unterkunft des Programmierers einzudringen. Das ist der Ort, wo er sich verstecken dürfte. Finde und töte ihn.",Usa la llave que el falso Programador te dió para abrir una entrada a la guarida del Programador. Tiene que ser ahí donde se oculta. Encuentra al Programador y mátalo.,Usa la llave que el falso Programador te dió para abrir la entrada a la güarida del Programador. Debe ser donde está escondido. Encuentra al Programador y mátalo.,Utilise la clé que le faux Programmeur t'a donné pour entrer dans le donjon du Programmeur. Il doit s'y cacher. Trouve-le et tues-le.,,,,"ИÑпользуй ключ, полученный от фальшивого ПрограммиÑта, чтобы открыть вход в цитадель. Скорее вÑего, именно там прÑчетÑÑ Ð½Ð°ÑтоÑщий ПрограммиÑÑ‚. Ðайди и убей его.", +Seek out the Oracle and ask it about the other Sigil pieces. Take your reward and go across to the medic and weapons trainer for health and training.,TXT_ILOG1019,,,,Suche das Orakel auf und frage es nach den anderen Sigil-Teilen. Nimm deine Belohnung und suche den Sanitäter und den Waffentrainer auf.,Busca al Oráculo y pregúntale sobre las otras piezas del Emblema. Toma tu recompensa y ve al médico y al entrenador de armas para salud y entrenamiento.,Busca al Oráculo y pregúntale acerca de las otras piezas del Emblema. Toma tú recompensa y dirígete con el médico y el entrenador de armas por salúd y entrenamiento.,"Trouve l'Oracle et demande lui où se trouve les autres pièces du Sigil. Récupère ta récompense, et va voir le médecin et le maître d'armes pour te soigner et t'entraîner.",,,,Ðайди Оракула и ÑпроÑи у него про другие фрагменты Сигила. Возьми Ñвою награду и поÑети медика и инÑтруктора по Ñтрельбе., +"The second piece lies at the heart of the crimson and obsidian tower. There you must find the Bishop, who awaits you. Take the Oracle's token to the key master in the borderlands. Once you have destroyed the Bishop, return to the Oracle.",TXT_ILOG1020,,,,"Das zweite Teilstück befindet sich im Turm aus Purpur und Obsidian. Dort musst du den Bischof finden, der dich erwartet. Bringe das Symbol des Orakels zum Schlüsselmeister in den Grenzgebieten. Wenn der Bischof ausgeschaltet ist, kehre zum Orakel zurück.","La segunda pieza se encuentra en el corazón e la torre carmesí y obsidiana. Ahí debes encontrar al Obispo, quien espera por ti. Lleva el vale del Oráculo al amo de llaves en las fronteras. En cuanto hayas destruido al Obispo, regresa con el Oráculo.","La segunda pieza está en el corazón de la torre carmesí y obsidiana. Ahí deberás encontrar al Obispo, que te está esperando. Lleva el símbolo del Oráculo al Amo de Llaves en las fronteras. Cuando hayas destruido al Obispo, regresa con el Oráculo.","La deuxième pièce se trouve au cÅ“ur de la tour d'obsidienne et d'écarlate. Tu y trouveras l'évêque, qui t'attend. Amène le jeton de l'Oracle au maître des clés dans les terrains vagues. Quand tu as tué l'évêque, retourne voir l'Oracle.",,,,"Второй фрагмент лежит в Ñердце багрово-обÑидиановой башни. Там Ñ‚Ñ‹ вÑтретишь ЕпиÑкопа, которыи ожидает тебÑ. ОтнеÑи знак Оракула ключнику в пограничье. Когда уничтожишь ЕпиÑкопа, возвращайÑÑ Ðº Оракулу.", +"Find the crimson and obsidian tower. Use the id key the key master gave you to enter the tower. Once inside you must locate the Bishop. Once you have destroyed the Bishop, return to the Oracle.",TXT_ILOG1021,,,,"Finde den Turm aus Purpur und Obsidian. Benutze den Schlüssel des Schlüsselmeisters um in den Turm hereinzukommen. In seinem Inneren musst du den Bischof finden. Wenn er ausgeschaltet ist, kehre zum Orakel zurück.","Encuentra la torre carmesí y obsidiana. Usa la llabe que te dio el amo de llaves para entrar en la torre. Una vez dentro debes localizar al Obispo. Una vez hayas destruido al Obispo, regresa con el Oráculo.","Encuentra la torre carmesí y obsidiana. Usa la llave que te dio el Amo de Llaves para entrar en la torre. Una vez adentro localiza al Obispo. Una vez destruido el Obispo, regresa con el Oráculo.","Trouve la tour d'obsidienne et d'écarlate. Utilise la carte magnétique que le maître des clés t'a donnée pour y entrer. A l'intérieur, trouve et tue l'évêque, puis retourne à l'Oracle.",,,,"Ðайди багрово-обÑидиановую башню. ИÑпользуй пропуÑк, полученный у ключника, чтобы войти внутрь. Там Ñ‚Ñ‹ должен найти ЕпиÑкопа. Когда убьёшь его, возвращайÑÑ Ðº Оракулу.", +"Find the security complex, fight through there and use the teleporter to central administration. Destroy the computer core in central administration. This will kill the force field on the Bishop's tower. Once the Bishop's dead, return to the Oracle.",TXT_ILOG1022,,,,"Finde den Sicherheitskomplex, kämpfe dich durch und benutze den Teleporter zur Zentralverwaltung. Zerstöre den Computer in der Verwaltung. Das wird alle Kraftfelder am Turm des Bischofs ausschalten. Wenn der Bischof ausgeschaltet ist, kehre zum Orakel zurück.","Encuentra el complejo de seguridad, pelea a través de ahí y usa el teletransporte a administración central. Destruye el núcleo de la computadora en administración central. Esto apagará el campo de fuerza en la torre del Obispo. En cuanto el Obispo esté muerto, regresa con el Oráculo.","Encuentra el complejo de seguridad, pelea através de ahí y usa el teleporte a la Central de Administración. Destruye el núcleo en la Central de Administración. Esto desactivará el campo de fuerza en la torre del Obispo. Una vez que el Obispo esté muerto, regresa con el Oráculo.","Trouve le complexe de sécurité. Bats-toi pour atteindre le téléporteur vers le centre d'administration. Détruis le cÅ“ur informatique qui s'y trouve. Cela désactivera le chap de force de la tour de l'évêque. Un fois qu'il est mort, retourne voir l'Oracle.",,,,"Ðайди охранный комлекÑ, пробейÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÑŒ и иÑпользуй телепорт до центральной админиÑтрации. Уничтожь компьютер. Это должно отключить Ñиловое поле башни ЕпиÑкопа. Когда убьёшь ЕпиÑкопа, возвращайÑÑ Ðº Оракулу.", +Your next challenge will test your spirit. The third piece is held by your own leader. He is the same as that which he sends you to kill. Confront him and resolve your fate.,TXT_ILOG1023,,,,"Die nächste Herausforderung wird deinen Geist prüfen. Das dritte Teilstück wird von deinem eigenen Anführer, Macil, gehalten. Er ist das Gleiche, was er dich töten lässt. Konfrontiere ihn und kläre dein Schicksal.",Tu siguiente desafío pondrá a prueba tu espíritu. La tercera pieza está en manos de tu propio líder. Él es lo mismo que te envía a matar. Confróntalo y resuelve tu destino.,Tú siguiente desafío probará tú espíritu. La tercera pieza la tiene tú propio líder. Él es igual que aquello que te envía a matar. Confróntalo y resuelve tú destino.,Le prochain défi testera votre esprit. Le troisième fragment est possédé par votre leader. Il est le même que celui qu'il vous a envoyé tuer. Confrontez-le et faites face à votre destinée.,,,,"Следующее иÑпытание проверит Ñилу твоего духа. Третий фрагмент у вашего лидера. Он Ñродни тем, кого вы убиваете по его приказу. СразиÑÑŒ Ñ Ð½Ð¸Ð¼ и реши Ñвою Ñудьбу.", +"It is the Oracle who holds the third piece. There's your traitor. Return to the Oracle, and take him down. Return to me when it's dead.",TXT_ILOG1024,,,,"Es ist das Orakel, das das dritte Teilstück besitzt. Es ist der Verräter. Kehre zu ihm zurück und schalte es aus. Kehre zurück, wenn es tot ist.",Es el Oráculo quien tiene la tercera pieza. Ahí está tu traidor. Regresa al Oráculo y acaba con él. Regresa a mí cuando esté muerto.,Es el Oráculo el que tiene la tercera pieza. Ahí está tú traidor. Regresa con el Oráculo y acaba con él. Regresa a mí cuando esté muerto.,"C'est l'Oracle qui détient la troisième pièce, est c'est lui qui est le traître. Retourne le voir et détruis-le. Retourne à la base quand il est mort.",,,,У Оракула хранитÑÑ Ñ‚Ñ€ÐµÑ‚Ð¸Ð¹ фрагмент. И кто же теперь предатель? ВерниÑÑŒ к Оракулу и убей его. Доложи мне о его Ñмерти., +"You have cut the cancer from your body, but your heart still beats. Next you must find the surgeon who butchers and controls your people.... The Loremaster. Stop him, and the next piece will be yours.",TXT_ILOG1025,,,,"Du hast das Geschwür aus deinem Körper entferrnt, aber dein Herz schlägt noch. Als Nächstes musst du den Wissensmeister finden, der deine Leute kontrolliert und abschlachtet. Stoppe ihn und das nächste Teilstück ist Dein.","Has cortado el cáncer de tu cuerpo, pero tu corazón aún late. Ahora debes encontrar al cirujano que destroza y controla a tu gente... El Maestro del Conocimiento. Detenlo, y la siguiente pieza será tuya.","Haz cortado el cáncer de tu cuerpo, pero tú corazón todavía late. Ahora debes encontrar al cirujano que encarniza y controla a tú gente... El Maestro del Conocimiento. Deténlo y la siguiente pieza será tuya.","Vous avez arraché le cancer de votre corps, mais le cÅ“ur bat encore. Vous devez maintenant trouver le chirurgien qui massacre votre peuple, le Maître des traditions. Arrètez-le, et le fragment suivant sera le vôtre.",,,,"Ты вырезал рак из Ñвоего тела, но твоё Ñердце вÑÑ‘ ещё бьётÑÑ. Теперь тебе предÑтоит найти вивиÑектора, который вÑкрывает твоих людей и управлÑет ими — Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти. ОÑтанови его, и Ñледующий фрагмент твой.", +"Next you must find the surgeon who butchers and controls your people.... The Loremaster. Stop him, and the next piece will be yours. Use the teleporter I opened to reach him. When he's dead, use the same device to return to me.",TXT_ILOG1026,,,,"Als Nächstes musst du den Wissensmeister finden, der deine Leute kontrolliert und abschlachtet. Stoppe ihn und das nächste Teilstück ist Dein. Benutze den Teleporter, den ich geöffnet habe, um zu ihm zu gelangen. Wenn er tot ist kehre auf dem gleichen Weg zurück.","Ahora debes encontrar al cirujano que destroza y controla a tu gente... El Maestro del Conocimiento. Detenlo, y la siguiente pieza será tuya. Usa el teletransporte que he abierto para alcanzarlo. Cuando esté muerto, usa el mismo dispositivo para regresar a mí.","Ahora debes encontrar al cirujano que encarniza y controla a tú gente... El Maestro del Conocimiento. Deténlo y la siguiente pieza será tuya. Usa el teleporte que he abierto para alcanzarlo. Cuando esté muerto, usa el mismo dispositivo para regresar conmigo.","Vous devez maintenant trouver le chirurgien qui massacre votre peuple, le Maître des traditions. Arrètez-le, et le fragment suivant sera le vôtre. Utilisez le téléporter qui s'est ouvert pour l'atteindre. Quand il est mort, utilisez le même téléporteur pour retourner à l'Oracle.",,,,"Тебе предÑтоит найти вивиÑектора, который вÑкрывает твоих людей и управлÑет ими — Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð¼ÑƒÐ´Ñ€Ð¾Ñти. ОÑтанови его, и Ñледующий фрагмент твой. ИÑпользуй открытый мной телепорт, чтобы добратьÑÑ Ð´Ð¾ него. Когда он умрёт, найди другой телепорт, чтобы вернутьÑÑ ÐºÐ¾ мне.", +You have chosen wisely. The third piece is held by your own leader. Destroy that which hides within your heart and return to me.,TXT_ILOG1027,,,,"Du hast weise entschieden. as dritte Teilstück wird von deinem eigenen Anführer, Macil, gehalten. Vernichte, was sich in eurem Herzen versteckt und kehre zu mir zurück.",Has elegido sabiamente. La tercera pieza está en manos de tu propio líder. Destroye lo que se esconde en tu corazón y regresa a mí.,Haz escogido sabiamente. La tercera pieza la tiene tú propio líder. Destruye aquello que se oculta en tú corazón y regresa conmigo.,Vous avez sagement choisi. La troisième pièce est détenue par votre propre leader. Détruisez ce qui se tapit dans son cÅ“ur et revenez à moi.,,,,"Ты выбрал мудро. Третий фрагмент у вашего лидера. Уничтожь то, что закралоÑÑŒ в твоё Ñердце, и возвращайÑÑ ÐºÐ¾ мне.", +"We've found out that the Order is transforming our people into bio-mechanical soldiers. Find the facility where this is being done and close it, permanently! Find Richter in the commons, near the waterfall and he'll tell you how to stop this atrocity.",TXT_ILOG1028,,,,"Wir haben herausgefunden, dass der Orden unsere Leute nicht tötet, sondern sie transformiert - int biomechanische Soldaten.Finde die Einrichtung, wo dies passiert und schließe sie - endgültig. Suche Richter beim Wasserfall bei der Mensa. Er wird dir sagen, wie du diese Abscheulichkeit abschaklten kannst.","Hemos descubierto que la Orden está transformando a nuestra gente en soldados biomecánicos. Encuentra la instalación donde esto se está haciendo y ciérrala, ¡Permanentemente! Encuentra a Richter en los comunes, junto a la cascada y te dirá como detener esta atrocidad.","Hemos descubierto que la Orden está transformando a nuestra gente en soldado bio-mecánicos. ¡Encuentra la facilidad donde se está realizando esto y cierrala permanentemente! Encuentra a Richter en los comunes, cerca de la cascada y él te dirá como detener esta atrocidad.",Nous avons découvert que l'Ordre transforme notre peuple en soldats biomécaniques. Trouve l'usine où cela se déroule et détruis-la pour toujours! Trouve Richter dans le Réfectoire près de la cascade et il t'expliquera comment stopper cette atrocité.,,,,"Мы выÑÑнили, что Орден превращает наших людей в биомеханичеÑких Ñолдат. Ðайди фабрику, где Ñто проиÑходит, и закрой её, навÑегда! Ðайди Рихтера в поÑелении Ордена, возле водопада, он раÑÑкажет тебе, как оÑтановить Ñти зверÑтва.", +"To enter the factory, you need a key. We stole one, but the agent who had it is missing in the catacombs underneath the commons. There's something down there taking our men. Whatever it is, you have to find it and retrieve the key. When you've got it, the factory is next to the mines.",TXT_ILOG1029,,,,"Um die Fabrik zu betreten, brauchst du einen Schlüssel. Wir haben ihn gestohlen, aber unser Agent ist in den Irrwegen der Katakomben unter der Festung des Ordens verschollen. Irgendetwas ist da unten, das unsere Leute ausschaltet. Was auch immer es ist, du musst es finden und den Schlüssel zurückholen. Wenn du ihn hast - die Fabrik ist direkt neben den Minen.","Para entrar en la fábrica, necesitas una llave. Robamos una, pero el agente que la tiene está perdido en las catacumbas bajo los comunes. Hay algo ahí abajo tomando a nuestros hombres. Sea lo que sea, tienes que encontrarlo y recuperar la llave. Cuando la tengas, la fábrica está junto a las minas.","Para entrar en la Fábrica, necesitas una llave. Robamos una, pero el agente que la tenía está perdido en las catacumbas debajo de los comunes. Hay algo ahí abajo que está tomando nuestros hombres. Sea lo que sea, deberás encontrarlo y recuperar la llave. Cuando la tengas, la Fábrica está junto a las minas.","Pour entrer dans l'usine, il te faura une clé. On en a volé une, mais l'agent qui la possède a disparu dans les catacombes sous le réfectoire. Il y a quelque chose à l'intérieur qui tue nos hommes. Trouve la et récupère la clé. Quand tu l'as, l'usine est près des mines.",,,,"Тебе нужен ключ, чтобы проникнуть на фабрику. Мы украли один, но наш агент пропал без веÑти в катакомбах под поÑелением. Там, внизу, Ñидит что-то, что убивает наших людей. Что бы Ñто ни было, тебе придётÑÑ ÑразитьÑÑ Ñ Ð½Ð¸Ð¼. Когда заполучишь ключ, путь на фабрику лежит через шахты.", +Find the chalice in the sanctuary chapel and bring it to Harris upstairs in the tavern.,TXT_ILOG1101,,,,Finde den Kelch im Heiligtum und bringe ihn zu Harris im Obergeschoss der Taverne.,Encuentra el cáliz en la capilla del santuario y tráeselo a Harris arriba en la taberna.,Encuentra el Cáliz en la capilla del santuario y tráeselo a Harris arriba en la taberna.,Trouve le calice dans la chapelle du sanctuaire et amène la à Harris à l'étage de la taverne.,,,,Ðайди чашу в ÑвÑтилище и принеÑи её ХарриÑу на второй Ñтаж таверны., +Find the Governor's mansion and talk to the Governor to get your reward,TXT_ILOG1102,,,,Finde die Villa des Gouverneurs und rede mit ihm über deine Belohnung.,Encuentra la mansión del Gobernador y habla con el Gobernador para obtener tu recompensa,Encuentra la mansión del Gobernador y habla con él para obtener tú recompensa.,Trouve le manoir du Gouverneur et parle-lui pour réclamer ta récompense.,,,,Пройди в оÑобнÑк губернатора и обÑуди Ñ ÐœÐ¾Ñ€ÐµÐ»Ð¾Ð¼ Ñвоё вознаграждение., +Congratulations! You have earned our gratitude. Visit the medic and weapons trainer and they will get you ready for what lies ahead. Feel free to wander around within the base.,TXT_ILOG1201,,,,"Gratulation. Du hast dir unsere Dankbarkeit verdient. Suche den Sanitäter und den Waffentrainer auf, sie werden dich auf das was vor dir liegt, vorbereiten. Wenn du willst, schau dich in der Basis um.",¡Enhorabuena! Te has ganado nuestra gratitud. Visita al médico y al entrenador de armas y te prepararán para lo que viene en adelante. Sé libre de dar un paseo por la base.,¡Felicitaciones! Te haz ganado nuestra gratitud. Visita al médico y al entrenador de armas y ellos te dejarán listo para lo que sigue. Sientete libre de andar através de la base.,Félicitations! Vous méritez notre gratitude. Allez voir le médecin et le maître d'armes et ils pourront vous préparer pour ce qu'il va suivre. Vous pouvez faire le tour de la base si vous le souhaitez.,,,,"ПоздравлÑем! Ты заÑлужил нашу благодарноÑÑ‚ÑŒ. Зайди к медику и инÑтруктору по Ñтрельбе, и они подготовÑÑ‚ Ñ‚ÐµÐ±Ñ Ðº тому, что ждёт Ñ‚ÐµÐ±Ñ Ð²Ð¿ÐµÑ€ÐµÐ´Ð¸. Теперь Ñ‚Ñ‹ можешь Ñвободно передвигатьÑÑ Ð¿Ð¾ нашей базе.", +,,,Strife characters,,,,,,,,,, +Order Sergeant,TXT_SPEAKER_ORDER_SERGEANT,,,,Soldat des Ordens,Sargento de La Orden,Sargento de La Orden,Sergeant de l'Ordre,,,,Сержант Ордена, +Rowan,TXT_SPEAKER_ROWAN,,,,,,,,,,,РоуÑн, +Feris,TXT_SPEAKER_FERIS,,,,,,,,,,,ФериÑ, +Prison Guard,TXT_SPEAKER_PRISON_GUARD,,,,Gefängniswache,Guardia de la Prisión,Guardia de la Prisión,Garde de la Prison,,,,"Страж тюрьмы +", +Justin,TXT_SPEAKER_JUSTIN,,,,,,,,,,,ДжаÑтин, +Macil,TXT_SPEAKER_MACIL,,,,,,,,,,,ÐœÑйÑил, +Assistant,TXT_SPEAKER_ASSISTANT,,,,Assistent,Asistente,Asistente,,,,,ÐÑÑиÑтент, +Key Master,TXT_SPEAKER_KEY_MASTER,,,,Schlüsselmeister,Amo de Llaves,Maestro de Llaves,Maître des Clés,,,,Ключник, +Bodyguard,TXT_SPEAKER_BODYGUARD,,,,Leibwächter,Guardaespaldas,Guardaespaldas,Garde du corps,,,,Телохранитель, +Interrogator,TXT_SPEAKER_INTERROGATOR,,,,Befrager,Interrogador,Interrogador,Interrogateur,,,,Дознаватель, +Warden Montag,TXT_SPEAKER_WARDEN_MONTAG,,,,Direktor Montag,Carcelero Montag,Director Montag,Gardien Montag,,,,Тюремщик Монтаг, +Richter,TXT_SPEAKER_RICHTER,,,,,,,,,,,Рихтер, +Macil's Advisor,TXT_SPEAKER_MACIL_S_ADVISOR,,,,Macils Berater,Consejero de Macil,Consejero de Macil,Conseiller de Macil,,,,Советник ÐœÑйÑила, +Judge Wolenick,TXT_SPEAKER_JUDGE_WOLENICK,,,,Richter Wolenick,Juez Wolenick,Juez Wolenick,Juge Wolenick,,,,Ð¡ÑƒÐ´ÑŒÑ Ð£Ð¾Ð»Ð½Ð¸Ðº, +Tevick,TXT_SPEAKER_TEVICK,,,,,,,,,,,Тевик, +Harris,TXT_SPEAKER_HARRIS,,,,,,,,,,,ХарриÑ, +Foreman,TXT_SPEAKER_FOREMAN,,,,Vormann,Capataz,Capataz,Contremaître,,,,Бригадир, +Prisoner,TXT_SPEAKER_PRISONER,,,,Gefangener,Prisionero,Prisionero,Prisonnier,,,,Пленник, +Sammis,TXT_SPEAKER_SAMMIS,,,,,,,,,,,СÑммиÑ, +Weapon Smith,TXT_SPEAKER_WEAPON_SMITH,,,,Waffenschmied,Forjador de Armas,Forjador de Armas,Armurier,,,,Оружейник, +Reactor Guard,TXT_SPEAKER_REACTOR_GUARD,,,,Reaktorwache,Guardia del Reactor,Guardia del Reactor,Garde du réacteur,,,,Страж реактора, +Apprentice,TXT_SPEAKER_APPRENTICE,,,,Lehrling,Aprendiz,Aprendiz,Apprenti,,,,ПодмаÑтерье, +Door Guard,TXT_SPEAKER_DOOR_GUARD,,,,Türwache,Guarda de la Puerta,Guarda de la Puerta,Garde de la porte,,,,Страж входа, +Master Smithy,TXT_SPEAKER_MASTER_SMITHY,,,,Meister Smithy,Maestro Herrero,Maestro Herrero,Maîre Forgeron,,,,МаÑтер-кузнец, +Warehouse Guard,TXT_SPEAKER_WAREHOUSE_GUARD,,,,Lagerhaus-Wache,Guardia del Almacén,Guardia del Almacén,Garde de l'entrepôt,,,,Охранник Ñклада, +Barkeep,TXT_SPEAKER_BARKEEP,,,,Wirt,Tabernero,Barman,Barman,,,,ХозÑин таверны, +Timothy,TXT_SPEAKER_TIMOTHY,,,,,,,,,,,Тимоти, +James,TXT_SPEAKER_JAMES,,,,,,,,,,,ДжеймÑ, +Worner,TXT_SPEAKER_WORNER,,,,,,,,,,,УорнÑÑ€, +Bailey Guard,TXT_SPEAKER_BAILEY_GUARD,,,,Vorhof-Wache,Guardia de la Muralla,Guardia Bailey,Garde d'enceinte,,,,Страж крепоÑти, +Drone,TXT_SPEAKER_DRONE,,,,Drohne,Dron,Dron,,,,,Дрон, +Front Guard,TXT_SPEAKER_FRONT_GUARD,,,,Frontwache,Guardia del Frente,Guardia del Frente,Garde du Front,,,,ПовÑтанец, +Quincy,TXT_SPEAKER_QUINCY,,,,,,,,,,,КуинÑи, +Sergeant,TXT_SPEAKER_SERGEANT,,,,Feldwebel,Sargento,Sargento,Sergeant,,,,Сержант, +Temple Guard,TXT_SPEAKER_TEMPLE_GUARD,,,,Tempelwache,Guardia del Templo,Guardia del Templo,Garde du Temple,,,,Страж храма, +Oracle,TXT_SPEAKER_ORACLE,,,,Orakel,Oráculo,Oráculo,,,,,Оракул, +Ulaine,TXT_SPEAKER_ULAINE,,,,,,,,,,,Улейн, +Front Soldier,TXT_SPEAKER_FRONT_SOLDIER,,,,Front-Soldat,Soldado del Frente,Soldado del Frente,Soldat du Front,,,,ПовÑтанец, +Programmer,TXT_SPEAKER_PROGRAMMER,,,,Programmierer,Programador,Programador,Programmeur,,,,ПрограммиÑÑ‚, +Medic,TXT_SPEAKER_MEDIC,,,,Sanitäter,Médico,Médico,Médecin,,,,Медик, +Watchman,TXT_SPEAKER_WATCHMAN,,,,Wächter,Celador,Celador,Vigie,,,,Караульный, +Ketrick,TXT_SPEAKER_KETRICK,,,,,,,,,,,Кетрик, +Weran,TXT_SPEAKER_WERAN,,,,,,,,,,,УÑран, +Advisor,TXT_SPEAKER_ADVISOR,,,,Berater,Consejero,Consejero,Conseiller,,,,Советник, +Geoff,TXT_SPEAKER_GEOFF,,,,,,,,,,,Джефф, +Overseer,TXT_SPEAKER_OVERSEER,,,,Aufseher,Superintendente,Superintendente,Superviseur,,,,ÐадÑмотрщик, +Security Complex Guard,TXT_SPEAKER_SECURITY_COMPLE,,,,Wache,Vigía,Vigía,Sécurité,,,,ÐšÐ¾Ð¼Ð¿Ð»ÐµÐºÑ Ð¾Ñ…Ñ€Ð°Ð½Ñ‹, +Computer Tech,TXT_SPEAKER_COMPUTER_TECH,,,,Computertechniker,Ingeniero Informático,Ingeniero Informático,Technicien Informatique,,,,Компьютерный техник, +MacGuffin,TXT_SPEAKER_MACGUFFIN,,,,,,,,,,,МакГаффин, +Arion,TXT_SPEAKER_ARION,,,,,,,,,,,Ðрион, +Dock Worker,TXT_SPEAKER_DOCK_WORKER,,,,Dockarbeiter,Trabajador del Muelle,Trabajador del Muelle,Docker,,,,Рабочий дока, +Irale,TXT_SPEAKER_IRALE,,,,,,,,,,,ИрÑйл, +Core Guard,TXT_SPEAKER_CORE_GUARD,,,,Wache,Guardia del Núcleo,Guardia del Núcleo,Garde du cÅ“ur,,,,Страж Ñдра, +Sewer Guard,TXT_SPEAKER_SEWER_GUARD,,,,Kanalisationswächter,Guardia de la Alcantarilla,Guardia de la Alcantarilla,Garde des égouts,,,,Страж канализации, +Technician,TXT_SPEAKER_TECHNICIAN,,,,Techniker,Técnico,Técnico,Technicien,,,,Техник, +Guard,TXT_SPEAKER_GUARD,,,,Wache,Guardia,Guardia,Garde,,,,Стражник, +Peasant,TXT_SPEAKER_PEASANT,,,,Einwohner,Campesino,Campesino,Paysan,,,,Работник, +Armorer,TXT_SPEAKER_ARMORER,,,Armourer,Waffenmeister,Armero,Armero,Armurier,,,,Бронник, +Beldin,TXT_SPEAKER_BELDIN,,,,,,,,,,,Белдин, +Gerard,TXT_SPEAKER_GERARD,,,,,,,,,,,Джерард, +Governor Mourel,TXT_SPEAKER_GOVERNOR_MOUREL,,,,Gouverneur Mourel,Gobernador Mourel,Gobernador Mourel,Gouverneur Mourel,,,,Губернатор Морел, +Bowyer,TXT_SPEAKER_BOWYER,,,,,,,,,,,Лучник, +Derwin,TXT_SPEAKER_DERWIN,,,,,,,,,,,Дервин, \ No newline at end of file diff --git a/wadsrc_extra/static/language.enu b/wadsrc_extra/static/language.enu deleted file mode 100644 index ce0a73725..000000000 --- a/wadsrc_extra/static/language.enu +++ /dev/null @@ -1,1537 +0,0 @@ -[default] - -// Strings from Hexen's IWAD scripts. Technically they are not needed here for English, they are mainly meant to be documentation for translating. - -TXT_HEXEN_MAP01 = "WINNOWING HALL"; -TXT_HEXEN_MAP02 = "SEVEN PORTALS"; -TXT_HEXEN_MAP03 = "GUARDIAN OF ICE"; -TXT_HEXEN_MAP04 = "GUARDIAN OF FIRE"; -TXT_HEXEN_MAP05 = "GUARDIAN OF STEEL"; -TXT_HEXEN_MAP06 = "BRIGHT CRUCIBLE"; -TXT_HEXEN_MAP13 = "SHADOW WOOD"; -TXT_HEXEN_MAP08 = "DARKMERE"; -TXT_HEXEN_MAP09 = "CAVES OF CIRCE"; -TXT_HEXEN_MAP10 = "WASTELANDS"; -TXT_HEXEN_MAP11 = "SACRED GROVE"; -TXT_HEXEN_MAP12 = "HYPOSTYLE"; -TXT_HEXEN_MAP27 = "HERESIARCH'S SEMINARY"; -TXT_HEXEN_MAP28 = "DRAGON CHAPEL"; -TXT_HEXEN_MAP30 = "GRIFFIN CHAPEL"; -TXT_HEXEN_MAP31 = "DEATHWIND CHAPEL"; -TXT_HEXEN_MAP32 = "ORCHARD OF LAMENTATIONS"; -TXT_HEXEN_MAP33 = "SILENT REFECTORY"; -TXT_HEXEN_MAP34 = "WOLF CHAPEL"; -TXT_HEXEN_MAP21 = "FORSAKEN OUTPOST"; -TXT_HEXEN_MAP22 = "CASTLE OF GRIEF"; -TXT_HEXEN_MAP23 = "GIBBET"; -TXT_HEXEN_MAP24 = "EFFLUVIUM"; -TXT_HEXEN_MAP25 = "DUNGEONS"; -TXT_HEXEN_MAP26 = "DESOLATE GARDEN"; -TXT_HEXEN_MAP35 = "NECROPOLIS"; -TXT_HEXEN_MAP36 = "ZEDEK'S TOMB"; -TXT_HEXEN_MAP37 = "MENELKIR'S TOMB"; -TXT_HEXEN_MAP38 = "TRADUCTUS' TOMB"; -TXT_HEXEN_MAP39 = "VIVARIUM"; -TXT_HEXEN_MAP40 = "DARK CRUCIBLE"; - -TXT_HEXEN_CLUS1MSG = "having passed the seven portals\n" - "which sealed this realm, a vast\n" - "domain of harsh wilderness stretches\n" - "before you. fire, ice and steel have\n" - "tested you, but greater challenges\n" - "remain ahead. the dense tangle of\n" - "forest surely hides hostile eyes,\n" - "but what lies beyond will be worse.\n" - "\n" - "barren desert, dank swamps and\n" - "musty caverns bar your way, but you\n" - "cannot let anything keep you from\n" - "your fate, even if you might come\n" - "to wish that it would.\n" - "\n" - "and beyond, flickering in the\n" - "distance, the ever-shifting walls\n" - "of the hypostyle seem to mock\n" - "your every effort."; - -TXT_HEXEN_CLUS2MSG = "your mind still reeling from your\n" - "encounters within the hypostyle, you\n" - "stagger toward what you hope is\n" - "a way out. things seem to move faster\n" - "and faster, your vision blurs and\n" - "begins to fade...\n" - "as the world collapses around you,\n" - "the brightness of a teleportal\n" - "engulfs you. a flash of light, and then\n" - "you climb wearily to your feet.\n" - "\n" - "you stand atop a high tower, and\n" - "from below come the screams of the\n" - "damned. you step forward, and\n" - "instantly the sound of demonic\n" - "chanting chills your blood.\n" - "by all the gods of death! what place\n" - "have you come to? by all the gods of\n" - "pain, how will you ever find your\n" - "way out?"; - -TXT_HEXEN_CLUS3MSG = "the mightiest weapons and artifacts\n" - "of the ancients barely sufficed to\n" - "defeat the heresiarch and his\n" - "minions, but now their foul remains\n" - "lie strewn at your feet. gathering\n" - "the last of your strength, you\n" - "prepare to enter the portal which\n" - "leads from the heresiarch's inner\n" - "sanctum.\n" - "\n" - "above you, the ramparts of an\n" - "immense castle loom. silent towers\n" - "and bare walls surround a single\n" - "spire of black stone, which squats\n" - "in the center of the castle like a\n" - "brooding giant. fire and shadow\n" - "twist behind gaping windows, dozens\n" - "of baleful eyes glaring down upon\n" - "you.\n" - "somewhere within, your enemies are\n" - "waiting..."; - -TXT_HEXEN_CLUS4MSG = "\"... and he shall journey into the\n" - "realms of the dead, and contest with\n" - "the forces therein, unto the very\n" - "gates of despair. but whether he\n" - "shall return again to the world of\n" - "light, no man knows.\"\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "damn."; - -TXT_HEXEN_WIN1MSG = "with a scream of agony you are\n" - "wrenched from this world into\n" - "another, every part of your body\n" - "wreathed in mystic fire. when your\n" - "vision clears, you find yourself\n" - "standing in a great hall, filled\n" - "with ghostly echoes and menacing\n" - "shadows. in the distance you can\n" - "see a raised dais, and upon it the\n" - "only source of light in this world."; - -TXT_HEXEN_WIN2MSG = " this can only be the chaos sphere,\n" - "the source of korax's power. with\n" - "this, you can create worlds... or\n" - "destroy them. by rights of battle\n" - "and conquest it is yours, and with\n" - "trembling hands you reach to grasp\n" - "it. perhaps, now, a new player will\n" - "join the cosmic game of power. like\n" - "the pawn who is promoted to queen,\n" - "suddenly the very reaches of the\n" - "board seem to be within your grasp."; - -TXT_HEXEN_WIN3MSG = "\n" - "but there are other players mightier\n" - "than you, and who can know their\n" - "next moves?"; - -TXT_HEXDD_MAP41 = "RUINED VILLAGE"; -TXT_HEXDD_MAP42 = "BLIGHT"; -TXT_HEXDD_MAP43 = "SUMP"; -TXT_HEXDD_MAP44 = "CATACOMB"; -TXT_HEXDD_MAP45 = "BADLANDS"; -TXT_HEXDD_MAP46 = "BRACKENWOOD"; -TXT_HEXDD_MAP47 = "PYRE"; -TXT_HEXDD_MAP48 = "CONSTABLE'S GATE"; -TXT_HEXDD_MAP49 = "TREASURY"; -TXT_HEXDD_MAP50 = "MARKET PLACE"; -TXT_HEXDD_MAP51 = "LOCUS REQUIESCAT"; -TXT_HEXDD_MAP52 = "ORDEAL"; -TXT_HEXDD_MAP53 = "ARMORY"; -TXT_HEXDD_MAP54 = "NAVE"; -TXT_HEXDD_MAP55 = "CHANTRY"; -TXT_HEXDD_MAP56 = "ABATTOIR"; -TXT_HEXDD_MAP57 = "DARK WATCH"; -TXT_HEXDD_MAP58 = "CLOACA"; -TXT_HEXDD_MAP59 = "ICE HOLD"; -TXT_HEXDD_MAP60 = "DARK CITADEL"; -TXT_HEXDD_MAP33 = "TRANSIT"; -TXT_HEXDD_MAP34 = "OVER N UNDER"; -TXT_HEXDD_MAP35 = "DEATHFOG"; -TXT_HEXDD_MAP36 = "CASTLE OF PAIN"; -TXT_HEXDD_MAP37 = "SEWER PIT"; -TXT_HEXDD_MAP38 = "THE ROSE"; - -TXT_HEXDD_CLUS1MSG = "wiping a trembling hand across your\n" - "bleeding face, you try to clear\n" - "your mind for what lies ahead...\n" - "\n" - "...and forget what lies behind.\n" - "\n" - "in the distance, the stark ramparts\n" - "of a great castle complex seem to\n" - "rend the sky above, and the stench\n" - "of decay wafts from the violated\n" - "graves of uncounted dead.\n" - "\n" - "carefully counting what little\n" - "remains of your artifacts, you try\n" - "to reassure yourself that it will\n" - "be enough. after all, it has to be\n" - "enough, doesn't it?\n" - "\n" - "\n" - "doesn't it?"; - - - // -TXT_HEXDD_CLUS2MSG = "surely the souls of the damned inhabit\n" - "this world, for nothing fair or good\n" - "could survive here for long.\n" - "\n" - "but what has passed before can only\n" - "be a pale shadow of what bars your\n" - "passage now: the dark citadel itself.\n" - "\n" - "the grim bulk of the cathedral blocks\n" - "all but fragmentary glimpses of the\n" - "citadel proper, but what can be seen\n" - "speaks in sibilant whispers of cold,\n" - "lingering death...\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "...for the fortunate."; - - // -TXT_HEXDD_WIN1MSG = "once again you find yourself in the\n" - "great hall of the chaos sphere, as\n" - "if no time had passed from when\n" - "last you moved among these shadows.\n" - "\n" - "but something is eerily different,\n" - "a silence where once had been soft\n" - "whispers, a sense of being watched\n" - "by hidden eyes...\n" - "\n" - "...eyes which shield a malefic\n" - "intent."; - - // - -TXT_HEXDD_WIN2MSG = "once before you grasped the chaos\n" - "sphere, held it within trembling\n" - "hands. now your hands tremble with\n" - "something more than avarice, and\n" - "dread meshes with the hunger for\n" - "power.\n" - "\n" - "if even the power of the sphere is\n" - "not enough to protect you from the\n" - "forces of darkness, perhaps it is\n" - "better left untouched, its promise\n" - "left unkept.\n" - "\n" - "\n" - "\n" - "but then, you never were one to\n" - "back down from a challenge..."; - -// - -TXT_HEXDD_WIN3MSG = "\n" - "...and other players await.\n" - "\n" - ""; - - -TXT_ACS_map01_5_THEDO = "The door is locked"; -TXT_ACS_map02_9_GREET = "Greetings, mortal"; -TXT_ACS_map02_11_AREYO = "Are you ready to die?"; -TXT_ACS_map02_20_ADOOR = "A door opened on the Guardian of Ice"; -TXT_ACS_map03_12_THISP = "This path is barred"; -TXT_ACS_map04_9_ONEHA = "One half of the puzzle has been solved"; -TXT_ACS_map04_10_ONTHE = "on the Seven Portals"; -TXT_ACS_map04_11_ONETH = "One third of the puzzle has been solved"; -TXT_ACS_map04_12_STAIR = "Stairs have risen on the Seven Portals"; -TXT_ACS_map05_6_ONETH = "One third of the puzzle has been solved"; -TXT_ACS_map05_7_ONTHE = "On the Seven Portals"; -TXT_ACS_map05_8_STAIR = "Stairs have risen on the Seven Portals"; -TXT_ACS_map05_9_YOUHA = "You have to find another switch..."; -TXT_ACS_map05_10_STONE = "Stones grind on the Seven Portals"; -TXT_ACS_map08_6_ONESI = "One sixth of the puzzle has been solved"; -TXT_ACS_map08_7_ONTHE = "On the Shadow Wood"; -TXT_ACS_map08_10_THEDO = "The door is barred from the inside"; -TXT_ACS_map08_11_YOUHE = "You hear a door open in the distance"; -TXT_ACS_map09_6_ONESI = "One sixth of the puzzle has been solved"; -TXT_ACS_map09_7_ONTHE = "On the Shadow Wood"; -TXT_ACS_map10_6_ONESI = "One sixth of the puzzle has been solved"; -TXT_ACS_map10_7_ONTHE = "On the Shadow Wood"; -TXT_ACS_map11_0_ETTIN = " ettins left"; -TXT_ACS_map11_1_YOUWA = "You waited too long, now you die!"; -TXT_ACS_map11_7_ADOOR = "A door opened on the Forsaken Outpost"; -TXT_ACS_map12_9_THISD = "This door won't open yet"; -TXT_ACS_map13_11_MYSER = "My servants can smell your blood, human"; -TXT_ACS_map21_0_ADOOR = "A door opened in the Gibbet"; -TXT_ACS_map21_2_THEDO = "The door is barred from the inside"; -TXT_ACS_map22_3_APLAT = "A platform has lowered in the tower"; -TXT_ACS_map22_27_YOUHA = "You have played this game too long, mortal..."; -TXT_ACS_map22_29_ITHIN = "I think I shall remove you from the board"; -TXT_ACS_map23_10_YOUHE = "You hear a door open upstairs"; -TXT_ACS_map27_8_WORSH = "Worship me, and I may yet be merciful"; -TXT_ACS_map27_10_THENA = "Then again, maybe not"; -TXT_ACS_map28_6_ONENI = "One ninth of the puzzle has been solved"; -TXT_ACS_map28_7_ONTHE = "On the Monastery"; -TXT_ACS_map30_6_ONENI = "One ninth of the puzzle has been solved"; -TXT_ACS_map30_7_ONTHE = "On the Monastery"; -TXT_ACS_map34_1_ONENI = "One ninth of the puzzle has been solved"; -TXT_ACS_map34_2_ONTHE = "On the Monastery"; -TXT_ACS_map35_0_THEPO = "The portal has been sealed"; -TXT_ACS_map35_1_CHOOS = "Choose your fate"; -TXT_ACS_map35_3_THEDO = "The door is barred from the inside"; -TXT_ACS_map35_12_AREYO = "Are you strong enough"; -TXT_ACS_map35_14_TOFAC = "To face your own masters?"; - -// Deathkings texts - -TXT_ACS_map33_6_YOUDA = "You dare battle in the ready room?"; -TXT_ACS_map33_7_FORTH = "For that, you shall die!"; -TXT_ACS_map41_6_THEWA = "The waterfall is open"; -TXT_ACS_map41_7_THEWA = "The waterfall is blocked"; -TXT_ACS_map41_8_ADOOR = "A door has opened in the chapel"; -TXT_ACS_map42_4_NOWTH = "Now that's odd..."; -TXT_ACS_map44_1_THREE = "Three more parts of the puzzle remain"; -TXT_ACS_map44_2_TWOMO = "Two more parts of the puzzle remain"; -TXT_ACS_map44_3_ONEMO = "One more part of the puzzle remains"; -TXT_ACS_map44_4_THEPU = "The puzzle is complete"; -TXT_ACS_map44_6_YOUHA = "You have not completed the puzzle"; -TXT_ACS_map44_8_THEFL = "The floor is not safe!"; -TXT_ACS_map44_10_ONETH = "One third of the puzzle is solved"; -TXT_ACS_map44_11_TWOTH = "Two thirds of the puzzle is solved"; -TXT_ACS_map45_1_YOUHE = "You hear a platform moving in the distance"; -TXT_ACS_map46_0_ITISD = "It is done..."; -TXT_ACS_map46_1_YOUHA = "You have not completed the puzzle"; -TXT_ACS_map46_2_IMWAR = "I'm warning you..."; -TXT_ACS_map46_3_STUBB = "Stubborn, aren't you?"; -TXT_ACS_map46_4_ANDST = "And stupid, too"; -TXT_ACS_map46_8_ONEFO = "One fourth of this puzzle is complete"; -TXT_ACS_map46_9_BADCH = "Bad choice..."; -TXT_ACS_map47_2_THESY = "The symbols are not aligned"; -TXT_ACS_map48_2_THEDO = "The door won't open from this side"; -TXT_ACS_map50_1_THEDO = "The door is barred from the outside"; -TXT_ACS_map51_5_SACRI = "Sacrilege !"; -TXT_ACS_map51_6_YOUHA = "You have defiled eric's tomb !!"; -TXT_ACS_map51_7_ANDNO = "And now you die !!!"; -TXT_ACS_map51_8_ONETH = "One third of the puzzle is solved"; -TXT_ACS_map51_9_TWOTH = "Two thirds of the puzzle is solved"; -TXT_ACS_map51_10_THECR = "The crypt is open"; -TXT_ACS_map51_11_BEWAR = "Beware the spider's tomb"; -TXT_ACS_map51_13_YOUHE = "You hear a platform rise outside"; -TXT_ACS_map51_14_DOYOU = "Do you feel lucky?"; -TXT_ACS_map51_15_YOUGU = "You guessed wrong!"; -TXT_ACS_map51_16_GOODG = "Good guess"; -TXT_ACS_map51_17_CANYO = "Can you do all the scripting for my level?"; -TXT_ACS_map51_18_DONTT = "Don't touch my gloppy"; -TXT_ACS_map51_19_VORPA = "Vorpal ?!?!?!"; -TXT_ACS_map51_20_GIMME = "Gimme some sugar, baby"; -TXT_ACS_map51_21_DUHUH = "Duh-uhhh..."; -TXT_ACS_map51_22_FILMI = "Film in an hour?"; -TXT_ACS_map51_23_IDONT = "I don't even get my own tombstone - cf"; -TXT_ACS_map51_24_LETNO = "Let no blood be spilt"; -TXT_ACS_map51_25_LETNO = "Let no hand be raised in anger"; -TXT_ACS_map52_9_WHODA = "Who dares disturb our slumber?"; -TXT_ACS_map52_10_THEWA = "The way is open"; -TXT_ACS_map53_2_YOUHA = "You have "; -TXT_ACS_map53_3_SWITC = " switches left"; -TXT_ACS_map53_4_YOUHA = "You have only "; -TXT_ACS_map53_5_SWITC = " switch left"; -TXT_ACS_map53_6_THEEX = "The exit is open"; -TXT_ACS_map54_1_THEDO = "The doors won't open from this side"; -TXT_ACS_map54_4_THEDO = "The doors are open..."; -TXT_ACS_map54_5_IFYOU = "...If you are ready"; -TXT_ACS_map54_9_ADOOR = "A door has opened"; -TXT_ACS_map54_10_ONTHE = "On the Chantry"; -TXT_ACS_map54_11_ABRID = "A bridge has been built"; -TXT_ACS_map54_12_ONTHE = "On the Abattoir"; -TXT_ACS_map54_13_ASTAI = "A stair has been built"; -TXT_ACS_map54_14_ONTHE = "On the Dark Watch"; -TXT_ACS_map54_15_ONEGE = "One gear has been placed"; -TXT_ACS_map54_16_GEARS = " gears have been placed"; -TXT_ACS_map54_17_ABARR = "A barricade has opened"; -TXT_ACS_map54_18_ONTHE = "On the Cloaca"; -TXT_ACS_map54_20_THEWA = "The way back is open"; -TXT_ACS_map55_9_THEDO = "The door is barred from the inside"; -TXT_ACS_map56_0_YOUDA = "You dare plunder the tomb"; -TXT_ACS_map56_1_OFTHE = "of the executioner?"; -TXT_ACS_map56_2_PREPA = "Prepare to die"; -TXT_ACS_map59_1_YOUHA = "You have "; -TXT_ACS_map59_2_MORES = " more switches to find"; -TXT_ACS_map59_3_YOUHA = "You have only "; -TXT_ACS_map59_4_SWITC = " switch left"; -TXT_ACS_map59_5_THEWA = "The way to the tower is open"; -TXT_ACS_map60_3_THEWA = "The way is open"; - -// All content from Strife's IWAD dialogues - -TXT_DLG_SCRIPT01_d0_IDONT = "I don't want any trouble, stay away from me. I've had enough trouble with what that bastard Harris did to me. He promised me money, instead I get to look forward to being "Questioned" by the Programmer."; - -TXT_DLG_SCRIPT02_d0_ILLHE = "I'll help you if you help me. Five pieces of gold and I'll tell all I know."; -TXT_RPLY0_SCRIPT02_d0_HERES = "Here's the gold."; -TXT_RYES0_SCRIPT02_d0_BESTE = "Be stealthy when you kill, you won't set off alarms."; -TXT_RNO0_SCRIPT02_d0_WELLI = "Well, I won't be telling you anything for free!"; -TXT_DLG_SCRIPT02_d1516_HAVEY = "Have you by any chance got another 5 gold on you?"; -TXT_RPLY0_SCRIPT02_d1516_5GOLD = "5 gold."; -TXT_RYES0_SCRIPT02_d1516_WELLP = "Well, poison bolts can kill the guards instantly and won't set off the alarms."; -TXT_RNO0_SCRIPT02_d1516_NOSIR = "No sir, I won't be telling you anything for free!"; -TXT_DLG_SCRIPT02_d3032_YOUVE = "You've wrung the last bit of gossip out of me already!"; -TXT_DLG_SCRIPT02_d4548_WHATC = "What can I get for you?"; -TXT_RPLY0_SCRIPT02_d4548_ASSAU = "Assault gun"; -TXT_RYES0_SCRIPT02_d4548_HEREY = "Here you go."; -TXT_RNO0_SCRIPT02_d4548_YOUCA = "You can't afford that right now."; -TXT_RPLY1_SCRIPT02_d4548_CLIPO = "Clip of bullets"; -TXT_RYES1_SCRIPT02_d4548_THANK = "Thanks."; -TXT_RNO1_SCRIPT02_d4548_COMEO = "Come on, 10 gold."; -TXT_RPLY2_SCRIPT02_d4548_AMMOB = "Ammo box"; -TXT_RYES2_SCRIPT02_d4548_HERES = "Here's your ammo."; -TXT_RNO2_SCRIPT02_d4548_MAYBE = "Maybe some other time."; -TXT_DLG_SCRIPT02_d6064_GOODN = "Good news from the front for a change. Macil sent you for a reward and training. He's instructed me to give them to you."; -TXT_RPLY0_SCRIPT02_d6064_THANK = "Thanks."; -TXT_RYES0_SCRIPT02_d6064_GLADT = "Glad to be of service."; -TXT_DLG_SCRIPT02_d7580_ALLRI = "All right, here's a few pointers on what to do: don't get in the way of crusaders: firing short bursts from your assault gun keeps it on target."; -TXT_RPLY0_SCRIPT02_d7580_ISTHA = "Is that it?"; -TXT_RYES0_SCRIPT02_d7580_LOOKY = "Look, you'll learn more later."; -TXT_DLG_SCRIPT02_d9096_ITHIN = "I think I can convert a flamethrower from one of the crusaders for use by a human. Oh, anything else I can get you?"; -TXT_RPLY0_SCRIPT02_d9096_FLAME = "Flamethrower."; -TXT_RYES0_SCRIPT02_d9096_IKNEW = "I knew that'd work! Here you go, take her for a spin!"; -TXT_RNO0_SCRIPT02_d9096_LISTE = "Listen, I can't make anything without the right parts!"; -TXT_RPLY1_SCRIPT02_d9096_ASSAU = "Assault gun"; -TXT_RYES1_SCRIPT02_d9096_WELLH = "Well, here you go sir!"; -TXT_RNO1_SCRIPT02_d9096_OBVIO = "Obviously, you can't afford that right now."; -TXT_RPLY2_SCRIPT02_d9096_CLIPO = "Clip of bullets"; -TXT_RYES2_SCRIPT02_d9096_THANK = "Thanks."; -TXT_RNO2_SCRIPT02_d9096_COMEO = "Come on, 10 gold."; -TXT_RPLY3_SCRIPT02_d9096_AMMOB = "Ammo box"; -TXT_RYES3_SCRIPT02_d9096_HERES = "Here's your ammo."; -TXT_RNO3_SCRIPT02_d9096_MAYBE = "Maybe some other time. Goodbye!"; -TXT_DLG_SCRIPT02_d10612_NOWTH = "Now that you have the flamethrower, is there anything else I can get you?"; -TXT_RPLY0_SCRIPT02_d10612_ASSAU = "Assault gun"; -TXT_RYES0_SCRIPT02_d10612_HEREY = "Here you go."; -TXT_RNO0_SCRIPT02_d10612_YOUCA = "You can't afford that right now."; -TXT_RPLY1_SCRIPT02_d10612_CLIPO = "Clip of bullets"; -TXT_RYES1_SCRIPT02_d10612_THANK = "Thanks."; -TXT_RNO1_SCRIPT02_d10612_COMEO = "Come on, 10 gold."; -TXT_RPLY2_SCRIPT02_d10612_AMMOB = "Ammo box"; -TXT_RYES2_SCRIPT02_d10612_HERES = "Here's your ammo."; -TXT_RNO2_SCRIPT02_d10612_MAYBE = "Maybe some other time."; -TXT_DLG_SCRIPT02_d12128_NOWTH = "Now that you have the flamethrower, is there anything else I can get you?"; -TXT_RPLY0_SCRIPT02_d12128_CLIPO = "Clip of bullets"; -TXT_RYES0_SCRIPT02_d12128_THANK = "Thanks."; -TXT_RNO0_SCRIPT02_d12128_COMEO = "Come on, 10 gold."; -TXT_RPLY1_SCRIPT02_d12128_AMMOB = "Ammo box"; -TXT_RYES1_SCRIPT02_d12128_HERES = "Here's your ammo."; -TXT_RNO1_SCRIPT02_d12128_MAYBE = "Maybe some other time."; -TXT_RPLY2_SCRIPT02_d12128_PHOSP = "Phosphor grenades"; -TXT_RYES2_SCRIPT02_d12128_THANK = "Thanks."; -TXT_RNO2_SCRIPT02_d12128_YOUDO = "You don't have enough"; -TXT_RPLY3_SCRIPT02_d12128_POISO = "Poison bolts"; -TXT_RYES3_SCRIPT02_d12128_WORTH = "Worth every gold!"; -TXT_RNO3_SCRIPT02_d12128_COMEO = "Come on, 200 gold!"; -TXT_DLG_SCRIPT02_d13644_ICANT = "I can't believe that I got stuck with this duty. They say that something evil came up out of this sewer gate... Now I get to stand here until it comes up again!"; -TXT_RPLY0_SCRIPT02_d13644_WHATG = "What gate?"; -TXT_RYES0_SCRIPT02_d13644_THESE = "The sewer overflow gate."; -TXT_DLG_SCRIPT02_d15160_HELLO = "Hello friend. What can I get for you?"; -TXT_RPLY0_SCRIPT02_d15160_ELECT = "Electric bolts"; -TXT_RYES0_SCRIPT02_d15160_YOUGO = "You got the electric bolts."; -TXT_RPLY1_SCRIPT02_d15160_AMMOS = "Ammo satchel"; -TXT_RNO0_SCRIPT02_d15160_NOYOU = "No. You don't have what I want for the electric bolts!"; -TXT_RNO0_SCRIPT02_d16676_NOYOU = "No. You don't have what I want for the electric bolts!"; -TXT_RYES1_SCRIPT02_d15160_THANK = "Thank you. Anything else?"; -TXT_RNO1_SCRIPT02_d15160_YOUCA = "You can't afford that, good day."; -TXT_DLG_SCRIPT02_d16676_WHATC = "What can I get for you?"; -TXT_RPLY0_SCRIPT02_d16676_ELECT = "Electric bolts"; -TXT_RYES0_SCRIPT02_d16676_YOUGO = "You got the electric bolts."; -TXT_RPLY1_SCRIPT02_d16676_AMMOS = "Ammo satchel"; -TXT_RYES1_SCRIPT02_d16676_THANK = "Thank you, anything else?"; -TXT_RNO1_SCRIPT02_d16676_YOUCA = "You can't afford that, good day to you!"; -TXT_DLG_SCRIPT02_d18192_WELCO = "Welcome. What may I show you?"; -TXT_RPLY0_SCRIPT02_d18192_ENVIR = "Environmental suit"; -TXT_RYES0_SCRIPT02_d18192_WELLH = "Well, here you are."; -TXT_RNO0_SCRIPT02_d18192_IMSOR = "I'm sorry but you don't have enough money for that."; -TXT_RPLY1_SCRIPT02_d18192_LEATH = "Leather armor"; -TXT_RYES1_SCRIPT02_d18192_HEREY = "Here you are."; -TXT_RNO1_SCRIPT02_d18192_PERHA = "Perhaps some other time?"; -TXT_RPLY2_SCRIPT02_d18192_METAL = "Metal armor"; -TXT_RYES2_SCRIPT02_d18192_WEARI = "Wear it in good health."; -TXT_RNO2_SCRIPT02_d18192_COMEB = "Come back when you can afford to buy something you lout!"; -TXT_DLG_SCRIPT02_d19708_WELCO = "Welcome. What may I show you?"; -TXT_RPLY0_SCRIPT02_d19708_ENVIR = "Environmental suit"; -TXT_RYES0_SCRIPT02_d19708_WELLH = "Well, here you are."; -TXT_RNO0_SCRIPT02_d19708_IMSOR = "I'm sorry but you don't have enough money for that."; -TXT_RPLY1_SCRIPT02_d19708_LEATH = "Leather armor"; -TXT_RYES1_SCRIPT02_d19708_HEREY = "Here you are."; -TXT_RNO1_SCRIPT02_d19708_PERHA = "Perhaps some other time?"; -TXT_RPLY2_SCRIPT02_d19708_METAL = "Metal armor"; -TXT_RYES2_SCRIPT02_d19708_WEARI = "Wear it in good health."; -TXT_RNO2_SCRIPT02_d19708_COMEB = "Come back when you can afford to buy something you lout!"; -TXT_DLG_SCRIPT02_d21224_HOWMA = "How may I assist you?"; -TXT_RPLY0_SCRIPT02_d21224_MEDPA = "Med patch"; -TXT_RYES0_SCRIPT02_d21224_HERES = "Here's your patch."; -TXT_RNO0_SCRIPT02_d21224_YOUNE = "You need 10 gold for that."; -TXT_RPLY1_SCRIPT02_d21224_MEDIC = "Medical kit"; -TXT_RYES1_SCRIPT02_d21224_THANK = "Thank you."; -TXT_RNO1_SCRIPT02_d21224_IWISH = "I wish I could give them away, but they cost 25 gold."; -TXT_RPLY2_SCRIPT02_d21224_FIELD = "Field surgery kit"; -TXT_RYES2_SCRIPT02_d21224_THERE = "There you go. Take care now."; -TXT_RNO2_SCRIPT02_d21224_WELLM = "Well, maybe you can afford some med patches?"; -TXT_DLG_SCRIPT02_d22740_IHOPE = "I hope Macil knows what he's doing. If the order finds out I'm helping the front I'm as good as dead... Not that this matters to you any. The front's medic gave me an upgrade chip for you, are you ready? "; -TXT_RPLY0_SCRIPT02_d22740_YESIM = "Yes, I'm ready."; -TXT_RYES0_SCRIPT02_d22740_WELLT = "Well then, this won't take but a second. There, done already."; -TXT_DLG_SCRIPT02_d24256_HOWMA = "How may I assist you?"; -TXT_RPLY0_SCRIPT02_d24256_MEDPA = "Med patch"; -TXT_RYES0_SCRIPT02_d24256_HERES = "Here's your patch."; -TXT_RNO0_SCRIPT02_d24256_YOUNE = "You need 10 gold for that."; -TXT_RPLY1_SCRIPT02_d24256_MEDIC = "Medical kit"; -TXT_RYES1_SCRIPT02_d24256_THANK = "Thank you."; -TXT_RNO1_SCRIPT02_d24256_IWISH = "I wish I could give them away, but they cost 25 gold."; -TXT_RPLY2_SCRIPT02_d24256_FIELD = "Field surgery kit"; -TXT_RYES2_SCRIPT02_d24256_THERE = "There you go. Take care now."; -TXT_RNO2_SCRIPT02_d24256_WELLM = "Well, maybe you can afford some med patches?"; -TXT_DLG_SCRIPT02_d25772_HELLO = "Hello stranger, I haven't seen you around here before. Let me give you a piece of free advice. I'd be careful if I were you. The order does not tolerate free will, and their justice is swift."; -TXT_RPLY0_SCRIPT02_d25772_WHATS = "What's the word?"; -TXT_RYES0_SCRIPT02_d25772_THEWO = "The word is... The sewers hold more than just rats and robots."; -TXT_DLG_SCRIPT02_d27288_WHATC = "What can I do for you now?"; -TXT_RPLY0_SCRIPT02_d27288_MOREI = "More info."; -TXT_RYES0_SCRIPT02_d27288_THEGO = "The governor is a simple reminder to us that we aren't free people anymore."; -TXT_RNO0_SCRIPT02_d27288_COMEB = "Come back when you get some gold."; -TXT_DLG_SCRIPT02_d28804_WELLY = "Well, you're asking a lot of questions for someone who's not trying to die. Make sure you don't go and get yourself killed, or worse."; -TXT_RPLY0_SCRIPT02_d28804_MOREI = "More info."; -TXT_RYES0_SCRIPT02_d28804_THERE = "There's more to the order than meets the eye."; -TXT_RNO0_SCRIPT02_d28804_WELLT = "We'll talk when you get gold!"; -TXT_DLG_SCRIPT02_d30320_THATS = "That's it friend, the well of knowledge has run dry. I've told you more than I should have anyway. Good luck... And don't come back."; -TXT_DLG_SCRIPT02_d31836_HEYIM = "Hey, I'm only here in case of an emergency. If the core breaches, then I make sure no one gets in... Or out."; -TXT_DLG_SCRIPT02_d33352_WATCH = "Watch your step, peasant!"; -TXT_DLG_SCRIPT02_d34868_WEREG = "We're going to kill you! "; -TXT_DLG_SCRIPT02_d36384_WHOIN = "Who in the blazes are you? No one's supposed to be loitering about in this area!"; -TXT_DLG_SCRIPT02_d37900_YOUTH = "You there, nobody's allowed in here. Move along!"; -TXT_DLG_SCRIPT02_d39416_IRALE = "Irale will set you right up!"; -TXT_DLG_SCRIPT02_d40932_IMKIN = "I'm kinda a talent broker for the rebels. A guy who's as good as you could make a lot of gold... If you hooked up with the right people."; -TXT_RPLY0_SCRIPT02_d40932_IMINT = "I'm interested."; -TXT_RPLY1_SCRIPT02_d40932_SCREW = "Screw the rebels!"; -TXT_DLG_SCRIPT02_d42448_NONOS = "No, no second chance. Oh guards, kill him."; -TXT_DLG_SCRIPT02_d43964_GOODC = "Good choice. The order's sanctuary by the river is their unofficial torture chamber. Hidden inside there's a golden chalice. You swipe it and reap your reward."; -TXT_RPLY0_SCRIPT02_d43964_HOWAM = "How am I supposed to do that?"; -TXT_DLG_SCRIPT02_d45480_HERES = "Here's a crossbow, just aim straight and --splat--. Remember, grab the fancy cup and get to the tavern."; -TXT_RPLY0_SCRIPT02_d45480_COOLI = "Cool. I'll get it."; -TXT_DLG_SCRIPT02_d46996_WHATA = "What are you waiting for? Bring me that chalice."; -TXT_DLG_SCRIPT02_d48512_HEYIK = "Hey, I know, kinda looks like a set-up. I would never do that to such a great killing machine. Got the item? Great! Now get ready, gold and glory just like I promised. Take this key and the governor will reward you."; -TXT_RPLY0_SCRIPT02_d48512_HEDBE = "He'd better. For your sake!"; -TXT_RPLY1_SCRIPT02_d48512_WHATW = "What! Where's my money?"; -TXT_DLG_SCRIPT02_d50028_GETLO = "Get lost kid, you bother me."; -TXT_DLG_SCRIPT02_d51544_NOSEC = "No second chance. Oh guards, kill him."; -TXT_DLG_SCRIPT02_d53060_FIRST = "First they slaughter thousands, now they want all able-bodied peasants for unspecified 'Tests'. How does the order expect me to keep the peace? What the hell do you want?"; -TXT_RPLY0_SCRIPT02_d53060_APRIS = "A prison pass, let's deal."; -TXT_DLG_SCRIPT02_d54576_ILIKE = "I like you already. I have two chores that I don't want to do myself. One is messy, the other bloody."; -TXT_RPLY0_SCRIPT02_d54576_CALLM = "Call me the cleaner"; -TXT_RPLY1_SCRIPT02_d54576_IMNOT = "I'm not squeamish"; -TXT_DLG_SCRIPT02_d56092_ONEOF = "One of my minions is stealing power with a tap on the mains somewhere. Find it and truncate his supply and I'll provide you with what you want. Bring me something as a token."; -TXT_RPLY0_SCRIPT02_d56092_WHERE = "Where do I find this tap?"; -TXT_DLG_SCRIPT02_d57608_IFIKN = "If I knew, it wouldn't be a chore now would it? Use your charm, but shut off his supply."; -TXT_DLG_SCRIPT02_d59124_TELLY = "Tell you what, there's a lying sack named Derwin who has been selling children to the order. I won't tolerate that kind of depravity. Not without my cut. Derwin works in the warehouse. Kill him and bring me his, ear, and I'll see what I can do."; -TXT_RPLY0_SCRIPT02_d59124_HOWDO = "How do I get in?"; -TXT_DLG_SCRIPT02_d60640_THISK = "This key will get you into the power station. On second thought, cut off the ear and then kill him. Much better."; -TXT_DLG_SCRIPT02_d62156_OHIJU = "Oh, I just love souvenirs. Here, this will get you into the prison. Talk to Warden Montag. Whatever you do after that, I don't want to know."; -TXT_RPLY0_SCRIPT02_d62156_THANK = "Thanks."; -TXT_DLG_SCRIPT02_d63672_GIVEY = "Give you a hint. When I stop talking to you, you leave."; -TXT_DLG_SCRIPT02_d65188_DOYOU = "Do you have good news for me? I'm all ears."; -TXT_RPLY0_SCRIPT02_d65188_THEDE = "The deed is done!"; -TXT_DLG_SCRIPT02_d66704_OHIJU = "Oh, I just love souvenirs. Here, this will get you into the prison. Talk to Warden Montag. Whatever you do after that, I don't want to know."; -TXT_RPLY0_SCRIPT02_d66704_FINEB = "Fine by me."; -TXT_DLG_SCRIPT02_d68220_SOYOU = "So you're the fool who stole the chalice? I'm going to have you arrested as a rebel thief... Thereby enhancing my position with the order. How does it feel to be an unwitting pawn? I'll give you a hint, it's gonna' hurt. "; -TXT_RPLY0_SCRIPT02_d68220_ITSUC = "It sucks!"; -TXT_RYES0_SCRIPT02_d68220_FORYO = "For you it does."; -TXT_RPLY1_SCRIPT02_d68220_HARRI = "Harris promised me money!"; -TXT_RYES1_SCRIPT02_d68220_TOOBA = "Too bad. The only thing you're getting is dead!"; -TXT_DLG_SCRIPT02_d69736_INASM = "In a small world, word travels fast. I hear you just removed some obstacles from your path. Nice work. Are you interested in some more lucrative projects?"; -TXT_RPLY0_SCRIPT02_d69736_SUREW = "Sure, why not."; -TXT_RPLY1_SCRIPT02_d69736_NOTHA = "No thanks."; -TXT_RYES1_SCRIPT02_d69736_THENG = "Then get lost!"; -TXT_DLG_SCRIPT02_d71252_FOOLG = "Fool! Guards, rid me of this meddlesome peon."; -TXT_DLG_SCRIPT02_d72768_GOODS = "Good. Some uh, friends of mine need someone silenced. Beldin is being held by the order in their sanctuary. There's a rarely used entrance by a small pier off the river which is unguarded. Get in, shut him up, and bring his ring back to me as proof."; -TXT_RPLY0_SCRIPT02_d72768_WILLI = "Will it be worth the effort?"; -TXT_DLG_SCRIPT02_d74284_ILLGU = "I'll guarantee 50 gold and if you return without setting off every alarm in town, there's the chance to earn much, much more, and here's a little helper that should give you an edge."; -TXT_RPLY0_SCRIPT02_d74284_THANK = "Thanks, I'll need it."; -TXT_DLG_SCRIPT02_d75800_GOODR = "Good. Remember, his silence is golden."; -TXT_RPLY0_SCRIPT02_d75800_ILLGE = "I'll get him."; -TXT_DLG_SCRIPT02_d77316_MISSI = "Mission accomplished? You have the ring of the traitor?"; -TXT_RPLY0_SCRIPT02_d77316_HESDE = "He's dead, where's my money?"; -TXT_RNO0_SCRIPT02_d77316_LIARG = "Liar! Go get the ring!"; -TXT_DLG_SCRIPT02_d78832_HEREY = "Here, you earned it. The traitor you killed was about to reveal the location of the front. You saved lives. How would you like to earn more gold, and a future free from tyranny?"; -TXT_RPLY0_SCRIPT02_d78832_TELLM = "Tell me more."; -TXT_RPLY1_SCRIPT02_d78832_NOTMY = "Not my style."; -TXT_DLG_SCRIPT02_d80348_IHAVE = "I have a business relationship with the front's leader, Macil. I know he needs an incisive fellow like yourself, and he pays well. Take this recovered com unit and you'll be led to, shall we say, opportunities."; -TXT_RPLY0_SCRIPT02_d80348_THANK = "Thanks."; -TXT_DLG_SCRIPT02_d81864_GETGO = "Get going. If you hang around here, we're both dead."; -TXT_DLG_SCRIPT02_d83380_APITY = "A pity, but now that you know about my friends, I must kill you. Guards, take out this trash!"; -TXT_DLG_SCRIPT02_d84896_FOOLG = "Fool. Guards! Rid me of meddlesome peon."; -TXT_DLG_SCRIPT02_d86412_WALKA = "Walk away, boy, just walk away."; -TXT_DLG_SCRIPT02_d87928_WHATA = "What are you doing here?"; -TXT_RPLY0_SCRIPT02_d87928_HEYIN = "Hey, I need gold!"; -TXT_DLG_SCRIPT02_d89444_BLACK = "Blackbird told you the code, huh? Let me shut off the alarm. Macil is one flight down."; -TXT_RPLY0_SCRIPT02_d89444_THANK = "Thanks."; -TXT_DLG_SCRIPT02_d90960_WALKA = "Walk away, boy, just walk away."; -TXT_DLG_SCRIPT02_d92476_DOYOU = "Do you have an appointment with the governor? "; -TXT_RPLY0_SCRIPT02_d92476_OFCOU = "Of course!"; -TXT_RPLY1_SCRIPT02_d92476_NOAND = "No, and I don't need one!"; -TXT_DLG_SCRIPT02_d93992_SORRY = "Sorry! I didn't mean... Please go right up."; -TXT_RPLY0_SCRIPT02_d93992_IKNEW = "I knew you'd say that."; -TXT_DLG_SCRIPT02_d95508_IFYOU = "If you're in such a hurry, don't waste your time with me."; -TXT_DLG_SCRIPT02_d97024_RELEA = "Release me, leave an old man alone."; -TXT_DLG_SCRIPT02_d98540_YOUSE = "You seek wisdom, my son? The order has seen to it that we only ask one question, 'Why?'"; -TXT_RPLY0_SCRIPT02_d98540_WHERE = "Where's the power coupling?"; -TXT_RPLY1_SCRIPT02_d98540_WHERE = "Where's the order's main?"; -TXT_RPLY2_SCRIPT02_d98540_WHERE = "Where's the illegal tap?"; -TXT_DLG_SCRIPT02_d100056_ILLTE = "I'll tell you where it is, but I don't know whose coupling you'll be tampering with. It's right here in the sewage plant."; -TXT_RPLY0_SCRIPT02_d100056_THANK = "Thanks"; -TXT_DLG_SCRIPT02_d101572_THATS = "That's right here in the sewage plant. But it's the front's coupling. Whoever told you that it was the order's was wrong."; -TXT_RPLY0_SCRIPT02_d101572_THANK = "Thanks"; -TXT_DLG_SCRIPT02_d103088_IFYOU = "If you say it's illegal I want nothing to do with you. I have enough trouble as it is."; -TXT_RPLY0_SCRIPT02_d103088_THANK = "Thanks"; -TXT_DLG_SCRIPT02_d104604_RELEA = "Release me, leave an old man alone."; - -TXT_DLG_SCRIPT03_d0_WELCO = "Welcome to the last flicker of hope. Only we have the free will to oppose the order. We have the sharpest scientific minds, and many able bodies, but we lack that one real, uh... "Problem solver", who will give us the edge we need. Help us."; -TXT_RPLY0_SCRIPT03_d0_ALLRI = "All right, I accept."; -TXT_RPLY1_SCRIPT03_d0_NOTHA = "No thanks!"; -TXT_DLG_SCRIPT03_d1516_YOUMI = "You might want to reconsider, seeing that you're surrounded by heavily armed angry rebels."; -TXT_RPLY0_SCRIPT03_d1516_ALLRI = "All right, I'm in!"; -TXT_RPLY1_SCRIPT03_d1516_NOTHA = "No thanks."; -TXT_DLG_SCRIPT03_d3032_THEND = "Then die in shame and dishonor."; -TXT_DLG_SCRIPT03_d4548_GOODB = "Good, Blackbird will continue to be your guide. She's taken quite a shine to you. Together you've got to unlock the secrets of the order and their inhuman servants. Get inside and take them down."; -TXT_RPLY0_SCRIPT03_d4548_WHERE = "Where do I start?"; -TXT_DLG_SCRIPT03_d6064_FRANK = "Frankly the situation is a mess. You must accomplish several missions to prepare the way for more attacks on the order. Our last raid was a disaster and most of our troops were captured. I need you to free these prisoners."; -TXT_RPLY0_SCRIPT03_d6064_ITHIN = "I think I can handle it."; -TXT_DLG_SCRIPT03_d7580_TAKET = "Take this money and visit Irale who supplies our weapons. Then, this key will get you in to see the governor. He's a corrupt puppet of the order, but he loves to make deals. Do whatever you need to free our brothers in arms."; -TXT_RPLY0_SCRIPT03_d7580_ILLSE = "I'll see to it."; -TXT_DLG_SCRIPT03_d9096_FIGHT = "Fight for the front and freedom. Move out."; -TXT_DLG_SCRIPT03_d10612_THEPR = "The prisoners have been welcomed back, thanks to you. Here's some gold, go visit the medic and the weapons trainer and then, I have higher goals for you."; -TXT_RPLY0_SCRIPT03_d10612_IWILL = "I will. What's next?"; -TXT_DLG_SCRIPT03_d12128_ASING = "A single crystal runs the power grid which drives the order's shields. Destroy that crystal and you will punch huge holes in the order's defenses. Blackbird will lead you to a spy who has a way in, good luck."; -TXT_RPLY0_SCRIPT03_d12128_WELLG = "We'll get it."; -TXT_DLG_SCRIPT03_d13644_FIGHT = "Fight for the front and freedom. Move out."; -TXT_DLG_SCRIPT03_d15160_YOUVE = "You've exceeded all of our expectations. Because of your daring our troops are on the move. I want you two to join the assault, with a specific target. Take out the Programmer. It's time to reveal what we've found out about this layer of the order."; -TXT_RPLY0_SCRIPT03_d15160_TELLM = "Tell me what we know."; -TXT_DLG_SCRIPT03_d16676_THEPR = "The Programmer's lair is in the castle. Now, see the medic, grab some ammo and go get him."; -TXT_RPLY0_SCRIPT03_d16676_LETME = "Let me at 'em!"; -TXT_DLG_SCRIPT03_d18192_FIGHT = "Fight for the front and freedom. Move out."; -TXT_DLG_SCRIPT03_d19708_REMEM = "Remember what the town hall looked like? That's a gentle reminder of what they're willing to do to get at us. Be careful."; -TXT_DLG_SCRIPT03_d21224_TALKT = "Talk to Macil. He'll be able to help you."; -TXT_DLG_SCRIPT03_d22740_IVEHE = "I've heard that Macil's got a plan to subvert the order. It had better be good. One more failure and we're all just dead meat."; -TXT_DLG_SCRIPT03_d24256_AFEWO = "A few of these barrels dumped into their water supply should even the odds a little."; -TXT_DLG_SCRIPT03_d25772_SOYOU = "So you're the new operative? Thanks, without you, we'd all be dead right now."; -TXT_DLG_SCRIPT03_d27288_IMWOR = "I'm working on something that will give us an edge. It will increase your stamina and completely jack you up. I've almost got all the bugs worked out. Can I do something for you?"; -TXT_RPLY0_SCRIPT03_d27288_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT03_d27288_BOYYO = "Boy, you're a real mess. I'll see what I can do."; -TXT_RPLY1_SCRIPT03_d27288_STAMI = "Stamina implant?"; -TXT_RYES1_SCRIPT03_d27288_ALLRI = "All right, this won't take but a moment."; -TXT_RNO1_SCRIPT03_d27288_ITSNO = "It's not done yet."; -TXT_DLG_SCRIPT03_d28804_HEYIM = "Hey, I'm working on an updated version of your implant. Is there anything else I can do?"; -TXT_RPLY0_SCRIPT03_d28804_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT03_d28804_WELLA = "Well at least your seeing action."; -TXT_RPLY1_SCRIPT03_d28804_IMPLA = "Implant upgrade?"; -TXT_RYES1_SCRIPT03_d28804_GOODT = "Good thing, never can be too safe."; -TXT_RNO1_SCRIPT03_d28804_IMALM = "I'm almost finished, but not quite."; -TXT_DLG_SCRIPT03_d30320_ALLRI = "All right, I've almost got everything working perfectly. There were a few problems left to get rid of. Do you need anything else? "; -TXT_RPLY0_SCRIPT03_d30320_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT03_d30320_WHATH = "What have you been trying to do? Go head to head with a crusader?"; -TXT_RPLY1_SCRIPT03_d30320_IMPLA = "Implant upgrade?."; -TXT_RYES1_SCRIPT03_d30320_THATS = "That should do it for you."; -TXT_RNO1_SCRIPT03_d30320_LETME = "Let me run some more tests first."; -TXT_DLG_SCRIPT03_d31836_THATS = "That's all I can do on the implant right now. Maybe some healing?"; -TXT_RPLY0_SCRIPT03_d31836_YEAH = "Yeah."; -TXT_RYES0_SCRIPT03_d31836_BOYYO = "Boy, you're a real mess. I'll see what I can do."; -TXT_DLG_SCRIPT03_d33352_WHATC = "What can I do for you?"; -TXT_RPLY0_SCRIPT03_d33352_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT03_d33352_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RPLY1_SCRIPT03_d33352_TEACH = "Teach me."; -TXT_RYES1_SCRIPT03_d33352_ALLRI = "All right, I'll just show you a few little pointers."; -TXT_RNO1_SCRIPT03_d33352_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT03_d34868_BACKA = "Back again? What do you need?"; -TXT_RPLY0_SCRIPT03_d34868_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT03_d34868_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RNO0_SCRIPT03_d34868_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT03_d34868_TEACH = "Teach me."; -TXT_RYES1_SCRIPT03_d34868_ALLRI = "All right, this should keep you going for a while."; -TXT_RNO1_SCRIPT03_d34868_SORRY = "Sorry, can't. I'm just following Macil's orders."; -TXT_DLG_SCRIPT03_d36384_WELLW = "Well which is it, bullets or training? I can't wait to get my hands on those new weapons we captured. A little bit of training and then a lot of revenge."; -TXT_RPLY0_SCRIPT03_d36384_IMOUT = "I'm out of ammo."; -TXT_RYES0_SCRIPT03_d36384_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RNO0_SCRIPT03_d36384_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT03_d36384_TEACH = "Teach me."; -TXT_RYES1_SCRIPT03_d36384_OKTAK = "O.K. Take what you've learned here and show those order clods the way to hell."; -TXT_RNO1_SCRIPT03_d36384_COMEB = "Come back later, when Macil says it's time."; -TXT_DLG_SCRIPT03_d37900_IVETA = "I've taught you everything I can right now. Give me some time to put the new weapons through their paces. That is unless you're out of bullets."; -TXT_RPLY0_SCRIPT03_d37900_YESIA = "Yes I am."; -TXT_RYES0_SCRIPT03_d37900_HEREY = "Here you go."; -TXT_DLG_SCRIPT03_d39416_DONTG = "Don't get trigger happy in the town. You'll set off the alarm and they'll start sending in guards from the castle. "; -TXT_DLG_SCRIPT03_d40932_WELCO = "Welcome, we can always use more help."; -TXT_DLG_SCRIPT03_d42448_WHENI = "When I was still in action we had the chance to examine an acolyte before the reinforcements arrived. Listen, they're not human."; -TXT_DLG_SCRIPT03_d43964_WERET = "We're trying to find where the castle gate mechanisms are, but so far we've had no luck."; -TXT_DLG_SCRIPT03_d45480_DONTG = "Don't get caught. I've heard horror stories about what they do to our people after they're imprisoned. They just disappear... Without a trace."; -TXT_DLG_SCRIPT03_d46996_HERES = "Here's some advice, if you ever see any of the order's "Tin soldiers" go in the other direction. They're fast and brutal."; -TXT_DLG_SCRIPT03_d48512_LEAVE = "Leave me be. I'm doing something for Macil."; - -TXT_DLG_SCRIPT04_d0_SORRY = "Sorry, no. You do not have clearance."; -TXT_DLG_SCRIPT04_d1516_STOPS = "Stop! Show me your id badge."; -TXT_RPLY0_SCRIPT04_d1516_HERES = "Here's my I.D."; -TXT_DLG_SCRIPT04_d3032_OHOKS = "Oh, ok. Sure go ahead. Have a nice day."; -TXT_DLG_SCRIPT04_d4548_DERWI = "Derwin? Yeah, he's down in the warehouse, but you're not getting in unless you're cleared."; -TXT_RPLY0_SCRIPT04_d4548_IVEGO = "I've got clearance."; -TXT_DLG_SCRIPT04_d6064_GOON = "Go on."; -TXT_RPLY0_SCRIPT04_d6064_DOYOU = "Do you know where he is?"; -TXT_DLG_SCRIPT04_d7580_IDONT = "I don't know where anybody is. I just keep the lid on the rat trap."; -TXT_DLG_SCRIPT04_d9096_YOUAR = "You are an unpleasant distraction."; -TXT_DLG_SCRIPT04_d10612_MOVEA = "Move along or taste metal."; -TXT_DLG_SCRIPT04_d12128_PASSY = "Pass your id through here for access."; -TXT_DLG_SCRIPT04_d13644_GETBA = "Get back to work, now!"; -TXT_DLG_SCRIPT04_d15160_GETBA = "Get back to work, now!"; -TXT_DLG_SCRIPT04_d16676_WEVEB = "We've been running around the clock for weeks with no down time. I'd say that the order is planning a suppression raid on the front."; -TXT_DLG_SCRIPT04_d18192_OHDAM = "Oh, damn. The governor sent you. I was going to give him his cut, really I was. Ok, listen. I've got a bundle stashed. It's yours if you look the other way."; -TXT_RPLY0_SCRIPT04_d18192_ALLRI = "All right, I'll let you go."; -TXT_RPLY1_SCRIPT04_d18192_SORRY = "Sorry, nothing personal."; -TXT_DLG_SCRIPT04_d19708_NUTSI = "Nuts, if I'm going down, then so are you. Guards!!"; -TXT_DLG_SCRIPT04_d21224_BUSIN = "Business my ass. Help, guards, I've got a live one."; -TXT_DLG_SCRIPT04_d22740_AHIGO = "Ah, I got word from Macil that you'd be coming. I have a way to get you inside the power station, but it's on the risky side."; -TXT_RPLY0_SCRIPT04_d22740_ILLTA = "I'll take my chances."; -TXT_DLG_SCRIPT04_d24256_ALLRI = "All right, I stole an I.D. From the corpse of some fool who fell into the reactor's coolant pit. --blat-- instant deep fry."; -TXT_RPLY0_SCRIPT04_d24256_WHATS = "What should I do once I'm in?"; -TXT_DLG_SCRIPT04_d25772_TELLW = "Tell whoever asks that you're the replacement worker for mr. Crispy. It's just dumb enough to work. Oh, and you might want to check out the storeroom that's right above us."; -TXT_RPLY0_SCRIPT04_d25772_BOYIH = "Boy I hope this I.D. Works."; -TXT_DLG_SCRIPT04_d27288_GETOU = "Get out of here, unless you want to end up mr. Dead."; -TXT_DLG_SCRIPT04_d28804_HEYLE = "Hey, leave me alone. If they catch us wasting time we get dead, or extra work."; -TXT_DLG_SCRIPT04_d30320_SUCHP = "Such pressure, at this rate we'll be back to normal shifts soon. We're pumping tons of power to the castle and I'm almost finished logging those new weapons."; -TXT_RPLY0_SCRIPT04_d30320_WEAPO = "Weapons?"; -TXT_DLG_SCRIPT04_d31836_WHATD = "What do you think, we're backed up on socks?"; -TXT_RPLY0_SCRIPT04_d31836_WHATK = "What kind of weapons?"; -TXT_DLG_SCRIPT04_d33352_AREYO = "Are you deaf? I just told you how busy I am. Get back to work."; -TXT_DLG_SCRIPT04_d34868_WHOAR = "Who are you? Only clearance level two personnel are permitted in this area."; -TXT_RPLY0_SCRIPT04_d34868_IMTHE = "I'm the replacement worker."; -TXT_DLG_SCRIPT04_d36384_ABOUT = "About time you showed up. Go talk with Ketrick in the core. Oh, and take this key card. Don't want you getting shot on your first day, huh?"; -TXT_RPLY0_SCRIPT04_d36384_WHERE = "Where's the power crystal?"; -TXT_DLG_SCRIPT04_d37900_IFYOU = "If you don't get to work, you'll get shot anyway. Move your tunic."; -TXT_DLG_SCRIPT04_d39416_IDONT = "I don't mean to sound alarmist, but if they keep pushing the power crystal this hard it's gonna flaw, and then shatter, and then *boom*! ...Just a thought."; -TXT_DLG_SCRIPT04_d40932_LETME = "Let me be quite clear. If this terminal locks up again, the coolant level will drop and we'll all have to answer to the Programmer. If we survive."; -TXT_DLG_SCRIPT04_d42448_YOUYE = "You! Yeah, you. You aren't cleared for this area. Let me have your key card, fast. I'm in such a bad mood!"; -TXT_RPLY0_SCRIPT04_d42448_HEREH = "Here, here's my card."; -TXT_DLG_SCRIPT04_d43964_THISI = "This is garbage! Wait here. Oh screw it. Guards kill this intruder!"; -TXT_DLG_SCRIPT04_d45480_WORKS = "Work, sleep, get tortured, what a life. Say, you the replacement for the careless pit diver?"; -TXT_RPLY0_SCRIPT04_d45480_YEAHC = "Yeah, can't wait to start."; -TXT_DLG_SCRIPT04_d46996_YEAHR = "Yeah, right. Ok, get your ass to work."; -TXT_RPLY0_SCRIPT04_d46996_WHERE = "Where's the crystal?"; -TXT_DLG_SCRIPT04_d48512_GOTAL = "Go talk to Ketrick. Bring the walkway up using the switches, then use this I.D. For the elevator."; -TXT_RPLY0_SCRIPT04_d48512_WHERE = "Where's the crystal again?"; -TXT_DLG_SCRIPT04_d50028_NONEO = "None of your business, go talk to Ketrick."; -TXT_RPLY0_SCRIPT04_d50028_OK = "Ok."; -TXT_DLG_SCRIPT04_d51544_IFITS = "If it's busy work you want, go stare at that screen for a while, it'll bore you to tears."; -TXT_DLG_SCRIPT04_d53060_THEAL = "The almighty Programmer is so paranoid of infiltration that he's locked up the computer core. How am I supposed to get my work done? The only way in is the suicide run."; -TXT_RPLY0_SCRIPT04_d53060_SUICI = "Suicide run? What's that?"; -TXT_DLG_SCRIPT04_d54576_ITSAS = "It's a sure-fire way to get killed, but that's not important right now. Go down the lift if you're so inclined."; - -TXT_DLG_SCRIPT05_d0_HALTN = "Halt. No one gets through here without authorization from the Warden or the governor."; -TXT_RPLY0_SCRIPT05_d0_HERES = "Here's my pass, let me in."; -TXT_DLG_SCRIPT05_d1516_OKBUT = "Ok, but talk only to the Warden."; -TXT_DLG_SCRIPT05_d3032_DOILO = "Do I look like the Warden to you? Keep moving, this area's off limits."; -TXT_DLG_SCRIPT05_d4548_THEOR = "The order's wrath will rain down on these servants until they beg for death."; -TXT_DLG_SCRIPT05_d6064_IDONT = "I don't care if Mourel gave you a pass. This is my prison. My key is the only way in or out, and I'm not taking any chances. The order does not tolerate mistakes."; -TXT_RPLY0_SCRIPT05_d6064_GIVEM = "Give me the damn key!"; -TXT_DLG_SCRIPT05_d7580_OVERM = "Over my dead body!"; -TXT_RPLY0_SCRIPT05_d7580_GREAT = "Great idea!"; -TXT_DLG_SCRIPT05_d9096_SHACK = "Shackles or chains, I want you to hang around."; -TXT_DLG_SCRIPT05_d10612_IDONT = "I don't know how you managed to get past the guards and the Warden, but I hope you like the decor, because you just moved in."; -TXT_RPLY0_SCRIPT05_d10612_FREEM = "Free my comrades or die!"; -TXT_DLG_SCRIPT05_d12128_KILLM = "Kill me and you'll never set anyone free. I possess the only pattern key that will unlock the cells."; -TXT_RPLY0_SCRIPT05_d12128_CANYO = "Can you lend me a hand then?"; -TXT_DLG_SCRIPT05_d13644_MOVEA = "Move along or join your friends."; -TXT_DLG_SCRIPT05_d15160_DONTJ = "Don't just stand there, get us out of here!"; -TXT_DLG_SCRIPT05_d16676_THESK = "The sky, I want to see the sky."; -TXT_DLG_SCRIPT05_d18192_FIVEF = "Five feet by four feet, five feet by four feet, five feet by four feet."; -TXT_DLG_SCRIPT05_d19708_DONTR = "Don't release me if the order's still in charge. I can't stand the terror."; -TXT_DLG_SCRIPT05_d21224_IDONT = "I don't want to bitch, but it's about time Macil sent someone to get us out."; -TXT_DLG_SCRIPT05_d22740_IDGIV = "I'd give anything for just a crust of bread. I'm so hungry."; - -TXT_DLG_SCRIPT06_d0_AHASU = "Ah, a surfacer in need of a favor. Down here you do a favor to get a favor and I need the town entrance that is our path to food opened. The order has it sealed and guarded."; -TXT_RPLY0_SCRIPT06_d0_WHERE = "Where is the gate mechanism?"; -TXT_DLG_SCRIPT06_d1516_DOMYF = "Do my favor first, or you'll get squat from me."; -TXT_RPLY0_SCRIPT06_d1516_HOWWI = "How will you know it's open?"; -TXT_DLG_SCRIPT06_d3032_BRING = "Bring me back the guard's uniform. That way one of my ratfellows can wear it and no one will try to shut the door again."; -TXT_RPLY0_SCRIPT06_d3032_YOUWA = "You want his uniform?"; -TXT_DLG_SCRIPT06_d4548_OPENT = "Open the door, bring me the uniform and we trade. Otherwise, piss off."; -TXT_DLG_SCRIPT06_d6064_HAVEY = "Have you brought me what I want?"; -TXT_RPLY0_SCRIPT06_d6064_HOWAB = "How about this uniform?"; -TXT_RNO0_SCRIPT06_d6064_BRING = "Bring me the uniform."; -TXT_DLG_SCRIPT06_d7580_GOODH = "Good. Here's something extra. My fellows tore this off of a fallen crusader, it's the parts that make up a flamethrower. Now Irale can make one for you. You can have such fun."; -TXT_RPLY0_SCRIPT06_d7580_WHERE = "Where's the gate mechanism?"; -TXT_DLG_SCRIPT06_d9096_YOUHA = "You have to enter another part of the sewers. To get there you must enter the castle from a sewer maintenance door and drain the fluid reclamation tank. At the bottom is the hidden entrance to sewers, and right beyond that is the manual gate control."; -TXT_RPLY0_SCRIPT06_d9096_ANYTH = "Anything else you can do?"; -TXT_DLG_SCRIPT06_d10612_GOODL = "Good luck. I've opened several of our tunnels for you. It should make your task easier. Oh, size ten, perfect! ...But dreadful colors."; -TXT_RPLY0_SCRIPT06_d10612_THANK = "Thanks for your help."; -TXT_DLG_SCRIPT06_d12128_YOUGI = "You give me nothing, you get nothing."; -TXT_DLG_SCRIPT06_d13644_WERAN = "Weran will save us. He's never failed us yet."; -TXT_DLG_SCRIPT06_d15160_IFYOU = "If you seek an answer to your problem, find weran. "; -TXT_DLG_SCRIPT06_d16676_LONGL = "Long live the front? That's all crap. We're all just waiting to die. "; -TXT_DLG_SCRIPT06_d18192_WITHO = "With our passage to the surface sealed, we can't even feed ourselves."; -TXT_DLG_SCRIPT06_d19708_FOODD = "Food, do you have any food? Please help us."; -TXT_DLG_SCRIPT06_d21224_THISI = "This is my reward for letting prisoners escape, guarding the sewers. If I ever find the guy who broke them out, I'll slaughter him."; -TXT_DLG_SCRIPT06_d22740_WEVEG = "We've got those little beggars just where we want them. Few more days of this, and they'll have starved themselves into oblivion."; -TXT_DLG_SCRIPT06_d24256_WHATS = "What's your clearance? There's no unauthorized personnel allowed up here."; - -TXT_DLG_SCRIPT07_d0_WHATT = "What the hell? Who opened the gates? Sound the alarm!!!"; -TXT_DLG_SCRIPT07_d1516_THERE = "There's another way into the sewers, throw that switch and then go up and purge the reclamation tank."; -TXT_DLG_SCRIPT07_d3032_WHATT = "What the hell's your problem. If the Programmer comes up from his audience chamber, you're dead."; -TXT_DLG_SCRIPT07_d4548_HEYYO = "Hey, you're not cleared to go down there."; -TXT_DLG_SCRIPT07_d6064_PROGR = "Programmer? Who told you that? There is no Programmer. That story was spread ages ago. Don't tell me the front actually believed that crap. Idiots."; -TXT_RPLY0_SCRIPT07_d6064_WELLW = "Well, what's the truth then?"; -TXT_DLG_SCRIPT07_d7580_ITOLD = "I told you all I know. You are wasting your time."; -TXT_DLG_SCRIPT07_d9096_FIGHT = "Fight on, we will triumph. This day will belong to us!"; -TXT_DLG_SCRIPT07_d10612_FIGHT = "Fight on, we will triumph. This day will belong to us!"; -TXT_DLG_SCRIPT07_d12128_FIGHT = "Fight on, we will triumph. This day will belong to us!"; -TXT_DLG_SCRIPT07_d13644_FIGHT = "Fight on, we will triumph. This day will belong to us!"; -TXT_DLG_SCRIPT07_d15160_FIGHT = "Fight on, we will triumph. This day will belong to us!"; -TXT_DLG_SCRIPT07_d16676_FIGHT = "Fight on, we will triumph. This day will belong to us!"; - -TXT_DLG_SCRIPT08_d0_YOUKI = "You killed all the guards. Don't hurt me. I told him this was a dumb idea. The real Programmer's in the keep. Here, take this key."; -TXT_RPLY0_SCRIPT08_d0_YOURE = "You're the Programmer!"; -TXT_DLG_SCRIPT08_d1516_DOILO = "Do I look like I wield ultimate power? The order uses us all. Now go, I'm dead already."; -TXT_DLG_SCRIPT08_d3032_POWER = "Power is the key!"; - -TXT_DLG_SCRIPT10_d0_GOODY = "Good, you're conscious again. When you grabbed that item the Programmer dropped you let loose some terrible secrets."; -TXT_RPLY0_SCRIPT10_d0_WHATK = "What kind of secrets. "; -TXT_DLG_SCRIPT10_d1516_WEHAV = "We have no idea where this weapon came from, but we must find out. You have wrested one from the order, but we must have all five. We have reached the limits of my knowledge. Seek out the Oracle and ask it for help."; -TXT_RPLY0_SCRIPT10_d1516_IMGON = "I'm gonna need more supplies."; -TXT_DLG_SCRIPT10_d3032_HERES = "Here's some gold. Go visit the medic and the weapons trainer and then, move out!"; -TXT_RPLY0_SCRIPT10_d3032_RIGHT = "Right!"; -TXT_DLG_SCRIPT10_d4548_FIGHT = "Fight for the front and freedom. Move out."; -TXT_DLG_SCRIPT10_d6064_WHATP = "What prompts your return? Are you hurt? There's no time to lose, continue with your mission. Complete the Sigil."; -TXT_RPLY0_SCRIPT10_d6064_THEOR = "The Oracle says you must die!"; -TXT_DLG_SCRIPT10_d7580_IHAVE = "I have sworn myself to freedom. It is the Oracle who holds the third piece. There's your traitor."; -TXT_RPLY0_SCRIPT10_d7580_THEOR = "The Oracle will die then!"; -TXT_RPLY1_SCRIPT10_d7580_ITHIN = "I think you're the traitor!"; -TXT_DLG_SCRIPT10_d9096_SPIRI = "Spirit of the One God avenge me and turn this world into dust."; -TXT_DLG_SCRIPT10_d10612_YOUHA = "You have made the right decision. Its clear that the Oracle is controlled by whatever evil is driving the order. Return to it and claim the third piece of the Sigil."; -TXT_DLG_SCRIPT10_d12128_THERE = "There seems no end to the horror we face. We have found out that the order is not killing our people. It is transforming them, into bio-mechanical soldiers. Find the facility where this is being done and close it, permanently."; -TXT_RPLY0_SCRIPT10_d12128_WHERE = "Where is this located?"; -TXT_DLG_SCRIPT10_d13644_ONEOF = "One of our captains, Richter, is waiting for you by the waterfall in the commons. He has seen the facility and can guide you inside. Stop this atrocity, now."; -TXT_RPLY0_SCRIPT10_d13644_THEYL = "They'll pay for this!"; -TXT_DLG_SCRIPT10_d15160_FIGHT = "Fight for the front and freedom. Move out."; -TXT_DLG_SCRIPT10_d16676_IAMTH = "I am the One God... I need his spirit to be free so that I can leave my body, and join him in flight. You have no idea what you possess... And what terror you face... The One God must be free... And he will reward me... I will be one..."; -TXT_RPLY0_SCRIPT10_d16676_IWILL = "I will destroy you!"; -TXT_DLG_SCRIPT10_d18192_GLADT = "Glad to see you made it. What do you need? "; -TXT_RPLY0_SCRIPT10_d18192_HEALM = "Heal me."; -TXT_RYES0_SCRIPT10_d18192_WELLL = "Well, lets get you fixed up."; -TXT_RNO0_SCRIPT10_d18192_YOURE = "You're fine."; -TXT_RPLY1_SCRIPT10_d18192_ANYTH = "Anything new?"; -TXT_RYES1_SCRIPT10_d18192_YESIV = "Yes, I've got some new hardware for you."; -TXT_RNO1_SCRIPT10_d18192_NOPEI = "Nope, I'm working on it though."; -TXT_DLG_SCRIPT10_d19708_WHATC = "What can I do for you now? Feris is decrypting some really complex files, but it's all worth it. There's already some information that I'll be able to apply to the next version of the stamina implant."; -TXT_RPLY0_SCRIPT10_d19708_HEALM = "Heal me."; -TXT_RYES0_SCRIPT10_d19708_YOUSH = "You should learn to be a little more careful."; -TXT_RPLY1_SCRIPT10_d19708_WHENW = "When will that be ready?"; -TXT_RYES1_SCRIPT10_d19708_ITSRE = "It's ready now. This won't take but a moment."; -TXT_RNO1_SCRIPT10_d19708_SOON = "Soon."; -TXT_DLG_SCRIPT10_d21224_ITHIN = "I think I found a glitch in your implant hardware. Feris is helping me design a retrofit that will take care of it and boost the speed of your hardware a little. Is there something I can do for you?"; -TXT_RPLY0_SCRIPT10_d21224_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT10_d21224_THERE = "There, as good as new I guess."; -TXT_RPLY1_SCRIPT10_d21224_RETRO = "Retrofit?"; -TXT_RYES1_SCRIPT10_d21224_AHNOW = "Ah, now we're cooking."; -TXT_RNO1_SCRIPT10_d21224_ILLHA = "I'll have it as soon as Feris finishes it."; -TXT_DLG_SCRIPT10_d22740_HOWSI = "How's it going? Man, some of this new technology is simply amazing. This should also help with your implant. I've got a couple ideas that I'm sketching out and I'll have them ready soon. What can I do for you, maybe some healing?"; -TXT_RPLY0_SCRIPT10_d22740_YESHE = "Yes, heal me."; -TXT_RYES0_SCRIPT10_d22740_ALLRI = "All right, here you go."; -TXT_RPLY1_SCRIPT10_d22740_HOWAB = "How about that new tech?"; -TXT_RYES1_SCRIPT10_d22740_LETME = "Let me know how this works."; -TXT_RNO1_SCRIPT10_d22740_IMNOT = "I'm not done designing it yet."; -TXT_DLG_SCRIPT10_d24256_BACKA = "Back again, don't you ever tire of this? I've got some good news, Feris found a way to increase the output of your implant. He gave the specs to me and I'm trying to get it to blend with your physiology. I'm force growing some tissue, totally new stuff here, I hope it takes. Do you need healing?"; -TXT_RPLY0_SCRIPT10_d24256_YESHE = "Yes, heal me."; -TXT_RYES0_SCRIPT10_d24256_DONEN = "Done, now take care of yourself."; -TXT_RPLY1_SCRIPT10_d24256_WHENW = "When will you be done?"; -TXT_RYES1_SCRIPT10_d24256_NOWHE = "Now. Hey great, it worked!"; -TXT_RNO1_SCRIPT10_d24256_IMWAI = "I'm waiting on the tissue to finish its growth cycle."; -TXT_DLG_SCRIPT10_d25772_WELLI = "Well, I'm back up to my old tricks again, I'm still working on your implants. Did you know that Macil has now authorized them for everyone? No, huh? It's because you turned out so well. Anything I can do for you?"; -TXT_RPLY0_SCRIPT10_d25772_HELPM = "Help me out here."; -TXT_RYES0_SCRIPT10_d25772_THATS = "That's all I can do."; -TXT_RPLY1_SCRIPT10_d25772_NEWIM = "New implant?"; -TXT_RYES1_SCRIPT10_d25772_YEPMY = "Yep, my best one yet."; -TXT_RNO1_SCRIPT10_d25772_SORRY = "Sorry, but you just have to wait."; -TXT_DLG_SCRIPT10_d27288_THISI = "This is it, Feris has managed to drain everything he could out of all the data we have, this will the best, and last implant upgrade. It will be sort of depressing, seeing my best creation reach its peak. Well, at least the rest of this crew will keep me occupied."; -TXT_RPLY0_SCRIPT10_d27288_COULD = "Could you heal me?"; -TXT_RYES0_SCRIPT10_d27288_THERE = "There, you're all set now."; -TXT_DLG_SCRIPT10_d28804_ITSTH = "It's the hero. Great job! What can I get for you? We've got a little larger selection now that we have all the ordinance from the castle. If you need to buy some ammo talk to justin. He'll take care of you. "; -TXT_RPLY0_SCRIPT10_d28804_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT10_d28804_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RPLY1_SCRIPT10_d28804_TEACH = "Teach me."; -TXT_RYES1_SCRIPT10_d28804_NOWAF = "Now, a few tips on the big guns."; -TXT_RNO1_SCRIPT10_d28804_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT10_d30320_HOWST = "How's the war effort? Nevermind, if we're still here, it must be going fine. What can I do for you?"; -TXT_RPLY0_SCRIPT10_d30320_IRANO = "I ran out of bullets."; -TXT_RYES0_SCRIPT10_d30320_THATS = "That should help."; -TXT_RNO0_SCRIPT10_d30320_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT10_d30320_TEACH = "Teach me."; -TXT_RYES1_SCRIPT10_d30320_HEREI = "Here, I'll show you a few tricks of the trade."; -TXT_RNO1_SCRIPT10_d30320_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT10_d31836_WELLH = "Well have you come for tutelage or is it some ammo you're looking for? Don't think that I'm done with you yet. I've still got a few tricks up my sleeve."; -TXT_RPLY0_SCRIPT10_d31836_ITSAM = "It's ammo for now."; -TXT_RYES0_SCRIPT10_d31836_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RNO0_SCRIPT10_d31836_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT10_d31836_TEACH = "Teach me."; -TXT_RYES1_SCRIPT10_d31836_TIMEF = "Time for the advanced lessons."; -TXT_RNO1_SCRIPT10_d31836_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT10_d33352_WELLW = "Well, what is it now? Don't you ever take a break? I'm glad that you're still breathing. I'd hate for my favorite student to come back looking out from the inside of a body bag."; -TXT_RPLY0_SCRIPT10_d33352_INEED = "I need some more bullets."; -TXT_RYES0_SCRIPT10_d33352_THERE = "There, don't waste it."; -TXT_RNO0_SCRIPT10_d33352_YOUHA = "You have enough."; -TXT_RPLY1_SCRIPT10_d33352_WHATC = "What can you teach me?"; -TXT_RYES1_SCRIPT10_d33352_DONTG = "Don't get snippy, you've still some room to grow."; -TXT_RNO1_SCRIPT10_d33352_NOTHI = "Nothing until you're ready."; -TXT_DLG_SCRIPT10_d34868_LOOKW = "Look who's back, what's on your mind? I know it's been hard, but all of us appreciate your efforts, believe me."; -TXT_RPLY0_SCRIPT10_d34868_IVERU = "I've run out of bullets."; -TXT_RYES0_SCRIPT10_d34868_WHATE = "What else is new, here you go."; -TXT_RNO0_SCRIPT10_d34868_YOUHA = "You have more than I can give you."; -TXT_RPLY1_SCRIPT10_d34868_TEACH = "Teach me what you can."; -TXT_RYES1_SCRIPT10_d34868_ALLRI = "All right, here's some pointers."; -TXT_RNO1_SCRIPT10_d34868_NOTRI = "Not right now."; -TXT_DLG_SCRIPT10_d36384_WHATI = "What is it you need? I hope that you're giving the order a taste of the kind of pain that we have been feeling for years."; -TXT_RPLY0_SCRIPT10_d36384_SOMEA = "Some ammo."; -TXT_RYES0_SCRIPT10_d36384_THERE = "There you go, don't waste it."; -TXT_RNO0_SCRIPT10_d36384_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT10_d36384_TEACH = "Teach me."; -TXT_RYES1_SCRIPT10_d36384_AFEWM = "A few more lessons and you'll know all that I can teach."; -TXT_RNO1_SCRIPT10_d36384_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT10_d37900_ICANT = "I can't believe that we're still around, you and I. There's just too many of us that have passed since the beginning. What can I do for you friend?"; -TXT_RPLY0_SCRIPT10_d37900_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT10_d37900_HEREU = "Here, use them to keep you in good health."; -TXT_RNO0_SCRIPT10_d37900_YOUHA = "You have enough."; -TXT_RPLY1_SCRIPT10_d37900_TEACH = "Teach me."; -TXT_RYES1_SCRIPT10_d37900_WELLT = "Well, that's it, you're done. I can teach no more."; -TXT_RNO1_SCRIPT10_d37900_RETUR = "Return after Macil tells you it's time."; -TXT_DLG_SCRIPT10_d39416_IVETA = "I've taught you everything I can right now. I've given you all that you should ever need, unless you're out of bullets. Those I can still help you with."; -TXT_RPLY0_SCRIPT10_d39416_YESIA = "Yes I am."; -TXT_RYES0_SCRIPT10_d39416_HEREY = "Here you go. "; -TXT_DLG_SCRIPT10_d40932_CHECK = "Check out what's new, the teleporter beacon. When you use the beacon, we'll track the signal and send help. Is there something I can get you?"; -TXT_RPLY0_SCRIPT10_d40932_BOXOF = "Box of rockets"; -TXT_RYES0_SCRIPT10_d40932_THERE = "There you go."; -TXT_RNO0_SCRIPT10_d40932_YOUCA = "You can't afford that!"; -TXT_RPLY1_SCRIPT10_d40932_HEGRE = "H-e grenades."; -TXT_RYES1_SCRIPT10_d40932_HEREY = "Here you go."; -TXT_RNO1_SCRIPT10_d40932_COMEB = "Come back when you have enough money."; -TXT_RPLY2_SCRIPT10_d40932_ENERG = "Energy pod"; -TXT_RYES2_SCRIPT10_d40932_HERES = "Here's your energy pod"; -TXT_RNO2_SCRIPT10_d40932_YOUDO = "You don't have enough for that."; -TXT_RPLY3_SCRIPT10_d40932_TELEP = "Teleporter beacon"; -TXT_RYES3_SCRIPT10_d40932_HELPW = "Help, when and where you need it."; -TXT_RNO3_SCRIPT10_d40932_SORRY = "Sorry, no charity."; -TXT_DLG_SCRIPT10_d42448_NOWTH = "Now that we actually have the castle under control, we have to be extra vigilant to keep it. The order's probably getting ready to strike back right now."; -TXT_DLG_SCRIPT10_d43964_BECAR = "Be careful out there."; -TXT_DLG_SCRIPT10_d45480_KEEPU = "Keep up the great work, we couldn't have done it without you."; -TXT_DLG_SCRIPT10_d46996_WHATI = "What is the wisdom you seek?"; -TXT_RPLY0_SCRIPT10_d46996_THESI = "The Sigil of the One God."; -TXT_RYES0_SCRIPT10_d46996_THERE = "The remaining pieces lie wrapped in the arms in darkness."; -TXT_DLG_SCRIPT10_d48512_THESE = "The second piece of the Sigil lies at the heart of the crimson and obsidian tower. Be warned, there the dragon awaits you. The time of your coming has been foretold. Seek the tower, your prize lies within."; -TXT_RPLY0_SCRIPT10_d48512_WHATA = "What about the other pieces?"; -TXT_RYES0_SCRIPT10_d48512_RETUR = "Return after you have bested the dragon."; -TXT_DLG_SCRIPT10_d50028_HEY = "Hey."; -TXT_RPLY0_SCRIPT10_d50028_STUFF = "Stuff"; -TXT_RYES0_SCRIPT10_d50028_HEREY = "Here you go."; -TXT_DLG_SCRIPT10_d51544_HEY = "Hey."; - -TXT_DLG_SCRIPT11_d0_IMTHE = "I'm the keymaster."; -TXT_DLG_SCRIPT11_d1516_ALOTO = "A lot of people would say this is a thankless and insignificant job. But it's not, in fact..."; -TXT_RPLY0_SCRIPT11_d1516_GIVEM = "Give me the key!"; -TXT_DLG_SCRIPT11_d3032_OKBUT = "Ok, but remember, I'm the keymaster."; -TXT_RPLY0_SCRIPT11_d3032_OKPAL = "Ok pal, whatever."; -TXT_DLG_SCRIPT11_d4548_IMTHE = "I'm the keymaster."; -TXT_DLG_SCRIPT11_d6064_DIETR = "Die traitor!"; -TXT_DLG_SCRIPT11_d7580_DIETR = "Die traitor!"; -TXT_DLG_SCRIPT11_d9096_HAVEY = "Have you come to gloat? Even though we're behind these bars, as long as we hold on, you still lose."; -TXT_DLG_SCRIPT11_d10612_LETUS = "Let us out of here!"; -TXT_DLG_SCRIPT11_d12128_LEAVE = "Leave me alone!"; - -TXT_DLG_SCRIPT12_d0_WHATI = "What is the wisdom you seek, simple one?"; -TXT_RPLY0_SCRIPT12_d0_THESI = "The Sigil of the One God."; -TXT_DLG_SCRIPT12_d1516_IFEEL = "I feel one fragment resonate within you. The second lies at the heart of the crimson and obsidian tower. There you must combat the Bishop, who is aware, and awaits you. You will find him by following his symbol of power. Take this token to the keymaster. Return to me after you have slain the beast."; -TXT_RPLY0_SCRIPT12_d1516_ILLBE = "I'll be back."; -TXT_DLG_SCRIPT12_d3032_ALTHO = "Although the Bishop is formidable, this quest is slight. Return to me when you possess the next fragment."; -TXT_DLG_SCRIPT12_d4548_YOURN = "Your next challenge will test your spirit. The third piece is held by your own leader. He is the same as that which he sends you to kill."; -TXT_RPLY0_SCRIPT12_d4548_MACIL = "Macil? A traitor?"; -TXT_DLG_SCRIPT12_d6064_YOURB = "Your blind faith has allowed him to advance to his goals with each piece you gain. Confront him and resolve your fate."; -TXT_RPLY0_SCRIPT12_d6064_ALLRI = "All right, it is Macil."; -TXT_RPLY1_SCRIPT12_d6064_ITSYO = "It's you I don't trust."; -TXT_DLG_SCRIPT12_d7580_WHATE = "Whatever choice you make your kind shall perish under the will of the One God."; -TXT_RPLY0_SCRIPT12_d7580_ILLBE = "I'll be back when Macil's dead."; -TXT_RPLY1_SCRIPT12_d7580_ICANT = "I can't let that happen."; -TXT_DLG_SCRIPT12_d9096_THERI = "The river of time moves forever onward, while you stand still."; -TXT_DLG_SCRIPT12_d10612_YOUHA = "You have cut the cancer from your body, but your heart still beats. Next you must find the surgeon who butchers and controls your people, the Loremaster. Stop him, and the next piece will be yours."; -TXT_RPLY0_SCRIPT12_d10612_WHERE = "Where do I find him?"; -TXT_DLG_SCRIPT12_d12128_USETH = "Use the teleporter behind the door I just opened to reach the Loremaster. When he is dead, use the same device to return to me."; -TXT_RPLY0_SCRIPT12_d12128_ILLBE = "I'll be back, with his piece!"; -TXT_DLG_SCRIPT12_d13644_THERI = "The river of time moves forever onward, while you stand still."; -TXT_DLG_SCRIPT12_d15160_PITIF = "Pitiful man, you have done what thousands have failed to do... You bring me the power of the Sigil, the voice of the One God."; -TXT_RPLY0_SCRIPT12_d15160_IDONT = "I don't understand."; -TXT_DLG_SCRIPT12_d16676_THESI = "The Sigil will open the door and free the spirit which will cleanse this planet and let me live forever. I will strip this world of its energies and find new worlds to conquer."; -TXT_RPLY0_SCRIPT12_d16676_ICANT = "I can't let you do that."; -TXT_DLG_SCRIPT12_d18192_YOUCA = "You can if you're dead."; -TXT_DLG_SCRIPT12_d19708_THESE = "The second piece of the Sigil lies at the heart of the crimson and obsidian tower. Be warned, there the dragon awaits you. The time of your coming has been foretold. Seek the tower, your prize lies within."; -TXT_RPLY0_SCRIPT12_d19708_WHATA = "What about the other pieces?"; -TXT_RYES0_SCRIPT12_d19708_RETUR = "Return after you have bested the dragon."; -TXT_DLG_SCRIPT12_d21224_HAVEY = "Have you braved the fury of the dragon?"; -TXT_RPLY0_SCRIPT12_d21224_YES = "Yes."; -TXT_RYES0_SCRIPT12_d21224_THENE = "The next challenge may prove your greatest."; -TXT_RNO0_SCRIPT12_d21224_DONOT = "Do not return until your task is finished."; -TXT_RPLY1_SCRIPT12_d21224_NOIHA = "No, I haven't"; -TXT_RYES1_SCRIPT12_d21224_SEEKT = "Seek the crimson and obsidian tower."; -TXT_DLG_SCRIPT12_d22740_THETH = "The third piece lies at the heart of your own. The unknowing betrayal of your people should cease before your actions destroy them."; -TXT_RPLY0_SCRIPT12_d22740_WHATA = "What are you talking about?"; -TXT_RYES0_SCRIPT12_d22740_YOUAR = "You are a simple pawn in this game."; -TXT_DLG_SCRIPT12_d24256_THETH = "The third piece is held by your own leader, Macil. He is the same as that which he sends you to kill. Your unwavering faith has allowed him to step closer to completing his goals with each piece you win. He must be destroyed before he is able to obtain all the pieces."; -TXT_RPLY0_SCRIPT12_d24256_WHATI = "What if he gets them all?"; -TXT_RYES0_SCRIPT12_d24256_THENH = "Then he will shed his cloak of lies and reveal his true face."; -TXT_DLG_SCRIPT12_d25772_HEAND = "He and I, like the others, are the last of a race that used to rule this world. They choose to use their power against humans, I use mine to help them. Without your people we could not survive."; -TXT_RPLY0_SCRIPT12_d25772_WHYSH = "Why should I trust you?"; -TXT_RYES0_SCRIPT12_d25772_BECAU = "Because I am speaking the truth."; -TXT_DLG_SCRIPT12_d27288_WREST = "Wrest from Macil, his Sigil piece. Return with it here and I will grant you the same reward as he. You may keep both the Sigil pieces and the knowledge that you are helping your people instead of working to destroy them. You must choose, I cannot let you depart if you still belong to him."; -TXT_RPLY0_SCRIPT12_d27288_ALLRI = "All right, I'm in."; -TXT_RYES0_SCRIPT12_d27288_RETUR = "Return here when he's dead."; -TXT_RPLY1_SCRIPT12_d27288_IDONT = "I don't believe you."; -TXT_RYES1_SCRIPT12_d27288_THENY = "Then you must die!"; -TXT_DLG_SCRIPT12_d28804_HAVEY = "Have you destroyed the betrayer?"; -TXT_RPLY0_SCRIPT12_d28804_YESMA = "Yes, Macil is gone."; -TXT_RYES0_SCRIPT12_d28804_HERES = "Here's your reward."; -TXT_RNO0_SCRIPT12_d28804_YOUMU = "You must first eliminate Macil."; -TXT_DLG_SCRIPT12_d30320_NOWTH = "Now that you have cleansed the poison from your people, your journey on the path to freedom can continue unburdened. Here are your rewards, as promised to you. Return to your friends to redeem them. The future holds greater danger, but also greater rewards."; -TXT_RPLY0_SCRIPT12_d30320_WHATS = "What sort of rewards."; -TXT_RYES0_SCRIPT12_d30320_FREED = "Freedom and peace."; -TXT_DLG_SCRIPT12_d31836_REWAR = "Rewards that dwarf all those that have come before. With no leader, your movement may flounder. The faith of your people, which you once strode upon to victory, has been as badly battered as their physical forms. They need your reassurance and support."; -TXT_RPLY0_SCRIPT12_d31836_HOWDO = "How do you figure that?"; -TXT_RYES0_SCRIPT12_d31836_YOUAR = "You are the one who exposed the fraud and who holds the Sigil pieces."; -TXT_DLG_SCRIPT12_d33352_THERE = "The restoration of faith should begin with the retrieval of the third piece. The darkest heart of my people clings to this piece, one who revels in subverting your race and rejoices in the degradation of those who refuse to join him."; -TXT_RPLY0_SCRIPT12_d33352_WHERE = "Where can I find him?"; -TXT_RYES0_SCRIPT12_d33352_HENEV = "He never leaves his laboratories on the other side of the factory."; -TXT_DLG_SCRIPT12_d34868_THEUN = "The unfortunate truth is what lies between he and you. The order's greatest concentration of forces including, where they are built, bred, and worship. You must find your way through this maze, find and destroy the lore master. Bring his piece back to me and I will reward you."; -TXT_RPLY0_SCRIPT12_d34868_HOWAB = "How about some help?"; -TXT_RYES0_SCRIPT12_d34868_IWILL = "I will be with you."; -TXT_DLG_SCRIPT12_d36384_THERE = "There are ways for me to communicate with you, there are those with minds weaker than most, I will speak to you through them. Look for the first of these in the order's town. That is all I may do right now."; -TXT_RPLY0_SCRIPT12_d36384_HOWWI = "How will I know where to look?"; -TXT_RYES0_SCRIPT12_d36384_NEART = "Near the water fall."; -TXT_DLG_SCRIPT12_d37900_HAVEY = "Have you destroyed the lore master?"; -TXT_RPLY0_SCRIPT12_d37900_YESHE = "Yes, he's gone."; -TXT_RYES0_SCRIPT12_d37900_YOURR = "Your rewards cannot do justice for this accomplishment."; -TXT_RNO0_SCRIPT12_d37900_YOUMU = "You must finish him first."; -TXT_RPLY1_SCRIPT12_d37900_NOIHA = "No I haven't killed him, yet."; -TXT_RYES1_SCRIPT12_d37900_THEND = "Then do not return until that is done."; -TXT_DLG_SCRIPT12_d39416_ICANN = "I cannot thank you enough, now I shall wield all the power of the One God and use it to crush you and your entire race."; -TXT_RPLY0_SCRIPT12_d39416_WHATA = "What about peace and goodwill?"; -TXT_RYES0_SCRIPT12_d39416_IDIOT = "Idiot, there can be no peace as long as the One God exists!"; -TXT_DLG_SCRIPT12_d40932_ITCRE = "It created us to help reap this planets energies and free it and ourselves from this miserable pit. It exists, and now I shall take its place and rule this world! The Sigil will open the door, and when I finish, I will have earned my own freedom!"; -TXT_RPLY0_SCRIPT12_d40932_ICANT = "I can't let you do this."; -TXT_RYES0_SCRIPT12_d40932_TRYAN = "Try and stop me pitiful meat being!"; - -TXT_DLG_SCRIPT14_d0_AREYO = "Are you here to free us? Because I've been good, they took my implant out. I still have to stay down here and wipe up the drool though."; -TXT_RPLY0_SCRIPT14_d0_YESIM = "Yes, I'm here to free you."; -TXT_RYES0_SCRIPT14_d0_YOUME = "You mean it?"; -TXT_DLG_SCRIPT14_d1516_ICANT = "I can't help nobody else. Not until you blow up the transmitter. That's what's behind the forcefield upstairs. My job is to check on the conveyors to make sure they aren't jammed. Not anymore!"; -TXT_RPLY0_SCRIPT14_d1516_THATS = "That's right, you're saved!"; -TXT_RYES0_SCRIPT14_d1516_OHTHA = "Oh, thank you!"; -TXT_DLG_SCRIPT14_d3032_WEREF = "We're free!! We're free!! We're free!!"; -TXT_DLG_SCRIPT14_d4548_MUSTM = "Must mine more ore!"; -TXT_DLG_SCRIPT14_d6064_WEREF = "We're free!! We're free!! We're free!!"; -TXT_DLG_SCRIPT14_d7580_MUSTM = "Must mine more ore!"; -TXT_DLG_SCRIPT14_d9096_WEREF = "We're free!! We're free!! We're free!!"; -TXT_DLG_SCRIPT14_d10612_MUSTM = "Must mine more ore!"; -TXT_DLG_SCRIPT14_d12128_WEREF = "We're free!! We're free!! We're free!!"; - -TXT_DLG_SCRIPT15_d0_WHATA = "What are you doing here?"; -TXT_RPLY0_SCRIPT15_d0_ROUTI = "Routine inspection."; -TXT_RYES0_SCRIPT15_d0_ALLRI = "All right, carry on."; -TXT_DLG_SCRIPT15_d1516_NOTHI = "Nothing to report here. Everything is working fine. If anything goes wrong, I'll be sure to report it."; -TXT_DLG_SCRIPT15_d3032_SIRTH = "Sir, there was a problem earlier, but it was taken care of."; - -TXT_DLG_SCRIPT17_d0_MOVEA = "Move along or taste metal."; -TXT_DLG_SCRIPT17_d1516_IDCHE = "I.D. Check."; -TXT_RPLY0_SCRIPT17_d1516_HEREI = "Here, I'm in a hurry."; -TXT_DLG_SCRIPT17_d3032_STOPW = "Stop waving your id in my face and go in."; -TXT_DLG_SCRIPT17_d4548_NOTHI = "Nothing to see here. Move along."; -TXT_DLG_SCRIPT17_d6064_WHATA = "What a healthy specimen. You don't need my help, do you?"; -TXT_RPLY0_SCRIPT17_d6064_WELLY = "Well, yes. Macil sent me."; -TXT_DLG_SCRIPT17_d7580_SHHHH = "Shhhh... Keep it quiet, unless you want us both killed. Now, what can I do for you?"; -TXT_RPLY0_SCRIPT17_d7580_TELLM = "Tell me how to find the Bishop."; -TXT_DLG_SCRIPT17_d9096_OHHHI = "Ohhh, I knew you would ask me for that. Look behind you. That's the entrance to the Bishop's citadel. It's guarded by a force field that is only shut off for official visitors, not you."; -TXT_RPLY0_SCRIPT17_d9096_IMUST = "I must kill the Bishop."; -TXT_DLG_SCRIPT17_d10612_OHSUR = "Oh, sure you do. First, fight your way into the security complex and use the teleporter. And this might be more to your liking, destroy the computer in central administration. No computer, no force field."; -TXT_RPLY0_SCRIPT17_d10612_GREAT = "Great, that sounds easy."; -TXT_DLG_SCRIPT17_d12128_THERE = "There's an advantage to destroying the computer, that's where the plans to the tower are kept. Can you say, five finger discount? Heh heh!"; -TXT_RPLY0_SCRIPT17_d12128_ANYTH = "Anything else?"; -TXT_DLG_SCRIPT17_d13644_OHWEL = "Oh well, word has it that the bailey's warehouse received a shipment of maulers, that's the weapon that vaporizes."; -TXT_RPLY0_SCRIPT17_d13644_ISTHA = "Is that it, now?"; -TXT_DLG_SCRIPT17_d15160_DONTY = "Don't you know the meaning of the words "Get lost"?"; -TXT_DLG_SCRIPT17_d16676_TALKT = "Talk to quincy first. I'm not allowed to help anyone unless he says it's ok."; -TXT_DLG_SCRIPT17_d18192_HOWHO = "How how can I help you today?"; -TXT_RPLY0_SCRIPT17_d18192_MEDPA = "Med patch"; -TXT_RYES0_SCRIPT17_d18192_HERES = "Here's your patch."; -TXT_RNO0_SCRIPT17_d18192_THATI = "That is 15 gold my friend."; -TXT_RPLY1_SCRIPT17_d18192_MEDIC = "Medical kit"; -TXT_RYES1_SCRIPT17_d18192_HERES = "Here's your medical kit."; -TXT_RNO1_SCRIPT17_d18192_YOURE = "You're a bit low on funds for that."; -TXT_RPLY2_SCRIPT17_d18192_FIELD = "Field surgery kit"; -TXT_RYES2_SCRIPT17_d18192_ONEFI = "One field surgery kit, done."; -TXT_RNO2_SCRIPT17_d18192_COMEB = "Come back when you have money!"; - -TXT_DLG_SCRIPT18_d0_WHATI = "What is it?"; -TXT_RPLY0_SCRIPT18_d0_JUSTL = "Just looking around."; -TXT_RYES0_SCRIPT18_d0_JUSTK = "Just keep out of the way."; -TXT_DLG_SCRIPT18_d1516_THETE = "The templars will be here soon to pick up their new maulers. If you get in their way you're a dead man."; -TXT_RPLY0_SCRIPT18_d1516_MAULE = "Maulers?"; -TXT_RYES0_SCRIPT18_d1516_THETE = "The templar's favorite weapon."; -TXT_DLG_SCRIPT18_d3032_THEYC = "They came in earlier. That's what all the security's about. I got a chance to look at them when I locked up. Nobody's supposed to go in or out of there until the rest of the platoon comes to claim their weapons."; - -TXT_DLG_SCRIPT19_d0_THISI = "This is where you get the plans for the central administration."; - -// MAP22 only has scripts in SVE -TXT_DLG_SCRIPT22_d0_IRUNT = "I run this place. My job is to build the raw parts needed for the Loremaster's robot designs. If you're not here on official business, then I'm afraid I don't have time to talk."; -TXT_RPLY0_SCRIPT22_d0_IAMON = "I am on official business."; -TXT_DLG_SCRIPT22_d1516_SOYOU = "So you've spoken with timothy, I see. He and I have worked together to try to unravel the mysteries of the order, before it's too late for us all. Maybe you can help us. I've opened the door to the production sector."; -TXT_RPLY0_SCRIPT22_d1516_DOYOU = "Do you know what's inside?"; -TXT_DLG_SCRIPT22_d3032_ITSAT = "It's a top secret area. Not only is the order breeding some kind of... Creature in there, I've seen with my own eyes a strange artifact called a "Talisman." nobody's allowed near it. Rumor is that it holds great power if united with two others of its kind."; -TXT_RPLY0_SCRIPT22_d3032_ISUPP = "I suppose you want this thing?"; -TXT_DLG_SCRIPT22_d4548_NOIFY = "No! If you can find it, it's yours to keep. Maybe you can use it to help free us from our oppression. I'd wish you luck, but you're going to need a lot more than that if you go in there..."; -TXT_RPLY0_SCRIPT22_d4548_WHATS = "What's all this about the past?"; -TXT_DLG_SCRIPT22_d6064_YOUVE = "You've surely seen the other ruins nearby. It seems that the "Comet" which crashed on our planet is actually a space ship, and believe it or not, it originated on this very world a long time ago."; -TXT_RPLY0_SCRIPT22_d6064_SOTHE = "So the spectres, the One God..."; -TXT_DLG_SCRIPT22_d7580_THEYA = "They are creatures who once ruled this world and are bent on consuming its life. The ancients managed to seal them away, but gave their lives in the process. I'm afraid that's all I know."; -TXT_RPLY0_SCRIPT22_d7580_THANK = "Thanks... I'll do what I can."; -TXT_DLG_SCRIPT22_d9096_GODSP = "Godspeed, friend."; -TXT_DLG_SCRIPT22_d10612_TALKT = "Talk to the master smithy if you have questions. All I do is put labels on the crates."; - -TXT_DLG_SCRIPT23_d0_WHATC = "What can I get you, citizen?"; -TXT_RPLY0_SCRIPT23_d0_AMMOB = "Ammo box"; -TXT_RYES0_SCRIPT23_d0_HERES = "Here's your ammo."; -TXT_RNO0_SCRIPT23_d0_YOUDO = "You don't have enough for that!"; -TXT_RPLY1_SCRIPT23_d0_CRATE = "Crate of missiles"; -TXT_RYES1_SCRIPT23_d0_HEREC = "Here, citizen."; -TXT_RNO1_SCRIPT23_d0_ITS85 = "It's 85 gold, citizen!"; -TXT_RPLY2_SCRIPT23_d0_HEGRE = "H-e grenades"; -TXT_RYES2_SCRIPT23_d0_HEREA = "Here are your grenades."; -TXT_RNO2_SCRIPT23_d0_THEYA = "They are 100 gold, friend."; -TXT_RPLY3_SCRIPT23_d0_ENERG = "Energy pod"; -TXT_RYES3_SCRIPT23_d0_HEREY = "Here you are."; -TXT_RNO3_SCRIPT23_d0_THATS = "That's 135 gold, sorry."; -TXT_DLG_SCRIPT23_d1516_WHATC = "What can I assist you with?"; -TXT_RPLY0_SCRIPT23_d1516_LEATH = "Leather armor"; -TXT_RYES0_SCRIPT23_d1516_HEREI = "Here it is citizen."; -TXT_RNO0_SCRIPT23_d1516_THERE = "There's no charity given here!"; -TXT_RPLY1_SCRIPT23_d1516_METAL = "Metal armor"; -TXT_RYES1_SCRIPT23_d1516_ANEXC = "An excellent choice citizen."; -TXT_RNO1_SCRIPT23_d1516_YOUDO = "You don't have enough for this!"; -TXT_RPLY2_SCRIPT23_d1516_ENVIR = "Environmental suit"; -TXT_RYES2_SCRIPT23_d1516_HEREY = "Here you are."; -TXT_RNO2_SCRIPT23_d1516_NOMON = "No money, no suit."; -TXT_RPLY3_SCRIPT23_d1516_SOMET = "Something different?"; -TXT_RYES3_SCRIPT23_d1516_GOTHR = "Go through the door down the hall."; -TXT_RNO3_SCRIPT23_d1516_YOUMU = "You must pay if you want to play."; -TXT_DLG_SCRIPT23_d3032_WHATC = "What can I get you?"; -TXT_RPLY0_SCRIPT23_d3032_LEATH = "Leather armor"; -TXT_RYES0_SCRIPT23_d3032_HEREI = "Here it is citizen."; -TXT_RNO0_SCRIPT23_d3032_THERE = "There's no charity given here!"; -TXT_RPLY1_SCRIPT23_d3032_METAL = "Metal armor"; -TXT_RYES1_SCRIPT23_d3032_ANEXC = "An excellent choice citizen."; -TXT_RNO1_SCRIPT23_d3032_YOUDO = "You don't have enough for this!"; -TXT_RPLY2_SCRIPT23_d3032_ENVIR = "Environmental suit"; -TXT_RYES2_SCRIPT23_d3032_HEREY = "Here you are."; -TXT_RNO2_SCRIPT23_d3032_NOMON = "No money, no suit."; -TXT_DLG_SCRIPT23_d4548_HOWCA = "How can I help you today?"; -TXT_RPLY0_SCRIPT23_d4548_MEDPA = "Med patch"; -TXT_RYES0_SCRIPT23_d4548_HERES = "Here's your patch."; -TXT_RNO0_SCRIPT23_d4548_THATI = "That is 15 gold my friend."; -TXT_RPLY1_SCRIPT23_d4548_MEDIC = "Medical kit"; -TXT_RYES1_SCRIPT23_d4548_HERES = "Here's your medical kit."; -TXT_RNO1_SCRIPT23_d4548_YOURA = "Your a bit low on funds for that."; -TXT_RPLY2_SCRIPT23_d4548_FIELD = "Field surgery kit"; -TXT_RYES2_SCRIPT23_d4548_ONEFI = "One field surgery kit."; -TXT_RNO2_SCRIPT23_d4548_COMEB = "Come back when you have money!"; -TXT_DLG_SCRIPT23_d6064_HELLO = "Hello friend, what can I get you?"; -TXT_RPLY0_SCRIPT23_d6064_INFOR = "Information"; -TXT_RYES0_SCRIPT23_d6064_IVENE = "I've never seen anyone go in or out of the factory, the forcefield's always up."; -TXT_RNO0_SCRIPT23_d6064_NOMON = "No money, no info."; -TXT_DLG_SCRIPT23_d7580_YESWH = "Yes, what would you like?"; -TXT_RPLY0_SCRIPT23_d7580_MOREI = "More info."; -TXT_RYES0_SCRIPT23_d7580_THEFA = "The factory's built on the comet's impact site. I don't think it's by chance."; -TXT_RNO0_SCRIPT23_d7580_COMEO = "Come on, it's a measly 5 gold."; -TXT_DLG_SCRIPT23_d9096_HELLO = "Hello again, what'll it be?"; -TXT_RPLY0_SCRIPT23_d9096_MOREI = "More info."; -TXT_RYES0_SCRIPT23_d9096_THEFA = "The factory closed when the order unveiled it's new horror: the inquisitor."; -TXT_RNO0_SCRIPT23_d9096_5GOLD = "5 gold please."; -TXT_DLG_SCRIPT23_d10612_THATS = "That's all I know. Even bartenders run out of stuff to say, sorry."; -TXT_DLG_SCRIPT23_d12128_HELLO = "Hello."; -TXT_RPLY0_SCRIPT23_d12128_WHATA = "What are you doing?"; -TXT_RYES0_SCRIPT23_d12128_IMDOI = "I'm doing stuff, go away!"; -TXT_DLG_SCRIPT23_d13644_NOWWH = "Now, what can I help you with?"; -TXT_RPLY0_SCRIPT23_d13644_SHADO = "Shadow armor?"; -TXT_RYES0_SCRIPT23_d13644_AHHTO = "Ahh, to be heard, but not seen!"; -TXT_RNO0_SCRIPT23_d13644_GETOU = "Get out of here, come back when you have some cash."; -TXT_DLG_SCRIPT23_d15160_THANK = "Thank deus you got here. To enter the factory you need a key. We stole it but our agent is missing in the web of catacombs under the order's stronghold. I have sent ten good men into those tunnels to find him, and none have returned. Something is down there!"; -TXT_RPLY0_SCRIPT23_d15160_WHATI = "What is it? Human or... ?"; -TXT_DLG_SCRIPT23_d16676_NOTDE = "Not. Definitely not. Whatever it is, you must fight it to retrieve the key. I'll open the catacombs' entrance. When you've got it, the factory is next to the mines. Hurry, each second counts."; -TXT_RPLY0_SCRIPT23_d16676_SOMET = "Something inhuman, eh?, great."; -TXT_DLG_SCRIPT23_d18192_YOURE = "You're wasting time and lives! Move!"; - -// New/moved content from SVE: -TXT_DLG_SCRIPT23_d10612_CANIB = "Can I be of more help?"; -TXT_RPLY0_SCRIPT23_d10612_MOREI = "More info."; -TXT_RYES0_SCRIPT23_d10612_LOOKF = "Look for timothy. I've heard he knows some of the order's secrets."; -TXT_RNO0_SCRIPT23_d10612_JUSTA = "Just another 5 gold."; -TXT_DLG_SCRIPT23_d12128_THATS = "That's all I know. Even bartenders run out of stuff to say, sorry."; -TXT_DLG_SCRIPT23_d13644_HELLO = "Hello."; -TXT_RPLY0_SCRIPT23_d13644_WHATA = "What are you doing?"; -TXT_RYES0_SCRIPT23_d13644_IMDOI = "I'm doing stuff, go away!"; -TXT_DLG_SCRIPT23_d15160_IFYOU = "If you have this much time to waste, see if you can find the blue chalice. My studies on the order suggest they have hidden it somewhere in the manufacturing sector of the factory. This artifact would be of great value to me, so, bring it to me, and I'll help you out."; -TXT_DLG_SCRIPT23_d16676_YOUFO = "You found the blue chalice! Ok, give it to me first, and we'll trade."; -TXT_RPLY0_SCRIPT23_d16676_TAKEI = "Take it, it's bad luck anyway."; -TXT_RPLY1_SCRIPT23_d16676_SCREW = "Screw you, I'm keeping it."; -TXT_RYES1_SCRIPT23_d16676_THENI = "Then I'm not giving you anything. Get lost!"; -TXT_DLG_SCRIPT23_d18192_LOCAT = "Locate the forge. The information I just gave you should help you enter a secretive sector of the factory. One of the forge workers can open the door."; -TXT_RPLY0_SCRIPT23_d18192_WHATC = "What can I find there?"; -TXT_DLG_SCRIPT23_d19708_MYRES = "My research suggests that some dark power from the ancient past is hidden there. Be careful!"; -TXT_DLG_SCRIPT23_d21224_THATB = "That blue chalice, how'd you come by it? I've been researching the order and their links to the distant past, and that artifact would help me. Let's make a deal. Give me the chalice, and I'll give you some info."; -TXT_RPLY0_SCRIPT23_d21224_TAKEI = "Take it, it's bad luck anyway."; -TXT_RPLY1_SCRIPT23_d21224_SCREW = "Screw you, I'm keeping it."; -TXT_RYES1_SCRIPT23_d21224_THENI = "Then I'm not giving you anything. Get lost!"; -TXT_DLG_SCRIPT23_d22740_NOWWH = "Now, what can I help you with?"; -TXT_RPLY0_SCRIPT23_d22740_SHADO = "Shadow armor?"; -TXT_RYES0_SCRIPT23_d22740_AHHTO = "Ahh, to be heard, but not seen!"; -TXT_RNO0_SCRIPT23_d22740_GETOU = "Get out of here, come back when you have some cash."; -TXT_DLG_SCRIPT23_d24256_THANK = "Thank deus you got here. To enter the factory you need a key. We stole it but our agent is missing in the web of catacombs under the order's stronghold. I have sent ten good men into those tunnels to find him, and none have returned. Something is down there!"; -TXT_RPLY0_SCRIPT23_d24256_WHATI = "What is it? Human or... ?"; -TXT_DLG_SCRIPT23_d25772_NOTDE = "Not. Definitely not. Whatever it is, you must fight it to retrieve the key. I'll open the catacombs' entrance. When you've got it, the factory is next to the mines. Hurry, each second counts."; -TXT_RPLY0_SCRIPT23_d25772_SOMET = "Something inhuman, eh?, great."; -TXT_DLG_SCRIPT23_d27288_YOURE = "You're wasting time and lives! Move!"; - -TXT_DLG_SCRIPT27_d0_THEMA = "The master doesn't like visitors. He likes all of his work to remain undisturbed. I've got to go get fresh parts from the storage room. I think he said a leg and an arm. Oh, well no time to talk anymore. I'd leave before he finds you."; -TXT_RPLY0_SCRIPT27_d0_WHYST = "Why's that."; -TXT_RYES0_SCRIPT27_d0_BECAU = "Because, I told you he doesn't like visitors!"; -TXT_DLG_SCRIPT27_d1516_YOUKN = "You know, you're about the right size for one of the acolyte's uniforms."; - -TXT_DLG_SCRIPT31_d0_OHNOI = "Oh no, I'm not the real Programmer, he's hiding. Continue past the guard training area, very tough. If you survive, you might be able to talk to him. Or kill him."; -TXT_RPLY0_SCRIPT31_d0_WHOAR = "Who are you?"; -TXT_DLG_SCRIPT31_d1516_YOULL = "You'll never find anything if you hang around here."; - -TXT_DLG_SCRIPT32_d0_PISSO = "Piss off peasant!"; -TXT_DLG_SCRIPT32_d1516_DIELI = "Die little man!"; -TXT_DLG_SCRIPT32_d3032_FINAL = "Finally I can get out of this cell."; -TXT_RPLY0_SCRIPT32_d3032_WHYAR = "Why are you in here?"; -TXT_RYES0_SCRIPT32_d3032_IWASF = "I was framed."; -TXT_DLG_SCRIPT32_d4548_HARRI = "Harris said that I was plotting to kill the governor. I would never harm a soul."; - -TXT_DLG_SCRIPT33_d0_BECAR = "Be careful out there."; -TXT_DLG_SCRIPT33_d1516_SAYFR = "Say friend, I'll help you, if you help me. Give me 5 gold and I'll tell you what I know."; -TXT_RPLY0_SCRIPT33_d1516_HERES = "Here's the gold."; -TXT_RYES0_SCRIPT33_d1516_IFYOU = "If you punch someone, you won't set off the alarms."; -TXT_RNO0_SCRIPT33_d1516_IWONT = "I won't tell you anything for free!"; -TXT_DLG_SCRIPT33_d3032_IVEAL = "I've already told you what I know."; -TXT_DLG_SCRIPT33_d4548_HELLO = "Hello friend. What can I get for you?"; -TXT_RPLY0_SCRIPT33_d4548_ELECT = "Electric bolts"; -TXT_RYES0_SCRIPT33_d4548_ONEQU = "One quarrel it is."; -TXT_RNO0_SCRIPT33_d4548_YOURE = "You're broke!"; -TXT_RPLY1_SCRIPT33_d4548_10ROU = "10 round clip"; -TXT_RYES1_SCRIPT33_d4548_HERES = "Here's your ammo"; -TXT_RNO1_SCRIPT33_d4548_SORRY = "Sorry, no money, no bullets."; -TXT_RPLY2_SCRIPT33_d4548_50ROU = "50 round box"; -TXT_RYES2_SCRIPT33_d4548_HEREY = "Here you go"; -TXT_RNO2_SCRIPT33_d4548_YOUDO = "You don't have enough gold!"; -TXT_RPLY3_SCRIPT33_d4548_AMMOS = "Ammo satchel"; -TXT_RYES3_SCRIPT33_d4548_THANK = "Thank you, anything else?"; -TXT_RNO3_SCRIPT33_d4548_YOUCA = "You can't afford that, good day."; -TXT_DLG_SCRIPT33_d6064_WELCO = "Welcome. What may I show you?"; -TXT_RPLY0_SCRIPT33_d6064_ENVIR = "Environmental suit"; -TXT_RYES0_SCRIPT33_d6064_HEREY = "Here you are."; -TXT_RNO0_SCRIPT33_d6064_YOUDO = "You don't have enough money for that."; -TXT_RPLY1_SCRIPT33_d6064_LEATH = "Leather armor."; -TXT_RYES1_SCRIPT33_d6064_HEREY = "Here you are."; -TXT_RNO1_SCRIPT33_d6064_PERHA = "Perhaps some other time?"; -TXT_RPLY2_SCRIPT33_d6064_METAL = "Metal armor"; -TXT_RYES2_SCRIPT33_d6064_WEARI = "Wear it in good health."; -TXT_RNO2_SCRIPT33_d6064_COMEB = "Come back when you can afford it."; -TXT_DLG_SCRIPT33_d7580_HOWMA = "How may I assist you?"; -TXT_RPLY0_SCRIPT33_d7580_MEDPA = "Med patch"; -TXT_RYES0_SCRIPT33_d7580_HERES = "Here's your patch kit."; -TXT_RNO0_SCRIPT33_d7580_YOUNE = "You need 10 gold for that."; -TXT_RPLY1_SCRIPT33_d7580_FIELD = "Field surgery kit"; -TXT_RYES1_SCRIPT33_d7580_THANK = "Thank you."; -TXT_RNO1_SCRIPT33_d7580_IWISH = "I wish I could give them away, but they cost 25 gold."; -TXT_RPLY2_SCRIPT33_d7580_HEALI = "Healing"; -TXT_RYES2_SCRIPT33_d7580_THERE = "There you go. Take care now."; -TXT_RNO2_SCRIPT33_d7580_WELLM = "Well, maybe you can afford some med patches?"; -TXT_DLG_SCRIPT33_d9096_HELLO = "Hello friend, I haven't seen you around here before. All I can say is that I'd be careful if I were you, there's a lot going on and it's better if you don't get in the way."; -TXT_RPLY0_SCRIPT33_d9096_INFOR = "Information"; -TXT_RYES0_SCRIPT33_d9096_THESE = "The sewers hold more than just rats and robots."; -TXT_RNO0_SCRIPT33_d9096_HEYAG = "Hey a guy's got to make some money. You think these jokers tip well?"; -TXT_DLG_SCRIPT33_d10612_BACKA = "Back again huh? Well, at least you know enough to keep your own skin intact. What can I do for you now?"; -TXT_RPLY0_SCRIPT33_d10612_MOREI = "More info"; -TXT_RYES0_SCRIPT33_d10612_THEGO = "The governor is a simple reminder of the order's influence."; -TXT_RNO0_SCRIPT33_d10612_COMEB = "Come back if you change your mind."; -TXT_DLG_SCRIPT33_d12128_WELLY = "Well, you're sure asking a lot of questions for someone who's lived this long. That's ok though, I'd rather talk to someone like you than most of this lot."; -TXT_RPLY0_SCRIPT33_d12128_MOREI = "More info."; -TXT_RYES0_SCRIPT33_d12128_THERE = "There's more to the order than what goes on around here."; -TXT_RNO0_SCRIPT33_d12128_COMEB = "Come back if you change your mind."; -TXT_DLG_SCRIPT33_d13644_THATS = "That's it friend, the well of knowledge has been tapped. I've told you more than I should have anyway."; -TXT_DLG_SCRIPT33_d15160_HARDT = "Hard to shop for new toys... When you're broke. Run a little errand for me and you'll get more than you could ever spend. I'll make you a rich man."; -TXT_RPLY0_SCRIPT33_d15160_IGOTN = "I got nothing better to do."; -TXT_RPLY1_SCRIPT33_d15160_NOTHA = "No thanks."; -TXT_RYES1_SCRIPT33_d15160_NOBOD = "Nobody walks away from me!"; -TXT_DLG_SCRIPT33_d16676_GOODC = "Good choice. The order's sanctuary by the river is their unofficial torture chamber. Hidden inside there's a golden chalice. You swipe it, you meet me at the tavern, and reap your reward."; -TXT_RPLY0_SCRIPT33_d16676_HOWAM = "How am I supposed to do that?"; -TXT_RPLY1_SCRIPT33_d16676_LETME = "Let me think about it."; -TXT_RYES1_SCRIPT33_d16676_SORRY = "Sorry, no second chances. Oh, guards, kill him!"; -TXT_DLG_SCRIPT33_d18192_HERES = "Here's a crossbow, just aim straight and -- splat!--. Remember, grab the fancy cup and meet me at the tavern."; -TXT_RPLY0_SCRIPT33_d18192_ILLSE = "I'll see you there."; -TXT_DLG_SCRIPT33_d19708_WHATA = "What are you waiting for? Don't worry, I'll clean up the bodies, just bring me that chalice!"; -TXT_DLG_SCRIPT33_d21224_GUARD = "Guards! Kill the traitor!"; -TXT_DLG_SCRIPT33_d22740_HEYIK = "Hey, I know what you're thinking, kinda looks like a setup, I would never do that to such a killing machine, I mean it. Whew, all this fuss over a cup, weird. Now get ready, gold and glory, like I promised. Take this key and the governor himself will reward you."; -TXT_RPLY0_SCRIPT33_d22740_GREAT = "Great, I can't wait!"; -TXT_RNO0_SCRIPT33_d22740_NOCHA = "No chalice, no money!"; -TXT_RPLY1_SCRIPT33_d22740_ILLKE = "I'll keep the chalice, thanks."; -TXT_RYES1_SCRIPT33_d22740_KEEPI = "Keep it? I think not!"; -TXT_DLG_SCRIPT33_d24256_WHATA = "What are you waiting for? The governor himself will reward you."; -TXT_DLG_SCRIPT33_d25772_DIETR = "Die traitor! "; -TXT_DLG_SCRIPT33_d27288_SOYOU = "So you're the fool who stole the chalice? I'm going to have you arrested as a rebel thief... Thereby enhancing my position with the order. How does it feel to be an unwitting pawn? "; -TXT_RPLY0_SCRIPT33_d27288_ITSUC = "It sucks!"; -TXT_RYES0_SCRIPT33_d27288_FORYO = "For you it does."; -TXT_RPLY1_SCRIPT33_d27288_HARRI = "Harris promised me money!"; -TXT_RYES1_SCRIPT33_d27288_TOOBA = "Too bad. The only thing you're getting is death!"; -TXT_DLG_SCRIPT33_d28804_WEREG = "We're going to kill you!"; -TXT_DLG_SCRIPT33_d30320_GETOU = "Get out of here!"; -TXT_DLG_SCRIPT33_d31836_WEREG = "We're going to kill you!"; -TXT_DLG_SCRIPT33_d33352_GETOU = "Get out of here!"; - -TXT_DLG_SCRIPT34_d0_WHATA = "What a perfect place for us, under the old town hall. The order thinks they've wiped us out, but all it was is a reminder to us of what can happen when you become careless. "; -TXT_DLG_SCRIPT34_d1516_TALKT = "Talk to Macil, he'll be able to help you."; -TXT_DLG_SCRIPT34_d3032_IVEHE = "I've heard that Macil's going to start something again soon. We need a big hit after the last fiasco. One more like that and we'll be too weak to continue."; -TXT_DLG_SCRIPT34_d4548_AFEWO = "A few of these barrels dumped into their water supply should even the odds a little. "; -TXT_DLG_SCRIPT34_d6064_IMWOR = "I'm working on something that will give us an edge. It will increase your stamina and completely jack you up. I've almost got all the bugs worked out. Can I do something for you? "; -TXT_RPLY0_SCRIPT34_d6064_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT34_d6064_BOYYO = "Boy, you're a real mess. I'll see what I can do."; -TXT_RPLY1_SCRIPT34_d6064_STAMI = "Stamina implant?"; -TXT_RYES1_SCRIPT34_d6064_ALLRI = "All right this won't take but a moment."; -TXT_RNO1_SCRIPT34_d6064_ITSNO = "It's not done yet."; -TXT_DLG_SCRIPT34_d7580_HEYIM = "Hey, I'm working on an updated version of your implant. Is there anything else I can do?"; -TXT_RPLY0_SCRIPT34_d7580_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT34_d7580_WELLA = "Well at least you're seeing action."; -TXT_RPLY1_SCRIPT34_d7580_IMPLA = "Implant upgrade?"; -TXT_RYES1_SCRIPT34_d7580_GOODT = "Good thing, never can be too safe."; -TXT_RNO1_SCRIPT34_d7580_IMALM = "I'm almost finished, but not quite."; -TXT_DLG_SCRIPT34_d9096_ALLRI = "All right, this is it. I've almost got everything working perfectly. There were a few problems left to fix, do you need anything else? "; -TXT_RPLY0_SCRIPT34_d9096_PATCH = "Patch me up."; -TXT_RYES0_SCRIPT34_d9096_WHATH = "What have you been trying to do? Go head to head with a crusader?"; -TXT_RPLY1_SCRIPT34_d9096_IMPLA = "Implant upgrade?."; -TXT_RYES1_SCRIPT34_d9096_THATS = "That should do it for you."; -TXT_RNO1_SCRIPT34_d9096_LETME = "Let me run some more tests first."; -TXT_DLG_SCRIPT34_d10612_THATS = "That's all I can do on the implant right now. Maybe some healing?"; -TXT_RPLY0_SCRIPT34_d10612_YEAH = "Yeah."; -TXT_RYES0_SCRIPT34_d10612_BOYYO = "Boy, you're a real mess. I'll see what I can do."; -TXT_DLG_SCRIPT34_d12128_WHATC = "What can I do for you?"; -TXT_RPLY0_SCRIPT34_d12128_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT34_d12128_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RPLY1_SCRIPT34_d12128_TEACH = "Teach me."; -TXT_RYES1_SCRIPT34_d12128_ALLRI = "All right, I'll just show you a few little pointers."; -TXT_RNO1_SCRIPT34_d12128_YOURE = "You're not ready yet."; -TXT_DLG_SCRIPT34_d13644_BACKA = "Back again? What do you need?"; -TXT_RPLY0_SCRIPT34_d13644_IMOUT = "I'm out of bullets."; -TXT_RYES0_SCRIPT34_d13644_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RNO0_SCRIPT34_d13644_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT34_d13644_TEACH = "Teach me."; -TXT_RYES1_SCRIPT34_d13644_ALLRI = "All right, this should keep you going for a while."; -TXT_RNO1_SCRIPT34_d13644_SORRY = "Sorry, can't. I'm just following Macil's orders."; -TXT_DLG_SCRIPT34_d15160_WELLW = "Well which is it, bullets or training? I can't wait to get my hands on those new weapons we captured. Once I get done with them, I'll be able to begin training everyone else."; -TXT_RPLY0_SCRIPT34_d15160_IMOUT = "I'm out of ammo."; -TXT_RYES0_SCRIPT34_d15160_HERES = "Here's some ammo for you. Don't waste it."; -TXT_RNO0_SCRIPT34_d15160_YOUVE = "You've got enough ammo."; -TXT_RPLY1_SCRIPT34_d15160_TEACH = "Teach me."; -TXT_RYES1_SCRIPT34_d15160_OKTAK = "O.K. Take what you've learned and show those order bastards the way to hell."; -TXT_RNO1_SCRIPT34_d15160_COMEB = "Come back later, when Macil says it's time."; -TXT_DLG_SCRIPT34_d16676_IVETA = "I've taught you everything I can right now. Give me some time to put the new weapons through their paces. That is unless you're out of bullets."; -TXT_RPLY0_SCRIPT34_d16676_YESIA = "Yes I am."; -TXT_RYES0_SCRIPT34_d16676_HEREY = "Here you go."; -TXT_DLG_SCRIPT34_d18192_DONTG = "Don't get trigger happy in the town, you'll set off the alarm and they will start sending in guards from the castle."; -TXT_DLG_SCRIPT34_d19708_WELCO = "Welcome, we can always use more help."; -TXT_DLG_SCRIPT34_d21224_WHENI = "When I was still in action we had the chance to examine an acolyte before the reinforcements arrived, they're not human I tell you."; -TXT_DLG_SCRIPT34_d22740_WERET = "We're trying to find where the castle gate mechanisms are, but so far we've had no luck."; -TXT_DLG_SCRIPT34_d24256_DONTG = "Don't get caught. I've heard horror stories about what they do to our people after they're imprisoned. They just disappear, no traces, nothing. "; -TXT_DLG_SCRIPT34_d25772_HERES = "Here's some advice, if you ever see any of the order's tin soldiers, run the other way. I especially don't like the reavers, those things are just damned fast!"; -TXT_DLG_SCRIPT34_d27288_WELCO = "Welcome to the last flicker of hope. Only we have the free will to oppose the order. We have the sharpest scientific minds, and many able bodies. But we lack that one real problem solver, who will give us the edge we need."; -TXT_RPLY0_SCRIPT34_d27288_WHATW = "What will I need to do? "; -TXT_DLG_SCRIPT34_d28804_HELPU = "Help us. Help us steal their technology. Free our comrades. Fight these twisted psychopaths to the death. I'm asking you to risk your life for the truth."; -TXT_RPLY0_SCRIPT34_d28804_IMWIT = "I'm with you!"; -TXT_DLG_SCRIPT34_d30320_GOODB = "Good. Blackbird will continue to be your guide. She's taken quite a shine to you. Together, you've got to unlock the secrets of the order and their inhuman servants. There's a presence that lurks just outside our understanding which guides their terror. Get inside and take them down. "; -TXT_RPLY0_SCRIPT34_d30320_LETME = "Let me at 'em!"; -TXT_RYES0_SCRIPT34_d30320_THATS = "That's the spirit."; -TXT_DLG_SCRIPT34_d31836_WELCO = "Welcome friend!"; - -// Strife's log texts - -TXT_ILOG1 = "Hello? Command, a com unit has just been activated... Am receiving visuals and sound from... Somebody... Hey you, get out of there now... And drop the chalice!"; -TXT_ILOG2 = "Listen, this com unit tells me that you're 100% human. I've been ordered to bring you in, we're talking trust here. Betray me and pay. Oh, and by the way, you can call me Blackbird."; -$ifgame(strifeteaser) TXT_ILOG2 = "Listen, this com-unit tells me that you're 100% human. You might be one of us, and maybe we can try and trust each other. Consider this test, there's a flamethrower in the governor's mansion. Get it, and I'll lead you to us"; -TXT_ILOG3 = "Head over to the old town hall. Macil had a tunnel built that lets us get in and out without the acolytes' knowledge."; -TXT_ILOG4 = "Go through the door on your left, then the one on the right. The guard's name is geoff. Tell him you need gold."; -TXT_ILOG5 = "Don't enter the town hall. It's not safe anymore, our cover's been blown. Kill all the big robots, the 'crusaders' and I'll guide you to us."; -TXT_ILOG6 = "The door next to the weapons shop will open once all the crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us"; -TXT_ILOG7 = "The door next to the weapons shop will open once all the crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us"; -TXT_ILOG8 = "Kill as many of the big robots, crusaders, as you can. When you're done, I'll guide you to Macil"; -TXT_ILOG9 = "Go through the door, and talk to Macil."; -TXT_ILOG10 = "Find the power tap on the mains, and shut it off. Bring something back to the governor as proof. Find Macguffin, and talk to him."; -TXT_ILOG11 = "Find the power tap on the mains, and shut it off. Bring something back to the governor as proof. Find Macguffin, and talk to him. He's up by the sewage treatment plant, in the 'bum hole', down the stairs."; -TXT_ILOG13 = "You idiot! You've shut off the power to the jamming circuits we use to conceal our base from the order. Head to the town hall and take out the scanning crew, now! Then, go back to the governor and give him the broken coupling."; -TXT_ILOG14 = "Ok, 'trust no one' is the name of the game! Let's get that prison pass from the governor. Take the broken coupling to him."; -TXT_ILOG15 = "Good move! The governor is a liar. That's our power coupling. We're using it to hide the base from the order. Take this broken coupling back to him and let's get that pass."; -TXT_ILOG18 = "Use the Warden's key to get into the prison cell blocks and find a way to free the prisoners."; -TXT_ILOG19 = "Find a way to free the prisoners. Find a way to open the hand scanner switch."; -TXT_ILOG20 = "Find a way to free the prisoners. Use the judge's hand to operate the hand scanner switch."; -TXT_ILOG21 = "Way to go my friend. Good work freeing the prisoners. Jump on one of the teleporters and it will bring you back to base."; -TXT_ILOG22 = "Destroy the power crystal that runs the power grid which drives the order's shields. Go visit worner, a spy we recruited in the warehouse of the power station."; -TXT_ILOG24 = "Let's get lost. There's more fun to come."; -TXT_ILOG25 = "One more adventure before command feels it's safe to attack the castle. Macil's arranged for Irale to give you gold and some training. After you visit him, see the medic in town for strength."; -TXT_ILOG26 = "Visit Irale and the medic in town for gold and training, then find the sewers. Head along the river across from the governor's mansion."; -TXT_ILOG28 = "We're looking for weran, who calls himself the rat king. I'm sure it's descriptive as well as colorful."; -TXT_ILOG33 = "Take the flamethrower parts to Irale. Drain the reclamation tank. At the bottom is a hidden entrance to the sewers. The gate controls are down there, somewhere. Destroy them."; -TXT_ILOG37 = "Command, he's done it! The gates are open. Send in the shock troops and tell Macil we're coming in! Let's get back to the front base."; -TXT_ILOG38 = "Join the assault on the castle. Find and take out the Programmer. We have conflicting reports about his location. One says he in a computer room, another hiding in a sub-level temple, and yet another at the end of a long hallway."; -TXT_ILOG45 = "Find the Programmer and kill him."; -TXT_ILOG46 = "Seek out the Oracle and ask it about the other Sigil pieces. The Oracle resides in the borderlands, just outside of town. Cross the river, head towards the castle and go left through the archway."; -TXT_ILOG47 = "Seek out the Oracle and ask it about the other Sigil pieces. The Oracle's temple is in the borderlands, on the outskirts of town."; -TXT_ILOG48 = "Seek out the Oracle and ask it about the other Sigil pieces. Take your reward and go across to the medic and weapons trainer for health and training. The Oracle's temple is in the borderlands, on the outskirts of town."; -TXT_ILOG50 = "Seek out the Oracle's temple and ask it about the other Sigil pieces. Here it is. I'm recording everything. It's not that I don't have faith that you'll survive. It's just that we can't let the order control the Sigil."; -TXT_ILOG56 = "The second piece lies at the heart of the crimson and obsidian tower. There you will find the Bishop. The Bishop is the order's military leader. We off him and we score twice. Take the Oracle's token to the key master in the borderlands."; -TXT_ILOG57 = "The Bishop is going to be heavily guarded, so why don't we swipe a uniform and blend in? Locate the Bishop. Once you have destroyed him, return to the Oracle."; -TXT_ILOG59 = "I just got word that we have an informer inside the fortress. Let's head for the hospital. He works there. After that, locate the Bishop and destroy him. Once he's dead return to the Oracle."; -TXT_ILOG64 = "Don't give up. This is it. Straight ahead. Jump on the teleporter to central administration and destroy the computer core. This will kill the force field on the entrance to the Bishop's tower. Once he's dead, return to the Oracle."; -TXT_ILOG70 = "Very impressive. Lets blow it up. That should take care of the force field. Let's get back to the bailey, then off to the tower and the Bishop."; -TXT_ILOG74 = "Bravo, another piece of the Sigil! Did you see that weird spectre that came out of the Bishop's body? Where have I seen that before? Let's get back to the Oracle."; -TXT_ILOG75 = "Judgment call time... The Oracle wanted us back for another visit, but now that we've got two pieces, we might want to return to base."; -TXT_ILOG76 = "I have a report that the spectral energy we found near the Bishop is also present by the Oracle, let's be careful"; -TXT_ILOG79 = "Richter has taken over command of our forces. It looks like Macil has been deceiving us all along. His true allegiance was to the order. What a snake. Let's get back to the Oracle."; -TXT_ILOG83 = "Another Sigil peice. We are one step closer to freedom. And you are one step closer to me. Let's get back to the Oracle!"; -TXT_ILOG85 = "You wield the power of the complete Sigil. What do you say we get some closure. Let's see what the Loremaster's been protecting."; -TXT_ILOG87 = "Well, so much for prognostication. Hold it, Macil is calling us back. Let's get out of here in one piece."; -TXT_ILOG88 = "I'm sorry, after being up to my hips in blood I can't think of anything witty to say right now. Let's just get back to Macil."; -TXT_ILOG89 = "The factory is next to the mines. Richter must mean the mines of degnin. The degnin ore is magnetic and explosive, just the thing for shutting down force fields. Let's get that key from the catacombs, and then off to the mines for some ore."; -TXT_ILOG93 = "The factory is next to the mines. The degnin ore is magnetic and explosive, just the thing for shutting down force fields. Let's get that key from the catacombs, and then we go down for some ore. This must be the ruins Richter's agents were searching for, be careful."; -TXT_ILOG95 = "The factory is next to the mines. The degnin ore is magnetic and explosive, just the thing for shutting down force fields. My friend, whatever it is we're fighting, it's more than just the order. Back to the commons then off to the mines. We need ore."; -TXT_ILOG96 = "The factory is next to the mines. The degnin ore is magnetic and explosive, just the thing for shutting down force fields. Without letting down your guard, look for deposits of ore."; -TXT_ILOG97 = "Without letting down your guard, look for deposits of ore. These poor souls are drones. Their synaptic functions are being jammed by rc implants. We destroy the transmitter, and they're free."; -TXT_ILOG99 = "The factory is next to the mines. Without letting down your guard, look for deposits of ore. My suggestion is, toss the ore at the force field and then blast it, the resulting compression should create a magnetic blanket and turn off the lights."; -TXT_ILOG100 = "Now on to the factory. Exit the mines and you can't miss it. Let's find that machine and shut it down!"; -TXT_ILOG102 = "I'm reading massive neural wave distortions from straight ahead. I think we've found it. Let's get in there and shut it down!"; -TXT_ILOG103 = "Just when I think we've seen it all! They go in human and come out... I dont even want to think about it. Destroy this horror!"; -TXT_ILOG104 = "Macil's gone nuts. He just knowingly sent 200 men to their deaths. I want vengeance! For the dead and for the living dead! Let's get back and find out what's going on."; -TXT_ILOG106 = "The factory leads to a 'lab', and they're getting a Sigil piece power signature from within. Back to the factory and our next step to freedom."; -TXT_ILOG120 = "Find the Bishop and destroy him! Once he's dead, return to the Oracle."; -TXT_ILOG122 = "The Loremaster's lab is beyond the teleporter that just opened. Let's go find out what he was just yapping about.And our next step to freedom."; -TXT_ILOG211 = "Come on, let's get the hell out of here. The force field is down, off to the Bishop's tower. Once he's dead, get back to the Oracle."; -TXT_ILOG1001 = "Find the sanctuary by the river. Steal the chalice from inside. Bring it to Harris in the tavern."; -TXT_ILOG1002 = "Find the governor. Talk to him about your reward."; -TXT_ILOG1003 = "Find the sanctuary by the river. Inside someone called beldin is being held. Shut him up, and bring his ring back to rowan as proof."; -TXT_ILOG1004 = "Find the location of the front and talk to Macil."; -TXT_ILOG1005 = "Go down the stairs, find and talk to Macil."; -TXT_ILOG1006 = "Visit Irale, the front's weapons supplier in town. He's behind the door next to the weapons shop. Then, use the key Macil gave you to talk to the governor."; -TXT_ILOG1007 = "Find the power tap on the mains, and shut it off. Bring something back to the governor as proof."; -TXT_ILOG1008 = "Find Derwin in the warehouse of the power station. Kill him, and bring Mourel his ear."; -TXT_ILOG1009 = "Use the pass Mourel gave you to get into the prison. Once inside, talk to Warden Montag. Find a way to free the prisoners."; -TXT_ILOG1010 = "Use the Warden's key to get into the prison cell blocks and find a way to free the prisoners."; -TXT_ILOG1011 = "Destroy the power crystal that runs the power grid which drives the order's shields. Go visit worner, a spy we recruited in the warehouse of the power station. Don't forget to visit the medic and the weapons trainer before you go"; -TXT_ILOG1012 = "Destroy the power crystal that runs the power grid which drives the order's shields. Use the I.D. To get into the power station. You may want to check out the storeroom above worner."; -TXT_ILOG1013 = "Destroy the power crystal that runs the power grid which drives the order's shields. Go talk to Ketrick in the core area."; -TXT_ILOG1014 = "Destroy the power crystal. Go talk to Ketrick, bring the walkway up using the switches, then use this id for the elevator."; -TXT_ILOG1015 = "Find the town entrance that the order has guarded. Open the door and bring the guard's uniform back to weran."; -TXT_ILOG1016 = "Take the flamethrower parts to Irale. Find the sewer maintenance door. Find and drain the reclamation tank inside the castle. At the bottom is a hidden entrance to the sewers. Down that entrance is where the gate controls are, somewhere."; -TXT_ILOG1017 = "Join the assault on the castle. Find and take out the Programmer. See the medic and the weapons trainer. Spend everything you've got. This is going to be a hell of a fight."; -TXT_ILOG1018 = "Use the key the false Programmer gave you to open an entrance to the Programmer's keep. It has to be where he's hiding. Find the Programmer and kill him."; -TXT_ILOG1019 = "Seek out the Oracle and ask it about the other Sigil pieces. Take your reward and go across to the medic and weapons trainer for health and training."; -TXT_ILOG1020 = "The second piece lies at the heart of the crimson and obsidian tower. There you must find the Bishop, who awaits you. Take the Oracle's token to the key master in the borderlands. Once you have destroyed the Bishop, return to the Oracle."; -TXT_ILOG1021 = "Find the crimson and obsidian tower. Use the id key the key master gave you to enter the tower. Once inside you must locate the Bishop. Once you have destroyed the Bishop, return to the Oracle."; -TXT_ILOG1022 = "Find the security complex, fight through there and use the teleporter to central administration. Destroy the computer core in central administration. This will kill the force field on the Bishop's tower. Once the Bishop's dead, return to the Oracle."; -TXT_ILOG1023 = "Your next challenge will test your spirit. The third piece is held by your own leader. He is the same as that which he sends you to kill. Confront him and resolve your fate."; -TXT_ILOG1024 = "It is the Oracle who holds the third piece. There's your traitor. Return to the Oracle, and take him down. Return to me when it's dead."; -TXT_ILOG1025 = "You have cut the cancer from your body, but your heart still beats. Next you must find the surgeon who butchers and controls your people.... The Loremaster. Stop him, and the next piece will be yours."; -TXT_ILOG1026 = "Next you must find the surgeon who butchers and controls your people.... The Loremaster. Stop him, and the next piece will be yours. Use the teleporter I opened to reach him. When he's dead, use the same device to return to me."; -TXT_ILOG1027 = "You have chosen wisely. The third piece is held by your own leader. Destroy that which hides within your heart and return to me."; -TXT_ILOG1028 = "We've found out that the order is transforming our people into bio-mechanical soldiers. Find the facility where this is being done and close it, permanently! Find Richter in the commons, near the waterfall and he'll tell you how to stop this atrocity."; -TXT_ILOG1029 = "To enter the factory, you need a key. We stole one, but the agent who had it is missing in the catacombs underneath the commons. There's something down there taking our men. Whatever it is, you have to find it and retrieve the key. When you've got it, the factory is next to the mines."; -TXT_ILOG1101 = "Find the chalice in the sanctuary chapel and bring it to Harris upstairs in the tavern."; -TXT_ILOG1102 = "Find the governor's mansion and talk to the governor to get your reward"; -TXT_ILOG1201 = "Congratulations! You have earned our gratitude. Visit the medic and weapons trainer and they will get you ready for what lies ahead. Feel free to wander around within the base."; - -// Strife's character names - -TXT_SPEAKER_ORDER_SERGEANT = "Order Sergeant"; -TXT_SPEAKER_ROWAN = "Rowan"; -TXT_SPEAKER_FERIS = "Feris"; -TXT_SPEAKER_PRISON_GUARD = "Prison Guard"; -TXT_SPEAKER_JUSTIN = "Justin"; -TXT_SPEAKER_MACIL = "Macil"; -TXT_SPEAKER_ASSISTANT = "Assistant"; -TXT_SPEAKER_KEY_MASTER = "Key Master"; -TXT_SPEAKER_BODYGUARD = "Bodyguard"; -TXT_SPEAKER_INTERROGATOR = "Interrogator"; -TXT_SPEAKER_WARDEN_MONTAG = "Warden Montag"; -TXT_SPEAKER_RICHTER = "Richter"; -TXT_SPEAKER_MACIL_S_ADVISOR = "Macil's Advisor"; -TXT_SPEAKER_JUDGE_WOLENICK = "Judge Wolenick"; -TXT_SPEAKER_TEVICK = "Tevick"; -TXT_SPEAKER_HARRIS = "Harris"; -TXT_SPEAKER_FOREMAN = "Foreman"; -TXT_SPEAKER_PRISONER = "Prisoner"; -TXT_SPEAKER_SAMMIS = "Sammis"; -TXT_SPEAKER_WEAPON_SMITH = "Weapon Smith"; -TXT_SPEAKER_REACTOR_GUARD = "Reactor Guard"; -TXT_SPEAKER_APPRENTICE = "Apprentice"; -TXT_SPEAKER_DOOR_GUARD = "Door Guard"; -TXT_SPEAKER_MASTER_SMITHY = "Master Smithy"; -TXT_SPEAKER_WAREHOUSE_GUARD = "Warehouse Guard"; -TXT_SPEAKER_BARKEEP = "Barkeep"; -TXT_SPEAKER_TIMOTHY = "Timothy"; -TXT_SPEAKER_JAMES = "James"; -TXT_SPEAKER_WORNER = "Worner"; -TXT_SPEAKER_BAILEY_GUARD = "Bailey Guard"; -TXT_SPEAKER_DRONE = "Drone"; -TXT_SPEAKER_FRONT_GUARD = "Front Guard"; -TXT_SPEAKER_QUINCY = "Quincy"; -TXT_SPEAKER_SERGEANT = "Sergeant"; -TXT_SPEAKER_TEMPLE_GUARD = "Temple Guard"; -TXT_SPEAKER_ORACLE = "Oracle"; -TXT_SPEAKER_ULAINE = "Ulaine"; -TXT_SPEAKER_FRONT_SOLDIER = "Front Soldier"; -TXT_SPEAKER_PROGRAMMER = "Programmer"; -TXT_SPEAKER_MEDIC = "Medic"; -TXT_SPEAKER_WATCHMAN = "Watchman"; -TXT_SPEAKER_KETRICK = "Ketrick"; -TXT_SPEAKER_WERAN = "Weran"; -TXT_SPEAKER_ADVISOR = "Advisor"; -TXT_SPEAKER_GEOFF = "Geoff"; -TXT_SPEAKER_OVERSEER = "Overseer"; -TXT_SPEAKER_SECURITY_COMPLE = "Security Comple"; -TXT_SPEAKER_COMPUTER_TECH = "Computer Tech"; -TXT_SPEAKER_MACGUFFIN = "Macguffin"; -TXT_SPEAKER_ARION = "Arion"; -TXT_SPEAKER_DOCK_WORKER = "Dock Worker"; -TXT_SPEAKER_IRALE = "Irale"; -TXT_SPEAKER_CORE_GUARD = "Core Guard"; -TXT_SPEAKER_SEWER_GUARD = "Sewer Guard"; -TXT_SPEAKER_TECHNICIAN = "Technician"; -TXT_SPEAKER_GUARD = "Guard"; -TXT_SPEAKER_PEASANT = "Peasant"; -TXT_SPEAKER_ARMORER = "Armorer"; -TXT_SPEAKER_BELDIN = "Beldin"; -TXT_SPEAKER_GERARD = "Gerard"; -TXT_SPEAKER_GOVERNOR_MOUREL = "Governor Mourel"; -TXT_SPEAKER_BOWYER = "Bowyer"; -TXT_SPEAKER_DERWIN = "Derwin"; From 8f93dcc884ac1c8a0e0081871296c5ac92387039 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 10:54:26 +0100 Subject: [PATCH 3/7] - fixed the option menu indentation. This was yet another piece of code that essentially was unworkable thanks to the limited screen space with the old bitmap fonts. With the new font there is enough screen space to do this properly. --- wadsrc/static/zscript/ui/menu/optionmenu.zs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/wadsrc/static/zscript/ui/menu/optionmenu.zs b/wadsrc/static/zscript/ui/menu/optionmenu.zs index c3b7dab52..ea4a7f07a 100644 --- a/wadsrc/static/zscript/ui/menu/optionmenu.zs +++ b/wadsrc/static/zscript/ui/menu/optionmenu.zs @@ -433,22 +433,8 @@ class OptionMenu : Menu int fontheight = OptionMenuSettings.mLinespacing * CleanYfac_1; y *= CleanYfac_1; - int indent = mDesc.mIndent; - if (indent > 280) - { // kludge for the compatibility options with their extremely long labels - if (indent + 40 <= CleanWidth_1) - { - indent = (screen.GetWidth() - ((indent + 40) * CleanXfac_1)) / 2 + indent * CleanXfac_1; - } - else - { - indent = screen.GetWidth() - 40 * CleanXfac_1; - } - } - else - { - indent = (indent - 160) * CleanXfac_1 + screen.GetWidth() / 2; - } + int indent = max(0, (mDesc.mIndent + 40) - CleanWidth_1 / 2); + indent = screen.GetWidth() / 2 + indent * CleanXfac_1; int ytop = y + mDesc.mScrollTop * 8 * CleanYfac_1; int lastrow = screen.GetHeight() - OptionHeight() * CleanYfac_1; From 4120e72dbd8c7cf78a2f64e4688d36bec1a419bd Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 11:45:00 +0100 Subject: [PATCH 4/7] - explicitly mark all unresolved textures as invalid. --- src/gamedata/textures/multipatchtexturebuilder.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gamedata/textures/multipatchtexturebuilder.cpp b/src/gamedata/textures/multipatchtexturebuilder.cpp index 0bc822a05..db5c65889 100644 --- a/src/gamedata/textures/multipatchtexturebuilder.cpp +++ b/src/gamedata/textures/multipatchtexturebuilder.cpp @@ -988,6 +988,7 @@ void FMultipatchTextureBuilder::ResolveAllPatches() for (auto &b : BuiltTextures) { Printf("%s\n", b.Name.GetChars()); + b.tex->SetUseType(ETextureType::Null); } break; } From b48f4032d8930b26638903984f91660be62c0a87 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 14:27:42 +0100 Subject: [PATCH 5/7] - draw the FPS counter with the new console font. With the current scale settings the original one is simply too small. --- src/v_framebuffer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/v_framebuffer.cpp b/src/v_framebuffer.cpp index c026133c0..ec53fc7e8 100644 --- a/src/v_framebuffer.cpp +++ b/src/v_framebuffer.cpp @@ -156,9 +156,9 @@ void DFrameBuffer::DrawRateStuff () int textScale = active_con_scale(); chars = mysnprintf (fpsbuff, countof(fpsbuff), "%2llu ms (%3llu fps)", (unsigned long long)howlong, (unsigned long long)LastCount); - rate_x = Width / textScale - ConFont->StringWidth(&fpsbuff[0]); - Clear (rate_x * textScale, 0, Width, ConFont->GetHeight() * textScale, GPalette.BlackIndex, 0); - DrawText (ConFont, CR_WHITE, rate_x, 0, (char *)&fpsbuff[0], + rate_x = Width / textScale - NewConsoleFont->StringWidth(&fpsbuff[0]); + Clear (rate_x * textScale, 0, Width, NewConsoleFont->GetHeight() * textScale, GPalette.BlackIndex, 0); + DrawText (NewConsoleFont, CR_WHITE, rate_x, 0, (char *)&fpsbuff[0], DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_KeepRatio, true, TAG_DONE); From e07d4130950bf8c3674a5eb7e86678a1f1e550d2 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 18 Mar 2019 23:46:13 +0100 Subject: [PATCH 6/7] - fixed: A pusher thinker must destroy itself if the point pusher/puller thing is gone. --- src/g_shared/a_pusher.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/g_shared/a_pusher.cpp b/src/g_shared/a_pusher.cpp index bd9a40e5f..92cb502f7 100644 --- a/src/g_shared/a_pusher.cpp +++ b/src/g_shared/a_pusher.cpp @@ -193,6 +193,11 @@ void DPusher::Tick () if (m_Type == p_push) { + if (m_Source == nullptr) + { + Destroy(); + return; + } // Seek out all pushable things within the force radius of this // point pusher. Crosses sectors, so use blockmap. From cda248df66c97b4d296ac1350cab50e0999cefba Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 19 Mar 2019 00:37:43 +0100 Subject: [PATCH 7/7] - localized some user-facing texts that were still string literals. --- src/c_cvars.cpp | 2 +- src/d_net.cpp | 8 +++ src/d_netinfo.cpp | 15 +++- src/g_game.cpp | 59 +++++++-------- src/m_cheat.cpp | 72 +++++++++++-------- src/m_misc.cpp | 3 +- .../zscript/actors/player/player_cheat.zs | 3 - 7 files changed, 95 insertions(+), 67 deletions(-) diff --git a/src/c_cvars.cpp b/src/c_cvars.cpp index bda309361..a62f2fa95 100644 --- a/src/c_cvars.cpp +++ b/src/c_cvars.cpp @@ -1855,7 +1855,7 @@ CCMD (toggle) val = var->GetGenericRep (CVAR_Bool); val.Bool = !val.Bool; var->SetGenericRep (val, CVAR_Bool); - Printf ("\"%s\" is \"%s\"\n", var->GetName(), + Printf ("\"%s\" = \"%s\"\n", var->GetName(), val.Bool ? "true" : "false"); } } diff --git a/src/d_net.cpp b/src/d_net.cpp index b1240a332..ec0a90deb 100644 --- a/src/d_net.cpp +++ b/src/d_net.cpp @@ -66,6 +66,7 @@ #include "i_time.h" #include "i_system.h" #include "vm.h" +#include "gstrings.h" EXTERN_CVAR (Int, disableautosave) EXTERN_CVAR (Int, autosavecount) @@ -2187,6 +2188,13 @@ void Net_DoCommand (int type, uint8_t **stream, int player) case DEM_GIVECHEAT: s = ReadString (stream); cht_Give (&players[player], s, ReadLong (stream)); + if (player != consoleplayer) + { + FString message = GStrings("TXT_X_CHEATS"); + message.Substitute("%s", players[player].userinfo.GetName()); + Printf("%s: give %s\n", message.GetChars(), s); + } + break; case DEM_TAKECHEAT: diff --git a/src/d_netinfo.cpp b/src/d_netinfo.cpp index 9c938f43b..6c449f852 100644 --- a/src/d_netinfo.cpp +++ b/src/d_netinfo.cpp @@ -49,6 +49,7 @@ #include "cmdlib.h" #include "serializer.h" #include "vm.h" +#include "gstrings.h" static FRandom pr_pickteam ("PickRandomTeam"); @@ -314,7 +315,7 @@ static void UpdateTeam (int pnum, int team, bool update) if ((dmflags2 & DF2_NO_TEAM_SWITCH) && (alwaysapplydmflags || deathmatch) && TeamLibrary.IsValidTeam (info->GetTeam())) { - Printf ("Team changing has been disabled!\n"); + Printf ("%s\n", GStrings("TXT_NO_TEAM_CHANGE")); return; } @@ -329,10 +330,18 @@ static void UpdateTeam (int pnum, int team, bool update) if (update && oldteam != team) { + FString message; if (TeamLibrary.IsValidTeam (team)) - Printf ("%s joined the %s team\n", info->GetName(), Teams[team].GetName ()); + { + message = GStrings("TXT_JOINED_TEAM"); + message.Substitute("%t", Teams[team].GetName()); + } else - Printf ("%s is now a loner\n", info->GetName()); + { + message = GStrings("TXT_LONER"); + } + message.Substitute("%s", info->GetName()); + Printf("%s\n", message.GetChars()); } // Let the player take on the team's color R_BuildPlayerTranslation (pnum); diff --git a/src/g_game.cpp b/src/g_game.cpp index cfdfc2a45..0f783ad07 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -1673,16 +1673,9 @@ void G_DoPlayerPop(int playernum) { playeringame[playernum] = false; - if (deathmatch) - { - Printf("%s left the game with %d frags\n", - players[playernum].userinfo.GetName(), - players[playernum].fragcount); - } - else - { - Printf("%s left the game\n", players[playernum].userinfo.GetName()); - } + FString message = GStrings(deathmatch? "TXT_LEFTWITHFRAGS" : "TXT_LEFTTHEGAME"); + message.Substitute("%s", players[playernum].userinfo.GetName()); + message.Substitute("%d", FStringf("%d", players[playernum].fragcount)); // [RH] Revert each player to their own view if spying through the player who left for (int ii = 0; ii < MAXPLAYERS; ++ii) @@ -1754,7 +1747,7 @@ static bool CheckSingleWad (const char *name, bool &printRequires, bool printwar { if (!printRequires) { - Printf ("This savegame needs these wads:\n%s", name); + Printf ("%s:\n%s", GStrings("TXT_SAVEGAMENEEDS"), name); } else { @@ -1790,6 +1783,12 @@ bool G_CheckSaveGameWads (FSerializer &arc, bool printwarn) return true; } +static void LoadGameError(const char *label, const char *append = "") +{ + FString message = GStrings(label); + message.Substitute("%s", savename); + Printf ("%s %s\n", message.GetChars(), append); +} void G_DoLoadGame () { @@ -1805,13 +1804,13 @@ void G_DoLoadGame () std::unique_ptr resfile(FResourceFile::OpenResourceFile(savename.GetChars(), true, true)); if (resfile == nullptr) { - Printf ("Could not read savegame '%s'\n", savename.GetChars()); + LoadGameError("TXT_COULDNOTREAD"); return; } FResourceLump *info = resfile->FindLump("info.json"); if (info == nullptr) { - Printf("'%s' is not a valid savegame: Missing 'info.json'.\n", savename.GetChars()); + LoadGameError("TXT_NOINFOJSON"); return; } @@ -1821,7 +1820,7 @@ void G_DoLoadGame () FSerializer arc(nullptr); if (!arc.OpenReader((const char *)data, info->LumpSize)) { - Printf("Failed to access savegame info\n"); + LoadGameError("TXT_FAILEDTOREADSG"); return; } @@ -1839,27 +1838,30 @@ void G_DoLoadGame () // have this information. if (engine.IsEmpty()) { - Printf("Savegame is from an incompatible version\n"); + LoadGameError("TXT_INCOMPATIBLESG"); } else { - Printf("Savegame is from another ZDoom-based engine: %s\n", engine.GetChars()); + LoadGameError("TXT_IOTHERENGINESG", engine.GetChars()); } return; } if (SaveVersion < MINSAVEVER || SaveVersion > SAVEVER) { - Printf("Savegame is from an incompatible version"); + FString message; if (SaveVersion < MINSAVEVER) { - Printf(": %d (%d is the oldest supported)", SaveVersion, MINSAVEVER); + message = GStrings("TXT_TOOOLDSG"); + message.Substitute("%e", FStringf("%d", MINSAVEVER)); } else { - Printf(": %d (%d is the highest supported)", SaveVersion, SAVEVER); + message = GStrings("TXT_TOONEWSG"); + message.Substitute("%e", FStringf("%d", SAVEVER)); } - Printf("\n"); + message.Substitute("%d", FStringf("%d", SaveVersion)); + LoadGameError(message); return; } @@ -1870,7 +1872,7 @@ void G_DoLoadGame () if (map.IsEmpty()) { - Printf("Savegame is missing the current map\n"); + LoadGameError("TXT_NOMAPSG"); return; } @@ -1886,14 +1888,14 @@ void G_DoLoadGame () info = resfile->FindLump("globals.json"); if (info == nullptr) { - Printf("'%s' is not a valid savegame: Missing 'globals.json'.\n", savename.GetChars()); + LoadGameError("TXT_NOGLOBALSJSON"); return; } data = info->CacheLump(); if (!arc.OpenReader((const char *)data, info->LumpSize)) { - Printf("Failed to access savegame info\n"); + LoadGameError("TXT_SGINFOERR"); return; } @@ -1959,20 +1961,19 @@ void G_SaveGame (const char *filename, const char *description) { if (sendsave || gameaction == ga_savegame) { - Printf ("A game save is still pending.\n"); - return; + Printf ("%s\n", GStrings("TXT_SAVEPENDING")); } else if (!usergame) { - Printf ("not in a saveable game\n"); + Printf ("%s\n", GStrings("TXT_NOTSAVEABLE")); } else if (gamestate != GS_LEVEL) { - Printf ("not in a level\n"); + Printf ("%s\n", GStrings("TXT_NOTINLEVEL")); } else if (players[consoleplayer].health <= 0 && !multiplayer) { - Printf ("player is dead in a single-player game\n"); + Printf ("%s\n", GStrings("TXT_SPPLAYERDEAD")); } else { @@ -2291,7 +2292,7 @@ void G_DoSaveGame (bool okForQuicksave, FString filename, const char *descriptio if (longsavemessages) Printf ("%s (%s)\n", GStrings("GGSAVED"), filename.GetChars()); else Printf ("%s\n", GStrings("GGSAVED")); } - else Printf(PRINT_HIGH, "Save failed\n"); + else Printf(PRINT_HIGH, "%s\n", GStrings("TXT_SAVEFAILED")); BackupSaveName = filename; diff --git a/src/m_cheat.cpp b/src/m_cheat.cpp index 6d47dd2fc..c8256dda4 100644 --- a/src/m_cheat.cpp +++ b/src/m_cheat.cpp @@ -64,7 +64,7 @@ void cht_DoMDK(player_t *player, const char *mod) { if (player->mo == NULL) { - Printf("What do you want to kill outside of a game?\n"); + Printf("%s\n", GStrings("TXT_WHAT_KILL")); } else if (!deathmatch) { @@ -94,7 +94,6 @@ void cht_DoCheat (player_t *player, int cheat) AActor *item; FString smsg; const char *msg = ""; - char msgbuild[32]; int i; // No cheating when not having a pawn attached. @@ -204,25 +203,25 @@ void cht_DoCheat (player_t *player, int cheat) case CHT_NOTARGET: player->cheats ^= CF_NOTARGET; if (player->cheats & CF_NOTARGET) - msg = "notarget ON"; + msg = GStrings("TXT_NOTARGET_ON"); else - msg = "notarget OFF"; + msg = GStrings("TXT_NOTARGET_OFF"); break; case CHT_ANUBIS: player->cheats ^= CF_FRIGHTENING; if (player->cheats & CF_FRIGHTENING) - msg = "\"Quake with fear!\""; + msg = GStrings("TXT_ANUBIS_ON"); else - msg = "No more ogre armor"; + msg = GStrings("TXT_ANUBIS_OFF"); break; case CHT_CHASECAM: player->cheats ^= CF_CHASECAM; if (player->cheats & CF_CHASECAM) - msg = "chasecam ON"; + msg = GStrings("TXT_CHASECAM_ON"); else - msg = "chasecam OFF"; + msg = GStrings("TXT_CHASECAM_OFF"); R_ResetViewInterpolation (); break; @@ -326,10 +325,18 @@ void cht_DoCheat (player_t *player, int cheat) { int killcount = primaryLevel->Massacre (cheat == CHT_MASSACRE2); // killough 3/22/98: make more intelligent about plural - // Ty 03/27/98 - string(s) *not* externalized - mysnprintf (msgbuild, countof(msgbuild), "%d %s%s Killed", killcount, - cheat==CHT_MASSACRE2 ? "Baddie" : "Monster", killcount==1 ? "" : "s"); - msg = msgbuild; + if (killcount == 1) + { + msg = GStrings(cheat == CHT_MASSACRE? "TXT_MONSTER_KILLED" : "TXT_BADDIE_KILLED"); + } + else + { + // Note: Do not use the language string directly as a format template! + smsg = GStrings(cheat == CHT_MASSACRE? "TXT_MONSTERS_KILLED" : "TXT_BADDIES_KILLED"); + FStringf countstr("%d", killcount); + smsg.Substitute("%d", countstr); + msg = smsg.GetChars(); + } } break; @@ -352,64 +359,64 @@ void cht_DoCheat (player_t *player, int cheat) { if (player->mo->IsKindOf("PlayerChunk")) { - Printf("Unable to resurrect. Player is no longer connected to its body.\n"); + Printf("%s\n", GStrings("TXT_NO_RESURRECT")); + return; } else { player->Resurrect(); - } } break; case CHT_GIMMIEA: cht_Give (player, "ArtiInvulnerability"); - msg = "Valador's Ring of Invunerability"; + msg = GStrings("TAG_ARTIINVULNERABILITY"); break; case CHT_GIMMIEB: cht_Give (player, "ArtiInvisibility"); - msg = "Shadowsphere"; + msg = GStrings("TAG_ARTIINVISIBILITY"); break; case CHT_GIMMIEC: cht_Give (player, "ArtiHealth"); - msg = "Quartz Flask"; + msg = GStrings("TAG_ARTIHEALTH"); break; case CHT_GIMMIED: cht_Give (player, "ArtiSuperHealth"); - msg = "Mystic Urn"; + msg = GStrings("TAG_ARTISUPERHEALTH"); break; case CHT_GIMMIEE: cht_Give (player, "ArtiTomeOfPower"); - msg = "Tyketto's Tome of Power"; + msg = GStrings("TAG_ARTITOMEOFPOWER"); break; case CHT_GIMMIEF: cht_Give (player, "ArtiTorch"); - msg = "Torch"; + msg = GStrings("TAG_ARTITORCH"); break; case CHT_GIMMIEG: cht_Give (player, "ArtiTimeBomb"); - msg = "Delmintalintar's Time Bomb of the Ancients"; + msg = GStrings("TAG_ARTIFIREBOMB"); break; case CHT_GIMMIEH: cht_Give (player, "ArtiEgg"); - msg = "Torpol's Morph Ovum"; + msg = GStrings("TAG_ARTIEGG"); break; case CHT_GIMMIEI: cht_Give (player, "ArtiFly"); - msg = "Inhilicon's Wings of Wrath"; + msg = GStrings("TAG_ARTIFLY"); break; case CHT_GIMMIEJ: cht_Give (player, "ArtiTeleport"); - msg = "Darchala's Chaos Device"; + msg = GStrings("TAG_ARTITELEPORT"); break; case CHT_GIMMIEZ: @@ -417,7 +424,7 @@ void cht_DoCheat (player_t *player, int cheat) { cht_Give (player, "artifacts"); } - msg = "All artifacts!"; + msg = GStrings("TAG_ALL_ARTIFACTS"); break; case CHT_TAKEWEAPS: @@ -444,9 +451,10 @@ void cht_DoCheat (player_t *player, int cheat) break; case CHT_MDK: - if (player->mo == NULL) + if (player->mo == nullptr) { - Printf ("What do you want to kill outside of a game?\n"); + Printf ("%s\n", GStrings("TXT_WHAT_KILL")); + return; } else if (!deathmatch) { @@ -512,7 +520,7 @@ void cht_DoCheat (player_t *player, int cheat) case CHT_CLEARFROZENPROPS: player->cheats &= ~(CF_FROZEN|CF_TOTALLYFROZEN); - msg = "Frozen player properties turned off"; + msg = GStrings("TXT_NOT_FROZEN"); break; case CHT_FREEZE: @@ -528,13 +536,17 @@ void cht_DoCheat (player_t *player, int cheat) break; } - if (!*msg) // [SO] Don't print blank lines! + if (!msg || !*msg) // [SO] Don't print blank lines! return; if (player == &players[consoleplayer]) Printf ("%s\n", msg); else if (cheat != CHT_CHASECAM) - Printf ("%s cheats: %s\n", player->userinfo.GetName(), msg); + { + FString message = GStrings("TXT_X_CHEATS"); + message.Substitute("%s", player->userinfo.GetName()); + Printf("%s: %s\n", message.GetChars(), msg); + } } FString cht_Morph(player_t *player, PClassActor *morphclass, bool quickundo) diff --git a/src/m_misc.cpp b/src/m_misc.cpp index 4b3438bc4..42938fb80 100644 --- a/src/m_misc.cpp +++ b/src/m_misc.cpp @@ -65,6 +65,7 @@ #include "gi.h" #include "gameconfigfile.h" +#include "gstrings.h" FGameConfigFile *GameConfig; @@ -511,7 +512,7 @@ void WritePNGfile (FileWriter *file, const uint8_t *buffer, const PalEntry *pale !M_AppendPNGText (file, "Software", software) || !M_FinishPNG (file)) { - Printf ("Could not create screenshot.\n"); + Printf ("%s\n", GStrings("TXT_SCREENSHOTERR")); } } diff --git a/wadsrc/static/zscript/actors/player/player_cheat.zs b/wadsrc/static/zscript/actors/player/player_cheat.zs index 506a60480..d1e8d2694 100644 --- a/wadsrc/static/zscript/actors/player/player_cheat.zs +++ b/wadsrc/static/zscript/actors/player/player_cheat.zs @@ -49,9 +49,6 @@ extend class PlayerPawn Class type; let player = self.player; - if (PlayerNumber() != consoleplayer) - A_Log(String.Format ("%s is a cheater: give %s\n", player.GetUserName(), name)); - if (player.mo == NULL || player.health <= 0) { return;