From d236ddca4db10b0c9c477da06eed1089ce67db15 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Thu, 8 Oct 2015 17:19:36 +0200 Subject: SHERLOCK: RT: multilingual cleanup + French text Moved people names to fixed text class Changed order of inventory names + inventory descriptions Fixed German umlauts Added French text --- engines/sherlock/tattoo/tattoo_fixed_text.cpp | 507 +++++++++++++++++++++++--- 1 file changed, 452 insertions(+), 55 deletions(-) (limited to 'engines/sherlock/tattoo/tattoo_fixed_text.cpp') diff --git a/engines/sherlock/tattoo/tattoo_fixed_text.cpp b/engines/sherlock/tattoo/tattoo_fixed_text.cpp index c9345e44d1..571a697153 100644 --- a/engines/sherlock/tattoo/tattoo_fixed_text.cpp +++ b/engines/sherlock/tattoo/tattoo_fixed_text.cpp @@ -27,23 +27,22 @@ namespace Sherlock { namespace Tattoo { -static const char *const FIXED_TEXT_ENGLISH[] = { +static const char *const fixedTextEN[] = { "Money", - "Card", - "Tobacco", - "Timetable", - "Summons", - "Foolscap", - "Damp Paper", - "Bull's Eye", - "Money", "Card", + "Card", + "Tobacco", "Tobacco", "Timetable", + "Timetable", + "Summons", "Summons", "Foolscap", "Foolscap", + "Damp Paper", + "Foolscap", + "Bull's Eye", "Bull's Eye Lantern", "Open", @@ -71,19 +70,19 @@ static const char *const FIXED_TEXT_ENGLISH[] = { "Holmes", "Jock", "Bull", - "Round", - "Turn Total", - "Dart", + "Round: %d", + "Turn Total: %d", + "Dart # %d", "to start", "Hit a key", "Press a key", - "bullseye", + "bullseye", // ?? "GAME OVER", "BUSTED", "Wins", - "Scored", - "points", - "Hit", + "Scored %d points", + "points", // ?? + "Hit %s %d", "Double", "Triple", @@ -106,65 +105,167 @@ static const char *const FIXED_TEXT_ENGLISH[] = { "Yes", "No", "Enter Password", - "Going East" + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", + "Dr. Watson", + "Mrs. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Police Constable Burns", + "Augustus Trimble", + "Police Constable Daley", + "Matron", + "Sister Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Police Constable Roach", + "James Dewar", + "Sergeant Jeremy Duncan", + "Inspector Gregson", + "Inspector Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "Mr. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Old Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Bartender", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professor Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "The Lascar", + "Parrot", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "A Patient", + "A Patient", + "Patron", + "Queen Victoria", + "Patient in white", + "Lush", + "Drunk", + "Prostitute", + "Mudlark", + "Grinder", + "Bouncer", + "Agnes Ratchet", + "Aloysius Ratchet", + "Real Estate Agent", + "Candy Clerk", + "Beadle", + "Prussian", + "Mrs. Rowbottom", + "Miss Lloyd-Jones", + "Tavern patron", + "User", + "Toby", + "Stationer", + "Law Clerk", + "Ministry Clerk", + "Bather", + "Maid", + "Lady Fanshawe", + "Sidney Ratchet", + "Boy", + "Patron", + "Constable Brit", + "Wagon Driver" }; -static const char *const FIXED_TEXT_GERMAN[] = { +// sharp-s : 0xE1 / octal 341 +// small a-umlaut: 0x84 / octal 204 +// small o-umlaut: 0x94 / octal 224 +// small u-umlaut: 0x81 / octal 201 +// large O-umlaut: 0x99 / octal 231 +static const char *const fixedTextDE[] = { "Geld", - "S. Holmes", - "Tabak", - "Plan", - "Aufforderg.", - "Blatt pap.", - "Dunstig pap", - "Handlampe", - "Geld", "S. Holmes", + "S. Holmes", + "Tabak", "Tabak", "Plan", + "Plan", + "Aufforderg.", "Aufforderg.", + "Blatt pap.", "Pergament", "Dunstig pap", + "Dunstig pap", + "Handlampe", "Handlampe", - "ffne", + "\231ffne", "Schau", "Rede", "Benutze", - "Journal", - "Inventory", - "Options", - "Losen", + "Tagebuch", + "Tasche", + "Optionen", + "L\224osen", "mit", "Keine Wirkung...", - "Diese Person weic im Augenblick nichts zu berichten.", + "Diese Person wei\341 im Augenblick nichts zu berichten.", + "Picked up", // <-- ?? "Seite %d", - "Schliecen", - "Lessen", + "Schlie\341en", + "Lessen", // <-- "In Datei sichern", "Suche abbrechen", - "Rbckwarts suchen ", + "R\201ckw\204rts suchen ", "Vorwarts suchen ", "Text nicht gefunden", "Holmes", "Jock", "Bull", - "Runde", - "Gesamt", - "Pfeil", + "Runde: %d", + "Gesamt: %d", + "Pfeil # %d", "zum Starten", - "Taste dracken", - "Taste dracken", - "Bullseye", - "SPIEL BEENDET", - "VERLOREN", - "Gewinnt", - "Erzielte", - "Punkte", - "Treffer", + "Taste dr\201cken", + "Taste dr\201cken", + "Bullseye", // ?? + "SPIEL BEENDET!", + "VERLOREN!", + "Gewinnt!", // "Holmes Gewinnt!", "%s Gewinnt!" + "Erzielte %d Punkte", + "Punkte", // ?? + "Treffer %s %d", "Doppel", "Dreifach", @@ -177,7 +278,7 @@ static const char *const FIXED_TEXT_GERMAN[] = { "Soundeffekte", "Voices", "Textfenster", - "Transparente Menbs", + "Transparente Men\201s", "Schriftart andern", "Aus", "An", @@ -186,19 +287,315 @@ static const char *const FIXED_TEXT_GERMAN[] = { "Sind Sie sicher ?", "Ja", "Nein", - "Pacwort eingeben", - "Going East" + "Pa\341wort eingeben", + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", // note: People names were not translated in the German interpreter + "Dr. Watson", + "Mrs. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Police Constable Burns", + "Augustus Trimble", + "Police Constable Daley", + "Matron", + "Sister Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Police Constable Roach", + "James Dewar", + "Sergeant Jeremy Duncan", + "Inspector Gregson", + "Inspector Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "Mr. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Old Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Bartender", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professor Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "The Lascar", + "Parrot", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "A Patient", + "A Patient", + "Patron", + "Queen Victoria", + "Patient in white", + "Lush", + "Drunk", + "Prostitute", + "Mudlark", + "Grinder", + "Bouncer", + "Agnes Ratchet", + "Aloysius Ratchet", + "Real Estate Agent", + "Candy Clerk", + "Beadle", + "Prussian", + "Mrs. Rowbottom", + "Miss Lloyd-Jones", + "Tavern patron", + "User", + "Toby", + "Stationer", + "Law Clerk", + "Ministry Clerk", + "Bather", + "Maid", + "Lady Fanshawe", + "Sidney Ratchet", + "Boy", + "Patron", + "Constable Brit", + "Wagon Driver" +}; + +// small a w/ accent grave: 0x85 / octal 205 +// small e w/ accent acute: 0x82 / octal 202 +// small e w/ accent grave: 0x8A / octal 212 +// small e w/ circonflexe: 0x88 / octal 210 +// small cedilla: 0x87 / octal 207 +static const char *const fixedTextFR[] = { + "Argent", + "Argent", + "S. Holmes", + "S. Holmes", + "Tabac", + "Tabac", + "Horaire", + "Horaire", + "Convocation", + "Convocation", + "Feuille", + "Feuille", + "F. humide", + "Feuille", + "Lanterne", + "Lanterne", + + "Ouvrir", + "Regarder", + "Parler", + "Utiliser", + "Journal", // <-- + "Inventaire", + "Options", + "R\202soudre", + "avec", + "Sans effet...", + "Cette personne n'a rien \205 ajouter pour le moment.", + "Picked up", // <-- ?? + + "Page %d", + "Fermer", + "Lessen", // <-- + "Sauvegarder", + "Annuler ", + "Chercher avant", + "Chercher apr\212s", + "Texte introuvable !", + + "Holmes", + "Jock", + "Bull", + "Tour: %d", + "Total: %d", + "Fl\202chette # %d", + "pour commencer", + "Appuyez sur C", + "Appuyez sur C", + "Bullseye", // ?? + "FIN DE LA PARTIE!", // original: "Fin de la partie!" + "FIASCO!", + "Gagnant!", // "Holmes Gagnant!", "%s Gagnant!" + "Total des points: %d", + "Punkte", // ?? + "Treffer %s %d", + "double", + "triple", + + "Mouillez", + "Puis", + "Chauffez", + "Charger", + "Sauvegarder", + "Musique", + "Sons", + "Voix", + "Fen\210tres de texte", // 0x88 + "Menu Transparent", + "Changer la fonte", + "Aus", // ??? + "An", // ??? + "Quitter", + "Voulez-vous quitter?", + "Sind Sie sicher ?", // ??? + "Oui", + "Non", + "Entrez le mot de passe", + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", + "Dr. Watson", + "Mme. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Sergent Burns", + "Augustus Trimble", + "Sergent Daley", + "Infirmi\212re chef", + "Mme. Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Sergent Roach", + "James Dewar", + "Sergent Jeremy Duncan", + "Inspecteur Gregson", + "Inspecteur Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "M. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Serveur", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professeur Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "Le Lascar", + "Oiseau", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "Patient", + "Patient", + "Client", + "Queen Victoria", + "Patient en blanc", + "Ivrogne", + "Ivrogne", + "Belle femme", + "Mudlark", + "Broyeur", + "Videur", + "Agnes Ratchet", + "Aloysius Ratchet", + "Immobilier", + "Gar\207on", + "Beadle", + "Prussian", + "Mme. Rowbottom", + "Mme Lloyd-Jones", + "Tavern Client", + "User", + "Toby", + "Papeterie", + "Law Clerc", + "Ministry Employ\202", + "Clint du thermes", + "Bonne", + "Lady Fanshawe", + "Sidney Ratchet", + "Gar\207on", + "Client", + "Sergent Brit", + "Wagon Driver" +}; + +// TODO: There also was a Spanish version of Sherlock Holmes 2 +static const FixedTextLanguageEntry fixedTextLanguages[] = { + { Common::DE_DEU, fixedTextDE }, + // { Common::ES_ESP, fixedTextES }, + { Common::EN_ANY, fixedTextEN }, + { Common::FR_FRA, fixedTextFR }, + { Common::UNK_LANG, fixedTextEN } }; TattooFixedText::TattooFixedText(SherlockEngine *vm) : FixedText(vm) { - if (vm->getLanguage() == Common::DE_DEU) - _fixedText = FIXED_TEXT_GERMAN; - else - _fixedText = FIXED_TEXT_ENGLISH; + // Figure out which fixed texts to use + Common::Language curLanguage = _vm->getLanguage(); + + const FixedTextLanguageEntry *curLanguageEntry = fixedTextLanguages; + + while (curLanguageEntry->language != Common::UNK_LANG) { + if (curLanguageEntry->language == curLanguage) + break; // found current language + curLanguageEntry++; + } + _curLanguageEntry = curLanguageEntry; } const char *TattooFixedText::getText(int fixedTextId) { - return _fixedText[fixedTextId]; + return _curLanguageEntry->fixedTextArray[fixedTextId]; } const Common::String TattooFixedText::getActionMessage(FixedTextActionId actionId, int messageIndex) { -- cgit v1.2.3