OSDN Git Service

update year to 2022
[jnethack/source.git] / src / sounds.c
index f08fe9d..e3ffc9d 100644 (file)
@@ -1,7 +1,12 @@
-/* NetHack 3.6 sounds.c        $NHDT-Date: 1446713641 2015/11/05 08:54:01 $  $NHDT-Branch: master $:$NHDT-Revision: 1.74 $ */
+/* NetHack 3.6 sounds.c        $NHDT-Date: 1570844005 2019/10/12 01:33:25 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.83 $ */
 /*      Copyright (c) 1989 Janet Walz, Mike Threepoint */
 /* NetHack may be freely redistributed.  See license for details. */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2022            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL boolean FDECL(mon_is_gecko, (struct monst *));
@@ -37,23 +42,44 @@ dosounds()
     hallu = Hallucination ? 1 : 0;
 
     if (level.flags.nfountains && !rn2(400)) {
+#if 0 /*JP:T*/
         static const char *const fountain_msg[4] = {
             "bubbling water.", "water falling on coins.",
             "the splashing of a naiad.", "a soda fountain!",
+#else
+        static const char *const fountain_msg[4] = {
+            "\83S\83{\83S\83{\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", "\83s\83`\83\83\83s\83`\83\83\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D",
+            "\83o\83V\83\83\83o\83V\83\83\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", "\92Y\8e_\88ù\97¿\82Ì\83V\83\85\81[\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I",
+#endif
         };
         You_hear1(fountain_msg[rn2(3) + hallu]);
     }
     if (level.flags.nsinks && !rn2(300)) {
+#if 0 /*JP:T*/
         static const char *const sink_msg[3] = {
             "a slow drip.", "a gurgling noise.", "dishes being washed!",
+#else
+        static const char *const sink_msg[3] = {
+            "\90\85\82ª\82Û\82½\82Û\82½\82Æ\97\8e\82¿\82é\89¹\82ð\95·\82¢\82½\81D",
+            "\82ª\82ç\82ª\82ç\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D",
+            "\8eM\82ð\90ô\82¤\89¹\82ð\95·\82¢\82½\81I",
+#endif
         };
         You_hear1(sink_msg[rn2(2) + hallu]);
     }
     if (level.flags.has_court && !rn2(200)) {
+#if 0 /*JP:T*/
         static const char *const throne_msg[4] = {
             "the tones of courtly conversation.",
             "a sceptre pounded in judgment.",
             "Someone shouts \"Off with %s head!\"", "Queen Beruthiel's cats!",
+#else
+        static const char *const throne_msg[4] = {
+            "\8fã\95i\82È\98b\82µ\90º\82ð\95·\82¢\82½\81D",
+            "\8dÙ\94»\82Åâ\94\82ð\93Ë\82­\89¹\82ð\95·\82¢\82½\81D",
+            "\82¾\82ê\82©\82ª\81u\82»\82Ì\82à\82Ì\82Ì\8eñ\82ð\82Í\82Ë\82æ\81I\81v\82Æ\8b©\82Ô\90º\82ð\95·\82¢\82½\81D",
+            "\83x\83\8b\83V\83G\83\8b\89¤\94Ü\82Ì\94L\82Ì\90º\82ð\95·\82¢\82½\81I",
+#endif
         };
         for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
             if (DEADMONSTER(mtmp))
@@ -73,9 +99,16 @@ dosounds()
         }
     }
     if (level.flags.has_swamp && !rn2(200)) {
+#if 0 /*JP:T*/
         static const char *const swamp_msg[3] = {
             "hear mosquitoes!", "smell marsh gas!", /* so it's a smell...*/
             "hear Donald Duck!",
+#else
+        static const char *const swamp_msg[3] = {
+            "\89á\82Ì\89H\89¹\82ð\95·\82¢\82½\81D",
+            "\95\85\82Á\82½\93õ\82¢\82ª\82µ\82½\81I",       /* so it's a smell...*/
+            "\83h\83i\83\8b\83h\83_\83b\83N\82Ì\90º\82ð\95·\82¢\82½\81I",
+#endif
         };
         You1(swamp_msg[rn2(2) + hallu]);
         return;
@@ -106,20 +139,35 @@ dosounds()
 #endif /* AZTEC_C_WORKAROUND */
                 {
                     if (gold_in_vault)
+#if 0 /*JP:T*/
                         You_hear(!hallu
                                      ? "someone counting money."
                                      : "the quarterback calling the play.");
+#else
+                        You_hear(!hallu
+                                 ? "\92N\82©\82ª\82¨\8bà\82ð\90\94\82¦\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D"
+                                 : "\83N\83H\81[\83^\83o\83b\83N\82ª\8ew\8e¦\82ð\82·\82é\90º\82ð\95·\82¢\82½\81D");
+#endif
                     else
+/*JP
                         You_hear("someone searching.");
+*/
+                        You_hear("\92N\82©\82ª\91{\8dõ\82µ\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 }
-                /* fall into... (yes, even for hallucination) */
             }
+                /*FALLTHRU*/
             case 0:
+/*JP
                 You_hear("the footsteps of a guard on patrol.");
+*/
+                You_hear("\8cx\94õ\88õ\82Ì\83p\83g\83\8d\81[\83\8b\82·\82é\89¹\82ð\95·\82¢\82½\81D");
                 break;
             case 2:
+/*JP
                 You_hear("Ebenezer Scrooge!");
+*/
+                You_hear("\82±\82¿\8bT\82Ì\97¼\82³\82ñ\82Ì\90º\82ð\95·\82¢\82½\81I");
                 break;
             }
         return;
@@ -132,14 +180,25 @@ dosounds()
                 && mon_in_room(mtmp, BEEHIVE)) {
                 switch (rn2(2) + hallu) {
                 case 0:
+/*JP
                     You_hear("a low buzzing.");
+*/
+                    You_hear("\82Ô\81[\82ñ\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 case 1:
+/*JP
                     You_hear("an angry drone.");
+*/
+                    You_hear("\8b»\95±\82µ\82½\97Y\83o\83`\82Ì\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 case 2:
+#if 0 /*JP:T*/
                     You_hear("bees in your %sbonnet!",
                              uarmh ? "" : "(nonexistent) ");
+#else
+                    You_hear("\83n\83`\82ª\82 \82È\82½\82Ì\96X\8eq%s\82Ì\92\86\82É\82¢\82é\89¹\82ð\95·\82¢\82½\81I",
+                             uarmh ? "" : "(\94í\82Á\82Ä\82È\82¢\82¯\82Ç)");
+#endif
                     break;
                 }
                 return;
@@ -152,19 +211,34 @@ dosounds()
                 continue;
             if ((is_undead(mtmp->data) || is_vampshifter(mtmp))
                 && mon_in_room(mtmp, MORGUE)) {
+#if 0 /*JP*/
                 const char *hair = body_part(HAIR); /* hair/fur/scales */
+#endif
 
                 switch (rn2(2) + hallu) {
                 case 0:
+/*JP
                     You("suddenly realize it is unnaturally quiet.");
+*/
+                    You("\95s\8e©\91R\82È\82­\82ç\82¢\90Ã\82©\82È\82Ì\82É\8bC\82Ã\82¢\82½\81D");
                     break;
                 case 1:
+#if 0 /*JP:T*/
                     pline_The("%s on the back of your %s %s up.", hair,
                               body_part(NECK), vtense(hair, "stand"));
+#else
+                    pline("\82 \82È\82½\82Ì%s\82Ì\82¤\82µ\82ë\82Ì%s\82ª\8bt\97§\82Á\82½\81D",
+                          body_part(NECK), body_part(HAIR));
+#endif
                     break;
                 case 2:
+#if 0 /*JP:T*/
                     pline_The("%s on your %s %s to stand up.", hair,
                               body_part(HEAD), vtense(hair, "seem"));
+#else
+                    pline("\82 \82È\82½\82Ì%s\82Ì%s\82Í\8bt\97§\82Á\82½\81D",
+                          body_part(HEAD), body_part(HAIR));
+#endif
                     break;
                 }
                 return;
@@ -173,8 +247,15 @@ dosounds()
     }
     if (level.flags.has_barracks && !rn2(200)) {
         static const char *const barracks_msg[4] = {
+#if 0 /*JP:T*/
             "blades being honed.", "loud snoring.", "dice being thrown.",
             "General MacArthur!",
+#else
+            "\90n\95¨\82ð\8c¤\82®\89¹\82ð\95·\82¢\82½\81D",
+            "\91å\82«\82È\82¢\82Ñ\82«\82ð\95·\82¢\82½\81D",
+            "\83_\83C\83X\82ª\90U\82ç\82ê\82é\89¹\82ð\95·\82¢\82½\81D",
+            "\83}\83b\83J\81[\83T\81[\8f«\8cR\82Ì\90º\82ð\95·\82¢\82½\81I",
+#endif
         };
         int count = 0;
 
@@ -196,8 +277,14 @@ dosounds()
     }
     if (level.flags.has_zoo && !rn2(200)) {
         static const char *const zoo_msg[3] = {
+#if 0 /*JP:T*/
             "a sound reminiscent of an elephant stepping on a peanut.",
             "a sound reminiscent of a seal barking.", "Doctor Dolittle!",
+#else
+            "\8fÛ\82ª\83s\81[\83i\83b\83c\82Ì\8fã\82Å\97x\82é\82æ\82¤\82È\89¹\82ð\95·\82¢\82½\81D",
+            "\83A\83V\83J\82ª\96i\82¦\82é\82æ\82¤\82È\89¹\82ð\95·\82¢\82½\81D",
+            "\83h\83\8a\83g\83\8b\90æ\90\82Ì\90º\82ð\95·\82¢\82½\81I",
+#endif
         };
         for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
             if (DEADMONSTER(mtmp))
@@ -218,8 +305,14 @@ dosounds()
         if (tended_shop(sroom)
             && !index(u.ushops, (int) (ROOM_INDEX(sroom) + ROOMOFFSET))) {
             static const char *const shop_msg[3] = {
+#if 0 /*JP:T*/
                 "someone cursing shoplifters.",
                 "the chime of a cash register.", "Neiman and Marcus arguing!",
+#else
+                "\92N\82©\82ª\93D\96_\82ð\82Ì\82Ì\82µ\82é\90º\82ð\95·\82¢\82½\81D",
+                "\83\8c\83W\82Ì\83`\81[\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D",
+                "\83C\83g\81[\82Æ\83\88\81[\83J\83h\81[\82Ì\8bc\98_\82ð\95·\82¢\82½\81I",
+#endif
             };
             You_hear1(shop_msg[rn2(2) + hallu]);
         }
@@ -247,9 +340,16 @@ dosounds()
                care if telepathy or extended detection reveals that the
                priest is not currently standing on the altar; he's mobile). */
             static const char *const temple_msg[] = {
+#if 0 /*JP:T*/
                 "*someone praising %s.", "*someone beseeching %s.",
                 "#an animal carcass being offered in sacrifice.",
                 "*a strident plea for donations.",
+#else
+                "*\92N\82©\82ª%s\82ð\8e^\94ü\82µ\82Ä\82¢\82é\82Ì\82ð\95·\82¢\82½\81D",
+                "*\92N\82©\82ª%s\82ð\94M\96]\82µ\82Ä\82¢\82é\82Ì\82ð\95·\82¢\82½\81D",
+                "#\93®\95¨\82Ì\8e\80\91Ì\82ð\90\82¯æÑ\82É\95ù\82°\82é\90º\82ð\95·\82¢\82½\81D",
+                "*\8e·\9dX\82É\8añ\95t\82ð\97v\8b\81\82µ\82Ä\82¢\82é\82Ì\82ð\95·\82¢\82½\81D",
+#endif
             };
             const char *msg;
             int trycount = 0, ax = EPRI(mtmp)->shrpos.x,
@@ -265,7 +365,11 @@ dosounds()
                     continue;
                 break; /* msg is acceptable */
             } while (++trycount < 50);
+#if 0 /*JP*/
             while (!letter(*msg))
+#else
+            while (*msg == '*' || *msg == '#')
+#endif
                 ++msg; /* skip control flags */
             if (index(msg, '%'))
                 You_hear(msg, halu_gname(EPRI(mtmp)->shralign));
@@ -285,11 +389,19 @@ dosounds()
         /* and don't produce silly effects when she's clearly visible */
         if (mtmp && (hallu || !canseemon(mtmp))) {
             static const char *const ora_msg[5] = {
+#if 0 /*JP:T*/
                 "a strange wind.",     /* Jupiter at Dodona */
                 "convulsive ravings.", /* Apollo at Delphi */
                 "snoring snakes.",     /* AEsculapius at Epidaurus */
                 "someone say \"No more woodchucks!\"",
                 "a loud ZOT!" /* both rec.humor.oracle */
+#else
+                "\8aï\96­\82È\95\97\82Ì\89¹\82ð\95·\82¢\82½\81D",
+                "\94¼\8b\97\90\82Ì\90º\82ð\95·\82¢\82½\81D",
+                "\8eÖ\82Ì\82¢\82Ñ\82«\82ð\95·\82¢\82½\81D",
+                "\92N\82©\82ª\81u\82à\82¤\83E\83b\83h\83`\83\83\83b\83N\82Í\82¢\82ç\82È\82¢\81I\81v\82Æ\8c¾\82Á\82Ä\82¢\82é\90º\82ð\95·\82¢\82½\81D",
+                "\91å\82«\82È\82y\82n\82s\82ð\95·\82¢\82½\81I"
+#endif
             };
             You_hear1(ora_msg[rn2(3) + hallu * 2]);
         }
@@ -298,12 +410,56 @@ dosounds()
 }
 
 static const char *const h_sounds[] = {
+#if 0 /*JP:T*/
     "beep",   "boing",   "sing",   "belche", "creak",   "cough",
     "rattle", "ululate", "pop",    "jingle", "sniffle", "tinkle",
     "eep",    "clatter", "hum",    "sizzle", "twitter", "wheeze",
     "rustle", "honk",    "lisp",   "yodel",  "coo",     "burp",
     "moo",    "boom",    "murmur", "oink",   "quack",   "rumble",
     "twang",  "bellow",  "toot",   "gargle", "hoot",    "warble"
+#else
+    "\83s\81[\83b\82Æ\96Â\82¢\82½",
+    "\91\9b\82¬\82½\82Ä\82½",
+    "\89Ì\82Á\82½",
+    "\82°\82Á\82Õ\82ð\82µ\82½",
+    "\83L\81[\83L\81[\82Æ\96Â\82¢\82½",
+    "\82¹\82«\8d\9e\82ñ\82¾",
+
+    "\83J\83^\83J\83^\96Â\82Á\82½",
+    "\83E\83H\83\93\83E\83H\83\93\96Â\82¢\82½",
+    "\83|\83\93\82Æ\96Â\82Á\82½",
+    "\83`\83\83\83\8a\83\93\82Æ\96Â\82Á\82½",
+    "\83N\83\93\83N\83\93\96Â\82¢\82½",
+    "\83`\83\8a\83\93\83`\83\8a\83\93\82Æ\96Â\82Á\82½",
+
+    "\83C\81[\83b\82Æ\96Â\82¢\82½",
+    "\83J\83`\83\83\83J\83`\83\83\89¹\82ð\97§\82Ä\82½",
+    "\83n\83~\83\93\83O\82µ\82½",
+    "\83W\83\85\81[\83b\82Æ\89¹\82ð\97§\82Ä\82½",
+    "\83s\83\88\83s\83\88\96Â\82¢\82½",
+    "\83[\83C\83[\83C\91§\82ð\82µ\82½",
+
+    "\83J\83T\83J\83T\89¹\82ð\97§\82Ä\82½",
+    "\8cx\93J\82ð\96Â\82ç\82µ\82½",
+    "\90ã\91«\82ç\82¸\82É\82µ\82á\82×\82Á\82½",
+    "\83\88\81[\83f\83\8b\82ð\89Ì\82Á\82½",
+    "\83N\81[\83N\81[\96Â\82¢\82½",
+    "\82°\82Á\82Õ\82ð\82µ\82½",
+
+    "\83\82\81[\82Æ\96Â\82¢\82½",
+    "\94\9a\94­\89¹\82ð\8b¿\82©\82¹\82½",
+    "\83u\83c\83u\83c\82Â\82Ô\82â\82¢\82½",
+    "\83u\81[\83u\81[\96Â\82¢\82½",
+    "\83N\83\8f\83b\83N\83\8f\83b\82Æ\96Â\82¢\82½",
+    "\83S\83\8d\83S\83\8d\96Â\82Á\82½",
+
+    "\83|\83\8d\83\8d\83\93\82Æ\96Â\82Á\82½",
+    "\82Ç\82È\82Á\82½",
+    "\83\89\83b\83p\82Ì\89¹\82ð\96Â\82ç\82µ\82½",
+    "\83K\83\89\83K\83\89\90º\82ð\8fo\82µ\82½",
+    "\83z\81[\83z\81[\96Â\82¢\82½",
+    "\82³\82¦\82¸\82Á\82½"
+#endif
 };
 
 const char *
@@ -315,35 +471,65 @@ register struct monst *mtmp;
     switch (mtmp->data->msound) {
     case MS_MEW:
     case MS_HISS:
+/*JP
         ret = "hiss";
+*/
+        ret = "\83V\81[\83b\82Æ\96Â\82¢\82½";
         break;
     case MS_BARK:
     case MS_GROWL:
+/*JP
         ret = "growl";
+*/
+        ret = "\82Í\82°\82µ\82­\96i\82¦\82½";
         break;
     case MS_ROAR:
+/*JP
         ret = "roar";
+*/
+        ret = "\96i\82¦\82½";
         break;
     case MS_BUZZ:
+/*JP
         ret = "buzz";
+*/
+        ret = "\83u\81[\83b\82Æ\96Â\82¢\82½";
         break;
     case MS_SQEEK:
+/*JP
         ret = "squeal";
+*/
+        ret = "\83L\81[\83L\81[\96Â\82¢\82½";
         break;
     case MS_SQAWK:
+/*JP
         ret = "screech";
+*/
+        ret = "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½";
         break;
     case MS_NEIGH:
+/*JP
         ret = "neigh";
+*/
+        ret = "\82¢\82È\82È\82¢\82½";
         break;
     case MS_WAIL:
+/*JP
         ret = "wail";
+*/
+        ret = "\94ß\82µ\82­\96Â\82¢\82½";
         break;
     case MS_SILENT:
+/*JP
         ret = "commotion";
+*/
+        ret = "\8b»\95±\82µ\82½";
         break;
     default:
+/*JP
         ret = "scream";
+*/
+        ret = "\8bà\90Ø\82è\90º\82ð\82 \82°\82½";
     }
     return ret;
 }
@@ -364,7 +550,10 @@ register struct monst *mtmp;
     else
         growl_verb = growl_sound(mtmp);
     if (growl_verb) {
+/*JP
         pline("%s %s!", Monnam(mtmp), vtense((char *) 0, growl_verb));
+*/
+        pline("%s\82Í%s\81I", Monnam(mtmp), growl_verb);
         if (context.run)
             nomul(0);
         wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 18);
@@ -387,27 +576,48 @@ register struct monst *mtmp;
     else
         switch (mtmp->data->msound) {
         case MS_MEW:
-            yelp_verb = "yowl";
+/*JP
+            yelp_verb = (!Deaf) ? "yowl" : "arch";
+*/
+            yelp_verb = (!Deaf) ? "\94ß\82µ\82­\96Â\82¢\82½" : "\8b|\82È\82è\82É\82È\82Á\82½";
             break;
         case MS_BARK:
         case MS_GROWL:
-            yelp_verb = "yelp";
+/*JP
+            yelp_verb = (!Deaf) ? "yelp" : "recoil";
+*/
+            yelp_verb = (!Deaf) ? "\83L\83\83\83\93\83L\83\83\83\93\96Â\82¢\82½" : "\90K\8d\9e\82Ý\82µ\82½";
             break;
         case MS_ROAR:
-            yelp_verb = "snarl";
+/*JP
+            yelp_verb = (!Deaf) ? "snarl" : "bluff";
+*/
+            yelp_verb = (!Deaf) ? "\82¤\82È\82Á\82½" : "\82â\82¹\89ä\96\9d\82µ\82½";
             break;
         case MS_SQEEK:
-            yelp_verb = "squeal";
+/*JP
+            yelp_verb = (!Deaf) ? "squeal" : "quiver";
+*/
+            yelp_verb = (!Deaf) ? "\83L\81[\83L\81[\96Â\82¢\82½" : "\90k\82¦\82½";
             break;
         case MS_SQAWK:
-            yelp_verb = "screak";
+/*JP
+            yelp_verb = (!Deaf) ? "screak" : "thrash";
+*/
+            yelp_verb = (!Deaf) ? "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½" : "\82Ì\82½\82¤\82¿\89ñ\82Á\82½";
             break;
         case MS_WAIL:
-            yelp_verb = "wail";
+/*JP
+            yelp_verb = (!Deaf) ? "wail" : "cringe";
+*/
+            yelp_verb = (!Deaf) ? "\94ß\82µ\82­\96Â\82¢\82½" : "\90g\82ð\82·\82­\82ß\82½";
             break;
         }
     if (yelp_verb) {
+/*JP
         pline("%s %s!", Monnam(mtmp), vtense((char *) 0, yelp_verb));
+*/
+        pline("%s\82Í%s\81I", Monnam(mtmp), yelp_verb);
         if (context.run)
             nomul(0);
         wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 12);
@@ -431,17 +641,29 @@ register struct monst *mtmp;
         switch (mtmp->data->msound) {
         case MS_MEW:
         case MS_GROWL:
+/*JP
             whimper_verb = "whimper";
+*/
+            whimper_verb = "\83N\83\93\83N\83\93\96Â\82¢\82½";
             break;
         case MS_BARK:
+/*JP
             whimper_verb = "whine";
+*/
+            whimper_verb = "\83N\81[\83\93\82Æ\96Â\82¢\82½";
             break;
         case MS_SQEEK:
+/*JP
             whimper_verb = "squeal";
+*/
+            whimper_verb = "\83L\81[\83L\81[\96Â\82¢\82½";
             break;
         }
     if (whimper_verb) {
+/*JP
         pline("%s %s.", Monnam(mtmp), vtense((char *) 0, whimper_verb));
+*/
+        pline("%s\82Í%s\81D", Monnam(mtmp), whimper_verb);
         if (context.run)
             nomul(0);
         wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 6);
@@ -463,7 +685,10 @@ register struct monst *mtmp;
     else if (mtmp->data->msound >= MS_HUMANOID) {
         if (!canspotmon(mtmp))
             map_invisible(mtmp->mx, mtmp->my);
+/*JP
         verbalize("I'm hungry.");
+*/
+        verbalize("\82Í\82ç\82Ø\82±\82¾\81D");
     }
 }
 
@@ -494,9 +719,9 @@ register struct monst *mtmp;
     char verbuf[BUFSZ];
     register const char *pline_msg = 0, /* Monnam(mtmp) will be prepended */
         *verbl_msg = 0,                 /* verbalize() */
-            *verbl_msg_mcan = 0;        /* verbalize() if cancelled */
+        *verbl_msg_mcan = 0;            /* verbalize() if cancelled */
     struct permonst *ptr = mtmp->data;
-    int msound = ptr->msound;
+    int msound = ptr->msound, gnomeplan = 0;
 
     /* presumably nearness and sleep checks have already been made */
     if (Deaf)
@@ -512,8 +737,9 @@ register struct monst *mtmp;
         msound = mons[genus(monsndx(ptr), 1)].msound;
     /* some normally non-speaking types can/will speak if hero is similar */
     else if (msound == MS_ORC         /* note: MS_ORC is same as MS_GRUNT */
-             && (same_race(ptr, youmonst.data)           /* current form, */
-                 || same_race(ptr, &mons[Race_switch]))) /* unpoly'd form */
+             && ((same_race(ptr, youmonst.data)          /* current form, */
+                  || same_race(ptr, &mons[Race_switch])) /* unpoly'd form */
+                 || Hallucination))
         msound = MS_HUMANOID;
     /* silliness, with slight chance to interfere with shopping */
     else if (Hallucination && mon_is_gecko(mtmp))
@@ -542,7 +768,10 @@ register struct monst *mtmp;
         } else {
             /* approximation of GEICO's advertising slogan (it actually
                concludes with "save you 15% or more on car insurance.") */
+/*JP
             Sprintf(verbuf, "15 minutes could save you 15 %s.",
+*/
+            Sprintf(verbuf, "15\95ª\92¸\82¯\82ê\82Î15%s\90ß\96ñ\82Å\82«\82Ü\82·\81D",
                     currency(15L)); /* "zorkmids" */
             verbl_msg = verbuf;
         }
@@ -556,18 +785,29 @@ register struct monst *mtmp;
         boolean nightchild =
             (Upolyd && (u.umonnum == PM_WOLF || u.umonnum == PM_WINTER_WOLF
                         || u.umonnum == PM_WINTER_WOLF_CUB));
+#if 0 /*JP*/
         const char *racenoun =
             (flags.female && urace.individual.f)
                 ? urace.individual.f
                 : (urace.individual.m) ? urace.individual.m : urace.noun;
+#else
+        const char *racenoun = (flags.female) ? "\82 \82È\82½" : "\82¨\82Ü\82¦" ;
+#endif
 
         if (mtmp->mtame) {
             if (kindred) {
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "Good %s to you Master%s",
                         isnight ? "evening" : "day",
                         isnight ? "!" : ".  Why do we not rest?");
+#else
+                Sprintf(verbuf, "\82²\8eå\90l\97l\81C%s%s",
+                        isnight ? "\82±\82ñ\82Î\82ñ\82Í" : "\82±\82ñ\82É\82¿\82Í",
+                        isnight ? "\81I" : "\81D\82¨\8bx\82Ý\82É\82È\82è\82Ü\82¹\82ñ\82©\81H");
+#endif
                 verbl_msg = verbuf;
             } else {
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "%s%s",
                         nightchild ? "Child of the night, " : "",
                         midnight()
@@ -575,37 +815,70 @@ register struct monst *mtmp;
                          : isnight
                           ? "I beg you, help me satisfy this growing craving!"
                           : "I find myself growing a little weary.");
+#else
+                Sprintf(verbuf,"%s%s",
+                        nightchild ? "\96é\82Ì\8ee\82æ\81C" : "",
+                        midnight()
+                        ? "\8e\84\82Í\82±\82ê\88È\8fã\8a\89\96]\82ð\97}\82¦\82ç\82ê\82È\82¢\81I"
+                        : isnight
+                         ? "\82Ó\82­\82ê\82 \82ª\82é\8a\89\96]\82ð\96\9e\82½\82·\82Ì\82ð\8f\95\82¯\82Ä\82­\82ê\82È\82¢\82©\81H\97\8a\82Þ\81I"
+                         : "\8e\84\82Í\8f­\81X\94æ\82ê\82½\82æ\82¤\82¾\81D");
+#endif
                 verbl_msg = verbuf;
             }
         } else if (mtmp->mpeaceful) {
             if (kindred && isnight) {
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "Good feeding %s!",
                         flags.female ? "sister" : "brother");
+#else
+                Sprintf(verbuf, "\82æ\82¤\8cZ\92í\81I");
+#endif
                 verbl_msg = verbuf;
             } else if (nightchild && isnight) {
+/*JP
                 Sprintf(verbuf, "How nice to hear you, child of the night!");
+*/
+                Sprintf(verbuf, "\96é\82Ì\8ee\82æ\81C\8c³\8bC\82»\82¤\82¾\82È\81I");
                 verbl_msg = verbuf;
             } else
+/*JP
                 verbl_msg = "I only drink... potions.";
+*/
+                verbl_msg = "\8e\84\82Í\96ò\81D\81D\82µ\82©\88ù\82Ü\82È\82¢\81D";
         } else {
-            int vampindex;
             static const char *const vampmsg[] = {
                 /* These first two (0 and 1) are specially handled below */
+/*JP
                 "I vant to suck your %s!",
+*/
+                "\82¨\91O\82Ì%s\82ð\82æ\82±\82¹\81I",
+/*JP
                 "I vill come after %s without regret!",
+*/
+                "\91\95ª\82É%s\82ð\92Ç\8c\82\82³\82¹\82Ä\82à\82ç\82¨\82¤\81I",
                 /* other famous vampire quotes can follow here if desired */
             };
+            int vampindex;
+
             if (kindred)
                 verbl_msg =
+/*JP
                     "This is my hunting ground that you dare to prowl!";
+*/
+                    "\82¨\82Ü\82¦\82ª\82¤\82ë\82Â\82¢\82Ä\82¢\82é\82±\82Ì\82 \82½\82è\82Í\8e\84\82Ì\8eë\8fê\82¾\81I";
             else if (youmonst.data == &mons[PM_SILVER_DRAGON]
                      || youmonst.data == &mons[PM_BABY_SILVER_DRAGON]) {
                 /* Silver dragons are silver in color, not made of silver */
-                Sprintf(verbuf, "%s! Your silver sheen does not frighten me!",
+#if 0 /*JP*/
+                Sprintf(verbuf, "%s!  Your silver sheen does not frighten me!",
                         youmonst.data == &mons[PM_SILVER_DRAGON]
                             ? "Fool"
                             : "Young Fool");
                 verbl_msg = verbuf;
+#else
+                verbl_msg = "\82Î\82©\82ß\81I\82¨\82Ü\82¦\82Ì\8bâ\82Ì\8bP\82«\82È\82Ç\95|\82­\82È\82¢\82¼\81I";
+#endif
             } else {
                 vampindex = rn2(SIZE(vampmsg));
                 if (vampindex == 0) {
@@ -623,124 +896,236 @@ register struct monst *mtmp;
     } break;
     case MS_WERE:
         if (flags.moonphase == FULL_MOON && (night() ^ !rn2(13))) {
+#if 0 /*JP:T*/
             pline("%s throws back %s head and lets out a blood curdling %s!",
                   Monnam(mtmp), mhis(mtmp),
                   ptr == &mons[PM_HUMAN_WERERAT] ? "shriek" : "howl");
+#else
+            pline("%s\82Í\93ª\82ð\82Ì\82¯\82¼\82ç\82µ\94w\8bØ\82ª\93\80\82é\82æ\82¤\82È%s\82ð\82 \82°\82½\81I",
+                  Monnam(mtmp),
+                  ptr == &mons[PM_HUMAN_WERERAT] ? "\8bà\90Ø\82è\90º" : "\99ô\9aK");
+#endif
             wake_nearto(mtmp->mx, mtmp->my, 11 * 11);
         } else
             pline_msg =
+/*JP
                 "whispers inaudibly.  All you can make out is \"moon\".";
+*/
+                "\95·\82«\82Æ\82ê\82È\82¢\82æ\82¤\82È\90º\82Å\82³\82³\82â\82¢\82½\81D\82©\82ë\82¤\82\82Ä\81w\8c\8e\81x\82Æ\82¢\82¤\8c¾\97t\82¾\82¯\82ª\95·\82«\82Æ\82ê\82½\81D";
         break;
     case MS_BARK:
         if (flags.moonphase == FULL_MOON && night()) {
+/*JP
             pline_msg = "howls.";
+*/
+            pline_msg = "\96i\82¦\82½\81D";
         } else if (mtmp->mpeaceful) {
             if (mtmp->mtame
                 && (mtmp->mconf || mtmp->mflee || mtmp->mtrapped
                     || moves > EDOG(mtmp)->hungrytime || mtmp->mtame < 5))
+/*JP
                 pline_msg = "whines.";
+*/
+                pline_msg = "\83N\83\93\83N\83\93\96Â\82¢\82½\81D";
             else if (mtmp->mtame && EDOG(mtmp)->hungrytime > moves + 1000)
+/*JP
                 pline_msg = "yips.";
+*/
+                pline_msg = "\83L\83\83\83\93\83L\83\83\83\93\96Â\82¢\82½\81D";
             else {
                 if (mtmp->data
                     != &mons[PM_DINGO]) /* dingos do not actually bark */
+/*JP
                     pline_msg = "barks.";
+*/
+                    pline_msg = "\83\8f\83\93\83\8f\83\93\96i\82¦\82½\81D";
             }
         } else {
+/*JP
             pline_msg = "growls.";
+*/
+            pline_msg = "\82¤\82È\82Á\82½\81D";
         }
         break;
     case MS_MEW:
         if (mtmp->mtame) {
             if (mtmp->mconf || mtmp->mflee || mtmp->mtrapped
                 || mtmp->mtame < 5)
+/*JP
                 pline_msg = "yowls.";
+*/
+                pline_msg = "\94ß\82µ\82­\96Â\82¢\82½\81D";
             else if (moves > EDOG(mtmp)->hungrytime)
+/*JP
                 pline_msg = "meows.";
+*/
+                pline_msg = "\83j\83\83\81[\83\93\82Æ\96Â\82¢\82½\81D";
             else if (EDOG(mtmp)->hungrytime > moves + 1000)
+/*JP
                 pline_msg = "purrs.";
+*/
+                pline_msg = "\83S\83\8d\83S\83\8d\82Æ\96Â\82¢\82½\81D";
             else
+/*JP
                 pline_msg = "mews.";
+*/
+                pline_msg = "\83j\83\83\81[\83j\83\83\81[\96Â\82¢\82½\81D";
             break;
-        } /* else FALLTHRU */
+        }
+        /*FALLTHRU*/
     case MS_GROWL:
+/*JP
         pline_msg = mtmp->mpeaceful ? "snarls." : "growls!";
+*/
+        pline_msg = mtmp->mpeaceful ? "\82¤\82È\82Á\82½\81D" : "\8c\83\82µ\82­\82¤\82È\82Á\82½\81I";
         break;
     case MS_ROAR:
+/*JP
         pline_msg = mtmp->mpeaceful ? "snarls." : "roars!";
+*/
+        pline_msg = mtmp->mpeaceful ? "\82¤\82È\82Á\82½\81D" : "\82Æ\82Ä\82à\8c\83\82µ\82­\96i\82¦\82½\81I";
         break;
     case MS_SQEEK:
+/*JP
         pline_msg = "squeaks.";
+*/
+        pline_msg = "\83L\81[\83L\81[\96Â\82¢\82½\81D";
         break;
     case MS_SQAWK:
         if (ptr == &mons[PM_RAVEN] && !mtmp->mpeaceful)
+/*JP
             verbl_msg = "Nevermore!";
+*/
+            verbl_msg = "\81u\82à\82¤\93ñ\93x\82Æ\81I\81v";
         else
+/*JP
             pline_msg = "squawks.";
+*/
+            pline_msg = "\83L\81[\83L\81[\96Â\82¢\82½\81D";
         break;
     case MS_HISS:
         if (!mtmp->mpeaceful)
+/*JP
             pline_msg = "hisses!";
+*/
+            pline_msg = "\83V\81[\83b\82Æ\96Â\82¢\82½\81I";
         else
             return 0; /* no sound */
         break;
     case MS_BUZZ:
+/*JP
         pline_msg = mtmp->mpeaceful ? "drones." : "buzzes angrily.";
+*/
+        pline_msg = mtmp->mpeaceful ? "\82Ô\81[\82ñ\82Æ\96Â\82Á\82½\81D" : "\82Ô\82ñ\82Ô\82ñ\96Â\82Á\82½\81D";
         break;
     case MS_GRUNT:
+/*JP
         pline_msg = "grunts.";
+*/
+        pline_msg = "\82Ô\81[\82Ô\81[\96Â\82¢\82½\81D";
         break;
     case MS_NEIGH:
         if (mtmp->mtame < 5)
+/*JP
             pline_msg = "neighs.";
+*/
+            pline_msg = "\82¢\82È\82È\82¢\82½\81D";
         else if (moves > EDOG(mtmp)->hungrytime)
+/*JP
             pline_msg = "whinnies.";
+*/
+            pline_msg = "\83q\83q\81[\83\93\82Æ\96Â\82¢\82½\81D";
         else
+/*JP
             pline_msg = "whickers.";
+*/
+            pline_msg = "\83q\83q\83q\81[\83\93\82Æ\96Â\82¢\82½\81D";
         break;
     case MS_WAIL:
+/*JP
         pline_msg = "wails mournfully.";
+*/
+        pline_msg = "\94ß\82µ\82°\82É\96Â\82¢\82½\81D";
         break;
     case MS_GURGLE:
+/*JP
         pline_msg = "gurgles.";
+*/
+        pline_msg = "\82²\82ë\82²\82ë\8dA\82ð\96Â\82ç\82µ\82½\81D";
         break;
     case MS_BURBLE:
+/*JP
         pline_msg = "burbles.";
+*/
+        pline_msg = "\82Ø\82¿\82á\82­\82¿\82á\82µ\82á\82×\82Á\82½\81D";
         break;
     case MS_SHRIEK:
+/*JP
         pline_msg = "shrieks.";
+*/
+        pline_msg = "\8bà\90Ø\82è\90º\82ð\82 \82°\82½\81D";
         aggravate();
         break;
     case MS_IMITATE:
+/*JP
         pline_msg = "imitates you.";
+*/
+        pline_msg = "\82 \82È\82½\82Ì\90^\8e\97\82ð\82µ\82½\81D";
         break;
     case MS_BONES:
+/*JP
         pline("%s rattles noisily.", Monnam(mtmp));
+*/
+        pline("%s\82Í\83P\83^\83P\83^\82Æ\8fÎ\82¢\82¾\82µ\82½\81D",Monnam(mtmp));
+/*JP
         You("freeze for a moment.");
+*/
+        You("\88ê\8fu\93\80\82è\82Â\82¢\82½\81D");
         nomul(-2);
+/*JP
         multi_reason = "scared by rattling";
+*/
+        multi_reason = "\8d\9c\82Ì\83J\83^\83J\83^\8c¾\82¤\89¹\82É\82¨\82Ñ\82¦\82½\8c\84\82É";
         nomovemsg = 0;
         break;
     case MS_LAUGH: {
         static const char *const laugh_msg[4] = {
+/*JP
             "giggles.", "chuckles.", "snickers.", "laughs.",
+*/
+            "\82­\82·\82­\82·\8fÎ\82Á\82½\81D", "\82­\82·\82Á\82Æ\8fÎ\82Á\82½\81D", "\82Î\82©\82É\82µ\82½\82æ\82¤\82É\8fÎ\82Á\82½\81D", "\8fÎ\82Á\82½\81D",
         };
         pline_msg = laugh_msg[rn2(4)];
     } break;
     case MS_MUMBLE:
+/*JP
         pline_msg = "mumbles incomprehensibly.";
+*/
+        pline_msg = "\95s\89Â\89ð\82È\8c¾\97t\82ð\82Â\82Ô\82â\82¢\82½\81D";
         break;
     case MS_DJINNI:
         if (mtmp->mtame) {
+/*JP
             verbl_msg = "Sorry, I'm all out of wishes.";
+*/
+            verbl_msg = "\8e\84\82ð\8f\95\82¯\82Ä\82­\82ê\82½\82±\82Æ\82ð\8a´\8eÓ\82·\82é\81I";
         } else if (mtmp->mpeaceful) {
             if (ptr == &mons[PM_WATER_DEMON])
+/*JP
                 pline_msg = "gurgles.";
+*/
+                pline_msg = "\83S\83{\83S\83{\83S\83{\83S\83{\81D";
             else
+/*JP
                 verbl_msg = "I'm free!";
+*/
+                verbl_msg = "\82â\82Á\82Æ\8e©\97R\82É\82È\82Á\82½\81I";
         } else {
             if (ptr != &mons[PM_PRISONER])
+/*JP
                 verbl_msg = "This will teach you not to disturb me!";
+*/
+                verbl_msg = "\82\82á\82Ü\82ð\82µ\82È\82¢\82Å\82­\82ê\81I";
 #if 0
             else
                 verbl_msg = "??????????";
@@ -751,79 +1136,158 @@ register struct monst *mtmp;
         if (!mtmp->mpeaceful) {
             switch (rn2(4)) {
             case 0:
+#if 0 /*JP:T*/
                 pline("%s boasts about %s gem collection.", Monnam(mtmp),
                       mhis(mtmp));
+#else
+                pline("%s\82Í\8e©\95ª\82Ì\95ó\90Î\82Ì\83R\83\8c\83N\83V\83\87\83\93\82ð\8e©\96\9d\82µ\82½\81D", Monnam(mtmp));
+#endif
                 break;
             case 1:
+/*JP
                 pline_msg = "complains about a diet of mutton.";
+*/
+                pline_msg = "\96\88\93ú\97r\82Î\82©\82è\90H\82×\82Ä\82¢\82é\8e\96\82ð\8bð\92s\82Á\82½\81D";
                 break;
             default:
+/*JP
                 pline_msg = "shouts \"Fee Fie Foe Foo!\" and guffaws.";
+*/
+                pline_msg = "\81w\82í\82Á\82Í\82Á\82Í\82Á\82Í\81I\81x\82Æ\82Î\82©\8fÎ\82¢\82µ\82½\81D";
                 wake_nearto(mtmp->mx, mtmp->my, 7 * 7);
                 break;
             }
             break;
         }
-    /* else FALLTHRU */
+        /*FALLTHRU*/
     case MS_HUMANOID:
         if (!mtmp->mpeaceful) {
             if (In_endgame(&u.uz) && is_mplayer(ptr))
                 mplayer_talk(mtmp);
             else
+/*JP
                 pline_msg = "threatens you.";
+*/
+                pline_msg = "\82 \82È\82½\82ð\88Ð\8ad\82µ\82½\81D";
             break;
         }
         /* Generic peaceful humanoid behaviour. */
         if (mtmp->mflee)
+/*JP
             pline_msg = "wants nothing to do with you.";
+*/
+            pline_msg = "\82 \82È\82½\82Æ\8aÖ\82í\82è\82½\82­\82È\82¢\82æ\82¤\82¾\81D";
         else if (mtmp->mhp < mtmp->mhpmax / 4)
+/*JP
             pline_msg = "moans.";
+*/
+            pline_msg = "\82¤\82ß\82«\90º\82ð\82 \82°\82½\81D";
         else if (mtmp->mconf || mtmp->mstun)
+/*JP
             verbl_msg = !rn2(3) ? "Huh?" : rn2(2) ? "What?" : "Eh?";
+*/
+            verbl_msg = !rn2(3) ? "\82Ö\81H" : rn2(2) ? "\89½\81H" : "\82¦\81H";
         else if (!mtmp->mcansee)
+/*JP
             verbl_msg = "I can't see!";
+*/
+            verbl_msg = "\89½\82à\8c©\82¦\82È\82¢\81I";
         else if (mtmp->mtrapped) {
             struct trap *t = t_at(mtmp->mx, mtmp->my);
 
             if (t)
                 t->tseen = 1;
+/*JP
             verbl_msg = "I'm trapped!";
+*/
+            verbl_msg = "ã©\82É\82Í\82Ü\82Á\82Ä\82µ\82Ü\82Á\82½\81I";
         } else if (mtmp->mhp < mtmp->mhpmax / 2)
+/*JP
             pline_msg = "asks for a potion of healing.";
+*/
+            pline_msg = "\89ñ\95\9c\82Ì\96ò\82ð\8e\9d\82Á\82Ä\82È\82¢\82©\90q\82Ë\82½\81D";
         else if (mtmp->mtame && !mtmp->isminion
                  && moves > EDOG(mtmp)->hungrytime)
+/*JP
             verbl_msg = "I'm hungry.";
+*/
+            verbl_msg = "\95 \82ª\8c¸\82Á\82½\82È\81D";
         /* Specific monsters' interests */
         else if (is_elf(ptr))
+/*JP
             pline_msg = "curses orcs.";
+*/
+            pline_msg = "\83I\81[\83N\82ð\8eô\82Á\82½\81D";
         else if (is_dwarf(ptr))
+/*JP
             pline_msg = "talks about mining.";
+*/
+            pline_msg = "\8dÌ\8c@\82É\82Â\82¢\82Ä\98b\82µ\82½\81D";
         else if (likes_magic(ptr))
+/*JP
             pline_msg = "talks about spellcraft.";
+*/
+            pline_msg = "\96\82\8fp\82Ì\92b\98B\82É\82Â\82¢\82Ä\98b\82µ\82½\81D";
         else if (ptr->mlet == S_CENTAUR)
+/*JP
             pline_msg = "discusses hunting.";
+*/
+            pline_msg = "\97Â\82É\82Â\82¢\82Ä\8bc\98_\82µ\82½\81D";
+        else if (is_gnome(ptr) && Hallucination && (gnomeplan = rn2(4)) % 2)
+            /* skipped for rn2(4) result of 0 or 2;
+               gag from an early episode of South Park called "Gnomes";
+               initially, Tweek (introduced in that episode) is the only
+               one aware of the tiny gnomes after spotting them sneaking
+               about; they are embarked upon a three-step business plan;
+               a diagram of the plan shows:
+                         Phase 1         Phase 2      Phase 3
+                   Collect underpants       ?          Profit
+               and they never verbalize step 2 so we don't either */
+#if 0 /*JP:T*/
+            verbl_msg = (gnomeplan == 1) ? "Phase one, collect underpants."
+                                         : "Phase three, profit!";
+#else
+            verbl_msg = (gnomeplan == 1) ? "\82»\82Ì\82P\81C\83p\83\93\83c\82ð\8fW\82ß\82é\81D"
+                                         : "\82»\82Ì\82R\81C\8eû\89v\89»\81I";
+#endif
         else
             switch (monsndx(ptr)) {
             case PM_HOBBIT:
                 pline_msg =
                     (mtmp->mhpmax - mtmp->mhp >= 10)
+/*JP
                         ? "complains about unpleasant dungeon conditions."
+*/
+                        ? "\95s\96ù\89õ\82È\96À\8b{\82Ì\8fó\91Ô\82É\82Â\82¢\82Ä\95s\96\9e\82ð\8fq\82×\82½\81D"
+/*JP
                         : "asks you about the One Ring.";
+*/
+                        : "\81u\88ê\82Â\82Ì\8ew\97Ö\81v\82É\82Â\82¢\82Ä\90q\82Ë\82½\81D";
                 break;
             case PM_ARCHEOLOGIST:
                 pline_msg =
+/*JP
                 "describes a recent article in \"Spelunker Today\" magazine.";
+*/
+                "\81u\93ú\8a§\93´\8cA\81v\82Ì\8dÅ\90V\82Ì\8bL\8e\96\82ð\8e·\95M\82µ\82Ä\82¢\82é\81D";
                 break;
             case PM_TOURIST:
+/*JP
                 verbl_msg = "Aloha.";
+*/
+                verbl_msg = "\83A\83\8d\81[\83n\81D";
                 break;
             default:
+/*JP
                 pline_msg = "discusses dungeon exploration.";
+*/
+                pline_msg = "\96À\8b{\92T\8c\9f\82É\82Â\82¢\82Ä\8bc\98_\82µ\82½\81D";
                 break;
             }
         break;
     case MS_SEDUCE: {
         int swval;
+
         if (SYSOPT_SEDUCE) {
             if (ptr->mlet != S_NYMPH
                 && could_seduce(mtmp, &youmonst, (struct attack *) 0) == 1) {
@@ -835,22 +1299,52 @@ register struct monst *mtmp;
             swval = ((poly_gender() == 0) ? rn2(3) : 0);
         switch (swval) {
         case 2:
+#if 0 /*JP*/
             verbl_msg = "Hello, sailor.";
+#else
+            switch (poly_gender()) {
+              case 0:
+                verbl_msg = "\82±\82ñ\82É\82¿\82Í\81D\82 \82ç\82¢\82¢\92j\82Ë\81D";
+                break;
+              case 1:
+                verbl_msg = "\82±\82ñ\82É\82¿\82Í\81C\82¨\8fì\82³\82ñ\81D";
+                break;
+              default:
+                verbl_msg = "\82±\82ñ\82É\82¿\82Í\81D";
+                break;
+            }
+#endif
             break;
         case 1:
+/*JP
             pline_msg = "comes on to you.";
+*/
+            pline_msg = "\82 \82È\82½\82Ì\82Ù\82¤\82Ö\82â\82Á\82Ä\82«\82½\81D";
             break;
         default:
+/*JP
             pline_msg = "cajoles you.";
+*/
+            pline_msg = "\82 \82È\82½\82ð\82¨\82¾\82Ä\82½\81D";
         }
     } break;
     case MS_ARREST:
         if (mtmp->mpeaceful)
+#if 0 /*JP:T*/
             verbalize("Just the facts, %s.", flags.female ? "Ma'am" : "Sir");
+#else
+            verbalize("\8e\96\8eÀ\82¾\82¯\82ª\92m\82è\82½\82¢\82ñ\82Å\82·\82æ\81C%s\81D", flags.female ? "\89\9c\82³\82ñ" : "\92U\93ß");
+#endif
         else {
             static const char *const arrest_msg[3] = {
+#if 0 /*JP:T*/
                 "Anything you say can be used against you.",
                 "You're under arrest!", "Stop in the name of the Law!",
+#else
+                "\82¨\82Ü\82¦\82Ì\8c¾\82¤\82±\82Æ\82Í\82¨\82Ü\82¦\82É\82Æ\82Á\82Ä\95s\97\98\82È\8fØ\8b\92\82Æ\82È\82é\82±\82Æ\82ª\82 \82é\81I",
+                "\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I",
+                "\96@\82Ì\96¼\82Ì\82à\82Æ\92¼\82¿\82É\92\86\8e~\82¹\82æ\81I",
+#endif
             };
             verbl_msg = arrest_msg[rn2(3)];
         }
@@ -865,95 +1359,156 @@ register struct monst *mtmp;
         if (!mtmp->mpeaceful)
             cuss(mtmp);
         else if (is_lminion(mtmp))
+/*JP
             verbl_msg = "It's not too late.";
+*/
+            verbl_msg = "\82Ü\82¾\92x\82­\82Í\82È\82¢\81D";
         else
+/*JP
             verbl_msg = "We're all doomed.";
+*/
+            verbl_msg = "\82Ý\82ñ\82È\82à\82¤\82¨\82µ\82Ü\82¢\82¾\81D";
         break;
     case MS_SPELL:
         /* deliberately vague, since it's not actually casting any spell */
+/*JP
         pline_msg = "seems to mutter a cantrip.";
+*/
+        pline_msg = "\82Ô\82Â\82Ô\82Â\82Æ\82Â\82Ô\82â\82¢\82Ä\82¢\82é\81D";
         break;
     case MS_NURSE:
+/*JP
         verbl_msg_mcan = "I hate this job!";
+*/
+        verbl_msg_mcan = "\82±\82ñ\82È\8ed\8e\96\8c\99\82¢\81I";
         if (uwep && (uwep->oclass == WEAPON_CLASS || is_weptool(uwep)))
+/*JP
             verbl_msg = "Put that weapon away before you hurt someone!";
+*/
+            verbl_msg = "\95\90\8aí\82ð\82¨\82³\82ß\82È\82³\82¢\81I\82»\82ê\82Í\90l\82ð\8f\9d\82Â\82¯\82é\82à\82Ì\82æ\81I";
         else if (uarmc || uarm || uarmh || uarms || uarmg || uarmf)
             verbl_msg = Role_if(PM_HEALER)
+/*JP
                             ? "Doc, I can't help you unless you cooperate."
+*/
+                            ? "\90æ\90\81C\82 \82È\82½\82Ì\8b¦\97Í\82È\82µ\82Å\82Í\82Ç\82¤\82µ\82æ\82¤\82à\82 \82è\82Ü\82¹\82ñ\82í\81D"
+/*JP
                             : "Please undress so I can examine you.";
+*/
+                            : "\95\9e\82ð\92E\82¢\82Å\82­\82¾\82³\82¢\81D\82 \82È\82½\82ð\90f\8e@\82µ\82Ü\82·\82í\81D";
         else if (uarmu)
+/*JP
             verbl_msg = "Take off your shirt, please.";
+*/
+            verbl_msg = "\83V\83\83\83c\82ð\92E\82¢\82Å\82­\82¾\82³\82¢\81D";
         else
+/*JP
             verbl_msg = "Relax, this won't hurt a bit.";
+*/
+            verbl_msg = "\82¨\82¿\82Â\82¢\82Ä\81D\82¿\82Á\82Æ\82à\92É\82­\82È\82¢\82í\82æ\81D";
         break;
     case MS_GUARD:
         if (money_cnt(invent))
+/*JP
             verbl_msg = "Please drop that gold and follow me.";
+*/
+            verbl_msg = "\8bà\82ð\92u\82¢\82Ä\82Â\82¢\82Ä\82«\82Ä\82­\82¾\82³\82¢\81D";
         else
+/*JP
             verbl_msg = "Please follow me.";
+*/
+            verbl_msg = "\82Â\82¢\82Ä\82«\82Ä\82­\82¾\82³\82¢\81D";
         break;
     case MS_SOLDIER: {
         static const char
             *const soldier_foe_msg[3] =
                 {
+#if 0 /*JP:T*/
                   "Resistance is useless!", "You're dog meat!", "Surrender!",
+#else
+                    "\92ï\8dR\82µ\82Ä\82à\96³\91Ê\82¾\81I",
+                    "\8c¢\82É\8bò\82í\82ê\82¿\82Ü\82¦\81I",
+                    "\8d~\95\9a\82µ\82ë\81I",
+#endif
                 },
                    *const soldier_pax_msg[3] = {
+#if 0 /*JP:T*/
                        "What lousy pay we're getting here!",
                        "The food's not fit for Orcs!",
                        "My feet hurt, I've been on them all day!",
+#else
+                       "\82È\82ñ\82Ä\8bà\95¥\82¢\82ª\88«\82¢\82ñ\82¾\81I",
+                       "\82È\82ñ\82¾\82¢\81H\83I\81[\83N\82Å\82à\8bò\82¦\82Ë\82¥\82º\81I",
+                       "\91«\82ð\89ö\89ä\82µ\82½\81C\82¸\82Á\82Æ\82±\82Ì\92²\8eq\82¾\81I",
+#endif
                    };
         verbl_msg = mtmp->mpeaceful ? soldier_pax_msg[rn2(3)]
                                     : soldier_foe_msg[rn2(3)];
         break;
     }
-    case MS_RIDER:
-        /* 3.6.0 tribute */
-        if (ptr == &mons[PM_DEATH]
-            && !context.tribute.Deathnotice && u_have_novel()) {
-            struct obj *book = u_have_novel();
-            const char *tribtitle = (char *)0;
-
-            if (book) {
-                int novelidx = book->novelidx;
-
-                tribtitle = noveltitle(&novelidx);
-            }
-            if (tribtitle) {
+    case MS_RIDER: {
+        const char *tribtitle;
+        struct obj *book = 0;
+        boolean ms_Death = (ptr == &mons[PM_DEATH]);
+
+        /* 3.6 tribute */
+        if (ms_Death && !context.tribute.Deathnotice
+            && (book = u_have_novel()) != 0) {
+            if ((tribtitle = noveltitle(&book->novelidx)) != 0) {
+/*JP
                 Sprintf(verbuf, "Ah, so you have a copy of /%s/.", tribtitle);
+*/
+                Sprintf(verbuf, "\82 \82 \81A/%s/\82ð\8e\9d\82Á\82Ä\82¢\82é\82Ì\82©\81D", tribtitle);
                 /* no Death featured in these two, so exclude them */
-                if (!(strcmpi(tribtitle, "Snuff") == 0
-                      || strcmpi(tribtitle, "The Wee Free Men") == 0))
-                    Strcat(verbuf, " I may have been misquoted there.");
+                if (strcmpi(tribtitle, "Snuff")
+                    && strcmpi(tribtitle, "The Wee Free Men"))
+/*JP
+                    Strcat(verbuf, "  I may have been misquoted there.");
+*/
+                    Strcat(verbuf, "  \82±\82±\82Å\82Í\88ø\97p\82ª\8aÔ\88á\82Á\82Ä\82¢\82é\82©\82à\82µ\82ê\82È\82¢\81D");
                 verbl_msg = verbuf;
-                context.tribute.Deathnotice = 1;
             }
-        } else if (ptr == &mons[PM_DEATH]
-                   && !rn2(2) && Death_quote(verbuf, BUFSZ)) {
-                verbl_msg = verbuf;
-        }
+            context.tribute.Deathnotice = 1;
+        } else if (ms_Death && rn2(3) && Death_quote(verbuf, sizeof verbuf)) {
+            verbl_msg = verbuf;
         /* end of tribute addition */
-        else if (ptr == &mons[PM_DEATH] && !rn2(10))
+
+        } else if (ms_Death && !rn2(10)) {
+/*JP
             pline_msg = "is busy reading a copy of Sandman #8.";
-        else
+*/
+            pline_msg = "\81u\83T\83\93\83h\83}\83\93\81v\82Ì8\8aª\82ð\93Ç\82Þ\82Ì\82É\96Z\82µ\82¢\81D";
+        } else
+/*JP
             verbl_msg = "Who do you think you are, War?";
+*/
+            verbl_msg = "\83E\83H\81[\82æ\81C\8e©\95ª\82ª\89½\8eÒ\82©\8dl\82¦\82½\82±\82Æ\82ª\82 \82é\82©\81H";
         break;
-    }
+    } /* case MS_RIDER */
+    } /* switch */
 
-    if (pline_msg)
+    if (pline_msg) {
+/*JP
         pline("%s %s", Monnam(mtmp), pline_msg);
-    else if (mtmp->mcan && verbl_msg_mcan)
+*/
+        pline("%s\82Í%s", Monnam(mtmp), pline_msg);
+    } else if (mtmp->mcan && verbl_msg_mcan) {
         verbalize1(verbl_msg_mcan);
-    else if (verbl_msg) {
+    } else if (verbl_msg) {
+#if 0 /*JP*//*\83f\83X\82ð\93Á\95Ê\88µ\82¢\82µ\82È\82¢*/
+        /* more 3.6 tribute */
         if (ptr == &mons[PM_DEATH]) {
             /* Death talks in CAPITAL LETTERS
                and without quotation marks */
             char tmpbuf[BUFSZ];
-            Sprintf(tmpbuf, "%s", verbl_msg);
-            pline1(ucase(tmpbuf));
+
+            pline1(ucase(strcpy(tmpbuf, verbl_msg)));
         } else {
             verbalize1(verbl_msg);
         }
+#else
+        verbalize1(verbl_msg);
+#endif
     }
     return 1;
 }
@@ -976,23 +1531,38 @@ dochat()
     struct obj *otmp;
 
     if (is_silent(youmonst.data)) {
+/*JP
         pline("As %s, you cannot speak.", an(youmonst.data->mname));
+*/
+        pline("\82 \82È\82½\82Í%s\82È\82Ì\82Å\81C\98b\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", youmonst.data->mname);
         return 0;
     }
     if (Strangled) {
+/*JP
         You_cant("speak.  You're choking!");
+*/
+        You("\98b\82¹\82È\82¢\81D\82 \82È\82½\82Í\8eñ\82ð\8di\82ß\82ç\82ê\82Ä\82¢\82é\81I");
         return 0;
     }
     if (u.uswallow) {
+/*JP
         pline("They won't hear you out there.");
+*/
+        You("\8aO\82Ö\8cü\82Á\82Ä\98b\82ð\82µ\82½\82ª\81C\92N\82à\95·\82«\82¢\82ê\82È\82©\82Á\82½\81D");
         return 0;
     }
     if (Underwater) {
+/*JP
         Your("speech is unintelligible underwater.");
+*/
+        pline("\90\85\96Ê\89º\82Å\82Í\81C\82 \82È\82½\82Ì\98b\82Í\82ë\82­\82É\97\9d\89ð\82³\82ê\82È\82¢\81D");
         return 0;
     }
     if (Deaf) {
+/*JP
         pline("How can you hold a conversation when you cannot hear?");
+*/
+        pline("\95·\82­\82±\82Æ\82ª\82Å\82«\82È\82¢\82Ì\82É\82Ç\82¤\82â\82Á\82Ä\89ï\98b\82·\82é\82Ì\81H");
         return 0;
     }
 
@@ -1008,21 +1578,30 @@ dochat()
         return 1;
     }
 
+/*JP
     if (!getdir("Talk to whom? (in what direction)")) {
+*/
+    if (!getdir("\92N\82Æ\98b\82µ\82Ü\82·\82©\81H[\95û\8cü\82ð\93ü\82ê\82Ä\82Ë]")) {
         /* decided not to chat */
         return 0;
     }
 
     if (u.usteed && u.dz > 0) {
         if (!u.usteed->mcanmove || u.usteed->msleeping) {
+/*JP
             pline("%s seems not to notice you.", Monnam(u.usteed));
+*/
+            pline("%s\82Í\82 \82È\82½\82É\8bC\82ª\82Â\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D", Monnam(u.usteed));
             return 1;
         } else
             return domonnoise(u.usteed);
     }
 
     if (u.dz) {
+/*JP
         pline("They won't hear you %s there.", u.dz < 0 ? "up" : "down");
+*/
+        pline("%s\8cü\82©\82Á\82Ä\98b\82ð\82µ\82Ä\82à\88Ó\96¡\82ª\82È\82¢\81D", u.dz < 0 ? "\8fã\82É" : "\89º\82É");
         return 0;
     }
 
@@ -1037,7 +1616,10 @@ dochat()
             return 1;
         }
          */
+/*JP
         pline("Talking to yourself is a bad habit for a dungeoneer.");
+*/
+        pline("\88ê\90l\8c¾\82Í\96À\8b{\92T\8c\9f\8eÒ\82Ì\88«\82¢\95È\82¾\81D");
         return 0;
     }
 
@@ -1053,15 +1635,20 @@ dochat()
         && (otmp = vobj_at(tx, ty)) != 0 && otmp->otyp == STATUE) {
         /* Talking to a statue */
         if (!Blind) {
+#if 0 /*JP:T*/
             pline_The("%s seems not to notice you.",
                       /* if hallucinating, you can't tell it's a statue */
                       Hallucination ? rndmonnam((char *) 0) : "statue");
+#else
+            pline_The("%s\82Í\82 \82È\82½\82É\8bC\82ª\82Â\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D",
+                      Hallucination ? rndmonnam((char *) 0) : "\90Î\91\9c");
+#endif
         }
         return 0;
     }
 
-    if (!mtmp || mtmp->mundetected || mtmp->m_ap_type == M_AP_FURNITURE
-        || mtmp->m_ap_type == M_AP_OBJECT)
+    if (!mtmp || mtmp->mundetected || M_AP_TYPE(mtmp) == M_AP_FURNITURE
+        || M_AP_TYPE(mtmp) == M_AP_OBJECT)
         return 0;
 
     /* sleeping monsters won't talk, except priests (who wake up) */
@@ -1069,7 +1656,10 @@ dochat()
         /* If it is unseen, the player can't tell the difference between
            not noticing him and just not existing, so skip the message. */
         if (canspotmon(mtmp))
+/*JP
             pline("%s seems not to notice you.", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82É\8bC\82ª\82Â\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D", Monnam(mtmp));
         return 0;
     }
 
@@ -1079,7 +1669,10 @@ dochat()
     if (mtmp->mtame && mtmp->meating) {
         if (!canspotmon(mtmp))
             map_invisible(mtmp->mx, mtmp->my);
+/*JP
         pline("%s is eating noisily.", Monnam(mtmp));
+*/
+        pline("%s\82Í\83o\83\8a\83o\83\8a\82Æ\95¨\82ð\90H\82×\82Ä\82¢\82é\81D", Monnam(mtmp));
         return 0;
     }