OSDN Git Service

patch src/
authorSHIRAKATA Kentaro <argrath@ub32.org>
Wed, 23 Dec 2015 14:06:45 +0000 (23:06 +0900)
committerSHIRAKATA Kentaro <argrath@ub32.org>
Sat, 13 Feb 2016 17:26:09 +0000 (02:26 +0900)
89 files changed:
src/allmain.c
src/apply.c
src/artifact.c
src/attrib.c
src/ball.c
src/bones.c
src/botl.c
src/cmd.c
src/dbridge.c
src/decl.c
src/detect.c
src/dig.c
src/do.c
src/do_name.c
src/do_wear.c
src/dog.c
src/dogmove.c
src/dokick.c
src/dothrow.c
src/drawing.c
src/dungeon.c
src/eat.c
src/end.c
src/engrave.c
src/exper.c
src/explode.c
src/files.c
src/fountain.c
src/hack.c
src/hacklib.c
src/invent.c
src/light.c
src/lock.c
src/mail.c
src/makemon.c
src/mcastu.c
src/mhitm.c
src/mhitu.c
src/minion.c
src/mklev.c
src/mkmaze.c
src/mon.c
src/mondata.c
src/monmove.c
src/mplayer.c
src/mthrowu.c
src/muse.c
src/music.c
src/o_init.c
src/objnam.c
src/options.c
src/pager.c
src/pickup.c
src/pline.c
src/polyself.c
src/potion.c
src/pray.c
src/priest.c
src/quest.c
src/questpgr.c
src/read.c
src/region.c
src/restore.c
src/rip.c
src/role.c
src/rumors.c
src/save.c
src/shk.c
src/shknam.c
src/sit.c
src/sounds.c
src/spell.c
src/steal.c
src/steed.c
src/teleport.c
src/timeout.c
src/topten.c
src/trap.c
src/uhitm.c
src/vault.c
src/version.c
src/weapon.c
src/were.c
src/wield.c
src/wizard.c
src/worm.c
src/worn.c
src/write.c
src/zap.c

index 49ec078..68cc103 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /* various code that was replicated in *main.c */
 
 #include "hack.h"
@@ -45,14 +50,23 @@ boolean resuming;
     /* side-effects from the real world */
     flags.moonphase = phase_of_the_moon();
     if (flags.moonphase == FULL_MOON) {
+/*JP
         You("are lucky!  Full moon tonight.");
+*/
+        pline("\83\89\83b\83L\81[\81I\8d¡\94Ó\82Í\96\9e\8c\8e\82¾\81D");
         change_luck(1);
     } else if (flags.moonphase == NEW_MOON) {
+/*JP
         pline("Be careful!  New moon tonight.");
+*/
+        pline("\92\8d\88Ó\82µ\82ë\81I\8d¡\94Ó\82Í\90V\8c\8e\82¾\81D");
     }
     flags.friday13 = friday_13th();
     if (flags.friday13) {
+/*JP
         pline("Watch out!  Bad things can happen on Friday the 13th.");
+*/
+        pline("\97p\90S\82µ\82ë\81I\82P\82R\93ú\82Ì\8bà\97j\93ú\82É\82Í\82æ\82­\82È\82¢\82±\82Æ\82ª\82 \82é\81D") ;
         change_luck(-1);
     }
 
@@ -253,7 +267,10 @@ boolean resuming;
                             } else if (!Upolyd && u.uhp > 1) {
                                 u.uhp--;
                             } else {
+/*JP
                                 You("pass out from exertion!");
+*/
+                                pline("\94æ\98J\82Å\88Ó\8e¯\82ð\8e¸\82Á\82½\81I");
                                 exercise(A_CON, FALSE);
                                 fall_asleep(-10, FALSE);
                             }
@@ -486,7 +503,10 @@ stop_occupation()
 {
     if (occupation) {
         if (!maybe_finished_meal(TRUE))
+/*JP
             You("stop %s.", occtxt);
+*/
+            You("%s\82Ì\82ð\92\86\92f\82µ\82½\81D", occtxt);
         occupation = 0;
         context.botl = 1; /* in case u.uhs changed */
         nomul(0);
@@ -617,17 +637,36 @@ boolean new_game; /* false => restoring an old game */
      */
     *buf = '\0';
     if (new_game || u.ualignbase[A_ORIGINAL] != u.ualignbase[A_CURRENT])
+/*JP
         Sprintf(eos(buf), " %s", align_str(u.ualignbase[A_ORIGINAL]));
+*/
+        Sprintf(eos(buf), "%s", align_str(u.ualignbase[A_ORIGINAL]));
     if (!urole.name.f
         && (new_game
                 ? (urole.allow & ROLE_GENDMASK) == (ROLE_MALE | ROLE_FEMALE)
                 : currentgend != flags.initgend))
+/*JP
         Sprintf(eos(buf), " %s", genders[currentgend].adj);
+*/
+        Sprintf(eos(buf), "\82Ì%s", genders[currentgend].adj);
 
+#if 0 /*JP*/
     pline(new_game ? "%s %s, welcome to NetHack!  You are a%s %s %s."
                    : "%s %s, the%s %s %s, welcome back to NetHack!",
           Hello((struct monst *) 0), plname, buf, urace.adj,
           (currentgend && urole.name.f) ? urole.name.f : urole.name.m);
+#else
+    if(new_game){
+        pline("%s\81CNetHack\82Ì\90¢\8aE\82Ö\81I\82±\82Ì\83Q\81[\83\80\82Å\82Í\82 \82È\82½\82Í%s%s(%s)\82¾\81D",
+              Hello((struct monst *) 0), urace.adj,
+              (currentgend && urole.name.f) ? urole.name.f : urole.name.m,
+              buf);
+    } else {
+        pline("%s\81CNetHack\82Ì\90¢\8aE\82Ö\81I\82 \82È\82½\82Í%s%s\82¾\81I",
+              Hello((struct monst *) 0), urace.adj,
+              (currentgend && urole.name.f) ? urole.name.f : urole.name.m);
+    }
+#endif
 }
 
 #ifdef POSITIONBAR
index 22cef7f..fb2d803 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 extern boolean notonhead; /* for long worms */
@@ -44,7 +49,10 @@ void FDECL(amii_speaker, (struct obj *, char *, int));
 #endif
 
 static const char no_elbow_room[] =
+/*JP
     "don't have enough elbow-room to maneuver.";
+*/
+    "\82»\82ê\82ð\82·\82é\82¾\82¯\82Ì\82ä\82Æ\82è\82ª\82È\82¢\81D";
 
 STATIC_OVL int
 use_camera(obj)
@@ -53,7 +61,10 @@ struct obj *obj;
     struct monst *mtmp;
 
     if (Underwater) {
+/*JP
         pline("Using your camera underwater would void the warranty.");
+*/
+        pline("\90\85\96Ê\89º\82Å\82Ì\83J\83\81\83\89\82Ì\8eg\97p\82Í\95Û\8fØ\82Ì\91Î\8fÛ\8aO\82Å\82·\81D");
         return 0;
     }
     if (!getdir((char *) 0))
@@ -68,9 +79,17 @@ struct obj *obj;
     if (obj->cursed && !rn2(2)) {
         (void) zapyourself(obj, TRUE);
     } else if (u.uswallow) {
+#if 0 /*JP*/
         You("take a picture of %s %s.", s_suffix(mon_nam(u.ustuck)),
             mbodypart(u.ustuck, STOMACH));
+#else
+        You("%s\82Ì%s\82Ì\8eÊ\90^\82ð\8eB\82Á\82½\81D", mon_nam(u.ustuck),
+            mbodypart(u.ustuck, STOMACH));
+#endif
     } else if (u.dz) {
+/*JP
+        You("take a picture of the %s.",
+*/
         You("take a picture of the %s.",
             (u.dz > 0) ? surface(u.ux, u.uy) : ceiling(u.ux, u.uy));
     } else if (!u.dx && !u.dy) {
@@ -91,10 +110,16 @@ struct obj *obj;
     boolean drying_feedback = (obj == uwep);
 
     if (!freehand()) {
+/*JP
         You("have no free %s!", body_part(HAND));
+*/
+        You("%s\82Ì\8e©\97R\82ª\8cø\82©\82È\82¢\81I", body_part(HAND));
         return 0;
     } else if (obj == ublindf) {
+/*JP
         You("cannot use it while you're wearing it!");
+*/
+        You("\82»\82ê\82ð\90g\82É\82Â\82¯\82Ä\82¢\82é\82Ì\82Å\8eg\97p\82Å\82«\82È\82¢\81I");
         return 0;
     } else if (obj->cursed) {
         long old;
@@ -103,8 +128,13 @@ struct obj *obj;
         case 2:
             old = Glib;
             incr_itimeout(&Glib, rn1(10, 3));
+#if 0 /*JP*/
             Your("%s %s!", makeplural(body_part(HAND)),
                  (old ? "are filthier than ever" : "get slimy"));
+#else
+            Your("%s\82Í%s\81I", makeplural(body_part(HAND)),
+                 (old ? "\82Ü\82·\82Ü\82·\89\98\82È\82­\82È\82Á\82½" : "\82Ê\82é\82Ê\82é\82É\82È\82Á\82½"));
+#endif
             if (is_wet_towel(obj))
                 dry_a_towel(obj, -1, drying_feedback);
             return 1;
@@ -112,22 +142,42 @@ struct obj *obj;
             if (!ublindf) {
                 old = u.ucreamed;
                 u.ucreamed += rn1(10, 3);
+#if 0 /*JP*/
                 pline("Yecch! Your %s %s gunk on it!", body_part(FACE),
                       (old ? "has more" : "now has"));
+#else
+                pline("\83Q\83F\81[\81I\82 \82È\82½\82Ì%s\82Í%s\82×\82Æ\82×\82Æ\82É\82È\82Á\82½\81I", body_part(FACE),
+                      (old ? "\82à\82Á\82Æ" : ""));
+#endif
                 make_blinded(Blinded + (long) u.ucreamed - old, TRUE);
             } else {
                 const char *what;
 
+#if 0 /*JP*/
                 what = (ublindf->otyp == LENSES)
                            ? "lenses"
                            : (obj->otyp == ublindf->otyp) ? "other towel"
                                                           : "blindfold";
+#else
+                what = (ublindf->otyp == LENSES)
+                           ? "\83\8c\83\93\83Y"
+                           : (obj->otyp == ublindf->otyp) ? "\83^\83I\83\8b"
+                                                          : "\96Ú\89B\82µ";
+#endif
                 if (ublindf->cursed) {
+#if 0 /*JP*/
                     You("push your %s %s.", what,
                         rn2(2) ? "cock-eyed" : "crooked");
+#else
+                    pline("%s\82ª%s\81D", what,
+                        rn2(2) ? "\82¸\82ê\82½" : "\82ä\82ª\82ñ\82¾");
+#endif
                 } else {
                     struct obj *saved_ublindf = ublindf;
+/*JP
                     You("push your %s off.", what);
+*/
+                    pline("%s\82ª\82¸\82è\97\8e\82¿\82½\81D", what);
                     Blindf_off(ublindf);
                     dropx(saved_ublindf);
                 }
@@ -142,7 +192,10 @@ struct obj *obj;
 
     if (Glib) {
         Glib = 0;
+/*JP
         You("wipe off your %s.", makeplural(body_part(HAND)));
+*/
+        You("%s\82ð\90@\82¢\82½\81D", makeplural(body_part(HAND)));
         if (is_wet_towel(obj))
             dry_a_towel(obj, -1, drying_feedback);
         return 1;
@@ -150,21 +203,32 @@ struct obj *obj;
         Blinded -= u.ucreamed;
         u.ucreamed = 0;
         if (!Blinded) {
+/*JP
             pline("You've got the glop off.");
+*/
+            You("\82³\82Á\82Ï\82è\82µ\82½\81D");
             if (!gulp_blnd_check()) {
                 Blinded = 1;
                 make_blinded(0L, TRUE);
             }
         } else {
+/*JP
             Your("%s feels clean now.", body_part(FACE));
+*/
+            pline("%s\82Ì\89\98\82ê\82ð\90@\82«\82Æ\82Á\82½\81D", body_part(FACE));
         }
         if (is_wet_towel(obj))
             dry_a_towel(obj, -1, drying_feedback);
         return 1;
     }
 
+#if 0 /*JP*/
     Your("%s and %s are already clean.", body_part(FACE),
          makeplural(body_part(HAND)));
+#else
+    Your("%s\82â%s\82Í\89\98\82ê\82Ä\82¢\82È\82¢\81D", body_part(FACE),
+         makeplural(body_part(HAND)));
+#endif
 
     return 0;
 }
@@ -230,7 +294,10 @@ int rx, ry, *resp;
             Strcpy(buf, "They're dead");
         }
         /* variations on "He's dead, Jim." (Star Trek's Dr McCoy) */
+/*JP
         You_hear("a voice say, \"%s, Jim.\"", buf);
+*/
+        You_hear("\81u\82»\82¢\82Â\82Í\8e\80\82ñ\82Å\82é\82º\81C\83W\83\80\81v\82Æ\82¢\82¤\90º\82ª\95·\82±\82¦\82½\81D");
         *resp = 1;
         return TRUE;
 
@@ -247,9 +314,15 @@ int rx, ry, *resp;
                     corpse = nxtobj(corpse, CORPSE, TRUE);
             } while (corpse && !reviver);
         }
+#if 0 /*JP*/
         You("determine that %s unfortunate being%s %s%s dead.",
             one ? (here ? "this" : "that") : (here ? "these" : "those"),
             one ? "" : "s", one ? "is" : "are", reviver ? " mostly" : "");
+#else
+        You("%s\95s\8dK\82È\90\82«\95¨\82Í%s\8e\80\82ñ\82Å\82¢\82é\82Æ\8c\8b\98_\82µ\82½\81D",
+            here ? "\82±\82Ì" : "\82»\82Ì",
+            reviver ? "\82Ù\82Ú" : "");
+#endif
         return TRUE;
 
     } else { /* statue */
@@ -271,18 +344,30 @@ int rx, ry, *resp;
             struct trap *ttmp = t_at(rx, ry);
 
             if (ttmp && ttmp->ttyp == STATUE_TRAP)
+/*JP
                 how = "extraordinary";
+*/
+                how = "\8c\92\8dN\93I\82È";
             else if (Has_contents(statue))
+/*JP
                 how = "remarkable";
+*/
+                how = "\96ô\93®\93I\82È";
         }
 
+/*JP
         pline("%s is in %s health for a statue.", what, how);
+*/
+        pline("\92¤\91\9c\82Æ\82µ\82Ä\82Ì%s\82Í%s\8dì\95i\82¾\81D", what, how);
         return TRUE;
     }
     return FALSE; /* no corpse or statue */
 }
 
+/*JP
 static const char hollow_str[] = "a hollow sound.  This must be a secret %s!";
+*/
+static const char hollow_str[] = "\82¤\82Â\82ë\82È\89¹\82ð\95·\82¢\82½\81D\94é\96§\82Ì%s\82É\88á\82¢\82È\82¢\81I";
 
 /* Strictly speaking it makes no sense for usage of a stethoscope to
    not take any time; however, unless it did, the stethoscope would be
@@ -299,13 +384,23 @@ register struct obj *obj;
                             && !rn2(Role_if(PM_HEALER) ? 10 : 3));
 
     if (nohands(youmonst.data)) {
+#if 0 /*JP*/
         You("have no hands!"); /* not `body_part(HAND)' */
+#else
+        pline("\82 \82È\82½\82É\82Í\8eè\82ª\82È\82¢\81I");
+#endif
         return 0;
     } else if (Deaf) {
+/*JP
         You_cant("hear anything!");
+*/
+        You("\89½\82à\95·\82±\82¦\82È\82¢\81I");
         return 0;
     } else if (!freehand()) {
+/*JP
         You("have no free %s.", body_part(HAND));
+*/
+        You("%s\82Ì\8e©\97R\82ª\8cø\82©\82È\82¢\81D", body_part(HAND));
         return 0;
     }
     if (!getdir((char *) 0))
@@ -318,7 +413,10 @@ register struct obj *obj;
 
     if (u.usteed && u.dz > 0) {
         if (interference) {
+/*JP
             pline("%s interferes.", Monnam(u.ustuck));
+*/
+            pline("%s\82ª\82\82á\82Ü\82ð\82µ\82½\81D", Monnam(u.ustuck));
             mstatusline(u.ustuck);
         } else
             mstatusline(u.usteed);
@@ -327,23 +425,38 @@ register struct obj *obj;
         mstatusline(u.ustuck);
         return res;
     } else if (u.uswallow && interference) {
+/*JP
         pline("%s interferes.", Monnam(u.ustuck));
+*/
+        pline("%s\82ª\82\82á\82Ü\82ð\82µ\82½\81D", Monnam(u.ustuck));
         mstatusline(u.ustuck);
         return res;
     } else if (u.dz) {
         if (Underwater)
+/*JP
             You_hear("faint splashing.");
+*/
+            You_hear("\82©\82·\82©\82É\83o\83V\83\83\83o\83V\83\83\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
         else if (u.dz < 0 || !can_reach_floor(TRUE))
             cant_reach_floor(u.ux, u.uy, (u.dz < 0), TRUE);
         else if (its_dead(u.ux, u.uy, &res))
             ; /* message already given */
         else if (Is_stronghold(&u.uz))
+/*JP
             You_hear("the crackling of hellfire.");
+*/
+          You_hear("\92n\8d\96\82Ì\89\8a\82ª\83p\83`\83p\83`\94R\82¦\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D");
         else
+/*JP
             pline_The("%s seems healthy enough.", surface(u.ux, u.uy));
+*/
+            pline("%s\82Í\8f[\95ª\8c\92\8dN\82Ì\82æ\82¤\82¾\81D", surface(u.ux,u.uy));
         return res;
     } else if (obj->cursed && !rn2(2)) {
+/*JP
         You_hear("your heart beat.");
+*/
+        You_hear("\8e©\95ª\82Ì\90S\91\9f\82Ì\8cÛ\93®\82ð\95·\82¢\82½\81D");
         return res;
     }
     if (Stunned || (Confusion && !rn2(5)))
@@ -355,7 +468,10 @@ register struct obj *obj;
     rx = u.ux + u.dx;
     ry = u.uy + u.dy;
     if (!isok(rx, ry)) {
+/*JP
         You_hear("a faint typing noise.");
+*/
+        You_hear("\82©\82·\82©\82É\82¾\82ê\82©\82ª\83^\83C\83s\83\93\83O\82µ\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D");
         return 0;
     }
     if ((mtmp = m_at(rx, ry)) != 0) {
@@ -394,17 +510,26 @@ register struct obj *obj;
     if (glyph_is_invisible(levl[rx][ry].glyph)) {
         unmap_object(rx, ry);
         newsym(rx, ry);
+/*JP
         pline_The("invisible monster must have moved.");
+*/
+        pline_The("\8c©\82¦\82È\82¢\89ö\95¨\82Í\88Ú\93®\82µ\82Ä\82µ\82Ü\82Á\82½\82æ\82¤\82¾\81D");
     }
     lev = &levl[rx][ry];
     switch (lev->typ) {
     case SDOOR:
+/*JP
         You_hear(hollow_str, "door");
+*/
+        You_hear(hollow_str, "\94à");
         cvt_sdoor_to_door(lev); /* ->typ = DOOR */
         feel_newsym(rx, ry);
         return res;
     case SCORR:
+/*JP
         You_hear(hollow_str, "passage");
+*/
+        You_hear(hollow_str, "\92Ê\98H");
         lev->typ = CORR;
         unblock_point(rx, ry);
         feel_newsym(rx, ry);
@@ -412,22 +537,38 @@ register struct obj *obj;
     }
 
     if (!its_dead(rx, ry, &res))
+#if 0 /*JP*/
         You("hear nothing special."); /* not You_hear()  */
+#else
+        pline("\93Á\82É\89½\82à\95·\82±\82¦\82È\82¢\81D");
+#endif
     return res;
 }
 
+/*JP
 static const char whistle_str[] = "produce a %s whistling sound.";
+*/
+static const char whistle_str[] = "\93J\82ð\90\81\82¢\82Ä%s\89¹\82ð\82½\82Ä\82½\81D";
 
 STATIC_OVL void
 use_whistle(obj)
 struct obj *obj;
 {
     if (!can_blow(&youmonst)) {
+/*JP
         You("are incapable of using the whistle.");
+*/
+        You("\93J\82ð\8eg\82¤\94\\97Í\82ª\82È\82¢\81D");
     } else if (Underwater) {
+/*JP
         You("blow bubbles through %s.", yname(obj));
+*/
+        You("%s\82ð\92Ê\82µ\82Ä\96A\82ð\8fo\82µ\82½\81D", yname(obj));
     } else {
+/*JP
         You(whistle_str, obj->cursed ? "shrill" : "high");
+*/
+        You(whistle_str, obj->cursed ? "\95s\8bC\96¡\82È" : "\82©\82ñ\8d\82\82¢");
         wake_nearby();
     }
 }
@@ -439,18 +580,32 @@ struct obj *obj;
     register struct monst *mtmp, *nextmon;
 
     if (!can_blow(&youmonst)) {
+/*JP
         You("are incapable of using the whistle.");
+*/
+        You("\93J\82ð\8eg\82¤\94\\97Í\82ª\82È\82¢\81D");
     } else if (obj->cursed && !rn2(2)) {
+#if 0 /*JP*/
         You("produce a %shigh-pitched humming noise.",
             Underwater ? "very " : "");
+#else
+        You("%s\8d\82\82¢\92²\8eq\82Ì\82¤\82È\82é\82æ\82¤\82È\89¹\82ð\82½\82Ä\82½\81D",
+            Underwater ? "\82Æ\82Ä\82à" : "");
+#endif
         wake_nearby();
     } else {
         int pet_cnt = 0, omx, omy;
 
         /* it's magic!  it works underwater too (at a higher pitch) */
+#if 0 /*JP*/
         You(whistle_str,
             Hallucination ? "normal" : Underwater ? "strange, high-pitched"
                                                   : "strange");
+#else
+        You(whistle_str,
+            Hallucination ? "\93J\82Ì\82æ\82¤\82È" : Underwater ? "\95s\8ev\8bc\82È\8d\82\82¢\92²\8eq\82Ì"
+                                                  : "\95s\8ev\8bc\82È");
+#endif
         for (mtmp = fmon; mtmp; mtmp = nextmon) {
             nextmon = mtmp->nmon; /* trap might kill mon */
             if (DEADMONSTER(mtmp))
@@ -527,9 +682,15 @@ boolean feedback;
 
     if (feedback) {
         if (canseemon(mtmp))
+/*JP
             pline("%s pulls free of %s leash!", Monnam(mtmp), mhis(mtmp));
+*/
+            pline("%s\82Í\95R\82ð\88ø\82Á\82Ï\82Á\82Ä\93¦\82ê\82½\81I", Monnam(mtmp));
         else
+/*JP
             Your("leash falls slack.");
+*/
+            Your("\95R\82ª\82½\82é\82ñ\82Å\97\8e\82¿\82½\81D");
     }
     for (otmp = invent; otmp; otmp = otmp->nobj)
         if (otmp->otyp == LEASH && otmp->leashmon == (int) mtmp->m_id)
@@ -570,7 +731,10 @@ struct obj *obj;
     int spotmon;
 
     if (!obj->leashmon && number_leashed() >= MAXLEASHED) {
+/*JP
         You("cannot leash any more pets.");
+*/
+        You("\82±\82ê\88È\8fã\83y\83b\83g\82É\95R\82ð\82©\82¯\82ç\82ê\82È\82¢\81D");
         return;
     }
 
@@ -583,12 +747,18 @@ struct obj *obj;
             spotmon = 1;
             goto got_target;
         }
+/*JP
         pline("Leash yourself?  Very funny...");
+*/
+        pline("\8e©\95ª\82ð\94\9b\82é\81H\95Ï\82È\82Ì\81D\81D\81D");
         return;
     }
 
     if (!(mtmp = m_at(cc.x, cc.y))) {
+/*JP
         There("is no creature there.");
+*/
+        pline("\82»\82±\82É\82Í\90\82«\95¨\82Í\82¢\82È\82¢\81D");
         return;
     }
 
@@ -597,44 +767,78 @@ got_target:
 
     if (!mtmp->mtame) {
         if (!spotmon)
+/*JP
             There("is no creature there.");
+*/
+            pline("\82»\82±\82É\82Í\90\82«\95¨\82Í\82¢\82È\82¢\81D");
         else
+#if 0 /*JP*/
             pline("%s %s leashed!", Monnam(mtmp),
                   (!obj->leashmon) ? "cannot be" : "is not");
+#else
+          pline("%s\82Í\95R\82Å%s\81I", Monnam(mtmp),
+                  (!obj->leashmon) ? "\8c\8b\82×\82È\82¢" : "\8c\8b\82Î\82ê\82Ä\82¢\82È\82¢");
+#endif
         return;
     }
     if (!obj->leashmon) {
         if (mtmp->mleashed) {
+#if 0 /*JP*/
             pline("This %s is already leashed.",
                   spotmon ? l_monnam(mtmp) : "monster");
+#else
+            pline("%s\82Í\82·\82Å\82É\8c\8b\82Ñ\82Â\82¯\82ç\82ê\82Ä\82¢\82é\81D",
+                  spotmon ? l_monnam(mtmp) : "\89ö\95¨");
+#endif
             return;
         }
         if (!leashable(mtmp)) {
+#if 0 /*JP*/
             pline("The leash won't fit onto %s%s.", spotmon ? "your " : "",
                   l_monnam(mtmp));
+#else
+            pline("\95R\82Í%s\82É\8d\87\82í\82È\82¢\81D",
+                  l_monnam(mtmp));
+#endif
             return;
         }
 
+#if 0 /*JP*/
         You("slip the leash around %s%s.", spotmon ? "your " : "",
             l_monnam(mtmp));
+#else
+        You("%s\82ð\95R\82Å\8c\8b\82Ñ\82Â\82¯\82½\81D",
+            l_monnam(mtmp));
+#endif
         mtmp->mleashed = 1;
         obj->leashmon = (int) mtmp->m_id;
         mtmp->msleeping = 0;
         return;
     }
     if (obj->leashmon != (int) mtmp->m_id) {
+/*JP
         pline("This leash is not attached to that creature.");
+*/
+        pline("\82±\82Ì\95R\82Í\82»\82ê\82É\82Í\8c\8b\82Î\82ê\82Ä\82¢\82È\82¢\81D");
         return;
     } else {
         if (obj->cursed) {
+/*JP
             pline_The("leash would not come off!");
+*/
+            pline("\95R\82ª\82Í\82¸\82ê\82È\82¢\81I");
             obj->bknown = TRUE;
             return;
         }
         mtmp->mleashed = 0;
         obj->leashmon = 0;
+#if 0 /*JP*/
         You("remove the leash from %s%s.", spotmon ? "your " : "",
             l_monnam(mtmp));
+#else
+        You("%s\82©\82ç\95R\82ð\82Í\82¸\82µ\82½\81D",
+            l_monnam(mtmp));
+#endif
     }
     return;
 }
@@ -673,8 +877,12 @@ next_to_u()
                         && otmp->leashmon == (int) mtmp->m_id) {
                         if (otmp->cursed)
                             return FALSE;
+#if 0 /*JP*/
                         You_feel("%s leash go slack.",
                                  (number_leashed() > 1) ? "a" : "the");
+#else
+                        You("\95R\82ª\82½\82é\82ñ\82¾\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
+#endif
                         mtmp->mleashed = 0;
                         otmp->leashmon = 0;
                     }
@@ -717,7 +925,10 @@ register xchar x, y;
                     || (mtmp->mhp -= rnd(2)) <= 0) {
                     long save_pacifism = u.uconduct.killer;
 
+/*JP
                     Your("leash chokes %s to death!", mon_nam(mtmp));
+*/
+                    pline("%s\82Í\8di\82ß\8eE\82³\82ê\82½\81I",mon_nam(mtmp));
                     /* hero might not have intended to kill pet, but
                        that's the result of his actions; gain experience,
                        lose pacifism, take alignment and luck hit, make
@@ -727,17 +938,26 @@ register xchar x, y;
                     if (mtmp->mhp > 0)
                         u.uconduct.killer = save_pacifism;
                 } else {
+/*JP
                     pline("%s is choked by the leash!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\95R\82Å\8eñ\82ð\8di\82ß\82ç\82ê\82½\81I", Monnam(mtmp));
                     /* tameness eventually drops to 1 here (never 0) */
                     if (mtmp->mtame && rn2(mtmp->mtame))
                         mtmp->mtame--;
                 }
             } else {
                 if (um_dist(mtmp->mx, mtmp->my, 5)) {
+/*JP
                     pline("%s leash snaps loose!", s_suffix(Monnam(mtmp)));
+*/
+                    pline("%s\82Ì\95R\82Í\83p\83`\83\93\82Æ\8aO\82ê\82½\81I", Monnam(mtmp));
                     m_unleash(mtmp, FALSE);
                 } else {
+/*JP
                     You("pull on the leash.");
+*/
+                    You("\95R\82ð\88ø\82Á\82Ï\82Á\82½\81D");
                     if (mtmp->data->msound != MS_SILENT)
                         switch (rn2(3)) {
                         case 0:
@@ -761,14 +981,24 @@ beautiful()
 {
     return ((ACURR(A_CHA) > 14)
                ? ((poly_gender() == 1)
+#if 0 /*JP*/
                      ? "beautiful"
                      : "handsome")
                : "ugly");
+#else
+/*JP \8cê\8a²\82Å\8eg\82¤ */
+                     ? "\94ü\82µ"
+                     : "\82è\82è\82µ")
+               : "\8fX");
+#endif
 }
 
 #define WEAK 3 /* from eat.c */
 
+/*JP
 static const char look_str[] = "look %s.";
+*/
+static const char look_str[] = "%s\8c©\82¦\82é\81D";
 
 STATIC_OVL int
 use_mirror(obj)
@@ -788,21 +1018,36 @@ struct obj *obj;
     mirror = simpleonames(obj); /* "mirror" or "looking glass" */
     if (obj->cursed && !rn2(2)) {
         if (!Blind)
+/*JP
             pline_The("%s fogs up and doesn't reflect!", mirror);
+*/
+            pline("%s\82Í\93Ü\82è\81C\89f\82ç\82È\82­\82È\82Á\82½\81I", mirror);
         return 1;
     }
     if (!u.dx && !u.dy && !u.dz) {
         if (!useeit) {
+/*JP
             You_cant("see your %s %s.", uvisage, body_part(FACE));
+*/
+            You_cant("\8e©\95ª\82Ì%s\82¢%s\82ð\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", uvisage, body_part(FACE));
         } else {
             if (u.umonnum == PM_FLOATING_EYE) {
                 if (Free_action) {
+/*JP
                     You("stiffen momentarily under your gaze.");
+*/
+                    pline("\88ê\8fu\82 \82È\82½\82Ì\82É\82ç\82Ý\82Å\8dd\92¼\82µ\82½\81D");
                 } else {
                     if (Hallucination)
+/*JP
                         pline("Yow!  The %s stares back!", mirror);
+*/
+                        pline("\82¨\82ì\81I%s\82ª\82 \82È\82½\82ð\82É\82ç\82Ý\95Ô\82µ\82½\81I", mirror);
                     else
+/*JP
                         pline("Yikes!  You've frozen yourself!");
+*/
+                        pline("\82¨\82ì\81I\82 \82È\82½\82Í\93®\82¯\82È\82­\82È\82Á\82½\81I");
                     if (!Hallucination || !rn2(4)) {
                         nomul(-rnd(MAXULEV + 6 - u.ulevel));
                         multi_reason = "gazing into a mirror";
@@ -810,18 +1055,33 @@ struct obj *obj;
                     nomovemsg = 0; /* default, "you can move again" */
                 }
             } else if (youmonst.data->mlet == S_VAMPIRE)
+/*JP
                 You("don't have a reflection.");
+*/
+                You("\8b¾\82É\89f\82ç\82È\82©\82Á\82½\81D");
             else if (u.umonnum == PM_UMBER_HULK) {
+/*JP
                 pline("Huh?  That doesn't look like you!");
+*/
+                pline("\82Ù\82¦\81H\8eÊ\82Á\82Ä\82é\82Ì\82Í\82 \82È\82½\82\82á\82È\82¢\82Ý\82½\82¢\82¾\81I");
                 make_confused(HConfusion + d(3, 4), FALSE);
             } else if (Hallucination)
                 You(look_str, hcolor((char *) 0));
             else if (Sick)
+/*JP
                 You(look_str, "peaked");
+*/
+                You(look_str, "\8aç\90F\82ª\88«\82­");
             else if (u.uhs >= WEAK)
+/*JP
                 You(look_str, "undernourished");
+*/
+                You(look_str, "\89h\97{\8e¸\92²\82Ì\82æ\82¤\82É");
             else
+/*JP
                 You("look as %s as ever.", uvisage);
+*/
+                You("\82 \82¢\82©\82í\82ç\82¸%s\82­\8c©\82¦\82é\81D", uvisage);
         }
         return 1;
     }
@@ -833,13 +1093,21 @@ struct obj *obj;
     }
     if (Underwater) {
         if (useeit)
+#if 0 /*JP*/
             You(Hallucination ? "give the fish a chance to fix their makeup."
                               : "reflect the murky water.");
+#else
+            You(Hallucination ? "\8b\9b\82É\89»\8fÏ\92¼\82µ\82Ì\8b@\89ï\82ð\97^\82¦\82½\81D"
+                              : "\82 \82È\82½\82Í\97\84\82ñ\82¾\90\85\82ð\89f\82µ\82½\81D");
+#endif
         return 1;
     }
     if (u.dz) {
         if (useeit)
+/*JP
             You("reflect the %s.",
+*/
+            You("%s\82ð\89f\82µ\82½\81D",
                 (u.dz > 0) ? surface(u.ux, u.uy) : ceiling(u.ux, u.uy));
         return 1;
     }
@@ -861,28 +1129,50 @@ struct obj *obj;
     mlet = mtmp->data->mlet;
     if (mtmp->msleeping) {
         if (vis)
+/*JP
             pline("%s is too tired to look at your %s.", Monnam(mtmp),
+*/
+            pline("%s\82Í\82Æ\82Ä\82à\94æ\82ê\82Ä\82¢\82Ä%s\82ð\8c©\82é\82Ç\82±\82ë\82\82á\82È\82¢\81D", Monnam(mtmp),
                   mirror);
     } else if (!mtmp->mcansee) {
         if (vis)
+/*JP
             pline("%s can't see anything right now.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8d¡\82Ì\82Æ\82±\82ë\89½\82à\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", Monnam(mtmp));
     } else if (invis_mirror && !perceives(mtmp->data)) {
         if (vis)
+/*JP
             pline("%s fails to notice your %s.", Monnam(mtmp), mirror);
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì%s\82É\8bC\95t\82©\82È\82©\82Á\82½\81D", Monnam(mtmp), mirror);
         /* infravision doesn't produce an image in the mirror */
     } else if ((how_seen & SEENMON) == MONSEEN_INFRAVIS) {
         if (vis) /* (redundant) */
+#if 0 /*JP*/
             pline("%s is too far away to see %sself in the dark.",
                   Monnam(mtmp), mhim(mtmp));
+#else
+            pline("%s\82Í\88Ã\88Å\82Å\8e©\95ª\8e©\90g\82ð\8c©\82é\82É\82Í\89\93\82·\82¬\82é\81D", Monnam(mtmp));
+#endif
         /* some monsters do special things */
     } else if (mlet == S_VAMPIRE || mlet == S_GHOST || is_vampshifter(mtmp)) {
         if (vis)
+/*JP
             pline("%s doesn't have a reflection.", Monnam(mtmp));
+*/
+            pline("%s\82Í%s\82É\89f\82ç\82È\82¢\81D", Monnam(mtmp), mirror);
     } else if (monable && mtmp->data == &mons[PM_MEDUSA]) {
+/*JP
         if (mon_reflects(mtmp, "The gaze is reflected away by %s %s!"))
+*/
+        if (mon_reflects(mtmp, "\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81I"))
             return 1;
         if (vis)
+/*JP
             pline("%s is turned to stone!", Monnam(mtmp));
+*/
+            pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mtmp));
         stoned = TRUE;
         killed(mtmp);
     } else if (monable && mtmp->data == &mons[PM_FLOATING_EYE]) {
@@ -890,24 +1180,43 @@ struct obj *obj;
         if (!rn2(4))
             tmp = 120;
         if (vis)
+/*JP
             pline("%s is frozen by its reflection.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8e©\95ª\82Ì\8ep\82ð\8c©\82Ä\93®\82¯\82È\82­\82È\82Á\82½\81D", Monnam(mtmp));
         else
+/*JP
             You_hear("%s stop moving.", something);
+*/
+            You_hear("\89½\82©\82ª\93®\82«\82ð\82Æ\82ß\82½\89¹\82ð\95·\82¢\82½\81D");
         paralyze_monst(mtmp, (int) mtmp->mfrozen + tmp);
     } else if (monable && mtmp->data == &mons[PM_UMBER_HULK]) {
         if (vis)
+/*JP
             pline("%s confuses itself!", Monnam(mtmp));
+*/
+            pline("%s\82Í\8d¬\97\90\82µ\82½\81I", Monnam(mtmp));
         mtmp->mconf = 1;
     } else if (monable && (mlet == S_NYMPH || mtmp->data == &mons[PM_SUCCUBUS]
                            || mtmp->data == &mons[PM_INCUBUS])) {
         if (vis) {
             char buf[BUFSZ]; /* "She" or "He" */
 
+#if 0 /*JP*/
             pline("%s admires %sself in your %s.", Monnam(mtmp), mhim(mtmp),
                   mirror);
+#else
+            pline("%s\82Í\8e©\95ª\82Ì\8ep\82É\82¤\82Á\82Æ\82è\82µ\82½\81D", Monnam(mtmp));
+#endif
+/*JP
             pline("%s takes it!", upstart(strcpy(buf, mhe(mtmp))));
+*/
+            pline("%s\82Í\82»\82ê\82ð\92D\82Á\82½\81I", upstart(strcpy(buf, mhe(mtmp))));
         } else
+/*JP
             pline("It steals your %s!", mirror);
+*/
+            pline("\89½\8eÒ\82©\82ª\82 \82È\82½\82Ì%s\82ð\93\90\82ñ\82¾\81I", mirror);
         setnotworn(obj); /* in case mirror was wielded */
         freeinv(obj);
         (void) mpickobj(mtmp, obj);
@@ -916,7 +1225,10 @@ struct obj *obj;
     } else if (!is_unicorn(mtmp->data) && !humanoid(mtmp->data)
                && (!mtmp->minvis || perceives(mtmp->data)) && rn2(5)) {
         if (vis)
+/*JP
             pline("%s is frightened by its reflection.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8e©\95ª\82Ì\8ep\82ð\8c©\82Ä\95|\82ª\82Á\82½\81D", Monnam(mtmp));
         monflee(mtmp, d(2, 4), FALSE, FALSE);
     } else if (!Blind) {
         if (mtmp->minvis && !See_invisible)
@@ -924,10 +1236,17 @@ struct obj *obj;
         else if ((mtmp->minvis && !perceives(mtmp->data))
                  /* redundant: can't get here if these are true */
                  || !haseyes(mtmp->data) || notonhead || !mtmp->mcansee)
+#if 0 /*JP*/
             pline("%s doesn't seem to notice %s reflection.", Monnam(mtmp),
                   mhis(mtmp));
+#else
+            pline("%s\82Í\8e©\95ª\82Ì\8ep\82É\8bC\82ª\82Â\82¢\82Ä\82È\82¢\82æ\82¤\82¾\81D", Monnam(mtmp));
+#endif
         else
+/*JP
             pline("%s ignores %s reflection.", Monnam(mtmp), mhis(mtmp));
+*/
+            pline("%s\82Í\8e©\95ª\82Ì\8ep\82ð\96³\8e\8b\82µ\82½\81D", Monnam(mtmp));
     }
     return 1;
 }
@@ -944,17 +1263,26 @@ struct obj **optr;
                 (obj->otyp == BELL_OF_OPENING && invocation_pos(u.ux, u.uy)
                  && !On_stairs(u.ux, u.uy));
 
+/*JP
     You("ring %s.", the(xname(obj)));
+*/
+    You("%s\82ð\96Â\82ç\82µ\82½\81D", the(xname(obj)));
 
     if (Underwater || (u.uswallow && ordinary)) {
 #ifdef AMIGA
         amii_speaker(obj, "AhDhGqEqDhEhAqDqFhGw", AMII_MUFFLED_VOLUME);
 #endif
+/*JP
         pline("But the sound is muffled.");
+*/
+        pline("\82µ\82©\82µ\89¹\82Í\82©\82«\8fÁ\82³\82ê\82½\81D");
 
     } else if (invoking && ordinary) {
         /* needs to be recharged... */
+/*JP
         pline("But it makes no sound.");
+*/
+        pline("\82µ\82©\82µ\81C\89¹\82Í\96Â\82ç\82È\82©\82Á\82½\81D");
         learno = TRUE; /* help player figure out why */
 
     } else if (ordinary) {
@@ -968,9 +1296,15 @@ struct obj **optr;
             && !(mvitals[PM_MOUNTAIN_NYMPH].mvflags & G_GONE)
             && (mtmp = makemon(mkclass(S_NYMPH, 0), u.ux, u.uy, NO_MINVENT))
                    != 0) {
+/*JP
             You("summon %s!", a_monnam(mtmp));
+*/
+            You("%s\82ð\8f¢\8a«\82µ\82½\81I", a_monnam(mtmp));
             if (!obj_resists(obj, 93, 100)) {
+/*JP
                 pline("%s shattered!", Tobjnam(obj, "have"));
+*/
+                pline("%s\82Í\95²\81X\82É\82È\82Á\82½\81I", xname(obj));
                 useup(obj);
                 *optr = 0;
             } else
@@ -1008,7 +1342,10 @@ struct obj **optr;
             wakem = TRUE;
 
         } else if (invoking) {
+/*JP
             pline("%s an unsettling shrill sound...", Tobjnam(obj, "issue"));
+*/
+            pline("%s\82Í\95s\8bC\96¡\82È\89s\82¢\89¹\82ð\8fo\82µ\82½\81D\81D\81D", xname(obj));
 #ifdef AMIGA
             amii_speaker(obj, "aefeaefeaefeaefeaefe", AMII_LOUDER_VOLUME);
 #endif
@@ -1035,11 +1372,17 @@ struct obj **optr;
                 pline1(nothing_happens);
                 break;
             case 1:
+/*JP
                 pline("%s opens...", Something);
+*/
+                pline("\89½\82©\82ª\8aJ\82¢\82½\81D\81D\81D");
                 learno = TRUE;
                 break;
             default:
+/*JP
                 pline("Things open around you...");
+*/
+                pline("\82Ü\82í\82è\82Ì\95¨\82ª\8aJ\82¢\82½\81D\81D\81D");
                 learno = TRUE;
                 break;
             }
@@ -1068,39 +1411,72 @@ STATIC_OVL void
 use_candelabrum(obj)
 register struct obj *obj;
 {
+#if 0 /*JP*//* not used */
     const char *s = (obj->spe != 1) ? "candles" : "candle";
+#endif
 
     if (obj->lamplit) {
+/*JP
         You("snuff the %s.", s);
+*/
+        You("\82ë\82¤\82»\82­\82ð\90\81\82«\8fÁ\82µ\82½\81D");
         end_burn(obj, TRUE);
         return;
     }
     if (obj->spe <= 0) {
+/*JP
         pline("This %s has no %s.", xname(obj), s);
+*/
+        pline("\82±\82Ì%s\82É\82Í\82ë\82¤\82»\82­\82ª\82È\82¢\81D", xname(obj));
         return;
     }
     if (Underwater) {
+/*JP
         You("cannot make fire under water.");
+*/
+        You("\90\85\92\86\82Å\89Î\82ð\82¨\82±\82¹\82È\82¢\81D");
         return;
     }
     if (u.uswallow || obj->cursed) {
         if (!Blind)
+#if 0 /*JP*/
             pline_The("%s %s for a moment, then %s.", s, vtense(s, "flicker"),
                       vtense(s, "die"));
+#else
+            pline("\82ë\82¤\82»\82­\82Ì\89\8a\82Í\82µ\82Î\82ç\82­\93_\96Å\82µ\81C\8fÁ\82¦\82½\81D");
+#endif
         return;
     }
     if (obj->spe < 7) {
+#if 0 /*JP*/
         There("%s only %d %s in %s.", vtense(s, "are"), obj->spe, s,
               the(xname(obj)));
+#else
+        pline("%s\82É\82Í\82½\82Á\82½%d\96{\82Ì\82ë\82¤\82»\82­\82µ\82©\82È\82¢\81D",
+              xname(obj), obj->spe);
+#endif
         if (!Blind)
+#if 0 /*JP*/
             pline("%s lit.  %s dimly.", obj->spe == 1 ? "It is" : "They are",
                   Tobjnam(obj, "shine"));
+#else
+            pline("%s\82É\89Î\82ð\82Â\82¯\82½\81D%s\82Í\82Ù\82Ì\82©\82É\8bP\82¢\82½\81D",
+                  xname(obj), xname(obj));
+#endif
     } else {
+#if 0 /*JP*/
         pline("%s's %s burn%s", The(xname(obj)), s,
               (Blind ? "." : " brightly!"));
+#else
+        pline("%s\82Ì\82ë\82¤\82»\82­\82Í%s\94R\82¦\82 \82ª\82Á\82½\81I", The(xname(obj)),
+              (Blind ? "" : "\96¾\82é\82­"));
+#endif
     }
     if (!invocation_pos(u.ux, u.uy) || On_stairs(u.ux, u.uy)) {
+/*JP
         pline_The("%s %s being rapidly consumed!", s, vtense(s, "are"));
+*/
+        pline("\82ë\82¤\82»\82­\82Í\82·\82²\82¢\91¬\82³\82Å\94R\82¦\8en\82ß\82½\81I");
         /* this used to be obj->age /= 2, rounding down; an age of
            1 would yield 0, confusing begin_burn() and producing an
            unlightable, unrefillable candelabrum; round up instead */
@@ -1108,9 +1484,15 @@ register struct obj *obj;
     } else {
         if (obj->spe == 7) {
             if (Blind)
+/*JP
                 pline("%s a strange warmth!", Tobjnam(obj, "radiate"));
+*/
+                pline("\8aï\96­\82È\92g\82©\82³\82ð%s\82É\8a´\82\82½\81I", xname(obj));
             else
+/*JP
                 pline("%s with a strange light!", Tobjnam(obj, "glow"));
+*/
+                pline("%s\82Í\8aï\96­\82È\8cõ\82ð\94­\82µ\82Ä\82¢\82é\81I", xname(obj));
         }
         obj->known = 1;
     }
@@ -1123,7 +1505,10 @@ struct obj **optr;
 {
     register struct obj *obj = *optr;
     register struct obj *otmp;
+/*JP
     const char *s = (obj->quan != 1) ? "candles" : "candle";
+*/
+    const char *s = "\82ë\82¤\82»\82­";
     char qbuf[QBUFSZ], qsfx[QBUFSZ], *q;
 
     if (u.uswallow) {
@@ -1140,6 +1525,9 @@ struct obj **optr;
     /* first, minimal candelabrum suffix for formatting candles */
     Sprintf(qsfx, " to\033%s?", thesimpleoname(otmp));
     /* next, format the candles as a prefix for the candelabrum */
+/*JP
+    (void) safe_qbuf(qbuf, "Attach ", qsfx, obj, yname, thesimpleoname, s);
+*/
     (void) safe_qbuf(qbuf, "Attach ", qsfx, obj, yname, thesimpleoname, s);
     /* strip temporary candelabrum suffix */
     if ((q = strstri(qbuf, " to\033")) != 0)
@@ -1157,23 +1545,44 @@ struct obj **optr;
             s = (obj->quan != 1) ? "candles" : "candle";
         } else
             *optr = 0;
+#if 0 /*JP*/
         You("attach %ld%s %s to %s.", obj->quan, !otmp->spe ? "" : " more", s,
             the(xname(otmp)));
+#else
+        You("%ld\96{\82Ì\82ë\82¤\82»\82­\82ð%s%s\82Ö\8eæ\82è\82Â\82¯\82½\81D",
+            obj->quan, !otmp->spe ? "" : "\82³\82ç\82É",
+            xname(otmp));
+#endif
         if (!otmp->spe || otmp->age > obj->age)
             otmp->age = obj->age;
         otmp->spe += (int) obj->quan;
         if (otmp->lamplit && !obj->lamplit)
+/*JP
             pline_The("new %s magically %s!", s, vtense(s, "ignite"));
+*/
+            pline("\90V\82µ\82¢\82ë\82¤\82»\82­\82Í\95s\8ev\8bc\82È\89\8a\82ð\82 \82°\82½\81I");
         else if (!otmp->lamplit && obj->lamplit)
+/*JP
             pline("%s out.", (obj->quan > 1L) ? "They go" : "It goes");
+*/
+            pline("\89\8a\82Í\8fÁ\82¦\82½\81D");
         if (obj->unpaid)
+#if 0 /*JP*/
             verbalize("You %s %s, you bought %s!",
                       otmp->lamplit ? "burn" : "use",
                       (obj->quan > 1L) ? "them" : "it",
                       (obj->quan > 1L) ? "them" : "it");
+#else
+            verbalize("\89Î\82ð\82Â\82¯\82½\82È\82ç\81C\94\83\82Á\82Ä\82à\82ç\82¨\82¤\81I");
+#endif
         if (obj->quan < 7L && otmp->spe == 7)
+#if 0 /*JP*/
             pline("%s now has seven%s candles attached.", The(xname(otmp)),
                   otmp->lamplit ? " lit" : "");
+#else
+            pline("%s\82É\82Í\82·\82Å\82É7\96{\82Ì%s\82ë\82¤\82»\82­\82ª\8eæ\82è\82Â\82¯\82ç\82ê\82Ä\82¢\82é\81D",
+                  The(xname(otmp)), otmp->lamplit ? "\89Î\82Ì\82Â\82¢\82½" : "");
+#endif
         /* candelabrum's light range might increase */
         if (otmp->lamplit)
             obj_merge_light_sources(otmp, otmp);
@@ -1196,13 +1605,20 @@ struct obj *otmp;
         && otmp->lamplit) {
         char buf[BUFSZ];
         xchar x, y;
+#if 0 /*JP*//* not used */
         boolean many = candle ? (otmp->quan > 1L) : (otmp->spe > 1);
+#endif
 
         (void) get_obj_location(otmp, &x, &y, 0);
         if (otmp->where == OBJ_MINVENT ? cansee(x, y) : !Blind)
+#if 0 /*JP*/
             pline("%s%scandle%s flame%s extinguished.", Shk_Your(buf, otmp),
                   (candle ? "" : "candelabrum's "), (many ? "s'" : "'s"),
                   (many ? "s are" : " is"));
+#else
+            pline("%s%s\82ë\82¤\82»\82­\82Ì\89\8a\82Í\8fÁ\82¦\82½\81D", Shk_Your(buf, otmp),
+                  candle ? "" : "\90C\91ä\82Ì");
+#endif
         end_burn(otmp, TRUE);
         return TRUE;
     }
@@ -1223,7 +1639,10 @@ struct obj *obj;
             || obj->otyp == BRASS_LANTERN || obj->otyp == POT_OIL) {
             (void) get_obj_location(obj, &x, &y, 0);
             if (obj->where == OBJ_MINVENT ? cansee(x, y) : !Blind)
+/*JP
                 pline("%s %s out!", Yname2(obj), otense(obj, "go"));
+*/
+                pline("%s\82Í\8fÁ\82¦\82½\81I", Yname2(obj));
             end_burn(obj, TRUE);
             return TRUE;
         }
@@ -1255,14 +1674,21 @@ struct obj *obj;
              || obj->otyp == BRASS_LANTERN) && obj->cursed && !rn2(2))
             return FALSE;
         if (obj->where == OBJ_MINVENT ? cansee(x, y) : !Blind)
+/*JP
             pline("%s %s light!", Yname2(obj), otense(obj, "catch"));
+*/
+            pline("%s\82Ì\96¾\82©\82è\82ª\82Â\82¢\82½\81I", Yname2(obj));
         if (obj->otyp == POT_OIL)
             makeknown(obj->otyp);
         if (carried(obj) && obj->unpaid && costly_spot(u.ux, u.uy)) {
             /* if it catches while you have it, then it's your tough luck */
             check_unpaid(obj);
+#if 0 /*JP:T*/
             verbalize("That's in addition to the cost of %s %s, of course.",
                       yname(obj), obj->quan == 1L ? "itself" : "themselves");
+#else
+            verbalize("\82±\82ê\82Í\82à\82¿\82ë\82ñ%s\82Ì\92l\92i\82Æ\82Í\95Ê\82¾\82æ\81D", Yname2(obj));
+#endif
             bill_dummy_object(obj);
         }
         begin_burn(obj, FALSE);
@@ -1287,36 +1713,64 @@ struct obj *obj;
         return;
     }
     if (Underwater) {
+#if 0 /*JP*/
         pline(!Is_candle(obj) ? "This is not a diving lamp"
                               : "Sorry, fire and water don't mix.");
+#else
+        pline(!Is_candle(obj) ? "\82±\82ê\82Í\90ö\90\85\97p\82Ì\83\89\83\93\83v\82\82á\82È\82¢\81D"
+                              : "\8ec\94O\82È\82ª\82ç\81C\89Î\82Æ\90\85\82Í\82Ü\82´\82ç\82È\82¢\81D");
+#endif
         return;
     }
     /* magic lamps with an spe == 0 (wished for) cannot be lit */
     if ((!Is_candle(obj) && obj->age == 0)
         || (obj->otyp == MAGIC_LAMP && obj->spe == 0)) {
         if (obj->otyp == BRASS_LANTERN)
+/*JP
             Your("lamp has run out of power.");
+*/
+            Your("\83\89\83\93\83v\82Ì\93d\97Í\82ð\8eg\82¢\90Ø\82Á\82Ä\82µ\82Ü\82Á\82½\81D");
         else
+/*JP
             pline("This %s has no oil.", xname(obj));
+*/
+            pline("\82±\82Ì%s\82É\82Í\82à\82¤\83I\83C\83\8b\82ª\82È\82¢\81D", xname(obj));
         return;
     }
     if (obj->cursed && !rn2(2)) {
         if (!Blind)
+#if 0 /*JP*/
             pline("%s for a moment, then %s.", Tobjnam(obj, "flicker"),
                   otense(obj, "die"));
+#else
+            pline("%s\82Í\82µ\82Î\82ç\82­\82Ì\8aÔ\93_\96Å\82µ\81C\8fÁ\82¦\82½\81D",
+                  xname(obj));
+#endif
     } else {
         if (obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP
             || obj->otyp == BRASS_LANTERN) {
             check_unpaid(obj);
+/*JP
             pline("%slamp is now on.", Shk_Your(buf, obj));
+*/
+            pline("%s\83\89\83\93\83v\82É\93\94\82ª\93\94\82Á\82½\81D", Shk_Your(buf, obj));
         } else { /* candle(s) */
+#if 0 /*JP*/
             pline("%s flame%s %s%s", s_suffix(Yname2(obj)), plur(obj->quan),
                   otense(obj, "burn"), Blind ? "." : " brightly!");
+#else
+            pline("%s\82Í%s\94R\82¦\82 \82ª\82Á\82½\81I",
+                  Yname2(obj), Blind ? "" : "\96¾\82é\82­");
+#endif
             if (obj->unpaid && costly_spot(u.ux, u.uy)
                 && obj->age == 20L * (long) objects[obj->otyp].oc_cost) {
+#if 0 /*JP*/
                 const char *ithem = (obj->quan > 1L) ? "them" : "it";
 
                 verbalize("You burn %s, you bought %s!", ithem, ithem);
+#else
+                verbalize("\93\94\82ð\82Â\82¯\82½\82È\82ç\81C\94\83\82Á\82Ä\82à\82ç\82¨\82¤\81I");
+#endif
                 bill_dummy_object(obj);
             }
         }
@@ -1337,7 +1791,10 @@ struct obj *obj; /* obj is a potion of oil */
     }
 
     if (obj->lamplit) {
+/*JP
         You("snuff the lit potion.");
+*/
+        You("\96û\95r\82Ì\89Î\82ð\90\81\82«\8fÁ\82µ\82½\81D");
         end_burn(obj, TRUE);
         /*
          * Free & add to re-merge potion.  This will average the
@@ -1348,7 +1805,10 @@ struct obj *obj; /* obj is a potion of oil */
         (void) addinv(obj);
         return;
     } else if (Underwater) {
+/*JP
         There("is not enough oxygen to sustain a fire.");
+*/
+        pline("\89Î\82ð\82Â\82¯\82é\82Ì\82É\8f\\95ª\82È\8e_\91f\82ª\82È\82¢\81D");
         return;
     }
 
@@ -1356,15 +1816,23 @@ struct obj *obj; /* obj is a potion of oil */
     if (split1off)
         obj = splitobj(obj, 1L);
 
+#if 0 /*JP*/
     You("light %spotion.%s", shk_your(buf, obj),
         Blind ? "" : "  It gives off a dim light.");
+#else
+    You("%s\96û\95r\82É\89Î\82ð\82Â\82¯\82½\81D%s", shk_your(buf, obj),
+        Blind ? "" : "\96û\95r\82Í\88Ã\82¢\8cõ\82ð\82Í\82È\82Á\82½\81D");
+#endif
 
     if (obj->unpaid && costly_spot(u.ux, u.uy)) {
         /* Normally, we shouldn't both partially and fully charge
          * for an item, but (Yendorian Fuel) Taxes are inevitable...
          */
         check_unpaid(obj);
+/*JP
         verbalize("That's in addition to the cost of the potion, of course.");
+*/
+        verbalize("\82±\82ê\82Í\82à\82¿\82ë\82ñ\96û\95r\82Ì\92l\92i\82Æ\82Í\95Ê\82¾\82æ\81D");
         bill_dummy_object(obj);
     }
     makeknown(obj->otyp);
@@ -1373,7 +1841,10 @@ struct obj *obj; /* obj is a potion of oil */
     if (split1off) {
         obj_extract_self(obj); /* free from inv */
         obj->nomerge = 1;
+/*JP
         obj = hold_another_object(obj, "You drop %s!", doname(obj),
+*/
+        obj = hold_another_object(obj, "\82 \82È\82½\82Í%s\82ð\97\8e\82µ\82½\81I", doname(obj),
                                   (const char *) 0);
         if (obj)
             obj->nomerge = 0;
@@ -1392,7 +1863,10 @@ dorub()
             use_stone(obj);
             return 1;
         } else {
+/*JP
             pline("Sorry, I don't know how to use that.");
+*/
+            pline("\8ec\94O\81D\8eg\82¢\95û\82ª\82í\82©\82ç\82È\82¢\81D");
             return 0;
         }
     }
@@ -1418,13 +1892,22 @@ dorub()
             makeknown(MAGIC_LAMP);
             update_inventory();
         } else if (rn2(2)) {
+/*JP
             You("%s smoke.", !Blind ? "see a puff of" : "smell");
+*/
+            pline("\82¯\82Þ\82è%s\81D", !Blind ? "\82ª\95\91\82¢\82 \82ª\82Á\82½" : "\82Ì\93õ\82¢\82ª\82µ\82½");
         } else
             pline1(nothing_happens);
     } else if (obj->otyp == BRASS_LANTERN) {
         /* message from Adventure */
+/*JP
         pline("Rubbing the electric lamp is not particularly rewarding.");
+*/
+        pline("\93d\8bC\83\89\83\93\83v\82ð\82±\82·\82Á\82Ä\82à\88Ó\96¡\82Í\82È\82¢\82Æ\8ev\82¤\82ª\81D\81D\81D");
+/*JP
         pline("Anyway, nothing exciting happens.");
+*/
+        pline("\82â\82Á\82Ï\82è\81C\89½\82à\8bN\82«\82È\82©\82Á\82½\81D");
     } else
         pline1(nothing_happens);
     return 1;
@@ -1447,19 +1930,31 @@ boolean showmsg;
          * horse.  After all, what shape is the knight piece in chess?
          */
         if (showmsg)
+/*JP
             pline("Illegal move!");
+*/
+            pline("\82»\82Ì\88Ú\93®\82Í\8cj\94n\92µ\82Ñ\82\82á\82È\82¢\81I");
         return FALSE;
     } else if (distu(x, y) > (magic ? 6 + magic * 3 : 9)) {
         if (showmsg)
+/*JP
             pline("Too far!");
+*/
+            pline("\89\93\82·\82¬\82é\81I");
         return FALSE;
     } else if (!cansee(x, y)) {
         if (showmsg)
+/*JP
             You("cannot see where to land!");
+*/
+            You("\92\85\92n\93_\82ª\8c©\82¦\82È\82¢\81I");
         return FALSE;
     } else if (!isok(x, y)) {
         if (showmsg)
+/*JP
             You("cannot jump there!");
+*/
+            You("\82»\82±\82É\82Í\94ò\82×\82È\82¢\81I");
         return FALSE;
     }
     return TRUE;
@@ -1498,10 +1993,16 @@ int magic; /* 0=Physical, otherwise skill level */
     if (!magic && (nolimbs(youmonst.data) || slithy(youmonst.data))) {
         /* normally (nolimbs || slithy) implies !Jumping,
            but that isn't necessarily the case for knights */
+/*JP
         You_cant("jump; you have no legs!");
+*/
+        pline("\91«\82ª\96³\82­\82Ä\82Í\92µ\82×\82È\82¢\81I");
         return 0;
     } else if (!magic && !Jumping) {
+/*JP
         You_cant("jump very far.");
+*/
+        You_cant("\82»\82ñ\82È\89\93\82­\82Ü\82Å\92µ\82×\82È\82¢\81D");
         return 0;
     /* if steed is immobile, can't do physical jump but can do spell one */
     } else if (!magic && u.usteed && stucksteed(FALSE)) {
@@ -1509,42 +2010,75 @@ int magic; /* 0=Physical, otherwise skill level */
         return 0;
     } else if (u.uswallow) {
         if (magic) {
+/*JP
             You("bounce around a little.");
+*/
+            pline("\94½\93®\82ð\82Â\82¯\82½\81D");
             return 1;
         }
+/*JP
         pline("You've got to be kidding!");
+*/
+        pline("\8fç\92k\82Í\82æ\82µ\82±\82³\82ñ\81I");
         return 0;
     } else if (u.uinwater) {
         if (magic) {
+/*JP
             You("swish around a little.");
+*/
+            pline("\83X\83C\83X\83C\82Æ\89j\82¢\82¾\81D");
             return 1;
         }
+/*JP
         pline("This calls for swimming, not jumping!");
+*/
+        pline("\82»\82ê\82Í\81w\89j\82®\81x\82Å\82 \82Á\82Ä\81C\81w\92µ\82Ô\81x\82\82á\82È\82¢\81I");
         return 0;
     } else if (u.ustuck) {
         if (u.ustuck->mtame && !Conflict && !u.ustuck->mconf) {
+/*JP
             You("pull free from %s.", mon_nam(u.ustuck));
+*/
+            You("%s\82©\82ç\97£\82ê\82½\81D", mon_nam(u.ustuck));
             u.ustuck = 0;
             return 1;
         }
         if (magic) {
+/*JP
             You("writhe a little in the grasp of %s!", mon_nam(u.ustuck));
+*/
+            You("%s\82©\82ç\93¦\82ê\82æ\82¤\82Æ\83W\83^\83o\83^\82µ\82½\81I", mon_nam(u.ustuck));
             return 1;
         }
+/*JP
         You("cannot escape from %s!", mon_nam(u.ustuck));
+*/
+        You("%s\82©\82ç\93¦\82ê\82ç\82ê\82È\82¢\81I", mon_nam(u.ustuck));
         return 0;
     } else if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) {
         if (magic) {
+/*JP
             You("flail around a little.");
+*/
+            You("\83o\83^\83o\83^\92µ\82ñ\82¾\81D");
             return 1;
         }
+/*JP
         You("don't have enough traction to jump.");
+*/
+        You("\92µ\82Ô\82½\82ß\82Ì\94½\93®\82ª\82Â\82¯\82ç\82ê\82È\82¢\81D");
         return 0;
     } else if (!magic && near_capacity() > UNENCUMBERED) {
+/*JP
         You("are carrying too much to jump!");
+*/
+        You("\82½\82­\82³\82ñ\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\92µ\82×\82È\82¢\81I");
         return 0;
     } else if (!magic && (u.uhunger <= 100 || ACURR(A_STR) < 6)) {
+/*JP
         You("lack the strength to jump!");
+*/
+        You("\92µ\82Ô\82¾\82¯\82Ì\97Í\82ª\82È\82¢\81I");
         return 0;
     } else if (!magic && Wounded_legs) {
         long wl = (Wounded_legs & BOTH_SIDES);
@@ -1553,24 +2087,42 @@ int magic; /* 0=Physical, otherwise skill level */
         if (wl == BOTH_SIDES)
             bp = makeplural(bp);
         if (u.usteed)
+/*JP
             pline("%s is in no shape for jumping.", Monnam(u.usteed));
+*/
+            pline("%s\82Í\92µ\82×\82é\8fó\91Ô\82Å\82Í\82È\82¢\81D", Monnam(u.usteed));
         else
+#if 0 /*JP*/
             Your("%s%s %s in no shape for jumping.",
                  (wl == LEFT_SIDE) ? "left " : (wl == RIGHT_SIDE) ? "right "
                                                                   : "",
                  bp, (wl == BOTH_SIDES) ? "are" : "is");
+#else
+          Your("%s%s\82Í\92µ\82×\82é\8fó\91Ô\82Å\82Í\82È\82¢\81D",
+                 (wl == LEFT_SIDE) ? "\8d¶" :
+                 (wl == RIGHT_SIDE) ? "\89E" : "", bp);
+#endif
         return 0;
     } else if (u.usteed && u.utrap) {
+/*JP
         pline("%s is stuck in a trap.", Monnam(u.usteed));
+*/
+        pline("%s\82Íã©\82É\82Ð\82Á\82©\82©\82Á\82Ä\82¢\82é\81D", Monnam(u.usteed));
         return 0;
     }
 
+/*JP
     pline("Where do you want to jump?");
+*/
+    pline("\82Ç\82±\82É\92µ\82Ñ\82Ü\82·\82©\81H");
     cc.x = u.ux;
     cc.y = u.uy;
     jumping_is_magic = magic;
     getpos_sethilite(display_jump_positions);
+/*JP
     if (getpos(&cc, TRUE, "the desired position") < 0)
+*/
+    if (getpos(&cc, TRUE, "\92µ\82Ñ\82½\82¢\8fê\8f\8a") < 0)
         return 0; /* user pressed ESC */
     if (!is_valid_jump_pos(cc.x, cc.y, magic, TRUE)) {
         return 0;
@@ -1583,30 +2135,53 @@ int magic; /* 0=Physical, otherwise skill level */
             case TT_BEARTRAP: {
                 long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE;
 
+/*JP
                 You("rip yourself free of the bear trap!  Ouch!");
+*/
+                You("\8e©\95ª\82ð\8cF\82Ìã©\82©\82ç\82Ð\82«\82Í\82ª\82µ\82½\81C\82¢\82Ä\82Á\81I");
+/*JP
                 losehp(Maybe_Half_Phys(rnd(10)), "jumping out of a bear trap",
+*/
+                losehp(Maybe_Half_Phys(rnd(10)), "\8cF\82Ìã©\82©\82ç\94ò\82Ñ\8fo\82æ\82¤\82Æ\82µ\82Ä",
                        KILLED_BY);
                 set_wounded_legs(side, rn1(1000, 500));
                 break;
             }
             case TT_PIT:
+/*JP
                 You("leap from the pit!");
+*/
+                You("\97\8e\82µ\8c\8a\82©\82ç\94ò\82Ñ\8fo\82½\81I");
                 break;
             case TT_WEB:
+/*JP
                 You("tear the web apart as you pull yourself free!");
+*/
+                You("\82­\82à\82Ì\91\83\82ð\88ø\82«\97ô\82«\81C\8e©\97R\82É\82È\82Á\82½\81I");
                 deltrap(t_at(u.ux, u.uy));
                 break;
             case TT_LAVA:
+/*JP
                 You("pull yourself above the lava!");
+*/
+                You("\97n\8aâ\82©\82ç\94ò\82Ñ\8fo\82½\81I");
                 u.utrap = 0;
                 return 1;
             case TT_BURIEDBALL:
             case TT_INFLOOR:
+#if 0 /*JP*/
                 You("strain your %s, but you're still %s.",
                     makeplural(body_part(LEG)),
                     (u.utraptype == TT_INFLOOR)
                         ? "stuck in the floor"
                         : "attached to the buried ball");
+#else
+                You("%s\82ð\88ø\82Á\82Ï\82Á\82½\82ª\81C\82 \82È\82½\82Í\82Ü\82¾%s\81D",
+                    makeplural(body_part(LEG)),
+                    (u.utraptype == TT_INFLOOR)
+                        ? "\8f°\82É\82¤\82Ü\82Á\82Ä\82¢\82é"
+                        : "\82¤\82Ü\82Á\82½\8b\85\82Æ\82Â\82È\82ª\82Á\82Ä\82¢\82é");
+#endif
                 set_wounded_legs(LEFT_SIDE, rn1(10, 11));
                 set_wounded_legs(RIGHT_SIDE, rn1(10, 11));
                 return 1;
@@ -1660,13 +2235,19 @@ struct obj *obj;
      * moves, we've got to deal with decaying corpses...
      */
     if (obj->spe <= 0) {
+/*JP
         You("seem to be out of tins.");
+*/
+        pline("\8aÊ\8bl\82ð\8dì\82é\82½\82ß\82Ì\8aÊ\82ª\90Ø\82ê\82½\82æ\82¤\82¾\81D");
         return;
     }
     if (!(corpse = floorfood("tin", 2)))
         return;
     if (corpse->oeaten) {
+/*JP
         You("cannot tin %s which is partly eaten.", something);
+*/
+        You("\90H\82×\82©\82¯\82Ì\82à\82Ì\82ð\8aÊ\8bl\82É\82·\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return;
     }
     if (touch_petrifies(&mons[corpse->corpsenm]) && !Stone_resistance
@@ -1674,31 +2255,58 @@ struct obj *obj;
         char kbuf[BUFSZ];
 
         if (poly_when_stoned(youmonst.data))
+#if 0 /*JP*/
             You("tin %s without wearing gloves.",
                 an(mons[corpse->corpsenm].mname));
+#else
+            You("\8f¬\8eè\82È\82µ\82Å%s\82ð\8aÊ\8bl\82É\82µ\82æ\82¤\82Æ\82µ\82½\81D",
+                mons[corpse->corpsenm].mname);
+#endif
         else {
+#if 0 /*JP*/
             pline("Tinning %s without wearing gloves is a fatal mistake...",
                   an(mons[corpse->corpsenm].mname));
+#else
+            pline("%s\82ð\8f¬\8eè\82È\82µ\82Å\8aÊ\8bl\82É\82·\82é\82Ì\82Í\92v\96½\93I\82È\8aÔ\88á\82¢\82¾\81D\81D\81D",
+                  mons[corpse->corpsenm].mname);
+#endif
+#if 0 /*JP*/
             Sprintf(kbuf, "trying to tin %s without gloves",
                     an(mons[corpse->corpsenm].mname));
+#else
+            Sprintf(kbuf, "\8f¬\8eè\82ð\82Â\82¯\82¸\82É%s\82ð\8aÊ\8bl\82É\82µ\82æ\82¤\82Æ\82µ\82Ä",
+                    mons[corpse->corpsenm].mname);
+#endif
         }
         instapetrify(kbuf);
     }
     if (is_rider(&mons[corpse->corpsenm])) {
         if (revive_corpse(corpse))
+/*JP
             verbalize("Yes...  But War does not preserve its enemies...");
+*/
+            verbalize("\82»\82¤\82¾\81D\81D\81D\82µ\82©\82µ\81u\90í\91\88\81v\82Í\93G\82É\88À\82ç\82¬\82ð\97^\82¦\82Ê\81D\81D\81D");
         else
+/*JP
             pline_The("corpse evades your grasp.");
+*/
+            pline("\8e\80\91Ì\82Í\82 \82È\82½\82Ì\8eè\82ð\93¦\82ê\82½\81D");
         return;
     }
     if (mons[corpse->corpsenm].cnutrit == 0) {
+/*JP
         pline("That's too insubstantial to tin.");
+*/
+        pline("\8eÀ\91Ì\82ª\82È\82¢\82Ì\82Å\8aÊ\8bl\82É\82Å\82«\82È\82¢\81D");
         return;
     }
     consume_obj_charge(obj, TRUE);
 
     if ((can = mksobj(TIN, FALSE, FALSE)) != 0) {
+/*JP
         static const char you_buy_it[] = "You tin it, you bought it!";
+*/
+        static const char you_buy_it[] = "\8aÊ\8bl\82É\82µ\82½\82Ì\82È\82ç\94\83\82Á\82Ä\82à\82ç\82¤\82æ\81I";
 
         can->corpsenm = corpse->corpsenm;
         can->cursed = obj->cursed;
@@ -1716,7 +2324,10 @@ struct obj *obj;
                 verbalize(you_buy_it);
             useupf(corpse, 1L);
         }
+/*JP
         can = hold_another_object(can, "You make, but cannot pick up, %s.",
+*/
+        can = hold_another_object(can, "\8aÊ\8bl\82É\82Å\82«\82½\82ª\81C%s\82ð\8e\9d\82Â\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
                                   doname(can), (const char *) 0);
     } else
         impossible("Tinning failed.");
@@ -1746,8 +2357,13 @@ struct obj *obj;
             break;
         case 2:
             if (!Confusion)
+#if 0 /*JP*/
                 You("suddenly feel %s.",
                     Hallucination ? "trippy" : "confused");
+#else
+                You("\93Ë\91R%s\81D",
+                    Hallucination ? "\82Ö\82ë\82Ö\82ë\82É\82È\82Á\82½" : "\8d¬\97\90\82µ\82½");
+#endif
             make_confused((HConfusion & TIMEOUT) + lcount, TRUE);
             break;
         case 3:
@@ -1762,7 +2378,10 @@ struct obj *obj;
             break;
         case 6:
             if (Deaf) /* make_deaf() won't give feedback when already deaf */
+/*JP
                 pline("Nothing seems to happen.");
+*/
+                pline("\89½\82à\8bN\82«\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
             make_deaf((HDeaf & TIMEOUT) + lcount, TRUE);
             break;
         }
@@ -1892,12 +2511,22 @@ struct obj *obj;
     }
 
     if (did_attr)
+#if 0 /*JP*/
         pline("This makes you feel %s!",
               (did_prop + did_attr) == (trouble_count + unfixable_trbl)
                   ? "great"
                   : "better");
+#else
+        pline("\8bC\95ª\82ª%s\82æ\82­\82È\82Á\82½\81I",
+              (did_prop + did_attr) == (trouble_count + unfixable_trbl)
+                  ? "\82Æ\82Ä\82à"
+                  : "\82æ\82è");
+#endif
     else if (!did_prop)
+/*JP
         pline("Nothing seems to happen.");
+*/
+        pline("\89½\82à\8bN\82«\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
 
     context.botl = (did_attr || did_prop);
 #undef PROP_COUNT
@@ -1967,11 +2596,21 @@ long timeout;
         switch (figurine->where) {
         case OBJ_INVENT:
             if (Blind || suppress_see)
+#if 0 /*JP*/
                 You_feel("%s %s from your pack!", something,
                          locomotion(mtmp->data, "drop"));
+#else
+                You_feel("%s\82ª\82 \82È\82½\82Ì\8a\93\82©\82ç%s\82æ\82¤\82¾\81I", something,
+                         jpast(locomotion(mtmp->data, "\97\8e\82¿\82é")));
+#endif
             else
+#if 0 /*JP*/
                 You_see("%s %s out of your pack%s!", monnambuf,
                         locomotion(mtmp->data, "drop"), and_vanish);
+#else
+                You("%s\82ª\82 \82È\82½\82Ì\8a\93\82©\82ç%s\82Ì\82ð\8c©\82½\81I", monnambuf,
+                        jpast(locomotion(mtmp->data,"\97\8e\82¿\82é")));
+#endif
             break;
 
         case OBJ_FLOOR:
@@ -1979,8 +2618,13 @@ long timeout;
                 if (suppress_see)
                     pline("%s suddenly vanishes!", an(xname(figurine)));
                 else
+#if 0 /*JP*/
                     You_see("a figurine transform into %s%s!", monnambuf,
                             and_vanish);
+#else
+                    You("\90l\8c`\82ª\93Ë\91R%s\82É\82È\82Á\82½\82Ì\82ð\8c©\82½\81I",
+                            monnambuf);
+#endif
                 redraw = TRUE; /* update figurine's map location */
             }
             break;
@@ -1991,14 +2635,28 @@ long timeout;
                 mon = figurine->ocarry;
                 /* figurine carrying monster might be invisible */
                 if (canseemon(figurine->ocarry)) {
+/*JP
                     Sprintf(carriedby, "%s pack", s_suffix(a_monnam(mon)));
+*/
+                    Sprintf(carriedby, "%s\82Ì\8a\93", s_suffix(a_monnam(mon)));
                 } else if (is_pool(mon->mx, mon->my))
+/*JP
                     Strcpy(carriedby, "empty water");
+*/
+                    Strcpy(carriedby, "\89½\82à\82È\82¢\90\85\92\86");
                 else
+/*JP
                     Strcpy(carriedby, "thin air");
+*/
+                    Strcpy(carriedby, "\89½\82à\82È\82¢\8bó\92\86");
+#if 0 /*JP*/
                 You_see("%s %s out of %s%s!", monnambuf,
                         locomotion(mtmp->data, "drop"), carriedby,
                         and_vanish);
+#else
+                You("%s\82ª%s\82©\82ç%s\82Ì\82ð\8c©\82½\81I", monnambuf,
+                        carriedby, locomotion(mtmp->data, "\97\8e\82¿\82é"));
+#endif
             }
             break;
 #if 0
@@ -2033,27 +2691,41 @@ boolean quietly;
 
     if (carried(obj) && u.uswallow) {
         if (!quietly)
+/*JP
             You("don't have enough room in here.");
+*/
+            pline("\82±\82±\82É\82Í\8f\\95ª\82È\8fê\8f\8a\82ª\82È\82¢\81D");
         return FALSE;
     }
     x = cc ? cc->x : u.ux;
     y = cc ? cc->y : u.uy;
     if (!isok(x, y)) {
         if (!quietly)
+/*JP
             You("cannot put the figurine there.");
+*/
+            You("\82±\82±\82É\82Í\90l\8c`\82ð\92u\82¯\82È\82¢\81D");
         return FALSE;
     }
     if (IS_ROCK(levl[x][y].typ)
         && !(passes_walls(&mons[obj->corpsenm]) && may_passwall(x, y))) {
         if (!quietly)
+#if 0 /*JP*/
             You("cannot place a figurine in %s!",
                 IS_TREE(levl[x][y].typ) ? "a tree" : "solid rock");
+#else
+            You("%s\82Ì\92\86\82É\82Í\90l\8c`\82ð\92u\82¯\82È\82¢\81I",
+                IS_TREE(levl[x][y].typ) ? "\96Ø" : "\8cÅ\82¢\90Î");
+#endif
         return FALSE;
     }
     if (sobj_at(BOULDER, x, y) && !passes_walls(&mons[obj->corpsenm])
         && !throws_rocks(&mons[obj->corpsenm])) {
         if (!quietly)
+/*JP
             You("cannot fit the figurine on the boulder.");
+*/
+            You("\8aâ\82É\90l\8c`\82ð\89\9f\82µ\8d\9e\82Þ\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return FALSE;
     }
     return TRUE;
@@ -2083,6 +2755,7 @@ struct obj **optr;
     /* Passing FALSE arg here will result in messages displayed */
     if (!figurine_location_checks(obj, &cc, FALSE))
         return;
+#if 0 /*JP*/
     You("%s and it transforms.",
         (u.dx || u.dy) ? "set the figurine beside you"
                        : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)
@@ -2090,6 +2763,15 @@ struct obj **optr;
                              ? "release the figurine"
                              : (u.dz < 0 ? "toss the figurine into the air"
                                          : "set the figurine on the ground"));
+#else
+    You("%s\81D\82·\82é\82Æ\82»\82ê\82Í\95Ï\8c`\82µ\82½\81D",
+        (u.dx || u.dy) ? "\82»\82Î\82É\90l\8c`\82ð\92u\82¢\82½"
+                       : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)
+                          || is_pool(cc.x, cc.y))
+                             ? "\90l\8c`\82ð\95ú\82Á\82½"
+                             : (u.dz < 0 ?  "\90l\8c`\82ð\8bó\92\86\82É\93\8a\82°\82½"
+                             : "\90l\8c`\82ð\92n\96Ê\82É\92u\82¢\82½"));
+#endif
     (void) make_familiar(obj, cc.x, cc.y, FALSE);
     (void) stop_timer(FIG_TRANSFORM, obj_to_any(obj));
     useup(obj);
@@ -2105,8 +2787,13 @@ struct obj *obj;
     struct obj *otmp;
 
     if (Glib) {
+#if 0 /*JP*/
         pline("%s from your %s.", Tobjnam(obj, "slip"),
               makeplural(body_part(FINGER)));
+#else
+        pline("%s\82Í\82 \82È\82½\82Ì%s\82©\82ç\8a\8a\82è\97\8e\82¿\82½\81D", xname(obj),
+              body_part(FINGER));
+#endif
         dropx(obj);
         return;
     }
@@ -2115,8 +2802,13 @@ struct obj *obj;
         if ((obj->cursed || Fumbling) && !rn2(2)) {
             consume_obj_charge(obj, TRUE);
 
+#if 0 /*JP*/
             pline("%s from your %s.", Tobjnam(obj, "slip"),
                   makeplural(body_part(FINGER)));
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì%s\82©\82ç\8a\8a\82è\97\8e\82¿\82½\81D", xname(obj),
+                  body_part(FINGER));
+#endif
             dropx(obj);
             return;
         }
@@ -2128,22 +2820,37 @@ struct obj *obj;
         consume_obj_charge(obj, TRUE);
 
         if (otmp != &zeroobj) {
+/*JP
             You("cover %s with a thick layer of grease.", yname(otmp));
+*/
+            You("%s\82É\8e\89\82ð\92O\94O\82É\93h\82Á\82½\81D", yname(otmp));
             otmp->greased = 1;
             if (obj->cursed && !nohands(youmonst.data)) {
                 incr_itimeout(&Glib, rnd(15));
+/*JP
                 pline("Some of the grease gets all over your %s.",
+*/
+                pline("\8e\89\82ª\8f­\82µ%s\82É\82Â\82¢\82½\81D",
                       makeplural(body_part(HAND)));
             }
         } else {
             incr_itimeout(&Glib, rnd(15));
+/*JP
             You("coat your %s with grease.", makeplural(body_part(FINGER)));
+*/
+            You("%s\82É\8e\89\82ð\93h\82Á\82½\81D", makeplural(body_part(FINGER)));
         }
     } else {
         if (obj->known)
+/*JP
             pline("%s empty.", Tobjnam(obj, "are"));
+*/
+            pline("%s\82Í\8bó\82Á\82Û\82¾\81D", xname(obj));
         else
+/*JP
             pline("%s to be empty.", Tobjnam(obj, "seem"));
+*/
+            pline("%s\82Í\8bó\82Á\82Û\82Ì\82æ\82¤\82¾\81D", xname(obj));
     }
     update_inventory();
 }
@@ -2171,7 +2878,10 @@ struct obj *tstone;
     boolean do_scratch;
     const char *streak_color, *choices;
     char stonebuf[QBUFSZ];
+/*JP
     static const char scritch[] = "\"scritch, scritch\"";
+*/
+    static const char scritch[] = "\81u\83S\83V\81C\83S\83V\81v";
     static const char allowall[3] = { COIN_CLASS, ALL_CLASSES, 0 };
     static const char coins_gems[3] = { COIN_CLASS, GEM_CLASS, 0 };
 
@@ -2184,12 +2894,18 @@ struct obj *tstone;
                && objects[TOUCHSTONE].oc_name_known)
                   ? coins_gems
                   : allowall;
+/*JP
     Sprintf(stonebuf, "rub on the stone%s", plur(tstone->quan));
+*/
+    Sprintf(stonebuf, "rub on the stone");
     if ((obj = getobj(choices, stonebuf)) == 0)
         return;
 
     if (obj == tstone && obj->quan == 1L) {
+/*JP
         You_cant("rub %s on itself.", the(xname(obj)));
+*/
+        You("%s\82ð\82»\82ê\8e©\91Ì\82Å\82±\82·\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", the(xname(obj)));
         return;
     }
 
@@ -2197,12 +2913,23 @@ struct obj *tstone;
         && obj->oclass == GEM_CLASS && !is_graystone(obj)
         && !obj_resists(obj, 80, 100)) {
         if (Blind)
+/*JP
             pline("You feel something shatter.");
+*/
+            You("\89½\82©\82ª\95²\81X\82É\82È\82é\82Ì\82ð\8a´\82\82½\81D");
         else if (Hallucination)
+/*JP
             pline("Oh, wow, look at the pretty shards.");
+*/
+            pline("\83\8f\81[\83H\81I\82È\82ñ\82Ä\82«\82ê\82¢\82È\94j\95Ð\82È\82ñ\82¾\81D");
         else
+#if 0 /*JP*/
             pline("A sharp crack shatters %s%s.",
                   (obj->quan > 1L) ? "one of " : "", the(xname(obj)));
+#else
+            pline("\8b­\82­\82±\82·\82è\82·\82¬\82Ä%s%s\82Í\95²\81X\82É\82È\82Á\82Ä\82µ\82Ü\82Á\82½\81D",
+                  the(xname(obj)), (obj->quan > 1) ? "\82Ì\82Ð\82Æ\82Â" : "");
+#endif
         useup(obj);
         return;
     }
@@ -2211,7 +2938,11 @@ struct obj *tstone;
         pline(scritch);
         return;
     } else if (Hallucination) {
+#if 0 /*JP*/
         pline("Oh wow, man: Fractals!");
+#else
+        pline("\83\8f\81[\83H\81I\83t\83\89\83N\83^\83\8b\96Í\97l\82¾\81I");
+#endif
         return;
     }
 
@@ -2244,27 +2975,55 @@ struct obj *tstone;
     default:
         switch (objects[obj->otyp].oc_material) {
         case CLOTH:
+#if 0 /*JP*/
             pline("%s a little more polished now.", Tobjnam(tstone, "look"));
+#else
+            pline("%s\82Í\82³\82ç\82É\82Â\82â\82ª\8fo\82½\82æ\82¤\82É\8c©\82¦\82é\81D", xname(tstone));
+#endif
             return;
         case LIQUID:
             if (!obj->known) /* note: not "whetstone" */
+#if 0 /*JP*/
                 You("must think this is a wetstone, do you?");
+#else
+                You("\82±\82ê\82Í\93u\90Î\82¾\82Æ\8ev\82Á\82½\81H");
+#endif
             else
+#if 0 /*JP*/
                 pline("%s a little wetter now.", Tobjnam(tstone, "are"));
+#else
+                pline("%s\82Í\8f­\82µ\82Ê\82ê\82½\81D", xname(tstone));
+#endif
             return;
         case WAX:
+#if 0 /*JP*/
             streak_color = "waxy";
+#else
+            streak_color = "\8e\89\82Á\82Û\82¢";
+#endif
             break; /* okay even if not touchstone */
         case WOOD:
+#if 0 /*JP*/
             streak_color = "wooden";
+#else
+            streak_color = "\82¨\82ª\82­\82¸\82Ì\82æ\82¤\82È";
+#endif
             break; /* okay even if not touchstone */
         case GOLD:
             do_scratch = TRUE; /* scratching and streaks */
+#if 0 /*JP*/
             streak_color = "golden";
+#else
+            streak_color = "\8bà\90F\82Ì";
+#endif
             break;
         case SILVER:
             do_scratch = TRUE; /* scratching and streaks */
+#if 0 /*JP*/
             streak_color = "silvery";
+#else
+            streak_color = "\8bâ\90F\82Ì";
+#endif
             break;
         default:
             /* Objects passing the is_flimsy() test will not
@@ -2279,13 +3038,23 @@ struct obj *tstone;
         break; /* default oclass */
     }
 
+#if 0 /*JP*//* not used */
     Sprintf(stonebuf, "stone%s", plur(tstone->quan));
+#endif
     if (do_scratch)
+#if 0 /*JP*/
         You("make %s%sscratch marks on the %s.",
             streak_color ? streak_color : (const char *) "",
             streak_color ? " " : "", stonebuf);
+#else
+        You("%s\82±\82·\82è\90Õ\82ð\90Î\82É\82Â\82¯\82½\81D",
+            streak_color ? streak_color : (const char *)"");
+#endif
     else if (streak_color)
+/*JP
         You_see("%s streaks on the %s.", streak_color, stonebuf);
+*/
+        pline("\90Î\82É%s\8bØ\82ª\82Â\82¢\82½\81D", streak_color);
     else
         pline(scritch);
     return;
@@ -2300,43 +3069,90 @@ struct obj *otmp;
     const char *what = (char *) 0;
     char buf[BUFSZ];
     int levtyp = levl[u.ux][u.uy].typ;
+#if 0 /*JP*/
     const char *occutext = "setting the trap";
+#else
+    const char *occutext = "ã©\82ð\8ed\8a|\82¯\82Ä\82¢\82é";
+#endif
 
     if (nohands(youmonst.data))
+/*JP
         what = "without hands";
+*/
+        what = "\8eè\82ª\82È\82¢\82Ì\82Å";
     else if (Stunned)
+/*JP
         what = "while stunned";
+*/
+        what = "\82­\82ç\82­\82ç\82µ\82Ä\82¢\82é\82Ì\82Å";
     else if (u.uswallow)
         what =
+/*JP
             is_animal(u.ustuck->data) ? "while swallowed" : "while engulfed";
+*/
+            is_animal(u.ustuck->data) ? "\88ù\82Ý\8d\9e\82Ü\82ê\82Ä\82¢\82é\8aÔ\82Í" : "\8aª\82«\8d\9e\82Ü\82ê\82Ä\82¢\82é\8aÔ\82Í";
     else if (Underwater)
+/*JP
         what = "underwater";
+*/
+        what = "\90\85\96Ê\89º\82Å\82Í";
     else if (Levitation)
+/*JP
         what = "while levitating";
+*/
+        what = "\95\82\82¢\82Ä\82¢\82é\8aÔ\82Í";
     else if (is_pool(u.ux, u.uy))
+/*JP
         what = "in water";
+*/
+        what = "\90\85\92\86\82Å\82Í";
     else if (is_lava(u.ux, u.uy))
+/*JP
         what = "in lava";
+*/
+        what = "\97n\8aâ\82Ì\92\86\82Å\82Í";
     else if (On_stairs(u.ux, u.uy))
+#if 0 /*JP*/
         what = (u.ux == xdnladder || u.ux == xupladder) ? "on the ladder"
                                                         : "on the stairs";
+#else
+        what = (u.ux == xdnladder || u.ux == xupladder) ? "\82Í\82µ\82²\82Ì\8fã\82Å\82Í"
+                                                        : "\8aK\92i\82Ì\8fã\82Å\82Í";
+#endif
     else if (IS_FURNITURE(levtyp) || IS_ROCK(levtyp)
              || closed_door(u.ux, u.uy) || t_at(u.ux, u.uy))
+/*JP
         what = "here";
+*/
+        what = "\82±\82±\82Å\82Í";
     else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))
+#if 0 /*JP*/
         what = (levtyp == AIR)
                    ? "in midair"
                    : (levtyp == CLOUD)
                          ? "in a cloud"
                          : "in this place"; /* Air/Water Plane catch-all */
+#else
+        what = (levtyp == AIR)
+                   ? "\8bó\92\86\82Å\82Í"
+                   : (levtyp == CLOUD)
+                         ? "\89_\82Ì\92\86\82Å\82Í"
+                         : "\82±\82±\82Å\82Í"; /* Air/Water Plane catch-all */
+#endif
     if (what) {
+/*JP
         You_cant("set a trap %s!", what);
+*/
+        pline("%sã©\82ð\8ed\8a|\82¯\82ç\82ê\82È\82¢\81I",what);
         reset_trapset();
         return;
     }
     ttyp = (otmp->otyp == LAND_MINE) ? LANDMINE : BEAR_TRAP;
     if (otmp == trapinfo.tobj && u.ux == trapinfo.tx && u.uy == trapinfo.ty) {
+/*JP
         You("resume setting %s%s.", shk_your(buf, otmp),
+*/
+        You("%s\82ð\8ed\8a|\82¯\82é\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D",
             defsyms[trap_to_defsym(what_trap(ttyp))].explanation);
         set_occupation(set_trap, occutext, 0);
         return;
@@ -2360,8 +3176,14 @@ struct obj *otmp;
             chance = (rnl(10) > 3);
         else
             chance = (rnl(10) > 5);
+/*JP
         You("aren't very skilled at reaching from %s.", mon_nam(u.usteed));
+*/
+        pline("%s\82Ì\8fã\82©\82ç\82Å\82Í\82¤\82Ü\82­\8ed\8a|\82¯\82ç\82ê\82È\82¢\82©\82à\82µ\82ê\82È\82¢\81D", mon_nam(u.usteed));
+/*JP
         Sprintf(buf, "Continue your attempt to set %s?",
+*/
+        Sprintf(buf, "%s\82Ì\8ed\8a|\82¯\82ð\91±\82¯\82é\81H",
                 the(defsyms[trap_to_defsym(what_trap(ttyp))].explanation));
         if (yn(buf) == 'y') {
             if (chance) {
@@ -2372,7 +3194,10 @@ struct obj *otmp;
                     break;
                 case BEAR_TRAP: /* drop it without arming it */
                     reset_trapset();
+/*JP
                     You("drop %s!",
+*/
+                    You("%s\82ð\97\8e\82Æ\82µ\82½\81I",
                         the(defsyms[trap_to_defsym(what_trap(ttyp))]
                                 .explanation));
                     dropx(otmp);
@@ -2384,7 +3209,10 @@ struct obj *otmp;
             return;
         }
     }
+/*JP
     You("begin setting %s%s.", shk_your(buf, otmp),
+*/
+    You("%s%s\82ð\8ed\8a|\82¯\82Í\82\82ß\82½\81D", shk_your(buf, otmp),
         defsyms[trap_to_defsym(what_trap(ttyp))].explanation);
     set_occupation(set_trap, occutext, 0);
     return;
@@ -2417,7 +3245,10 @@ set_trap()
             add_damage(u.ux, u.uy, 0L); /* schedule removal */
         }
         if (!trapinfo.force_bungle)
+/*JP
             You("finish arming %s.",
+*/
+            You("%s\82ð\8ed\8a|\82¯\8fI\82¦\82½\81D",
                 the(defsyms[trap_to_defsym(what_trap(ttyp))].explanation));
         if (((otmp->cursed || Fumbling) && (rnl(10) > 5))
             || trapinfo.force_bungle)
@@ -2425,7 +3256,10 @@ set_trap()
                    (unsigned) (trapinfo.force_bungle ? FORCEBUNGLE : 0));
     } else {
         /* this shouldn't happen */
+/*JP
         Your("trap setting attempt fails.");
+*/
+        You("ã©\82ð\8ed\8a|\82¯\82é\82Ì\82É\8e¸\94s\82µ\82½\81D");
     }
     useup(otmp);
     reset_trapset();
@@ -2440,8 +3274,14 @@ struct obj *obj;
     struct monst *mtmp;
     struct obj *otmp;
     int rx, ry, proficient, res = 0;
+/*JP
     const char *msg_slipsfree = "The bullwhip slips free.";
+*/
+    const char *msg_slipsfree = "\95Ú\82Í\82Ù\82Ç\82¯\82½\81D";
+/*JP
     const char *msg_snap = "Snap!";
+*/
+    const char *msg_snap = "\83s\83V\83b\81I";
 
     if (obj != uwep) {
         if (!wield_tool(obj, "lash"))
@@ -2484,20 +3324,32 @@ struct obj *obj;
         proficient = 0;
 
     if (u.uswallow && attack(u.ustuck)) {
+/*JP
         There("is not enough room to flick your bullwhip.");
+*/
+        pline("\95Ú\82ð\91Å\82Â\82Ù\82Ç\8dL\82­\82È\82¢\81D");
 
     } else if (Underwater) {
+/*JP
         There("is too much resistance to flick your bullwhip.");
+*/
+        pline("\90\85\82Ì\92ï\8dR\82ª\82 \82è\82·\82¬\82Ä\95Ú\82ð\91Å\82Â\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
 
     } else if (u.dz < 0) {
+/*JP
         You("flick a bug off of the %s.", ceiling(u.ux, u.uy));
+*/
+        You("%s\82Ì\92\8e\82ð\91Å\82¿\97\8e\82µ\82½\81D",ceiling(u.ux,u.uy));
 
     } else if ((!u.dx && !u.dy) || (u.dz > 0)) {
         int dam;
 
         /* Sometimes you hit your steed by mistake */
         if (u.usteed && !rn2(proficient + 2)) {
+/*JP
             You("whip %s!", mon_nam(u.usteed));
+*/
+            You("%s\82ð\95Ú\91Å\82Á\82½\81I", mon_nam(u.usteed));
             kick_steed();
             return 1;
         }
@@ -2505,12 +3357,20 @@ struct obj *obj;
             /* Have a shot at snaring something on the floor */
             otmp = level.objects[u.ux][u.uy];
             if (otmp && otmp->otyp == CORPSE && otmp->corpsenm == PM_HORSE) {
+/*JP
                 pline("Why beat a dead horse?");
+*/
+                pline("\82Ç\82¤\82µ\82Ä\8e\80\82ñ\82¾\94n\82ð\95Ú\91Å\82Â\82æ\82¤\82È\82±\82Æ\82ð\82·\82é\82Ì\81H");
                 return 1;
             }
             if (otmp && proficient) {
+#if 0 /*JP*/
                 You("wrap your bullwhip around %s on the %s.",
                     an(singular(otmp, xname)), surface(u.ux, u.uy));
+#else
+                You("\95Ú\82ð%s\82Ì\8fã\82Ì%s\82É\82©\82ç\82Ü\82¹\82½\81D",
+                    surface(u.ux, u.uy), an(singular(otmp, xname)));
+#endif
                 if (rnl(6) || pickup_object(otmp, 1L, TRUE) < 1)
                     pline1(msg_slipsfree);
                 return 1;
@@ -2519,14 +3379,25 @@ struct obj *obj;
         dam = rnd(2) + dbon() + obj->spe;
         if (dam <= 0)
             dam = 1;
+/*JP
         You("hit your %s with your bullwhip.", body_part(FOOT));
+*/
+        You("\8e©\95ª\82Ì%s\82ð\8e©\95ª\82Å\91Å\82¿\82Â\82¯\82½\81D", body_part(FOOT));
+#if 0 /*JP*/
         Sprintf(buf, "killed %sself with %s bullwhip", uhim(), uhis());
         losehp(Maybe_Half_Phys(dam), buf, NO_KILLER_PREFIX);
+#else
+        Strcpy(buf, "\8e©\95ª\8e©\90g\82ð\95Ú\91Å\82Á\82Ä");
+        losehp(dam, buf, KILLED_BY);
+#endif
         context.botl = 1;
         return 1;
 
     } else if ((Fumbling || Glib) && !rn2(5)) {
+/*JP
         pline_The("bullwhip slips out of your %s.", body_part(HAND));
+*/
+        pline("\95Ú\82ª%s\82©\82ç\82·\82×\82è\97\8e\82¿\82½\81D", body_part(HAND));
         dropx(obj);
 
     } else if (u.utrap && u.utraptype == TT_PIT) {
@@ -2562,17 +3433,26 @@ struct obj *obj;
             if (IS_FURNITURE(levl[rx][ry].typ))
                 wrapped_what = something;
             else if (sobj_at(BOULDER, rx, ry))
+/*JP
                 wrapped_what = "a boulder";
+*/
+                wrapped_what = "\8aâ";
         }
         if (wrapped_what) {
             coord cc;
 
             cc.x = rx;
             cc.y = ry;
+/*JP
             You("wrap your bullwhip around %s.", wrapped_what);
+*/
+            You("\95Ú\82ð%s\82É\82©\82ç\82Ü\82¹\82½\81D", wrapped_what);
             if (proficient && rn2(proficient + 2)) {
                 if (!mtmp || enexto(&cc, rx, ry, youmonst.data)) {
+/*JP
                     You("yank yourself out of the pit!");
+*/
+                    You("\82®\82¢\82Æ\88ø\82Á\82Ï\82Á\82Ä\8c\8a\82©\82ç\94²\82¯\8fo\82µ\82½\81I");
                     teleds(cc.x, cc.y, TRUE);
                     u.utrap = 0;
                     vision_full_recalc = 1;
@@ -2587,7 +3467,10 @@ struct obj *obj;
 
     } else if (mtmp) {
         if (!canspotmon(mtmp) && !glyph_is_invisible(levl[rx][ry].glyph)) {
+/*JP
             pline("A monster is there that you couldn't see.");
+*/
+            pline("\8c©\82¦\82È\82¢\89ö\95¨\82ª\82¢\82é\81D");
             map_invisible(rx, ry);
         }
         otmp = MON_WEP(mtmp); /* can be null */
@@ -2604,11 +3487,21 @@ struct obj *obj;
             } else
                 mon_hand = 0; /* lint suppression */
 
+/*JP
             You("wrap your bullwhip around %s.", yname(otmp));
+*/
+            You("\95Ú\82ð%s\82É\82©\82ç\82Ü\82¹\82½\81D", yname(otmp));
             if (gotit && mwelded(otmp)) {
+#if 0 /*JP*/
                 pline("%s welded to %s %s%c",
                       (otmp->quan == 1L) ? "It is" : "They are", mhis(mtmp),
                       mon_hand, !otmp->bknown ? '!' : '.');
+#else
+                pline("%s\82Í%s\82Ì%s\82É\82­\82Á\82Â\82¢\82Ä\82µ\82Ü\82Á\82Ä\82¢\82é%s",
+                      onambuf,
+                      mon_nam(mtmp), mon_hand,
+                      !otmp->bknown ? "\81I" : "\81D");
+#endif
                 otmp->bknown = 1;
                 gotit = FALSE; /* can't pull it free */
             }
@@ -2620,7 +3513,10 @@ struct obj *obj;
                 switch (rn2(proficient + 1)) {
                 case 2:
                     /* to floor near you */
+/*JP
                     You("yank %s to the %s!", yname(otmp),
+*/
+                    You("%s\82ð%s\82É\88ø\82«\97\8e\82µ\82½\81I", yname(otmp),
                         surface(u.ux, u.uy));
                     place_object(otmp, u.ux, u.uy);
                     stackobj(otmp);
@@ -2638,7 +3534,10 @@ struct obj *obj;
                                      dmgval(otmp, &youmonst),
                                      otmp, (char *)0);
                         if (hitu) {
+/*JP
                             pline_The("%s hits you as you try to snatch it!",
+*/
+                            pline_The("%s\82ð\92D\82¨\82¤\82Æ\82µ\82½\82ç\82 \82È\82½\82É\93\96\82½\82Á\82½\81I",
                                       the(onambuf));
                         }
                         place_object(otmp, u.ux, u.uy);
@@ -2647,7 +3546,10 @@ struct obj *obj;
                     }
 #endif /* 0 */
                     /* right into your inventory */
+/*JP
                     You("snatch %s!", yname(otmp));
+*/
+                    You("%s\82ð\92D\82Á\82½\81I", yname(otmp));
                     if (otmp->otyp == CORPSE
                         && touch_petrifies(&mons[otmp->corpsenm]) && !uarmg
                         && !Stone_resistance
@@ -2655,17 +3557,30 @@ struct obj *obj;
                              && polymon(PM_STONE_GOLEM))) {
                         char kbuf[BUFSZ];
 
+#if 0 /*JP*/
                         Sprintf(kbuf, "%s corpse",
                                 an(mons[otmp->corpsenm].mname));
                         pline("Snatching %s is a fatal mistake.", kbuf);
+#else
+                        pline("%s\82Ì\8e\80\91Ì\82ð\92D\82Á\82½\82Ì\82Í\92v\96½\93I\82È\8aÔ\88á\82¢\82¾\81D",
+                                mons[otmp->corpsenm].mname);
+                        Sprintf(kbuf, "%s\82Ì\8e\80\91Ì\82É\90G\82ê\82Ä",
+                                mons[otmp->corpsenm].mname);
+#endif
                         instapetrify(kbuf);
                     }
                     otmp = hold_another_object(
+/*JP
                         otmp, "You drop %s!", doname(otmp), (const char *) 0);
+*/
+                        otmp, "%s\82ð\97\8e\82µ\82½\81I", doname(otmp), (const char *) 0);
                     break;
                 default:
                     /* to floor beneath mon */
+/*JP
                     You("yank %s from %s %s!", the(onambuf),
+*/
+                    You("%s\82ð%s\82Ì%s\82©\82ç\82Ð\82Á\82Ï\82Á\82½\81I", the(xname(otmp)),
                         s_suffix(mon_nam(mtmp)), mon_hand);
                     obj_no_longer_held(otmp);
                     place_object(otmp, mtmp->mx, mtmp->my);
@@ -2681,7 +3596,10 @@ struct obj *obj;
                 && !sensemon(mtmp))
                 stumble_onto_mimic(mtmp);
             else
+/*JP
                 You("flick your bullwhip towards %s.", mon_nam(mtmp));
+*/
+                You("%s\82É\8cü\82Á\82Ä\95Ú\82ð\91Å\82Á\82½\81D", mon_nam(mtmp));
             if (proficient) {
                 if (attack(mtmp))
                     return 1;
@@ -2692,7 +3610,10 @@ struct obj *obj;
 
     } else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) {
         /* it must be air -- water checked above */
+/*JP
         You("snap your whip through thin air.");
+*/
+        You("\89½\82à\82È\82¢\82Æ\82±\82ë\82Å\95Ú\82ð\91Å\82Á\82½\81D");
 
     } else {
         pline1(msg_snap);
@@ -2701,10 +3622,22 @@ struct obj *obj;
 }
 
 static const char
+/*JP
     not_enough_room[] = "There's not enough room here to use that.",
+*/
+    not_enough_room[] = "\82»\82ê\82ð\8eg\82¤\82¾\82¯\82Ì\8dL\82³\82ª\82È\82¢\81D",
+/*JP
     where_to_hit[] = "Where do you want to hit?",
+*/
+    where_to_hit[] = "\82Ç\82ê\82ð\91_\82¤\81H",
+/*JP
     cant_see_spot[] = "won't hit anything if you can't see that spot.",
+*/
+    cant_see_spot[] = "\8fê\8f\8a\82ª\8c©\82¦\82È\82¯\82ê\82Î\91_\82¦\82È\82¢\81D",
+/*JP
     cant_reach[] = "can't reach that spot from here.";
+*/
+    cant_reach[] = "\82±\82±\82©\82ç\82»\82±\82Ö\82Í\93Í\82©\82È\82¢\81D";
 
 /* find pos of monster in range, if only one monster */
 boolean
@@ -2820,15 +3753,24 @@ struct obj *obj;
         cc.y = hitm->my;
     }
     getpos_sethilite(display_polearm_positions);
+/*JP
     if (getpos(&cc, TRUE, "the spot to hit") < 0)
+*/
+    if (getpos(&cc, TRUE, "\91_\82¤\8fê\8f\8a") < 0)
         return res; /* ESC; uses turn iff polearm became wielded */
 
     glyph = glyph_at(cc.x, cc.y);
     if (distu(cc.x, cc.y) > max_range) {
+/*JP
         pline("Too far!");
+*/
+        pline("\89\93\82·\82¬\82é\81I");
         return res;
     } else if (distu(cc.x, cc.y) < min_range) {
+/*JP
         pline("Too close!");
+*/
+        pline("\8bß\82·\82¬\82é\81I");
         return res;
     } else if (!cansee(cc.x, cc.y) && !glyph_is_monster(glyph)
                && !glyph_is_invisible(glyph) && !glyph_is_statue(glyph)) {
@@ -2864,7 +3806,10 @@ struct obj *obj;
                Note:  we only do this when a statue is displayed here,
                because the player is probably attempting to attack it;
                other statues obscured by anything are just ignored. */
+/*JP
             pline("Thump!  Your blow bounces harmlessly off the statue.");
+*/
+            pline("\83S\83c\83\93\81I\92¤\91\9c\82Í\8f\9d\82Â\82©\82È\82©\82Á\82½\81D");
             wake_nearto(bhitpos.x, bhitpos.y, 25);
         }
     } else {
@@ -2874,7 +3819,10 @@ struct obj *obj;
             unmap_object(bhitpos.x, bhitpos.y);
             newsym(bhitpos.x, bhitpos.y);
         }
+/*JP
         You("miss; there is no one there to hit.");
+*/
+        You("\8aO\82ê\82½\81D\82»\82±\82É\82Í\89½\82à\82È\82¢\81D");
     }
     u_wipe_engr(2); /* same as for melee or throwing */
     return 1;
@@ -2893,20 +3841,37 @@ struct obj *obj;
         obj = splitobj(obj, 1L);
     }
     if (Hallucination)
+/*JP
         You("give yourself a facial.");
+*/
+        You("\83N\83\8a\81[\83\80\83p\83b\83N\82ð\82µ\82½\81D");
     else
+#if 0 /*JP*/
         pline("You immerse your %s in %s%s.", body_part(FACE),
               several ? "one of " : "",
               several ? makeplural(the(xname(obj))) : the(xname(obj)));
+#else
+        pline("%s%s\82É%s\82ð\92¾\82ß\82½\81D",
+              xname(obj),
+              several ? "\82Ì\82Ð\82Æ\82Â" : "", body_part(FACE));
+#endif
     if (can_blnd((struct monst *) 0, &youmonst, AT_WEAP, obj)) {
         int blindinc = rnd(25);
         u.ucreamed += blindinc;
         make_blinded(Blinded + (long) blindinc, FALSE);
         if (!Blind || (Blind && wasblind))
+#if 0 /*JP*/
             pline("There's %ssticky goop all over your %s.",
                   wascreamed ? "more " : "", body_part(FACE));
+#else
+            pline("\82â\82Á\82©\82¢\82È\82Ë\82Î\82Ë\82Î\82ª%s\91S\91Ì\82É%s\82Â\82¢\82½\81D",
+                  body_part(FACE), wascreamed ? "\82³\82ç\82É" : "");
+#endif
         else /* Blind  && !wasblind */
+/*JP
             You_cant("see through all the sticky goop on your %s.",
+*/
+            pline("\82â\82Á\82©\82¢\82È\82Ë\82Î\82Ë\82Î\82ª%s\91S\91Ì\82É\82Â\82¢\82Ä\89½\82à\8c©\82¦\82È\82­\82È\82Á\82½\81D",
                      body_part(FACE));
     }
 
@@ -2945,7 +3910,10 @@ struct obj *obj;
     pline(where_to_hit);
     cc.x = u.ux;
     cc.y = u.uy;
+/*JP
     if (getpos(&cc, TRUE, "the spot to hit") < 0)
+*/
+    if (getpos(&cc, TRUE, "\91_\82¤\8fê\8f\8a") < 0)
         return res; /* ESC; uses turn iff grapnel became wielded */
 
     /* Calculate range; unlike use_pole(), there's no minimum for range */
@@ -2957,7 +3925,10 @@ struct obj *obj;
     else
         max_range = 8;
     if (distu(cc.x, cc.y) > max_range) {
+/*JP
         pline("Too far!");
+*/
+        pline("\89\93\82·\82¬\82é\81I");
         return res;
     } else if (!cansee(cc.x, cc.y)) {
         You(cant_see_spot);
@@ -2979,17 +3950,31 @@ struct obj *obj;
         any.a_int = 1; /* use index+1 (cant use 0) as identifier */
         start_menu(tmpwin);
         any.a_int++;
+/*JP
         Sprintf(buf, "an object on the %s", surface(cc.x, cc.y));
+*/
+        Sprintf(buf, "%s\82É\82 \82é\95¨\91Ì", surface(cc.x, cc.y));
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
                  MENU_UNSELECTED);
         any.a_int++;
+#if 0 /*JP*/
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "a monster",
                  MENU_UNSELECTED);
+#else
+        add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "\89ö\95¨",
+                 MENU_UNSELECTED);
+#endif
         any.a_int++;
+/*JP
         Sprintf(buf, "the %s", surface(cc.x, cc.y));
+*/
+        Sprintf(buf, "%s", surface(cc.x, cc.y));
         add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
                  MENU_UNSELECTED);
+/*JP
         end_menu(tmpwin, "Aim for what?");
+*/
+        end_menu(tmpwin, "\89½\82ð\91_\82¤\81H");
         tohit = rn2(4);
         if (select_menu(tmpwin, PICK_ONE, &selected) > 0
             && rn2(P_SKILL(typ) > P_SKILLED ? 20 : 2))
@@ -3010,7 +3995,10 @@ struct obj *obj;
         break;
     case 1: /* Object */
         if ((otmp = level.objects[cc.x][cc.y]) != 0) {
+/*JP
             You("snag an object from the %s!", surface(cc.x, cc.y));
+*/
+            You("%s\82Ì\82à\82Ì\82ð\88ø\82Á\8a|\82¯\82½\81I", surface(cc.x, cc.y));
             (void) pickup_object(otmp, 1L, FALSE);
             /* If pickup fails, leave it alone */
             newsym(cc.x, cc.y);
@@ -3029,7 +4017,10 @@ struct obj *obj;
             (void) attack_checks(mtmp, uwep);
             flags.confirm = save_confirm;
             check_caitiff(mtmp); /* despite fact there's no damage */
+/*JP
             You("pull in %s!", mon_nam(mtmp));
+*/
+            You("%s\82ð\88ø\82Á\92£\82Á\82½\81I", mon_nam(mtmp));
             mtmp->mundetected = 0;
             rloc_to(mtmp, cc.x, cc.y);
             return 1;
@@ -3045,17 +4036,29 @@ struct obj *obj;
     /* FALL THROUGH */
     case 3: /* Surface */
         if (IS_AIR(levl[cc.x][cc.y].typ) || is_pool(cc.x, cc.y))
+/*JP
             pline_The("hook slices through the %s.", surface(cc.x, cc.y));
+*/
+            pline("\83t\83b\83N\82Í%s\82ð\82³\82Á\82Æ\90Ø\82Á\82½\81D", surface(cc.x, cc.y));
         else {
+/*JP
             You("are yanked toward the %s!", surface(cc.x, cc.y));
+*/
+            You("%s\82Ö\88ø\82Á\82Ï\82ç\82ê\82½\81I", surface(cc.x, cc.y));
             hurtle(sgn(cc.x - u.ux), sgn(cc.y - u.uy), 1, FALSE);
             spoteffects(TRUE);
         }
         return 1;
     default: /* Yourself (oops!) */
         if (P_SKILL(typ) <= P_BASIC) {
+/*JP
             You("hook yourself!");
+*/
+            You("\8e©\95ª\8e©\90g\82ð\88ø\82Á\8a|\82¯\82½\81I");
+/*JP
             losehp(Maybe_Half_Phys(rn1(10, 10)), "a grappling hook",
+*/
+            losehp(Maybe_Half_Phys(rn1(10, 10)), "\8e©\95ª\8e©\90g\82ð\88ø\82Á\8a|\82¯\82Ä",
                    KILLED_BY);
             return 1;
         }
@@ -3072,7 +4075,10 @@ STATIC_OVL int
 do_break_wand(obj)
 struct obj *obj;
 {
+/*JP
     static const char nothing_else_happens[] = "But nothing else happens...";
+*/
+    static const char nothing_else_happens[] = "\82µ\82©\82µ\81C\89½\82à\8bN\82«\82È\82©\82Á\82½\81D\81D\81D";
     register int i, x, y;
     register struct monst *mon;
     int dmg, damage;
@@ -3081,22 +4087,41 @@ struct obj *obj;
     boolean fillmsg = FALSE;
     int expltype = EXPL_MAGICAL;
     char confirm[QBUFSZ], buf[BUFSZ];
+/*JP
     boolean is_fragile = (!strcmp(OBJ_DESCR(objects[obj->otyp]), "balsa"));
+*/
+    boolean is_fragile = (!strcmp(OBJ_DESCR(objects[obj->otyp]), "\83o\83\8b\83T"));
 
+#if 0 /*JP*/
     if (!paranoid_query(ParanoidBreakwand,
                        safe_qbuf(confirm,
                                  "Are you really sure you want to break ",
                                  "?", obj, yname, ysimple_name, "the wand")))
+#else
+    if (!paranoid_query(ParanoidBreakwand,
+                       safe_qbuf(confirm,
+                                 "\96{\93\96\82É", "\82ð\89ó\82·\82Ì\81H",
+                                 obj, yname, ysimple_name, "\8fñ")))
+#endif
         return 0;
 
     if (nohands(youmonst.data)) {
+/*JP
         You_cant("break %s without hands!", yname(obj));
+*/
+        You("\8eè\82ª\96³\82¢\82Ì\82Å%s\82ð\89ó\82¹\82È\82¢\81I", yname(obj));
         return 0;
     } else if (ACURR(A_STR) < (is_fragile ? 5 : 10)) {
+/*JP
         You("don't have the strength to break %s!", yname(obj));
+*/
+        You("%s\82ð\89ó\82·\82¾\82¯\82Ì\97Í\82ª\82È\82¢\81I", yname(obj));
         return 0;
     }
+/*JP
     pline("Raising %s high above your %s, you break it in two!", yname(obj),
+*/
+    pline("%s\82ð%s\82Ì\8fã\82É\8d\82\82­\8cf\82°\81C\93ñ\82Â\82É\82Ö\82µ\90Ü\82Á\82½\81I", yname(obj),
           body_part(HEAD));
 
     /* [ALI] Do this first so that wand is removed from bill. Otherwise,
@@ -3157,7 +4182,10 @@ struct obj *obj;
         goto discard_broken_wand;
     case WAN_STRIKING:
         /* we want this before the explosion instead of at the very end */
+/*JP
         pline("A wall of force smashes down around you!");
+*/
+        pline("\82 \82È\82½\82Í\96\82\97Í\82Ì\95Ç\82É\82Â\82Â\82Ü\82ê\82½\81I");
         dmg = d(1 + obj->spe, 6); /* normally 2d12 */
         /*FALLTHRU*/
     case WAN_CANCELLATION:
@@ -3210,7 +4238,10 @@ struct obj *obj;
                     liquid_flow(x, y, typ, t_at(x, y),
                                 fillmsg
                                   ? (char *) 0
+/*JP
                                   : "Some holes are quickly filled with %s!");
+*/
+                                  : "\8c\8a\82Í\82·\82®\82É%s\82Å\96\84\82Ü\82Á\82½\81I");
                     fillmsg = TRUE;
                 } else
                     digactualhole(x, y, BY_OBJECT, (rn2(obj->spe) < 3
@@ -3263,8 +4294,13 @@ struct obj *obj;
             }
             damage = zapyourself(obj, FALSE);
             if (damage) {
+#if 0 /*JP:T*/
                 Sprintf(buf, "killed %sself by breaking a wand", uhim());
                 losehp(Maybe_Half_Phys(damage), buf, NO_KILLER_PREFIX);
+#else
+                Strcpy(buf, "\8e©\95ª\8e©\90g\82Å\8fñ\82ð\89ó\82µ\82Ä\83_\83\81\81[\83W\82ð\8eó\82¯");
+                losehp(Maybe_Half_Phys(damage), buf, KILLED_BY);
+#endif
             }
             if (context.botl)
                 bot(); /* blindness */
@@ -3277,7 +4313,10 @@ struct obj *obj;
     /* Note: if player fell thru, this call is a no-op.
        Damage is handled in digactualhole in that case */
     if (shop_damage)
+/*JP
         pay_for_damage("dig into", FALSE);
+*/
+        pay_for_damage("\8c\8a\82ð\82 \82¯\82é", FALSE);
 
     if (obj->otyp == WAN_LIGHT)
         litroom(TRUE, obj); /* only needs to be done once */
@@ -3377,11 +4416,19 @@ doapply()
         } else if (!ublindf) {
             Blindf_on(obj);
         } else {
+#if 0 /*JP*/
             You("are already %s.", ublindf->otyp == TOWEL
                                        ? "covered by a towel"
                                        : ublindf->otyp == BLINDFOLD
                                              ? "wearing a blindfold"
                                              : "wearing lenses");
+#else
+            You("\82à\82¤%s\82Ä\82¢\82é\81D", ublindf->otyp == TOWEL
+                                      ? "\83^\83I\83\8b\82ð\8aª\82¢"
+                                      : ublindf->otyp == BLINDFOLD
+                                            ? "\96Ú\89B\82µ\82ð\82Â\82¯"
+                                            : "\83\8c\83\93\83Y\82ð\82Â\82¯");
+#endif
         }
         break;
     case CREAM_PIE:
@@ -3440,7 +4487,10 @@ doapply()
             /* sometimes the blessing will be worn off */
             if (!rn2(49)) {
                 if (!Blind) {
+/*JP
                     pline("%s %s.", Yobjnam2(obj, "glow"), hcolor("brown"));
+*/
+                    pline("%s\82Í%s\8bP\82¢\82½\81D", xname(obj), jconj_adj(hcolor("\92\83\90F\82Ì")));
                     obj->bknown = 1;
                 }
                 unbless(obj);
@@ -3488,15 +4538,27 @@ doapply()
         break;
     case TIN_OPENER:
         if (!carrying(TIN)) {
+/*JP
             You("have no tin to open.");
+*/
+            You("\8aÊ\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81D");
             goto xit;
         }
+/*JP
         You("cannot open a tin without eating or discarding its contents.");
+*/
+        pline("\92\86\90g\82ð\90H\82×\82é\82©\81C\8eÌ\82Ä\82é\82©\82µ\82È\82¢\82Æ\8aÊ\82ð\8aJ\82¯\82ç\82ê\82È\82¢\81D");
         if (flags.verbose)
+/*JP
             pline("In order to eat, use the 'e' command.");
+*/
+            pline("\90H\82×\82é\82É\82Í\81C'e'\83R\83}\83\93\83h\82ð\8eg\82¦\82Î\82æ\82¢\81D");
         if (obj != uwep)
             pline(
+/*JP
           "Opening the tin will be much easier if you wield the tin opener.");
+*/
+          "\8aÊ\90Ø\82è\82ð\91\95\94õ\82µ\82Ä\82¢\82ê\82Î\81C\82¸\82Á\82Æ\8aÈ\92P\82É\8aJ\82¯\82é\82±\82Æ\82ª\82Å\82«\82é\81D");
         goto xit;
 
     case FIGURINE:
@@ -3539,7 +4601,10 @@ doapply()
             res = use_pick_axe(obj);
             break;
         }
+/*JP
         pline("Sorry, I don't know how to use that.");
+*/
+        pline("\82»\82ê\82ð\82Ç\82¤\82â\82Á\82Ä\8eg\82¤\82ñ\82¾\82¢\81H");
     xit:
         nomul(0);
         return 0;
index 23c7c49..eeec23f 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "artifact.h"
 #include "artilist.h"
@@ -684,13 +689,19 @@ struct monst *mon;
 
         if (!yours)
             return 0;
+/*JP
         You("are blasted by %s power!", s_suffix(the(xname(obj))));
+*/
+        You("%s\82Ì\97Í\82ð\97\81\82Ñ\82½\81I", xname(obj));
         touch_blasted = TRUE;
         dmg = d((Antimagic ? 2 : 4), (self_willed ? 10 : 4));
         /* add half (maybe quarter) of the usual silver damage bonus */
         if (objects[obj->otyp].oc_material == SILVER && Hate_silver)
             tmp = rnd(10), dmg += Maybe_Half_Phys(tmp);
+/*JP
         Sprintf(buf, "touching %s", oart->name);
+*/
+        Sprintf(buf, "%s\82É\90G\82ê\82Ä", oart->name);
         losehp(dmg, buf, KILLED_BY); /* magic damage, not physical */
         exercise(A_WIS, FALSE);
     }
@@ -699,9 +710,15 @@ struct monst *mon;
     if (badclass && badalign && self_willed) {
         if (yours) {
             if (!carried(obj))
+/*JP
                 pline("%s your grasp!", Tobjnam(obj, "evade"));
+*/
+                pline("%s\82Í\88¬\82ë\82¤\82Æ\82·\82é\82Æ\82·\82é\82è\82Æ\94²\82¯\82½\81I", xname(obj));
             else
+/*JP
                 pline("%s beyond your control!", Tobjnam(obj, "are"));
+*/
+                pline("%s\82Í\90§\8cä\82Å\82«\82È\82¢\81I", xname(obj));
         }
         return 0;
     }
@@ -906,7 +923,10 @@ winid tmpwin; /* supplied by dodiscover() */
             continue; /* for WIN_ERR, we just count */
 
         if (i == 0)
+/*JP
             putstr(tmpwin, iflags.menu_headings, "Artifacts");
+*/
+            putstr(tmpwin, iflags.menu_headings, "\90¹\8aí");
         m = artidisco[i];
         otyp = artilist[m].otyp;
         Sprintf(buf, "  %s [%s %s]", artiname(m),
@@ -938,8 +958,14 @@ winid tmpwin; /* supplied by dodiscover() */
  */
 #define MB_MAX_DIEROLL 8 /* rolls above this aren't magical */
 static const char *const mb_verb[2][4] = {
+#if 0 /*JP*/
     { "probe", "stun", "scare", "cancel" },
     { "prod", "amaze", "tickle", "purge" },
+#else
+    /* Mb_hit() \82Å "%s\82½"\82Ì\8c`\82Å\97\98\97p */
+    {"\92²\8d¸\82µ", "\82­\82ç\82­\82ç\82³\82¹", "\8b¯\82¦\82³\82¹", "\8fò\89»\82µ"},
+    { "\97ã\82Ü\82µ", "\8bÁ\82©\82¹", "\82­\82·\82®\82Á", "\90´\82ß" },
+#endif
 };
 #define MB_INDEX_PROBE 0
 #define MB_INDEX_STUN 1
@@ -1003,8 +1029,13 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
     verb = mb_verb[!!Hallucination][attack_indx];
     if (youattack || youdefend || vis) {
         result = TRUE;
+#if 0 /*JP*/
         pline_The("magic-absorbing blade %s %s!",
                   vtense((const char *) 0, verb), hittee);
+#else
+        pline("\96\82\97Í\82ð\8bz\82¢\82Æ\82é\90n\82ª%s\82ð%s\82½\81I",
+                  hittee, verb);
+#endif
         /* assume probing has some sort of noticeable feedback
            even if it is being done by one monster to another */
         if (attack_indx == MB_INDEX_PROBE && !canspotmon(mdef))
@@ -1027,7 +1058,10 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
                 if (youmonst.data != old_uasmon)
                     *dmgptr = 0; /* rehumanized, so no more damage */
                 if (u.uenmax > 0) {
+/*JP
                     You("lose magical energy!");
+*/
+                    You("\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ð\8e¸\82Á\82½\81I");
                     u.uenmax--;
                     if (u.uen > 0)
                         u.uen--;
@@ -1037,7 +1071,10 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
                 if (mdef->data == &mons[PM_CLAY_GOLEM])
                     mdef->mhp = 1; /* cancelled clay golems will die */
                 if (youattack && attacktype(mdef->data, AT_MAGC)) {
+/*JP
                     You("absorb magical energy!");
+*/
+                    You("\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ð\8bz\82¢\82Æ\82Á\82½\81I");
                     u.uenmax++;
                     u.uen++;
                     context.botl = 1;
@@ -1056,7 +1093,10 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
                 nomovemsg = "";
                 if (magr && magr == u.ustuck && sticks(youmonst.data)) {
                     u.ustuck = (struct monst *) 0;
+/*JP
                     You("release %s!", mon_nam(magr));
+*/
+                    You("%s\82ð\89ð\95ú\82µ\82½\81I", mon_nam(magr));
                 }
             }
         } else {
@@ -1075,7 +1115,10 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
 
     case MB_INDEX_PROBE:
         if (youattack && (mb->spe == 0 || !rn2(3 * abs(mb->spe)))) {
+/*JP
             pline_The("%s is insightful.", verb);
+*/
+            pline("\91\8a\8eè\82ð%s\82½\81D", verb);
             /* pre-damage status */
             probe_monster(mdef);
         }
@@ -1106,7 +1149,10 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
     if (youattack || youdefend || vis) {
         (void) upstart(hittee); /* capitalize */
         if (resisted) {
+/*JP
             pline("%s %s!", hittee, vtense(fakename, "resist"));
+*/
+            pline("%s\82Í\96h\82¢\82¾\81I", hittee);
             shieldeff(youdefend ? u.ux : mdef->mx,
                       youdefend ? u.uy : mdef->my);
         }
@@ -1114,6 +1160,7 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
             char buf[BUFSZ];
 
             buf[0] = '\0';
+#if 0 /*JP:T*/
             if (do_stun)
                 Strcat(buf, "stunned");
             if (do_stun && do_confuse)
@@ -1122,6 +1169,16 @@ char *hittee;              /* target's name: "you" or mon_nam(mdef) */
                 Strcat(buf, "confused");
             pline("%s %s %s%c", hittee, vtense(fakename, "are"), buf,
                   (do_stun && do_confuse) ? '!' : '.');
+#else
+            if (do_stun && do_confuse)
+                Strcat(buf, "\82æ\82ë\82ß\82¢\82Ä");
+            else if (do_stun)
+                Strcat(buf, "\82æ\82ë\82ß\82¢\82½");
+            if (do_confuse)
+                Strcat(buf, "\8d¬\97\90\82µ\82½");
+            pline("%s\82Í%s%s", hittee,
+                  buf, (do_stun && do_confuse) ? "\81I" : "\81D");
+#endif
         }
     }
 
@@ -1150,7 +1207,10 @@ int dieroll; /* needed for Magicbane and vorpal blades */
                   || (youattack && u.uswallow && mdef == u.ustuck && !Blind);
     boolean realizes_damage;
     const char *wepdesc;
+/*JP
     static const char you[] = "you";
+*/
+    static const char you[] = "\82 \82È\82½";
     char hittee[BUFSZ];
 
     Strcpy(hittee, youdefend ? you : mon_nam(mdef));
@@ -1173,6 +1233,7 @@ int dieroll; /* needed for Magicbane and vorpal blades */
     /* the four basic attacks: fire, cold, shock and missiles */
     if (attacks(AD_FIRE, otmp)) {
         if (realizes_damage)
+#if 0 /*JP*/
             pline_The("fiery blade %s %s%c",
                       !spec_dbon_applies
                           ? "hits"
@@ -1180,6 +1241,15 @@ int dieroll; /* needed for Magicbane and vorpal blades */
                                 ? "vaporizes part of"
                                 : "burns",
                       hittee, !spec_dbon_applies ? '.' : '!');
+#else
+            pline_The("\96Ò\89Î\82ª%s%s",
+                      hittee,
+                      !spec_dbon_applies
+                          ? "\82É\96½\92\86\82µ\82½\81D"
+                          : (mdef->data == &mons[PM_WATER_ELEMENTAL])
+                                ? "\82Ì\88ê\95\94\82ð\8fÁ\96Å\82³\82¹\82½\81I"
+                                : "\82ð\8fÄ\82¢\82½\81I");
+#endif
         if (!rn2(4))
             (void) destroy_mitem(mdef, POTION_CLASS, AD_FIRE);
         if (!rn2(4))
@@ -1192,18 +1262,29 @@ int dieroll; /* needed for Magicbane and vorpal blades */
     }
     if (attacks(AD_COLD, otmp)) {
         if (realizes_damage)
+#if 0 /*JP*/
             pline_The("ice-cold blade %s %s%c",
                       !spec_dbon_applies ? "hits" : "freezes", hittee,
                       !spec_dbon_applies ? '.' : '!');
+#else
+            pline_The("\96Ò\90\81\90á\82ª%s%s",
+                      hittee,
+                      !spec_dbon_applies ? "\82É\96½\92\86\82µ\82½\81D" : "\82ð\8fP\82Á\82½\81I");
+#endif
         if (!rn2(4))
             (void) destroy_mitem(mdef, POTION_CLASS, AD_COLD);
         return realizes_damage;
     }
     if (attacks(AD_ELEC, otmp)) {
         if (realizes_damage)
+#if 0 /*JP*/
             pline_The("massive hammer hits%s %s%c",
                       !spec_dbon_applies ? "" : "!  Lightning strikes",
                       hittee, !spec_dbon_applies ? '.' : '!');
+#else
+            pline("\8b\90\91å\82È\83n\83\93\83}\81[\82Í%s\82É\96½\92\86\82µ\82½%s", hittee,
+                      !spec_dbon_applies ? "\81D" : "\81I\93d\8c\82\82ª\8fP\82Á\82½\81I");
+#endif
         if (!rn2(5))
             (void) destroy_mitem(mdef, RING_CLASS, AD_ELEC);
         if (!rn2(5))
@@ -1212,11 +1293,18 @@ int dieroll; /* needed for Magicbane and vorpal blades */
     }
     if (attacks(AD_MAGM, otmp)) {
         if (realizes_damage)
+#if 0 /*JP*/
             pline_The("imaginary widget hits%s %s%c",
                       !spec_dbon_applies
                           ? ""
                           : "!  A hail of magic missiles strikes",
                       hittee, !spec_dbon_applies ? '.' : '!');
+#else
+            pline("\8eÀ\91Ì\82ð\8e\9d\82½\82È\82¢\95¨\91Ì\82ª%s\82ð\8dU\8c\82\82µ\82½%s",
+                      hittee,
+                      !spec_dbon_applies ? "\81D" :
+                      "\81I\96\82\96@\82Ì\96î\82ª\89J\82 \82ç\82ê\82Æ\96½\92\86\82µ\82½\81I");
+#endif
         return realizes_damage;
     }
 
@@ -1235,10 +1323,16 @@ int dieroll; /* needed for Magicbane and vorpal blades */
     /* reverse from AD&D. */
     if (spec_ability(otmp, SPFX_BEHEAD)) {
         if (otmp->oartifact == ART_TSURUGI_OF_MURAMASA && dieroll == 1) {
+/*JP
             wepdesc = "The razor-sharp blade";
+*/
+            wepdesc = "\8ea\93S\8c\95";
             /* not really beheading, but so close, why add another SPFX */
             if (youattack && u.uswallow && mdef == u.ustuck) {
+/*JP
                 You("slice %s wide open!", mon_nam(mdef));
+*/
+                You("%s\82ð\97Ö\90Ø\82è\82É\82µ\82½\81I", mon_nam(mdef));
                 *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER;
                 return TRUE;
             }
@@ -1249,7 +1343,10 @@ int dieroll; /* needed for Magicbane and vorpal blades */
 
                 if (bigmonst(mdef->data)) {
                     if (youattack)
+/*JP
                         You("slice deeply into %s!", mon_nam(mdef));
+*/
+                        You("%s\82É\90[\82­\8ea\82è\82Â\82¯\82½\81I",mon_nam(mdef));
                     else if (vis)
                         pline("%s cuts deeply into %s!", Monnam(magr),
                               hittee);
@@ -1257,12 +1354,18 @@ int dieroll; /* needed for Magicbane and vorpal blades */
                     return TRUE;
                 }
                 *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER;
+/*JP
                 pline("%s cuts %s in half!", wepdesc, mon_nam(mdef));
+*/
+                pline("%s\82ª%s\82ð\90^\82Á\93ñ\82Â\82É\82µ\82½\81I", wepdesc, mon_nam(mdef));
                 otmp->dknown = TRUE;
                 return TRUE;
             } else {
                 if (bigmonst(youmonst.data)) {
+/*JP
                     pline("%s cuts deeply into you!",
+*/
+                    pline("%s\82Í\82 \82È\82½\82É\90[\82­\8ea\82è\82Â\82¯\82½\81I",
                           magr ? Monnam(magr) : wepdesc);
                     *dmgptr *= 2;
                     return TRUE;
@@ -1274,14 +1377,22 @@ int dieroll; /* needed for Magicbane and vorpal blades */
                  * damage does not prevent death.
                  */
                 *dmgptr = 2 * (Upolyd ? u.mh : u.uhp) + FATAL_DAMAGE_MODIFIER;
+/*JP
                 pline("%s cuts you in half!", wepdesc);
+*/
+                pline("%s\82ª\82 \82È\82½\82ð\90^\82Á\93ñ\82Â\82É\82µ\82½\81I", wepdesc);
                 otmp->dknown = TRUE;
                 return TRUE;
             }
         } else if (otmp->oartifact == ART_VORPAL_BLADE
                    && (dieroll == 1 || mdef->data == &mons[PM_JABBERWOCK])) {
+#if 0 /*JP*/
             static const char *const behead_msg[2] = { "%s beheads %s!",
                                                        "%s decapitates %s!" };
+#else
+            static const char *const behead_msg[2] = { "%s\82Í%s\82Ì\8eñ\82ð\90Ø\82Á\82½\81I",
+                                                       "%s\82Í%s\82Ì\8eñ\82ð\90Ø\82è\97\8e\82µ\82½\81I" };
+#endif
 
             if (youattack && u.uswallow && mdef == u.ustuck)
                 return FALSE;
@@ -1289,14 +1400,23 @@ int dieroll; /* needed for Magicbane and vorpal blades */
             if (!youdefend) {
                 if (!has_head(mdef->data) || notonhead || u.uswallow) {
                     if (youattack)
+/*JP
                         pline("Somehow, you miss %s wildly.", mon_nam(mdef));
+*/
+                        pline("\82È\82º\82©\81C%s\82Ö\82Ì\8dU\8c\82\82Í\91å\82«\82­\82Í\82¸\82ê\82½\81D", mon_nam(mdef));
                     else if (vis)
+/*JP
                         pline("Somehow, %s misses wildly.", mon_nam(magr));
+*/
+                        pline("\82È\82º\82©\81C%s\82Ì\8dU\8c\82\82Í\91å\82«\82­\82Í\82¸\82ê\82½\81D", mon_nam(magr));
                     *dmgptr = 0;
                     return (boolean) (youattack || vis);
                 }
                 if (noncorporeal(mdef->data) || amorphous(mdef->data)) {
+/*JP
                     pline("%s slices through %s %s.", wepdesc,
+*/
+                    pline("%s\82Í%s\82Ì%s\82ð\90Ø\82è\97\8e\82µ\82½\81D", wepdesc,
                           s_suffix(mon_nam(mdef)), mbodypart(mdef, NECK));
                     return TRUE;
                 }
@@ -1304,23 +1424,35 @@ int dieroll; /* needed for Magicbane and vorpal blades */
                 pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc,
                       mon_nam(mdef));
                 if (Hallucination && !flags.female)
+/*JP
                     pline("Good job Henry, but that wasn't Anne.");
+*/
+                    pline("\83w\83\93\83\8a\81[\82æ\82­\82â\82Á\82½\81C\82¾\82ª\82»\82¢\82Â\82Í\83A\83\93\82\82á\82È\82¢\81D");
                 otmp->dknown = TRUE;
                 return TRUE;
             } else {
                 if (!has_head(youmonst.data)) {
+/*JP
                     pline("Somehow, %s misses you wildly.",
+*/
+                    pline("\82È\82º\82©\81C%s\82Ì\8dU\8c\82\82Í\91å\82«\82­\82Í\82¸\82ê\82½\81D",
                           magr ? mon_nam(magr) : wepdesc);
                     *dmgptr = 0;
                     return TRUE;
                 }
                 if (noncorporeal(youmonst.data) || amorphous(youmonst.data)) {
+/*JP
                     pline("%s slices through your %s.", wepdesc,
+*/
+                    pline("%s\82Í\82 \82È\82½\82Ì%s\82ð\90Ø\82è\97\8e\82µ\82½\81D", wepdesc,
                           body_part(NECK));
                     return TRUE;
                 }
                 *dmgptr = 2 * (Upolyd ? u.mh : u.uhp) + FATAL_DAMAGE_MODIFIER;
+/*JP
                 pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc, "you");
+*/
+                pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc, "\82 \82È\82½");
                 otmp->dknown = TRUE;
                 /* Should amulets fall off? */
                 return TRUE;
@@ -1330,17 +1462,31 @@ int dieroll; /* needed for Magicbane and vorpal blades */
     if (spec_ability(otmp, SPFX_DRLI)) {
         /* some non-living creatures (golems, vortices) are
            vulnerable to life drain effects */
+/*JP
         const char *life = nonliving(mdef->data) ? "animating force" : "life";
+*/
+        const char *life = nonliving(mdef->data) ? "\93®\8dì\97Í" : "\90\96½\97Í";
 
         if (!youdefend) {
             if (vis) {
                 if (otmp->oartifact == ART_STORMBRINGER)
+#if 0 /*JP*/
                     pline_The("%s blade draws the %s from %s!",
                               hcolor(NH_BLACK), life, mon_nam(mdef));
+#else
+                    pline("%s\90n\82ª%s\82Ì%s\82ð\92D\82Á\82½\81I",
+                              hcolor(NH_BLACK), mon_nam(mdef), life);
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s draws the %s from %s!",
                           The(distant_name(otmp, xname)), life,
                           mon_nam(mdef));
+#else
+                    pline("%s\82Í%s\82Ì%s\82ð\92D\82Á\82½\81I",
+                          The(distant_name(otmp, xname)),
+                          mon_nam(mdef), life);
+#endif
             }
             if (mdef->m_lev == 0) {
                 *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER;
@@ -1359,17 +1505,36 @@ int dieroll; /* needed for Magicbane and vorpal blades */
             int oldhpmax = u.uhpmax;
 
             if (Blind)
+#if 0 /*JP*/
                 You_feel("an %s drain your %s!",
                          (otmp->oartifact == ART_STORMBRINGER)
                             ? "unholy blade"
                             : "object",
                          life);
+#else
+                pline("%s\82É%s\82ð\92D\82í\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I",
+                         (otmp->oartifact == ART_STORMBRINGER)
+                            ? "\95s\8fò\82È\90n"
+                            : "\89½\82©",
+                         life);
+#endif
             else if (otmp->oartifact == ART_STORMBRINGER)
+/*JP
                 pline_The("%s blade drains your %s!", hcolor(NH_BLACK), life);
+*/
+                pline("%s\90n\82ª\82 \82È\82½\82Ì%s\82ð\92D\82Á\82½\81I", hcolor(NH_BLACK), life);
             else
+#if 0 /*JP*/
                 pline("%s drains your %s!", The(distant_name(otmp, xname)),
                       life);
+#else
+                pline("%s\82ª\82 \82È\82½\82Ì%s\82ð\92D\82Á\82½\81I", The(distant_name(otmp, xname)),
+                      life);
+#endif
+/*JP
             losexp("life drainage");
+*/
+            losexp("\90\96½\97Í\82ð\8bz\8eû\82³\82ê\82Ä");
             if (magr && magr->mhp < magr->mhpmax) {
                 magr->mhp += (oldhpmax - u.uhpmax) / 2;
                 if (magr->mhp > magr->mhpmax)
@@ -1420,8 +1585,12 @@ struct obj *obj;
         /* It's a special power, not "just" a property */
         if (obj->age > monstermoves) {
             /* the artifact is tired :-) */
+#if 0 /*JP:T*/
             You_feel("that %s %s ignoring you.", the(xname(obj)),
                      otense(obj, "are"));
+#else
+            You_feel("%s\82ª\96³\8e\8b\82µ\82Ä\82¢\82é\82æ\82¤\82É\8a´\82\82½\81D", xname(obj));
+#endif
             /* and just got more so; patience is essential... */
             obj->age += (long) d(3, 10);
             return 1;
@@ -1445,7 +1614,10 @@ struct obj *obj;
             if (Upolyd)
                 healamt = (u.mhmax + 1 - u.mh) / 2;
             if (healamt || Sick || Slimed || Blinded > creamed)
+/*JP
                 You_feel("better.");
+*/
+                You_feel("\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\81D");
             else
                 goto nothing_special;
             if (healamt > 0) {
@@ -1470,7 +1642,10 @@ struct obj *obj;
             else if (epboost < 12)
                 epboost = u.uenmax - u.uen;
             if (epboost) {
+/*JP
                 You_feel("re-energized.");
+*/
+                You("\83G\83l\83\8b\83M\81[\82Å\96\9e\82½\82³\82ê\82½\81D");
                 u.uen += epboost;
                 context.botl = 1;
             } else
@@ -1520,7 +1695,10 @@ struct obj *obj;
                 num_ok_dungeons++;
                 last_ok_dungeon = i;
             }
+/*JP
             end_menu(tmpwin, "Open a portal to which dungeon?");
+*/
+            end_menu(tmpwin, "\82Ç\82Ì\96À\8b{\82Ö\82Ì\96\82\96@\82Ì\93ü\8cû\82ð\8aJ\82«\82Ü\82·\82©\81H");
             if (num_ok_dungeons > 1) {
                 /* more than one entry; display menu for choices */
                 menu_item *selected;
@@ -1551,12 +1729,21 @@ struct obj *obj;
 
             if (u.uhave.amulet || In_endgame(&u.uz) || In_endgame(&newlev)
                 || newlev.dnum == u.uz.dnum || !next_to_u()) {
+/*JP
                 You_feel("very disoriented for a moment.");
+*/
+                You("\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\81D");
             } else {
                 if (!Blind)
+/*JP
                     You("are surrounded by a shimmering sphere!");
+*/
+                    You("\83`\83J\83`\83J\8cõ\82é\8b\85\91Ì\82É\95¢\82í\82ê\82½\81I");
                 else
+/*JP
                     You_feel("weightless for a moment.");
+*/
+                    You_feel("\88ê\8fu\81C\96³\8fd\97Í\8a´\82ð\8a´\82\82½\81D");
                 goto_level(&newlev, FALSE, FALSE, FALSE);
             }
             break;
@@ -1583,8 +1770,13 @@ struct obj *obj;
                 otmp->quan += rnd(5);
             otmp->owt = weight(otmp);
             otmp =
+#if 0 /*JP*/
                 hold_another_object(otmp, "Suddenly %s out.",
                                     aobjnam(otmp, "fall"), (const char *) 0);
+#else
+                hold_another_object(otmp, "\93Ë\91R%s\82ª\97\8e\82¿\82½\81D",
+                                    xname(otmp), 0);
+#endif
             break;
         }
         }
@@ -1596,8 +1788,12 @@ struct obj *obj;
         if (on && obj->age > monstermoves) {
             /* the artifact is tired :-) */
             u.uprops[oart->inv_prop].extrinsic ^= W_ARTI;
+#if 0 /*JP:T*/
             You_feel("that %s %s ignoring you.", the(xname(obj)),
                      otense(obj, "are"));
+#else
+            You_feel("%s\82ª\96³\8e\8b\82µ\82Ä\82¢\82é\82æ\82¤\82É\8a´\82\82½\81D", xname(obj));
+#endif
             /* can't just keep repeatedly trying */
             obj->age += (long) d(3, 10);
             return 1;
@@ -1611,15 +1807,24 @@ struct obj *obj;
         nothing_special:
             /* you had the property from some other source too */
             if (carried(obj))
+/*JP
                 You_feel("a surge of power, but nothing seems to happen.");
+*/
+                You("\97Í\82Ì\8d\82\82Ü\82è\82ð\8a´\82\82½\82ª\81C\89½\82à\8bN\82«\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
             return 1;
         }
         switch (oart->inv_prop) {
         case CONFLICT:
             if (on)
+/*JP
                 You_feel("like a rabble-rouser.");
+*/
+                You("\96¯\8fO\90î\93®\89Æ\82Ì\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             else
+/*JP
                 You_feel("the tension decrease around you.");
+*/
+                pline("\82Ü\82í\82è\82Ì\8bÙ\92£\8a´\82ª\82È\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             break;
         case LEVITATION:
             if (on) {
@@ -1633,10 +1838,18 @@ struct obj *obj;
                 goto nothing_special;
             newsym(u.ux, u.uy);
             if (on)
+#if 0 /*JP*/
                 Your("body takes on a %s transparency...",
                      Hallucination ? "normal" : "strange");
+#else
+                pline("%s\81C\91Ì\82Í\93§\89ß\90«\82ð\82à\82Á\82½\81D\81D\81D",
+                      Hallucination ? "\82 \82½\82è\82Ü\82¦\82Ì\82±\82Æ\82¾\82ª" : "\8aï\96­\82È\82±\82Æ\82É");
+#endif
             else
+/*JP
                 Your("body seems to unfade...");
+*/
+                Your("\91Ì\82Í\8e\9f\91æ\82É\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82Ä\82«\82½\81D\81D\81D");
             break;
         }
     }
@@ -1695,8 +1908,14 @@ struct obj *obj;
 
     line = getrumor(bcsign(obj), buf, TRUE);
     if (!*line)
+/*JP
         line = "NetHack rumors file closed for renovation.";
+*/
+        line = "\89\\82Ì\90^\91\8a\82Í\90V\91\95\82Ì\82½\82ß\88ê\8e\9e\95Â\93X\81D";
+/*JP
     pline("%s:", Tobjnam(obj, "whisper"));
+*/
+    pline("%s\82Í\82³\82³\82â\82¢\82½\81F", xname(obj));
     verbalize1(line);
     return;
 }
index 3866dbf..0c83b08 100644 (file)
@@ -2,6 +2,12 @@
 /*      Copyright 1988, 1989, 1990, 1992, M. Stephenson           */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
+
 /*  attribute modification routines. */
 
 #include "hack.h"
 
 /* part of the output on gain or loss of attribute */
 static const char
+#if 0 /*JP*/
     *const plusattr[] = { "strong", "smart", "wise",
                           "agile",  "tough", "charismatic" },
+#else
+    *const plusattr[] = { "\8b­\82¢", "\8c«\96¾\82¾", "\8c«\82¢",
+                          "\8b@\95q\82¾", "\8aæ\8fä\82¾", "\96£\97Í\93I\82¾" },
+#endif
+#if 0 /*JP*/
     *const minusattr[] = { "weak",    "stupid",
                            "foolish", "clumsy",
                            "fragile", "repulsive" };
+#else
+    *const minusattr[] = { "\8eã\82¢", "\8bð\82©\82¾",
+                           "\8aÔ\94²\82¯\82¾", "\95s\8aí\97p\82¾",
+                           "\82Ð\8eã\82¾","\8fX\82¢" };
+#endif
 
 static const struct innate {
     schar ulevel;
@@ -21,69 +38,147 @@ static const struct innate {
     const char *gainstr, *losestr;
 } arc_abil[] = { { 1, &(HStealth), "", "" },
                  { 1, &(HFast), "", "" },
+/*JP
                  { 10, &(HSearching), "perceptive", "" },
+*/
+                 { 10, &(HSearching), "\92m\8ao\97Í\82ð\93¾\82½", "\92m\8ao\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   bar_abil[] = { { 1, &(HPoison_resistance), "", "" },
+/*JP
                  { 7, &(HFast), "quick", "slow" },
+*/
+                 { 7, &(HFast), "\91f\91\81\82³\82ð\93¾\82½", "\92x\82­\82È\82Á\82½" },
+/*JP
                  { 15, &(HStealth), "stealthy", "" },
+*/
+                 { 15, &(HStealth), "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\93¾\82½", "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
+/*JP
   cav_abil[] = { { 7, &(HFast), "quick", "slow" },
+*/
+  cav_abil[] = { { 7, &(HFast), "\91f\91\81\82³\82ð\93¾\82½", "\92x\82­\82È\82Á\82½" },
+/*JP
                  { 15, &(HWarning), "sensitive", "" },
+*/
+                 { 15, &(HWarning), "\95q\8a´\82É\82È\82Á\82½", "\93Ý\8a´\82É\82È\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   hea_abil[] = { { 1, &(HPoison_resistance), "", "" },
+/*JP
                  { 15, &(HWarning), "sensitive", "" },
+*/
+                 { 15, &(HWarning), "\95q\8a´\82É\82È\82Á\82½", "\93Ý\8a´\82É\82È\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
+/*JP
   kni_abil[] = { { 7, &(HFast), "quick", "slow" }, { 0, 0, 0, 0 } },
+*/
+  kni_abil[] = { { 7, &(HFast), "\91f\91\81\82³\82ð\93¾\82½", "\92x\82­\82È\82Á\82½" }, { 0, 0, 0, 0 } },
 
   mon_abil[] = { { 1, &(HFast), "", "" },
                  { 1, &(HSleep_resistance), "", "" },
                  { 1, &(HSee_invisible), "", "" },
+/*JP
                  { 3, &(HPoison_resistance), "healthy", "" },
+*/
+                 { 3, &(HPoison_resistance), "\8c\92\8dN\82É\82È\82Á\82½", "\95s\8c\92\8dN\82É\82È\82Á\82½" },
+/*JP
                  { 5, &(HStealth), "stealthy", "" },
+*/
+                 { 5, &(HStealth), "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\93¾\82½", "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\8e¸\82Á\82½" },
+/*JP
                  { 7, &(HWarning), "sensitive", "" },
+*/
+                 { 7, &(HWarning), "\95q\8a´\82É\82È\82Á\82½", "\93Ý\8a´\82É\82È\82Á\82½" },
+/*JP
                  { 9, &(HSearching), "perceptive", "unaware" },
+*/
+                 { 9, &(HSearching), "\92m\8ao\97Í\82ð\93¾\82½", "\92m\8ao\97Í\82ð\8e¸\82Á\82½" },
+/*JP
                  { 11, &(HFire_resistance), "cool", "warmer" },
+*/
+                 { 11, &(HFire_resistance), "\97â\82½\82­\82È\82Á\82½", "\92g\82©\82­\82È\82Á\82½" },
+/*JP
                  { 13, &(HCold_resistance), "warm", "cooler" },
+*/
+                 { 13, &(HCold_resistance), "\92g\82©\82­\82È\82Á\82½", "\97â\82½\82­\82È\82Á\82½"},
+/*JP
                  { 15, &(HShock_resistance), "insulated", "conductive" },
+*/
+                 { 15, &(HShock_resistance), "\90â\89\8f\82³\82ê\82½", "\93±\93d\82³\82ê\82½" },
+/*JP
                  { 17, &(HTeleport_control), "controlled", "uncontrolled" },
+*/
+                 { 17, &(HTeleport_control), "\90§\8cä\97Í\82ð\93¾\82½","\90§\8cä\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
+/*JP
   pri_abil[] = { { 15, &(HWarning), "sensitive", "" },
+*/
+  pri_abil[] = { { 15, &(HWarning), "\95q\8a´\82É\82È\82Á\82½", "\93Ý\8a´\82É\82È\82Á\82½" },
+/*JP
                  { 20, &(HFire_resistance), "cool", "warmer" },
+*/
+                 { 20, &(HFire_resistance), "\97â\82½\82­\82È\82Á\82½", "\92g\82©\82­\82È\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   ran_abil[] = { { 1, &(HSearching), "", "" },
+/*JP
                  { 7, &(HStealth), "stealthy", "" },
+*/
+                 { 7, &(HStealth), "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\93¾\82½", "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\8e¸\82Á\82½" },
                  { 15, &(HSee_invisible), "", "" },
                  { 0, 0, 0, 0 } },
 
   rog_abil[] = { { 1, &(HStealth), "", "" },
+/*JP
                  { 10, &(HSearching), "perceptive", "" },
+*/
+                 { 10, &(HSearching), "\92m\8ao\97Í\82ð\93¾\82½", "\92m\8ao\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   sam_abil[] = { { 1, &(HFast), "", "" },
+/*JP
                  { 15, &(HStealth), "stealthy", "" },
+*/
+                 { 15, &(HStealth), "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\93¾\82½", "\90l\96Ú\82ð\93\90\82Þ\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
+/*JP
   tou_abil[] = { { 10, &(HSearching), "perceptive", "" },
+*/
+  tou_abil[] = { { 10, &(HSearching), "\92m\8ao\97Í\82ð\93¾\82½", "\92m\8ao\97Í\82ð\8e¸\82Á\82½" },
+/*JP
                  { 20, &(HPoison_resistance), "hardy", "" },
+*/
+                 { 20, &(HPoison_resistance), "\96Æ\89u\97Í\82ð\93¾\82½", "\96Æ\89u\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   val_abil[] = { { 1, &(HCold_resistance), "", "" },
                  { 1, &(HStealth), "", "" },
+/*JP
                  { 7, &(HFast), "quick", "slow" },
+*/
+                 { 7, &(HFast), "\91f\91\81\82³\82ð\93¾\82½", "\92x\82­\82È\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
+/*JP
   wiz_abil[] = { { 15, &(HWarning), "sensitive", "" },
+*/
+  wiz_abil[] = { { 15, &(HWarning), "\95q\8a´\82É\82È\82Á\82½", "\93Ý\8a´\82É\82È\82Á\82½" },
+/*JP
                  { 17, &(HTeleport_control), "controlled", "uncontrolled" },
+*/
+                 { 17, &(HTeleport_control), "\90§\8cä\97Í\82ð\93¾\82½","\90§\8cä\97Í\82ð\8e¸\82Á\82½" },
                  { 0, 0, 0, 0 } },
 
   /* Intrinsics conferred by race */
+/*JP
     elf_abil[] = { { 4, &(HSleep_resistance), "awake", "tired" },
+*/
+    elf_abil[] = { { 4, &(HSleep_resistance), "\96Ú\82ª\8ao\82ß\82½", "\96°\82­\82È\82Á\82½" },
                    { 0, 0, 0, 0 } },
 
   orc_abil[] = { { 1, &(HPoison_resistance), "", "" }, { 0, 0, 0, 0 } };
@@ -108,7 +203,10 @@ int msgflg; /* positive => no message, zero => message, and */
 
     if ((ndx == A_INT || ndx == A_WIS) && uarmh && uarmh->otyp == DUNCE_CAP) {
         if (msgflg == 0)
+/*JP
             Your("cap constricts briefly, then relaxes again.");
+*/
+            Your("\96X\8eq\82ª\82µ\82Î\82ç\82­\82Ì\8aÔ\83L\83\85\82Á\82Æ\92÷\82ß\82Â\82¯\81C\82»\82µ\82Ä\82ä\82é\82ñ\82¾\81D");
         return FALSE;
     }
 
@@ -138,13 +236,21 @@ int msgflg; /* positive => no message, zero => message, and */
     }
     if (ACURR(ndx) == old_acurr) {
         if (msgflg == 0 && flags.verbose)
+#if 0 /*JP*/
             pline("You're %s as %s as you can get.",
                   abonflg ? "currently" : "already", attrstr);
+#else
+            You("%s\8f\\95ª\82É%s\81D",
+                  abonflg ? "\8d¡\82Ì\82Æ\82±\82ë" : "\8aù\82É", attrstr);
+#endif
         return FALSE;
     }
 
     if (msgflg <= 0)
+/*JP
         You_feel("%s%s!", (incr > 1 || incr < -1) ? "very " : "", attrstr);
+*/
+        You("%s%s\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I", (incr > 1 || incr < -1) ? "\82Æ\82Ä\82à" : "", jconj_adj(attrstr));
     context.botl = 1;
     if (moves > 1 && (ndx == A_STR || ndx == A_CON))
         (void) encumber_msg();
@@ -229,20 +335,38 @@ boolean thrown_weapon; /* thrown weapons are less deadly */
     /* inform player about being poisoned unless that's already been done;
        "blast" has given a "blast of poison gas" message; "poison arrow",
        "poison dart", etc have implicitly given poison messages too... */
+#if 0 /*JP*/
     if (strcmp(reason, "blast") && !strstri(reason, "poison")) {
+#else
+    if (strcmp(reason, "\95\97") && strcmp(reason, "\91§") && !strstri(reason, "\93Å")) {
+#endif
+#if 0 /*JP*/
         boolean plural = (reason[strlen(reason) - 1] == 's') ? 1 : 0;
+#endif
 
         /* avoid "The" Orcus's sting was poisoned... */
+#if 0 /*JP*/
         pline("%s%s %s poisoned!", isupper(*reason) ? "" : "The ", reason,
               plural ? "were" : "was");
+#else
+        pline("%s\82Í\93Å\82É\82¨\82©\82³\82ê\82Ä\82¢\82é\81I", reason);
+#endif
     }
     if (Poison_resistance) {
+#if 0 /*JP*/
         if (!strcmp(reason, "blast"))
+#else
+        if (!strcmp(reason, "\95\97") || !strcmp(reason, "\91§"))
+#endif
             shieldeff(u.ux, u.uy);
+/*JP
         pline_The("poison doesn't seem to affect you.");
+*/
+        pline("\93Å\82Í\8cø\82©\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
         return;
     }
 
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
     /* suppress killer prefix if it already has one */
     i = name_to_mon(pkiller);
     if (i >= LOW_PM && (mons[i].geno & G_UNIQ)) {
@@ -254,12 +378,16 @@ boolean thrown_weapon; /* thrown weapons are less deadly */
         /*[ does this need a plural check too? ]*/
         kprefix = KILLED_BY;
     }
+#endif
 
     i = !fatal ? 1 : rn2(fatal + (thrown_weapon ? 20 : 0));
     if (i == 0 && typ != A_CHA) {
         /* instant kill */
         u.uhp = -1;
+/*JP
         pline_The("poison was deadly...");
+*/
+        pline("\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
     } else if (i > 5) {
         /* HP damage; more likely--but less severe--with missiles */
         loss = thrown_weapon ? rnd(6) : rn1(10, 6);
@@ -276,8 +404,12 @@ boolean thrown_weapon; /* thrown weapons are less deadly */
     if (u.uhp < 1) {
         killer.format = kprefix;
         Strcpy(killer.name, pkiller);
+#if 0 /*JP*/
         /* "Poisoned by a poisoned ___" is redundant */
         done(strstri(pkiller, "poison") ? DIED : POISONING);
+#else /*JP:\93ú\96{\8cê\82Å\82Í\8bæ\95Ê\82µ\82Ä\82¢\82È\82¢*/
+        done(POISONING);
+#endif
     }
     (void) encumber_msg();
 }
@@ -454,12 +586,21 @@ exerper()
 /* exercise/abuse text (must be in attribute order, not botl order);
    phrased as "You must have been [][0]." or "You haven't been [][1]." */
 static NEARDATA const char *const exertext[A_MAX][2] = {
+#if 0 /*JP*/
     { "exercising diligently", "exercising properly" },           /* Str */
     { 0, 0 },                                                     /* Int */
     { "very observant", "paying attention" },                     /* Wis */
     { "working on your reflexes", "working on reflexes lately" }, /* Dex */
     { "leading a healthy life-style", "watching your health" },   /* Con */
     { 0, 0 },                                                     /* Cha */
+#else
+    { "\94O\93ü\82è\82É\89^\93®\82µ\82Ä\82¢\82½", "\93K\90Ø\82É\89^\93®\82µ\82Ä\82¢\82È\82©\82Á\82½" },       /* Str */
+    { 0, 0 },                                                     /* Int */
+    { "\90T\8fd\82É\8ds\93®\82µ\82Ä\82¢\82½", "\92\8d\88Ó\95s\91«\82¾\82Á\82½" },                   /* Wis */
+    { "\94½\8eË\90_\8co\82ð\8eg\82Á\82Ä\82¢\82½", "\8dÅ\8bß\94½\8eË\90_\8co\82ð\8eg\82Á\82Ä\82¢\82È\82©\82Á\82½" }, /* Dex */
+    { "\8c\92\8dN\93I\82È\90\8a\88\82ð\82µ\82Ä\82¢\82½", "\8c\92\8dN\8aÇ\97\9d\82ð\91Ó\82Á\82Ä\82¢\82½" },         /* Con */
+    { 0, 0 },                                                     /* Cha */
+#endif
 };
 
 void
@@ -535,9 +676,14 @@ exerchk()
                 /* if you actually changed an attrib - zero accumulation */
                 AEXE(i) = ax = 0;
                 /* then print an explanation */
+#if 0 /*JP*/
                 You("%s %s.",
                     (mod_val > 0) ? "must have been" : "haven't been",
                     exertext[i][(mod_val > 0) ? 0 : 1]);
+#else
+                You("%s\82É\88á\82¢\82È\82¢\81D",
+                    exertext[i][(mod_val > 0) ? 0 : 1]);
+#endif
             }
         nextattrib:
             /* this used to be ``AEXE(i) /= 2'' but that would produce
index 1a35eea..a55671d 100644 (file)
@@ -16,7 +16,10 @@ boolean showmsg;
 {
     if (carried(uball)) {
         if (showmsg)
+/*JP
             pline("Startled, you drop the iron ball.");
+*/
+            pline("\8bÁ\82¢\82Ä\82 \82È\82½\82Í\93S\8b\85\82ð\97\8e\82µ\82½\81D");
         if (uwep == uball)
             setuwep((struct obj *) 0);
         if (uswapwep == uball)
@@ -39,16 +42,29 @@ ballfall()
     ballrelease(TRUE);
     if (gets_hit) {
         int dmg = rn1(7, 25);
+/*JP
         pline_The("iron ball falls on your %s.", body_part(HEAD));
+*/
+        pline("\93S\8b\85\82Í\82 \82È\82½\82Ì%s\82Ì\8fã\82É\97\8e\82¿\82½\81D", body_part(HEAD));
         if (uarmh) {
             if (is_metallic(uarmh)) {
+/*JP
                 pline("Fortunately, you are wearing a hard helmet.");
+*/
+                pline("\8dK\89^\82É\82à\81C\82 \82È\82½\82Í\8cÅ\82¢\8a\95\82ð\90g\82É\82Â\82¯\82Ä\82¢\82½\81D");
                 dmg = 3;
             } else if (flags.verbose)
+/*JP
                 pline("%s does not protect you.", Yname2(uarmh));
+*/
+                Your("%s\82Å\82Í\8eç\82ê\82È\82¢\81D", Yname2(uarmh));
         }
+#if 0 /*JP*/
         losehp(Maybe_Half_Phys(dmg), "crunched in the head by an iron ball",
                NO_KILLER_PREFIX);
+#else
+        losehp(Maybe_Half_Phys(dmg), "\93S\8b\85\82Å\93ª\82ð\91Å\82Á\82Ä", KILLED_BY);
+#endif
     }
 }
 
@@ -586,8 +602,13 @@ boolean allow_drag;
 drag:
 
     if (near_capacity() > SLT_ENCUMBER && dist2(x, y, u.ux, u.uy) <= 2) {
+#if 0 /*JP*/
         You("cannot %sdrag the heavy iron ball.",
             invent ? "carry all that and also " : "");
+#else
+        You("%s\8fd\82¢\93S\8b\85\82ð\82Ð\82«\82¸\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
+            invent ? "\82»\82ê\82¾\82¯\82Ì\89×\95¨\82ð\8e\9d\82Á\82½\82Ü\82Ü" : "");
+#endif
         nomul(0);
         return FALSE;
     }
@@ -601,13 +622,19 @@ drag:
             && (t->ttyp == PIT || t->ttyp == SPIKED_PIT || t->ttyp == HOLE
                 || t->ttyp == TRAPDOOR))) {
         if (Levitation) {
+/*JP
             You_feel("a tug from the iron ball.");
+*/
+            You("\93S\8b\85\82É\88ø\82Á\82Ï\82ç\82ê\82½\81D");
             if (t)
                 t->tseen = 1;
         } else {
             struct monst *victim;
 
+/*JP
             You("are jerked back by the iron ball!");
+*/
+            You("\93S\8b\85\82É\82®\82¢\82Æ\88ø\82Á\82Ï\82ç\82ê\82½\81I");
             if ((victim = m_at(uchain->ox, uchain->oy)) != 0) {
                 int tmp;
 
@@ -702,33 +729,63 @@ xchar x, y;
 
     if (x != u.ux || y != u.uy) {
         struct trap *t;
+/*JP
         const char *pullmsg = "The ball pulls you out of the %s!";
+*/
+        const char *pullmsg = "\93S\8b\85\82Í%s\82©\82ç\82 \82È\82½\82ð\88ø\82Á\82Ï\82è\8fo\82µ\82½\81I";
 
         if (u.utrap && u.utraptype != TT_INFLOOR
             && u.utraptype != TT_BURIEDBALL) {
             switch (u.utraptype) {
             case TT_PIT:
+/*JP
                 pline(pullmsg, "pit");
+*/
+                pline(pullmsg, "\97\8e\82µ\8c\8a");
                 break;
             case TT_WEB:
+/*JP
                 pline(pullmsg, "web");
+*/
+                pline(pullmsg, "\82­\82à\82Ì\91\83");
+/*JP
                 pline_The("web is destroyed!");
+*/
+                pline("\82­\82à\82Ì\91\83\82Í\82±\82í\82ê\82½\81I");
                 deltrap(t_at(u.ux, u.uy));
                 break;
             case TT_LAVA:
+/*JP
                 pline(pullmsg, "lava");
+*/
+                pline(pullmsg, "\97n\8aâ");
                 break;
             case TT_BEARTRAP: {
                 register long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE;
+/*JP
                 pline(pullmsg, "bear trap");
+*/
+                pline(pullmsg, "\8cF\82Ìã©");
                 set_wounded_legs(side, rn1(1000, 500));
                 if (!u.usteed) {
+#if 0 /*JP*/
                     Your("%s %s is severely damaged.",
                          (side == LEFT_SIDE) ? "left" : "right",
                          body_part(LEG));
+#else
+                    Your("%s%s\82Í\82Ð\82Ç\82¢\8f\9d\82ð\95\89\82Á\82½\81D",
+                         (side == LEFT_SIDE) ? "\8d¶" : "\89E",
+                         body_part(LEG));
+#endif
+#if 0 /*JP*/
                     losehp(Maybe_Half_Phys(2),
                            "leg damage from being pulled out of a bear trap",
                            KILLED_BY);
+#else
+                    losehp(Maybe_Half_Phys(2),
+                           "\8cF\82Ìã©\82©\82ç\94²\82¯\82æ\82¤\82Æ\91«\82ð\88ø\82Á\82Ï\82Á\82Ä",
+                           KILLED_BY);
+#endif
                 }
                 break;
             }
@@ -782,7 +839,10 @@ litter()
         nextobj = otmp->nobj;
         if ((otmp != uball) && (rnd(capacity) <= (int) otmp->owt)) {
             if (canletgo(otmp, "")) {
+/*JP
                 pline("%s you down the stairs.", Yobjnam2(otmp, "follow"));
+*/
+                You("%s\82Æ\88ê\8f\8f\82É\8aK\92i\82ð\8d~\82è\82½\81D", xname(otmp));
                 dropx(otmp);
             }
         }
@@ -807,27 +867,48 @@ drag_down()
     forward = carried(uball) && (uwep == uball || !uwep || !rn2(3));
 
     if (carried(uball))
+/*JP
         You("lose your grip on the iron ball.");
+*/
+        You("\93S\8b\85\82ð\8eè\82©\82ç\97\8e\82µ\82Ä\82µ\82Ü\82Á\82½\81D");
 
     if (forward) {
         if (rn2(6)) {
+/*JP
             pline_The("iron ball drags you downstairs!");
+*/
+            You("\93S\8b\85\82É\82æ\82Á\82Ä\8aK\92i\82ð\82±\82ë\82ª\82è\97\8e\82¿\82½\81I");
             losehp(Maybe_Half_Phys(rnd(6)),
+/*JP
                    "dragged downstairs by an iron ball", NO_KILLER_PREFIX);
+*/
+                   "\93S\8b\85\82É\82æ\82è\8aK\92i\82ð\82±\82ë\82ª\82è\97\8e\82¿\82Ä", KILLED_BY);
             litter();
         }
     } else {
         if (rn2(2)) {
+/*JP
             pline_The("iron ball smacks into you!");
+*/
+            pline("\93S\8b\85\82Í\82 \82È\82½\82É\83S\83c\83\93\82Æ\82Ô\82Â\82©\82Á\82½\81I");
+/*JP
             losehp(Maybe_Half_Phys(rnd(20)), "iron ball collision",
+*/
+            losehp(Maybe_Half_Phys(rnd(20)), "\93S\8b\85\82Ì\8fÕ\93Ë\82Å",
                    KILLED_BY_AN);
             exercise(A_STR, FALSE);
             dragchance -= 2;
         }
         if ((int) dragchance >= rnd(6)) {
+/*JP
             pline_The("iron ball drags you downstairs!");
+*/
+            You("\93S\8b\85\82É\82æ\82Á\82Ä\8aK\92i\82ð\82±\82ë\82ª\82è\97\8e\82¿\82½\81I");
             losehp(Maybe_Half_Phys(rnd(3)),
+/*JP
                    "dragged downstairs by an iron ball", NO_KILLER_PREFIX);
+*/
+                   "\93S\8b\85\82É\82æ\82è\8aK\92i\82ð\82±\82ë\82ª\82è\97\8e\82¿\82Ä", KILLED_BY);
             exercise(A_STR, FALSE);
             litter();
         }
index 7ca1925..4c1c32c 100644 (file)
@@ -346,11 +346,17 @@ struct obj *corpse;
     if (fd >= 0) {
         (void) nhclose(fd);
         if (wizard) {
+/*JP
             if (yn("Bones file already exists.  Replace it?") == 'y') {
+*/
+            if (yn("\8d\9c\83t\83@\83C\83\8b\82ª\8aù\82É\91\8dÝ\82µ\82Ä\82é\82æ\81D  \92u\82«\8a·\82¦\82é\81H") == 'y') {
                 if (delete_bonesfile(&u.uz))
                     goto make_bones;
                 else
+/*JP
                     pline("Cannot unlink old bones.");
+*/
+                    pline("\8cÃ\82¢\8d\9c\82ð\8dí\8f\9c\82Å\82«\82È\82©\82Á\82½\81D");
             }
         }
         /* compression can change the file's name, so must
@@ -524,7 +530,10 @@ make_bones:
         bflush(fd);
         if (bytes_counted > freediskspace(bones)) { /* not enough room */
             if (wizard)
+/*JP
                 pline("Insufficient space to create bones file.");
+*/
+                pline("\8d\9c\83t\83@\83C\83\8b\82ð\90\90¬\82·\82é\82½\82ß\82Ì\8f[\95ª\82È\97Ì\88æ\82ª\82È\82¢\81D");
             (void) nhclose(fd);
             cancel_bonesfile();
             return;
@@ -569,12 +578,18 @@ getbones()
 
     if (validate(fd, bones) != 0) {
         if (!wizard)
+/*JP
             pline("Discarding unuseable bones; no need to panic...");
+*/
+            pline("\8eg\82¦\82È\82¢\8d\9c\82ð\8eÌ\82Ä\82½\81D\8dQ\82Ä\82é\95K\97v\82Í\82È\82¢\81D\81D\81D");
         ok = FALSE;
     } else {
         ok = TRUE;
         if (wizard) {
+/*JP
             if (yn("Get bones?") == 'n') {
+*/
+            if (yn("\8d\9c\82ð\8fE\82¤\81H") == 'n') {
                 (void) nhclose(fd);
                 compress_bonesfile();
                 return 0;
@@ -585,7 +600,10 @@ getbones()
         if (strcmp(bonesid, oldbonesid) != 0) {
             char errbuf[BUFSZ];
 
+/*JP
             Sprintf(errbuf, "This is bones level '%s', not '%s'!", oldbonesid,
+*/
+            Sprintf(errbuf, "\82±\82Ì\8d\9c\82Ì\83\8c\83x\83\8b\82Í'%s'\82Å\82 \82Á\82Ä\81A'%s'\82Å\82Í\82È\82¢\81I", oldbonesid,
                     bonesid);
             if (wizard) {
                 pline1(errbuf);
@@ -626,7 +644,10 @@ getbones()
     u.uroleplay.numbones++;
 
     if (wizard) {
+/*JP
         if (yn("Unlink bones?") == 'n') {
+*/
+        if (yn("\8d\9c\82ð\8fÁ\82·\81H") == 'n') {
             compress_bonesfile();
             return ok;
         }
index 422f6d4..643f55c 100644 (file)
@@ -7,8 +7,13 @@
 
 extern const char *hu_stat[]; /* defined in eat.c */
 
+#if 0 /*JP*/
 const char *const enc_stat[] = { "",         "Burdened",  "Stressed",
                                  "Strained", "Overtaxed", "Overloaded" };
+#else
+const char *const enc_stat[] = { "",     "\82æ\82ë\82ß\82«", "\88³\94\97",
+                                 "\8cÀ\8aE", "\89×\8fd",     "\92´\89ß"};
+#endif
 
 STATIC_OVL NEARDATA int mrank_sz = 0; /* loaded by max_rank_sz (from u_init) */
 STATIC_DCL const char *NDECL(rank);
@@ -28,8 +33,15 @@ bot1()
     Strcpy(newbot1, plname);
     if ('a' <= newbot1[0] && newbot1[0] <= 'z')
         newbot1[0] += 'A' - 'a';
+#if 1 /*JP*/
+    if(is_kanji1(newbot1, 9))
+        newbot1[9] = '_';
+#endif
     newbot1[10] = 0;
+/*JP
     Sprintf(nb = eos(newbot1), " the ");
+*/
+    Sprintf(nb = eos(newbot1)," ");
 
     if (Upolyd) {
         char mbot[BUFSZ];
@@ -53,23 +65,48 @@ bot1()
         Sprintf(nb = eos(nb), "%*s", i - j, " "); /* pad with spaces */
     if (ACURR(A_STR) > 18) {
         if (ACURR(A_STR) > STR18(100))
+/*JP
             Sprintf(nb = eos(nb), "St:%2d ", ACURR(A_STR) - 100);
+*/
+            Sprintf(nb = eos(nb), "\8b­:%2d ", ACURR(A_STR) - 100);
         else if (ACURR(A_STR) < STR18(100))
+/*JP
             Sprintf(nb = eos(nb), "St:18/%02d ", ACURR(A_STR) - 18);
+*/
+            Sprintf(nb = eos(nb), "\8b­:18/%02d ", ACURR(A_STR) - 18);
         else
+/*JP
             Sprintf(nb = eos(nb), "St:18/** ");
+*/
+            Sprintf(nb = eos(nb), "\8b­:18/** ");
     } else
+/*JP
         Sprintf(nb = eos(nb), "St:%-1d ", ACURR(A_STR));
+*/
+        Sprintf(nb = eos(nb), "\8b­:%-1d ", ACURR(A_STR));
+/*JP
     Sprintf(nb = eos(nb), "Dx:%-1d Co:%-1d In:%-1d Wi:%-1d Ch:%-1d",
+*/
+    Sprintf(nb = eos(nb), "\91\81:%-1d \91Ï:%-1d \92m:%-1d \8c«:%-1d \96£:%-1d ",
             ACURR(A_DEX), ACURR(A_CON), ACURR(A_INT), ACURR(A_WIS),
             ACURR(A_CHA));
+#if 0 /*JP*/
     Sprintf(nb = eos(nb),
             (u.ualign.type == A_CHAOTIC)
                 ? "  Chaotic"
                 : (u.ualign.type == A_NEUTRAL) ? "  Neutral" : "  Lawful");
+#else
+    Sprintf(nb = eos(nb),
+            (u.ualign.type == A_CHAOTIC)
+                ? "\8d¬\93×"
+                : (u.ualign.type == A_NEUTRAL) ? "\92\86\97§" : "\92\81\8f\98");
+#endif
 #ifdef SCORE_ON_BOTL
     if (flags.showscore)
+/*JP
         Sprintf(nb = eos(nb), " S:%ld", botl_score());
+*/
+        Sprintf(nb = eos(nb), "%ld\93_", botl_score());
 #endif
     curs(WIN_STATUS, 1, 0);
     putstr(WIN_STATUS, 0, newbot1);
@@ -89,39 +126,72 @@ bot2()
     if (hp < 0)
         hp = 0;
     (void) describe_level(newbot2);
+/*JP
     Sprintf(nb = eos(newbot2), "%s:%-2ld HP:%d(%d) Pw:%d(%d) AC:%-2d",
+*/
+    Sprintf(nb = eos(newbot2), "%s:%-2ld \91Ì:%d(%d) \96\82:%d(%d) \8aZ:%-2d",
             encglyph(objnum_to_glyph(GOLD_PIECE)), money_cnt(invent), hp,
             hpmax, u.uen, u.uenmax, u.uac);
 
     if (Upolyd)
         Sprintf(nb = eos(nb), " HD:%d", mons[u.umonnum].mlevel);
     else if (flags.showexp)
+/*JP
         Sprintf(nb = eos(nb), " Xp:%u/%-1ld", u.ulevel, u.uexp);
+*/
+        Sprintf(nb = eos(nb), " \8co\8c±:%u/%-1ld", u.ulevel,u.uexp);
     else
+/*JP
         Sprintf(nb = eos(nb), " Exp:%u", u.ulevel);
+*/
+        Sprintf(nb = eos(nb), " \8co\8c±:%u", u.ulevel);
 
     if (flags.time)
+/*JP
         Sprintf(nb = eos(nb), " T:%ld", moves);
+*/
+        Sprintf(nb = eos(nb), " \95à:%ld", moves);
     if (strcmp(hu_stat[u.uhs], "        ")) {
         Sprintf(nb = eos(nb), " ");
         Strcat(newbot2, hu_stat[u.uhs]);
     }
     if (Confusion)
+/*JP
         Sprintf(nb = eos(nb), " Conf");
+*/
+        Sprintf(nb = eos(nb), " \8d¬\97\90");
     if (Sick) {
         if (u.usick_type & SICK_VOMITABLE)
+/*JP
             Sprintf(nb = eos(nb), " FoodPois");
+*/
+            Sprintf(nb = eos(nb), " \90H\93Å");
         if (u.usick_type & SICK_NONVOMITABLE)
+/*JP
             Sprintf(nb = eos(nb), " Ill");
+*/
+            Sprintf(nb = eos(nb), " \95a\8bC");
     }
     if (Blind)
+/*JP
         Sprintf(nb = eos(nb), " Blind");
+*/
+        Sprintf(nb = eos(nb), " \96Ó\96Ú");
     if (Stunned)
+/*JP
         Sprintf(nb = eos(nb), " Stun");
+*/
+        Sprintf(nb = eos(nb), " á¿\9dò");
     if (Hallucination)
+/*JP
         Sprintf(nb = eos(nb), " Hallu");
+*/
+        Sprintf(nb = eos(nb), " \8c\8ao");
     if (Slimed)
+/*JP
         Sprintf(nb = eos(nb), " Slime");
+*/
+        Sprintf(nb = eos(nb), " \82Ç\82ë\82Ç\82ë");
     if (cap > UNENCUMBERED)
         Sprintf(nb = eos(nb), " %s", enc_stat[cap]);
     curs(WIN_STATUS, 1, 1);
@@ -272,12 +342,21 @@ char *buf;
     if (Is_knox(&u.uz))
         Sprintf(buf, "%s ", dungeons[u.uz.dnum].dname);
     else if (In_quest(&u.uz))
+/*JP
         Sprintf(buf, "Home %d ", dunlev(&u.uz));
+*/
+        Sprintf(buf, "\8cÌ\8b½ %d ", dunlev(&u.uz));
     else if (In_endgame(&u.uz))
+/*JP
         Sprintf(buf, Is_astralevel(&u.uz) ? "Astral Plane " : "End Game ");
+*/
+        Sprintf(buf, Is_astralevel(&u.uz) ? "\90¸\97ì\8aE " : "\8dÅ\8fI\8e\8e\97û ");
     else {
         /* ports with more room may expand this one */
+/*JP
         Sprintf(buf, "Dlvl:%-2d ", depth(&u.uz));
+*/
+        Sprintf(buf, "\92n\89º:%-2d ", depth(&u.uz));
         ret = 0;
     }
     return ret;
index 8fd20ef..6664bf7 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "func_tab.h"
 
@@ -340,9 +345,15 @@ doextlist(VOID_ARGS)
 
     datawin = create_nhwindow(NHW_TEXT);
     putstr(datawin, 0, "");
+/*JP
     putstr(datawin, 0, "            Extended Commands List");
+*/
+    putstr(datawin, 0, "            \8ag\92£\83R\83}\83\93\83h\88ê\97\97");
     putstr(datawin, 0, "");
+/*JP
     putstr(datawin, 0, "    Press '#', then type:");
+*/
+    putstr(datawin, 0, "    '#'\82ð\89\9f\82µ\82½\82 \82Æ\83^\83C\83v\82¹\82æ:");
     putstr(datawin, 0, "");
 
     for (efp = extcmdlist; efp->ef_txt; efp++) {
@@ -439,10 +450,16 @@ extcmd_via_menu()
                 Sprintf(prompt, "%s [%s]", choices[i]->ef_txt,
                         choices[i]->ef_desc);
             } else if (acount == 1) {
+/*JP
                 Sprintf(prompt, "%s or %s", choices[i - 1]->ef_txt,
+*/
+                Sprintf(prompt, "%s \82Ü\82½\82Í %s", choices[i-1]->ef_txt,
                         choices[i]->ef_txt);
             } else {
+/*JP
                 Strcat(prompt, " or ");
+*/
+                Strcat(prompt," \82Ü\82½\82Í ");
                 Strcat(prompt, choices[i]->ef_txt);
             }
             ++acount;
@@ -454,7 +471,10 @@ extcmd_via_menu()
             add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE, buf,
                      FALSE);
         }
+/*JP
         Sprintf(prompt, "Extended Command: %s", cbuf);
+*/
+        Sprintf(prompt, "\8ag\92£\83R\83}\83\93\83h: %s", cbuf);
         end_menu(win, prompt);
         n = select_menu(win, PICK_ONE, &pick_list);
         destroy_nhwindow(win);
@@ -508,22 +528,37 @@ domonability(VOID_ARGS)
             if (split_mon(&youmonst, (struct monst *) 0))
                 dryup(u.ux, u.uy, TRUE);
         } else
+/*JP
             There("is no fountain here.");
+*/
+            pline("\82±\82±\82É\82Í\90ò\82Í\82È\82¢\81D");
     } else if (is_unicorn(youmonst.data)) {
         use_unicorn_horn((struct obj *) 0);
         return 1;
     } else if (youmonst.data->msound == MS_SHRIEK) {
+/*JP
         You("shriek.");
+*/
+        You("\8bà\90Ø\82è\90º\82ð\82 \82°\82½\81D");
         if (u.uburied)
+/*JP
             pline("Unfortunately sound does not carry well through rock.");
+*/
+            pline("\8ec\94O\82È\82ª\82ç\89¹\82Í\8aâ\82ð\82¤\82Ü\82­\93`\82í\82ç\82È\82¢\81D");
         else
             aggravate();
     } else if (youmonst.data->mlet == S_VAMPIRE)
         return dopoly();
     else if (Upolyd)
+/*JP
         pline("Any special ability you may have is purely reflexive.");
+*/
+        pline("\82 \82È\82½\82Ì\8e\9d\82Á\82Ä\82¢\82é\93Á\8eê\94\\97Í\82Í\82Ç\82ê\82à\8eó\93®\93I\82¾\81D");
     else
+/*JP
         You("don't have a special ability in your normal form!");
+*/
+        You("\95\81\92i\82Ì\8ep\82Å\82Ì\93Á\8eê\94\\97Í\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81I");
     return 0;
 }
 
@@ -531,29 +566,50 @@ int
 enter_explore_mode(VOID_ARGS)
 {
     if (wizard) {
+/*JP
         You("are in debug mode.");
+*/
+        You("\82·\82Å\82É\83f\83o\83b\83O\83\82\81[\83h\82¾\81D");
     } else if (discover) {
+/*JP
         You("are already in explore mode.");
+*/
+        You("\82·\82Å\82É\92T\8c\9f\83\82\81[\83h\82¾\81D");
     } else {
 #ifdef SYSCF
 #if defined(UNIX)
         if (!sysopt.explorers || !sysopt.explorers[0]
             || !check_user_string(sysopt.explorers)) {
+/*JP
             You("cannot access explore mode.");
+*/
+            You("\92T\8c\9f\83\82\81[\83h\82É\83A\83N\83Z\83X\82Å\82«\82È\82¢\81D");
             return 0;
         }
 #endif
 #endif
         pline(
+/*JP
         "Beware!  From explore mode there will be no return to normal game.");
+*/
+        "\8cx\8d\90\81I\94­\8c©\83\82\81[\83h\82É\93ü\82Á\82½\82ç\92Ê\8fí\83\82\81[\83h\82É\82Í\96ß\82ê\82È\82¢\81D");
         if (paranoid_query(ParanoidQuit,
+/*JP
                            "Do you want to enter explore mode?")) {
+*/
+                           "\94­\8c©\83\82\81[\83h\82É\88Ú\82è\82Ü\82·\82©\81H")) {
             clear_nhwindow(WIN_MESSAGE);
+/*JP
             You("are now in non-scoring explore mode.");
+*/
+            You("\83X\83R\83A\82ª\82Ì\82ç\82È\82¢\94­\8c©\83\82\81[\83h\82É\88Ú\8ds\82µ\82½\81D");
             discover = TRUE;
         } else {
             clear_nhwindow(WIN_MESSAGE);
+/*JP
             pline("Resuming normal game.");
+*/
+            pline("\92Ê\8fí\83\82\81[\83h\82ð\91±\82¯\82é\81D");
         }
     }
     return 0;
@@ -581,7 +637,10 @@ wiz_wish(VOID_ARGS) /* Unlimited wishes for debug mode by Paul Polderman */
         flags.verbose = save_verbose;
         (void) encumber_msg();
     } else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_wish)));
     return 0;
 }
@@ -596,7 +655,10 @@ wiz_identify(VOID_ARGS)
             identify_pack(0, FALSE);
         iflags.override_ID = 0;
     } else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_identify)));
     return 0;
 }
@@ -618,7 +680,10 @@ wiz_map(VOID_ARGS)
         HConfusion = save_Hconf;
         HHallucination = save_Hhallu;
     } else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_map)));
     return 0;
 }
@@ -630,7 +695,10 @@ wiz_genesis(VOID_ARGS)
     if (wizard)
         (void) create_particular();
     else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_genesis)));
     return 0;
 }
@@ -642,7 +710,10 @@ wiz_where(VOID_ARGS)
     if (wizard)
         (void) print_dungeon(FALSE, (schar *) 0, (xchar *) 0);
     else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_where)));
     return 0;
 }
@@ -654,7 +725,10 @@ wiz_detect(VOID_ARGS)
     if (wizard)
         (void) findit();
     else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_detect)));
     return 0;
 }
@@ -666,7 +740,10 @@ wiz_level_tele(VOID_ARGS)
     if (wizard)
         level_tele();
     else
+/*JP
         pline("Unavailable command '%s'.",
+*/
+        pline("'%s'\83R\83}\83\93\83h\82Í\8eg\82¦\82È\82¢\81D",
               visctrl((int) cmd_from_func(wiz_level_tele)));
     return 0;
 }
@@ -676,8 +753,13 @@ STATIC_PTR int
 wiz_mon_polycontrol(VOID_ARGS)
 {
     iflags.mon_polycontrol = !iflags.mon_polycontrol;
+#if 0 /*JP*/
     pline("Monster polymorph control is %s.",
           iflags.mon_polycontrol ? "on" : "off");
+#else
+    pline("\89ö\95¨\82Ì\95Ï\89»\90§\8cä: %s",
+          iflags.mon_polycontrol ? "\83I\83\93" : "\83I\83t");
+#endif
     return 0;
 }
 
@@ -689,7 +771,10 @@ wiz_level_change(VOID_ARGS)
     int newlevel;
     int ret;
 
+/*JP
     getlin("To what experience level do you want to be set?", buf);
+*/
+    getlin("\8co\8c±\83\8c\83x\83\8b\82ð\82¢\82­\82Â\82É\90Ý\92è\82µ\82Ü\82·\82©\81H", buf);
     (void) mungspaces(buf);
     if (buf[0] == '\033' || buf[0] == '\0')
         ret = 0;
@@ -701,19 +786,31 @@ wiz_level_change(VOID_ARGS)
         return 0;
     }
     if (newlevel == u.ulevel) {
+/*JP
         You("are already that experienced.");
+*/
+        You("\82·\82Å\82É\82»\82Ì\8co\8c±\83\8c\83x\83\8b\82¾\81D");
     } else if (newlevel < u.ulevel) {
         if (u.ulevel == 1) {
+/*JP
             You("are already as inexperienced as you can get.");
+*/
+            You("\82·\82Å\82É\89Â\94\\82È\8cÀ\82è\82Ì\8dÅ\92á\82Ì\8co\8c±\83\8c\83x\83\8b\82¾\81D");
             return 0;
         }
         if (newlevel < 1)
             newlevel = 1;
         while (u.ulevel > newlevel)
+/*JP
             losexp("#levelchange");
+*/
+            losexp("#levelchange\83R\83}\83\93\83h\82Å");
     } else {
         if (u.ulevel >= MAXULEV) {
+/*JP
             You("are already as experienced as you can get.");
+*/
+            You("\82·\82Å\82É\89Â\94\\82È\8cÀ\82è\82Ì\8dÅ\91å\82Ì\8co\8c±\83\8c\83x\83\8b\82¾\81D");
             return 0;
         }
         if (newlevel > MAXULEV)
@@ -729,7 +826,10 @@ wiz_level_change(VOID_ARGS)
 STATIC_PTR int
 wiz_panic(VOID_ARGS)
 {
+/*JP
     if (yn("Do you want to call panic() and end your game?") == 'y')
+*/
+    if (yn("panic()\8aÖ\90\94\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\83Q\81[\83\80\82ð\8fI\97¹\82³\82¹\82Ü\82·\82©\81H") == 'y')
         panic("Crash test.");
     return 0;
 }
@@ -1190,22 +1290,53 @@ doterrain(VOID_ARGS)
 
 /* -enlightenment and conduct- */
 static winid en_win = WIN_ERR;
+#if 0 /*JP*/
 static const char You_[] = "You ", are[] = "are ", were[] = "were ",
                   have[] = "have ", had[] = "had ", can[] = "can ",
                   could[] = "could ";
+#else
+static const char You_[] = "\82 \82È\82½\82Í", 
+                  are[]  = "\82Å\82 \82é",       were[]  = "\82Å\82 \82Á\82½",
+                  have[] = "\82ð\82à\82Á\82Ä\82¢\82é", had[]   = "\82ð\82à\82Á\82Ä\82¢\82½",
+                  can[]  = "\82Å\82«\82é",       could[] = "\82Å\82«\82½",
+                  iru[]  = "\82¢\82é",         ita[]   = "\82¢\82½";
+#endif
+#if 0 /*JP*//* not used */
 static const char have_been[] = "have been ", have_never[] = "have never ",
                   never[] = "never ";
+#endif
 
+#if 0 /*JP*/
 #define enl_msg(prefix, present, past, suffix, ps) \
     enlght_line(prefix, final ? past : present, suffix, ps)
+#else
+#define enl_msg(prefix, present, past, suffix, ps) \
+    enlght_line(prefix, suffix, final ? past : present, ps)
+#endif
 #define you_are(attr, ps) enl_msg(You_, are, were, attr, ps)
 #define you_have(attr, ps) enl_msg(You_, have, had, attr, ps)
 #define you_can(attr, ps) enl_msg(You_, can, could, attr, ps)
+/*JP
 #define you_have_been(goodthing) enl_msg(You_, have_been, were, goodthing, "")
+*/
+#define you_have_been(goodthing) enl_msg(You_, are, were, goodthing, "")
+#if 0 /*JP*/
 #define you_have_never(badthing) \
     enl_msg(You_, have_never, never, badthing, "")
+#else
+#define you_have_never(badthing) \
+    enl_msg(badthing, "\82Ä\82¢\82È\82¢", "\82È\82©\82Á\82½", "", "")
+#endif
+#if 0 /*JP*/
 #define you_have_X(something) \
     enl_msg(You_, have, (const char *) "", something, "")
+#else
+#define you_have_X(something) \
+    enl_msg(something, "\82Ä\82¢\82é", "\82½", "", "")
+#endif
+#if 1 /*JP*/
+#define you_are_ing(goodthing) enl_msg(You_, iru, ita, goodthing, "")
+#endif
 
 static void
 enlght_line(start, middle, end, ps)
@@ -1213,7 +1344,10 @@ const char *start, *middle, *end, *ps;
 {
     char buf[BUFSZ];
 
+/*JP
     Sprintf(buf, " %s%s%s%s.", start, middle, end, ps);
+*/
+    Sprintf(buf, "%s%s%s%s\81D", start, middle, end, ps);
     putstr(en_win, 0, buf);
 }
 
@@ -1236,21 +1370,42 @@ char *outbuf;
         absamt = (absamt * 2) / 3;
 
     if (absamt <= 3)
+/*JP
         modif = "small";
+*/
+        modif = "\8bÍ\82©\82È";
     else if (absamt <= 6)
+/*JP
         modif = "moderate";
+*/
+        modif = "\92\86\92ö\93x\82Ì";
     else if (absamt <= 12)
+/*JP
         modif = "large";
+*/
+        modif = "\91å\82«\82È";
     else
+/*JP
         modif = "huge";
+*/
+        modif = "\8b­\91å\82È";
 
+#if 0 /*JP*/
     modif = !incamt ? "no" : an(modif); /* ("no" case shouldn't happen) */
+#endif
+/*JP
     bonus = (incamt >= 0) ? "bonus" : "penalty";
+*/
+    bonus = (incamt > 0) ? "\83{\81[\83i\83X" : "\83y\83i\83\8b\83e\83B";
     /* "bonus <foo>" (to hit) vs "<bar> bonus" (damage, defense) */
     invrt = strcmp(inctyp, "to hit") ? TRUE : FALSE;
 
+#if 0 /*JP*/
     Sprintf(outbuf, "%s %s %s", modif, invrt ? inctyp : bonus,
             invrt ? bonus : inctyp);
+#else
+    Sprintf(outbuf, "%s\82É%s%s", inctyp, modif, bonus);
+#endif
     if (final || wizard)
         Sprintf(eos(outbuf), " (%s%d)", (incamt > 0) ? "+" : "", incamt);
 
@@ -1340,10 +1495,18 @@ int final; /* ENL_GAMEINPROGRESS:0, ENL_GAMEOVERALIVE, ENL_GAMEOVERDEAD */
     *tmpbuf = highc(*tmpbuf); /* same adjustment as bottom line */
     /* as in background_enlightenment, when poly'd we need to use the saved
        gender in u.mfemale rather than the current you-as-monster gender */
+#if 0 /*JP*/
     Sprintf(buf, "%s the %s's attributes:", tmpbuf,
             ((Upolyd ? u.mfemale : flags.female) && urole.name.f)
                 ? urole.name.f
                 : urole.name.m);
+#else
+    Sprintf(buf, "%s\82Ì%s\82Ì\91®\90«:",
+            ((Upolyd ? u.mfemale : flags.female) && urole.name.f)
+                ? urole.name.f
+                : urole.name.m,
+             tmpbuf);
+#endif
 
     en_win = create_nhwindow(NHW_MENU);
     /* title */
@@ -1390,7 +1553,10 @@ int final;
     rank_titl = rank_of(u.ulevel, Role_switch, innategend);
 
     putstr(en_win, 0, ""); /* separator after title */
+/*JP
     putstr(en_win, 0, "Background:");
+*/
+    putstr(en_win, 0, "\94w\8ci\8fî\95ñ:");
 
     /* if polymorphed, report current shape before underlying role;
        will be repeated as first status: "you are transformed" and also
@@ -1404,7 +1570,10 @@ int final;
         tmpbuf[0] = '\0';
         /* here we always use current gender, not saved role gender */
         if (!is_male(uasmon) && !is_female(uasmon) && !is_neuter(uasmon))
+/*JP
             Sprintf(tmpbuf, "%s ", genders[flags.female ? 1 : 0].adj);
+*/
+            Sprintf(tmpbuf, "%s", genders[flags.female ? 1 : 0].adj);
         Sprintf(buf, "%sin %s%s form", !final ? "currently " : "", tmpbuf,
                 uasmon->mname);
         you_are(buf, "");
@@ -1415,21 +1584,35 @@ int final;
     if (!urole.name.f
         && ((urole.allow & ROLE_GENDMASK) == (ROLE_MALE | ROLE_FEMALE)
             || innategend != flags.initgend))
+/*JP
         Sprintf(tmpbuf, "%s ", genders[innategend].adj);
+*/
+        Sprintf(tmpbuf, "%s", genders[innategend].adj);
     buf[0] = '\0';
     if (Upolyd)
         Strcpy(buf, "actually "); /* "You are actually a ..." */
     if (!strcmpi(rank_titl, role_titl)) {
         /* omit role when rank title matches it */
+#if 0 /*JP*/
         Sprintf(eos(buf), "%s, level %d %s%s", an(rank_titl), u.ulevel,
                 tmpbuf, urace.noun);
+#else
+        Sprintf(eos(buf), "\83\8c\83x\83\8b%d\82Ì%s\82Ì%s%s", u.ulevel,
+                tmpbuf, urace.adj, role_titl);
+#endif
     } else {
+#if 0 /*JP*/
         Sprintf(eos(buf), "%s, a level %d %s%s %s", an(rank_titl), u.ulevel,
                 tmpbuf, urace.adj, role_titl);
+#else
+        Sprintf(eos(buf), "\83\8c\83x\83\8b%d\82Ì%s\82Ì%s%s\82Ì%s", u.ulevel,
+                tmpbuf, urace.adj, role_titl, rank_titl);
+#endif
     }
     you_are(buf, "");
 
     /* report alignment (bypass you_are() in order to omit ending period) */
+#if 0 /*JP*/
     Sprintf(buf, " %s%s%s, %son a mission for %s",
             You_, !final ? are : were,
             align_str(u.ualign.type),
@@ -1442,22 +1625,60 @@ int final;
                      /* lastly, normal case */
                      : "",
             u_gname());
+#else
+    Sprintf(buf, " \82 \82È\82½\82Í%s\82Å, %s%s\82Ì\82½\82ß\82Ì\94C\96±\82ð\8ds\82Á\82Ä%s",
+            align_str(u.ualign.type),
+            /* helm of opposite alignment (might hide conversion) */
+            (u.ualign.type != u.ualignbase[A_CURRENT]) ? "\88ê\8e\9e\93I\82É"
+               /* permanent conversion */
+               : (u.ualign.type != u.ualignbase[A_ORIGINAL]) ? "\8c»\8dÝ"
+                  /* atheist (ignored in very early game) */
+                  : (!u.uconduct.gnostic && moves > 1000L) ? "\96¼\8b`\8fã"
+                     /* lastly, normal case */
+                     : "",
+            u_gname(), !final ? iru : ita);
+#endif
     putstr(en_win, 0, buf);
     /* show the rest of this game's pantheon (finishes previous sentence)
        [appending "also Moloch" at the end would allow for straightforward
        trailing "and" on all three aligned entries but looks too verbose] */
+#if 0 /*JP*/
     Sprintf(buf, " who %s opposed by", !final ? "is" : "was");
+#else
+    Strcpy(buf, "\82 \82È\82½\82Í");
+#endif
     if (u.ualign.type != A_LAWFUL)
+#if 0 /*JP*/
         Sprintf(eos(buf), " %s (%s) and", align_gname(A_LAWFUL),
                 align_str(A_LAWFUL));
+#else
+        Sprintf(eos(buf), "%s(%s)\82¨\82æ\82Ñ", align_gname(A_LAWFUL),
+                align_str(A_LAWFUL));
+#endif
     if (u.ualign.type != A_NEUTRAL)
+#if 0 /*JP*/
         Sprintf(eos(buf), " %s (%s)%s", align_gname(A_NEUTRAL),
                 align_str(A_NEUTRAL),
                 (u.ualign.type != A_CHAOTIC) ? " and" : "");
+#else
+        Sprintf(eos(buf), "%s(%s)%s", align_gname(A_NEUTRAL),
+                align_str(A_NEUTRAL),
+                (u.ualign.type != A_CHAOTIC) ? "\82¨\82æ\82Ñ" : "");
+#endif
+#if 0 /*JP*/
     if (u.ualign.type != A_CHAOTIC)
         Sprintf(eos(buf), " %s (%s)", align_gname(A_CHAOTIC),
                 align_str(A_CHAOTIC));
+#else
+    if (u.ualign.type != A_CHAOTIC)
+        Sprintf(eos(buf), "%s(%s)", align_gname(A_CHAOTIC),
+                align_str(A_CHAOTIC));
+#endif
+#if 0 /*JP*/
     Strcat(buf, "."); /* terminate sentence */
+#else
+    Sprintf(eos(buf), "\82Æ\91Î\97§\82µ\82Ä%s\81D", !final ? iru : ita);
+#endif
     putstr(en_win, 0, buf);
 
     /* show original alignment,gender,race,role if any have been changed;
@@ -1490,7 +1711,10 @@ int final;
 {
     putstr(en_win, 0, ""); /* separator after background */
     putstr(en_win, 0,
+/*JP
            final ? "Final Characteristics:" : "Current Characteristics:");
+*/
+           final ? "\8dÅ\8fI\91®\90«\81F" : "\8c»\8dÝ\82Ì\91®\90«\81F");
 
     /* bottom line order */
     one_characteristic(mode, final, A_STR); /* strength */
@@ -1895,36 +2119,77 @@ int final;
     putstr(en_win, 0, final ? "Final Attributes:" : "Current Attributes:");
 
     if (u.uevent.uhand_of_elbereth) {
+#if 0 /*JP*/
         static const char *const hofe_titles[3] = { "the Hand of Elbereth",
                                                     "the Envoy of Balance",
                                                     "the Glory of Arioch" };
+#else
+        static const char *const hofe_titles[3] = { "\83G\83\8b\83x\83\8c\83X\82Ì\8cä\8eè",
+                                                    "\92²\98a\82Ì\8eg\8eÒ",
+                                                    "\83A\83\8a\83I\83b\83`\82Ì\96¼\97_" };
+#endif
         you_are(hofe_titles[u.uevent.uhand_of_elbereth - 1], "");
     }
 
     /* note: piousness 20 matches MIN_QUEST_ALIGN (quest.h) */
     if (u.ualign.record >= 20)
+/*JP
         you_are("piously aligned", "");
+*/
+      you_have("\8chåi\82È\90M\8bÂ\90S", "");
     else if (u.ualign.record > 13)
+/*JP
         you_are("devoutly aligned", "");
+*/
+      you_have("\90S\82©\82ç\82Ì\90M\8bÂ\90S", "");
     else if (u.ualign.record > 8)
+/*JP
         you_are("fervently aligned", "");
+*/
+      you_have("\94M\90S\82È\90M\8bÂ\90S", "");
     else if (u.ualign.record > 3)
+/*JP
         you_are("stridently aligned", "");
+*/
+      you_have("\82¨\82¨\82°\82³\82È\90M\8bÂ\90S", "");
     else if (u.ualign.record == 3)
+/*JP
         you_are("aligned", "");
+*/
+      you_have("\95\81\92Ê\82Ì\90M\8bÂ\90S", "");
     else if (u.ualign.record > 0)
+/*JP
         you_are("haltingly aligned", "");
+*/
+      you_have("çSçO\82µ\82È\82ª\82ç\82à\90M\8bÂ\90S", "");
     else if (u.ualign.record == 0)
+/*JP
         you_are("nominally aligned", "");
+*/
+      you_have("\8c`\82¾\82¯\82Ì\90M\8bÂ\90S", "");
     else if (u.ualign.record >= -3)
+/*JP
         you_have("strayed", "");
+*/
+      you_are_ing("\90M\8bÂ\82É\96À\82¢\82ð\82à\82Á\82Ä");
     else if (u.ualign.record >= -8)
+/*JP
         you_have("sinned", "");
+*/
+      you_are_ing("\8dß\82ð\95\89\82Á\82Ä");
     else
+/*JP
         you_have("transgressed", "");
+*/
+      you_are_ing("\90M\8bÂ\82©\82ç\88í\92E\82µ\82Ä");
     if (wizard) {
+#if 0 /*JP*/
         Sprintf(buf, " %d", u.ualign.record);
         enl_msg("Your alignment ", "is", "was", buf, "");
+#else
+        Sprintf(buf, "\82 \82È\82½\82Ì\91®\90«\92l\82Í%d", u.ualign.record);
+        enl_msg(buf, "\82Å\82 \82é", "\82¾\82Á\82½", "", "");
+#endif
     }
 
     /*** Resistances to troubles ***/
@@ -2232,6 +2497,7 @@ int final;
          * resulting in a false claim that you could have prayed safely.
          */
         if (!final) {
+#if 0 /*JP*/
 #if 0
             /* "can [not] safely pray" vs "could [not] have safely prayed" */
             Sprintf(buf, "%s%ssafely pray%s", can_pray(FALSE) ? "" : "not ",
@@ -2242,6 +2508,13 @@ int final;
             if (wizard)
                 Sprintf(eos(buf), " (%d)", u.ublesscnt);
             you_can(buf, "");
+#else /*JP*/
+            Sprintf(buf, "\82 \82È\82½\82Í\88À\91S\82É\8bF\82é\82±\82Æ\82ª");
+            Strcat(buf, can_pray(FALSE) ? can : "\82Å\82«\82È\82¢");
+            if (wizard)
+              Sprintf(eos(buf), " (%d)", u.ublesscnt);
+            enl_msg(buf, "", "", "", "");
+#endif
         }
     }
 
@@ -2266,39 +2539,67 @@ int final;
 
         buf[0] = '\0';
         if (final < 2) { /* still in progress, or quit/escaped/ascended */
+/*JP
             p = "survived after being killed ";
+*/
+            p = "\8e\80\82ñ\82¾\8cã\95\9c\8a\88\82µ\82Ä\82¢\82½";
             switch (u.umortality) {
             case 0:
+/*JP
                 p = !final ? (char *) 0 : "survived";
+*/
+                p = !final ? (char *)0 : "\90\82«\89\84\82Ñ\82½";
                 break;
             case 1:
+/*JP
                 Strcpy(buf, "once");
+*/
+                Strcpy(buf, "\88ê\93x");
                 break;
             case 2:
+/*JP
                 Strcpy(buf, "twice");
+*/
+                Strcpy(buf, "\93ñ\93x");
                 break;
             case 3:
+/*JP
                 Strcpy(buf, "thrice");
+*/
+                Strcpy(buf, "\8eO\93x");
                 break;
             default:
+/*JP
                 Sprintf(buf, "%d times", u.umortality);
+*/
+                Sprintf(buf, "%d\89ñ", u.umortality);
                 break;
             }
         } else { /* game ended in character's death */
+/*JP
             p = "are dead";
+*/
+            p = "\8e\80\82ñ\82Å\82¢\82é";
             switch (u.umortality) {
             case 0:
                 impossible("dead without dying?");
             case 1:
                 break; /* just "are dead" */
             default:
+#if 0 /*JP*/
                 Sprintf(buf, " (%d%s time!)", u.umortality,
                         ordin(u.umortality));
+#else
+                 Sprintf(buf, "(%d\89ñ\81I)", u.umortality);
+#endif
                 break;
             }
         }
         if (p)
+/*JP
             enl_msg(You_, "have been killed ", p, buf, "");
+*/
+            enl_msg(You_, "\8e\80\82ñ\82Å\82¢\82é", p, buf, "");
     }
 }
 
@@ -2507,77 +2808,153 @@ int final;
 
     /* Create the conduct window */
     en_win = create_nhwindow(NHW_MENU);
+/*JP
     putstr(en_win, 0, "Voluntary challenges:");
+*/
+    putstr(en_win, 0, "\8e©\94­\93I\92§\90í:");
 
     if (u.uroleplay.blind)
+/*JP
         you_have_been("blind from birth");
+*/
+        you_have_been("\90\82Ü\82ê\82È\82ª\82ç\82É\96Ó\96Ú");
     if (u.uroleplay.nudist)
+/*JP
         you_have_been("faithfully nudist");
+*/
+        you_have_been("\92\89\8eÀ\82È\97\87\91°");
 
     if (!u.uconduct.food)
+/*JP
         enl_msg(You_, "have gone", "went", " without food", "");
+*/
+        enl_msg("\82 \82È\82½\82Í\90H\8e\96\82ð\82µ", "\82Ä\82¢\82È\82¢", "\82È\82©\82Á\82½", "", "");
     /* But beverages are okay */
     else if (!u.uconduct.unvegan)
+/*JP
         you_have_X("followed a strict vegan diet");
+*/
+        you_have_been("\8cµ\8ai\82È\8dØ\90H\8eå\8b`\8eÒ");
     else if (!u.uconduct.unvegetarian)
+/*JP
         you_have_been("vegetarian");
+*/
+        you_have_been("\8dØ\90H\8eå\8b`\8eÒ");
 
     if (!u.uconduct.gnostic)
+/*JP
         you_have_been("an atheist");
+*/
+        you_have_been("\96³\90_\98_\8eÒ");
 
     if (!u.uconduct.weaphit) {
+/*JP
         you_have_never("hit with a wielded weapon");
+*/
+        you_have_never("\82 \82È\82½\82Í\91\95\94õ\82µ\82Ä\82¢\82é\95\90\8aí\82Å\8dU\8c\82\82µ");
     } else if (wizard) {
+#if 0 /*JP*/
         Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit,
                 plur(u.uconduct.weaphit));
         you_have_X(buf);
+#else
+        Sprintf(buf, "\82 \82È\82½\82Í%ld\89ñ\91\95\94õ\82µ\82½\95\90\8aí\82ð\8eg\97p\82µ", u.uconduct.weaphit);
+        you_have_X(buf);
+#endif
     }
     if (!u.uconduct.killer)
+/*JP
         you_have_been("a pacifist");
+*/
+        you_have_been("\95½\98a\8eå\8b`\8eÒ");
 
     if (!u.uconduct.literate) {
+/*JP
         you_have_been("illiterate");
+*/
+        you_have_never("\82 \82È\82½\82Í\93Ç\82Ý\8f\91\82«\82µ");
     } else if (wizard) {
+#if 0 /*JP*/
         Sprintf(buf, "read items or engraved %ld time%s", u.uconduct.literate,
                 plur(u.uconduct.literate));
         you_have_X(buf);
+#else
+        Sprintf(buf, "%ld\89ñ\93Ç\82ñ\82¾\82è\8f\91\82¢\82½\82è\82µ", u.uconduct.literate);
+        you_have_X(buf);
+#endif
     }
 
     ngenocided = num_genocides();
     if (ngenocided == 0) {
+/*JP
         you_have_never("genocided any monsters");
+*/
+        you_have_never("\82 \82È\82½\82Í\89ö\95¨\82ð\8bs\8eE\82µ");
     } else {
+#if 0 /*JP*/
         Sprintf(buf, "genocided %d type%s of monster%s", ngenocided,
                 plur(ngenocided), plur(ngenocided));
         you_have_X(buf);
+#else
+        Sprintf(buf, "%d\8eí\82Ì\89ö\95¨\82ð\8bs\8eE\82µ", ngenocided);
+        you_have_X(buf);
+#endif
     }
 
     if (!u.uconduct.polypiles) {
+/*JP
         you_have_never("polymorphed an object");
+*/
+        you_have_never("\82 \82È\82½\82Í\95¨\91Ì\82ð\95Ï\89»\82³\82¹");
     } else if (wizard) {
+#if 0 /*JP*/
         Sprintf(buf, "polymorphed %ld item%s", u.uconduct.polypiles,
                 plur(u.uconduct.polypiles));
         you_have_X(buf);
+#else
+        Sprintf(buf, "%ld\8cÂ\82Ì\93¹\8bï\82ð\95Ï\89»\82³\82¹", u.uconduct.polypiles);
+        you_have_X(buf);
+#endif
     }
 
     if (!u.uconduct.polyselfs) {
+/*JP
         you_have_never("changed form");
+*/
+        you_have_never("\82 \82È\82½\82Í\95Ï\89»\82µ");
     } else if (wizard) {
+#if 0 /*JP*/
         Sprintf(buf, "changed form %ld time%s", u.uconduct.polyselfs,
                 plur(u.uconduct.polyselfs));
         you_have_X(buf);
+#else
+        Sprintf(buf, "%ld\89ñ\8ep\82ð\95Ï\82¦", u.uconduct.polyselfs);
+        you_have_X(buf);
+#endif
     }
 
     if (!u.uconduct.wishes) {
+/*JP
         you_have_X("used no wishes");
+*/
+        you_have_never("\82 \82È\82½\82Í\8aè\82¢\8e\96\82ð\82µ");
     } else {
+#if 0 /*JP*/
         Sprintf(buf, "used %ld wish%s", u.uconduct.wishes,
                 (u.uconduct.wishes > 1L) ? "es" : "");
         you_have_X(buf);
+#else
+        Sprintf(buf, "%ld\89ñ\8aè\82¢\8e\96\82ð\82µ", u.uconduct.wishes);
+        you_have_X(buf);
+#endif
 
         if (!u.uconduct.wisharti)
+#if 0 /*JP*/
             enl_msg(You_, "have not wished", "did not wish",
                     " for any artifacts", "");
+#else
+            enl_msg("\82 \82È\82½\82Í\90¹\8aí\82ð\8aè", "\82Á\82Ä\82¢\82È\82¢", "\82í\82È\82©\82Á\82½", "", "");
+#endif
     }
 
     /* Pop up the window and wait for a key */
@@ -2662,7 +3039,10 @@ static const struct func_tab cmdlist[] = {
     { 'R', FALSE, doremring },
     { M('r'), FALSE, dorub },
     { M('R'), FALSE, doride }, /* #ride */
+/*JP
     { 's', TRUE, dosearch, "searching" },
+*/
+    { 's', TRUE, dosearch, "\91{\82·" },
     { 'S', TRUE, dosave },
     { M('s'), FALSE, dosit },
     { 't', FALSE, dothrow },
@@ -2692,8 +3072,14 @@ static const struct func_tab cmdlist[] = {
 #ifdef SHELL
     { '!', TRUE, dosh },
 #endif
+/*JP
     { '.', TRUE, donull, "waiting" },
+*/
+    { '.', TRUE, donull, "\8bx\8ce\82·\82é" },
+/*JP
     { ' ', TRUE, donull, "waiting" },
+*/
+    { ' ', TRUE, donull, "\8bx\8ce\82·\82é" },
     { ',', FALSE, dopickup },
     { ':', TRUE, dolook },
     { ';', TRUE, doquickwhatis },
@@ -2716,37 +3102,125 @@ static const struct func_tab cmdlist[] = {
 };
 
 struct ext_func_tab extcmdlist[] = {
+/*JP
     { "adjust", "adjust inventory letters", doorganize, TRUE },
+*/
+    { "adjust", "\8e\9d\82¿\95¨\88ê\97\97\82Ì\92²\90®", doorganize, TRUE },
+/*JP
     { "annotate", "name current level", donamelevel, TRUE },
+*/
+    { "annotate", "\8c»\8dÝ\82Ì\8aK\82É\96¼\91O\82ð\82Â\82¯\82é", donamelevel, TRUE },
+#if 0 /*JP*/
     { "chat", "talk to someone", dotalk, TRUE }, /* converse? */
+#else
+    { "chat", "\92N\82©\82Æ\98b\82·", dotalk, TRUE }, /* converse? */
+#endif
+#if 0 /*JP*/
     { "conduct", "list voluntary challenges you have maintained", doconduct,
       TRUE },
+#else
+    { "conduct", "\82Ç\82¤\82¢\82¤\8ds\93®\82ð\82Æ\82Á\82½\82©\8c©\82é", doconduct, TRUE },
+#endif
+/*JP
     { "dip", "dip an object into something", dodip, FALSE },
+*/
+    { "dip", "\89½\82©\82É\95¨\82ð\90Z\82·", dodip, FALSE },
+#if 0 /*JP*/
     { "enhance", "advance or check weapon and spell skills",
       enhance_weapon_skill, TRUE },
+#else
+    { "enhance", "\95\90\8aí\8fn\97û\93x\82ð\8d\82\82ß\82é", enhance_weapon_skill, TRUE },
+#endif
+/*JP
     { "exploremode", "enter explore mode", enter_explore_mode, TRUE },
+*/
+    { "exploremode", "\92T\8c\9f\83\82\81[\83h\82É\93ü\82é", enter_explore_mode, TRUE },
+/*JP
     { "force", "force a lock", doforce, FALSE },
+*/
+    { "force", "\8c®\82ð\82±\82\82 \82¯\82é", doforce, FALSE },
+/*JP
     { "invoke", "invoke an object's powers", doinvoke, TRUE },
+*/
+    { "invoke", "\95¨\82Ì\93Á\95Ê\82È\97Í\82ð\8eg\82¤", doinvoke, TRUE },
+/*JP
     { "jump", "jump to a location", dojump, FALSE },
+*/
+    { "jump", "\91¼\82Ì\88Ê\92u\82É\94ò\82Ñ\82¤\82Â\82é", dojump, FALSE },
+/*JP
     { "loot", "loot a box on the floor", doloot, FALSE },
+*/
+    { "loot", "\8f°\82Ì\8fã\82Ì\94 \82ð\8aJ\82¯\82é", doloot, TRUE },
+/*JP
     { "monster", "use a monster's special ability", domonability, TRUE },
+*/
+    { "monster", "\89ö\95¨\82Ì\93Á\95Ê\94\\97Í\82ð\8eg\82¤", domonability, TRUE },
+/*JP
     { "name", "name a monster or an object", docallcmd, TRUE },
+*/
+    { "name", "\83A\83C\83e\83\80\82â\95¨\82É\96¼\91O\82ð\82Â\82¯\82é", docallcmd, TRUE },
+/*JP
     { "offer", "offer a sacrifice to the gods", dosacrifice, FALSE },
+*/
+    { "offer", "\90_\82É\8b\9f\95¨\82ð\95ù\82°\82é", dosacrifice, FALSE },
+/*JP
     { "overview", "show an overview of the dungeon", dooverview, TRUE },
+*/
+    { "overview", "\96À\8b{\82Ì\8aT\97v\82ð\95\\8e¦\82·\82é", dooverview, TRUE },
+/*JP
     { "pray", "pray to the gods for help", dopray, TRUE },
+*/
+    { "pray", "\90_\82É\8bF\82é", dopray, TRUE },
+/*JP
     { "quit", "exit without saving current game", done2, TRUE },
+*/
+    { "quit", "\83Z\81[\83u\82µ\82È\82¢\82Å\8fI\97¹", done2, TRUE },
+/*JP
     { "ride", "ride (or stop riding) a monster", doride, FALSE },
+*/
+    { "ride", "\89ö\95¨\82É\8fæ\82é(\82Ü\82½\82Í\8d~\82è\82é)", doride, FALSE },
+/*JP
     { "rub", "rub a lamp or a stone", dorub, FALSE },
+*/
+    { "rub", "\83\89\83\93\83v\82ð\82±\82·\82é", dorub, FALSE },
+/*JP
     { "sit", "sit down", dosit, FALSE },
+*/
+    { "sit", "\8dÀ\82é", dosit, FALSE },
+/*JP
     { "terrain", "show map without obstructions", doterrain, TRUE },
+*/
+    { "terrain", "\8e×\96\82\82³\82ê\82¸\82É\92n\90}\82ð\8c©\82é", doterrain, TRUE },
+/*JP
     { "tip", "empty a container", dotip, FALSE },
+*/
+    { "tip", "\93ü\82ê\95¨\82ð\8bó\82É\82·\82é", dotip, FALSE },
+/*JP
     { "turn", "turn undead", doturn, TRUE },
+*/
+    { "turn", "\83A\83\93\83f\83b\83g\82ð\93y\82É\95Ô\82·", doturn, TRUE },
+/*JP
     { "twoweapon", "toggle two-weapon combat", dotwoweapon, FALSE },
+*/
+    { "twoweapon", "\97¼\8eè\8e\9d\82¿\82Ì\90Ø\82è\91Ö\82¦", dotwoweapon, FALSE },
+/*JP
     { "untrap", "untrap something", dountrap, FALSE },
+*/
+    { "untrap", "ã©\82ð\82Í\82¸\82·", dountrap, FALSE },
+#if 0 /*JP*/
     { "version", "list compile time options for this version of NetHack",
       doextversion, TRUE },
+#else
+    { "version", "\83R\83\93\83p\83C\83\8b\8e\9e\82Ì\83I\83v\83V\83\87\83\93\82ð\95\\8e¦\82·\82é", doextversion, TRUE },
+#endif
+/*JP
     { "wipe", "wipe off your face", dowipe, FALSE },
+*/
+    { "wipe", "\8aç\82ð\90@\82¤", dowipe, FALSE },
+/*JP
     { "?", "get this list of extended commands", doextlist, TRUE },
+*/
+    { "?", "\82±\82Ì\8ag\92£\83R\83}\83\93\83h\88ê\97\97\82ð\95\\8e¦\82·\82é", doextlist, TRUE },
     /*
      * There must be a blank entry here for every entry in the table
      * below.
@@ -3409,7 +3883,10 @@ register char *cmd;
         if ((tlist = Cmd.commands[*cmd & 0xff]) != 0) {
 #endif
             if (u.uburied && !tlist->can_if_buried) {
+/*JP
                 You_cant("do that while you are buried!");
+*/
+                You("\96\84\82Ü\82Á\82Ä\82¢\82é\8e\9e\82É\82»\82ñ\82È\82±\82Æ\82Í\82Å\82«\82È\82¢\81I");
                 res = 0;
             } else {
                 /* we discard 'const' because some compilers seem to have
@@ -3448,8 +3925,14 @@ register char *cmd;
         }
         *cp = '\0';
         if (!prefix_seen || !iflags.cmdassist
+/*JP
             || !help_dir(0, "Invalid direction key!"))
+*/
+            || !help_dir(0, "\96³\8cø\82È\95û\8cü\8ew\92è\82Å\82·\81I"))
+/*JP
             Norep("Unknown command '%s'.", expcmd);
+*/
+            Norep("'%s'\83R\83}\83\93\83h\81H", expcmd);
     }
     /* didn't move */
     context.move = FALSE;
@@ -3565,7 +4048,10 @@ retry:
     if (in_doagain || *readchar_queue)
         dirsym = readchar();
     else
+/*JP
         dirsym = yn_function((s && *s != '^') ? s : "In what direction?",
+*/
+        dirsym = yn_function((s && *s != '^') ? s : "\82Ç\82Ì\95û\8cü\81H",
                              (char *) 0, '\0');
     /* remove the prompt string so caller won't have to */
     clear_nhwindow(WIN_MESSAGE);
@@ -3587,16 +4073,25 @@ retry:
                 did_help =
                     help_dir((s && *s == '^') ? dirsym : 0,
                              help_requested ? (const char *) 0
+/*JP
                                             : "Invalid direction key!");
+*/
+                                            : "\96³\8cø\82È\95û\8cü\8ew\92è\82Å\82·\81I");
                 if (help_requested)
                     goto retry;
             }
             if (!did_help)
+/*JP
                 pline("What a strange direction!");
+*/
+                pline("\82¸\82¢\82Ô\82ñ\82Æ\8aï\96­\82È\95û\8cü\82¾\81I");
         }
         return 0;
     } else if (is_mov && !dxdy_moveok()) {
+/*JP
         You_cant("orient yourself that direction.");
+*/
+        You_cant("\8cü\82«\82É\8e©\95ª\8e©\90g\82ð\8ew\92è\82Å\82«\82È\82¢\81D");
         return 0;
     }
     if (!u.dz && (Stunned || (Confusion && !rn2(5))))
@@ -3673,7 +4168,10 @@ const char *msg;
         /* non-null msg means that this wasn't an explicit user request */
         putstr(win, 0, "");
         putstr(win, 0,
+/*JP
                "(Suppress this message with !cmdassist in config file.)");
+*/
+               "(\82±\82Ì\83\81\83b\83Z\81[\83W\82ð\95\\8e¦\82µ\82½\82­\82È\82¢\8fê\8d\87\82Í\90Ý\92è\83t\83@\83C\83\8b\82É !cmdassist \82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81D)");
     }
     display_nhwindow(win, FALSE);
     destroy_nhwindow(win);
@@ -3858,7 +4356,10 @@ parse()
                     multi = LARGEST_INT;
                 if (multi > 9) {
                     clear_nhwindow(WIN_MESSAGE);
+/*JP
                     Sprintf(in_line, "Count: %d", multi);
+*/
+                    Sprintf(in_line, "\90\94: %d", multi);
                     pline1(in_line);
                     mark_synch();
                 }
@@ -4042,8 +4543,14 @@ dotravel(VOID_ARGS)
         cc.x = u.ux;
         cc.y = u.uy;
     }
+/*JP
     pline("Where do you want to travel to?");
+*/
+    pline("\82Ç\82±\82É\88Ú\93®\82·\82é\81H");
+/*JP
     if (getpos(&cc, TRUE, "the desired destination") < 0) {
+*/
+    if (getpos(&cc, TRUE, "\88Ú\93®\90æ") < 0) {
         /* user pressed ESC */
         return 0;
     }
index 7d6bda3..8bc8b2e 100644 (file)
  * seems like an awful lot of effort for very little gain.)
  */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL void FDECL(get_wall_for_db, (int *, int *));
@@ -372,7 +377,10 @@ STATIC_OVL const char *
 e_nam(etmp)
 struct entity *etmp;
 {
+/*JP
     return is_u(etmp) ? "you" : mon_nam(etmp->emon);
+*/
+    return is_u(etmp) ? "\82 \82È\82½" : mon_nam(etmp->emon);
 }
 
 /*
@@ -387,6 +395,10 @@ const char *verb;
 {
     static char wholebuf[80];
 
+#if 1 /*JP*/
+    Strcpy(wholebuf, is_u(etmp) ? "\82 \82È\82½" : Monnam(etmp->emon));
+    return wholebuf;
+#else
     Strcpy(wholebuf, is_u(etmp) ? "You" : Monnam(etmp->emon));
     if (!verb || !*verb)
         return wholebuf;
@@ -396,6 +408,7 @@ const char *verb;
     else
         Strcat(wholebuf, vtense((char *) 0, verb));
     return wholebuf;
+#endif
 }
 
 /*
@@ -444,14 +457,22 @@ int dest, how;
             /* use more specific killer if specified */
             if (!killer.name[0]) {
                 killer.format = KILLED_BY_AN;
+/*JP
                 Strcpy(killer.name, "falling drawbridge");
+*/
+                Strcpy(killer.name, "\8d~\82è\82Ä\82«\82½\92µ\82Ë\8b´\82Å");
             }
             done(how);
             /* So, you didn't die */
             if (!e_survives_at(etmp, etmp->ex, etmp->ey)) {
                 if (enexto(&xy, etmp->ex, etmp->ey, etmp->edata)) {
+#if 0 /*JP*/
                     pline("A %s force teleports you away...",
                           Hallucination ? "normal" : "strange");
+#else
+                    pline("%s\97Í\82ª\82 \82È\82½\82ð\89\93\82­\82É\89^\82ñ\82¾\81D\81D\81D",
+                          Hallucination ? "\95\81\92Ê\82Ì" : "\8aï\96­\82È");
+#endif
                     teleds(xy.x, xy.y, FALSE);
                 }
                 /* otherwise on top of the drawbridge is the
@@ -583,16 +604,25 @@ struct entity *etmp;
 
     if (automiss(etmp) && e_survives_at(etmp, oldx, oldy)) {
         if (e_inview && (at_portcullis || IS_DRAWBRIDGE(crm->typ)))
+#if 0 /*JP*/
             pline_The("%s passes through %s!",
                       at_portcullis ? "portcullis" : "drawbridge",
                       e_nam(etmp));
+#else
+            pline_The("%s\82Í%s\82ð\92Ê\82è\94²\82¯\82½\81I",
+                      at_portcullis ? "\97\8e\82µ\8ai\8eq" : "\92µ\82Ë\8b´",
+                      e_nam(etmp));
+#endif
         if (is_u(etmp))
             spoteffects(FALSE);
         return;
     }
     if (e_missed(etmp, FALSE)) {
         if (at_portcullis) {
+/*JP
             pline_The("portcullis misses %s!", e_nam(etmp));
+*/
+            pline("\97\8e\82µ\8ai\8eq\82Í%s\82É\96½\92\86\82µ\82È\82©\82Á\82½\81I", e_nam(etmp));
         } else {
             debugpline1("The drawbridge misses %s!", e_nam(etmp));
         }
@@ -607,7 +637,10 @@ struct entity *etmp;
         }
     } else {
         if (crm->typ == DRAWBRIDGE_DOWN) {
+/*JP
             pline("%s crushed underneath the drawbridge.",
+*/
+            pline("%s\82Í\92µ\82Ë\8b´\82Ì\89º\95~\82É\82È\82Á\82½\81D",
                   E_phrase(etmp, "are"));             /* no jump */
             e_died(etmp, e_inview ? 3 : 2, CRUSHING); /* no corpse */
             return;       /* Note: Beyond this point, we know we're  */
@@ -621,10 +654,16 @@ struct entity *etmp;
                 debugpline0("Jump succeeds!");
             } else {
                 if (e_inview)
+/*JP
                     pline("%s crushed by the falling portcullis!",
+*/
+                    pline("%s\82Í\97\8e\82¿\82Ä\82«\82½\97\8e\82µ\8ai\8eq\82É\92×\82³\82ê\82½\81I",
                           E_phrase(etmp, "are"));
                 else if (!Deaf)
+/*JP
                     You_hear("a crushing sound.");
+*/
+                    You_hear("\89½\82©\82ª\92×\82ê\82é\89¹\82ð\95·\82¢\82½\81D");
                 e_died(etmp, e_inview ? 3 : 2, CRUSHING);
                 /* no corpse */
                 return;
@@ -709,18 +748,33 @@ struct entity *etmp;
 #endif
         if (e_inview) {
             if (is_u(etmp)) {
+/*JP
                 You("tumble towards the closed portcullis!");
+*/
+                You("\95Â\82Ü\82è\82©\82¯\82Ì\97\8e\82µ\8ai\8eq\82ð\82±\82ë\82Ô\82æ\82¤\82É\82·\82è\82Ê\82¯\82½\81I");
                 if (automiss(etmp))
+/*JP
                     You("pass through it!");
+*/
+                    You("\92Ê\82è\82Ê\82¯\82½\81I");
                 else
+/*JP
                     pline_The("drawbridge closes in...");
+*/
+                    pline_The("\92µ\82Ë\8b´\82Í\95Â\82\82½\81D\81D\81D");
             } else
+/*JP
                 pline("%s behind the drawbridge.",
+*/
+                pline("%s\82Í\92µ\82Ë\8b´\82Ì\97 \82É\88Ú\93®\82µ\82½\81D",
                       E_phrase(etmp, "disappear"));
         }
         if (!e_survives_at(etmp, etmp->ex, etmp->ey)) {
             killer.format = KILLED_BY_AN;
+/*JP
             Strcpy(killer.name, "closing drawbridge");
+*/
+            Strcpy(killer.name, "\95Â\82\82Ä\82¢\82­\92µ\82Ë\8b´\82É\8b·\82Ü\82ê\82Ä");
             e_died(etmp, 0, CRUSHING); /* no message */
             return;
         }
@@ -729,11 +783,17 @@ struct entity *etmp;
         debugpline1("%s on drawbridge square", E_phrase(etmp, "are"));
         if (is_pool(etmp->ex, etmp->ey) && !e_inview)
             if (!Deaf)
+/*JP
                 You_hear("a splash.");
+*/
+                You_hear("\83p\83V\83\83\83p\83V\83\83\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
         if (e_survives_at(etmp, etmp->ex, etmp->ey)) {
             if (e_inview && !is_flyer(etmp->edata)
                 && !is_floater(etmp->edata))
+/*JP
                 pline("%s from the bridge.", E_phrase(etmp, "fall"));
+*/
+                pline("%s\82Í\8b´\82©\82ç\97\8e\82¿\82½\81D", E_phrase(etmp, "fall"));
             return;
         }
         debugpline1("%s cannot survive on the drawbridge square",
@@ -744,14 +804,29 @@ struct entity *etmp;
                 boolean lava = is_lava(etmp->ex, etmp->ey);
 
                 if (Hallucination)
+#if 0 /*JP*/
                     pline("%s the %s and disappears.",
                           E_phrase(etmp, "drink"), lava ? "lava" : "moat");
+#else
+                    pline("%s\82Í%s\82ð\88ù\82Ý\81C\8fÁ\82¦\82½\81D",
+                          E_phrase(etmp, "drink"), lava ? "\97n\8aâ" : "\96x");
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s into the %s.", E_phrase(etmp, "fall"),
                           lava ? "lava" : "moat");
+#else
+                    pline("%s\82Í%s\82Ì\92\86\82É\97\8e\82¿\82½\81D", E_phrase(etmp, "fall"),
+                          lava ? "\97n\8aâ" : "\96x");
+#endif
             }
+#if 0 /*JP:T*/
         killer.format = NO_KILLER_PREFIX;
         Strcpy(killer.name, "fell from a drawbridge");
+#else
+        killer.format = KILLED_BY;
+        Strcpy(killer.name, "\92µ\82Ë\8b´\82©\82ç\97\8e\82¿\82Ä");
+#endif
         e_died(etmp, e_inview ? 3 : 2, /* CRUSHING is arbitrary */
                (is_pool(etmp->ex, etmp->ey))
                    ? DROWNING
@@ -780,13 +855,20 @@ int x, y;
     y2 = y;
     get_wall_for_db(&x2, &y2);
     if (cansee(x, y) || cansee(x2, y2))
+#if 0 /*JP*/
         You_see("a drawbridge %s up!",
                 (((u.ux == x || u.uy == y) && !Underwater)
                  || distu(x2, y2) < distu(x, y))
                     ? "coming"
                     : "going");
+#else
+        pline("\92µ\82Ë\8b´\82ª\8fã\82ª\82Á\82Ä\82¢\82­\82Ì\82ª\8c©\82¦\82½\81I");
+#endif
     else /* "5 gears turn" for castle drawbridge tune */
+/*JP
         You_hear("chains rattling and gears turning.");
+*/
+        You_hear("\8e\95\8eÔ\82ª\89ñ\82è\83`\83F\81[\83\93\82ª\83K\83\89\83K\83\89\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
     lev1->typ = DRAWBRIDGE_UP;
     lev2 = &levl[x2][y2];
     lev2->typ = DBWALL;
@@ -807,7 +889,10 @@ int x, y;
     set_entity(x2, y2, &(occupants[1])); /* do_entity for worm tail */
     do_entity(&(occupants[1]));
     if (OBJ_AT(x, y) && !Deaf)
+/*JP
         You_hear("smashing and crushing.");
+*/
+        You_hear("\83K\83V\83\83\83\93\81C\83K\83\89\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
     (void) revive_nasty(x, y, (char *) 0);
     (void) revive_nasty(x2, y2, (char *) 0);
     delallobj(x, y);
@@ -842,10 +927,17 @@ int x, y;
     y2 = y;
     get_wall_for_db(&x2, &y2);
     if (cansee(x, y) || cansee(x2, y2))
+#if 0 /*JP*/
         You_see("a drawbridge %s down!",
                 (distu(x2, y2) < distu(x, y)) ? "going" : "coming");
+#else
+        pline("\92µ\82Ë\8b´\82ª\89º\82ª\82é\82Ì\82ª\8c©\82¦\82½\81I");
+#endif
     else /* "5 gears turn" for castle drawbridge tune */
+/*JP
         You_hear("gears turning and chains rattling.");
+*/
+        You_hear("\8e\95\8eÔ\82ª\89ñ\82è\83`\83F\81[\83\93\82ª\83K\83\89\83K\83\89\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
     lev1->typ = DRAWBRIDGE_DOWN;
     lev2 = &levl[x2][y2];
     lev2->typ = DOOR;
@@ -898,28 +990,53 @@ int x, y;
         boolean lava = (lev1->drawbridgemask & DB_UNDER) == DB_LAVA;
         if (lev1->typ == DRAWBRIDGE_UP) {
             if (cansee(x2, y2))
+#if 0 /*JP*/
                 pline_The("portcullis of the drawbridge falls into the %s!",
                           lava ? "lava" : "moat");
+#else
+                pline("\92µ\82Ë\8b´\82Ì\97\8e\82µ\8ai\8eq\82ª%s\82É\97\8e\82¿\82½\81I",
+                          lava ? "\97n\8aâ" : "\96x");
+#endif
             else if (!Deaf)
+/*JP
                 You_hear("a loud *SPLASH*!");
+*/
+                You_hear("\91å\82«\82È\83o\83b\83V\83\83\81[\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I");
         } else {
             if (cansee(x, y))
+#if 0 /*JP*/
                 pline_The("drawbridge collapses into the %s!",
                           lava ? "lava" : "moat");
+#else
+                pline("\92µ\82Ë\8b´\82Í%s\82É\82­\82¸\82ê\97\8e\82¿\82½\81I",
+                          lava ? "\97n\8aâ" : "\96x");
+#endif
             else if (!Deaf)
+/*JP
                 You_hear("a loud *SPLASH*!");
+*/
+                You_hear("\91å\82«\82È\83o\83b\83V\83\83\81[\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I");
         }
         lev1->typ = lava ? LAVAPOOL : MOAT;
         lev1->drawbridgemask = 0;
         if ((otmp2 = sobj_at(BOULDER, x, y)) != 0) {
             obj_extract_self(otmp2);
+/*JP
             (void) flooreffects(otmp2, x, y, "fall");
+*/
+            (void) flooreffects(otmp2, x, y, "\97\8e\82¿\82é");
         }
     } else {
         if (cansee(x, y))
+/*JP
             pline_The("drawbridge disintegrates!");
+*/
+            pline("\92µ\82Ë\8b´\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81I");
         else
+/*JP
             You_hear("a loud *CRASH*!");
+*/
+            You_hear("\91å\82«\82È\83K\83V\83\83\81[\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I");
         lev1->typ = ((lev1->drawbridgemask & DB_ICE) ? ICE : ROOM);
         lev1->icedpool = ((lev1->drawbridgemask & DB_ICE) ? ICED_MOAT : 0);
     }
@@ -954,10 +1071,16 @@ int x, y;
         e_inview = e_canseemon(etmp2);
         if (!automiss(etmp2)) {
             if (e_inview)
+/*JP
                 pline("%s blown apart by flying debris.",
+*/
+                pline("%s\82Í\94ò\82Ñ\8eU\82Á\82½\8a¢âI\82Ì\94j\95Ð\82ð\97\81\82Ñ\82½\81D",
                       E_phrase(etmp2, "are"));
             killer.format = KILLED_BY_AN;
+/*JP
             Strcpy(killer.name, "exploding drawbridge");
+*/
+            Strcpy(killer.name, "\92µ\82Ë\8b´\82Ì\94\9a\94­\82Å");
             e_died(etmp2, e_inview ? 3 : 2, CRUSHING); /*no corpse*/
         } /* nothing which is vulnerable can survive this */
     }
@@ -974,20 +1097,32 @@ int x, y;
         } else {
             if (e_inview) {
                 if (!is_u(etmp1) && Hallucination)
+/*JP
                     pline("%s into some heavy metal!",
+*/
+                    pline("%s\82Í\8fd\8bà\91®\82É\96\84\82à\82ê\82½\81I",
                           E_phrase(etmp1, "get"));
                 else
+/*JP
                     pline("%s hit by a huge chunk of metal!",
+*/
+                    pline("\91å\82«\82È\93S\82Ì\89ò\82ª%s\82É\96½\92\86\82µ\82½\81I",
                           E_phrase(etmp1, "are"));
             } else {
                 if (!Deaf && !is_u(etmp1) && !is_pool(x, y)) {
+/*JP
                     You_hear("a crushing sound.");
+*/
+                    You_hear("\83K\83\89\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                 } else {
                     debugpline1("%s from shrapnel", E_phrase(etmp1, "die"));
                 }
             }
             killer.format = KILLED_BY_AN;
+/*JP
             Strcpy(killer.name, "collapsing drawbridge");
+*/
+            Strcpy(killer.name, "\83o\83\89\83o\83\89\82É\82È\82Á\82½\92µ\82Ë\8b´\82Å");
             e_died(etmp1, e_inview ? 3 : 2, CRUSHING); /*no corpse*/
             if (levl[etmp1->ex][etmp1->ey].typ == MOAT)
                 do_entity(etmp1);
index 944dbe3..84d9437 100644 (file)
@@ -211,14 +211,22 @@ NEARDATA struct monst *migrating_mons = (struct monst *) 0;
 
 NEARDATA struct mvitals mvitals[NUMMONS];
 
+#if 0 /*JP*/
 NEARDATA struct c_color_names c_color_names = {
     "black",  "amber", "golden", "light blue", "red",   "green",
     "silver", "blue",  "purple", "white",      "orange"
 };
+#else
+NEARDATA struct c_color_names c_color_names = {
+    "\8d\95\82¢",   "àæàß\90F\82Ì", "\8bà\90F\82Ì", "\90\85\90F\82Ì", "\90Ô\82¢", "\97Î\90F\82Ì",
+    "\8bâ\90F\82Ì", "\90Â\82¢",     "\8e\87\90F\82Ì", "\94\92\82¢",   "\9eò\90F\82Ì"
+};
+#endif
 
 struct menucoloring *menu_colorings = NULL;
 
 const char *c_obj_colors[] = {
+#if 0 /*JP*/
     "black",          /* CLR_BLACK */
     "red",            /* CLR_RED */
     "green",          /* CLR_GREEN */
@@ -235,8 +243,27 @@ const char *c_obj_colors[] = {
     "bright magenta", /* CLR_BRIGHT_MAGENTA */
     "bright cyan",    /* CLR_BRIGHT_CYAN */
     "white",          /* CLR_WHITE */
+#else
+    "\8d\95\82¢",           /* CLR_BLACK */
+    "\90Ô\82¢",           /* CLR_RED */
+    "\97Î\90F\82Ì",         /* CLR_GREEN */
+    "\92\83\90F\82Ì",         /* CLR_BROWN */
+    "\90Â\82¢",           /* CLR_BLUE */
+    "\83}\83[\83\93\83^\90F\82Ì",   /* CLR_MAGENTA */
+    "\83V\83A\83\93\90F\82Ì",     /* CLR_CYAN */
+    "\8aD\90F\82Ì",         /* CLR_GRAY */
+    "\93§\96¾\82È",         /* no_color */
+    "\9eò\90F\82Ì",         /* CLR_ORANGE */
+    "\96¾\82é\82¢\97Î\90F\82Ì",   /* CLR_BRIGHT_GREEN */
+    "\89©\90F\82Ì",         /* CLR_YELLOW */
+    "\96¾\82é\82¢\90Â\90F\82Ì",   /* CLR_BRIGHT_BLUE */
+    "\96¾\82é\82¢\83}\83[\83\93\83^\90F\82Ì", /* CLR_BRIGHT_MAGENTA */
+    "\96¾\82é\82¢\83V\83A\83\93\90F\82Ì", /* CLR_BRIGHT_CYAN */
+    "\94\92\82¢",           /* CLR_WHITE */
+#endif
 };
 
+#if 0 /*JP*/
 struct c_common_strings c_common_strings = { "Nothing happens.",
                                              "That's enough tries!",
                                              "That is a silly thing to %s.",
@@ -247,15 +274,36 @@ struct c_common_strings c_common_strings = { "Nothing happens.",
                                              "Never mind.",
                                              "vision quickly clears.",
                                              { "the", "your" } };
+#else
+struct c_common_strings c_common_strings = { "\89½\82à\8bN\82«\82È\82©\82Á\82½\81D",
+                                             "\82¢\82¢\89Á\8c¸\82É\82µ\82ë\81I",
+                                             "%s\81H\82»\82è\82á\82Î\82©\82°\82Ä\82¢\82é\81D",
+                                             "\88ê\8fu\90k\82¦\82½\81D",
+                                             "\89½\82©",
+                                             "\89½\82©",
+                                             "\82Ü\82½\93®\82¯\82é\82æ\82¤\82É\82È\82Á\82½\81D",
+                                             "\82¦\81H",
+                                             "\8e\8b\8aE\82ª\82Í\82Á\82«\82è\82µ\82½\81D",
+                                             { "", "\82 \82È\82½\82Ì" } };
+#endif
 
 /* NOTE: the order of these words exactly corresponds to the
    order of oc_material values #define'd in objclass.h. */
+#if 0 /*JP*/
 const char *materialnm[] = { "mysterious", "liquid",  "wax",        "organic",
                              "flesh",      "paper",   "cloth",      "leather",
                              "wooden",     "bone",    "dragonhide", "iron",
                              "metal",      "copper",  "silver",     "gold",
                              "platinum",   "mithril", "plastic",    "glass",
                              "gemstone",   "stone" };
+#else
+const char *materialnm[] = { "\90_\94é", "\89t\8fó", "\98X",   "\97L\8b@",
+                             "\93÷",   "\8e\86",   "\95z",   "\8av",
+                             "\96Ø",   "\8d\9c",   "\97³\94ç", "\93S",
+                             "\8bà\91®", "\93º",   "\94\92\8bâ", "\8bà",
+                             "\83v\83\89\83`\83i", "\83~\83X\83\8a\83\8b", "\83v\83\89\83X\83`\83b\83N", "\83K\83\89\83X",
+                             "\95ó\90Î", "\90Î" };
+#endif
 
 /* Vision */
 NEARDATA boolean vision_full_recalc = 0;
index 1e5b23e..7e14252 100644 (file)
@@ -7,6 +7,11 @@
  * command.
  */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "artifact.h"
 
@@ -208,12 +213,21 @@ register struct obj *sobj;
         if (sobj) {
             char buf[BUFSZ];
             if (youmonst.data == &mons[PM_GOLD_GOLEM]) {
+/*JP
                 Sprintf(buf, "You feel like a million %s!", currency(2L));
+*/
+                Strcpy(buf, "\82 \82È\82½\82Í\8bà\8e\9d\82¿\82É\82È\82Á\82½\82æ\82¤\82É\8a´\82\82½\81I");
             } else if (hidden_gold() || money_cnt(invent))
                 Strcpy(buf,
+/*JP
                    "You feel worried about your future financial situation.");
+*/
+                   "\82 \82È\82½\82Í\8f«\97\88\82Ì\8co\8dÏ\8fó\8bµ\82ª\90S\94z\82É\82È\82Á\82½\81D");
             else
+/*JP
                 Strcpy(buf, "You feel materially poor.");
+*/
+                Strcpy(buf, "\82 \82È\82½\82Í\82Ð\82à\82\82³\82ð\8a´\82\82½\81D");
             strange_feeling(sobj, buf);
         }
         return 1;
@@ -221,7 +235,10 @@ register struct obj *sobj;
     /* only under me - no separate display required */
     if (stale)
         docrt();
+/*JP
     You("notice some gold between your %s.", makeplural(body_part(FOOT)));
+*/
+    You("%s\82Ì\8aÔ\82É\8bà\89Ý\82ª\97\8e\82¿\82Ä\82¢\82é\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½\81D", body_part(FOOT));
     return 0;
 
 outgoldmap:
@@ -271,7 +288,10 @@ outgoldmap:
     }
     newsym(u.ux, u.uy);
     u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied;
+/*JP
     You_feel("very greedy, and sense gold!");
+*/
+    You("\82Ç\82ñ\97~\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81C\82»\82µ\82Ä\8bà\89Ý\82Ì\88Ê\92u\82ð\8a´\92m\82µ\82½\81I");
     exercise(A_WIS, TRUE);
     display_nhwindow(WIN_MAP, TRUE);
     docrt();
@@ -293,7 +313,10 @@ register struct obj *sobj;
     register int ct = 0, ctu = 0;
     boolean confused = (Confusion || (sobj && sobj->cursed)), stale;
     char oclass = confused ? POTION_CLASS : FOOD_CLASS;
+/*JP
     const char *what = confused ? something : "food";
+*/
+    const char *what = confused ? "\83n\83\89\83w\83\8a" : "\90H\82×\95¨";
 
     stale = clear_stale_map(oclass, 0);
 
@@ -318,18 +341,31 @@ register struct obj *sobj;
         known = stale && !confused;
         if (stale) {
             docrt();
+/*JP
             You("sense a lack of %s nearby.", what);
+*/
+            You("%s\82ª\8c¸\82Á\82Ä\82¢\82é\82Ì\82É\8bC\82ª\82Â\82¢\82½\81D",what);
             if (sobj && sobj->blessed) {
                 if (!u.uedibility)
+/*JP
                     Your("%s starts to tingle.", body_part(NOSE));
+*/
+                    Your("%s\82ª\82Ò\82­\82Á\82Æ\93®\82¢\82½\81D", body_part(NOSE));
                 u.uedibility = 1;
             }
         } else if (sobj) {
             char buf[BUFSZ];
+#if 0 /*JP*/
             Sprintf(buf, "Your %s twitches%s.", body_part(NOSE),
                     (sobj->blessed && !u.uedibility)
                         ? " then starts to tingle"
                         : "");
+#else
+            Sprintf(buf, "\82 \82È\82½\82Ì%s\82ª\82Ð\82­\82Ð\82­\82Æ\93®\82¢%s\81D", body_part(NOSE),
+                    (sobj->blessed && !u.uedibility)
+                        ? "\82Ä\81C\82¤\82¸\82¤\82¸\82µ\82¾\82µ\82½"
+                        : "\82½");
+#endif
             if (sobj->blessed && !u.uedibility) {
                 boolean savebeginner = flags.beginner;
 
@@ -377,13 +413,24 @@ register struct obj *sobj;
         u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied;
         if (sobj) {
             if (sobj->blessed) {
+#if 0 /*JP*/
                 Your("%s %s to tingle and you smell %s.", body_part(NOSE),
                      u.uedibility ? "continues" : "starts", what);
+#else
+                Your("%s\82Í\82¤\82¸\82¤\82¸\82µ%s\81C%s\82Ì\93õ\82¢\82ð\9ak\82¬\82Æ\82Á\82½\81D", body_part(NOSE),
+                     u.uedibility ? "\91±\82¯" : "\8en\82ß", what);
+#endif
                 u.uedibility = 1;
             } else
+/*JP
                 Your("%s tingles and you smell %s.", body_part(NOSE), what);
+*/
+                Your("%s\82Í\82¤\82¸\82¤\82¸\82µ\81C%s\82Ì\93õ\82¢\82ð\9ak\82¬\82Æ\82Á\82½\81D", body_part(NOSE), what);
         } else
+/*JP
             You("sense %s.", what);
+*/
+            You("%s\82ð\8a´\92m\82µ\82½\81D", what);
         display_nhwindow(WIN_MAP, TRUE);
         exercise(A_WIS, TRUE);
         docrt();
@@ -435,9 +482,15 @@ int class;            /* an object class, 0 for all */
     if (Hallucination || (Confusion && class == SCROLL_CLASS))
         Strcpy(stuff, something);
     else
+/*JP
         Strcpy(stuff, class ? def_oc_syms[class].name : "objects");
+*/
+        Strcpy(stuff, class ? def_oc_syms[class].name : "\95¨\91Ì");
     if (boulder && class != ROCK_CLASS)
+/*JP
         Strcat(stuff, " and/or large stones");
+*/
+        Strcat(stuff, "\82Æ\8b\90\8aâ");
 
     if (do_dknown)
         for (obj = invent; obj; obj = obj->nobj)
@@ -486,11 +539,17 @@ int class;            /* an object class, 0 for all */
     if (!clear_stale_map(!class ? ALL_CLASSES : class, 0) && !ct) {
         if (!ctu) {
             if (detector)
+/*JP
                 strange_feeling(detector, "You feel a lack of something.");
+*/
+                strange_feeling(detector, "\82 \82È\82½\82Í\89½\82©\82ª\8c\87\96R\82µ\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             return 1;
         }
 
+/*JP
         You("sense %s nearby.", stuff);
+*/
+        You("\8bß\82­\82Ì%s\82ð\8a´\92m\82µ\82½\81D", stuff);
         return 0;
     }
 
@@ -574,7 +633,10 @@ int class;            /* an object class, 0 for all */
 
     newsym(u.ux, u.uy);
     u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied;
+/*JP
     You("detect the %s of %s.", ct ? "presence" : "absence", stuff);
+*/
+    You("%s%s\81D", stuff, ct ? "\82ð\94­\8c©\82µ\82½" : "\82Í\89½\82à\82È\82¢\82±\82Æ\82ª\82í\82©\82Á\82½" );
     display_nhwindow(WIN_MAP, TRUE);
     /*
      * What are we going to do when the hero does an object detect while blind
@@ -617,8 +679,14 @@ int mclass;                /* monster class, 0 for all */
     if (!mcnt) {
         if (otmp)
             strange_feeling(otmp, Hallucination
+/*JP
                                       ? "You get the heebie jeebies."
+*/
+                                      ? "\82 \82È\82½\82Í\8bà\92¹\82Ì\89Ä\82Å\83L\83\93\83`\83\87\81[\82µ\82½\81D"
+/*JP
                                       : "You feel threatened.");
+*/
+                                      : "\82 \82È\82½\82Í\8b°\95|\82Å\82¼\82­\82¼\82­\82µ\82½\81D");
         return 1;
     } else {
         boolean woken = FALSE;
@@ -649,9 +717,15 @@ int mclass;                /* monster class, 0 for all */
             }
         }
         display_self();
+/*JP
         You("sense the presence of monsters.");
+*/
+        You("\89ö\95¨\82Ì\91\8dÝ\82ð\9ak\82¬\82Â\82¯\82½\81D");
         if (woken)
+/*JP
             pline("Monsters sense the presence of you.");
+*/
+            pline("\89ö\95¨\82Í\82 \82È\82½\82Ì\91\8dÝ\82ð\9ak\82¬\82Â\82¯\82½\81D");
         display_nhwindow(WIN_MAP, TRUE);
         docrt();
         if (Underwater)
@@ -787,12 +861,18 @@ register struct obj *sobj;
     if (!found) {
         char buf[BUFSZ];
 
+/*JP
         Sprintf(buf, "Your %s stop itching.", makeplural(body_part(TOE)));
+*/
+        Sprintf(buf, "\82 \82È\82½\82Ì%s\82Ì\82Þ\82¸\82Þ\82¸\82Í\82¨\82³\82Ü\82Á\82½\81D", makeplural(body_part(TOE)));
         strange_feeling(sobj, buf);
         return 1;
     }
     /* traps exist, but only under me - no separate display required */
+/*JP
     Your("%s itch.", makeplural(body_part(TOE)));
+*/
+    Your("%s\82Í\82Þ\82¸\82Þ\82¸\82µ\82½\81D", makeplural(body_part(TOE)));
     return 0;
 outtrapmap:
     cls();
@@ -826,7 +906,10 @@ outtrapmap:
         newsym(u.ux, u.uy);
     u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied;
 
+/*JP
     You_feel("%s.", cursed_src ? "very greedy" : "entrapped");
+*/
+    You("%s\8bC\8e\9d\82É\82È\82Á\82½\81D", cursed_src ? "\82Æ\82Ä\82à\82Ç\82ñ\97~\82È" : "\82¾\82Ü\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È");
     /* wait for user to respond, then reset map display to normal */
     display_nhwindow(WIN_MAP, TRUE);
     docrt();
@@ -847,47 +930,101 @@ d_level *where;
     if (ll < 0) {
         if (ll < (-8 - rn2(3)))
             if (!indun)
+/*JP
                 return "far away";
+*/
+              return "\82Í\82é\82©\94Þ\95û\82É";
             else
+/*JP
                 return "far below";
+*/
+        return "\82Í\82é\82©\89º\95û\82É";
         else if (ll < -1)
             if (!indun)
+/*JP
                 return "away below you";
+*/
+              return "\82¸\82Á\82Æ\89º\95û\82É";
             else
+/*JP
                 return "below you";
+*/
+              return "\89º\95û\82É";
         else if (!indun)
+/*JP
             return "in the distance";
+*/
+          return "\89\93\82­\82É";
         else
+/*JP
             return "just below";
+*/
+          return "\90^\89º\82É";
     } else if (ll > 0) {
         if (ll > (8 + rn2(3)))
             if (!indun)
+/*JP
                 return "far away";
+*/
+              return "\82Í\82é\82©\94Þ\95û\82É";
             else
+/*JP
                 return "far above";
+*/
+              return "\82Í\82é\82©\8fã\95û\82É";
         else if (ll > 1)
             if (!indun)
+/*JP
                 return "away above you";
+*/
+              return "\82¸\82Á\82Æ\8fã\95û\82É";
             else
+/*JP
                 return "above you";
+*/
+              return "\8fã\95û\82É";
         else if (!indun)
+/*JP
             return "in the distance";
+*/
+          return "\89\93\82­\82É";
         else
+/*JP
             return "just above";
+*/
+          return "\90^\8fã\82É";
     } else if (!indun)
+/*JP
         return "in the distance";
+*/
+      return "\89\93\82­\82É";
     else
+/*JP
         return "near you";
+*/
+      return "\8bß\82­\82É";
 }
 
 static const struct {
     const char *what;
     d_level *where;
 } level_detects[] = {
+/*JP
     { "Delphi", &oracle_level },
+*/
+    { "\83f\83\8b\83t\83@\83C", &oracle_level },
+/*JP
     { "Medusa's lair", &medusa_level },
+*/
+    { "\83\81\83f\83\85\81[\83T\82Ì\8fZ\82Ý\82©", &medusa_level },
+/*JP
     { "a castle", &stronghold_level },
+*/
+    { "\8fé", &stronghold_level },
+/*JP
     { "the Wizard of Yendor's tower", &wiz1_level },
+*/
+    { "\83C\83F\83\93\83_\81[\82Ì\96\82\96@\8eg\82¢\82Ì\93\83", &wiz1_level },
 };
 
 void
@@ -899,41 +1036,68 @@ struct obj **optr;
     struct obj *obj = *optr;
 
     if (Blind) {
+/*JP
         pline("Too bad you can't see %s.", the(xname(obj)));
+*/
+        pline("\82È\82ñ\82Ä\82±\82Æ\82¾\81D%s\82ð\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", the(xname(obj)));
         return;
     }
     oops = (rnd(20) > ACURR(A_INT) || obj->cursed);
     if (oops && (obj->spe > 0)) {
         switch (rnd(obj->oartifact ? 4 : 5)) {
         case 1:
+/*JP
             pline("%s too much to comprehend!", Tobjnam(obj, "are"));
+*/
+            pline("%s\82ð\94`\82¢\82½\82ª\89½\82Ì\82±\82Æ\82¾\82©\82³\82Á\82Ï\82è\82í\82©\82ç\82È\82©\82Á\82½\81I", xname(obj));
             break;
         case 2:
+/*JP
             pline("%s you!", Tobjnam(obj, "confuse"));
+*/
+            pline("%s\82ð\94`\82¢\82Ä\82é\82Æ\82Ó\82ç\82Â\82¢\82Ä\82«\82½\81I", xname(obj));
             make_confused((HConfusion & TIMEOUT) + (long) rnd(100), FALSE);
             break;
         case 3:
             if (!resists_blnd(&youmonst)) {
+/*JP
                 pline("%s your vision!", Tobjnam(obj, "damage"));
+*/
+                pline("%s\82ð\94`\82¢\82Ä\82¢\82é\82Æ\8e\8b\8ao\82ª\82¨\82©\82µ\82­\82È\82Á\82Ä\82«\82½\81I", xname(obj));
                 make_blinded((Blinded & TIMEOUT) + (long) rnd(100), FALSE);
                 if (!Blind)
                     Your1(vision_clears);
             } else {
+/*JP
                 pline("%s your vision.", Tobjnam(obj, "assault"));
+*/
+                pline("%s\82ª\82 \82È\82½\82Ì\8e\8b\8aE\82É\94\97\82Á\82Ä\82«\82½\81D", xname(obj));
+/*JP
                 You("are unaffected!");
+*/
+                pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81I");
             }
             break;
         case 4:
+/*JP
             pline("%s your mind!", Tobjnam(obj, "zap"));
+*/
+            pline("%s\82ð\94`\82¢\82Ä\82¢\82é\82Æ\8cÜ\8a´\82ª\82¨\82©\82µ\82­\82È\82Á\82Ä\82«\82½\81I", xname(obj));
             (void) make_hallucinated(
                 (HHallucination & TIMEOUT) + (long) rnd(100), FALSE, 0L);
             break;
         case 5:
+/*JP
             pline("%s!", Tobjnam(obj, "explode"));
+*/
+            pline("%s\82Í\94\9a\94­\82µ\82½\81I", xname(obj));
             useup(obj);
             *optr = obj = 0; /* it's gone */
             /* physical damage cause by the shards and force */
+/*JP
             losehp(Maybe_Half_Phys(rnd(30)), "exploding crystal ball",
+*/
+            losehp(Maybe_Half_Phys(rnd(30)), "\90\85\8f»\8bÊ\82Ì\94\9a\94­\82Å",
                    KILLED_BY_AN);
             break;
         }
@@ -944,30 +1108,54 @@ struct obj **optr;
 
     if (Hallucination) {
         if (!obj->spe) {
+/*JP
             pline("All you see is funky %s haze.", hcolor((char *) 0));
+*/
+            pline("\82¨\82¨\81I\83t\83@\83\93\83L\81[\83\82\83\93\83L\81[\82È%s\82à\82â\82ª\8c©\82¦\82é\81D", hcolor((char *)0));
         } else {
             switch (rnd(6)) {
             case 1:
+/*JP
                 You("grok some groovy globs of incandescent lava.");
+*/
+                You("\90\85\96å\82Ì\8c®\82ð\82à\82Á\82½\90\85\8cË\89©\96å\82ª\95Ç\82Ì\89e\82É\89B\82ê\82Ä\82¢\82é\82Ì\82ª\8c©\82¦\82½\81D");
                 break;
             case 2:
+#if 0 /*JP:T*/
                 pline("Whoa!  Psychedelic colors, %s!",
                       poly_gender() == 1 ? "babe" : "dude");
+#else
+                pline("\83\8f\81[\83I\81I\83\89\83\8a\82Á\82Ä\82é\82©\82¢\81H%s\81I",
+                      poly_gender() == 1 ? "\83x\83C\83r\81[" : "\83\86\81[");
+#endif
                 break;
             case 3:
+/*JP
                 pline_The("crystal pulses with sinister %s light!",
+*/
+                pline("\90\85\8f»\82Í\95s\8bg\82È%s\83p\83\8b\83X\82ð\94­\82µ\82½\81I", 
                           hcolor((char *) 0));
                 break;
             case 4:
+/*JP
                 You_see("goldfish swimming above fluorescent rocks.");
+*/
+                You("\8cu\8cõ\8aâ\82Ì\8fã\82ð\8bà\8b\9b\82ª\89j\82¢\82Å\82¢\82é\82Ì\82ð\8c©\82½\81D");
                 break;
             case 5:
+#if 0 /*JP*/
                 You_see(
                     "tiny snowflakes spinning around a miniature farmhouse.");
+#else
+                    You("\8f¬\82³\82¢\90á\95Ð\82ª\83~\83j\83`\83\85\83A\82Ì\94_\89Æ\82Ì\89Æ\82Ì\82Ü\82í\82è\82ð\95\91\82Á\82Ä\82é\82Ì\82ð\8c©\82½\81D");
+#endif
                 break;
             default:
+/*JP
                 pline("Oh wow... like a kaleidoscope!");
-                break;
+*/
+                pline("\83\8f\81[\83I\81D\96\9c\89Ø\8b¾\82Ì\82æ\82¤\82¾\81I");
+                 break;
             }
             consume_obj_charge(obj, TRUE);
         }
@@ -976,20 +1164,32 @@ struct obj **optr;
 
     /* read a single character */
     if (flags.verbose)
+/*JP
         You("may look for an object or monster symbol.");
+*/
+        You("\95¨\91Ì\82â\89ö\95¨\82Ì\8bL\8d\86\82ð\92T\82¹\82é\81D");
+/*JP
     ch = yn_function("What do you look for?", (char *) 0, '\0');
+*/
+    ch = yn_function("\89½\82ð\92T\82µ\82Ü\82·\82©\81H", (char *)0, '\0');
     /* Don't filter out ' ' here; it has a use */
     if ((ch != def_monsyms[S_GHOST].sym) && index(quitchars, ch)) {
         if (flags.verbose)
             pline1(Never_mind);
         return;
     }
+/*JP
     You("peer into %s...", the(xname(obj)));
+*/
+    You("%s\82ð\94`\82«\82±\82ñ\82¾\81D\81D\81D", the(xname(obj)));
     nomul(-rnd(10));
     multi_reason = "gazing into a crystal ball";
     nomovemsg = "";
     if (obj->spe <= 0)
+/*JP
         pline_The("vision is unclear.");
+*/
+        pline("\89f\91\9c\82Í\95s\91N\96¾\82¾\82Á\82½\81D");
     else {
         int class;
         int ret = 0;
@@ -1016,8 +1216,13 @@ struct obj **optr;
                 break;
             default: {
                 int i = rn2(SIZE(level_detects));
+#if 0 /*JP*/
                 You_see("%s, %s.", level_detects[i].what,
                         level_distance(level_detects[i].where));
+#else
+                You_see("%s\82ð%s\8c©\82½\81D", level_detects[i].what,
+                        level_distance(level_detects[i].where));
+#endif
             }
                 ret = 0;
                 break;
@@ -1025,9 +1230,15 @@ struct obj **optr;
 
         if (ret) {
             if (!rn2(100)) /* make them nervous */
+/*JP
                 You_see("the Wizard of Yendor gazing out at you.");
+*/
+                You("\83C\83F\83\93\83_\81[\82Ì\96\82\96@\8eg\82¢\82ª\82 \82È\82½\82ð\82É\82ç\82ñ\82Å\82¢\82é\82Ì\82ð\8c©\82½\81D");
             else
+/*JP
                 pline_The("vision is unclear.");
+*/
+                pline("\89f\91\9c\82Í\95s\91N\96¾\82É\82È\82Á\82½\81D");
         }
     }
     return;
@@ -1206,11 +1417,20 @@ genericptr_t num;
             cvt_sdoor_to_door(&levl[zx][zy]); /* .typ = DOOR */
         if (levl[zx][zy].doormask & D_TRAPPED) {
             if (distu(zx, zy) < 3)
+/*JP
                 b_trapped("door", 0);
+*/
+                b_trapped("\94à", 0);
             else
+#if 0 /*JP*/
                 Norep("You %s an explosion!",
                       cansee(zx, zy) ? "see" : (!Deaf ? "hear"
                                                       : "feel the shock of"));
+#else
+                Norep("\82 \82È\82½\82Í\94\9a\94­%s\81I",
+                      cansee(zx, zy) ? "\82ð\8c©\82½" : (!Deaf ? "\89¹\82ð\95·\82¢\82½"
+                                                         : "\82Ì\8fÕ\8c\82\82ð\8a´\82\82½"));
+#endif
             wake_nearto(zx, zy, 11 * 11);
             levl[zx][zy].doormask = D_NODOOR;
         } else
@@ -1264,9 +1484,15 @@ openit()
     if (u.uswallow) {
         if (is_animal(u.ustuck->data)) {
             if (Blind)
+/*JP
                 pline("Its mouth opens!");
+*/
+                pline("\89½\8eÒ\82©\82Ì\8cû\82ª\8aJ\82¢\82½\81I");
             else
+/*JP
                 pline("%s opens its mouth!", Monnam(u.ustuck));
+*/
+                pline("%s\82Í\8cû\82ð\8aJ\82¢\82½\81I", Monnam(u.ustuck));
         }
         expels(u.ustuck, u.ustuck->data, TRUE);
         return -1;
@@ -1303,7 +1529,10 @@ struct trap *trap;
         cleared = TRUE;
     }
 
+/*JP
     You("find %s.", an(defsyms[trap_to_defsym(tt)].explanation));
+*/
+    You("%s\82ð\8c©\82Â\82¯\82½\81D", defsyms[trap_to_defsym(tt)].explanation);
 
     if (cleared) {
         display_nhwindow(WIN_MAP, TRUE); /* wait */
@@ -1330,7 +1559,10 @@ register int aflag; /* intrinsic autosearch vs explicit searching */
 
     if (u.uswallow) {
         if (!aflag)
+/*JP
             pline("What are you looking for?  The exit?");
+*/
+            pline("\89½\82ð\92T\82·\82ñ\82¾\82¢\81H\94ñ\8fí\8cû\81H");
     } else {
         int fund = (uwep && uwep->oartifact
                     && spec_ability(uwep, SPFX_SEARCH)) ? uwep->spe : 0;
@@ -1383,11 +1615,17 @@ register int aflag; /* intrinsic autosearch vs explicit searching */
                                      */
                                     continue;
                                 } else {
+/*JP
                                     You_feel("an unseen monster!");
+*/
+                                    You("\8c©\82¦\82È\82¢\89ö\95¨\82Ì\8bC\94z\82ð\8a´\82\82½\81I");
                                     map_invisible(x, y);
                                 }
                             } else if (!sensemon(mtmp))
+/*JP
                                 You("find %s.", mtmp->mtame
+*/
+                                You("%s\82ð\8c©\82Â\82¯\82½\81D", mtmp->mtame
                                                    ? y_monnam(mtmp)
                                                    : a_monnam(mtmp));
                             return 1;
index bbfef5d..1b7babe 100644 (file)
--- a/src/dig.c
+++ b/src/dig.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 static NEARDATA boolean did_dig_msg;
@@ -95,10 +100,18 @@ register boolean rockit;
     register boolean waslit = rm_waslit();
 
     if (rockit)
+/*JP
         pline("Crash!  The ceiling collapses around you!");
+*/
+        pline("\82°\82°\82ñ\81I\82 \82È\82½\82Ì\82Ü\82í\82è\82Ì\93V\88ä\82ª\95ö\82ê\82½\81I");
     else
+#if 0 /*JP*/
         pline("A mysterious force %s cave around you!",
               (levl[u.ux][u.uy].typ == CORR) ? "creates a" : "extends the");
+#else
+        pline("\90_\94é\93I\82È\97Í\82É\82æ\82è\82 \82È\82½\82Ì\82Ü\82í\82è%s\82½\81I",
+              (levl[u.ux][u.uy].typ == CORR) ? "\82É\93´\8cA\82ª\82Å\82«" : "\82Ì\93´\8cA\82ª\8dL\82ª\82Á");
+#endif
     display_nhwindow(WIN_MESSAGE, TRUE);
 
     for (dist = 1; dist <= 2; dist++) {
@@ -184,32 +197,53 @@ int x, y;
 {
     struct trap *ttmp = t_at(x, y);
     const char *verb =
+/*JP
         (madeby == BY_YOU && uwep && is_axe(uwep)) ? "chop" : "dig in";
+*/
+        (madeby == BY_YOU && uwep && is_axe(uwep)) ? "\8dÓ\82¯\82È\82¢" : "\8c@\82ê\82È\82¢";
 
     if (On_stairs(x, y)) {
         if (x == xdnladder || x == xupladder) {
             if (verbose)
+/*JP
                 pline_The("ladder resists your effort.");
+*/
+                pline("\82Í\82µ\82²\82ª\8e×\96\82\82ð\82µ\82½\81D");
         } else if (verbose)
+/*JP
             pline_The("stairs are too hard to %s.", verb);
+*/
+            pline("\8aK\92i\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä%s\81D", verb);
         return FALSE;
     } else if (IS_THRONE(levl[x][y].typ) && madeby != BY_OBJECT) {
         if (verbose)
+/*JP
             pline_The("throne is too hard to break apart.");
+*/
+            pline("\8bÊ\8dÀ\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8dÓ\82¯\82È\82¢\81D");
         return FALSE;
     } else if (IS_ALTAR(levl[x][y].typ)
                && (madeby != BY_OBJECT || Is_astralevel(&u.uz)
                    || Is_sanctum(&u.uz))) {
         if (verbose)
+/*JP
             pline_The("altar is too hard to break apart.");
+*/
+            pline_The("\8dÕ\92d\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8dÓ\82¯\82È\82¢\81D");
         return FALSE;
     } else if (Is_airlevel(&u.uz)) {
         if (verbose)
+/*JP
             You("cannot %s thin air.", verb);
+*/
+            You("\89½\82à\82È\82¢\8bó\8aÔ\82Í%s\81D", verb);
         return FALSE;
     } else if (Is_waterlevel(&u.uz)) {
         if (verbose)
+/*JP
             pline_The("water splashes and subsides.");
+*/
+            pline("\90\85\82ª\83s\83V\83\83\83b\82Æ\92µ\82Ë\82½\81D");
         return FALSE;
     } else if ((IS_ROCK(levl[x][y].typ) && levl[x][y].typ != SDOOR
                 && (levl[x][y].wall_info & W_NONDIGGABLE) != 0)
@@ -218,11 +252,17 @@ int x, y;
                        || ttmp->ttyp == VIBRATING_SQUARE
                        || (!Can_dig_down(&u.uz) && !levl[x][y].candig)))) {
         if (verbose)
+/*JP
             pline_The("%s here is too hard to %s.", surface(x, y), verb);
+*/
+            pline_The("%s\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä%s\81D", surface(x,y), verb);
         return FALSE;
     } else if (sobj_at(BOULDER, x, y)) {
         if (verbose)
+/*JP
             There("isn't enough room to %s here.", verb);
+*/
+            pline("\8f\\95ª\82È\8fê\8f\8a\82ª\82È\82¢\82Ì\82Å%s\81D", verb);
         return FALSE;
     } else if (madeby == BY_OBJECT
                /* the block against existing traps is mainly to
@@ -240,7 +280,10 @@ dig(VOID_ARGS)
     register struct rm *lev;
     register xchar dpx = context.digging.pos.x, dpy = context.digging.pos.y;
     register boolean ispick = uwep && is_pick(uwep);
+/*JP
     const char *verb = (!uwep || is_pick(uwep)) ? "dig into" : "chop through";
+*/
+    const char *verb = (!uwep || is_pick(uwep)) ? "\8c@\82ê\82È\82¢" : "\8dÓ\82¯\82È\82¢";
 
     lev = &levl[dpx][dpy];
     /* perhaps a nymph stole your pick-axe while you were busy digging */
@@ -257,13 +300,21 @@ dig(VOID_ARGS)
     } else { /* !context.digging.down */
         if (IS_TREE(lev->typ) && !may_dig(dpx, dpy)
             && dig_typ(uwep, dpx, dpy) == DIGTYP_TREE) {
+/*JP
             pline("This tree seems to be petrified.");
+*/
+            pline("\82±\82Ì\96Ø\82Í\90Î\89»\82µ\82Ä\82¢\82é\82æ\82¤\82¾\81D");
             return 0;
         }
         if (IS_ROCK(lev->typ) && !may_dig(dpx, dpy)
             && dig_typ(uwep, dpx, dpy) == DIGTYP_ROCK) {
+#if 0 /*JP*/
             pline("This %s is too hard to %s.",
                   is_db_wall(dpx, dpy) ? "drawbridge" : "wall", verb);
+#else
+            pline("\82±\82Ì%s\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä%s\81D",
+                  is_db_wall(dpx, dpy) ? "\92µ\82Ë\8b´" : "\95Ç", verb);
+#endif
             return 0;
         }
     }
@@ -271,24 +322,43 @@ dig(VOID_ARGS)
         switch (rn2(3)) {
         case 0:
             if (!welded(uwep)) {
+/*JP
                 You("fumble and drop %s.", yname(uwep));
+*/
+                You("\8eè\82ª\8a\8a\82è%s\82ð\97\8e\82µ\82½\81D", yname(uwep));
                 dropx(uwep);
             } else {
                 if (u.usteed)
+#if 0 /*JP:T*/
                     pline("%s and %s %s!", Yobjnam2(uwep, "bounce"),
                           otense(uwep, "hit"), mon_nam(u.usteed));
+#else
+                    pline("%s\82Í\92µ\82Ë\82©\82¦\82è%s\82É\96½\92\86\82µ\82½\81I",
+                          xname(uwep), mon_nam(u.usteed));
+#endif
                 else
+#if 0 /*JP:T*/
                     pline("Ouch!  %s and %s you!", Yobjnam2(uwep, "bounce"),
                           otense(uwep, "hit"));
+#else
+                    pline("\82¢\82Ä\82Á\81I%s\82Í\92µ\82Ë\82©\82¦\82è\82 \82È\82½\82É\96½\92\86\82µ\82½\81I",
+                          xname(uwep));
+#endif
                 set_wounded_legs(RIGHT_SIDE, 5 + rnd(5));
             }
             break;
         case 1:
+/*JP
             pline("Bang!  You hit with the broad side of %s!",
+*/
+            pline("\83o\83\93\81I%s\82Ì\95¿\82Å\91Å\82Á\82Ä\82µ\82Ü\82Á\82½\81I",
                   the(xname(uwep)));
             break;
         default:
+/*JP
             Your("swing misses its mark.");
+*/
+            You("\91_\82¢\82ð\92è\82ß\82Ä\90U\82è\82¨\82ë\82µ\82½\82ª\82Í\82¸\82µ\82½\81D");
             break;
         }
         return 0;
@@ -365,7 +435,10 @@ dig(VOID_ARGS)
 
         if ((obj = sobj_at(STATUE, dpx, dpy)) != 0) {
             if (break_statue(obj))
+/*JP
                 digtxt = "The statue shatters.";
+*/
+                digtxt = "\92¤\91\9c\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D";
             else
                 /* it was a statue trap; break_statue()
                  * printed a message and updated the screen
@@ -380,7 +453,10 @@ dig(VOID_ARGS)
                 obj_extract_self(bobj);
                 place_object(bobj, dpx, dpy);
             }
+/*JP
             digtxt = "The boulder falls apart.";
+*/
+            digtxt = "\8aâ\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D";
         } else if (lev->typ == STONE || lev->typ == SCORR
                    || IS_TREE(lev->typ)) {
             if (Is_earthlevel(&u.uz)) {
@@ -394,18 +470,27 @@ dig(VOID_ARGS)
                 }
             }
             if (IS_TREE(lev->typ)) {
+/*JP
                 digtxt = "You cut down the tree.";
+*/
+                digtxt = "\96Ø\82ð\90Ø\82è\93|\82µ\82½\81D";
                 lev->typ = ROOM;
                 if (!rn2(5))
                     (void) rnd_treefruit_at(dpx, dpy);
             } else {
+/*JP
                 digtxt = "You succeed in cutting away some rock.";
+*/
+                digtxt = "\8aâ\82ð\8f­\82µ\90Ø\82è\82Æ\82Á\82½\81D";
                 lev->typ = CORR;
             }
         } else if (IS_WALL(lev->typ)) {
             if (shopedge) {
                 add_damage(dpx, dpy, 10L * ACURRSTR);
+/*JP
                 dmgtxt = "damage";
+*/
+                dmgtxt = "\8f\9d\82Â\82¯\82é";
             }
             if (level.flags.is_maze_lev) {
                 lev->typ = ROOM;
@@ -415,17 +500,29 @@ dig(VOID_ARGS)
                 lev->typ = DOOR;
                 lev->doormask = D_NODOOR;
             }
+/*JP
             digtxt = "You make an opening in the wall.";
+*/
+            digtxt = "\95Ç\82É\8c\8a\82ð\8bó\82¯\82½\81D";
         } else if (lev->typ == SDOOR) {
             cvt_sdoor_to_door(lev); /* ->typ = DOOR */
+/*JP
             digtxt = "You break through a secret door!";
+*/
+            digtxt = "\94é\96§\82Ì\94à\82ð\92Ê\82è\94²\82¯\82½\81I";
             if (!(lev->doormask & D_TRAPPED))
                 lev->doormask = D_BROKEN;
         } else if (closed_door(dpx, dpy)) {
+/*JP
             digtxt = "You break through the door.";
+*/
+            digtxt = "\94à\82ð\92Ê\82è\94²\82¯\82½\81D";
             if (shopedge) {
                 add_damage(dpx, dpy, 400L);
+/*JP
                 dmgtxt = "break";
+*/
+                dmgtxt = "\89ó\82·";
             }
             if (!(lev->doormask & D_TRAPPED))
                 lev->doormask = D_BROKEN;
@@ -453,11 +550,17 @@ dig(VOID_ARGS)
                 break;
             }
             if (mtmp)
+/*JP
                 pline_The("debris from your digging comes to life!");
+*/
+                pline("\8aâ\82Ì\94j\95Ð\82ª\90\96½\82ð\91Ñ\82Ñ\82½\81I");
         }
         if (IS_DOOR(lev->typ) && (lev->doormask & D_TRAPPED)) {
             lev->doormask = D_NODOOR;
+/*JP
             b_trapped("door", 0);
+*/
+            b_trapped("\94à", 0);
             newsym(dpx, dpy);
         }
     cleanup:
@@ -467,14 +570,24 @@ dig(VOID_ARGS)
         context.digging.level.dlevel = -1;
         return 0;
     } else { /* not enough effort has been spent yet */
+#if 0 /*JP:T*/
         static const char *const d_target[6] = { "",        "rock", "statue",
                                                  "boulder", "door", "tree" };
+#else
+        static const char *const d_target[6] = { "",   "\90Î", "\92¤\91\9c",
+                                                 "\8aâ", "\94à", "\96Ø" };
+#endif
         int dig_target = dig_typ(uwep, dpx, dpy);
 
         if (IS_WALL(lev->typ) || dig_target == DIGTYP_DOOR) {
             if (*in_rooms(dpx, dpy, SHOPBASE)) {
+#if 0 /*JP:T*/
                 pline("This %s seems too hard to %s.",
                       IS_DOOR(lev->typ) ? "door" : "wall", verb);
+#else
+                pline("\82±\82Ì%s\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä%s\81D",
+                      IS_DOOR(lev->typ) ? "\94à" : "\95Ç", verb);
+#endif
                 return 0;
             }
         } else if (dig_target == DIGTYP_UNDIGGABLE
@@ -482,7 +595,10 @@ dig(VOID_ARGS)
             return 0; /* statue or boulder got taken */
 
         if (!did_dig_msg) {
+/*JP
             You("hit the %s with all your might.", d_target[dig_target]);
+*/
+            You("%s\82ð\97Í\88ê\94t\91Å\82¿\82Â\82¯\82½\81D", d_target[dig_target]);
             did_dig_msg = TRUE;
         }
     }
@@ -586,7 +702,10 @@ int ttyp;
     /* maketrap() might change it, also, in this situation,
        surface() returns an inappropriate string for a grave */
     if (IS_GRAVE(lev->typ))
+/*JP
         Strcpy(surface_type, "grave");
+*/
+        Strcpy(surface_type, "\95æ");
     else
         Strcpy(surface_type, surface(x, y));
     shopdoor = IS_DOOR(lev->typ) && *in_rooms(x, y, SHOPBASE);
@@ -607,13 +726,25 @@ int ttyp;
             if (x != u.ux || y != u.uy)
                 You("dig an adjacent pit.");
             else
+/*JP
                 You("dig a pit in the %s.", surface_type);
+*/
+                You("%s\82É\97\8e\82µ\8c\8a\82ð\8c@\82Á\82½\81D", surface_type);
             if (shopdoor)
+/*JP
                 pay_for_damage("ruin", FALSE);
+*/
+                pay_for_damage("\89ó\82·", FALSE);
         } else if (!madeby_obj && canseemon(madeby))
+/*JP
             pline("%s digs a pit in the %s.", Monnam(madeby), surface_type);
+*/
+            pline("%s\82Í%s\82É\97\8e\82µ\8c\8a\82ð\8c@\82Á\82½\81D", Monnam(madeby), surface_type);
         else if (cansee(x, y) && flags.verbose)
+/*JP
             pline("A pit appears in the %s.", surface_type);
+*/
+            pline("\97\8e\82µ\8c\8a\82ª%s\82É\8c»\82í\82ê\82½\81D", surface_type);
 
         if (at_u) {
             if (!wont_fall) {
@@ -627,24 +758,43 @@ int ttyp;
         } else if (mtmp) {
             if (is_flyer(mtmp->data) || is_floater(mtmp->data)) {
                 if (canseemon(mtmp))
+#if 0 /*JP*/
                     pline("%s %s over the pit.", Monnam(mtmp),
                           (is_flyer(mtmp->data)) ? "flies" : "floats");
+#else
+                    pline("%s\82Í%s\97\8e\82µ\8c\8a\82ð\89z\82¦\82½\81D", Monnam(mtmp),
+                          (is_flyer(mtmp->data)) ? "\94ò\82ñ\82Å" : "\95\82\82¢\82Ä");
+#endif
             } else if (mtmp != madeby)
                 (void) mintrap(mtmp);
         }
     } else { /* was TRAPDOOR now a HOLE*/
 
         if (madeby_u)
+/*JP
             You("dig a hole through the %s.", surface_type);
+*/
+            You("%s\82É\8c\8a\82ð\8aJ\82¯\82½\81D", surface_type);
         else if (!madeby_obj && canseemon(madeby))
+#if 0 /*JP:T*/
             pline("%s digs a hole through the %s.", Monnam(madeby),
                   surface_type);
+#else
+            pline("%s\82Í%s\82É\8c\8a\82ð\8aJ\82¯\82½\81D", Monnam(madeby),
+                  surface_type);
+#endif
         else if (cansee(x, y) && flags.verbose)
+/*JP
             pline("A hole appears in the %s.", surface_type);
+*/
+            pline("%s\82É\8c\8a\82ª\8c»\82í\82ê\82½\81D", surface_type);
 
         if (at_u) {
             if (!u.ustuck && !wont_fall && !next_to_u()) {
+/*JP
                 You("are jerked back by your pet!");
+*/
+                You("\83y\83b\83g\82É\82æ\82Á\82Ä\88ø\82«\96ß\82³\82ê\82½\81I");
                 wont_fall = TRUE;
             }
 
@@ -658,7 +808,10 @@ int ttyp;
                 if (oldobjs != newobjs)
                     (void) pickup(1);
                 if (shopdoor && madeby_u)
+/*JP
                     pay_for_damage("ruin", FALSE);
+*/
+                    pay_for_damage("\82ß\82¿\82á\82ß\82¿\82á\82É\82·\82é", FALSE);
 
             } else {
                 d_level newlevel;
@@ -667,9 +820,15 @@ int ttyp;
                     shopdig(1); /* shk might snatch pack */
                 /* handle earlier damage, eg breaking wand of digging */
                 else if (!madeby_u)
+/*JP
                     pay_for_damage("dig into", TRUE);
+*/
+                    pay_for_damage("\8c\8a\82ð\82 \82¯\82é", TRUE);
 
+/*JP
                 You("fall through...");
+*/
+                You("\97\8e\82¿\82½\81D\81D\81D");
                 /* Earlier checks must ensure that the destination
                  * level exists and is in the present dungeon.
                  */
@@ -681,7 +840,10 @@ int ttyp;
             }
         } else {
             if (shopdoor && madeby_u)
+/*JP
                 pay_for_damage("ruin", FALSE);
+*/
+                pay_for_damage("\82ß\82¿\82á\82ß\82¿\82á\82É\82·\82é", FALSE);
             if (newobjs)
                 impact_drop((struct obj *) 0, x, y, 0);
             if (mtmp) {
@@ -701,7 +863,10 @@ int ttyp;
                         assign_level(&tolevel, &valley_level);
                     } else if (Is_botlevel(&u.uz)) {
                         if (canseemon(mtmp))
+/*JP
                             pline("%s avoids the trap.", Monnam(mtmp));
+*/
+                            pline("%s\82Íã©\82ð\94ð\82¯\82½\81D", Monnam(mtmp));
                         return;
                     } else {
                         get_level(&tolevel, depth(&u.uz) + 1);
@@ -735,7 +900,10 @@ const char *fillmsg;
     unearth_objs(x, y);
 
     if (fillmsg)
+/*JP
         pline(fillmsg, typ == LAVAPOOL ? "lava" : "water");
+*/
+        pline(fillmsg, typ == LAVAPOOL ? "\97n\8aâ" : "\90\85");
     if (u_spot && !(Levitation || Flying)) {
         if (typ == LAVAPOOL)
             (void) lava_effects();
@@ -775,12 +943,21 @@ coord *cc;
                   || ttmp->ttyp == VIBRATING_SQUARE || nohole))
         || (IS_ROCK(lev->typ) && lev->typ != SDOOR
             && (lev->wall_info & W_NONDIGGABLE) != 0)) {
+#if 0 /*JP:T*/
         pline_The("%s %shere is too hard to dig in.", surface(dig_x, dig_y),
                   (dig_x != u.ux || dig_y != u.uy) ? "t" : "");
+#else
+        pline("%s\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8c@\82ê\82È\82¢\81D", surface(dig_x, dig_y));
+#endif
 
     } else if (is_pool_or_lava(dig_x, dig_y)) {
+#if 0 /*JP:T*/
         pline_The("%s sloshes furiously for a moment, then subsides.",
                   is_lava(dig_x, dig_y) ? "lava" : "water");
+#else
+        pline("%s\82Í\8c\83\82µ\82­\94g\82¤\82Á\82½\81D",
+                  is_lava(dig_x, dig_y) ? "\97n\8aâ" : "\90\85");
+#endif
         wake_nearby(); /* splashing */
 
     } else if (lev->typ == DRAWBRIDGE_DOWN
@@ -789,7 +966,10 @@ coord *cc;
            bridge is extended; drawbridge_wall is the open "doorway" or
            closed "door" where the portcullis/mechanism is located */
         if (pit_only) {
+/*JP
             pline_The("drawbridge seems too hard to dig through.");
+*/
+            pline("\92µ\82Ë\8b´\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8c@\82ê\82»\82¤\82É\82È\82¢\81D");
             return FALSE;
         } else {
             int x = dig_x, y = dig_y;
@@ -802,15 +982,23 @@ coord *cc;
     } else if ((boulder_here = sobj_at(BOULDER, dig_x, dig_y)) != 0) {
         if (ttmp && (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT)
             && rn2(2)) {
+#if 0 /*JP*/
             pline_The("boulder settles into the %spit.",
                       (dig_x != u.ux || dig_y != u.uy) ? "adjacent " : "");
+#else
+            pline("\8aâ\82Í%s\97\8e\82µ\8c\8a\82ð\96\84\82ß\82½\81D",
+                      (dig_x != u.ux || dig_y != u.uy) ? "\97×\82Ì" : "");
+#endif
             ttmp->ttyp = PIT; /* crush spikes */
         } else {
             /*
              * digging makes a hole, but the boulder immediately
              * fills it.  Final outcome:  no hole, no boulder.
              */
+/*JP
             pline("KADOOM! The boulder falls in!");
+*/
+            pline("\82Ç\82Ç\81[\82ñ\81I\8aâ\82Í\97\8e\82¿\82½\81I");
             (void) delfloortrap(ttmp);
         }
         delobj(boulder_here);
@@ -830,32 +1018,52 @@ coord *cc;
              * We can't dig a hole here since that will destroy
              * the drawbridge.  The following is a cop-out. --dlc
              */
+#if 0 /*JP*/
             pline_The("%s %shere is too hard to dig in.",
                       surface(dig_x, dig_y),
                       (dig_x != u.ux || dig_y != u.uy) ? "t" : "");
+#else
+            pline("%s\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8c@\82ê\82È\82¢\81D", surface(dig_x, dig_y));
+#endif
             return FALSE;
         }
 
         lev->drawbridgemask &= ~DB_UNDER;
         lev->drawbridgemask |= (typ == LAVAPOOL) ? DB_LAVA : DB_MOAT;
+#if 0 /*JP:T*/
         liquid_flow(dig_x, dig_y, typ, ttmp,
                     "As you dig, the hole fills with %s!");
+#else
+        liquid_flow(dig_x, dig_y, typ, ttmp,
+                    "\82 \82È\82½\82ª\8c@\82é\82Æ\81C%s\82ª\97N\82¢\82Ä\82«\82½\81I");
+#endif
         return TRUE;
 
         /* the following two are here for the wand of digging */
     } else if (IS_THRONE(lev->typ)) {
+/*JP
         pline_The("throne is too hard to break apart.");
+*/
+        pline("\8bÊ\8dÀ\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8dÓ\82¯\82È\82¢\81D");
 
     } else if (IS_ALTAR(lev->typ)) {
+/*JP
         pline_The("altar is too hard to break apart.");
+*/
+        pline("\8dÕ\92d\82Í\82Æ\82Ä\82à\8cÅ\82­\82Ä\8dÓ\82¯\82È\82¢\81D");
 
     } else {
         typ = fillholetyp(dig_x, dig_y, FALSE);
 
         if (typ != ROOM) {
             lev->typ = typ;
+#if 0 /*JP*/
             liquid_flow(dig_x, dig_y, typ, ttmp,
                         "As you dig, the hole fills with %s!");
+#else
+            liquid_flow(dig_x, dig_y, typ, ttmp,
+                        "\82 \82È\82½\82ª\8c@\82é\82Æ\81C%s\82ª\97N\82¢\82Ä\82«\82½\81I");
+#endif
             return TRUE;
         }
 
@@ -901,38 +1109,65 @@ coord *cc;
     exercise(A_WIS, FALSE);
     if (Role_if(PM_ARCHEOLOGIST)) {
         adjalign(-sgn(u.ualign.type) * 3);
+/*JP
         You_feel("like a despicable grave-robber!");
+*/
+        pline("\82±\82ê\82Å\82Í\82Ü\82é\82Å\95æ\93D\96_\82¾\81I");
     } else if (Role_if(PM_SAMURAI)) {
         adjalign(-sgn(u.ualign.type));
+/*JP
         You("disturb the honorable dead!");
+*/
+        You("\96¼\97_\82 \82é\8e\80\8eÒ\82Ì\96°\82è\82ð\96W\82°\82¾\81I");
     } else if ((u.ualign.type == A_LAWFUL) && (u.ualign.record > -10)) {
         adjalign(-sgn(u.ualign.type));
+/*JP
         You("have violated the sanctity of this grave!");
+*/
+        You("\90¹\82È\82é\95æ\92n\82ð\94Æ\82µ\82½\81I");
     }
 
     switch (rn2(5)) {
     case 0:
     case 1:
+/*JP
         You("unearth a corpse.");
+*/
+        You("\8e\80\91Ì\82ð\8c@\82è\8bN\82µ\82½\81D");
         if (!!(otmp = mk_tt_object(CORPSE, dig_x, dig_y)))
             otmp->age -= 100; /* this is an *OLD* corpse */
         ;
         break;
     case 2:
         if (!Blind)
+/*JP
             pline(Hallucination ? "Dude!  The living dead!"
+*/
+            pline(Hallucination ? "\83]\83\93\83r\82ª\82­\82é\82è\82Æ\97Ö\82ð\95`\82¢\82½\81I"
+/*JP
                                 : "The grave's owner is very upset!");
+*/
+                                : "\95æ\82Ì\8f\8a\97L\8eÒ\82Í\82Æ\82Ä\82à\8bÁ\82¢\82½\81I");
         (void) makemon(mkclass(S_ZOMBIE, 0), dig_x, dig_y, NO_MM_FLAGS);
         break;
     case 3:
         if (!Blind)
+/*JP
             pline(Hallucination ? "I want my mummy!"
+*/
+            pline(Hallucination ? "\83}\83~\81[\82ª\95K\97v\82¾\81I"
+/*JP
                                 : "You've disturbed a tomb!");
+*/
+                                : "\95æ\82ð\8dr\82µ\82Ä\82µ\82Ü\82Á\82½\81I");
         (void) makemon(mkclass(S_MUMMY, 0), dig_x, dig_y, NO_MM_FLAGS);
         break;
     default:
         /* No corpse */
+/*JP
         pline_The("grave seems unused.  Strange....");
+*/
+        pline("\82±\82Ì\95æ\82Í\96¢\8eg\97p\82Ì\82æ\82¤\82¾\81D\8aï\96­\82¾\81D\81D\81D");
         break;
     }
     levl[dig_x][dig_y].typ = ROOM;
@@ -958,13 +1193,21 @@ struct obj *obj;
             res = 1;
     }
     ispick = is_pick(obj);
+/*JP
     verb = ispick ? "dig" : "chop";
+*/
+    verb = ispick ? "\8c@\82é" : "\8dÓ\82­";
 
     if (u.utrap && u.utraptype == TT_WEB) {
+#if 0 /*JP:T*/
         pline("%s you can't %s while entangled in a web.",
               /* res==0 => no prior message;
                  res==1 => just got "You now wield a pick-axe." message */
               !res ? "Unfortunately," : "But", verb);
+#else
+        pline("%s\82­\82à\82Ì\91\83\82É\82Ð\82Á\82©\82©\82Á\82Ä\82¢\82é\8aÔ\82Í%s\81D",
+              !res ? "\8ec\94O\82È\82ª\82ç" : "\82µ\82©\82µ", jconj(verb, "\82È\82¢"));
+#endif
         return res;
     }
 
@@ -997,7 +1240,10 @@ struct obj *obj;
         *dsp++ = *sdp;
     }
     *dsp = 0;
+/*JP
     Sprintf(qbuf, "In what direction do you want to %s? [%s]", verb, dirsyms);
+*/
+    Sprintf(qbuf, "\82Ç\82Ì\95û\8cü\82ð%s\81H[%s]", verb, dirsyms);
     if (!getdir(qbuf))
         return res;
 
@@ -1016,17 +1262,29 @@ struct obj *obj;
     struct trap *trap, *trap_with_u;
     int dig_target;
     boolean ispick = is_pick(obj);
+/*JP
     const char *verbing = ispick ? "digging" : "chopping";
+*/
+    const char *verbing = ispick ? "\8c@\82é" : "\8dÓ\82­";
 
     if (u.uswallow && attack(u.ustuck)) {
         ; /* return 1 */
     } else if (Underwater) {
+/*JP
         pline("Turbulence torpedoes your %s attempts.", verbing);
+*/
+        pline("%s\82Æ\82·\82é\82Æ\97\90\90\85\97¬\82ª\8bN\82«\82½\81D", jconj(verbing, "\82æ\82¤"));
     } else if (u.dz < 0) {
         if (Levitation)
+/*JP
             You("don't have enough leverage.");
+*/
+            You("\95\82\82¢\82Ä\82¢\82é\82Ì\82Å\82Ó\82ñ\82Î\82è\82ª\82«\82©\82È\82¢\81D");
         else
+/*JP
             You_cant("reach the %s.", ceiling(u.ux, u.uy));
+*/
+            You("%s\82É\93Í\82©\82È\82¢\81D", ceiling(u.ux,u.uy));
     } else if (!u.dx && !u.dy && !u.dz) {
         char buf[BUFSZ];
         int dam;
@@ -1034,8 +1292,14 @@ struct obj *obj;
         dam = rnd(2) + dbon() + obj->spe;
         if (dam <= 0)
             dam = 1;
+/*JP
         You("hit yourself with %s.", yname(uwep));
+*/
+        You("\8e©\95ª\8e©\90g\82ð%s\82Å\92@\82¢\82½\81D", yname(uwep));
+/*JP
         Sprintf(buf, "%s own %s", uhis(), OBJ_NAME(objects[obj->otyp]));
+*/
+        Sprintf(buf, "\8e©\95ª\8e©\90g\82ð%s\82Å\92@\82¢\82Ä", yname(uwep));
         losehp(Maybe_Half_Phys(dam), buf, KILLED_BY);
         context.botl = 1;
         return 1;
@@ -1045,7 +1309,10 @@ struct obj *obj;
         rx = u.ux + u.dx;
         ry = u.uy + u.dy;
         if (!isok(rx, ry)) {
+/*JP
             pline("Clash!");
+*/
+            pline("\83K\83\89\83K\83\89\81I");
             return 1;
         }
         lev = &levl[rx][ry];
@@ -1058,29 +1325,56 @@ struct obj *obj;
             if (trap && trap->ttyp == WEB) {
                 if (!trap->tseen) {
                     seetrap(trap);
+/*JP
                     There("is a spider web there!");
+*/
+                    pline("\82»\82±\82É\82Í\82­\82à\82Ì\91\83\82ª\82 \82é\81I");
                 }
+/*JP
                 pline("%s entangled in the web.", Yobjnam2(obj, "become"));
+*/
+                Your("%s\82Í\82­\82à\82Ì\91\83\82É\82©\82ç\82Ü\82Á\82½\81D", xname(obj));
                 /* you ought to be able to let go; tough luck */
                 /* (maybe `move_into_trap()' would be better) */
                 nomul(-d(2, 2));
                 multi_reason = "stuck in a spider web";
+/*JP
                 nomovemsg = "You pull free.";
+*/
+                nomovemsg = "\82Ð\82«\82Í\82È\82µ\82½\81D";
             } else if (lev->typ == IRONBARS) {
+/*JP
                 pline("Clang!");
+*/
+                pline("\83K\83c\83\93\81I");
                 wake_nearby();
             } else if (IS_TREE(lev->typ))
+/*JP
                 You("need an axe to cut down a tree.");
+*/
+                You("\96Ø\82ð\90Ø\82é\82É\82Í\95\80\82ª\95K\97v\82¾\81D");
             else if (IS_ROCK(lev->typ))
+/*JP
                 You("need a pick to dig rock.");
+*/
+                You("\8c@\82é\82É\82Í\82Â\82é\82Í\82µ\82ª\95K\97v\82¾\81D");
             else if (!ispick && (sobj_at(STATUE, rx, ry)
                                  || sobj_at(BOULDER, rx, ry))) {
                 boolean vibrate = !rn2(3);
+#if 0 /*JP:T*/
                 pline("Sparks fly as you whack the %s.%s",
                       sobj_at(STATUE, rx, ry) ? "statue" : "boulder",
                       vibrate ? " The axe-handle vibrates violently!" : "");
+#else
+                pline("%s\82ð\90Ø\82ë\82¤\82Æ\82µ\82½\82ç\89Î\89Ô\82ª\8eU\82Á\82½\81I%s",
+                      sobj_at(STATUE, rx, ry) ? "\92¤\91\9c" : "\8aâ",
+                      vibrate ? "\95\80\82Í\8c\83\82µ\82­\90U\93®\82µ\82½\81I" : "");
+#endif
                 if (vibrate)
+/*JP
                     losehp(Maybe_Half_Phys(2), "axing a hard object",
+*/
+                    losehp(Maybe_Half_Phys(2), "\8cÅ\82¢\82à\82Ì\82É\95\80\82ð\8eg\82¨\82¤\82Æ\82µ\82Ä",
                            KILLED_BY);
             } else if (u.utrap && u.utraptype == TT_PIT && trap
                        && (trap_with_u = t_at(u.ux, u.uy))
@@ -1105,11 +1399,30 @@ struct obj *obj;
             } else
                 You("swing %s through thin air.", yobjnam(obj, (char *) 0));
         } else {
+#if 0 /*JP*/
             static const char *const d_action[6] = { "swinging", "digging",
                                                      "chipping the statue",
                                                      "hitting the boulder",
                                                      "chopping at the door",
                                                      "cutting the tree" };
+#else
+            static const char * const d_action1[6] = {
+                "\90U\82è",
+                "\8c@\82è",
+                "\92¤\91\9c\82ð\8dí\82è",
+                "\8aâ\82ð\91Å\82¿\82Â\82¯",
+                "\94à\82ð\8dí\82è",
+                "\96Ø\82ð\90Ø\82è"
+              };
+            static const char * const d_action2[6] = {
+                "\90U\82é",
+                "\8c@\82é",
+                "\92¤\91\9c\82ð\8dí\82é",
+                "\8aâ\82ð\91Å\82¿\82Â\82¯\82é",
+                "\94à\82ð\8dí\82é",
+                "\96Ø\82ð\90Ø\82é"
+              };
+#endif
             did_dig_msg = FALSE;
             context.digging.quiet = FALSE;
             if (context.digging.pos.x != rx || context.digging.pos.y != ry
@@ -1131,23 +1444,39 @@ struct obj *obj;
                 assign_level(&context.digging.level, &u.uz);
                 context.digging.effort = 0;
                 if (!context.digging.quiet)
+/*JP
                     You("start %s.", d_action[dig_target]);
+*/
+                    You("%s\82Í\82\82ß\82½\81D", d_action1[dig_target]);
             } else {
+#if 0 /*JP*/
                 You("%s %s.", context.digging.chew ? "begin" : "continue",
                     d_action[dig_target]);
+#else
+                You("%s\82Ì\82ð%s\82µ\82½\81D", d_action2[dig_target],
+                    context.digging.chew ? "\8aJ\8en" : "\8dÄ\8aJ");
+#endif
                 context.digging.chew = FALSE;
             }
             set_occupation(dig, verbing, 0);
         }
     } else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) {
         /* it must be air -- water checked above */
+/*JP
         You("swing %s through thin air.", yobjnam(obj, (char *) 0));
+*/
+        You("\89½\82à\82È\82¢\8bó\8aÔ\82Å%s\82ð\90U\82è\82Ü\82í\82µ\82½\81D", xname(obj));
     } else if (!can_reach_floor(FALSE)) {
         cant_reach_floor(u.ux, u.uy, FALSE, FALSE);
     } else if (is_pool_or_lava(u.ux, u.uy)) {
         /* Monsters which swim also happen not to be able to dig */
+#if 0 /*JP:T*/
         You("cannot stay under%s long enough.",
             is_pool(u.ux, u.uy) ? "water" : " the lava");
+#else
+        You("%s\82É\82Í\92·\8e\9e\8aÔ\82¢\82ç\82ê\82È\82¢\81D",
+            is_pool(u.ux, u.uy) ? "\90\85\96Ê\89º" : "\97n\8aâ\82Ì\92\86");
+#endif
     } else if ((trap = t_at(u.ux, u.uy)) != 0
                && uteetering_at_seen_pit(trap)) {
         dotrap(trap, FORCEBUNGLE);
@@ -1159,8 +1488,13 @@ struct obj *obj;
                   trigger or disarm a trap here */
                && (!trap || (trap->ttyp != LANDMINE
                              && trap->ttyp != BEAR_TRAP))) {
+#if 0 /*JP:T*/
         pline("%s merely scratches the %s.", Yobjnam2(obj, (char *) 0),
               surface(u.ux, u.uy));
+#else
+        Your("%s\82Í%s\82É\82©\82·\82è\8f\9d\82ð\82Â\82¯\82½\82¾\82¯\82¾\82Á\82½\81D", aobjnam(obj, (char *)0),
+              surface(u.ux,u.uy));
+#endif
         u_wipe_engr(3);
     } else {
         if (context.digging.pos.x != u.ux || context.digging.pos.y != u.uy
@@ -1173,11 +1507,17 @@ struct obj *obj;
             context.digging.pos.y = u.uy;
             assign_level(&context.digging.level, &u.uz);
             context.digging.effort = 0;
+/*JP
             You("start %s downward.", verbing);
+*/
+            You("\89º\8cü\82«\82É\8c@\82è\82Í\82\82ß\82½\81D");
             if (*u.ushops)
                 shopdig(0);
         } else
+/*JP
             You("continue %s downward.", verbing);
+*/
+            You("\89º\8cü\82«\82É\8c@\82é\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D");
         did_dig_msg = FALSE;
         set_occupation(dig, verbing, 0);
     }
@@ -1213,20 +1553,38 @@ boolean zap;
 
         if (mtmp) {
             if (zap || context.digging.warned) {
+/*JP
                 verbalize("Halt, vandal!  You're under arrest!");
+*/
+                verbalize("\8e~\82Ü\82ê\96ì\94Ø\90l\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
                 (void) angry_guards(!!Deaf);
             } else {
                 const char *str;
 
                 if (IS_DOOR(lev->typ))
+/*JP
                     str = "door";
+*/
+                    str = "\94à";
                 else if (IS_TREE(lev->typ))
+/*JP
                     str = "tree";
+*/
+                    str = "\96Ø";
                 else if (IS_ROCK(lev->typ))
+/*JP
                     str = "wall";
+*/
+                    str = "\95Ç";
                 else
+/*JP
                     str = "fountain";
+*/
+                    str = "\90ò";
+/*JP
                 verbalize("Hey, stop damaging that %s!", str);
+*/
+                verbalize("\82¨\82¢\81C%s\82ð\94j\89ó\82·\82é\82Ì\82ð\82â\82ß\82ë\81I", str);
                 context.digging.warned = TRUE;
             }
             if (is_digging())
@@ -1286,7 +1644,10 @@ register struct monst *mtmp;
     if (IS_WALL(here->typ)) {
         /* KMH -- Okay on arboreal levels (room walls are still stone) */
         if (flags.verbose && !rn2(5))
+/*JP
             You_hear("crashing rock.");
+*/
+            You_hear("\8aâ\82Ì\82­\82¾\82¯\82é\89¹\82ð\95·\82¢\82½\81D");
         if (*in_rooms(mtmp->mx, mtmp->my, SHOPBASE))
             add_damage(mtmp->mx, mtmp->my, 0L);
         if (level.flags.is_maze_lev) {
@@ -1332,7 +1693,10 @@ boolean unexpected;
 
     if (unexpected) {
         if (!Hallucination)
+/*JP
             You_feel("an unexpected draft.");
+*/
+            You("\8ev\82¢\82à\82æ\82ç\82¸\81C\82·\82«\82Ü\95\97\82ð\8a´\82\82½\81D");
         else
             /* U.S. classification system uses 1-A for eligible to serve
                and 4-F for ineligible due to physical or mental defect;
@@ -1389,8 +1753,13 @@ zap_dig()
 
         if (!is_whirly(mtmp->data)) {
             if (is_animal(mtmp->data))
+#if 0 /*JP*/
                 You("pierce %s %s wall!", s_suffix(mon_nam(mtmp)),
                     mbodypart(mtmp, STOMACH));
+#else
+                You("%s\82Ì%s\82Ì\95Ç\82É\8c\8a\82ð\8aJ\82¯\82½\81I", s_suffix(mon_nam(mtmp)),
+                    mbodypart(mtmp, STOMACH));
+#endif
             mtmp->mhp = 1; /* almost dead */
             expels(mtmp, mtmp->data, !is_animal(mtmp->data));
         }
@@ -1402,15 +1771,32 @@ zap_dig()
             if (u.dz < 0 || On_stairs(u.ux, u.uy)) {
                 int dmg;
                 if (On_stairs(u.ux, u.uy))
+#if 0 /*JP*/
                     pline_The("beam bounces off the %s and hits the %s.",
                               (u.ux == xdnladder || u.ux == xupladder)
                                   ? "ladder"
                                   : "stairs",
                               ceiling(u.ux, u.uy));
+#else
+                    pline("\8cõ\90ü\82Í%s\82Å\94½\8eË\82µ%s\82É\96½\92\86\82µ\82½\81D",
+                              (u.ux == xdnladder || u.ux == xupladder)
+                                  ? "\82Í\82µ\82²"
+                                  : "\8aK\92i",
+                              ceiling(u.ux, u.uy));
+#endif
+/*JP
                 You("loosen a rock from the %s.", ceiling(u.ux, u.uy));
+*/
+                pline("%s\82Ì\8aâ\82ª\83K\83^\83K\83^\82µ\82Í\82\82ß\82½\81D", ceiling(u.ux, u.uy));
+/*JP
                 pline("It falls on your %s!", body_part(HEAD));
+*/
+                pline("\82»\82ê\82Í\82 \82È\82½\82Ì%s\82É\97\8e\82¿\82Ä\82«\82½\81I", body_part(HEAD));
                 dmg = rnd((uarmh && is_metallic(uarmh)) ? 2 : 6);
+/*JP
                 losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN);
+*/
+                losehp(Maybe_Half_Phys(dmg), "\97\8e\8aâ\82Å", KILLED_BY_AN);
                 otmp = mksobj_at(ROCK, u.ux, u.uy, FALSE, FALSE);
                 if (otmp) {
                     (void) xname(otmp); /* set dknown, maybe bknown */
@@ -1491,7 +1877,10 @@ zap_dig()
             if (room->typ == SDOOR)
                 room->typ = DOOR;
             else if (cansee(zx, zy))
+/*JP
                 pline_The("door is razed!");
+*/
+                pline("\94à\82Í\95ö\82ê\97\8e\82¿\82½\81I");
             watch_dig((struct monst *) 0, zx, zy, TRUE);
             room->doormask = D_NODOOR;
             unblock_point(zx, zy); /* vision */
@@ -1508,21 +1897,30 @@ zap_dig()
                     room->typ = ROOM;
                     unblock_point(zx, zy); /* vision */
                 } else if (!Blind)
+/*JP
                     pline_The("wall glows then fades.");
+*/
+                    pline("\95Ç\82Í\88ê\8fu\8bP\82¢\82½\81D");
                 break;
             } else if (IS_TREE(room->typ)) { /* check trees before stone */
                 if (!(room->wall_info & W_NONDIGGABLE)) {
                     room->typ = ROOM;
                     unblock_point(zx, zy); /* vision */
                 } else if (!Blind)
+/*JP
                     pline_The("tree shudders but is unharmed.");
+*/
+                    pline("\96Ø\82Í\82ä\82ê\82½\82ª\8f\9d\82Â\82©\82È\82©\82Á\82½\81D");
                 break;
             } else if (room->typ == STONE || room->typ == SCORR) {
                 if (!(room->wall_info & W_NONDIGGABLE)) {
                     room->typ = CORR;
                     unblock_point(zx, zy); /* vision */
                 } else if (!Blind)
+/*JP
                     pline_The("rock glows then fades.");
+*/
+                    pline("\90Î\82Í\88ê\8fu\8bP\82¢\82½\81D");
                 break;
             }
         } else if (IS_ROCK(room->typ)) {
@@ -1565,7 +1963,10 @@ zap_dig()
     }
 
     if (shopdoor || shopwall)
+/*JP
         pay_for_damage(shopdoor ? "destroy" : "dig into", FALSE);
+*/
+        pay_for_damage(shopdoor ? "\94j\89ó\82·\82é" : "\8c\8a\82ð\82 \82¯\82é", FALSE);
     return;
 }
 
@@ -1955,8 +2356,14 @@ long timeout;
         if (flags.verbose) {
             char *cname = corpse_xname(obj, (const char *) 0, CXN_NO_PFX);
 
+#if 0 /*JP:T*/
             Your("%s%s %s away%c", obj == uwep ? "wielded " : "", cname,
                  otense(obj, "rot"), obj == uwep ? '!' : '.');
+#else
+            pline("\82 \82È\82½\82Ì%s%s\82Í\95\85\82Á\82Ä\82µ\82Ü\82Á\82½%s",
+                     obj == uwep ? "\8eè\82É\82µ\82Ä\82¢\82é" : "", cname,
+                     obj == uwep ? "\81I" : "\81D");
+#endif
         }
         if (obj == uwep) {
             uwepgone(); /* now bare handed */
@@ -2018,9 +2425,15 @@ bury_you()
     debugpline0("bury_you");
     if (!Levitation && !Flying) {
         if (u.uswallow)
+/*JP
             You_feel("a sensation like falling into a trap!");
+*/
+            You("ã©\82É\97\8e\82¿\82é\82æ\82¤\82È\8a´\8ao\82É\82¨\82»\82í\82ê\82½\81I");
         else
+/*JP
             pline_The("%s opens beneath you and you fall in!",
+*/
+            pline("%s\82ª\89º\95û\82É\8aJ\82«\81C\82 \82È\82½\82Í\97\8e\82¿\82½\81I",
                       surface(u.ux, u.uy));
 
         u.uburied = TRUE;
@@ -2047,7 +2460,10 @@ escape_tomb()
     debugpline0("escape_tomb");
     if ((Teleportation || can_teleport(youmonst.data))
         && (Teleport_control || rn2(3) < Luck+2)) {
+/*JP
         You("attempt a teleport spell.");
+*/
+        You("\8fu\8aÔ\88Ú\93®\82ð\8e\8e\82Ý\82½\81D");
         (void) dotele();        /* calls unearth_you() */
     } else if (u.uburied) { /* still buried after 'port attempt */
         boolean good;
@@ -2057,6 +2473,7 @@ escape_tomb()
             || (unsolid(youmonst.data)
                 && youmonst.data != &mons[PM_WATER_ELEMENTAL])
             || (tunnels(youmonst.data) && !needspick(youmonst.data))) {
+#if 0 /*JP*/
             You("%s up through the %s.",
                 (tunnels(youmonst.data) && !needspick(youmonst.data))
                    ? "try to tunnel"
@@ -2064,6 +2481,15 @@ escape_tomb()
                       ? "ooze"
                       : "phase",
                 surface(u.ux, u.uy));
+#else
+            You("%s\82É%s\82ë\82¤\82Æ\82µ\82½\81D",
+                surface(u.ux, u.uy),
+                (tunnels(youmonst.data) && !needspick(youmonst.data))
+                ? "\83g\83\93\83l\83\8b\82ð\8c@"
+                : (amorphous(youmonst.data))
+                   ? "\82É\82\82Ý\82Ì\82Ú"
+                   : "\8f\99\81X\82É\82Í\82¢\82 \82ª");
+#endif
 
             good = (tunnels(youmonst.data) && !needspick(youmonst.data))
                       ? dighole(TRUE, FALSE, (coord *)0) : TRUE;
@@ -2079,7 +2505,10 @@ struct obj *otmp;
 {
     debugpline0("bury_obj");
     if (cansee(otmp->ox, otmp->oy))
+/*JP
         pline_The("objects on the %s tumble into a hole!",
+*/
+        pline_The("%s\82Ì\95¨\91Ì\82Í\8c\8a\82É\93]\82ª\82Á\82½\81I",
                   surface(otmp->ox, otmp->oy));
 
     bury_objs(otmp->ox, otmp->oy);
index 2081016..401a997 100644 (file)
--- a/src/do.c
+++ b/src/do.c
@@ -4,6 +4,11 @@
 
 /* Contains code for 'd', 'D' (drop), '>', '<' (up, down) */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h"
 
@@ -75,24 +80,44 @@ boolean pushing;
             if (pushing) {
                 char whobuf[BUFSZ];
 
+/*JP
                 Strcpy(whobuf, "you");
+*/
+                Strcpy(whobuf, "\82 \82È\82½");
                 if (u.usteed)
                     Strcpy(whobuf, y_monnam(u.usteed));
+#if 0 /*JP*/
                 pline("%s %s %s into the %s.", upstart(whobuf),
                       vtense(whobuf, "push"), the(xname(otmp)), what);
+#else
+                pline("%s\82Í%s\82ð%s\82Ì\92\86\82Ö\89\9f\82µ\82±\82ñ\82¾\81D", whobuf,
+                      xname(otmp), what);
+#endif
                 if (flags.verbose && !Blind)
+/*JP
                     pline("Now you can cross it!");
+*/
+                    pline("\82³\82\9f\93n\82ê\82é\82¼\81I");
                 /* no splashing in this case */
             }
         }
         if (!fills_up || !pushing) { /* splashing occurs */
             if (!u.uinwater) {
                 if (pushing ? !Blind : cansee(rx, ry)) {
+#if 0 /*JP*/
                     There("is a large splash as %s %s the %s.",
                           the(xname(otmp)), fills_up ? "fills" : "falls into",
                           what);
+#else
+                    pline("%s\82ð%s\82É%s\82Æ\91å\82«\82È\82µ\82Ô\82«\82ª\82 \82ª\82Á\82½\81D",
+                          xname(otmp), what,
+                          fills_up ? "\96\84\82ß\8d\9e\82Þ" : "\97\8e\82·" );
+#endif
                 } else if (!Deaf)
+/*JP
                     You_hear("a%s splash.", lava ? " sizzling" : "");
+*/
+                    You_hear("%s\82Æ\8c¾\82¤\89¹\82ð\95·\82¢\82½\81D",lava ? "\83V\83\85\81[\83b" : "\83p\83V\83\83\83b");
                 wake_nearto(rx, ry, 40);
             }
 
@@ -100,17 +125,31 @@ boolean pushing;
                 u.uinwater = 0;
                 docrt();
                 vision_full_recalc = 1;
+/*JP
                 You("find yourself on dry land again!");
+*/
+                You("\82¢\82Â\82Ì\82Ü\82É\82©\8a£\82¢\82½\8fê\8f\8a\82É\82¢\82½\81I");
             } else if (lava && distu(rx, ry) <= 2) {
                 int dmg;
+/*JP
                 You("are hit by molten lava%c", Fire_resistance ? '.' : '!');
+*/
+                You("\82Ç\82ë\82Ç\82ë\82Ì\97n\8aâ\82Å\83_\83\81\81[\83W\82ð\8eó\82¯\82½%s", Fire_resistance ? "\81D" : "\81I");
                 burn_away_slime();
                 dmg = d((Fire_resistance ? 1 : 3), 6);
+#if 0 /*JP:T*/
                 losehp(Maybe_Half_Phys(dmg), /* lava damage */
                        "molten lava", KILLED_BY);
+#else
+                losehp(Maybe_Half_Phys(dmg), /* lava damage */
+                       "\82Ç\82ë\82Ç\82ë\82Ì\97n\8aâ\82Å", KILLED_BY);
+#endif
             } else if (!fills_up && flags.verbose
                        && (pushing ? !Blind : cansee(rx, ry)))
+/*JP
                 pline("It sinks without a trace!");
+*/
+                pline("\82»\82ê\82Í\82 \82Æ\82©\82½\82à\82È\82­\92¾\82ñ\82¾\81I");
         }
 
         /* boulder is now gone */
@@ -133,6 +172,9 @@ struct obj *obj;
 int x, y;
 const char *verb;
 {
+#if 1 /*JP*//* trap.c */
+        extern const char *set_you[2];
+#endif
     struct trap *t;
     struct monst *mtmp;
     struct obj *otmp;
@@ -151,9 +193,15 @@ const char *verb;
         if (((mtmp = m_at(x, y)) && mtmp->mtrapped)
             || (u.utrap && u.ux == x && u.uy == y)) {
             if (*verb)
+#if 0 /*JP*/
                 pline_The("boulder %s into the pit%s.",
                           vtense((const char *) 0, verb),
                           (mtmp) ? "" : " with you");
+#else
+                pline("\8aâ\82Í%s\97\8e\82µ\8c\8a\82Ö%s\81D",
+                      (mtmp) ? "" : "\82 \82È\82½\82Æ\82¢\82Á\82µ\82å\82É",
+                      jpast(verb));
+#endif
             if (mtmp) {
                 if (!passes_walls(mtmp->data) && !throws_rocks(mtmp->data)) {
                     if (hmon(mtmp, obj, TRUE) && !is_whirly(mtmp->data))
@@ -162,8 +210,13 @@ const char *verb;
                 mtmp->mtrapped = 0;
             } else {
                 if (!Passes_walls && !throws_rocks(youmonst.data)) {
+#if 0 /*JP*/
                     losehp(Maybe_Half_Phys(rnd(15)),
                            "squished under a boulder", NO_KILLER_PREFIX);
+#else
+                    losehp(Maybe_Half_Phys(rnd(15)),
+                           "\8aâ\82Ì\89º\82Å\92×\82³\82ê\82Ä", KILLED_BY);
+#endif
                     return FALSE; /* player remains trapped */
                 } else
                     u.utrap = 0;
@@ -171,15 +224,28 @@ const char *verb;
         }
         if (*verb) {
             if (Blind && (x == u.ux) && (y == u.uy)) {
+/*JP
                 You_hear("a CRASH! beneath you.");
+*/
+                You_hear("\91«\8c³\82Å\89½\82©\82ª\8dÓ\82¯\82é\89¹\82ð\95·\82¢\82½\81D");
             } else if (!Blind && cansee(x, y)) {
+#if 0 /*JP*/
                 pline_The("boulder %s%s.", t->tseen ? "" : "triggers and ",
                           t->ttyp == TRAPDOOR
                               ? "plugs a trap door"
                               : t->ttyp == HOLE ? "plugs a hole"
                                                 : "fills a pit");
+#else
+                pline_The("\8aâ\82Í%s%s\81D", t->tseen ? "" : "ã©\82ð\8bN\93®\82µ\82Ä\81C",
+                          t->ttyp == TRAPDOOR ? "\97\8e\82µ\94à\82ð\96\84\82ß\82½" :
+                          t->ttyp == HOLE ? "\8c\8a\82ð\96\84\82ß\82½" :
+                          "\97\8e\82µ\8c\8a\82ð\96\84\82ß\82½");
+#endif
             } else {
+/*JP
                 You_hear("a boulder %s.", verb);
+*/
+                You_hear("\8aâ\82ª%s\89¹\82ð\95·\82¢\82½\81D", verb);
             }
         }
         deltrap(t);
@@ -197,9 +263,15 @@ const char *verb;
             && ((x == u.ux) && (y == u.uy))) {
             if (!Underwater) {
                 if (weight(obj) > 9) {
+/*JP
                     pline("Splash!");
+*/
+                    pline("\83o\83V\83\83\83b\81I");
                 } else if (Levitation || Flying) {
+/*JP
                     pline("Plop!");
+*/
+                    pline("\83|\83`\83\83\83\93\81I");
                 }
             }
             map_background(x, y, 0);
@@ -209,10 +281,18 @@ const char *verb;
     } else if (u.ux == x && u.uy == y && (t = t_at(x, y)) != 0
                && uteetering_at_seen_pit(t)) {
         if (Blind && !Deaf)
+/*JP
             You_hear("%s tumble downwards.", the(xname(obj)));
+*/
+            You_hear("%s\82ª\89º\82Ì\95û\82Ö\93]\82ª\82Á\82Ä\82¢\82­\89¹\82ð\95·\82¢\82½\81D", xname(obj));
         else
+#if 0 /*JP*/
             pline("%s %s into %s pit.", The(xname(obj)),
                   otense(obj, "tumble"), the_your[t->madeby_u]);
+#else
+            pline("%s\82Í%s\97\8e\82Æ\82µ\8c\8a\82É\93]\82ª\82è\82¨\82¿\82½\81D", xname(obj),
+                  set_you[t->madeby_u]);
+#endif
     } else if (obj->globby) {
         /* Globby things like puddings might stick together */
         while (obj
@@ -245,13 +325,22 @@ register struct obj *obj;
     }
 
     if (obj->blessed || obj->cursed) {
+#if 0 /*JP*/
         There("is %s flash as %s %s the altar.",
               an(hcolor(obj->blessed ? NH_AMBER : NH_BLACK)), doname(obj),
               otense(obj, "hit"));
+#else
+        pline("%s\82ª\8dÕ\92d\82É\90G\82ê\82é\82Æ%s\8cõ\82Á\82½\81D",
+              doname(obj),
+              jconj_adj(hcolor(obj->blessed ? NH_AMBER : NH_BLACK)));
+#endif
         if (!Hallucination)
             obj->bknown = 1;
     } else {
+/*JP
         pline("%s %s on the altar.", Doname2(obj), otense(obj, "land"));
+*/
+        pline("%s\82ð\8dÕ\92d\82Ì\8fã\82É\92u\82¢\82½\81D", Doname2(obj));
         if (obj->oclass != COIN_CLASS)
             obj->bknown = 1;
     }
@@ -340,53 +429,102 @@ register struct obj *obj;
     boolean ideed = TRUE;
     boolean nosink = FALSE;
 
+/*JP
     You("drop %s down the drain.", doname(obj));
+*/
+    You("%s\82ð\94r\90\85\8cû\82É\97\8e\82µ\82½\81D", doname(obj));
     obj->in_use = TRUE;  /* block free identification via interrupt */
     switch (obj->otyp) { /* effects that can be noticed without eyes */
     case RIN_SEARCHING:
+/*JP
         You("thought %s got lost in the sink, but there it is!", yname(obj));
+*/
+        You("%s\82ð\8e¸\82Á\82½\8bC\82ª\82µ\82½\82ª\81C\8bC\82Ì\82¹\82¢\82¾\82Á\82½\81I", yname(obj));
         goto giveback;
     case RIN_SLOW_DIGESTION:
+/*JP
         pline_The("ring is regurgitated!");
+*/
+        pline("\8ew\97Ö\82Í\8bt\97¬\82µ\82½\81I");
     giveback:
         obj->in_use = FALSE;
         dropx(obj);
         trycall(obj);
         return;
     case RIN_LEVITATION:
+/*JP
         pline_The("sink quivers upward for a moment.");
+*/
+        pline("\97¬\82µ\91ä\82Í\88ê\8fu\81C\8fã\89º\82É\90k\82¦\82½\81D");
         break;
     case RIN_POISON_RESISTANCE:
+/*JP
         You("smell rotten %s.", makeplural(fruitname(FALSE)));
+*/
+        pline("\95\85\82Á\82½%s\82Ì\82æ\82¤\82È\93õ\82¢\82ª\82µ\82½\81D", fruitname(FALSE));
         break;
     case RIN_AGGRAVATE_MONSTER:
+#if 0 /*JP:T*/
         pline("Several %s buzz angrily around the sink.",
               Hallucination ? makeplural(rndmonnam(NULL)) : "flies");
+#else
+        pline("\90\94\95C\82Ì%s\82ª\83u\83\93\83u\83\93\97¬\82µ\91ä\82Ì\89ñ\82è\82ð\94ò\82Ñ\82Ü\82í\82Á\82½\81D",
+              Hallucination ? rndmonnam(NULL) : "\83n\83G");
+#endif
         break;
     case RIN_SHOCK_RESISTANCE:
+/*JP
         pline("Static electricity surrounds the sink.");
+*/
+        pline("\97¬\82µ\91ä\82ª\83s\83\8a\83s\83\8a\82µ\82Í\82\82ß\82½\81D");
         break;
     case RIN_CONFLICT:
+/*JP
         You_hear("loud noises coming from the drain.");
+*/
+        You_hear("\94r\90\85\8cû\82©\82ç\82Ì\91å\82«\82È\89¹\82ð\95·\82¢\82½\81D");
         break;
     case RIN_SUSTAIN_ABILITY: /* KMH */
+/*JP
         pline_The("water flow seems fixed.");
+*/
+        pline("\90\85\82Ì\97¬\82ê\82ª\88ê\92è\82É\82È\82Á\82½\82æ\82¤\82¾\81D");
         break;
     case RIN_GAIN_STRENGTH:
+#if 0 /*JP*/
         pline_The("water flow seems %ser now.",
                   (obj->spe < 0) ? "weak" : "strong");
+#else
+        pline("\90\85\82Ì\97¬\82ê\82ª%s\82È\82Á\82½\82æ\82¤\82¾\81D",
+              (obj->spe<0) ? "\8eã\82­" : "\8b­\82­");
+#endif
         break;
     case RIN_GAIN_CONSTITUTION:
+#if 0 /*JP*/
         pline_The("water flow seems %ser now.",
                   (obj->spe < 0) ? "less" : "great");
+#else
+        pline("\97¬\82ê\82é\90\85\82Ì\97Ê\82ª%s\82È\82Á\82½\82æ\82¤\82¾\81D",
+              (obj->spe < 0) ? "\8f­\82È\82­" : "\91½\82­");
+#endif
         break;
     case RIN_INCREASE_ACCURACY: /* KMH */
+#if 0 /*JP*/
         pline_The("water flow %s the drain.",
                   (obj->spe < 0) ? "misses" : "hits");
+#else
+        pline_The("\90\85\82ª\94r\90\85\8cû%s\82æ\82¤\82É\82È\82Á\82½\81D",
+                  (obj->spe < 0) ? "\82©\82ç\94½\82ê\82é" : "\82ß\82ª\82¯\82Ä\97¬\82ê\82é");
+#endif
         break;
     case RIN_INCREASE_DAMAGE:
+#if 0 /*JP*/
         pline_The("water's force seems %ser now.",
                   (obj->spe < 0) ? "small" : "great");
+#else
+        pline_The("\90\85\82Ì\90¨\82¢\82ª%s\82È\82Á\82½\82æ\82¤\82¾\81D",
+                  (obj->spe < 0) ? "\8eã\82­" : "\8b­\82­");
+#endif
         break;
     case RIN_HUNGER:
         ideed = FALSE;
@@ -395,8 +533,12 @@ register struct obj *obj;
             if (otmp != uball && otmp != uchain
                 && !obj_resists(otmp, 1, 99)) {
                 if (!Blind) {
+#if 0 /*JP*/
                     pline("Suddenly, %s %s from the sink!", doname(otmp),
                           otense(otmp, "vanish"));
+#else
+                    pline("\93Ë\91R\81C%s\82Í\97¬\82µ\91ä\82©\82ç\8fÁ\82¦\82½\81I", doname(otmp));
+#endif
                     ideed = TRUE;
                 }
                 delobj(otmp);
@@ -405,7 +547,10 @@ register struct obj *obj;
         break;
     case MEAT_RING:
         /* Not the same as aggravate monster; besides, it's obvious. */
+/*JP
         pline("Several flies buzz around the sink.");
+*/
+        pline("\90\94\95C\82Ì\83n\83G\82ª\83u\83\93\83u\83\93\97¬\82µ\91ä\82Ì\89ñ\82è\82ð\94ò\82Ñ\82Ü\82í\82Á\82½\81D");
         break;
     default:
         ideed = FALSE;
@@ -415,46 +560,91 @@ register struct obj *obj;
         ideed = TRUE;
         switch (obj->otyp) { /* effects that need eyes */
         case RIN_ADORNMENT:
+/*JP
             pline_The("faucets flash brightly for a moment.");
+*/
+            pline("\8eÖ\8cû\82Í\88ê\8fu\96¾\82é\82­\8bP\82¢\82½\81D");
             break;
         case RIN_REGENERATION:
+/*JP
             pline_The("sink looks as good as new.");
+*/
+            pline("\97¬\82µ\91ä\82ª\90V\95i\82Ì\82æ\82¤\82É\82È\82Á\82½\81D");
             break;
         case RIN_INVISIBILITY:
+/*JP
             You("don't see anything happen to the sink.");
+*/
+            pline("\97¬\82µ\91ä\82É\89½\82ª\8bN\82«\82½\82Ì\82©\8c©\82¦\82È\82©\82Á\82½\81D");
             break;
         case RIN_FREE_ACTION:
+/*JP
             You_see("the ring slide right down the drain!");
+*/
+            pline("\8ew\97Ö\82ª\94r\90\85\8cû\82ð\82·\82é\82è\82Æ\94ð\82¯\82é\82Ì\82ð\8c©\82½\81I");
             break;
         case RIN_SEE_INVISIBLE:
+#if 0 /*JP*/
             You_see("some %s in the sink.",
                     Hallucination ? "oxygen molecules" : "air");
+#else
+            pline("\97¬\82µ\91ä\82Ì\8fã\82Ì%s\82ª\8c©\82¦\82½\81D",
+                  Hallucination ? "\8e_\91f\95ª\8eq" : "\8bó\8bC");
+#endif
             break;
         case RIN_STEALTH:
+/*JP
             pline_The("sink seems to blend into the floor for a moment.");
+*/
+            pline("\88ê\8fu\81C\97¬\82µ\91ä\82ª\8f°\82É\97n\82¯\82±\82ñ\82¾\82æ\82¤\82É\8c©\82¦\82½\81D");
             break;
         case RIN_FIRE_RESISTANCE:
+/*JP
             pline_The("hot water faucet flashes brightly for a moment.");
+*/
+            pline("\88ê\8fu\81C\94M\93\92\82Ì\8eÖ\8cû\82ª\96¾\82é\82­\8bP\82¢\82½\81D");
             break;
         case RIN_COLD_RESISTANCE:
+/*JP
             pline_The("cold water faucet flashes brightly for a moment.");
+*/
+            pline("\88ê\8fu\81C\97â\90\85\82Ì\8eÖ\8cû\82ª\96¾\82é\82­\8bP\82¢\82½\81D");
             break;
         case RIN_PROTECTION_FROM_SHAPE_CHAN:
+/*JP
             pline_The("sink looks nothing like a fountain.");
+*/
+            pline("\97¬\82µ\91ä\82Í\90ò\82Æ\82Í\82Ü\82Á\82½\82­\88á\82¤\82à\82Ì\82Ì\82æ\82¤\82É\8c©\82¦\82½\81D");
             break;
         case RIN_PROTECTION:
+#if 0 /*JP*/
             pline_The("sink glows %s for a moment.",
                       hcolor((obj->spe < 0) ? NH_BLACK : NH_SILVER));
+#else
+            pline("\97¬\82µ\91ä\82Í\88ê\8fu%s\8bP\82¢\82½\81D",
+                  jconj_adj(hcolor((obj->spe<0) ? NH_BLACK : NH_SILVER)));
+#endif
             break;
         case RIN_WARNING:
+#if 0 /*JP*/
             pline_The("sink glows %s for a moment.", hcolor(NH_WHITE));
+#else
+            pline("\97¬\82µ\91ä\82Í\88ê\8fu%s\8bP\82¢\82½\81D", jconj_adj(hcolor(NH_WHITE)));
+#endif
             break;
         case RIN_TELEPORTATION:
             nosink = teleport_sink();
+/*JP
             pline_The("sink %svanishes.", nosink ? "" : "momentarily ");
+*/
+            pline_The("\97¬\82µ\91ä\82Í%s\8fÁ\82¦\82½\81D", nosink ? "" : "\88ê\8fu");
             break;
         case RIN_TELEPORT_CONTROL:
+/*JP: "beam aboard" \82Í\83X\83^\81[\83g\83\8c\83b\83N\82Ì\81u\93]\91\97\81v*/
+/*JP
             pline_The("sink looks like it is being beamed aboard somewhere.");
+*/
+            pline("\97¬\82µ\91ä\82Í\82Ç\82±\82©\82É\93]\91\97\82³\82ê\82æ\82¤\82Æ\82µ\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82½\81D");
             break;
         case RIN_POLYMORPH:
             polymorph_sink();
@@ -462,17 +652,26 @@ register struct obj *obj;
             break;
         case RIN_POLYMORPH_CONTROL:
             pline_The(
+/*JP
                 "sink momentarily looks like a regularly erupting geyser.");
+*/
+                "\97¬\82µ\91ä\82Í\88ê\8fu\8bK\91¥\90³\82µ\82­\95¬\8fo\82·\82é\8aÔ\8c\87\90ò\82Ì\82æ\82¤\82É\8c©\82¦\82½\81D");
             break;
         }
     }
     if (ideed)
         trycall(obj);
     else if (!nosink)
+/*JP
         You_hear("the ring bouncing down the drainpipe.");
+*/
+        You_hear("\8ew\97Ö\82ª\94r\90\85\8cû\82É\93\96\82½\82è\82È\82ª\82ç\97\8e\82¿\82é\89¹\82ð\95·\82¢\82½\81D");
 
     if (!rn2(20) && !nosink) {
+/*JP
         pline_The("sink backs up, leaving %s.", doname(obj));
+*/
+        pline("\97¬\82µ\91ä\82ª\8bt\97¬\82µ\82Ä\81C%s\82ª\96ß\82Á\82Ä\82«\82½\81D", doname(obj));
         obj->in_use = FALSE;
         dropx(obj);
     } else
@@ -487,7 +686,10 @@ const char *word;
 {
     if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) {
         if (*word)
+/*JP
             Norep("You cannot %s %s you are wearing.", word, something);
+*/
+            Norep("\82 \82È\82½\82ª\90g\82É\82Â\82¯\82Ä\82¢\82é\82à\82Ì\82ð%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", word);
         return FALSE;
     }
     if (obj->otyp == LOADSTONE && obj->cursed) {
@@ -498,8 +700,13 @@ const char *word;
                implicitly forced to be 1; replicate its kludge... */
             if (!strcmp(word, "throw") && obj->quan > 1L)
                 obj->corpsenm = 1;
+#if 0 /*JP*/
             pline("For some reason, you cannot %s%s the stone%s!", word,
                   obj->corpsenm ? " any of" : "", plur(obj->quan));
+#else
+            pline("\82Ç\82¤\82¢\82¤\82í\82¯\82©\81C\82 \82È\82½\82Í\90Î\82ð%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81I",
+                  word);
+#endif
         }
         obj->corpsenm = 0; /* reset */
         obj->bknown = 1;
@@ -507,12 +714,18 @@ const char *word;
     }
     if (obj->otyp == LEASH && obj->leashmon != 0) {
         if (*word)
+/*JP
             pline_The("leash is tied around your %s.", body_part(HAND));
+*/
+            pline("\95R\82Í\82 \82È\82½\82Ì%s\82É\8c\8b\82Ñ\82Â\82¯\82ç\82ê\82Ä\82¢\82é\81D", body_part(HAND));
         return FALSE;
     }
     if (obj->owornmask & W_SADDLE) {
         if (*word)
+/*JP
             You("cannot %s %s you are sitting on.", word, something);
+*/
+            You("\8fæ\82Á\82Ä\82¢\82é\8aÔ\82Í%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", word);
         return FALSE;
     }
     return TRUE;
@@ -524,7 +737,10 @@ register struct obj *obj;
 {
     if (!obj)
         return 0;
+/*JP
     if (!canletgo(obj, "drop"))
+*/
+    if (!canletgo(obj, "\92u\82­"))
         return 0;
     if (obj == uwep) {
         if (welded(uwep)) {
@@ -547,8 +763,13 @@ register struct obj *obj;
 
             /* doname can call s_suffix, reusing its buffer */
             Strcpy(buf, s_suffix(mon_nam(u.ustuck)));
+#if 0 /*JP*/
             You("drop %s into %s %s.", doname(obj), buf,
                 mbodypart(u.ustuck, STOMACH));
+#else
+            You("%s\82ð%s\82Ì%s\82É\92u\82¢\82½\81D", doname(obj), buf,
+                mbodypart(u.ustuck, STOMACH));
+#endif
         }
     } else {
         if ((obj->oclass == RING_CLASS || obj->otyp == MEAT_RING)
@@ -565,7 +786,10 @@ register struct obj *obj;
             if (levhack)
                 ELevitation = W_ART; /* other than W_ARTI */
             if (flags.verbose)
+/*JP
                 You("drop %s.", doname(obj));
+*/
+                You("%s\82ð\92u\82¢\82½\81D", doname(obj));
             /* Ensure update when we drop gold objects */
             if (obj->oclass == COIN_CLASS)
                 context.botl = 1;
@@ -576,7 +800,10 @@ register struct obj *obj;
             return 1;
         }
         if (!IS_ALTAR(levl[u.ux][u.uy].typ) && flags.verbose)
+/*JP
             You("drop %s.", doname(obj));
+*/
+            You("%s\82ð\92u\82¢\82½\81D", doname(obj));
     }
     dropx(obj);
     return 1;
@@ -623,7 +850,10 @@ boolean with_impact;
     if (obj == uswapwep)
         setuswapwep((struct obj *) 0);
 
+/*JP
     if (!u.uswallow && flooreffects(obj, u.ux, u.uy, "drop"))
+*/
+    if (!u.uswallow && flooreffects(obj,u.ux,u.uy,"\97\8e\82¿\82é"))
         return;
     /* uswallow check done by GAN 01/29/87 */
     if (u.uswallow) {
@@ -746,7 +976,10 @@ int retry;
         all_categories = (retry == -2);
     } else if (flags.menu_style == MENU_FULL) {
         all_categories = FALSE;
+/*JP
         n = query_category("Drop what type of items?", invent,
+*/
+        n = query_category("\82Ç\82Ì\8eí\97Þ\82Ì\83A\83C\83e\83\80\82ð\92u\82«\82Ü\82·\82©\81H", invent,
                            UNPAID_TYPES | ALL_TYPES | CHOOSE_ALL | BUC_BLESSED
                                | BUC_CURSED | BUC_UNCURSED | BUC_UNKNOWN,
                            &pick_list, PICK_ANY);
@@ -797,7 +1030,10 @@ int retry;
         bypass_objlist(invent, FALSE);
     } else {
         /* should coordinate with perm invent, maybe not show worn items */
+/*JP
         n = query_objlist("What would you like to drop?", invent,
+*/
+        n = query_objlist("\82Ç\82ê\82ð\92u\82«\82Ü\82·\82©\81H", invent,
                           USE_INVLET | INVORDER_SORT, &pick_list, PICK_ANY,
                           all_categories ? allow_all : allow_category);
         if (n > 0) {
@@ -901,9 +1137,15 @@ dodown()
                 ladder_down =
                     (glyph_to_cmap(levl[u.ux][u.uy].glyph) == S_dnladder);
         }
+#if 0 /*JP*/
         floating_above(stairs_down ? "stairs" : ladder_down
                                                     ? "ladder"
                                                     : surface(u.ux, u.uy));
+#else
+        floating_above(stairs_down ? "\8aK\92i" : ladder_down
+                                                    ? "\82Í\82µ\82²"
+                                                    : surface(u.ux, u.uy));
+#endif
         return 0; /* didn't move */
     }
     if (!stairs_down && !ladder_down) {
@@ -916,36 +1158,66 @@ dodown()
             if (flags.autodig && !context.nopick && uwep && is_pick(uwep)) {
                 return use_pick_axe2(uwep);
             } else {
+/*JP
                 You_cant("go down here.");
+*/
+                pline("\82±\82±\82Å\82Í\8d~\82è\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
                 return 0;
             }
         }
     }
     if (u.ustuck) {
+#if 0 /*JP*/
         You("are %s, and cannot go down.",
             !u.uswallow ? "being held" : is_animal(u.ustuck->data)
                                              ? "swallowed"
                                              : "engulfed");
+#else
+        You("%s\8d~\82è\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
+            !u.uswallow ? "\82Â\82©\82Ü\82¦\82ç\82ê\82Ä\82¢\82Ä" : is_animal(u.ustuck->data)
+                                             ? "\88ù\82Ý\8d\9e\82Ü\82ê\82Ä\82¢\82Ä"
+                                             : "\8aª\82«\8d\9e\82Ü\82ê\82Ä\82¢\82Ä");
+#endif
         return 1;
     }
     if (on_level(&valley_level, &u.uz) && !u.uevent.gehennom_entered) {
+/*JP
         You("are standing at the gate to Gehennom.");
+*/
+        You("\83Q\83w\83i\82Ì\96å\82Ì\91O\82É\97§\82Á\82Ä\82¢\82é\81D");
+/*JP
         pline("Unspeakable cruelty and harm lurk down there.");
+*/
+        pline("\8c¾\97t\82É\82·\82ç\82Å\82«\82È\82¢\8ec\8bs\82Æ\8eS\8e\96\82ª\82±\82Ì\89º\82É\90ö\82ñ\82Å\82¢\82é\81D");
+/*JP
         if (yn("Are you sure you want to enter?") != 'y')
+*/
+        if (yn("\96{\93\96\82É\93ü\82è\82Ü\82·\82©\81H") != 'y')
             return 0;
         else
+/*JP
             pline("So be it.");
+*/
+            pline("\82È\82ç\8dD\82«\82É\82·\82ê\82Î\82æ\82¢\81D");
         u.uevent.gehennom_entered = 1; /* don't ask again */
     }
 
     if (!next_to_u()) {
+/*JP
         You("are held back by your pet!");
+*/
+        You("\83y\83b\83g\82É\88ø\82«\82à\82Ç\82³\82ê\82½\81I");
         return 0;
     }
 
     if (trap)
+#if 0 /*JP*/
         You("%s %s.", Flying ? "fly" : locomotion(youmonst.data, "jump"),
             trap->ttyp == HOLE ? "down the hole" : "through the trap door");
+#else
+        You("%s\81D",
+            trap->ttyp == HOLE ? "\8c\8a\82ð\8d~\82è\82½" : "\97\8e\82µ\94à\82ð\92Ê\82è\94²\82¯\82½");
+#endif
 
     if (trap && Is_stronghold(&u.uz)) {
         goto_hell(FALSE, TRUE);
@@ -974,31 +1246,52 @@ doup()
         && (!xupladder || u.ux != xupladder || u.uy != yupladder)
         && (!sstairs.sx || u.ux != sstairs.sx || u.uy != sstairs.sy
             || !sstairs.up)) {
+/*JP
         You_cant("go up here.");
+*/
+        You("\82±\82±\82Å\82Í\8fã\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
         return 0;
     }
     if (stucksteed(TRUE)) {
         return 0;
     }
     if (u.ustuck) {
+#if 0 /*JP*/
         You("are %s, and cannot go up.",
             !u.uswallow ? "being held" : is_animal(u.ustuck->data)
                                              ? "swallowed"
                                              : "engulfed");
+#else
+        You("%s\8fã\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
+            !u.uswallow ? "\82Â\82©\82Ü\82¦\82ç\82ê\82Ä\82¢\82Ä" : is_animal(u.ustuck->data)
+                                                     ? "\88ù\82Ý\8d\9e\82Ü\82ê\82Ä\82¢\82Ä"
+                                                     : "\8aª\82«\8d\9e\82Ü\82ê\82Ä\82¢\82Ä");
+#endif
         return 1;
     }
     if (near_capacity() > SLT_ENCUMBER) {
         /* No levitation check; inv_weight() already allows for it */
+#if 0 /*JP*/
         Your("load is too heavy to climb the %s.",
              levl[u.ux][u.uy].typ == STAIRS ? "stairs" : "ladder");
+#else
+        You("\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä%s\82ð\8fã\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
+            levl[u.ux][u.uy].typ == STAIRS ? "\8aK\92i" : "\82Í\82µ\82²");
+#endif
         return 1;
     }
     if (ledger_no(&u.uz) == 1) {
+/*JP
         if (yn("Beware, there will be no return! Still climb?") != 'y')
+*/
+        if (yn("\8bC\82ð\82Â\82¯\82ë\81C\96ß\82ê\82È\82¢\82¼\81I\82»\82ê\82Å\82à\8fã\82é\81H") != 'y')
             return 0;
     }
     if (!next_to_u()) {
+/*JP
         You("are held back by your pet!");
+*/
+        You("\83y\83b\83g\82É\88ø\82«\82à\82Ç\82³\82ê\82½\81I");
         return 0;
     }
     at_ladder = (boolean) (levl[u.ux][u.uy].typ == LADDER);
@@ -1037,8 +1330,14 @@ currentlevel_rewrite()
     if (!savelev(fd, ledger_no(&u.uz), COUNT_SAVE)) {
         (void) nhclose(fd);
         delete_levelfile(ledger_no(&u.uz));
+/*JP
         pline("NetHack is out of disk space for making levels!");
+*/
+        pline("\90V\82µ\82¢\83\8c\83x\83\8b\82ð\8dì\82é\82½\82ß\82Ì\83f\83B\83X\83N\97e\97Ê\82ª\91«\82è\82È\82¢\81I");
+/*JP
         You("can save, quit, or continue playing.");
+*/
+        You("\83Z\81[\83u\82·\82é\82©\8fI\97¹\82·\82é\82©\81C\82 \82é\82¢\82Í\83v\83\8c\83C\82ð\91±\8ds\82Å\82«\82é\81D");
         return -1;
     }
 #endif
@@ -1138,7 +1437,10 @@ boolean at_stairs, falling, portal;
 
             new_ledger = ledger_no(newlevel);
 
+/*JP
             pline("A mysterious force momentarily surrounds you...");
+*/
+            pline("\88ê\8fu\8aï\96­\82È\97Í\82ª\82 \82È\82½\82ð\95ï\82ñ\82¾\81D\81D\81D");
             if (on_level(newlevel, &u.uz)) {
                 (void) safe_teleds(FALSE);
                 (void) next_to_u();
@@ -1152,7 +1454,10 @@ boolean at_stairs, falling, portal;
      * (s)he has been given the go-ahead by the leader.
      */
     if (on_level(&u.uz, &qstart_level) && !newdungeon && !ok_to_quest()) {
+/*JP
         pline("A mysterious force prevents you from descending.");
+*/
+        pline("\8aï\96­\82È\97Í\82ª\82 \82È\82½\82ª\8d~\82è\82é\82Ì\82ð\96W\82°\82½\81D");
         return;
     }
 
@@ -1290,11 +1595,17 @@ boolean at_stairs, falling, portal;
                 u_on_dnstairs();
             /* you climb up the {stairs|ladder};
                fly up the stairs; fly up along the ladder */
+#if 0 /*JP*/
             pline("%s %s up%s the %s.",
                   (Punished && !Levitation) ? "With great effort you" : "You",
                   Flying ? "fly" : "climb",
                   (Flying && at_ladder) ? " along" : "",
                   at_ladder ? "ladder" : "stairs");
+#else
+            pline("%s%s\82ð\8fã\82Á\82½\81D",
+                  (Punished && !Levitation) ? "\82â\82Á\82Æ\82±\82³" : "",
+                  at_ladder ? "\82Í\82µ\82²" : "\8aK\92i");
+#endif
         } else { /* down */
             if (at_ladder)
                 u_on_newpos(xupladder, yupladder);
@@ -1306,11 +1617,19 @@ boolean at_stairs, falling, portal;
                 ; /* stayed on same level? (no transit effects) */
             } else if (Flying) {
                 if (flags.verbose)
+#if 0 /*JP*/
                     You("fly down %s.",
                         at_ladder ? "along the ladder" : "the stairs");
+#else
+                    You("%s\94ò\82ñ\82Å\8d~\82è\82½\81D",
+                        at_ladder ? "\82Í\82µ\82²\82É\89\88\82Á\82Ä" : "\8aK\92i\82ð");
+#endif
             } else if (near_capacity() > UNENCUMBERED || Punished
                        || Fumbling) {
+/*JP
                 You("fall down the %s.", at_ladder ? "ladder" : "stairs");
+*/
+                You("%s\82ð\93]\82°\97\8e\82¿\82½\81D", at_ladder ? "\82Í\82µ\82²" : "\8aK\92i");
                 if (Punished) {
                     drag_down();
                     ballrelease(FALSE);
@@ -1320,14 +1639,28 @@ boolean at_stairs, falling, portal;
                     dismount_steed(DISMOUNT_FELL);
                 else
                     losehp(Maybe_Half_Phys(rnd(3)),
+/*JP
                            at_ladder ? "falling off a ladder"
+*/
+                           at_ladder ? "\82Í\82µ\82²\82©\82ç\97\8e\82¿\82Ä"
+/*JP
                                      : "tumbling down a flight of stairs",
+*/
+                                     : "\8aK\92i\82ð\93]\82°\97\8e\82¿\82Ä",
                            KILLED_BY);
+/*JP
                 selftouch("Falling, you");
+*/
+                selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
             } else { /* ordinary descent */
                 if (flags.verbose)
+#if 0 /*JP*/
                     You("%s.", at_ladder ? "climb down the ladder"
                                          : "descend the stairs");
+#else
+                    You("%s\82ð\8d~\82è\82½\81D", at_ladder ? "\82Í\82µ\82²"
+                                                  : "\8aK\92i");
+#endif
             }
         }
     } else { /* trap door or level_tele or In_endgame */
@@ -1335,7 +1668,10 @@ boolean at_stairs, falling, portal;
         if (falling) {
             if (Punished)
                 ballfall();
+/*JP
             selftouch("Falling, you");
+*/
+            selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
         }
     }
 
@@ -1414,14 +1750,26 @@ boolean at_stairs, falling, portal;
     /* Check whether we just entered Gehennom. */
     if (!In_hell(&u.uz0) && Inhell) {
         if (Is_valley(&u.uz)) {
+/*JP
             You("arrive at the Valley of the Dead...");
+*/
+            You("\8e\80\82Ì\92J\82É\93\9e\92B\82µ\82½\81D\81D\81D");
+/*JP
             pline_The("odor of burnt flesh and decay pervades the air.");
+*/
+            pline("\8fÅ\82°\82é\8e\80\93÷\82â\95\85\93÷\82Ì\88«\8fL\82ª\82½\82¾\82æ\82Á\82Ä\82¢\82é\81D");
 #ifdef MICRO
             display_nhwindow(WIN_MESSAGE, FALSE);
 #endif
+/*JP
             You_hear("groans and moans everywhere.");
+*/
+            You_hear("\82»\82±\82©\82µ\82±\82©\82ç\82Ì\82¤\82ß\82«\90º\82â\82¤\82È\82è\90º\82ð\95·\82¢\82½\81D");
         } else
+/*JP
             pline("It is hot here.  You smell smoke...");
+*/
+            pline("\82±\82±\82Í\8f\8b\82¢\81D\89\8c\82Ì\93õ\82¢\82ª\82·\82é\81D\81D\81D");
         u.uachieve.enter_gehennom = 1;
     }
     /* in case we've managed to bypass the Valley's stairway down */
@@ -1430,14 +1778,34 @@ boolean at_stairs, falling, portal;
 
     if (familiar) {
         static const char *const fam_msgs[4] = {
+/*JP
             "You have a sense of deja vu.",
+*/
+            "\8aù\8e\8b\8a´\82É\82¨\82»\82í\82ê\82½\81D",
+/*JP
             "You feel like you've been here before.",
+*/
+            "\91O\82É\82±\82±\82É\97\88\82½\82±\82Æ\82ª\82 \82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+#if 0 /*JP*/
             "This place %s familiar...", 0 /* no message */
+#else
+            "\82±\82Ì\8fê\8f\8a\82Í\89ù\82©\82µ\82¢\81D\81D\81D", 0 /* no message */
+#endif
         };
         static const char *const halu_fam_msgs[4] = {
+/*JP
             "Whoa!  Everything %s different.",
+*/
+            "\83I\83\8f\83b\81I\82Ü\82Á\82½\82­\95Ï\82í\82Á\82¿\82Ü\82Á\82Ä\82é\81D",
+/*JP
             "You are surrounded by twisty little passages, all alike.",
+*/
+            "\82 \82È\82½\82Í\82Ü\82ª\82è\82­\82Ë\82Á\82½\92Ê\98H\82É\82©\82±\82Ü\82ê\82Ä\82¢\82½\81D\81D\81D",
+#if 0 /*JP*/
             "Gee, this %s like uncle Conan's place...", 0 /* no message */
+#else
+            "\83Q\81[\81I\83R\83i\83\93\82¨\82\82³\82ñ\82Ì\8fê\8f\8a\82É\8e\97\82Ä\82¢\82é\81D\81D\81D", 0 /* no message */
+#endif
         };
         const char *mesg;
         char buf[BUFSZ];
@@ -1447,10 +1815,12 @@ boolean at_stairs, falling, portal;
             mesg = halu_fam_msgs[which];
         else
             mesg = fam_msgs[which];
+#if 0 /*JP:\93ú\96{\8cê\82Å\82Í\82»\82±\82Ü\82Å\82µ\82È\82¢*/
         if (mesg && index(mesg, '%')) {
             Sprintf(buf, mesg, !Blind ? "looks" : "seems");
             mesg = buf;
         }
+#endif
         if (mesg)
             pline1(mesg);
     }
@@ -1465,12 +1835,21 @@ boolean at_stairs, falling, portal;
         onquest(); /* might be reaching locate|goal level */
     } else if (In_V_tower(&u.uz)) {
         if (newdungeon && In_hell(&u.uz0))
+/*JP
             pline_The("heat and smoke are gone.");
+*/
+            pline("\94M\82Æ\89\8c\82è\82Í\8fÁ\82¦\82³\82Á\82½\81D");
     } else if (Is_knox(&u.uz)) {
         /* alarm stops working once Croesus has died */
         if (new || !mvitals[PM_CROESUS].died) {
+/*JP
             You("have penetrated a high security area!");
+*/
+            You("\8dÅ\8d\82\8b@\96§\82Ì\8fê\8f\8a\82Ö\93¥\82Ý\8d\9e\82ñ\82¾\81I");
+/*JP
             pline("An alarm sounds!");
+*/
+            pline("\8cx\95ñ\82ª\82È\82Á\82½\81I");
             for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
                 if (DEADMONSTER(mtmp))
                     continue;
@@ -1479,9 +1858,15 @@ boolean at_stairs, falling, portal;
         }
     } else {
         if (new && Is_rogue_level(&u.uz))
+/*JP
             You("enter what seems to be an older, more primitive world.");
+*/
+            You("\8cÃ\82­\82³\82­\81C\82¸\82¢\82Ô\82ñ\92P\8f\83\82È\90¢\8aE\82É\8c©\82¦\82é\95\94\89®\82É\93ü\82Á\82½\81D");
         /* main dungeon message from your quest leader */
+/*JP
         if (!In_quest(&u.uz0) && at_dgn_entrance("The Quest")
+*/
+        if (!In_quest(&u.uz0) && at_dgn_entrance("\83N\83G\83X\83g")
             && !(u.uevent.qcompleted || u.uevent.qexpelled
                  || quest_status.leader_is_dead)) {
             if (!u.uevent.qcalled) {
@@ -1607,7 +1992,10 @@ struct obj *corpse;
     is_uwep = (corpse == uwep);
     chewed = (corpse->oeaten != 0);
     Strcpy(cname,
+/*JP
            corpse_xname(corpse, chewed ? "bite-covered" : (const char *) 0,
+*/
+           corpse_xname(corpse, chewed ? "\8e\95\8c^\82Ì\82Â\82¢\82½" : (const char *) 0,
                         CXN_SINGULAR));
     mcarry = (where == OBJ_MINVENT) ? corpse->ocarry : 0;
 
@@ -1628,27 +2016,50 @@ struct obj *corpse;
         switch (where) {
         case OBJ_INVENT:
             if (is_uwep)
+/*JP
                 pline_The("%s writhes out of your grasp!", cname);
+*/
+                pline_The("%s\82Í\82à\82ª\82¢\82½\81I", cname);
             else
+/*JP
                 You_feel("squirming in your backpack!");
+*/
+                pline("\94w\95\89\82¢\91Ü\82Å\89½\82©\82ª\82à\82ª\82¢\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
             break;
 
         case OBJ_FLOOR:
             if (cansee(mtmp->mx, mtmp->my))
+#if 0 /*JP*/
                 pline("%s rises from the dead!",
                       chewed ? Adjmonnam(mtmp, "bite-covered")
                              : Monnam(mtmp));
+#else
+                pline("%s\82ª\91h\82Á\82½\81I",
+                      chewed ? Adjmonnam(mtmp, "\8e\95\8c^\82Ì\82Â\82¢\82½")
+                             : Monnam(mtmp));
+#endif
             break;
 
         case OBJ_MINVENT: /* probably a nymph's */
             if (cansee(mtmp->mx, mtmp->my)) {
                 if (canseemon(mcarry))
+#if 0 /*JP*/
                     pline("Startled, %s drops %s as it revives!",
                           mon_nam(mcarry), an(cname));
+#else
+                    pline("%s\82ª\90\82«\82©\82¦\82Á\82½\82Ì\82É\82Ñ\82Á\82­\82è\82µ\82Ä\81C%s\82Í%s\82ð\97\8e\82µ\82½\81I",
+                          cname, mon_nam(mcarry), cname);
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s suddenly appears!",
                           chewed ? Adjmonnam(mtmp, "bite-covered")
                                  : Monnam(mtmp));
+#else
+                    pline("%s\82ª\93Ë\91R\8c»\82í\82ê\82½\81I",
+                          chewed ? Adjmonnam(mtmp, "\8e\95\8c^\82Ì\82Â\82¢\82½")
+                                 : Monnam(mtmp));
+#endif
             }
             break;
         case OBJ_CONTAINED: {
@@ -1656,17 +2067,29 @@ struct obj *corpse;
 
             if (container_where == OBJ_MINVENT && cansee(mtmp->mx, mtmp->my)
                 && mcarry && canseemon(mcarry) && container) {
+/*JP
                 pline("%s writhes out of %s!", Amonnam(mtmp),
+*/
+                pline("%s\82Í%s\82©\82ç\93¦\82ê\82æ\82¤\82Æ\82à\82ª\82¢\82½\81I", Amonnam(mtmp),
                       yname(container));
             } else if (container_where == OBJ_INVENT && container) {
                 Strcpy(sackname, an(xname(container)));
+#if 0 /*JP*/
                 pline("%s %s out of %s in your pack!",
                       Blind ? Something : Amonnam(mtmp),
                       locomotion(mtmp->data, "writhes"), sackname);
+#else
+                pline("%s\82Í\91Ü\82Ì\92\86\82Å%s\82©\82ç\93¦\82ê\82æ\82¤\82Æ\82à\82ª\82¢\82½\81I",
+                      Blind ? Something : Amonnam(mtmp),
+                      sackname);
+#endif
             } else if (container_where == OBJ_FLOOR && container
                        && cansee(mtmp->mx, mtmp->my)) {
                 Strcpy(sackname, an(xname(container)));
+/*JP
                 pline("%s escapes from %s!", Amonnam(mtmp), sackname);
+*/
+                pline("%s\82Í%s\82©\82ç\93¦\82ê\82½\81I", Amonnam(mtmp), sackname);
             }
             break;
         }
@@ -1720,7 +2143,10 @@ long timeout UNUSED;
                 if (!rn2(3))
                     break;
         } else { /* rot this corpse away */
+/*JP
             You_feel("%sless hassled.", is_rider(mptr) ? "much " : "");
+*/
+            You("\94Y\82Ý\8e\96\82ª%s\8c¸\82Á\82½\8bC\82ª\82µ\82½\81D", is_rider(mptr) ? "\82Æ\82Ä\82à" : "");
             action = ROT_CORPSE;
             when = 250L - (monstermoves - body->age);
             if (when < 1L)
@@ -1748,7 +2174,10 @@ wipeoff(VOID_ARGS)
     else
         Blinded -= 4;
     if (!Blinded) {
+/*JP
         pline("You've got the glop off.");
+*/
+        You("%s\82©\82ç\83l\83o\83l\83o\82ª\82Æ\82ê\82½\81D", body_part(FACE));
         u.ucreamed = 0;
         if (!gulp_blnd_check()) {
             Blinded = 1;
@@ -1756,7 +2185,10 @@ wipeoff(VOID_ARGS)
         }
         return 0;
     } else if (!u.ucreamed) {
+/*JP
         Your("%s feels clean now.", body_part(FACE));
+*/
+        Your("%s\82Í\82«\82ê\82¢\82É\82È\82Á\82½\81D", body_part(FACE));
         return 0;
     }
     return 1; /* still busy */
@@ -1768,14 +2200,20 @@ dowipe()
     if (u.ucreamed) {
         static NEARDATA char buf[39];
 
+/*JP
         Sprintf(buf, "wiping off your %s", body_part(FACE));
+*/
+        Sprintf(buf, "%s\82ð\90@\82¢\82Ä\82¢\82é", body_part(FACE));
         set_occupation(wipeoff, buf, 0);
         /* Not totally correct; what if they change back after now
          * but before they're finished wiping?
          */
         return 1;
     }
+/*JP
     Your("%s is already clean.", body_part(FACE));
+*/
+    Your("%s\82Í\89\98\82ê\82Ä\82¢\82È\82¢\81D", body_part(FACE));
     return 1;
 }
 
@@ -1813,11 +2251,15 @@ heal_legs()
         if (!u.usteed) {
             const char *legs = body_part(LEG);
 
+#if 0 /*JP*/
             if ((EWounded_legs & BOTH_SIDES) == BOTH_SIDES)
                 legs = makeplural(legs);
             /* this used to say "somewhat better" but that was
                misleading since legs are being fully healed */
             Your("%s %s better.", legs, vtense(legs, "feel"));
+#else
+            Your("%s\82Í\89ñ\95\9c\82µ\82½\81D", body_part(LEG));
+#endif
         }
 
         HWounded_legs = EWounded_legs = 0;
index 2e2dfd1..af5a1c8 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL char *NDECL(nextmbuf);
@@ -48,23 +53,50 @@ const char *goal;
     boolean doing_what_is;
     winid tmpwin = create_nhwindow(NHW_MENU);
 
+#if 0 /*JP*/
     Sprintf(sbuf, "Use [%c%c%c%c] to move the cursor to %s.", /* hjkl */
+#else
+    Sprintf(sbuf, "[%c%c%c%c]\82Å%s\82Ö\88Ú\93®\82Å\82«\82é\81D",
+#endif
             Cmd.move_W, Cmd.move_S, Cmd.move_N, Cmd.move_E, goal);
     putstr(tmpwin, 0, sbuf);
+/*JP
     putstr(tmpwin, 0, "Use [HJKL] to move the cursor 8 units at a time.");
+*/
+    putstr(tmpwin, 0, "[HJKL]\82Å\88ê\93x\82É8\95à\88Ú\93®\82Å\82«\82é\81D");
+/*JP
     putstr(tmpwin, 0, "Or enter a background symbol (ex. <).");
+*/
+    putstr(tmpwin, 0, "\94w\8ci\82Ì\83V\83\93\83{\83\8b\82ð\93ü\97Í\82·\82é\82Æ\82»\82Ì\88Ê\92u\82É\88Ú\93®\82·\82é(\97á\81F<)\81D");
+/*JP
     putstr(tmpwin, 0, "Use @ to move the cursor on yourself.");
+*/
+    putstr(tmpwin, 0, "@\82Å\8e©\95ª\8e©\90g\82Ì\88Ê\92u\82É\88Ú\93®\82·\82é\81D");
     if (getpos_hilitefunc != NULL)
+/*JP
         putstr(tmpwin, 0, "Use $ to display valid locations.");
+*/
+        putstr(tmpwin, 0, "$\82Å\89Â\94\\82È\88Ê\92u\82ð\95\\8e¦\82·\82é\81D");
+/*JP
     putstr(tmpwin, 0, "Use # to toggle automatic description.");
+*/
+    putstr(tmpwin, 0, "#\82Å\90à\96¾\82Ì\8e©\93®\95\\8e¦\82ð\90Ø\82è\91Ö\82¦\82é\81D");
     /* disgusting hack; the alternate selection characters work for any
        getpos call, but they only matter for dowhatis (and doquickwhatis) */
     doing_what_is = (goal == what_is_an_unknown_object);
+#if 0 /*JP:T*/
     Sprintf(sbuf, "Type a .%s when you are at the right place.",
             doing_what_is ? " or , or ; or :" : "");
+#else
+    Sprintf(sbuf, "[.]%s\82Å\8c\88\92è\81D",
+            doing_what_is ? "[,][;][:]" : "");
+#endif
     putstr(tmpwin, 0, sbuf);
     if (!force)
+/*JP
         putstr(tmpwin, 0, "Type Space or Escape when you're done.");
+*/
+        putstr(tmpwin, 0, "\83X\83y\81[\83X\82Ü\82½\82Í\83G\83X\83P\81[\83v\82Å\8fI\97¹\81D");
     putstr(tmpwin, 0, "");
     display_nhwindow(tmpwin, TRUE);
     destroy_nhwindow(tmpwin);
@@ -89,7 +121,10 @@ const char *goal;
     if (!goal)
         goal = "desired location";
     if (flags.verbose) {
+/*JP
         pline("(For instructions type a ?)");
+*/
+        pline("(?\82Å\83w\83\8b\83v)");
         msg_given = TRUE;
     }
     cx = ccp->x;
@@ -266,26 +301,42 @@ const char *goal;
                             } /* column */
                         }     /* row */
                     }         /* pass */
+/*JP
                     pline("Can't find dungeon feature '%c'.", c);
+*/
+                    pline("'%c'\81H", c);
                     msg_given = TRUE;
                     goto nxtc;
                 } else {
                     char note[QBUFSZ];
 
                     if (!force)
+/*JP
                         Strcpy(note, "aborted");
+*/
+                        Strcpy(note, "\92\86\92f\82µ\82½");
                     else
+#if 0 /*JP*/
                         Sprintf(note, "use %c%c%c%c or .", /* hjkl */
+#else
+                        Sprintf(note, "%c%c%c%c\82Å\88Ú\93®\81C.\82Å\8fI\97¹", /* hjkl */
+#endif
                                 Cmd.move_W, Cmd.move_S, Cmd.move_N,
                                 Cmd.move_E);
+/*JP
                     pline("Unknown direction: '%s' (%s).", visctrl((char) c),
+*/
+                    pline("\82»\82Ì\95û\8cü\82Í\82È\82¢\81F'%s' (%s)", visctrl((char) c),
                           note);
                     msg_given = TRUE;
                 } /* k => matching */
             }     /* !quitchars */
             if (force)
                 goto nxtc;
+/*JP
             pline("Done.");
+*/
+            pline("\88È\8fã\81D");
             msg_given = FALSE; /* suppress clear */
             cx = -1;
             cy = 0;
@@ -400,6 +451,10 @@ const char *name;
     /* dogname & catname are PL_PSIZ arrays; object names have same limit */
     lth = (name && *name) ? ((int) strlen(name) + 1) : 0;
     if (lth > PL_PSIZ) {
+#if 1 /*JP*/
+        if (is_kanji2(buf, lth - 1))
+            --lth;
+#endif
         lth = PL_PSIZ;
         name = strncpy(buf, name, PL_PSIZ - 1);
         buf[PL_PSIZ - 1] = '\0';
@@ -421,12 +476,18 @@ do_mname()
     char qbuf[QBUFSZ];
 
     if (Hallucination) {
+/*JP
         You("would never recognize it anyway.");
+*/
+        You("\82»\82ê\82ð\94F\8e¯\82Å\82«\82È\82¢\81D");
         return;
     }
     cc.x = u.ux;
     cc.y = u.uy;
+/*JP
     if (getpos(&cc, FALSE, "the monster you want to name") < 0
+*/
+    if (getpos(&cc, FALSE, "\82 \82È\82½\82ª\96¼\82Ã\82¯\82½\82¢\89ö\95¨") < 0
         || (cx = cc.x) < 0)
         return;
     cy = cc.y;
@@ -435,7 +496,10 @@ do_mname()
         if (u.usteed && canspotmon(u.usteed))
             mtmp = u.usteed;
         else {
+/*JP
             pline("This %s creature is called %s and cannot be renamed.",
+*/
+            pline("\82±\82Ì%s\90\82«\95¨\82Í%s\82Æ\8cÄ\82Î\82ê\82Ä\82¢\82Ä\81C\96¼\91O\82Í\95Ï\8dX\82Å\82«\82È\82¢\81D",
                   beautiful(), plname);
             return;
         }
@@ -448,11 +512,17 @@ do_mname()
                 || mtmp->mundetected || mtmp->m_ap_type == M_AP_FURNITURE
                 || mtmp->m_ap_type == M_AP_OBJECT
                 || (mtmp->minvis && !See_invisible)))) {
+/*JP
         pline("I see no monster there.");
+*/
+        pline("\82»\82±\82É\89ö\95¨\82Í\82¢\82È\82¢\81D");
         return;
     }
     /* special case similar to the one in lookat() */
+/*JP
     Sprintf(qbuf, "What do you want to call %s?",
+*/
+    Sprintf(qbuf, "%s\82ð\89½\82Æ\8cÄ\82Ñ\82Ü\82·\82©\81H",
             distant_monnam(mtmp, ARTICLE_THE, monnambuf));
     getlin(qbuf, buf);
     if (!*buf || *buf == '\033')
@@ -464,13 +534,22 @@ do_mname()
        shopkeepers, temple priests and other minions use alternate
        name formatting routines which ignore any user-supplied name */
     if (mtmp->data->geno & G_UNIQ)
+/*JP
         pline("%s doesn't like being called names!", upstart(monnambuf));
+*/
+        pline("%s\82Í\82 \82¾\96¼\82Å\8cÄ\82Î\82ê\82é\82Ì\82ª\8c\99\82¢\82È\82æ\82¤\82¾\81I", Monnam(mtmp));
     else if (mtmp->isshk
              && !(Deaf || mtmp->msleeping || !mtmp->mcanmove
                   || mtmp->data->msound <= MS_ANIMAL))
+/*JP
         verbalize("I'm %s, not %s.", shkname(mtmp), buf);
+*/
+        verbalize("\8e\84\82Í%s\82¾\81C%s\82Å\82Í\82È\82¢\81D", shkname(mtmp), buf);
     else if (mtmp->ispriest || mtmp->isminion || mtmp->isshk)
+/*JP
         pline("%s will not accept the name %s.", upstart(monnambuf), buf);
+*/
+        pline("%s\82Í%s\82Æ\82¢\82¤\96¼\91O\82ð\8eó\82¯\82¢\82ê\82È\82©\82Á\82½\81D", monnambuf, buf);
     else
         (void) christen_monst(mtmp, buf);
 }
@@ -488,16 +567,26 @@ register struct obj *obj;
     char *bufp, buf[BUFSZ], bufcpy[BUFSZ], qbuf[QBUFSZ];
     const char *aname;
     short objtyp;
+#if 1 /*JP*/
+    boolean is_japanese = FALSE;
+#endif
 
     /* Do this now because there's no point in even asking for a name */
     if (obj->otyp == SPE_NOVEL) {
+/*JP
         pline("%s already has a published name.", Ysimple_name2(obj));
+*/
+        pline("%s\82É\82Í\82·\82Å\82É\8fo\94Å\8e\9e\82Ì\96¼\91O\82ª\82 \82é\81D", Ysimple_name2(obj));
         return;
     }
 
+#if 0 /*JP*/
     Sprintf(qbuf, "What do you want to name %s ",
             is_plural(obj) ? "these" : "this");
     (void) safe_qbuf(qbuf, qbuf, "?", obj, xname, simpleonames, "item");
+#else
+    (void) safe_qbuf(qbuf, "", "\82ð\89½\82Æ\96¼\82Ã\82¯\82Ü\82·\82©\81H", obj, xname, simpleonames, "item");
+#endif
     getlin(qbuf, buf);
     if (!*buf || *buf == '\033')
         return;
@@ -506,10 +595,20 @@ register struct obj *obj;
 
     /* relax restrictions over proper capitalization for artifacts */
     if ((aname = artifact_name(buf, &objtyp)) != 0 && objtyp == obj->otyp)
+#if 0 /*JP*/
         Strcpy(buf, aname);
+#else
+        {
+            is_japanese = is_kanji(*buf);
+            Strcpy(buf, aname);
+        }
+#endif
 
     if (obj->oartifact) {
+/*JP
         pline_The("artifact seems to resist the attempt.");
+*/
+        pline("\90¹\8aí\82Í\96¼\82Ã\82¯\82ð\8b\91\94Û\82µ\82Ä\82¢\82é\82æ\82¤\82¾\81D");
         return;
     } else if (restrict_name(obj, buf) || exist_artifact(obj->otyp, buf)) {
         /* this used to change one letter, substituting a value
@@ -529,9 +628,15 @@ register struct obj *obj;
         do {
             wipeout_text(bufp, rnd(2), (unsigned) 0);
         } while (!strcmp(buf, bufcpy));
+/*JP
         pline("While engraving, your %s slips.", body_part(HAND));
+*/
+        pline("\8d\8f\82ñ\82Å\82¢\82é\8aÔ\82É%s\82ª\8a\8a\82Á\82Ä\82µ\82Ü\82Á\82½\81D", body_part(HAND));
         display_nhwindow(WIN_MESSAGE, FALSE);
+/*JP
         You("engrave: \"%s\".", buf);
+*/
+        You("\8d\8f\82ñ\82¾: \81u%s\81v\81D",buf);
     }
     obj = oname(obj, buf);
 }
@@ -547,8 +652,15 @@ const char *name;
     lth = *name ? (int) (strlen(name) + 1) : 0;
     if (lth > PL_PSIZ) {
         lth = PL_PSIZ;
+#if 0 /*JP*/
         name = strncpy(buf, name, PL_PSIZ - 1);
         buf[PL_PSIZ - 1] = '\0';
+#else
+        if (is_kanji2(name, lth - 1))
+            --lth;
+        name = strncpy(buf, name, lth - 1);
+        buf[lth - 1] = '\0';
+#endif
     }
     /* If named artifact exists in the game, do not create another.
      * Also trying to create an artifact shouldn't de-artifact
@@ -610,27 +722,48 @@ docallcmd()
     any = zeroany;
     any.a_char = 'm'; /* group accelerator 'C' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
+/*JP
              "a monster", MENU_UNSELECTED);
+*/
+             "\89ö\95¨", MENU_UNSELECTED);
     if (invent) {
         /* we use y and n as accelerators so that we can accept user's
            response keyed to old "name an individual object?" prompt */
         any.a_char = 'i'; /* group accelerator 'y' */
         add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'y', ATR_NONE,
+/*JP
                  "a particular object in inventory", MENU_UNSELECTED);
+*/
+                 "\8e\9d\82¿\95¨\82Ì\92\86\82Ì\88ê\82Â\82Ì\83A\83C\83e\83\80", MENU_UNSELECTED);
         any.a_char = 'o'; /* group accelerator 'n' */
         add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'n', ATR_NONE,
+/*JP
                  "the type of an object in inventory", MENU_UNSELECTED);
+*/
+                 "\8e\9d\82¿\95¨\82Ì\92\86\82Ì\88ê\82Â\82Ì\83A\83C\83e\83\80\82Ì\8eí\97Þ", MENU_UNSELECTED);
     }
     any.a_char = 'f'; /* group accelerator ',' (or ':' instead?) */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, ',', ATR_NONE,
+/*JP
              "the type of an object upon the floor", MENU_UNSELECTED);
+*/
+             "\8f°\82Ì\8fã\82É\82 \82é\88ê\82Â\82Ì\83A\83C\83e\83\80\82Ì\8eí\97Þ", MENU_UNSELECTED);
     any.a_char = 'd'; /* group accelerator '\' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, '\\', ATR_NONE,
+/*JP
              "the type of an object on discoveries list", MENU_UNSELECTED);
+*/
+             "\94­\8c©\95¨\88ê\97\97\82É\82 \82é\88ê\82Â\82Ì\83A\83C\83e\83\80\82Ì\8eí\97Þ", MENU_UNSELECTED);
     any.a_char = 'a'; /* group accelerator 'l' */
     add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'l', ATR_NONE,
+/*JP
              "record an annotation for the current level", MENU_UNSELECTED);
+*/
+             "\8c»\8dÝ\82Ì\8aK\82É\91Î\82·\82é\83\81\83\82\82Ì\8bL\98^", MENU_UNSELECTED);
+/*JP
     end_menu(win, "What do you want to name?");
+*/
+    end_menu(win, "\82Ç\82ê\82É\96¼\91O\82ð\82Â\82¯\82Ü\82·\82©\81H");
     if (select_menu(win, PICK_ONE, &pick_list) > 0) {
         ch = pick_list[0].item.a_char;
         free((genericptr_t) pick_list);
@@ -661,7 +794,10 @@ docallcmd()
             (void) xname(obj);
 
             if (!obj->dknown) {
+/*JP
                 You("would never recognize another one.");
+*/
+                You("\91¼\82É\94F\8e¯\82Å\82«\82È\82¢\81D");
 #if 0
             } else if (!objtyp_is_callable(obj->otyp)) {
                 You("know those as well as you ever will.");
@@ -700,10 +836,16 @@ register struct obj *obj;
 
     if (objects[otemp.otyp].oc_class == POTION_CLASS && otemp.fromsink)
         /* kludge, meaning it's sink water */
+/*JP
         Sprintf(qbuf, "Call a stream of %s fluid:",
+*/
+        Sprintf(qbuf, "%s\89t\91Ì:",
                 OBJ_DESCR(objects[otemp.otyp]));
     else
+/*JP
         Sprintf(qbuf, "Call %s:", an(xname(&otemp)));
+*/
+        Sprintf(qbuf, "%s\82É\89½\82Æ\96¼\91O\82ð\82Â\82¯\82é\81H", an(xname(&otemp)));
     getlin(qbuf, buf);
     if (!*buf || *buf == '\033')
         return;
@@ -861,8 +1003,10 @@ boolean called;
     struct permonst *mdat = mtmp->data;
     const char *pm_name = mdat->mname;
     boolean do_hallu, do_invis, do_it, do_saddle;
+#if 0 /*JP*/
     boolean name_at_start, has_adjectives;
     char *bp;
+#endif
 
     if (program_state.gameover)
         suppress |= SUPPRESS_HALLUCINATION;
@@ -880,7 +1024,10 @@ boolean called;
 
     /* unseen monsters, etc.  Use "it" */
     if (do_it) {
+/*JP
         Strcpy(buf, "it");
+*/
+        Strcpy(buf, "\89½\8eÒ\82©");
         return buf;
     }
 
@@ -899,8 +1046,10 @@ boolean called;
         name = priestname(mtmp, priestnambuf);
         EHalluc_resistance = save_prop;
         mtmp->minvis = save_invis;
+#if 0 /*JP*/
         if (article == ARTICLE_NONE && !strncmp(name, "the ", 4))
             name += 4;
+#endif
         return strcpy(buf, name);
     }
     /* an "aligned priest" not flagged as a priest or minion should be
@@ -916,6 +1065,7 @@ boolean called;
      * none of this applies.
      */
     if (mtmp->isshk && !do_hallu) {
+#if 0 /*JP*/
         if (adjective && article == ARTICLE_THE) {
             /* pathological case: "the angry Asidonhopo the blue dragon"
                sounds silly */
@@ -932,20 +1082,41 @@ boolean called;
             Strcat(buf, "invisible ");
         Strcat(buf, pm_name);
         return buf;
+#else
+        if (mdat == &mons[PM_SHOPKEEPER] && !do_invis){
+            Strcpy(buf, shkname(mtmp));
+        } else {
+            Sprintf(buf, "%s\82Æ\82¢\82¤\96¼\82Ì%s%s",
+                    shkname(mtmp), do_invis ? "\8ep\82Ì\8c©\82¦\82È\82¢" : "",
+                    pm_name);
+        }
+        return buf;
+#endif
     }
 
     /* Put the adjectives in the buffer */
     if (adjective)
+/*JP
         Strcat(strcat(buf, adjective), " ");
+*/
+        Strcat(buf, adjective);
     if (do_invis)
+/*JP
         Strcat(buf, "invisible ");
+*/
+        Strcat(buf, "\8ep\82Ì\8c©\82¦\82È\82¢");
     if (do_saddle && (mtmp->misc_worn_check & W_SADDLE) && !Blind
         && !Hallucination)
+/*JP
         Strcat(buf, "saddled ");
+*/
+        Strcat(buf, "\88Æ\82Ì\82Â\82¢\82Ä\82¢\82é");
+#if 0 /*JP*/
     if (buf[0] != 0)
         has_adjectives = TRUE;
     else
         has_adjectives = FALSE;
+#endif
 
     /* Put the actual monster name or type into the buffer now */
     /* Be sure to remember whether the buffer starts with a name */
@@ -954,16 +1125,29 @@ boolean called;
         char *rname = rndmonnam(&rnamecode);
 
         Strcat(buf, rname);
+#if 0 /*JP*/
         name_at_start = bogon_is_pname(rnamecode);
+#endif
     } else if (has_mname(mtmp)) {
         char *name = MNAME(mtmp);
 
         if (mdat == &mons[PM_GHOST]) {
+/*JP
             Sprintf(eos(buf), "%s ghost", s_suffix(name));
+*/
+            Sprintf(buf, "%s\82Ì\97H\97ì", name);
+#if 0 /*JP*/
             name_at_start = TRUE;
+#endif
         } else if (called) {
+/*JP
             Sprintf(eos(buf), "%s called %s", pm_name, name);
+*/
+            Sprintf(eos(buf), "%s\82Æ\82¢\82¤\96¼\82Ì%s", name, pm_name);
+#if 0 /*JP*/
             name_at_start = (boolean) type_is_pname(mdat);
+#endif
+#if 0 /*JP*//*\92è\8a¥\8e\8c\82Ì\8f\88\97\9d\82Í\95s\97v*/
         } else if (is_mplayer(mdat) && (bp = strstri(name, " the ")) != 0) {
             /* <name> the <adjective> <invisible> <saddled> <rank> */
             char pbuf[BUFSZ];
@@ -976,22 +1160,34 @@ boolean called;
             Strcpy(buf, pbuf);
             article = ARTICLE_NONE;
             name_at_start = TRUE;
+#endif
         } else {
             Strcat(buf, name);
+#if 0 /*JP*/
             name_at_start = TRUE;
+#endif
         }
     } else if (is_mplayer(mdat) && !In_endgame(&u.uz)) {
         char pbuf[BUFSZ];
 
         Strcpy(pbuf, rank_of((int) mtmp->m_lev, monsndx(mdat),
                              (boolean) mtmp->female));
+#if 0 /*JP*/
         Strcat(buf, lcase(pbuf));
+#else
+        Strcat(buf, pbuf);
+#endif
+#if 0 /*JP*/
         name_at_start = FALSE;
+#endif
     } else {
         Strcat(buf, pm_name);
+#if 0 /*JP*/
         name_at_start = (boolean) type_is_pname(mdat);
+#endif
     }
 
+#if 0 /*JP*//*\93ú\96{\8cê\82É\8a¥\8e\8c\82Í\82È\82¢*/
     if (name_at_start && (article == ARTICLE_YOUR || !has_adjectives)) {
         if (mdat == &mons[PM_WIZARD_OF_YENDOR])
             article = ARTICLE_THE;
@@ -1022,6 +1218,9 @@ boolean called;
             return buf;
         }
     }
+#else
+    return buf;
+#endif
 }
 
 char *
@@ -1142,8 +1341,12 @@ char *outbuf;
        its own obfuscation) */
     if (mon->data == &mons[PM_HIGH_PRIEST] && !Hallucination
         && Is_astralevel(&u.uz) && distu(mon->mx, mon->my) > 2) {
+#if 0 /*JP*/
         Strcpy(outbuf, article == ARTICLE_THE ? "the " : "");
         Strcat(outbuf, mon->female ? "high priestess" : "high priest");
+#else
+        Strcpy(outbuf, "\96@\89¤");
+#endif
     } else {
         Strcpy(outbuf, x_monnam(mon, article, (char *) 0, 0, TRUE));
     }
@@ -1227,6 +1430,7 @@ roguename()
 }
 
 static NEARDATA const char *const hcolors[] = {
+#if 0 /*JP*/
     "ultraviolet", "infrared", "bluish-orange", "reddish-green", "dark white",
     "light black", "sky blue-pink", "salty", "sweet", "sour", "bitter",
     "striped", "spiral", "swirly", "plaid", "checkered", "argyle", "paisley",
@@ -1234,6 +1438,15 @@ static NEARDATA const char *const hcolors[] = {
     "triangular", "cabernet", "sangria", "fuchsia", "wisteria", "lemon-lime",
     "strawberry-banana", "peppermint", "romantic", "incandescent",
     "octarine", /* Discworld: the Colour of Magic */
+#else
+    "\8e\87\8aO\90F\82Ì", "\90Ô\8aO\90F\82Ì", "\90Â\90F\82ª\82©\82Á\82½\83I\83\8c\83\93\83W\90F\82Ì", "\90Ô\82Ý\82ª\82©\82Á\82½\97Î\90F\82Ì", "\88Ã\82¢\94\92\90F\82Ì",
+    "\96¾\82é\82¢\8d\95\82Ì", "\90\85\90F\82ª\82©\82Á\82½\83s\83\93\83N\90F\82Ì", "\89\96\90h\82¢", "\8aÃ\82¢", "\82·\82Á\82Ï\82¢", "\8bê\82¢",
+    "\82µ\82Ü\96Í\97l\82Ì", "\82ç\82¹\82ñ\8fó\82Ì", "\94g\8fó\82Ì", "\8ai\8eq\96Í\97l\8fó\82Ì", "\83`\83F\83b\83N\8fó\82Ì", "\95ú\8eË\8fó\82Ì", "\83y\81[\83Y\83\8a\81[\96Í\97l\82Ì",
+    "\82µ\82Ý\8fó\82Ì", "\90Â\90F\82Ì\94Á\93_\8fó\82Ì", "\93_\8fó\82Ì", "\8el\8ap\8c`\8fó\82Ì", "\8aÛ\8fó\82Ì",
+    "\8eO\8ap\8fó\82Ì", "\83J\83x\83\8b\83l\90F\82Ì", "\83T\83\93\83O\83\8a\83A\90F\82Ì", "\91N\82â\82©\82È\90Ô\8e\87\90F\82Ì", "\93¡\90F\82Ì", "\83\8c\83\82\83\93\83\89\83C\83\80\90F\82Ì",
+    "ä\95\83o\83i\83i\90F\82Ì", "\83y\83p\81[\83~\83\93\83g\90F\82Ì", "\83\8d\83}\83\93\83`\83b\83N\82È\90F\82Ì", "\94\92\94M\90F\82Ì",
+    "\83I\83N\83^\83\8a\83\93\90F\82Ì",
+#endif
 };
 
 const char *
@@ -1251,7 +1464,10 @@ rndcolor()
     int k = rn2(CLR_MAX);
 
     return Hallucination ? hcolor((char *) 0)
+/*JP
                          : (k == NO_COLOR) ? "colorless"
+*/
+                         : (k == NO_COLOR) ? "\96³\90F\82Ì"
                                            : c_obj_colors[k];
 }
 
index ea73cac..dad2e32 100644 (file)
@@ -2,16 +2,30 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 static NEARDATA const char see_yourself[] = "see yourself";
 static NEARDATA const char unknown_type[] = "Unknown type of %s (%d)";
+#if 0 /*JP*/
 static NEARDATA const char c_armor[] = "armor", c_suit[] = "suit",
                            c_shirt[] = "shirt", c_cloak[] = "cloak",
                            c_gloves[] = "gloves", c_boots[] = "boots",
                            c_helmet[] = "helmet", c_shield[] = "shield",
                            c_weapon[] = "weapon", c_sword[] = "sword",
                            c_axe[] = "axe", c_that_[] = "that";
+#else
+static NEARDATA const char c_armor[]  = "\8aZ", c_suit[]   = "\95\9e",
+                           c_shirt[]  = "\83V\83\83\83c", c_cloak[]  = "\83N\83\8d\81[\83N",
+                           c_gloves[] = "\8f¬\8eè", c_boots[]  = "\8cC",
+                           c_helmet[] = "\8a\95", c_shield[] = "\8f\82",
+                           c_weapon[] = "\95\90\8aí", c_sword[]  = "\8c\95",
+                           c_axe[]    = "\95\80", c_that_[]  = "\82»\82ê";
+#endif
 
 static NEARDATA const long takeoff_order[] = {
     WORN_BLINDF, W_WEP,      WORN_SHIELD, WORN_GLOVES, LEFT_RING,
@@ -40,15 +54,27 @@ STATIC_DCL int FDECL(menu_remarm, (int));
 STATIC_DCL void FDECL(count_worn_stuff, (struct obj **, BOOLEAN_P));
 STATIC_PTR int FDECL(armor_or_accessory_off, (struct obj *));
 STATIC_PTR int FDECL(accessory_or_armor_on, (struct obj *));
+#if 0 /*JP*/
 STATIC_DCL void FDECL(already_wearing, (const char *));
+#else
+STATIC_DCL void FDECL(already_wearing, (const char*, struct obj *));
+#endif
 STATIC_DCL void FDECL(already_wearing2, (const char *, const char *));
 
 void
 off_msg(otmp)
 struct obj *otmp;
 {
+#if 0 /*JP*/
     if (flags.verbose)
         You("were wearing %s.", doname(otmp));
+#else
+    const char *j;
+    const char *m;
+    m = joffmsg(otmp, &j);
+    if(flags.verbose)
+        You("%s%s%s\81D", doname(otmp), j, jpast(m));
+#endif
 }
 
 /* for items that involve no delay */
@@ -57,6 +83,7 @@ on_msg(otmp)
 struct obj *otmp;
 {
     if (flags.verbose) {
+#if 0 /*JP*/
         char how[BUFSZ];
         /* call xname() before obj_is_pname(); formatting obj's name
            might set obj->dknown and that affects the pname test */
@@ -67,6 +94,12 @@ struct obj *otmp;
             Sprintf(how, " around your %s", body_part(HEAD));
         You("are now wearing %s%s.",
             obj_is_pname(otmp) ? the(otmp_name) : an(otmp_name), how);
+#else
+        const char *j;
+        const char *m;
+        m = jonmsg(otmp, &j);
+        You("%s%s%s\81D", xname(otmp), j, jpast(m));
+#endif
     }
 }
 
@@ -96,13 +129,22 @@ boolean on;
 
         if (on) {
             if (!is_boots(obj))
+/*JP
                 You("move very quietly.");
+*/
+                Your("\90Ã\82©\82É\93®\82¯\82é\82æ\82¤\82É\82È\82Á\82½\81D");
             else if (Levitation || Flying)
                 You("float imperceptibly.");
             else
+/*JP
                 You("walk very quietly.");
+*/
+                Your("\91«\89¹\82Í\8f¬\82³\82­\82È\82Á\82½\81D");
         } else {
+/*JP
             You("sure are noisy.");
+*/
+            Your("\91«\89¹\82Í\91å\82«\82­\82È\82Á\82½\81D");
         }
     }
 }
@@ -173,8 +215,13 @@ Boots_on(VOID_ARGS)
         /* though not better than potion speed */
         if (!oldprop && !(HFast & TIMEOUT)) {
             makeknown(uarmf->otyp);
+#if 0 /*JP*/
             You_feel("yourself speed up%s.",
                      (oldprop || HFast) ? " a bit more" : "");
+#else
+            You("%s\91f\91\81\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+                     (oldprop  || HFast) ? "\82³\82ç\82É" : "");
+#endif
         }
         break;
     case ELVEN_BOOTS:
@@ -215,7 +262,10 @@ Boots_off(VOID_ARGS)
     case SPEED_BOOTS:
         if (!Very_fast && !context.takeoff.cancelled_don) {
             makeknown(otyp);
+/*JP
             You_feel("yourself slow down%s.", Fast ? " a bit" : "");
+*/
+            You("%s\82Ì\82ë\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", Fast ? "\82¿\82å\82Á\82Æ" : "");
         }
         break;
     case WATER_WALKING_BOOTS:
@@ -285,8 +335,14 @@ Cloak_on(VOID_ARGS)
         /* Note: it's already being worn, so we have to cheat here. */
         if ((HInvis || EInvis) && !Blind) {
             newsym(u.ux, u.uy);
+#if 0 /*JP*/
             You("can %s!", See_invisible ? "no longer see through yourself"
                                          : see_yourself);
+#else
+            pline("%s\81I",
+                  See_invisible ? "\82 \82È\82½\82Í\93§\96¾\82Å\82È\82­\82È\82Á\82½" :
+                  "\8e©\95ª\8e©\90g\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½");
+#endif
         }
         break;
     case CLOAK_OF_INVISIBILITY:
@@ -295,12 +351,20 @@ Cloak_on(VOID_ARGS)
         if (!oldprop && !HInvis && !Blind) {
             makeknown(uarmc->otyp);
             newsym(u.ux, u.uy);
+#if 0 /*JP*/
             pline("Suddenly you can%s yourself.",
                   See_invisible ? " see through" : "not see");
+#else
+            pline("\93Ë\91R\81C%s\82È\82Á\82½\81D",
+                  See_invisible ? "\82 \82È\82½\82Í\93§\96¾\82É" : "\8e©\95ª\8e©\90g\82ª\8c©\82¦\82È\82­");
+#endif
         }
         break;
     case OILSKIN_CLOAK:
+/*JP
         pline("%s very tightly.", Tobjnam(uarmc, "fit"));
+*/
+        pline("%s\82Í\82Æ\82Ä\82à\82Ò\82Á\82¿\82è\8d\87\82¤\81D",xname(uarmc));
         break;
     /* Alchemy smock gives poison _and_ acid resistance */
     case ALCHEMY_SMOCK:
@@ -340,17 +404,28 @@ Cloak_off(VOID_ARGS)
     case MUMMY_WRAPPING:
         if (Invis && !Blind) {
             newsym(u.ux, u.uy);
+#if 0 /*JP*/
             You("can %s.", See_invisible ? "see through yourself"
                                          : "no longer see yourself");
+#else
+            pline("%s\81D", See_invisible ? "\82 \82È\82½\82Í\93§\96¾\82É\82È\82Á\82½"
+                                        : "\8e©\95ª\8e©\90g\82ª\8c©\82¦\82È\82­\82È\82Á\82½");
+#endif
         }
         break;
     case CLOAK_OF_INVISIBILITY:
         if (!oldprop && !HInvis && !Blind) {
             makeknown(CLOAK_OF_INVISIBILITY);
             newsym(u.ux, u.uy);
+#if 0 /*JP*/
             pline("Suddenly you can %s.",
                   See_invisible ? "no longer see through yourself"
                                 : see_yourself);
+#else
+            pline("\93Ë\91R\81C%s\81D",
+                  See_invisible ? "\82 \82È\82½\82Í\93§\96¾\82Å\82È\82­\82È\82Á\82½"
+                                : "\8e©\95ª\8e©\90g\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½");
+#endif
         }
         break;
     /* Alchemy smock gives poison _and_ acid resistance */
@@ -401,21 +476,41 @@ Helmet_on(VOID_ARGS)
     case DUNCE_CAP:
         if (uarmh && !uarmh->cursed) {
             if (Blind)
+/*JP
                 pline("%s for a moment.", Tobjnam(uarmh, "vibrate"));
+*/
+                pline("%s\82Í\88ê\8fu\90k\82¦\82½\81D", xname(uarmh));
             else
+#if 0 /*JP*/
                 pline("%s %s for a moment.", Tobjnam(uarmh, "glow"),
                       hcolor(NH_BLACK));
+#else
+                pline("%s\82Í\88ê\8fu%s\8bP\82¢\82½\81D",
+                      xname(uarmh), jconj_adj(hcolor(NH_BLACK)));
+#endif
             curse(uarmh);
         }
         context.botl = 1; /* reveal new alignment or INT & WIS */
         if (Hallucination) {
+#if 0 /*JP*/
             pline("My brain hurts!"); /* Monty Python's Flying Circus */
+#else
+            pline("\82Ì\81[\82Ý\82»\83o\81[\83\93\81I"); /*\83\82\83\93\83e\83B\83p\83C\83\\83\93\82Æ\82Í\82¿\82å\82Á\82Æ\88á\82¤\82¯\82Ç*/
+#endif
         } else if (uarmh && uarmh->otyp == DUNCE_CAP) {
+#if 0 /*JP*/
             You_feel("%s.", /* track INT change; ignore WIS */
                      ACURR(A_INT)
                              <= (ABASE(A_INT) + ABON(A_INT) + ATEMP(A_INT))
                          ? "like sitting in a corner"
                          : "giddy");
+#else
+            You("%s\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+                     ACURR(A_INT)
+                             <= (ABASE(A_INT) + ABON(A_INT) + ATEMP(A_INT))
+                         ? "\8aX\8ap\82É\8dÀ\82Á\82Ä\82¢\82é"
+                         : "\96Ú\82ª\82Ü\82í\82Á\82½");
+#endif
         } else {
             /* [message moved to uchangealign()] */
             makeknown(HELM_OF_OPPOSITE_ALIGNMENT);
@@ -512,11 +607,22 @@ boolean voluntary; /* taking gloves off on purpose? */
         return;
 
     if (touch_petrifies(&mons[obj->corpsenm]) && !Stone_resistance) {
+#if 0 /*JP*/
         You("now wield %s in your bare %s.",
             corpse_xname(obj, (const char *) 0, CXN_ARTICLE),
             makeplural(body_part(HAND)));
+#else
+        You("%s\82ð\91f%s\82Å\8e\9d\82Á\82½\81D",
+            corpse_xname(obj, (const char *) 0, CXN_ARTICLE),
+            body_part(HAND));
+#endif
+#if 0 /*JP*/
         Sprintf(kbuf, "%s gloves while wielding %s",
                 voluntary ? "removing" : "losing", killer_xname(obj));
+#else
+        Sprintf(kbuf, "%s\82ð\8e\9d\82Á\82Ä\82¢\82é\82Æ\82«\82É\8eè\91Ü\82ð%s",
+                killer_xname(obj), voluntary ? "\8aO\82µ\82Ä" : "\8e¸\82Á\82Ä");
+#endif
         instapetrify(kbuf);
         /* life-saved; can't continue wielding cockatrice corpse though */
         remove_worn_item(obj, FALSE);
@@ -712,14 +818,25 @@ Amulet_on()
         /* Don't use same message as polymorph */
         if (orig_sex != poly_gender()) {
             makeknown(AMULET_OF_CHANGE);
+#if 0 /*JP*/
             You("are suddenly very %s!",
                 flags.female ? "feminine" : "masculine");
+#else
+            You("\93Ë\91R%s\82Á\82Û\82­\82È\82Á\82½\81I",
+                flags.female ? "\8f\97" : "\92j");
+#endif
             context.botl = 1;
         } else
             /* already polymorphed into single-gender monster; only
                changed the character's base sex */
+/*JP
             You("don't feel like yourself.");
+*/
+            You("\8e©\95ª\8e©\90g\82\82á\82È\82­\82È\82Á\82½\8bC\82ª\82µ\82½\81D");
+/*JP
         pline_The("amulet disintegrates!");
+*/
+        pline("\96\82\8f\9c\82¯\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81I");
         if (orig_sex == poly_gender() && uamul->dknown
             && !objects[AMULET_OF_CHANGE].oc_name_known
             && !objects[AMULET_OF_CHANGE].oc_uname)
@@ -730,7 +847,10 @@ Amulet_on()
     case AMULET_OF_STRANGULATION:
         if (can_be_strangled(&youmonst)) {
             makeknown(AMULET_OF_STRANGULATION);
+/*JP
             pline("It constricts your throat!");
+*/
+            pline("\96\82\8f\9c\82¯\82Í\82 \82È\82½\82Ì\8dA\82ð\8di\82ß\82Â\82¯\82½\81I");
             Strangled = 6L;
         }
         break;
@@ -772,7 +892,10 @@ Amulet_off()
             setworn((struct obj *) 0, W_AMUL);
             if (!breathless(youmonst.data) && !amphibious(youmonst.data)
                 && !Swimming) {
+/*JP
                 You("suddenly inhale an unhealthy amount of water!");
+*/
+                You("\93Ë\91R\81C\91å\97Ê\82Ì\90\85\82ð\88ù\82Ý\8d\9e\82ñ\82¾\81I");
                 (void) drown();
             }
             return;
@@ -781,9 +904,15 @@ Amulet_off()
     case AMULET_OF_STRANGULATION:
         if (Strangled) {
             if (Breathless)
+/*JP
                 Your("%s is no longer constricted!", body_part(NECK));
+*/
+                pline("%s\82ª\8ay\82É\82È\82Á\82½\81I", body_part(NECK));
             else
+/*JP
                 You("can breathe more easily!");
+*/
+                You("\8ay\82É\8cÄ\8bz\82Å\82«\82é\82æ\82¤\82É\82È\82Á\82½\81I");
             Strangled = 0L;
         }
         break;
@@ -887,7 +1016,10 @@ register struct obj *obj;
 
         if (Invis && !oldprop && !HSee_invisible && !Blind) {
             newsym(u.ux, u.uy);
+/*JP
             pline("Suddenly you are transparent, but there!");
+*/
+            pline("\93Ë\91R\93§\96¾\82É\82È\82Á\82½\81D\82µ\82©\82µ\91\8dÝ\82Í\82µ\82Ä\82¢\82é\81I");
             learnring(obj, TRUE);
         }
         break;
@@ -1000,15 +1132,23 @@ boolean gone;
 
         if (Invisible && !Blind) {
             newsym(u.ux, u.uy);
+/*JP
             pline("Suddenly you cannot see yourself.");
+*/
+            pline("\93Ë\91R\81C\8e©\95ª\8e©\90g\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D");
             learnring(obj, TRUE);
         }
         break;
     case RIN_INVISIBILITY:
         if (!Invis && !BInvis && !Blind) {
             newsym(u.ux, u.uy);
+#if 0 /*JP*/
             Your("body seems to unfade%s.",
                  See_invisible ? " completely" : "..");
+#else
+            Your("\91Ì\82ª%s\81D",
+                 See_invisible ? "\8a®\91S\82É\8c»\82í\82ê\82½" : "\8e\9f\91æ\82É\8c»\82í\82ê\82Ä\82«\82½\81D\81D");
+#endif
             learnring(obj, TRUE);
         }
         break;
@@ -1090,7 +1230,10 @@ register struct obj *otmp;
     if (Blind && !already_blind) {
         changed = TRUE;
         if (flags.verbose)
+/*JP
             You_cant("see any more.");
+*/
+            You("\89½\82à\8c©\82¦\82È\82­\82È\82Á\82½\81D");
         /* set ball&chain variables before the hero goes blind */
         if (Punished)
             set_bc(0);
@@ -1101,10 +1244,16 @@ register struct obj *otmp;
             /* this can only happen by putting on the Eyes of the Overworld;
                that shouldn't actually produce a permanent cure, but we
                can't let the "blind from birth" conduct remain intact */
+/*JP
             pline("For the first time in your life, you can see!");
+*/
+            pline("\90l\90\82Å\8f\89\82ß\82Ä\81C\96Ú\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81I");
             u.uroleplay.blind = FALSE;
         } else
+/*JP
             You("can see!");
+*/
+            You("\96Ú\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81I");
     }
     if (changed) {
         /* blindness has just been toggled */
@@ -1136,11 +1285,17 @@ register struct obj *otmp;
             /* "still cannot see" makes no sense when removing lenses
                since they can't have been the cause of your blindness */
             if (otmp->otyp != LENSES)
+/*JP
                 You("still cannot see.");
+*/
+                You("\82Ü\82¾\96Ú\82ª\8c©\82¦\82È\82¢\81D");
         } else {
             changed = TRUE; /* !was_blind */
             /* "You were wearing the Eyes of the Overworld." */
+/*JP
             You_cant("see anything now!");
+*/
+            You("\8d¡\82Í\89½\82à\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I");
             /* set ball&chain variables before the hero goes blind */
             if (Punished)
                 set_bc(0);
@@ -1148,7 +1303,10 @@ register struct obj *otmp;
     } else if (was_blind) {
         if (!gulp_blnd_check()) {
             changed = TRUE; /* !Blind */
+/*JP
             You("can see again.");
+*/
+            You("\82Ó\82½\82½\82Ñ\96Ú\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81D");
         }
     }
     if (changed) {
@@ -1415,17 +1573,30 @@ int
 dotakeoff()
 {
     struct obj *otmp = (struct obj *) 0;
+#if 1 /*JP*/
+    const char *j;
+    const char *m;
+#endif
 
     count_worn_stuff(&otmp, FALSE);
     if (!Narmorpieces && !Naccessories) {
         /* assert( GRAY_DRAGON_SCALES > YELLOW_DRAGON_SCALE_MAIL ); */
         if (uskin)
+#if 0 /*JP*/
             pline_The("%s merged with your skin!",
                       uskin->otyp >= GRAY_DRAGON_SCALES
                           ? "dragon scales are"
                           : "dragon scale mail is");
+#else
+            pline("\83h\83\89\83S\83\93\82Ì\97Ø%s\82Í\82 \82È\82½\82Ì\94§\82Æ\97Z\8d\87\82µ\82Ä\82µ\82Ü\82Á\82Ä\82¢\82é\81I",
+                      uskin->otyp >= GRAY_DRAGON_SCALES
+                          ? "" : "\8aZ");
+#endif
         else
+/*JP
             pline("Not wearing any armor or accessories.");
+*/
+            pline("\8aZ\82â\91\95\8fü\95i\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
     if (Narmorpieces != 1 || ParanoidRemove)
@@ -1448,7 +1619,12 @@ dotakeoff()
             }
             Sprintf(why, " without taking off your %s first", what);
         }
+#if 0 /*JP*/
         You_cant("take that off%s.", why);
+#else
+        m = joffmsg(otmp, &j);
+        You("\82»\82ê%s%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", j, m);
+#endif
         return 0;
     }
 
@@ -1463,7 +1639,10 @@ doremring()
 
     count_worn_stuff(&otmp, TRUE);
     if (!Naccessories && !Narmorpieces) {
+/*JP
         pline("Not wearing any accessories or armor.");
+*/
+        pline("\91\95\8fü\95i\82â\8aZ\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
     if (Naccessories != 1 || ParanoidRemove)
@@ -1481,10 +1660,14 @@ register struct obj *otmp;
 {
     /* Curses, like chickens, come home to roost. */
     if ((otmp == uwep) ? welded(otmp) : (int) otmp->cursed) {
+#if 0 /*JP*/
         boolean use_plural = (is_boots(otmp) || is_gloves(otmp)
                               || otmp->otyp == LENSES || otmp->quan > 1L);
 
         You("can't.  %s cursed.", use_plural ? "They are" : "It is");
+#else
+        pline("\96³\97\9d\82¾\81D\82»\82ê\82Í\8eô\82í\82ê\82Ä\82¢\82é\81D");
+#endif
         otmp->bknown = TRUE;
         return 1;
     }
@@ -1504,18 +1687,36 @@ register struct obj *otmp;
         multi_reason = "disrobing";
         if (is_helmet(otmp)) {
             /* ick... */
+/*JP
             nomovemsg = !strcmp(helm_simple_name(otmp), "hat")
+*/
+            nomovemsg = !strcmp(helm_simple_name(otmp), "\96X\8eq")
+/*JP
                             ? "You finish taking off your hat."
+*/
+                            ? "\82 \82È\82½\82Í\8a\95\82ð\92E\82¬\82¨\82¦\82½\81D"
+/*JP
                             : "You finish taking off your helmet.";
+*/
+                            : "\82 \82È\82½\82Í\96X\8eq\82ð\92E\82¬\82¨\82¦\82½\81D";
             afternmv = Helmet_off;
         } else if (is_gloves(otmp)) {
+/*JP
             nomovemsg = "You finish taking off your gloves.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\8f¬\8eè\82ð\92E\82¬\82¨\82¦\82½\81D";
             afternmv = Gloves_off;
         } else if (is_boots(otmp)) {
+/*JP
             nomovemsg = "You finish taking off your boots.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\8cC\82ð\92E\82¬\82¨\82¦\82½\81D";
             afternmv = Boots_off;
         } else {
+/*JP
             nomovemsg = "You finish taking off your suit.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\92\85\82Ä\82¢\82é\95¨\82ð\92E\82¬\82¨\82¦\82½\81D";
             afternmv = Armor_off;
         }
     } else {
@@ -1548,18 +1749,38 @@ register struct obj *otmp;
     return 1;
 }
 
+/*JP 
+** \95¨\82É\82æ\82Á\82Ä\93®\8e\8c\82ª\95Ï\89»\82·\82é\82Ì\82Å otmp\82ð\92Ç\89Á
+*/
 STATIC_OVL void
+#if 0 /*JP*/
 already_wearing(cc)
 const char *cc;
+#else
+already_wearing(cc, otmp)
+const char *cc;
+struct obj *otmp;
+#endif
 {
+#if 1 /*JP*/
+    const char *j;
+    const char *m;
+    m = jconj(jonmsg(otmp, &j), "\82Ä\82¢\82é");
+#endif
+/*JP
     You("are already wearing %s%c", cc, (cc == c_that_) ? '!' : '.');
+*/
+    You("\82à\82¤%s%s%s%s", cc, j,  m, (cc == c_that_) ? "\81I" : "\81D");
 }
 
 STATIC_OVL void
 already_wearing2(cc1, cc2)
 const char *cc1, *cc2;
 {
+/*JP
     You_cant("wear %s because you're wearing %s there already.", cc1, cc2);
+*/
+    You_cant("%s\82ð\90g\82É\95t\82¯\82Ä\82¢\82é\82Ì\82Å%s\82ð\90g\82É\82Â\82¯\82ç\82ê\82È\82¢\81D", cc2, cc1);
 }
 
 /*
@@ -1577,6 +1798,10 @@ boolean noisy;
 {
     int err = 0;
     const char *which;
+#if 1 /*JP*/
+    const char *m;
+    const char *j;
+#endif
 
     which = is_cloak(otmp)
                 ? c_cloak
@@ -1590,17 +1815,27 @@ boolean noisy;
         && (which != c_cloak || youmonst.data->msize != MZ_SMALL)
         && (racial_exception(&youmonst, otmp) < 1)) {
         if (noisy)
+/*JP
             pline_The("%s will not fit on your body.", which);
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\91Ì\82É\8d\87\82í\82È\82¢\81D", which);
         return 0;
     } else if (otmp->owornmask & W_ARMOR) {
         if (noisy)
+#if 0 /*JP*/
             already_wearing(c_that_);
+#else
+            already_wearing(c_that_, otmp);
+#endif
         return 0;
     }
 
     if (welded(uwep) && bimanual(uwep) && (is_suit(otmp) || is_shirt(otmp))) {
         if (noisy)
+/*JP
             You("cannot do that while holding your %s.",
+*/
+            pline("%s\82ð\8e\9d\82Á\82½\82Ü\82Ü\82Å\82Í\82»\82ê\82Í\8fo\97\88\82È\82¢\81D",
                 is_sword(uwep) ? c_sword : c_weapon);
         return 0;
     }
@@ -1608,51 +1843,89 @@ boolean noisy;
     if (is_helmet(otmp)) {
         if (uarmh) {
             if (noisy)
+#if 0 /*JP*/
                 already_wearing(an(helm_simple_name(uarmh)));
+#else
+                already_wearing(helm_simple_name(uarmh), uarmh);
+#endif
             err++;
         } else if (Upolyd && has_horns(youmonst.data) && !is_flimsy(otmp)) {
             /* (flimsy exception matches polyself handling) */
             if (noisy)
+#if 0 /*JP*/
                 pline_The("%s won't fit over your horn%s.",
                           helm_simple_name(otmp),
                           plur(num_horns(youmonst.data)));
+#else
+                pline("\8ap\82ª\82\82á\82Ü\82Å%s\82ð\90g\82É\82Â\82¯\82ç\82ê\82È\82¢\81D",
+                      helm_simple_name(otmp));
+#endif
             err++;
         } else
             *mask = W_ARMH;
     } else if (is_shield(otmp)) {
         if (uarms) {
             if (noisy)
+#if 0 /*JP*/
                 already_wearing(an(c_shield));
+#else
+                already_wearing(c_shield, uarms);
+#endif
             err++;
         } else if (uwep && bimanual(uwep)) {
             if (noisy)
+#if 0 /*JP*/
                 You("cannot wear a shield while wielding a two-handed %s.",
                     is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE)
                                                    ? c_axe
                                                    : c_weapon);
+#else
+                {
+                    m = jconj(jonmsg(uwep, &j), "\82Ä\82¢\82é");
+                    You("\97¼\8eè\8e\9d\82¿\82Ì%s%s%s\82Ì\82Å\8f\82\82Å\90g\82ð\8eç\82ê\82È\82¢\81D",
+                        is_sword(uwep) ? c_sword :
+                        uwep->otyp == BATTLE_AXE ? c_axe : c_weapon,
+                        j, m);
+                }
+#endif
             err++;
         } else if (u.twoweap) {
             if (noisy)
+/*JP
                 You("cannot wear a shield while wielding two weapons.");
+*/
+                You("\93ñ\93\81\97¬\82ð\82µ\82Ä\82¢\82é\82Ì\82Å\8f\82\82Å\90g\82ð\8eç\82ê\82È\82¢\81D");
             err++;
         } else
             *mask = W_ARMS;
     } else if (is_boots(otmp)) {
         if (uarmf) {
             if (noisy)
+#if 0 /*JP*/
                 already_wearing(c_boots);
+#else
+                already_wearing(c_boots, uarmf);
+#endif
             err++;
         } else if (Upolyd && slithy(youmonst.data)) {
             if (noisy)
+#if 0 /*JP*/
                 You("have no feet..."); /* not body_part(FOOT) */
+#else
+                You("\91«\82ª\82È\82¢\81D\81D\81D");  /* not body_part(FOOT) */
+#endif
             err++;
         } else if (Upolyd && youmonst.data->mlet == S_CENTAUR) {
             /* break_armor() pushes boots off for centaurs,
                so don't let dowear() put them back on... */
             if (noisy)
+#if 0 /*JP*/
                 pline("You have too many hooves to wear %s.",
                       c_boots); /* makeplural(body_part(FOOT)) yields
                                    "rear hooves" which sounds odd */
+#else
+                pline("%s\82ð\97\9a\82­\82É\82Í\91«\82ª\91½\82·\82¬\82é\81D", c_boots);
+#endif
             err++;
         } else if (u.utrap
                    && (u.utraptype == TT_BEARTRAP || u.utraptype == TT_INFLOOR
@@ -1660,15 +1933,28 @@ boolean noisy;
                        || u.utraptype == TT_BURIEDBALL)) {
             if (u.utraptype == TT_BEARTRAP) {
                 if (noisy)
+/*JP
                     Your("%s is trapped!", body_part(FOOT));
+*/
+                    Your("%s\82Íã©\82É\82©\82©\82Á\82Ä\82¢\82é\81I", body_part(FOOT));
             } else if (u.utraptype == TT_INFLOOR || u.utraptype == TT_LAVA) {
                 if (noisy)
+#if 0 /*JP*/
                     Your("%s are stuck in the %s!",
                          makeplural(body_part(FOOT)), surface(u.ux, u.uy));
+#else
+                    Your("%s\82Í%s\82É\82Í\82Ü\82Á\82Ä\82¢\82é\81I",
+                         body_part(FOOT), surface(u.ux, u.uy));
+#endif
             } else { /*TT_BURIEDBALL*/
                 if (noisy)
+#if 0 /*JP*/
                     Your("%s is attached to the buried ball!",
                          body_part(LEG));
+#else
+                    Your("%s\82Í\96\84\82Ü\82Á\82Ä\82¢\82é\8b\85\82É\82Â\82È\82ª\82Á\82Ä\82¢\82é\81I",
+                         body_part(LEG));
+#endif
             }
             err++;
         } else
@@ -1676,11 +1962,18 @@ boolean noisy;
     } else if (is_gloves(otmp)) {
         if (uarmg) {
             if (noisy)
+#if 0 /*JP*/
                 already_wearing(c_gloves);
+#else
+                already_wearing(c_gloves, uarmg);
+#endif
             err++;
         } else if (welded(uwep)) {
             if (noisy)
+/*JP
                 You("cannot wear gloves over your %s.",
+*/
+                You("%s\82Ì\8fã\82©\82ç\8f¬\8eè\82ð\91\95\94õ\82Å\82«\82È\82¢\81D",
                     is_sword(uwep) ? c_sword : c_weapon);
             err++;
         } else
@@ -1689,10 +1982,17 @@ boolean noisy;
         if (uarm || uarmc || uarmu) {
             if (uarmu) {
                 if (noisy)
+#if 0 /*JP*/
                     already_wearing(an(c_shirt));
+#else
+                    already_wearing(c_shirt, uarmu);
+#endif
             } else {
                 if (noisy)
+/*JP
                     You_cant("wear that over your %s.",
+*/
+                    You("%s\82Ì\8fã\82©\82ç\92\85\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
                              (uarm && !uarmc) ? c_armor
                                               : cloak_simple_name(uarmc));
             }
@@ -1702,18 +2002,27 @@ boolean noisy;
     } else if (is_cloak(otmp)) {
         if (uarmc) {
             if (noisy)
+/*JP
                 already_wearing(an(cloak_simple_name(uarmc)));
+*/
+                already_wearing(cloak_simple_name(uarmc), otmp);
             err++;
         } else
             *mask = W_ARMC;
     } else if (is_suit(otmp)) {
         if (uarmc) {
             if (noisy)
+/*JP
                 You("cannot wear armor over a %s.", cloak_simple_name(uarmc));
+*/
+                You("%s\82Ì\8fã\82©\82ç\92\85\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", cloak_simple_name(uarmc));
             err++;
         } else if (uarm) {
             if (noisy)
+/*JP
                 already_wearing("some armor");
+*/
+                already_wearing("\8aZ", uarm);
             err++;
         } else
             *mask = W_ARM;
@@ -1722,7 +2031,10 @@ boolean noisy;
            happens if you have armor for slots that are covered up or
            extra armor for slots that are filled */
         if (noisy)
+/*JP
             silly_thing("wear", otmp);
+*/
+            silly_thing("\90g\82É\82Â\82¯\82é", otmp);
         err++;
     }
     /* Unnecessary since now only weapons and special items like pick-axes get
@@ -1744,7 +2056,11 @@ struct obj *obj;
     boolean armor, ring, eyewear;
 
     if (obj->owornmask & (W_ACCESSORY | W_ARMOR)) {
+#if 0 /*JP*/
         already_wearing(c_that_);
+#else
+        already_wearing(c_that_, obj);
+#endif
         return 0;
     }
     armor = (obj->oclass == ARMOR_CLASS);
@@ -1759,9 +2075,15 @@ struct obj *obj;
         if (obj->otyp == HELM_OF_OPPOSITE_ALIGNMENT
             && qstart_level.dnum == u.uz.dnum) { /* in quest */
             if (u.ualignbase[A_CURRENT] == u.ualignbase[A_ORIGINAL])
+/*JP
                 You("narrowly avoid losing all chance at your goal.");
+*/
+                You("\96Ú\93I\82ð\92B\90¬\82·\82é\89Â\94\\90«\82ð\8e¸\82¤\82±\82Æ\82ð\82È\82ñ\82Æ\82©\89ñ\94ð\82µ\82½\81D");
             else /* converted */
+/*JP
                 You("are suddenly overcome with shame and change your mind.");
+*/
+                You("\93Ë\91R\92p\82¸\82©\82µ\82­\82È\82Á\82Ä\8dl\82¦\82ð\95Ï\82¦\82½\81D");
             u.ublessed = 0; /* lose your god's protection */
             makeknown(obj->otyp);
             context.botl = 1; /*for AC after zeroing u.ublessed */
@@ -1774,13 +2096,22 @@ struct obj *obj;
             int res = 0;
 
             if (nolimbs(youmonst.data)) {
+/*JP
                 You("cannot make the ring stick to your body.");
+*/
+                You("\8ew\97Ö\82ð\82Í\82ß\82ê\82È\82¢\91Ì\82¾\81D");
                 return 0;
             }
             if (uleft && uright) {
+#if 0 /*JP*/
                 There("are no more %s%s to fill.",
                       humanoid(youmonst.data) ? "ring-" : "",
                       makeplural(body_part(FINGER)));
+#else
+                pline("\82Í\82ß\82é\82±\82Æ\82Ì\82Å\82«\82é%s%s\82ª\82È\82¢\81D",
+                      humanoid(youmonst.data) ? "\96ò" : "",
+                      body_part(FINGER));
+#endif
                 return 0;
             }
             if (uleft) {
@@ -1789,9 +2120,15 @@ struct obj *obj;
                 mask = LEFT_RING;
             } else {
                 do {
+#if 0 /*JP*/
                     Sprintf(qbuf, "Which %s%s, Right or Left?",
                             humanoid(youmonst.data) ? "ring-" : "",
                             body_part(FINGER));
+#else
+                    Sprintf(qbuf, "\82Ç\82¿\82ç\82Ì%s%s\81C\89E(r)\82»\82ê\82Æ\82à\8d¶(l)\81H",
+                            humanoid(youmonst.data) ? "\96ò" : "",
+                            body_part(FINGER));
+#endif
                     answer = yn_function(qbuf, "rl", '\0');
                     switch (answer) {
                     case '\0':
@@ -1810,7 +2147,10 @@ struct obj *obj;
             if (uarmg && uarmg->cursed) {
                 res = !uarmg->bknown;
                 uarmg->bknown = 1;
+/*JP
                 You("cannot remove your gloves to put on the ring.");
+*/
+                You("\8ew\97Ö\82ð\82Í\82ß\82æ\82¤\82Æ\82µ\82½\82ª\8f¬\8eè\82ª\92E\82°\82È\82¢\81D");
                 return res; /* uses move iff we learned gloves are cursed */
             }
             if (uwep) {
@@ -1821,38 +2161,70 @@ struct obj *obj;
                     /* welded will set bknown */
                     if (bimanual(uwep))
                         hand = makeplural(hand);
+/*JP
                     You("cannot free your weapon %s to put on the ring.",
+*/
+                    You("\8ew\97Ö\82ð\82Í\82ß\82æ\82¤\82Æ\82µ\82½\82ª\97\98%s\82Ì\8e©\97R\82ª\82«\82©\82È\82¢\81D",
                         hand);
                     return res; /* uses move iff we learned weapon is cursed */
                 }
             }
         } else if (obj->oclass == AMULET_CLASS) {
             if (uamul) {
+#if 0 /*JP*/
                 already_wearing("an amulet");
+#else
+                already_wearing("\96\82\8f\9c\82¯", uamul);
+#endif
                 return 0;
             }
         } else if (eyewear) {
             if (ublindf) {
                 if (ublindf->otyp == TOWEL)
+#if 0 /*JP:T*/
                     Your("%s is already covered by a towel.",
                          body_part(FACE));
+#else
+                    You("\8aù\82É\83^\83I\83\8b\82ð\90g\82É\82Â\82¯\82Ä\82¢\82é\81D");
+#endif
                 else if (ublindf->otyp == BLINDFOLD) {
                     if (obj->otyp == LENSES)
+/*JP
                         already_wearing2("lenses", "a blindfold");
+*/
+                        already_wearing2("\83\8c\83\93\83Y", "\96Ú\89B\82µ");
                     else
+#if 0 /*JP*/
                         already_wearing("a blindfold");
+#else
+                        already_wearing("\96Ú\89B\82µ", ublindf);
+#endif
                 } else if (ublindf->otyp == LENSES) {
                     if (obj->otyp == BLINDFOLD)
+/*JP
                         already_wearing2("a blindfold", "some lenses");
+*/
+                        already_wearing2("\96Ú\89B\82µ", "\83\8c\83\93\83Y");
                     else
+#if 0 /*JP*/
                         already_wearing("some lenses");
+#else
+                        already_wearing("\83\8c\83\93\83Y", ublindf);
+#endif
                 } else {
+#if 0 /*JP*/
                     already_wearing(something); /* ??? */
+#else
+                    already_wearing("\89½\82©", ublindf); /* ??? */
+#endif
                 }
                 return 0;
             }
         } else {
             /* neither armor nor accessory */
+/*JP
+            You_cant("wear that!");
+*/
             You_cant("wear that!");
             return 0;
         }
@@ -1881,7 +2253,10 @@ struct obj *obj;
                 afternmv = Gloves_on;
             if (obj == uarm)
                 afternmv = Armor_on;
+/*JP
             nomovemsg = "You finish your dressing maneuver.";
+*/
+            nomovemsg = "\91\95\94õ\82µ\8fI\82¦\82½\81D";
         } else {
             if (is_cloak(obj))
                 (void) Cloak_on();
@@ -1926,7 +2301,10 @@ dowear()
     /* cantweararm() checks for suits of armor, not what we want here;
        verysmall() or nohands() checks for shields, gloves, etc... */
     if ((verysmall(youmonst.data) || nohands(youmonst.data))) {
+/*JP
         pline("Don't even bother.");
+*/
+        pline("\82»\82ñ\82È\82Â\82Ü\82ç\82È\82¢\82±\82Æ\82É\82±\82¾\82í\82é\82È\81D");
         return 0;
     }
     if (uarm && uarmu && uarmc && uarmh && uarms && uarmg && uarmf
@@ -1948,10 +2326,17 @@ doputon()
     if (uleft && uright && uamul && ublindf
         && uarm && uarmu && uarmc && uarmh && uarms && uarmg && uarmf) {
         /* 'P' message doesn't mention armor */
+#if 0 /*JP*/
         Your("%s%s are full, and you're already wearing an amulet and %s.",
              humanoid(youmonst.data) ? "ring-" : "",
              makeplural(body_part(FINGER)),
              (ublindf->otyp == LENSES) ? "some lenses" : "a blindfold");
+#else
+        Your("%s%s\82Í\82Ó\82³\82ª\82Á\82Ä\82é\82µ\81C\82·\82Å\82É\96\82\8f\9c\82¯\82Æ%s\82à\90g\82É\82Â\82¯\82Ä\82¢\82é\81D",
+             humanoid(youmonst.data) ? "\96ò" : "",
+             body_part(FINGER),
+             ublindf->otyp==LENSES ? "\83\8c\83\93\83Y" : "\96Ú\89B\82µ");
+#endif
         return 0;
     }
     otmp = getobj(accessories, "put on");
@@ -2018,10 +2403,14 @@ glibr()
     rightfall = (uright && !uright->cursed && (!welded(uwep)));
     if (!uarmg && (leftfall || rightfall) && !nolimbs(youmonst.data)) {
         /* changed so cursed rings don't fall off, GAN 10/30/86 */
+#if 0 /*JP*/
         Your("%s off your %s.",
              (leftfall && rightfall) ? "rings slip" : "ring slips",
              (leftfall && rightfall) ? makeplural(body_part(FINGER))
                                      : body_part(FINGER));
+#else
+        Your("\8ew\97Ö\82Í%s\82©\82ç\8a\8a\82è\97\8e\82¿\82½\81D", body_part(FINGER));
+#endif
         xfl++;
         if (leftfall) {
             otmp = uleft;
@@ -2047,8 +2436,13 @@ glibr()
             otherwep = makeplural(otherwep);
         hand = body_part(HAND);
         which = "left ";
+#if 0 /*JP*/
         Your("%s %s%s from your %s%s.", otherwep, xfl ? "also " : "",
              otense(otmp, "slip"), which, hand);
+#else
+        You("%s%s%s\82©\82ç\8a\8a\82è\97\8e\82Æ\82µ\82½\81D", otherwep, xfl ? "\82à\82Ü\82½" : "\82ð",
+            body_part(HAND));
+#endif
         xfl++;
         wastwoweap = TRUE;
         setuswapwep((struct obj *) 0); /* clears u.twoweap */
@@ -2080,10 +2474,17 @@ glibr()
             hand = makeplural(hand);
         else if (wastwoweap)
             which = "right "; /* preceding msg was about left */
+#if 0 /*JP*/
         pline("%s %s%s %s%s from your %s%s.",
               !strncmp(thiswep, "corpse", 6) ? "The" : "Your",
               otherwep ? "other " : "", thiswep, xfl ? "also " : "",
               otense(otmp, "slip"), which, hand);
+#else
+        You("%s%s%s%s\82©\82ç\8a\8a\82è\97\8e\82Æ\82µ\82½\81D",
+            otherwep ? "\82à\82¤\82Ð\82Æ\82Â\82Ì" : "", thiswep,
+            xfl ? "\82à\82Ü\82½" : "\82ð",
+            body_part(HAND));
+#endif
         /* xfl++; */
         otmp->quan = savequan;
         setuwep((struct obj *) 0);
@@ -2171,19 +2572,32 @@ register struct obj *otmp;
     /* special ring checks */
     if (otmp == uright || otmp == uleft) {
         if (nolimbs(youmonst.data)) {
+#if 0 /*JP*/
             pline_The("ring is stuck.");
+#else
+            pline("\8ew\97Ö\82Í\91Ì\82É\96\84\82Ü\82Á\82Ä\82µ\82Ü\82Á\82Ä\82¢\82é\81D");
+#endif
             return 0;
         }
         why = 0; /* the item which prevents ring removal */
         if (welded(uwep) && (otmp == uright || bimanual(uwep))) {
+/*JP
             Sprintf(buf, "free a weapon %s", body_part(HAND));
+*/
+            Sprintf(buf, "\97\98\98r\82Ì\8e©\97R\82ª\82«\82©\82È\82¢");
             why = uwep;
         } else if (uarmg && uarmg->cursed) {
+/*JP
             Sprintf(buf, "take off your %s", c_gloves);
+*/
+            Sprintf(buf, "%s\82ª\92E\82°\82È\82¢", c_gloves);
             why = uarmg;
         }
         if (why) {
+/*JP
             You("cannot %s to remove the ring.", buf);
+*/
+            You("\8ew\97Ö\82ð\82Í\82¸\82»\82¤\82Æ\82µ\82½\82ª%s\81D", buf);
             why->bknown = TRUE;
             return 0;
         }
@@ -2191,24 +2605,40 @@ register struct obj *otmp;
     /* special glove checks */
     if (otmp == uarmg) {
         if (welded(uwep)) {
+#if 0 /*JP*/
             You("are unable to take off your %s while wielding that %s.",
                 c_gloves, is_sword(uwep) ? c_sword : c_weapon);
+#else
+            You("%s\82ð\8e\9d\82Á\82½\82Ü\82Ü%s\82ð\82Í\82¸\82·\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+                is_sword(uwep) ? c_sword : c_weapon, c_gloves);
+#endif
             uwep->bknown = TRUE;
             return 0;
         } else if (Glib) {
+#if 0 /*JP*/
             You_cant("take off the slippery %s with your slippery %s.",
                      c_gloves, makeplural(body_part(FINGER)));
+#else
+            You_cant("\8a\8a\82è\82â\82·\82¢%s\82ð\8a\8a\82è\82â\82·\82¢%s\82Å\82Í\82¸\82¹\82È\82¢\81D",
+                     c_gloves, body_part(FINGER));
+#endif
             return 0;
         }
     }
     /* special boot checks */
     if (otmp == uarmf) {
         if (u.utrap && u.utraptype == TT_BEARTRAP) {
+/*JP
             pline_The("bear trap prevents you from pulling your %s out.",
+*/
+            pline("%s\82ª\8cF\82Ìã©\82É\82Â\82©\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\92E\82®\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
                       body_part(FOOT));
             return 0;
         } else if (u.utrap && u.utraptype == TT_INFLOOR) {
+/*JP
             You("are stuck in the %s, and cannot pull your %s out.",
+*/
+            You("%s\82ª%s\82É\82Í\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\92E\82®\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
                 surface(u.ux, u.uy), makeplural(body_part(FOOT)));
             return 0;
         }
@@ -2217,20 +2647,36 @@ register struct obj *otmp;
     if (otmp == uarm || otmp == uarmu) {
         why = 0; /* the item which prevents disrobing */
         if (uarmc && uarmc->cursed) {
+/*JP
             Sprintf(buf, "remove your %s", cloak_simple_name(uarmc));
+*/
+            Sprintf(buf, "%s\82ª\92E\82°\82È\82¢", cloak_simple_name(uarmc));
             why = uarmc;
         } else if (otmp == uarmu && uarm && uarm->cursed) {
+/*JP
             Sprintf(buf, "remove your %s", c_suit);
+*/
+            Sprintf(buf, "%s\82ª\92E\82°\82È\82¢", c_suit);
             why = uarm;
         } else if (welded(uwep) && bimanual(uwep)) {
+#if 0 /*JP*/
             Sprintf(buf, "release your %s",
                     is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE)
                                                    ? c_axe
                                                    : c_weapon);
+#else
+            Sprintf(buf, "%s\82ª\8eè\95ú\82¹\82È\82¢",
+                    is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE)
+                                                   ? c_axe
+                                                   : c_weapon);
+#endif
             why = uwep;
         }
         if (why) {
+/*JP
             You("cannot %s to take off %s.", buf, the(xname(otmp)));
+*/
+            You("%s\82ð\82Í\82¸\82»\82¤\82Æ\82µ\82½\82ª%s\81D", xname(otmp), buf);
             why->bknown = TRUE;
             return 0;
         }
@@ -2288,16 +2734,25 @@ do_takeoff()
     if (doff->what == W_WEP) {
         if (!cursed(uwep)) {
             setuwep((struct obj *) 0);
+/*JP
             You("are empty %s.", body_part(HANDED));
+*/
+            You("\89½\82à%s\82É\82µ\82Ä\82¢\82È\82¢\81D", body_part(HAND));
             u.twoweap = FALSE;
         }
     } else if (doff->what == W_SWAPWEP) {
         setuswapwep((struct obj *) 0);
+/*JP
         You("no longer have a second weapon readied.");
+*/
+        You("\97\\94õ\82Ì\95\90\8aí\82ð\82¨\82³\82ß\82½\81D");
         u.twoweap = FALSE;
     } else if (doff->what == W_QUIVER) {
         setuqwep((struct obj *) 0);
+/*JP
         You("no longer have ammunition readied.");
+*/
+        You("\8f\80\94õ\82µ\82½\96î\92e\82ð\82¨\82³\82ß\82½\81D");
     } else if (doff->what == WORN_ARMOR) {
         otmp = uarm;
         if (!cursed(otmp))
@@ -2379,7 +2834,10 @@ take_off(VOID_ARGS)
     doff->delay = 0;
 
     if (doff->what == 0L) {
+/*JP
         You("finish %s.", doff->disrobing);
+*/
+        You("\91\95\94õ\82ð\89ð\82«\82¨\82¦\82½\81D");
         return 0;
     } else if (doff->what == W_WEP) {
         doff->delay = 1;
@@ -2454,12 +2912,21 @@ doddoremarm()
     int result = 0;
 
     if (context.takeoff.what || context.takeoff.mask) {
+/*JP
         You("continue %s.", context.takeoff.disrobing);
+*/
+        You("\91\95\94õ\82ð\89ð\82­\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D");
+/*JP
         set_occupation(take_off, context.takeoff.disrobing, 0);
+*/
+        set_occupation(take_off, "\91\95\94õ\82ð\89ð\82­", 0);
         return 0;
     } else if (!uwep && !uswapwep && !uquiver && !uamul && !ublindf && !uleft
                && !uright && !wearing_armor()) {
+/*JP
         You("are not wearing anything.");
+*/
+        You("\89½\82à\91\95\94õ\82µ\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
 
@@ -2470,6 +2937,7 @@ doddoremarm()
         result = menu_remarm(result);
 
     if (context.takeoff.mask) {
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\8eg\82í\82È\82¢*/
         /* default activity for armor and/or accessories,
            possibly combined with weapons */
         (void) strncpy(context.takeoff.disrobing, "disrobing", CONTEXTVERBSZ);
@@ -2477,6 +2945,7 @@ doddoremarm()
         if (!(context.takeoff.mask & ~W_WEAPON))
             (void) strncpy(context.takeoff.disrobing, "disarming",
                            CONTEXTVERBSZ);
+#endif
         (void) take_off();
     }
     /* The time to perform the command is already completely accounted for
@@ -2498,7 +2967,10 @@ int retry;
         all_worn_categories = (retry == -2);
     } else if (flags.menu_style == MENU_FULL) {
         all_worn_categories = FALSE;
+/*JP
         n = query_category("What type of things do you want to take off?",
+*/
+        n = query_category("\82Ç\82Ì\83^\83C\83v\82Ì\95¨\82Ì\91\95\94õ\82ð\89ð\82«\82Ü\82·\82©\81H",
                            invent, WORN_TYPES | ALL_TYPES, &pick_list,
                            PICK_ANY);
         if (!n)
@@ -2516,7 +2988,10 @@ int retry;
             all_worn_categories = TRUE;
     }
 
+/*JP
     n = query_objlist("What do you want to take off?", invent,
+*/
+    n = query_objlist("\82Ç\82Ì\91\95\94õ\82ð\89ð\82«\82Ü\82·\82©\81H", invent,
                       SIGNAL_NOMENU | USE_INVLET | INVORDER_SORT, &pick_list,
                       PICK_ANY,
                       all_worn_categories ? is_worn : is_worn_by_type);
@@ -2525,7 +3000,10 @@ int retry;
             (void) select_off(pick_list[i].item.a_obj);
         free((genericptr_t) pick_list);
     } else if (n < 0 && flags.menu_style != MENU_COMBINATION) {
+/*JP
         There("is nothing else you can remove or unwield.");
+*/
+        pline("\91\95\94õ\82ð\89ð\82¯\82é\82à\82Ì\82Í\89½\82à\82È\82¢\81D");
     }
     return 0;
 }
@@ -2545,44 +3023,68 @@ register struct obj *atmp;
     if (DESTROY_ARM(uarmc)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("%s crumbles and turns to dust!", cloak_simple_name(uarmc));
+*/
+        Your("%s\82Í\95²\81X\82É\82È\82Á\82½\81I", cloak_simple_name(uarmc));
         (void) Cloak_off();
         useup(otmp);
     } else if (DESTROY_ARM(uarm)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("armor turns to dust and falls to the %s!", surface(u.ux, u.uy));
+*/
+        Your("\8aZ\82Í\90o\82Æ\82È\82è%s\82É\97\8e\82¿\82½\81I", surface(u.ux,u.uy));
         (void) Armor_gone();
         useup(otmp);
     } else if (DESTROY_ARM(uarmu)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("shirt crumbles into tiny threads and falls apart!");
+*/
+        Your("\83V\83\83\83c\82Í\83Y\83^\83Y\83^\82É\97ô\82¯\81C\8f¬\82³\82È\8e\85\8bû\82Æ\82È\82è\97\8e\82¿\82½\81I");
         (void) Shirt_off();
         useup(otmp);
     } else if (DESTROY_ARM(uarmh)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("%s turns to dust and is blown away!", helm_simple_name(uarmh));
+*/
+        Your("%s\82Í\90o\82Æ\82È\82è\90\81\82«\82Æ\82ñ\82¾\81I", helm_simple_name(uarmh));
         (void) Helmet_off();
         useup(otmp);
     } else if (DESTROY_ARM(uarmg)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("gloves vanish!");
+*/
+                Your("\8f¬\8eè\82Í\8fÁ\82¦\82½\81I");
         (void) Gloves_off();
         useup(otmp);
+/*JP
         selftouch("You");
+*/
+        selftouch("\82»\82Ì\82Æ\82«\82 \82È\82½\82Í");
     } else if (DESTROY_ARM(uarmf)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("boots disintegrate!");
+*/
+        Your("\8cC\82Í\95²\81X\82É\8dÓ\82¯\82½\81I");
         (void) Boots_off();
         useup(otmp);
     } else if (DESTROY_ARM(uarms)) {
         if (donning(otmp))
             cancel_don();
+/*JP
         Your("shield crumbles away!");
+*/
+        Your("\8f\82\82Í\8dÓ\82¯\8eU\82Á\82½\81I");
         (void) Shield_off();
         useup(otmp);
     } else {
index efcb768..49250d9 100644 (file)
--- a/src/dog.c
+++ b/src/dog.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL int NDECL(pet_type);
@@ -87,7 +92,10 @@ boolean quietly;
                 if (!quietly)
                     /* have just been given "You <do something with>
                        the figurine and it transforms." message */
+/*JP
                     pline("... into a pile of dust.");
+*/
+                    pline("\81D\81D\81D\82»\82µ\82Ä\82¿\82è\82Ì\8eR\82É\82È\82Á\82½\81D");
                 break; /* mtmp is null */
             }
         } else if (!rn2(3)) {
@@ -96,7 +104,10 @@ boolean quietly;
             pm = rndmonst();
             if (!pm) {
                 if (!quietly)
+/*JP
                     There("seems to be nothing available for a familiar.");
+*/
+                    pline("\89º\96l\82Í\8c»\82ê\82È\82©\82Á\82½\81D");
                 break;
             }
         }
@@ -104,7 +115,10 @@ boolean quietly;
         mtmp = makemon(pm, x, y, MM_EDOG | MM_IGNOREWATER | NO_MINVENT);
         if (otmp && !mtmp) { /* monster was genocided or square occupied */
             if (!quietly)
+/*JP
                 pline_The("figurine writhes and then shatters into pieces!");
+*/
+                pline("\90l\8c`\82Í\82à\82ª\82«\81C\82­\82¾\82¯\8eU\82Á\82½\81I");
             break;
         }
     } while (!mtmp && --trycnt > 0);
@@ -126,7 +140,10 @@ boolean quietly;
             mtmp->mtame = 0;   /* not tame after all */
             if (chance == 2) { /* hostile (cursed figurine) */
                 if (!quietly)
+/*JP
                     You("get a bad feeling about this.");
+*/
+                    You("\8c\99\82È\97\\8a´\82ª\82µ\82½\81D");
                 mtmp->mpeaceful = 0;
                 set_malign(mtmp);
             }
@@ -170,13 +187,29 @@ makedog()
     if (!*petname && pettype == PM_LITTLE_DOG) {
         /* All of these names were for dogs. */
         if (Role_if(PM_CAVEMAN))
+#if 0 /*JP*/
             petname = "Slasher"; /* The Warrior */
+#else
+            petname = "\83X\83\89\83b\83V\83\83\81[";
+#endif
         if (Role_if(PM_SAMURAI))
+#if 0 /*JP*/
             petname = "Hachi"; /* Shibuya Station */
+#else
+            petname = "\83n\83`\8cö";
+#endif
         if (Role_if(PM_BARBARIAN))
+#if 0 /*JP*/
             petname = "Idefix"; /* Obelix */
+#else
+            petname = "\83C\83f\83t\83B\83N\83X";
+#endif
         if (Role_if(PM_RANGER))
+#if 0 /*JP*/
             petname = "Sirius"; /* Orion's dog */
+#else
+            petname = "\83V\83\8a\83E\83X";
+#endif
     }
 
     mtmp = makemon(&mons[pettype], u.ux, u.uy, MM_EDOG);
@@ -613,21 +646,36 @@ boolean pets_only; /* true for ascension or final escape */
                 mdrop_special_objs(mtmp); /* drop Amulet */
             } else if (mtmp->meating || mtmp->mtrapped) {
                 if (canseemon(mtmp))
+#if 0 /*JP*/
                     pline("%s is still %s.", Monnam(mtmp),
                           mtmp->meating ? "eating" : "trapped");
+#else
+                    pline("%s\82Í\82Ü\82¾%s\81D", Monnam(mtmp),
+                          mtmp->meating ? "\90H\82×\82Ä\82¢\82é" : "ã©\82É\82©\82©\82Á\82½\82Ü\82Ü\82¾");
+#endif
                 stay_behind = TRUE;
             } else if (mon_has_amulet(mtmp)) {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s seems very disoriented for a moment.",
+*/
+                    pline("%s\82Í\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\82æ\82¤\82¾\81D",
                           Monnam(mtmp));
                 stay_behind = TRUE;
             }
             if (stay_behind) {
                 if (mtmp->mleashed) {
+#if 0 /*JP*/
                     pline("%s leash suddenly comes loose.",
                           humanoid(mtmp->data)
                               ? (mtmp->female ? "Her" : "His")
                               : "Its");
+#else
+                    pline("%s\82É\8c\8b\82Î\82ê\82½\95R\82Í\93Ë\91R\82ä\82é\82ñ\82¾\81D",
+                          humanoid(mtmp->data)
+                              ? (mtmp->female ? "\94Þ\8f\97" : "\94Þ")
+                              : "\82»\82Ì\90\95¨");
+#endif
                     m_unleash(mtmp, FALSE);
                 }
                 if (mtmp == u.usteed) {
@@ -670,7 +718,10 @@ boolean pets_only; /* true for ascension or final escape */
         } else if (mtmp->mleashed) {
             /* this can happen if your quest leader ejects you from the
                "home" level while a leashed pet isn't next to you */
+/*JP
             pline("%s leash goes slack.", s_suffix(Monnam(mtmp)));
+*/
+            pline("%s\82É\8c\8b\82Î\82ê\82½\95R\82Í\82½\82é\82ñ\82¾\81D", Monnam(mtmp));
             m_unleash(mtmp, FALSE);
         }
     }
@@ -902,10 +953,19 @@ register struct obj *obj;
                 boolean big_corpse =
                     (obj->otyp == CORPSE && obj->corpsenm >= LOW_PM
                      && mons[obj->corpsenm].msize > mtmp->data->msize);
+#if 0 /*JP*/
                 pline("%s catches %s%s", Monnam(mtmp), the(xname(obj)),
                       !big_corpse ? "." : ", or vice versa!");
+#else
+                pline("%s\82Í%s\82ð\82Â\82©\82Ü\82¦\82½%s",
+                      Monnam(mtmp), xname(obj),
+                      !big_corpse ? "\81D" : "\81C\82Æ\8c¾\82¤\82æ\82è\82»\82Ì\8bt\82©\81I");
+#endif
             } else if (cansee(mtmp->mx, mtmp->my))
+/*JP
                 pline("%s.", Tobjnam(obj, "stop"));
+*/
+                pline("%s\82Í\8e~\82Ü\82Á\82½\81D", xname(obj));
             /* dog_eat expects a floor object */
             place_object(obj, mtmp->mx, mtmp->my);
             (void) dog_eat(mtmp, obj, mtmp->mx, mtmp->my, FALSE);
@@ -985,11 +1045,21 @@ boolean was_dead;
         if (!quietly && cansee(mtmp->mx, mtmp->my)) {
             if (haseyes(youmonst.data)) {
                 if (haseyes(mtmp->data))
+#if 0 /*JP*/
                     pline("%s %s to look you in the %s.", Monnam(mtmp),
                           mtmp->mpeaceful ? "seems unable" : "refuses",
                           body_part(EYE));
+#else
+                    pline("%s\82Í\82 \82È\82½\82Ì%s%s\81D", Monnam(mtmp),
+                          body_part(EYE),
+                          mtmp->mpeaceful ? "\82ð\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\82æ\82¤\82¾" :
+                          "\82©\82ç\96Ú\82ð\82»\82ç\82µ\82½");
+#endif
                 else
+/*JP
                     pline("%s avoids your gaze.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82 \82È\82½\82Ì\82É\82ç\82Ý\82ð\89ñ\94ð\82µ\82½\81D", Monnam(mtmp));
             }
         }
     } else {
index 36e6c4a..9aa611d 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #include "mfndpos.h"
@@ -268,13 +273,26 @@ boolean devour;
            pet eats visible food. */
         if (sawpet || (seeobj && canspotmon(mtmp))) {
             if (tunnels(mtmp->data))
+/*JP
                 pline("%s digs in.", noit_Monnam(mtmp));
+*/
+                pline("%s\82Í\8c@\82Á\82Ä\82¢\82é\81D", noit_Monnam(mtmp));
             else
+#if 0 /*JP*/
                 pline("%s %s %s.", noit_Monnam(mtmp),
                       devour ? "devours" : "eats", distant_name(obj, doname));
+#else
+                pline("%s\82Í%s\82ð%s\82¢\82é\81D", noit_Monnam(mtmp),
+                      distant_name(obj, doname), devour ? "\88ù\82Ý\8d\9e\82ñ\82Å" : "\90H\82×\82Ä");
+#endif
         } else if (seeobj)
+#if 0 /*JP*/
             pline("It %s %s.", devour ? "devours" : "eats",
                   distant_name(obj, doname));
+#else
+            pline("\82»\82ê\82Í%s\82ð%s\82¢\82é\81D", distant_name(obj, doname),
+                  devour ? "\88ù\82Ý\8d\9e\82ñ\82Å" : "\90H\82×\82Ä");
+#endif
     }
     if (obj->unpaid) {
         Strcpy(objnambuf, xname(obj));
@@ -296,8 +314,13 @@ boolean devour;
         obj->oerodeproof = 0;
         mtmp->mstun = 1;
         if (canseemon(mtmp) && flags.verbose) {
+#if 0 /*JP:T*/
             pline("%s spits %s out in disgust!", Monnam(mtmp),
                   distant_name(obj, doname));
+#else
+            pline("%s\82Í%s\82ð\83y\83b\82Æ\93f\82«\8fo\82µ\82½\81I", Monnam(mtmp),
+                  distant_name(obj,doname));
+#endif
         }
     } else if (obj == uball) {
         unpunish();
@@ -365,21 +388,38 @@ register struct edog *edog;
             if (mtmp->mhp < 1)
                 goto dog_died;
             if (cansee(mtmp->mx, mtmp->my))
+/*JP
                 pline("%s is confused from hunger.", Monnam(mtmp));
+*/
+                pline("%s\82Í\8bó\95 \82Ì\82½\82ß\8d¬\97\90\82µ\82Ä\82¢\82é\81D", Monnam(mtmp));
             else if (couldsee(mtmp->mx, mtmp->my))
                 beg(mtmp);
             else
+/*JP
                 You_feel("worried about %s.", y_monnam(mtmp));
+*/
+                You("%s\82ª\90S\94z\82É\82È\82Á\82½\81D", y_monnam(mtmp));
             stop_occupation();
         } else if (monstermoves > edog->hungrytime + 750 || mtmp->mhp < 1) {
         dog_died:
             if (mtmp->mleashed && mtmp != u.usteed)
+/*JP
                 Your("leash goes slack.");
+*/
+                Your("\95R\82Í\82½\82é\82ñ\82¾\81D");
             else if (cansee(mtmp->mx, mtmp->my))
+/*JP
                 pline("%s starves.", Monnam(mtmp));
+*/
+                pline("%s\82Í\8bQ\82¦\82Å\8e\80\82ñ\82¾\81D", Monnam(mtmp));
             else
+#if 0 /*JP*/
                 You_feel("%s for a moment.",
                          Hallucination ? "bummed" : "sad");
+#else
+                You("%s\8bC\95ª\82É\82¨\82»\82í\82ê\82½\81D",
+                    Hallucination ? "\82ª\82Á\82©\82è\82µ\82½" : "\94ß\82µ\82¢");
+#endif
             mondied(mtmp);
             return  TRUE;
         }
@@ -440,8 +480,13 @@ int udist;
                         if (carryamt != obj->quan)
                             otmp = splitobj(obj, carryamt);
                         if (cansee(omx, omy) && flags.verbose)
+#if 0 /*JP:T*/
                             pline("%s picks up %s.", Monnam(mtmp),
                                   distant_name(otmp, doname));
+#else
+                            pline("%s\82Í%s\82ð\8fE\82Á\82½\81D", Monnam(mtmp),
+                                  distant_name(obj, doname));
+#endif
                         obj_extract_self(otmp);
                         newsym(omx, omy);
                         (void) mpickobj(mtmp, otmp);
@@ -701,7 +746,10 @@ register int after; /* this is extra fast monster movement */
     if (!Conflict && !mtmp->mconf
         && mtmp == u.ustuck && !sticks(youmonst.data)) {
         unstuck(mtmp); /* swallowed case handled above */
+/*JP
         You("get released!");
+*/
+        You("\93®\82¯\82é\82æ\82¤\82É\82È\82Á\82½\81I");
     }
 #endif
     if (!nohands(mtmp->data) && !verysmall(mtmp->data)) {
@@ -876,8 +924,13 @@ newdogpos:
 
         if (info[chi] & ALLOW_U) {
             if (mtmp->mleashed) { /* play it safe */
+#if 0 /*JP:T*/
                 pline("%s breaks loose of %s leash!", Monnam(mtmp),
                       mhis(mtmp));
+#else
+                pline("%s\82Í\8e©\95ª\82É\82Â\82¢\82Ä\82¢\82é\95R\82ð\82Í\82¸\82µ\82½\81I",
+                      Monnam(mtmp));
+#endif
                 m_unleash(mtmp, FALSE);
             }
             (void) mattacku(mtmp);
@@ -907,7 +960,10 @@ newdogpos:
         remove_monster(omx, omy);
         place_monster(mtmp, nix, niy);
         if (cursemsg[chi] && (wasseen || canseemon(mtmp)))
+/*JP
             pline("%s moves only reluctantly.", noit_Monnam(mtmp));
+*/
+            pline("%s\82Í\82¢\82â\82¢\82â\93®\82¢\82½\81D", Monnam(mtmp));
         for (j = MTSZ - 1; j > 0; j--)
             mtmp->mtrack[j] = mtmp->mtrack[j - 1];
         mtmp->mtrack[0].x = omx;
index ca4e2a6..de71b5f 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #define is_bigfoot(x) ((x) == &mons[PM_SASQUATCH])
@@ -26,7 +31,10 @@ STATIC_DCL char *FDECL(kickstr, (char *));
 STATIC_DCL void FDECL(otransit_msg, (struct obj *, BOOLEAN_P, long));
 STATIC_DCL void FDECL(drop_to, (coord *, SCHAR_P));
 
+/*JP
 static const char kick_passes_thru[] = "kick passes harmlessly through";
+*/
+static const char kick_passes_thru[] = "\8fR\82è\82Í\83_\83\81\81[\83W\82ð\97^\82¦\82¸\82É\82·\82è\94²\82¯\82½";
 
 STATIC_OVL void
 kickdmg(mon, clumsy)
@@ -59,7 +67,10 @@ register boolean clumsy;
         blessed_foot_damage = 1;
 
     if (mon->data == &mons[PM_SHADE] && !blessed_foot_damage) {
+/*JP
         pline_The("%s.", kick_passes_thru);
+*/
+        pline_The("%s\81D", kick_passes_thru);
         /* doesn't exercise skill or abuse alignment or frighten pet,
            and shades have no passive counterattack */
         return;
@@ -103,7 +114,10 @@ register boolean clumsy;
         mdx = mon->mx + u.dx;
         mdy = mon->my + u.dy;
         if (goodpos(mdx, mdy, mon, 0)) {
+/*JP
             pline("%s reels from the blow.", Monnam(mon));
+*/
+            pline("%s\82Í\8b­\91Å\82³\82ê\82æ\82ë\82ß\82¢\82½\81D", Monnam(mon));
             if (m_in_out_region(mon, mdx, mdy)) {
                 remove_monster(mon->mx, mon->my);
                 newsym(mon->mx, mon->my);
@@ -160,7 +174,10 @@ xchar x, y;
 
     if (Levitation && !rn2(3) && verysmall(mon->data)
         && !is_flyer(mon->data)) {
+/*JP
         pline("Floating in the air, you miss wildly!");
+*/
+        pline("\8bó\92\86\82É\95\82\82¢\82Ä\82¢\82é\82Ì\82Å\81C\91å\82«\82­\8aO\82µ\82½\81I");
         exercise(A_DEX, FALSE);
         (void) passive(mon, FALSE, 1, AT_KICK, FALSE);
         return;
@@ -208,10 +225,16 @@ xchar x, y;
             if (mon->data == &mons[PM_SHADE] && (!uarmf || !uarmf->blessed)) {
                 /* doesn't matter whether it would have hit or missed,
                    and shades have no passive counterattack */
+/*JP
                 Your("%s %s.", kick_passes_thru, mon_nam(mon));
+*/
+                You("%s\82ð\8fR\82Á\82½\82ª\81C%s\81D", mon_nam(mon), kick_passes_thru);
                 break; /* skip any additional kicks */
             } else if (tmp > (kickdieroll = rnd(20))) {
+/*JP
                 You("kick %s.", mon_nam(mon));
+*/
+                You("%s\82ð\8fR\82Á\82½\81D", mon_nam(mon));
                 sum = damageum(mon, uattk);
                 (void) passive(mon, (boolean) (sum > 0), (sum != 2), AT_KICK,
                                FALSE);
@@ -232,7 +255,10 @@ xchar x, y;
         if (!rn2((i < j / 10) ? 2 : (i < j / 5) ? 3 : 4)) {
             if (martial() && !rn2(2))
                 goto doit;
+/*JP
             Your("clumsy kick does no damage.");
+*/
+            Your("\95s\8aí\97p\82È\8fR\82è\82Å\83_\83\81\81[\83W\82ð\97^\82¦\82ç\82ê\82È\82©\82Á\82½\81D");
             (void) passive(mon, FALSE, 1, AT_KICK, FALSE);
             return;
         }
@@ -248,15 +274,23 @@ xchar x, y;
     else if (uarm && objects[uarm->otyp].oc_bulky && ACURR(A_DEX) < rnd(25))
         clumsy = TRUE;
 doit:
+/*JP
     You("kick %s.", mon_nam(mon));
+*/
+    You("%s\82ð\8fR\82Á\82½\81D", mon_nam(mon));
     if (!rn2(clumsy ? 3 : 4) && (clumsy || !bigmonst(mon->data))
         && mon->mcansee && !mon->mtrapped && !thick_skinned(mon->data)
         && mon->data->mlet != S_EEL && haseyes(mon->data) && mon->mcanmove
         && !mon->mstun && !mon->mconf && !mon->msleeping
         && mon->data->mmove >= 12) {
         if (!nohands(mon->data) && !rn2(martial() ? 5 : 3)) {
+#if 0 /*JP:T*/
             pline("%s blocks your %skick.", Monnam(mon),
                   clumsy ? "clumsy " : "");
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì%s\8fR\82è\82ð\96h\82¢\82¾\81D", Monnam(mon),
+                  clumsy ? "\95s\8aí\97p\82È" : "");
+#endif
             (void) passive(mon, FALSE, 1, AT_KICK, FALSE);
             return;
         } else {
@@ -266,6 +300,7 @@ doit:
                     unmap_object(x, y);
                     newsym(x, y);
                 }
+#if 0 /*JP*/
                 pline("%s %s, %s evading your %skick.", Monnam(mon),
                       (!level.flags.noteleport && can_teleport(mon->data))
                           ? "teleports"
@@ -277,6 +312,18 @@ doit:
                                                             ? "slides"
                                                             : "jumps",
                       clumsy ? "easily" : "nimbly", clumsy ? "clumsy " : "");
+#else
+                pline("%s\82Í%s\81C%s\82 \82È\82½\82Ì%s\8fR\82è\82ð\82½\82­\82Ý\82É\94ð\82¯\82½\81D", Monnam(mon),
+                      (!level.flags.noteleport && can_teleport(mon->data))
+                          ? "\8fu\8aÔ\88Ú\93®\82µ"
+                          : is_floater(mon->data) ? "\95\82\82«"
+                                : is_flyer(mon->data) ? "\82Í\82Î\82½\82«"
+                                                      : (nolimbs(mon->data)
+                                                         || slithy(mon->data))
+                                                            ? "\89¡\82É\8a\8a\82è"
+                                                            : "\92µ\82Ë",
+                      clumsy ? "\8ay\81X\82Æ" : "\91f\91\81\82­", clumsy ? "\95s\8aí\97p\82È" : "");
+#endif
                 (void) passive(mon, FALSE, 1, AT_KICK, FALSE);
                 return;
             }
@@ -302,8 +349,13 @@ register struct obj *gold;
     } else if (!mtmp->mcanmove) {
         /* too light to do real damage */
         if (canseemon(mtmp)) {
+#if 0 /*JP:T*/
             pline_The("%s harmlessly %s %s.", xname(gold),
                       otense(gold, "hit"), mon_nam(mtmp));
+#else
+            pline("%s\82Í%s\82É\96½\92\86\82µ\82½\81D", xname(gold),
+                  mon_nam(mtmp));
+#endif
             msg_given = TRUE;
         }
     } else {
@@ -315,7 +367,10 @@ register struct obj *gold;
             setmangry(mtmp);
         /* greedy monsters catch gold */
         if (cansee(mtmp->mx, mtmp->my))
+/*JP
             pline("%s catches the gold.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8bà\89Ý\82ð\83L\83\83\83b\83`\82µ\82½\81D", Monnam(mtmp));
         (void) mpickobj(mtmp, gold);
         gold = (struct obj *) 0; /* obj has been freed */
         if (mtmp->isshk) {
@@ -325,24 +380,43 @@ register struct obj *gold;
                 robbed -= value;
                 if (robbed < 0L)
                     robbed = 0L;
+#if 0 /*JP*/
                 pline_The("amount %scovers %s recent losses.",
                           !robbed ? "" : "partially ", mhis(mtmp));
+#else
+                pline("%s%s\91¹\8e¸\82ð\95â\93U\82·\82é\82Ì\82É\8eg\82í\82ê\82½\81D",
+                      !robbed ? "" : "\8bà\82Ì\88ê\95\94\82Í", mhis(mtmp));
+#endif
                 ESHK(mtmp)->robbed = robbed;
                 if (!robbed)
                     make_happy_shk(mtmp, FALSE);
             } else {
                 if (mtmp->mpeaceful) {
                     ESHK(mtmp)->credit += value;
+#if 0 /*JP*/
                     You("have %ld %s in credit.", ESHK(mtmp)->credit,
                         currency(ESHK(mtmp)->credit));
+#else
+                    You("%ld%s\82ð\91Ý\82µ\82É\82µ\82½\81D", ESHK(mtmp)->credit,
+                        currency(ESHK(mtmp)->credit));
+#endif
                 } else
+/*JP
                     verbalize("Thanks, scum!");
+*/
+                    verbalize("\82 \82è\82ª\82Æ\82æ\81I\82­\82»\82Á\82½\82ê\81I");
             }
         } else if (mtmp->ispriest) {
             if (mtmp->mpeaceful)
+/*JP
                 verbalize("Thank you for your contribution.");
+*/
+                verbalize("\8añ\95t\82É\8a´\8eÓ\82µ\82Ü\82·\81D");
             else
+/*JP
                 verbalize("Thanks, scum!");
+*/
+                verbalize("\82 \82è\82ª\82Æ\82æ\81I\82­\82»\82Á\82½\82ê\81I");
         } else if (mtmp->isgd) {
             umoney = money_cnt(invent);
             /* Some of these are iffy, because a hostile guard
@@ -380,9 +454,15 @@ register struct obj *gold;
                 }
             }
             if (mtmp->mpeaceful)
+/*JP
                 verbalize("That should do.  Now beat it!");
+*/
+                verbalize("\82È\82ñ\82¾\82¢\81H\82±\82ê\82Í\81H");
             else
+/*JP
                 verbalize("That's not enough, coward!");
+*/
+                verbalize("\82»\82ñ\82È\82à\82Ì\82Å\8dÏ\82Þ\82©\81C\94Ú\8b¯\8eÒ\81I");
         }
         return TRUE;
     }
@@ -421,9 +501,15 @@ xchar x, y; /* coordinates where object was before the impact, not after */
         otmp2 = otmp->nobj;
         if (objects[otmp->otyp].oc_material == GLASS
             && otmp->oclass != GEM_CLASS && !obj_resists(otmp, 33, 100)) {
+/*JP
             result = "shatter";
+*/
+            result = "\83K\83`\83\83\83\93";
         } else if (otmp->otyp == EGG && !rn2(3)) {
+/*JP
             result = "cracking";
+*/
+            result = "\83O\83V\83\83\83b";
         }
         if (result) {
             if (otmp->otyp == MIRROR)
@@ -433,7 +519,10 @@ xchar x, y; /* coordinates where object was before the impact, not after */
              * but it's always exactly 1 that breaks */
             if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM)
                 change_luck(-1);
+/*JP
             You_hear("a muffled %s.", result);
+*/
+            You_hear("\82±\82à\82Á\82½%s\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", result);
             if (costly) {
                 if (frominv && !otmp->unpaid)
                     otmp->no_charge = 1;
@@ -452,11 +541,19 @@ xchar x, y; /* coordinates where object was before the impact, not after */
     }
     if (costly && loss) {
         if (!insider) {
+/*JP
             You("caused %ld %s worth of damage!", loss, currency(loss));
+*/
+            You("%ld%s\95ª\82Ì\91¹\8aQ\82ð\82Ð\82«\82¨\82±\82µ\82½\81I", loss, currency(loss));
             make_angry_shk(shkp, x, y);
         } else {
+#if 0 /*JP*/
             You("owe %s %ld %s for objects destroyed.", mon_nam(shkp), loss,
                 currency(loss));
+#else
+            You("\8aí\95¨\94j\91¹\82Å%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81D", mon_nam(shkp), loss,
+                currency(loss));
+#endif
         }
     }
 }
@@ -499,27 +596,47 @@ xchar x, y;
             || trap->ttyp == WEB)) {
         if (!trap->tseen)
             find_trap(trap);
+#if 0 /*JP*/
         You_cant("kick %s that's in a %s!", something,
                  Hallucination ? "tizzy" : (trap->ttyp == WEB) ? "web"
                                                                : "pit");
+#else
+        You("%s\82Å\82Í%s\82ð\8fR\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I",
+            Hallucination ? "\8d¬\97\90\82µ\82½\8fó\91Ô"
+                          : trap->ttyp == WEB
+                             ? "\82­\82à\82Ì\91\83\82Ì\92\86" : "\97\8e\82µ\8c\8a\82Ì\92\86",
+            something);
+#endif
         return 1;
     }
 
     if (Fumbling && !rn2(3)) {
+/*JP
         Your("clumsy kick missed.");
+*/
+        Your("\95s\8aí\97p\82È\8fR\82è\82Í\8aO\82ê\82½\81D");
         return 1;
     }
 
     if (!uarmf && kickedobj->otyp == CORPSE
         && touch_petrifies(&mons[kickedobj->corpsenm]) && !Stone_resistance) {
+#if 0 /*JP*/
         You("kick %s with your bare %s.",
             corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE),
             makeplural(body_part(FOOT)));
+#else
+        You("\91f%s\82Å%s\82ð\8fR\82Á\82½\81D",
+            body_part(FOOT),
+            corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE));
+#endif
         if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) {
             ; /* hero has been transformed but kick continues */
         } else {
             /* normalize body shape here; foot, not body_part(FOOT) */
+/*JP
             Sprintf(killer.name, "kicking %s barefoot",
+*/
+            Sprintf(killer.name, "\8cC\96³\82µ\82Å%s\82ð\8fR\82Á\82Ä",
                     killer_xname(kickedobj));
             instapetrify(killer.name);
         }
@@ -563,24 +680,42 @@ xchar x, y;
         if ((!martial() && rn2(20) > ACURR(A_DEX))
             || IS_ROCK(levl[u.ux][u.uy].typ) || closed_door(u.ux, u.uy)) {
             if (Blind)
+/*JP
                 pline("It doesn't come loose.");
+*/
+                pline("\82Ñ\82­\82Æ\82à\82µ\82È\82¢\81D");
             else
+#if 0 /*JP*/
                 pline("%s %sn't come loose.",
                       The(distant_name(kickedobj, xname)),
                       otense(kickedobj, "do"));
+#else
+                pline("%s\82Í\82Ñ\82­\82Æ\82à\82µ\82È\82¢\81D",
+                      distant_name(kickedobj, xname));
+#endif
             return (!rn2(3) || martial());
         }
         if (Blind)
+/*JP
             pline("It comes loose.");
+*/
+            pline("\89½\82©\82ª\8aÉ\82ñ\82Å\82Æ\82ê\82½\81D");
         else
+#if 0 /*JP*/
             pline("%s %s loose.", The(distant_name(kickedobj, xname)),
                   otense(kickedobj, "come"));
+#else
+            pline("%s\82Í\8aÉ\82ñ\82Å\82Æ\82ê\82½\81D", distant_name(kickedobj, xname));
+#endif
         obj_extract_self(kickedobj);
         newsym(x, y);
         if (costly && (!costly_spot(u.ux, u.uy)
                        || !index(u.urooms, *in_rooms(x, y, SHOPBASE))))
             addtobill(kickedobj, FALSE, FALSE, FALSE);
+/*JP
         if (!flooreffects(kickedobj, u.ux, u.uy, "fall")) {
+*/
+        if (!flooreffects(kickedobj, u.ux, u.uy, "\97\8e\82¿\82é")) {
             place_object(kickedobj, u.ux, u.uy);
             stackobj(kickedobj);
             newsym(u.ux, u.uy);
@@ -593,11 +728,17 @@ xchar x, y;
         boolean otrp = kickedobj->otrapped;
 
         if (range < 2)
+/*JP
             pline("THUD!");
+*/
+            pline("\83K\83\93\81I");
         container_impact_dmg(kickedobj, x, y);
         if (kickedobj->olocked) {
             if (!rn2(5) || (martial() && !rn2(2))) {
+/*JP
                 You("break open the lock!");
+*/
+                You("\8c®\82ð\89ó\82µ\8aJ\82¯\82½\81I");
                 breakchestlock(kickedobj, FALSE);
                 if (otrp)
                     (void) chest_trap(kickedobj, LEG, FALSE);
@@ -605,7 +746,10 @@ xchar x, y;
             }
         } else {
             if (!rn2(3) || (martial() && !rn2(2))) {
+/*JP
                 pline_The("lid slams open, then falls shut.");
+*/
+                pline("\8aW\82ª\82Î\82½\82ñ\82Æ\8aJ\82«\81C\95Â\82\82½\81D");
                 kickedobj->lknown = 1;
                 if (otrp)
                     (void) chest_trap(kickedobj, LEG, FALSE);
@@ -627,7 +771,10 @@ xchar x, y;
      */
     if (range < 2) {
         if (!Is_box(kickedobj))
+/*JP
             pline("Thump!");
+*/
+            pline("\83S\83c\83\93\81I");
         return (!rn2(3) || martial());
     }
 
@@ -656,8 +803,13 @@ xchar x, y;
     }
 
     if (slide && !Blind)
+#if 0 /*JP*/
         pline("Whee!  %s %s across the %s.", Doname2(kickedobj),
               otense(kickedobj, "slide"), surface(x, y));
+#else
+        pline("\83Y\83\8b\83b\81I%s\82Í%s\82Ì\8fã\82ð\8a\8a\82Á\82½\81D", Doname2(kickedobj),
+              surface(x,y));
+#endif
 
     if (costly && !isgold)
         addtobill(kickedobj, FALSE, FALSE, TRUE);
@@ -695,7 +847,10 @@ xchar x, y;
                                 FALSE);
     }
 
+/*JP
     if (flooreffects(kickedobj, bhitpos.x, bhitpos.y, "fall"))
+*/
+    if(flooreffects(kickedobj, bhitpos.x, bhitpos.y, "\97\8e\82¿\82é"))
         return 1;
     if (kickedobj->unpaid)
         subfrombill(kickedobj, shkp);
@@ -715,36 +870,86 @@ char *buf;
     if (kickedobj)
         what = killer_xname(kickedobj);
     else if (maploc == &nowhere)
+/*JP
         what = "nothing";
+*/
+        what = "\89½\82à\82È\82¢\82Æ\82±\82ë";
     else if (IS_DOOR(maploc->typ))
+/*JP
         what = "a door";
+*/
+        what = "\94à";
     else if (IS_TREE(maploc->typ))
+/*JP
         what = "a tree";
+*/
+        what = "\96Ø";
     else if (IS_STWALL(maploc->typ))
+/*JP
         what = "a wall";
+*/
+        what = "\95Ç";
     else if (IS_ROCK(maploc->typ))
+/*JP
         what = "a rock";
+*/
+        what = "\8aâ";
     else if (IS_THRONE(maploc->typ))
+/*JP
         what = "a throne";
+*/
+        what = "\8bÊ\8dÀ";
     else if (IS_FOUNTAIN(maploc->typ))
+/*JP
         what = "a fountain";
+*/
+        what = "\90ò";
     else if (IS_GRAVE(maploc->typ))
+/*JP
         what = "a headstone";
+*/
+        what = "\95æ\90Î";
     else if (IS_SINK(maploc->typ))
+/*JP
         what = "a sink";
+*/
+        what = "\97¬\82µ\91ä";
     else if (IS_ALTAR(maploc->typ))
+/*JP
         what = "an altar";
+*/
+        what = "\8dÕ\92d";
     else if (IS_DRAWBRIDGE(maploc->typ))
+/*JP
         what = "a drawbridge";
+*/
+        what = "\92µ\82Ë\8b´";
     else if (maploc->typ == STAIRS)
+/*JP
         what = "the stairs";
+*/
+        what = "\8aK\92i";
     else if (maploc->typ == LADDER)
+/*JP
         what = "a ladder";
+*/
+        what = "\82Í\82µ\82²";
     else if (maploc->typ == IRONBARS)
+/*JP
         what = "an iron bar";
+*/
+        what = "\93S\96_";
     else
+/*JP
         what = "something weird";
+*/
+        what = "\89½\82©\96­\82È\82à\82Ì";
+#if 0 /*JP*/
     return strcat(strcpy(buf, "kicking "), what);
+#else
+    Sprintf(buf, "%s\82ð\8fR\82Á\82Ä", what);
+    return buf;
+#endif
 }
 
 int
@@ -758,14 +963,26 @@ dokick()
     char buf[BUFSZ];
 
     if (nolimbs(youmonst.data) || slithy(youmonst.data)) {
+/*JP
         You("have no legs to kick with.");
+*/
+        You("\89½\82©\82ð\8fR\82ë\82¤\82É\82à\91«\82ª\82È\82¢\81D");
         no_kick = TRUE;
     } else if (verysmall(youmonst.data)) {
+/*JP
         You("are too small to do any kicking.");
+*/
+        You("\89½\82©\82ð\8fR\82é\82É\82Í\8f¬\82³\82·\82¬\82é\81D");
         no_kick = TRUE;
     } else if (u.usteed) {
+/*JP
         if (yn_function("Kick your steed?", ynchars, 'y') == 'y') {
+*/
+        if (yn_function("\94n\82ð\8fR\82é\81H", ynchars, 'y') == 'y') {
+/*JP
             You("kick %s.", mon_nam(u.usteed));
+*/
+            You("%s\82ð\8fR\82Á\82½\81D", mon_nam(u.usteed));
             kick_steed();
             return 1;
         } else {
@@ -783,26 +1000,41 @@ dokick()
              bp, (wl == BOTH_SIDES) ? "are" : "is");
         no_kick = TRUE;
     } else if (near_capacity() > SLT_ENCUMBER) {
+/*JP
         Your("load is too heavy to balance yourself for a kick.");
+*/
+        You("\82½\82­\82³\82ñ\82à\82Ì\82ð\8e\9d\82¿\82·\82¬\82Ä\8fR\82è\82Ì\82½\82ß\82Ì\83o\83\89\83\93\83X\82ª\82Æ\82ê\82È\82¢\81D");
         no_kick = TRUE;
     } else if (youmonst.data->mlet == S_LIZARD) {
+/*JP
         Your("legs cannot kick effectively.");
+*/
+        Your("\91«\82Å\82Í\82¤\82Ü\82­\8fR\82ê\82È\82¢\81D");
         no_kick = TRUE;
     } else if (u.uinwater && !rn2(2)) {
+/*JP
         Your("slow motion kick doesn't hit anything.");
+*/
+        Your("\92x\82¢\93®\82«\82Ì\8fR\82è\82Å\82Í\96½\92\86\82µ\82æ\82¤\82ª\82È\82¢\81D");
         no_kick = TRUE;
     } else if (u.utrap) {
         no_kick = TRUE;
         switch (u.utraptype) {
         case TT_PIT:
             if (!Passes_walls)
+/*JP
                 pline("There's not enough room to kick down here.");
+*/
+                pline("\97\8e\82µ\8c\8a\82É\82Í\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\81C\8fR\82ê\82È\82¢\81D");
             else
                 no_kick = FALSE;
             break;
         case TT_WEB:
         case TT_BEARTRAP:
+/*JP
             You_cant("move your %s!", body_part(LEG));
+*/
+            You("%s\82ð\93®\82©\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", body_part(LEG));
             break;
         default:
             break;
@@ -832,21 +1064,33 @@ dokick()
     if (u.uswallow) {
         switch (rn2(3)) {
         case 0:
+/*JP
             You_cant("move your %s!", body_part(LEG));
+*/
+            You("%s\82ð\93®\82©\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", body_part(LEG));
             break;
         case 1:
             if (is_animal(u.ustuck->data)) {
+/*JP
                 pline("%s burps loudly.", Monnam(u.ustuck));
+*/
+                pline("%s\82Í\91å\82«\82È\83Q\83b\83v\82ð\82µ\82½\81D", Monnam(u.ustuck));
                 break;
             }
         default:
+/*JP
             Your("feeble kick has no effect.");
+*/
+            Your("\8eã\81X\82µ\82¢\8fR\82è\82Í\8cø\89Ê\82ª\82È\82¢\81D"); break;
             break;
         }
         return 1;
     } else if (u.utrap && u.utraptype == TT_PIT) {
         /* must be Passes_walls */
+/*JP
         You("kick at the side of the pit.");
+*/
+        You("\97\8e\82µ\8c\8a\82Ì\95Ç\82ð\8fR\82Á\82½\81D");
         return 1;
     }
     if (Levitation) {
@@ -861,7 +1105,10 @@ dokick()
         if (isok(xx, yy) && !IS_ROCK(levl[xx][yy].typ)
             && !IS_DOOR(levl[xx][yy].typ)
             && (!Is_airlevel(&u.uz) || !OBJ_AT(xx, yy))) {
+/*JP
             You("have nothing to brace yourself against.");
+*/
+            pline("\8ex\82¦\82É\82Å\82«\82é\82æ\82¤\82È\82à\82Ì\82ª\96³\82¢\81D");
             return 0;
         }
     }
@@ -942,7 +1189,10 @@ dokick()
     }
     if (is_pool(x, y) ^ !!u.uinwater) {
         /* objects normally can't be removed from water by kicking */
+/*JP
         You("splash some water around.");
+*/
+        You("\90\85\82ð\89ñ\82è\82É\82Ü\82«\82¿\82ç\82µ\82½\81D");
         return 1;
     }
 
@@ -960,16 +1210,26 @@ dokick()
         if (maploc->typ == SDOOR) {
             if (!Levitation && rn2(30) < avrg_attrib) {
                 cvt_sdoor_to_door(maploc); /* ->typ = DOOR */
+#if 0 /*JP*/
                 pline("Crash!  %s a secret door!",
                       /* don't "kick open" when it's locked
                          unless it also happens to be trapped */
                       (maploc->doormask & (D_LOCKED | D_TRAPPED)) == D_LOCKED
                           ? "Your kick uncovers"
                           : "You kick open");
+#else
+                pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\94é\96§\82Ì\94à\82ð%s\82½\81I",
+                      (maploc->doormask & (D_LOCKED|D_TRAPPED)) == D_LOCKED
+                          ? "\94­\8c©\82µ"
+                          : "\8fR\82è\8aJ\82¯");
+#endif
                 exercise(A_DEX, TRUE);
                 if (maploc->doormask & D_TRAPPED) {
                     maploc->doormask = D_NODOOR;
+/*JP
                     b_trapped("door", FOOT);
+*/
+                    b_trapped("\94à", FOOT);
                 } else if (maploc->doormask != D_NODOOR
                            && !(maploc->doormask & D_LOCKED))
                     maploc->doormask = D_ISOPEN;
@@ -983,7 +1243,10 @@ dokick()
         }
         if (maploc->typ == SCORR) {
             if (!Levitation && rn2(30) < avrg_attrib) {
+/*JP
                 pline("Crash!  You kick open a secret passage!");
+*/
+                pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\94é\96§\82Ì\92Ê\98H\82ð\8fR\82è\82â\82Ô\82Á\82½\81I");
                 exercise(A_DEX, TRUE);
                 maploc->typ = CORR;
                 feel_newsym(x, y); /* we know it's gone */
@@ -1001,9 +1264,15 @@ dokick()
                 maploc->doormask = 0; /* don't leave loose ends.. */
                 (void) mkgold((long) rnd(200), x, y);
                 if (Blind)
+/*JP
                     pline("CRASH!  You destroy it.");
+*/
+                    pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\89½\82©\82ð\94j\89ó\82µ\82½\81D");
                 else {
+/*JP
                     pline("CRASH!  You destroy the throne.");
+*/
+                    pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\8bÊ\8dÀ\82ð\94j\89ó\82µ\82½\81D");
                     newsym(x, y);
                 }
                 exercise(A_DEX, TRUE);
@@ -1018,9 +1287,15 @@ dokick()
                         rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE - 1), x, y,
                         FALSE, TRUE);
                 if (Blind)
+/*JP
                     You("kick %s loose!", something);
+*/
+                    You("\82È\82É\82©\82ð\8fR\82è\8eU\82ç\82µ\82½\81I");
                 else {
+/*JP
                     You("kick loose some ornamental coins and gems!");
+*/
+                    You("\91\95\8fü\97p\82Ì\8bà\89Ý\82â\95ó\90Î\82ð\8fR\82è\8eU\82ç\82µ\82½\81I");
                     newsym(x, y);
                 }
                 /* prevent endless milking */
@@ -1038,7 +1313,10 @@ dokick()
         if (IS_ALTAR(maploc->typ)) {
             if (Levitation)
                 goto dumb;
+/*JP
             You("kick %s.", (Blind ? something : "the altar"));
+*/
+            You("%s\82ð\8fR\82Á\82½\81D", (Blind ? "\89½\82©" : "\8dÕ\92d"));
             if (!rn2(3))
                 goto ouch;
             altar_wrath(x, y);
@@ -1048,13 +1326,22 @@ dokick()
         if (IS_FOUNTAIN(maploc->typ)) {
             if (Levitation)
                 goto dumb;
+/*JP
             You("kick %s.", (Blind ? something : "the fountain"));
+*/
+            You("%s\82ð\8fR\82Á\82½\81D",(Blind ? "\89½\82©" : "\90ò"));
             if (!rn2(3))
                 goto ouch;
             /* make metal boots rust */
             if (uarmf && rn2(3))
+/*JP
                 if (water_damage(uarmf, "metal boots", TRUE) == ER_NOTHING) {
+*/
+                if (water_damage(uarmf, "\8bà\91®\82Ì\8cC", TRUE) == ER_NOTHING) {
+/*JP
                     Your("boots get wet.");
+*/
+                    Your("\8cC\82Í\94G\82ê\82½\81D");
                     /* could cause short-lived fumbling here */
                 }
             exercise(A_DEX, TRUE);
@@ -1089,7 +1376,11 @@ dokick()
             /* nothing, fruit or trouble? 75:23.5:1.5% */
             if (rn2(3)) {
                 if (!rn2(6) && !(mvitals[PM_KILLER_BEE].mvflags & G_GONE))
+#if 0 /*JP*/
                     You_hear("a low buzzing."); /* a warning */
+#else
+                    You_hear("\82Ô\81[\82ñ\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D"); /* a warning */
+#endif
                 goto ouch;
             }
             if (rn2(15) && !(maploc->looted & TREE_LOOTED)
@@ -1098,17 +1389,28 @@ dokick()
                 short frtype = treefruit->otyp;
                 treefruit->quan = nfruit;
                 if (is_plural(treefruit))
+/*JP
                     pline("Some %s fall from the tree!", xname(treefruit));
+*/
+                    pline("%s\82ª\89½\8cÂ\82©\96Ø\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I", xname(treefruit));
                 else
+/*JP
                     pline("%s falls from the tree!", An(xname(treefruit)));
+*/
+                    pline("%s\82ª\96Ø\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I", xname(treefruit));
                 nfall = scatter(x, y, 2, MAY_HIT, treefruit);
                 if (nfall != nfruit) {
                     /* scatter left some in the tree, but treefruit
                      * may not refer to the correct object */
                     treefruit = mksobj(frtype, TRUE, FALSE);
                     treefruit->quan = nfruit - nfall;
+#if 0 /*JP*/
                     pline("%ld %s got caught in the branches.",
                           nfruit - nfall, xname(treefruit));
+#else
+                    pline("%ld\8cÂ\82Ì%s\82ª\8e}\82É\82Ð\82Á\82©\82©\82Á\82½\81D",
+                          nfruit - nfall, xname(treefruit));
+#endif
                     dealloc_obj(treefruit);
                 }
                 exercise(A_DEX, TRUE);
@@ -1129,9 +1431,15 @@ dokick()
                         made++;
                 }
                 if (made)
+/*JP
                     pline("You've attracted the tree's former occupants!");
+*/
+                    pline("\96Ø\82Ì\90æ\8fZ\96¯\82ð\8bN\82±\82µ\82Ä\82µ\82Ü\82Á\82½\81I");
                 else
+/*JP
                     You("smell stale honey.");
+*/
+                    pline("\8cÃ\82¢\82Í\82¿\82Ý\82Â\82Ì\82É\82¨\82¢\82ª\82µ\82½\81D");
                 maploc->looted |= TREE_SWARM;
                 return 1;
             }
@@ -1147,17 +1455,29 @@ dokick()
                 goto dumb;
             if (rn2(5)) {
                 if (!Deaf)
+/*JP
                     pline("Klunk!  The pipes vibrate noisily.");
+*/
+                    pline("\83K\83\89\83\93\81I\83p\83C\83v\82Í\82¤\82é\82³\82­\90U\93®\82µ\82½\81D");
                 else
+/*JP
                     pline("Klunk!");
+*/
+                    pline("\83K\83\89\83\93\81I");
                 exercise(A_DEX, TRUE);
                 return 1;
             } else if (!(maploc->looted & S_LPUDDING) && !rn2(3)
                        && !(mvitals[PM_BLACK_PUDDING].mvflags & G_GONE)) {
                 if (Blind)
+/*JP
                     You_hear("a gushing sound.");
+*/
+                    You_hear("\82È\82É\82©\82ª\95¬\8fo\82·\82é\89¹\82ð\95·\82¢\82½\81D");
                 else
+/*JP
                     pline("A %s ooze gushes up from the drain!",
+*/
+                    pline("%s\89t\91Ì\82ª\94r\90\85\8cû\82©\82ç\82É\82\82Ý\8fo\82½\81I",
                           hcolor(NH_BLACK));
                 (void) makemon(&mons[PM_BLACK_PUDDING], x, y, NO_MM_FLAGS);
                 exercise(A_DEX, TRUE);
@@ -1167,19 +1487,31 @@ dokick()
             } else if (!(maploc->looted & S_LDWASHER) && !rn2(3)
                        && !(mvitals[washerndx].mvflags & G_GONE)) {
                 /* can't resist... */
+/*JP
                 pline("%s returns!", (Blind ? Something : "The dish washer"));
+*/
+                pline("%s\82ª\96ß\82Á\82Ä\82«\82½\81I", (Blind ? "\89½\82©" : "\8eM\90ô\82¢"));
                 if (makemon(&mons[washerndx], x, y, NO_MM_FLAGS))
                     newsym(x, y);
                 maploc->looted |= S_LDWASHER;
                 exercise(A_DEX, TRUE);
                 return 1;
             } else if (!rn2(3)) {
+#if 0 /*JP*/
                 pline("Flupp!  %s.",
                       (Blind ? "You hear a sloshing sound"
                              : "Muddy waste pops up from the drain"));
+#else
+                pline("\82¤\82í\81I%s\81D",
+                      (Blind ? "\82 \82È\82½\82Í\81C\83o\83`\83\83\83o\83`\83\83\82·\82é\89¹\82ð\95·\82¢\82½"
+                             : "\94r\90\85\8cû\82©\82ç\82Ç\82ë\82Ç\82ë\82Ì\94p\8aü\95¨\82ª\8fo\82Ä\82­\82é"));
+#endif
                 if (!(maploc->looted & S_LRING)) { /* once per sink */
                     if (!Blind)
+/*JP
                         You_see("a ring shining in its midst.");
+*/
+                        You("\82»\82Ì\92\86\82É\8cõ\82é\8ew\97Ö\82ð\8c©\82Â\82¯\82½\81D");
                     (void) mkobj_at(RING_CLASS, x, y, TRUE);
                     newsym(x, y);
                     exercise(A_DEX, TRUE);
@@ -1195,14 +1527,20 @@ dokick()
             if (!IS_STWALL(maploc->typ) && maploc->ladder == LA_DOWN)
                 goto dumb;
         ouch:
+/*JP
             pline("Ouch!  That hurts!");
+*/
+            pline("\82¢\82Ä\82Á\81I\89ö\89ä\82µ\82½\81I");
             exercise(A_DEX, FALSE);
             exercise(A_STR, FALSE);
             if (isok(x, y)) {
                 if (Blind)
                     feel_location(x, y); /* we know we hit it */
                 if (is_drawbridge_wall(x, y) >= 0) {
+/*JP
                     pline_The("drawbridge is unaffected.");
+*/
+                    pline("\92µ\82Ë\8b´\82Í\82Ñ\82­\82Æ\82à\82µ\82È\82¢\81D");
                     /* update maploc to refer to the drawbridge */
                     (void) find_drawbridge(&x, &y);
                     maploc = &levl[x][y];
@@ -1224,11 +1562,17 @@ dokick()
     dumb:
         exercise(A_DEX, FALSE);
         if (martial() || ACURR(A_DEX) >= 16 || rn2(3)) {
+/*JP
             You("kick at empty space.");
+*/
+            You("\89½\82à\82È\82¢\8bó\8aÔ\82ð\8fR\82Á\82½\81D");
             if (Blind)
                 feel_location(x, y);
         } else {
+/*JP
             pline("Dumb move!  You strain a muscle.");
+*/
+            pline("\82Î\82©\82°\82½\93®\82«\82¾\81I\8bØ\93÷\82ð\92É\82ß\82½\81D");
             exercise(A_STR, FALSE);
             set_wounded_legs(RIGHT_SIDE, 5 + rnd(5));
         }
@@ -1248,16 +1592,28 @@ dokick()
         /* break the door */
         if (maploc->doormask & D_TRAPPED) {
             if (flags.verbose)
+/*JP
                 You("kick the door.");
+*/
+                You("\94à\82ð\8fR\82Á\82½\81D");
             exercise(A_STR, FALSE);
             maploc->doormask = D_NODOOR;
+/*JP
             b_trapped("door", FOOT);
+*/
+            b_trapped("\94à", FOOT);
         } else if (ACURR(A_STR) > 18 && !rn2(5) && !shopdoor) {
+/*JP
             pline("As you kick the door, it shatters to pieces!");
+*/
+            pline("\94à\82ð\8fR\82é\82Æ\81C\82±\82È\82²\82È\82É\82­\82¾\82¯\82½\81I");
             exercise(A_STR, TRUE);
             maploc->doormask = D_NODOOR;
         } else {
+/*JP
             pline("As you kick the door, it crashes open!");
+*/
+            pline("\94à\82ð\8fR\82é\82Æ\81C\89ó\82ê\82Ä\8aJ\82¢\82½\81I");
             exercise(A_STR, TRUE);
             maploc->doormask = D_BROKEN;
         }
@@ -1265,7 +1621,10 @@ dokick()
         unblock_point(x, y); /* vision */
         if (shopdoor) {
             add_damage(x, y, 400L);
+/*JP
             pay_for_damage("break", FALSE);
+*/
+            pay_for_damage("\94j\89ó\82·\82é", FALSE);
         }
         if (in_town(x, y))
             for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
@@ -1273,7 +1632,10 @@ dokick()
                     continue;
                 if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my)
                     && mtmp->mpeaceful) {
+/*JP
                     mon_yells(mtmp, "Halt, thief!  You're under arrest!");
+*/
+                    mon_yells(mtmp, "\8e~\82Ü\82ê\93D\96_\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
                     (void) angry_guards(FALSE);
                     break;
                 }
@@ -1282,7 +1644,10 @@ dokick()
         if (Blind)
             feel_location(x, y); /* we know we hit it */
         exercise(A_STR, TRUE);
+/*JP
         pline("WHAMMM!!!");
+*/
+        pline("\82®\82\9f\82\9f\82\9f\82ñ\81I");
         if (in_town(x, y))
             for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
                 if (DEADMONSTER(mtmp))
@@ -1291,10 +1656,16 @@ dokick()
                     && couldsee(mtmp->mx, mtmp->my)) {
                     if (levl[x][y].looted & D_WARNED) {
                         mon_yells(mtmp,
+/*JP
                                   "Halt, vandal!  You're under arrest!");
+*/
+                                  "\8e~\82Ü\82ê\96ì\94Ø\90l\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
                         (void) angry_guards(FALSE);
                     } else {
+/*JP
                         mon_yells(mtmp, "Hey, stop damaging that door!");
+*/
+                        mon_yells(mtmp, "\82¨\82¢\81C\94à\82ð\94j\89ó\82·\82é\82Ì\82ð\82â\82ß\82ë\81I");
                         levl[x][y].looted |= D_WARNED;
                     }
                     break;
@@ -1423,40 +1794,75 @@ xchar dlev;          /* if !0 send to dlev near player */
     }
 
     if (dct && cansee(x, y)) { /* at least one object fell */
+/*JP
         const char *what = (dct == 1L ? "object falls" : "objects fall");
+*/
+        const char *what = "\95¨";
 
         if (missile)
+#if 0 /*JP:T*/
             pline("From the impact, %sother %s.",
                   dct == oct ? "the " : dct == 1L ? "an" : "", what);
+#else
+            pline("\8fÕ\8c\82\82Å\81C\91¼\82Ì%s\82ª\97\8e\82¿\82½\81D",what);
+#endif
         else if (oct == dct)
+#if 0 /*JP:T*/
             pline("%s adjacent %s %s.", dct == 1L ? "The" : "All the", what,
                   gate_str);
+#else
+            pline("\8bß\82­\82É\82 \82Á\82½%s\82ª%s\97\8e\82¿\82½\81D", what, gate_str);
+#endif
         else
+#if 0 /*JP*/
             pline("%s adjacent %s %s.",
                   dct == 1L ? "One of the" : "Some of the",
                   dct == 1L ? "objects falls" : what, gate_str);
+#else
+            pline("\8bß\82­\82É\82 \82Á\82½%s%s%s\97\8e\82¿\82½\81D",
+                  what,
+                  dct == 1L ? "\82ª" : "\82Ì\82¢\82­\82Â\82©\82ª",
+                  gate_str);
+#endif
     }
 
     if (costly && shkp && price) {
         if (ESHK(shkp)->robbed > robbed) {
+/*JP
             You("removed %ld %s worth of goods!", price, currency(price));
+*/
+            You("%ld%s\95ª\82Ì\95i\95¨\82ð\8eæ\82è\82³\82Á\82½\81I", price, currency(price));
             if (cansee(shkp->mx, shkp->my)) {
                 if (ESHK(shkp)->customer[0] == 0)
                     (void) strncpy(ESHK(shkp)->customer, plname, PL_NSIZ);
                 if (angry)
+/*JP
                     pline("%s is infuriated!", Monnam(shkp));
+*/
+                    pline("%s\82Í\8c\83\93{\82µ\82½\81I", Monnam(shkp));
                 else
+/*JP
                     pline("\"%s, you are a thief!\"", plname);
+*/
+                    pline("\81u%s\82ß\81C\82¨\82Ü\82¦\82Í\93D\96_\82¾\82È\81I\81v", plname);
             } else
+/*JP
                 You_hear("a scream, \"Thief!\"");
+*/
+                You_hear("\8bà\90Ø\82è\90º\82ð\95·\82¢\82½\81u\93D\96_\81I\81v");
             hot_pursuit(shkp);
             (void) angry_guards(FALSE);
             return;
         }
         if (ESHK(shkp)->debit > debit) {
             long amt = (ESHK(shkp)->debit - debit);
+#if 0 /*JP*/
             You("owe %s %ld %s for goods lost.", Monnam(shkp), amt,
                 currency(amt));
+#else
+            You("\95i\95¨\8fÁ\8e¸\82Ì\82½\82ß%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81D", Monnam(shkp), amt,
+                currency(amt));
+#endif
         }
     }
 }
@@ -1550,14 +1956,23 @@ boolean shop_floor_obj;
             || otmp->otyp == EXPENSIVE_CAMERA) {
             if (otmp->otyp == MIRROR)
                 change_luck(-2);
+/*JP
             result = "crash";
+*/
+            result = "\83O\83V\83\83\83b";
         } else {
             /* penalty for breaking eggs laid by you */
             if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM)
                 change_luck((schar) -min(otmp->quan, 5L));
+/*JP
             result = "splat";
+*/
+            result = "\83x\83`\83\83\83b";
         }
+/*JP
         You_hear("a muffled %s.", result);
+*/
+        You_hear("\82±\82à\82Á\82½%s\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", result);
         obj_extract_self(otmp);
         obfree(otmp, (struct obj *) 0);
         return TRUE;
@@ -1665,22 +2080,37 @@ long num;
 {
     char obuf[BUFSZ];
 
+#if 0 /*JP*/
     Sprintf(obuf, "%s%s",
             (otmp->otyp == CORPSE && type_is_pname(&mons[otmp->corpsenm]))
                 ? ""
                 : "The ",
             cxname(otmp));
+#else
+    Sprintf(obuf, "%s\82Í", xname(otmp));
+#endif
 
     if (num) { /* means: other objects are impacted */
+#if 0 /*JP*/
         Sprintf(eos(obuf), " %s %s object%s", otense(otmp, "hit"),
                 num == 1L ? "another" : "other", num > 1L ? "s" : "");
         if (nodrop)
             Sprintf(eos(obuf), ".");
         else
             Sprintf(eos(obuf), " and %s %s.", otense(otmp, "fall"), gate_str);
+#else
+        Sprintf(eos(obuf), "\91¼\82Ì\95¨\91Ì\82É\96½\92\86\82µ\82Ä");
+        if(nodrop)
+            Sprintf(eos(obuf), "\8e~\82Ü\82Á\82½\81D");
+        else
+            Sprintf(eos(obuf), "%s\97\8e\82¿\82½\81D", gate_str);
+#endif
         pline1(obuf);
     } else if (!nodrop)
+/*JP
         pline("%s %s %s.", obuf, otense(otmp, "fall"), gate_str);
+*/
+        pline("%s%s\97\8e\82¿\82½\81D", obuf, gate_str);
 }
 
 /* migration destination for objects which fall down to next level */
@@ -1697,19 +2127,30 @@ xchar x, y;
 
     if ((xdnstair == x && ydnstair == y)
         || (sstairs.sx == x && sstairs.sy == y && !sstairs.up)) {
+/*JP
         gate_str = "down the stairs";
+*/
+        gate_str = "\8aK\92i\82©\82ç";
         return (xdnstair == x && ydnstair == y) ? MIGR_STAIRS_UP
                                                 : MIGR_SSTAIRS;
     }
     if (xdnladder == x && ydnladder == y) {
+/*JP
         gate_str = "down the ladder";
+*/
+        gate_str = "\82Í\82µ\82²\82©\82ç";
         return MIGR_LADDER_UP;
     }
 
     if (((ttmp = t_at(x, y)) != 0 && ttmp->tseen)
         && (ttmp->ttyp == TRAPDOOR || ttmp->ttyp == HOLE)) {
+#if 0 /*JP*/
         gate_str = (ttmp->ttyp == TRAPDOOR) ? "through the trap door"
                                             : "through the hole";
+#else
+        gate_str = (ttmp->ttyp == TRAPDOOR) ? "\97\8e\82µ\94à\82É"
+                                            : "\8c\8a\82É";
+#endif
         return MIGR_RANDOM;
     }
     return MIGR_NOWHERE;
index 8de0285..a332762 100644 (file)
@@ -4,6 +4,11 @@
 
 /* Contains code for 't' (throw) */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL int FDECL(throw_obj, (struct obj *, int));
@@ -68,30 +73,51 @@ int shotlimit;
     if (obj->oclass == COIN_CLASS && obj != uquiver)
         return throw_gold(obj);
 
+/*JP
     if (!canletgo(obj, "throw"))
+*/
+    if (!canletgo(obj, "\93\8a\82°\82é"))
         return 0;
     if (obj->oartifact == ART_MJOLLNIR && obj != uwep) {
+/*JP
         pline("%s must be wielded before it can be thrown.", The(xname(obj)));
+*/
+        pline("\93\8a\82°\82é\91O\82É%s\82ð\91\95\94õ\82µ\82È\82­\82Ä\82Í\82È\82ç\82È\82¢\81D", xname(obj));
         return 0;
     }
     if ((obj->oartifact == ART_MJOLLNIR && ACURR(A_STR) < STR19(25))
         || (obj->otyp == BOULDER && !throws_rocks(youmonst.data))) {
+/*JP
         pline("It's too heavy.");
+*/
+        pline("\8fd\82·\82¬\82Ä\93\8a\82°\82ç\82ê\82È\82¢\81D");
         return 1;
     }
     if (!u.dx && !u.dy && !u.dz) {
+/*JP
         You("cannot throw an object at yourself.");
+*/
+        pline("\8e©\95ª\82É\8cü\82©\82Á\82Ä\82Í\93\8a\82°\82ç\82ê\82È\82¢\81D");
         return 0;
     }
     u_wipe_engr(2);
     if (!uarmg && obj->otyp == CORPSE && touch_petrifies(&mons[obj->corpsenm])
         && !Stone_resistance) {
+#if 0 /*JP*/
         You("throw %s with your bare %s.",
             corpse_xname(obj, (const char *) 0, CXN_PFX_THE),
             /* throwing with one hand, but pluralize since the
                expression "with your bare hands" sounds better */
             makeplural(body_part(HAND)));
+#else
+        You("\91f%s\82Å%s\82Ì\8e\80\91Ì\82ð\93\8a\82°\82½\81D",
+            body_part(HAND),
+            corpse_xname(obj, (const char *) 0, CXN_PFX_THE));
+#endif
+/*JP
         Sprintf(killer.name, "throwing %s bare-handed", killer_xname(obj));
+*/
+        Sprintf(killer.name, "%s\82Ì\8e\80\91Ì\82ð\91f\8eè\82Å\93\8a\82°\82Ä", killer_xname(obj));
         instapetrify(killer.name);
     }
     if (welded(obj)) {
@@ -205,9 +231,16 @@ int shotlimit;
        attempted to specify a count */
     if (multishot > 1 || shotlimit > 0) {
         /* "You shoot N arrows." or "You throw N daggers." */
+#if 0 /*JP*/
         You("%s %d %s.", m_shot.s ? "shoot" : "throw",
             multishot, /* (might be 1 if player gave shotlimit) */
             (multishot == 1) ? singular(obj, xname) : xname(obj));
+#else
+        You("%d%s\82Ì%s\82ð%s\81D",
+            multishot,
+            numeral(obj), xname(obj),
+            m_shot.s ? "\8c\82\82Á\82½" : "\93\8a\82°\82½");
+#endif
     }
 
     wep_mask = obj->owornmask;
@@ -243,7 +276,10 @@ int *shotlimit_p; /* (see dothrow()) */
     multi = 0; /* reset; it's been used up */
 
     if (notake(youmonst.data)) {
+/*JP
         You("are physically incapable of throwing or shooting anything.");
+*/
+        You("\89½\82©\82ð\93\8a\82°\82é\82Ì\82Í\95¨\97\9d\93I\82É\96³\97\9d\82¾\81D");
         return FALSE;
     } else if (nohands(youmonst.data)) {
         You_cant("throw or shoot without hands."); /* not body_part(HAND) */
@@ -369,11 +405,17 @@ dofire()
 
     if ((obj = uquiver) == 0) {
         if (!flags.autoquiver) {
+/*JP
             You("have no ammunition readied.");
+*/
+            You("\94­\8eË\8f\80\94õ\82ª\90®\82Á\82Ä\82¢\82È\82¢\81I");
         } else {
             autoquiver();
             if ((obj = uquiver) == 0)
+/*JP
                 You("have nothing appropriate for your quiver.");
+*/
+                You("\94­\8eË\82·\82é\82à\82Ì\82ª\82È\82¢\81D");
         }
         /* if autoquiver is disabled or has failed, prompt for missile;
            fill quiver with it if it's not wielded */
@@ -401,9 +443,15 @@ boolean verbose;
 {
     if (m_shot.i < m_shot.n) {
         if (verbose && !context.mon_moving) {
+#if 0 /*JP*/
             You("stop %s after the %d%s %s.",
                 m_shot.s ? "firing" : "throwing", m_shot.i, ordin(m_shot.i),
                 m_shot.s ? "shot" : "toss");
+#else
+            You("%d\94­\96Ú\82ð%s\82Æ\82±\82ë\82Å\8ec\82è\82ð%s\82Ì\82ð\82â\82ß\82½\81D", m_shot.i,
+                m_shot.s ? "\8c\82\82Á\82½" : "\93\8a\82°\82½",
+                m_shot.s ? "\8c\82\82Â" : "\93\8a\82°\82é");
+#endif
         }
         m_shot.n = m_shot.i; /* make current shot be the last */
     }
@@ -423,8 +471,13 @@ register struct obj *obj;
     if (IS_ALTAR(levl[u.ux][u.uy].typ))
         doaltarobj(obj);
     else
+#if 0 /*JP*/
         pline("%s hit%s the %s.", Doname2(obj), (obj->quan == 1L) ? "s" : "",
               surface(u.ux, u.uy));
+#else
+        pline("%s\82Í%s\82É\96½\92\86\82µ\82½\81D", Doname2(obj),
+              surface(u.ux,u.uy));
+#endif
 
     if (hero_breaks(obj, u.ux, u.uy, TRUE))
         return;
@@ -536,7 +589,10 @@ int x, y;
     int dmg = 0;
 
     if (!isok(x, y)) {
+/*JP
         You_feel("the spirits holding you back.");
+*/
+        You_feel("\82 \82È\82½\82ð\95ß\82Ü\82¦\82Ä\82¢\82½\8d°\82ª\96ß\82Á\82½\8bC\82ª\82µ\82½\81D");
         return FALSE;
     } else if (!in_out_region(x, y)) {
         return FALSE;
@@ -548,39 +604,73 @@ int x, y;
         if (IS_ROCK(levl[x][y].typ) || closed_door(x, y)) {
             const char *s;
 
+/*JP
             pline("Ouch!");
+*/
+            pline("\82¢\82Ä\82Á\81I");
             if (IS_TREE(levl[x][y].typ))
+/*JP
                 s = "bumping into a tree";
+*/
+                s = "\96Ø\82É\82Ô\82¿\82 \82½\82Á\82Ä";
             else if (IS_ROCK(levl[x][y].typ))
+/*JP
                 s = "bumping into a wall";
+*/
+                s = "\95Ç\82É\82Ô\82¿\82 \82½\82Á\82Ä";
             else
+/*JP
                 s = "bumping into a door";
+*/
+                s = "\94à\82É\82Ô\82¿\82 \82½\82Á\82Ä";
             dmg = rnd(2 + *range);
             losehp(Maybe_Half_Phys(dmg), s, KILLED_BY);
             wake_nearto(x,y, 10);
             return FALSE;
         }
         if (levl[x][y].typ == IRONBARS) {
+/*JP
             You("crash into some iron bars.  Ouch!");
+*/
+            You("\93S\82Ì\96_\82É\82Ô\82¿\82 \82½\82Á\82½\81D\82¢\82Ä\82Á\81I");
             dmg = rnd(2 + *range);
+#if 0 /*JP*/
             losehp(Maybe_Half_Phys(dmg), "crashing into iron bars",
                    KILLED_BY);
+#else
+            losehp(Maybe_Half_Phys(dmg), "\93S\82Ì\96_\82É\82Ô\82¿\82 \82½\82Á\82Ä",
+                   KILLED_BY);
+#endif
             wake_nearto(x,y, 20);
             return FALSE;
         }
         if ((obj = sobj_at(BOULDER, x, y)) != 0) {
+/*JP
             You("bump into a %s.  Ouch!", xname(obj));
+*/
+            You("%s\82É\82Ô\82¿\82 \82½\82Á\82½\81D\82¢\82Ä\82Á\81I", xname(obj));
             dmg = rnd(2 + *range);
+/*JP
             losehp(Maybe_Half_Phys(dmg), "bumping into a boulder", KILLED_BY);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\8aâ\82É\82Ô\82¿\82 \82½\82Á\82Ä", KILLED_BY);
             wake_nearto(x,y, 10);
             return FALSE;
         }
         if (!may_pass) {
             /* did we hit a no-dig non-wall position? */
+/*JP
             You("smack into something!");
+*/
+            You("\89½\82©\82É\82Ô\82¿\82 \82½\82Á\82½\81I");
             dmg = rnd(2 + *range);
+#if 0 /*JP*/
             losehp(Maybe_Half_Phys(dmg), "touching the edge of the universe",
                    KILLED_BY);
+#else
+            losehp(Maybe_Half_Phys(dmg), "\90¢\8aE\82Ì\89Ê\82Ä\82É\90G\82ê\82Ä",
+                   KILLED_BY);
+#endif
             wake_nearto(x,y, 10);
             return FALSE;
         }
@@ -590,11 +680,21 @@ int x, y;
                 (invent && (inv_weight() + weight_cap() > 600));
             /* Move at a diagonal. */
             if (bigmonst(youmonst.data) || too_much) {
+#if 0 /*JP*/
                 You("%sget forcefully wedged into a crevice.",
                     too_much ? "and all your belongings " : "");
+#else
+                You("%s\82Í\82Þ\82è\82â\82è\82·\82«\8aÔ\82É\89\9f\82µ\8d\9e\82ß\82ç\82ê\82½\81D",
+                    too_much ? "\82Æ\91S\95\94\82Ì\89×\95¨" : "");
+#endif
                 dmg = rnd(2 + *range);
+#if 0 /*JP*/
                 losehp(Maybe_Half_Phys(dmg), "wedging into a narrow crevice",
                        KILLED_BY);
+#else
+                losehp(Maybe_Half_Phys(dmg), "\8b·\82¢\82·\82«\8aÔ\82É\89\9f\82µ\8d\9e\82ß\82ç\82ê\82Ä",
+                       KILLED_BY);
+#endif
                 wake_nearto(x,y, 10);
                 return FALSE;
             }
@@ -602,7 +702,10 @@ int x, y;
     }
 
     if ((mon = m_at(x, y)) != 0) {
+/*JP
         You("bump into %s.", a_monnam(mon));
+*/
+        You("%s\82É\82Ô\82¿\82 \82½\82Á\82½\81D", a_monnam(mon));
         wakeup(mon);
         wake_nearto(x,y, 10);
         return FALSE;
@@ -611,7 +714,10 @@ int x, y;
         && bad_rock(youmonst.data, x, u.uy)) {
         /* Move at a diagonal. */
         if (Sokoban) {
+/*JP
             You("come to an abrupt halt!");
+*/
+            You("\82Æ\82Â\82º\82ñ\92â\8e~\82µ\82½\81I");
             return FALSE;
         }
     }
@@ -648,8 +754,13 @@ int x, y;
             return TRUE;
         } else {
             if (ttmp->tseen)
+#if 0 /*JP*/
                 You("pass right over %s.",
                     an(defsyms[trap_to_defsym(ttmp->ttyp)].explanation));
+#else
+                You("%s\82Ì\90^\8fã\82ð\92Ê\89ß\82µ\82½\81D",
+                    defsyms[trap_to_defsym(ttmp->ttyp)].explanation);
+#endif
         }
     }
     if (--*range < 0) /* make sure our range never goes negative */
@@ -704,10 +815,14 @@ boolean verbose;
      * for diagonal movement, give the player a message and return.
      */
     if (Punished && !carried(uball)) {
+/*JP
         You_feel("a tug from the iron ball.");
+*/
+        You_feel("\93S\8b\85\82É\82Ð\82Á\82Ï\82ç\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         nomul(0);
         return;
     } else if (u.utrap) {
+#if 0 /*JP*/
         You("are anchored by the %s.",
             u.utraptype == TT_WEB
                 ? "web"
@@ -717,6 +832,17 @@ boolean verbose;
                             ? surface(u.ux, u.uy)
                             : u.utraptype == TT_BURIEDBALL ? "buried ball"
                                                            : "trap");
+#else
+        You("%s\82É\90\98\82¦\82Â\82¯\82ç\82ê\82Ä\82¢\82é\81D",
+            u.utraptype == TT_WEB
+                ? "\82­\82à\82Ì\91\83"
+                : u.utraptype == TT_LAVA
+                      ? "\97n\8aâ"
+                      : u.utraptype == TT_INFLOOR
+                            ? surface(u.ux,u.uy)
+                            : u.utraptype == TT_BURIEDBALL ? "\96\84\82Ü\82Á\82Ä\82¢\82é\8b\85"
+                                                           : "ã©");
+#endif
         nomul(0);
         return;
     }
@@ -732,7 +858,10 @@ boolean verbose;
     multi_reason = "moving through the air";
     nomovemsg = ""; /* it just happens */
     if (verbose)
+/*JP
         You("%s in the opposite direction.", range > 1 ? "hurtle" : "float");
+*/
+        You("\8bt\95û\8cü\82É\94ò\82Î\82³\82ê\82½\81D");
     /* if we're in the midst of shooting multiple projectiles, stop */
     endmultishot(TRUE);
     sokoban_guilt();
@@ -826,20 +955,38 @@ boolean hitsroof;
     /* note: obj->quan == 1 */
 
     if (!has_ceiling(&u.uz)) {
+#if 0 /*JP*/
         action = "flies up into"; /* into "the sky" or "the water above" */
+#else
+        action = "\82Ì\92\86\82ð\94ò\82ñ\82¾"; /* into "the sky" or "the water above" */
+#endif
     } else if (hitsroof) {
         if (breaktest(obj)) {
+/*JP
             pline("%s hits the %s.", Doname2(obj), ceiling(u.ux, u.uy));
+*/
+            pline("%s\82Í%s\82É\96½\92\86\82µ\82½\81D", Doname2(obj), ceiling(u.ux, u.uy));
             breakmsg(obj, !Blind);
             breakobj(obj, u.ux, u.uy, TRUE, TRUE);
             return FALSE;
         }
+/*JP
         action = "hits";
+*/
+        action = "\82É\96½\92\86\82µ\82½";
     } else {
+/*JP
         action = "almost hits";
+*/
+        action = "\82É\82à\82¤\8f­\82µ\82Å\96½\92\86\82·\82é\82Æ\82±\82ë\82¾\82Á\82½";
     }
+#if 0 /*JP*/
     pline("%s %s the %s, then falls back on top of your %s.", Doname2(obj),
           action, ceiling(u.ux, u.uy), body_part(HEAD));
+#else
+    pline("%s\82Í%s%s\81C\82»\82µ\82Ä%s\82Ì\8fã\82É\97\8e\82¿\82Ä\82«\82½\81D", Doname2(obj),
+          ceiling(u.ux, u.uy), action, body_part(HEAD));
+#endif
 
     /* object now hits you */
 
@@ -871,10 +1018,16 @@ boolean hitsroof;
             }
         case CREAM_PIE:
         case BLINDING_VENOM:
+/*JP
             pline("You've got it all over your %s!", body_part(FACE));
+*/
+            pline("\82»\82ê\82Í%s\82ð\82×\82Á\82Æ\82è\82Æ\95¢\82Á\82½\81I", body_part(FACE));
             if (blindinc) {
                 if (otyp == BLINDING_VENOM && !Blind)
+/*JP
                     pline("It blinds you!");
+*/
+                    pline("\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I");
                 u.ucreamed += blindinc;
                 make_blinded(Blinded + (long) blindinc, FALSE);
                 if (!Blind)
@@ -915,20 +1068,33 @@ boolean hitsroof;
         if (uarmh) {
             if (less_damage && dmg < (Upolyd ? u.mh : u.uhp)) {
                 if (!artimsg)
+/*JP
                     pline("Fortunately, you are wearing a hard helmet.");
+*/
+                    pline("\8dK\89^\82É\82à\81C\82 \82È\82½\82Í\8cÅ\82¢\8a\95\82ð\90g\82É\82Â\82¯\82Ä\82¢\82½\81D");
                 /* helmet definitely protects you when it blocks petrification
                  */
             } else if (!petrifier) {
                 if (flags.verbose)
+/*JP
                     Your("%s does not protect you.", helm_simple_name(uarmh));
+*/
+                    Your("%s\82Å\82Í\96h\82¬\82«\82ê\82È\82©\82Á\82½\81D", helm_simple_name(uarmh));
             }
         } else if (petrifier && !Stone_resistance
                    && !(poly_when_stoned(youmonst.data)
                         && polymon(PM_STONE_GOLEM))) {
         petrify:
             killer.format = KILLED_BY;
+#if 0 /*JP*/
             Strcpy(killer.name, "elementary physics"); /* "what goes up..." */
+#else
+            Strcpy(killer.name, "\8f\89\93\99\95¨\97\9d\82É\82æ\82è"); /* "what goes up..." */
+#endif
+/*JP
             You("turn to stone.");
+*/
+            You("\90Î\82É\82È\82Á\82½\81D");
             if (obj)
                 dropy(obj); /* bypass most of hitfloor() */
             thrownobj = 0;  /* now either gone or on floor */
@@ -937,7 +1103,11 @@ boolean hitsroof;
         }
         hitfloor(obj);
         thrownobj = 0;
+#if 0 /*JP*/
         losehp(Maybe_Half_Phys(dmg), "falling object", KILLED_BY_AN);
+#else
+        losehp(Maybe_Half_Phys(dmg), "\97\8e\89º\95¨\82Å", KILLED_BY_AN);
+#endif
     }
     return TRUE;
 }
@@ -992,13 +1162,19 @@ boolean
     if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) {
         boolean slipok = TRUE;
         if (ammo_and_launcher(obj, uwep))
+/*JP
             pline("%s!", Tobjnam(obj, "misfire"));
+*/
+            pline("%s\82Í\82Í\82¸\82ê\82½\81I", xname(obj));
         else {
             /* only slip if it's greased or meant to be thrown */
             if (obj->greased || throwing_weapon(obj))
                 /* BUG: this message is grammatically incorrect if obj has
                    a plural name; greased gloves or boots for instance. */
+/*JP
                 pline("%s as you throw it!", Tobjnam(obj, "slip"));
+*/
+                pline("%s\82ð\93\8a\82°\82æ\82¤\82Æ\82µ\82½\82ª\81C\82¸\82è\97\8e\82¿\82Ä\82µ\82Ü\82Á\82½\81I", xname(obj));
             else
                 slipok = FALSE;
         }
@@ -1017,7 +1193,10 @@ boolean
                    : (u.uhp < 10 && u.uhp != u.uhpmax))
         && obj->owt > (unsigned) ((Upolyd ? u.mh : u.uhp) * 2)
         && !Is_airlevel(&u.uz)) {
+/*JP
         You("have so little stamina, %s drops from your grasp.",
+*/
+        You("\88¬\97Í\82ª\82È\82­\82È\82Á\82Ä\82¢\82½\82Ì\82Å\81C%s\82ð\88¬\82è\82»\82±\82Ë\82Ä\97\8e\82Æ\82µ\82½\81D",
             the(xname(obj)));
         exercise(A_CON, FALSE);
         u.dx = u.dy = 0;
@@ -1034,8 +1213,13 @@ boolean
     } else if (u.dz) {
         if (u.dz < 0 && Role_if(PM_VALKYRIE) && obj->oartifact == ART_MJOLLNIR
             && !impaired) {
+#if 0 /*JP*/
             pline("%s the %s and returns to your hand!", Tobjnam(obj, "hit"),
                   ceiling(u.ux, u.uy));
+#else
+            pline("%s\82Í%s\82É\96½\92\86\82µ\82 \82È\82½\82Ì\8eè\82É\96ß\82Á\82Ä\82«\82½\81I", xname(obj),
+                  ceiling(u.ux,u.uy));
+#endif
             obj = addinv(obj);
             (void) encumber_msg();
             setuwep(obj);
@@ -1172,7 +1356,10 @@ boolean
             sho_obj_return_to_u(obj); /* display its flight */
 
             if (!impaired && rn2(100)) {
+/*JP
                 pline("%s to your hand!", Tobjnam(obj, "return"));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\8eè\82É\96ß\82Á\82Ä\82«\82½\81I", xname(obj));
                 obj = addinv(obj);
                 (void) encumber_msg();
                 setuwep(obj);
@@ -1182,21 +1369,44 @@ boolean
             } else {
                 int dmg = rn2(2);
                 if (!dmg) {
+#if 0 /*JP*/
                     pline(Blind ? "%s lands %s your %s."
                                 : "%s back to you, landing %s your %s.",
                           Blind ? Something : Tobjnam(obj, "return"),
                           Levitation ? "beneath" : "at",
                           makeplural(body_part(FOOT)));
+#else
+                    pline("%s\82Í%s\82 \82È\82½\82Ì%s\82Ì%s\82É\97\8e\82¿\82½\81D",
+                          xname(obj),
+                          Blind ? "" : "\96ß\82Á\82Ä\82«\82Ä\81C",
+                          body_part(FOOT),
+                          Levitation ? "\89º" : "\82»\82Î");
+#endif
                 } else {
                     dmg += rnd(3);
+#if 0 /*JP*/
                     pline(Blind ? "%s your %s!"
                                 : "%s back toward you, hitting your %s!",
                           Tobjnam(obj, Blind ? "hit" : "fly"),
                           body_part(ARM));
+#else
+                    pline("%s\82Í%s\82 \82È\82½\82Ì%s\82É\96½\92\86\82µ\82½\81I",
+                          xname(obj),
+                          Blind ? "" : "\96ß\82Á\82Ä\82«\82Ä\81C",
+                          body_part(ARM));
+#endif
                     (void) artifact_hit((struct monst *) 0, &youmonst, obj,
                                         &dmg, 0);
+#if 0 /*JP*/
                     losehp(Maybe_Half_Phys(dmg), killer_xname(obj),
                            KILLED_BY);
+#else
+                    {
+                        char jbuf[BUFSZ];
+                        Sprintf(jbuf, "%s\82Å", xname(obj));
+                        losehp(Maybe_Half_Phys(dmg), jbuf, KILLED_BY);
+                    }
+#endif
                 }
                 if (ship_object(obj, u.ux, u.uy, FALSE)) {
                     thrownobj = (struct obj *) 0;
@@ -1218,14 +1428,20 @@ boolean
             thrownobj = (struct obj *) 0;
             return;
         }
+/*JP
         if (flooreffects(obj, bhitpos.x, bhitpos.y, "fall")) {
+*/
+        if (flooreffects(obj,bhitpos.x, bhitpos.y, "\97\8e\82¿\82é")) {
             thrownobj = (struct obj *) 0;
             return;
         }
         obj_no_longer_held(obj);
         if (mon && mon->isshk && is_pick(obj)) {
             if (cansee(bhitpos.x, bhitpos.y))
+/*JP
                 pline("%s snatches up %s.", Monnam(mon), the(xname(obj)));
+*/
+                pline("%s\82Í%s\82ð\92D\82¢\82Æ\82Á\82½\81D", Monnam(mon), xname(obj));
             if (*u.ushops || obj->unpaid)
                 check_shop_obj(obj, bhitpos.x, bhitpos.y, FALSE);
             (void) mpickobj(mon, obj); /* may merge and free obj */
@@ -1319,7 +1535,10 @@ boolean maybe_wakeup;
        an arrow just landing short of any target (no message in that case),
        so will realize that there is a valid target here anyway. */
     if (!canseemon(mon) || (mon->m_ap_type && mon->m_ap_type != M_AP_MONSTER))
+/*JP
         pline("%s %s.", The(missile), otense(obj, "miss"));
+*/
+        pline("%s\82Í\82Í\82¸\82ê\82½\81D", missile);
     else
         miss(missile, mon);
     if (maybe_wakeup && !rn2(3))
@@ -1412,10 +1631,16 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */
             tmiss(obj, mon, FALSE);
             return 0;
         } else if (mon->mtame) {
+/*JP
             pline("%s catches and drops %s.", Monnam(mon), the(xname(obj)));
+*/
+            pline("%s\82Í%s\82ð\82­\82í\82¦\82Ä\92u\82¢\82½\81D", Monnam(mon), xname(obj));
             return 0;
         } else {
+/*JP
             pline("%s catches %s.", Monnam(mon), the(xname(obj)));
+*/
+            pline("%s\82Í%s\82ð\82­\82í\82¦\82½\81D", Monnam(mon), xname(obj));
             return gem_accept(mon, obj);
         }
     }
@@ -1429,13 +1654,21 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */
         mon->mstrategy &= ~STRAT_WAITMASK;
 
         if (mon->mcanmove) {
+/*JP
             pline("%s catches %s.", Monnam(mon), the(xname(obj)));
+*/
+            pline("%s\82Í%s\82ð\92Í\82ñ\82¾\81D", Monnam(mon), xname(obj));
             if (mon->mpeaceful) {
                 boolean next2u = monnear(mon, u.ux, u.uy);
 
                 finish_quest(obj); /* acknowledge quest completion */
+#if 0 /*JP*/
                 pline("%s %s %s back to you.", Monnam(mon),
                       (next2u ? "hands" : "tosses"), the(xname(obj)));
+#else
+                pline("%s\82Í%s\82ð\82 \82È\82½\82É\95Ô\82µ\82½\81D", Monnam(mon),
+                      xname(obj));
+#endif
                 if (!next2u)
                     sho_obj_return_to_u(obj);
                 obj = addinv(obj); /* back into your inventory */
@@ -1592,9 +1825,15 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */
                 }
             }
         }
+#if 0 /*JP*/
         pline("%s into %s %s.", Tobjnam(obj, "vanish"),
               s_suffix(mon_nam(mon)),
               is_animal(u.ustuck->data) ? "entrails" : "currents");
+#else
+        pline("%s\82Í%s\82Ì%s\82Ö\8fÁ\82¦\82½\81D", xname(obj),
+              mon_nam(mon),
+              is_animal(u.ustuck->data) ? "\93à\91\9f\82Ì\92\86" : "\97¬\82ê");
+#endif
     } else {
         tmiss(obj, mon, TRUE);
     }
@@ -1611,13 +1850,31 @@ register struct obj *obj;
     boolean is_buddy = sgn(mon->data->maligntyp) == sgn(u.ualign.type);
     boolean is_gem = objects[obj->otyp].oc_material == GEMSTONE;
     int ret = 0;
+/*JP
     static NEARDATA const char nogood[] = " is not interested in your junk.";
+*/
+    static NEARDATA const char nogood[] = "\82 \82È\82½\82Ì\83K\83\89\83N\83^\82É\8b»\96¡\82ð\8e¦\82³\82È\82¢\81D";
+/*JP
     static NEARDATA const char acceptgift[] = " accepts your gift.";
+*/
+    static NEARDATA const char acceptgift[] = "\82 \82È\82½\82Ì\91¡\82è\95¨\82ð\8eó\82¯\82Æ\82Á\82½\81D";
+/*JP
     static NEARDATA const char maybeluck[] = " hesitatingly";
+*/
+    static NEARDATA const char maybeluck[] = "\82½\82ß\82ç\82¢\82È\82ª\82ç";
+/*JP
     static NEARDATA const char noluck[] = " graciously";
+*/
+    static NEARDATA const char noluck[] = "\92\9a\8fd\82É";
+/*JP
     static NEARDATA const char addluck[] = " gratefully";
+*/
+    static NEARDATA const char addluck[] = "\8aì\82ñ\82Å";
 
     Strcpy(buf, Monnam(mon));
+#if 1 /*JP*/
+    Strcat(buf, "\82Í");
+#endif
     mon->mpeaceful = 1;
     mon->mavenge = 0;
 
@@ -1787,13 +2044,20 @@ boolean from_invent;
                 if (obj->otyp != POT_WATER) {
                     if (!breathless(youmonst.data)) {
                         /* [what about "familiar odor" when known?] */
+/*JP
                         You("smell a peculiar odor...");
+*/
+                        You("\96ò\82Á\82Û\82¢\93õ\82¢\82ª\82µ\82½\81D\81D\81D");
                     } else {
+#if 0 /*JP*/
                         const char *eyes = body_part(EYE);
 
                         if (eyecount(youmonst.data) != 1)
                             eyes = makeplural(eyes);
                         Your("%s %s.", eyes, vtense(eyes, "water"));
+#else
+                        You("\97Ü%s\82É\82È\82Á\82½\81D", body_part(EYE));
+#endif
                     }
                 }
                 potionbreathe(obj);
@@ -1883,7 +2147,13 @@ boolean in_view;
 {
     const char *to_pieces;
 
+#if 0 /*JP*/
     to_pieces = "";
+#else
+    /* "shatter" \81¨ "\82±\82È\82²\82È\82É\82È\82Á\82½"
+       "shatter into a thousand pieces" \81¨ "\82­\82¾\82¯\82Ä\82Î\82ç\82Î\82ç\82É\82È\82Á\82½" */
+    to_pieces = "\82±\82È\82²\82È";
+#endif
     switch (obj->oclass == POTION_CLASS ? POT_WATER : obj->otyp) {
     default: /* glass or crystal wand */
         if (obj->oclass != WAND_CLASS)
@@ -1893,26 +2163,45 @@ boolean in_view;
     case MIRROR:
     case CRYSTAL_BALL:
     case EXPENSIVE_CAMERA:
+/*JP
         to_pieces = " into a thousand pieces";
+*/
+        to_pieces = "\82­\82¾\82¯\82Ä\82Î\82ç\82Î\82ç";
     /*FALLTHRU*/
     case POT_WATER: /* really, all potions */
         if (!in_view)
+/*JP
             You_hear("%s shatter!", something);
+*/
+            You_hear("%s\82ª\89ó\82ê\82é\89¹\82ð\95·\82¢\82½\81I", something);
         else
+#if 0 /*JP*/
             pline("%s shatter%s%s!", Doname2(obj),
                   (obj->quan == 1L) ? "s" : "", to_pieces);
+#else
+            pline("%s\82Í%s\82É\82È\82Á\82½\81I", Doname2(obj), to_pieces);
+#endif
         break;
     case EGG:
     case MELON:
+/*JP
         pline("Splat!");
+*/
+        pline("\83r\83`\83\83\81I");
         break;
     case CREAM_PIE:
         if (in_view)
+/*JP
             pline("What a mess!");
+*/
+            pline("\82±\82è\82á\82Ð\82Ç\82¢\81I");
         break;
     case ACID_VENOM:
     case BLINDING_VENOM:
+/*JP
         pline("Splash!");
+*/
+        pline("\83r\83`\83\83\81I");
         break;
     }
 }
@@ -1925,14 +2214,23 @@ struct obj *obj;
     register struct monst *mon;
 
     if (!u.dx && !u.dy && !u.dz) {
+/*JP
         You("cannot throw gold at yourself.");
+*/
+        pline("\8e©\95ª\82É\8bà\89Ý\82ð\93\8a\82°\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return 0;
     }
     freeinv(obj);
     if (u.uswallow) {
+#if 0 /*JP*/
         pline(is_animal(u.ustuck->data) ? "%s in the %s's entrails."
                                         : "%s into %s.",
               "The money disappears", mon_nam(u.ustuck));
+#else
+        pline(is_animal(u.ustuck->data) ? "\8bà\89Ý\82Í%s\82Ì\95 \82Ì\92\86\82Ö\8fÁ\82¦\82Ä\82¢\82Á\82½\81D"
+                                        : "\8bà\89Ý\82Í%s\82Ì\92\86\82Ö\8fÁ\82¦\82Ä\82¢\82Á\82½\81D",
+              mon_nam(u.ustuck));
+#endif
         add_to_minv(u.ustuck, obj);
         return 1;
     }
@@ -1940,11 +2238,19 @@ struct obj *obj;
     if (u.dz) {
         if (u.dz < 0 && !Is_airlevel(&u.uz) && !Underwater
             && !Is_waterlevel(&u.uz)) {
+#if 0 /*JP*/
             pline_The("gold hits the %s, then falls back on top of your %s.",
                       ceiling(u.ux, u.uy), body_part(HEAD));
+#else
+            pline("\8bà\89Ý\82Í%s\82É\96½\92\86\82µ\81C\82 \82È\82½\82Ì%s\82Ì\90^\8fã\82É\97\8e\82¿\82Ä\82«\82½\81D",
+                  ceiling(u.ux,u.uy), body_part(HEAD));
+#endif
             /* some self damage? */
             if (uarmh)
+/*JP
                 pline("Fortunately, you are wearing %s!",
+*/
+                pline("\8dK\89^\82È\82±\82Æ\82É\81C\82 \82È\82½\82Í%s\82ð\90g\82É\82Â\82¯\82Ä\82¢\82é\81I",
                       an(helm_simple_name(uarmh)));
         }
         bhitpos.x = u.ux;
@@ -1975,10 +2281,16 @@ struct obj *obj;
         }
     }
 
+/*JP
     if (flooreffects(obj, bhitpos.x, bhitpos.y, "fall"))
+*/
+    if (flooreffects(obj, bhitpos.x, bhitpos.y, "\97\8e\82¿\82é"))
         return 1;
     if (u.dz > 0)
+/*JP
         pline_The("gold hits the %s.", surface(bhitpos.x, bhitpos.y));
+*/
+        pline("\8bà\89Ý\82Í%s\82É\96½\92\86\82µ\82½\81D", surface(bhitpos.x, bhitpos.y));
     place_object(obj, bhitpos.x, bhitpos.y);
     if (*u.ushops)
         sellobj(obj, bhitpos.x, bhitpos.y);
index 96bbd2d..916cea3 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) NetHack Development Team 1992.                   */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "tcap.h"
 
@@ -121,17 +126,35 @@ const struct class_sym def_monsyms[MAXMCLASSES] = {
 
 const struct symdef def_warnsyms[WARNCOUNT] = {
     /* white warning  */
+/*JP
     { '0', "unknown creature causing you worry",    C(CLR_WHITE) },
+*/
+    { '0', "\82 \82È\82½\82ª\8bC\82É\82µ\82Ä\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_WHITE)},
     /* pink warning   */
+/*JP
     { '1', "unknown creature causing you concern",  C(CLR_RED) },
+*/
+    { '1', "\82 \82È\82½\82ª\90S\94z\82µ\82Ä\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_RED)},
     /* red warning    */
+/*JP
     { '2', "unknown creature causing you anxiety",  C(CLR_RED) },
+*/
+    { '2', "\82 \82È\82½\82ª\8c\9c\94O\82µ\82Ä\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_RED)},
     /* ruby warning   */
+/*JP
     { '3', "unknown creature causing you disquiet", C(CLR_RED) },
+*/
+    { '3', "\82 \82È\82½\82ª\8bC\82ð\82à\82ñ\82Å\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_RED)},
     /* purple warning */
+/*JP
     { '4', "unknown creature causing you alarm",    C(CLR_MAGENTA) },
+*/
+    { '4', "\82 \82È\82½\82ª\8b°\82ê\82Ä\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_MAGENTA)},
     /* black warning  */
+/*JP
     { '5', "unknown creature causing you dread",    C(CLR_BRIGHT_MAGENTA) },
+*/
+    { '5', "\82 \82È\82½\82ª\94ñ\8fí\82É\8b°\82ê\82Ä\82¢\82é\93ä\82Ì\89ö\95¨", C(CLR_BRIGHT_MAGENTA)},
 };
 
 /*
index 96b9959..031edb9 100644 (file)
@@ -948,10 +948,22 @@ init_dungeons()
     /*
      *  I hate hardwiring these names. :-(
      */
+/*JP
     quest_dnum = dname_to_dnum("The Quest");
+*/
+    quest_dnum = dname_to_dnum("\83N\83G\83X\83g");
+/*JP
     sokoban_dnum = dname_to_dnum("Sokoban");
+*/
+    sokoban_dnum = dname_to_dnum("\91q\8cÉ\94Ô");
+/*JP
     mines_dnum = dname_to_dnum("The Gnomish Mines");
+*/
+    mines_dnum = dname_to_dnum("\83m\81[\83\80\82Ì\8dz\8eR");
+/*JP
     tower_dnum = dname_to_dnum("Vlad's Tower");
+*/
+    tower_dnum = dname_to_dnum("\83\94\83\89\83h\8cò\82Ì\93\83");
 
     /* one special fixup for dummy surface level */
     if ((x = find_level("dummy")) != 0) {
@@ -2280,7 +2292,10 @@ recalc_mapseen()
     /* flags.castle, flags.valley, flags.msanctum retain previous value */
     mptr->flags.forgot = 0;
     /* flags.quest_summons disabled once quest finished */
+/*JP
     mptr->flags.quest_summons = (at_dgn_entrance("The Quest")
+*/
+    mptr->flags.quest_summons = (at_dgn_entrance("\83N\83G\83X\83g")
                                  && u.uevent.qcalled
                                  && !(u.uevent.qcompleted
                                       || u.uevent.qexpelled
index fe3e4e0..5026882 100644 (file)
--- a/src/eat.c
+++ b/src/eat.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_PTR int NDECL(eatmdone);
@@ -70,8 +75,13 @@ STATIC_OVL NEARDATA const char allobj[] = {
 STATIC_OVL boolean force_save_hs = FALSE;
 
 /* see hunger states in hack.h - texts used on bottom line */
+#if 0 /*JP*/
 const char *hu_stat[] = { "Satiated", "        ", "Hungry  ", "Weak    ",
                           "Fainting", "Fainted ", "Starved " };
+#else
+const char *hu_stat[] = { "\96\9e\95     ", "        ", "\82Ø\82±\82Ø\82±", "\90\8a\8eã    ",
+                          "\82Ó\82ç\82Ó\82ç", "\91²\93|    ", "\89ì\8e\80    " };
+#endif
 
 /*
  * Decide whether a particular object can be eaten by the possibly
@@ -115,6 +125,7 @@ static const struct {
     int nut;                              /* nutrition */
     Bitfield(fodder, 1);                  /* stocked by health food shops */
     Bitfield(greasy, 1);                  /* causes slippery fingers */
+#if 0 /*JP*/
 } tintxts[] = { { "rotten", -50, 0, 0 },  /* ROTTEN_TIN = 0 */
                 { "homemade", 50, 1, 0 }, /* HOMEMADE_TIN = 1 */
                 { "soup made from", 20, 1, 0 },
@@ -131,6 +142,24 @@ static const struct {
                 { "candied", 100, 1, 0 },
                 { "pureed", 500, 1, 0 },
                 { "", 0, 0, 0 } };
+#else
+} tintxts[] = { { "\95\85\82Á\82½", -50, 0, 0 },  /* ROTTEN_TIN = 0 */
+                { "\8e©\89Æ\90»\82Ì", 50, 1, 0 }, /* HOMEMADE_TIN = 1 */
+                { "\82Ì\83X\81[\83v", 20, 1, 0 },
+                { "\82Ì\83t\83\89\83C", 40, 0, 1 },
+                { "\82Ì\92Ð\95¨", 40, 1, 0 },
+                { "\82ä\82Å", 50, 1, 0 },
+                { "\82Ìà\8e\90»", 50, 1, 0 },
+                { "\8a£\91\87", 55, 1, 0 },
+                { "\82Ì\97g\82°\95¨", 60, 0, 1 },
+                { "\8el\90ì\95\97", 70, 1, 0 },
+                { "\82Ì\96Ô\8fÄ\82«", 80, 0, 0 },
+                { "àu\82ß", 80, 0, 1 },
+                { "\82Ì\83\\83e\81[", 95, 0, 0 },
+                { "\82Ì\8d»\93\9c\92Ð\82¯", 100, 1, 0 },
+                { "\82Ì\83s\83\85\81[\83\8c", 500, 1, 0 },
+                { "", 0, 0, 0 } };
+#endif
 #define TTSZ SIZE(tintxts)
 
 static char *eatmbuf = 0; /* set by cpostfx() */
@@ -229,7 +258,10 @@ struct obj *food;
             return;
     } else if (Role_if(PM_KNIGHT) && u.ualign.type == A_LAWFUL) {
         adjalign(-1); /* gluttony is unchivalrous */
+/*JP
         You_feel("like a glutton!");
+*/
+        You("\91å\90H\8a¿\82Ì\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
     }
 
     exercise(A_CON, FALSE);
@@ -237,10 +269,16 @@ struct obj *food;
     if (Breathless || (!Strangled && !rn2(20))) {
         /* choking by eating AoS doesn't involve stuffing yourself */
         if (food && food->otyp == AMULET_OF_STRANGULATION) {
+/*JP
             You("choke, but recover your composure.");
+*/
+            You("\8eñ\82ð\8di\82ß\82ç\82ê\82½\81D\82µ\82©\82µ\82È\82ñ\82Æ\82à\82È\82©\82Á\82½\81D");
             return;
         }
+/*JP
         You("stuff yourself and then vomit voluminously.");
+*/
+        pline("\82ª\82Â\82ª\82Â\82Æ\8cû\82É\8bl\82ß\8d\9e\82ñ\82¾\82ª\81C\83h\83o\82Á\82Æ\93f\82«\8fo\82µ\82Ä\82µ\82Ü\82Á\82½\81D");
         morehungry(1000); /* you just got *very* sick! */
         vomit();
     } else {
@@ -250,18 +288,33 @@ struct obj *food;
          * high score list & tombstone.  So plan accordingly.
          */
         if (food) {
+/*JP
             You("choke over your %s.", foodword(food));
+*/
+            You("%s\82ð\8dA\82É\8bl\82Ü\82ç\82¹\82Ä\82µ\82Ü\82Á\82½\81D", foodword(food));
             if (food->oclass == COIN_CLASS) {
+/*JP
                 Strcpy(killer.name, "very rich meal");
+*/
+                Strcpy(killer.name, "\82Æ\82Ä\82à\8d\82\89¿\82È\97¿\97\9d");
             } else {
                 killer.format = KILLED_BY;
                 Strcpy(killer.name, killer_xname(food));
             }
         } else {
+/*JP
             You("choke over it.");
+*/
+            pline("\8dA\82É\8bl\82Ü\82ç\82¹\82Ä\82µ\82Ü\82Á\82½\81D");
+/*JP
             Strcpy(killer.name, "quick snack");
+*/
+            Strcpy(killer.name, "\91\81\90H\82¢");
         }
+/*JP
         You("die...");
+*/
+        pline("\82 \82È\82½\82Í\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
         done(CHOKING);
     }
 }
@@ -422,7 +475,10 @@ boolean message;
             pline1(nomovemsg);
         nomovemsg = 0;
     } else if (message)
+/*JP
         You("finish eating %s.", food_xname(context.victual.piece, TRUE));
+*/
+        You("%s\82ð\90H\82×\8fI\82¦\82½\81D",  food_xname(context.victual.piece, TRUE));
 
     if (context.victual.piece->otyp == CORPSE)
         cpostfx(context.victual.piece->corpsenm);
@@ -620,8 +676,14 @@ boolean allowmsg;
         && (your_race(fptr) || (Upolyd && same_race(youmonst.data, fptr)))) {
         if (allowmsg) {
             if (Upolyd && your_race(fptr))
+/*JP
                 You("have a bad feeling deep inside.");
+*/
+                You("\8c\99\88«\8a´\82É\82¨\82»\82í\82ê\82½\81D");
+/*JP
             You("cannibal!  You will regret this!");
+*/
+            pline("\8b¤\8bò\82¢\82¾\81I\8cã\89÷\82·\82é\82¼\81I");
         }
         HAggravate_monster |= FROMOUTSIDE;
         change_luck(-rn1(4, 2)); /* -5..-2 */
@@ -639,9 +701,15 @@ register int pm;
         if (!Stone_resistance
             && !(poly_when_stoned(youmonst.data)
                  && polymon(PM_STONE_GOLEM))) {
+/*JP
             Sprintf(killer.name, "tasting %s meat", mons[pm].mname);
+*/
+            Sprintf(killer.name, "%s\82Ì\93÷\82ð\90H\82×", mons[pm].mname);
             killer.format = KILLED_BY;
+/*JP
             You("turn to stone.");
+*/
+            You("\90Î\82É\82È\82Á\82½\81D");
             done(STONING);
             if (context.victual.piece)
                 context.victual.eating = FALSE;
@@ -658,7 +726,10 @@ register int pm;
     case PM_LARGE_CAT:
         /* cannibals are allowed to eat domestic animals without penalty */
         if (!CANNIBAL_ALLOWED()) {
+/*JP
             You_feel("that eating the %s was a bad idea.", mons[pm].mname);
+*/
+            pline("%s\82ð\90H\82×\82é\82Ì\82Í\82æ\82­\82È\82¢\8bC\82ª\82µ\82½\81D", mons[pm].mname);
             HAggravate_monster |= FROMOUTSIDE;
         }
         break;
@@ -669,9 +740,17 @@ register int pm;
     case PM_DEATH:
     case PM_PESTILENCE:
     case PM_FAMINE: {
+/*JP
         pline("Eating that is instantly fatal.");
+*/
+        pline("\90H\82×\82½\82ç\82·\82®\82É\8e\80\82ñ\82Å\82µ\82Ü\82Á\82½\81D");
+#if 0 /*JP*/
         Sprintf(killer.name, "unwisely ate the body of %s", mons[pm].mname);
         killer.format = NO_KILLER_PREFIX;
+#else
+        Sprintf(killer.name, "\8bð\82©\82É\82à%s\82Ì\91Ì\82ð\90H\82×\82Ä", mons[pm].mname);
+        killer.format = KILLED_BY;
+#endif
         done(DIED);
         /* life-saving needed to reach here */
         exercise(A_WIS, FALSE);
@@ -686,7 +765,10 @@ register int pm;
     }
     case PM_GREEN_SLIME:
         if (!Slimed && !Unchanging && !slimeproof(youmonst.data)) {
+/*JP
             You("don't feel very well.");
+*/
+            You("\82·\82²\82­\8bC\95ª\82ª\88«\82¢\81D");
             make_slimed(10L, (char *) 0);
             delayed_killer(SLIMED, KILLED_BY_AN, "");
         }
@@ -704,10 +786,18 @@ fix_petrification()
     char buf[BUFSZ];
 
     if (Hallucination)
+#if 0 /*JP*/
         Sprintf(buf, "What a pity--you just ruined a future piece of %sart!",
                 ACURR(A_CHA) > 15 ? "fine " : "");
+#else
+        Sprintf(buf, "\82È\82ñ\82Ä\82±\82Æ\82¾\81I%s\8c|\8fp\8dì\95i\82É\82È\82ê\82½\82©\82à\82µ\82ê\82È\82¢\82Ì\82É\81I",
+                ACURR(A_CHA) > 15 ? "\8bM\8fd\82È" : "");
+#endif
     else
+/*JP
         Strcpy(buf, "You feel limber!");
+*/
+        Strcpy(buf, "\91Ì\82ª\93î\82ç\82©\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
     make_stoned(0L, buf, 0, (char *) 0);
 }
 
@@ -823,28 +913,40 @@ register struct permonst *ptr;
     case FIRE_RES:
         debugpline0("Trying to give fire resistance");
         if (!(HFire_resistance & FROMOUTSIDE)) {
+/*JP
             You(Hallucination ? "be chillin'." : "feel a momentary chill.");
+*/
+            You(Hallucination ? "\81u\83N\81[\83\8b\91î\94z\95Ö\81v\82³\82ê\82Ä\82¢\82é\82æ\82¤\82¾\81D" : "\88ê\8fu\8a¦\82¯\82ª\82µ\82½\81D");
             HFire_resistance |= FROMOUTSIDE;
         }
         break;
     case SLEEP_RES:
         debugpline0("Trying to give sleep resistance");
         if (!(HSleep_resistance & FROMOUTSIDE)) {
+/*JP
             You_feel("wide awake.");
+*/
+            You("\82Ï\82Á\82¿\82è\96Ú\82ª\82³\82ß\82½\81D");
             HSleep_resistance |= FROMOUTSIDE;
         }
         break;
     case COLD_RES:
         debugpline0("Trying to give cold resistance");
         if (!(HCold_resistance & FROMOUTSIDE)) {
+/*JP
             You_feel("full of hot air.");
+*/
+            You("\94M\95\97\82ð\91S\90g\82É\8a´\82\82½\81D");
             HCold_resistance |= FROMOUTSIDE;
         }
         break;
     case DISINT_RES:
         debugpline0("Trying to give disintegration resistance");
         if (!(HDisint_resistance & FROMOUTSIDE)) {
+/*JP
             You_feel(Hallucination ? "totally together, man." : "very firm.");
+*/
+            You_feel(Hallucination ? "\90¢\8aE\90l\97Þ\82Æ\8cZ\92í\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D" : "\82Æ\82Ä\82à\8aæ\8fä\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             HDisint_resistance |= FROMOUTSIDE;
         }
         break;
@@ -852,39 +954,61 @@ register struct permonst *ptr;
         debugpline0("Trying to give shock resistance");
         if (!(HShock_resistance & FROMOUTSIDE)) {
             if (Hallucination)
+/*JP
                 You_feel("grounded in reality.");
+*/
+              You("\8eÀ\82Í\83A\81[\83X\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             else
+/*JP
                 Your("health currently feels amplified!");
+*/
+              pline("\8c\92\8dN\82ª\91\9d\95\9d\82³\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
             HShock_resistance |= FROMOUTSIDE;
         }
         break;
     case POISON_RES:
         debugpline0("Trying to give poison resistance");
         if (!(HPoison_resistance & FROMOUTSIDE)) {
+/*JP
             You_feel(Poison_resistance ? "especially healthy." : "healthy.");
+*/
+            You_feel(Poison_resistance ? "\93Á\82É\8c\92\8dN\82É\82È\82Á\82½\8bC\82ª\82µ\82½\81D" : "\8c\92\8dN\82É\82È\82Á\82½\8bC\82ª\82µ\82½\81D");
             HPoison_resistance |= FROMOUTSIDE;
         }
         break;
     case TELEPORT:
         debugpline0("Trying to give teleport");
         if (!(HTeleportation & FROMOUTSIDE)) {
+/*JP
             You_feel(Hallucination ? "diffuse." : "very jumpy.");
+*/
+            pline(Hallucination ? "\91Ì\82ª\94ò\82Ñ\8eU\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D" : "\92µ\96ô\97Í\82ª\8d\82\82Ü\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             HTeleportation |= FROMOUTSIDE;
         }
         break;
     case TELEPORT_CONTROL:
         debugpline0("Trying to give teleport control");
         if (!(HTeleport_control & FROMOUTSIDE)) {
+#if 0 /*JP*/
             You_feel(Hallucination ? "centered in your personal space."
                                    : "in control of yourself.");
+#else
+            You_feel(Hallucination ? "\8e©\8cÈ\92\86\90S\93I\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                                   : "\8e©\95ª\8e©\90g\82ð\90§\8cä\82Å\82«\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
+#endif
             HTeleport_control |= FROMOUTSIDE;
         }
         break;
     case TELEPAT:
         debugpline0("Trying to give telepathy");
         if (!(HTelepat & FROMOUTSIDE)) {
+#if 0 /*JP*/
             You_feel(Hallucination ? "in touch with the cosmos."
                                    : "a strange mental acuity.");
+#else
+            You_feel(Hallucination ? "\89F\92\88\82Ì\90_\94é\82É\90G\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                                   : "\8aï\96­\82È\90¸\90_\93I\89s\82³\82ð\8a´\82\82½\81D");
+#endif
             HTelepat |= FROMOUTSIDE;
             /* If blind, make sure monsters show up. */
             if (Blind)
@@ -922,7 +1046,10 @@ register int pm;
                 u.uen = u.uenmax;
             }
             if (old_uen != u.uen) {
+/*JP
                 You_feel("a mild buzz.");
+*/
+                You("\82·\82±\82µ\82Ó\82ç\82Ó\82ç\82µ\82½\81D");
                 context.botl = 1;
             }
         }
@@ -956,7 +1083,10 @@ register int pm;
                 self_invis_message();
         } else {
             if (!(HInvis & INTRINSIC))
+/*JP
                 You_feel("hidden!");
+*/
+                Your("\8ep\82Í\89B\82³\82ê\82½\81I");
             HInvis |= FROMOUTSIDE;
             HSee_invisible |= FROMOUTSIDE;
         }
@@ -981,8 +1111,13 @@ register int pm;
             char buf[BUFSZ];
 
             u.uconduct.polyselfs++; /* you're changing form */
+#if 0 /*JP*/
             You_cant("resist the temptation to mimic %s.",
                      Hallucination ? "an orange" : "a pile of gold");
+#else
+            You("%s\82ð\90^\8e\97\82µ\82½\82¢\97U\98f\82É\82©\82ç\82ê\82½\81D",
+                     Hallucination ? "\83I\83\8c\83\93\83W" : "\8bà\89Ý\82Ì\8eR");
+#endif
             /* A pile of gold can't ride. */
             if (u.usteed)
                 dismount_steed(DISMOUNT_FELL);
@@ -990,8 +1125,14 @@ register int pm;
             multi_reason = "pretending to be a pile of gold";
             Sprintf(buf,
                     Hallucination
+/*JP
                        ? "You suddenly dread being peeled and mimic %s again!"
+*/
+                       ? "\93Ë\91R\8aÛ\97\87\82É\82³\82ê\82é\82Ì\82ª\8b°\82ë\82µ\82­\82È\82Á\82Ä\82Ü\82½%s\82Ì\90^\8e\97\82ð\82µ\82½\81I"
+/*JP
                        : "You now prefer mimicking %s again.",
+*/
+                       : "\82±\82ñ\82Ç\82Í\82Ü\82½%s\82Ì\90^\8e\97\82ª\82µ\82½\82­\82È\82Á\82½\81D",
                     an(Upolyd ? youmonst.data->mname : urace.noun));
             eatmbuf = dupstr(buf);
             nomovemsg = eatmbuf;
@@ -1006,13 +1147,22 @@ register int pm;
         }
         break;
     case PM_QUANTUM_MECHANIC:
+/*JP
         Your("velocity suddenly seems very uncertain!");
+*/
+        Your("\91¬\93x\82ª\93Ë\91R\81C\95s\8am\92è\82É\82È\82Á\82½\81I");
         if (HFast & INTRINSIC) {
             HFast &= ~INTRINSIC;
+/*JP
             You("seem slower.");
+*/
+            You("\92x\82­\82È\82Á\82½\82æ\82¤\82¾\81D");
         } else {
             HFast |= FROMOUTSIDE;
+/*JP
             You("seem faster.");
+*/
+            You("\91¬\82­\82È\82Á\82½\82æ\82¤\82¾\81D");
         }
         break;
     case PM_LIZARD:
@@ -1027,7 +1177,10 @@ register int pm;
         if (Unchanging) {
             You_feel("momentarily different."); /* same as poly trap */
         } else {
+/*JP
             You_feel("a change coming over you.");
+*/
+            pline("\95Ï\89»\82ª\96K\82ê\82½\81D");
             polyself(0);
         }
         break;
@@ -1041,12 +1194,18 @@ register int pm;
     case PM_MASTER_MIND_FLAYER:
         if (ABASE(A_INT) < ATTRMAX(A_INT)) {
             if (!rn2(2)) {
+/*JP
                 pline("Yum! That was real brain food!");
+*/
+                pline("\82¤\82Ü\82¢\81I\82±\82ê\82±\82»\96{\93\96\82Ì\81u\93ª\82Ì\97Ç\82­\82È\82é\90H\8e\96\81v\82¾\81I");
                 (void) adjattrib(A_INT, 1, FALSE);
                 break; /* don't give them telepathy, too */
             }
         } else {
+/*JP
             pline("For some reason, that tasted bland.");
+*/
+            pline("\82Ç\82¤\82µ\82½\82í\82¯\82©\81C\92W\94\92\82È\96¡\82¾\81D");
         }
     /*FALLTHRU*/
     default: {
@@ -1056,7 +1215,10 @@ register int pm;
 
         if (dmgtype(ptr, AD_STUN) || dmgtype(ptr, AD_HALU)
             || pm == PM_VIOLET_FUNGUS) {
+/*JP
             pline("Oh wow!  Great stuff!");
+*/
+            pline("\83\8f\81[\83H\81I\82±\82è\82á\82·\82²\82¢\81I");
             (void) make_hallucinated((HHallucination & TIMEOUT) + 200L, FALSE,
                                      0L);
         }
@@ -1110,7 +1272,10 @@ violated_vegetarian()
 {
     u.uconduct.unvegetarian++;
     if (Role_if(PM_MONK)) {
+/*JP
         You_feel("guilty.");
+*/
+        pline("\8dß\82ð\8a´\82\82½\81D");
         adjalign(-1);
     }
     return;
@@ -1159,6 +1324,7 @@ int *tinvariety;
  * This assumes that buf already contains the word "tin",
  * as is the case with caller xname().
  */
+/*JP:\81u\8aÊ\8bl\81v\82Í\8cã\82Å\95t\82¯\82é */
 void
 tin_details(obj, mnum, buf)
 struct obj *obj;
@@ -1170,9 +1336,15 @@ char *buf;
 
     if (obj && buf) {
         if (r == SPINACH_TIN)
+/*JP
             Strcat(buf, " of spinach");
+*/
+            Strcat(buf, "\83z\83E\83\8c\83\93\91\90\82Ì");
         else if (mnum == NON_PM)
+/*JP
             Strcpy(buf, "empty tin");
+*/
+            Strcat(buf, "\8bó\82Á\82Û\82Ì");
         else {
             if ((obj->cknown || iflags.override_ID) && obj->spe < 0) {
                 if (r == ROTTEN_TIN || r == HOMEMADE_TIN) {
@@ -1186,9 +1358,15 @@ char *buf;
                 Strcpy(eos(buf), " of ");
             }
             if (vegetarian(&mons[mnum]))
+/*JP
                 Sprintf(eos(buf), "%s", mons[mnum].mname);
+*/
+                Sprintf(eos(buf), "%s\82Ì", mons[mnum].mname);
             else
+/*JP
                 Sprintf(eos(buf), "%s meat", mons[mnum].mname);
+*/
+                Sprintf(eos(buf), "%s\82Ì\93÷\82Ì", mons[mnum].mname);
         }
     }
 }
@@ -1268,7 +1446,10 @@ const char *mesg;
     if (r != SPINACH_TIN) {
         mnum = tin->corpsenm;
         if (mnum == NON_PM) {
+/*JP
             pline("It turns out to be empty.");
+*/
+            pline("\8aÊ\82Í\8bó\82Á\82Û\82¾\82Á\82½\81D");
             tin->dknown = tin->known = 1;
             costly_tin(COST_OPEN);
             goto use_up_tin;
@@ -1293,10 +1474,19 @@ const char *mesg;
         else if (which == 2)
             what = the(what);
 
+/*JP
         pline("It smells like %s.", what);
+*/
+        pline("%s\82Ì\82æ\82¤\82È\93õ\82¢\82ª\82µ\82½\81D", what);
+/*JP
         if (yn("Eat it?") == 'n') {
+*/
+        if (yn("\90H\82×\82Ü\82·\82©\81H") == 'n') {
             if (flags.verbose)
+/*JP
                 You("discard the open tin.");
+*/
+                You("\8aJ\82¯\82½\8aÊ\82ð\8eÌ\82Ä\82½\81D");
             if (!Hallucination)
                 tin->dknown = tin->known = 1;
             costly_tin(COST_OPEN);
@@ -1309,7 +1499,15 @@ const char *mesg;
         context.victual.fullwarn = context.victual.eating =
             context.victual.doreset = FALSE;
 
+#if 0 /*JP*/
         You("consume %s %s.", tintxts[r].txt, mons[mnum].mname);
+#else /*JP: \81u\82Ì\81v\82Å\8en\82Ü\82é\82È\82ç\8cã\92u\81A\82»\82ê\88È\8aO\82È\82ç\91O\92u */
+        if (strstr(tintxts[r].txt, "\82Ì") == tintxts[r].txt) {
+            You("%s%s\82Ì\8aÊ\8bl\82ð\82½\82¢\82ç\82°\82½\81D", mons[mnum].mname, tintxts[r].txt);
+        } else {
+            You("%s%s\82Ì\8aÊ\8bl\82ð\82½\82¢\82ç\82°\82½\81D", tintxts[r].txt, mons[mnum].mname);
+        }
+#endif
 
         eating_conducts(&mons[mnum]);
 
@@ -1328,22 +1526,41 @@ const char *mesg;
         if (tintxts[r].greasy) {
             /* Assume !Glib, because you can't open tins when Glib. */
             incr_itimeout(&Glib, rnd(15));
+#if 0 /*JP*/
             pline("Eating %s food made your %s very slippery.",
                   tintxts[r].txt, makeplural(body_part(FINGER)));
+#else
+            pline("\96û\82Á\82Û\82¢\95¨\82ð\90H\82×\82½\82Ì\82Å\82 \82È\82½\82Ì%s\82Í\8a\8a\82è\82â\82·\82­\82È\82Á\82½\81D",
+                  body_part(FINGER));
+#endif
         }
 
     } else { /* spinach... */
         if (tin->cursed) {
+#if 0 /*JP*/
             pline("It contains some decaying%s%s substance.",
                   Blind ? "" : " ", Blind ? "" : hcolor(NH_GREEN));
+#else
+            pline("%s\95\85\82Á\82½\95¨\91Ì\82ª\93ü\82Á\82Ä\82¢\82é\81D",
+                  Blind ? "" : hcolor(NH_GREEN));
+#endif
         } else {
+/*JP
             pline("It contains spinach.");
+*/
+            pline("\83z\83E\83\8c\83\93\91\90\82ª\93ü\82Á\82Ä\82¢\82é\81D");
             tin->dknown = tin->known = 1;
         }
 
+/*JP
         if (yn("Eat it?") == 'n') {
+*/
+        if (yn("\90H\82×\82Ü\82·\82©\81H") == 'n') {
             if (flags.verbose)
+/*JP
                 You("discard the open tin.");
+*/
+                You("\8aJ\82¯\82½\8aÊ\82ð\8eÌ\82Ä\82½\81D");
             costly_tin(COST_OPEN);
             goto use_up_tin;
         }
@@ -1355,8 +1572,13 @@ const char *mesg;
         u.uconduct
             .food++; /* don't need vegan/vegetarian checks for spinach */
         if (!tin->cursed)
+#if 0 /*JP:T*/
             pline("This makes you feel like %s!",
                   Hallucination ? "Swee'pea" : "Popeye");
+#else
+            pline("%s\82Ì\82æ\82¤\82È\8bC\95ª\82É\82È\82Á\82½\81I",
+                  Hallucination ? "\83X\83C\81[\83s\81[" : "\83|\83p\83C");
+#endif
         gainstr(tin, 0, FALSE);
 
         costly_tin(COST_OPEN);
@@ -1386,13 +1608,19 @@ opentin(VOID_ARGS)
         && (!obj_here(context.tin.tin, u.ux, u.uy) || !can_reach_floor(TRUE)))
         return 0; /* %% probably we should use tinoid */
     if (context.tin.usedtime++ >= 50) {
+/*JP
         You("give up your attempt to open the tin.");
+*/
+        You("\8aÊ\82ð\8aJ\82¯\82é\82Ì\82ð\82 \82«\82ç\82ß\82½\81D");
         return 0;
     }
     if (context.tin.usedtime < context.tin.reqtime)
         return 1; /* still busy */
 
+/*JP
     consume_tin("You succeed in opening the tin.");
+*/
+    consume_tin("\8aÊ\82ð\8aJ\82¯\82é\82Ì\82É\90¬\8c÷\82µ\82½\81D");
     return 0;
 }
 
@@ -1405,10 +1633,16 @@ struct obj *otmp;
     register int tmp;
 
     if (metallivorous(youmonst.data)) {
+/*JP
         mesg = "You bite right into the metal tin...";
+*/
+        mesg = "\8bà\91®\82Ì\8aÊ\82ð\8a\9a\82Ý\82Í\82\82ß\82½\81D\81D\81D";
         tmp = 0;
     } else if (cantwield(youmonst.data)) { /* nohands || verysmall */
+/*JP
         You("cannot handle the tin properly to open it.");
+*/
+        You("\8aÊ\82ð\82¤\82Ü\82­\8aJ\82¯\82ç\82ê\82È\82¢\81D");
         return;
     } else if (otmp->blessed) {
         /* 50/50 chance for immediate access vs 1 turn delay (unless
@@ -1418,7 +1652,10 @@ struct obj *otmp;
            or might open immediately on 2nd (or 3rd, 4th, ...) try */
         tmp = (uwep && uwep->blessed && uwep->otyp == TIN_OPENER) ? 0 : rn2(2);
         if (!tmp)
+/*JP
             mesg = "The tin opens like magic!";
+*/
+            mesg = "\8aÊ\82Í\96\82\96@\82Ì\82æ\82¤\82É\8aJ\82¢\82½\81I";
         else
             pline_The("tin seems easy to open.");
     } else if (uwep) {
@@ -1442,12 +1679,21 @@ struct obj *otmp;
         default:
             goto no_opener;
         }
+/*JP
         pline("Using %s you try to open the tin.", yobjnam(uwep, (char *) 0));
+*/
+        You("%s\82ð\8eg\82Á\82Ä\8aÊ\82ð\8aJ\82¯\82æ\82¤\82Æ\82µ\82½\81D", xname(uwep));
     } else {
     no_opener:
+/*JP
         pline("It is not so easy to open this tin.");
+*/
+        pline("\82±\82Ì\8aÊ\82ð\8aJ\82¯\82é\82Ì\82Í\97e\88Õ\82È\82±\82Æ\82Å\82Í\82È\82¢\81D");
         if (Glib) {
+/*JP
             pline_The("tin slips from your %s.",
+*/
+            pline("\8aÊ\82Í\82 \82È\82½\82Ì%s\82©\82ç\8a\8a\82è\97\8e\82¿\82½\81D",
                       makeplural(body_part(FINGER)));
             if (otmp->quan > 1L) {
                 otmp = splitobj(otmp, 1L);
@@ -1468,7 +1714,10 @@ struct obj *otmp;
     } else {
         context.tin.reqtime = tmp;
         context.tin.usedtime = 0;
+/*JP
         set_occupation(opentin, "opening the tin", 0);
+*/
+        set_occupation(opentin, "\8aÊ\82ð\8aJ\82¯\82é", 0);
     }
     return;
 }
@@ -1488,15 +1737,27 @@ STATIC_OVL int
 rottenfood(obj)
 struct obj *obj;
 {
+/*JP
     pline("Blecch!  Rotten %s!", foodword(obj));
+*/
+    pline("\83Q\83F\81I\95\85\82Á\82½%s\82¾\81I", foodword(obj));
     if (!rn2(4)) {
         if (Hallucination)
+/*JP
             You_feel("rather trippy.");
+*/
+            You("\82Ö\82ë\82Ö\82ë\82µ\82½\81D");
         else
+/*JP
             You_feel("rather %s.", body_part(LIGHT_HEADED));
+*/
+            You("%s\81D", body_part(LIGHT_HEADED));
         make_confused(HConfusion + d(2, 4), FALSE);
     } else if (!rn2(4) && !Blind) {
+/*JP
         pline("Everything suddenly goes dark.");
+*/
+        pline("\93Ë\91R\91S\82Ä\82ª\88Ã\82­\82È\82Á\82½\81D");
         make_blinded((long) d(2, 10), FALSE);
         if (!Blind)
             Your1(vision_clears);
@@ -1505,17 +1766,35 @@ struct obj *obj;
         int duration = rnd(10);
 
         if (!Blind)
+/*JP
             what = "goes", where = "dark";
+*/
+            what = "\82È\82Á\82½", where = "\88Ã\88Å\82É";
         else if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))
+/*JP
             what = "you lose control of", where = "yourself";
+*/
+            what = "\90§\8cä\82Å\82«\82È\82­\82È\82Á\82½", where = "\8e©\95ª\82ð";
         else
+/*JP
             what = "you slap against the",
+*/
+            what = "\82É\82Ô\82Â\82©\82Á\82½",
+/*JP
             where = (u.usteed) ? "saddle" : surface(u.ux, u.uy);
+*/
+            where = (u.usteed) ? "\88Æ" : surface(u.ux, u.uy);
+/*JP
         pline_The("world spins and %s %s.", what, where);
+*/
+        pline("\90¢\8aE\82ª\89ñ\93]\82µ\81C%s%s\81D", where, what);
         incr_itimeout(&HDeaf, duration);
         nomul(-duration);
         multi_reason = "unconscious from rotten food";
+/*JP
         nomovemsg = "You are conscious again.";
+*/
+        nomovemsg = "\82 \82È\82½\82Í\82Ü\82½\90³\8bC\82Ã\82¢\82½\81D";
         afternmv = Hear_again;
         return 1;
     }
@@ -1552,13 +1831,24 @@ struct obj *otmp;
     if (mnum != PM_ACID_BLOB && !stoneable && rotted > 5L) {
         boolean cannibal = maybe_cannibal(mnum, FALSE);
 
+#if 0 /*JP*/
         pline("Ulch - that %s was tainted%s!",
               mons[mnum].mlet == S_FUNGUS
                   ? "fungoid vegetation"
                   : !vegetarian(&mons[mnum]) ? "meat" : "protoplasm",
               cannibal ? ", you cannibal" : "");
+#else
+        pline("\83I\83F\81I\82±\82Ì%s\82Í\95\85\82Á\82Ä\82¢\82é%s\81I", 
+              mons[mnum].mlet == S_FUNGUS
+                  ? "\8d×\8bÛ\82É\89\98\90õ\82³\82ê\82½\90A\95¨"
+                  : !vegetarian(&mons[mnum]) ? "\93÷" : "\90\95¨",
+              cannibal ? "\81D\82µ\82©\82à\8b¤\90H\82¢\82¾" : "");
+#endif
         if (Sick_resistance) {
+/*JP
             pline("It doesn't seem at all sickening, though...");
+*/
+            pline("\82µ\82©\82µ\81C\82¢\82½\82Á\82Ä\8c³\8bC\82¾\81D\81D\81D");
         } else {
             long sick_time;
 
@@ -1566,8 +1856,13 @@ struct obj *otmp;
             /* make sure new ill doesn't result in improvement */
             if (Sick && (sick_time > Sick))
                 sick_time = (Sick > 1L) ? Sick - 1L : 1L;
+#if 0 /*JP*/
             make_sick(sick_time, corpse_xname(otmp, "rotted", CXN_NORMAL),
                       TRUE, SICK_VOMITABLE);
+#else
+            make_sick(sick_time, corpse_xname(otmp, "\95\85\82Á\82½", CXN_NORMAL),
+                      TRUE, SICK_VOMITABLE);
+#endif
         }
         if (carried(otmp))
             useup(otmp);
@@ -1576,21 +1871,44 @@ struct obj *otmp;
         return 2;
     } else if (acidic(&mons[mnum]) && !Acid_resistance) {
         tp++;
+#if 0 /*JP:T*/
         You("have a very bad case of stomach acid.");   /* not body_part() */
+#else
+        pline("\88Ý\8e_\82Ì\92²\8eq\82ª\82Æ\82Ä\82à\88«\82¢\81D");
+#endif
+#if 0 /*JP*/
         losehp(rnd(15), "acidic corpse", KILLED_BY_AN); /* acid damage */
+#else
+        losehp(rnd(15), "\8e_\82Ì\8e\80\91Ì\82Å", KILLED_BY_AN);
+#endif
     } else if (poisonous(&mons[mnum]) && rn2(5)) {
         tp++;
+/*JP
         pline("Ecch - that must have been poisonous!");
+*/
+        pline("\83E\83Q\83F\81[\81C\97L\93Å\82¾\82Á\82½\82É\82¿\82ª\82¢\82È\82¢\81I");  
         if (!Poison_resistance) {
             losestr(rnd(4));
+/*JP
             losehp(rnd(15), "poisonous corpse", KILLED_BY_AN);
+*/
+            losehp(rnd(15), "\93Å\82Ì\8e\80\91Ì\82Å", KILLED_BY_AN);
         } else
+/*JP
             You("seem unaffected by the poison.");
+*/
+            You("\93Å\82Ì\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D");
         /* now any corpse left too long will make you mildly ill */
     } else if ((rotted > 5L || (rotted > 3L && rn2(5))) && !Sick_resistance) {
         tp++;
+/*JP
         You_feel("%ssick.", (Sick) ? "very " : "");
+*/
+        You("%s\8bC\95ª\82ª\88«\82¢\81D", (Sick) ? "\82Æ\82Ä\82à" : "");
+/*JP
         losehp(rnd(8), "cadaver", KILLED_BY_AN);
+*/
+        losehp(rnd(8), "\95\85\97\90\8e\80\91Ì\82Å", KILLED_BY_AN);
     }
 
     /* delay is weight dependent */
@@ -1606,7 +1924,10 @@ struct obj *otmp;
         if (!mons[otmp->corpsenm].cnutrit) {
             /* no nutrition: rots away, no message if you passed out */
             if (!retcode)
+/*JP
                 pline_The("corpse rots away completely.");
+*/
+                pline("\8e\80\91Ì\82Í\8a®\91S\82É\95\85\82Á\82Ä\82µ\82Ü\82Á\82½\81D");
             if (carried(otmp))
                 useup(otmp);
             else
@@ -1629,6 +1950,7 @@ struct obj *otmp;
                            : (carnivorous(youmonst.data)
                               && !herbivorous(youmonst.data));
 
+#if 0 /*JP*/
         pline("%s%s %s!",
               type_is_pname(&mons[mnum])
                  ? "" : the_unique_pm(&mons[mnum]) ? "The " : "This ",
@@ -1638,6 +1960,15 @@ struct obj *otmp;
                                                       : "is gnarly")
                            : "is grody")
                   : (yummy ? "is delicious" : "tastes terrible"));
+#else
+        pline("\82±\82Ì%s\82Í%s\81I",
+              food_xname(otmp, FALSE),
+              Hallucination
+                  ? (yummy ? ((u.umonnum == PM_TIGER) ? "\83O\83D\83\8c\83C\83g\83D"
+                                                      : "\83C\83P\82Ä\82é")
+                           : "\83C\83P\82Ä\82È\82¢")
+                  : (yummy ? "\82Æ\82Ä\82à\8e|\82¢" : "\82Ð\82Ç\82¢\96¡\82¾"));
+#endif
     }
 
     return retcode;
@@ -1690,7 +2021,10 @@ struct obj *otmp;
         return;
     }
 
+/*JP
     Sprintf(msgbuf, "eating %s", food_xname(otmp, TRUE));
+*/
+    Sprintf(msgbuf, "%s\82ð\90H\82×\82é", food_xname(otmp, TRUE));
     set_occupation(eatfood, msgbuf, 0);
 }
 
@@ -1705,19 +2039,40 @@ struct obj *otmp;
     switch (otmp->otyp) {
     case FOOD_RATION:
         if (u.uhunger <= 200)
+/*JP
             pline(Hallucination ? "Oh wow, like, superior, man!"
+*/
+            pline(Hallucination ? "\82Ü\82Á\82½\82è\82Æ\82µ\82Ä\81C\82»\82ê\82Å\82¢\82Ä\82µ\82Â\82±\82­\82È\82¢\81I\82±\82ê\82¼\8b\86\8bÉ\82Ì\83\81\83j\83\85\81[\82¾\81I"
+/*JP
+                                : "That food really hit the spot!");
+*/
                                 : "That food really hit the spot!");
         else if (u.uhunger <= 700)
+/*JP
             pline("That satiated your %s!", body_part(STOMACH));
+*/
+            pline("\96\9e\95 \82É\82È\82Á\82½\81I");
         break;
     case TRIPE_RATION:
         if (carnivorous(youmonst.data) && !humanoid(youmonst.data))
+/*JP
             pline("That tripe ration was surprisingly good!");
+*/
+            pline("\82±\82Ì\83\82\83c\93÷\82Í\82¨\82Ç\82ë\82­\82Ù\82Ç\8e|\82¢\81I");
         else if (maybe_polyd(is_orc(youmonst.data), Race_if(PM_ORC)))
+/*JP
             pline(Hallucination ? "Tastes great! Less filling!"
+*/
+            pline(Hallucination ? "\82¤\82Ü\82¢\81I\82à\82Á\82Æ\82Ù\82µ\82­\82È\82é\82Ë\81I"
+/*JP
                                 : "Mmm, tripe... not bad!");
+*/
+                                : "\82ñ\81[\81C\83\82\83c\82©\81D\81D\81D\88«\82­\82È\82¢\81I");
         else {
+/*JP
             pline("Yak - dog food!");
+*/
+            pline("\82¤\82°\81C\83h\83b\83O\83t\81[\83h\82¾\81I");
             more_experienced(1, 0);
             newexplevel();
             /* not cannibalism, but we use similar criteria
@@ -1740,9 +2095,15 @@ struct obj *otmp;
     default:
         if (otmp->otyp == SLIME_MOLD && !otmp->cursed
             && otmp->spe == context.current_fruit) {
+#if 0 /*JP*/
             pline("My, that was a %s %s!",
                   Hallucination ? "primo" : "yummy",
                   singular(otmp, xname));
+#else
+            pline("\82¨\82â\81C\82È\82ñ\82Ä%s%s\82¾\81I",
+                  Hallucination ? "\8fã\95i\82È" : "\82¨\82¢\82µ\82¢",
+                  singular(otmp, xname));
+#endif
         } else if (otmp->otyp == APPLE && otmp->cursed && !Sleep_resistance) {
             ; /* skip core joke; feedback deferred til fpostfx() */
 
@@ -1751,7 +2112,10 @@ struct obj *otmp;
            We check MACOSX before UNIX to get the Apple-specific apple
            message; the '#if UNIX' code will still kick in for pear. */
         } else if (otmp->otyp == APPLE) {
+/*JP
             pline("Delicious!  Must be a Macintosh!");
+*/
+            pline("\82·\82Î\82ç\82µ\82¢\81I\83}\83b\83L\83\93\83g\83b\83V\83\85\82É\88á\82¢\82È\82¢\81I");
 #endif
 
 #ifdef UNIX
@@ -1773,10 +2137,15 @@ struct obj *otmp;
             }
 #endif
         } else if (otmp->otyp == EGG && stale_egg(otmp)) {
+#if 0 /*JP*/
             pline("Ugh.  Rotten egg."); /* perhaps others like it */
+#else
+            pline("\83E\83Q\83F\81[\95\85\82Á\82½\97\91\82¾\81D");
+#endif
             make_vomiting((Vomiting & TIMEOUT) + (long) d(10, 4), TRUE);
         } else {
         give_feedback:
+#if 0 /*JP*/
             pline("This %s is %s", singular(otmp, xname),
                   otmp->cursed
                      ? (Hallucination ? "grody!" : "terrible!")
@@ -1785,6 +2154,16 @@ struct obj *otmp;
                         || otmp->otyp == C_RATION)
                         ? "bland."
                         : Hallucination ? "gnarly!" : "delicious!");
+#else
+            pline("\82±\82Ì%s\82Í%s", singular(otmp, xname),
+                  otmp->cursed
+                    ? (Hallucination ? "\83C\83P\82Ä\82È\82¢\81I" : "\82Ð\82Ç\82¢\96¡\82¾\81I")
+                    : (otmp->otyp == CRAM_RATION
+                        || otmp->otyp == K_RATION
+                        || otmp->otyp == C_RATION)
+                        ? "\96¡\8bC\82È\82¢\81D"
+                        : Hallucination ? "\83C\83P\82Ä\82é\81I" : "\82¤\82Ü\82¢\81I");
+#endif
         }
         break; /* default */
     } /* switch */
@@ -1827,8 +2206,13 @@ STATIC_OVL void
 accessory_has_effect(otmp)
 struct obj *otmp;
 {
+#if 0 /*JP*/
     pline("Magic spreads through your body as you digest the %s.",
           otmp->oclass == RING_CLASS ? "ring" : "amulet");
+#else
+    pline("\82 \82È\82½\82ª%s\82ð\8fÁ\89»\82·\82é\82Æ\81C\82»\82Ì\96\82\97Í\82ª\91Ì\82É\82µ\82Ý\82±\82ñ\82¾\81D",
+          otmp->oclass == RING_CLASS ? "\8ew\97Ö" : "\96\82\8f\9c\82¯");
+#endif
 }
 
 STATIC_OVL void
@@ -1865,7 +2249,10 @@ struct obj *otmp;
                 if (Invis && !oldprop && !ESee_invisible
                     && !perceives(youmonst.data) && !Blind) {
                     newsym(u.ux, u.uy);
+/*JP
                     pline("Suddenly you can see yourself.");
+*/
+                    pline("\93Ë\91R\8e©\95ª\8e©\90g\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81D");
                     makeknown(typ);
                 }
                 break;
@@ -1873,8 +2260,13 @@ struct obj *otmp;
                 if (!oldprop && !EInvis && !BInvis && !See_invisible
                     && !Blind) {
                     newsym(u.ux, u.uy);
+#if 0 /*JP*/
                     Your("body takes on a %s transparency...",
                          Hallucination ? "normal" : "strange");
+#else
+                    pline("%s\82 \82È\82½\82Ì\91Ì\82Í\93§\89ß\90«\82ð\82à\82Á\82½\81D\81D\81D",
+                          Hallucination ? "\82 \82½\82è\82Ü\82¦\82È\82±\82Æ\82¾\82ª" : "\8aï\96­\82È\82±\82Æ\82É");
+#endif
                     makeknown(typ);
                 }
                 break;
@@ -1930,15 +2322,23 @@ struct obj *otmp;
             if (!(HSleep_resistance & FROMOUTSIDE))
                 accessory_has_effect(otmp);
             if (!Sleep_resistance)
+/*JP
                 You_feel("wide awake.");
+*/
+                You("\82Ï\82Á\82¿\82è\96Ú\82ª\82³\82ß\82½\81D");
             HSleep_resistance |= FROMOUTSIDE;
             break;
         case AMULET_OF_CHANGE:
             accessory_has_effect(otmp);
             makeknown(typ);
             change_sex();
+#if 0 /*JP*/
             You("are suddenly very %s!",
                 flags.female ? "feminine" : "masculine");
+#else
+            You("\93Ë\91R\82Æ\82Ä\82à%s\82Á\82Û\82­\82È\82Á\82½\81I", 
+                flags.female ? "\8f\97" : "\92j");
+#endif
             context.botl = 1;
             break;
         case AMULET_OF_UNCHANGING:
@@ -1982,7 +2382,10 @@ eatspecial()
     struct obj *otmp = context.victual.piece;
 
     /* lesshungry wants an occupation to handle choke messages correctly */
+/*JP
     set_occupation(eatfood, "eating non-food", 0);
+*/
+    set_occupation(eatfood, "\90H\82×\82é", 0);
     lesshungry(context.victual.nmod);
     occupation = 0;
     context.victual.piece = (struct obj *) 0;
@@ -2014,13 +2417,21 @@ eatspecial()
     /* KMH -- idea by "Tommy the Terrorist" */
     if (otmp->otyp == TRIDENT && !otmp->cursed) {
         /* sugarless chewing gum which used to be heavily advertised on TV */
+#if 0 /*JP*/
         pline(Hallucination ? "Four out of five dentists agree."
                             : "That was pure chewing satisfaction!");
+#else
+        pline(Hallucination ? "\8cÜ\90l\82É\8el\90l\82Ì\8e\95\88ã\8eÒ\82ª\83g\83\89\83C\83f\83\93\83g\82ð\82¨\91E\82ß\82µ\82Ä\82¢\82Ü\82·\81D"
+                            : "\8f\83\90\88\82É\8a\9a\82Ý\82½\82¢\8bC\8e\9d\82ð\96\9e\82½\82µ\82½\81I");
+#endif
         exercise(A_WIS, TRUE);
     }
     if (otmp->otyp == FLINT && !otmp->cursed) {
         /* chewable vitamin for kids based on "The Flintstones" TV cartoon */
+/*JP
         pline("Yabba-dabba delicious!");
+*/
+        pline("\83\84\83b\83o\83_\83b\83o\82¤\82Ü\82¢\81I");
         exercise(A_CON, TRUE);
     }
 
@@ -2044,10 +2455,17 @@ eatspecial()
 /* NOTE: the order of these words exactly corresponds to the
    order of oc_material values #define'd in objclass.h. */
 static const char *foodwords[] = {
+#if 0 /*JP*/
     "meal",    "liquid",  "wax",       "food", "meat",     "paper",
     "cloth",   "leather", "wood",      "bone", "scale",    "metal",
     "metal",   "metal",   "silver",    "gold", "platinum", "mithril",
     "plastic", "glass",   "rich food", "stone"
+#else
+    "\93÷",           "\89t\91Ì",   "\96û",       "\90H\97¿", "\93÷",       "\8e\86",
+    "\95\9e",           "\94ç",     "\96Ø",       "\8d\9c",   "\97Ø",       "\8bà\91®",
+    "\8bà\91®",         "\8bà\91®",   "\8bâ",       "\8bà",   "\83v\83\89\83`\83i", "\83~\83X\83\8a\83\8b",
+    "\83v\83\89\83X\83`\83b\83N", "\83K\83\89\83X", "\8d\82\8b\89\97¿\97\9d", "\90Î"
+#endif
 };
 
 STATIC_OVL const char *
@@ -2055,7 +2473,10 @@ foodword(otmp)
 struct obj *otmp;
 {
     if (otmp->oclass == FOOD_CLASS)
+/*JP
         return "food";
+*/
+        return "\90H\97¿";
     if (otmp->oclass == GEM_CLASS && objects[otmp->otyp].oc_material == GLASS
         && otmp->dknown)
         makeknown(otmp->otyp);
@@ -2102,8 +2523,13 @@ struct obj *otmp;
                 u.uhp = u.uhpmax;
             } else if (u.uhp <= 0) {
                 killer.format = KILLED_BY_AN;
+#if 0 /*JP*/
                 Strcpy(killer.name, "rotten lump of royal jelly");
                 done(POISONING);
+#else
+                Strcpy(killer.name, "\95\85\82Á\82½\83\8d\83C\83\84\83\8b\83[\83\8a\81[\82ð\90H\82×\90H\92\86\93Å\82Å");
+                done(DIED);
+#endif
             }
         }
         if (!otmp->cursed)
@@ -2115,7 +2541,10 @@ struct obj *otmp;
                 && !(poly_when_stoned(youmonst.data)
                      && polymon(PM_STONE_GOLEM))) {
                 if (!Stoned) {
+/*JP
                     Sprintf(killer.name, "%s egg",
+*/
+                    Sprintf(killer.name, "%s\82Ì\97\91\82Å",
                             mons[otmp->corpsenm].mname);
                     make_stoned(5L, (char *) 0, KILLED_BY_AN, killer.name);
                 }
@@ -2188,8 +2617,12 @@ struct obj *otmp;
 
     Strcpy(foodsmell, Tobjnam(otmp, "smell"));
     Strcpy(it_or_they, (otmp->quan == 1L) ? "it" : "they");
+#if 0 /*JP*/
     Sprintf(eat_it_anyway, "Eat %s anyway?",
             (otmp->quan == 1L) ? "it" : "one");
+#else
+    Strcpy(eat_it_anyway, "\82»\82ê\82Å\82à\90H\82×\82é\81H");
+#endif
 
     if (cadaver || otmp->otyp == EGG || otmp->otyp == TIN) {
         /* These checks must match those in eatcorpse() */
@@ -2217,16 +2650,26 @@ struct obj *otmp;
      */
     if (cadaver && mnum != PM_ACID_BLOB && rotted > 5L && !Sick_resistance) {
         /* Tainted meat */
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s could be tainted! %s", foodsmell, it_or_they,
                 eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\89\98\90õ\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s",
+                foodsmell, eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
             return 2;
     }
     if (stoneorslime) {
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s could be something very dangerous! %s",
                 foodsmell, it_or_they, eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\82È\82ñ\82¾\82©\82·\82²\82­\8aë\8c¯\82»\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s",
+                foodsmell, eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2234,8 +2677,13 @@ struct obj *otmp;
     }
     if (otmp->orotten || (cadaver && rotted > 3L)) {
         /* Rotten */
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s could be rotten! %s", foodsmell, it_or_they,
                 eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\95\85\82Á\82½\82æ\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s",
+                foodsmell, eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2243,8 +2691,13 @@ struct obj *otmp;
     }
     if (cadaver && poisonous(&mons[mnum]) && !Poison_resistance) {
         /* poisonous */
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s might be poisonous! %s", foodsmell,
                 it_or_they, eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\93Å\82ð\82à\82Á\82Ä\82¢\82»\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s",
+                foodsmell, eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2252,20 +2705,31 @@ struct obj *otmp;
     }
     if (otmp->otyp == APPLE && otmp->cursed && !Sleep_resistance) {
         /* causes sleep, for long enough to be dangerous */
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s might have been poisoned. %s", foodsmell,
                 it_or_they, eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\93Å\82ª\93ü\82ê\82ç\82ê\82Ä\82¢\82»\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s",
+                foodsmell, eat_it_anyway);
+#endif
         return (yn_function(buf, ynchars, 'n') == 'n') ? 1 : 2;
     }
     if (cadaver && !vegetarian(&mons[mnum]) && !u.uconduct.unvegetarian
         && Role_if(PM_MONK)) {
+/*JP
         Sprintf(buf, "%s unhealthy. %s", foodsmell, eat_it_anyway);
+*/
+        Sprintf(buf, "%s\82Í\8c\92\8dN\82É\88«\82»\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81D%s", foodsmell, eat_it_anyway);
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
             return 2;
     }
     if (cadaver && acidic(&mons[mnum]) && !Acid_resistance) {
+/*JP
         Sprintf(buf, "%s rather acidic. %s", foodsmell, eat_it_anyway);
+*/
+        Sprintf(buf, "%s\82Í\8f­\82µ\8e_\82Á\82Ï\82»\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81D%s", foodsmell, eat_it_anyway);
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2273,8 +2737,13 @@ struct obj *otmp;
     }
     if (Upolyd && u.umonnum == PM_RUST_MONSTER && is_metallic(otmp)
         && otmp->oerodeproof) {
+#if 0 /*JP*/
         Sprintf(buf, "%s disgusting to you right now. %s", foodsmell,
                 eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\8bC\95ª\82ª\88«\82­\82È\82é\82É\82¨\82¢\82ª\82·\82é\81D%s", foodsmell,
+                eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2288,8 +2757,13 @@ struct obj *otmp;
         && ((material == LEATHER || material == BONE
              || material == DRAGON_HIDE || material == WAX)
             || (cadaver && !vegan(&mons[mnum])))) {
+#if 0 /*JP*/
         Sprintf(buf, "%s foul and unfamiliar to you. %s", foodsmell,
                 eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\89\98\82ê\82Ä\82¢\82Ä\81C\82 \82È\82½\82É\82È\82\82Ü\82È\82¢\82æ\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81D%s", foodsmell,
+                eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2299,7 +2773,10 @@ struct obj *otmp;
         && ((material == LEATHER || material == BONE
              || material == DRAGON_HIDE)
             || (cadaver && !vegetarian(&mons[mnum])))) {
+/*JP
         Sprintf(buf, "%s unfamiliar to you. %s", foodsmell, eat_it_anyway);
+*/
+        Sprintf(buf, "%s\82Í\82 \82È\82½\82É\82È\82\82Ü\82È\82¢\82æ\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81D%s", foodsmell, eat_it_anyway);
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2308,8 +2785,13 @@ struct obj *otmp;
 
     if (cadaver && mnum != PM_ACID_BLOB && rotted > 5L && Sick_resistance) {
         /* Tainted meat with Sick_resistance */
+#if 0 /*JP*/
         Sprintf(buf, "%s like %s could be tainted! %s", foodsmell, it_or_they,
                 eat_it_anyway);
+#else
+        Sprintf(buf, "%s\82Í\89\98\90õ\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È\82É\82¨\82¢\82ª\82·\82é\81I%s", foodsmell,
+                eat_it_anyway);
+#endif
         if (yn_function(buf, ynchars, 'n') == 'n')
             return 1;
         else
@@ -2327,7 +2809,10 @@ doeat()
     boolean dont_start = FALSE, nodelicious = FALSE;
 
     if (Strangled) {
+/*JP
         pline("If you can't breathe air, how can you consume solids?");
+*/
+        pline("\91§\82à\82Å\82«\82È\82¢\82Ì\82É\81C\82Ç\82¤\82â\82Á\82Ä\90H\82×\82½\82ç\82¢\82¢\82ñ\82¾\82¢\81H");
         return 0;
     }
     if (!(otmp = floorfood("eat", 0)))
@@ -2338,9 +2823,14 @@ doeat()
     if (u.uedibility) {
         int res = edibility_prompts(otmp);
         if (res) {
+#if 0 /*JP*/
             Your(
                "%s stops tingling and your sense of smell returns to normal.",
                  body_part(NOSE));
+#else
+            Your("%s\82ª\82¤\82¸\82¤\82¸\82·\82é\82Ì\82Í\8e~\82Ü\82è\81C\9ak\8ao\82Í\95\81\92Ê\82É\96ß\82Á\82½\81D",
+                 body_part(NOSE));
+#endif
             u.uedibility = 0;
             if (res == 1)
                 return 0;
@@ -2356,12 +2846,18 @@ doeat()
                         : touch_artifact(otmp, &youmonst))) {
         return 1;
     } else if (!is_edible(otmp)) {
+/*JP
         You("cannot eat that!");
+*/
+        You("\82»\82ê\82ð\90H\82×\82ç\82ê\82È\82¢\81I");
         return 0;
     } else if ((otmp->owornmask & (W_ARMOR | W_TOOL | W_AMUL | W_SADDLE))
                != 0) {
         /* let them eat rings */
+/*JP
         You_cant("eat %s you're wearing.", something);
+*/
+        You("\90g\82É\82Â\82¯\82Ä\82¢\82é\8aÔ\82Í\90H\82×\82ê\82È\82¢\81D");
         return 0;
     }
     if (is_metallic(otmp) && u.umonnum == PM_RUST_MONSTER
@@ -2373,12 +2869,20 @@ doeat()
             else
                 otmp = splitobj(otmp, 1L);
         }
+/*JP
         pline("Ulch - that %s was rustproofed!", xname(otmp));
+*/
+        pline("\83E\83Q\83F\81[\81I%s\82Í\96h\8eK\82³\82ê\82Ä\82¢\82é\81I", xname(otmp));
         /* The regurgitated object's rustproofing is gone now */
         otmp->oerodeproof = 0;
         make_stunned((HStun & TIMEOUT) + (long) rn2(10), TRUE);
+#if 0 /*JP*/
         You("spit %s out onto the %s.", the(xname(otmp)),
             surface(u.ux, u.uy));
+#else
+        You("%s\82ð%s\82É\93f\82«\8fo\82µ\82½\81D", the(xname(otmp)),
+            surface(u.ux, u.uy));
+#endif
         if (carried(otmp)) {
             freeinv(otmp);
             dropy(otmp);
@@ -2388,7 +2892,10 @@ doeat()
     }
     /* KMH -- Slow digestion is... indigestible */
     if (otmp->otyp == RIN_SLOW_DIGESTION) {
+/*JP
         pline("This ring is indigestible!");
+*/
+        pline("\82±\82Ì\8ew\97Ö\82Í\8fÁ\89»\82µ\82É\82­\82¢\81I");
         (void) rottenfood(otmp);
         if (otmp->dknown && !objects[otmp->otyp].oc_name_known
             && !objects[otmp->otyp].oc_uname)
@@ -2437,13 +2944,28 @@ doeat()
             (void) rottenfood(otmp);
 
         if (otmp->oclass == WEAPON_CLASS && otmp->opoisoned) {
+/*JP
             pline("Ecch - that must have been poisonous!");
+*/
+            pline("\83E\83Q\83F\81[\81C\97L\93Å\82¾\82Á\82½\82É\88á\82¢\82È\82¢\81I");  
             if (!Poison_resistance) {
                 losestr(rnd(4));
+#if 0 /*JP*/
                 losehp(rnd(15), xname(otmp), KILLED_BY_AN);
+#else
+                {
+                    char jbuf[BUFSZ];
+                    Sprintf(jbuf, "%s\82Å", xname(otmp));
+                    losehp(rnd(15), jbuf, KILLED_BY_AN);
+                }
+#endif
             } else
+/*JP
                 You("seem unaffected by the poison.");
+*/
+                You("\93Å\82Ì\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D");
         } else if (!otmp->cursed && !nodelicious) {
+#if 0 /*JP*/
             pline("%s%s is delicious!",
                   (obj_is_pname(otmp)
                    && otmp->oartifact < ART_ORB_OF_DETECTION)
@@ -2452,6 +2974,12 @@ doeat()
                   (otmp->oclass == COIN_CLASS)
                       ? foodword(otmp)
                       : singular(otmp, xname));
+#else
+            pline("\82±\82Ì%s\82Í\8e|\82¢\81I",
+                  otmp->oclass == COIN_CLASS
+                      ? foodword(otmp)
+                      : singular(otmp, xname));
+#endif
         }
         eatspecial();
         return 1;
@@ -2469,7 +2997,10 @@ doeat()
         context.victual.piece = touchfood(otmp);
         if (context.victual.piece)
             context.victual.o_id = context.victual.piece->o_id;
+/*JP
         You("resume your meal.");
+*/
+        You("\90H\8e\96\82ð\8dÄ\8aJ\82µ\82½\81D");
         start_eating(context.victual.piece);
         return 1;
     }
@@ -2695,8 +3226,14 @@ int num;
         if (u.uhunger >= 1500) {
             if (!context.victual.eating
                 || (context.victual.eating && !context.victual.fullwarn)) {
+/*JP
                 pline("You're having a hard time getting all of it down.");
+*/
+                pline("\91S\82Ä\82ð\88ù\82Ý\82±\82Þ\82É\82Í\8e\9e\8aÔ\82ª\82©\82©\82é\81D");
+/*JP
                 nomovemsg = "You're finally finished.";
+*/
+                nomovemsg = "\82â\82Á\82Æ\90H\82×\8fI\82¦\82½\81D";
                 if (!context.victual.eating) {
                     multi = -2;
                 } else {
@@ -2704,7 +3241,10 @@ int num;
                     if (context.victual.canchoke
                         && context.victual.reqtime > 1) {
                         /* a one-gulp food will not survive a stop */
+/*JP
                         if (yn_function("Continue eating?", ynchars, 'n')
+*/
+                        if (yn_function("\90H\82×\91±\82¯\82Ü\82·\82©\81H", ynchars, 'n')
                             != 'y') {
                             reset_eat();
                             nomovemsg = (char *) 0;
@@ -2803,13 +3343,22 @@ boolean incr;
 
                 /* stop what you're doing, then faint */
                 stop_occupation();
+/*JP
                 You("faint from lack of food.");
+*/
+                You("\95 \82ª\8c¸\82Á\82Ä\93|\82ê\82½\81D");
                 if (!Levitation)
+/*JP
                     selftouch("Falling, you");
+*/
+                    selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
                 incr_itimeout(&HDeaf, duration);
                 nomul(-duration);
                 multi_reason = "fainted from lack of food";
+/*JP
                 nomovemsg = "You regain consciousness.";
+*/
+                nomovemsg = "\82 \82È\82½\82Í\90³\8bC\82Ã\82¢\82½\81D";
                 afternmv = unfaint;
                 newhs = FAINTED;
             }
@@ -2817,9 +3366,15 @@ boolean incr;
             u.uhs = STARVED;
             context.botl = 1;
             bot();
+/*JP
             You("die from starvation.");
+*/
+            You("\89ì\8e\80\82µ\82½\81D");
             killer.format = KILLED_BY;
+/*JP
             Strcpy(killer.name, "starvation");
+*/
+            Strcpy(killer.name, "\90H\97¿\95s\91«\82Å\89ì\8e\80\82µ\82½");
             done(STARVING);
             /* if we return, we lifesaved, and that calls newuhs */
             return;
@@ -2834,13 +3389,30 @@ boolean incr;
         switch (newhs) {
         case HUNGRY:
             if (Hallucination) {
+#if 0 /*JP:T*/
                 You((!incr) ? "now have a lesser case of the munchies."
                             : "are getting the munchies.");
+#else
+                if (!incr) {
+                    You("\83n\83\89\83w\83\8a\82ª\8c¸\82Á\82½\81D");
+                } else {
+                    pline("\83n\83\89\83w\83\8a\83w\83\8a\83n\83\89\81D");
+                }
+#endif
             } else
+/*JP
                 You((!incr) ? "only feel hungry now."
+*/
+                You((!incr) ? "\92P\82É\95 \83y\83R\8fó\91Ô\82É\82È\82Á\82½\81D"
                             : (u.uhunger < 145)
+/*JP
                                   ? "feel hungry."
+*/
+                                  ? "\8bó\95 \8a´\82ð\8a´\82\82½\81D"
+/*JP
                                   : "are beginning to feel hungry.");
+*/
+                                  : "\8bó\95 \8a´\82ð\82¨\82Ú\82¦\82Í\82\82ß\82½\81D");
             if (incr && occupation
                 && (occupation != eatfood && occupation != opentin))
                 stop_occupation();
@@ -2848,19 +3420,40 @@ boolean incr;
             break;
         case WEAK:
             if (Hallucination)
+/*JP
                 pline((!incr) ? "You still have the munchies."
+*/
+                pline((!incr) ? "\83n\83\89\83w\83\8a\82ª\8c¸\82ç\82È\82¢\81D"
+/*JP
               : "The munchies are interfering with your motor capabilities.");
+*/
+              : "\83n\83\89\83w\83\8a\82ª\83\82\81[\83^\81[\90«\94\\82É\89e\8b¿\82ð\97^\82¦\82Ä\82¢\82é\81D");
             else if (incr && (Role_if(PM_WIZARD) || Race_if(PM_ELF)
                               || Role_if(PM_VALKYRIE)))
+/*JP
                 pline("%s needs food, badly!",
+*/
+                pline("%s\82É\82Í\8e\8a\8b}\90H\97¿\82ª\95K\97v\82¾\81I",
                       (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE))
                           ? urole.name.m
+/*JP
                           : "Elf");
+*/
+                          : "\83G\83\8b\83t");
             else
                 You((!incr)
+/*JP
                         ? "feel weak now."
+*/
+                        ? "\90\8a\8eã\8fó\91Ô\82É\82È\82Á\82½\81D"
+/*JP
                         : (u.uhunger < 45) ? "feel weak."
+*/
+                        : (u.uhunger < 45) ? "\90\8a\8eã\82µ\82Ä\82«\82½\81D"
+/*JP
                                            : "are beginning to feel weak.");
+*/
+                                           : "\8eã\82­\82È\82Á\82Ä\82«\82½\82æ\82¤\82É\8a´\82\82½\81D");
             if (incr && occupation
                 && (occupation != eatfood && occupation != opentin))
                 stop_occupation();
@@ -2871,9 +3464,15 @@ boolean incr;
         context.botl = 1;
         bot();
         if ((Upolyd ? u.mh : u.uhp) < 1) {
+/*JP
             You("die from hunger and exhaustion.");
+*/
+            You("\8bó\95 \82Æ\90\8a\8eã\82Å\8e\80\82ñ\82¾\81D");
             killer.format = KILLED_BY;
+/*JP
             Strcpy(killer.name, "exhaustion");
+*/
+            Strcpy(killer.name, "\8bó\95 \82Æ\90\8a\8eã\82Å\8e\80\82ñ\82¾");
             done(STARVING);
             return;
         }
@@ -2883,6 +3482,11 @@ boolean incr;
 /* Returns an object representing food.
  * Object may be either on floor or in inventory.
  */
+/*JP CHECK: 3.4.3 \82Å\82Ì\8cÄ\82Ñ\8fo\82µ\8c³
+apply.c:1959:   if (!(corpse = floorfood("\8aÊ\8bl\82ß\82É\82·\82é", 2))) return;
+eat.c:2404:     if (!(otmp = floorfood("\90H\82×\82é", 0))) return 0;
+pray.c:1478:    if (!(otmp = floorfood("\95ù\82°\82é", 1))) return 0;
+*/
 struct obj *
 floorfood(verb, corpsecheck)
 const char *verb;
@@ -2894,6 +3498,10 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */
     boolean feeding = !strcmp(verb, "eat"),    /* corpsecheck==0 */
         offering = !strcmp(verb, "sacrifice"); /* corpsecheck==1 */
 
+#if 1 /*JP*/
+    const char *jverb = trans_verb(verb)->jp;
+#endif
+
     /* if we can't touch floor objects then use invent food only */
     if (!can_reach_floor(TRUE) || (feeding && u.usteed)
         || (is_pool_or_lava(u.ux, u.uy)
@@ -2909,9 +3517,18 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */
             /* If not already stuck in the trap, perhaps there should
                be a chance to becoming trapped?  Probably not, because
                then the trap would just get eaten on the _next_ turn... */
+/*JP
             Sprintf(qbuf, "There is a bear trap here (%s); eat it?",
+*/
+            Sprintf(qbuf, "\82±\82±\82É\82Í\8cF\82Ìã©(%s)\82ª\82 \82é; \90H\82×\82Ü\82·\82©\81H",
+/*JP
                     (u.utrap && u.utraptype == TT_BEARTRAP) ? "holding you"
+*/
+                    (u.utrap && u.utraptype == TT_BEARTRAP) ? "\82 \82È\82½\82ð\92Í\82Ü\82¦\82Ä\82¢\82é"
+/*JP
                                                             : "armed");
+*/
+                                                            : "\89Ò\93®\92\86");
             if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') {
                 u.utrap = u.utraptype = 0;
                 deltrap(ttmp);
@@ -2923,11 +3540,15 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */
 
         if (youmonst.data != &mons[PM_RUST_MONSTER]
             && (gold = g_at(u.ux, u.uy)) != 0) {
+#if 0 /*JP*/
             if (gold->quan == 1L)
                 Sprintf(qbuf, "There is 1 gold piece here; eat it?");
             else
                 Sprintf(qbuf, "There are %ld gold pieces here; eat them?",
                         gold->quan);
+#else
+            Sprintf(qbuf, "\82±\82±\82É\82Í%ld\96\87\82Ì\8bà\89Ý\82ª\82 \82é\81D\90H\82×\82Ü\82·\82©\81H", gold->quan);
+#endif
             if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') {
                 return gold;
             } else if (c == 'q') {
@@ -2948,10 +3569,17 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */
 
             /* "There is <an object> here; <verb> it?" or
                "There are <N objects> here; <verb> one?" */
+#if 0 /*JP*/
             Sprintf(qbuf, "There %s ", otense(otmp, "are"));
             Sprintf(qsfx, " here; %s %s?", verb, one ? "it" : "one");
             (void) safe_qbuf(qbuf, qbuf, qsfx, otmp, doname, ansimpleoname,
                              one ? something : (const char *) "things");
+#else
+            Strcpy(qbuf, "\82±\82±\82É");
+            Sprintf(qsfx, "\82ª\82 \82é; %s%s?", one ? "" : "\88ê\82Â", jverb);
+            (void) safe_qbuf(qbuf, qbuf, qsfx, otmp, doname, ansimpleoname,
+                             one ? something : (const char *) "\89½\82©");
+#endif
             if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y')
                 return  otmp;
             else if (c == 'q')
@@ -2967,7 +3595,10 @@ skipfloor:
         getobj(feeding ? allobj : offering ? offerfodder : comestibles, verb);
     if (corpsecheck && otmp && !(offering && otmp->oclass == AMULET_CLASS))
         if (otmp->otyp != CORPSE || (corpsecheck == 2 && !tinnable(otmp))) {
+/*JP
             You_cant("%s that!", verb);
+*/
+            You_cant("\82»\82ê\82ð%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81I", jverb);
             return (struct obj *) 0;
         }
     return otmp;
index 632d7a7..f92414f 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -272,6 +272,7 @@ NH_panictrace_gdb()
 }
 #endif /* PANICTRACE */
 
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\8eg\82í\82È\82¢*/
 /*
  * The order of these needs to match the macros in hack.h.
  */
@@ -282,9 +283,11 @@ static NEARDATA const char *deaths[] = {
     "turned into slime", "genocided", "panic", "trickery", "quit",
     "escaped", "ascended"
 };
+#endif /*JP*/
 
 static NEARDATA const char *ends[] = {
     /* "when you %s" */
+#if 0 /*JP*/
     "died", "choked", "were poisoned",
     "starved", "drowned", "burned",
     "dissolved in the lava",
@@ -292,6 +295,15 @@ static NEARDATA const char *ends[] = {
     "turned into slime", "were genocided",
     "panicked", "were tricked", "quit",
     "escaped", "ascended"
+#else /*JP: \8dÅ\8cã\82É\81u\8eE\82³\82ê\82½\81v\92Ç\89Á */
+    "\8e\80\82ñ\82¾", "\92\82\91§\82µ\82½", "\93Å\82É\82¨\82©\82³\82ê\82½",
+    "\89ì\8e\80\82µ\82½", "\93M\8e\80\82µ\82½", "\8fÄ\8e\80\82µ\82½",
+    "\97n\8aâ\82É\97n\82¯\82½",
+    "\89\9f\82µ\92×\82³\82ê\82½", "\90Î\82É\82È\82Á\82½",
+    "\82Ç\82ë\82Ç\82ë\82É\97n\82¯\82½", "\8bs\8eE\82³\82ê\82½",
+    "\83p\83j\83b\83N\82É\82¨\82¿\82¢\82Á\82½", "\8aï\96­\82È\8fo\97\88\8e\96\82É\89ï\82Á\82½", "\94²\82¯\82½",
+    "\92E\8fo\82µ\82½", "\8f¸\93V\82µ\82½", "\8eE\82³\82ê\82½"
+#endif
 };
 
 static boolean Schroedingers_cat = FALSE;
@@ -322,7 +334,10 @@ int sig_unused UNUSED;
 int
 done2()
 {
+/*JP
     if (!paranoid_query(ParanoidQuit, "Really quit?")) {
+*/
+    if (!paranoid_query(ParanoidQuit, "\96{\93\96\82É\82â\82ß\82é\81H")) {
 #ifndef NO_SIGNAL
         (void) signal(SIGINT, (SIG_RET_TYPE) done1);
 #endif
@@ -409,10 +424,14 @@ int how;
             mimicker = (mtmp->m_ap_type == M_AP_MONSTER),
             imitator = (mptr != champtr || mimicker);
 
+/*JP
     You((how == STONING) ? "turn to stone..." : "die...");
+*/
+    You((how == STONING) ? "\90Î\82É\82È\82Á\82½\81D\81D\81D" : "\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
     mark_synch(); /* flush buffered screen output */
     buf[0] = '\0';
     killer.format = KILLED_BY_AN;
+#if 0 /*JP*//* \93ú\96{\8cê\82É\82Í\8aÖ\8cW\82È\82¢\82Ì\82Å\82Ü\82Æ\82ß\82Ä\83R\83\81\83\93\83g\83A\83E\83g */
     /* "killed by the high priest of Crom" is okay,
        "killed by the high priest" alone isn't */
     if ((mptr->geno & G_UNIQ) != 0 && !(imitator && !mimicker)
@@ -426,10 +445,17 @@ int how;
         Strcat(buf, "the ");
         killer.format = KILLED_BY;
     }
+#endif
     if (mtmp->minvis)
+/*JP
         Strcat(buf, "invisible ");
+*/
+        Strcat(buf, "\93§\96¾\82È");
     if (distorted)
+/*JP
         Strcat(buf, "hallucinogen-distorted ");
+*/
+        Strcat(buf, "\8c\8ao\82Å\98c\82ñ\82¾");
 
     if (imitator) {
         char shape[BUFSZ];
@@ -464,24 +490,39 @@ int how;
                 realnm, shape);
         mptr = mtmp->data; /* reset for mimicker case */
     } else if (mptr == &mons[PM_GHOST]) {
+#if 0 /*JP*/
         Strcat(buf, "ghost");
         if (has_mname(mtmp))
             Sprintf(eos(buf), " of %s", MNAME(mtmp));
+#else
+        if (has_mname(mtmp))
+            Sprintf(eos(buf), "%s\82Ì\97H\97ì", MNAME(mtmp));
+        else
+            Strcat(buf, "\97H\97ì");
+#endif
     } else if (mtmp->isshk) {
+#if 0 /*JP*/
         const char *shknm = shkname(mtmp),
                    *honorific = shkname_is_pname(mtmp) ? ""
                                    : mtmp->female ? "Ms. " : "Mr. ";
 
         Sprintf(eos(buf), "%s%s, the shopkeeper", honorific, shknm);
+#else
+        Sprintf(eos(buf), "%s\82Æ\82¢\82¤\96¼\82Ì\93X\8eå", shkname(mtmp));
+#endif
         killer.format = KILLED_BY;
     } else if (mtmp->ispriest || mtmp->isminion) {
         /* m_monnam() suppresses "the" prefix plus "invisible", and
            it overrides the effect of Hallucination on priestname() */
         Strcat(buf, m_monnam(mtmp));
     } else {
+#if 0 /*JP*/
         Strcat(buf, mptr->mname);
         if (has_mname(mtmp))
             Sprintf(eos(buf), " called %s", MNAME(mtmp));
+#else
+        Strcat(buf, mptr->mname);
+#endif
     }
 
     Strcpy(killer.name, buf);
@@ -499,6 +540,23 @@ int how;
         && (mvitals[u.ugrave_arise].mvflags & G_GENOD))
         u.ugrave_arise = NON_PM;
 
+#if 1 /*JP*/
+    if (how == STONING){
+        /*JP
+              topten.c \82Ì killed_by_prefix \82ð\8eQ\8fÆ\82Ì\82±\82Æ\81B
+              STONING \82Ì\8fê\8d\87\82Í "\90Î\89»\82µ\82½" \82ª\95â\82í\82ê\82é\81B
+         */
+        Strcat(buf, "\82Ì\8dU\8c\82\82Å");
+    }
+    if (how == DIED){
+        /*JP
+              DIED \82Ì\8fê\8d\87\82Í\92Ê\8fí "\8e\80\82ñ\82¾" \82ª\95â\82í\82ê\82é\82ª\81A
+              \89ö\95¨\82É\82æ\82é\8fê\8d\87\82Í "\82É\8eE\82³\82ê\82½" \82ð\95â\82¤\81B
+         */
+        killer.format = KILLED_SUFFIX;
+        done(DIED);
+    }
+#endif
     done(how);
     return;
 }
@@ -525,10 +583,19 @@ VA_DECL(const char *, str)
     }
 
     raw_print(program_state.gameover
+/*JP
                   ? "Postgame wrapup disrupted."
+*/
+                  ? "\83Q\81[\83\80\8fI\97¹\8e\9e\82Ì\8f\88\97\9d\82ª\95ö\89ó\82µ\82½\81D"
                   : !program_state.something_worth_saving
+/*JP
                         ? "Program initialization has failed."
+*/
+                        ? "\83v\83\8d\83O\83\89\83\80\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\81D"
+/*JP
                         : "Suddenly, the dungeon collapses.");
+*/
+                        : "\93Ë\91R\96À\8b{\82ª\95ö\82ê\82½\81D");
 #ifndef MICRO
 #if defined(NOTIFY_NETHACK_BUGS)
     if (!wizard)
@@ -538,9 +605,15 @@ VA_DECL(const char *, str)
         raw_print("\nError save file being written.\n");
 #else
     if (!wizard) {
+#if 0 /*JP*/
         const char *maybe_rebuild = !program_state.something_worth_saving
                                      ? "."
                                      : "\nand it may be possible to rebuild.";
+#else
+        const char *maybe_rebuild = !program_state.something_worth_saving
+                                     ? "\81D"
+                                     : "\n\95\9c\8b\8c\82Å\82«\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81D";
+#endif
 
         if (sysopt.support)
             raw_printf("To report this error, %s%s", sysopt.support,
@@ -549,8 +622,13 @@ VA_DECL(const char *, str)
             raw_printf("To report this error, contact %s%s",
                        sysopt.fmtd_wizard_list, maybe_rebuild);
         else
+#if 0 /*JP*/
             raw_printf("Report error to \"%s\"%s", WIZARD_NAME,
                        maybe_rebuild);
+#else
+            raw_printf("\"%s\"\82É\83G\83\89\81[\82ð\95ñ\8d\90\82µ\82Ä\82­\82¾\82³\82¢\81D%s", WIZARD_NAME,
+                       maybe_rebuild);
+#endif
     }
 #endif
     /* XXX can we move this above the prints?  Then we'd be able to
@@ -630,10 +708,18 @@ boolean taken;
 
     if (invent && !done_stopprint) {
         if (taken)
+#if 0 /*JP*/
             Sprintf(qbuf, "Do you want to see what you had when you %s?",
                     (how == QUIT) ? "quit" : "died");
+#else
+            Sprintf(qbuf,"%s\82Æ\82«\89½\82ð\8e\9d\82Á\82Ä\82¢\82½\82©\8c©\82Ü\82·\82©\81H",
+                    (how == QUIT) ? "\82â\82ß\82½" : "\8e\80\82ñ\82¾");
+#endif
         else
+/*JP
             Strcpy(qbuf, "Do you want your possessions identified?");
+*/
+            Strcpy(qbuf,"\8e\9d\82¿\95¨\82ð\8e¯\95Ê\82µ\82Ü\82·\82©\81H"); 
 
         ask = should_query_disclose_option('i', &defquery);
         c = ask ? yn_function(qbuf, ynqchars, defquery) : defquery;
@@ -655,9 +741,15 @@ boolean taken;
 
     if (!done_stopprint) {
         ask = should_query_disclose_option('a', &defquery);
+#if 0 /*JP*/
         c = ask ? yn_function("Do you want to see your attributes?", ynqchars,
                               defquery)
                 : defquery;
+#else
+        c = ask ? yn_function("\91®\90«\82ð\8c©\82Ü\82·\82©\81H", ynqchars,
+                              defquery)
+                : defquery;
+#endif
         if (c == 'y')
             enlightenment((BASICENLIGHTENMENT | MAGICENLIGHTENMENT),
                           (how >= PANICKED) ? ENL_GAMEOVERALIVE
@@ -678,9 +770,15 @@ boolean taken;
 
     if (!done_stopprint) {
         ask = should_query_disclose_option('c', &defquery);
+#if 0 /*JP*/
         c = ask ? yn_function("Do you want to see your conduct?", ynqchars,
                               defquery)
                 : defquery;
+#else
+        c = ask ? yn_function("\82Ç\82¤\82¢\82¤\8ds\93®\82ð\82Æ\82Á\82½\82©\8c©\82Ü\82·\82©\81H", ynqchars,
+                              defquery)
+                : defquery;
+#endif
         if (c == 'y')
             show_conduct((how >= PANICKED) ? 1 : 2);
         if (c == 'q')
@@ -721,7 +819,10 @@ int how;
     }
     if (how == CHOKING)
         init_uhunger();
+/*JP
     nomovemsg = "You survived that attempt on your life.";
+*/
+    nomovemsg = "\82 \82È\82½\82Í\90\82«\82È\82ª\82ç\82¦\82½\81D";
     context.move = 0;
     if (multi > 0)
         multi = 0;
@@ -844,11 +945,18 @@ winid endwin;
                 makeknown(otmp->otyp);
                 otmp->known = otmp->dknown = otmp->bknown = otmp->rknown = 1;
                 /* assumes artifacts don't have quan > 1 */
+#if 0 /*JP*/
                 Sprintf(pbuf, "%s%s (worth %ld %s and %ld points)",
                         the_unique_obj(otmp) ? "The " : "",
                         otmp->oartifact ? artifact_name(xname(otmp), &dummy)
                                         : OBJ_NAME(objects[otmp->otyp]),
                         value, currency(value), points);
+#else
+                Sprintf(pbuf, "%s(%ld%s\81C%ld\83|\83C\83\93\83g\82Ì\89¿\92l)\81C",
+                        otmp->oartifact ? artifact_name(xname(otmp), &dummy)
+                                        : OBJ_NAME(objects[otmp->otyp]),
+                        value, currency(value), points);
+#endif
                 putstr(endwin, 0, pbuf);
             }
         }
@@ -868,7 +976,10 @@ int how;
             killer.name[0] = 0;
         }
         if (wizard) {
+/*JP
             You("are a very tricky wizard, it seems.");
+*/
+            You("\82Æ\82Ä\82à\88µ\82¢\82É\82­\82¢wizard\82Ì\82æ\82¤\82¾\81D");
             return;
         }
     }
@@ -879,25 +990,46 @@ int how;
     if (!killer.name[0] && (how == STARVING || how == BURNING))
         killer.format = KILLED_BY;
     if (!killer.name[0] || how >= PANICKED)
+/*JP
         Strcpy(killer.name, deaths[how]);
+*/
+        Strcpy(killer.name, ends[how]);
 
     if (how < PANICKED)
         u.umortality++;
     if (Lifesaved && (how <= GENOCIDED)) {
+/*JP
         pline("But wait...");
+*/
+        pline("\82¿\82å\82Á\82Æ\82Ü\82Á\82½\81D\81D\81D");
         makeknown(AMULET_OF_LIFE_SAVING);
+/*JP
         Your("medallion %s!", !Blind ? "begins to glow" : "feels warm");
+*/
+        Your("\96\82\8f\9c\82¯\82Í%s\81I", !Blind ? "\8bP\82«\82Í\82\82ß\82½" : "\92g\82©\82­\82È\82è\82Í\82\82ß\82½");
         if (how == CHOKING)
+/*JP
             You("vomit ...");
+*/
+            You("\93f\82¢\82½\81D\81D\81D");
+/*JP
         You_feel("much better!");
+*/
+        You("\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\81I");
+/*JP
         pline_The("medallion crumbles to dust!");
+*/
+        pline("\96\82\8f\9c\82¯\82Í\82±\82È\82²\82È\82É\82­\82¾\82¯\82½\81I");
         if (uamul)
             useup(uamul);
 
         (void) adjattrib(A_CON, -1, TRUE);
         savelife(how);
         if (how == GENOCIDED) {
+/*JP
             pline("Unfortunately you are still genocided...");
+*/
+            pline("\8ec\94O\82È\82ª\82ç\81C\82 \82È\82½\82Í\8bs\8eE\82³\82ê\82½\82Ü\82Ü\82¾\81D\81D\81D");
         } else {
             killer.name[0] = 0;
             killer.format = 0;
@@ -905,8 +1037,14 @@ int how;
         }
     }
     if ((wizard || discover) && (how <= GENOCIDED) &&
+/*JP
         !paranoid_query(ParanoidDie, "Die?")) {
+*/
+        !paranoid_query(ParanoidDie, "\8e\80\82ñ\82Å\82Ý\82é\81H")) {
+/*JP
         pline("OK, so you don't %s.", (how == CHOKING) ? "choke" : "die");
+*/
+        You("\8e\80\82È\82È\82©\82Á\82½\81D");
         savelife(how);
         killer.name[0] = 0;
         killer.format = 0;
@@ -959,7 +1097,10 @@ int how;
      * smiling... :-)  -3.
      */
     if (moves <= 1 && how < PANICKED) /* You die... --More-- */
+/*JP
         pline("Do not pass go.  Do not collect 200 %s.", currency(200L));
+*/
+        pline("\92\8d\88Ó\88ê\95b\81C\89ö\89ä\88ê\90\81C\8e\80\96S\88ê\95à\81D");
 
     if (have_windows)
         wait_synch(); /* flush screen output */
@@ -996,7 +1137,10 @@ int how;
         if (u.uhp < 1) {
             how = DIED;
             u.umortality++; /* skipped above when how==QUIT */
+/*JP
             Strcpy(killer.name, "quit while already on Charon's boat");
+*/
+            Strcpy(killer.name, "\8eO\93r\82Ì\90ì\82Ì\93n\82µ\91D\82É\8fæ\82Á\82Ä\82¢\82é\8aÔ\82É\94²\82¯\82½");
         }
     }
     if (how == ESCAPED || how == PANICKED)
@@ -1038,7 +1182,10 @@ int how;
                        : urace.malenum;
         }
         corpse = mk_named_object(CORPSE, &mons[mnum], u.ux, u.uy, plname);
+/*JP
         Sprintf(pbuf, "%s, ", plname);
+*/
+        Sprintf(pbuf, "%s\82Ì\95æ\81C", plname);
         formatkiller(eos(pbuf), sizeof pbuf - strlen(pbuf), how);
         make_grave(u.ux, u.uy, pbuf);
     }
@@ -1077,13 +1224,19 @@ int how;
         /* give this feedback even if bones aren't going to be created,
            so that its presence or absence doesn't tip off the player to
            new bones or their lack; it might be a lie if makemon fails */
+/*JP
         Your("body rises from the dead as %s...",
+*/
+        Your("\91Ì\82Í%s\82Æ\82µ\82Ä\8e\80\91Ì\82©\82ç\91h\82Á\82½\81D\81D\81D",
              an(mons[u.ugrave_arise].mname));
         display_nhwindow(WIN_MESSAGE, FALSE);
     }
 
     if (bones_ok) {
+/*JP
         if (!wizard || paranoid_query(ParanoidBones, "Save bones?"))
+*/
+        if (!wizard || paranoid_query(ParanoidBones, "\8d\9c\82ð\82¤\82ß\82é\81H"))
             savebones(how, endtime, corpse);
         /* corpse may be invalid pointer now so
             ensure that it isn't used again */
@@ -1116,22 +1269,41 @@ int how;
         done_stopprint = 1; /* just avoid any more output */
 
     if (u.uhave.amulet) {
+/*JP
         Strcat(killer.name, " (with the Amulet)");
+*/
+        Strcat(killer.name, "\96\82\8f\9c\82¯\82ð\8eè\82É");
     } else if (how == ESCAPED) {
         if (Is_astralevel(&u.uz)) /* offered Amulet to wrong deity */
+/*JP
             Strcat(killer.name, " (in celestial disgrace)");
+*/
+            Strcat(killer.name, "\93V\8fã\82Å\92p\90J\82ð\8eó\82¯\92E\8fo\82µ\82½");
         else if (carrying(FAKE_AMULET_OF_YENDOR))
+/*JP
             Strcat(killer.name, " (with a fake Amulet)");
+*/
+            Strcat(killer.name, "\8bU\95¨\82Ì\96\82\8f\9c\82¯\82ð\92Í\82Ü\82³\82ê\92E\8fo\82µ\82½");
         /* don't bother counting to see whether it should be plural */
     }
 
     if (!done_stopprint) {
+#if 0 /*JP*/
         Sprintf(pbuf, "%s %s the %s...", Goodbye(), plname,
                 (how != ASCENDED)
                  ? (const char *) ((flags.female && urole.name.f)
                                       ? urole.name.f
                                       : urole.name.m)
                  : (const char *) (flags.female ? "Demigoddess" : "Demigod"));
+#else
+        Sprintf(pbuf, "%s%s\82Ì%s\81D\81D\81D", Goodbye(),
+                how != ASCENDED
+                ? (const char *) ((flags.female && urole.name.f)
+                                      ? urole.name.f
+                                      : urole.name.m)
+                : (const char *) (flags.female ? "\8f\97\90_" : "\90_"),
+                plname);
+#endif
         putstr(endwin, 0, pbuf);
         putstr(endwin, 0, "");
     }
@@ -1163,7 +1335,10 @@ int how;
         viz_array[0][0] |= IN_SIGHT; /* need visibility for naming */
         mtmp = mydogs;
         if (!done_stopprint)
+/*JP
             Strcpy(pbuf, "You");
+*/
+            Strcpy(pbuf, "\82 \82È\82½");
         if (!Schroedingers_cat) /* check here in case disclosure was off */
             Schroedingers_cat = odds_and_ends(invent, CAT_CHECK);
         if (Schroedingers_cat) {
@@ -1171,28 +1346,47 @@ int how;
             mhp = d(m_lev, 8);
             nowrap_add(u.urexp, mhp);
             if (!done_stopprint)
+/*JP
                 Strcat(eos(pbuf), " and Schroedinger's cat");
+*/
+                Strcat(eos(pbuf), "\82Æ\83V\83\85\83\8c\83f\83B\83\93\83K\81[\82Ì\94L");
         }
         if (mtmp) {
             while (mtmp) {
                 if (!done_stopprint)
+/*JP
                     Sprintf(eos(pbuf), " and %s", mon_nam(mtmp));
+*/
+                    Sprintf(eos(pbuf), "\82Æ%s", mon_nam(mtmp));
                 if (mtmp->mtame)
                     nowrap_add(u.urexp, mtmp->mhp);
                 mtmp = mtmp->nmon;
             }
+#if 1 /*JP*/
+            if (!done_stopprint)
+                Strcat(pbuf, "\82Í");
+#endif
             if (!done_stopprint)
                 putstr(endwin, 0, pbuf);
             pbuf[0] = '\0';
         } else {
             if (!done_stopprint)
+/*JP
                 Strcat(pbuf, " ");
+*/
+                Strcat(pbuf, "\82Í");
         }
         if (!done_stopprint) {
+#if 0 /*JP*/
             Sprintf(eos(pbuf), "%s with %ld point%s,",
                     how == ASCENDED ? "went to your reward"
                                     : "escaped from the dungeon",
                     u.urexp, plur(u.urexp));
+#else
+            Sprintf(eos(pbuf), "%ld\83|\83C\83\93\83g\83}\81[\83N\82µ%s\81D",
+                    u.urexp,
+                    how==ASCENDED ? "\8f¸\93V\82µ\82½" : "\96À\8b{\82©\82ç\92E\8fo\82µ\82½");
+#endif
             putstr(endwin, 0, pbuf);
         }
 
@@ -1216,13 +1410,24 @@ int how;
                     if (has_oname(otmp))
                         free_oname(otmp);
                     otmp->quan = count;
+#if 0 /*JP*/
                     Sprintf(pbuf, "%8ld %s (worth %ld %s),", count,
                             xname(otmp), count * (long) objects[typ].oc_cost,
                             currency(2L));
+#else
+                    Sprintf(pbuf, "%ld\8cÂ\82Ì%s(%ld%s\82Ì\89¿\92l)\81C", count,
+                            xname(otmp), count * (long) objects[typ].oc_cost,
+                            currency(2L));
+#endif
                     obfree(otmp, (struct obj *) 0);
                 } else {
+#if 0 /*JP*/
                     Sprintf(pbuf, "%8ld worthless piece%s of colored glass,",
                             count, plur(count));
+#else
+                    Sprintf(pbuf, "%ld\8cÂ\82Ì\89¿\92l\82Ì\82È\82¢\90F\82Â\82«\83K\83\89\83X\81C",
+                            count);
+#endif
                 }
                 putstr(endwin, 0, pbuf);
             }
@@ -1233,33 +1438,63 @@ int how;
         if (u.uz.dnum == 0 && u.uz.dlevel <= 0) {
             /* level teleported out of the dungeon; `how' is DIED,
                due to falling or to "arriving at heaven prematurely" */
+#if 0 /*JP*/
             Sprintf(pbuf, "You %s beyond the confines of the dungeon",
                     (u.uz.dlevel < 0) ? "passed away" : ends[how]);
+#else
+            Sprintf(pbuf, "\96À\8b{\82Ì\97Ì\88æ\82ð\89z\82¦%s\81D",
+                    (u.uz.dlevel < 0) ? "\8fÁ\82¦\82³\82Á\82½" : ends[how]);
+#endif
         } else {
             /* more conventional demise */
             const char *where = dungeons[u.uz.dnum].dname;
 
             if (Is_astralevel(&u.uz))
+/*JP
                 where = "The Astral Plane";
+*/
+                where = "\90¸\97ì\8aE\82É\82Ä";
+/*JP
             Sprintf(pbuf, "You %s in %s", ends[how], where);
+*/
+            Sprintf(pbuf, "\82 \82È\82½\82Í%s", where);
             if (!In_endgame(&u.uz) && !Is_knox(&u.uz))
+#if 0 /*JP*/
                 Sprintf(eos(pbuf), " on dungeon level %d",
                         In_quest(&u.uz) ? dunlev(&u.uz) : depth(&u.uz));
+#else
+                Sprintf(eos(pbuf), "\82Ì\92n\89º%d\8aK\82Å",
+                        In_quest(&u.uz) ? dunlev(&u.uz) : depth(&u.uz));
+#endif
         }
 
+/*JP
         Sprintf(eos(pbuf), " with %ld point%s,", u.urexp, plur(u.urexp));
+*/
+        Sprintf(eos(pbuf), " %ld\83|\83C\83\93\83g\82ð\83}\81[\83N\82µ\81C", u.urexp);
         putstr(endwin, 0, pbuf);
     }
 
     if (!done_stopprint) {
+#if 0 /*JP*/
         Sprintf(pbuf, "and %ld piece%s of gold, after %ld move%s.", umoney,
                 plur(umoney), moves, plur(moves));
+#else
+        Sprintf(pbuf, "%ld\96\87\82Ì\8bà\89Ý\82ð\8e\9d\82Á\82Ä\81C%ld\95à\93®\82¢\82½\81D",
+                umoney, moves);
+#endif
         putstr(endwin, 0, pbuf);
     }
     if (!done_stopprint) {
+#if 0 /*JP*/
         Sprintf(pbuf,
             "You were level %d with a maximum of %d hit point%s when you %s.",
                 u.ulevel, u.uhpmax, plur(u.uhpmax), ends[how]);
+#else
+        Sprintf(pbuf,
+                "%s\82Æ\82«\81C\82 \82È\82½\82Í\83\8c\83x\83\8b%u\82Å\81C\8dÅ\91å\91Ì\97Í\82Í%d\82Å\82 \82Á\82½\81D",
+                ends[how],u.ulevel, u.uhpmax);
+#endif
         putstr(endwin, 0, pbuf);
         putstr(endwin, 0, "");
     }
@@ -1337,7 +1572,10 @@ boolean identified, all_containers, reportempty;
                         goto nextclass;
                 }
 
+/*JP
                 Sprintf(buf, "Contents of %s:", the(xname(box)));
+*/
+                Sprintf(buf, "%s\82Ì\92\86\90g\81F", the(xname(box)));
                 putstr(tmpwin, 0, buf);
                 putstr(tmpwin, 0, "");
                 for (i = 0; i < n; i++) {
@@ -1353,20 +1591,34 @@ boolean identified, all_containers, reportempty;
                 }
                 free(oarray);
                 if (cat)
+/*JP
                     putstr(tmpwin, 0, "Schroedinger's cat");
+*/
+                    putstr(tmpwin, 0, "\83V\83\85\83\8c\83f\83B\83\93\83K\81[\82Ì\94L");
                 else if (deadcat)
+/*JP
                     putstr(tmpwin, 0, "Schroedinger's dead cat");
+*/
+                    putstr(tmpwin, 0, "\83V\83\85\83\8c\83f\83B\83\93\83K\81[\82Ì\94L\82Ì\8e\80\91Ì");
                 display_nhwindow(tmpwin, TRUE);
                 destroy_nhwindow(tmpwin);
                 if (all_containers)
                     container_contents(box->cobj, identified, TRUE,
                                        reportempty);
             } else if (cat || deadcat) {
+#if 0 /*JP*/
                 pline("%s Schroedinger's %scat!", Tobjnam(box, "contain"),
                       deadcat ? "dead " : "");
+#else
+                pline("%s\82É\82Í\83V\83\85\83\8c\83f\83B\83\93\83K\81[\82Ì\94L%s\82ª\93ü\82Á\82Ä\82¢\82½\81I", xname(box),
+                      deadcat ? "\82Ì\8e\80\91Ì" : "");
+#endif
                 display_nhwindow(WIN_MESSAGE, FALSE);
             } else if (reportempty) {
+/*JP
                 pline("%s is empty.", upstart(thesimpleoname(box)));
+*/
+                pline("%s\82Í\8bó\82Á\82Û\82¾\81D", xname(box));
                 display_nhwindow(WIN_MESSAGE, FALSE);
             }
         }
@@ -1403,6 +1655,9 @@ int status;
         return;
 #endif
     program_state.exiting = 1;
+#if 1 /*JP*/
+    jputchar('\0'); /* reset terminal */
+#endif
     nethack_exit(status);
 }
 
@@ -1439,15 +1694,25 @@ boolean ask;
      * includes all dead monsters, not just those killed by the player
      */
     if (ntypes != 0) {
+#if 0 /*JP*/
         c = ask ? yn_function(
                             "Do you want an account of creatures vanquished?",
                               ynqchars, defquery)
                 : defquery;
+#else
+        c = ask ? yn_function(
+                            "\93|\82µ\82½\93G\82Ì\88ê\97\97\82ð\8c©\82Ü\82·\82©\81H",
+                              ynqchars, defquery)
+                : defquery;
+#endif
         if (c == 'q')
             done_stopprint++;
         if (c == 'y' || c == 'a') {
             klwin = create_nhwindow(NHW_MENU);
+/*JP
             putstr(klwin, 0, "Vanquished creatures:");
+*/
+            putstr(klwin, 0, "\93|\82µ\82½\93G\81F");
             putstr(klwin, 0, "");
 
             /* countdown by monster "toughness" */
@@ -1456,10 +1721,15 @@ boolean ask;
                     if (mons[i].mlevel == lev
                         && (nkilled = mvitals[i].died) > 0) {
                         if ((mons[i].geno & G_UNIQ) && i != PM_HIGH_PRIEST) {
+#if 0 /*JP*/
                             Sprintf(buf, "%s%s",
                                     !type_is_pname(&mons[i]) ? "The " : "",
                                     mons[i].mname);
+#else
+                            Sprintf(buf, "%s", mons[i].mname);
+#endif
                             if (nkilled > 1) {
+#if 0 /*JP*/
                                 switch (nkilled) {
                                 case 2:
                                     Sprintf(eos(buf), " (twice)");
@@ -1471,6 +1741,9 @@ boolean ask;
                                     Sprintf(eos(buf), " (%d times)", nkilled);
                                     break;
                                 }
+#else
+                                Sprintf(eos(buf)," (%d\89ñ)", nkilled);
+#endif
                             }
                         } else {
                             /* trolls or undead might have come back,
@@ -1478,8 +1751,13 @@ boolean ask;
                             if (nkilled == 1)
                                 Strcpy(buf, an(mons[i].mname));
                             else
+#if 0 /*JP*/
                                 Sprintf(buf, "%d %s", nkilled,
                                         makeplural(mons[i].mname));
+#else
+                                Sprintf(buf, "%d\91Ì\82Ì%s", nkilled,
+                                        mons[i].mname);
+#endif
                         }
                         putstr(klwin, 0, buf);
                     }
@@ -1489,7 +1767,10 @@ boolean ask;
              */
             if (ntypes > 1) {
                 putstr(klwin, 0, "");
+/*JP
                 Sprintf(buf, "%ld creatures vanquished.", total_killed);
+*/
+                Sprintf(buf, "%ld\95C\82Ì\93G\82ð\93|\82µ\82½\81D", total_killed);
                 putstr(klwin, 0, buf);
             }
             display_nhwindow(klwin, TRUE);
@@ -1543,41 +1824,67 @@ boolean ask;
 
     /* genocided or extinct species list */
     if (ngenocided != 0 || nextinct != 0) {
+#if 0 /*JP*/
         Sprintf(buf, "Do you want a list of %sspecies%s%s?",
                 (nextinct && !ngenocided) ? "extinct " : "",
                 (ngenocided) ? " genocided" : "",
                 (nextinct && ngenocided) ? " and extinct" : "");
+#else
+        Sprintf(buf, "%s%s%s\82µ\82½\8eí\82Ì\88ê\97\97\82ð\8c©\82Ü\82·\82©\81H",
+                (nextinct && !ngenocided) ? "\90â\96Å" : "",
+                (ngenocided) ? "\8bs\8eE" : "",
+                (nextinct && ngenocided) ? "\82¨\82æ\82Ñ\90â\96Å" : "");
+#endif
         c = ask ? yn_function(buf, ynqchars, defquery) : defquery;
         if (c == 'q')
             done_stopprint++;
         if (c == 'y') {
             klwin = create_nhwindow(NHW_MENU);
+#if 0 /*JP*/
             Sprintf(buf, "%s%s species:",
                     (ngenocided) ? "Genocided" : "Extinct",
                     (nextinct && ngenocided) ? " or extinct" : "");
+#else
+            Sprintf(buf, "%s%s\82µ\82½\8eí:",
+                    (ngenocided) ? "\8bs\8eE" : "\90â\96Å",
+                    (nextinct && ngenocided) ? "\82Ü\82½\82Í\90â\96Å" : "");
+#endif
             putstr(klwin, 0, buf);
             putstr(klwin, 0, "");
 
             for (i = LOW_PM; i < NUMMONS; i++)
                 if (mvitals[i].mvflags & G_GONE && !(mons[i].geno & G_UNIQ)) {
                     if ((mons[i].geno & G_UNIQ) && i != PM_HIGH_PRIEST)
+#if 0 /*JP*/
                         Sprintf(buf, "%s%s",
                                 !type_is_pname(&mons[i]) ? "" : "the ",
                                 mons[i].mname);
+#else
+                        Sprintf(buf, "%s", mons[i].mname);
+#endif
                     else
                         Strcpy(buf, makeplural(mons[i].mname));
                     if (!(mvitals[i].mvflags & G_GENOD))
+/*JP
                         Strcat(buf, " (extinct)");
+*/
+                        Strcat(buf, "(\90â\96Å)");
                     putstr(klwin, 0, buf);
                 }
 
             putstr(klwin, 0, "");
             if (ngenocided > 0) {
+/*JP
                 Sprintf(buf, "%d species genocided.", ngenocided);
+*/
+                Sprintf(buf, "%d\8eí\97Þ\82Ì\8eí\82ð\8bs\8eE\82µ\82½\81D", ngenocided);
                 putstr(klwin, 0, buf);
             }
             if (nextinct > 0) {
+/*JP
                 Sprintf(buf, "%d species extinct.", nextinct);
+*/
+                Sprintf(buf, "%d\8eí\97Þ\82Ì\8eí\82ð\90â\96Å\82³\82¹\82½\81D", nextinct);
                 putstr(klwin, 0, buf);
             }
 
index 3cc5592..7ab835e 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h"
 
@@ -82,7 +87,11 @@ char *engr;
 int cnt;
 unsigned seed; /* for semi-controlled randomization */
 {
+#if 0 /*JP*/
     char *s;
+#else
+    unsigned char *s;
+#endif
     int i, j, nxt, use_rubout, lth = (int) strlen(engr);
 
     if (lth && cnt > 0) {
@@ -100,7 +109,22 @@ unsigned seed; /* for semi-controlled randomization */
                 seed *= 31, seed %= (BUFSZ - 1);
                 use_rubout = seed & 3;
             }
+#if 0 /*JP*/
             s = &engr[nxt];
+#else /*JP: \93ú\96{\8cê\82Ì\8fê\8d\87\82Íjrubout()\82ð\8eg\82Á\82Ä\8fÁ\82·*/
+            if (!seed)
+                j = rn2(2);
+            else {
+                seed *= 31,  seed %= (BUFSZ-1);
+                j = seed % 2;
+            }
+
+            if(jrubout(engr, nxt, use_rubout, j)){
+                continue;
+            }
+
+            s = (unsigned char *)&engr[nxt];
+#endif
             if (*s == ' ')
                 continue;
 
@@ -181,28 +205,61 @@ register int x, y;
     register struct rm *lev = &levl[x][y];
 
     if (x == u.ux && y == u.uy && u.uswallow && is_animal(u.ustuck->data))
+/*JP
         return "maw";
+*/
+        return "\88Ý\91Ü";
     else if (IS_AIR(lev->typ) && Is_airlevel(&u.uz))
+/*JP
         return "air";
+*/
+        return "\8bó\92\86";
     else if (is_pool(x, y))
+/*JP
         return (Underwater && !Is_waterlevel(&u.uz)) ? "bottom" : "water";
+*/
+        return (Underwater && !Is_waterlevel(&u.uz)) ? "\90\85\82Ì\92ê" : "\90\85\92\86";
     else if (is_ice(x, y))
+/*JP
         return "ice";
+*/
+        return "\95X";
     else if (is_lava(x, y))
+/*JP
         return "lava";
+*/
+        return "\97n\8aâ";
     else if (lev->typ == DRAWBRIDGE_DOWN)
+/*JP
         return "bridge";
+*/
+        return "\8b´";
     else if (IS_ALTAR(levl[x][y].typ))
+/*JP
         return "altar";
+*/
+        return "\8dÕ\92d";
     else if (IS_GRAVE(levl[x][y].typ))
+/*JP
         return "headstone";
+*/
+        return "\95æ\90Î";
     else if (IS_FOUNTAIN(levl[x][y].typ))
+/*JP
         return "fountain";
+*/
+        return "\90ò";
     else if ((IS_ROOM(lev->typ) && !Is_earthlevel(&u.uz))
              || IS_WALL(lev->typ) || IS_DOOR(lev->typ) || lev->typ == SDOOR)
+/*JP
         return "floor";
+*/
+        return "\8f°";
     else
+/*JP
         return "ground";
+*/
+        return "\92n\96Ê";
 }
 
 const char *
@@ -216,23 +273,47 @@ register int x, y;
      * see check_special_room()
      */
     if (*in_rooms(x, y, VAULT))
+/*JP
         what = "vault's ceiling";
+*/
+        what = "\91q\8cÉ\82Ì\93V\88ä";
     else if (*in_rooms(x, y, TEMPLE))
+/*JP
         what = "temple's ceiling";
+*/
+        what = "\8e\9b\89@\82Ì\93V\88ä";
     else if (*in_rooms(x, y, SHOPBASE))
+/*JP
         what = "shop's ceiling";
+*/
+        what = "\93X\82Ì\93V\88ä";
     else if (Is_waterlevel(&u.uz))
         /* water plane has no surface; its air bubbles aren't below sky */
+/*JP
         what = "water above";
+*/
+        what = "\90\85\82Ì\8fã\95û";
     else if (IS_AIR(lev->typ))
+/*JP
         what = "sky";
+*/
+        what = "\8bó";
     else if (Underwater)
+/*JP
         what = "water's surface";
+*/
+        what = "\90\85\96Ê";
     else if ((IS_ROOM(lev->typ) && !Is_earthlevel(&u.uz))
              || IS_WALL(lev->typ) || IS_DOOR(lev->typ) || lev->typ == SDOOR)
+/*JP
         what = "ceiling";
+*/
+        what = "\93V\88ä";
     else
+/*JP
         what = "rock cavern";
+*/
+        what = "\93´\8cA\82Ì\93V\88ä";
 
     return what;
 }
@@ -321,29 +402,46 @@ int x, y;
         case DUST:
             if (!Blind) {
                 sensed = 1;
+#if 0 /*JP*/
                 pline("%s is written here in the %s.", Something,
                       is_ice(x, y) ? "frost" : "dust");
+#else
+                pline("\89½\82©\82Ì\95\8e\9a\82ª%s\82É\8f\91\82¢\82Ä\82 \82é\81D",
+                      is_ice(x, y) ? "\91\9a" : "\82Ù\82±\82è");
+#endif
             }
             break;
         case ENGRAVE:
         case HEADSTONE:
             if (!Blind || can_reach_floor(TRUE)) {
                 sensed = 1;
+/*JP
                 pline("%s is engraved here on the %s.", Something,
+*/
+                pline("\89½\82©\82Ì\95\8e\9a\82ª%s\82É\8d\8f\82Ü\82ê\82Ä\82¢\82é\81D",
                       surface(x, y));
             }
             break;
         case BURN:
             if (!Blind || can_reach_floor(TRUE)) {
                 sensed = 1;
+#if 0 /*JP*/
                 pline("Some text has been %s into the %s here.",
                       is_ice(x, y) ? "melted" : "burned", surface(x, y));
+#else
+                pline("\89½\82©\82Ì\95\8e\9a\82ª%s%s\82¢\82é\81D",
+                      surface(x,y),
+                      is_ice(x,y) ? "\82É\8d\8f\82Ü\82ê\82Ä" : "\82É\8fÄ\82«\95t\82¯\82ç\82ê\82Ä");
+#endif
             }
             break;
         case MARK:
             if (!Blind) {
                 sensed = 1;
+/*JP
                 pline("There's some graffiti on the %s here.", surface(x, y));
+*/
+                pline("%s\82É\97\8e\8f\91\82ª\82 \82é\81D", surface(x,y));
             }
             break;
         case ENGR_BLOOD:
@@ -353,7 +451,10 @@ int x, y;
              */
             if (!Blind) {
                 sensed = 1;
+/*JP
                 You_see("a message scrawled in blood here.");
+*/
+                You("\8c\8c\95\8e\9a\82ª\82È\82®\82è\8f\91\82«\82³\82ê\82Ä\82¢\82é\82Ì\82ð\8c©\82Â\82¯\82½\81D");
             }
             break;
         default:
@@ -362,14 +463,20 @@ int x, y;
         }
         if (sensed) {
             char *et;
+/*JP
             unsigned maxelen = BUFSZ - sizeof("You feel the words: \"\". ");
+*/
+            unsigned maxelen = BUFSZ - sizeof("\82 \82È\82½\82Í\8e\9f\82Ì\82æ\82¤\82É\8a´\82\82½\81F\81u\81v");
             if (strlen(ep->engr_txt) > maxelen) {
                 (void) strncpy(buf, ep->engr_txt, (int) maxelen);
                 buf[maxelen] = '\0';
                 et = buf;
             } else
                 et = ep->engr_txt;
+/*JP
             You("%s: \"%s\".", (Blind) ? "feel the words" : "read", et);
+*/
+            You("%s\81F\81u%s\81v", (Blind) ? "\8e\9f\82Ì\82æ\82¤\82É\8a´\82\82½" : "\93Ç\82ñ\82¾",  et);
             if (context.run > 1)
                 nomul(0);
         }
@@ -414,7 +521,7 @@ int x, y;
 }
 
 /*
- *     freehand - returns true if player has a free hand
+ *      freehand - returns true if player has a free hand
  */
 int
 freehand()
@@ -429,30 +536,30 @@ static NEARDATA const char styluses[] = { ALL_CLASSES, ALLOW_NONE,
                                           RING_CLASS,  0 };
 
 /* Mohs' Hardness Scale:
- *  1 - Talc            6 - Orthoclase
- *  2 - Gypsum          7 - Quartz
- *  3 - Calcite                 8 - Topaz
- *  4 - Fluorite        9 - Corundum
- *  5 - Apatite                10 - Diamond
+ *  1 - Talc             6 - Orthoclase
+ *  2 - Gypsum           7 - Quartz
+ *  3 - Calcite          8 - Topaz
+ *  4 - Fluorite         9 - Corundum
+ *  5 - Apatite         10 - Diamond
  *
  * Since granite is an igneous rock hardness ~ 7, anything >= 8 should
  * probably be able to scratch the rock.
  * Devaluation of less hard gems is not easily possible because obj struct
  * does not contain individual oc_cost currently. 7/91
  *
- * steel     - 5-8.5   (usu. weapon)
- * diamond    - 10                     * jade       -  5-6      (nephrite)
- * ruby       -  9     (corundum)      * turquoise  -  5-6
- * sapphire   -  9     (corundum)      * opal       -  5-6
- * topaz      -  8                     * glass      - ~5.5
- * emerald    -  7.5-8 (beryl)         * dilithium  -  4-5??
- * aquamarine -  7.5-8 (beryl)         * iron       -  4-5
- * garnet     -  7.25  (var. 6.5-8)    * fluorite   -  4
- * agate      -  7     (quartz)        * brass      -  3-4
- * amethyst   -  7     (quartz)        * gold       -  2.5-3
- * jasper     -  7     (quartz)        * silver     -  2.5-3
- * onyx       -  7     (quartz)        * copper     -  2.5-3
- * moonstone  -  6     (orthoclase)    * amber      -  2-2.5
+ * steel     -  5-8.5   (usu. weapon)
+ * diamond    - 10                      * jade       -  5-6      (nephrite)
+ * ruby       -  9      (corundum)      * turquoise  -  5-6
+ * sapphire   -  9      (corundum)      * opal       -  5-6
+ * topaz      -  8                      * glass      - ~5.5
+ * emerald    -  7.5-8  (beryl)         * dilithium  -  4-5??
+ * aquamarine -  7.5-8  (beryl)         * iron       -  4-5
+ * garnet     -  7.25   (var. 6.5-8)    * fluorite   -  4
+ * agate      -  7      (quartz)        * brass      -  3-4
+ * amethyst   -  7      (quartz)        * gold       -  2.5-3
+ * jasper     -  7      (quartz)        * silver     -  2.5-3
+ * onyx       -  7      (quartz)        * copper     -  2.5-3
+ * moonstone  -  6      (orthoclase)    * amber      -  2-2.5
  */
 
 /* return 1 if action took 1 (or more) moves, 0 if error or aborted */
@@ -497,7 +604,10 @@ doengrave()
 
     if (u.uswallow) {
         if (is_animal(u.ustuck->data)) {
+/*JP
             pline("What would you write?  \"Jonah was here\"?");
+*/
+            pline("\89½\82ð\8f\91\82­\82ñ\82¾\82¢\81H\81u\83\88\83i\82Í\82±\82±\82É\82¢\82é\81v\81H");
             return 0;
         } else if (is_whirly(u.ustuck->data)) {
             cant_reach_floor(u.ux, u.uy, FALSE, FALSE);
@@ -505,22 +615,37 @@ doengrave()
         } else
             jello = TRUE;
     } else if (is_lava(u.ux, u.uy)) {
+/*JP
         You_cant("write on the %s!", surface(u.ux, u.uy));
+*/
+        You("%s\82É\93Í\82©\82È\82¢\81D", surface(u.ux,u.uy));
         return 0;
     } else if (is_pool(u.ux, u.uy) || IS_FOUNTAIN(levl[u.ux][u.uy].typ)) {
+/*JP
         You_cant("write on the %s!", surface(u.ux, u.uy));
+*/
+        You("%s\82É\82Í\8f\91\82¯\82È\82¢\81I", surface(u.ux, u.uy));
         return 0;
     }
     if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) /* in bubble */) {
+/*JP
         You_cant("write in thin air!");
+*/
+        You("\8bó\92\86\82É\82Í\8f\91\82¯\82È\82¢\81I");
         return 0;
     } else if (!accessible(u.ux, u.uy)) {
         /* stone, tree, wall, secret corridor, pool, lava, bars */
+/*JP
         You_cant("write here.");
+*/
+        You_cant("\82±\82±\82É\82Í\8f\91\82¯\82È\82¢\81D");
         return 0;
     }
     if (cantwield(youmonst.data)) {
+/*JP
         You_cant("even hold anything!");
+*/
+        You("\89½\82©\82ð\8e\9d\82Â\82±\82Æ\82·\82ç\82Å\82«\82È\82¢\81I");
         return 0;
     }
     if (check_capacity((char *) 0))
@@ -544,13 +669,22 @@ doengrave()
      * while both your hands are tied up.
      */
     if (!freehand() && otmp != uwep && !otmp->owornmask) {
+/*JP
         You("have no free %s to write with!", body_part(HAND));
+*/
+        pline("%s\82Ì\8e©\97R\82ª\8cø\82©\82È\82¢\82Ì\82Å\8f\91\82¯\82È\82¢\81I", body_part(HAND));
         return 0;
     }
 
     if (jello) {
+/*JP
         You("tickle %s with %s.", mon_nam(u.ustuck), writer);
+*/
+                You("%s\82Å%s\82ð\82­\82·\82®\82Á\82½\81D", writer, mon_nam(u.ustuck));
+/*JP
         Your("message dissolves...");
+*/
+                Your("\83\81\83b\83Z\81[\83W\82Í\8fÁ\82¦\82½\81D\81D\81D");
         return 0;
     }
     if (otmp->oclass != WAND_CLASS && !can_reach_floor(TRUE)) {
@@ -558,17 +692,26 @@ doengrave()
         return 0;
     }
     if (IS_ALTAR(levl[u.ux][u.uy].typ)) {
+/*JP
         You("make a motion towards the altar with %s.", writer);
+*/
+        You("%s\82ð\8eg\82Á\82Ä\8dÕ\92d\82É\8f\91\82±\82¤\82Æ\82µ\82½\81D", writer);
         altar_wrath(u.ux, u.uy);
         return 0;
     }
     if (IS_GRAVE(levl[u.ux][u.uy].typ)) {
         if (otmp == &zeroobj) { /* using only finger */
+/*JP
             You("would only make a small smudge on the %s.",
+*/
+            You("\82Í%s\82É\8f¬\82³\82È\82µ\82Ý\82ð\82Â\82¯\82é\82±\82Æ\82µ\82©\82Å\82«\82È\82©\82Á\82½\81D",
                 surface(u.ux, u.uy));
             return 0;
         } else if (!levl[u.ux][u.uy].disturbed) {
+/*JP
             You("disturb the undead!");
+*/
+            You("\95s\8e\80\82Ì\8eÒ\82Ì\96°\82è\82ð\96W\82°\82½\81I");
             levl[u.ux][u.uy].disturbed = 1;
             (void) makemon(&mons[PM_GHOUL], u.ux, u.uy, NO_MM_FLAGS);
             exercise(A_WIS, FALSE);
@@ -603,15 +746,23 @@ doengrave()
     /* Objects too large to engrave with */
     case BALL_CLASS:
     case ROCK_CLASS:
+/*JP
         You_cant("engrave with such a large object!");
+*/
+        pline("\82»\82ñ\82È\91å\82«\82È\82à\82Ì\82ð\8eg\82Á\82Ä\95\8e\9a\82ð\8d\8f\82ß\82È\82¢\81I");
         ptext = FALSE;
         break;
     /* Objects too silly to engrave with */
     case FOOD_CLASS:
     case SCROLL_CLASS:
     case SPBOOK_CLASS:
+#if 0 /*JP*/
         pline("%s would get %s.", Yname2(otmp),
               is_ice(u.ux, u.uy) ? "all frosty" : "too dirty");
+#else
+        Your("%s\82Í%s\82È\82Á\82½\81D", xname(otmp),
+             is_ice(u.ux,u.uy) ? "\91\9a\82¾\82ç\82¯\82É" : "\89\98\82È\82­");
+#endif
         ptext = FALSE;
         break;
     case RANDOM_CLASS: /* This should mean fingers */
@@ -653,17 +804,26 @@ doengrave()
              */
             case WAN_STRIKING:
                 Strcpy(post_engr_text,
+/*JP
                     "The wand unsuccessfully fights your attempt to write!");
+*/
+                       "\82 \82È\82½\82ª\8f\91\82±\82¤\82Æ\82·\82é\82Æ\8fñ\82Í\92ï\8dR\82µ\82½\81I");
                 break;
             case WAN_SLOW_MONSTER:
                 if (!Blind) {
+/*JP
                     Sprintf(post_engr_text, "The bugs on the %s slow down!",
+*/
+                    Sprintf(post_engr_text, "%s\82Ì\8fã\82Ì\92\8e\82Ì\93®\82«\82ª\92x\82­\82È\82Á\82½\81I",
                             surface(u.ux, u.uy));
                 }
                 break;
             case WAN_SPEED_MONSTER:
                 if (!Blind) {
+/*JP
                     Sprintf(post_engr_text, "The bugs on the %s speed up!",
+*/
+                    Sprintf(post_engr_text, "%s\82Ì\8fã\82Ì\92\8e\82Ì\93®\82«\82ª\91¬\82­\82È\82Á\82½\81I",
                             surface(u.ux, u.uy));
                 }
                 break;
@@ -687,7 +847,10 @@ doengrave()
                 ptext = TRUE;
                 if (!Blind) {
                     Sprintf(post_engr_text,
+/*JP
                             "The %s is riddled by bullet holes!",
+*/
+                            "%s\82Í\8eU\92e\82Å\8d×\82©\82¢\8c\8a\82¾\82ç\82¯\82É\82È\82Á\82½\81I",
                             surface(u.ux, u.uy));
                 }
                 break;
@@ -695,21 +858,30 @@ doengrave()
             case WAN_SLEEP:
             case WAN_DEATH:
                 if (!Blind) {
+/*JP
                     Sprintf(post_engr_text, "The bugs on the %s stop moving!",
+*/
+                    Sprintf(post_engr_text, "%s\82Ì\8fã\82Ì\92\8e\82Ì\93®\82«\82ª\8e~\82Ü\82Á\82½\81I",
                             surface(u.ux, u.uy));
                 }
                 break;
             case WAN_COLD:
                 if (!Blind)
                     Strcpy(post_engr_text,
+/*JP
                            "A few ice cubes drop from the wand.");
+*/
+                           "\95X\82Ì\82©\82¯\82ç\82ª\8fñ\82©\82ç\82±\82Ú\82ê\97\8e\82¿\82½\81D");
                 if (!oep || (oep->engr_type != BURN))
                     break;
             case WAN_CANCELLATION:
             case WAN_MAKE_INVISIBLE:
                 if (oep && oep->engr_type != HEADSTONE) {
                     if (!Blind)
+/*JP
                         pline_The("engraving on the %s vanishes!",
+*/
+                        pline("%s\82Ì\8fã\82Ì\95\8e\9a\82Í\8fÁ\82¦\82½\81I",
                                   surface(u.ux, u.uy));
                     dengr = TRUE;
                 }
@@ -717,7 +889,10 @@ doengrave()
             case WAN_TELEPORTATION:
                 if (oep && oep->engr_type != HEADSTONE) {
                     if (!Blind)
+/*JP
                         pline_The("engraving on the %s vanishes!",
+*/
+                        pline("%s\82Ì\8fã\82Ì\95\8e\9a\82Í\8fÁ\82¦\82½\81I",
                                   surface(u.ux, u.uy));
                     teleengr = TRUE;
                 }
@@ -728,9 +903,13 @@ doengrave()
                 type = ENGRAVE;
                 if (!objects[otmp->otyp].oc_name_known) {
                     if (flags.verbose)
+/*JP
                         pline("This %s is a wand of digging!", xname(otmp));
+*/
+                        pline("\82±\82ê\82Í\8c\8a\8c@\82è\82Ì\8fñ\82¾\81I");
                     doknown = TRUE;
                 }
+#if 0 /*JP*/
                 Strcpy(post_engr_text,
                        Blind
                           ? "You hear drilling!"
@@ -742,6 +921,19 @@ doengrave()
                                    == DRAWBRIDGE_DOWN)
                                    ? "Splinters fly up from the bridge."
                                    : "Gravel flies up from the floor.");
+#else
+                Strcpy(post_engr_text,
+                       Blind
+                          ? "\8c\8a\82ª\8aJ\82­\89¹\82ð\95·\82¢\82½\81I"
+                          : IS_GRAVE(levl[u.ux][u.uy].typ)
+                             ? "\95æ\90Î\82©\82ç\94j\95Ð\82ª\94ò\82Ñ\8eU\82Á\82½\81D"
+                             : is_ice(u.ux,u.uy)
+                                ? "\95X\82Ì\95\\96Ê\82©\82ç\95X\82Ì\82©\82¯\82ç\82ª\94ò\82Ñ\8eU\82Á\82½\81D"
+                                : (level.locations[u.ux][u.uy].typ
+                                   == DRAWBRIDGE_DOWN)
+                                   ? "\94j\95Ð\82ª\8b´\82©\82ç\95\91\82¢\82 \82ª\82Á\82½\81D"
+                                   : "\8d»\97\98\82ª\8f°\82©\82ç\94ò\82Ñ\8eU\82Á\82½\81D");
+#endif
                 break;
             /* type = BURN wands */
             case WAN_FIRE:
@@ -749,25 +941,42 @@ doengrave()
                 type = BURN;
                 if (!objects[otmp->otyp].oc_name_known) {
                     if (flags.verbose)
+/*JP
                         pline("This %s is a wand of fire!", xname(otmp));
+*/
+                        pline("\82±\82ê\82Í\89\8a\82Ì\8fñ\82¾\81I");
                     doknown = TRUE;
                 }
+#if 0 /*JP*/
                 Strcpy(post_engr_text, Blind ? "You feel the wand heat up."
                                              : "Flames fly from the wand.");
+#else
+                Strcpy(post_engr_text, Blind ? "\8fñ\82ª\92g\82©\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                                             : "\89\8a\82ª\8fñ\82©\82ç\94ò\82Ñ\8eU\82Á\82½\81D");
+#endif
                 break;
             case WAN_LIGHTNING:
                 ptext = TRUE;
                 type = BURN;
                 if (!objects[otmp->otyp].oc_name_known) {
                     if (flags.verbose)
+/*JP
                         pline("This %s is a wand of lightning!", xname(otmp));
+*/
+                        pline("\82±\82ê\82Í\97\8b\82Ì\8fñ\82¾\81I");
                     doknown = TRUE;
                 }
                 if (!Blind) {
+/*JP
                     Strcpy(post_engr_text, "Lightning arcs from the wand.");
+*/
+                    Strcpy(post_engr_text, "\89Î\89Ô\82ª\8fñ\82©\82ç\94ò\82Ñ\8eU\82Á\82½\81D");
                     doblind = TRUE;
                 } else
+/*JP
                     Strcpy(post_engr_text, "You hear crackling!");
+*/
+                    Strcpy(post_engr_text, "\83p\83`\83p\83`\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I");
                 break;
 
             /* type = MARK wands */
@@ -784,7 +993,10 @@ doengrave()
                     zapwand = TRUE;
                 /* empty wand just doesn't write */
                 else
+/*JP
                     pline_The("wand is too worn out to engrave.");
+*/
+                    pline_The("\8fñ\82Í\95\8e\9a\82ð\8d\8f\82Þ\82É\82Í\8eg\82¢\82·\82¬\82Ä\82¢\82é\81D");
             }
         }
         break;
@@ -794,20 +1006,29 @@ doengrave()
             if ((int) otmp->spe > -3)
                 type = ENGRAVE;
             else
+/*JP
                 pline("%s too dull for engraving.", Yobjnam2(otmp, "are"));
+*/
+                pline("%s\82Í\90n\82ª\83{\83\8d\83{\83\8d\82Å\81C\95\8e\9a\82ð\92¤\82ê\82È\82¢\81D", xname(otmp));
         }
         break;
 
     case TOOL_CLASS:
         if (otmp == ublindf) {
             pline(
+/*JP
                 "That is a bit difficult to engrave with, don't you think?");
+*/
+                "\82¿\82å\82Á\82Æ\82»\82ê\82Å\92¤\82é\82Ì\82Í\91å\95Ï\82¾\82ë\82¤\81C\82»\82¤\8ev\82í\82È\82¢\81H");
             return 0;
         }
         switch (otmp->otyp) {
         case MAGIC_MARKER:
             if (otmp->spe <= 0)
+/*JP
                 Your("marker has dried out.");
+*/
+                Your("\83}\81[\83J\82Í\8a£\82«\82«\82Á\82½\81D");
             else
                 type = MARK;
             break;
@@ -821,16 +1042,32 @@ doengrave()
                     if (is_wet_towel(otmp))
                         dry_a_towel(otmp, -1, TRUE);
                     if (!Blind)
+/*JP
                         You("wipe out the message here.");
+*/
+                        You("\83\81\83b\83Z\81[\83W\82ð\90@\82«\82Æ\82Á\82½\81D");
                     else
+#if 0 /*JP*/
                         pline("%s %s.", Yobjnam2(otmp, "get"),
                               is_ice(u.ux, u.uy) ? "frosty" : "dusty");
+#else
+                        pline("%s\82Í%s\82É\82È\82Á\82½\81D", xname(otmp),
+                              is_ice(u.ux,u.uy) ? "\91\9a\82¾\82ç\82¯" : "\82Ù\82±\82è\82Ü\82Ý\82ê");
+#endif
                     dengr = TRUE;
                 } else
+/*JP
                     pline("%s can't wipe out this engraving.", Yname2(otmp));
+*/
+                    pline("\82±\82Ì\95\8e\9a\82Í%s\82Å\82Í\90@\82«\82Æ\82ê\82È\82¢\81D", xname(otmp));
             else
+#if 0 /*JP*/
                 pline("%s %s.", Yobjnam2(otmp, "get"),
                       is_ice(u.ux, u.uy) ? "frosty" : "dusty");
+#else
+                pline("%s\82Í%s\82É\82È\82Á\82½\81D", xname(otmp),
+                      is_ice(u.ux,u.uy) ? "\91\9a\82¾\82ç\82¯" : "\82Ù\82±\82è\82Ü\82Ý\82ê");
+#endif
             break;
         default:
             break;
@@ -839,7 +1076,10 @@ doengrave()
 
     case VENOM_CLASS:
         if (wizard) {
+/*JP
             pline("Writing a poison pen letter??");
+*/
+            pline("\82Ó\82Þ\81D\82±\82ê\82±\82»\96{\93\96\82Ì\93Å\90ã\82¾\81D");
             break;
         }
         /*FALLTHRU*/
@@ -881,16 +1121,30 @@ doengrave()
     /* Something has changed the engraving here */
     if (*buf) {
         make_engr_at(u.ux, u.uy, buf, moves, type);
+/*JP
         pline_The("engraving now reads: \"%s\".", buf);
+*/
+        pline("\8d\8f\82Ü\82ê\82½\95\8e\9a\82ð\93Ç\82ñ\82¾\81F\81u%s\81v\81D", buf);
         ptext = FALSE;
     }
     if (zapwand && (otmp->spe < 0)) {
+#if 0 /*JP*/
         pline("%s %sturns to dust.", The(xname(otmp)),
               Blind ? "" : "glows violently, then ");
+#else
+        pline("%s\82Í%s\82¿\82è\82Æ\82È\82Á\82½\81D", xname(otmp),
+              Blind ? "" : "\8c\83\82µ\82­\8bP\82«\81C");
+#endif
         if (!IS_GRAVE(levl[u.ux][u.uy].typ))
+#if 0 /*JP*/
             You(
     "are not going to get anywhere trying to write in the %s with your dust.",
                 is_ice(u.ux, u.uy) ? "frost" : "dust");
+#else
+            You(
+                "\90o\82Å%s\82É\89½\82©\8f\91\82±\82¤\82Æ\82µ\82½\82ª\81C\82Å\82«\82È\82©\82Á\82½\81D",
+                is_ice(u.ux,u.uy) ? "\95X" : "\82Ù\82±\82è");
+#endif
         useup(otmp);
         otmp = 0; /* wand is now gone */
         ptext = FALSE;
@@ -915,7 +1169,10 @@ doengrave()
         } else if (type == oep->engr_type
                    && (!Blind || oep->engr_type == BURN
                        || oep->engr_type == ENGRAVE)) {
+/*JP
             c = yn_function("Do you want to add to the current engraving?",
+*/
+            c = yn_function("\89½\82©\8f\91\82«\89Á\82¦\82Ü\82·\82©\81H",
                             ynqchars, 'y');
             if (c == 'q') {
                 pline1(Never_mind);
@@ -928,12 +1185,21 @@ doengrave()
                 || oep->engr_type == ENGR_BLOOD
                 || oep->engr_type == MARK) {
                 if (!Blind) {
+#if 0 /*JP*/
                     You("wipe out the message that was %s here.",
                         (oep->engr_type == DUST)
                             ? "written in the dust"
                             : (oep->engr_type == ENGR_BLOOD)
                                 ? "scrawled in blood"
                                 : "written");
+#else
+                    You("%s\83\81\83b\83Z\81[\83W\82ð\90@\82«\82Æ\82Á\82½\81D",
+                        (oep->engr_type == DUST)
+                            ? "\82Ù\82±\82è\82É\8f\91\82©\82ê\82Ä\82¢\82é"
+                            : (oep->engr_type == BLOOD)
+                                ? "\8c\8c\95\8e\9a\82Å\82È\82®\82è\8f\91\82«\82³\82ê\82Ä\82¢\82é"
+                                : "\8f\91\82©\82ê\82Ä\82¢\82é");
+#endif
                     del_engr(oep);
                     oep = (struct engr *) 0;
                 } else
@@ -941,15 +1207,25 @@ doengrave()
                      */
                     eow = TRUE;
             } else if (type == DUST || type == MARK || type == ENGR_BLOOD) {
+#if 0 /*JP*/
                 You("cannot wipe out the message that is %s the %s here.",
                     oep->engr_type == BURN
                         ? (is_ice(u.ux, u.uy) ? "melted into" : "burned into")
                         : "engraved in",
                     surface(u.ux, u.uy));
+#else
+                You("%s\83\81\83b\83Z\81[\83W\82ð\90@\82«\82Æ\82ê\82È\82©\82Á\82½\81D",
+                    oep->engr_type == BURN
+                        ? (is_ice(u.ux, u.uy) ? "\8d\8f\82Ü\82ê\82Ä\82¢\82é" : "\8fÄ\82«\95t\82¯\82ç\82ê\82Ä\82¢\82é")
+                        : "\8d\8f\82Ü\82ê\82Ä\82¢\82é");
+#endif
                 return 1;
             } else if (type != oep->engr_type || c == 'n') {
                 if (!Blind || can_reach_floor(TRUE))
+/*JP
                     You("will overwrite the current message.");
+*/
+                    You("\83\81\83b\83Z\81[\83W\82ð\8fã\8f\91\82«\82µ\82æ\82¤\82Æ\82µ\82½\81D");
                 eow = TRUE;
             }
         }
@@ -958,42 +1234,84 @@ doengrave()
     eloc = surface(u.ux, u.uy);
     switch (type) {
     default:
+/*JP
         everb = (oep && !eow ? "add to the weird writing on"
+*/
+        everb = (oep && !eow ? "\8aï\96­\82È\95\8e\9a\97ñ\82É\8f\91\82«\89Á\82¦\82é"
+/*JP
                              : "write strangely on");
+*/
+                             : "\8aï\96­\82È\95\8e\9a\97ñ\82ð\8f\91\82­");
         break;
     case DUST:
+/*JP
         everb = (oep && !eow ? "add to the writing in" : "write in");
+*/
+        everb = (oep && !eow ? "\8f\91\82«\89Á\82¦\82é" : "\8f\91\82­");
+/*JP
         eloc = is_ice(u.ux, u.uy) ? "frost" : "dust";
+*/
+        eloc = is_ice(u.ux,u.uy) ? "\91\9a" : "\82Ù\82±\82è";
         break;
     case HEADSTONE:
+/*JP
         everb = (oep && !eow ? "add to the epitaph on" : "engrave on");
+*/
+        everb = (oep && !eow ? "\95æ\94è\96Á\82ð\8d\8f\82Ý\89Á\82¦\82é" : "\95æ\94è\96Á\82ð\8d\8f\82Þ");
         break;
     case ENGRAVE:
+/*JP
         everb = (oep && !eow ? "add to the engraving in" : "engrave in");
+*/
+        everb = (oep && !eow ? "\8d\8f\82Ý\89Á\82¦\82é" : "\8d\8f\82Þ");
         break;
     case BURN:
+#if 0 /*JP*/
         everb = (oep && !eow
                      ? (is_ice(u.ux, u.uy) ? "add to the text melted into"
                                            : "add to the text burned into")
                      : (is_ice(u.ux, u.uy) ? "melt into" : "burn into"));
+#else
+        everb = (oep && !eow
+                 ? ( is_ice(u.ux,u.uy) ? "\8d\8f\82Ý\89Á\82¦\82é"
+                                       : "\94R\82¦\82Ä\82¢\82é\95\8e\9a\82É\8f\91\82«\89Á\82¦\82é")
+                 : ( is_ice(u.ux,u.uy) ? "\8d\8f\82Þ" : "\8fÄ\88ó\82ð\82¢\82ê\82é"));
+#endif
         break;
     case MARK:
+/*JP
         everb = (oep && !eow ? "add to the graffiti on" : "scribble on");
+*/
+        everb = (oep && !eow ? "\97\8e\8f\91\82É\8f\91\82«\89Á\82¦\82é" : "\82Í\82µ\82è\8f\91\82«\82·\82é");
         break;
     case ENGR_BLOOD:
+/*JP
         everb = (oep && !eow ? "add to the scrawl on" : "scrawl on");
+*/
+        everb = (oep && !eow ? "\82È\82®\82è\8f\91\82«\82É\8f\91\82«\89Á\82¦\82é" : "\82È\82®\82è\8f\91\82«\82·\82é");
         break;
     }
 
     /* Tell adventurer what is going on */
     if (otmp != &zeroobj)
+/*JP
         You("%s the %s with %s.", everb, eloc, doname(otmp));
+*/
+        You("%s\82Å%s\82É%s\81D", doname(otmp), eloc, jpast(everb));
     else
+#if 0 /*JP*/
         You("%s the %s with your %s.", everb, eloc,
             makeplural(body_part(FINGER)));
+#else
+        You("%s\82Å%s\82É%s\81D", body_part(FINGER),
+            eloc, jpast(everb));
+#endif
 
     /* Prompt for engraving! */
+/*JP
     Sprintf(qbuf, "What do you want to %s the %s here?", everb, eloc);
+*/
+    Sprintf(qbuf,"%s\82É\89½\82Æ%s\82©\81H", eloc, jpolite(everb));
     getlin(qbuf, ebuf);
     /* convert tabs to spaces and condense consecutive spaces to one */
     mungspaces(ebuf);
@@ -1007,8 +1325,12 @@ doengrave()
     if (len == 0 || index(ebuf, '\033')) {
         if (zapwand) {
             if (!Blind)
+#if 0 /*JP*/
                 pline("%s, then %s.", Tobjnam(otmp, "glow"),
                       otense(otmp, "fade"));
+#else
+                pline("%s\82Í\8bP\82¢\82½\82ª\81C\82·\82®\82É\8fÁ\82¦\82½\81D", xname(otmp));
+#endif
             return 1;
         } else {
             pline1(Never_mind);
@@ -1028,8 +1350,19 @@ doengrave()
         if (((type == DUST || type == ENGR_BLOOD) && !rn2(25))
             || (Blind && !rn2(11)) || (Confusion && !rn2(7))
             || (Stunned && !rn2(4)) || (Hallucination && !rn2(2)))
+#if 0 /*JP*/
             *sp = ' ' + rnd(96 - 2); /* ASCII '!' thru '~'
                                         (excludes ' ' and DEL) */
+#else /*JP:\93ú\96{\8cê\82Å\83\89\83\93\83_\83\80\89» */
+            {
+                if(is_kanji1(ebuf, sp-ebuf))
+                    jrndm_replace(sp);
+                else if(is_kanji2(ebuf, sp-ebuf))
+                    jrndm_replace(sp-1);
+                else
+                    *sp = '!' + rn2(93); /* ASCII-code only */
+            }
+#endif
     }
 
     /* Previous engraving is overwritten */
@@ -1045,12 +1378,18 @@ doengrave()
     default:
         multi = -(len / 10);
         if (multi)
+/*JP
             nomovemsg = "You finish your weird engraving.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\8aï\96­\82È\8d\8f\82Ý\82ð\8fI\82¦\82½\81D";
         break;
     case DUST:
         multi = -(len / 10);
         if (multi)
+/*JP
             nomovemsg = "You finish writing in the dust.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\82Ù\82±\82è\82É\8f\91\82«\8fI\82¦\82½\81D";
         break;
     case HEADSTONE:
     case ENGRAVE:
@@ -1064,7 +1403,10 @@ doengrave()
              * to engrave "Elbereth" all at once.
              * However, you can engrave "Elb", then "ere", then "th".
              */
+/*JP
             pline("%s dull.", Yobjnam2(otmp, "get"));
+*/
+            Your("%s\82Í\90n\82±\82Ú\82ê\82µ\82½\81D", xname(otmp));
             costly_alteration(otmp, COST_DEGRD);
             if (len > maxelen) {
                 multi = -maxelen;
@@ -1077,21 +1419,33 @@ doengrave()
             multi = -len;
         }
         if (multi)
+/*JP
             nomovemsg = "You finish engraving.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\8d\8f\82Ý\8fI\82¦\82½\81D";
         break;
     case BURN:
         multi = -(len / 10);
         if (multi)
             nomovemsg = is_ice(u.ux, u.uy)
+/*JP
                           ? "You finish melting your message into the ice."
+*/
+                          ? "\95X\82Ö\83\81\83b\83Z\81[\83W\82ð\8d\8f\82Ý\8fI\82¦\82½\81D"
+/*JP
                           : "You finish burning your message into the floor.";
+*/
+                          : "\8f°\82Ö\83\81\83b\83Z\81[\83W\82ð\8fÄ\82«\82¢\82ê\8fI\82¦\82½\81D";
         break;
     case MARK:
         multi = -(len / 10);
         if (otmp->otyp == MAGIC_MARKER) {
             maxelen = otmp->spe * 2; /* one charge / 2 letters */
             if (len > maxelen) {
+/*JP
                 Your("marker dries out.");
+*/
+                Your("\83}\81[\83J\82Í\8a£\82«\82«\82Á\82½\81D");
                 otmp->spe = 0;
                 multi = -(maxelen / 10);
             } else if (len > 1)
@@ -1100,12 +1454,18 @@ doengrave()
                 otmp->spe -= 1; /* Prevent infinite graffiti */
         }
         if (multi)
+/*JP
             nomovemsg = "You finish defacing the dungeon.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\96À\8b{\82Ö\82Ì\97\8e\8f\91\82ð\8f\91\82«\8fI\82¦\82½\81D";
         break;
     case ENGR_BLOOD:
         multi = -(len / 10);
         if (multi)
+/*JP
             nomovemsg = "You finish scrawling.";
+*/
+            nomovemsg = "\82Í\82µ\82è\8f\91\82«\82ð\8f\91\82«\8fI\82¦\82½\81D";
         break;
     }
 
@@ -1115,10 +1475,20 @@ doengrave()
             if (*sp == ' ')
                 maxelen--;
         if (!maxelen && *sp) {
+#if 1 /*JP*//*\8a¿\8e\9a\82Ì1\83o\83C\83g\96Ú\82¾\82¯\82ª\8ec\82ç\82È\82¢\82æ\82¤\82É*/
+            if(is_kanji2(ebuf, sp - ebuf))
+                --sp;
+#endif
             *sp = '\0';
             if (multi)
+/*JP
                 nomovemsg = "You cannot write any more.";
+*/
+                nomovemsg = "\82±\82ê\88È\8fã\89½\82à\8f\91\82¯\82È\82©\82Á\82½\81D";
+/*JP
             You("are only able to write \"%s\".", ebuf);
+*/
+            You("\81u%s\81v\82Æ\82Ü\82Å\82µ\82©\8f\91\82¯\82È\82©\82Á\82½\81D", ebuf);
         }
     }
 
@@ -1131,7 +1501,10 @@ doengrave()
     if (post_engr_text[0])
         pline("%s", post_engr_text);
     if (doblind && !resists_blnd(&youmonst)) {
+/*JP
         You("are blinded by the flash!");
+*/
+        You("\82Ü\82Î\82ä\82¢\8cõ\82Å\96Ú\82ª\82­\82ç\82ñ\82¾\81I");
         make_blinded((long) rnd(50), FALSE);
         if (!Blind)
             Your1(vision_clears);
index 06456e0..595068d 100644 (file)
@@ -196,7 +196,10 @@ const char *drainer; /* cause of death, if drain should be fatal */
         return;
 
     if (u.ulevel > 1) {
+/*JP
         pline("%s level %d.", Goodbye(), u.ulevel--);
+*/
+        pline("\82³\82æ\82¤\82È\82ç\83\8c\83x\83\8b%d\81D", u.ulevel--);
         /* remove intrinsic abilities */
         adjabil(u.ulevel + 1, u.ulevel);
         reset_rndmonst(NON_PM); /* new monster selection */
@@ -264,7 +267,10 @@ boolean incr; /* true iff via incremental experience growth */
     int hpinc, eninc;
 
     if (!incr)
+/*JP
         You_feel("more experienced.");
+*/
+        You("\82æ\82è\8co\8c±\82ð\82Â\82ñ\82¾\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
 
     /* increase hit points (when polymorphed, do monster form first
        in order to retain normal human/whatever increase for later) */
@@ -295,7 +301,10 @@ boolean incr; /* true iff via incremental experience growth */
         ++u.ulevel;
         if (u.ulevelmax < u.ulevel)
             u.ulevelmax = u.ulevel;
+/*JP
         pline("Welcome to experience level %d.", u.ulevel);
+*/
+        pline("\83\8c\83x\83\8b%d\82É\82æ\82¤\82±\82»\81D", u.ulevel);
         adjabil(u.ulevel - 1, u.ulevel); /* give new intrinsics */
         reset_rndmonst(NON_PM);          /* new monster selection */
     }
index 08a9a70..7b4821f 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (C) 1990 by Ken Arromdee */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* Note: Arrays are column first, while the screen is row first */
@@ -96,34 +101,59 @@ int expltype;
     } else
         switch (abs(type) % 10) {
         case 0:
+/*JP
             str = "magical blast";
+*/
+            str = "\96\82\96@\82Ì\95\97";
             adtyp = AD_MAGM;
             break;
         case 1:
+#if 0 /*JP*/
             str = (olet == BURNING_OIL) ? "burning oil"
                      : (olet == SCROLL_CLASS) ? "tower of flame" : "fireball";
+#else
+            str = (olet == BURNING_OIL) ? "\94R\82¦\82Ä\82¢\82é\96û"
+                     : (olet == SCROLL_CLASS) ? "\89Î\92\8c" : "\89Î\82Ì\8bÊ";
+#endif
             /* fire damage, not physical damage */
             adtyp = AD_FIRE;
             break;
         case 2:
+/*JP
             str = "ball of cold";
+*/
+            str = "\95X\82Ì\8bÊ";
             adtyp = AD_COLD;
             break;
         case 4:
+#if 0 /*JP*/
             str = (olet == WAND_CLASS) ? "death field"
                                        : "disintegration field";
+#else
+            str = (olet == WAND_CLASS) ? "\8e\80\82Ì\95\97"
+                                       : "\95ª\89ð\82Ì\95\97";
+#endif
             adtyp = AD_DISN;
             break;
         case 5:
+/*JP
             str = "ball of lightning";
+*/
+            str = "\97\8b\8bÊ";
             adtyp = AD_ELEC;
             break;
         case 6:
+/*JP
             str = "poison gas cloud";
+*/
+            str = "\93Å\82Ì\89_";
             adtyp = AD_DRST;
             break;
         case 7:
+/*JP
             str = "splash of acid";
+*/
+            str = "\8e_\82Ì\82µ\82Ô\82«";
             adtyp = AD_ACID;
             break;
         default:
@@ -276,11 +306,17 @@ int expltype;
         tmp_at(DISP_END, 0); /* clear the explosion */
     } else {
         if (olet == MON_EXPLODE) {
+/*JP
             str = "explosion";
+*/
+            str = "\94\9a\94­";
             generic = TRUE;
         }
         if (!Deaf && olet != SCROLL_CLASS)
+/*JP
             You_hear("a blast.");
+*/
+            You_hear("\94\9a\94­\89¹\82ð\95·\82¢\82½\81D");
     }
 
     if (dam)
@@ -320,64 +356,121 @@ int expltype;
                     if (is_animal(u.ustuck->data)) {
                         switch (adtyp) {
                         case AD_FIRE:
+/*JP
                             adj = "heartburn";
+*/
+                            adj = "\94R\82¦\82½";
                             break;
                         case AD_COLD:
+/*JP
                             adj = "chilly";
+*/
+                            adj = "\93\80\82ç\82³\82ê\82½";
                             break;
                         case AD_DISN:
                             if (olet == WAND_CLASS)
+/*JP
                                 adj = "irradiated by pure energy";
+*/
+                                adj = "\8fò\89»\82Ì\97Í\82ð\97\81\82Ñ\82½";
                             else
+/*JP
                                 adj = "perforated";
+*/
+                                adj = "\8c\8a\82ð\82 \82¯\82ç\82ê\82½";
                             break;
                         case AD_ELEC:
+/*JP
                             adj = "shocked";
+*/
+                            adj = "\93d\8c\82\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_DRST:
+/*JP
                             adj = "poisoned";
+*/
+                            adj = "\93Å\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_ACID:
+/*JP
                             adj = "an upset stomach";
+*/
+                            adj = "\8e_\82ð\82­\82ç\82Á\82½";
                             break;
                         default:
+/*JP
                             adj = "fried";
+*/
+                            adj = "\83p\83\8a\83p\83\8a\82É\82È\82Á\82½";
                             break;
                         }
+/*JP
                         pline("%s gets %s!", Monnam(u.ustuck), adj);
+*/
+                        pline("%s\82Í%s\81I", Monnam(u.ustuck), adj);
                     } else {
                         switch (adtyp) {
                         case AD_FIRE:
+/*JP
                             adj = "toasted";
+*/
+                            adj = "\8fÅ\82°\82½";
                             break;
                         case AD_COLD:
+/*JP
                             adj = "chilly";
+*/
+                            adj = "\93\80\82Á\82½";
                             break;
                         case AD_DISN:
                             if (olet == WAND_CLASS)
+/*JP
                                 adj = "overwhelmed by pure energy";
+*/
+                            adj = "\8fò\89»\82Ì\97Í\82ð\97\81\82Ñ\82½";
                             else
+/*JP
                                 adj = "perforated";
+*/
+                            adj = "\8c\8a\82ð\82 \82¯\82ç\82ê\82½";
                             break;
                         case AD_ELEC:
+/*JP
                             adj = "shocked";
+*/
+                            adj = "\93d\8c\82\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_DRST:
+/*JP
                             adj = "intoxicated";
+*/
+                            adj = "\93Å\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_ACID:
+/*JP
                             adj = "burned";
+*/
+                            adj = "\8e_\82ð\82­\82ç\82Á\82½";
                             break;
                         default:
+/*JP
                             adj = "fried";
+*/
+                            adj = "\83p\83\8a\83p\83\8a\82É\82È\82Á\82½";
                             break;
                         }
+/*JP
                         pline("%s gets slightly %s!", Monnam(u.ustuck), adj);
+*/
+                        pline("%s\82Í\8f­\82µ\82¾\82¯%s\81I", Monnam(u.ustuck), adj);
                     }
                 } else if (cansee(i + x - 1, j + y - 1)) {
                     if (mtmp->m_ap_type)
                         seemimic(mtmp);
+/*JP
                     pline("%s is caught in the %s!", Monnam(mtmp), str);
+*/
+                    pline("%s\82Í%s\82É\82Â\82Â\82Ü\82ê\82½\81I", Monnam(mtmp), str);
                 }
 
                 idamres += destroy_mitem(mtmp, SCROLL_CLASS, (int) adtyp);
@@ -400,7 +493,10 @@ int expltype;
                     if (resist(mtmp, olet, 0, FALSE)) {
                         /* inside_engulfer: <i+x-1,j+y-1> == <u.ux,u.uy> */
                         if (cansee(i + x - 1, j + y - 1) || inside_engulfer)
+/*JP
                             pline("%s resists the %s!", Monnam(mtmp), str);
+*/
+                            pline("%s\82Í%s\82É\92ï\8dR\82µ\82½\81I", Monnam(mtmp), str);
                         mdam = (dam + 1) / 2;
                     }
                     if (mtmp == u.ustuck)
@@ -435,7 +531,10 @@ int expltype;
                 } while (*hallu_buf != lowc(*hallu_buf));
                 str = hallu_buf;
             }
+/*JP
             You("are caught in the %s!", str);
+*/
+            You("%s\82É\82Â\82Â\82Ü\82ê\82½\81I", str);
             iflags.last_msg = PLNMSG_CAUGHT_IN_EXPLOSION;
         }
         /* do property damage first, in case we end up leaving bones */
@@ -443,7 +542,10 @@ int expltype;
             burn_away_slime();
         if (Invulnerable) {
             damu = 0;
+/*JP
             You("are unharmed!");
+*/
+            You("\8f\9d\82Â\82©\82È\82¢\81I");
         } else if (adtyp == AD_PHYS || physical_dmg)
             damu = Maybe_Half_Phys(damu);
         if (adtyp == AD_FIRE)
@@ -474,16 +576,31 @@ int expltype;
                     else if (str != killer.name && str != hallu_buf)
                         Strcpy(killer.name, str);
                     killer.format = KILLED_BY_AN;
+#if 1 /*JP*/
+                    Strcat(killer.name, "\82Å");
+#endif
                 } else if (type >= 0 && olet != SCROLL_CLASS) {
+#if 0 /*JP*/
                     killer.format = NO_KILLER_PREFIX;
                     Sprintf(killer.name, "caught %sself in %s own %s", uhim(),
                             uhis(), str);
+#else
+                    killer.format = KILLED_BY;
+                    Sprintf(killer.name, "\8e©\95ª\8e©\90g\82Ì%s\82É\82Â\82Â\82Ü\82ê\82Ä",
+                            str);
+#endif
                 } else {
+#if 0 /*JP*//* an \82ð\82Â\82¯\82é\82©\82Ç\82¤\82©\82Í\8aÖ\8cW\82È\82¢ */
                     killer.format = (!strcmpi(str, "tower of flame")
                                      || !strcmpi(str, "fireball"))
                                         ? KILLED_BY_AN
                                         : KILLED_BY;
                     Strcpy(killer.name, str);
+#else
+                    killer.format = KILLED_BY;
+                    Strcpy(killer.name, str);
+                    Strcat(killer.name, "\82Å");
+#endif
                 }
                 if (iflags.last_msg == PLNMSG_CAUGHT_IN_EXPLOSION
                     || iflags.last_msg
@@ -500,6 +617,7 @@ int expltype;
     }
 
     if (shopdamage) {
+#if 0 /*JP*/
         pay_for_damage(adtyp == AD_FIRE
                            ? "burn away"
                            : adtyp == AD_COLD
@@ -507,6 +625,15 @@ int expltype;
                                  : adtyp == AD_DISN ? "disintegrate"
                                                     : "destroy",
                        FALSE);
+#else
+        pay_for_damage(adtyp == AD_FIRE
+                           ? "\94R\82â\82·"
+                           : adtyp == AD_COLD
+                                 ? "\95²\81X\82É\82·\82é"
+                                 : adtyp == AD_DISN ? "\95²\8dÓ\82·\82é"
+                                                    : "\94j\89ó\82·\82é",
+                       FALSE);
+#endif
     }
 
     /* explosions are noisy */
@@ -577,7 +704,10 @@ struct obj *obj; /* only scatter this obj        */
             && ((otmp->otyp == BOULDER) || (otmp->otyp == STATUE))
             && rn2(10)) {
             if (otmp->otyp == BOULDER) {
+/*JP
                 pline("%s apart.", Tobjnam(otmp, "break"));
+*/
+                pline("%s\82Í\88ê\95\94\95ª\82ª\8dÓ\82¯\82½\81D",xname(otmp));
                 fracture_rock(otmp);
                 place_object(otmp, sx, sy);
                 if ((otmp = sobj_at(BOULDER, sx, sy)) != 0) {
@@ -590,9 +720,14 @@ struct obj *obj; /* only scatter this obj        */
 
                 if ((trap = t_at(sx, sy)) && trap->ttyp == STATUE_TRAP)
                     deltrap(trap);
+/*JP
                 pline("%s.", Tobjnam(otmp, "crumble"));
+*/
+                pline("%s\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D",xname(otmp));
                 (void) break_statue(otmp);
+#ifndef FIX_BUG_C340_2
                 place_object(otmp, sx, sy); /* put fragments on floor */
+#endif
             }
             used_up = TRUE;
 
index 1b74a56..dcc5663 100644 (file)
@@ -255,6 +255,13 @@ int bufsz;
             *op++ = *sp;
             *op = '\0';
             cnt++;
+#if 1 /*JP*/
+        } else if (is_kanji1(s, sp - s)) {
+            *op++ = *sp++;
+            *op++ = *sp;
+            *op = '\0';
+            cnt += 2;
+#endif
         } else {
             (void) sprintf(op, "%c%02X", quotechar, *sp);
             op += 3;
@@ -541,8 +548,13 @@ char errbuf[];
        settle for `lock' instead of `fq_lock' because the latter
        might end up being too big for nethack's BUFSZ */
     if (fd < 0 && errbuf)
+#if 0 /*JP*/
         Sprintf(errbuf, "Cannot open file \"%s\" for level %d (errno %d).",
                 lock, lev, errno);
+#else
+        Sprintf(errbuf, "\92n\89º%d\8aK\82Ì\83t\83@\83C\83\8b\"%s\"\82ð\8aJ\82¯\82È\82¢(errno %d)\81D",
+                lev, lock, errno);
+#endif
 
     return fd;
 }
@@ -1946,6 +1958,16 @@ int src;
         return fp;
 #else /* should be only UNIX left */
     envp = nh_getenv("HOME");
+#if 1 /*JP*//*".jnethackrc"\82ð\97D\90æ\82µ\82Ä\93Ç\82Ý\8d\9e\82Ý*/
+    if (!envp)
+        Strcpy(tmp_config, ".jnethackrc");
+    else
+        Sprintf(tmp_config, "%s/%s", envp, ".jnethackrc");
+
+    (void) strncpy(lastconfigfile, tmp_config, BUFSZ - 1);
+    if ((fp = fopenp(lastconfigfile, "r")) != (FILE *) 0)
+        return fp;
+#endif
     if (!envp)
         Strcpy(tmp_config, ".nethackrc");
     else
index 71c9467..ff0c079 100644 (file)
@@ -4,6 +4,11 @@
 
 /* Code for drinking from fountains. */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL void NDECL(dowatersnakes);
@@ -18,12 +23,18 @@ void
 floating_above(what)
 const char *what;
 {
+/*JP
     const char *umsg = "are floating high above the %s.";
+*/
+    const char *umsg = "%s\82Ì\97y\82©\8fã\95û\82É\95\82\82¢\82Ä\82¢\82é\81D";
 
     if (u.utrap && (u.utraptype == TT_INFLOOR || u.utraptype == TT_LAVA)) {
         /* when stuck in floor (not possible at fountain or sink location,
            so must be attempting to move down), override the usual message */
+/*JP
         umsg = "are trapped in the %s.";
+*/
+        umsg = "%s\82É\82Â\82©\82Ü\82Á\82Ä\82¢\82é\81D";
         what = surface(u.ux, u.uy); /* probably redundant */
     }
     You(umsg, what);
@@ -38,17 +49,28 @@ dowatersnakes()
 
     if (!(mvitals[PM_WATER_MOCCASIN].mvflags & G_GONE)) {
         if (!Blind)
+#if 0 /*JP*/
             pline("An endless stream of %s pours forth!",
                   Hallucination ? makeplural(rndmonnam(NULL)) : "snakes");
+#else
+            pline("%s\82ª\82Ç\82Ç\82Á\82Æ\97¬\82ê\8fo\82Ä\82«\82½\81I",
+                  Hallucination ? rndmonnam(NULL) : "\8eÖ");
+#endif
         else
+/*JP
             You_hear("%s hissing!", something);
+*/
+            You_hear("\83V\81[\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I");
         while (num-- > 0)
             if ((mtmp = makemon(&mons[PM_WATER_MOCCASIN], u.ux, u.uy,
                                 NO_MM_FLAGS)) != 0
                 && t_at(mtmp->mx, mtmp->my))
                 (void) mintrap(mtmp);
     } else
+/*JP
         pline_The("fountain bubbles furiously for a moment, then calms.");
+*/
+        pline("\90ò\82Í\93Ë\91R\8c\83\82µ\82­\96A\82¾\82¿\81C\82â\82ª\82Ä\90Ã\82©\82É\82È\82Á\82½\81D");
 }
 
 /* Water demon */
@@ -61,22 +83,36 @@ dowaterdemon()
         if ((mtmp = makemon(&mons[PM_WATER_DEMON], u.ux, u.uy,
                             NO_MM_FLAGS)) != 0) {
             if (!Blind)
+/*JP
                 You("unleash %s!", a_monnam(mtmp));
+*/
+                You("%s\82ð\89ð\82«\95ú\82µ\82½\81I", a_monnam(mtmp));
             else
+/*JP
                 You_feel("the presence of evil.");
+*/
+                You_feel("\8e×\88«\82È\91\8dÝ\82ð\8a´\82\82½\81I");
 
             /* Give those on low levels a (slightly) better chance of survival
              */
             if (rnd(100) > (80 + level_difficulty())) {
+#if 0 /*JP*/
                 pline("Grateful for %s release, %s grants you a wish!",
                       mhis(mtmp), mhe(mtmp));
+#else
+                pline("%s\82Í\89ð\95ú\82ð\82Æ\82Ä\82à\8a´\8eÓ\82µ\81C\82Ì\82¼\82Ý\82ð\82©\82È\82¦\82Ä\82­\82ê\82é\82æ\82¤\82¾\81I",
+                      mhe(mtmp));
+#endif
                 /* give a wish and discard the monster (mtmp set to null) */
                 mongrantswish(&mtmp);
             } else if (t_at(mtmp->mx, mtmp->my))
                 (void) mintrap(mtmp);
         }
     } else
+/*JP
         pline_The("fountain bubbles furiously for a moment, then calms.");
+*/
+        pline("\90ò\82Í\93Ë\91R\8c\83\82µ\82­\96A\82¾\82¿\81C\82â\82ª\82Ä\90Ã\82©\82É\82È\82Á\82½\81D");
 }
 
 /* Water Nymph */
@@ -89,16 +125,28 @@ dowaternymph()
         && (mtmp = makemon(&mons[PM_WATER_NYMPH], u.ux, u.uy,
                            NO_MM_FLAGS)) != 0) {
         if (!Blind)
+/*JP
             You("attract %s!", a_monnam(mtmp));
+*/
+            pline("%s\82ª\8c»\82í\82ê\82½\81I", a_monnam(mtmp));
         else
+/*JP
             You_hear("a seductive voice.");
+*/
+            You_hear("\96£\98f\93I\82È\90º\82ð\95·\82¢\82½\81D");
         mtmp->msleeping = 0;
         if (t_at(mtmp->mx, mtmp->my))
             (void) mintrap(mtmp);
     } else if (!Blind)
+/*JP
         pline("A large bubble rises to the surface and pops.");
+*/
+        pline("\91å\82«\82È\96A\82ª\95¦\82«\8fo\82Ä\82Í\82\82¯\82½\81D");
     else
+/*JP
         You_hear("a loud pop.");
+*/
+        You_hear("\91å\82«\82È\82à\82Ì\82ª\82Í\82\82¯\82é\89¹\82ð\95·\82¢\82½\81D");
 }
 
 /* Gushing forth along LOS from (u.ux, u.uy) */
@@ -111,9 +159,15 @@ int drinking;
     do_clear_area(u.ux, u.uy, 7, gush, (genericptr_t) &madepool);
     if (!madepool) {
         if (drinking)
+/*JP
             Your("thirst is quenched.");
+*/
+            Your("\8a\89\82«\82Í\96ü\82³\82ê\82½\81D");
         else
+/*JP
             pline("Water sprays all over you.");
+*/
+            pline("\90\85\82µ\82Ô\82«\82ª\82 \82È\82½\82É\82©\82©\82Á\82½\81D");
     }
 }
 
@@ -134,7 +188,10 @@ genericptr_t poolcnt;
         return;
 
     if (!((*(int *) poolcnt)++))
+/*JP
         pline("Water gushes forth from the overflowing fountain!");
+*/
+        pline("\90ò\82©\82ç\90\85\82ª\82Ç\82Ç\82Á\82Æ\88ì\82ê\8fo\82½\81I");
 
     /* Put a pool at x, y */
     levl[x][y].typ = POOL;
@@ -153,9 +210,15 @@ STATIC_OVL void
 dofindgem()
 {
     if (!Blind)
+/*JP
         You("spot a gem in the sparkling waters!");
+*/
+        pline("\82«\82ç\82ß\82­\90\85\82Ì\92\86\82É\95ó\90Î\82ð\8c©\82Â\82¯\82½\81I");
     else
+/*JP
         You_feel("a gem here!");
+*/
+        You_feel("\95ó\90Î\82ª\82 \82é\82æ\82¤\82¾\81I");
     (void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE - 1), u.ux, u.uy,
                      FALSE, FALSE);
     SET_FOUNTAIN_LOOTED(u.ux, u.uy);
@@ -180,18 +243,30 @@ boolean isyou;
                     continue;
                 if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my)
                     && mtmp->mpeaceful) {
+/*JP
                     pline("%s yells:", Amonnam(mtmp));
+*/
+                    pline("%s\82Í\8b©\82ñ\82¾\81F", Amonnam(mtmp));
+/*JP
                     verbalize("Hey, stop using that fountain!");
+*/
+                    verbalize("\82¨\82¢\81C\90ò\82ð\89\98\82·\82È\81I");
                     break;
                 }
             }
             /* You can see or hear this effect */
             if (!mtmp)
+/*JP
                 pline_The("flow reduces to a trickle.");
+*/
+                pline("\97¬\82ê\82Í\82¿\82å\82ë\82¿\82å\82ë\82É\82È\82Á\82½\81D");
             return;
         }
         if (isyou && wizard) {
+/*JP
             if (yn("Dry up fountain?") == 'n')
+*/
+            if (yn("\90ò\82ð\8a±\8fã\82ª\82ç\82¹\82Ü\82·\82©\81H") == 'n')
                 return;
         }
         /* replace the fountain with ordinary floor */
@@ -199,7 +274,10 @@ boolean isyou;
         levl[x][y].looted = 0;
         levl[x][y].blessedftn = 0;
         if (cansee(x, y))
+/*JP
             pline_The("fountain dries up!");
+*/
+            pline("\90ò\82Í\8a±\8fã\82ª\82Á\82½\81I");
         /* The location is seen if the hero/monster is invisible
            or felt if the hero is blind. */
         newsym(x, y);
@@ -217,14 +295,20 @@ drinkfountain()
     register int fate = rnd(30);
 
     if (Levitation) {
+/*JP
         floating_above("fountain");
+*/
+        floating_above("\90ò");
         return;
     }
 
     if (mgkftn && u.uluck >= 0 && fate >= 10) {
         int i, ii, littleluck = (u.uluck < 4);
 
+/*JP
         pline("Wow!  This makes you feel great!");
+*/
+        pline("\83\8f\83H\81I\82Æ\82Ä\82à\8bC\8e\9d\82¿\82æ\82­\82È\82Á\82½\81I");
         /* blessed restore ability */
         for (ii = 0; ii < A_MAX; ii++)
             if (ABASE(ii) < AMAX(ii)) {
@@ -240,14 +324,20 @@ drinkfountain()
                 i = 0;
         }
         display_nhwindow(WIN_MESSAGE, FALSE);
+/*JP
         pline("A wisp of vapor escapes the fountain...");
+*/
+        pline("\89\8c\82Ì\82©\82½\82Ü\82è\82ª\90ò\82©\82ç\93¦\82°\82½\81D\81D\81D");
         exercise(A_WIS, TRUE);
         levl[u.ux][u.uy].blessedftn = 0;
         return;
     }
 
     if (fate < 10) {
+/*JP
         pline_The("cool draught refreshes you.");
+*/
+        pline("\97â\82½\82¢\88ê\94t\82Å\82³\82Á\82Ï\82è\82µ\82½\81D");
         u.uhunger += rnd(10); /* don't choke on water */
         newuhs(FALSE);
         if (mgkftn)
@@ -255,27 +345,48 @@ drinkfountain()
     } else {
         switch (fate) {
         case 19: /* Self-knowledge */
+/*JP
             You_feel("self-knowledgeable...");
+*/
+            You("\8e©\95ª\8e©\90g\82ª\94»\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
             display_nhwindow(WIN_MESSAGE, FALSE);
             enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS);
             exercise(A_WIS, TRUE);
+/*JP
             pline_The("feeling subsides.");
+*/
+            pline("\82»\82Ì\8a´\82\82Í\82È\82­\82È\82Á\82½\81D");
             break;
         case 20: /* Foul water */
+/*JP
             pline_The("water is foul!  You gag and vomit.");
+*/
+            pline("\90\85\82Í\82Ð\82Ç\82­\95s\89õ\82È\96¡\82ª\82µ\82½\81I\82 \82È\82½\82Í\93f\82«\96ß\82µ\82½\81D");
             morehungry(rn1(20, 11));
             vomit();
             break;
         case 21: /* Poisonous */
+/*JP
             pline_The("water is contaminated!");
+*/
+            pline("\90\85\82Í\89\98\90õ\82³\82ê\82Ä\82¢\82é\81I");
             if (Poison_resistance) {
+/*JP
                 pline("Perhaps it is runoff from the nearby %s farm.",
+*/
+                pline("\82½\82Ô\82ñ\81C\82±\82ê\82Í\8bß\82­\82Ì%s\82Ì\94_\8fê\82©\82ç\97¬\82ê\82Ä\82¢\82é\81D",
                       fruitname(FALSE));
+/*JP
                 losehp(rnd(4), "unrefrigerated sip of juice", KILLED_BY_AN);
+*/
+                losehp(rnd(4),"\95\85\82Á\82½\89Ê\8f`\82Ì\82µ\82½\82½\82è\82Å", KILLED_BY_AN);
                 break;
             }
             losestr(rn1(4, 3));
+/*JP
             losehp(rnd(10), "contaminated water", KILLED_BY);
+*/
+            losehp(rnd(10),"\89\98\90õ\82³\82ê\82½\90\85\82Å", KILLED_BY);
             exercise(A_CON, FALSE);
             break;
         case 22: /* Fountain of snakes! */
@@ -287,7 +398,10 @@ drinkfountain()
         case 24: /* Curse an item */ {
             register struct obj *obj;
 
+/*JP
             pline("This water's no good!");
+*/
+            pline("\82±\82Ì\90\85\82Í\82Æ\82Ä\82à\82Ü\82¸\82¢\81I");
             morehungry(rn1(20, 11));
             exercise(A_CON, FALSE);
             for (obj = invent; obj; obj = obj->nobj)
@@ -298,14 +412,29 @@ drinkfountain()
         case 25: /* See invisible */
             if (Blind) {
                 if (Invisible) {
+/*JP
                     You("feel transparent.");
+*/
+                    You("\93§\96¾\82É\82È\82Á\82½\8bC\82ª\82·\82é\81D");
                 } else {
+/*JP
                     You("feel very self-conscious.");
+*/
+                    You("\8e©\88Ó\8e¯\89ß\8fè\82É\8a´\82\82½\81D");
+/*JP
                     pline("Then it passes.");
+*/
+                    pline("\82»\82Ì\8a´\82\82Í\8fÁ\82¦\82½\81D");
                 }
             } else {
+/*JP
                 You_see("an image of someone stalking you.");
+*/
+                You("\89½\82©\82ª\8e©\95ª\82Ì\8cã\82ð\82Â\82¯\82Ä\82¢\82é\89f\91\9c\82ð\8c©\82½\81D");
+/*JP
                 pline("But it disappears.");
+*/
+                pline("\82µ\82©\82µ\81C\82»\82ê\82Í\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81D");
             }
             HSee_invisible |= FROMOUTSIDE;
             newsym(u.ux, u.uy);
@@ -327,7 +456,10 @@ drinkfountain()
         {
             register struct monst *mtmp;
 
+/*JP
             pline("This water gives you bad breath!");
+*/
+            pline("\90\85\82ð\88ù\82ñ\82¾\82ç\91§\82ª\8fL\82­\82È\82Á\82½\81I");
             for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
                 if (DEADMONSTER(mtmp))
                     continue;
@@ -339,7 +471,10 @@ drinkfountain()
             dogushforth(TRUE);
             break;
         default:
+/*JP
             pline("This tepid water is tasteless.");
+*/
+            pline("\82±\82Ì\82È\82Ü\82Ê\82é\82¢\90\85\82Í\96¡\82ª\82È\82¢\81D");
             break;
         }
     }
@@ -351,7 +486,10 @@ dipfountain(obj)
 register struct obj *obj;
 {
     if (Levitation) {
+/*JP
         floating_above("fountain");
+*/
+        floating_above("\90ò");
         return;
     }
 
@@ -363,8 +501,14 @@ register struct obj *obj;
         if (u.ualign.type != A_LAWFUL) {
             /* Ha!  Trying to cheat her. */
             pline(
+/*JP
              "A freezing mist rises from the water and envelopes the sword.");
+*/
+             "\95X\82Ì\96\82ª\90\85\82©\82ç\97§\82¿\8f¸\82è\81C\8c\95\82ð\82Â\82Â\82ñ\82¾\81D");
+/*JP
             pline_The("fountain disappears!");
+*/
+            pline("\90ò\82Í\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81I");
             curse(obj);
             if (obj->spe > -6 && !rn2(3))
                 obj->spe--;
@@ -374,8 +518,14 @@ register struct obj *obj;
             /* The lady of the lake acts! - Eric Backus */
             /* Be *REAL* nice */
             pline(
+/*JP
               "From the murky depths, a hand reaches up to bless the sword.");
+*/
+              "\82É\82²\82Á\82½\90[\82Ý\82©\82ç\81C\8c\95\82ð\8fj\95\9f\82¹\82ñ\82Æ\8eè\82ª\90L\82Ñ\82Ä\82«\82½\81D");
+/*JP
             pline("As the hand retreats, the fountain disappears!");
+*/
+            pline("\8eè\82ª\91Þ\82­\82Æ\81C\90ò\82Í\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81I");
             obj = oname(obj, artiname(ART_EXCALIBUR));
             discover_artifact(ART_EXCALIBUR);
             bless(obj);
@@ -413,10 +563,16 @@ register struct obj *obj;
     case 20: /* Uncurse the item */
         if (obj->cursed) {
             if (!Blind)
+/*JP
                 pline_The("water glows for a moment.");
+*/
+                pline("\90\85\82Í\8bP\82«\82¾\82µ\82½\81D");
             uncurse(obj);
         } else {
+/*JP
             pline("A feeling of loss comes over you.");
+*/
+            pline("\8aï\96­\82È\92E\97Í\8a´\82ª\82 \82È\82½\82ð\82¨\82»\82Á\82½\81D");
         }
         break;
     case 21: /* Water Demon */
@@ -437,13 +593,22 @@ register struct obj *obj;
         dogushforth(FALSE);
         break;
     case 26: /* Strange feeling */
+/*JP
         pline("A strange tingling runs up your %s.", body_part(ARM));
+*/
+        pline("\8aï\96­\82È\82µ\82Ñ\82ê\82ª\82 \82È\82½\82Ì%s\82É\91\96\82Á\82½\81D", body_part(ARM));
         break;
     case 27: /* Strange feeling */
+/*JP
         You_feel("a sudden chill.");
+*/
+        You("\93Ë\91R\8a¦\82¯\82ð\8a´\82\82½\81D");
         break;
     case 28: /* Strange feeling */
+/*JP
         pline("An urge to take a bath overwhelms you.");
+*/
+        pline("\95\97\98C\82É\93ü\82è\82½\82¢\82Æ\82¢\82¤\97~\96]\82É\82©\82ç\82ê\82½\81D");
         {
             long money = money_cnt(invent);
             struct obj *otmp;
@@ -462,7 +627,10 @@ register struct obj *obj;
                         if (!otmp->quan)
                             delobj(otmp);
                     }
+/*JP
                 You("lost some of your money in the fountain!");
+*/
+                You("\8bà\89Ý\82ð\90\94\96\87\81C\90ò\82É\97\8e\82Æ\82µ\82Ä\82µ\82Ü\82Á\82½\81I");
                 CLEAR_FOUNTAIN_LOOTED(u.ux, u.uy);
                 exercise(A_WIS, FALSE);
             }
@@ -471,7 +639,7 @@ register struct obj *obj;
     case 29: /* You see coins */
         /* We make fountains have more coins the closer you are to the
          * surface.  After all, there will have been more people going
-         * by. Just like a shopping mall!  Chris Woodbury  */
+         * by.  Just like a shopping mall!  Chris Woodbury  */
 
         if (FOUNTAIN_IS_LOOTED(u.ux, u.uy))
             break;
@@ -480,7 +648,10 @@ register struct obj *obj;
                                    + 1) * 2) + 5),
                       u.ux, u.uy);
         if (!Blind)
+/*JP
             pline("Far below you, you see coins glistening in the water.");
+*/
+            You("\97y\82©\89º\82Ì\90\85\92\86\82É\8bà\89Ý\82Ì\8bP\82«\82ð\82Ý\82Â\82¯\82½\81D");
         exercise(A_WIS, TRUE);
         newsym(u.ux, u.uy);
         break;
@@ -494,7 +665,10 @@ breaksink(x, y)
 int x, y;
 {
     if (cansee(x, y) || (x == u.ux && y == u.uy))
+/*JP
         pline_The("pipes break!  Water spurts out!");
+*/
+        pline("\94z\8aÇ\82ª\89ó\82ê\90\85\82ª\95¬\8fo\82µ\82½\81I");
     level.flags.nsinks--;
     levl[x][y].doormask = 0;
     levl[x][y].typ = FOUNTAIN;
@@ -509,33 +683,60 @@ drinksink()
     struct monst *mtmp;
 
     if (Levitation) {
+/*JP
         floating_above("sink");
+*/
+        floating_above("\97¬\82µ\91ä");
         return;
     }
     switch (rn2(20)) {
     case 0:
+/*JP
         You("take a sip of very cold water.");
+*/
+        You("\82Æ\82Ä\82à\97â\82½\82¢\90\85\82ð\88ê\8cû\88ù\82ñ\82¾\81D");
         break;
     case 1:
+/*JP
         You("take a sip of very warm water.");
+*/
+        You("\82Æ\82Ä\82à\82 \82½\82½\82©\82¢\90\85\82ð\88ê\8cû\88ù\82ñ\82¾\81D");
         break;
     case 2:
+/*JP
         You("take a sip of scalding hot water.");
+*/
+        You("\82Æ\82Ä\82à\94M\82¢\90\85\82ð\88ê\8cû\88ù\82ñ\82¾\81D");
         if (Fire_resistance)
+/*JP
             pline("It seems quite tasty.");
+*/
+            pline("\82Æ\82Ä\82à\82¨\82¢\82µ\82¢\90\85\82¾\81D");
         else
+/*JP
             losehp(rnd(6), "sipping boiling water", KILLED_BY);
+*/
+            losehp(rnd(6), "\95¦\93«\82µ\82½\90\85\82ð\88ù\82ñ\82Å", KILLED_BY);
         /* boiling water burns considered fire damage */
         break;
     case 3:
         if (mvitals[PM_SEWER_RAT].mvflags & G_GONE)
+/*JP
             pline_The("sink seems quite dirty.");
+*/
+            pline("\97¬\82µ\91ä\82Í\82Æ\82Ä\82à\89\98\82È\82ç\82µ\82¢\81D");
         else {
             mtmp = makemon(&mons[PM_SEWER_RAT], u.ux, u.uy, NO_MM_FLAGS);
             if (mtmp)
+#if 0 /*JP*/
                 pline("Eek!  There's %s in the sink!",
                       (Blind || !canspotmon(mtmp)) ? "something squirmy"
                                                    : a_monnam(mtmp));
+#else
+                pline("\82°\81I\97¬\82µ\91ä\82É%s\82ª\82¢\82é\81I",
+                      (Blind || !canspotmon(mtmp)) ? "\90g\82à\82¾\82¦\82·\82é\82æ\82¤\82È\82à\82Ì"
+                                                   : a_monnam(mtmp));
+#endif
         }
         break;
     case 4:
@@ -547,8 +748,14 @@ drinksink()
             }
         } while (!otmp);
         otmp->cursed = otmp->blessed = 0;
+#if 0 /*JP*/
         pline("Some %s liquid flows from the faucet.",
               Blind ? "odd" : hcolor(OBJ_DESCR(objects[otmp->otyp])));
+#else
+        pline("\8eÖ\8cû\82©\82ç%s\89t\91Ì\82ª\97¬\82ê\82½\81D",
+              Blind ? "\8aï\96­\82È" :
+              hcolor(OBJ_DESCR(objects[otmp->otyp])));
+#endif
         otmp->dknown = !(Blind || Hallucination);
         otmp->quan++;       /* Avoid panic upon useup() */
         otmp->fromsink = 1; /* kludge for docall() */
@@ -557,55 +764,93 @@ drinksink()
         break;
     case 5:
         if (!(levl[u.ux][u.uy].looted & S_LRING)) {
+/*JP
             You("find a ring in the sink!");
+*/
+            You("\97¬\82µ\91ä\82É\8ew\97Ö\82ð\82Ý\82Â\82¯\82½\81I");
             (void) mkobj_at(RING_CLASS, u.ux, u.uy, TRUE);
             levl[u.ux][u.uy].looted |= S_LRING;
             exercise(A_WIS, TRUE);
             newsym(u.ux, u.uy);
         } else
+/*JP
             pline("Some dirty water backs up in the drain.");
+*/
+            pline("\89\98\90\85\82ª\94r\90\85\8cû\82©\82ç\8bt\97¬\82µ\82Ä\82«\82½\81D");
         break;
     case 6:
         breaksink(u.ux, u.uy);
         break;
     case 7:
+/*JP
         pline_The("water moves as though of its own will!");
+*/
+        pline("\90\85\82ª\88Ó\8ev\82ð\8e\9d\82Á\82Ä\82¢\82é\82©\82Ì\82æ\82¤\82É\93®\82¢\82½\81I");
         if ((mvitals[PM_WATER_ELEMENTAL].mvflags & G_GONE)
             || !makemon(&mons[PM_WATER_ELEMENTAL], u.ux, u.uy, NO_MM_FLAGS))
+/*JP
             pline("But it quiets down.");
+*/
+            pline("\82µ\82©\82µ\81C\90Ã\82©\82É\82È\82Á\82½\81D");
         break;
     case 8:
+/*JP
         pline("Yuk, this water tastes awful.");
+*/
+       pline("\83I\83F\81C\82Æ\82Ä\82à\82Ð\82Ç\82¢\96¡\82ª\82·\82é\81D");
         more_experienced(1, 0);
         newexplevel();
         break;
     case 9:
+/*JP
         pline("Gaggg... this tastes like sewage!  You vomit.");
+*/
+        pline("\83Q\83F\81[\81D\89º\90\85\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81I\82 \82È\82½\82Í\93f\82«\96ß\82µ\82½\81D");
         morehungry(rn1(30 - ACURR(A_CON), 11));
         vomit();
         break;
     case 10:
+/*JP
         pline("This water contains toxic wastes!");
+*/
+        pline("\82±\82Ì\90\85\82Í\97L\93Å\82È\94r\90\85\82ð\8aÜ\82ñ\82Å\82¢\82é\81I");
         if (!Unchanging) {
+/*JP
             You("undergo a freakish metamorphosis!");
+*/
+            You("\8aï\8c`\82È\95Ï\89»\82ð\82µ\82Í\82\82ß\82½\81I");
             polyself(0);
         }
         break;
     /* more odd messages --JJB */
     case 11:
+/*JP
         You_hear("clanking from the pipes...");
+*/
+        You_hear("\94z\8aÇ\82Ì\83J\83`\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D\81D\81D");
         break;
     case 12:
+/*JP
         You_hear("snatches of song from among the sewers...");
+*/
+        You_hear("\89º\90\85\82Ì\92\86\82©\82ç\82Æ\82¬\82ê\82Æ\82¬\82ê\82Ì\89Ì\82ð\95·\82¢\82½\81D\81D\81D");
         break;
     case 19:
         if (Hallucination) {
+/*JP
             pline("From the murky drain, a hand reaches up... --oops--");
+*/
+            pline("\88Ã\82¢\94r\90\85\8cû\82©\82ç\81C\8eè\82ª\90L\82Ñ\82Ä\82«\82½\81D\81D--\82¨\82Á\82Æ--");
             break;
         }
     default:
+#if 0 /*JP*/
         You("take a sip of %s water.",
             rn2(3) ? (rn2(2) ? "cold" : "warm") : "hot");
+#else
+        You("%s\90\85\82ð\88ê\8cû\88ù\82ñ\82¾\81D",
+            rn2(3) ? (rn2(2) ? "\97â\82½\82¢" : "\82 \82½\82½\82©\82¢") : "\94M\82¢");
+#endif
     }
 }
 
index 3e606f6..d49b495 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* #define DEBUG */ /* uncomment for debugging */
@@ -114,14 +119,20 @@ moverock()
         if (Levitation || Is_airlevel(&u.uz)) {
             if (Blind)
                 feel_location(sx, sy);
+/*JP
             You("don't have enough leverage to push %s.", the(xname(otmp)));
+*/
+            You("\91Ì\82ª\95\82\82¢\82Ä\82¢\82é\82Ì\82Å%s\82ð\89\9f\82¹\82È\82¢\81D", the(xname(otmp)));
             /* Give them a chance to climb over it? */
             return -1;
         }
         if (verysmall(youmonst.data) && !u.usteed) {
             if (Blind)
                 feel_location(sx, sy);
+/*JP
             pline("You're too small to push that %s.", xname(otmp));
+*/
+            You("\8f¬\82³\82·\82¬\82Ä%s\82ð\89\9f\82¹\82È\82¢\81D",xname(otmp));
             goto cannot_push;
         }
         if (isok(rx, ry) && !IS_ROCK(levl[rx][ry].typ)
@@ -135,12 +146,18 @@ moverock()
             if (Sokoban && u.dx && u.dy) {
                 if (Blind)
                     feel_location(sx, sy);
+/*JP
                 pline("%s won't roll diagonally on this %s.",
+*/
+                pline("%s\82Ì\8fã\82Å\82Í%s\82Í\8eÎ\82ß\82É\89\9f\82¹\82È\82¢\81D",
                       The(xname(otmp)), surface(sx, sy));
                 goto cannot_push;
             }
 
+/*JP
             if (revive_nasty(rx, ry, "You sense movement on the other side."))
+*/
+            if (revive_nasty(rx, ry, "\94½\91Î\91¤\82É\93®\82«\82ð\8a´\82\82½\81D"))
                 return -1;
 
             if (mtmp && !noncorporeal(mtmp->data)
@@ -150,14 +167,24 @@ moverock()
                 if (Blind)
                     feel_location(sx, sy);
                 if (canspotmon(mtmp))
+/*JP
                     pline("There's %s on the other side.", a_monnam(mtmp));
+*/
+                    pline("\94½\91Î\91¤\82É%s\82ª\82¢\82é\81D", a_monnam(mtmp));
                 else {
+/*JP
                     You_hear("a monster behind %s.", the(xname(otmp)));
+*/
+                    pline("%s\82Ì\94w\8cã\82É\89ö\95¨\82Ì\8bC\94z\82ª\82·\82é\81D", the(xname(otmp)));
                     map_invisible(rx, ry);
                 }
                 if (flags.verbose)
+#if 0 /*JP*/
                     pline("Perhaps that's why %s cannot move it.",
                           u.usteed ? y_monnam(u.usteed) : "you");
+#else
+                    pline("\82½\82Ô\82ñ\82±\82ê\82ª\81C\8aâ\82ð\93®\82©\82¹\82È\82¢\97\9d\97R\82¾\81D");
+#endif
                 goto cannot_push;
             }
 
@@ -172,9 +199,15 @@ moverock()
                         obj_extract_self(otmp);
                         place_object(otmp, rx, ry);
                         newsym(sx, sy);
+#if 0 /*JP*/
                         pline("KAABLAMM!!!  %s %s land mine.",
                               Tobjnam(otmp, "trigger"),
                               ttmp->madeby_u ? "your" : "a");
+#else
+                        pline("\82¿\82ã\82Ç\81[\82ñ\81I\81I%s\82Å%s\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ª\93ü\82Á\82½\81D",
+                              xname(otmp),
+                              ttmp->madeby_u ? "\82 \82È\82½\82Ì\8ed\8a|\82¯\82½" : "");
+#endif
                         blow_up_landmine(ttmp);
                         /* if the boulder remains, it should fill the pit */
                         fill_pit(u.ux, u.uy);
@@ -191,7 +224,10 @@ moverock()
                        if this is one among multiple boulders */
                     if (!Blind)
                         viz_array[ry][rx] |= IN_SIGHT;
+/*JP
                     if (!flooreffects(otmp, rx, ry, "fall")) {
+*/
+                    if (!flooreffects(otmp, rx, ry, "\97\8e\82¿\82é")) {
                         place_object(otmp, rx, ry);
                     }
                     if (mtmp && !Blind)
@@ -200,9 +236,13 @@ moverock()
                 case HOLE:
                 case TRAPDOOR:
                     if (Blind)
+/*JP
                         pline("Kerplunk!  You no longer feel %s.",
+*/
+                        pline("\83h\83T\83b\81I\82 \82È\82½\82Í\82à\82¤%s\82ð\8a´\82\82ç\82ê\82È\82¢\81D",
                               the(xname(otmp)));
                     else
+#if 0 /*JP*/
                         pline("%s%s and %s a %s in the %s!",
                               Tobjnam(otmp, (ttmp->ttyp == TRAPDOOR)
                                                 ? "trigger"
@@ -211,6 +251,12 @@ moverock()
                               otense(otmp, "plug"),
                               (ttmp->ttyp == TRAPDOOR) ? "trap door" : "hole",
                               surface(rx, ry));
+#else
+                        pline("%s\82Í\97\8e\82¿\82Ä%s\82Ì%s\82ð\96\84\82ß\82½\81I",
+                              xname(otmp),
+                              surface(rx, ry),
+                              (ttmp->ttyp == TRAPDOOR) ? "\97\8e\82µ\94à" : "\8c\8a");
+#endif
                     deltrap(ttmp);
                     delobj(otmp);
                     bury_objs(rx, ry);
@@ -231,10 +277,16 @@ moverock()
                             goto dopush;
                     }
                     if (u.usteed)
+/*JP
                         pline("%s pushes %s and suddenly it disappears!",
+*/
+                        pline("%s\82ª%s\82ð\89\9f\82·\82Æ\81C\93Ë\91R\82»\82ê\82Í\8fÁ\96Å\82µ\82½\81I",
                               upstart(y_monnam(u.usteed)), the(xname(otmp)));
                     else
+/*JP
                         You("push %s and suddenly it disappears!",
+*/
+                        pline("\82 \82È\82½\82ª%s\82ð\89\9f\82·\82Æ\81C\93Ë\91R\82»\82ê\82Í\8fÁ\96Å\82µ\82½\81I",
                             the(xname(otmp)));
                     if (ttmp->ttyp == TELEP_TRAP) {
                         (void) rloco(otmp);
@@ -278,14 +330,25 @@ moverock()
             dopush:
                 if (!u.usteed) {
                     if (moves > lastmovetime + 2 || moves < lastmovetime)
+#if 0 /*JP*/
                         pline("With %s effort you move %s.",
                               throws_rocks(youmonst.data) ? "little"
                                                           : "great",
                               the(xname(otmp)));
+#else
+                        pline("%s\97Í\82ð\82±\82ß\82Ä%s\82ð\89\9f\82µ\82½\81D",
+                              throws_rocks(youmonst.data) ? "\8f­\82µ" : "\82©\82È\82è",
+                              the(xname(otmp)));
+#endif
                     exercise(A_STR, TRUE);
                 } else
+#if 0 /*JP*/
                     pline("%s moves %s.", upstart(y_monnam(u.usteed)),
                           the(xname(otmp)));
+#else
+                    pline("%s\82Í%s\82ð\93®\82©\82µ\82½\81D", upstart(y_monnam(u.usteed)),
+                          xname(otmp));
+#endif
                 lastmovetime = moves;
             }
 
@@ -302,22 +365,43 @@ moverock()
         } else {
         nopushmsg:
             if (u.usteed)
+#if 0 /*JP*/
                 pline("%s tries to move %s, but cannot.",
                       upstart(y_monnam(u.usteed)), the(xname(otmp)));
+#else
+                pline("%s\82Í%s\82ð\93®\82©\82»\82¤\82Æ\82µ\82½\82ª\8fo\97\88\82È\82©\82Á\82½\81D",
+                      upstart(y_monnam(u.usteed)), the(xname(otmp)));
+#endif
             else
+/*JP
                 You("try to move %s, but in vain.", the(xname(otmp)));
+*/
+                You("%s\82ð\93®\82©\82»\82¤\82Æ\82µ\82½\82ª\81C\82¾\82ß\82¾\82Á\82½\81D", the(xname(otmp)));
             if (Blind)
                 feel_location(sx, sy);
         cannot_push:
             if (throws_rocks(youmonst.data)) {
                 if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) {
+#if 0 /*JP*/
                     You("aren't skilled enough to %s %s from %s.",
                         (flags.pickup && !Sokoban) ? "pick up" : "push aside",
                         the(xname(otmp)), y_monnam(u.usteed));
+#else
+                    You("%s\82É%s\82ð%s\82é\82Ù\82Ç\8bZ\97Ê\82ª\82È\82¢\81D",
+                        y_monnam(u.usteed),
+                        the(xname(otmp)), 
+                        (flags.pickup && !Sokoban) ? "\8fE\82í\82¹" : "\89\9f\82³\82¹");
+#endif
                 } else {
+#if 0 /*JP*/
                     pline("However, you can easily %s.",
                           (flags.pickup && !Sokoban) ? "pick it up"
                                                      : "push it aside");
+#else
+                    pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\8aÈ\92P\82É\82»\82ê\82ð%s\81D",
+                          (flags.pickup && !Sokoban)
+                          ? "\8fE\82¦\82½" : "\95Ê\82Ì\95û\82É\89\9f\82¹\82½");
+#endif
                     sokoban_guilt();
                     break;
                 }
@@ -330,7 +414,10 @@ moverock()
                                             && IS_ROCK(levl[sx][u.uy].typ))))
                     || verysmall(youmonst.data))) {
                 pline(
+/*JP
                    "However, you can squeeze yourself into a small opening.");
+*/
+                    "\82µ\82©\82µ\81C\82 \82È\82½\82Í\8f¬\82³\82¢\8c\84\8aÔ\82É\82±\82\93ü\82Á\82½\81D");
                 sokoban_guilt();
                 break;
             } else
@@ -359,12 +446,21 @@ xchar x, y;
                       sizeof(struct dig_info));
 
     if (!boulder && IS_ROCK(lev->typ) && !may_dig(x, y)) {
+#if 0 /*JP*/
         You("hurt your teeth on the %s.",
             (lev->typ == IRONBARS)
                 ? "bars"
                 : IS_TREE(lev->typ)
                     ? "tree"
                     : "hard stone");
+#else
+        You("%s\82Å\8e\95\82ð\92É\82ß\82½\81D",
+            (lev->typ == IRONBARS)
+            ? "\93S\82Ì\96_"
+            : IS_TREE(lev->typ)
+                ? "\96Ø"
+                : "\8cÅ\82¢\8aâ");
+#endif
         nomul(0);
         return 1;
     } else if (context.digging.pos.x != x || context.digging.pos.y != y
@@ -378,6 +474,7 @@ xchar x, y;
         /* solid rock takes more work & time to dig through */
         context.digging.effort =
             (IS_ROCK(lev->typ) && !IS_TREE(lev->typ) ? 30 : 60) + u.udaminc;
+#if 0 /*JP*/
         You("start chewing %s %s.",
             (boulder || IS_TREE(lev->typ) || lev->typ == IRONBARS)
                 ? "on a"
@@ -391,10 +488,26 @@ xchar x, y;
                         : lev->typ == IRONBARS
                             ? "bar"
                             : "door");
+#else
+        You("%s%s\82Í\82\82ß\82½\81D",
+            boulder
+            ? "\8aâ"
+            : IS_TREE(lev->typ)
+              ? "\96Ø"
+              : IS_ROCK(lev->typ)
+                ? "\90Î"
+                : lev->typ == IRONBARS
+                  ? "\93S\82Ì\96_"
+                  : "\94à",
+            (boulder || IS_TREE(lev->typ) || lev->typ == IRONBARS)
+              ? "\82ð\8a\9a\82Ý"
+              : "\82É\8c\8a\82ð\82 \82¯");
+#endif
         watch_dig((struct monst *) 0, x, y, FALSE);
         return 1;
     } else if ((context.digging.effort += (30 + u.udaminc)) <= 100) {
         if (flags.verbose)
+#if 0 /*JP*/
             You("%s chewing on the %s.",
                 context.digging.chew ? "continue" : "begin",
                 boulder
@@ -406,6 +519,19 @@ xchar x, y;
                             : (lev->typ == IRONBARS)
                                 ? "bars"
                                 : "door");
+#else
+            You("%s\82ð\8a\9a\82Ý%s\81D",
+                boulder
+                ? "\8aâ"
+                : IS_TREE(lev->typ)
+                  ? "\96Ø"
+                  : IS_ROCK(lev->typ)
+                    ? "\90Î"
+                    : lev->typ == IRONBARS
+                      ? "\93S\82Ì\96_"
+                      : "\94à",
+                context.digging.chew ? "\91±\82¯\82½" : "\82Í\82\82ß\82½");
+#endif
         context.digging.chew = TRUE;
         watch_dig((struct monst *) 0, x, y, FALSE);
         return 1;
@@ -417,7 +543,11 @@ xchar x, y;
 
     if (boulder) {
         delobj(boulder);         /* boulder goes bye-bye */
+#if 0 /*JP*/
         You("eat the boulder."); /* yum */
+#else
+        You("\8aâ\82ð\90H\82×\82½\81D"); /* yum */
+#endif
 
         /*
          *  The location could still block because of
@@ -438,9 +568,15 @@ xchar x, y;
     } else if (IS_WALL(lev->typ)) {
         if (*in_rooms(x, y, SHOPBASE)) {
             add_damage(x, y, 10L * ACURRSTR);
+/*JP
             dmgtxt = "damage";
+*/
+            dmgtxt = "\8f\9d\82Â\82¯\82é";
         }
+/*JP
         digtxt = "chew a hole in the wall.";
+*/
+        digtxt = "\95Ç\82É\8c\8a\82ð\8aJ\82¯\82½\81D";
         if (level.flags.is_maze_lev) {
             lev->typ = ROOM;
         } else if (level.flags.is_cavernous_lev && !in_town(x, y)) {
@@ -450,17 +586,29 @@ xchar x, y;
             lev->doormask = D_NODOOR;
         }
     } else if (IS_TREE(lev->typ)) {
+/*JP
         digtxt = "chew through the tree.";
+*/
+        digtxt = "\96Ø\82É\8c\8a\82ð\8aJ\82¯\82½\81D";
         lev->typ = ROOM;
     } else if (lev->typ == IRONBARS) {
+/*JP
         digtxt = "eat through the bars.";
+*/
+        digtxt = "\93S\82Ì\96_\82É\8c\8a\82ð\8aJ\82¯\82½\81D";
         dissolve_bars(x, y);
     } else if (lev->typ == SDOOR) {
         if (lev->doormask & D_TRAPPED) {
             lev->doormask = D_NODOOR;
+/*JP
             b_trapped("secret door", 0);
+*/
+            b_trapped("\94é\96§\82Ì\94à", 0);
         } else {
+/*JP
             digtxt = "chew through the secret door.";
+*/
+            digtxt = "\94é\96§\82Ì\94à\82ð\8a\9a\82Ý\8dÓ\82¢\82½\81D";
             lev->doormask = D_BROKEN;
         }
         lev->typ = DOOR;
@@ -468,18 +616,30 @@ xchar x, y;
     } else if (IS_DOOR(lev->typ)) {
         if (*in_rooms(x, y, SHOPBASE)) {
             add_damage(x, y, 400L);
+/*JP
             dmgtxt = "break";
+*/
+            dmgtxt = "\89ó\82·";
         }
         if (lev->doormask & D_TRAPPED) {
             lev->doormask = D_NODOOR;
+/*JP
             b_trapped("door", 0);
+*/
+            b_trapped("\94à", 0);
         } else {
+/*JP
             digtxt = "chew through the door.";
+*/
+            digtxt = "\94à\82ð\8dÓ\82¢\82½\81D";
             lev->doormask = D_BROKEN;
         }
 
     } else { /* STONE or SCORR */
+/*JP
         digtxt = "chew a passage through the rock.";
+*/
+        digtxt = "\8aâ\82ð\8a\9a\82Ý\8dÓ\82¢\82Ä\92Ê\82è\94²\82¯\82½\81D";
         lev->typ = CORR;
     }
 
@@ -506,7 +666,10 @@ register xchar ox, oy;
     newsym(ox, oy);
 }
 
+/*JP
 static NEARDATA const char fell_on_sink[] = "fell onto a sink";
+*/
+static NEARDATA const char fell_on_sink[] = "\97¬\82µ\91ä\82É\97\8e\82¿\82Ä";
 
 STATIC_OVL void
 dosinkfall()
@@ -518,8 +681,14 @@ dosinkfall()
             ufall = (!innate_lev && !(HFlying || EFlying)); /* BFlying */
 
     if (!ufall) {
+/*JP
         You(innate_lev ? "wobble unsteadily for a moment."
+*/
+        You(innate_lev ? "\82¿\82å\82Á\82Æ\82Ó\82ç\82Â\82¢\82½\81D"
+/*JP
                        : "gain control of your flight.");
+*/
+                       : "\94ò\8ds\92\86\82Ì\90§\8cä\82ð\8eæ\82è\82à\82Ç\82µ\82½\81D");
     } else {
         long save_ELev = ELevitation, save_HLev = HLevitation;
 
@@ -528,16 +697,30 @@ dosinkfall()
            be fatal; fortunately the fact that rings and boots
            are really still worn has no effect on bones data */
         ELevitation = HLevitation = 0L;
+/*JP
         You("crash to the floor!");
+*/
+        You("\8f°\82É\92@\82«\82Â\82¯\82ç\82ê\82½\81I");
         dmg = rn1(8, 25 - (int) ACURR(A_CON));
         losehp(Maybe_Half_Phys(dmg), fell_on_sink, NO_KILLER_PREFIX);
         exercise(A_DEX, FALSE);
+/*JP
         selftouch("Falling, you");
+*/
+        selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
         for (obj = level.objects[u.ux][u.uy]; obj; obj = obj->nexthere)
             if (obj->oclass == WEAPON_CLASS || is_weptool(obj)) {
+/*JP
                 You("fell on %s.", doname(obj));
+*/
+                You("%s\82Ì\8fã\82É\97\8e\82¿\82½\81D",doname(obj));
+#if 0 /*JP*/
                 losehp(Maybe_Half_Phys(rnd(3)), fell_on_sink,
                        NO_KILLER_PREFIX);
+#else
+                losehp(Maybe_Half_Phys(rnd(3)), fell_on_sink,
+                       KILLED_BY);
+#endif
                 exercise(A_CON, FALSE);
             }
         ELevitation = save_ELev;
@@ -686,7 +869,10 @@ int mode;
             }
             if (!(Passes_walls || passes_bars(youmonst.data))) {
                 if (iflags.mention_walls)
+/*JP
                     You("cannot pass through the bars.");
+*/
+                    You("\93S\82Ì\96_\82ð\92Ê\82è\94²\82¯\82ç\82ê\82È\82¢\81D");
                 return FALSE;
             }
         } else if (tunnels(youmonst.data) && !needspick(youmonst.data)) {
@@ -702,13 +888,22 @@ int mode;
         } else {
             if (mode == DO_MOVE) {
                 if (Is_stronghold(&u.uz) && is_db_wall(x, y))
+/*JP
                     pline_The("drawbridge is up!");
+*/
+                    pline("\92µ\82Ë\8b´\82Í\8fã\82Á\82Ä\82¢\82é\81I");
                 /* sokoban restriction stays even after puzzle is solved */
                 else if (Passes_walls && !may_passwall(x, y)
                          && In_sokoban(&u.uz))
+/*JP
                     pline_The("Sokoban walls resist your ability.");
+*/
+                    pline_The("\91q\8cÉ\94Ô\82Ì\95Ç\82Í\82 \82È\82½\82Ì\94\\97Í\82É\92ï\8dR\82µ\82½\81D");
                 else if (iflags.mention_walls)
+/*JP
                     pline("It's a wall.");
+*/
+                    pline("\82±\82ê\82Í\95Ç\82¾\81D");
             }
             return FALSE;
         }
@@ -720,7 +915,10 @@ int mode;
                 ; /* do nothing */
             else if (can_ooze(&youmonst)) {
                 if (mode == DO_MOVE)
+/*JP
                     You("ooze under the door.");
+*/
+                    You("\83h\83A\82Ì\89º\82©\82ç\82É\82\82Ý\8fo\82½\81D");
             } else if (tunnels(youmonst.data) && !needspick(youmonst.data)) {
                 /* Eat the door. */
                 if (mode == DO_MOVE && still_chewing(x, y))
@@ -729,7 +927,10 @@ int mode;
                 if (mode == DO_MOVE) {
                     if (amorphous(youmonst.data))
                         You(
+/*JP
    "try to ooze under the door, but can't squeeze your possessions through.");
+*/
+   "\83h\83A\82Ì\89º\82©\82ç\82É\82\82Ý\8fo\82æ\82¤\82Æ\82µ\82½\81C\82µ\82©\82µ\8e\9d\82¿\95¨\82Í\82»\82¤\82Í\82¢\82©\82È\82¢\81D");
                     if (flags.autoopen && !context.run && !Confusion
                         && !Stunned && !Fumbling) {
                         context.door_opened = context.move =
@@ -738,14 +939,23 @@ int mode;
                         if (Blind || Stunned || ACURR(A_DEX) < 10
                             || Fumbling) {
                             if (u.usteed) {
+/*JP
                                 You_cant("lead %s through that closed door.",
+*/
+                                You_cant("%s\82É\95Â\82Ü\82Á\82½\94à\82ð\92Ê\89ß\82³\82¹\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
                                          y_monnam(u.usteed));
                             } else {
+/*JP
                                 pline("Ouch!  You bump into a door.");
+*/
+                                pline("\82¢\82Ä\82Á\81I\93ª\82ð\94à\82É\82Ô\82Â\82¯\82½\81D");
                                 exercise(A_DEX, FALSE);
                             }
                         } else
+/*JP
                             pline("That door is closed.");
+*/
+                            pline("\94à\82Í\95Â\82Ü\82Á\82Ä\82¢\82é\81D");
                     }
                 } else if (mode == TEST_TRAV)
                     goto testdiag;
@@ -768,15 +978,24 @@ int mode;
         switch (cant_squeeze_thru(&youmonst)) {
         case 3:
             if (mode == DO_MOVE)
+/*JP
                 You("cannot pass that way.");
+*/
+                You("\92Ê\82è\82Ê\82¯\82Å\82«\82È\82¢\81D");
             return FALSE;
         case 2:
             if (mode == DO_MOVE)
+/*JP
                 You("are carrying too much to get through.");
+*/
+                pline("\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\92Ê\82è\82Ê\82¯\82ç\82ê\82È\82¢\81D");
             return FALSE;
         case 1:
             if (mode == DO_MOVE)
+/*JP
                 Your("body is too large to fit through.");
+*/
+                Your("\91Ì\82ª\91å\82«\82·\82¬\82Ä\92Ê\82è\82Ê\82¯\82ç\82ê\82È\82¢\81D");
             return FALSE;
         default:
             break; /* can squeeze through */
@@ -1068,11 +1287,20 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
     switch (u.utraptype) {
     case TT_BEARTRAP:
         if (flags.verbose) {
+/*JP
             predicament = "caught in a bear trap";
+*/
+            predicament = "\8cF\82Ìã©\82É\82Â\82©\82Ü\82Á\82½";
             if (u.usteed)
+/*JP
                 Norep("%s is %s.", upstart(steedname), predicament);
+*/
+                Norep("%s\82Í%s\81D", upstart(steedname), predicament);
             else
+/*JP
                 Norep("You are %s.", predicament);
+*/
+                Norep("\82 \82È\82½\82Í%s\81D", predicament);
         }
         /* [why does diagonal movement give quickest escape?] */
         if ((u.dx && u.dy) || !rn2(5))
@@ -1088,40 +1316,73 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
     case TT_WEB:
         if (uwep && uwep->oartifact == ART_STING) {
             u.utrap = 0;
+/*JP
             pline("Sting cuts through the web!");
+*/
+            pline("\83X\83e\83B\83\93\83O\82Í\82­\82à\82Ì\91\83\82ð\90Ø\82è\82³\82¢\82½\81I");
             break; /* escape trap but don't move */
         }
         if (--u.utrap) {
             if (flags.verbose) {
+/*JP
                 predicament = "stuck to the web";
+*/
+                predicament = "\82­\82à\82Ì\91\83\82É\82Ð\82Á\82©\82©\82Á\82½";
                 if (u.usteed)
+/*JP
                     Norep("%s is %s.", upstart(steedname), predicament);
+*/
+                    Norep("%s\82Í%s\81D", upstart(steedname), predicament);
                 else
+/*JP
                     Norep("You are %s.", predicament);
+*/
+                    Norep("\82 \82È\82½\82Í%s\81D", predicament);
             }
         } else {
             if (u.usteed)
+/*JP
                 pline("%s breaks out of the web.", upstart(steedname));
+*/
+                pline("%s\82Í\82­\82à\82Ì\91\83\82ð\89ó\82µ\82½\81D", upstart(steedname));
             else
+/*JP
                 You("disentangle yourself.");
+*/
+                You("\8e©\95ª\82Å\82Ù\82Ç\82¢\82½\81D");
         }
         break;
     case TT_LAVA:
         if (flags.verbose) {
+/*JP
             predicament = "stuck in the lava";
+*/
+            predicament = "\97n\8aâ\82É\82Í\82Ü\82Á\82½";
             if (u.usteed)
+/*JP
                 Norep("%s is %s.", upstart(steedname), predicament);
+*/
+                Norep("%s\82Í%s\81D", upstart(steedname), predicament);
             else
+/*JP
                 Norep("You are %s.", predicament);
+*/
+                Norep("\82 \82È\82½\82Í%s\81D", predicament);
         }
         if (!is_lava(x, y)) {
             u.utrap--;
             if ((u.utrap & 0xff) == 0) {
                 u.utrap = 0;
                 if (u.usteed)
+/*JP
                     You("lead %s to the edge of the lava.", steedname);
+*/
+                    You("%s\82ð\97n\8aâ\82Ì\92[\82Ü\82Å\93±\82¢\82½\81D", steedname);
                 else
+/*JP
                     You("pull yourself to the edge of the lava.");
+*/
+                    You("\97n\8aâ\82Ì\92[\82Ü\82Å\82©\82ë\82¤\82\82Ä\81C\82½\82Ç\82è\82Â\82¢\82½\81D");
             }
         }
         u.umoved = TRUE;
@@ -1188,10 +1449,14 @@ boolean
 u_rooted()
 {
     if (!youmonst.data->mmove) {
+#if 0 /*JP*/
         You("are rooted %s.",
             Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)
                 ? "in place"
                 : "to the ground");
+#else
+        You("\82»\82Ì\8fê\82É\97§\82¿\82·\82­\82ñ\82¾\81D");
+#endif
         nomul(0);
         return TRUE;
     }
@@ -1226,10 +1491,16 @@ domove()
                         : (u.uhp < 10 && u.uhp != u.uhpmax))))
         && !Is_airlevel(&u.uz)) {
         if (wtcap < OVERLOADED) {
+/*JP
             You("don't have enough stamina to move.");
+*/
+            You("\82Ö\82Æ\82Ö\82Æ\82Å\93®\82¯\82È\82¢\81D");
             exercise(A_CON, FALSE);
         } else
+/*JP
             You("collapse under your load.");
+*/
+            pline("\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\93|\82ê\82½\81D");
         nomul(0);
         return;
     }
@@ -1242,14 +1513,23 @@ domove()
         if (Is_airlevel(&u.uz) && rn2(4) && !Levitation && !Flying) {
             switch (rn2(3)) {
             case 0:
+/*JP
                 You("tumble in place.");
+*/
+                You("\82»\82Ì\8fê\82Å\93|\82ê\82½\81D");
                 exercise(A_DEX, FALSE);
                 break;
             case 1:
+/*JP
                 You_cant("control your movements very well.");
+*/
+                You("\82¤\82Ü\82­\95à\82¯\82È\82¢\81D");
                 break;
             case 2:
+/*JP
                 pline("It's hard to walk in thin air.");
+*/
+                pline("\8bó\92\86\82ð\95à\82­\82Ì\82Í\93ï\82µ\82¢\81D");
                 exercise(A_DEX, TRUE);
                 break;
             }
@@ -1323,7 +1603,10 @@ domove()
                 /* When polymorphed into a sticking monster,
                  * u.ustuck means it's stuck to you, not you to it.
                  */
+/*JP
                 You("release %s.", mon_nam(u.ustuck));
+*/
+                You("%s\82ð\95ú\82µ\82½\81D", mon_nam(u.ustuck));
                 u.ustuck = 0;
             } else {
                 /* If holder is asleep or paralyzed:
@@ -1340,7 +1623,10 @@ domove()
                 case 1:
                 case 2:
                 pull_free:
+/*JP
                     You("pull free from %s.", mon_nam(u.ustuck));
+*/
+                    You("%s\82ð\82Ð\82«\82Í\82È\82µ\82½\81D", mon_nam(u.ustuck));
                     u.ustuck = 0;
                     break;
                 case 3:
@@ -1353,7 +1639,10 @@ domove()
                 default:
                     if (u.ustuck->mtame && !Conflict && !u.ustuck->mconf)
                         goto pull_free;
+/*JP
                     You("cannot escape from %s!", mon_nam(u.ustuck));
+*/
+                    You("%s\82©\82ç\93¦\82°\82ç\82ê\82È\82¢\81I", mon_nam(u.ustuck));
                     nomul(0);
                     return;
                 }
@@ -1406,9 +1695,15 @@ domove()
                 && !sensemon(mtmp))
                 stumble_onto_mimic(mtmp);
             else if (mtmp->mpeaceful && !Hallucination)
+/*JP
                 pline("Pardon me, %s.", m_monnam(mtmp));
+*/
+                pline("\82¿\82å\82Á\82Æ\82²\82ß\82ñ\82È\82³\82¢\82æ\81C%s\82³\82ñ\81D", m_monnam(mtmp));
             else
+/*JP
                 You("move right into %s.", mon_nam(mtmp));
+*/
+                You("%s\82Ì\82»\82Î\82É\88Ú\93®\82µ\82½\81D", mon_nam(mtmp));
             return;
         }
         if (context.forcefight || !mtmp->mundetected || sensemon(mtmp)
@@ -1588,7 +1883,10 @@ domove()
                    && (bigmonst(mtmp->data) || (curr_mon_load(mtmp) > 600))) {
             /* can't swap places when pet won't fit thru the opening */
             u.ux = u.ux0, u.uy = u.uy0; /* didn't move after all */
+/*JP
             You("stop.  %s won't fit through.", upstart(y_monnam(mtmp)));
+*/
+            You("\8e~\82Ü\82Á\82½\81D%s\82Í\92Ê\82è\94²\82¯\82ç\82ê\82È\82¢\81D", upstart(y_monnam(mtmp)));
         } else {
             char pnambuf[BUFSZ];
 
@@ -1600,8 +1898,14 @@ domove()
             newsym(x, y);
             newsym(u.ux0, u.uy0);
 
+#if 0 /*JP*/
             You("%s %s.", mtmp->mtame ? "swap places with" : "frighten",
                 pnambuf);
+#else
+            You("%s%s\82½\81D",
+                pnambuf,
+                mtmp->mtame ? "\82Æ\8fê\8f\8a\82ð\93ü\82ê\8a·\82í\82Á" : "\82ð\95|\82ª\82ç\82¹");
+#endif
 
             /* check for displacing it into pools and traps */
             switch (minliquid(mtmp) ? 2 : mintrap(mtmp)) {
@@ -1637,7 +1941,10 @@ domove()
                  * patron deity care at all, let alone enough to get mad?]
                  */
                 if (rn2(4)) {
+/*JP
                     You_feel("guilty about losing your pet like this.");
+*/
+                    pline("\82±\82Ì\82æ\82¤\82È\8c`\82Å\83y\83b\83g\82ð\8e¸\82¤\82Æ\82Í\8dß\90[\82¢\82±\82Æ\82¾\82Æ\8ev\82Á\82½\81D");
                     u.ugangr++;
                     adjalign(-15);
                 }
@@ -1725,7 +2032,10 @@ overexertion()
         if (*hp > 1) {
             *hp -= 1;
         } else {
+/*JP
             You("pass out from exertion!");
+*/
+            You("\8bC\90â\82µ\82½\81D");
             exercise(A_CON, FALSE);
             fall_asleep(-10, FALSE);
         }
@@ -1743,17 +2053,34 @@ invocation_message()
 
         nomul(0); /* stop running or travelling */
         if (u.usteed)
+/*JP
             Sprintf(buf, "beneath %s", y_monnam(u.usteed));
+*/
+            Sprintf(buf, "%s\82Ì\89º\82É", y_monnam(u.usteed));
         else if (Levitation || Flying)
+/*JP
             Strcpy(buf, "beneath you");
+*/
+            Strcpy(buf, "\89º\95û\82É");
         else
+/*JP
             Sprintf(buf, "under your %s", makeplural(body_part(FOOT)));
+*/
+            Strcpy(buf, "\91«\8c³\82É");
 
+/*JP
         You_feel("a strange vibration %s.", buf);
+*/
+        You("%s\8aï\96­\82È\90U\93®\82ð\8a´\82\82½\81D", buf);
         u.uevent.uvibrated = 1;
         if (otmp && otmp->spe == 7 && otmp->lamplit)
+#if 0 /*JP*/
             pline("%s %s!", The(xname(otmp)),
                   Blind ? "throbs palpably" : "glows with a strange light");
+#else
+            pline("%s\82Í%s\82µ\82½\81I", The(xname(otmp)),
+                  Blind ? "\82©\82·\82©\82É\90U\93®" : "\8aï\96­\82È\8cõ\82ð\94­");
+#endif
     }
 }
 
@@ -1807,20 +2134,41 @@ boolean newspot;             /* true if called by spoteffects */
 
         if (!is_pool(u.ux, u.uy)) {
             if (Is_waterlevel(&u.uz))
+/*JP
                 You("pop into an air bubble.");
+*/
+                You("\82Ð\82å\82¢\82Æ\8bó\8bC\82Ì\96A\82É\93ü\82Á\82½\81D");
             else if (is_lava(u.ux, u.uy))
+#if 0 /*JP*/
                 You("leave the water..."); /* oops! */
+#else
+                You("\90\85\82©\82ç\94²\82¯\82¾\82µ\82½\81D\81D\81D");  /* oops! */
+#endif
             else
+#if 0 /*JP*/
                 You("are on solid %s again.",
                     is_ice(u.ux, u.uy) ? "ice" : "land");
+#else
+                You("\8cÅ\82¢%s\82Ì\8fã\82É\82Ü\82½\96ß\82Á\82½\81D",
+                    is_ice(u.ux, u.uy) ? "\95X" : "\92n\96Ê");
+#endif
         } else if (Is_waterlevel(&u.uz)) {
             still_inwater = TRUE;
         } else if (Levitation) {
+/*JP
             You("pop out of the water like a cork!");
+*/
+            You("\83R\83\8b\83N\82Ì\82æ\82¤\82É\94ò\82Ñ\82¾\82µ\82½\81I");
         } else if (Flying) {
+/*JP
             You("fly out of the water.");
+*/
+            You("\90\85\82©\82ç\94ò\82Ñ\82¾\82µ\82½\81D");
         } else if (Wwalking) {
+/*JP
             You("slowly rise above the surface.");
+*/
+            You("\82ä\82Á\82­\82è\90\85\96Ê\82Ü\82Å\8fã\82ª\82Á\82½\81D");
         } else {
             still_inwater = TRUE;
         }
@@ -1973,20 +2321,38 @@ boolean pick;
         mtmp->mundetected = mtmp->msleeping = 0;
         switch (mtmp->data->mlet) {
         case S_PIERCER:
+#if 0 /*JP*/
             pline("%s suddenly drops from the %s!", Amonnam(mtmp),
                   ceiling(u.ux, u.uy));
+#else
+            pline("%s\82ª\93Ë\91R%s\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I",
+                  Amonnam(mtmp), ceiling(u.ux,u.uy));
+#endif
             if (mtmp->mtame) /* jumps to greet you, not attack */
                 ;
             else if (uarmh && is_metallic(uarmh))
+/*JP
                 pline("Its blow glances off your %s.",
+*/
+                pline("\8dU\8c\82\82Í\82 \82È\82½\82Ì%s\82ð\82©\82·\82ß\82½\82¾\82¯\82¾\82Á\82½\81D",
                       helm_simple_name(uarmh));
             else if (u.uac + 3 <= rnd(20))
+#if 0 /*JP*/
                 You("are almost hit by %s!",
                     x_monnam(mtmp, ARTICLE_A, "falling", 0, TRUE));
+#else
+                You("\97\8e\82¿\82Ä\82«\82½%s\82É\82à\82¤\8f­\82µ\82Å\93\96\82½\82é\82Æ\82±\82ë\82¾\82Á\82½\81D",
+                    x_monnam(mtmp, ARTICLE_A, "", 0, TRUE));
+#endif
             else {
                 int dmg;
+#if 0 /*JP*/
                 You("are hit by %s!",
                     x_monnam(mtmp, ARTICLE_A, "falling", 0, TRUE));
+#else
+                You("\97\8e\82¿\82Ä\82«\82½%s\82É\93\96\82½\82Á\82½\81I",
+                    x_monnam(mtmp, ARTICLE_A, "", 0, TRUE));
+#endif
                 dmg = d(4, 6);
                 if (Half_physical_damage)
                     dmg = (dmg + 1) / 2;
@@ -1995,14 +2361,25 @@ boolean pick;
             break;
         default: /* monster surprises you. */
             if (mtmp->mtame)
+#if 0 /*JP*/
                 pline("%s jumps near you from the %s.", Amonnam(mtmp),
                       ceiling(u.ux, u.uy));
+#else
+                pline("%s\82ª%s\82©\82ç\82 \82È\82½\82Ì\8bß\82­\82É\94ò\82ñ\82Å\82«\82½\81D", Amonnam(mtmp),
+                      ceiling(u.ux,u.uy));
+#endif
             else if (mtmp->mpeaceful) {
+/*JP
                 You("surprise %s!",
+*/
+                You("%s\82ð\8bÁ\82©\82µ\82½\81I",
                     Blind && !sensemon(mtmp) ? something : a_monnam(mtmp));
                 mtmp->mpeaceful = 0;
             } else
+/*JP
                 pline("%s attacks you by surprise!", Amonnam(mtmp));
+*/
+                pline("%s\82Í\8bÁ\82¢\82Ä\82 \82È\82½\82ð\8dU\8c\82\82µ\82½\81I", Amonnam(mtmp));
             break;
         }
         mnexto(mtmp); /* have to move the monster */
@@ -2196,51 +2573,96 @@ register boolean newlev;
          * but everything else gives a message only the first time */
         switch (rt) {
         case ZOO:
+/*JP
             pline("Welcome to David's treasure zoo!");
+*/
+            pline("\83f\83r\83b\83g\95ó\94 \93®\95¨\89\80\82É\82æ\82¤\82±\82»\81I");
             break;
         case SWAMP:
+#if 0 /*JP*/
             pline("It %s rather %s down here.", Blind ? "feels" : "looks",
                   Blind ? "humid" : "muddy");
+#else
+                    pline("\82©\82È\82è%s\81D",
+                          Blind ? "\8e¼\8bC\82ª\82 \82é\8fê\8f\8a\82Ì\82æ\82¤\82¾"
+                                : "\82Ç\82ë\82Ç\82ë\82µ\82Ä\82¢\82é\8fê\8f\8a\82¾");
+#endif
             break;
         case COURT:
+/*JP
             You("enter an opulent throne room!");
+*/
+            You("\89Ø\82â\82©\82È\8bÊ\8dÀ\82Ì\8aÔ\82É\93ü\82Á\82½\81I");
             break;
         case LEPREHALL:
+/*JP
             You("enter a leprechaun hall!");
+*/
+            You("\83\8c\83v\83\89\83R\81[\83\93\83z\81[\83\8b\82É\93ü\82Á\82½\81I");
             break;
         case MORGUE:
             if (midnight()) {
+#if 0 /*JP*/
                 const char *run = locomotion(youmonst.data, "Run");
                 pline("%s away!  %s away!", run, run);
+#else
+                pline("\93¦\82°\82ë\81I\93¦\82°\82ë\81I");
+#endif
             } else
+/*JP
                 You("have an uncanny feeling...");
+*/
+                You("\95s\8bC\96¡\82È\8a´\82\82ª\82µ\82½\81D\81D\81D");
             break;
         case BEEHIVE:
+/*JP
             You("enter a giant beehive!");
+*/
+            You("\8b\90\91å\82È\96I\82Ì\91\83\82É\93ü\82Á\82½\81I");
             break;
         case COCKNEST:
+/*JP
             You("enter a disgusting nest!");
+*/
+            You("\82Þ\82Á\82Æ\82·\82é\8fL\82¢\82Ì\82·\82é\92¹\82Ì\91\83\82É\93ü\82Á\82½\81I");
             break;
         case ANTHOLE:
+/*JP
             You("enter an anthole!");
+*/
+            You("\83A\83\8a\82Ì\91\83\82É\93ü\82Á\82½\81I");
             break;
         case BARRACKS:
             if (monstinroom(&mons[PM_SOLDIER], roomno)
                 || monstinroom(&mons[PM_SERGEANT], roomno)
                 || monstinroom(&mons[PM_LIEUTENANT], roomno)
                 || monstinroom(&mons[PM_CAPTAIN], roomno))
+/*JP
                 You("enter a military barracks!");
+*/
+                You("\8cR\91à\82Ì\95ºäq\82É\93ü\82Á\82½\81I");
             else
+/*JP
                 You("enter an abandoned barracks.");
+*/
+                You("\95ú\92u\82³\82ê\82½\82Ü\82Ü\82Ì\95ºäq\82É\93ü\82Á\82½\81D");
             break;
         case DELPHI: {
             struct monst *oracle = monstinroom(&mons[PM_ORACLE], roomno);
             if (oracle) {
                 if (!oracle->mpeaceful)
+/*JP
                     verbalize("You're in Delphi, %s.", plname);
+*/
+                    verbalize("\82¨\82Ü\82¦\82Í\83f\83\8b\83t\83@\83C\82Ì\90_\91õ\8f\8a\82É\82¢\82é\81D");
                 else
+#if 0 /*JP*/
                     verbalize("%s, %s, welcome to Delphi!",
                               Hello((struct monst *) 0), plname);
+#else
+                    verbalize("\82¨\82¨%s\81C\83f\83\8b\83t\83@\83C\82Ì\90_\91õ\8f\8a\82É\82æ\82­\82¼\82Ü\82¢\82ç\82ê\82½\81I",
+                              plname);
+#endif
             } else
                 msg_given = FALSE;
             break;
@@ -2309,11 +2731,22 @@ dopickup()
     if (u.uswallow) {
         if (!u.ustuck->minvent) {
             if (is_animal(u.ustuck->data)) {
+/*JP
                 You("pick up %s tongue.", s_suffix(mon_nam(u.ustuck)));
+*/
+                You("%s\82Ì\90ã\82ð\8fE\82Á\82½\81D", mon_nam(u.ustuck));
+/*JP
                 pline("But it's kind of slimy, so you drop it.");
+*/
+                pline("\82µ\82©\82µ\81C\82»\82ê\82Í\82Ê\82é\82Ê\82é\82µ\82Ä\95s\89õ\82¾\82Á\82½\82Ì\82Å\8eÌ\82Ä\82Ä\82µ\82Ü\82Á\82½\81D");
             } else
+#if 0 /*JP*/
                 You("don't %s anything in here to pick up.",
                     Blind ? "feel" : "see");
+#else
+                pline("\82±\82±\82É\82Í\8fE\82¦\82é\82à\82Ì\82ª\82È\82¢%s\81D",
+                    Blind ? "\82æ\82¤\82¾" : "");
+#endif
             return 1;
         } else {
             int tmpcount = -count;
@@ -2323,20 +2756,32 @@ dopickup()
     if (is_pool(u.ux, u.uy)) {
         if (Wwalking || is_floater(youmonst.data) || is_clinger(youmonst.data)
             || (Flying && !Breathless)) {
+/*JP
             You("cannot dive into the water to pick things up.");
+*/
+            You("\95¨\82ð\8fE\82¢\82 \82°\82é\82½\82ß\82É\90\85\82É\94ò\82Ñ\82±\82ß\82È\82¢\81D");
             return 0;
         } else if (!Underwater) {
+/*JP
             You_cant("even see the bottom, let alone pick up %s.", something);
+*/
+            pline("\92ê\82³\82¦\8c©\82¦\82È\82¢\81C\8fE\82¤\82Ì\82Í\82â\82ß\82æ\82¤\81D");
             return 0;
         }
     }
     if (is_lava(u.ux, u.uy)) {
         if (Wwalking || is_floater(youmonst.data) || is_clinger(youmonst.data)
             || (Flying && !Breathless)) {
+/*JP
             You_cant("reach the bottom to pick things up.");
+*/
+            You_cant("\95¨\82ð\8fE\82¢\8fã\82°\82é\82½\82ß\82É\92ê\82Ü\82Å\82¢\82¯\82È\82¢\81D");
             return 0;
         } else if (!likes_lava(youmonst.data)) {
+/*JP
             You("would burn to a crisp trying to pick things up.");
+*/
+            You("\8fE\82¢\8fã\82°\82æ\82¤\82Æ\82µ\82½\82ç\8aÛ\8fÅ\82°\82É\82È\82Á\82Ä\82µ\82Ü\82¤\82¾\82ë\82¤\81D");
             return 0;
         }
     }
@@ -2353,18 +2798,27 @@ dopickup()
         else if (IS_DOOR(lev->typ) && (lev->doormask & D_ISOPEN))
             pline("It won't come off the hinges.");
         else
+/*JP
             There("is nothing here to pick up.");
+*/
+            pline("\82±\82±\82É\82Í\8fE\82¦\82é\82à\82Ì\82Í\82È\82¢\81D");
         return 0;
     }
     if (!can_reach_floor(TRUE)) {
         if (traphere && uteetering_at_seen_pit(traphere))
+/*JP
             You("cannot reach the bottom of the pit.");
+*/
+            You("\97\8e\82µ\8c\8a\82Ì\92ê\82É%s\82ª\93Í\82©\82È\82©\82Á\82½\81D", body_part(HAND));
         else if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
             rider_cant_reach();
         else if (Blind && !can_reach_floor(TRUE))
             You("cannot reach anything here.");
         else
+/*JP
             You("cannot reach the %s.", surface(u.ux, u.uy));
+*/
+            You("%s\82É\82½\82Ç\82è\82Â\82­\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", surface(u.ux, u.uy));
         return 0;
     }
 
@@ -2629,22 +3083,42 @@ maybe_wail()
         const char *who;
         int i, powercnt;
 
+#if 0 /*JP*/
         who = (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE)) ? urole.name.m
                                                            : "Elf";
+#else
+        who = (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE)) ? urole.name.m
+                                                           : "\83G\83\8b\83t";
+#endif
         if (u.uhp == 1) {
+/*JP
             pline("%s is about to die.", who);
+*/
+            pline("%s\82Í\8e\80\82É\82©\82¯\82Ä\82¢\82é\81D", who);
         } else {
             for (i = 0, powercnt = 0; i < SIZE(powers); ++i)
                 if (u.uprops[powers[i]].intrinsic & INTRINSIC)
                     ++powercnt;
 
+/*JP
             pline(powercnt >= 4 ? "%s, all your powers will be lost..."
+*/
+            pline(powercnt >= 4 ? "%s\81C\82 \82È\82½\82Ì\91S\82Ä\82Ì\97Í\82Í\8e¸\82í\82ê\82Â\82Â\82 \82é\81D\81D\81D"
+/*JP
                                 : "%s, your life force is running out.",
+*/
+                                : "%s\81C\82 \82È\82½\82Ì\90\96½\97Í\82Í\90s\82«\82æ\82¤\82Æ\82µ\82Ä\82¢\82é\81D\81D\81D",
                   who);
         }
     } else {
+/*JP
         You_hear(u.uhp == 1 ? "the wailing of the Banshee..."
+*/
+        You_hear(u.uhp == 1 ? "\83o\83\93\83V\81[\82Ì\82·\82·\82è\8b\83\82«\82ª\95·\82±\82¦\82é\81D\81D\81D"
+/*JP
                             : "the howling of the CwnAnnwn...");
+*/
+                            : "\83N\81[\83\93\81E\83A\83\93\83k\81[\83\93\82Ì\89\93\96i\82ª\95·\82±\82¦\82é\81D\81D\81D");
     }
 }
 
@@ -2674,7 +3148,10 @@ boolean k_format;
         killer.format = k_format;
         if (killer.name != knam) /* the thing that killed you */
             Strcpy(killer.name, knam ? knam : "");
+/*JP
         You("die...");
+*/
+        pline("\82 \82È\82½\82Í\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
         done(DIED);
     } else if (n > 0 && u.uhp * 10 < u.uhpmax) {
         maybe_wail();
@@ -2778,7 +3255,10 @@ const char *str;
         if (str)
             pline1(str);
         else
+/*JP
             You_cant("do that while carrying so much stuff.");
+*/
+            You("\91ò\8eR\82à\82Ì\82ð\8e\9d\82¿\82·\82¬\82Ä\82¢\82é\82Ì\82Å\81C\82»\82ñ\82È\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return 1;
     }
     return 0;
index a590968..83e48c3 100644 (file)
@@ -107,6 +107,9 @@ char *s;
     register char *p;
 
     for (p = s; *p; p++)
+#if 1 /*JP*//*\8a¿\8e\9a\82Í\8f¬\95\8e\9a\89»\82µ\82È\82¢*/
+        if (is_kanji(*(unsigned char *)p)) p++; else
+#endif
         if ('A' <= *p && *p <= 'Z')
             *p |= 040;
     return s;
@@ -120,6 +123,9 @@ char *s;
     register char *p;
 
     for (p = s; *p; p++)
+#if 1 /*JP*//*\8a¿\8e\9a\82Í\91å\95\8e\9a\89»\82µ\82È\82¢*/
+        if (is_kanji(*(unsigned char *)p)) p++; else
+#endif
         if ('a' <= *p && *p <= 'z')
             *p &= ~040;
     return s;
@@ -265,6 +271,7 @@ const char *s;
     Static char buf[BUFSZ];
 
     Strcpy(buf, s);
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\8f\8a\97L\8ai\82Ìs\82ð\95t\82¯\82È\82¢*/
     if (!strcmpi(buf, "it")) /* it -> its */
         Strcat(buf, "s");
     else if (!strcmpi(buf, "you")) /* you -> your */
@@ -273,6 +280,7 @@ const char *s;
         Strcat(buf, "'");
     else /* X -> X's */
         Strcat(buf, "'s");
+#endif
     return buf;
 }
 
index 430894a..dbe4392 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #define NOINVSYM '#'
@@ -803,9 +808,13 @@ long amount;
 {
     const char *res;
 
+#if 0 /*JP*/
     res = Hallucination ? currencies[rn2(SIZE(currencies))] : "zorkmid";
     if (amount != 1L)
         res = makeplural(res);
+#else
+    res = Hallucination ? currencies[rn2(SIZE(currencies))] : "\83S\81[\83\8b\83h";
+#endif
     return res;
 }
 
@@ -947,6 +956,13 @@ const char *action;
 !!!! test if gold can be used in unusual ways (eaten etc.)
 !!!! may be able to remove "usegold"
  */
+/*JP
+** word \82É\82Í\89p\8cê\82Å\93®\8e\8c\82ª\93ü\82é\81D
+**
+** \93ú\96{\8cê\82Å\82Í\81C\81u\82Ç\82ê\82ð\8f\91\82«\82Ü\82·\82©\81v\82æ\82è\81u\82Ç\82ê\82É\8f\91\82«\82Ü\82·\82©\81v\82Ì\95û\82ª\8e©\91R\82È\82Ì\82Å\81C
+** \8dÅ\8f\89\82Ì\88ê\95\8e\9a\82É\81u\82É\81v\82â\81u\82Ì\81v\82ð\8ew\92è\82µ\82½\8fê\8d\87\82Í\8f\95\8e\8c\82ð\95Ï\8dX\82·\82é\81D
+**
+*/
 struct obj *
 getobj(let, word)
 register const char *let, *word;
@@ -968,6 +984,17 @@ register const char *let, *word;
     boolean prezero;
     long dummymask;
 
+#if 1 /*JP*/
+    const char *jword;
+    const char *joshi;
+    const char *what;
+
+    struct trans_verb *tv = trans_verb(word);
+
+    jword = tv->jp;
+    what = tv->what;
+    joshi = tv->particle;
+#endif
     if (*let == ALLOW_COUNT)
         let++, allowcnt = 1;
     if (*let == COIN_CLASS)
@@ -1151,7 +1178,10 @@ register const char *let, *word;
     *ap = '\0';
 
     if (!foo && !allowall && !allownone) {
+/*JP
         You("don't have anything %sto %s.", foox ? "else " : "", word);
+*/
+        You("%s%s\82à\82Ì\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", foox ? "\91¼\82É" : "", jconj(jword, "\82ê\82é"));
         return (struct obj *) 0;
     }
     for (;;) {
@@ -1160,16 +1190,25 @@ register const char *let, *word;
             allowcnt = 1; /* abort previous count */
         prezero = FALSE;
         if (!buf[0]) {
+/*JP
             Sprintf(qbuf, "What do you want to %s? [*]", word);
+*/
+            Sprintf(qbuf, "%s%s%s\82©\81H[*]", what, joshi, jpolite(jword));
         } else {
+/*JP
             Sprintf(qbuf, "What do you want to %s? [%s or ?*]", word, buf);
+*/
+            Sprintf(qbuf, "%s%s%s\82©\81H[%s or ?*]", what, joshi, jpolite(jword), buf);
         }
         if (in_doagain)
             ilet = readchar();
         else
             ilet = yn_function(qbuf, (char *) 0, '\0');
         if (digit(ilet) && !allowcnt) {
+/*JP
             pline("No count allowed with this command.");
+*/
+            pline("\82±\82Ì\83R\83}\83\93\83h\82É\90\94\8e\9a\82Í\82Â\82©\82¦\82È\82¢\81D");
             continue;
         }
         if (ilet == '0')
@@ -1251,7 +1290,10 @@ register const char *let, *word;
                than one invent slot of gold and picking the non-'$' one */
             || (otmp && otmp->oclass == COIN_CLASS)) {
             if (!usegold) {
+/*JP
                 You("cannot %s gold.", word);
+*/
+                You("\8bà\89Ý%s%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", joshi, jword);
                 return (struct obj *) 0;
             }
             /* Historic note: early Nethack had a bug which was
@@ -1263,7 +1305,10 @@ register const char *let, *word;
             if (allowcnt == 2 && cnt <= 0) {
                 if (cnt < 0 || !prezero)
                     pline_The(
+/*JP
                   "LRS would be very interested to know you have that much.");
+*/
+                  "\82»\82Ì\8bZ\82Í\82Æ\82 \82é\83Q\81[\83\80\82Ì\83J\83W\83m\82Å\8eg\82¦\82½\82¯\82Ç\81C\82à\82Í\82â\8eg\82¦\82È\82¢\82æ\81D");
                 return (struct obj *) 0;
             }
         }
@@ -1277,7 +1322,10 @@ register const char *let, *word;
             if (cnt == 0 && prezero)
                 return (struct obj *) 0;
             if (cnt > 1) {
+/*JP
                 You("can only throw one item at a time.");
+*/
+                You("\93¯\8e\9e\82É\82½\82­\82³\82ñ\82Ì\82à\82Ì\82ð\93\8a\82°\82ç\82ê\82È\82¢\81D");
                 continue;
             }
         }
@@ -1287,12 +1335,18 @@ register const char *let, *word;
            that's been moved above so that otmp can be checked earlier] */
         /* verify the chosen object */
         if (!otmp) {
+/*JP
             You("don't have that object.");
+*/
+            You("\82»\82ñ\82È\82à\82Ì\82Í\8e\9d\82Á\82Ä\82¢\82È\82¢\81D");
             if (in_doagain)
                 return (struct obj *) 0;
             continue;
         } else if (cnt < 0 || otmp->quan < cnt) {
+/*JP
             You("don't have that many!  You have only %ld.", otmp->quan);
+*/
+            pline("\82»\82ñ\82È\82É\82½\82­\82³\82ñ\82Í\8e\9d\82Á\82Ä\82¢\82È\82¢\81I\82¹\82¢\82º\82¢%ld\8cÂ\82Á\82Ä\82Æ\82±\82¾\81D", otmp->quan);
             if (in_doagain)
                 return (struct obj *) 0;
             continue;
@@ -1301,7 +1355,11 @@ register const char *let, *word;
     }
     if (!allowall && let && !index(let, otmp->oclass)
         && !(usegold && otmp->oclass == COIN_CLASS)) {
+#if 0 /*JP*/
         silly_thing(word, otmp);
+#else
+        silly_thing(jword, otmp);
+#endif
         return (struct obj *) 0;
     }
     if (allowcnt == 2) { /* cnt given */
@@ -1334,25 +1392,44 @@ struct obj *otmp;
     /* check for attempted use of accessory commands ('P','R') on armor
        and for corresponding armor commands ('W','T') on accessories */
     if (ocls == ARMOR_CLASS) {
+#if 0 /*JP*/
         if (!strcmp(word, "put on"))
             s1 = "W", s2 = "wear", s3 = "";
         else if (!strcmp(word, "remove"))
             s1 = "T", s2 = "take", s3 = " off";
+#else
+        if (!strcmp(word, "\90g\82É\82Â\82¯\82é"))
+            s1 = "W", s2 = "\90g\82É\82Â\82¯\82é", s3 = "";
+        else if (!strcmp(word, "\82Í\82¸\82·"))
+            s1 = "T", s2 = "\82Í\82¸\82·", s3 = "";
+#endif
     } else if ((ocls == RING_CLASS || otyp == MEAT_RING)
                || ocls == AMULET_CLASS
                || (otyp == BLINDFOLD || otyp == TOWEL || otyp == LENSES)) {
+#if 0 /*JP*/
         if (!strcmp(word, "wear"))
             s1 = "P", s2 = "put", s3 = " on";
         else if (!strcmp(word, "take off"))
             s1 = "R", s2 = "remove", s3 = "";
+#else
+        if (!strcmp(word, "\90g\82É\82Â\82¯\82é"))
+          s1 = "P", s2 = "\90g\82É\82Â\82¯\82é", s3 = "";
+        else if (!strcmp(word, "\82Í\82¸\82·"))
+          s1 = "R", s2 = "\82Í\82¸\82·", s3 = "";
+#endif
     }
     if (s1) {
+#if 0 /*JP*/
         what = "that";
         /* quantity for armor and accessory objects is always 1,
            but some things should be referred to as plural */
         if (otyp == LENSES || is_gloves(otmp) || is_boots(otmp))
             what = "those";
+#endif
+/*JP
         pline("Use the '%s' command to %s %s%s.", s1, s2, what, s3);
+*/
+        pline("\82»\82ê\82ð%s\82É\82Í'%s'\83R\83}\83\93\83h\82ð\8eg\82¤\82±\82Æ\81D", s2, s1);
     } else
 #endif
         pline(silly_thing_to, word);
@@ -1420,6 +1497,13 @@ static NEARDATA const char removeables[] = { ARMOR_CLASS, WEAPON_CLASS,
 /* interactive version of getobj - used for Drop, Identify and */
 /* Takeoff (A). Return the number of times fn was called successfully */
 /* If combo is TRUE, we just use this to get a category list */
+/*JP CHECK: 3.4.3 \82Ì\8cÄ\82Ñ\8fo\82µ\8c³
+do.c:864:               (result = ggetobj("drop", drop, 0, FALSE, (unsigned *)0)) < -1)
+do.c:925:       i = ggetobj("drop", drop, 0, TRUE, &ggoresults);
+do_wear.c:2538:     (result = ggetobj("take off", select_off, 0, FALSE, (unsigned *)0)) < -1)
+do_wear.c:2586: if (ggetobj("take off", select_off, 0, TRUE, (unsigned *)0) == -2)
+invent.c:1782:          n = ggetobj("identify", identify, id_limit, FALSE, (unsigned *)0);
+*/
 int
 ggetobj(word, fn, mx, combo, resultflags)
 const char *word;
@@ -1435,12 +1519,23 @@ unsigned *resultflags;
     char sym, *ip, olets[MAXOCLASSES + 5], ilets[MAXOCLASSES + 5];
     char extra_removeables[3 + 1]; /* uwep,uswapwep,uquiver */
     char buf[BUFSZ], qbuf[QBUFSZ];
+#if 1 /*JP*/
+    const char *joshi = "\82ð";
+    const char *jword;
+
+    const struct trans_verb *tv = trans_verb(word);
+    jword = tv->jp;
+    joshi = tv->particle;
+#endif
 
     if (resultflags)
         *resultflags = 0;
     takeoff = ident = allflag = m_seen = FALSE;
     if (!invent) {
+/*JP
         You("have nothing to %s.", word);
+*/
+        You("%s\82à\82Ì\82Í\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", jcan(jword));
         return 0;
     }
     add_valid_menu_class(0); /* reset */
@@ -1480,8 +1575,13 @@ unsigned *resultflags;
     ilets[iletct] = '\0';
 
     for (;;) {
+#if 0 /*JP*/
         Sprintf(qbuf, "What kinds of thing do you want to %s? [%s]", word,
                 ilets);
+#else
+        Sprintf(qbuf,"\82Ç\82Ì\8eí\97Þ\82Ì\82à\82Ì%s%s\82©\81H[%s]", joshi,
+                jpolite(jword), ilets);
+#endif
         getlin(qbuf, buf);
         if (buf[0] == '\033')
             return 0;
@@ -1514,23 +1614,38 @@ unsigned *resultflags;
             if (index(extra_removeables, oc_of_sym)) {
                 ; /* skip rest of takeoff checks */
             } else if (!index(removeables, oc_of_sym)) {
+/*JP
                 pline("Not applicable.");
+*/
+                pline("\82»\82ê\82Í\82Å\82«\82È\82¢\81D");
                 return 0;
             } else if (oc_of_sym == ARMOR_CLASS && !wearing_armor()) {
                 noarmor(FALSE);
                 return 0;
             } else if (oc_of_sym == WEAPON_CLASS && !uwep && !uswapwep
                        && !uquiver) {
+/*JP
                 You("are not wielding anything.");
+*/
+                You("\89½\82à\91\95\94õ\82µ\82Ä\82¢\82È\82¢\81D");
                 return 0;
             } else if (oc_of_sym == RING_CLASS && !uright && !uleft) {
+/*JP
                 You("are not wearing rings.");
+*/
+                You("\8ew\97Ö\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
                 return 0;
             } else if (oc_of_sym == AMULET_CLASS && !uamul) {
+/*JP
                 You("are not wearing an amulet.");
+*/
+                You("\96\82\8f\9c\82¯\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
                 return 0;
             } else if (oc_of_sym == TOOL_CLASS && !ublindf) {
+/*JP
                 You("are not wearing a blindfold.");
+*/
+                You("\96Ú\89B\82µ\82ð\82µ\82Ä\82¢\82È\82¢\81D");
                 return 0;
             }
         }
@@ -1559,7 +1674,10 @@ unsigned *resultflags;
         } else if (sym == 'm') {
             m_seen = TRUE;
         } else if (oc_of_sym == MAXOCLASSES) {
+/*JP
             You("don't have any %c's.", sym);
+*/
+            You("%c\82É\91®\82·\82é\95¨\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", sym);
         } else if (oc_of_sym != VENOM_CLASS) { /* suppress venom */
             if (!index(olets, oc_of_sym)) {
                 add_valid_menu_class(oc_of_sym);
@@ -1599,6 +1717,12 @@ unsigned *resultflags;
  * If allflag then no questions are asked. Max gives the max nr of
  * objects to be treated. Return the number of objects treated.
  */
+/*JP CHECK: 3.4.3 \82Å\82Ì\8cÄ\82Ñ\8fo\82µ\8c³
+invent.c:1512:ggetobj() int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); 
+pickup.c:2615:("nodot") if (askchain((struct obj **)&current_container->cobj,
+pickup.c:2711:("nodot") (void) askchain((struct obj **)&invent,
+  word\82É\82Í\93®\8e\8c\82ª\89p\8cê\82Å\93ü\82é\81B
+*/
 int
 askchain(objchn, olets, allflag, fn, ckfn, mx, word)
 struct obj **objchn;
@@ -1666,9 +1790,15 @@ nextclass:
                     Sprintf(qpfx, "%s: ", word), *qpfx = highc(*qpfx);
                 first = FALSE;
             }
+#if 0 /*JP*/
             (void) safe_qbuf(
                 qbuf, qpfx, "?", otmp, ininv ? safeq_xprname : doname,
                 ininv ? safeq_shortxprname : ansimpleoname, "item");
+#else
+            (void) safe_qbuf(
+                qbuf, qpfx, "\81H", otmp, ininv ? safeq_xprname : doname,
+                ininv ? safeq_shortxprname : ansimpleoname, "\83A\83C\83e\83\80");
+#endif
             sym = (takeoff || ident || otmp->quan < 2L) ? nyaq(qbuf)
                                                         : nyNaq(qbuf);
         } else
@@ -1724,9 +1854,15 @@ nextclass:
     if (olets && *olets && *++olets)
         goto nextclass;
     if (!takeoff && (dud || cnt))
+/*JP
         pline("That was all.");
+*/
+        pline("\82±\82ê\82Å\91S\95\94\82¾\81D");
     else if (!dud && !cnt)
+/*JP
         pline("No applicable objects.");
+*/
+        pline("\82»\82ê\82Í\82Å\82«\82È\82¢\81D");
 ret:
     bypass_objlist(*objchn, FALSE);
     return cnt;
@@ -1772,8 +1908,13 @@ int id_limit;
     /* assumptions:  id_limit > 0 and at least one unID'd item is present */
 
     while (id_limit) {
+#if 0 /*JP:T*/
         Sprintf(buf, "What would you like to identify %s?",
                 first ? "first" : "next");
+#else
+        Sprintf(buf, "\82Ç\82ê\82ð%s\82É\8e¯\95Ê\82µ\82Ü\82·\82©\81H",
+                first ? "\8dÅ\8f\89" : "\8e\9f");
+#endif
         n = query_objlist(buf, invent, SIGNAL_NOMENU | SIGNAL_ESCAPE
                                            | USE_INVLET | INVORDER_SORT,
                           &pick_list, PICK_ANY, not_fully_identified);
@@ -1789,7 +1930,10 @@ int id_limit;
         } else if (n == -2) { /* player used ESC to quit menu */
             break;
         } else if (n == -1) { /* no eligible items found */
+/*JP
             pline("That was all.");
+*/
+            pline("\82±\82ê\82Å\91S\95\94\82¾\81D");
             break;
         } else if (!--tryct) { /* stop re-prompting */
             pline1(thats_enough_tries);
@@ -1816,8 +1960,13 @@ boolean learning_id; /* true if we just read unknown identify scroll */
             ++unid_cnt, the_obj = obj;
 
     if (!unid_cnt) {
+#if 0 /*JP:T*/
         You("have already identified all %sof your possessions.",
             learning_id ? "the rest " : "");
+#else
+        You("%s\91S\82Ä\82Ì\8f\8a\97L\95¨\82ð\8e¯\95Ê\82µ\82Ä\82µ\82Ü\82Á\82Ä\82¢\82é\81D",
+            learning_id ? "\8ec\82è" : "");
+#endif
     } else if (!id_limit || id_limit >= unid_cnt) {
         /* identify everything */
         if (unid_cnt == 1) {
@@ -1892,8 +2041,14 @@ long quan;
 {
     if (!prefix)
         prefix = "";
+#if 0 /*JP*/
     pline("%s%s%s", prefix, *prefix ? " " : "",
           xprname(obj, (char *) 0, obj_to_let(obj), TRUE, 0L, quan));
+#else
+    pline("%s%s",
+          xprname(obj, (char *)0, obj_to_let(obj), *prefix ? FALSE : TRUE, 0L, quan),
+          prefix);
+#endif
 }
 
 char *
@@ -1925,13 +2080,20 @@ long quan;       /* if non-0, print this quantity, not obj->quan */
      */
     if (cost != 0 || let == '*') {
         /* if dot is true, we're doing Iu, otherwise Ix */
+#if 0 /*JP*/
         Sprintf(li, "%c - %-45s %6ld %s",
+#else
+        Sprintf(li, "%c - %-45s %6ld%s",
+#endif
                 (dot && use_invlet ? obj->invlet : let),
                 (txt ? txt : doname(obj)), cost, currency(cost));
     } else {
         /* ordinary inventory display or pickup message */
         Sprintf(li, "%c - %s%s", (use_invlet ? obj->invlet : let),
+/*JP
                 (txt ? txt : doname(obj)), (dot ? "." : ""));
+*/
+                (txt ? txt : doname(obj)), (dot ? "\81D" : ""));
     }
     if (savequan)
         obj->quan = savequan;
@@ -2036,7 +2198,10 @@ long *out_cnt;
      * to here is short circuited away.
      */
     if (!invent && !(flags.perm_invent && !lets && !want_reply)) {
+/*JP
         pline("Not carrying anything.");
+*/
+        pline("\89½\82à\8e\9d\82Á\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
 
@@ -2394,8 +2559,13 @@ dounpaid()
     }
 
     putstr(win, 0, "");
+#if 0 /*JP*/
     putstr(win, 0,
            xprname((struct obj *) 0, "Total:", '*', FALSE, totcost, 0L));
+#else
+    putstr(win, 0,
+           xprname((struct obj *) 0, "\8d\87\8cv\81F", '*', FALSE, totcost, 0L));
+#endif
     display_nhwindow(win, FALSE);
     destroy_nhwindow(win);
 }
@@ -2442,10 +2612,16 @@ dotypeinv()
     boolean billx = *u.ushops && doinvbill(0);
     menu_item *pick_list;
     boolean traditional = TRUE;
+/*JP
     const char *prompt = "What type of object do you want an inventory of?";
+*/
+    const char *prompt = "\82Ç\82Ì\8eí\97Þ\82Ì\8e\9d\82¿\95¨\82ð\8c©\82Ü\82·\82©\81H";
 
     if (!invent && !billx) {
+/*JP
         You("aren't carrying anything.");
+*/
+        You("\82»\82Ì\8eí\97Þ\82Ì\95¨\82Í\89½\82à\8e\9d\82Á\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
     unpaid_count = count_unpaid(invent);
@@ -2538,15 +2714,23 @@ dotypeinv()
         if (billx)
             (void) doinvbill(1);
         else
+#if 0 /*JP*/
             pline("No used-up objects%s.",
                   unpaid_count ? " on your shopping bill" : "");
+#else
+          pline("\8eg\82Á\82Ä\82µ\82Ü\82Á\82½\95¨\82Í%s\82È\82¢\81D",
+                  unpaid_count ? "\8f¤\93X\82Ì\90¿\8b\81\8f\91\82É\82Í" : "");
+#endif
         return 0;
     }
     if (c == 'u' || (c == 'U' && unpaid_count && !ucnt)) {
         if (unpaid_count)
             dounpaid();
         else
+/*JP
             You("are not carrying any unpaid objects.");
+*/
+            You("\96¢\95¥\82¢\82Ì\83A\83C\83e\83\80\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
     if (traditional) {
@@ -2576,11 +2760,17 @@ dotypeinv()
           "have no objects whose blessed/uncursed/cursed status is unknown.");
                 break; /* better phrasing is desirable */
             default:
+/*JP
                 which = "such";
+*/
+                which = "\82»\82Ì\82æ\82¤\82È";
                 break;
             }
             if (which)
+/*JP
                 You("have no %s objects.", which);
+*/
+                You("%s\82à\82Ì\82Í\89½\82à\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", which);
             return 0;
         }
         this_type = oclass;
@@ -2614,7 +2804,10 @@ char *buf;
             cmap = S_vodoor;
             break; /* "open door" */
         case D_BROKEN:
+/*JP
             dfeature = "broken door";
+*/
+            dfeature = "\89ó\82ê\82½\94à";
             break;
         default:
             cmap = S_vcdoor;
@@ -2622,7 +2815,10 @@ char *buf;
         }
         /* override door description for open drawbridge */
         if (is_drawbridge_wall(x, y) >= 0)
+/*JP
             dfeature = "open drawbridge portcullis", cmap = -1;
+*/
+            dfeature = "\8d~\82è\82Ä\82¢\82é\92µ\82Ë\8b´", cmap = -1;
     } else if (IS_FOUNTAIN(ltyp))
         cmap = S_fountain; /* "fountain" */
     else if (IS_THRONE(ltyp))
@@ -2632,10 +2828,14 @@ char *buf;
     else if (is_ice(x, y))
         cmap = S_ice; /* "ice" */
     else if (is_pool(x, y))
+/*JP
         dfeature = "pool of water";
+*/
+        dfeature = "\90\85\82½\82Ü\82è";
     else if (IS_SINK(ltyp))
         cmap = S_sink; /* "sink" */
     else if (IS_ALTAR(ltyp)) {
+#if 0 /*JP*/
         Sprintf(altbuf, "%saltar to %s (%s)",
                 ((lev->altarmask & AM_SHRINE)
                  && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)))
@@ -2643,6 +2843,15 @@ char *buf;
                     : "",
                 a_gname(),
                 align_str(Amask2align(lev->altarmask & ~AM_SHRINE)));
+#else
+        Sprintf(altbuf, "%s%s\82Ì\8dÕ\92d(%s)",
+                ((lev->altarmask & AM_SHRINE)
+                 && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)))
+                    ? "\8d\82\88Ê\82Ì"
+                    : "",
+                a_gname(),
+                align_str(Amask2align(lev->altarmask & ~AM_SHRINE)));
+#endif
         dfeature = altbuf;
     } else if ((x == xupstair && y == yupstair)
                || (x == sstairs.sx && y == sstairs.sy && sstairs.up))
@@ -2663,7 +2872,10 @@ char *buf;
     else if (ltyp == TREE)
         cmap = S_tree; /* "tree" */
     else if (ltyp == IRONBARS)
+/*JP
         dfeature = "set of iron bars";
+*/
+        dfeature = "\93S\82Ì\96_";
 
     if (cmap >= 0)
         dfeature = defsyms[cmap].explanation;
@@ -2681,7 +2893,11 @@ boolean picked_some;
 {
     struct obj *otmp;
     struct trap *trap;
+#if 0 /*JP:C*/
     const char *verb = Blind ? "feel" : "see";
+#else
+    const char *verb = Blind ? "\82ª\82 \82é\82æ\82¤\82È\8bC\82ª\82µ\82½" : "\82ð\82Ý\82Â\82¯\82½";
+#endif
     const char *dfeature = (char *) 0;
     char fbuf[BUFSZ], fbuf2[BUFSZ];
     winid tmpwin;
@@ -2692,11 +2908,22 @@ boolean picked_some;
     skip_objects = (flags.pile_limit > 0 && obj_cnt >= flags.pile_limit);
     if (u.uswallow && u.ustuck) {
         struct monst *mtmp = u.ustuck;
+#if 0 /*JP:T*/
         Sprintf(fbuf, "Contents of %s %s", s_suffix(mon_nam(mtmp)),
                 mbodypart(mtmp, STOMACH));
+#else
+        Sprintf(fbuf, "%s\82Ì%s\82Ì\92\86\90g", mon_nam(mtmp),
+                mbodypart(mtmp, STOMACH));
+#endif
+#if 0 /*JP*//*\8cê\8f\87\82ª\88á\82¤\82Ì\82Å\91f\92¼\82É*/
         /* Skip "Contents of " by using fbuf index 12 */
         You("%s to %s what is lying in %s.", Blind ? "try" : "look around",
             verb, &fbuf[12]);
+#else
+        You("%s\82Ì%s\82É\89½\82ª\82 \82é\82©%s\81D",
+            mon_nam(mtmp), mbodypart(mtmp, STOMACH),
+            Blind ? "\82³\82®\82Á\82½" : "\8c©\89ñ\82µ\82½");
+#endif
         otmp = mtmp->minvent;
         if (otmp) {
             for (; otmp; otmp = otmp->nobj) {
@@ -2705,31 +2932,53 @@ boolean picked_some;
                 if (otmp->otyp == CORPSE)
                     feel_cockatrice(otmp, FALSE);
             }
+#if 0 /*JP*/
             if (Blind)
                 Strcpy(fbuf, "You feel");
             Strcat(fbuf, ":");
+#else
+            Sprintf(fbuf, "\82±\82±\82É\82 \82é%s\82à\82Ì\82Í\81F", Blind ? "\82ç\82µ\82¢" : "");
+#endif
             (void) display_minventory(mtmp, MINV_ALL, fbuf);
         } else {
+#if 0 /*JP:C*/
             You("%s no objects here.", verb);
+#else
+            pline(Blind ? "\82 \82È\82½\82Í\89½\82à\82È\82¢\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                  : "\82 \82È\82½\82Í\89½\82à\82Ý\82Â\82¯\82ç\82ê\82È\82©\82Á\82½\81D");
+#endif
         }
         return !!Blind;
     }
     if (!skip_objects && (trap = t_at(u.ux, u.uy)) && trap->tseen)
+/*JP
         There("is %s here.",
+*/
+        pline("\82±\82±\82É\82Í%s\82ª\82 \82é\81D",
               an(defsyms[trap_to_defsym(trap->ttyp)].explanation));
 
     otmp = level.objects[u.ux][u.uy];
     dfeature = dfeature_at(u.ux, u.uy, fbuf2);
+/*JP
     if (dfeature && !strcmp(dfeature, "pool of water") && Underwater)
+*/
+    if (dfeature && !strcmp(dfeature, "\90\85\82½\82Ü\82è") && Underwater)
         dfeature = 0;
 
     if (Blind) {
         boolean drift = Is_airlevel(&u.uz) || Is_waterlevel(&u.uz);
 
+/*JP
         if (dfeature && !strncmp(dfeature, "altar ", 6)) {
+*/
+        if (dfeature && !strncmp(dfeature, "\8dÕ\92d", 4)) {
             /* don't say "altar" twice, dfeature has more info */
+/*JP
             You("try to feel what is here.");
+*/
+            You("\82±\82±\82É\89½\82ª\82 \82é\82Ì\82©\92²\82×\82æ\82¤\82Æ\82µ\82½\81D");
         } else {
+#if 0 /*JP*/
             const char *where = (Blind && !can_reach_floor(TRUE))
                                     ? "lying beneath you"
                                     : "lying here on the ",
@@ -2739,17 +2988,32 @@ boolean picked_some;
 
             You("try to feel what is %s%s.", drift ? "floating here" : where,
                 drift ? "" : onwhat);
+#else
+            if (drift) {
+                You("\89½\82ª\95\82\82¢\82Ä\82¢\82é\82Ì\82©\92²\82×\82æ\82¤\82Æ\82µ\82½\81D");
+            } else if (Blind && !can_reach_floor(TRUE)) {
+                You("\89½\82ª\91«\89º\82É\82 \82é\82Ì\82©\92²\82×\82æ\82¤\82Æ\82µ\82½\81D");
+            } else {
+                You("\89½\82ª%s\82Ì\8fã\82É\82 \82é\82Ì\82©\92²\82×\82æ\82¤\82Æ\82µ\82½\81D", surface(u.ux, u.uy));
+            }
+#endif
         }
         if (dfeature && !drift && !strcmp(dfeature, surface(u.ux, u.uy)))
             dfeature = 0; /* ice already identified */
         if (!can_reach_floor(TRUE)) {
+/*JP
             pline("But you can't reach it!");
+*/
+            pline("\82µ\82©\82µ\93Í\82©\82È\82¢\81I");
             return 0;
         }
     }
 
     if (dfeature)
+/*JP
         Sprintf(fbuf, "There is %s here.", an(dfeature));
+*/
+        Sprintf(fbuf, "\82±\82±\82É\82Í%s\82ª\82 \82é\81D", an(dfeature));
 
     if (!otmp || is_lava(u.ux, u.uy)
         || (is_pool(u.ux, u.uy) && !Underwater)) {
@@ -2757,7 +3021,13 @@ boolean picked_some;
             pline1(fbuf);
         read_engr_at(u.ux, u.uy); /* Eric Backus */
         if (!skip_objects && (Blind || !dfeature))
+#if 0 /*JP:C*/
             You("%s no objects here.", verb);
+#else
+          pline(Blind ?
+                "\82È\82É\82à\82È\82¢\82æ\82¤\82È\8bC\82ª\82·\82é\81D" :
+                "\82È\82É\82à\82Ý\82Â\82¯\82ç\82ê\82È\82©\82Á\82½\81D");
+#endif
         return !!Blind;
     }
     /* we know there is something here */
@@ -2769,6 +3039,7 @@ boolean picked_some;
         if (obj_cnt == 1 && otmp->quan == 1L)
             There("is %s object here.", picked_some ? "another" : "an");
         else
+#if 0 /*JP*/
             There("are %s%s objects here.",
                   (obj_cnt < 5)
                       ? "a few"
@@ -2776,6 +3047,13 @@ boolean picked_some;
                           ? "several"
                           : "many",
                   picked_some ? " more" : "");
+#else
+            pline("\82±\82±\82É\82Í%s%s\82à\82Ì\82ª\82 \82é\81D",
+                  picked_some ? "\82³\82ç\82É" : "",
+                  (obj_cnt < 10)
+                      ? "\82¢\82­\82Â\82©\82Ì"
+                      : "\82½\82­\82³\82ñ\82Ì");
+#endif
         for (; otmp; otmp = otmp->nexthere)
             if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) {
                 pline("%s %s%s.",
@@ -2796,7 +3074,10 @@ boolean picked_some;
         if (dfeature)
             pline1(fbuf);
         read_engr_at(u.ux, u.uy); /* Eric Backus */
+/*JP
         You("%s here %s.", verb, doname_with_price(otmp));
+*/
+        pline("%s%s\81D", doname_with_price(otmp), verb);
         iflags.last_msg = PLNMSG_ONE_ITEM_HERE;
         if (otmp->otyp == CORPSE)
             feel_cockatrice(otmp, FALSE);
@@ -2809,9 +3090,15 @@ boolean picked_some;
             putstr(tmpwin, 0, fbuf);
             putstr(tmpwin, 0, "");
         }
+#if 0 /*JP*/
         Sprintf(buf, "%s that %s here:",
                 picked_some ? "Other things" : "Things",
                 Blind ? "you feel" : "are");
+#else
+        Sprintf(buf, "%s\82±\82±\82É\82 \82é%s\82à\82Ì\82Í\81F",
+                picked_some ? "\91¼\82É" : "",
+                Blind ? "\82ç\82µ\82¢" : "");
+#endif
         putstr(tmpwin, 0, buf);
         for (; otmp; otmp = otmp->nexthere) {
             if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) {
@@ -2861,12 +3148,23 @@ boolean force_touch;
         Strcpy(kbuf, corpse_xname(otmp, (const char *) 0, CXN_PFX_THE));
 
         if (poly_when_stoned(youmonst.data))
+#if 0 /*JP*/
             You("touched %s with your bare %s.", kbuf,
                 makeplural(body_part(HAND)));
+#else
+            You("%s\82Ì\8e\80\91Ì\82É\91f%s\82Å\90G\82Á\82½\81D", kbuf,
+                body_part(HAND));
+#endif
         else
+/*JP
             pline("Touching %s is a fatal mistake...", kbuf);
+*/
+            pline("%s\82Ì\8e\80\91Ì\82É\90G\82ê\82é\82Ì\82Í\92v\96½\93I\82È\8aÔ\88á\82¢\82¾\81D\81D\81D", kbuf);
         /* normalize body shape here; hand, not body_part(HAND) */
+/*JP
         Sprintf(kbuf, "touching %s bare-handed", killer_xname(otmp));
+*/
+        Sprintf(kbuf, "%s\82Ì\8e\80\91Ì\82É\90G\82ê\82Ä", killer_xname(otmp));
         /* will call polymon() for the poly_when_stoned() case */
         instapetrify(kbuf);
     }
@@ -2974,9 +3272,15 @@ doprgold()
        take containers into account */
     long umoney = money_cnt(invent);
     if (!umoney)
+/*JP
         Your("wallet is empty.");
+*/
+        Your("\8dà\95z\82Í\8bó\82Á\82Û\82¾\81D");
     else
+/*JP
         Your("wallet contains %ld %s.", umoney, currency(umoney));
+*/
+        Your("\8dà\95z\82É\82Í%ld%s\93ü\82Á\82Ä\82¢\82é\81D", umoney, currency(umoney));
     shopper_financial_report();
     return 0;
 }
@@ -2986,7 +3290,10 @@ int
 doprwep()
 {
     if (!uwep) {
+/*JP
         You("are empty %s.", body_part(HANDED));
+*/
+        if(!uwep) You("%s\82É\95\90\8aí\82ð\82à\82Á\82Ä\82¢\82È\82¢\81D", body_part(HAND));
     } else {
         prinv((char *) 0, uwep, 0L);
         if (u.twoweap)
@@ -3001,11 +3308,15 @@ noarmor(report_uskin)
 boolean report_uskin;
 {
     if (!uskin || !report_uskin) {
+/*JP
         You("are not wearing any armor.");
+*/
+        You("\8aZ\82ð\92\85\82Ä\82¢\82È\82¢\81D");
     } else {
         char *p, *uskinname, buf[BUFSZ];
 
         uskinname = strcpy(buf, simpleonames(uskin));
+#if 0 /*JP*/
         /* shorten "set of <color> dragon scales" to "<color> scales"
            and "<color> dragon scale mail" to "<color> scale mail" */
         if (!strncmpi(uskinname, "set of ", 7))
@@ -3013,8 +3324,15 @@ boolean report_uskin;
         if ((p = strstri(uskinname, " dragon ")) != 0)
             while ((p[1] = p[8]) != '\0')
                 ++p;
+#else /*\81u<\90F>\83h\83\89\83S\83\93\82Ì\97Ø\81v\82ð\81u<\90F>\82Ì\97Ø\81v\82É\82·\82é*/
+        if ((p = strstri(uskinname, "\83h\83\89\83S\83\93\82Ì\97Ø")) != 0)
+            strcpy(p, "\97Ø");
+#endif
 
+/*JP
         You("are not wearing armor but have %s embedded in your skin.",
+*/
+        You("\82Í\8aZ\82ð\92\85\82Ä\82¢\82È\82¢\82ª\81C%s\82ª\94§\82É\96\84\82ß\8d\9e\82Ü\82ê\82Ä\82¢\82é\81D",
             uskinname);
     }
 }
@@ -3059,7 +3377,10 @@ int
 doprring()
 {
     if (!uleft && !uright)
+/*JP
         You("are not wearing any rings.");
+*/
+        You("\8ew\97Ö\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
     else {
         char lets[3];
         register int ct = 0;
@@ -3079,7 +3400,10 @@ int
 dopramulet()
 {
     if (!uamul)
+/*JP
         You("are not wearing an amulet.");
+*/
+        You("\96\82\8f\9c\82¯\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
     else
         prinv((char *) 0, uamul, 0L);
     return 0;
@@ -3110,7 +3434,10 @@ doprtool()
             lets[ct++] = obj_to_let(otmp);
     lets[ct] = '\0';
     if (!ct)
+/*JP
         You("are not using any tools.");
+*/
+        You("\8eg\82¦\82é\93¹\8bï\82ð\82à\82Á\82Ä\82¢\82È\82¢\81D");
     else
         (void) display_inventory(lets, FALSE);
     return 0;
@@ -3130,7 +3457,10 @@ doprinuse()
             lets[ct++] = obj_to_let(otmp);
     lets[ct] = '\0';
     if (!ct)
+/*JP
         You("are not wearing or wielding anything.");
+*/
+        You("\89½\82à\92\85\82Ä\82¢\82È\82¢\82µ\81C\91\95\94õ\82µ\82Ä\82¢\82È\82¢\81D");
     else
         (void) display_inventory(lets, FALSE);
     return 0;
@@ -3169,14 +3499,23 @@ long numused;
  * This must match the object class order.
  */
 STATIC_VAR NEARDATA const char *names[] = {
+#if 0 /*JP*/
     0, "Illegal objects", "Weapons", "Armor", "Rings", "Amulets", "Tools",
     "Comestibles", "Potions", "Scrolls", "Spellbooks", "Wands", "Coins",
     "Gems/Stones", "Boulders/Statues", "Iron balls", "Chains", "Venoms"
+#else
+    0, "\96­\82È\95¨\91Ì", "\95\90\8aí", "\8aZ", "\8ew\97Ö", "\96\82\8f\9c\82¯", "\93¹\8bï",
+    "\90H\97¿", "\96ò", "\8aª\95¨", "\96\82\96@\8f\91", "\8fñ", "\8bà\89Ý",
+    "\95ó\90Î", "\8aâ\82Ü\82½\82Í\92¤\91\9c", "\93S\8b\85", "\8d½", "\93Å"
+#endif
 };
 
 static NEARDATA const char oth_symbols[] = { CONTAINED_SYM, '\0' };
 
+/*JP
 static NEARDATA const char *oth_names[] = { "Bagged/Boxed items" };
+*/
+static NEARDATA const char *oth_names[] = { "\8bl\82ß\82ç\82ê\82½\93¹\8bï" };
 
 static NEARDATA char *invbuf = (char *) 0;
 static NEARDATA unsigned invbufsiz = 0;
@@ -3200,7 +3539,10 @@ boolean unpaid, showsym;
     else
         class_name = names[0];
 
+/*JP
     len = strlen(class_name) + (unpaid ? sizeof "unpaid_" : sizeof "")
+*/
+    len = strlen(class_name) + (unpaid ? sizeof "\96¢\95¥\82¢\82Ì" : sizeof "")
           + (oclass ? (strlen(ocsymfmt) + invbuf_sympadding) : 0);
     if (len > invbufsiz) {
         if (invbuf)
@@ -3209,7 +3551,10 @@ boolean unpaid, showsym;
         invbuf = (char *) alloc(invbufsiz);
     }
     if (unpaid)
+/*JP
         Strcat(strcpy(invbuf, "Unpaid "), class_name);
+*/
+        Strcat(strcpy(invbuf, "\96¢\95¥\82¢\82Ì"), class_name);
     else
         Strcpy(invbuf, class_name);
     if ((oclass != 0) && showsym) {
@@ -3359,8 +3704,13 @@ doorganize() /* inventory organizer by Del Lamb */
         compactify(buf);
 
     /* get 'to' slot to use as destination */
+#if 0 /*JP:T*/
     Sprintf(qbuf, "Adjust letter to what [%s]%s?", buf,
             invent ? " (? see used letters)" : "");
+#else
+    Sprintf(qbuf, "\82Ç\82Ì\95\8e\9a\82É\92²\90®\82µ\82Ü\82·\82©[%s]%s\81H", buf,
+            invent ? " (? \82Å\8eg\82Á\82Ä\82¢\82é\95\8e\9a\82ð\95\\8e¦)" : "");
+#endif
     for (trycnt = 1; ; ++trycnt) {
         let = yn_function(qbuf, (char *) 0, '\0');
         if (let == '?' || let == '*') {
@@ -3385,11 +3735,18 @@ doorganize() /* inventory organizer by Del Lamb */
             break; /* got one */
         if (trycnt == 5)
             goto noadjust;
+#if 0 /*JP*/
         pline("Select an inventory slot letter."); /* else try again */
+#else
+        pline("\8e\9d\82¿\95¨\82Ì\95\8e\9a\82ð\91I\82ñ\82Å\82­\82¾\82³\82¢\81D");
+#endif
     }
 
     /* change the inventory and print the resulting item */
+/*JP
     adj_type = !splitting ? "Moving:" : "Splitting:";
+*/
+    adj_type = !splitting ? "\82ð\88Ú\93®\82µ\82½\81D" : "\82ð\95ª\8a\84\82µ\82½\81D";
 
     /*
      * don't use freeinv/addinv to avoid double-touching artifacts,
@@ -3400,13 +3757,19 @@ doorganize() /* inventory organizer by Del Lamb */
     for (otmp = invent; otmp;) {
         if (!splitting) {
             if (merged(&otmp, &obj)) {
+/*JP
                 adj_type = "Merging:";
+*/
+                adj_type = "\82ð\8d\87\82í\82¹\82½\81D";
                 obj = otmp;
                 otmp = otmp->nobj;
                 extract_nobj(obj, &invent);
                 continue; /* otmp has already been updated */
             } else if (otmp->invlet == let) {
+/*JP
                 adj_type = "Swapping:";
+*/
+                adj_type = "\82ð\8cð\8a·\82µ\82½\81D";
                 otmp->invlet = obj->invlet;
             }
         } else {
@@ -3546,8 +3909,13 @@ char *title;
         incl_hero = (do_all && u.uswallow && mon == u.ustuck),
         have_inv = (mon->minvent != 0), have_any = (have_inv || incl_hero);
 
+#if 0 /*JP*/
     Sprintf(tmp, "%s %s:", s_suffix(noit_Monnam(mon)),
             do_all ? "possessions" : "armament");
+#else
+    Sprintf(tmp, "%s\82Ì%s\81F", Monnam(mon),
+            do_all ? "\8e\9d\82¿\95¨" : "\91\95\94õ");
+#endif
 
     if (do_all ? have_any : (mon->misc_worn_check || MON_WEP(mon))) {
         /* Fool the 'weapon in hand' routine into
@@ -3563,7 +3931,10 @@ char *title;
 
         set_uasmon();
     } else {
+/*JP
         invdisp_nothing(title ? title : tmp, "(none)");
+*/
+        invdisp_nothing(title ? title : tmp, "(\89½\82à\82È\82¢)");
         n = 0;
     }
 
@@ -3588,14 +3959,22 @@ register struct obj *obj;
     int n;
     menu_item *selected = 0;
 
+#if 0 /*JP*/
     (void) safe_qbuf(qbuf, "Contents of ", ":", obj, doname, ansimpleoname,
                      "that");
+#else
+    (void) safe_qbuf(qbuf, "", "\82Ì\92\86\90g\81F", obj, doname, ansimpleoname,
+                     "\82»");
+#endif
 
     if (obj->cobj) {
         n = query_objlist(qbuf, obj->cobj, INVORDER_SORT, &selected,
                           PICK_NONE, allow_all);
     } else {
+/*JP
         invdisp_nothing(qbuf, "(empty)");
+*/
+        invdisp_nothing(qbuf, "(\8bó\82Á\82Û)");
         n = 0;
     }
     if (n > 0) {
@@ -3643,7 +4022,10 @@ boolean as_if_seen;
     if (n) {
         only.x = x;
         only.y = y;
+/*JP
         if (query_objlist("Things that are buried here:", level.buriedobjlist,
+*/
+        if (query_objlist("\82±\82±\82É\96\84\82ß\82ç\82ê\82Ä\82¢\82é\82à\82Ì\81F", level.buriedobjlist,
                           INVORDER_SORT, &selected, PICK_NONE, only_here) > 0)
             free((genericptr_t) selected);
         only.x = only.y = 0;
index 469987c..fa28eec 100644 (file)
@@ -666,15 +666,30 @@ struct obj *obj;
 {
     switch (arti_light_radius(obj)) {
     case 3:
+#if 0 /*JP*/
         return "brilliantly"; /* blessed */
+#else
+        return "\83L\83\89\83L\83\89\82Æ"; /* blessed */
+#endif
     case 2:
+#if 0 /*JP*/
         return "brightly"; /* uncursed */
+#else
+        return "\96¾\82é\82­"; /* uncursed */
+#endif
     case 1:
+#if 0 /*JP*/
         return "dimly"; /* cursed */
+#else
+        return "\94\96\88Ã\82­"; /* cursed */
+#endif
     default:
         break;
     }
+/*JP
     return "strangely";
+*/
+    return "\95s\8ev\8bc\82É";
 }
 
 int
index 16f1c63..41f56aa 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_PTR int NDECL(picklock);
@@ -46,17 +51,32 @@ lock_action()
 {
     /* "unlocking"+2 == "locking" */
     static const char *actions[] = {
+#if 0 /*JP*/
         "unlocking the door",   /* [0] */
         "unlocking the chest",  /* [1] */
         "unlocking the box",    /* [2] */
         "picking the lock"      /* [3] */
+#else 
+        "\94à\82Ì\8c®\82ð\82Í\82¸\82·", 
+        "\95ó\94 \82Ì\8c®\82ð\82Í\82¸\82·",
+        "\94 \82Ì\8c®\82ð\82Í\82¸\82·",
+        "\8c®\82ð\82Í\82¸\82·"
+#endif
     };
 
     /* if the target is currently unlocked, we're trying to lock it now */
     if (xlock.door && !(xlock.door->doormask & D_LOCKED))
+#if 0 /*JP*/
         return actions[0] + 2; /* "locking the door" */
+#else /* \89p\8cê\82Í un \82ð\8eæ\82ê\82Î\8bt\82Ì\88Ó\96¡\82É\82È\82é\82ª\81C\93ú\96{\8cê\82Í\82»\82¤\82Í\82¢\82©\82È\82¢\82Ì\82Å\83\8a\83e\83\89\83\8b\82ð\8f\91\82­ */
+        return "\94à\82É\8c®\82ð\82©\82¯\82é";
+#endif
     else if (xlock.box && !xlock.box->olocked)
+#if 0 /*JP*/
         return xlock.box->otyp == CHEST ? actions[1] + 2 : actions[2] + 2;
+#else
+        return xlock.box->otyp == CHEST ? "\95ó\94 \82É\8c®\82ð\82©\82¯\82é" : "\94 \82É\8c®\82ð\82©\82¯\82é";
+#endif
     /* otherwise we're trying to unlock it */
     else if (xlock.picktyp == LOCK_PICK)
         return actions[3]; /* "picking the lock" */
@@ -84,19 +104,31 @@ picklock(VOID_ARGS)
         }
         switch (xlock.door->doormask) {
         case D_NODOOR:
+/*JP
             pline("This doorway has no door.");
+*/
+            pline("\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
             return ((xlock.usedtime = 0));
         case D_ISOPEN:
+/*JP
             You("cannot lock an open door.");
+*/
+            pline("\8aJ\82¢\82Ä\82é\94à\82É\8c®\82ð\82©\82¯\82ç\82ê\82È\82¢\81D");
             return ((xlock.usedtime = 0));
         case D_BROKEN:
+/*JP
             pline("This door is broken.");
+*/
+            pline("\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
             return ((xlock.usedtime = 0));
         }
     }
 
     if (xlock.usedtime++ >= 50 || nohands(youmonst.data)) {
+/*JP
         You("give up your attempt at %s.", lock_action());
+*/
+        pline("%s\82Ì\82ð\82 \82«\82ç\82ß\82½\81D", lock_action());
         exercise(A_DEX, TRUE); /* even if you don't succeed */
         return ((xlock.usedtime = 0));
     }
@@ -104,10 +136,16 @@ picklock(VOID_ARGS)
     if (rn2(100) >= xlock.chance)
         return 1; /* still busy */
 
+/*JP
     You("succeed in %s.", lock_action());
+*/
+    You("%s\82Ì\82É\90¬\8c÷\82µ\82½\81D", lock_action());
     if (xlock.door) {
         if (xlock.door->doormask & D_TRAPPED) {
+/*JP
             b_trapped("door", FINGER);
+*/
+            b_trapped("\94à", FINGER);
             xlock.door->doormask = D_NODOOR;
             unblock_point(u.ux + u.dx, u.uy + u.dy);
             if (*in_rooms(u.ux + u.dx, u.uy + u.dy, SHOPBASE))
@@ -150,7 +188,10 @@ boolean destroyit;
                 peaceful_shk = costly && (boolean) shkp->mpeaceful;
         long loss = 0L;
 
+/*JP
         pline("In fact, you've totally destroyed %s.", the(xname(box)));
+*/
+        pline("\8eÀ\8dÛ\82Ì\82Æ\82±\82ë\81C%s\82ð\8a®\91S\82É\89ó\82µ\82Ä\82µ\82Ü\82Á\82½\81D", xname(xlock.box));
         /* Put the contents on ground at the hero's feet. */
         while ((otmp = box->cobj) != 0) {
             obj_extract_self(otmp);
@@ -175,7 +216,10 @@ boolean destroyit;
         if (costly)
             loss += stolen_value(box, u.ux, u.uy, peaceful_shk, TRUE);
         if (loss)
+/*JP
             You("owe %ld %s for objects destroyed.", loss, currency(loss));
+*/
+            You("\8aí\95¨\94j\91¹\82Å%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81D", loss, currency(loss));
         delobj(box);
     }
 }
@@ -188,7 +232,10 @@ forcelock(VOID_ARGS)
         return ((xlock.usedtime = 0)); /* you or it moved */
 
     if (xlock.usedtime++ >= 50 || !uwep || nohands(youmonst.data)) {
+/*JP
         You("give up your attempt to force the lock.");
+*/
+        pline("\8c®\82ð\82±\82\8aJ\82¯\82é\82Ì\82ð\82 \82«\82ç\82ß\82½\81D");
         if (xlock.usedtime >= 50) /* you made the effort */
             exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE);
         return ((xlock.usedtime = 0));
@@ -200,10 +247,17 @@ forcelock(VOID_ARGS)
             /* for a +0 weapon, probability that it survives an unsuccessful
              * attempt to force the lock is (.992)^50 = .67
              */
+#if 0 /*JP*/
             pline("%sour %s broke!", (uwep->quan > 1L) ? "One of y" : "Y",
                   xname(uwep));
+#else
+            pline("%s\82Í\89ó\82ê\82Ä\82µ\82Ü\82Á\82½\81I",xname(uwep));
+#endif
             useup(uwep);
+/*JP
             You("give up your attempt to force the lock.");
+*/
+            pline("\8c®\82ð\82±\82\8aJ\82¯\82é\82Ì\82ð\82 \82«\82ç\82ß\82½\81D");
             exercise(A_DEX, TRUE);
             return ((xlock.usedtime = 0));
         }
@@ -213,7 +267,10 @@ forcelock(VOID_ARGS)
     if (rn2(100) >= xlock.chance)
         return 1; /* still busy */
 
+/*JP
     You("succeed in forcing the lock.");
+*/
+    pline("\8c®\82ð\82±\82\8aJ\82¯\82½\81D");
     breakchestlock(xlock.box, (boolean) (!xlock.picktyp && !rn2(3)));
 
     exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE);
@@ -251,30 +308,51 @@ struct obj *pick;
 
     /* check whether we're resuming an interrupted previous attempt */
     if (xlock.usedtime && picktyp == xlock.picktyp) {
+/*JP
         static char no_longer[] = "Unfortunately, you can no longer %s %s.";
+*/
+        static char no_longer[] = "\82´\82ñ\82Ë\82ñ\82È\82ª\82ç\81C\82 \82È\82½\82Í%s%s";
 
         if (nohands(youmonst.data)) {
+/*JP
             const char *what = (picktyp == LOCK_PICK) ? "pick" : "key";
+*/
+            const char *what = (picktyp == LOCK_PICK) ? "\8c®\8aJ\82¯\8aí\8bï" : "\8c®";
             if (picktyp == CREDIT_CARD)
+/*JP
                 what = "card";
+*/
+                what = "\83J\81[\83h";
+/*JP
             pline(no_longer, "hold the", what);
+*/
+            pline(no_longer, what, "\82ð\82Â\82©\82ß\82È\82¢");
             reset_pick();
             return PICKLOCK_LEARNED_SOMETHING;
         } else if (u.uswallow || (xlock.box && !can_reach_floor(TRUE))) {
+/*JP
             pline(no_longer, "reach the", "lock");
+*/
+            pline(no_longer, "\8c®\82É", "\93Í\82©\82È\82¢");
             reset_pick();
             return PICKLOCK_LEARNED_SOMETHING;
         } else {
             const char *action = lock_action();
 
+/*JP
             You("resume your attempt at %s.", action);
+*/
+            pline("%s\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D", action);
             set_occupation(picklock, action, 0);
             return PICKLOCK_DID_SOMETHING;
         }
     }
 
     if (nohands(youmonst.data)) {
+/*JP
         You_cant("hold %s -- you have no hands!", doname(pick));
+*/
+        You("%s\82ð\82Â\82©\82Þ\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I", xname(pick));
         return PICKLOCK_DID_NOTHING;
     } else if (u.uswallow) {
         You_cant("%sunlock %s.", (picktyp == CREDIT_CARD) ? "" : "lock or ",
@@ -289,7 +367,10 @@ struct obj *pick;
     }
     ch = 0; /* lint suppression */
 
+/*JP
     if (!get_adjacent_loc((char *) 0, "Invalid location!", u.ux, u.uy, &cc))
+*/
+    if (!get_adjacent_loc((char *) 0, "\88Ê\92u\82ª\82¨\82©\82µ\82¢\81I", u.ux, u.uy, &cc))
         return PICKLOCK_DID_NOTHING;
 
     if (cc.x == u.ux && cc.y == u.uy) { /* pick lock on a container */
@@ -299,14 +380,25 @@ struct obj *pick;
         int count;
 
         if (u.dz < 0) {
+#if 0 /*JP*/
             There("isn't any sort of lock up %s.",
                   Levitation ? "here" : "there");
+#else
+            pline("%s\82É\82Í\8c®\82ð\82©\82¯\82é\82æ\82¤\82È\95¨\82Í\82È\82¢\81D",
+                  Levitation ? "\82±\82±" : "\89º\95û");
+#endif
             return PICKLOCK_LEARNED_SOMETHING;
         } else if (is_lava(u.ux, u.uy)) {
+/*JP
             pline("Doing that would probably melt %s.", yname(pick));
+*/
+            pline("\82»\82ñ\82È\82±\82Æ\82ð\82µ\82½\82ç%s\82ª\97n\82¯\82Ä\82µ\82Ü\82¤\81D", yname(pick));
             return PICKLOCK_LEARNED_SOMETHING;
         } else if (is_pool(u.ux, u.uy) && !Underwater) {
+/*JP
             pline_The("water has no lock.");
+*/
+            pline("\90\85\82É\8fù\91O\82Í\82È\82¢\81D");
             return PICKLOCK_LEARNED_SOMETHING;
         }
 
@@ -316,23 +408,46 @@ struct obj *pick;
             if (Is_box(otmp)) {
                 ++count;
                 if (!can_reach_floor(TRUE)) {
+/*JP
                     You_cant("reach %s from up here.", the(xname(otmp)));
+*/
+                    You("\82±\82±\82©\82ç%s\82É\93Í\82©\82È\82¢\81D", the(xname(otmp)));
                     return PICKLOCK_LEARNED_SOMETHING;
                 }
                 it = 0;
                 if (otmp->obroken)
+/*JP
                     verb = "fix";
+*/
+                    verb = "\8fC\95\9c\82·\82é";
                 else if (!otmp->olocked)
+/*JP
                     verb = "lock", it = 1;
+*/
+                    verb = "\8c®\82ð\82©\82¯\82é", it = 1;
                 else if (picktyp != LOCK_PICK)
+/*JP
                     verb = "unlock", it = 1;
+*/
+                    verb = "\8c®\82ð\82Í\82¸\82·", it = 1;
                 else
+/*JP
                     verb = "pick";
+*/
+                    verb = "\82±\82\82 \82¯\82é";
 
                 /* "There is <a box> here; <verb> <it|its lock>?" */
+/*JP
                 Sprintf(qsfx, " here; %s %s?", verb, it ? "it" : "its lock");
+*/
+                Sprintf(qsfx, "\82ª\82 \82é\81D%s\81H", verb);
+#if 0 /*JP*/
                 (void) safe_qbuf(qbuf, "There is ", qsfx, otmp, doname,
                                  ansimpleoname, "a box");
+#else
+                (void) safe_qbuf(qbuf, "\82±\82±\82É\82Í", qsfx, otmp, doname,
+                                 ansimpleoname, "\94 ");
+#endif
                 otmp->lknown = 1;
 
                 c = ynq(qbuf);
@@ -342,12 +457,20 @@ struct obj *pick;
                     continue;
 
                 if (otmp->obroken) {
+/*JP
                     You_cant("fix its broken lock with %s.", doname(pick));
+*/
+                    You("\89ó\82ê\82½\8c®\82ð%s\82Å\8fC\95\9c\82Å\82«\82È\82¢\81D", doname(pick));
                     return PICKLOCK_LEARNED_SOMETHING;
                 } else if (picktyp == CREDIT_CARD && !otmp->olocked) {
                     /* credit cards are only good for unlocking */
+#if 0 /*JP*/
                     You_cant("do that with %s.",
                              an(simple_typename(picktyp)));
+#else
+                    pline("%s\82\82á\82»\82ñ\82È\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+                          simple_typename(picktyp));
+#endif
                     return PICKLOCK_LEARNED_SOMETHING;
                 }
                 switch (picktyp) {
@@ -373,14 +496,20 @@ struct obj *pick;
             }
         if (c != 'y') {
             if (!count)
+/*JP
                 There("doesn't seem to be any sort of lock here.");
+*/
+                pline("\82±\82±\82É\82Í\8c®\82ð\82©\82¯\82é\82æ\82¤\82È\95¨\82Í\82È\82¢\82æ\82¤\82¾\81D");
             return PICKLOCK_LEARNED_SOMETHING; /* decided against all boxes */
         }
     } else { /* pick the lock in a door */
         struct monst *mtmp;
 
         if (u.utrap && u.utraptype == TT_PIT) {
+/*JP
             You_cant("reach over the edge of the pit.");
+*/
+            pline("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\82Å\82Í\93Í\82©\82È\82¢\81D");
             return PICKLOCK_LEARNED_SOMETHING;
         }
 
@@ -390,10 +519,17 @@ struct obj *pick;
             && mtmp->m_ap_type != M_AP_OBJECT) {
             if (picktyp == CREDIT_CARD
                 && (mtmp->isshk || mtmp->data == &mons[PM_ORACLE]))
+/*JP
                 verbalize("No checks, no credit, no problem.");
+*/
+                verbalize("\82¢\82Â\82à\83j\83R\83j\83R\8c»\8bà\95¥\82¢\81D");
             else
+#if 0 /*JP*/
                 pline("I don't think %s would appreciate that.",
                       mon_nam(mtmp));
+#else
+                pline("%s\82ª\82»\82Ì\89¿\92l\82ð\94F\82ß\82é\82Æ\82Í\8ev\82¦\82È\82¢\81D", mon_nam(mtmp));
+#endif
             return PICKLOCK_LEARNED_SOMETHING;
         } else if (mtmp && is_door_mappear(mtmp)) {
             /* "The door actually was a <mimic>!" */
@@ -404,30 +540,53 @@ struct obj *pick;
         }
         if (!IS_DOOR(door->typ)) {
             if (is_drawbridge_wall(cc.x, cc.y) >= 0)
+/*JP
                 You("%s no lock on the drawbridge.", Blind ? "feel" : "see");
+*/
+                pline("\92µ\82Ë\8b´\82É\82Í\8c®\82ª\82È\82¢%s\81D", Blind ? "\82æ\82¤\82¾" : "\82æ\82¤\82É\8c©\82¦\82é");
             else
+/*JP
                 You("%s no door there.", Blind ? "feel" : "see");
+*/
+                pline("\82±\82±\82É\82Í\94à\82ª\82È\82¢%s\81D", Blind ? "\82æ\82¤\82¾" : "\82æ\82¤\82É\8c©\82¦\82é");
             return PICKLOCK_LEARNED_SOMETHING;
         }
         switch (door->doormask) {
         case D_NODOOR:
+/*JP
             pline("This doorway has no door.");
+*/
+            pline("\82±\82Ì\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
             return PICKLOCK_LEARNED_SOMETHING;
         case D_ISOPEN:
+/*JP
             You("cannot lock an open door.");
+*/
+            pline("\8aJ\82¢\82Ä\82é\94à\82É\82Í\8c®\82ð\82©\82¯\82ç\82ê\82È\82¢\81D");
             return PICKLOCK_LEARNED_SOMETHING;
         case D_BROKEN:
+/*JP
             pline("This door is broken.");
+*/
+            pline("\82±\82Ì\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
             return PICKLOCK_LEARNED_SOMETHING;
         default:
             /* credit cards are only good for unlocking */
             if (picktyp == CREDIT_CARD && !(door->doormask & D_LOCKED)) {
+/*JP
                 You_cant("lock a door with a credit card.");
+*/
+                You("\83N\83\8c\83W\83b\83g\83J\81[\83h\82Å\94à\82É\8c®\82ð\82©\82¯\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
                 return PICKLOCK_LEARNED_SOMETHING;
             }
 
+#if 0 /*JP*/
             Sprintf(qbuf, "%s it?",
                     (door->doormask & D_LOCKED) ? "Unlock" : "Lock");
+#else
+            Sprintf(qbuf, "%s\82Ü\82·\82©\81H",
+                    (door->doormask & D_LOCKED) ? "\82Í\82¸\82µ" : "\82©\82¯" );
+#endif
 
             c = yn(qbuf);
             if (c == 'n')
@@ -476,11 +635,19 @@ doforce()
                   || objects[uwep->otyp].oc_skill == P_FLAIL
                   || objects[uwep->otyp].oc_skill > P_LANCE)
                : uwep->oclass != ROCK_CLASS)) {
+#if 0 /*JP*/
         You_cant("force anything %s weapon.",
                  !uwep ? "when not wielding a"
                        : (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep))
                              ? "without a proper"
                              : "with that");
+#else
+        You_cant("%s\95\90\8aí\82È\82µ\82Å\8c®\82ð\82±\82\8aJ\82¯\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+                 !uwep ? "\91\95\94õ\82µ\82Ä\82¢\82é"
+                       : (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep))
+                             ? "\93K\90Ø\82È"
+                             : "");
+#endif
         return 0;
     }
     if (!can_reach_floor(TRUE)) {
@@ -490,8 +657,14 @@ doforce()
 
     picktyp = is_blade(uwep) && !is_pick(uwep);
     if (xlock.usedtime && xlock.box && picktyp == xlock.picktyp) {
+/*JP
         You("resume your attempt to force the lock.");
+*/
+        pline("\8c®\82ð\82±\82\82 \82¯\82é\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D");
+/*JP
         set_occupation(forcelock, "forcing the lock", 0);
+*/
+        set_occupation(forcelock, "\8c®\82ð\82±\82\82 \82¯\82é", 0);
         return 1;
     }
 
@@ -500,13 +673,23 @@ doforce()
     for (otmp = level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere)
         if (Is_box(otmp)) {
             if (otmp->obroken || !otmp->olocked) {
+#if 0 /*JP*/
                 There("is %s here, but its lock is already %s.", doname(otmp),
                       otmp->obroken ? "broken" : "unlocked");
+#else
+                pline("\82±\82±\82É\82Í%s\82ª\82 \82é\81C\82µ\82©\82µ\82»\82Ì\8c®\82Í\82à\82¤%s\81D", doname(otmp),
+                      otmp->obroken ? "\89ó\82ê\82Ä\82¢\82é" : "\82Í\82¸\82³\82ê\82Ä\82¢\82é");
+#endif
                 otmp->lknown = 1;
                 continue;
             }
+#if 0 /*JP*/
             (void) safe_qbuf(qbuf, "There is ", " here; force its lock?",
                              otmp, doname, ansimpleoname, "a box");
+#else
+            (void) safe_qbuf(qbuf, "\82±\82±\82É\82Í", "\82ª\82 \82é\81C\8c®\82ð\82±\82\8aJ\82¯\82Ü\82·\82©\81H",
+                             otmp, doname, ansimpleoname, "\94 ");
+#endif
             otmp->lknown = 1;
 
             c = ynq(qbuf);
@@ -516,9 +699,15 @@ doforce()
                 continue;
 
             if (picktyp)
+/*JP
                 You("force %s into a crack and pry.", yname(uwep));
+*/
+                You("%s\82ð\82·\82«\8aÔ\82É\8d·\82µ\82±\82ñ\82Å\82±\82\82 \82¯\82æ\82¤\82Æ\82µ\82½\81D",xname(uwep));
             else
+/*JP
                 You("start bashing it with %s.", yname(uwep));
+*/
+                pline("%s\82Å\89£\82è\82Â\82¯\82½\81D", xname(uwep));
             xlock.box = otmp;
             xlock.chance = objects[uwep->otyp].oc_wldam * 2;
             xlock.picktyp = picktyp;
@@ -527,9 +716,15 @@ doforce()
         }
 
     if (xlock.box)
+/*JP
         set_occupation(forcelock, "forcing the lock", 0);
+*/
+        set_occupation(forcelock, "\8c®\82ð\82±\82\82 \82¯\82é", 0);
     else
+/*JP
         You("decide not to force the issue.");
+*/
+        pline("\82»\82ê\82Í\96³\88Ó\96¡\82È\8ds\88×\82¾\81D");
     return 1;
 }
 
@@ -565,12 +760,18 @@ int x, y;
     int res = 0;
 
     if (nohands(youmonst.data)) {
+/*JP
         You_cant("open anything -- you have no hands!");
+*/
+        You("\89½\82à\8aJ\82¯\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I");
         return 0;
     }
 
     if (u.utrap && u.utraptype == TT_PIT) {
+/*JP
         You_cant("reach over the edge of the pit.");
+*/
+        pline("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\93Í\82©\82È\82¢\81D");
         return 0;
     }
 
@@ -606,11 +807,20 @@ int x, y;
     if (portcullis || !IS_DOOR(door->typ)) {
         /* closed portcullis or spot that opened bridge would span */
         if (is_db_wall(cc.x, cc.y) || door->typ == DRAWBRIDGE_UP)
+/*JP
             There("is no obvious way to open the drawbridge.");
+*/
+            pline("\92µ\82Ë\8b´\82ð\8d~\82ë\82·\96¾\94\92\82È\95û\96@\82Í\82È\82¢\81D");
         else if (portcullis || door->typ == DRAWBRIDGE_DOWN)
+/*JP
             pline_The("drawbridge is already open.");
+*/
+            pline_The("\92µ\82Ë\8b´\82Í\82à\82¤\8aJ\82¢\82Ä\82¢\82é\81D");
         else
+/*JP
             You("%s no door there.", Blind ? "feel" : "see");
+*/
+            pline("\82»\82±\82É\82Í\94à\82Í\82È\82¢\82æ\82¤%s\81D", Blind ? "\82¾" : "\82É\8c©\82¦\82é");
         return res;
     }
 
@@ -619,32 +829,56 @@ int x, y;
 
         switch (door->doormask) {
         case D_BROKEN:
+/*JP
             mesg = " is broken";
+*/
+            mesg = "\94à\82Í\89ó\82ê\82Ä\82¢\82é";
             break;
         case D_NODOOR:
+/*JP
             mesg = "way has no door";
+*/
+            mesg = "\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢";
             break;
         case D_ISOPEN:
+/*JP
             mesg = " is already open";
+*/
+            mesg = "\94à\82Í\82à\82¤\8aJ\82¢\82Ä\82¢\82é";
             break;
         default:
+/*JP
             mesg = " is locked";
+*/
+            mesg = "\94à\82É\82Í\8c®\82ª\8a|\82©\82Á\82Ä\82¢\82é";
             break;
         }
+/*JP
         pline("This door%s.", mesg);
+*/
+        pline("%s\81D", mesg);
         return res;
     }
 
     if (verysmall(youmonst.data)) {
+/*JP
         pline("You're too small to pull the door open.");
+*/
+        You("\94à\82ð\89\9f\82·\82É\82Í\8f¬\82³\82·\82¬\82é\81D");
         return res;
     }
 
     /* door is known to be CLOSED */
     if (rnl(20) < (ACURRSTR + ACURR(A_DEX) + ACURR(A_CON)) / 3) {
+/*JP
         pline_The("door opens.");
+*/
+        pline("\94à\82Í\8aJ\82¢\82½\81D");
         if (door->doormask & D_TRAPPED) {
+/*JP
             b_trapped("door", FINGER);
+*/
+            b_trapped("\94à", FINGER);
             door->doormask = D_NODOOR;
             if (*in_rooms(cc.x, cc.y, SHOPBASE))
                 add_damage(cc.x, cc.y, 0L);
@@ -654,7 +888,10 @@ int x, y;
         unblock_point(cc.x, cc.y); /* vision: new see through there */
     } else {
         exercise(A_STR, TRUE);
+/*JP
         pline_The("door resists!");
+*/
+        pline("\82È\82©\82È\82©\8aJ\82©\82È\82¢\81I");
     }
 
     return 1;
@@ -673,12 +910,23 @@ boolean quietly;
         if (!quietly) {
             if ((mtmp->mx != x) || (mtmp->my != y)) {
                 /* worm tail */
+#if 0 /*JP*/
                 pline("%s%s blocks the way!",
                       !canspotmon(mtmp) ? Something : s_suffix(Monnam(mtmp)),
                       !canspotmon(mtmp) ? "" : " tail");
+#else
+                pline("%s%s\82ª\97§\82¿\82Ó\82³\82ª\82Á\82Ä\82¢\82é\81I",
+                      !canspotmon(mtmp) ? "\89½\82©" : Monnam(mtmp),
+                      !canspotmon(mtmp) ? "" : "\82Ì\90K\94ö");
+#endif
             } else {
+#if 0 /*JP*/
                 pline("%s blocks the way!",
                       !canspotmon(mtmp) ? "Some creature" : Monnam(mtmp));
+#else
+                pline("%s\82ª\97§\82¿\82Ó\82³\82ª\82Á\82Ä\82¢\82é\81I",
+                      !canspotmon(mtmp) ? "\89½\8eÒ\82©" : Monnam(mtmp));
+#endif
             }
         }
         if (!canspotmon(mtmp))
@@ -688,7 +936,10 @@ boolean quietly;
     if (OBJ_AT(x, y)) {
     objhere:
         if (!quietly)
+/*JP
             pline("%s's in the way.", Something);
+*/
+            pline("\89½\82©\82ª\8fo\93ü\8cû\82É\82 \82é\81D");
         return TRUE;
     }
     return FALSE;
@@ -704,12 +955,18 @@ doclose()
     int res = 0;
 
     if (nohands(youmonst.data)) {
+/*JP
         You_cant("close anything -- you have no hands!");
+*/
+        You("\95Â\82ß\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I");
         return 0;
     }
 
     if (u.utrap && u.utraptype == TT_PIT) {
+/*JP
         You_cant("reach over the edge of the pit.");
+*/
+        pline("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\93Í\82©\82È\82¢\81D");
         return 0;
     }
 
@@ -719,7 +976,10 @@ doclose()
     x = u.ux + u.dx;
     y = u.uy + u.dy;
     if ((x == u.ux) && (y == u.uy)) {
+/*JP
         You("are in the way!");
+*/
+        pline("\82 \82È\82½\82ª\8fo\93ü\8cû\82É\82¢\82é\82Ì\82Å\95Â\82Ü\82ç\82È\82¢\81I");
         return 1;
     }
 
@@ -748,43 +1008,70 @@ doclose()
     if (portcullis || !IS_DOOR(door->typ)) {
         /* is_db_wall: closed portcullis */
         if (is_db_wall(x, y) || door->typ == DRAWBRIDGE_UP)
+/*JP
             pline_The("drawbridge is already closed.");
+*/
+            pline_The("\92µ\82Ë\8b´\82Í\82à\82¤\95Â\82\82Ä\82¢\82é\81D");
         else if (portcullis || door->typ == DRAWBRIDGE_DOWN)
+/*JP
             There("is no obvious way to close the drawbridge.");
+*/
+            pline("\92µ\82Ë\8b´\82ð\95Â\82ß\82é\96¾\94\92\82È\95û\96@\82Í\82È\82¢\81D");
         else {
         nodoor:
+/*JP
             You("%s no door there.", Blind ? "feel" : "see");
+*/
+            pline("\82»\82±\82É\94à\82Í\82È\82¢\82æ\82¤%s\81D", Blind ? "\82¾" : "\82É\8c©\82¦\82é");
         }
         return res;
     }
 
     if (door->doormask == D_NODOOR) {
+/*JP
         pline("This doorway has no door.");
+*/
+        pline("\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
         return res;
     } else if (obstructed(x, y, FALSE)) {
         return res;
     } else if (door->doormask == D_BROKEN) {
+/*JP
         pline("This door is broken.");
+*/
+        pline("\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
         return res;
     } else if (door->doormask & (D_CLOSED | D_LOCKED)) {
+/*JP
         pline("This door is already closed.");
+*/
+        pline("\94à\82Í\82à\82¤\95Â\82\82Ä\82¢\82é\81D");
         return res;
     }
 
     if (door->doormask == D_ISOPEN) {
         if (verysmall(youmonst.data) && !u.usteed) {
+/*JP
             pline("You're too small to push the door closed.");
+*/
+            You("\8f¬\82³\82·\82¬\82Ä\94à\82ð\95Â\82ß\82ç\82ê\82È\82¢\81D");
             return res;
         }
         if (u.usteed
             || rn2(25) < (ACURRSTR + ACURR(A_DEX) + ACURR(A_CON)) / 3) {
+/*JP
             pline_The("door closes.");
+*/
+            pline("\94à\82Í\95Â\82\82½\81D");
             door->doormask = D_CLOSED;
             feel_newsym(x, y); /* the hero knows she closed it */
             block_point(x, y); /* vision:  no longer see there */
         } else {
             exercise(A_STR, TRUE);
+/*JP
             pline_The("door resists!");
+*/
+            pline("\82È\82©\82È\82©\95Â\82Ü\82ç\82È\82¢\81I");
         }
     }
 
@@ -803,7 +1090,10 @@ struct obj *obj, *otmp; /* obj *is* a box */
     case WAN_LOCKING:
     case SPE_WIZARD_LOCK:
         if (!obj->olocked) { /* lock it; fix if broken */
+/*JP
             pline("Klunk!");
+*/
+            pline("\83J\83`\81I");
             obj->olocked = 1;
             obj->obroken = 0;
             if (Role_if(PM_WIZARD))
@@ -816,7 +1106,10 @@ struct obj *obj, *otmp; /* obj *is* a box */
     case WAN_OPENING:
     case SPE_KNOCK:
         if (obj->olocked) { /* unlock; couldn't be broken */
+/*JP
             pline("Klick!");
+*/
+            pline("\83R\83\93\83R\83\93\81I");
             obj->olocked = 0;
             res = 1;
             if (Role_if(PM_WIZARD))
@@ -848,8 +1141,14 @@ int x, y;
     boolean res = TRUE;
     int loudness = 0;
     const char *msg = (const char *) 0;
+/*JP
     const char *dustcloud = "A cloud of dust";
+*/
+    const char *dustcloud = "\82Ù\82±\82è";
+/*JP
     const char *quickly_dissipates = "quickly dissipates";
+*/
+    const char *quickly_dissipates = "\82 \82Á\82Æ\8c¾\82¤\82Ü\82É\94ò\82Ñ\8eU\82Á\82½";
     boolean mysterywand = (otmp->oclass == WAND_CLASS && !otmp->dknown);
 
     if (door->typ == SDOOR) {
@@ -862,7 +1161,10 @@ int x, y;
             door->doormask = D_CLOSED | (door->doormask & D_TRAPPED);
             newsym(x, y);
             if (cansee(x, y))
+/*JP
                 pline("A door appears in the wall!");
+*/
+                pline("\95Ç\82©\82ç\94à\82ª\8c»\82ê\82½\81I");
             if (otmp->otyp == WAN_OPENING || otmp->otyp == SPE_KNOCK)
                 return TRUE;
             break; /* striking: continue door handling below */
@@ -880,19 +1182,31 @@ int x, y;
             boolean vis = cansee(x, y);
             /* Can't have real locking in Rogue, so just hide doorway */
             if (vis)
+/*JP
                 pline("%s springs up in the older, more primitive doorway.",
+*/
+                pline("\8cÃ\82­\82³\82¢\81C\8c´\8en\93I\82È\8fo\93ü\8cû\82É%s\82ª\97§\82¿\82±\82ß\82½\81D",
                       dustcloud);
             else
+/*JP
                 You_hear("a swoosh.");
+*/
+                You_hear("\83V\83\85\81[\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             if (obstructed(x, y, mysterywand)) {
                 if (vis)
+/*JP
                     pline_The("cloud %s.", quickly_dissipates);
+*/
+                    pline("\82Ù\82±\82è\82Í%s\81D",quickly_dissipates);
                 return FALSE;
             }
             block_point(x, y);
             door->typ = SDOOR;
             if (vis)
+/*JP
                 pline_The("doorway vanishes!");
+*/
+                pline("\8fo\93ü\8cû\82Í\8fÁ\82¦\82½\81I");
             newsym(x, y);
             return TRUE;
         }
@@ -902,24 +1216,41 @@ int x, y;
         /* & trap doors, but is it ever OK for anything else? */
         if (t_at(x, y)) {
             /* maketrap() clears doormask, so it should be NODOOR */
+#if 0 /*JP*/
             pline("%s springs up in the doorway, but %s.", dustcloud,
                   quickly_dissipates);
+#else
+            pline("%s\82ª\8fo\93ü\8cû\82É\97§\82¿\82±\82ß\82½\81C\82µ\82©\82µ%s", dustcloud,
+                  quickly_dissipates);
+#endif
             return FALSE;
         }
 
         switch (door->doormask & ~D_TRAPPED) {
         case D_CLOSED:
+/*JP
             msg = "The door locks!";
+*/
+                msg = "\94à\82É\8c®\82ª\82©\82©\82Á\82½\81I";
             break;
         case D_ISOPEN:
+/*JP
             msg = "The door swings shut, and locks!";
+*/
+            msg = "\94à\82Í\90¨\82¢\82æ\82­\95Â\82Ü\82è\81C\8c®\82ª\82©\82©\82Á\82½\81I";
             break;
         case D_BROKEN:
+/*JP
             msg = "The broken door reassembles and locks!";
+*/
+            msg = "\89ó\82ê\82½\94à\82ª\8dÄ\8d\\90¬\82³\82ê\81C\8c®\82ª\82©\82©\82Á\82½\81I";
             break;
         case D_NODOOR:
             msg =
+/*JP
                "A cloud of dust springs up and assembles itself into a door!";
+*/
+                "\82Ù\82±\82è\82ª\82½\82¿\82±\82ß\81C\8fW\82Ü\82Á\82Ä\94à\82É\82È\82Á\82½\81I";
             break;
         default:
             res = FALSE;
@@ -932,7 +1263,10 @@ int x, y;
     case WAN_OPENING:
     case SPE_KNOCK:
         if (door->doormask & D_LOCKED) {
+/*JP
             msg = "The door unlocks!";
+*/
+            msg = "\94à\82Ì\8c®\82Í\82Í\82¸\82ê\82½\81I";
             door->doormask = D_CLOSED | (door->doormask & D_TRAPPED);
         } else
             res = FALSE;
@@ -945,9 +1279,15 @@ int x, y;
                     (void) mb_trapped(m_at(x, y));
                 else if (flags.verbose) {
                     if (cansee(x, y))
+/*JP
                         pline("KABOOM!!  You see a door explode.");
+*/
+                        pline("\82¿\82ã\82Ç\81[\82ñ\81I\94à\82ª\94\9a\94­\82µ\82½\81D");
                     else
+/*JP
                         You_hear("a distant explosion.");
+*/
+                        You_hear("\89\93\82­\82Ì\94\9a\94­\89¹\82ð\95·\82¢\82½\81D");
                 }
                 door->doormask = D_NODOOR;
                 unblock_point(x, y);
@@ -958,9 +1298,15 @@ int x, y;
             door->doormask = D_BROKEN;
             if (flags.verbose) {
                 if (cansee(x, y))
+/*JP
                     pline_The("door crashes open!");
+*/
+                    pline("\94à\82Í\89ó\82ê\8aJ\82¢\82½\81I");
                 else
+/*JP
                     You_hear("a crashing sound.");
+*/
+                    You_hear("\89½\82©\82ª\89ó\82ê\82é\89¹\82ð\95·\82¢\82½\81D");
             }
             unblock_point(x, y);
             newsym(x, y);
@@ -1001,7 +1347,14 @@ struct obj *otmp;
     long save_Blinded;
 
     if (otmp->oclass == POTION_CLASS) {
+#if 0 /*JP*/
         You("%s %s shatter!", Blind ? "hear" : "see", an(bottlename()));
+#else
+        if (Blind)
+            You_hear("%s\82ª\8a\84\82ê\82é\89¹\82ð\95·\82¢\82½\81I", bottlename());
+        else
+            pline("%s\82ª\8a\84\82ê\82½\81I", bottlename());
+#endif
         if (!breathless(youmonst.data) || haseyes(youmonst.data))
             potionbreathe(otmp);
         return;
@@ -1014,28 +1367,52 @@ struct obj *otmp;
     Blinded = save_Blinded;
     switch (objects[otmp->otyp].oc_material) {
     case PAPER:
+/*JP
         disposition = "is torn to shreds";
+*/
+        disposition = "\82Í\90¡\92f\82³\82ê\82½";
         break;
     case WAX:
+/*JP
         disposition = "is crushed";
+*/
+        disposition = "\82ð\8f°\82É\82Ô\82¿\82Ü\82¯\82½";
         break;
     case VEGGY:
+/*JP
         disposition = "is pulped";
+*/
+        disposition = "\82Í\82Ç\82ë\82Ç\82ë\82É\82È\82Á\82½";
         break;
     case FLESH:
+/*JP
         disposition = "is mashed";
+*/
+        disposition = "\82Í\82Ç\82ë\82Ç\82ë\82É\82È\82Á\82½";
         break;
     case GLASS:
+/*JP
         disposition = "shatters";
+*/
+        disposition = "\82Í\8a\84\82ê\82½";
         break;
     case WOOD:
+/*JP
         disposition = "splinters to fragments";
+*/
+        disposition = "\82Í\82©\82¯\82ç\82É\82È\82Á\82½";
         break;
     default:
+/*JP
         disposition = "is destroyed";
+*/
+        disposition = "\82Í\89ó\82ê\82½";
         break;
     }
+/*JP
     pline("%s %s!", An(thing), disposition);
+*/
+    pline("%s%s\81I", thing, disposition);
 }
 
 /*lock.c*/
index 0a38f14..4503089 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #ifdef MAIL
@@ -249,8 +254,13 @@ coord *startp; /* starting position (read only) */
 }
 
 /* Let the mail daemon have a larger vocabulary. */
+#if 0 /*JP*/
 static NEARDATA const char *mail_text[] = { "Gangway!", "Look out!",
                                             "Pardon me!" };
+#else
+static NEARDATA const char *mail_text[] = { "\82Ç\82¢\82½\82Ç\82¢\82½\81I", "\8bC\82ð\82Â\82¯\82ë\81I",
+                                            "\82\82á\82Ü\82·\82é\82æ\81I" };
+#endif
 #define md_exclamations() (mail_text[rn2(3)])
 
 /*
@@ -312,7 +322,10 @@ register int tx, ty; /* destination of mail daemon */
         if ((mon = m_at(fx, fy)) != 0) /* save monster at this position */
             verbalize1(md_exclamations());
         else if (fx == u.ux && fy == u.uy)
+/*JP
             verbalize("Excuse me.");
+*/
+            verbalize("\82¿\82å\82Á\82Æ\82µ\82Â\82ê\82¢\81D");
 
         place_monster(md, fx, fy); /* put md down */
         newsym(fx, fy);            /* see it */
@@ -337,7 +350,10 @@ register int tx, ty; /* destination of mail daemon */
     if ((mon = m_at(fx, fy)) != 0) {
         place_monster(md, fx, fy); /* display md with text below */
         newsym(fx, fy);
+/*JP
         verbalize("This place's too crowded.  I'm outta here.");
+*/
+        verbalize("\82±\82±\82Í\8d¬\82Ý\82·\82¬\81D\82±\82±\82Å\91Ò\82Á\82Ä\82é\82æ\81D");
 
         if ((mon->mx != fx) || (mon->my != fy)) /* put mon back */
             place_worm_seg(mon, fx, fy);
@@ -377,7 +393,11 @@ struct mail_info *info;
         goto go_back;
 
     message_seen = TRUE;
+#if 0 /*JP*/
     verbalize("%s, %s!  %s.", Hello(md), plname, info->display_txt);
+#else
+    verbalize("%s\81I%s\81D", Hello(md), info->display_txt);
+#endif
 
     if (info->message_typ) {
         struct obj *obj = mksobj(SCR_MAIL, FALSE, FALSE);
@@ -388,10 +408,18 @@ struct mail_info *info;
             new_omailcmd(obj, info->response_cmd);
 
         if (distu(md->mx, md->my) > 2)
+/*JP
             verbalize("Catch!");
+*/
+            verbalize("\82Ù\82ç\82æ\81I");
         display_nhwindow(WIN_MESSAGE, FALSE);
+#if 0 /*JP*/
         obj = hold_another_object(obj, "Oops!", (const char *) 0,
                                   (const char *) 0);
+#else
+        obj = hold_another_object(obj, "\82¨\82Á\82Æ\81I", (const char *) 0,
+                                  (const char *) 0);
+#endif
     }
 
 /* zip back to starting location */
@@ -401,7 +429,10 @@ go_back:
 /* deliver some classes of messages even if no daemon ever shows up */
 give_up:
     if (!message_seen && info->message_typ == MSG_OTHER)
+/*JP
         pline("Hark!  \"%s.\"", info->display_txt);
+*/
+        pline("\81u%s\81D\81v\82Æ\8c¾\82¤\82±\82Æ\82¾\81I", info->display_txt);
 }
 
 #if !defined(UNIX) && !defined(VMS)
@@ -419,7 +450,10 @@ ckmailstatus()
     }
     if (--mustgetmail <= 0) {
         static struct mail_info deliver = { MSG_MAIL,
+/*JP
                                             "I have some mail for you", 0,
+*/
+                                            "\83\81\81[\83\8b\82ð\8e\9d\82Á\82Ä\82«\82½\82æ", 0,
                                             0 };
         newmail(&deliver);
         mustgetmail = -1;
@@ -433,7 +467,10 @@ struct obj *otmp;
 {
     static char *junk[] = {
         NULL, /* placeholder for "Report bugs to <devteam@nethack.org>.", */
+/*JP
         "Please disregard previous letter.", "Welcome to NetHack.",
+*/
+        "\91O\82Ì\83\81\81[\83\8b\82Í\96Y\82ê\82Ä\82­\82¾\82³\82¢\81D", "NetHack\82Ö\82æ\82¤\82±\82»\81I",
 #ifdef AMIGA
         "Only Amiga makes it possible.", "CATS have all the answers.",
 #endif
@@ -455,9 +492,15 @@ struct obj *otmp;
 #undef BUGS_FORMAT
     }
     if (Blind) {
+/*JP
         pline("Unfortunately you cannot see what it says.");
+*/
+        pline("\8ec\94O\82È\82ª\82ç\89½\82Æ\8f\91\82¢\82Ä\82 \82é\82Ì\82©\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
     } else
+/*JP
         pline("It reads:  \"%s\"", junk[rn2(SIZE(junk))]);
+*/
+        pline("\82»\82ê\82ð\93Ç\82ñ\82¾\81F\"%s\"", junk[rn2(SIZE(junk))]);
 }
 
 #endif /* !UNIX && !VMS */
@@ -486,10 +529,16 @@ ckmailstatus()
         if (nmstat.st_size) {
             static struct mail_info deliver = {
 #ifndef NO_MAILREADER
+/*JP
                 MSG_MAIL, "I have some mail for you",
+*/
+                MSG_MAIL, "\83\81\83C\83\8b\82ð\8e\9d\82Á\82Ä\82«\82½\82æ",
 #else
                 /* suppress creation and delivery of scroll of mail */
+/*JP
                 MSG_OTHER, "You have some mail in the outside world",
+*/
+                MSG_OTHER, "\8aO\82Ì\90¢\8aE\82©\82ç\82Ì\83\81\81[\83\8b\82¾",
 #endif
                 0, 0
             };
index 102379e..534088d 100644 (file)
@@ -1730,16 +1730,28 @@ struct monst *mtmp, *victim;
         ptr = &mons[newtype];
         if (mvitals[newtype].mvflags & G_GENOD) { /* allow G_EXTINCT */
             if (canspotmon(mtmp))
+#if 0 /*JP*/
                 pline("As %s grows up into %s, %s %s!", mon_nam(mtmp),
                       an(ptr->mname), mhe(mtmp),
                       nonliving(ptr) ? "expires" : "dies");
+#else
+                pline("%s\82ª\90¬\92·\82µ\82Ä%s\82É\82È\82é\82Æ%s\82µ\82Ü\82Á\82½\81I", mon_nam(mtmp),
+                      ptr->mname,
+                      nonliving(ptr) ? "\8fÁ\82¦\82Ä" : "\8e\80\82ñ\82Å");
+#endif
             set_mon_data(mtmp, ptr, -1); /* keep mvitals[] accurate */
             mondied(mtmp);
             return (struct permonst *) 0;
         } else if (canspotmon(mtmp)) {
+#if 0 /*JP*/
             pline("%s %s %s.", Monnam(mtmp),
                   humanoid(ptr) ? "becomes" : "grows up into",
                   an(ptr->mname));
+#else
+            pline("%s\82Í%s\82É%s\81D", Monnam(mtmp),
+                  ptr->mname,
+                  humanoid(ptr) ? "\82È\82Á\82½" : "\90¬\92·\82µ\82½");
+#endif
         }
         set_mon_data(mtmp, ptr, 1);    /* preserve intrinsics */
         newsym(mtmp->mx, mtmp->my);    /* color may change */
index 24463a5..8f3b9c6 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* monster mage spells */
@@ -52,21 +57,39 @@ boolean undirected;
         const char *point_msg; /* spellcasting monsters are impolite */
 
         if (undirected)
+/*JP
             point_msg = "all around, then curses";
+*/
+            point_msg = "\82 \82½\82è\88ê\96Ê\82ð";
         else if ((Invis && !perceives(mtmp->data)
                   && (mtmp->mux != u.ux || mtmp->muy != u.uy))
                  || is_obj_mappear(&youmonst, STRANGE_OBJECT)
                  || u.uundetected)
+/*JP
             point_msg = "and curses in your general direction";
+*/
+            point_msg = "\82 \82È\82½\82Ì\82¢\82é\82 \82½\82è\82ð";
         else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy))
+/*JP
             point_msg = "and curses at your displaced image";
+*/
+            point_msg = "\82 \82È\82½\82Ì\8c\89e\82ð";
         else
+/*JP
             point_msg = "at you, then curses";
+*/
+            point_msg = "\82 \82È\82½\82ð";
 
+/*JP
         pline("%s points %s.", Monnam(mtmp), point_msg);
+*/
+        pline("%s\82Í%s\8ew\8d·\82µ\81C\8eô\82¢\82ð\82©\82¯\82½\81D", Monnam(mtmp), point_msg);
     } else if ((!(moves % 4) || !rn2(4))) {
         if (!Deaf)
+/*JP
             Norep("You hear a mumbled curse.");
+*/
+            Norep("\8eô\82¢\82Ì\8c¾\97t\82ð\82Â\82Ô\82â\82­\90º\82ð\95·\82¢\82½\81D");
     }
 }
 
@@ -240,20 +263,31 @@ boolean foundyou;
        penalizing mspec_used. */
     if (!foundyou && thinks_it_foundyou
         && !is_undirected_spell(mattk->adtyp, spellnum)) {
+#if 0 /*JP*/
         pline("%s casts a spell at %s!",
               canseemon(mtmp) ? Monnam(mtmp) : "Something",
               levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water"
                                                       : "thin air");
+#else
+        pline("%s\82Í\89½\82à\82È\82¢%s\82É\96\82\96@\82ð\82©\82¯\82½\81I",
+              canseemon(mtmp) ? Monnam(mtmp) : "\89½\8eÒ\82©",
+              levl[mtmp->mux][mtmp->muy].typ == WATER ? "\90\85\92\86"
+                                                      : "\8bó\8aÔ");
+#endif
         return (0);
     }
 
     nomul(0);
     if (rn2(ml * 10) < (mtmp->mconf ? 100 : 20)) { /* fumbled attack */
         if (canseemon(mtmp) && !Deaf)
+/*JP
             pline_The("air crackles around %s.", mon_nam(mtmp));
+*/
+            pline("%s\82Ì\89ñ\82è\82Ì\8bó\8bC\82ª\83p\83`\83p\83`\89¹\82ð\82½\82Ä\82Ä\82¢\82é\81D", mon_nam(mtmp));
         return (0);
     }
     if (canspotmon(mtmp) || !is_undirected_spell(mattk->adtyp, spellnum)) {
+#if 0 /*JP*/
         pline("%s casts a spell%s!",
               canspotmon(mtmp) ? Monnam(mtmp) : "Something",
               is_undirected_spell(mattk->adtyp, spellnum)
@@ -265,6 +299,21 @@ boolean foundyou;
                            && (mtmp->mux != u.ux || mtmp->muy != u.uy))
                               ? " at your displaced image"
                               : " at you");
+#else
+        char *who = (canspotmon(mtmp) ? Monnam(mtmp) : "\89½\8eÒ\82©");
+        if(is_undirected_spell(mattk->adtyp, spellnum)){
+            pline("%s\82Í\8eô\95\82ð\8f¥\82¦\82½\81I", who);
+        } else {
+            pline("%s\82Í\82 \82È\82½%s\82É\96\82\96@\82ð\82©\82¯\82½\81I",
+                  who,
+                  (Invisible && !perceives(mtmp->data) && 
+                   (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
+                  "\82Ì\82·\82®\82»\82Î" :
+                  (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) ?
+                  "\82Ì\8c\89e" :
+                  "");
+        }
+#endif
     }
 
     /*
@@ -290,27 +339,45 @@ boolean foundyou;
 
     switch (mattk->adtyp) {
     case AD_FIRE:
+/*JP
         pline("You're enveloped in flames.");
+*/
+        You("\89\8a\82É\82Â\82Â\82Ü\82ê\82½\81D");
         if (Fire_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("But you resist the effects.");
+*/
+            pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             dmg = 0;
         }
         burn_away_slime();
         break;
     case AD_COLD:
+/*JP
         pline("You're covered in frost.");
+*/
+        You("\95X\82É\95¢\82í\82ê\82½\81D");
         if (Cold_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("But you resist the effects.");
+*/
+            pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             dmg = 0;
         }
         break;
     case AD_MAGM:
+/*JP
         You("are hit by a shower of missiles!");
+*/
+        You("\96\82\96@\82Ì\96î\82ð\82­\82ç\82Á\82½\81I");
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline_The("missiles bounce off!");
+*/
+            pline("\96\82\96@\82Ì\96î\82Í\94½\8eË\82µ\82½\81I");
             dmg = 0;
         } else
             dmg = d((int) mtmp->m_lev / 2 + 1, 6);
@@ -354,27 +421,45 @@ int spellnum;
 
     switch (spellnum) {
     case MGC_DEATH_TOUCH:
+/*JP
         pline("Oh no, %s's using the touch of death!", mhe(mtmp));
+*/
+        pline("\82È\82ñ\82Ä\82±\82Á\82½\82¢\81C%s\82Í\8e\80\82Ì\90é\8d\90\82ð\8eg\82Á\82Ä\82¢\82é\81I", mhe(mtmp));
         if (nonliving(youmonst.data) || is_demon(youmonst.data)) {
+/*JP
             You("seem no deader than before.");
+*/
+            You("\82±\82ê\88È\8fã\8e\80\82Ë\82È\82¢\82æ\82¤\82¾\81D");
         } else if (!Antimagic && rn2(mtmp->m_lev) > 12) {
             if (Hallucination) {
+/*JP
                 You("have an out of body experience.");
+*/
+                You("\97H\91Ì\97£\92E\82ð\91Ì\8c±\82µ\82½\81D");
             } else {
                 killer.format = KILLED_BY_AN;
+/*JP
                 Strcpy(killer.name, "touch of death");
+*/
+                Strcpy(killer.name, "\8e\80\82Ì\90é\8d\90\82Å");
                 done(DIED);
             }
         } else {
             if (Antimagic)
                 shieldeff(u.ux, u.uy);
+/*JP
             pline("Lucky for you, it didn't work!");
+*/
+            pline("\89^\82Ì\82æ\82¢\82±\82Æ\82É\82È\82ñ\82Æ\82à\82È\82©\82Á\82½\81I");
         }
         dmg = 0;
         break;
     case MGC_CLONE_WIZ:
         if (mtmp->iswiz && context.no_of_wizards == 1) {
+/*JP
             pline("Double Trouble...");
+*/
+            pline("\93ñ\8fd\8bê\82¾\81D\81D\81D");
             clonewiz();
             dmg = 0;
         } else
@@ -385,49 +470,84 @@ int spellnum;
 
         count = nasty(mtmp); /* summon something nasty */
         if (mtmp->iswiz)
+/*JP
             verbalize("Destroy the thief, my pet%s!", plur(count));
+*/
+            verbalize("\93\90\91¯\82ð\8eE\82¹\81I\89ä\82ª\89º\96l\82æ\81I");
         else {
+#if 0 /*JP*/
             const char *mappear =
                 (count == 1) ? "A monster appears" : "Monsters appear";
+#endif
 
             /* messages not quite right if plural monsters created but
                only a single monster is seen */
             if (Invisible && !perceives(mtmp->data)
                 && (mtmp->mux != u.ux || mtmp->muy != u.uy))
+#if 0 /*JP*/
                 pline("%s around a spot near you!", mappear);
+#else
+                pline("\89ö\95¨\82ª\82 \82È\82½\82Ì\82·\82®\82»\82Î\82É\8c»\82ê\82½\81I");
+#endif
             else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy))
+#if 0 /*JP*/
                 pline("%s around your displaced image!", mappear);
+#else
+                pline("\89ö\95¨\82ª\82 \82È\82½\82Ì\8c\89e\82Ì\82·\82®\82»\82Î\82É\8c»\82ê\82½\81I");
+#endif
             else
+#if 0 /*JP*/
                 pline("%s from nowhere!", mappear);
+#else
+                pline("\89ö\95¨\82ª\82Ç\82±\82©\82ç\82Æ\82à\82È\82­\8c»\82ê\82½\81I");
+#endif
         }
         dmg = 0;
         break;
     }
     case MGC_AGGRAVATION:
+/*JP
         You_feel("that monsters are aware of your presence.");
+*/
+        You_feel("\89ö\95¨\82½\82¿\82ª\82 \82È\82½\82Ì\91\8dÝ\82É\8bC\95t\82¢\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         aggravate();
         dmg = 0;
         break;
     case MGC_CURSE_ITEMS:
+/*JP
         You_feel("as if you need some help.");
+*/
+        You_feel("\8f\95\82¯\82ª\95K\97v\82È\8bC\82ª\82µ\82½\81D");
         rndcurse();
         dmg = 0;
         break;
     case MGC_DESTRY_ARMR:
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("A field of force surrounds you!");
+*/
+            pline("\95s\8ev\8bc\82È\97Í\82ª\82 \82È\82½\82ð\82Æ\82è\82Ü\82¢\82½\81I");
         } else if (!destroy_arm(some_armor(&youmonst))) {
+/*JP
             Your("skin itches.");
+*/
+            You("\83\80\83Y\83\80\83Y\82µ\82½\81D");
         }
         dmg = 0;
         break;
     case MGC_WEAKEN_YOU: /* drain strength */
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             You_feel("momentarily weakened.");
+*/
+            You_feel("\88ê\8fu\8eã\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         } else {
+/*JP
             You("suddenly feel weaker!");
+*/
+            You("\93Ë\91R\8eã\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             dmg = mtmp->m_lev - 6;
             if (Half_spell_damage)
                 dmg = (dmg + 1) / 2;
@@ -440,8 +560,13 @@ int spellnum;
     case MGC_DISAPPEAR: /* makes self invisible */
         if (!mtmp->minvis && !mtmp->invis_blkd) {
             if (canseemon(mtmp))
+#if 0 /*JP*/
                 pline("%s suddenly %s!", Monnam(mtmp),
                       !See_invisible ? "disappears" : "becomes transparent");
+#else
+                pline("%s\82Í\93Ë\91R%s\81I", Monnam(mtmp),
+                      !See_invisible ? "\8fÁ\82¦\82½" : "\93§\96¾\82É\82È\82Á\82½");
+#endif
             mon_set_minvis(mtmp);
             dmg = 0;
         } else
@@ -451,10 +576,16 @@ int spellnum;
         if (Antimagic || Free_action) {
             shieldeff(u.ux, u.uy);
             if (!Stunned)
+/*JP
                 You_feel("momentarily disoriented.");
+*/
+                You("\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\81D");
             make_stunned(1L, FALSE);
         } else {
+/*JP
             You(Stunned ? "struggle to keep your balance." : "reel...");
+*/
+            You(Stunned ? "\83o\83\89\83\93\83X\82ð\8eæ\82ë\82¤\82Æ\82à\82ª\82¢\82½\81D" : "\82æ\82ë\82ß\82¢\82½\81D\81D\81D");
             dmg = d(ACURR(A_DEX) < 12 ? 6 : 4, 4);
             if (Half_spell_damage)
                 dmg = (dmg + 1) / 2;
@@ -469,7 +600,10 @@ int spellnum;
     case MGC_CURE_SELF:
         if (mtmp->mhp < mtmp->mhpmax) {
             if (canseemon(mtmp))
+/*JP
                 pline("%s looks better.", Monnam(mtmp));
+*/
+                pline("%s\82Í\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mtmp));
             /* note: player healing does 6d4; this used to do 1d8 */
             if ((mtmp->mhp += d(3, 6)) > mtmp->mhpmax)
                 mtmp->mhp = mtmp->mhpmax;
@@ -484,13 +618,25 @@ int spellnum;
             dmg = (dmg + 1) / 2;
         }
         if (dmg <= 5)
+/*JP
             You("get a slight %sache.", body_part(HEAD));
+*/
+            You("\82¿\82å\82Á\82Æ%s\92É\82ª\82µ\82½\81D",body_part(HEAD));
         else if (dmg <= 10)
+/*JP
             Your("brain is on fire!");
+*/
+            You("\93{\82è\82É\82Â\82Â\82Ü\82ê\82½\81I");
         else if (dmg <= 20)
+/*JP
             Your("%s suddenly aches painfully!", body_part(HEAD));
+*/
+            You("\93Ë\91R%s\92É\82É\82¨\82»\82í\82ê\82½\81I", body_part(HEAD));
         else
+/*JP
             Your("%s suddenly aches very painfully!", body_part(HEAD));
+*/
+            You("\93Ë\91R\8c\83\82µ\82¢%s\92É\82É\82¨\82»\82í\82ê\82½\81I", body_part(HEAD));
         break;
     default:
         impossible("mcastu: invalid magic spell (%d)", spellnum);
@@ -519,13 +665,19 @@ int spellnum;
         /* this is physical damage (force not heat),
          * not magical damage or fire damage
          */
+/*JP
         pline("A sudden geyser slams into you from nowhere!");
+*/
+        pline("\91÷\97¬\82ª\82Ç\82±\82©\82ç\82Æ\82à\82È\82­\8c»\82ê\82Ä\82 \82È\82½\82ð\91Å\82¿\82Â\82¯\82½\81I");
         dmg = d(8, 6);
         if (Half_physical_damage)
             dmg = (dmg + 1) / 2;
         break;
     case CLC_FIRE_PILLAR:
+/*JP
         pline("A pillar of fire strikes all around you!");
+*/
+        pline("\82 \82È\82½\82Ì\8eü\82è\82É\89Î\92\8c\82ª\97§\82Á\82½\81I");
         if (Fire_resistance) {
             shieldeff(u.ux, u.uy);
             dmg = 0;
@@ -543,8 +695,14 @@ int spellnum;
     case CLC_LIGHTNING: {
         boolean reflects;
 
+/*JP
         pline("A bolt of lightning strikes down at you from above!");
+*/
+        pline("\82 \82È\82½\82Ì\90^\8fã\82©\82ç\88î\8dÈ\82ª\8d~\82è\92\8d\82¢\82¾\81I");
+/*JP
         reflects = ureflects("It bounces off your %s%s.", "");
+*/
+        reflects = ureflects("\82»\82ê\82Í\82 \82È\82½\82Ì%s%s\82Å\92µ\82Ë\95Ô\82Á\82½\81D", "");
         if (reflects || Shock_resistance) {
             shieldeff(u.ux, u.uy);
             dmg = 0;
@@ -560,7 +718,10 @@ int spellnum;
         break;
     }
     case CLC_CURSE_ITEMS:
+/*JP
         You_feel("as if you need some help.");
+*/
+        You_feel("\8f\95\82¯\82ª\95K\97v\82È\8bC\82ª\82µ\82½\81D");
         rndcurse();
         dmg = 0;
         break;
@@ -620,16 +781,31 @@ int spellnum;
                words, no need to fuss with visibility or singularization;
                player is told what's happening even if hero is unconscious) */
         } else if (!success)
+/*JP
             fmt = "%s casts at a clump of sticks, but nothing happens.";
+*/
+            fmt = "%s\82Í\96_\90Ø\82ê\82É\96\82\96@\82ð\82©\82¯\82½\82ª\81C\82È\82É\82à\82¨\82±\82ç\82È\82©\82Á\82½\81D";
         else if (let == S_SNAKE)
+/*JP
             fmt = "%s transforms a clump of sticks into snakes!";
+*/
+            fmt = "%s\82Í\96_\90Ø\82ê\82ð\83w\83r\82É\95Ï\82¦\82½\81I";
         else if (Invisible && !perceives(mtmp->data)
                  && (mtmp->mux != u.ux || mtmp->muy != u.uy))
+/*JP
             fmt = "%s summons insects around a spot near you!";
+*/
+            fmt = "%s\82Í\92\8e\82ð\82 \82È\82½\82Ì\82·\82®\82»\82Î\82É\8f¢\8a«\82µ\82½\81I";
         else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy))
+/*JP
             fmt = "%s summons insects around your displaced image!";
+*/
+            fmt = "%s\82Í\92\8e\82ð\82 \82È\82½\82Ì\8c\89e\82Ì\8eü\82è\82É\8f¢\8a«\82µ\82½\81I";
         else
+/*JP
             fmt = "%s summons insects!";
+*/
+            fmt = "%s\82Í\92\8e\82ð\8f¢\8a«\82µ\82½\81I";
         if (fmt)
             pline(fmt, Monnam(mtmp));
 
@@ -640,9 +816,13 @@ int spellnum;
         /* note: resists_blnd() doesn't apply here */
         if (!Blinded) {
             int num_eyes = eyecount(youmonst.data);
+#if 0 /*JP*/
             pline("Scales cover your %s!", (num_eyes == 1)
                                                ? body_part(EYE)
                                                : makeplural(body_part(EYE)));
+#else
+            pline("\97Ø\82ª\82 \82È\82½\82Ì%s\82ð\95¢\82Á\82½\81I", body_part(EYE));
+#endif
             make_blinded(Half_spell_damage ? 100L : 200L, FALSE);
             if (!Blind)
                 Your1(vision_clears);
@@ -654,12 +834,18 @@ int spellnum;
         if (Antimagic || Free_action) {
             shieldeff(u.ux, u.uy);
             if (multi >= 0)
+/*JP
                 You("stiffen briefly.");
+*/
+                You("\88ê\8fu\8dd\92¼\82µ\82½\81D");
             nomul(-1);
             multi_reason = "paralyzed by a monster";
         } else {
             if (multi >= 0)
+/*JP
                 You("are frozen in place!");
+*/
+                You("\82»\82Ì\8fê\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I");
             dmg = 4 + (int) mtmp->m_lev;
             if (Half_spell_damage)
                 dmg = (dmg + 1) / 2;
@@ -672,7 +858,10 @@ int spellnum;
     case CLC_CONFUSE_YOU:
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             You_feel("momentarily dizzy.");
+*/
+            You("\88ê\8fu\82ß\82Ü\82¢\82ª\82µ\82½\81D");
         } else {
             boolean oldprop = !!Confusion;
 
@@ -681,16 +870,28 @@ int spellnum;
                 dmg = (dmg + 1) / 2;
             make_confused(HConfusion + dmg, TRUE);
             if (Hallucination)
+#if 0 /*JP*/
                 You_feel("%s!", oldprop ? "trippier" : "trippy");
+#else
+                You("%s\82Ö\82ë\82Ö\82ë\82É\82È\82Á\82½\81I", oldprop ? "\82à\82Á\82Æ" : "");
+#endif
             else
+#if 0 /*JP*/
                 You_feel("%sconfused!", oldprop ? "more " : "");
+#else
+                You("%s\8d¬\97\90\82µ\82½\81I", oldprop ? "\82à\82Á\82Æ" : "");
+#endif
         }
         dmg = 0;
         break;
     case CLC_CURE_SELF:
         if (mtmp->mhp < mtmp->mhpmax) {
             if (canseemon(mtmp))
+#if 0 /*JP*/
                 pline("%s looks better.", Monnam(mtmp));
+#else
+                pline("%s\82Í\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mtmp));
+#endif
             /* note: player healing does 6d4; this used to do 1d8 */
             if ((mtmp->mhp += d(3, 6)) > mtmp->mhpmax)
                 mtmp->mhp = mtmp->mhpmax;
@@ -703,13 +904,25 @@ int spellnum;
             dmg = (dmg + 1) / 2;
         }
         if (dmg <= 5)
+/*JP
             Your("skin itches badly for a moment.");
+*/
+            Your("\94ç\95\86\82Í\88ê\8fu\81C\83\80\83Y\83\80\83Y\82Á\82Æ\82µ\82½\81D");
         else if (dmg <= 10)
+/*JP
             pline("Wounds appear on your body!");
+*/
+            pline("\8f\9d\82ª\82 \82È\82½\82Ì\91Ì\82É\8fo\97\88\82½\81I");
         else if (dmg <= 20)
+/*JP
             pline("Severe wounds appear on your body!");
+*/
+            pline("\82Ð\82Ç\82¢\8f\9d\82ª\82 \82È\82½\82Ì\91Ì\82É\8fo\97\88\82½\81I");
         else
+/*JP
             Your("body is covered with painful wounds!");
+*/
+            pline("\91Ì\82ª\8f\9d\82¾\82ç\82¯\82É\82È\82Á\82½\81I");
         break;
     default:
         impossible("mcastu: invalid clerical spell (%d)", spellnum);
@@ -854,8 +1067,13 @@ register struct attack *mattk;
         nomul(0);
         if (mattk->adtyp && (mattk->adtyp < 11)) { /* no cf unsigned >0 */
             if (canseemon(mtmp))
+#if 0 /*JP*/
                 pline("%s zaps you with a %s!", Monnam(mtmp),
                       flash_types[ad_to_typ(mattk->adtyp)]);
+#else
+                pline("%s\82Í%s\82ð\82 \82È\82½\82É\8cü\82¯\82Ä\95ú\82Á\82½\81D", Monnam(mtmp),
+                      flash_types[ad_to_typ(mattk->adtyp)]);
+#endif
             buzz(-ad_to_typ(mattk->adtyp), (int) mattk->damn, mtmp->mx,
                  mtmp->my, sgn(tbx), sgn(tby));
         } else
index f0eab76..d58120f 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "artifact.h"
 
@@ -12,7 +17,10 @@ static NEARDATA long noisetime;
 static NEARDATA struct obj *otmp;
 
 static const char brief_feeling[] =
+/*JP
     "have a %s feeling for a moment, then it passes.";
+*/
+    "%s\8bC\8e\9d\82É\82¨\82»\82í\82ê\82½\82ª\81C\82·\82®\82É\89ß\82¬\82³\82Á\82½\81D";
 
 STATIC_DCL char *FDECL(mon_nam_too, (char *, struct monst *, struct monst *));
 STATIC_DCL int FDECL(hitmm, (struct monst *, struct monst *,
@@ -48,6 +56,7 @@ struct monst *mon, *other_mon;
 {
     Strcpy(outbuf, mon_nam(mon));
     if (mon == other_mon)
+#if 0 /*JP*/
         switch (pronoun_gender(mon)) {
         case 0:
             Strcpy(outbuf, "himself");
@@ -59,6 +68,9 @@ struct monst *mon, *other_mon;
             Strcpy(outbuf, "itself");
             break;
         }
+#else
+        Strcpy(outbuf, "\8e©\95ª\8e©\90g");
+#endif
     return outbuf;
 }
 
@@ -72,9 +84,16 @@ register struct attack *mattk;
     if (!Deaf && (farq != far_noise || moves - noisetime > 10)) {
         far_noise = farq;
         noisetime = moves;
+#if 0 /*JP*/
         You_hear("%s%s.",
                  (mattk->aatyp == AT_EXPL) ? "an explosion" : "some noises",
                  farq ? " in the distance" : "");
+#else
+        You_hear("%s%s\82ð\95·\82¢\82½\81D",
+                 farq ? "\89\93\82­\82Å" : "",
+                 (mattk->aatyp == AT_EXPL) ? "\94\9a\94­\89¹" : "\89½\82©\82ª\90í\82¤\89¹"
+                 );
+#endif
     }
 }
 
@@ -96,11 +115,21 @@ struct attack *mattk;
             seemimic(mdef);
         if (magr->m_ap_type)
             seemimic(magr);
+#if 0 /*JP*/
         fmt = (could_seduce(magr, mdef, mattk) && !magr->mcan)
                   ? "%s pretends to be friendly to"
                   : "%s misses";
+#else
+        fmt = (could_seduce(magr,mdef,mattk) && !magr->mcan)
+                  ? "%s\82Í%%s\82É\97F\8dD\93I\82È\82Ó\82è\82ð\82µ\82½\81D"
+                  : "%s\82Ì%%s\82Ö\82Ì\8dU\8c\82\82Í\8aO\82ê\82½\81D";
+#endif
         Sprintf(buf, fmt, Monnam(magr));
+#if 0 /*JP*/
         pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr));
+#else
+        pline(buf, mon_nam_too(mdef_name, mdef, magr));
+#endif
     } else
         noises(magr, mattk);
 }
@@ -150,7 +179,10 @@ register struct monst *mtmp;
             if (monnear(mtmp, mon->mx, mon->my)) {
                 if (!u.uswallow && (mtmp == u.ustuck)) {
                     if (!rn2(4)) {
+/*JP
                         pline("%s releases you!", Monnam(mtmp));
+*/
+                        pline("%s\82Í\82 \82È\82½\82ð\89ð\95ú\82µ\82½\81I", Monnam(mtmp));
                         u.ustuck = 0;
                     } else
                         break;
@@ -325,11 +357,18 @@ register struct monst *magr, *mdef;
         newsym(mdef->mx, mdef->my);
         if (canseemon(mdef) && !sensemon(mdef)) {
             if (Unaware)
+#if 0 /*JP*/
                 You("dream of %s.", (mdef->data->geno & G_UNIQ)
                                         ? a_monnam(mdef)
                                         : makeplural(m_monnam(mdef)));
+#else
+                You("%s\82Ì\96²\82ð\8c©\82½\81D", a_monnam(mdef));
+#endif
             else
+/*JP
                 pline("Suddenly, you notice %s.", a_monnam(mdef));
+*/
+                pline("\93Ë\91R\81C\82 \82È\82½\82Í%s\82É\8bC\82ª\82Â\82¢\82½\81D", a_monnam(mdef));
         }
     }
 
@@ -406,8 +445,13 @@ register struct monst *magr, *mdef;
                             char buf[BUFSZ];
 
                             Strcpy(buf, Monnam(mdef));
+#if 0 /*JP*/
                             pline("%s divides as %s hits it!", buf,
                                   mon_nam(magr));
+#else
+                            pline("%s\82Ì\8dU\8c\82\82Å%s\82ª\95ª\97ô\82µ\82½\81I",
+                                  mon_nam(magr), buf);
+#endif
                         }
                     }
                 }
@@ -497,39 +541,71 @@ struct attack *mattk;
         if (magr->m_ap_type)
             seemimic(magr);
         if ((compat = could_seduce(magr, mdef, mattk)) && !magr->mcan) {
+#if 0 /*JP*/
             Sprintf(buf, "%s %s", Monnam(magr),
                     mdef->mcansee ? "smiles at" : "talks to");
             pline("%s %s %s.", buf, mon_nam(mdef),
                   compat == 2 ? "engagingly" : "seductively");
+#else
+            Sprintf(buf, "%s\82Í%%s\82É%%s%s\81D", Monnam(magr),
+                    mdef->mcansee ? "\94÷\8fÎ\82Ý\82©\82¯\82½" : "\98b\82µ\82©\82¯\82½");
+            pline(buf, mon_nam(mdef),
+                  compat == 2 ? "\96£\97Í\93I\82É" : "\97U\98f\93I\82É");
+#endif
         } else {
             char magr_name[BUFSZ];
 
             Strcpy(magr_name, Monnam(magr));
             switch (mattk->aatyp) {
             case AT_BITE:
+/*JP
                 Sprintf(buf, "%s bites", magr_name);
+*/
+                Sprintf(buf,"%s\82Í%%s\82É\8a\9a\82Ý\82Â\82¢\82½\81D", magr_name);
                 break;
             case AT_STNG:
+/*JP
                 Sprintf(buf, "%s stings", magr_name);
+*/
+                Sprintf(buf,"%s\82Í%%s\82ð\93Ë\82«\82³\82µ\82½\81D", magr_name);
                 break;
             case AT_BUTT:
+/*JP
                 Sprintf(buf, "%s butts", magr_name);
+*/
+                Sprintf(buf,"%s\82Í%%s\82É\93ª\93Ë\82«\82ð\82­\82ç\82í\82µ\82½\81D", magr_name);
                 break;
             case AT_TUCH:
+/*JP
                 Sprintf(buf, "%s touches", magr_name);
+*/
+                Sprintf(buf,"%s\82Í%%s\82É\90G\82ê\82½\81D", magr_name);
                 break;
             case AT_TENT:
+/*JP
                 Sprintf(buf, "%s tentacles suck", s_suffix(magr_name));
+*/
+                Sprintf(buf, "%s\82Ì\90G\8eè\82ª%%s\82Ì\91Ì\89t\82ð\8bz\82¢\82Æ\82Á\82½\81D", s_suffix(magr_name));
                 break;
             case AT_HUGS:
                 if (magr != u.ustuck) {
+/*JP
                     Sprintf(buf, "%s squeezes", magr_name);
+*/
+                    Sprintf(buf,"%s\82Í%%s\82ð\8di\82ß\82½\81D", magr_name);
                     break;
                 }
             default:
+/*JP
                 Sprintf(buf, "%s hits", magr_name);
+*/
+                Sprintf(buf,"%s\82Ì%%s\82Ö\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½\81D", magr_name);
             }
+#if 0 /*JP*/
             pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr));
+#else
+            pline(buf, mon_nam_too(mdef_name, mdef, magr));
+#endif
         }
     } else
         noises(magr, mattk);
@@ -546,38 +622,60 @@ struct attack *mattk;
     char buf[BUFSZ];
 
     if (vis) {
+#if 0 /*JP*/
         Sprintf(buf, "%s gazes at", Monnam(magr));
         pline("%s %s...", buf, mon_nam(mdef));
+#else
+        Sprintf(buf,"%s\82Í%%s\82ð\82É\82ç\82Ý\82Â\82¯\82½\81D\81D\81D", Monnam(magr));
+        pline(buf, mon_nam(mdef));
+#endif
     }
 
     if (magr->mcan || !magr->mcansee
         || (magr->minvis && !perceives(mdef->data)) || !mdef->mcansee
         || mdef->msleeping) {
         if (vis)
+/*JP
             pline("but nothing happens.");
+*/
+            pline("\82µ\82©\82µ\89½\82à\82¨\82±\82ç\82È\82©\82Á\82½\81D");
         return MM_MISS;
     }
     /* call mon_reflects 2x, first test, then, if visible, print message */
     if (magr->data == &mons[PM_MEDUSA] && mon_reflects(mdef, (char *) 0)) {
         if (canseemon(mdef))
+/*JP
             (void) mon_reflects(mdef, "The gaze is reflected away by %s %s.");
+*/
+            (void) mon_reflects(mdef, "\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81D");
         if (mdef->mcansee) {
             if (mon_reflects(magr, (char *) 0)) {
                 if (canseemon(magr))
                     (void) mon_reflects(
+/*JP
                         magr, "The gaze is reflected away by %s %s.");
+*/
+                        magr, "\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81D");
                 return MM_MISS;
             }
             if (mdef->minvis && !perceives(magr->data)) {
                 if (canseemon(magr)) {
+#if 0 /*JP*/
                     pline(
                       "%s doesn't seem to notice that %s gaze was reflected.",
                           Monnam(magr), mhis(magr));
+#else
+                    pline("\82É\82ç\82Ý\82ª\94½\8eË\82µ\82Ä\82¢\82é\82±\82Æ\82É%s\82Í\8bC\95t\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D",
+                          Monnam(magr));
+#endif
                 }
                 return MM_MISS;
             }
             if (canseemon(magr))
+/*JP
                 pline("%s is turned to stone!", Monnam(magr));
+*/
+                pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(magr));
             monstone(magr);
             if (magr->mhp > 0)
                 return MM_MISS;
@@ -635,8 +733,13 @@ register struct attack *mattk;
         return MM_MISS;
 
     if (vis) {
+#if 0 /*JP*/
         Sprintf(buf, "%s swallows", Monnam(magr));
         pline("%s %s.", buf, mon_nam(mdef));
+#else
+        Sprintf(buf,"%s\82Í%%s\82ð\82®\82Á\82Æ\88ù\82Ý\82±\82ñ\82¾\81D", Monnam(magr));
+        pline(buf, mon_nam(mdef));
+#endif
     }
     for (obj = mdef->minvent; obj; obj = obj->nobj)
         (void) snuff_lit(obj);
@@ -680,7 +783,10 @@ register struct attack *mattk;
         newsym(dx, dy);
     } else { /* both alive, put them back */
         if (cansee(dx, dy))
+/*JP
             pline("%s is regurgitated!", Monnam(mdef));
+*/
+            pline("%s\82Í\93f\82«\96ß\82³\82ê\82½\81I", Monnam(mdef));
 
         place_monster(magr, ax, ay);
         place_monster(mdef, dx, dy);
@@ -702,7 +808,10 @@ struct attack *mattk;
         return MM_MISS;
 
     if (cansee(magr->mx, magr->my))
+/*JP
         pline("%s explodes!", Monnam(magr));
+*/
+        pline("%s\82Í\94\9a\94­\82µ\82½\81I", Monnam(magr));
     else
         noises(magr, mattk);
 
@@ -716,7 +825,10 @@ struct attack *mattk;
         result |= MM_AGR_DIED;
     }
     if (magr->mtame) /* give this one even if it was visible */
+/*JP
         You(brief_feeling, "melancholy");
+*/
+        You(brief_feeling, "\97J\82¤\82Â\82È");
 
     return result;
 }
@@ -753,12 +865,18 @@ register struct attack *mattk;
                 return MM_HIT; /* no damage during the polymorph */
             }
             if (vis)
+/*JP
                 pline("%s turns to stone!", Monnam(magr));
+*/
+                pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(magr));
             monstone(magr);
             if (magr->mhp > 0)
                 return MM_HIT; /* lifesaved */
             else if (magr->mtame && !vis)
+/*JP
                 You(brief_feeling, "peculiarly sad");
+*/
+                You(brief_feeling, "\82à\82Ì\94ß\82µ\82¢");
             return MM_AGR_DIED;
         }
     }
@@ -772,21 +890,36 @@ register struct attack *mattk;
         /* eating a Rider or its corpse is fatal */
         if (is_rider(pd)) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s %s!", Monnam(magr),
                       (pd == &mons[PM_FAMINE])
                           ? "belches feebly, shrivels up and dies"
                           : (pd == &mons[PM_PESTILENCE])
                                 ? "coughs spasmodically and collapses"
                                 : "vomits violently and drops dead");
+#else
+                pline("%s%s\81I", Monnam(magr),
+                      (pd == &mons[PM_FAMINE])
+                      ? "\8eã\81X\82µ\82­\93f\82«\82à\82Ç\82µ\82½\82©\82Æ\8ev\82¤\82Æ\81C\91Ì\82ª\82µ\82Ú\82Ý\8e\80\82ñ\82Å\82µ\82Ü\82Á\82½" :
+                      pd == &mons[PM_PESTILENCE]
+                      ? "áz\9d¹\82µ\82½\82æ\82¤\82É\82¹\82«\82±\82Ý\93|\82ê\82½"
+                      : "\8c\83\82µ\82­\9aq\93f\82µ\8e\80\82ñ\82¾");
+#endif
             mondied(magr);
             if (magr->mhp > 0)
                 return 0; /* lifesaved */
             else if (magr->mtame && !vis)
+/*JP
                 You(brief_feeling, "queasy");
+*/
+                You(brief_feeling, "\95s\88À\82È");
             return MM_AGR_DIED;
         }
         if (flags.verbose && !Deaf)
+/*JP
             verbalize("Burrrrp!");
+*/
+            verbalize("\82°\82Á\82Õ\81I");
         tmp = mdef->mhp;
         /* Use up amulet of life saving */
         if (!!(obj = mlifesaver(mdef)))
@@ -822,8 +955,12 @@ register struct attack *mattk;
         if (magr->mcan)
             break;
         if (canseemon(mdef))
+#if 0 /*JP*/
             pline("%s %s for a moment.", Monnam(mdef),
                   makeplural(stagger(pd, "stagger")));
+#else
+            pline("%s\82Í\82·\82±\82µ\82æ\82ë\82ß\82¢\82½\81D", Monnam(mdef));
+#endif
         mdef->mstun = 1;
         goto physical;
     case AD_LEGS:
@@ -868,22 +1005,34 @@ register struct attack *mattk;
             break;
         }
         if (vis)
+/*JP
             pline("%s is %s!", Monnam(mdef), on_fire(pd, mattk));
+*/
+            pline("%s\82Í%s\81I", Monnam(mdef), on_fire(pd, mattk));
         if (pd == &mons[PM_STRAW_GOLEM] || pd == &mons[PM_PAPER_GOLEM]) {
             if (vis)
+/*JP
                 pline("%s burns completely!", Monnam(mdef));
+*/
+                pline("%s\82Í\8aD\82É\82È\82Á\82½\81I", Monnam(mdef));
             mondied(mdef);
             if (mdef->mhp > 0)
                 return 0;
             else if (mdef->mtame && !vis)
+/*JP
                 pline("May %s roast in peace.", mon_nam(mdef));
+*/
+                pline("%s\82æ\81C\88À\82ç\82©\82É\94R\82¦\82ñ\8e\96\82ð\81D", mon_nam(mdef));
             return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
         }
         tmp += destroy_mitem(mdef, SCROLL_CLASS, AD_FIRE);
         tmp += destroy_mitem(mdef, SPBOOK_CLASS, AD_FIRE);
         if (resists_fire(mdef)) {
             if (vis)
+/*JP
                 pline_The("fire doesn't seem to burn %s!", mon_nam(mdef));
+*/
+                pline("%s\82Í\89\8a\82Å\94R\82¦\82È\82¢\82æ\82¤\82¾\81I", mon_nam(mdef));
             shieldeff(mdef->mx, mdef->my);
             golemeffects(mdef, AD_FIRE, tmp);
             tmp = 0;
@@ -897,10 +1046,16 @@ register struct attack *mattk;
             break;
         }
         if (vis)
+/*JP
             pline("%s is covered in frost!", Monnam(mdef));
+*/
+            pline("%s\82Í\95X\82Å\95¢\82í\82ê\82½\81I", Monnam(mdef));
         if (resists_cold(mdef)) {
             if (vis)
+/*JP
                 pline_The("frost doesn't seem to chill %s!", mon_nam(mdef));
+*/
+                pline("\95X\82Í%s\82ð\93\80\82ç\82¹\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\82æ\82¤\82¾\81I", mon_nam(mdef));
             shieldeff(mdef->mx, mdef->my);
             golemeffects(mdef, AD_COLD, tmp);
             tmp = 0;
@@ -913,11 +1068,17 @@ register struct attack *mattk;
             break;
         }
         if (vis)
+/*JP
             pline("%s gets zapped!", Monnam(mdef));
+*/
+            pline("%s\82Í\8fÕ\8c\82\82ð\82­\82ç\82Á\82½\81I", Monnam(mdef));
         tmp += destroy_mitem(mdef, WAND_CLASS, AD_ELEC);
         if (resists_elec(mdef)) {
             if (vis)
+/*JP
                 pline_The("zap doesn't shock %s!", mon_nam(mdef));
+*/
+                pline("\8fÕ\8c\82\82Í%s\82É\89e\8b¿\82ð\97^\82¦\82È\82¢\81I", mon_nam(mdef));
             shieldeff(mdef->mx, mdef->my);
             golemeffects(mdef, AD_ELEC, tmp);
             tmp = 0;
@@ -932,12 +1093,20 @@ register struct attack *mattk;
         }
         if (resists_acid(mdef)) {
             if (vis)
+/*JP
                 pline("%s is covered in acid, but it seems harmless.",
+*/
+                pline("%s\82Í\8e_\82É\82Â\82Â\82Ü\82ê\82½\81D\82µ\82©\82µ\82È\82ñ\82Æ\82à\82È\82¢\82æ\82¤\82¾\81D",
                       Monnam(mdef));
             tmp = 0;
         } else if (vis) {
+#if 0 /*JP*/
             pline("%s is covered in acid!", Monnam(mdef));
             pline("It burns %s!", mon_nam(mdef));
+#else
+            pline("%s\82Í\8e_\82É\82Â\82Â\82Ü\82ê\82½\81I", Monnam(mdef));
+            pline("%s\82Í\8fÄ\82©\82ê\82½\81I", mon_nam(mdef));
+#endif
         }
         if (!rn2(30))
             erode_armor(mdef, ERODE_CORRODE);
@@ -949,12 +1118,18 @@ register struct attack *mattk;
             break;
         if (pd == &mons[PM_IRON_GOLEM]) {
             if (vis)
+/*JP
                 pline("%s falls to pieces!", Monnam(mdef));
+*/
+                pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
             mondied(mdef);
             if (mdef->mhp > 0)
                 return 0;
             else if (mdef->mtame && !vis)
+/*JP
                 pline("May %s rust in peace.", mon_nam(mdef));
+*/
+                pline("%s\82æ\81C\88À\82ç\82©\82É\8eK\82Ñ\82ñ\8e\96\82ð\81D", mon_nam(mdef));
             return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
         }
         erode_armor(mdef, ERODE_RUST);
@@ -973,12 +1148,18 @@ register struct attack *mattk;
             break;
         if (pd == &mons[PM_WOOD_GOLEM] || pd == &mons[PM_LEATHER_GOLEM]) {
             if (vis)
+/*JP
                 pline("%s falls to pieces!", Monnam(mdef));
+*/
+                pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
             mondied(mdef);
             if (mdef->mhp > 0)
                 return 0;
             else if (mdef->mtame && !vis)
+/*JP
                 pline("May %s rot in peace.", mon_nam(mdef));
+*/
+                pline("%s\82æ\81C\88À\82ç\82©\82É\95\85\82ç\82ñ\8e\96\82ð\81D", mon_nam(mdef));
             return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
         }
         erode_armor(mdef, ERODE_CORRODE);
@@ -999,13 +1180,19 @@ register struct attack *mattk;
         }
         if (!resists_ston(mdef)) {
             if (vis)
+/*JP
                 pline("%s turns to stone!", Monnam(mdef));
+*/
+                pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mdef));
             monstone(mdef);
         post_stone:
             if (mdef->mhp > 0)
                 return 0;
             else if (mdef->mtame && !vis)
+/*JP
                 You(brief_feeling, "peculiarly sad");
+*/
+                You(brief_feeling, "\82à\82Ì\94ß\82µ\82¢");
             return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
         }
         tmp = (mattk->adtyp == AD_STON ? 0 : 1);
@@ -1020,7 +1207,10 @@ register struct attack *mattk;
             mdef->mstrategy &= ~STRAT_WAITFORU;
             (void) rloc(mdef, TRUE);
             if (vis && !canspotmon(mdef) && mdef != u.usteed)
+/*JP
                 pline("%s suddenly disappears!", mdef_Monnam);
+*/
+                pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", mdef_Monnam);
         }
         break;
     case AD_SLEE:
@@ -1028,7 +1218,10 @@ register struct attack *mattk;
             && sleep_monst(mdef, rnd(10), -1)) {
             if (vis) {
                 Strcpy(buf, Monnam(mdef));
+/*JP
                 pline("%s is put to sleep by %s.", buf, mon_nam(magr));
+*/
+                pline("%s\82Í%s\82É\82æ\82Á\82Ä\96°\82ç\82³\82ê\82½\81D", buf, mon_nam(magr));
             }
             mdef->mstrategy &= ~STRAT_WAITFORU;
             slept_monst(mdef);
@@ -1038,7 +1231,10 @@ register struct attack *mattk;
         if (!cancelled && mdef->mcanmove) {
             if (vis) {
                 Strcpy(buf, Monnam(mdef));
+/*JP
                 pline("%s is frozen by %s.", buf, mon_nam(magr));
+*/
+                pline("%s\82Í%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82­\82È\82Á\82½\81D", buf, mon_nam(magr));
             }
             paralyze_monst(mdef, rnd(10));
         }
@@ -1050,7 +1246,10 @@ register struct attack *mattk;
             mon_adjust_speed(mdef, -1, (struct obj *) 0);
             mdef->mstrategy &= ~STRAT_WAITFORU;
             if (mdef->mspeed != oldspeed && vis)
+/*JP
                 pline("%s slows down.", Monnam(mdef));
+*/
+                pline("%s\82Í\93®\8dì\82ª\82Ì\82ë\82­\82È\82Á\82½\81D", Monnam(mdef));
         }
         break;
     case AD_CONF:
@@ -1060,7 +1259,10 @@ register struct attack *mattk;
          */
         if (!magr->mcan && !mdef->mconf && !magr->mspec_used) {
             if (vis)
+/*JP
                 pline("%s looks confused.", Monnam(mdef));
+*/
+                pline("%s\82Í\8d¬\97\90\82µ\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mdef));
             mdef->mconf = 1;
             mdef->mstrategy &= ~STRAT_WAITFORU;
         }
@@ -1070,7 +1272,10 @@ register struct attack *mattk;
             register unsigned rnd_tmp;
 
             if (vis && mdef->mcansee)
+/*JP
                 pline("%s is blinded.", Monnam(mdef));
+*/
+                pline("%s\82Í\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D", Monnam(mdef));
             rnd_tmp = d((int) mattk->damn, (int) mattk->damd);
             if ((rnd_tmp += mdef->mblinded) > 127)
                 rnd_tmp = 127;
@@ -1083,8 +1288,13 @@ register struct attack *mattk;
     case AD_HALU:
         if (!magr->mcan && haseyes(pd) && mdef->mcansee) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s looks %sconfused.", Monnam(mdef),
                       mdef->mconf ? "more " : "");
+#else
+                pline("%s\82Í%s\8d¬\97\90\82µ\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mdef),
+                      mdef->mconf ? "\82Ü\82·\82Ü\82·" : "");
+#endif
             mdef->mconf = 1;
             mdef->mstrategy &= ~STRAT_WAITFORU;
         }
@@ -1100,23 +1310,38 @@ register struct attack *mattk;
                 were_change(mdef);
             if (pd == &mons[PM_CLAY_GOLEM]) {
                 if (vis) {
+/*JP
                     pline("Some writing vanishes from %s head!",
+*/
+                    pline("\82¢\82­\82Â\82©\82Ì\95\8e\9a\82ª%s\82Ì\93ª\82©\82ç\8fÁ\82¦\82½\81I",
                           s_suffix(mon_nam(mdef)));
+/*JP
                     pline("%s is destroyed!", Monnam(mdef));
+*/
+                    pline("%s\82Í\94j\89ó\82³\82ê\82½\81I", Monnam(mdef));
                 }
                 mondied(mdef);
                 if (mdef->mhp > 0)
                     return 0;
                 else if (mdef->mtame && !vis)
+/*JP
                     You(brief_feeling, "strangely sad");
+*/
+                    You(brief_feeling, "\96­\82É\94ß\82µ\82¢");
                 return (MM_DEF_DIED
                         | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
             }
             if (!Deaf) {
                 if (!vis)
+/*JP
                     You_hear("laughter.");
+*/
+                    You_hear("\8fÎ\82¢\90º\82ð\95·\82¢\82½\81D");
                 else
+/*JP
                     pline("%s chuckles.", Monnam(magr));
+*/
+                    pline("%s\82Í\82­\82·\82­\82·\8fÎ\82Á\82½\81D", Monnam(magr));
             }
         }
         break;
@@ -1137,19 +1362,28 @@ register struct attack *mattk;
         mdef->mstrategy &= ~STRAT_WAITFORU;
         if (vis) {
             Strcpy(buf, Monnam(magr));
+/*JP
             pline("%s steals some gold from %s.", buf, mon_nam(mdef));
+*/
+            pline("%s\82Í%s\82©\82ç\8bà\82ð\93\90\82ñ\82¾\81D", buf, mon_nam(mdef));
         }
         if (!tele_restrict(magr)) {
             (void) rloc(magr, TRUE);
             if (vis && !canspotmon(magr))
+/*JP
                 pline("%s suddenly disappears!", buf);
+*/
+                pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", buf);
         }
         break;
     case AD_DRLI:
         if (!cancelled && !rn2(3) && !resists_drli(mdef)) {
             tmp = d(2, 6);
             if (vis)
+/*JP
                 pline("%s suddenly seems weaker!", Monnam(mdef));
+*/
+                pline("%s\82Í\93Ë\91R\8eã\82­\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82½\81I", Monnam(mdef));
             mdef->mhpmax -= tmp;
             if (mdef->m_lev == 0)
                 tmp = mdef->mhp;
@@ -1194,7 +1428,10 @@ register struct attack *mattk;
             (void) add_to_minv(magr, otmp);
             if (vis) {
                 Strcpy(buf, Monnam(magr));
+/*JP
                 pline("%s steals %s from %s!", buf, onambuf, mdefnambuf);
+*/
+                pline("%s\82Í%s\82©\82ç%s\82ð\93\90\82ñ\82¾\81I", buf, mdefnambuf, onambuf);
             }
             possibly_unwield(mdef, FALSE);
             mdef->mstrategy &= ~STRAT_WAITFORU;
@@ -1205,7 +1442,10 @@ register struct attack *mattk;
             if (pa->mlet == S_NYMPH && !tele_restrict(magr)) {
                 (void) rloc(magr, TRUE);
                 if (vis && !canspotmon(magr))
+/*JP
                     pline("%s suddenly disappears!", buf);
+*/
+                    pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", buf);
             }
         }
         tmp = 0;
@@ -1220,18 +1460,29 @@ register struct attack *mattk;
     case AD_DRCO:
         if (!cancelled && !rn2(8)) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s %s was poisoned!", s_suffix(Monnam(magr)),
                       mpoisons_subj(magr, mattk));
+#else
+                pline("%s\82Ì%s\82Í\93Å\82³\82ê\82Ä\82¢\82é\81I", Monnam(magr),
+                      mpoisons_subj(magr, mattk));
+#endif
             if (resists_poison(mdef)) {
                 if (vis)
+/*JP
                     pline_The("poison doesn't seem to affect %s.",
+*/
+                    pline("%s\82Í\93Å\82Ì\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D",
                               mon_nam(mdef));
             } else {
                 if (rn2(10))
                     tmp += rn1(10, 6);
                 else {
                     if (vis)
+/*JP
                         pline_The("poison was deadly...");
+*/
+                        pline("\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
                     tmp = mdef->mhp;
                 }
             }
@@ -1240,7 +1491,10 @@ register struct attack *mattk;
     case AD_DRIN:
         if (notonhead || !has_head(pd)) {
             if (vis)
+/*JP
                 pline("%s doesn't seem harmed.", Monnam(mdef));
+*/
+                pline("%s\82Í\8f\9d\82Â\82¢\82½\82æ\82¤\82É\82Í\8c©\82¦\82È\82¢\81D", Monnam(mdef));
             /* Not clear what to do for green slimes */
             tmp = 0;
             break;
@@ -1248,8 +1502,13 @@ register struct attack *mattk;
         if ((mdef->misc_worn_check & W_ARMH) && rn2(8)) {
             if (vis) {
                 Strcpy(buf, s_suffix(Monnam(mdef)));
+#if 0 /*JP*/
                 pline("%s helmet blocks %s attack to %s head.", buf,
                       s_suffix(mon_nam(magr)), mhis(mdef));
+#else
+                pline("%s\82Ì\8a\95\82Í%s\82Ì\93ª\82Ö\82Ì\8dU\8c\82\82ð\96h\82¢\82¾\81D", buf,
+                      mon_nam(magr));
+#endif
             }
             break;
         }
@@ -1372,7 +1631,10 @@ struct monst *mon;
 {
     if ((mon->msleeping || !mon->mcanmove) && mon == u.ustuck
         && !sticks(youmonst.data) && !u.uswallow) {
+/*JP
         pline("%s grip relaxes.", s_suffix(Monnam(mon)));
+*/
+        pline("%s\82Ì\88¬\82é\97Í\82ª\8eã\82­\82È\82Á\82½\81D", Monnam(mon));
         unstuck(mon);
     }
 }
@@ -1404,10 +1666,17 @@ struct monst *magr, *mdef;
 struct obj *otemp;
 {
     if (flags.verbose && !Blind && mon_visible(magr)) {
+#if 0 /*JP*/
         pline("%s %s %s%s %s at %s.", Monnam(magr),
               (objects[otemp->otyp].oc_dir & PIERCE) ? "thrusts" : "swings",
               (otemp->quan > 1L) ? "one of " : "", mhis(magr), xname(otemp),
               mon_nam(mdef));
+#else
+        pline((objects[otemp->otyp].oc_dir & PIERCE) ?
+              "%s\82Í%s\82Å%s\82ð\93Ë\82¢\82½\81D" :
+              "%s\82Í%s\82ð\90U\82è\82Ü\82í\82µ%s\82ð\8dU\8c\82\82µ\82½\81D", Monnam(magr),
+              xname(otemp), mon_nam(mdef));
+#endif
     }
 }
 
@@ -1445,11 +1714,19 @@ int mdead;
         if (mhit && !rn2(2)) {
             Strcpy(buf, Monnam(magr));
             if (canseemon(magr))
+#if 0 /*JP*/
                 pline("%s is splashed by %s acid!", buf,
                       s_suffix(mon_nam(mdef)));
+#else
+                pline("%s\82Í%s\82Ì\8e_\82ð\97\81\82Ñ\82½\81I", buf,
+                      mon_nam(mdef));
+#endif
             if (resists_acid(magr)) {
                 if (canseemon(magr))
+/*JP
                     pline("%s is not affected.", Monnam(magr));
+*/
+                    pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D", Monnam(magr));
                 tmp = 0;
             }
         } else
@@ -1482,22 +1759,33 @@ int mdead;
                     tmp = 127;
                 if (magr->mcansee && haseyes(madat) && mdef->mcansee
                     && (perceives(madat) || !mdef->minvis)) {
+/*JP
                     Sprintf(buf, "%s gaze is reflected by %%s %%s.",
+*/
+                    Sprintf(buf, "%s\82Ì\82É\82ç\82Ý\82Í%%s\82É\82æ\82Á\82Ä%%s\81D",
                             s_suffix(Monnam(mdef)));
                     if (mon_reflects(magr,
                                      canseemon(magr) ? buf : (char *) 0))
                         return (mdead | mhit);
                     Strcpy(buf, Monnam(magr));
                     if (canseemon(magr))
+#if 0 /*JP*/
                         pline("%s is frozen by %s gaze!", buf,
                               s_suffix(mon_nam(mdef)));
+#else
+                        pline("%s\82Í%s\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I", buf,
+                              mon_nam(mdef));
+#endif
                     paralyze_monst(magr, tmp);
                     return (mdead | mhit);
                 }
             } else { /* gelatinous cube */
                 Strcpy(buf, Monnam(magr));
                 if (canseemon(magr))
+/*JP
                     pline("%s is frozen by %s.", buf, mon_nam(mdef));
+*/
+                    pline("%s\82Í%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82­\82È\82Á\82½\81D", buf, mon_nam(mdef));
                 paralyze_monst(magr, tmp);
                 return (mdead | mhit);
             }
@@ -1505,14 +1793,20 @@ int mdead;
         case AD_COLD:
             if (resists_cold(magr)) {
                 if (canseemon(magr)) {
+/*JP
                     pline("%s is mildly chilly.", Monnam(magr));
+*/
+                    pline("%s\82Í\97â\82¦\82½\81D", Monnam(magr));
                     golemeffects(magr, AD_COLD, tmp);
                 }
                 tmp = 0;
                 break;
             }
             if (canseemon(magr))
+/*JP
                 pline("%s is suddenly very cold!", Monnam(magr));
+*/
+                pline("%s\82Í\93Ë\91R\93\80\82è\82Ã\82¯\82É\82È\82Á\82½\81I", Monnam(magr));
             mdef->mhp += tmp / 2;
             if (mdef->mhpmax < mdef->mhp)
                 mdef->mhpmax = mdef->mhp;
@@ -1523,34 +1817,50 @@ int mdead;
             if (!magr->mstun) {
                 magr->mstun = 1;
                 if (canseemon(magr))
+#if 0 /*JP*/
                     pline("%s %s...", Monnam(magr),
                           makeplural(stagger(magr->data, "stagger")));
+#else
+                    pline("%s\82Í\82­\82ç\82­\82ç\82µ\82½\81D\81D\81D", Monnam(magr));
+#endif
             }
             tmp = 0;
             break;
         case AD_FIRE:
             if (resists_fire(magr)) {
                 if (canseemon(magr)) {
+/*JP
                     pline("%s is mildly warmed.", Monnam(magr));
+*/
+                    pline("%s\82Í\92g\82©\82­\82È\82Á\82½\81D", Monnam(magr));
                     golemeffects(magr, AD_FIRE, tmp);
                 }
                 tmp = 0;
                 break;
             }
             if (canseemon(magr))
+/*JP
                 pline("%s is suddenly very hot!", Monnam(magr));
+*/
+                pline("%s\82Í\93Ë\91R\82Æ\82Ä\82à\94M\82­\82È\82Á\82½\81I", Monnam(magr));
             break;
         case AD_ELEC:
             if (resists_elec(magr)) {
                 if (canseemon(magr)) {
+/*JP
                     pline("%s is mildly tingled.", Monnam(magr));
+*/
+                    pline("%s\82Í\83s\83\8a\83s\83\8a\82µ\82Ä\82¢\82é\81D", Monnam(magr));
                     golemeffects(magr, AD_ELEC, tmp);
                 }
                 tmp = 0;
                 break;
             }
             if (canseemon(magr))
+/*JP
                 pline("%s is jolted with electricity!", Monnam(magr));
+*/
+                pline("%s\82Í\93d\8bC\83V\83\87\83b\83N\82ð\82¤\82¯\82½\81I", Monnam(magr));
             break;
         default:
             tmp = 0;
index 2d489a1..95ea3bc 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "artifact.h"
 
@@ -38,35 +43,67 @@ register struct attack *mattk;
     /* If same gender, "engagingly" for nymph, normal msg for others */
     if ((compat = could_seduce(mtmp, &youmonst, mattk)) && !mtmp->mcan
         && !mtmp->mspec_used) {
+#if 0 /*JP*/
         pline("%s %s you %s.", Monnam(mtmp), Blind ? "talks to" : "smiles at",
               compat == 2 ? "engagingly" : "seductively");
+#else
+        pline("%s\82Í\82 \82È\82½%s%s\81D", Monnam(mtmp),
+              compat == 2 ? "\82ð\88ø\82«\82Â\82¯\82é\82æ\82¤\82É" : "\82É\8dD\88Ó\82ð\82æ\82¹\82é\82æ\82¤\82É",
+              Blind ? "\98b\82µ\82©\82¯\82½" : "\94÷\8fÎ\82ñ\82¾");
+#endif
     } else
         switch (mattk->aatyp) {
         case AT_BITE:
+/*JP
             pline("%s bites!", Monnam(mtmp));
+*/
+            pline("%s\82Í\8a\9a\82Ý\82Â\82¢\82½\81I", Monnam(mtmp));
             break;
         case AT_KICK:
+#if 0 /*JP*/
             pline("%s kicks%c", Monnam(mtmp),
                   thick_skinned(youmonst.data) ? '.' : '!');
+#else
+            pline("%s\82Í\8fR\82Æ\82Î\82µ\82½%s",Monnam(mtmp), 
+                  thick_skinned(youmonst.data) ? "\81D" : "\81I");
+#endif
             break;
         case AT_STNG:
+/*JP
             pline("%s stings!", Monnam(mtmp));
+*/
+            pline("%s\82Í\93Ë\82«\82³\82µ\82½\81I", Monnam(mtmp));
             break;
         case AT_BUTT:
+/*JP
             pline("%s butts!", Monnam(mtmp));
+*/
+            pline("%s\82Í\93ª\93Ë\82«\82ð\82­\82ç\82í\82µ\82½\81I", Monnam(mtmp));
             break;
         case AT_TUCH:
+/*JP
             pline("%s touches you!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82É\90G\82ê\82½\81I", Monnam(mtmp));
             break;
         case AT_TENT:
+/*JP
             pline("%s tentacles suck you!", s_suffix(Monnam(mtmp)));
+*/
+            pline("%s\82Ì\90G\8eè\82ª\82 \82È\82½\82Ì\91Ì\89t\82ð\8bz\82¢\82Æ\82Á\82½\81I", Monnam(mtmp));
             break;
         case AT_EXPL:
         case AT_BOOM:
+/*JP
             pline("%s explodes!", Monnam(mtmp));
+*/
+            pline("%s\82Í\94\9a\94­\82µ\82½\81I", Monnam(mtmp));
             break;
         default:
+/*JP
             pline("%s hits!", Monnam(mtmp));
+*/
+            pline("%s\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½\81I", Monnam(mtmp));
         }
 }
 
@@ -81,10 +118,18 @@ struct attack *mattk;
         map_invisible(mtmp->mx, mtmp->my);
 
     if (could_seduce(mtmp, &youmonst, mattk) && !mtmp->mcan)
+/*JP
         pline("%s pretends to be friendly.", Monnam(mtmp));
+*/
+        pline("%s\82Í\97F\8dD\93I\82È\82Ó\82è\82ð\82µ\82Ä\82¢\82é\81D",Monnam(mtmp));
     else
+#if 0 /*JP*/
         pline("%s %smisses!", Monnam(mtmp),
               (nearmiss && flags.verbose) ? "just " : "");
+#else
+        pline("%s\82Ì\8dU\8c\82\82Í%s\82½\81D", Monnam(mtmp),
+              (nearmiss && flags.verbose) ? "\8bó\82ð\90Ø\82Á" : "\82Í\82¸\82ê");
+#endif
 
     stop_occupation();
 }
@@ -96,9 +141,15 @@ struct monst *mtmp;
 struct obj *otemp;
 {
     if (flags.verbose && !Blind && mon_visible(mtmp)) {
+#if 0 /*JP*/
         pline("%s %s %s%s %s.", Monnam(mtmp),
               (objects[otemp->otyp].oc_dir & PIERCE) ? "thrusts" : "swings",
               (otemp->quan > 1L) ? "one of " : "", mhis(mtmp), xname(otemp));
+#else
+        pline("%s\82Í%s%s\81D", Monnam(mtmp),
+              xname(otemp),
+              (objects[otemp->otyp].oc_dir & PIERCE) ? "\82ð\93Ë\82¢\82½" : "\82ð\90U\82è\82Ü\82í\82µ\82½");
+#endif
     }
 }
 
@@ -112,11 +163,20 @@ struct attack *mattk;
         struct obj *mwep = (mtmp == &youmonst) ? uwep : MON_WEP(mtmp);
         /* "Foo's attack was poisoned." is pretty lame, but at least
            it's better than "sting" when not a stinging attack... */
+/*JP
         return (!mwep || !mwep->opoisoned) ? "attack" : "weapon";
+*/
+        return (!mwep || !mwep->opoisoned) ? "\8dU\8c\82" : "\95\90\8aí";
     } else {
+#if 0 /*JP*/
         return (mattk->aatyp == AT_TUCH) ? "contact"
                   : (mattk->aatyp == AT_GAZE) ? "gaze"
                        : (mattk->aatyp == AT_BITE) ? "bite" : "sting";
+#else
+        return (mattk->aatyp == AT_TUCH) ? "\90Ú\90G"
+                  : (mattk->aatyp == AT_GAZE) ? "\82É\82ç\82Ý"
+                       : (mattk->aatyp == AT_BITE) ? "\8a\9a\82Ý\82Â\82«" : "\93Ë\82«\82³\82µ";
+#endif
     }
 }
 
@@ -126,9 +186,15 @@ u_slow_down()
 {
     HFast = 0L;
     if (!Fast)
+/*JP
         You("slow down.");
+*/
+        You("\93®\82«\82ª\92x\82­\82È\82Á\82½\81D");
     else /* speed boots */
+/*JP
         Your("quickness feels less natural.");
+*/
+        You("\91¬\82³\82É\82Â\82¢\82Ä\82¢\82¯\82È\82­\82È\82Á\82½\81D");
     exercise(A_DEX, FALSE);
 }
 
@@ -152,6 +218,7 @@ register struct attack *mattk;
               && could_seduce(mtmp, &youmonst, (struct attack *) 0));
 
     if (!mtmp->mcansee || (Invis && !perceives(mtmp->data))) {
+#if 0 /*JP*/
         const char *swings =
             mattk->aatyp == AT_BITE
                 ? "snaps"
@@ -161,33 +228,69 @@ register struct attack *mattk;
                          || nolimbs(mtmp->data))
                             ? "lunges"
                             : "swings";
+#else
+        const char *swings =
+            mattk->aatyp == AT_BITE
+                ? "\8a\9a\82Ý\82Â\82­"
+                : mattk->aatyp == AT_KICK
+                      ? "\8fR\82Æ\82Î\82·"
+                      : (mattk->aatyp == AT_STNG || mattk->aatyp == AT_BUTT
+                         || nolimbs(mtmp->data))
+                            ? "\93Ë\90i\82·\82é"
+                            : "\90U\82è\89ñ\82·";
+#endif
 
         if (compat)
+/*JP
             pline("%s tries to touch you and misses!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82É\90G\82ë\82¤\82Æ\82µ\82½\82ª\8e¸\94s\82µ\82½\81I", Monnam(mtmp));
         else
             switch (rn2(3)) {
             case 0:
+/*JP
                 pline("%s %s wildly and misses!", Monnam(mtmp), swings);
+*/
+                pline("%s\82Í\8c\83\82µ\82­%s\82ª\81C\82Í\82¸\82µ\82½\81D", Monnam(mtmp), jpast(swings));
                 break;
             case 1:
+/*JP
                 pline("%s attacks a spot beside you.", Monnam(mtmp));
+*/
+                pline("%s\82Ì\8dU\8c\82\82Í\82 \82È\82½\82Ì\98e\95 \82ð\82©\82·\82ß\82½\81D", Monnam(mtmp));
                 break;
             case 2:
+#if 0 /*JP*/
                 pline("%s strikes at %s!", Monnam(mtmp),
                       levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water"
                                                               : "thin air");
+#else
+                pline("%s\82Í%s\82ð\91Å\82¿\82Â\82¯\82½\81I", Monnam(mtmp),
+                      levl[mtmp->mux][mtmp->muy].typ == WATER ? "\90\85"
+                                                              : "\89½\82à\82È\82¢\82Æ\82±\82ë");
+#endif
                 break;
             default:
+/*JP
                 pline("%s %s wildly!", Monnam(mtmp), swings);
+*/
+                pline("%s\82Í\8c\83\82µ\82­%s\81I", Monnam(mtmp), jpast(swings));
                 break;
             }
 
     } else if (Displaced) {
         if (compat)
+#if 0 /*JP*/
             pline("%s smiles %s at your %sdisplaced image...", Monnam(mtmp),
                   compat == 2 ? "engagingly" : "seductively",
                   Invis ? "invisible " : "");
+#else
+            pline("%s\82Í%s\82 \82È\82½\82Ì\8c\89e\82É\91Î\82µ\82Ä%s\94÷\8fÎ\82ñ\82¾\81D\81D\81D", Monnam(mtmp),
+                  Invis ? "\93§\96¾\82È" : "",
+                  compat == 2 ? "\96£\97Í\93I\82É" : "\97U\98f\93I\82É");
+#endif
         else
+#if 0 /*JP*/
             pline("%s strikes at your %sdisplaced image and misses you!",
                   /* Note: if you're both invisible and displaced,
                    * only monsters which see invisible will attack your
@@ -195,14 +298,24 @@ register struct attack *mattk;
                    * invisible.
                    */
                   Monnam(mtmp), Invis ? "invisible " : "");
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì%s\8c\89e\82ð\8dU\8c\82\82µ\81C\82Í\82¸\82µ\82½\81I",
+                  Monnam(mtmp), Invis ? "\93§\96¾\82È" : "");
+#endif
 
     } else if (Underwater) {
         /* monsters may miss especially on water level where
            bubbles shake the player here and there */
         if (compat)
+/*JP
             pline("%s reaches towards your distorted image.", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\98c\82ñ\82¾\8c\89e\82Ì\95û\82Ö\8cü\82©\82Á\82½\81D", Monnam(mtmp));
         else
+/*JP
             pline("%s is fooled by water reflections and misses!",
+*/
+            pline("%s\82Í\90\85\82Ì\94½\8eË\82É\82¾\82Ü\82³\82ê\81C\82Í\82¸\82µ\82½\81I",
                   Monnam(mtmp));
 
     } else
@@ -218,7 +331,10 @@ boolean message;
 {
     if (message) {
         if (is_animal(mdat))
+/*JP
             You("get regurgitated!");
+*/
+            You("\93f\82«\82¾\82³\82ê\82½\81I");
         else {
             char blast[40];
             register int i;
@@ -233,15 +349,27 @@ boolean message;
                 if (is_whirly(mdat)) {
                     switch (mdat->mattk[i].adtyp) {
                     case AD_ELEC:
+/*JP
                         Strcpy(blast, " in a shower of sparks");
+*/
+                        Strcpy(blast, "\82Ì\89Î\89Ô\82Ì\89J\82Ì\92\86\82©\82ç");
                         break;
                     case AD_COLD:
+/*JP
                         Strcpy(blast, " in a blast of frost");
+*/
+                        Strcpy(blast, "\82Ì\97â\8bC\82Ì\95\97\82Ì\92\86\82©\82ç");
                         break;
                     }
                 } else
+/*JP
                     Strcpy(blast, " with a squelch");
+*/
+                    Strcpy(blast, "\82©\82ç\93f\82«\8fo\82³\82ê\82é\82æ\82¤\82É");
+/*JP
                 You("get expelled from %s%s!", mon_nam(mtmp), blast);
+*/
+                You("%s%s\92E\8fo\82µ\82½\81I", mon_nam(mtmp), blast);
             }
         }
     }
@@ -251,7 +379,10 @@ boolean message;
     spoteffects(TRUE);
     /* to cover for a case where mtmp is not in a next square */
     if (um_dist(mtmp->mx, mtmp->my, 1))
+/*JP
         pline("Brrooaa...  You land hard at some distance.");
+*/
+        pline("\83u\83\8d\83\8d\83\8d\81D\81D\89\93\82­\82É\92\85\97¤\82·\82é\82Ì\82Í\93ï\82µ\82¢\81D");
 }
 
 /* select a monster's next attack, possibly substituting for its usual one */
@@ -351,7 +482,10 @@ register struct monst *mtmp;
             coord cc; /* maybe we need a unexto() function? */
             struct obj *obj;
 
+/*JP
             You("fall from the %s!", ceiling(u.ux, u.uy));
+*/
+            You("%s\82©\82ç\97\8e\82¿\82½\81I", ceiling(u.ux,u.uy));
             /* take monster off map now so that its location
                is eligible for placing hero; we assume that a
                removed monster remembers its old spot <mx,my> */
@@ -392,23 +526,37 @@ register struct monst *mtmp;
 
             obj = which_armor(mtmp, WORN_HELMET);
             if (obj && is_metallic(obj)) {
+#if 0 /*JP*/
                 Your("blow glances off %s %s.", s_suffix(mon_nam(mtmp)),
                      helm_simple_name(obj));
+#else
+                Your("\8dU\8c\82\82Í%s\82Ì%s\82ð\82©\82·\82ß\82½\82¾\82¯\82¾\82Á\82½\81D", mon_nam(mtmp),
+                      helm_simple_name(obj));
+#endif
             } else {
                 if (3 + find_mac(mtmp) <= rnd(20)) {
+/*JP
                     pline("%s is hit by a falling piercer (you)!",
+*/
+                    pline("%s\82Í\97\8e\82¿\82Ä\82«\82½\90j(\82 \82È\82½)\82Å\8f\9d\82Â\82¢\82½\81I",
                           Monnam(mtmp));
                     if ((mtmp->mhp -= d(3, 6)) < 1)
                         killed(mtmp);
                 } else
+/*JP
                     pline("%s is almost hit by a falling piercer (you)!",
+*/
+                    pline("%s\82Í\82à\82¤\8f­\82µ\82Å\97\8e\82¿\82Ä\82«\82½\90j(\82 \82È\82½)\82Å\8f\9d\82Â\82­\82Æ\82±\82ë\82¾\82Á\82½\81I",
                           Monnam(mtmp));
             }
 
         } else {
             /* surface hider */
             if (!youseeit) {
+/*JP
                 pline("It tries to move where you are hiding.");
+*/
+                pline("\89½\8eÒ\82©\82ª\82 \82È\82½\82ª\89B\82ê\82Ä\82¢\82é\82Æ\82±\82ë\82ð\88Ú\93®\82µ\82æ\82¤\82Æ\82µ\82½\81D");
             } else {
                 /* Ugly kludge for eggs.  The message is phrased so as
                  * to be directed at the monster, not the player,
@@ -431,13 +579,24 @@ register struct monst *mtmp;
                     if (youmonst.data->mlet == S_EEL
                         || u.umonnum == PM_TRAPPER)
                         pline(
+#if 0 /*JP*/
                              "Wait, %s!  There's a hidden %s named %s there!",
                               m_monnam(mtmp), youmonst.data->mname, plname);
+#else
+                              "\91Ò\82Ä\81C%s\81I%s\82Æ\82¢\82¤\96¼\82Ì%s\82ª\89B\82ê\82Ä\82¢\82é\81I",
+                              m_monnam(mtmp), plname, youmonst.data->mname);
+#endif
                     else
                         pline(
+#if 0 /*JP*/
                           "Wait, %s!  There's a %s named %s hiding under %s!",
                               m_monnam(mtmp), youmonst.data->mname, plname,
                               doname(level.objects[u.ux][u.uy]));
+#else
+                          "\91Ò\82Ä\81C%s\81I%s\82Æ\82¢\82¤\96¼\82Ì%s\82ª%s\82Ì\89º\82É\89B\82ê\82Ä\82¢\82é\81I",
+                              m_monnam(mtmp), plname, youmonst.data->mname, 
+                              doname(level.objects[u.ux][u.uy]));
+#endif
                     if (obj)
                         obj->spe = save_spe;
                 } else
@@ -456,10 +615,18 @@ register struct monst *mtmp;
         if (!canspotmon(mtmp))
             map_invisible(mtmp->mx, mtmp->my);
         if (sticky && !youseeit)
+/*JP
             pline("It gets stuck on you.");
+*/
+            pline("\89½\8eÒ\82©\82ª\82 \82È\82½\82Ì\8fã\82É\82Ì\82µ\82©\82©\82Á\82½\81D");
         else
+#if 0 /*JP*/
             pline("Wait, %s!  That's a %s named %s!", m_monnam(mtmp),
                   youmonst.data->mname, plname);
+#else
+            pline("\91Ò\82Ä\81C%s\81I\82»\82ê\82Í%s\82Æ\82¢\82¤\96¼\82Ì%s\82¾\81I", m_monnam(mtmp), 
+                  plname, youmonst.data->mname);
+#endif
         if (sticky)
             u.ustuck = mtmp;
         youmonst.m_ap_type = M_AP_NOTHING;
@@ -474,20 +641,39 @@ register struct monst *mtmp;
         if (!canspotmon(mtmp))
             map_invisible(mtmp->mx, mtmp->my);
         if (!youseeit)
+#if 0 /*JP*/
             pline("%s %s!", Something, (likes_gold(mtmp->data)
                                         && youmonst.mappearance == GOLD_PIECE)
                                            ? "tries to pick you up"
                                            : "disturbs you");
+#else
+                 pline("%s\82Í%s\81I", Something, (likes_gold(mtmp->data)
+                                        && youmonst.mappearance == GOLD_PIECE)
+                                           ? "\82 \82È\82½\82ð\8fE\82¨\82¤\82Æ\82µ\82½"
+                                           : "\96³\8e\8b\82µ\82½");
+#endif
         else
+#if 0 /*JP*/
             pline("Wait, %s!  That %s is really %s named %s!", m_monnam(mtmp),
                   mimic_obj_name(&youmonst), an(mons[u.umonnum].mname),
                   plname);
+#else
+            pline("\91Ò\82Ä\81C%s\81I\82»\82Ì%s\82Í%s\82Æ\82¢\82¤\96¼\82Ì%s\82¾\81I", m_monnam(mtmp),
+                  mimic_obj_name(&youmonst), plname,
+                  mons[u.umonnum].mname);
+#endif
         if (multi < 0) { /* this should always be the case */
             char buf[BUFSZ];
 
+#if 0 /*JP*/
             Sprintf(buf, "You appear to be %s again.",
                     Upolyd ? (const char *) an(youmonst.data->mname)
                            : (const char *) "yourself");
+#else
+            Sprintf(buf, "\82 \82È\82½\82Í\82Ó\82½\82½\82Ñ%s\82É\82È\82Á\82½\81D",
+                    Upolyd ? (const char *) youmonst.data->mname
+                           : (const char *) "\8e©\95ª\8e©\90g");
+#endif
             unmul(buf); /* immediately stop mimicking */
         }
         return 0;
@@ -534,30 +720,56 @@ register struct monst *mtmp;
             Strcpy(genericwere, "creature");
             numhelp = were_summon(mdat, FALSE, &numseen, genericwere);
             if (youseeit) {
+/*JP
                 pline("%s summons help!", Monnam(mtmp));
+*/
+                pline("%s\82Í\8f\95\82¯\82ð\8cÄ\82ñ\82¾\81I", Monnam(mtmp));
                 if (numhelp > 0) {
                     if (numseen == 0)
+/*JP
                         You_feel("hemmed in.");
+*/
+                        pline("\89½\8eÒ\82©\82É\88Í\82Ü\82ê\82½\82æ\82¤\82È\8bC\82ª\82·\82é\81D");
                 } else
+/*JP
                     pline("But none comes.");
+*/
+                    pline("\82µ\82©\82µ\89½\82à\97\88\82È\82©\82Á\82½\81D");
             } else {
                 const char *from_nowhere;
 
                 if (!Deaf) {
+/*JP
                     pline("%s %s!", Something, makeplural(growl_sound(mtmp)));
+*/
+                    pline("\89½\82©\82ª%s\81I", growl_sound(mtmp));
                     from_nowhere = "";
                 } else
+/*JP
                     from_nowhere = " from nowhere";
+*/
+                    from_nowhere = "\82Ç\82±\82©\82ç\82Æ\82à\82È\82­";
                 if (numhelp > 0) {
                     if (numseen < 1)
+/*JP
                         You_feel("hemmed in.");
+*/
+                        pline("\89½\8eÒ\82©\82É\88Í\82Ü\82ê\82½\82æ\82¤\82È\8bC\82ª\82·\82é\81D");
                     else {
+#if 0 /*JP*/
                         if (numseen == 1)
                             Sprintf(buf, "%s appears", an(genericwere));
                         else
                             Sprintf(buf, "%s appear",
                                     makeplural(genericwere));
                         pline("%s%s!", upstart(buf), from_nowhere);
+#else
+                        pline("%s\82ª%s\8c»\82ê\82½\81I",
+                              strcmp(genericwere, "creature")
+                              ? genericwere
+                              : "\89½\82©",
+                              from_nowhere);
+#endif
                     }
                 } /* else no help came; but you didn't know it tried */
             }
@@ -567,13 +779,22 @@ register struct monst *mtmp;
     if (u.uinvulnerable) {
         /* monsters won't attack you */
         if (mtmp == u.ustuck)
+/*JP
             pline("%s loosens its grip slightly.", Monnam(mtmp));
+*/
+            pline("%s\82Í\92÷\82ß\82Â\82¯\82ð\82í\82¸\82©\82É\8aÉ\82ß\82½\81D", Monnam(mtmp));
         else if (!range2) {
             if (youseeit || sensemon(mtmp))
+/*JP
                 pline("%s starts to attack you, but pulls back.",
+*/
+                pline("%s\82Í\82 \82È\82½\82ð\8dU\8c\82\82µ\82©\82¯\82½\82ª\81C\82Ð\82Á\82±\82ß\82½\81D",
                       Monnam(mtmp));
             else
+/*JP
                 You_feel("%s move nearby.", something);
+*/
+                pline("\89½\8eÒ\82©\82ª\82 \82È\82½\82Ì\82»\82Î\82ð\92Ê\82è\82Ê\82¯\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         }
         return 0;
     }
@@ -650,14 +871,26 @@ register struct monst *mtmp;
                         missmu(mtmp, (tmp == j), mattk);
                     }
                 } else if (is_animal(mtmp->data)) {
+/*JP
                     pline("%s gulps some air!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\91§\82ð\8bz\82¢\82±\82ñ\82¾\81I", Monnam(mtmp));
                 } else {
                     if (youseeit)
+/*JP
                         pline("%s lunges forward and recoils!", Monnam(mtmp));
+*/
+                        pline("%s\82Í\93Ë\90i\82µ\81C\96ß\82Á\82½\81I", Monnam(mtmp));
                     else
+#if 0 /*JP*/
                         You_hear("a %s nearby.",
                                  is_whirly(mtmp->data) ? "rushing noise"
                                                        : "splat");
+#else
+                        You_hear("\82·\82®\82»\82Î\82Å%s\89¹\82ð\95·\82¢\82½\81D",
+                                 is_whirly(mtmp->data) ? "\93Ë\8c\82\82µ\82Ä\82­\82é"
+                                                       : "\83s\83V\83\83\83b\82Æ\82¢\82¤");
+#endif
                 }
             }
             break;
@@ -725,7 +958,10 @@ register struct monst *mtmp;
         if (sum[i] == 1) { /* successful attack */
             if (u.usleep && u.usleep < monstermoves && !rn2(10)) {
                 multi = -1;
+/*JP
                 nomovemsg = "The combat suddenly awakens you.";
+*/
+                nomovemsg = "\82 \82È\82½\82Í\8bN\82±\82³\82ê\82½\81D";
             }
         }
         if (sum[i] == 2)
@@ -742,7 +978,10 @@ diseasemu(mdat)
 struct permonst *mdat;
 {
     if (Sick_resistance) {
+/*JP
         You_feel("a slight illness.");
+*/
+        You("\82·\82±\82µ\8bC\95ª\82ª\88«\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         return FALSE;
     } else {
         make_sick(Sick ? Sick / 3L + 1L : (long) rn1(ACURR(A_CON), 20),
@@ -768,6 +1007,7 @@ struct attack *mattk;
        protection might fail (33% chance) when the armor is cursed */
     if (obj && (obj->greased || obj->otyp == OILSKIN_CLOAK)
         && (!obj->cursed || rn2(3))) {
+#if 0 /*JP*/
         pline("%s %s your %s %s!", Monnam(mtmp),
               (mattk->adtyp == AD_WRAP) ? "slips off of"
                                         : "grabs you, but cannot hold onto",
@@ -777,9 +1017,21 @@ struct attack *mattk;
               (obj->greased || objects[obj->otyp].oc_name_known)
                   ? xname(obj)
                   : cloak_simple_name(obj));
+#else
+        pline("%s\82Í%s%s%s\81I", Monnam(mtmp),
+              obj->greased ? "\96û\82Ì\93h\82ç\82ê\82½" : "\8a\8a\82è\82â\82·\82¢",
+              (obj->greased || objects[obj->otyp].oc_name_known)
+                  ? xname(obj)
+                  : cloak_simple_name(obj),
+              (mattk->adtyp == AD_WRAP) ? "\82Å\8a\8a\82Á\82½"
+                                        : "\82ð\82Â\82©\82Ü\82¦\82æ\82¤\82Æ\82µ\82½\82ª\81C\82Å\82«\82È\82©\82Á\82½");
+#endif
 
         if (obj->greased && !rn2(2)) {
+/*JP
             pline_The("grease wears off.");
+*/
+            pline("\8e\89\82Í\97\8e\82¿\82Ä\82µ\82Ü\82Á\82½\81D");
             obj->greased = 0;
             update_inventory();
         }
@@ -863,9 +1115,12 @@ register struct attack *mattk;
         mtmp->mundetected = 0;
         if (!(Blind ? Blind_telepat : Unblind_telepat)) {
             struct obj *obj;
+#if 0 /*JP*/
             const char *what;
+#endif
 
             if ((obj = level.objects[mtmp->mx][mtmp->my]) != 0) {
+#if 0 /*JP*/
                 if (Blind && !obj->dknown)
                     what = something;
                 else if (is_pool(mtmp->mx, mtmp->my) && !Underwater)
@@ -874,6 +1129,14 @@ register struct attack *mattk;
                     what = doname(obj);
 
                 pline("%s was hidden under %s!", Amonnam(mtmp), what);
+#else
+                if (Blind && !obj->dknown)
+                    pline("%s\82ª\89½\82©\82Ì\89º\82É\89B\82ê\82Ä\82¢\82é\81I", Amonnam(mtmp));
+                else if (is_pool(mtmp->mx, mtmp->my) && !Underwater)
+                    pline("%s\82ª\90\85\92\86\82É\89B\82ê\82Ä\82¢\82é\81I", Amonnam(mtmp));
+                else
+                    pline("%s\82ª%s\82Ì\89º\82É\89B\82ê\82Ä\82¢\82é\81I", Amonnam(mtmp), doname(obj));
+#endif
             }
             newsym(mtmp->mx, mtmp->my);
         }
@@ -901,13 +1164,22 @@ register struct attack *mattk;
                     dmg = 0;
                 } else {
                     u.ustuck = mtmp;
+/*JP
                     pline("%s grabs you!", Monnam(mtmp));
+*/
+                    pline("%s\82É\82Â\82©\82Ü\82¦\82ç\82ê\82Ä\82¢\82é\81I", Monnam(mtmp));
                 }
             } else if (u.ustuck == mtmp) {
                 exercise(A_STR, FALSE);
+#if 0 /*JP*/
                 You("are being %s.", (mtmp->data == &mons[PM_ROPE_GOLEM])
                                          ? "choked"
                                          : "crushed");
+#else
+                You("%s\82Ä\82¢\82é\81D", (mtmp->data == &mons[PM_ROPE_GOLEM])
+                                         ? "\8eñ\82ð\8di\82ß\82ç\82ê"
+                                         : "\89\9f\82µ\82Â\82Ô\82³\82ê");
+#endif
             }
         } else { /* hand to hand weapon */
             if (mattk->aatyp == AT_WEAP && otmp) {
@@ -916,8 +1188,13 @@ register struct attack *mattk;
                 if (otmp->otyp == CORPSE
                     && touch_petrifies(&mons[otmp->corpsenm])) {
                     dmg = 1;
+#if 0 /*JP*/
                     pline("%s hits you with the %s corpse.", Monnam(mtmp),
                           mons[otmp->corpsenm].mname);
+#else
+                    pline("%s\82Í%s\82Ì\8e\80\91Ì\82Å\8dU\8c\82\82µ\82½\81D", Monnam(mtmp),
+                          mons[otmp->corpsenm].mname);
+#endif
                     if (!Stoned)
                         goto do_stone;
                 }
@@ -931,7 +1208,10 @@ register struct attack *mattk;
                     break;
                 if (objects[otmp->otyp].oc_material == SILVER
                     && Hate_silver) {
+/*JP
                     pline_The("silver sears your flesh!");
+*/
+                    pline("\82 \82È\82½\82Ì\91Ì\82Í\8bâ\82Å\8fÄ\82©\82ê\82½\81I");
                     exercise(A_CON, FALSE);
                 }
                 /* this redundancy necessary because you have
@@ -952,7 +1232,10 @@ register struct attack *mattk;
                     context.botl = 1;
                     dmg = 0; /* don't inflict more damage below */
                     if (cloneu())
+/*JP
                         You("divide as %s hits you!", mon_nam(mtmp));
+*/
+                        pline("%s\82Ì\8dU\8c\82\82É\82æ\82Á\82Ä\82 \82È\82½\82Í\95ª\97ô\82µ\82½\81I", mon_nam(mtmp));
                 }
                 rustm(&youmonst, otmp);
             } else if (mattk->aatyp != AT_TUCH || dmg != 0
@@ -968,15 +1251,24 @@ register struct attack *mattk;
     case AD_FIRE:
         hitmsg(mtmp, mattk);
         if (uncancelled) {
+/*JP
             pline("You're %s!", on_fire(youmonst.data, mattk));
+*/
+            pline("\82 \82È\82½\82Í%s\81I", on_fire(youmonst.data, mattk));
             if (youmonst.data == &mons[PM_STRAW_GOLEM]
                 || youmonst.data == &mons[PM_PAPER_GOLEM]) {
+/*JP
                 You("roast!");
+*/
+                You("\8fÅ\82°\82½\81I");
                 /* KMH -- this is okay with unchanging */
                 rehumanize();
                 break;
             } else if (Fire_resistance) {
+/*JP
                 pline_The("fire doesn't feel hot!");
+*/
+                pline("\89Î\82Í\82º\82ñ\82º\82ñ\94M\82­\82È\82¢\81I");
                 dmg = 0;
             }
             if ((int) mtmp->m_lev > rn2(20))
@@ -992,9 +1284,15 @@ register struct attack *mattk;
     case AD_COLD:
         hitmsg(mtmp, mattk);
         if (uncancelled) {
+/*JP
             pline("You're covered in frost!");
+*/
+            You("\95X\82Å\95¢\82í\82ê\82½\81I");
             if (Cold_resistance) {
+/*JP
                 pline_The("frost doesn't seem cold!");
+*/
+                pline("\95X\82Í\97â\82³\82ð\8a´\82\82³\82¹\82È\82¢\81I");
                 dmg = 0;
             }
             if ((int) mtmp->m_lev > rn2(20))
@@ -1005,9 +1303,15 @@ register struct attack *mattk;
     case AD_ELEC:
         hitmsg(mtmp, mattk);
         if (uncancelled) {
+/*JP
             You("get zapped!");
+*/
+            You("\93d\8c\82\82ð\82­\82ç\82Á\82½\81I");
             if (Shock_resistance) {
+/*JP
                 pline_The("zap doesn't shock you!");
+*/
+                pline("\93d\8c\82\82Í\82µ\82Ñ\82ê\82ð\8a´\82\82³\82¹\82È\82¢\81I");
                 dmg = 0;
             }
             if ((int) mtmp->m_lev > rn2(20))
@@ -1024,15 +1328,24 @@ register struct attack *mattk;
                 break;
             fall_asleep(-rnd(10), TRUE);
             if (Blind)
+/*JP
                 You("are put to sleep!");
+*/
+                You("\96°\82è\82É\82¨\82¿\82½\81I");
             else
+/*JP
                 You("are put to sleep by %s!", mon_nam(mtmp));
+*/
+                You("%s\82É\96°\82ç\82³\82ê\82½\81I", mon_nam(mtmp));
         }
         break;
     case AD_BLND:
         if (can_blnd(mtmp, &youmonst, mattk->aatyp, (struct obj *) 0)) {
             if (!Blind)
+/*JP
                 pline("%s blinds you!", Monnam(mtmp));
+*/
+                pline("%s\82Ì\8dU\8c\82\82Å\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I", Monnam(mtmp));
             make_blinded(Blinded + (long) dmg, FALSE);
             if (!Blind)
                 Your1(vision_clears);
@@ -1050,15 +1363,23 @@ register struct attack *mattk;
     dopois:
         hitmsg(mtmp, mattk);
         if (uncancelled && !rn2(8)) {
+#if 0 /*JP*/
             Sprintf(buf, "%s %s", s_suffix(Monnam(mtmp)),
                     mpoisons_subj(mtmp, mattk));
+#else
+            Sprintf(buf, "%s\82Ì%s", Monnam(mtmp),
+                    mpoisons_subj(mtmp, mattk));
+#endif
             poisoned(buf, ptmp, mdat->mname, 30, FALSE);
         }
         break;
     case AD_DRIN:
         hitmsg(mtmp, mattk);
         if (defends(AD_DRIN, uwep) || !has_head(youmonst.data)) {
+/*JP
             You("don't seem harmed.");
+*/
+            You("\8f\9d\82Â\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D");
             /* Not clear what to do for green slimes */
             break;
         }
@@ -1067,7 +1388,10 @@ register struct attack *mattk;
 
         if (uarmh && rn2(8)) {
             /* not body_part(HEAD) */
+/*JP
             Your("%s blocks the attack to your head.",
+*/
+            Your("%s\82ª\93ª\82Ö\82Ì\8dU\8c\82\82ð\96h\82¢\82¾\81D",
                  helm_simple_name(uarmh));
             break;
         }
@@ -1093,12 +1417,21 @@ register struct attack *mattk;
         hitmsg(mtmp, mattk);
         if (uncancelled && multi >= 0 && !rn2(3)) {
             if (Free_action) {
+/*JP
                 You("momentarily stiffen.");
+*/
+                You("\88ê\8fu\8dd\92¼\82µ\82½\81D");
             } else {
                 if (Blind)
+/*JP
                     You("are frozen!");
+*/
+                    You("\93®\82¯\82È\82¢\81I");
                 else
+/*JP
                     You("are frozen by %s!", mon_nam(mtmp));
+*/
+                    pline("%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82­\82È\82Á\82½\81I", mon_nam(mtmp));
                 nomovemsg = You_can_move_again;
                 nomul(-rnd(10));
                 multi_reason = "paralyzed by a monster";
@@ -1109,12 +1442,18 @@ register struct attack *mattk;
     case AD_DRLI:
         hitmsg(mtmp, mattk);
         if (uncancelled && !rn2(3) && !Drain_resistance) {
+/*JP
             losexp("life drainage");
+*/
+            losexp("\90\96½\97Í\82ð\8bz\8eû\82³\82ê\82Ä");
         }
         break;
     case AD_LEGS: {
         register long side = rn2(2) ? RIGHT_SIDE : LEFT_SIDE;
+/*JP
         const char *sidestr = (side == RIGHT_SIDE) ? "right" : "left";
+*/
+        const char *sidestr = (side == RIGHT_SIDE) ? "\89E" : "\8d¶";
 
         /* This case is too obvious to ignore, but Nethack is not in
          * general very good at considering height--most short monsters
@@ -1122,31 +1461,61 @@ register struct attack *mattk;
          * [FIXME: why can't a flying attacker overcome this?]
          */
         if (u.usteed || Levitation || Flying) {
+#if 0 /*JP*/
             pline("%s tries to reach your %s %s!", Monnam(mtmp), sidestr,
                   body_part(LEG));
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì%s%s\82É\8dU\8c\82\82µ\82æ\82¤\82Æ\82µ\82½\81I", Monnam(mtmp), sidestr,
+                  body_part(LEG));
+#endif
             dmg = 0;
         } else if (mtmp->mcan) {
+#if 0 /*JP*/
             pline("%s nuzzles against your %s %s!", Monnam(mtmp), sidestr,
                   body_part(LEG));
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì%s%s\82É\95@\82ð\82·\82è\82æ\82¹\82½\81I", Monnam(mtmp), sidestr,
+                  body_part(LEG));
+#endif
             dmg = 0;
         } else {
             if (uarmf) {
                 if (rn2(2) && (uarmf->otyp == LOW_BOOTS
                                || uarmf->otyp == IRON_SHOES))
+#if 0 /*JP*/
                     pline("%s pricks the exposed part of your %s %s!",
                           Monnam(mtmp), sidestr, body_part(LEG));
+#else
+                    pline("%s\82Í\82 \82È\82½\82Ì%s%s\82ð\82¿\82­\82è\82Æ\8eh\82µ\82½\81I",
+                          Monnam(mtmp), sidestr, body_part(LEG));
+#endif
                 else if (!rn2(5))
+#if 0 /*JP*/
                     pline("%s pricks through your %s boot!", Monnam(mtmp),
                           sidestr);
+#else
+                    pline("%s\82Í\82 \82È\82½\82Ì%s\82Ì\8cC\82²\82µ\82É\82¿\82­\82è\82Æ\8eh\82µ\82½\81I", Monnam(mtmp),
+                          sidestr);
+#endif
                 else {
+#if 0 /*JP*/
                     pline("%s scratches your %s boot!", Monnam(mtmp),
                           sidestr);
+#else
+                    pline("%s\82Í\82 \82È\82½\82Ì%s\82Ì\8cC\82ð\82Ð\82Á\82©\82¢\82½\81I", Monnam(mtmp),
+                          sidestr);
+#endif
                     dmg = 0;
                     break;
                 }
             } else
+#if 0 /*JP*/
                 pline("%s pricks your %s %s!", Monnam(mtmp), sidestr,
                       body_part(LEG));
+#else
+                pline("%s\82Í\82 \82È\82½\82Ì%s%s\82ð\82¿\82­\82è\82Æ\8eh\82µ\82½\81I", Monnam(mtmp), sidestr,
+                      body_part(LEG));
+#endif
             set_wounded_legs(side, rnd(60 - ACURR(A_DEX)));
             exercise(A_STR, FALSE);
             exercise(A_DEX, FALSE);
@@ -1158,10 +1527,16 @@ register struct attack *mattk;
         if (!rn2(3)) {
             if (mtmp->mcan) {
                 if (!Deaf)
+/*JP
                     You_hear("a cough from %s!", mon_nam(mtmp));
+*/
+                    You_hear("%s\82ª\83S\83z\83b\83S\83z\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I", mon_nam(mtmp));
             } else {
                 if (!Deaf)
+/*JP
                     You_hear("%s hissing!", s_suffix(mon_nam(mtmp)));
+*/
+                    You_hear("%s\82ª\83V\83\85\81[\83b\82Æ\82¢\82¤\90º\82ð\95·\82¢\82½\81I", mon_nam(mtmp));
                 if (!rn2(10)
                     || (flags.moonphase == NEW_MOON && !have_lizard())) {
                 do_stone:
@@ -1195,7 +1570,10 @@ register struct attack *mattk;
                 if (u_slip_free(mtmp, mattk)) {
                     dmg = 0;
                 } else {
+/*JP
                     pline("%s swings itself around you!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82 \82È\82½\82É\91Ì\82ð\97\8d\82Ý\82Â\82©\82¹\82½\81I", Monnam(mtmp));
                     u.ustuck = mtmp;
                 }
             } else if (u.ustuck == mtmp) {
@@ -1205,19 +1583,36 @@ register struct attack *mattk;
                                    && !Is_medusa_level(&u.uz)
                                    && !Is_waterlevel(&u.uz);
 
+/*JP
                     pline("%s drowns you...", Monnam(mtmp));
+*/
+                    pline("\82 \82È\82½\82Í%s\82É\97\8d\82Ý\82Â\82©\82ê\82Ä\93M\82ê\82½\81D\81D\81D", Monnam(mtmp));
                     killer.format = KILLED_BY_AN;
+#if 0 /*JP*/
                     Sprintf(killer.name, "%s by %s",
                             moat ? "moat" : "pool of water",
                             an(mtmp->data->mname));
+#else
+                    Sprintf(buf, "%s\82Ì%s\82É\97\8d\82Ý\82Â\82©\82ê\82Ä",
+                            moat ? "\96x" : "\92r",
+                            mtmp->data->mname);
+#endif
                     done(DROWNING);
                 } else if (mattk->aatyp == AT_HUGS)
+/*JP
                     You("are being crushed.");
+*/
+                    You("\82Â\82Ô\82³\82ê\82Â\82Â\82 \82é\81D");
             } else {
                 dmg = 0;
                 if (flags.verbose)
+#if 0 /*JP*/
                     pline("%s brushes against your %s.", Monnam(mtmp),
                           body_part(LEG));
+#else
+                    pline("%s\82Í\82 \82È\82½\82Ì%s\82É\90G\82ê\82½\81D", Monnam(mtmp),
+                          body_part(LEG));
+#endif
             }
         } else
             dmg = 0;
@@ -1226,7 +1621,10 @@ register struct attack *mattk;
         hitmsg(mtmp, mattk);
         if (uncancelled && !rn2(4) && u.ulycn == NON_PM
             && !Protection_from_shape_changers && !defends(AD_WERE, uwep)) {
+/*JP
             You_feel("feverish.");
+*/
+            You("\94M\82ª\82 \82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             exercise(A_CON, FALSE);
             u.ulycn = monsndx(mdat);
             retouch_equipment(2);
@@ -1257,19 +1655,33 @@ register struct attack *mattk;
             /* Continue below */
         } else if (dmgtype(youmonst.data, AD_SEDU)
                    || (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) {
+#if 0 /*JP*/
             pline("%s %s.", Monnam(mtmp),
                   mtmp->minvent
                       ? "brags about the goods some dungeon explorer provided"
                   : "makes some remarks about how difficult theft is lately");
+#else
+            pline("%s\82Í%s\81D", Monnam(mtmp),
+                  mtmp->minvent
+                      ? "\82 \82é\96À\8b{\92T\8c\9f\89Æ\82ª\92u\82¢\82Ä\82Á\82½\95i\95¨\82ð\8e©\96\9d\82µ\82½"
+                      : "\8dÅ\8bß\90Þ\93\90\82ª\82¢\82©\82É\8d¢\93ï\82©\92W\81X\82Æ\8fq\82×\82½");
+#endif
             if (!tele_restrict(mtmp))
                 (void) rloc(mtmp, TRUE);
             return 3;
         } else if (mtmp->mcan) {
             if (!Blind) {
+#if 0 /*JP*/
                 pline("%s tries to %s you, but you seem %s.",
                       Adjmonnam(mtmp, "plain"),
                       flags.female ? "charm" : "seduce",
                       flags.female ? "unaffected" : "uninterested");
+#else
+                pline("%s\82Í\82 \82È\82½\82ð%s\82µ\82æ\82¤\82Æ\82µ\82½\81C\82µ\82©\82µ\82 \82È\82½\82Í%s\81D",
+                      Adjmonnam(mtmp, "\92n\96¡\82È"),
+                      flags.female ? "\96£\97¹" : "\97U\98f",
+                      flags.female ? "\89e\8b¿\82ð\8eó\82¯\82È\82¢" : "\8b»\96¡\82ª\82È\82¢");
+#endif
             }
             if (rn2(3)) {
                 if (!tele_restrict(mtmp))
@@ -1289,8 +1701,13 @@ register struct attack *mattk;
                 (void) rloc(mtmp, TRUE);
             if (is_animal(mtmp->data) && *buf) {
                 if (canseemon(mtmp))
+#if 0 /*JP*/
                     pline("%s tries to %s away with %s.", Monnam(mtmp),
                           locomotion(mtmp->data, "run"), buf);
+#else
+                    pline("%s\82Í%s\82ð\8e\9d\82Á\82Ä\93¦\82°\8fo\82µ\82½\81D", Monnam(mtmp),
+                          buf);
+#endif
             }
             monflee(mtmp, 0, FALSE, FALSE);
             return 3;
@@ -1310,7 +1727,10 @@ register struct attack *mattk;
         hitmsg(mtmp, mattk);
         if (uncancelled) {
             if (flags.verbose)
+/*JP
                 Your("position suddenly seems very uncertain!");
+*/
+                pline("\8e©\95ª\82Ì\82¢\82é\88Ê\92u\82ª\93Ë\91R\95s\96¾\8am\82É\82È\82Á\82½\81I");
             tele();
         }
         break;
@@ -1319,7 +1739,10 @@ register struct attack *mattk;
         if (mtmp->mcan)
             break;
         if (u.umonnum == PM_IRON_GOLEM) {
+/*JP
             You("rust!");
+*/
+            You("\8eK\82Ñ\82Â\82¢\82½\81I");
             /* KMH -- this is okay with unchanging */
             rehumanize();
             break;
@@ -1337,7 +1760,10 @@ register struct attack *mattk;
         if (mtmp->mcan)
             break;
         if (u.umonnum == PM_WOOD_GOLEM || u.umonnum == PM_LEATHER_GOLEM) {
+/*JP
             You("rot!");
+*/
+            You("\95\85\82Á\82½\81I");
             /* KMH -- this is okay with unchanging */
             rehumanize();
             break;
@@ -1354,7 +1780,10 @@ register struct attack *mattk;
         if (!uwep && !uarmu && !uarm && !uarmh && !uarms && !uarmg && !uarmc
             && !uarmf) {
             boolean goaway = FALSE;
+/*JP
             pline("%s hits!  (I hope you don't mind.)", Monnam(mtmp));
+*/
+            pline("%s\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½\81D(\8bC\82É\82µ\82È\82¢\82æ\82¤\82É\81D)", Monnam(mtmp));
             if (Upolyd) {
                 u.mh += rnd(7);
                 if (!rn2(7)) {
@@ -1397,7 +1826,10 @@ register struct attack *mattk;
         } else {
             if (Role_if(PM_HEALER)) {
                 if (!Deaf && !(moves % 5))
+/*JP
                     verbalize("Doc, I can't help you unless you cooperate.");
+*/
+                    verbalize("\83h\83N\83^\81[\81I\8b¦\97Í\82ð\82¨\82Ë\82ª\82¢\82µ\82Ü\82·\82í\81D");
                 dmg = 0;
             } else
                 hitmsg(mtmp, mattk);
@@ -1410,12 +1842,21 @@ register struct attack *mattk;
         if (!mtmp->mcan && !rn2(10)) {
             if (!Deaf) {
                 if (Blind)
+/*JP
                     You_hear("laughter.");
+*/
+                    You_hear("\8fÎ\82¢\90º\82ð\95·\82¢\82½\81D");
                 else
+/*JP
                     pline("%s chuckles.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\83N\83X\83N\83X\8fÎ\82Á\82½\81D", Monnam(mtmp));
             }
             if (u.umonnum == PM_CLAY_GOLEM) {
+/*JP
                 pline("Some writing vanishes from your head!");
+*/
+                pline("\82¢\82­\82Â\82©\82Ì\95\8e\9a\82ª\82 \82È\82½\82Ì\93ª\82©\82ç\8fÁ\82¦\82½\81I");
                 /* KMH -- this is okay with unchanging */
                 rehumanize();
                 break;
@@ -1434,10 +1875,16 @@ register struct attack *mattk;
         hitmsg(mtmp, mattk);
         if (!mtmp->mcan && !rn2(3))
             if (Acid_resistance) {
+/*JP
                 pline("You're covered in acid, but it seems harmless.");
+*/
+                pline("\8e_\82Å\95¢\82í\82ê\82½\81D\82µ\82©\82µ\8f\9d\82Â\82©\82È\82¢\81D");
                 dmg = 0;
             } else {
+/*JP
                 pline("You're covered in acid!  It burns!");
+*/
+                You("\8e_\82Å\95¢\82í\82ê\8fÄ\82¯\82½\81I");
                 exercise(A_STR, FALSE);
             }
         else
@@ -1459,18 +1906,30 @@ register struct attack *mattk;
         if (!mtmp->mcan && !rn2(4) && !mtmp->mspec_used) {
             mtmp->mspec_used = mtmp->mspec_used + (dmg + rn2(6));
             if (Confusion)
+/*JP
                 You("are getting even more confused.");
+*/
+                You("\82Ü\82·\82Ü\82·\8d¬\97\90\82µ\82½\81D");
             else
+/*JP
                 You("are getting confused.");
+*/
+                You("\8d¬\97\90\82µ\82Ä\82«\82½\81D");
             make_confused(HConfusion + dmg, FALSE);
         }
         dmg = 0;
         break;
     case AD_DETH:
+/*JP
         pline("%s reaches out with its deadly touch.", Monnam(mtmp));
+*/
+        pline("%s\82Í\8e\80\82Ì\98r\82ð\82Ì\82Î\82µ\82½\81D", Monnam(mtmp));
         if (is_undead(youmonst.data)) {
             /* Still does normal damage */
+/*JP
             pline("Was that the touch of death?");
+*/
+            pline("\8d¡\82Ì\82Í\8e\80\82Ì\90é\8d\90\82¾\82Á\82½\82Ì\82©\82È\81H");
             break;
         }
         switch (rn2(20)) {
@@ -1479,13 +1938,19 @@ register struct attack *mattk;
         case 17:
             if (!Antimagic) {
                 killer.format = KILLED_BY_AN;
+/*JP
                 Strcpy(killer.name, "touch of death");
+*/
+                Strcpy(killer.name, "\8e\80\82Ì\90é\8d\90\82Å");
                 done(DIED);
                 dmg = 0;
                 break;
             }    /* else FALLTHRU */
         default: /* case 16: ... case 5: */
+/*JP
             You_feel("your life force draining away...");
+*/
+            You("\91Ì\97Í\82ª\92D\82í\82ê\82Ä\82¢\82­\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
             permdmg = 1; /* actual damage done below */
             break;
         case 4:
@@ -1495,17 +1960,26 @@ register struct attack *mattk;
         case 0:
             if (Antimagic)
                 shieldeff(u.ux, u.uy);
+/*JP
             pline("Lucky for you, it didn't work!");
+*/
+            pline("\89^\82Ì\82æ\82¢\82±\82Æ\82É\82È\82ñ\82Æ\82à\82È\82©\82Á\82½\81I");
             dmg = 0;
             break;
         }
         break;
     case AD_PEST:
+/*JP
         pline("%s reaches out, and you feel fever and chills.", Monnam(mtmp));
+*/
+        pline("%s\82Í\98r\82ð\82Ì\82Î\82µ\82½\81C\82 \82È\82½\82Í\88«\8a¦\82ð\8a´\82\82½\81D", Monnam(mtmp));
         (void) diseasemu(mdat); /* plus the normal damage */
         break;
     case AD_FAMN:
+/*JP
         pline("%s reaches out, and your body shrivels.", Monnam(mtmp));
+*/
+        pline("%s\82Í\98r\82ð\90L\82Î\82µ\82½\81C\82 \82È\82½\82Ì\91Ì\82Í\82µ\82È\82Ñ\82½\81D", Monnam(mtmp));
         exercise(A_CON, FALSE);
         if (!is_fainted())
             morehungry(rn1(40, 40));
@@ -1516,18 +1990,30 @@ register struct attack *mattk;
         if (!uncancelled)
             break;
         if (flaming(youmonst.data)) {
+/*JP
             pline_The("slime burns away!");
+*/
+            pline_The("\83X\83\89\83C\83\80\82Í\94R\82¦\82½\81I");
             dmg = 0;
         } else if (Unchanging || noncorporeal(youmonst.data)
                    || youmonst.data == &mons[PM_GREEN_SLIME]) {
+/*JP
             You("are unaffected.");
+*/
+            You("\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             dmg = 0;
         } else if (!Slimed) {
+/*JP
             You("don't feel very well.");
+*/
+            You("\8bC\95ª\82ª\88«\82¢\81D");
             make_slimed(10L, (char *) 0);
             delayed_killer(SLIMED, KILLED_BY_AN, mtmp->data->mname);
         } else
+/*JP
             pline("Yuck!");
+*/
+            pline("\83E\83Q\83F\81[\81I");
         break;
     case AD_ENCH: /* KMH -- remove enchantment (disenchanter) */
         hitmsg(mtmp, mattk);
@@ -1537,7 +2023,10 @@ register struct attack *mattk;
             struct obj *obj = some_armor(&youmonst);
 
             if (drain_item(obj)) {
+/*JP
                 pline("%s less effective.", Yobjnam2(obj, "seem"));
+*/
+                Your("%s\82©\82ç\96\82\97Í\82ª\8fÁ\82¦\82½\82æ\82¤\82¾\81D", xname(obj));
             }
         }
         break;
@@ -1666,24 +2155,41 @@ register struct attack *mattk;
              * like horses for now :-)
              */
             Strcpy(buf, mon_nam(u.usteed));
+#if 0 /*JP*/
             pline("%s lunges forward and plucks you off %s!", Monnam(mtmp),
                   buf);
+#else
+            pline("%s\82Í\93Ë\90i\82µ\82 \82È\82½\82ð%s\82©\82ç\88ø\82«\97\8e\82µ\82½\81I", Monnam(mtmp),
+                  buf);
+#endif
             dismount_steed(DISMOUNT_ENGULFED);
         } else
+/*JP
             pline("%s engulfs you!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82ð\88ù\82Ý\82±\82ñ\82¾\81I", Monnam(mtmp));
         stop_occupation();
         reset_occupations(); /* behave as if you had moved */
 
         if (u.utrap) {
+#if 0 /*JP*/
             You("are released from the %s!",
                 u.utraptype == TT_WEB ? "web" : "trap");
+#else
+            You("%s\82©\82ç\89ð\95ú\82³\82ê\82½\81I",
+                u.utraptype == TT_WEB ? "\82­\82à\82Ì\91\83" : "ã©");
+#endif
             u.utrap = 0;
         }
 
         i = number_leashed();
         if (i > 0) {
+#if 0 /*JP*/
             const char *s = (i > 1) ? "leashes" : "leash";
             pline_The("%s %s loose.", s, vtense(s, "snap"));
+#else
+            pline("\95R\82Í\83p\83`\83\93\82Æ\90Ø\82ê\82½\81D");
+#endif
             unleash_all();
         }
 
@@ -1741,20 +2247,30 @@ register struct attack *mattk;
             u.uswldtim = 0;
             tmp = 0;
         } else if (u.uswldtim == 0) {
+/*JP
             pline("%s totally digests you!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82ð\8a®\91S\82É\8fÁ\89»\82µ\82½\81I", Monnam(mtmp));
             tmp = u.uhp;
             if (Half_physical_damage)
                 tmp *= 2; /* sorry */
         } else {
+#if 0 /*JP*/
             pline("%s%s digests you!", Monnam(mtmp),
                   (u.uswldtim == 2) ? " thoroughly"
                                     : (u.uswldtim == 1) ? " utterly" : "");
+#else
+            pline("%s\82Í\82 \82È\82½\82ð%s\8fÁ\89»\82µ\82Ä\82¢\82é\81I", Monnam(mtmp),
+                  (u.uswldtim == 2) ? "\93O\92ê\93I\82É"
+                                    : (u.uswldtim == 1) ? "\8a®\91S\82É" : "");
+#endif
             exercise(A_STR, FALSE);
         }
         break;
     case AD_PHYS:
         physical_damage = TRUE;
         if (mtmp->data == &mons[PM_FOG_CLOUD]) {
+#if 0 /*JP*/
             You("are laden with moisture and %s",
                 flaming(youmonst.data)
                     ? "are smoldering out!"
@@ -1762,23 +2278,44 @@ register struct attack *mattk;
                                  : amphibious(youmonst.data)
                                        ? "feel comforted."
                                        : "can barely breathe!");
+#else
+            You("\8e¼\8bC\82É\8bê\82µ\82ß\82ç\82ê\81C%s",
+                flaming(youmonst.data)
+                    ? "\82­\82·\82Ô\82Á\82½\81I"
+                    : Breathless ? "\8f­\81X\95s\89õ\82É\8a´\82\82½\81D"
+                                 : amphibious(youmonst.data)
+                                       ? "\88À\82ç\82¬\82ð\8a´\82\82½\81D"
+                                       : "\91§\82ð\82·\82é\82Ì\82ª\82â\82Á\82Æ\82¾\81I");
+#endif
             /* NB: Amphibious includes Breathless */
             if (Amphibious && !flaming(youmonst.data))
                 tmp = 0;
         } else {
+/*JP
             You("are pummeled with debris!");
+*/
+            You("\8a¢âI\82Å\92É\82ß\82Â\82¯\82ç\82ê\82½\81I");
             exercise(A_STR, FALSE);
         }
         break;
     case AD_ACID:
         if (Acid_resistance) {
+/*JP
             You("are covered with a seemingly harmless goo.");
+*/
+            You("\96³\8aQ\82Á\82Û\82¢\82Ë\82Î\82Â\82­\82à\82Ì\82Å\82¨\82¨\82í\82ê\82½\81D");
             tmp = 0;
         } else {
             if (Hallucination)
+/*JP
                 pline("Ouch!  You've been slimed!");
+*/
+                pline("\82°\82°\82ñ\81I\82 \82È\82½\82Í\82Ê\82é\82Ê\82é\82¾\81I");
             else
+/*JP
                 You("are covered in slime!  It burns!");
+*/
+                You("\82×\82Æ\82×\82Æ\82É\82È\82Á\82½\81D\82»\82µ\82Ä\8e_\82É\8fÄ\82©\82ê\82½\81I");
             exercise(A_STR, FALSE);
         }
         break;
@@ -1787,7 +2324,10 @@ register struct attack *mattk;
             if (!Blind) {
                 long was_blinded = Blinded;
                 if (!Blinded)
+/*JP
                     You_cant("see in here!");
+*/
+                    You("\89½\82à\8c©\82¦\82È\82¢\81I");
                 make_blinded((long) tmp, FALSE);
                 if (!was_blinded && !Blind)
                     Your1(vision_clears);
@@ -1799,10 +2339,16 @@ register struct attack *mattk;
         break;
     case AD_ELEC:
         if (!mtmp->mcan && rn2(2)) {
+/*JP
             pline_The("air around you crackles with electricity.");
+*/
+            pline("\82 \82È\82½\82Ì\89ñ\82è\82Ì\8bó\8bC\82Í\93d\8bC\82Å\83s\83\8a\83s\83\8a\82µ\82Ä\82¢\82é\81D");
             if (Shock_resistance) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 You("seem unhurt.");
+*/
+                You("\8f\9d\82Â\82©\82È\82¢\82æ\82¤\82¾\81D");
                 ugolemeffects(AD_ELEC, tmp);
                 tmp = 0;
             }
@@ -1813,11 +2359,17 @@ register struct attack *mattk;
         if (!mtmp->mcan && rn2(2)) {
             if (Cold_resistance) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 You_feel("mildly chilly.");
+*/
+                pline("\82Ð\82ñ\82â\82è\82µ\82½\81D");
                 ugolemeffects(AD_COLD, tmp);
                 tmp = 0;
             } else
+/*JP
                 You("are freezing to death!");
+*/
+                You("\93\80\8e\80\82µ\82»\82¤\82¾\81I");
         } else
             tmp = 0;
         break;
@@ -1825,11 +2377,17 @@ register struct attack *mattk;
         if (!mtmp->mcan && rn2(2)) {
             if (Fire_resistance) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 You_feel("mildly hot.");
+*/
+                pline("\83|\83J\83|\83J\82µ\82½\81D");
                 ugolemeffects(AD_FIRE, tmp);
                 tmp = 0;
             } else
+/*JP
                 You("are burning to a crisp!");
+*/
+                You("\94R\82¦\82Ä\83J\83\89\83J\83\89\82É\82È\82Á\82½\81I");
             burn_away_slime();
         } else
             tmp = 0;
@@ -1858,15 +2416,26 @@ register struct attack *mattk;
         stop_occupation();
 
     if (touch_petrifies(youmonst.data) && !resists_ston(mtmp)) {
+#if 0 /*JP*/
         pline("%s very hurriedly %s you!", Monnam(mtmp),
               is_animal(mtmp->data) ? "regurgitates" : "expels");
+#else
+        pline("%s\82Í\8dQ\82Ä\82Ä\82 \82È\82½\82ð%s\82µ\82½\81I", Monnam(mtmp),
+              is_animal(mtmp->data)? "\93f\82«\96ß" : "\94r\8fo");
+#endif
         expels(mtmp, mtmp->data, FALSE);
     } else if (!u.uswldtim || youmonst.data->msize >= MZ_HUGE) {
+/*JP
         You("get %s!", is_animal(mtmp->data) ? "regurgitated" : "expelled");
+*/
+        You("%s\82³\82ê\82½\81I", is_animal(mtmp->data)? "\93f\82«\96ß" : "\94r\8fo");
         if (flags.verbose
             && (is_animal(mtmp->data)
                 || (dmgtype(mtmp->data, AD_DGST) && Slow_digestion)))
+/*JP
             pline("Obviously %s doesn't like your taste.", mon_nam(mtmp));
+*/
+            You("\82Ç\82¤\82à%s\8dD\82Ý\82Ì\96¡\82\82á\82È\82¢\82æ\82¤\82¾\81D", mon_nam(mtmp));
         expels(mtmp, mtmp->data, FALSE);
     }
     return 1;
@@ -1885,10 +2454,17 @@ boolean ufound;
         return 0;
 
     if (!ufound)
+#if 0 /*JP*/
         pline("%s explodes at a spot in %s!",
               canseemon(mtmp) ? Monnam(mtmp) : "It",
               levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water"
                                                       : "thin air");
+#else
+        pline("%s\82Í\89½\82à\82È\82¢%s\82Å\94\9a\94­\82µ\82½\81I",
+              canseemon(mtmp) ? Monnam(mtmp) : "\89½\8eÒ\82©",
+              levl[mtmp->mux][mtmp->muy].typ == WATER ? "\90\85\92\86"
+                                                      : "\8bó\8aÔ");
+#endif
     else {
         register int tmp = d((int) mattk->damn, (int) mattk->damd);
         register boolean not_affected = defends((int) mattk->adtyp, uwep);
@@ -1911,11 +2487,17 @@ boolean ufound;
 
             if (!not_affected) {
                 if (ACURR(A_DEX) > rnd(20)) {
+/*JP
                     You("duck some of the blast.");
+*/
+                    You("\8fÕ\8c\82\82ð\82³\82¯\82½\81D");
                     tmp = (tmp + 1) / 2;
                 } else {
                     if (flags.verbose)
+/*JP
                         You("get blasted!");
+*/
+                        You("\8fÕ\8c\82\82ð\82­\82ç\82Á\82½\81I");
                 }
                 if (mattk->adtyp == AD_FIRE)
                     burn_away_slime();
@@ -1930,12 +2512,18 @@ boolean ufound;
             if (!not_affected) {
                 /* sometimes you're affected even if it's invisible */
                 if (mon_visible(mtmp) || (rnd(tmp /= 2) > u.ulevel)) {
+/*JP
                     You("are blinded by a blast of light!");
+*/
+                    You("\82Ü\82Î\82ä\82¢\8cõ\82É\96Ú\82ª\82­\82ç\82ñ\82¾\81I");
                     make_blinded((long) tmp, FALSE);
                     if (!Blind)
                         Your1(vision_clears);
                 } else if (flags.verbose)
+/*JP
                     You("get the impression it was not terribly bright.");
+*/
+                    You("\82»\82ê\82Í\8b°\82ë\82µ\82­\82Ü\82Ô\82µ\82¢\82Æ\82¢\82¤\82Ù\82Ç\82\82á\82È\82¢\82Æ\8ev\82Á\82½\81D");
             }
             break;
 
@@ -1946,13 +2534,19 @@ boolean ufound;
             if (!not_affected) {
                 boolean chg;
                 if (!Hallucination)
+/*JP
                     You("are caught in a blast of kaleidoscopic light!");
+*/
+                    You("\96\9c\89Ø\8b¾\82Ì\8cõ\82É\95ß\82ç\82¦\82ç\82ê\82½\81I");
                 /* avoid hallucinating the black light as it dies */
                 mondead(mtmp);    /* remove it from map now */
                 kill_agr = FALSE; /* already killed (maybe lifesaved) */
                 chg =
                     make_hallucinated(HHallucination + (long) tmp, FALSE, 0L);
+/*JP
                 You("%s.", chg ? "are freaked out" : "seem unaffected");
+*/
+                You("%s\81D", chg ? "\90\8c\82¢\82µ\82ê\82½" : "\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½");
             }
             break;
 
@@ -1960,7 +2554,10 @@ boolean ufound;
             break;
         }
         if (not_affected) {
+/*JP
             You("seem unaffected by it.");
+*/
+            You("\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D");
             ugolemeffects((int) mattk->adtyp, tmp);
         }
     }
@@ -1977,12 +2574,21 @@ register struct monst *mtmp;
 register struct attack *mattk;
 {
     static const char *const reactions[] = {
+#if 0 /*JP*/
         "confused",              /* [0] */
         "stunned",               /* [1] */
         "puzzled",   "dazzled",  /* [2,3] */
         "irritated", "inflamed", /* [4,5] */
         "tired",                 /* [6] */
         "dulled",                /* [7] */
+#else
+        "\8d¬\97\90\82µ\82½",                 /* [0] */
+        "\9eN\9eO\82Æ\82µ\82½",               /* [1] */
+        "\8d¢\98f\82µ\82½",   "\8c\98f\82³\82ê\82½", /* [2,3] */
+        "\83C\83\89\83C\83\89\82µ\82½", "\8b»\95±\82µ\82½", /* [4,5] */
+        "\94æ\82ê\82½",                   /* [6] */
+        "\82Ú\82ñ\82â\82è\82µ\82½",             /* [7] */
+#endif
     };
     int react = -1;
     boolean cancelled = (mtmp->mcan != 0), already = FALSE;
@@ -2003,10 +2609,17 @@ register struct attack *mattk;
         if (cancelled || !mtmp->mcansee) {
             if (!canseemon(mtmp))
                 break; /* silently */
+#if 0 /*JP*/
             pline("%s %s.", Monnam(mtmp),
                   (mtmp->data == &mons[PM_MEDUSA] && mtmp->mcan)
                       ? "doesn't look all that ugly"
                       : "gazes ineffectually");
+#else
+            pline("%s\82Í%s\81D", Monnam(mtmp),
+                  (mtmp->data == &mons[PM_MEDUSA] && mtmp->mcan)
+                      ? "\82»\82ê\82Ù\82Ç\8fX\82­\82È\82¢\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½"
+                      : "\96³\88Ó\96¡\82É\82É\82ç\82ñ\82¾");
+#endif
             break;
         }
         if (Reflecting && couldsee(mtmp->mx, mtmp->my)
@@ -2015,21 +2628,35 @@ register struct attack *mattk;
             boolean useeit = canseemon(mtmp);
 
             if (useeit)
+/*JP
                 (void) ureflects("%s gaze is reflected by your %s.",
+*/
+                (void) ureflects("%s\82Ì\82É\82ç\82Ý\82Í%s\82Å\94½\8eË\82³\82ê\82½\81D",
                                  s_suffix(Monnam(mtmp)));
             if (mon_reflects(
                     mtmp, !useeit ? (char *) 0
+/*JP
                                   : "The gaze is reflected away by %s %s!"))
+*/
+                                  : "\82É\82ç\82Ý\82Í%s\82Ì%s\82É\82æ\82Á\82Ä\94½\8eË\82³\82ê\82½\81I"))
                 break;
             if (!m_canseeu(mtmp)) { /* probably you're invisible */
                 if (useeit)
+#if 0 /*JP*/
                     pline(
                       "%s doesn't seem to notice that %s gaze was reflected.",
                           Monnam(mtmp), mhis(mtmp));
+#else
+                    pline("\82É\82ç\82Ý\82ª\94½\8eË\82µ\82Ä\82¢\82é\82±\82Æ\82É%s\82Í\8bC\95t\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D",
+                          Monnam(mtmp));
+#endif
                 break;
             }
             if (useeit)
+/*JP
                 pline("%s is turned to stone!", Monnam(mtmp));
+*/
+                pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mtmp));
             stoned = TRUE;
             killed(mtmp);
 
@@ -2039,11 +2666,17 @@ register struct attack *mattk;
         }
         if (canseemon(mtmp) && couldsee(mtmp->mx, mtmp->my)
             && !Stone_resistance) {
+/*JP
             You("meet %s gaze.", s_suffix(mon_nam(mtmp)));
+*/
+            You("%s\82É\82É\82ç\82Ü\82ê\82½\81D", s_suffix(mon_nam(mtmp)));
             stop_occupation();
             if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))
                 break;
+/*JP
             You("turn to stone...");
+*/
+            You("\90Î\82É\82È\82Á\82½\81D\81D\81D");
             killer.format = KILLED_BY;
             Strcpy(killer.name, mtmp->data->mname);
             done(STONING);
@@ -2060,9 +2693,15 @@ register struct attack *mattk;
 
                 mtmp->mspec_used = mtmp->mspec_used + (conf + rn2(6));
                 if (!Confusion)
+/*JP
                     pline("%s gaze confuses you!", s_suffix(Monnam(mtmp)));
+*/
+                    pline("%s\82Ì\82É\82ç\82Ý\82Å\82 \82È\82½\82Í\8d¬\97\90\82µ\82½\81I", s_suffix(Monnam(mtmp)));
                 else
+/*JP
                     You("are getting more and more confused.");
+*/
+                    You("\82Ü\82·\82Ü\82·\8d¬\97\90\82µ\82½\81D");
                 make_confused(HConfusion + conf, FALSE);
                 stop_occupation();
             }
@@ -2078,7 +2717,10 @@ register struct attack *mattk;
                 int stun = d(2, 6);
 
                 mtmp->mspec_used = mtmp->mspec_used + (stun + rn2(6));
+/*JP
                 pline("%s stares piercingly at you!", Monnam(mtmp));
+*/
+                pline("%s\82Í\97â\82½\82¢\82Ü\82È\82´\82µ\82ð\82 \82È\82½\82É\8cü\82¯\82½\81I", Monnam(mtmp));
                 make_stunned((HStun & TIMEOUT) + (long) stun, TRUE);
                 stop_occupation();
             }
@@ -2097,7 +2739,10 @@ register struct attack *mattk;
             } else {
                 int blnd = d((int) mattk->damn, (int) mattk->damd);
 
+/*JP
                 You("are blinded by %s radiance!", s_suffix(mon_nam(mtmp)));
+*/
+                You("%s\82Ì\8cõ\82Å\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I", mon_nam(mtmp));
                 make_blinded((long) blnd, FALSE);
                 stop_occupation();
                 /* not blind at this point implies you're wearing
@@ -2118,10 +2763,16 @@ register struct attack *mattk;
             } else {
                 int dmg = d(2, 6), lev = (int) mtmp->m_lev;
 
+/*JP
                 pline("%s attacks you with a fiery gaze!", Monnam(mtmp));
+*/
+                pline("%s\82Í\89\8a\82Ì\82É\82ç\82Ý\8dU\8c\82\82ð\82µ\82Ä\82«\82½\81I", Monnam(mtmp));
                 stop_occupation();
                 if (Fire_resistance) {
+/*JP
                     pline_The("fire doesn't feel hot!");
+*/
+                    pline("\89Î\82Í\82º\82ñ\82º\82ñ\94M\82­\82È\82¢\81I");
                     dmg = 0;
                 }
                 burn_away_slime();
@@ -2145,7 +2796,10 @@ register struct attack *mattk;
                 already = (mtmp->mfrozen != 0); /* can't happen... */
             } else {
                 fall_asleep(-rnd(10), TRUE);
+/*JP
                 pline("%s gaze makes you very sleepy...",
+*/
+                pline("%s\82Ì\82É\82ç\82Ý\82Å\82 \82È\82½\82Í\96°\82­\82È\82Á\82½\81D\81D\81D",
                       s_suffix(Monnam(mtmp)));
             }
         }
@@ -2173,10 +2827,17 @@ register struct attack *mattk;
             react = rn2(SIZE(reactions));
         /* cancelled/hallucinatory feedback; monster might look "confused",
            "stunned",&c but we don't actually set corresponding attribute */
+#if 0 /*JP*/
         pline("%s looks %s%s.", Monnam(mtmp),
               !rn2(3) ? "" : already ? "quite "
                                      : (!rn2(2) ? "a bit " : "somewhat "),
               reactions[react]);
+#else
+        pline("%s\82Í%s%s\82æ\82¤\82¾\81D", Monnam(mtmp),
+              !rn2(3) ? "" : already ? "\82©\82È\82è"
+                                     : (!rn2(2) ? "\8f­\82µ" : "\82¢\82­\82ç\82©"),
+              reactions[react]);
+#endif
     }
     return 0;
 }
@@ -2257,20 +2918,34 @@ register struct monst *mon;
     char qbuf[QBUFSZ];
 
     if (mon->mcan || mon->mspec_used) {
+#if 0 /*JP*/
         pline("%s acts as though %s has got a %sheadache.", Monnam(mon),
               mhe(mon), mon->mcan ? "severe " : "");
+#else
+        pline("%s\82Í%s\93ª\82ª\92É\82¢\82Ó\82è\82ð\82µ\82½\81D", Monnam(mon),
+              mon->mcan ? "\82Ð\82Ç\82­" : "");
+#endif
         return 0;
     }
 
     if (unconscious()) {
+/*JP
         pline("%s seems dismayed at your lack of response.", Monnam(mon));
+*/
+        pline("%s\82Í\95Ô\8e\96\82ª\82È\82¢\82Ì\82Å\8bC\82ª\88Þ\82¦\82½\82æ\82¤\82¾\81D", Monnam(mon));
         return 0;
     }
 
     if (Blind)
+/*JP
         pline("It caresses you...");
+*/
+        pline("\89½\8eÒ\82©\82ª\82 \82È\82½\82ð\95ø\82«\82µ\82ß\82Ä\82¢\82é\81D\81D\81D");
     else
+/*JP
         You_feel("very attracted to %s.", mon_nam(mon));
+*/
+        You("%s\82É\88ø\82«\82Â\82¯\82ç\82ê\82Ä\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", mon_nam(mon));
     /* if in the process of putting armor on or taking armor off,
        interrupt that activity now */
     (void) stop_donning((struct obj *) 0);
@@ -2291,15 +2966,26 @@ register struct monst *mon;
                     continue; /* next ring might not be worn */
             }
             if (rn2(20) < ACURR(A_CHA)) {
+#if 0 /*JP*/
                 (void) safe_qbuf(qbuf, "\"That ",
                                  " looks pretty.  May I have it?\"", ring,
                                  xname, simpleonames, "ring");
+#else
+                (void) safe_qbuf(qbuf, "\81u\82È\82ñ\82Ä\91f\93G\82È",
+                                 "\82Å\82µ\82å\82¤\81D\82í\82½\82µ\82É\82­\82ê\82Ü\82¹\82ñ\81H\81v", ring,
+                                 xname, simpleonames, "\8ew\97Ö");
+#endif
                 makeknown(RIN_ADORNMENT);
                 if (yn(qbuf) == 'n')
                     continue;
             } else
+#if 0 /*JP*/
                 pline("%s decides she'd like %s, and takes it.",
                       Blind ? "She" : Monnam(mon), yname(ring));
+#else
+                pline("%s\82Í%s\82ª\82Æ\82Ä\82à\8bC\82É\82¢\82Á\82Ä\81C\82»\82ê\82ð\8eæ\82è\82 \82°\82½\81D",
+                      Blind ? "\94Þ\8f\97" : Monnam(mon), xname(ring));
+#endif
             makeknown(RIN_ADORNMENT);
             if (ring == uleft || ring == uright)
                 Ring_gone(ring);
@@ -2320,41 +3006,80 @@ register struct monst *mon;
             if (uarmg) {
                 /* don't put on ring if gloves are in the way */
                 if (!tried_gloves++)
+/*JP
                     mayberem(uarmg, "gloves");
+*/
+                    mayberem(uarmg, "\8f¬\8eè");
                 if (uarmg)
                     break; /* no point trying further rings */
             }
             if (rn2(20) < ACURR(A_CHA)) {
+#if 0 /*JP*/
                 (void) safe_qbuf(qbuf, "\"That ",
                                 " looks pretty.  Would you wear it for me?\"",
                                  ring, xname, simpleonames, "ring");
+#else
+                (void) safe_qbuf(qbuf, "\81u\82¨\82â\82È\82ñ\82Ä\82·\82Î\82ç\82µ\82¢",
+                                "\82¾\81D\8e\84\82Ì\82½\82ß\82É\8ew\82É\82Í\82ß\82Ä\82­\82ê\82È\82¢\82©\82¢\81H\81v",
+                                 ring, xname, simpleonames, "\8ew\97Ö");
+#endif
                 makeknown(RIN_ADORNMENT);
                 if (yn(qbuf) == 'n')
                     continue;
             } else {
+#if 0 /*JP*/
                 pline("%s decides you'd look prettier wearing %s,",
                       Blind ? "He" : Monnam(mon), yname(ring));
+#else
+                pline("%s\82Í%s\82ð\82Â\82¯\82½\82 \82È\82½\82ª\82æ\82è\96£\97Í\93I\82¾\82Æ\8dl\82¦\81C",
+                      Blind ? "\94Þ" : Monnam(mon), xname(ring));
+#endif
+/*JP
                 pline("and puts it on your finger.");
+*/
+                pline("\82 \82È\82½\82Ì\8ew\82É\82»\82ê\82ð\82Í\82ß\82½\81D");
             }
             makeknown(RIN_ADORNMENT);
             if (!uright) {
+#if 0 /*JP*/
                 pline("%s puts %s on your right %s.",
                       Blind ? "He" : Monnam(mon), the(xname(ring)),
                       body_part(HAND));
+#else
+                pline("%s\82Í%s\82ð\82 \82È\82½\82Ì\89E%s\82É\82Í\82ß\82½\81D",
+                      Blind ? "\94Þ" : Monnam(mon), the(xname(ring)),
+                      body_part(HAND));
+#endif
                 setworn(ring, RIGHT_RING);
             } else if (!uleft) {
+#if 0 /*JP*/
                 pline("%s puts %s on your left %s.",
                       Blind ? "He" : Monnam(mon), the(xname(ring)),
                       body_part(HAND));
+#else
+                pline("%s\82Í%s\82ð\82 \82È\82½\82Ì\8d¶%s\82É\82Í\82ß\82½\81D",
+                      Blind ? "\94Þ" : Monnam(mon), the(xname(ring)),
+                      body_part(HAND));
+#endif
                 setworn(ring, LEFT_RING);
             } else if (uright && uright->otyp != RIN_ADORNMENT) {
+#if 0 /*JP*/
                 pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
                       yname(uright), yname(ring));
+#else
+                pline("%s\82Í%s\82ð%s\82É\82Æ\82è\82©\82¦\82½\81D", Blind ? "\94Þ" : Monnam(mon),
+                      yname(uright), xname(ring));
+#endif
                 Ring_gone(uright);
                 setworn(ring, RIGHT_RING);
             } else if (uleft && uleft->otyp != RIN_ADORNMENT) {
+#if 0 /*JP*/
                 pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
                       yname(uleft), yname(ring));
+#else
+                pline("%s\82Í%s\82ð%s\82É\82Æ\82è\82©\82¦\82½\81D", Blind ? "\94Þ" : Monnam(mon),
+                      yname(uleft), xname(ring));
+#endif
                 Ring_gone(uleft);
                 setworn(ring, LEFT_RING);
             } else
@@ -2365,25 +3090,55 @@ register struct monst *mon;
     }
 
     if (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu)
+#if 0 /*JP*/
         pline("%s murmurs sweet nothings into your ear.",
               Blind ? (fem ? "She" : "He") : Monnam(mon));
+#else
+        pline("%s\82Í\82 \82È\82½\82Ì\8e¨\82à\82Æ\82Å\8aÃ\82¢\82³\82³\82â\82«\82ð\82Â\82Ô\82â\82¢\82½\81D",
+              Blind ? (fem ? "\94Þ\8f\97" : "\94Þ") : Monnam(mon));
+#endif
     else
+#if 0 /*JP*/
         pline("%s murmurs in your ear, while helping you undress.",
               Blind ? (fem ? "She" : "He") : Monnam(mon));
+#else
+        pline("%s\82Í\8e¨\82à\82Æ\82Å\82 \82È\82½\82Ì\95\9e\82ð\92E\82ª\82¹\82È\82ª\82ç\82³\82³\82â\82¢\82½\81D",
+              Blind ? (fem ? "\94Þ\8f\97" : "\94Þ") : Monnam(mon));
+#endif
     mayberem(uarmc, cloak_simple_name(uarmc));
     if (!uarmc)
+/*JP
         mayberem(uarm, "suit");
+*/
+        mayberem(uarm, "\83X\81[\83c");
+/*JP
     mayberem(uarmf, "boots");
+*/
+    mayberem(uarmf, "\83u\81[\83c");
     if (!tried_gloves)
+/*JP
         mayberem(uarmg, "gloves");
+*/
+        mayberem(uarmg, "\8f¬\8eè");
+/*JP
     mayberem(uarms, "shield");
+*/
+    mayberem(uarms, "\8f\82");
     mayberem(uarmh, helm_simple_name(uarmh));
     if (!uarmc && !uarm)
+/*JP
         mayberem(uarmu, "shirt");
+*/
+        mayberem(uarmu, "\83V\83\83\83c");
 
     if (uarm || uarmc) {
+#if 0 /*JP*/
         verbalize("You're such a %s; I wish...",
                   flags.female ? "sweet lady" : "nice guy");
+#else
+        verbalize("%s\82¾\81D\81D\81D\82Æ\82¢\82¢\82Ì\82É\81D",
+                  flags.female ? "\83`\83\83\81[\83~\83\93\83O" : "\82·\82Ä\82«");
+#endif
         if (!tele_restrict(mon))
             (void) rloc(mon, TRUE);
         return 1;
@@ -2392,15 +3147,24 @@ register struct monst *mon;
         adjalign(1);
 
     /* by this point you have discovered mon's identity, blind or not... */
+/*JP
     pline("Time stands still while you and %s lie in each other's arms...",
+*/
+    pline("\82 \82È\82½\82Æ%s\82ª\95ø\82«\8d\87\82¤\82Æ\81C\8e\9e\82ª\8e~\82Ü\82Á\82½\82æ\82¤\82É\8a´\82\82½\81D\81D\81D",
           noit_mon_nam(mon));
     if (rn2(35) > ACURR(A_CHA) + ACURR(A_INT)) {
         /* Don't bother with mspec_used here... it didn't get tired! */
+/*JP
         pline("%s seems to have enjoyed it more than you...",
+*/
+        pline("%s\82Í\82 \82È\82½\82æ\82è\8ay\82µ\82ñ\82¾\82æ\82¤\82¾\81D\81D\81D",
               noit_Monnam(mon));
         switch (rn2(5)) {
         case 0:
+/*JP
             You_feel("drained of energy.");
+*/
+            You("\91Ì\97Í\82ª\8fÁ\96Õ\82µ\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             u.uen = 0;
             u.uenmax -= rnd(Half_physical_damage ? 5 : 10);
             exercise(A_CON, FALSE);
@@ -2408,62 +3172,101 @@ register struct monst *mon;
                 u.uenmax = 0;
             break;
         case 1:
+/*JP
             You("are down in the dumps.");
+*/
+            You("\88Ó\8bC\8fÁ\92¾\82µ\82½\81D");
             (void) adjattrib(A_CON, -1, TRUE);
             exercise(A_CON, FALSE);
             context.botl = 1;
             break;
         case 2:
+/*JP
             Your("senses are dulled.");
+*/
+            Your("\8cÜ\8a´\82Í\93Ý\82Á\82½\81D");
             (void) adjattrib(A_WIS, -1, TRUE);
             exercise(A_WIS, FALSE);
             context.botl = 1;
             break;
         case 3:
             if (!resists_drli(&youmonst)) {
+/*JP
                 You_feel("out of shape.");
+*/
+                You("\82­\82½\82Ñ\82ê\82½\81D");
+/*JP
                 losexp("overexertion");
+*/
+                losexp("\89ß\98J\82Å");
             } else {
+/*JP
                 You("have a curious feeling...");
+*/
+                You("\95Ï\82È\8a´\82\82ª\82µ\82½\81D\81D\81D");
             }
             break;
         case 4: {
             int tmp;
+/*JP
             You_feel("exhausted.");
+*/
+            You("\94æ\82ê\82ð\8a´\82\82½\81D");
             exercise(A_STR, FALSE);
             tmp = rn1(10, 6);
+/*JP
             losehp(Maybe_Half_Phys(tmp), "exhaustion", KILLED_BY);
+*/
+            losehp(Maybe_Half_Phys(tmp), "\90¸\97Í\82Ì\8eg\82¢\82·\82¬\82Å", KILLED_BY);
             break;
         }
         }
     } else {
         mon->mspec_used = rnd(100); /* monster is worn out */
+/*JP
         You("seem to have enjoyed it more than %s...", noit_mon_nam(mon));
+*/
+        You("%s\82æ\82è\82à\8ay\82µ\82ñ\82¾\82æ\82¤\82¾\81D\81D\81D", noit_mon_nam(mon));
         switch (rn2(5)) {
         case 0:
+/*JP
             You_feel("raised to your full potential.");
+*/
+            You("\90ö\8dÝ\94\\97Í\82ª\8d\82\82Ü\82Á\82½\82æ\82¤\82É\8a´\82\82½\81D");
             exercise(A_CON, TRUE);
             u.uen = (u.uenmax += rnd(5));
             break;
         case 1:
+/*JP
             You_feel("good enough to do it again.");
+*/
+            You("\82à\82¤\88ê\93x\82Å\82«\82é\82Æ\8ev\82Á\82½\81D");
             (void) adjattrib(A_CON, 1, TRUE);
             exercise(A_CON, TRUE);
             context.botl = 1;
             break;
         case 2:
+/*JP
             You("will always remember %s...", noit_mon_nam(mon));
+*/
+            You("\82¢\82Â\82Ü\82Å\82à%s\82ð\8ao\82¦\82Ä\82é\82¾\82ë\82¤\81D\81D\81D", mon_nam(mon));
             (void) adjattrib(A_WIS, 1, TRUE);
             exercise(A_WIS, TRUE);
             context.botl = 1;
             break;
         case 3:
+/*JP
             pline("That was a very educational experience.");
+*/
+            pline("\82Æ\82Ä\82à\8bM\8fd\82È\8co\8c±\82¾\82Á\82½\81D");
             pluslvl(FALSE);
             exercise(A_WIS, TRUE);
             break;
         case 4:
+/*JP
             You_feel("restored to health!");
+*/
+            You("\82Æ\82Ä\82à\8c\92\8dN\82É\82È\82Á\82½\81I");
             u.uhp = u.uhpmax;
             if (Upolyd)
                 u.mh = u.mhmax;
@@ -2476,10 +3279,18 @@ register struct monst *mon;
     if (mon->mtame) /* don't charge */
         ;
     else if (rn2(20) < ACURR(A_CHA)) {
+#if 0 /*JP*/
         pline("%s demands that you pay %s, but you refuse...",
               noit_Monnam(mon), Blind ? (fem ? "her" : "him") : mhim(mon));
+#else
+        pline("%s\82Í\82 \82È\82½\82É\8bà\82ð\95¥\82¤\82æ\82¤\97v\8b\81\82µ\82½\82ª\81C\82 \82È\82½\82Í\8b\91\82ñ\82¾\81D\81D\81D",
+              Monnam(mon));
+#endif
     } else if (u.umonnum == PM_LEPRECHAUN)
+/*JP
         pline("%s tries to take your money, but fails...", noit_Monnam(mon));
+*/
+        pline("%s\82Í\8bà\82ð\8eæ\82ë\82¤\82Æ\82µ\82½\82ª\81C\8e¸\94s\82µ\82½\81D\81D\81D", noit_Monnam(mon));
     else {
         long cost;
         long umoney = money_cnt(invent);
@@ -2496,10 +3307,18 @@ register struct monst *mon;
         if (cost > umoney)
             cost = umoney;
         if (!cost)
+/*JP
             verbalize("It's on the house!");
+*/
+            verbalize("\82±\82ê\82Í\82¨\82²\82è%s\81I", fem ? "\82æ" : "\82³");
         else {
+#if 0 /*JP*/
             pline("%s takes %ld %s for services rendered!", noit_Monnam(mon),
                   cost, currency(cost));
+#else
+            pline("%s\82Í\83T\81[\83r\83X\97¿\82Æ\82µ\82Ä%ld%s\92D\82¢\8eæ\82Á\82½\81I", noit_Monnam(mon),
+                  cost, currency(cost));
+#endif
             money2mon(mon, cost);
             context.botl = 1;
         }
@@ -2522,15 +3341,27 @@ const char *str;
         return;
 
     if (rn2(20) < ACURR(A_CHA)) {
+#if 0 /*JP*/
         Sprintf(qbuf, "\"Shall I remove your %s, %s?\"", str,
                 (!rn2(2) ? "lover" : !rn2(2) ? "dear" : "sweetheart"));
+#else
+        Sprintf(qbuf,"\81u%s\82ð\8eæ\82Á\82Ä\82¢\82¢\81C%s\81H\81v", str,
+                (!rn2(2) ? "\82Ë\82¥" : flags.female ? "\83n\83j\81[" : "\83_\81[\83\8a\83\93" ));
+#endif
         if (yn(qbuf) == 'n')
             return;
     } else {
         char hairbuf[BUFSZ];
 
+#if 0 /*JP*/
         Sprintf(hairbuf, "let me run my fingers through your %s",
                 body_part(HAIR));
+#else
+        Sprintf(hairbuf,
+                flags.female ? "\82È\82ñ\82ÄãY\97í\82È%s\82È\82ñ\82¾" : "\8a\95\82ð\8eæ\82Á\82½\82ç\82È\82©\82È\82©\83C\83J\83X\82\82á\82È\82¢",
+                body_part(HAIR));
+#endif
+#if 0 /*JP*/
         verbalize("Take off your %s; %s.", str,
                   (obj == uarm)
                      ? "let's get a little closer"
@@ -2544,6 +3375,21 @@ const char *str;
                                  ? "let me massage you"
                                  /* obj == uarmh */
                                  : hairbuf);
+#else
+        verbalize("%s\82ð\92E\82¢\82Å\81D\81D\81D%s\81D", str,
+                  (obj == uarm)
+                  ? "\82à\82¤\82¿\82å\82Á\82Æ\8añ\82è\82»\82Á\82Ä"
+                  : (obj == uarmc || obj == uarms)
+                  ? "\82»\82¤\82»\82¤"
+                  : (obj == uarmf)
+                  ? (flags.female ? "ãY\97í\82È\91«\82¾\82Ë" : "\82¤\82Ó\82Á\81C\82½\82­\82Ü\82µ\82¢\91«\82Ë")
+                  : (obj == uarmg)
+                  ? (flags.female ? "\82È\82ñ\82Ä\91f\93G\82È\8eè\82¾" : "\82½\82­\82Ü\82µ\82¢\98r\82Ë")
+                  : (obj == uarmu)
+                  ? (flags.female ? "\82«\82ê\82¢\82È\91Ì\82¾" : "\82½\82­\82Ü\82µ\82¢\82Ì\82Ë")
+                  /* obj == uarmh */
+                  : hairbuf);
+#endif
     }
     remove_worn_item(obj, TRUE);
 }
@@ -2575,9 +3421,15 @@ register struct attack *mattk;
     switch (olduasmon->mattk[i].adtyp) {
     case AD_ACID:
         if (!rn2(2)) {
+/*JP
             pline("%s is splashed by your acid!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\8e_\82ð\82­\82ç\82Á\82½\81I", Monnam(mtmp));
             if (resists_acid(mtmp)) {
+/*JP
                 pline("%s is not affected.", Monnam(mtmp));
+*/
+                pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D", Monnam(mtmp));
                 tmp = 0;
             }
         } else
@@ -2604,7 +3456,10 @@ register struct attack *mattk;
                 mon_to_stone(mtmp);
                 return 1;
             }
+/*JP
             pline("%s turns to stone!", Monnam(mtmp));
+*/
+            pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mtmp));
             stoned = 1;
             xkilled(mtmp, 0);
             if (mtmp->mhp > 0)
@@ -2630,7 +3485,10 @@ register struct attack *mattk;
         switch (youmonst.data->mattk[i].adtyp) {
         case AD_PHYS:
             if (youmonst.data->mattk[i].aatyp == AT_BOOM) {
+/*JP
                 You("explode!");
+*/
+                pline("\82 \82È\82½\82Í\94\9a\94­\82µ\82½\81I");
                 /* KMH, balance patch -- this is okay with unchanging */
                 rehumanize();
                 goto assess_dmg;
@@ -2645,19 +3503,31 @@ register struct attack *mattk;
                 if (mtmp->mcansee && haseyes(mtmp->data) && rn2(3)
                     && (perceives(mtmp->data) || !Invis)) {
                     if (Blind)
+/*JP
                         pline("As a blind %s, you cannot defend yourself.",
+*/
+                        pline("%s\82Í\96Ú\82ª\8c©\82¦\82È\82¢\82Ì\82Å\81C\82 \82È\82½\82Í\82É\82ç\82Ý\82Å\96h\8cä\82Å\82«\82È\82¢\81D",
                               youmonst.data->mname);
                     else {
                         if (mon_reflects(mtmp,
+/*JP
                                          "Your gaze is reflected by %s %s."))
+*/
+                                         "\82 \82È\82½\82Ì\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81D"))
                             return 1;
+/*JP
                         pline("%s is frozen by your gaze!", Monnam(mtmp));
+*/
+                        pline("%s\82Í\82 \82È\82½\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I", Monnam(mtmp));
                         paralyze_monst(mtmp, tmp);
                         return 3;
                     }
                 }
             } else { /* gelatinous cube */
+/*JP
                 pline("%s is frozen by you.", Monnam(mtmp));
+*/
+                pline("%s\82Í\93®\82¯\82È\82¢\81D", Monnam(mtmp));
                 paralyze_monst(mtmp, tmp);
                 return 3;
             }
@@ -2665,12 +3535,18 @@ register struct attack *mattk;
         case AD_COLD: /* Brown mold or blue jelly */
             if (resists_cold(mtmp)) {
                 shieldeff(mtmp->mx, mtmp->my);
+/*JP
                 pline("%s is mildly chilly.", Monnam(mtmp));
+*/
+                pline("%s\82Í\97â\82¦\82½\81D", Monnam(mtmp));
                 golemeffects(mtmp, AD_COLD, tmp);
                 tmp = 0;
                 break;
             }
+/*JP
             pline("%s is suddenly very cold!", Monnam(mtmp));
+*/
+            pline("%s\82Í\93Ë\91R\93\80\82è\82Ã\82¯\82É\82È\82Á\82½\81I", Monnam(mtmp));
             u.mh += tmp / 2;
             if (u.mhmax < u.mh)
                 u.mhmax = u.mh;
@@ -2680,30 +3556,50 @@ register struct attack *mattk;
         case AD_STUN: /* Yellow mold */
             if (!mtmp->mstun) {
                 mtmp->mstun = 1;
+#if 0 /*JP*/
                 pline("%s %s.", Monnam(mtmp),
                       makeplural(stagger(mtmp->data, "stagger")));
+#else
+                pline("%s\82Í\82­\82ç\82­\82ç\82µ\82½\81D", Monnam(mtmp));
+#endif
             }
             tmp = 0;
             break;
         case AD_FIRE: /* Red mold */
             if (resists_fire(mtmp)) {
                 shieldeff(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
                 pline("%s is mildly warm.", Monnam(mtmp));
+#else
+                pline("%s\82Í\92g\82©\82­\82È\82Á\82½\81D", Monnam(mtmp));
+#endif
                 golemeffects(mtmp, AD_FIRE, tmp);
                 tmp = 0;
                 break;
             }
+#if 0 /*JP*/
             pline("%s is suddenly very hot!", Monnam(mtmp));
+#else
+            pline("%s\82Í\93Ë\91R\94M\82­\82È\82Á\82½\81I", Monnam(mtmp));
+#endif
             break;
         case AD_ELEC:
             if (resists_elec(mtmp)) {
                 shieldeff(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
                 pline("%s is slightly tingled.", Monnam(mtmp));
+#else
+                pline("%s\82Í\82¿\82å\82Á\82Æ\83s\83\8a\83s\83\8a\82µ\82½\81D", Monnam(mtmp));
+#endif
                 golemeffects(mtmp, AD_ELEC, tmp);
                 tmp = 0;
                 break;
             }
+#if 0 /*JP*/
             pline("%s is jolted with your electricity!", Monnam(mtmp));
+#else
+            pline("%s\82Í\93d\8bC\83V\83\87\83b\83N\82ð\82¤\82¯\82½\81I", Monnam(mtmp));
+#endif
             break;
         default:
             tmp = 0;
@@ -2714,7 +3610,10 @@ register struct attack *mattk;
 
 assess_dmg:
     if ((mtmp->mhp -= tmp) <= 0) {
+/*JP
         pline("%s dies!", Monnam(mtmp));
+*/
+        pline("%s\82Í\8e\80\82ñ\82¾\81I", Monnam(mtmp));
         xkilled(mtmp, 0);
         if (mtmp->mhp > 0)
             return 1;
index 1af08f5..1d22b72 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 void
@@ -194,10 +199,19 @@ boolean talk;
     }
     if (mon) {
         if (talk) {
+/*JP
             pline_The("voice of %s booms:", align_gname(alignment));
+*/
+            pline("%s\82Ì\90º\82ª\8b¿\82¢\82½:", align_gname(alignment));
+/*JP
             verbalize("Thou shalt pay for thine indiscretion!");
+*/
+            verbalize("\93ð\81C\96³\95ª\95Ê\82È\82é\8ds\82¢\82Ì\94±\82ð\8eó\82¯\82é\82×\82µ\81I");
             if (!Blind)
+/*JP
                 pline("%s appears before you.", Amonnam(mon));
+*/
+                pline("%s\82ª\82 \82È\82½\82Ì\91O\82É\8c»\82í\82ê\82½\81D", Amonnam(mon));
             mon->mstrategy &= ~STRAT_APPEARMSG;
         }
         mon->mpeaceful = FALSE;
@@ -215,7 +229,10 @@ register struct monst *mtmp;
     long cash, demand, offer;
 
     if (uwep && uwep->oartifact == ART_EXCALIBUR) {
+/*JP
         pline("%s looks very angry.", Amonnam(mtmp));
+*/
+        pline("%s\82Í\82Æ\82Ä\82à\93{\82Á\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D", Amonnam(mtmp));
         mtmp->mpeaceful = mtmp->mtame = 0;
         set_malign(mtmp);
         newsym(mtmp->mx, mtmp->my);
@@ -238,14 +255,22 @@ register struct monst *mtmp;
 
         mtmp->minvis = mtmp->perminvis = 0;
         if (wasunseen && canspotmon(mtmp)) {
+/*JP
             pline("%s appears before you.", Amonnam(mtmp));
+*/
+            pline("%s\82ª\96Ú\82Ì\91O\82É\8c»\82í\82ê\82½\81D", Amonnam(mtmp));
             mtmp->mstrategy &= ~STRAT_APPEARMSG;
         }
         newsym(mtmp->mx, mtmp->my);
     }
     if (youmonst.data->mlet == S_DEMON) { /* Won't blackmail their own. */
+#if 0 /*JP*/
         pline("%s says, \"Good hunting, %s.\"", Amonnam(mtmp),
               flags.female ? "Sister" : "Brother");
+#else
+        pline("%s\82Í\8c¾\82Á\82½\81u\82æ\82¤\8cZ%s\81I\81v\81D\82»\82µ\82Ä\8fÁ\82¦\82½\81D", Amonnam(mtmp),
+              flags.female ? "\96\85" : "\92í");
+#endif
         if (!tele_restrict(mtmp))
             (void) rloc(mtmp, TRUE);
         return (1);
@@ -266,17 +291,31 @@ register struct monst *mtmp;
         if (mon_has_amulet(mtmp))
             demand = cash + (long) rn1(1000, 40);
 
+#if 0 /*JP*/
         pline("%s demands %ld %s for safe passage.", Amonnam(mtmp), demand,
               currency(demand));
+#else
+        pline("%s\82Í\92Ê\8ds\97¿\82Æ\82µ\82Ä%ld%s\97v\8b\81\82µ\82½\81D", Amonnam(mtmp), demand,
+              currency(demand));
+#endif
 
         if ((offer = bribe(mtmp)) >= demand) {
+/*JP
             pline("%s vanishes, laughing about cowardly mortals.",
+*/
+            pline("\89°\95a\82È\92è\96½\82Ì\82à\82Ì\82ð\8fÎ\82¢\82È\82ª\82ç\81C%s\82Í\8fÁ\82¦\82½\81D",
                   Amonnam(mtmp));
         } else if (offer > 0L && (long) rnd(40) > (demand - offer)) {
+/*JP
             pline("%s scowls at you menacingly, then vanishes.",
+*/
+            pline("%s\82Í\82 \82È\82½\82ð\88Ð\8ad\82µ\81C\8fÁ\82¦\82½\81D",
                   Amonnam(mtmp));
         } else {
+/*JP
             pline("%s gets angry...", Amonnam(mtmp));
+*/
+            pline("%s\82Í\93{\82Á\82½\81D\81D\81D", Amonnam(mtmp));
             mtmp->mpeaceful = 0;
             set_malign(mtmp);
             return 0;
@@ -294,23 +333,38 @@ struct monst *mtmp;
     long offer;
     long umoney = money_cnt(invent);
 
+/*JP
     getlin("How much will you offer?", buf);
+*/
+    getlin("\82¨\8bà\82ð\82¢\82­\82ç\97^\82¦\82é\81H", buf);
     if (sscanf(buf, "%ld", &offer) != 1)
         offer = 0L;
 
     /*Michael Paddon -- fix for negative offer to monster*/
     /*JAR880815 - */
     if (offer < 0L) {
+/*JP
         You("try to shortchange %s, but fumble.", mon_nam(mtmp));
+*/
+        You("%s\82ð\82¾\82Ü\82»\82¤\82Æ\82µ\82½\82ª\81C\8e¸\94s\82µ\82½\81D", mon_nam(mtmp));
         return 0L;
     } else if (offer == 0L) {
+/*JP
         You("refuse.");
+*/
+        You("\8b\91\82ñ\82¾\81D");
         return 0L;
     } else if (offer >= umoney) {
+/*JP
         You("give %s all your gold.", mon_nam(mtmp));
+*/
+        You("%s\82É\82¨\8bà\82ð\91S\82Ä\97^\82¦\82½\81D", mon_nam(mtmp));
         offer = umoney;
     } else {
+/*JP
         You("give %s %ld %s.", mon_nam(mtmp), offer, currency(offer));
+*/
+        You("%s\82É%ld%s\97^\82¦\82½\81D", mon_nam(mtmp), offer, currency(offer));
     }
     (void) money2mon(mtmp, offer);
     context.botl = 1;
@@ -400,10 +454,19 @@ struct monst *mon; /* if null, angel hasn't been created yet */
     if (mon) {
         if (canspotmon(mon)) {
             if (!Deaf) {
+/*JP
                 pline("%s rebukes you, saying:", Monnam(mon));
+*/
+                pline("%s\82Í\82 \82È\82½\82ð\94ñ\93ï\82µ\82½\81F", Monnam(mon));
+/*JP
                 verbalize("Since you desire conflict, have some more!");
+*/
+                verbalize("\93¬\91\88\82ð\96]\82ñ\82Å\82¢\82é\82æ\82¤\82¾\82©\82ç\81C\82à\82Á\82Æ\97^\82¦\82Ä\82â\82ë\82¤\81I");
             } else {
+/*JP
                 pline("%s vanishes!", Monnam(mon));
+*/
+                pline("%s\82Í\8fÁ\82¦\82½\81I", Monnam(mon));
             }
         }
         mongone(mon);
@@ -429,13 +492,25 @@ gain_guardian_angel()
     Hear_again(); /* attempt to cure any deafness now (divine
                      message will be heard even if that fails) */
     if (Conflict) {
+/*JP
         pline("A voice booms:");
+*/
+        pline("\90º\82ª\8b¿\82¢\82½:");
+/*JP
         verbalize("Thy desire for conflict shall be fulfilled!");
+*/
+        verbalize("\81u\93ð\82Ì\93¬\91\88\82Ö\82Ì\96]\82Ý\81C\82©\82È\82¦\82ç\82ê\82é\82×\82µ\81I\81v");
         /* send in some hostile angels instead */
         lose_guardian_angel((struct monst *) 0);
     } else if (u.ualign.record > 8) { /* fervent */
+/*JP
         pline("A voice whispers:");
+*/
+        pline("\82³\82³\82â\82«\90º\82ª\95·\82±\82¦\82½:");
+/*JP
         verbalize("Thou hast been worthy of me!");
+*/
+        verbalize("\81u\93ð\81C\89ä\82ª\95]\89¿\82ð\93¾\82½\82è\81I\81v");
         mm.x = u.ux;
         mm.y = u.uy;
         if (enexto(&mm, mm.x, mm.y, &mons[PM_ANGEL])
@@ -443,9 +518,15 @@ gain_guardian_angel()
                                  TRUE)) != 0) {
             mtmp->mstrategy &= ~STRAT_APPEARMSG;
             if (!Blind)
+/*JP
                 pline("An angel appears near you.");
+*/
+                pline("\93V\8eg\82ª\82 \82È\82½\82Ì\82»\82Î\82É\8c»\82í\82ê\82½\81D");
             else
+/*JP
                 You_feel("the presence of a friendly angel near you.");
+*/
+                You("\8bß\82­\82É\97F\8dD\93I\82È\93V\8eg\82Ì\91\8dÝ\82ð\8a´\82\82½\81D");
             /* guardian angel -- the one case mtame doesn't
              * imply an edog structure, so we don't want to
              * call tamedog().
index 6fd50f7..ed78589 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* for UNIX, Rand #def'd to (long)lrand48() or (long)random() */
@@ -474,7 +479,10 @@ static NEARDATA const char *trap_engravings[TRAPNUM] = {
     (char *) 0,      (char *) 0,    (char *) 0,    (char *) 0, (char *) 0,
     (char *) 0,      (char *) 0,    (char *) 0,    (char *) 0,
     /* 14..16: trap door, teleport, level-teleport */
+/*JP
     "Vlad was here", "ad aerarium", "ad aerarium", (char *) 0, (char *) 0,
+*/
+    "\83\94\83\89\83h\82Í\82±\82±\82É\82¢\82é", "ad aerarium", "ad aerarium", (char *) 0, (char *) 0,
     (char *) 0,      (char *) 0,    (char *) 0,    (char *) 0, (char *) 0,
 };
 
@@ -1494,7 +1502,10 @@ struct mkroom *croom;
     } while (occupied(m.x, m.y) || bydoor(m.x, m.y));
 
     /* Put a grave at m.x, m.y */
+/*JP
     make_grave(m.x, m.y, dobell ? "Saved by the bell!" : (char *) 0);
+*/
+    make_grave(m.x, m.y, dobell ? "\83x\83\8b\82É\8b~\82í\82ê\82½\81I" : (char *) 0);
 
     /* Possibly fill it with objects */
     if (!rn2(3))
@@ -1535,8 +1546,14 @@ mkinvokearea()
     xchar ymin = inv_pos.y, ymax = inv_pos.y;
     register xchar i;
 
+/*JP
     pline_The("floor shakes violently under you!");
+*/
+    pline("\82 \82È\82½\82Ì\89º\82Ì\8f°\82ª\93Ë\91R\97h\82ê\82½\81I");
+/*JP
     pline_The("walls around you begin to bend and crumble!");
+*/
+    pline("\82»\82µ\82Ä\82Ü\82í\82è\82Ì\95Ç\82ª\82Ë\82\82ê\81C\8dÓ\82¯\82½\81I");
     display_nhwindow(WIN_MESSAGE, TRUE);
 
     /* any trap hero is stuck in will be going away now */
@@ -1571,7 +1588,10 @@ mkinvokearea()
         delay_output();
     }
 
+/*JP
     You("are standing at the top of a stairwell leading down!");
+*/
+    You("\89º\82É\91±\82­\90\81\82«\94²\82¯\8aK\92i\82Ì\8fã\82É\97§\82Á\82Ä\82¢\82é\81I");
     mkstairs(u.ux, u.uy, 0, (struct mkroom *) 0); /* down */
     newsym(u.ux, u.uy);
     vision_full_recalc = 1; /* everything changed */
@@ -1673,7 +1693,10 @@ xchar x, y;
     branch *br;
     schar u_depth;
 
+/*JP
     br = dungeon_branch("Fort Ludios");
+*/
+    br = dungeon_branch("\83\8d\81[\83f\83B\83I\83X\8dÔ");
     if (on_level(&knox_level, &br->end1)) {
         source = &br->end2;
     } else {
@@ -1688,7 +1711,11 @@ xchar x, y;
         return;
 
     if (!(u.uz.dnum == oracle_level.dnum      /* in main dungeon */
+#if 0 /*JP*/
           && !at_dgn_entrance("The Quest")    /* but not Quest's entry */
+#else
+          && !at_dgn_entrance("\83N\83G\83X\83g")     /* but not Quest's entry */
+#endif
           && (u_depth = depth(&u.uz)) > 10    /* beneath 10 */
           && u_depth < depth(&medusa_level))) /* and above Medusa */
         return;
index eddf6fb..4de113e 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "sp_lev.h"
 #include "lev.h" /* save & restore info */
@@ -1126,7 +1131,10 @@ water_friction()
         eff = TRUE;
     }
     if (eff)
+/*JP
         pline("Water turbulence affects your movements.");
+*/
+        pline("\90\85\82Ì\97¬\82ê\82ª\82 \82È\82½\82Ì\93®\82«\82É\89e\8b¿\82ð\97^\82¦\82½\81D");
 }
 
 void
@@ -1204,19 +1212,37 @@ xchar x, y;
         ltyp = db_under_typ(lev->drawbridgemask);
 
     if (ltyp == LAVAPOOL)
+/*JP
         return "lava";
+*/
+        return "\97n\8aâ";
     else if (ltyp == ICE)
+/*JP
         return "ice";
+*/
+        return "\95X";
     else if (ltyp == POOL)
+/*JP
         return "pool of water";
+*/
+        return "\90\85\82½\82Ü\82è";
     else if (ltyp == WATER || Is_waterlevel(&u.uz))
         ; /* fall through to default return value */
     else if (Is_juiblex_level(&u.uz))
+/*JP
         return "swamp";
+*/
+        return "\8fÀ";
     else if (ltyp == MOAT && !Is_medusa_level(&u.uz))
+/*JP
         return "moat";
+*/
+        return "\96x";
 
+/*JP
     return "water";
+*/
+    return "\90\85\92\86";
 }
 
 STATIC_OVL void
index ade5968..ba40f19 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /* If you're using precompiled headers, you don't want this either */
 #ifdef MICROPORT_BUG
 #define MKROOM_H
@@ -35,7 +40,10 @@ STATIC_DCL void FDECL(lifesaved_monster, (struct monst *));
 #if 0
 /* part of the original warning code which was replaced in 3.3.1 */
 const char *warnings[] = {
+/*JP
     "white", "pink", "red", "ruby", "purple", "black"
+*/
+    "\94\92\82¢", "\83s\83\93\83N\90F\82Ì", "\90Ô\82¢", "\83\8b\83r\81[\90F\82Ì", "\8e\87\82Ì", "\8d\95\82¢"
 };
 #endif /* 0 */
 
@@ -266,7 +274,10 @@ unsigned corpseflags;
     case PM_BLACK_UNICORN:
         if (mtmp->mrevived && rn2(2)) {
             if (canseemon(mtmp))
+/*JP
                 pline("%s recently regrown horn crumbles to dust.",
+*/
+                pline("\8dÅ\8bß\8dÄ\90\82µ\82½%s\82Ì\8ap\82Í\95²\81X\82É\82È\82Á\82½\81D",
                       s_suffix(Monnam(mtmp)));
         } else {
             obj = mksobj_at(UNICORN_HORN, x, y, TRUE, FALSE);
@@ -451,7 +462,10 @@ register struct monst *mtmp;
         int dam = d(2, 6);
 
         if (cansee(mtmp->mx, mtmp->my))
+/*JP
             pline("%s rusts.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8eK\82Ñ\82½\81D", Monnam(mtmp));
         mtmp->mhp -= dam;
         if (mtmp->mhpmax > dam)
             mtmp->mhpmax -= dam;
@@ -473,18 +487,31 @@ register struct monst *mtmp;
         if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) {
             if (!resists_fire(mtmp)) {
                 if (cansee(mtmp->mx, mtmp->my))
+#if 0 /*JP*/
                     pline("%s %s.", Monnam(mtmp),
                           mtmp->data == &mons[PM_WATER_ELEMENTAL]
                               ? "boils away"
                               : "burns to a crisp");
+#else
+                    pline("%s\82Í%s\82½\81D", Monnam(mtmp),
+                          mtmp->data == &mons[PM_WATER_ELEMENTAL]
+                              ? "\95¦\93«\82µ"
+                              : "\94R\82¦\82Ä\83p\83\8a\83p\83\8a\82É\82È\82Á");
+#endif
                 mondead(mtmp);
             } else {
                 if (--mtmp->mhp < 1) {
                     if (cansee(mtmp->mx, mtmp->my))
+/*JP
                         pline("%s surrenders to the fire.", Monnam(mtmp));
+*/
+                        pline("%s\82Í\89\8a\82É\93Û\82Ü\82ê\82½\81D", Monnam(mtmp));
                     mondead(mtmp);
                 } else if (cansee(mtmp->mx, mtmp->my))
+/*JP
                     pline("%s burns slightly.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82¿\82å\82Á\82Æ\8fÅ\82°\82½\81D", Monnam(mtmp));
             }
             if (mtmp->mhp > 0) {
                 (void) fire_damage_chain(mtmp->minvent, FALSE, FALSE,
@@ -502,12 +529,18 @@ register struct monst *mtmp;
         if (!is_clinger(mtmp->data) && !is_swimmer(mtmp->data)
             && !amphibious(mtmp->data)) {
             if (cansee(mtmp->mx, mtmp->my)) {
+/*JP
                 pline("%s drowns.", Monnam(mtmp));
+*/
+                pline("%s\82Í\93M\82ê\82½\81D", Monnam(mtmp));
             }
             if (u.ustuck && u.uswallow && u.ustuck == mtmp) {
                 /* This can happen after a purple worm plucks you off a
                 flying steed while you are over water. */
+/*JP
                 pline("%s sinks as water rushes in and flushes you out.",
+*/
+                pline("%s\82Í\90\85\97¬\82É\92¾\82Ý\81D\82 \82È\82½\82ð\93f\82«\8fo\82µ\82½\81D",
                       Monnam(mtmp));
             }
             mondead(mtmp);
@@ -763,22 +796,40 @@ register struct monst *mtmp;
             && touch_artifact(otmp, mtmp)) {
             if (mtmp->data == &mons[PM_RUST_MONSTER] && otmp->oerodeproof) {
                 if (canseemon(mtmp) && flags.verbose) {
+#if 0 /*JP*/
                     pline("%s eats %s!", Monnam(mtmp),
                           distant_name(otmp, doname));
+#else
+                    pline("%s\82Í%s\82ð\90H\82×\82Ä\82¢\82é\81I", Monnam(mtmp),
+                          distant_name(otmp,doname));
+#endif
                 }
                 /* The object's rustproofing is gone now */
                 otmp->oerodeproof = 0;
                 mtmp->mstun = 1;
                 if (canseemon(mtmp) && flags.verbose) {
+#if 0 /*JP*/
                     pline("%s spits %s out in disgust!", Monnam(mtmp),
                           distant_name(otmp, doname));
+#else
+                    pline("%s\82Í%s\82ð\83y\83b\82Æ\93f\82«\8fo\82µ\82½\81I", Monnam(mtmp),
+                          distant_name(otmp,doname));
+#endif
                 }
             } else {
                 if (cansee(mtmp->mx, mtmp->my) && flags.verbose)
+#if 0 /*JP*/
                     pline("%s eats %s!", Monnam(mtmp),
                           distant_name(otmp, doname));
+#else
+                    pline("%s\82Í%s\82ð\90H\82×\82Ä\82¢\82é\81I", Monnam(mtmp),
+                          distant_name(otmp,doname));
+#endif
                 else if (flags.verbose)
+/*JP
                     You_hear("a crunching sound.");
+*/
+                    You_hear("\83o\83\8a\83o\83\8a\82Æ\90H\82×\82é\89¹\82ð\95·\82¢\82½\81D");
                 mtmp->meating = otmp->owt / 2 + 1;
                 /* Heal up to the object's weight in hp */
                 if (mtmp->mhp < mtmp->mhpmax) {
@@ -809,7 +860,10 @@ register struct monst *mtmp;
                             ptr = mtmp->data;
                         } else if (!resists_ston(mtmp)) {
                             if (canseemon(mtmp))
+/*JP
                                 pline("%s turns to stone!", Monnam(mtmp));
+*/
+                                pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mtmp));
                             monstone(mtmp);
                             ptr = (struct permonst *) 0;
                         }
@@ -883,10 +937,18 @@ struct monst *mtmp;
             /* engulf */
             ++ecount;
             if (ecount == 1)
+#if 0 /*JP*/
                 Sprintf(buf, "%s engulfs %s.", Monnam(mtmp),
                         distant_name(otmp, doname));
+#else
+                Sprintf(buf, "%s\82Í%s\82ð\88ù\82Ý\8d\9e\82ñ\82¾\81D", Monnam(mtmp),
+                        distant_name(otmp,doname));
+#endif
             else if (ecount == 2)
+/*JP
                 Sprintf(buf, "%s engulfs several objects.", Monnam(mtmp));
+*/
+                Sprintf(buf, "%s\82Í\82¢\82­\82Â\82©\82Ì\95¨\82ð\88ù\82Ý\8d\9e\82ñ\82¾\81D", Monnam(mtmp));
             obj_extract_self(otmp);
             (void) mpickobj(mtmp, otmp); /* slurp */
 
@@ -895,10 +957,18 @@ struct monst *mtmp;
             /* devour */
             ++count;
             if (cansee(mtmp->mx, mtmp->my) && flags.verbose)
+#if 0 /*JP*/
                 pline("%s eats %s!", Monnam(mtmp),
                       distant_name(otmp, doname));
+#else
+                pline("%s\82Í%s\82ð\90H\82×\82Ä\82¢\82é\81I", Monnam(mtmp),
+                      distant_name(otmp, doname));
+#endif
             else if (flags.verbose)
+/*JP
                 You_hear("a slurping sound.");
+*/
+                You_hear("\82²\82­\82ñ\82Æ\88ù\82Ý\8d\9e\82Þ\89¹\82ð\95·\82¢\82½\81D");
             /* Heal up to the object's weight in hp */
             if (mtmp->mhp < mtmp->mhpmax) {
                 mtmp->mhp += objects[otmp->otyp].oc_weight;
@@ -946,8 +1016,12 @@ struct monst *mtmp;
         if (cansee(mtmp->mx, mtmp->my) && flags.verbose && buf[0])
             pline1(buf);
         else if (flags.verbose)
+#if 0 /*JP*/
             You_hear("%s slurping sound%s.",
                      (ecount == 1) ? "a" : "several", plur(ecount));
+#else
+            You_hear("\83Y\83\8b\83Y\83\8b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
+#endif
     }
     return (count > 0 || ecount > 0) ? 1 : 0;
 }
@@ -965,8 +1039,12 @@ register struct monst *mtmp;
         add_to_minv(mtmp, gold);
         if (cansee(mtmp->mx, mtmp->my)) {
             if (flags.verbose && !mtmp->isgd)
+#if 0 /*JP*/
                 pline("%s picks up some %s.", Monnam(mtmp),
                       mat_idx == GOLD ? "gold" : "money");
+#else
+                pline("%s\82Í\82¨\8bà\82ð\8fE\82Á\82½\81D", Monnam(mtmp));
+#endif
             newsym(mtmp->mx, mtmp->my);
         }
     }
@@ -1008,10 +1086,17 @@ register const char *str;
                 otmp3 = splitobj(otmp, carryamt);
             }
             if (cansee(mtmp->mx, mtmp->my) && flags.verbose)
+#if 0 /*JP*/
                 pline("%s picks up %s.", Monnam(mtmp),
                       (distu(mtmp->mx, mtmp->my) <= 5)
                           ? doname(otmp3)
                           : distant_name(otmp3, doname));
+#else
+                pline("%s\82Í%s\82ð\8fE\82Á\82½\81D", Monnam(mtmp),
+                      (distu(mtmp->mx, mtmp->my) <= 5)
+                          ? doname(otmp3)
+                          : distant_name(otmp3, doname));
+#endif
             obj_extract_self(otmp3);      /* remove from floor */
             (void) mpickobj(mtmp, otmp3); /* may merge and free otmp3 */
             m_dowear(mtmp, FALSE);
@@ -1691,18 +1776,33 @@ struct monst *mtmp;
          * Nor do you check invisibility, because glowing and
          * disintegrating amulets are always visible. */
         if (cansee(mtmp->mx, mtmp->my)) {
+/*JP
             pline("But wait...");
+*/
+                        pline("\82µ\82©\82µ\81D\81D\81D");
+/*JP
             pline("%s medallion begins to glow!", s_suffix(Monnam(mtmp)));
+*/
+            pline("%s\82Ì\83\81\83_\83\8a\83I\83\93\82ª\8bP\82«\82Í\82\82ß\82½\81I", Monnam(mtmp));
             makeknown(AMULET_OF_LIFE_SAVING);
             /* amulet is visible, but monster might not be */
             if (canseemon(mtmp)) {
                 if (attacktype(mtmp->data, AT_EXPL)
                     || attacktype(mtmp->data, AT_BOOM))
+/*JP
                     pline("%s reconstitutes!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\8dÄ\8d\\90¬\82³\82ê\82½\81I", Monnam(mtmp));
                 else
+/*JP
                     pline("%s looks much better!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82·\82Á\82©\82è\89ñ\95\9c\82µ\82½\82æ\82¤\82¾\81I", Monnam(mtmp));
             }
+/*JP
             pline_The("medallion crumbles to dust!");
+*/
+            pline_The("\83\81\83_\83\8a\83I\83\93\82Í\82±\82È\82²\82È\82É\82­\82¾\82¯\82Ä\82µ\82Ü\82Á\82½\81I");
         }
         m_useup(mtmp, lifesave);
 
@@ -1720,7 +1820,10 @@ struct monst *mtmp;
 
         /* genocided monster can't be life-saved */
         if (cansee(mtmp->mx, mtmp->my))
+/*JP
             pline("Unfortunately, %s is still genocided...", mon_nam(mtmp));
+*/
+            pline("\8ec\94O\82È\82ª\82ç%s\82Í\8bs\8eE\82³\82ê\82Ä\82¢\82é\81D\81D\81D", mon_nam(mtmp));
     }
     mtmp->mhp = 0;
 }
@@ -1870,7 +1973,10 @@ boolean was_swallowed; /* digestion */
 
     if (mdat == &mons[PM_VLAD_THE_IMPALER] || mdat->mlet == S_LICH) {
         if (cansee(mon->mx, mon->my) && !was_swallowed)
+/*JP
             pline("%s body crumbles into dust.", s_suffix(Monnam(mon)));
+*/
+            pline("%s\82Ì\91Ì\82Í\95²\81X\82É\82È\82Á\82½\81D", Monnam(mon));
         return FALSE;
     }
 
@@ -1885,26 +1991,45 @@ boolean was_swallowed; /* digestion */
                 tmp = 0;
             if (was_swallowed && magr) {
                 if (magr == &youmonst) {
+/*JP
                     There("is an explosion in your %s!", body_part(STOMACH));
+*/
+                    pline("%s\82Ì\92\86\82Å\94\9a\94­\82ª\8bN\82«\82½\81I", body_part(STOMACH));
+#if 0 /*JP*/
                     Sprintf(killer.name, "%s explosion",
                             s_suffix(mdat->mname));
+#else
+                    Sprintf(killer.name, "%s\82Ì\94\9a\94­\82Å", mdat->mname);
+#endif
                     losehp(Maybe_Half_Phys(tmp), killer.name, KILLED_BY_AN);
                 } else {
+/*JP
                     You_hear("an explosion.");
+*/
+                    You_hear("\94\9a\94­\89¹\82ð\95·\82¢\82½\81D");
                     magr->mhp -= tmp;
                     if (magr->mhp < 1)
                         mondied(magr);
                     if (magr->mhp < 1) { /* maybe lifesaved */
                         if (canspotmon(magr))
+/*JP
                             pline("%s rips open!", Monnam(magr));
+*/
+                            pline("%s\82Í\83r\83\8a\82Á\82Æ\94j\82ê\82½\81I", Monnam(magr));
                     } else if (canseemon(magr))
+/*JP
                         pline("%s seems to have indigestion.", Monnam(magr));
+*/
+                        pline("%s\82Í\8fÁ\89»\95s\97Ç\82Ì\82æ\82¤\82¾\81D", Monnam(magr));
                 }
 
                 return FALSE;
             }
 
+/*JP
             Sprintf(killer.name, "%s explosion", s_suffix(mdat->mname));
+*/
+            Sprintf(killer.name, "%s\82Ì\94\9a\94­\82Å", mdat->mname);
             killer.format = KILLED_BY_AN;
             explode(mon->mx, mon->my, -1, tmp, MON_EXPLODE, EXPL_NOXIOUS);
             return FALSE;
@@ -1998,7 +2123,10 @@ struct monst *mdef;
 #endif
                 /* invocation tools resist even with 0% resistance */
                 || obj_resists(obj, 0, 0)) {
+/*JP
                 if (flooreffects(obj, x, y, "fall"))
+*/
+                if (flooreffects(obj, x, y, "\97\8e\82¿\82é"))
                     continue;
                 place_object(obj, x, y);
             } else {
@@ -2038,8 +2166,13 @@ struct monst *mdef;
     mondead(mdef);
     if (wasinside) {
         if (is_animal(mdef->data))
+#if 0 /*JP*/
             You("%s through an opening in the new %s.",
                 locomotion(youmonst.data, "jump"), xname(otmp));
+#else
+            You("\90V\82µ\82­\82Å\82«\82½%s\82©\82ç%s\81D",
+                xname(otmp), jumpedthrough(youmonst.data, "\94ò\82Ñ\8fo\82½"));
+#endif
     }
 }
 
@@ -2054,9 +2187,20 @@ int how;
 
     if ((mdef->wormno ? worm_known(mdef) : cansee(mdef->mx, mdef->my))
         && fltxt)
+#if 0 /*JP*/
         pline("%s is %s%s%s!", Monnam(mdef),
               nonliving(mdef->data) ? "destroyed" : "killed",
               *fltxt ? " by the " : "", fltxt);
+#else
+        {
+            if(*fltxt)
+                pline("%s\82Í%s\82É\82æ\82Á\82Ä%s\81I", Monnam(mdef), fltxt,
+                      nonliving(mdef->data) ? "\93|\82³\82ê\82½" : "\8eE\82³\82ê\82½");
+            else
+                pline("%s\82Í%s\81I", Monnam(mdef), 
+                      nonliving(mdef->data) ? "\93|\82³\82ê\82½" : "\8eE\82³\82ê\82½");
+        }
+#endif
     else
         be_sad = (mdef->mtame != 0);
 
@@ -2067,7 +2211,10 @@ int how;
         mondied(mdef);
 
     if (be_sad && mdef->mhp <= 0)
+/*JP
         You("have a sad feeling for a moment, then it passes.");
+*/
+        You("\94ß\82µ\82¢\8bC\8e\9d\82É\82¨\82»\82í\82ê\82½\82ª\81C\82·\82®\82É\89ß\82¬\82³\82Á\82½\81D");
 }
 
 void
@@ -2114,11 +2261,17 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't
     u.uconduct.killer++;
 
     if (dest & 1) {
+#if 0 /*JP*/
         const char *verb = nonliving(mtmp->data) ? "destroy" : "kill";
+#endif
 
         if (!wasinside && !canspotmon(mtmp))
+/*JP
             You("%s it!", verb);
+*/
+            You("\89½\8eÒ\82©\82ð\93|\82µ\82½\81I");
         else {
+#if 0 /*JP*/
             You("%s %s!", verb,
                 !mtmp->mtame
                     ? mon_nam(mtmp)
@@ -2127,6 +2280,11 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't
                                "poor",
                                (has_mname(mtmp)) ? SUPPRESS_SADDLE : 0,
                                FALSE));
+#else
+            You("%s%s\82ð\93|\82µ\82½\81I",
+                mtmp->mtame ? "\82©\82í\82¢\82»\82¤\82È" : "",
+                mon_nam(mtmp));
+#endif
         }
     }
 
@@ -2173,7 +2331,10 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't
          */
         stoned = FALSE;
         if (!cansee(x, y) && !vamp_rise_msg)
+/*JP
             pline("Maybe not...");
+*/
+            pline("\82¢\82â\81C\88á\82¤\82©\82à\81D\81D\81D");
         return;
     }
 
@@ -2239,7 +2400,10 @@ cleanup:
         && u.ualign.type != A_CHAOTIC) {
         HTelepat &= ~INTRINSIC;
         change_luck(-2);
+/*JP
         You("murderer!");
+*/
+        You("\8eE\90l\8bS\82¾\81I");
         if (Blind && !Blind_telepat)
             see_monsters(); /* Can't sense monsters any more. */
     }
@@ -2247,7 +2411,10 @@ cleanup:
         change_luck(-1);
     if (is_unicorn(mdat) && sgn(u.ualign.type) == sgn(mdat->maligntyp)) {
         change_luck(-5);
+/*JP
         You_feel("guilty...");
+*/
+        You("\8dß\82ð\8a´\82\82½\81D\81D\81D");
     }
 
     /* give experience points */
@@ -2258,16 +2425,27 @@ cleanup:
     /* adjust alignment points */
     if (mtmp->m_id == quest_status.leader_m_id) { /* REAL BAD! */
         adjalign(-(u.ualign.record + (int) ALIGNLIM / 2));
+#if 0 /*JP*/
         pline("That was %sa bad idea...",
               u.uevent.qcompleted ? "probably " : "");
+#else
+        pline("%s\82æ\82­\82È\82¢\8ds\88×\82¾\82Á\82½\81D\81D\81D",
+              u.uevent.qcompleted ? "\82½\82Ô\82ñ" : "");
+#endif
     } else if (mdat->msound == MS_NEMESIS) { /* Real good! */
         adjalign((int) (ALIGNLIM / 4));
     } else if (mdat->msound == MS_GUARDIAN) { /* Bad */
         adjalign(-(int) (ALIGNLIM / 8));
         if (!Hallucination)
+/*JP
             pline("That was probably a bad idea...");
+*/
+            pline("\82æ\82­\82È\82¢\8ds\88×\82¾\82Á\82½\81D\81D\81D");
         else
+/*JP
             pline("Whoopsie-daisy!");
+*/
+            pline("\83V\83\93\83W\83}\83b\83^\81[\81I");
     } else if (mtmp->ispriest) {
         adjalign((p_coaligned(mtmp)) ? -2 : 2);
         /* cancel divine protection for killing your priest */
@@ -2279,9 +2457,15 @@ cleanup:
         adjalign(-15); /* bad!! */
         /* your god is mighty displeased... */
         if (!Hallucination)
+/*JP
             You_hear("the rumble of distant thunder...");
+*/
+            You_hear("\89\93\82­\82Å\97\8b\96Â\82ð\95·\82¢\82½\81D\81D\81D");
         else
+/*JP
             You_hear("the studio audience applaud!");
+*/
+            pline("\92®\8fO\82Ì\8a\85\8dÑ\82ð\97\81\82Ñ\82½\81I");
     } else if (mtmp->mpeaceful)
         adjalign(-5);
 
@@ -2298,13 +2482,22 @@ struct monst *mtmp;
     if (mtmp->data->mlet == S_GOLEM) {
         /* it's a golem, and not a stone golem */
         if (canseemon(mtmp))
+/*JP
             pline("%s solidifies...", Monnam(mtmp));
+*/
+            pline("%s\82Í\8bÃ\8cÅ\82µ\82½\81D\81D\81D", Monnam(mtmp));
         if (newcham(mtmp, &mons[PM_STONE_GOLEM], FALSE, FALSE)) {
             if (canseemon(mtmp))
+/*JP
                 pline("Now it's %s.", an(mtmp->data->mname));
+*/
+                pline("\82È\82ñ\82Æ%s\82É\82È\82Á\82Ä\82µ\82Ü\82Á\82½\81D", mtmp->data->mname);
         } else {
             if (canseemon(mtmp))
+/*JP
                 pline("... and returns to normal.");
+*/
+                pline("\81D\81D\81D\82»\82µ\82Ä\95\81\92Ê\82É\96ß\82Á\82½\81D");
         }
     } else
         impossible("Can't polystone %s!", a_monnam(mtmp));
@@ -2426,7 +2619,10 @@ struct monst *mtmp;
 {
     if (mtmp->data->msound == MS_SHRIEK) {
         if (!Deaf) {
+/*JP
             pline("%s shrieks.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8bà\90Ø\82è\90º\82ð\82 \82°\82½\81D", Monnam(mtmp));
             stop_occupation();
         }
         if (!rn2(10)) {
@@ -2467,7 +2663,10 @@ struct monst *mtmp;
         adjalign(-1); /* attacking peaceful monsters is bad */
     if (couldsee(mtmp->mx, mtmp->my)) {
         if (humanoid(mtmp->data) || mtmp->isshk || mtmp->isgd)
+/*JP
             pline("%s gets angry!", Monnam(mtmp));
+*/
+            pline("%s\82Í\93{\82Á\82½\81I", Monnam(mtmp));
         else if (flags.verbose && !Deaf)
             growl(mtmp);
     }
@@ -2490,10 +2689,14 @@ struct monst *mtmp;
             }
         }
         if (got_mad && !Hallucination)
+#if 0 /*JP*/
             pline_The("%s appear%s to be angry too...",
                       got_mad == 1 ? q_guardian->mname
                                    : makeplural(q_guardian->mname),
                       got_mad == 1 ? "s" : "");
+#else
+            pline("%s\82à\93{\82Á\82½\81D\81D\81D", q_guardian->mname);
+#endif
     }
 }
 
@@ -3183,8 +3386,13 @@ boolean msg;      /* "The oldmon turns into a newmon!" */
                 /* Does mdat care? */
                 if (!noncorporeal(mdat) && !amorphous(mdat)
                     && !is_whirly(mdat) && (mdat != &mons[PM_YELLOW_LIGHT])) {
+#if 0 /*JP*/
                     You("break out of %s%s!", mon_nam(mtmp),
                         (is_animal(mdat) ? "'s stomach" : ""));
+#else
+                    You("%s%s\82ð\94j\82è\8fo\82½\81I", mon_nam(mtmp),
+                        (is_animal(mdat) ? "\82Ì\88Ý\91Ü" : ""));
+#endif
                     mtmp->mhp = 1; /* almost dead */
                 }
                 expels(mtmp, olddata, FALSE);
@@ -3220,14 +3428,27 @@ boolean msg;      /* "The oldmon turns into a newmon!" */
             save_mname = MNAME(mtmp);
             MNAME(mtmp) = (char *) 0;
         }
+#if 0 /*JP*/
         Strcpy(newname, (mdat == &mons[PM_GREEN_SLIME])
                             ? "slime"
                             : x_monnam(mtmp, ARTICLE_A, (char *) 0,
                                        SUPPRESS_SADDLE, FALSE));
+#else
+        Strcpy(newname, (mdat == &mons[PM_GREEN_SLIME])
+                            ? "\83X\83\89\83C\83\80"
+                            : x_monnam(mtmp, ARTICLE_A, (char *) 0,
+                                       SUPPRESS_SADDLE, FALSE));
+#endif
+/*JP
         if (!strcmpi(oldname, "it") && !strcmpi(newname, "it"))
+*/
+        if (!strcmpi(oldname, "\89½\8eÒ\82©") && !strcmpi(newname, "\89½\8eÒ\82©"))
             (void) usmellmon(mdat);
         else
+/*JP
             pline("%s turns into %s!", oldname, newname);
+*/
+            pline("%s\82Í%s\82É\82È\82Á\82½\81I", oldname, newname);
         if (save_mname)
             MNAME(mtmp) = save_mname;
     }
@@ -3235,8 +3456,13 @@ boolean msg;      /* "The oldmon turns into a newmon!" */
     possibly_unwield(mtmp, polyspot); /* might lose use of weapon */
     mon_break_armor(mtmp, polyspot);
     if (!(mtmp->misc_worn_check & W_ARMG))
+#if 0 /*JP*/
         mselftouch(mtmp, "No longer petrify-resistant, ",
                    !context.mon_moving);
+#else
+        mselftouch(mtmp, "\90Î\89»\82Ö\82Ì\92ï\8dR\97Í\82ª\82È\82­\82È\82Á\82Ä\81C",
+                   !context.mon_moving);
+#endif
     m_dowear(mtmp, FALSE);
 
     /* This ought to re-test can_carry() on each item in the inventory
@@ -3440,7 +3666,10 @@ int damtype, dam;
             if (mon->mhp > mon->mhpmax)
                 mon->mhp = mon->mhpmax;
             if (cansee(mon->mx, mon->my))
+/*JP
                 pline("%s seems healthier.", Monnam(mon));
+*/
+                pline("%s\82Í\8c³\8bC\82É\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mon));
         }
     }
 }
@@ -3473,17 +3702,32 @@ boolean silent;
     if (ct) {
         if (!silent) { /* do we want pline msgs? */
             if (slct)
+#if 0 /*JP*/
                 pline_The("guard%s wake%s up!", slct > 1 ? "s" : "",
                           slct == 1 ? "s" : "");
+#else
+                pline("\94Ô\95º\82Í\96Ú\82ð\8ao\82Ü\82µ\82½\81I");
+#endif
             if (nct || sct) {
                 if (nct)
+#if 0 /*JP*/
                     pline_The("guard%s get%s angry!", nct == 1 ? "" : "s",
                               nct == 1 ? "s" : "");
+#else
+                    pline("\94Ô\95º\82Í\93{\82Á\82½\81I");
+#endif
                 else if (!Blind)
+#if 0 /*JP*/
                     You_see("%sangry guard%s approaching!",
                             sct == 1 ? "an " : "", sct > 1 ? "s" : "");
+#else
+                    You("\93{\82Á\82½\94Ô\95º\82ª\8bß\8añ\82Á\82Ä\82­\82é\82Ì\82ð\8c©\82½\81I");
+#endif
             } else
+/*JP
                 You_hear("the shrill sound of a guard's whistle.");
+*/
+                You_hear("\94Ô\95º\82Ì\93J\82ª\82¯\82½\82½\82Ü\82µ\82­\96Â\82é\82Ì\82ð\95·\82¢\82½\81D");
         }
         return TRUE;
     }
@@ -3517,9 +3761,15 @@ short otyp;
         break;
     case M_AP_OBJECT:
         if (otyp == SPE_HEALING || otyp == SPE_EXTRA_HEALING) {
+#if 0 /*JP*/
             pline("%s seems a more vivid %s than before.",
                   The(simple_typename(ap)),
                   c_obj_colors[objects[ap].oc_color]);
+#else
+            pline("%s\82Í\88È\91O\82æ\82è\82æ\82è\91N\82â\82©\82È%s\82É\82È\82Á\82½\82æ\82¤\82¾\81D",
+                  The(simple_typename(ap)),
+                  c_obj_colors[objects[ap].oc_color]);
+#endif
         }
         break;
     }
index 9fb2491..f437297 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /*      These routines provide basic data for any type of monster. */
@@ -1015,13 +1020,34 @@ struct monst *mtmp;
         return mtmp->data;
 }
 
+/*JP
 static const char *levitate[4] = { "float", "Float", "wobble", "Wobble" };
+*/
+static const char *levitate[4] = { "\95\82\82­", "\95\82\82­", "\82æ\82ë\82ß\82­", "\82æ\82ë\82ß\82­" };
+/*JP
 static const char *flys[4] = { "fly", "Fly", "flutter", "Flutter" };
+*/
+static const char *flys[4] = { "\94ò\82Ô", "\94ò\82Ô", "\82Í\82½\82ß\82­", "\82Í\82½\82ß\82­" };
+/*JP
 static const char *flyl[4] = { "fly", "Fly", "stagger", "Stagger" };
+*/
+static const char *flyl[4] = { "\94ò\82Ô", "\94ò\82Ô", "\82æ\82ë\82ß\82­", "\82æ\82ë\82ß\82­" };
+/*JP
 static const char *slither[4] = { "slither", "Slither", "falter", "Falter" };
+*/
+static const char *slither[4] = { "\8a\8a\82é", "\8a\8a\82é", "\82½\82\82ë\82®", "\82½\82\82ë\82®" };
+/*JP
 static const char *ooze[4] = { "ooze", "Ooze", "tremble", "Tremble" };
+*/
+static const char *ooze[4] = { "\82É\82\82Ý\8fo\82é", "\82É\82\82Ý\8fo\82é", "\90k\82¦\82é", "\90k\82¦\82é" };
+/*JP
 static const char *immobile[4] = { "wiggle", "Wiggle", "pulsate", "Pulsate" };
+*/
+static const char *immobile[4] = { "\90k\82¦\82é", "\90k\82¦\82é", "\90k\82¦\82é", "\90k\82¦\82é" };
+/*JP
 static const char *crawl[4] = { "crawl", "Crawl", "falter", "Falter" };
+*/
+static const char *crawl[4] = { "\82Í\82¢\82¸\82é", "\82Í\82¢\82¸\82é", "\82½\82\82ë\82®", "\82½\82\82ë\82®" };
 
 const char *
 locomotion(ptr, def)
@@ -1056,6 +1082,28 @@ const char *def;
                       : nolimbs(ptr) ? crawl[capitalize]
                         : def);
 }
+#if 1 /*JP*/
+static const char *levitate2 = "\95\82\82«\8fo\82½";
+static const char *fly2 = "\94ò\82Ñ\8fo\82½";
+static const char *slither2 = "\8a\8a\82è\8fo\82½";
+static const char *ooze2 = "\82É\82\82Ý\8fo\82½";
+static const char *crawl2 = "\82Í\82¢\82¸\82è\8fo\82½";
+
+const char *
+jumpedthrough(ptr, def)
+const struct permonst *ptr;
+const char *def;
+{
+        return (
+            is_floater(ptr) ? levitate2 :
+            is_flyer(ptr)   ? fly2 :
+            slithy(ptr)     ? slither2 :
+            amorphous(ptr)  ? ooze2 :
+            nolimbs(ptr)    ? crawl2 :
+            def
+            );
+}
+#endif
 
 /* return phrase describing the effect of fire attack on a type of monster */
 const char *
@@ -1070,16 +1118,25 @@ struct attack *mattk;
     case PM_FIRE_VORTEX:
     case PM_FIRE_ELEMENTAL:
     case PM_SALAMANDER:
+/*JP
         what = "already on fire";
+*/
+        what = "\82·\82Å\82É\89\8a\82É\82Â\82Â\82Ü\82ê\82Ä\82¢\82é";
         break;
     case PM_WATER_ELEMENTAL:
     case PM_FOG_CLOUD:
     case PM_STEAM_VORTEX:
+/*JP
         what = "boiling";
+*/
+        what = "\95¦\93«\82µ\82½";
         break;
     case PM_ICE_VORTEX:
     case PM_GLASS_GOLEM:
+/*JP
         what = "melting";
+*/
+        what = "\97n\82¯\82½";
         break;
     case PM_STONE_GOLEM:
     case PM_CLAY_GOLEM:
@@ -1088,10 +1145,16 @@ struct attack *mattk;
     case PM_EARTH_ELEMENTAL:
     case PM_DUST_VORTEX:
     case PM_ENERGY_VORTEX:
+/*JP
         what = "heating up";
+*/
+        what = "\94M\82­\82È\82Á\82½";
         break;
     default:
+/*JP
         what = (mattk->aatyp == AT_HUGS) ? "being roasted" : "on fire";
+*/
+        what = (mattk->aatyp == AT_HUGS) ? "\8aÛ\8fÄ\82¯\82É\82È\82Á\82½" : "\89Î\82¾\82é\82Ü\82É\82È\82Á\82½";
         break;
     }
     return what;
index 50329ce..8a74c06 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "mfndpos.h"
 #include "artifact.h"
@@ -23,9 +28,15 @@ struct monst *mtmp;
 {
     if (flags.verbose) {
         if (cansee(mtmp->mx, mtmp->my) && !Unaware)
+/*JP
             pline("KABOOM!!  You see a door explode.");
+*/
+            pline("\82¿\82ã\82Ç\81[\82ñ\81I\83h\83A\82ª\94\9a\94­\82·\82é\82Ì\82ð\8c©\82½\81D");
         else if (!Deaf)
+/*JP
             You_hear("a distant explosion.");
+*/
+            You_hear("\89\93\95û\82Å\94\9a\94­\82·\82é\89¹\82ð\95·\82¢\82½\81D");
     }
     wake_nearto(mtmp->mx, mtmp->my, 7 * 7);
     mtmp->mstun = 1;
@@ -57,9 +68,15 @@ struct monst *mon;
 const char *shout;
 {
     if (canspotmon(mon))
+/*JP
         pline("%s yells:", Amonnam(mon));
+*/
+        pline("%s\82Í\8b©\82ñ\82¾\81F", Amonnam(mon));
     else
+/*JP
         You_hear("someone yell:");
+*/
+        pline("\89½\8eÒ\82©\82Í\8b©\82ñ\82¾\81F");
     verbalize1(shout);
 }
 
@@ -75,10 +92,16 @@ register struct monst *mtmp;
             && (levl[x][y].doormask & D_LOCKED)) {
             if (couldsee(mtmp->mx, mtmp->my)) {
                 if (levl[x][y].looted & D_WARNED) {
+/*JP
                     mon_yells(mtmp, "Halt, thief!  You're under arrest!");
+*/
+                    verbalize("\91Ò\82Ä\81I\82Ê\82·\82Á\82Æ\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
                     (void) angry_guards(!!Deaf);
                 } else {
+/*JP
                     mon_yells(mtmp, "Hey, stop picking that lock!");
+*/
+                    verbalize("\82¨\82¢\81C\8c®\82ð\8f\9f\8eè\82É\8aJ\82¯\82é\82ñ\82\82á\82È\82¢\81I");
                     levl[x][y].looted |= D_WARNED;
                 }
                 stop_occupation();
@@ -225,7 +248,10 @@ struct monst *mon;
             expels(mon, mon->data, TRUE);
         } else if (!sticks(youmonst.data)) {
             unstuck(mon); /* let go */
+/*JP
             You("get released!");
+*/
+            You("\89ð\95ú\82³\82ê\82½\81I");
         }
     }
 }
@@ -265,9 +291,15 @@ boolean fleemsg;
                sleep and temporary paralysis, so both conditions
                receive the same alternate message */
             if (!mtmp->mcanmove || !mtmp->data->mmove)
+/*JP
                 pline("%s seems to flinch.", Adjmonnam(mtmp, "immobile"));
+*/
+                pline("%s\82Í\82µ\82è\82²\82Ý\82µ\82Ä\82¢\82é\82æ\82¤\82¾\81D", Monnam(mtmp));
             else
+/*JP
                 pline("%s turns to flee.", Monnam(mtmp));
+*/
+                pline("%s\82Í\82¨\82Ñ\82¦\82Ä\93¦\82°\8fo\82µ\82½\81I", Monnam(mtmp));
         }
         mtmp->mflee = 1;
     }
@@ -434,8 +466,13 @@ register struct monst *mtmp;
     if (nearby && mdat->msound == MS_BRIBE && mtmp->mpeaceful && !mtmp->mtame
         && !u.uswallow) {
         if (mtmp->mux != u.ux || mtmp->muy != u.uy) {
+#if 0 /*JP*/
             pline("%s whispers at thin air.",
                   cansee(mtmp->mux, mtmp->muy) ? Monnam(mtmp) : "It");
+#else
+            pline("%s\82ª\82³\82³\82â\82¢\82½\81D",
+                  cansee(mtmp->mux, mtmp->muy) ? Monnam(mtmp) : "\89½\82©");
+#endif
 
             if (is_demon(youmonst.data)) {
                 /* "Good hunting, brother" */
@@ -444,7 +481,10 @@ register struct monst *mtmp;
             } else {
                 mtmp->minvis = mtmp->perminvis = 0;
                 /* Why?  For the same reason in real demon talk */
+/*JP
                 pline("%s gets angry!", Amonnam(mtmp));
+*/
+                pline("%s\82Í\93{\82Á\82½\81I", Amonnam(mtmp));
                 mtmp->mpeaceful = 0;
                 set_malign(mtmp);
                 /* since no way is an image going to pay it off */
@@ -461,27 +501,48 @@ register struct monst *mtmp;
         struct monst *m2, *nmon = (struct monst *) 0;
 
         if (canseemon(mtmp))
+/*JP
             pline("%s concentrates.", Monnam(mtmp));
+*/
+            pline("%s\82Í\90¸\90_\82ð\8fW\92\86\82µ\82Ä\82¢\82é\81D", Monnam(mtmp));
         if (distu(mtmp->mx, mtmp->my) > BOLT_LIM * BOLT_LIM) {
+/*JP
             You("sense a faint wave of psychic energy.");
+*/
+            You("\83T\83C\83R\83G\83l\83\8b\83M\81[\82Ì\94g\93®\82ð\8a´\82\82½\81D");
             goto toofar;
         }
+/*JP
         pline("A wave of psychic energy pours over you!");
+*/
+        pline("\82 \82È\82½\82Í\83T\83C\83R\83G\83l\83\8b\83M\81[\82Ì\94g\93®\82ð\97\81\82Ñ\82½\81I");
         if (mtmp->mpeaceful
             && (!Conflict || resist(mtmp, RING_CLASS, 0, 0))) {
+/*JP
             pline("It feels quite soothing.");
+*/
+            pline("\90S\82ª\82È\82²\82ñ\82¾\81D");
         } else if (!u.uinvulnerable) {
             register boolean m_sen = sensemon(mtmp);
 
             if (m_sen || (Blind_telepat && rn2(2)) || !rn2(10)) {
                 int dmg;
+#if 0 /*JP*/
                 pline("It locks on to your %s!",
                       m_sen ? "telepathy" : Blind_telepat ? "latent telepathy"
                                                           : "mind");
+#else
+                pline("\82»\82ê\82Í\82 \82È\82½\82Ì%s\82ð\92¼\8c\82\82µ\82½\81I",
+                      m_sen ? "\83e\83\8c\83p\83V\81[\94\\97Í" : Blind_telepat ? "\90ö\8dÝ\94\\97Í"
+                                                               : "\90¸\90_");
+#endif
                 dmg = rnd(15);
                 if (Half_spell_damage)
                     dmg = (dmg + 1) / 2;
+/*JP
                 losehp(dmg, "psychic blast", KILLED_BY_AN);
+*/
+                losehp(dmg, "\83T\83C\83R\8dU\8c\82\82Å", KILLED_BY_AN);
             }
         }
         for (m2 = fmon; m2; m2 = nmon) {
@@ -497,7 +558,10 @@ register struct monst *mtmp;
             if ((telepathic(m2->data) && (rn2(2) || m2->mblinded))
                 || !rn2(10)) {
                 if (cansee(m2->mx, m2->my))
+/*JP
                     pline("It locks on to %s.", mon_nam(m2));
+*/
+                    pline("%s\82ð\92¼\8c\82\82µ\82½\81D", mon_nam(m2));
                 m2->mhp -= rnd(15);
                 if (m2->mhp <= 0)
                     monkilled(m2, "", AD_DRIN);
@@ -640,7 +704,10 @@ itsstuck(mtmp)
 register struct monst *mtmp;
 {
     if (sticks(youmonst.data) && mtmp == u.ustuck && !u.uswallow) {
+/*JP
         pline("%s cannot escape from you!", Monnam(mtmp));
+*/
+        pline("%s\82Í\82 \82È\82½\82©\82ç\93¦\82°\82ç\82ê\82È\82¢\81I", Monnam(mtmp));
         return TRUE;
     }
     return FALSE;
@@ -811,7 +878,10 @@ register int after;
 #ifdef MAIL
     if (ptr == &mons[PM_MAIL_DAEMON]) {
         if (!Deaf && canseemon(mtmp))
+/*JP
             verbalize("I'm late!");
+*/
+            verbalize("\92x\82­\82È\82Á\82Ä\82·\82Ü\82È\82¢\81I");
         mongone(mtmp);
         return 2;
     }
@@ -1218,11 +1288,19 @@ postmov:
                         || (!amorphous(ptr) && can_fog(mtmp)
                             && vamp_shift(mtmp, &mons[PM_FOG_CLOUD])))) {
                     if (flags.verbose && canseemon(mtmp))
+#if 0 /*JP*/
                         pline("%s %s under the door.", Monnam(mtmp),
                               (ptr == &mons[PM_FOG_CLOUD]
                                || ptr == &mons[PM_YELLOW_LIGHT])
                                   ? "flows"
                                   : "oozes");
+#else
+                        pline("%s\82Í\94à\82Ì\89º\82©\82ç%s\81D", Monnam(mtmp),
+                              (ptr == &mons[PM_FOG_CLOUD]
+                               || ptr == &mons[PM_YELLOW_LIGHT])
+                                  ? "\97¬\82ê\82Å\82½"
+                                  : "\82É\82\82Ý\82Å\82½");
+#endif
                 } else if (here->doormask & D_LOCKED && can_unlock) {
                     if (btrapped) {
                         here->doormask = D_NODOOR;
@@ -1233,12 +1311,21 @@ postmov:
                     } else {
                         if (flags.verbose) {
                             if (observeit)
+/*JP
                                 pline("%s unlocks and opens a door.",
+*/
+                                pline("%s\82Í\8c®\82ð\82Í\82¸\82µ\82Ä\94à\82ð\8aJ\82¯\82½\81D",
                                       Monnam(mtmp));
                             else if (canseeit)
+/*JP
                                 You_see("a door unlock and open.");
+*/
+                                You("\94à\82Ì\8c®\82ª\82Í\82¸\82ê\81C\8aJ\82­\82Ì\82ð\8c©\82½\81D");
                             else if (!Deaf)
+/*JP
                                 You_hear("a door unlock and open.");
+*/
+                                You_hear("\94à\82Ì\8c®\82ª\82Í\82¸\82ê\81C\8aJ\82­\89¹\82ð\95·\82¢\82½\81D");
                         }
                         here->doormask = D_ISOPEN;
                         /* newsym(mtmp->mx, mtmp->my); */
@@ -1254,11 +1341,20 @@ postmov:
                     } else {
                         if (flags.verbose) {
                             if (observeit)
+/*JP
                                 pline("%s opens a door.", Monnam(mtmp));
+*/
+                                pline("%s\82Í\94à\82ð\8aJ\82¯\82½\81D", Monnam(mtmp));
                             else if (canseeit)
+/*JP
                                 You_see("a door open.");
+*/
+                                You("\94à\82ª\8aJ\82­\82Ì\82ð\8c©\82½\81D");
                             else if (!Deaf)
+/*JP
                                 You_hear("a door open.");
+*/
+                                You_hear("\94à\82ª\8aJ\82­\89¹\82ð\95·\82¢\82½\81D");
                         }
                         here->doormask = D_ISOPEN;
                         /* newsym(mtmp->mx, mtmp->my); */  /* done below */
@@ -1275,12 +1371,21 @@ postmov:
                     } else {
                         if (flags.verbose) {
                             if (observeit)
+/*JP
                                 pline("%s smashes down a door.",
+*/
+                                pline("%s\82Í\94à\82ð\94j\89ó\82µ\82½\81D",
                                       Monnam(mtmp));
                             else if (canseeit)
+/*JP
                                 You_see("a door crash open.");
+*/
+                                You("\94à\82ª\94j\89ó\82³\82ê\82é\82Ì\82ð\8c©\82½\81D");
                             else if (!Deaf)
+/*JP
                                 You_hear("a door crash open.");
+*/
+                                You_hear("\94à\82ª\94j\89ó\82³\82ê\82é\89¹\82ð\95·\82¢\82½\81D");
                         }
                         if (here->doormask & D_LOCKED && !rn2(2))
                             here->doormask = D_NODOOR;
@@ -1297,14 +1402,22 @@ postmov:
                 if (may_dig(mtmp->mx, mtmp->my)
                     && (dmgtype(ptr, AD_RUST) || dmgtype(ptr, AD_CORR))) {
                     if (canseemon(mtmp))
+/*JP
                         pline("%s eats through the iron bars.", Monnam(mtmp));
+*/
+                        pline("%s\82Í\93S\82Ì\96_\82ð\90H\82×\82Ä\92Ê\82è\94²\82¯\82½\81D", Monnam(mtmp));
                     dissolve_bars(mtmp->mx, mtmp->my);
                     return 3;
                 } else if (flags.verbose && canseemon(mtmp))
+#if 0 /*JP*/
                     Norep("%s %s %s the iron bars.", Monnam(mtmp),
                           /* pluralization fakes verb conjugation */
                           makeplural(locomotion(ptr, "pass")),
                           passes_walls(ptr) ? "through" : "between");
+#else
+                    Norep("%s\82Í\93S\82Ì\96_%s\82ð\82·\82è\94²\82¯\82½\81D", Monnam(mtmp),
+                          passes_walls(ptr) ? "" : "\82Ì\8aÔ");
+#endif
             }
 
             /* possibly dig */
index 6ad230d..fbe996b 100644 (file)
@@ -73,6 +73,9 @@ char *nam;
 {
     boolean fmlkind = is_female(mtmp->data);
     const char *devnam;
+#if 1 /*JP*/
+    char tmp_nam[PL_NSIZ];
+#endif
 
     devnam = dev_name();
     if (!devnam)
@@ -86,9 +89,17 @@ char *nam;
         mtmp->female = 1;
     else
         mtmp->female = 0;
+#if 0 /*JP*/
     Strcat(nam, " the ");
     Strcat(nam, rank_of((int) mtmp->m_lev, monsndx(mtmp->data),
                         (boolean) mtmp->female));
+#else /*\8fÌ\8d\86\82ð\91O\82É\95t\82¯\82½\82¢\82Ì\82Åtmp_nam\82É\88ê\92U\8d\\92z\82µ\82Änam\82É\96ß\82·*/
+    Strcpy(tmp_nam, rank_of((int) mtmp->m_lev, monsndx(mtmp->data),
+                        (boolean)mtmp->female));
+    Strcat(tmp_nam, "\82Ì");
+    Strcat(tmp_nam, nam);
+    Strcpy(nam, tmp_nam);
+#endif
 }
 
 STATIC_OVL void
@@ -357,6 +368,7 @@ void
 mplayer_talk(mtmp)
 register struct monst *mtmp;
 {
+#if 0 /*JP*/
     static const char *same_class_msg[3] =
         {
           "I can't win, and neither will you!", "You don't deserve to win!",
@@ -366,14 +378,49 @@ register struct monst *mtmp;
                           "The low-life wants to talk, eh?", "Fight, scum!",
                           "Here is what I have to say!",
                       };
+#else
+    static const char *same_class_msg[2][3] = {
+        {
+            "\8e\84\82Å\82·\82ç\92B\90¬\82Å\82«\82È\82¢\82Ì\82É\81C\82¨\91O\82É\92B\90¬\82Å\82«\82é\82Ì\82©\81H",
+            "\82¨\91O\82ª\90¬\8c÷\82·\82é\82È\82ñ\82Ä\82±\82Æ\82Í\82È\82¢\82È\81D",
+            "\96¼\97_\82ð\89ä\82É\81I\82¨\91O\82\82á\82È\82¢\81I",
+        },
+        {
+            "\8e\84\82Å\82·\82ç\92B\90¬\82Å\82«\82È\82¢\82Ì\82É\81C\82 \82È\82½\82É\92B\90¬\82Å\82«\82Ä\81H",
+            "\82 \82È\82½\82ª\90¬\8c÷\82·\82é\82È\82ñ\82Ä\82 \82è\82¦\82Ü\82¹\82ñ\82í\81D",
+            "\96¼\97_\82Í\8e\84\82É\81I\82 \82È\82½\82É\82È\82ñ\82Ä\82Æ\82ñ\82Å\82à\82È\82¢\81D",
+        }
+    },
+    *other_class_msg[2][3] = {
+        {
+            "\89º\8fO\82ª\98b\82µ\82©\82¯\82é\82©\81H\82Í\82Í\81[\82ñ\81H",
+            "\90í\82¦\81I\82±\82Ì\96ì\98Y\81I",
+            "\82¨\91O\82Æ\98b\82·\82±\82Æ\82È\82Ç\82È\82É\82à\82È\82¢\81I",
+        },
+        {
+            "\8e\84\82Æ\98b\82µ\82½\82¢\82Å\82·\82Á\82Ä\81H",
+            "\8c\95\82ð\8eæ\82è\82È\82³\82¢\81I",
+            "\82 \82È\82½\82Æ\98b\82·\82±\82Æ\82È\82Ç\82 \82è\82Ü\82¹\82ñ\82í\81I",
+        }
+    };
+    int female;
+#endif
 
     if (mtmp->mpeaceful)
         return; /* will drop to humanoid talk */
 
+#if 0 /*JP*/
     pline("Talk? -- %s", (mtmp->data == &mons[urole.malenum]
                           || mtmp->data == &mons[urole.femalenum])
                              ? same_class_msg[rn2(3)]
                              : other_class_msg[rn2(3)]);
+#else
+    female = (mtmp->female ? 1 : 0);
+    pline("\98b\82·\81H -- %s", (mtmp->data == &mons[urole.malenum]
+                          || mtmp->data == &mons[urole.femalenum])
+          ? same_class_msg[female][rn2(3)]
+          : other_class_msg[female][rn2(3)]);
+#endif
 }
 
 /*mplayer.c*/
index b63a479..34d69df 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL int FDECL(drop_throw, (struct obj *, BOOLEAN_P, int, int));
@@ -15,9 +20,15 @@ STATIC_DCL int FDECL(drop_throw, (struct obj *, BOOLEAN_P, int, int));
  * Keep consistent with breath weapons in zap.c, and AD_* in monattk.h.
  */
 STATIC_OVL NEARDATA const char *breathwep[] = {
+#if 0 /*JP*/
     "fragments", "fire", "frost", "sleep gas", "a disintegration blast",
     "lightning", "poison gas", "acid", "strange breath #8",
     "strange breath #9"
+#else
+    "\94j\95Ð", "\89\8a", "\97â\8bC", "\90\87\96°\83K\83X", "\95ª\89ð\82Ì\91§",
+    "\88î\8dÈ", "\93Å\82Ì\91§", "\8e_", "strange breath #8",
+    "strange breath #9"
+#endif
 };
 
 extern boolean notonhead; /* for long worms */
@@ -42,12 +53,19 @@ const char *name; /* if null, then format `obj' */
         knm = strcpy(knmbuf, killer_xname(obj));
         kprefix = KILLED_BY; /* killer_name supplies "an" if warranted */
     } else {
+#if 0 /*JP*/
         knm = name;
         /* [perhaps ought to check for plural here to] */
         if (!strncmpi(name, "the ", 4) || !strncmpi(name, "an ", 3)
             || !strncmpi(name, "a ", 2))
             kprefix = KILLED_BY;
+#else
+        knm = strcpy(knmbuf, name);
+#endif
     }
+#if 1 /*JP*/
+    strcat(knmbuf, "\82É\93\96\82½\82Á\82Ä");
+#endif
     onm = (obj && obj_is_pname(obj)) ? the(name) : (obj && obj->quan > 1L)
                                                        ? name
                                                        : an(name);
@@ -55,26 +73,47 @@ const char *name; /* if null, then format `obj' */
 
     if (u.uac + tlev <= rnd(20)) {
         if (Blind || !flags.verbose)
+/*JP
             pline("It misses.");
+*/
+            pline("\82»\82ê\82Í\82Í\82¸\82ê\82½\81D");
         else
+/*JP
             You("are almost hit by %s.", onm);
+*/
+            pline("\82à\82¤\8f­\82µ\82Å%s\82É\96½\92\86\82·\82é\82Æ\82±\82ë\82¾\82Á\82½\81I",onm);
         return 0;
     } else {
         if (Blind || !flags.verbose)
+/*JP
             You("are hit%s", exclam(dam));
+*/
+            pline("\89½\82©\82ª\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
         else
+/*JP
             You("are hit by %s%s", onm, exclam(dam));
+*/
+            pline("%s\82ª\82 \82È\82½\82É\96½\92\86\82µ\82½\81I", onm);
 
         if (obj && objects[obj->otyp].oc_material == SILVER && Hate_silver) {
             /* extra damage already applied by dmgval() */
+/*JP
             pline_The("silver sears your flesh!");
+*/
+            pline("\82 \82È\82½\82Ì\91Ì\82Í\8bâ\82Å\8fÄ\82©\82ê\82½\81I");
             exercise(A_CON, FALSE);
         }
         if (is_acid && Acid_resistance)
+/*JP
             pline("It doesn't seem to hurt you.");
+*/
+            pline("\82 \82È\82½\82Í\8f\9d\82Â\82©\82È\82©\82Á\82½\81D");
         else {
             if (is_acid)
+/*JP
                 pline("It burns!");
+*/
+                pline("\8e_\82Å\8fÄ\82©\82ê\82½\81I");
             losehp(dam, knm, kprefix); /* acid damage */
             exercise(A_STR, FALSE);
         }
@@ -113,8 +152,13 @@ int x, y;
         if (down_gate(x, y) != -1)
             objgone = ship_object(obj, x, y, FALSE);
         if (!objgone) {
+#if 0 /*JP*/
             if (!flooreffects(obj, x, y,
                               "fall")) { /* don't double-dip on damage */
+#else
+            if (!flooreffects(obj, x, y,
+                              "\97\8e\82¿\82é")) { /* don't double-dip on damage */
+#endif
                 place_object(obj, x, y);
                 if (!mtmp && x == u.ux && y == u.uy)
                     mtmp = &youmonst;
@@ -154,7 +198,10 @@ boolean verbose;    /* give message(s) even when you can't see what happened */
             if (vis)
                 miss(distant_name(otmp, mshot_xname), mtmp);
             else if (verbose)
+/*JP
                 pline("It is missed.");
+*/
+                pline("\89½\82©\82ª\82©\82·\82ß\82½\81D");
         }
         if (!range) { /* Last position; object drops */
             (void) drop_throw(otmp, 0, mtmp->mx, mtmp->my);
@@ -178,19 +225,28 @@ boolean verbose;    /* give message(s) even when you can't see what happened */
         if (vis)
             hit(distant_name(otmp, mshot_xname), mtmp, exclam(damage));
         else if (verbose)
+/*JP
             pline("%s is hit%s", Monnam(mtmp), exclam(damage));
+*/
+            pline("%s\82É\96½\92\86\82µ\82½%s", Monnam(mtmp), exclam(damage));
 
         if (otmp->opoisoned && is_poisonable(otmp)) {
             if (resists_poison(mtmp)) {
                 if (vis)
+/*JP
                     pline_The("poison doesn't seem to affect %s.",
+*/
+                    pline("%s\82Í\93Å\82Ì\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D",
                               mon_nam(mtmp));
             } else {
                 if (rn2(30)) {
                     damage += rnd(6);
                 } else {
                     if (vis)
+/*JP
                         pline_The("poison was deadly...");
+*/
+                        pline("\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
                     damage = mtmp->mhp;
                 }
             }
@@ -198,30 +254,53 @@ boolean verbose;    /* give message(s) even when you can't see what happened */
         if (objects[otmp->otyp].oc_material == SILVER
             && mon_hates_silver(mtmp)) {
             if (vis)
+/*JP
                 pline_The("silver sears %s flesh!", s_suffix(mon_nam(mtmp)));
+*/
+                pline("%s\82Ì\91Ì\82Í\8bâ\82Å\8fÄ\82©\82ê\82½\81I", s_suffix(mon_nam(mtmp)));
             else if (verbose)
+/*JP
                 pline("Its flesh is seared!");
+*/
+                pline("\89½\8eÒ\82©\82Ì\91Ì\82Í\8fÄ\82©\82ê\82½\81I");
         }
         if (otmp->otyp == ACID_VENOM && cansee(mtmp->mx, mtmp->my)) {
             if (resists_acid(mtmp)) {
                 if (vis || verbose)
+/*JP
                     pline("%s is unaffected.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D", Monnam(mtmp));
                 damage = 0;
             } else {
                 if (vis)
+/*JP
                     pline_The("acid burns %s!", mon_nam(mtmp));
+*/
+                    pline("%s\82Í\8e_\82Å\8fÄ\82©\82ê\82½\81I", mon_nam(mtmp));
                 else if (verbose)
+/*JP
                     pline("It is burned!");
+*/
+                    pline("\89½\82©\82Í\8fÄ\82©\82ê\82½\81I");
             }
         }
         mtmp->mhp -= damage;
         if (mtmp->mhp < 1) {
             if (vis || verbose)
+#if 0 /*JP*/
                 pline("%s is %s!", Monnam(mtmp),
                       (nonliving(mtmp->data) || is_vampshifter(mtmp)
                        || !canspotmon(mtmp))
                           ? "destroyed"
                           : "killed");
+#else
+                pline("%s\82Í%s\81I", Monnam(mtmp),
+                      (nonliving(mtmp->data) || is_vampshifter(mtmp)
+                       || !canspotmon(mtmp))
+                          ? "\93|\82³\82ê\82½"
+                          : "\8e\80\82ñ\82¾");
+#endif
             /* don't blame hero for unknown rolling boulder trap */
             if (!context.mon_moving
                 && (otmp->otyp != BOULDER || range >= 0 || otmp->otrapped))
@@ -235,7 +314,10 @@ boolean verbose;    /* give message(s) even when you can't see what happened */
                                                            : AT_WEAP),
                      otmp)) {
             if (vis && mtmp->mcansee)
+/*JP
                 pline("%s is blinded by %s.", Monnam(mtmp), the(xname(otmp)));
+*/
+                pline("%s\82Í%s\82É\82æ\82Á\82Ä\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D", Monnam(mtmp), the(xname(otmp)));
             mtmp->mcansee = 0;
             tmp = (int) mtmp->mblinded + rnd(25) + 20;
             if (tmp > 127)
@@ -296,10 +378,18 @@ struct obj *obj;         /* missile (or stack providing it) */
     if ((singleobj->cursed || singleobj->greased) && (dx || dy) && !rn2(7)) {
         if (canseemon(mon) && flags.verbose) {
             if (is_ammo(singleobj))
+/*JP
                 pline("%s misfires!", Monnam(mon));
+*/
+                pline("%s\82Í\82Í\82¸\82µ\82½\81I", Monnam(mon));
             else
+#if 0 /*JP*/
                 pline("%s as %s throws it!", Tobjnam(singleobj, "slip"),
                       mon_nam(mon));
+#else
+                pline("%s\82ª\93\8a\82°\82æ\82¤\82Æ\82µ\82½\82Æ\82½\82ñ%s\82ª\8a\8a\82Á\82½\81I",
+                          mon_nam(mon), xname(singleobj));
+#endif
         }
         dx = rn2(3) - 1;
         dy = rn2(3) - 1;
@@ -343,18 +433,33 @@ struct obj *obj;         /* missile (or stack providing it) */
                 && singleobj->otyp <= LAST_GEM + 9 /* 9 glass colors */
                 && is_unicorn(youmonst.data)) {
                 if (singleobj->otyp > LAST_GEM) {
+/*JP
                     You("catch the %s.", xname(singleobj));
+*/
+                    You("%s\82ð\82Â\82©\82Ü\82¦\82½\81D", xname(singleobj));
+/*JP
                     You("are not interested in %s junk.",
+*/
+                    You("%s\82Ì\83K\83\89\83N\83^\82É\8b»\96¡\82Í\82È\82¢\81D",
                         s_suffix(mon_nam(mon)));
                     makeknown(singleobj->otyp);
                     dropy(singleobj);
                 } else {
                     You(
+/*JP
                      "accept %s gift in the spirit in which it was intended.",
+*/
+                     "\82±\82ê\82ª\97~\82µ\82©\82Á\82½\82ñ\82¾\82Æ\8ev\82¢\82È\82ª\82ç%s\82Ì\91¡\82è\95¨\82ð\8eó\82¯\82Æ\82Á\82½\81D",
                         s_suffix(mon_nam(mon)));
+#if 0 /*JP*/
                     (void) hold_another_object(
                         singleobj, "You catch, but drop, %s.",
                         xname(singleobj), "You catch:");
+#else
+                    (void) hold_another_object(
+                        singleobj, "\82 \82È\82½\82Í%s\82ð\82Â\82©\82Ü\82¦\82½\82ª\81C\97\8e\82µ\82½\81D",
+                        xname(singleobj), "\82ð\82Â\82©\82Ü\82¦\82½\81D");
+#endif
                 }
                 break;
             }
@@ -417,11 +522,20 @@ struct obj *obj;         /* missile (or stack providing it) */
                 blindinc = rnd(25);
                 if (singleobj->otyp == CREAM_PIE) {
                     if (!Blind)
+/*JP
                         pline("Yecch!  You've been creamed.");
+*/
+                        pline("\83E\83F\81[\81D\83N\83\8a\81[\83\80\82ð\82©\82Ô\82Á\82½\81D");
                     else
+#if 0 /*JP*/
                         pline("There's %s sticky all over your %s.",
                               something, body_part(FACE));
+#else
+                        pline("\82 \82È\82½\82Í%s\82É\82×\82Æ\82Â\82­\82à\82Ì\82ð\8a´\82\82½\81D",
+                              body_part(FACE));
+#endif
                 } else if (singleobj->otyp == BLINDING_VENOM) {
+#if 0 /*JP*/
                     const char *eyes = body_part(EYE);
 
                     if (eyecount(youmonst.data) != 1)
@@ -431,6 +545,12 @@ struct obj *obj;         /* missile (or stack providing it) */
                         pline_The("venom blinds you.");
                     else
                         Your("%s %s.", eyes, vtense(eyes, "sting"));
+#else
+                    if(!Blind)
+                        pline("\93Å\82Å\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D");
+                    else
+                        Your("%s\82Í\82¿\82­\82¿\82­\82µ\82½\81D", body_part(EYE));
+#endif
                 }
             }
             if (hitu && singleobj->otyp == EGG) {
@@ -542,8 +662,12 @@ struct monst *mtmp;
 
         if (canseemon(mtmp)) {
             onm = xname(otmp);
+#if 0 /*JP*/
             pline("%s thrusts %s.", Monnam(mtmp),
                   obj_is_pname(otmp) ? the(onm) : an(onm));
+#else
+            pline("%s\82Í%s\82ð\93Ë\82«\8eh\82µ\82½\81D", Monnam(mtmp), onm);
+#endif
         }
 
         dam = dmgval(otmp, &youmonst);
@@ -637,7 +761,10 @@ struct monst *mtmp;
         if (multishot > 1) {
             /* "N arrows"; multishot > 1 implies otmp->quan > 1, so
                xname()'s result will already be pluralized */
+/*JP
             Sprintf(onmbuf, "%d %s", multishot, xname(otmp));
+*/
+            Sprintf(onmbuf, "%d%s\82Ì%s", multishot, numeral(otmp), xname(otmp));
             onm = onmbuf;
         } else {
             /* "an arrow" */
@@ -645,7 +772,10 @@ struct monst *mtmp;
             onm = obj_is_pname(otmp) ? the(onm) : an(onm);
         }
         m_shot.s = ammo_and_launcher(otmp, mwep) ? TRUE : FALSE;
+/*JP
         pline("%s %s %s!", Monnam(mtmp), m_shot.s ? "shoots" : "throws", onm);
+*/
+        pline("%s\82Í%s\82ð%s!", Monnam(mtmp), onm, m_shot.s ? "\8c\82\82Á\82½" : "\93\8a\82°\82½");
         m_shot.o = otmp->otyp;
     } else {
         m_shot.o = STRANGE_OBJECT; /* don't give multishot feedback */
@@ -682,7 +812,10 @@ struct attack *mattk;
 
     if (mtmp->mcan) {
         if (!Deaf)
+/*JP
             pline("A dry rattle comes from %s throat.",
+*/
+            pline("%s\82Ì\8dA\82ª\83K\83\89\83K\83\89\82Æ\96Â\82Á\82½\81D",
                   s_suffix(mon_nam(mtmp)));
         return 0;
     }
@@ -702,7 +835,10 @@ struct attack *mattk;
         if (!rn2(BOLT_LIM
                  - distmin(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy))) {
             if (canseemon(mtmp))
+/*JP
                 pline("%s spits venom!", Monnam(mtmp));
+*/
+                pline("%s\82Í\93Å\82ð\93f\82¢\82½\81I", Monnam(mtmp));
             m_throw(mtmp, mtmp->mx, mtmp->my, sgn(tbx), sgn(tby),
                     distmin(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy), otmp);
             nomul(0);
@@ -728,17 +864,28 @@ struct attack *mattk;
         if (mtmp->mcan) {
             if (!Deaf) {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s coughs.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82¹\82«\82ð\82µ\82½\81D", Monnam(mtmp));
                 else
+/*JP
                     You_hear("a cough.");
+*/
+                    You_hear("\82¹\82«\82Ì\89¹\82ð\95·\82¢\82½\81D");
             }
             return 0;
         }
         if (!mtmp->mspec_used && rn2(3)) {
             if ((typ >= AD_MAGM) && (typ <= AD_ACID)) {
                 if (canseemon(mtmp))
+#if 0 /*JP*/
                     pline("%s breathes %s!", Monnam(mtmp),
                           breathwep[typ - 1]);
+#else
+                    pline("%s\82Í%s\82ð\93f\82¢\82½\81I", Monnam(mtmp),
+                          breathwep[typ - 1]);
+#endif
                 buzz((int) (-20 - (typ - 1)), (int) mattk->damn, mtmp->mx,
                      mtmp->my, sgn(tbx), sgn(tby));
                 nomul(0);
@@ -889,13 +1036,22 @@ int whodidit;   /* 1==hero, 0=other, -1==just check whether it'll pass thru */
             *obj_p = otmp = 0; /* object is now gone */
         /* breakage makes its own noises */
         else if (obj_type == BOULDER || obj_type == HEAVY_IRON_BALL)
+/*JP
             pline("Whang!");
+*/
+            pline("\82®\82í\81[\82ñ\81I");
         else if (otmp->oclass == COIN_CLASS
                  || objects[obj_type].oc_material == GOLD
                  || objects[obj_type].oc_material == SILVER)
+/*JP
             pline("Clink!");
+*/
+            pline("\83`\83\83\83\8a\83\93\81I");
         else
+/*JP
             pline("Clonk!");
+*/
+            pline("\83S\83c\83\93\81I");
     }
 
     return hits;
index 012ac8b..84a0708 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (C) 1990 by Ken Arromdee                         */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /*
  * Monster item usage routines.
  */
@@ -72,7 +77,10 @@ struct obj *obj;
 
     if (obj->oclass == POTION_CLASS) {
         coord cc;
+/*JP
         static const char *empty = "The potion turns out to be empty.";
+*/
+        static const char *empty = "\96ò\82Í\8bó\82Á\82Û\82Å\82 \82é\82±\82Æ\82ª\82í\82©\82Á\82½\81D";
         const char *potion_descr;
         struct monst *mtmp;
 
@@ -90,12 +98,23 @@ struct obj *obj;
                         pline1(empty);
                 } else {
                     if (vis) {
+#if 0 /*JP*/
                         pline(
                             "As %s opens the bottle, an enormous %s emerges!",
                               mon_nam(mon),
                               Hallucination ? rndmonnam(NULL)
                                             : (const char *) "ghost");
+#else
+                        pline(
+                            "%s\82ª\95r\82ð\8aJ\82¯\82é\82Æ\81C\8b\90\91å\82È%s\82ª\8fo\82Ä\82«\82½\81I",
+                              mon_nam(mon),
+                              Hallucination ? rndmonnam(NULL)
+                                            : (const char *)"\97H\97ì");
+#endif
+/*JP
                         pline("%s is frightened to death, and unable to move.",
+*/
+                        pline("%s\82Í\82Ü\82Á\82³\82¨\82É\82È\82Á\82Ä\8bÁ\82«\81C\93®\82¯\82È\82­\82È\82Á\82½\81D",
                               Monnam(mon));
                     }
                     paralyze_monst(mon, 3);
@@ -103,7 +122,10 @@ struct obj *obj;
                 return 2;
             }
         }
+/*JP
         if (potion_descr && !strcmp(potion_descr, "smoky")
+*/
+        if (potion_descr && !strcmp(potion_descr, "\89\8c\82Ì\8fo\82Ä\82¢\82é\96ò")
             && !(mvitals[PM_DJINNI].mvflags & G_GONE)
             && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_DJINNI].born))) {
             if (!enexto(&cc, mon->mx, mon->my, &mons[PM_DJINNI]))
@@ -116,18 +138,33 @@ struct obj *obj;
                     pline1(empty);
             } else {
                 if (vis)
+/*JP
                     pline("In a cloud of smoke, %s emerges!", a_monnam(mtmp));
+*/
+                    pline("\89\8c\82Ì\92\86\82©\82ç\81C%s\82ª\8c»\82í\82ê\82½\81I", a_monnam(mtmp));
+/*JP
                 pline("%s speaks.", vis ? Monnam(mtmp) : Something);
+*/
+                pline("%s\82Í\98b\82µ\82½\81D", vis ? Monnam(mtmp) : Something);
                 /* I suspect few players will be upset that monsters */
                 /* can't wish for wands of death here.... */
                 if (rn2(2)) {
+/*JP
                     verbalize("You freed me!");
+*/
+                    verbalize("\89ð\95ú\82µ\82Ä\82­\82ê\82½\82Ì\82Í\82¨\91O\82©\81I");
                     mtmp->mpeaceful = 1;
                     set_malign(mtmp);
                 } else {
+/*JP
                     verbalize("It is about time.");
+*/
+                    verbalize("\82³\82ç\82Î\82¾\81I");
                     if (vis)
+/*JP
                         pline("%s vanishes.", Monnam(mtmp));
+*/
+                        pline("%s\82Í\8fÁ\82¦\82½\81D", Monnam(mtmp));
                     mongone(mtmp);
                 }
             }
@@ -140,10 +177,18 @@ struct obj *obj;
 
         if (!Deaf) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s zaps %s, which suddenly explodes!", Monnam(mon),
                       an(xname(obj)));
+#else
+                pline("%s\82Í%s\82ð\82Ó\82è\82©\82´\82µ\82½\81C\82»\82ê\82Í\93Ë\91R\94\9a\94­\82µ\82½\81I", Monnam(mon),
+                      an(xname(obj)));
+#endif
             else
+/*JP
                 You_hear("a zap and an explosion in the distance.");
+*/
+                You_hear("\89\93\95û\82Ì\8fñ\82Ì\89¹\82Æ\94\9a\94­\89¹\82ð\95·\82¢\82½\81D");
         }
         m_useup(mon, obj);
         if (mon->mhp <= dam) {
@@ -165,15 +210,30 @@ boolean self;
 {
     if (!canseemon(mtmp)) {
         if (!Deaf)
+#if 0 /*JP*/
             You_hear("a %s zap.", (distu(mtmp->mx, mtmp->my)
                                    <= (BOLT_LIM + 1) * (BOLT_LIM + 1))
                                       ? "nearby"
                                       : "distant");
+#else
+            You_hear("%s\82­\82Å\8fñ\82Ì\89¹\82ð\95·\82¢\82½\81D", (distu(mtmp->mx, mtmp->my)
+                                   <= (BOLT_LIM + 1) * (BOLT_LIM + 1))
+                                      ? "\8bß"
+                                      : "\89\93");
+#endif
     } else if (self) {
+#if 0 /*JP*/
         pline("%s zaps %sself with %s!", Monnam(mtmp), mhim(mtmp),
               doname(otmp));
+#else
+        pline("%s\82Í\8e©\95ª\8e©\90g\82É%s\82ð\82Ó\82è\82©\82´\82µ\82½\81I", Monnam(mtmp),
+              doname(otmp));
+#endif
     } else {
+/*JP
         pline("%s zaps %s!", Monnam(mtmp), an(xname(otmp)));
+*/
+        pline("%s\82Í%s\82ð\82Ó\82è\82©\82´\82µ\82½\81I", Monnam(mtmp), an(xname(otmp)));
         stop_occupation();
     }
 }
@@ -206,16 +266,30 @@ struct obj *otmp;
     otmp->bknown = savebknown;
 
     if (vismon)
+/*JP
         pline("%s reads %s!", Monnam(mtmp), onambuf);
+*/
+        pline("%s\82Í%s\82ð\93Ç\82ñ\82¾\81I", Monnam(mtmp), onambuf);
     else
+#if 0 /*JP*/
         You_hear("%s reading %s.",
                  x_monnam(mtmp, ARTICLE_A, (char *) 0,
                           (SUPPRESS_IT | SUPPRESS_INVISIBLE | SUPPRESS_SADDLE),
                           FALSE),
                  onambuf);
+#else
+        You_hear("%s\82ª%s\82ð\93Ç\82ñ\82Å\82¢\82é\90º\82ð\95·\82¢\82½\81D",
+                 x_monnam(mtmp, ARTICLE_A, (char *)0,
+                          (SUPPRESS_IT|SUPPRESS_INVISIBLE|SUPPRESS_SADDLE),
+                          FALSE),
+                 onambuf);
+#endif
 
     if (mtmp->mconf)
+/*JP
         pline("Being confused, %s mispronounces the magic words...",
+*/
+        pline("\8d¬\97\90\82µ\82Ä\82¢\82é\82Ì\82Å\81C%s\82Í\8eô\95\82ð\8aÔ\88á\82Á\82Ä\8f¥\82¦\82Ä\82µ\82Ü\82Á\82½\81D\81D\81D",
               vismon ? mon_nam(mtmp) : mhe(mtmp));
 }
 
@@ -226,9 +300,15 @@ struct obj *otmp;
 {
     if (canseemon(mtmp)) {
         otmp->dknown = 1;
+/*JP
         pline("%s drinks %s!", Monnam(mtmp), singular(otmp, doname));
+*/
+        pline("%s\82Í%s\82ð\88ù\82ñ\82¾\81I", Monnam(mtmp), singular(otmp, doname));
     } else if (!Deaf)
+/*JP
         You_hear("a chugging sound.");
+*/
+        You_hear("\83S\83N\83b\81I\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
 }
 
 /* Defines for various types of stuff.  The order in which monsters prefer
@@ -600,7 +680,10 @@ struct monst *mtmp;
     int i, fleetim, how = 0;
     struct obj *otmp = m.defensive;
     boolean vis, vismon, oseen;
+/*JP
     const char *mcsa = "%s can see again.";
+*/
+    const char *mcsa = "%s\82Í\82Ü\82½\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81D";
 
     if ((i = precheck(mtmp, otmp)) != 0)
         return i;
@@ -620,9 +703,15 @@ struct monst *mtmp;
     case MUSE_UNICORN_HORN:
         if (vismon) {
             if (otmp)
+/*JP
                 pline("%s uses a unicorn horn!", Monnam(mtmp));
+*/
+                pline("%s\82Í\83\86\83j\83R\81[\83\93\82Ì\8ap\82ð\8eg\82Á\82½\81I", Monnam(mtmp));
             else
+/*JP
                 pline_The("tip of %s's horn glows!", mon_nam(mtmp));
+*/
+                pline("%s\82Ì\8ap\82Ì\90æ\92[\82ª\8bP\82¢\82½\81I", mon_nam(mtmp));
         }
         if (!mtmp->mcansee) {
             mtmp->mcansee = 1;
@@ -632,15 +721,24 @@ struct monst *mtmp;
         } else if (mtmp->mconf || mtmp->mstun) {
             mtmp->mconf = mtmp->mstun = 0;
             if (vismon)
+/*JP
                 pline("%s seems steadier now.", Monnam(mtmp));
+*/
+                pline("%s\82Í\95½\90Ã\82ð\82Æ\82è\82à\82Ç\82µ\82½\81D", Monnam(mtmp));
         } else
             impossible("No need for unicorn horn?");
         return 2;
     case MUSE_BUGLE:
         if (vismon)
+/*JP
             pline("%s plays %s!", Monnam(mtmp), doname(otmp));
+*/
+            pline("%s\82Í%s\82ð\90\81\82¢\82½\81I", Monnam(mtmp), doname(otmp));
         else if (!Deaf)
+/*JP
             You_hear("a bugle playing reveille!");
+*/
+            You_hear("\8bN\8f°\83\89\83b\83p\82Ì\89¹\82ð\95·\82¢\82½\81I");
         awaken_soldiers(mtmp);
         return 2;
     case MUSE_WAN_TELEPORTATION_SELF:
@@ -661,7 +759,10 @@ struct monst *mtmp;
         }
         if ((mon_has_amulet(mtmp) || On_W_tower_level(&u.uz)) && !rn2(3)) {
             if (vismon)
+/*JP
                 pline("%s seems disoriented for a moment.", Monnam(mtmp));
+*/
+                pline("%s\82Í\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\81D", Monnam(mtmp));
             return 2;
         }
         if (oseen && how)
@@ -694,14 +795,20 @@ struct monst *mtmp;
 
             if (mon_has_amulet(mtmp) || In_endgame(&u.uz)) {
                 if (vismon)
+/*JP
                     pline("%s seems very disoriented for a moment.",
+*/
+                    pline("%s\82Í\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\81D",
                           Monnam(mtmp));
                 return 2;
             }
             nlev = random_teleport_level();
             if (nlev == depth(&u.uz)) {
                 if (vismon)
+/*JP
                     pline("%s shudders for a moment.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\88ê\8fu\90k\82¦\82½\81D", Monnam(mtmp));
                 return 2;
             }
             get_level(&flev, nlev);
@@ -726,12 +833,18 @@ struct monst *mtmp;
             || (is_drawbridge_wall(mtmp->mx, mtmp->my) >= 0)
             || (sstairs.sx && sstairs.sx == mtmp->mx
                 && sstairs.sy == mtmp->my)) {
+/*JP
             pline_The("digging ray is ineffective.");
+*/
+            pline("\8c@\8dí\8cõ\90ü\82Í\8cø\89Ê\82ª\82È\82¢\81D");
             return 2;
         }
         if (!Can_dig_down(&u.uz) && !levl[mtmp->mx][mtmp->my].candig) {
             if (canseemon(mtmp))
+/*JP
                 pline_The("%s here is too hard to dig in.",
+*/
+                        pline("\82±\82±\82Ì%s\82Í\8cÅ\82­\82Ä\8c@\82ê\82È\82¢\81D",
                           surface(mtmp->mx, mtmp->my));
             return 2;
         }
@@ -740,13 +853,28 @@ struct monst *mtmp;
             return 2;
         seetrap(ttmp);
         if (vis) {
+#if 0 /*JP*/
             pline("%s has made a hole in the %s.", Monnam(mtmp),
                   surface(mtmp->mx, mtmp->my));
+#else
+            pline("%s\82Í%s\82É\8c\8a\82ð\8aJ\82¯\82½\81D", Monnam(mtmp),
+                  surface(mtmp->mx, mtmp->my));
+#endif
+#if 0 /*JP*/
             pline("%s %s through...", Monnam(mtmp),
                   is_flyer(mtmp->data) ? "dives" : "falls");
+#else
+            pline("%s\82Í\92Ê\82è\94²\82¯\82Ä%s\81D\81D\81D", Monnam(mtmp),
+                  is_flyer(mtmp->data) ? "\94ò\82Ñ\82±\82ñ\82¾" : "\97\8e\82¿\82½");
+#endif
         } else if (!Deaf)
+#if 0 /*JP*/
             You_hear("%s crash through the %s.", something,
                      surface(mtmp->mx, mtmp->my));
+#else
+            You_hear("\89½\82©\82ª%s\82ð\92Ê\82è\94²\82¯\82Ä\97\8e\82¿\82é\89¹\82ð\95·\82¢\82½\81D\81D\81D",
+                     surface(mtmp->mx, mtmp->my));
+#endif
         /* we made sure that there is a level for mtmp to go to */
         migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_RANDOM,
                          (coord *) 0);
@@ -819,9 +947,15 @@ struct monst *mtmp;
         if (vis) {
             struct trap *t = t_at(trapx, trapy);
 
+#if 0 /*JP*/
             pline("%s %s into a %s!", Monnam(mtmp),
                   makeplural(locomotion(mtmp->data, "jump")),
                   t->ttyp == TRAPDOOR ? "trap door" : "hole");
+#else
+            pline("%s\82Í%s\82É%s\93ü\82Á\82½\81I", Monnam(mtmp),
+                  t->ttyp == TRAPDOOR ? "\97\8e\82µ\94à" : "\8c\8a",
+                  jconj(locomotion(mtmp->data, "\94ò\82Ô"), "\82Ä"));
+#endif
             if (levl[trapx][trapy].typ == SCORR) {
                 levl[trapx][trapy].typ = CORR;
                 unblock_point(trapx, trapy);
@@ -851,7 +985,10 @@ struct monst *mtmp;
             if (mon_has_special(mtmp))
                 return 0;
             if (vismon)
+/*JP
                 pline("%s escapes the dungeon!", Monnam(mtmp));
+*/
+                pline("%s\82Í\96À\8b{\82©\82ç\93¦\91\96\82µ\82½\81I", Monnam(mtmp));
             mongone(mtmp);
             return 2;
         }
@@ -859,9 +996,15 @@ struct monst *mtmp;
         if (Inhell && mon_has_amulet(mtmp) && !rn2(4)
             && (dunlev(&u.uz) < dunlevs_in_dungeon(&u.uz) - 3)) {
             if (vismon)
+#if 0 /*JP*/
                 pline(
     "As %s climbs the stairs, a mysterious force momentarily surrounds %s...",
                       mon_nam(mtmp), mhim(mtmp));
+#else
+                pline(
+    "%s\82ª\8aK\92i\82ð\82Ì\82Ú\82ë\82¤\82Æ\82·\82é\82Æ\8aï\96­\82È\97Í\82ª%s\82ð\82Â\82Â\82ñ\82¾\81D\81D\81D",
+                      mon_nam(mtmp), mhim(mtmp));
+#endif
             /* simpler than for the player; this will usually be
                the Wizard and he'll immediately go right to the
                upstairs, so there's not much point in having any
@@ -870,7 +1013,10 @@ struct monst *mtmp;
                              (coord *) 0);
         } else {
             if (vismon)
+/*JP
                 pline("%s escapes upstairs!", Monnam(mtmp));
+*/
+                pline("%s\82Í\8aK\92i\82ð\82Ì\82Ú\82Á\82Ä\93¦\82°\82½\81I", Monnam(mtmp));
             migrate_to_level(mtmp, ledger_no(&u.uz) - 1, MIGR_STAIRS_DOWN,
                              (coord *) 0);
         }
@@ -878,29 +1024,43 @@ struct monst *mtmp;
     case MUSE_DOWNSTAIRS:
         m_flee(mtmp);
         if (vismon)
+/*JP
             pline("%s escapes downstairs!", Monnam(mtmp));
+*/
+            pline("%s\82Í\8aK\92i\82ð\8d~\82è\82Ä\93¦\82°\82½\81I", Monnam(mtmp));
         migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_STAIRS_UP,
                          (coord *) 0);
         return 2;
     case MUSE_UP_LADDER:
         m_flee(mtmp);
         if (vismon)
+/*JP
             pline("%s escapes up the ladder!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82Í\82µ\82²\82ð\82Ì\82Ú\82Á\82Ä\93¦\82°\82½\81I", Monnam(mtmp));
         migrate_to_level(mtmp, ledger_no(&u.uz) - 1, MIGR_LADDER_DOWN,
                          (coord *) 0);
         return 2;
     case MUSE_DN_LADDER:
         m_flee(mtmp);
         if (vismon)
+/*JP
             pline("%s escapes down the ladder!", Monnam(mtmp));
+*/
+            pline("%s\82Í\82Í\82µ\82²\82ð\8d~\82è\82Ä\93¦\82°\82½\81I", Monnam(mtmp));
         migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_LADDER_UP,
                          (coord *) 0);
         return 2;
     case MUSE_SSTAIRS:
         m_flee(mtmp);
         if (vismon)
+#if 0 /*JP*/
             pline("%s escapes %sstairs!", Monnam(mtmp),
                   sstairs.up ? "up" : "down");
+#else
+            pline("%s\82Í\8aK\92i\82ð%s\93¦\82°\82½\81I", Monnam(mtmp),
+                  sstairs.up ? "\82Ì\82Ú\82Á\82Ä" : "\8d~\82è\82Ä");
+#endif
         /* going from the Valley to Castle (Stronghold) has no sstairs
            to target, but having sstairs.<sx,sy> == <0,0> will work the
            same as specifying MIGR_RANDOM when mon_arrive() eventually
@@ -911,8 +1071,12 @@ struct monst *mtmp;
     case MUSE_TELEPORT_TRAP:
         m_flee(mtmp);
         if (vis) {
+#if 0 /*JP*/
             pline("%s %s onto a teleport trap!", Monnam(mtmp),
                   makeplural(locomotion(mtmp->data, "jump")));
+#else
+            pline("%s\82Í\8fu\8aÔ\88Ú\93®\82Ìã©\82É\94ò\82Ñ\8d\9e\82ñ\82¾\81I", Monnam(mtmp));
+#endif
             seetrap(t_at(trapx, trapy));
         }
         /*  don't use rloc_to() because worm tails must "move" */
@@ -937,7 +1101,10 @@ struct monst *mtmp;
                 pline(mcsa, Monnam(mtmp));
         }
         if (vismon)
+/*JP
             pline("%s looks better.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mtmp));
         if (oseen)
             makeknown(POT_HEALING);
         m_useup(mtmp, otmp);
@@ -955,7 +1122,10 @@ struct monst *mtmp;
                 pline(mcsa, Monnam(mtmp));
         }
         if (vismon)
+/*JP
             pline("%s looks much better.", Monnam(mtmp));
+*/
+            pline("%s\82Í\82Æ\82Ä\82à\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mtmp));
         if (oseen)
             makeknown(POT_EXTRA_HEALING);
         m_useup(mtmp, otmp);
@@ -972,7 +1142,10 @@ struct monst *mtmp;
                 pline(mcsa, Monnam(mtmp));
         }
         if (vismon)
+/*JP
             pline("%s looks completely healed.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8a®\91S\82É\89ñ\95\9c\82µ\82½\82æ\82¤\82¾\81D", Monnam(mtmp));
         if (oseen)
             makeknown(otmp->otyp);
         m_useup(mtmp, otmp);
@@ -1213,28 +1386,49 @@ register struct obj *otmp;
                 makeknown(WAN_STRIKING);
             if (Antimagic) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 pline("Boing!");
+*/
+                pline("\83{\83C\83\93\81I");
             } else if (rnd(20) < 10 + u.uac) {
+/*JP
                 pline_The("wand hits you!");
+*/
+                pline("\8fñ\82Í\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
                 tmp = d(2, 12);
                 if (Half_spell_damage)
                     tmp = (tmp + 1) / 2;
+/*JP
                 losehp(tmp, "wand", KILLED_BY_AN);
+*/
+                losehp(tmp, "\8fÕ\8c\82\82Ì\8fñ\82É\82æ\82Á\82Ä", KILLED_BY_AN);
             } else
+/*JP
                 pline_The("wand misses you.");
+*/
+                pline("\8fñ\82Í\82Í\82¸\82ê\82½\81D");
             stop_occupation();
             nomul(0);
         } else if (resists_magm(mtmp)) {
             shieldeff(mtmp->mx, mtmp->my);
+/*JP
             pline("Boing!");
+*/
+            pline("\83{\83C\83\93\81I");
         } else if (rnd(20) < 10 + find_mac(mtmp)) {
             tmp = d(2, 12);
+/*JP
             hit("wand", mtmp, exclam(tmp));
+*/
+            hit("\8fñ", mtmp, exclam(tmp));
             (void) resist(mtmp, otmp->oclass, tmp, TELL);
             if (cansee(mtmp->mx, mtmp->my) && zap_oseen)
                 makeknown(WAN_STRIKING);
         } else {
+/*JP
             miss("wand", mtmp);
+*/
+            miss("\8fñ", mtmp);
             if (cansee(mtmp->mx, mtmp->my) && zap_oseen)
                 makeknown(WAN_STRIKING);
         }
@@ -1248,7 +1442,10 @@ register struct obj *otmp;
             /* for consistency with zap.c, don't identify */
             if (mtmp->ispriest && *in_rooms(mtmp->mx, mtmp->my, TEMPLE)) {
                 if (cansee(mtmp->mx, mtmp->my))
+/*JP
                     pline("%s resists the magic!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\96\82\96@\82ð\96h\82¢\82¾\81I", Monnam(mtmp));
             } else if (!tele_restrict(mtmp))
                 (void) rloc(mtmp, TRUE);
         }
@@ -1397,9 +1594,15 @@ struct monst *mtmp;
     case MUSE_FROST_HORN:
         if (oseen) {
             makeknown(otmp->otyp);
+/*JP
             pline("%s plays a %s!", Monnam(mtmp), xname(otmp));
+*/
+            pline("%s\82Í%s\82ð\90\81\82¢\82½\81I", Monnam(mtmp), xname(otmp));
         } else
+/*JP
             You_hear("a horn being played.");
+*/
+            You_hear("\83z\83\8b\83\93\82Ì\89¹\82ð\95·\82¢\82½\81D");
         otmp->spe--;
         m_using = TRUE;
         buzz(-30 - ((otmp->otyp == FROST_HORN) ? AD_COLD - 1 : AD_FIRE - 1),
@@ -1427,12 +1630,22 @@ struct monst *mtmp;
         mreadmsg(mtmp, otmp);
         /* Identify the scroll */
         if (canspotmon(mtmp)) {
+#if 0 /*JP*/
             pline_The("%s rumbles %s %s!", ceiling(mtmp->mx, mtmp->my),
                       otmp->blessed ? "around" : "above", mon_nam(mtmp));
+#else
+            pline("%s\82Ì%s\82Ì%s\82©\82ç\83S\83\8d\83S\83\8d\82Æ\89¹\82ª\95·\82±\82¦\82Ä\82«\82½\81D",
+                      mon_nam(mtmp),
+                      otmp->blessed ? "\82Ü\82í\82è" : "\90^\8fã",
+                      ceiling(mtmp->mx, mtmp->my));
+#endif
             if (oseen)
                 makeknown(otmp->otyp);
         } else if (cansee(mtmp->mx, mtmp->my)) {
+/*JP
             pline_The("%s rumbles in the middle of nowhere!",
+*/
+            pline_The("\82Ç\82±\82©\82Ì%s\82©\82ç\83S\83\8d\83S\83\8d\82Æ\89¹\82ª\95·\82±\82¦\82Ä\82«\82½\81D",
                       ceiling(mtmp->mx, mtmp->my));
             if (mtmp->minvis)
                 map_invisible(mtmp->mx, mtmp->my);
@@ -1468,26 +1681,41 @@ struct monst *mtmp;
         mreadmsg(mtmp, otmp);
         if (mtmp->mconf) {
             if (vis)
+/*JP
                 pline("Oh, what a pretty fire!");
+*/
+                pline("\82í\82\9f\81C\82«\82ê\82¢\82È\89\8a\82¾\81I");
         } else {
             struct monst *mtmp2;
             int num;
 
             if (vis)
+/*JP
                 pline_The("scroll erupts in a tower of flame!");
+*/
+                pline("\8aª\95¨\82©\82ç\89Î\92\8c\82ª\97§\82¿\8f¸\82Á\82½\81I");
             shieldeff(mtmp->mx, mtmp->my);
+/*JP
             pline("%s is uninjured.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8f\9d\82Â\82©\82È\82©\82Á\82½\81D", Monnam(mtmp));
             (void) destroy_mitem(mtmp, SCROLL_CLASS, AD_FIRE);
             (void) destroy_mitem(mtmp, SPBOOK_CLASS, AD_FIRE);
             (void) destroy_mitem(mtmp, POTION_CLASS, AD_FIRE);
             num = (2 * (rn1(3, 3) + 2 * bcsign(otmp)) + 1) / 3;
             if (Fire_resistance)
+/*JP
                 You("are not harmed.");
+*/
+                You("\8f\9d\82Â\82©\82È\82©\82Á\82½\81D");
             burn_away_slime();
             if (Half_spell_damage)
                 num = (num + 1) / 2;
             else
+/*JP
                 losehp(num, "scroll of fire", KILLED_BY_AN);
+*/
+                losehp(num, "\89\8a\82Ì\8aª\95¨\82Å", KILLED_BY_AN);
             for (mtmp2 = fmon; mtmp2; mtmp2 = mtmp2->nmon) {
                 if (DEADMONSTER(mtmp2)) continue;
                 if (mtmp == mtmp2) continue;
@@ -1518,7 +1746,10 @@ struct monst *mtmp;
          */
         if (cansee(mtmp->mx, mtmp->my)) {
             otmp->dknown = 1;
+/*JP
             pline("%s hurls %s!", Monnam(mtmp), singular(otmp, doname));
+*/
+            pline("%s\82Í%s\82ð\8b­\82­\93\8a\82°\82Â\82¯\82½\81I", Monnam(mtmp), singular(otmp, doname));
         }
         m_throw(mtmp, mtmp->mx, mtmp->my, sgn(mtmp->mux - mtmp->mx),
                 sgn(mtmp->muy - mtmp->my),
@@ -1765,8 +1996,13 @@ struct monst *mtmp;
                 if (on_level(&tolevel, &u.uz))
                     goto skipmsg;
                 if (vismon) {
+#if 0 /*JP*/
                     pline("%s rises up, through the %s!", Monnam(mtmp),
                           ceiling(mtmp->mx, mtmp->my));
+#else
+                    pline("%s\82Í%s\82ð\93Ë\82«\94²\82¯\82½\81I", Monnam(mtmp),
+                          ceiling(mtmp->mx, mtmp->my));
+#endif
                     if (!objects[POT_GAIN_LEVEL].oc_name_known
                         && !objects[POT_GAIN_LEVEL].oc_uname)
                         docall(otmp);
@@ -1778,7 +2014,10 @@ struct monst *mtmp;
             } else {
             skipmsg:
                 if (vismon) {
+/*JP
                     pline("%s looks uneasy.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\95s\88À\82°\82É\8c©\82¦\82é\81D", Monnam(mtmp));
                     if (!objects[POT_GAIN_LEVEL].oc_name_known
                         && !objects[POT_GAIN_LEVEL].oc_uname)
                         docall(otmp);
@@ -1788,7 +2027,10 @@ struct monst *mtmp;
             }
         }
         if (vismon)
+/*JP
             pline("%s seems more experienced.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8co\8c±\82ð\90Ï\82ñ\82¾\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mtmp));
         if (oseen)
             makeknown(POT_GAIN_LEVEL);
         m_useup(mtmp, otmp);
@@ -1808,11 +2050,20 @@ struct monst *mtmp;
         mon_set_minvis(mtmp);
         if (vismon && mtmp->minvis) { /* was seen, now invisible */
             if (canspotmon(mtmp))
+#if 0 /*JP*/
                 pline("%s body takes on a %s transparency.",
                       upstart(s_suffix(nambuf)),
                       Hallucination ? "normal" : "strange");
+#else
+                pline("%s%s\82Ì\91Ì\82Í\93§\89ß\90«\82ð\82à\82Á\82½\81D",
+                      Hallucination ? "\82 \82½\82è\82Ü\82¦\82È\82±\82Æ\82¾\82ª" : "\8aï\96­\82È\82±\82Æ\82É",
+                      nambuf);
+#endif
             else
+/*JP
                 pline("Suddenly you cannot see %s.", nambuf);
+*/
+                pline("%s\82Í\93Ë\91R\8c©\82¦\82È\82­\82È\82Á\82½\81D", nambuf);
             if (oseen)
                 makeknown(otmp->otyp);
         }
@@ -1846,7 +2097,10 @@ struct monst *mtmp;
     case MUSE_POT_POLYMORPH:
         mquaffmsg(mtmp, otmp);
         if (vismon)
+/*JP
             pline("%s suddenly mutates!", Monnam(mtmp));
+*/
+            pline("%s\82Í\93Ë\91R\95Ï\89»\82µ\82½\81I", Monnam(mtmp));
         (void) newcham(mtmp, muse_newcham_mon(mtmp), FALSE, FALSE);
         if (oseen)
             makeknown(POT_POLYMORPH);
@@ -1854,8 +2108,12 @@ struct monst *mtmp;
         return 2;
     case MUSE_POLY_TRAP:
         if (vismon)
+#if 0 /*JP*/
             pline("%s deliberately %s onto a polymorph trap!", Monnam(mtmp),
                   makeplural(locomotion(mtmp->data, "jump")));
+#else
+            pline("%s\82Í\82í\82´\82Æ\95Ï\89»\82Ìã©\82É\94ò\82Ñ\82±\82ñ\82¾\81I", Monnam(mtmp));
+#endif
         if (vis)
             seetrap(t_at(trapx, trapy));
 
@@ -1872,7 +2130,10 @@ struct monst *mtmp;
     case MUSE_BULLWHIP:
         /* attempt to disarm hero */
         {
+/*JP
             const char *The_whip = vismon ? "The bullwhip" : "A whip";
+*/
+            const char *The_whip = vismon ? "\95Ú" : "\95Ú";
             int where_to = rn2(4);
             struct obj *obj = uwep;
             const char *hand;
@@ -1890,23 +2151,46 @@ struct monst *mtmp;
                 hand = makeplural(hand);
 
             if (vismon)
+#if 0 /*JP*/
                 pline("%s flicks a bullwhip towards your %s!", Monnam(mtmp),
                       hand);
+#else
+                pline("%s\82Í\82 \82È\82½\82Ì%s\82É\8cü\82©\82Á\82Ä\95Ú\82ð\91Å\82Á\82½\81I", Monnam(mtmp),
+                      hand);
+#endif
             if (obj->otyp == HEAVY_IRON_BALL) {
+/*JP
                 pline("%s fails to wrap around %s.", The_whip, the_weapon);
+*/
+                pline("%s\82Í%s\82É\82Í\82©\82ç\82Ý\82Â\82©\82È\82©\82Á\82½\81D", The_whip, the_weapon);
                 return 1;
             }
+#if 0 /*JP*/
             pline("%s wraps around %s you're wielding!", The_whip,
                   the_weapon);
+#else
+            pline("%s\82Í\82 \82È\82½\82Ì\91\95\94õ\82µ\82Ä\82¢\82é%s\82É\82©\82ç\82Ý\82Â\82¢\82½\81I", The_whip,
+                  the_weapon);
+#endif
             if (welded(obj)) {
+#if 0 /*JP*/
                 pline("%s welded to your %s%c",
                       !is_plural(obj) ? "It is" : "They are", hand,
                       !obj->bknown ? '!' : '.');
+#else
+                pline("\82µ\82©\82µ\81C\82»\82ê\82Í\82Ü\82¾\82 \82È\82½\82Ì%s\82Ì\92\86\82É\82 \82é%s",
+                      hand,
+                      !obj->bknown ? "\81I" : "\81D");
+#endif
                 /* obj->bknown = 1; */ /* welded() takes care of this */
                 where_to = 0;
             }
             if (!where_to) {
+#if 0 /*JP*/
                 pline_The("whip slips free."); /* not `The_whip' */
+#else
+                pline("\95Ú\82Í\82Ù\82Ç\82¯\82½\81D");  /* not `The_whip' */
+#endif
                 return 1;
             } else if (where_to == 3 && mon_hates_silver(mtmp)
                        && objects[obj->otyp].oc_material == SILVER) {
@@ -1918,17 +2202,30 @@ struct monst *mtmp;
             freeinv(obj);
             switch (where_to) {
             case 1: /* onto floor beneath mon */
+#if 0 /*JP*/
                 pline("%s yanks %s from your %s!", Monnam(mtmp), the_weapon,
                       hand);
+#else
+                pline("%s\82Í%s\82ð\82 \82È\82½\82Ì%s\82©\82ç\82®\82¢\82Æ\82Ð\82Á\82Ï\82Á\82½\81I", Monnam(mtmp), the_weapon,
+                      hand);
+#endif
                 place_object(obj, mtmp->mx, mtmp->my);
                 break;
             case 2: /* onto floor beneath you */
+#if 0 /*JP*/
                 pline("%s yanks %s to the %s!", Monnam(mtmp), the_weapon,
                       surface(u.ux, u.uy));
+#else
+                pline("%s\82Í%s\82ð%s\82É\88ø\82«\97\8e\82µ\82½\81I", Monnam(mtmp), the_weapon,
+                      surface(u.ux, u.uy));
+#endif
                 dropy(obj);
                 break;
             case 3: /* into mon's inventory */
+/*JP
                 pline("%s snatches %s!", Monnam(mtmp), the_weapon);
+*/
+                pline("%s\82Í%s\82ð\92D\82Á\82½\81I", Monnam(mtmp), the_weapon);
                 (void) mpickobj(mtmp, obj);
                 break;
             }
@@ -1949,7 +2246,10 @@ STATIC_OVL void
 you_aggravate(mtmp)
 struct monst *mtmp;
 {
+/*JP
     pline("For some reason, %s presence is known to you.",
+*/
+    pline("\82È\82º\82©\81C\82 \82È\82½\82Í%s\82Ì\91\8dÝ\82É\8bC\82ª\82Â\82¢\82½\81D",
           s_suffix(noit_mon_nam(mtmp)));
     cls();
 #ifdef CLIPPING
@@ -1957,12 +2257,18 @@ struct monst *mtmp;
 #endif
     show_glyph(mtmp->mx, mtmp->my, mon_to_glyph(mtmp));
     display_self();
+/*JP
     You_feel("aggravated at %s.", noit_mon_nam(mtmp));
+*/
+    You("%s\82É\95 \82ª\82½\82Á\82½\81D", mon_nam(mtmp));
     display_nhwindow(WIN_MAP, TRUE);
     docrt();
     if (unconscious()) {
         multi = -1;
+/*JP
         nomovemsg = "Aggravated, you are jolted into full consciousness.";
+*/
+        nomovemsg = "\95 \82ª\82½\82Á\82Ä\82¢\82Ä\81C\83s\83\8a\83s\83\8a\82µ\82Ä\82¢\82é\81D";
     }
     newsym(mtmp->mx, mtmp->my);
     if (!canspotmon(mtmp))
@@ -2091,19 +2397,28 @@ const char *str;
 
     if (orefl && orefl->otyp == SHIELD_OF_REFLECTION) {
         if (str) {
+/*JP
             pline(str, s_suffix(mon_nam(mon)), "shield");
+*/
+            pline(str, mon_nam(mon), "\8f\82");
             makeknown(SHIELD_OF_REFLECTION);
         }
         return TRUE;
     } else if (arti_reflects(MON_WEP(mon))) {
         /* due to wielded artifact weapon */
         if (str)
+/*JP
             pline(str, s_suffix(mon_nam(mon)), "weapon");
+*/
+            pline(str, mon_nam(mon), "\95\90\8aí");
         return TRUE;
     } else if ((orefl = which_armor(mon, W_AMUL))
                && orefl->otyp == AMULET_OF_REFLECTION) {
         if (str) {
+/*JP
             pline(str, s_suffix(mon_nam(mon)), "amulet");
+*/
+            pline(str, mon_nam(mon), "\96\82\8f\9c\82¯");
             makeknown(AMULET_OF_REFLECTION);
         }
         return TRUE;
@@ -2111,13 +2426,19 @@ const char *str;
                && (orefl->otyp == SILVER_DRAGON_SCALES
                    || orefl->otyp == SILVER_DRAGON_SCALE_MAIL)) {
         if (str)
+/*JP
             pline(str, s_suffix(mon_nam(mon)), "armor");
+*/
+            pline(str, mon_nam(mon), "\8aZ");
         return TRUE;
     } else if (mon->data == &mons[PM_SILVER_DRAGON]
                || mon->data == &mons[PM_CHROMATIC_DRAGON]) {
         /* Silver dragons only reflect when mature; babies do not */
         if (str)
+/*JP
             pline(str, s_suffix(mon_nam(mon)), "scales");
+*/
+            pline(str, mon_nam(mon), "\97Ø");
         return TRUE;
     }
     return FALSE;
@@ -2130,28 +2451,43 @@ const char *fmt, *str;
     /* Check from outermost to innermost objects */
     if (EReflecting & W_ARMS) {
         if (fmt && str) {
+/*JP
             pline(fmt, str, "shield");
+*/
+            pline(fmt, str, "\8f\82");
             makeknown(SHIELD_OF_REFLECTION);
         }
         return TRUE;
     } else if (EReflecting & W_WEP) {
         /* Due to wielded artifact weapon */
         if (fmt && str)
+/*JP
             pline(fmt, str, "weapon");
+*/
+            pline(fmt, str, "\95\90\8aí");
         return TRUE;
     } else if (EReflecting & W_AMUL) {
         if (fmt && str) {
+/*JP
             pline(fmt, str, "medallion");
+*/
+            pline(fmt, str, "\83\81\83_\83\8a\83I\83\93");
             makeknown(AMULET_OF_REFLECTION);
         }
         return TRUE;
     } else if (EReflecting & W_ARM) {
         if (fmt && str)
+/*JP
             pline(fmt, str, uskin ? "luster" : "armor");
+*/
+            pline(fmt, str, uskin ? "\82Â\82â" : "\8aZ");
         return TRUE;
     } else if (youmonst.data == &mons[PM_SILVER_DRAGON]) {
         if (fmt && str)
+/*JP
             pline(fmt, str, "scales");
+*/
+            pline(fmt, str, "\97Ø");
         return TRUE;
     }
     return FALSE;
@@ -2205,16 +2541,30 @@ boolean stoning;
         long save_quan = obj->quan;
 
         obj->quan = 1L;
+#if 0 /*JP*/
         pline("%s %s %s.", Monnam(mon),
               (obj->oclass == POTION_CLASS)
                   ? "quaffs"
                   : (obj->otyp == TIN) ? "opens and eats the contents of"
                                        : "eats",
               distant_name(obj, doname));
+#else
+        pline("%s\82Í%s\82ð%s\81D", Monnam(mon),
+              distant_name(obj, doname),
+              (obj->oclass == POTION_CLASS)
+                  ? "\88ù\82ñ\82¾"
+                  : (obj->otyp == TIN) ? "\8aJ\82¯\82Ä\92\86\90g\82ð\90H\82×\82½"
+                                       : "\90H\82×\82½");
+#endif
         obj->quan = save_quan;
     } else if (!Deaf)
+#if 0 /*JP*/
         You_hear("%s.",
                  (obj->oclass == POTION_CLASS) ? "drinking" : "chewing");
+#else
+        You_hear("%s\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D",
+                 (obj->otyp == POT_ACID) ? "\83S\83N\83\93" : "\83N\83`\83\83\83N\83`\83\83");
+#endif
 
     m_useup(mon, obj);
     /* obj is now gone */
@@ -2222,9 +2572,15 @@ boolean stoning;
     if (acid && !tinned && !resists_acid(mon)) {
         mon->mhp -= rnd(15);
         if (vis)
+/*JP
             pline("%s has a very bad case of stomach acid.", Monnam(mon));
+*/
+            pline("%s\82Í\88Ý\8e_\82Ì\92²\8eq\82ª\82Æ\82Ä\82à\88«\82¢\81D", Monnam(mon));
         if (mon->mhp <= 0) {
+/*JP
             pline("%s dies!", Monnam(mon));
+*/
+            pline("%s\82Í\8e\80\82ñ\82¾\81I", Monnam(mon));
             if (by_you)
                 xkilled(mon, 0);
             else
@@ -2234,16 +2590,25 @@ boolean stoning;
     }
     if (stoning && vis) {
         if (Hallucination)
+/*JP
             pline("What a pity - %s just ruined a future piece of art!",
+*/
+            pline("\82È\82ñ\82Ä\82±\82Æ\82¾\81I%s\82Í\8c|\8fp\8dì\95i\82É\82È\82ê\82½\82©\82à\82µ\82ê\82È\82¢\82Ì\82É\81I",
                   mon_nam(mon));
         else
+/*JP
             pline("%s seems limber!", Monnam(mon));
+*/
+            pline("%s\82Í\91Ì\82ª\8f_\82ç\82©\82­\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81I", Monnam(mon));
     }
     if (lizard && (mon->mconf || mon->mstun)) {
         mon->mconf = 0;
         mon->mstun = 0;
         if (vis && !is_bat(mon->data) && mon->data != &mons[PM_STALKER])
+/*JP
             pline("%s seems steadier now.", Monnam(mon));
+*/
+            pline("%s\82Í\82æ\82è\8fä\95v\82É\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mon));
     }
     if (mon->mtame && !mon->isminion && nutrit > 0) {
         struct edog *edog = EDOG(mon);
index 89ff061..883c309 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (c) 1989 by Jean-Christophe Collet */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /*
  * This file contains the different functions designed to manipulate the
  * musical instruments and their various effects.
@@ -128,11 +133,20 @@ int distance;
             newsym(mtmp->mx, mtmp->my);
             if (canseemon(mtmp)) {
                 if (!could_see_mon)
+/*JP
                     You("notice %s, swaying with the music.", a_monnam(mtmp));
+*/
+                    You("%s\82ª\89¹\8ay\82É\8d\87\82í\82¹\82Ä\97h\82ê\82Ä\82¢\82é\82Ì\82É\8bC\95t\82¢\82½\81D", a_monnam(mtmp));
                 else
+#if 0 /*JP*/
                     pline("%s freezes, then sways with the music%s.",
                           Monnam(mtmp),
                           was_peaceful ? "" : ", and now seems quieter");
+#else
+                    pline("%s\82Í\97§\82¿\82·\82­\82Ý\81C\89¹\8ay\82É\8d\87\82í\82¹\82Ä\97h\82ê%s\82½\81D",
+                          Monnam(mtmp),
+                          was_peaceful ? "" : "\81C\82¨\82Æ\82È\82µ\82­\82È\82Á");
+#endif
             }
         }
     }
@@ -159,7 +173,10 @@ int distance;
             mtmp->mstrategy &= ~STRAT_WAITMASK;
             if (canseemon(mtmp))
                 pline(
+/*JP
                     "%s listens cheerfully to the music, then seems quieter.",
+*/
+                    "%s\82Í\89¹\8ay\82É\95·\82«\82¢\82è\81C\82¨\82Æ\82È\82µ\82­\82È\82Á\82½\81D",
                       Monnam(mtmp));
         }
     }
@@ -184,9 +201,15 @@ struct monst *bugler; /* monster that played instrument */
             mtmp->mcanmove = 1;
             mtmp->mstrategy &= ~STRAT_WAITMASK;
             if (canseemon(mtmp))
+/*JP
                 pline("%s is now ready for battle!", Monnam(mtmp));
+*/
+                pline("%s\82Í\90í\82¢\82Ì\8f\80\94õ\82ª\90®\82Á\82½\81I", Monnam(mtmp));
             else
+/*JP
                 Norep("You hear the rattle of battle gear being readied.");
+*/
+                Norep("\82 \82È\82½\82Í\90í\82¢\82Ì\8f\80\94õ\82ª\90®\82Á\82½\82±\82Æ\82ð\8e¦\82·\89¹\82ð\95·\82¢\82½\81D");
         } else if ((distm = ((bugler == &youmonst)
                                  ? distu(mtmp->mx, mtmp->my)
                                  : dist2(bugler->mx, bugler->my, mtmp->mx,
@@ -267,12 +290,21 @@ int force;
                 if (mtmp->mundetected && is_hider(mtmp->data)) {
                     mtmp->mundetected = 0;
                     if (cansee(x, y))
+/*JP
                         pline("%s is shaken loose from the ceiling!",
+*/
+                        pline("%s\82Í\97h\82·\82ç\82ê\81C\93V\88ä\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I",
                               Amonnam(mtmp));
                     else
+/*JP
                         You_hear("a thumping sound.");
+*/
+                        You_hear("\83h\83\93\83h\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                     if (x == u.ux && y == u.uy)
+/*JP
                         You("easily dodge the falling %s.", mon_nam(mtmp));
+*/
+                        You("\97\8e\82¿\82Ä\82«\82½%s\82ð\8aÈ\92P\82É\82©\82í\82µ\82½\81D", mon_nam(mtmp));
                     newsym(x, y);
                 }
             }
@@ -280,26 +312,41 @@ int force;
                 switch (levl[x][y].typ) {
                 case FOUNTAIN: /* Make the fountain disappear */
                     if (cansee(x, y))
+/*JP
                         pline_The("fountain falls into a chasm.");
+*/
+                        pline("\90ò\82Í\92n\8a\84\82ê\82É\97\8e\82¿\82½\81D");
                     goto do_pit;
                 case SINK:
                     if (cansee(x, y))
+/*JP
                         pline_The("kitchen sink falls into a chasm.");
+*/
+                        pline("\97¬\82µ\91ä\82Í\92n\8a\84\82ê\82É\97\8e\82¿\82½\81D");
                     goto do_pit;
                 case ALTAR:
                     if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz))
                         break;
 
                     if (cansee(x, y))
+/*JP
                         pline_The("altar falls into a chasm.");
+*/
+                        pline("\8dÕ\92d\82Í\92n\8a\84\82ê\82É\97\8e\82¿\82½\81D");
                     goto do_pit;
                 case GRAVE:
                     if (cansee(x, y))
+/*JP
                         pline_The("headstone topples into a chasm.");
+*/
+                        pline("\95æ\90Î\82Í\95ö\82ê\82³\82Á\82½\81D");
                     goto do_pit;
                 case THRONE:
                     if (cansee(x, y))
+/*JP
                         pline_The("throne falls into a chasm.");
+*/
+                        pline("\8bÊ\8dÀ\82Í\92n\8a\84\82ê\82É\97\8e\82¿\82½\81D");
                 /* Falls into next case */
                 case ROOM:
                 case CORR: /* Try to make a pit */
@@ -325,9 +372,15 @@ int force;
 
                     if ((otmp = sobj_at(BOULDER, x, y)) != 0) {
                         if (cansee(x, y))
+#if 0 /*JP*/
                             pline("KADOOM! The boulder falls into a chasm%s!",
                                   ((x == u.ux) && (y == u.uy)) ? " below you"
                                                                : "");
+#else
+                            pline("\83h\83h\81[\83\93\81I\8aâ\82Í%s\92n\8a\84\82ê\82É\97\8e\82¿\82½\81I",
+                                  ((x == u.ux) && (y == u.uy)) ? "\82 \82È\82½\82Ì\89º\82Ì"
+                                                               : "");
+#endif
                         if (mtmp)
                             mtmp->mtrapped = 0;
                         obj_extract_self(otmp);
@@ -344,20 +397,33 @@ int force;
                             mtmp->mtrapped = 1;
                             if (!m_already_trapped) { /* suppress messages */
                                 if (cansee(x, y))
+/*JP
                                     pline("%s falls into a chasm!",
+*/
+                                    pline("%s\82Í\92n\8a\84\82ê\82É\97\8e\82¿\82½\81I",
                                           Monnam(mtmp));
                                 else if (humanoid(mtmp->data))
+/*JP
                                     You_hear("a scream!");
+*/
+                                    You_hear("\8b©\82Ñ\90º\82ð\95·\82¢\82½\81I");
                             }
                             /* Falling is okay for falling down
                                 within a pit from jostling too */
+/*JP
                             mselftouch(mtmp, "Falling, ", TRUE);
+*/
+                            mselftouch(mtmp, "\97\8e\89º\92\86\81C", TRUE);
                             if (mtmp->mhp > 0)
                                 if ((mtmp->mhp -=
                                      rnd(m_already_trapped ? 4 : 6)) <= 0) {
                                     if (!cansee(x, y))
+/*JP
                                         pline("It is destroyed!");
+*/
+                                        pline("\89½\8eÒ\82©\82Í\8e\80\82ñ\82¾\81I");
                                     else {
+#if 0 /*JP*/
                                         You("destroy %s!",
                                             mtmp->mtame
                                                 ? x_monnam(
@@ -368,6 +434,12 @@ int force;
                                                           : 0,
                                                       FALSE)
                                                 : mon_nam(mtmp));
+#else
+                                        pline("%s%s\82Í\8e\80\82ñ\82¾\81I",
+                                              mtmp->mtame
+                                              ? "\82©\82í\82¢\82»\82¤\82È" : "",
+                                              mon_nam(mtmp));
+#endif
                                     }
                                     xkilled(mtmp, 0);
                                 }
@@ -376,19 +448,36 @@ int force;
                         if (Levitation || Flying
                             || is_clinger(youmonst.data)) {
                             if (!tu_pit) { /* no pit here previously */
+/*JP
                                 pline("A chasm opens up under you!");
+*/
+                                pline("\92n\8a\84\82ê\82ª\91«\8c³\82É\8aJ\82¢\82½\81I");
+/*JP
                                 You("don't fall in!");
+*/
+                                You("\97\8e\82¿\82È\82©\82Á\82½\81I");
                             }
                         } else if (!tu_pit || !u.utrap
                                    || (u.utrap && u.utraptype != TT_PIT)) {
                             /* no pit here previously, or you were
                                not in it even it there was */
+/*JP
                             You("fall into a chasm!");
+*/
+                            You("\92n\8a\84\82ê\82É\97\8e\82¿\82½\81I");
                             u.utrap = rn1(6, 2);
                             u.utraptype = TT_PIT;
+#if 0 /*JP*/
                             losehp(Maybe_Half_Phys(rnd(6)),
                                    "fell into a chasm", NO_KILLER_PREFIX);
+#else
+                            losehp(Maybe_Half_Phys(rnd(6)),
+                                   "\92n\8a\84\82ê\82É\97\8e\82¿\82Ä", NO_KILLER_PREFIX);
+#endif
+/*JP
                             selftouch("Falling, you");
+*/
+                            selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
                         } else if (u.utrap && u.utraptype == TT_PIT) {
                             boolean keepfooting =
                                 ((Fumbling && !rn2(5))
@@ -415,7 +504,10 @@ int force;
                     if (levl[x][y].doormask == D_NODOOR)
                         goto do_pit;
                     if (cansee(x, y))
+/*JP
                         pline_The("door collapses.");
+*/
+                        pline_The("\94à\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D");
                     if (*in_rooms(x, y, SHOPBASE))
                         add_damage(x, y, 0L);
                     levl[x][y].doormask = D_NODOOR;
@@ -462,23 +554,35 @@ struct obj *instr;
 #endif /* MAC || AMIGA || VPIX_MUSIC || PCMUSIC */
 
     if (!do_spec)
+/*JP
         pline("What you produce is quite far from music...");
+*/
+        pline("\82 \82È\82½\82ª\91t\82Å\82½\82à\82Ì\82Í\89¹\8ay\82Æ\82Í\82Æ\82Ä\82à\8cÄ\82×\82È\82¢\81D\81D\81D");
     else
+/*JP
         You("start playing %s.", the(xname(instr)));
+*/
+        You("%s\82ð\91t\82Å\82Í\82\82ß\82½\81D", the(xname(instr)));
 
     switch (instr->otyp) {
     case MAGIC_FLUTE: /* Make monster fall asleep */
         if (do_spec && instr->spe > 0) {
             consume_obj_charge(instr, TRUE);
 
+/*JP
             You("produce %s music.", Hallucination ? "piped" : "soft");
+*/
+            You("%s\82ð\91t\82Å\82½\81D", Hallucination ? "\82a\82f\82l" : "\93î\82ç\82©\82¢\8bÈ");
             put_monsters_to_sleep(u.ulevel * 5);
             exercise(A_DEX, TRUE);
             break;
         }              /* else FALLTHRU */
     case WOODEN_FLUTE: /* May charm snakes */
         do_spec &= (rn2(ACURR(A_DEX)) + u.ulevel > 25);
+/*JP
         pline("%s.", Tobjnam(instr, do_spec ? "trill" : "toot"));
+*/
+        pline("%s\82ð%s\82½\81D", xname(instr), do_spec ? "\91t\82Å" : "\90\81\82¢");
         if (do_spec)
             charm_snakes(u.ulevel * 3);
         exercise(A_DEX, TRUE);
@@ -489,13 +593,19 @@ struct obj *instr;
             consume_obj_charge(instr, TRUE);
 
             if (!getdir((char *) 0)) {
+/*JP
                 pline("%s.", Tobjnam(instr, "vibrate"));
+*/
+                pline("%s\82Í\90k\82¦\82½\81D", xname(instr));
                 break;
             } else if (!u.dx && !u.dy && !u.dz) {
                 if ((damage = zapyourself(instr, TRUE)) != 0) {
                     char buf[BUFSZ];
 
+/*JP
                     Sprintf(buf, "using a magical horn on %sself", uhim());
+*/
+                    Strcpy(buf, "\8e©\95ª\8e©\90g\82Ì\96\82\96@\82Ì\83z\83\8b\83\93\82Ì\97Í\82ð\97\81\82Ñ\82Ä");
                     losehp(damage, buf, KILLED_BY); /* fire or frost damage */
                 }
             } else {
@@ -506,12 +616,18 @@ struct obj *instr;
             break;
         }             /* else FALLTHRU */
     case TOOLED_HORN: /* Awaken or scare monsters */
+/*JP
         You("produce a frightful, grave sound.");
+*/
+        You("\90g\90k\82¢\82·\82é\82æ\82¤\82È\8e\80\8eÒ\82Ì\89¹\8ay\82ð\91t\82Å\82½\81D");
         awaken_monsters(u.ulevel * 30);
         exercise(A_WIS, FALSE);
         break;
     case BUGLE: /* Awaken & attract soldiers */
+/*JP
         You("extract a loud noise from %s.", the(xname(instr)));
+*/
+        You("%s\82©\82ç\91å\82«\82È\8e¨\8fá\82è\82È\89¹\82ð\8fo\82µ\82½\81D", the(xname(instr)));
         awaken_soldiers(&youmonst);
         exercise(A_WIS, FALSE);
         break;
@@ -519,15 +635,23 @@ struct obj *instr;
         if (do_spec && instr->spe > 0) {
             consume_obj_charge(instr, TRUE);
 
+/*JP
             pline("%s very attractive music.", Tobjnam(instr, "produce"));
+*/
+            pline("%s\82Í\82Æ\82Ä\82à\96£\97Í\93I\82È\89¹\8ay\82ð\91t\82Å\82½\81D", xname(instr));
             charm_monsters((u.ulevel - 1) / 3 + 1);
             exercise(A_DEX, TRUE);
             break;
         }             /* else FALLTHRU */
     case WOODEN_HARP: /* May calm Nymph */
         do_spec &= (rn2(ACURR(A_DEX)) + u.ulevel > 25);
+#if 0 /*JP*/
         pline("%s %s.", The(xname(instr)),
               do_spec ? "produces a lilting melody" : "twangs");
+#else
+        You("%s\81D", 
+            do_spec ? "\8cy\89õ\82È\89¹\8ay\82ð\91t\82Å\82½" : "\83|\83\8d\81[\83\93\82Æ\82¢\82¤\89¹\82ð\8fo\82µ\82½");
+#endif
         if (do_spec)
             calm_nymphs(u.ulevel * 3);
         exercise(A_DEX, TRUE);
@@ -536,8 +660,14 @@ struct obj *instr;
         if (do_spec && instr->spe > 0) {
             consume_obj_charge(instr, TRUE);
 
+/*JP
             You("produce a heavy, thunderous rolling!");
+*/
+            You("\8fd\8cú\82È\97\8b\82Ì\82æ\82¤\82È\89¹\82ð\91t\82Å\82½\81I");
+/*JP
             pline_The("entire dungeon is shaking around you!");
+*/
+            pline("\82 \82È\82½\82Ì\89ñ\82è\82Ì\96À\8b{\82ª\97h\82ê\82½\81I");
             do_earthquake((u.ulevel - 1) / 3 + 1);
             /* shake up monsters in a much larger radius... */
             awaken_monsters(ROWNO * COLNO);
@@ -545,7 +675,10 @@ struct obj *instr;
             break;
         }              /* else FALLTHRU */
     case LEATHER_DRUM: /* Awaken monsters */
+/*JP
         You("beat a deafening row!");
+*/
+        You("\8e¨\82ª\95·\82±\82¦\82È\82­\82È\82é\82­\82ç\82¢\92@\82¢\82½\81I");
         awaken_monsters(u.ulevel * 40);
         incr_itimeout(&HDeaf, rn1(20, 30));
         exercise(A_WIS, FALSE);
@@ -570,7 +703,10 @@ struct obj *instr;
     boolean ok;
 
     if (Underwater) {
+/*JP
         You_cant("play music underwater!");
+*/
+        You("\90\85\82Ì\92\86\82Å\82Í\89¹\8ay\82ð\91t\82Å\82ç\82ê\82È\82¢\81I");
         return 0;
     } else if ((instr->otyp == WOODEN_FLUTE || instr->otyp == MAGIC_FLUTE
                 || instr->otyp == TOOLED_HORN || instr->otyp == FROST_HORN
@@ -580,19 +716,28 @@ struct obj *instr;
         return 0;
     }
     if (instr->otyp != LEATHER_DRUM && instr->otyp != DRUM_OF_EARTHQUAKE) {
+/*JP
         c = ynq("Improvise?");
+*/
+        c = ynq("\91¦\8b»\82Å\89\89\91t\82·\82é\81H");
         if (c == 'q')
             goto nevermind;
     }
     if (c == 'n') {
         if (u.uevent.uheard_tune == 2)
+/*JP
             c = ynq("Play the passtune?");
+*/
+            c = ynq("\83R\81[\83h\82ð\89\89\91t\82·\82é\81H");
         if (c == 'q') {
             goto nevermind;
         } else if (c == 'y') {
             Strcpy(buf, tune);
         } else {
+/*JP
             getlin("What tune are you playing? [5 notes, A-G]", buf);
+*/
+            getlin("\82Ç\82Ì\82æ\82¤\82È\92²\82×\82ð\89\89\91t\82µ\82Ü\82·\82©\81H[A-G \82©\82ç5\89¹\82ð\82¢\82ê\82Ä\82Ë]", buf);
             (void) mungspaces(buf);
             if (*buf == '\033')
                 goto nevermind;
@@ -610,7 +755,10 @@ struct obj *instr;
                     *s = 'B';
             }
         }
+/*JP
         You("extract a strange sound from %s!", the(xname(instr)));
+*/
+        You("%s\82©\82ç\8aï\96­\82È\89¹\82ð\8fo\82µ\82½\81I", the(xname(instr)));
 #ifdef UNIX386MUSIC
         /* if user is at the console, play through the console speaker */
         if (atconsole())
@@ -695,14 +843,27 @@ struct obj *instr;
                         }
                     if (tumblers)
                         if (gears)
+#if 0 /*JP*/
                             You_hear("%d tumbler%s click and %d gear%s turn.",
                                      tumblers, plur(tumblers), gears,
                                      plur(gears));
+#else
+                            You_hear("%d\82Ì\8bà\8bï\82ª\83J\83`\82Á\82Æ\82È\82è\81C%d\82Ì\8e\95\8eÔ\82ª\82Ü\82í\82é\89¹\82ð\95·\82¢\82½\81D",
+                                tumblers, gears);
+#endif
                         else
+#if 0 /*JP*/
                             You_hear("%d tumbler%s click.", tumblers,
                                      plur(tumblers));
+#else
+                            You_hear("%d\82Ì\8bà\8bï\82ª\83J\83`\82Á\82Æ\82È\82é\89¹\82ð\95·\82¢\82½\81D",
+                                     tumblers);
+#endif
                     else if (gears) {
+/*JP
                         You_hear("%d gear%s turn.", gears, plur(gears));
+*/
+                        You_hear("%d\82Ì\8e\95\8eÔ\82ª\89ñ\82é\89¹\82ð\95·\82¢\82½\81D", gears);
                         /* could only get `gears == 5' by playing five
                            correct notes followed by excess; otherwise,
                            tune would have matched above */
@@ -741,7 +902,10 @@ atconsole()
      */
     char *termtype = nh_getenv("TERM");
 
+/*JP
     return (!strcmp(termtype, "AT386") || !strcmp(termtype, "xterm"));
+*/
+    return (!strcmp(termtype, "AT386") || !strcmp(termtype, "xterm") || !strcmp(termtype, "kterm"));
 }
 
 STATIC_OVL void
index 17f49b8..ed0cd54 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h" /* save & restore info */
 
@@ -418,7 +423,10 @@ dodiscovered() /* free after Robert Viduya */
     winid tmpwin;
 
     tmpwin = create_nhwindow(NHW_MENU);
+/*JP
     putstr(tmpwin, 0, "Discoveries");
+*/
+    putstr(tmpwin, 0, "\94­\8c©\95¨\88ê\97\97");
     putstr(tmpwin, 0, "");
 
     /* gather "unique objects" into a pseudo-class; note that they'll
@@ -426,7 +434,10 @@ dodiscovered() /* free after Robert Viduya */
     for (i = dis = 0; i < SIZE(uniq_objs); i++)
         if (objects[uniq_objs[i]].oc_name_known) {
             if (!dis++)
+/*JP
                 putstr(tmpwin, iflags.menu_headings, "Unique items");
+*/
+                putstr(tmpwin, iflags.menu_headings, "\93Á\8eê\83A\83C\83e\83\80");
             Sprintf(buf, "  %s", OBJ_NAME(objects[uniq_objs[i]]));
             putstr(tmpwin, 0, buf);
             ++ct;
@@ -462,7 +473,10 @@ dodiscovered() /* free after Robert Viduya */
         }
     }
     if (ct == 0) {
+/*JP
         You("haven't discovered anything yet...");
+*/
+        You("\82Ü\82¾\89½\82à\94­\8c©\82µ\82Ä\82¢\82È\82¢\81D\81D\81D");
     } else
         display_nhwindow(tmpwin, TRUE);
     destroy_nhwindow(tmpwin);
index 18d78fe..bd32b66 100644 (file)
@@ -2,10 +2,20 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* "an uncursed greased partly eaten guardian naga hatchling [corpse]" */
+#if 0 /*JP*/
 #define PREFIX 80 /* (56) */
+#else
+/* \81u\8eô\82í\82ê\82Ä\82¢\82È\82¢\96û\82Ì\93h\82ç\82ê\82½\90H\82×\82©\82¯\82Ì\83N\83\8d\83}\83e\83B\83b\83N\81E\83h\83\89\83S\83\93(\82Ì\8e\80\91Ì)\81v*/
+#define PREFIX 100
+#endif
 #define SCHAR_LIM 127
 #define NUMOBUF 12
 
@@ -20,6 +30,13 @@ STATIC_DCL boolean
 FDECL(singplur_lookup, (char *, char *, BOOLEAN_P, const char *const *));
 STATIC_DCL char *FDECL(singplur_compound, (char *));
 STATIC_DCL char *FDECL(xname_flags, (struct obj *, unsigned));
+#if 1 /*JP*/
+static char *FDECL(substitute, (char *,     char *,     char *));
+static char *FDECL(transpose, (char *buf,char *));
+static char *FDECL(delete, (char *, char *str));
+static int FDECL(digit_8, (int));
+static int FDECL(atoi_8, (const char *));
+#endif
 
 struct Jitem {
     int item;
@@ -63,7 +80,7 @@ register const char *pref;
     register int i = (int) strlen(pref);
 
     if (i > PREFIX) {
-        impossible("PREFIX too short (for %d).", i);
+        impossible("PREFIX too short (for %d).%s//%s", i, s, pref);
         return s;
     }
     s -= i;
@@ -106,26 +123,49 @@ register int otyp;
 
     if (Role_if(PM_SAMURAI) && Japanese_item_name(otyp))
         actualn = Japanese_item_name(otyp);
+#if 1 /*JP*/
+    if(un)
+        Sprintf(buf, "%s\82Æ\8cÄ\82Î\82ê\82é", un);
+#endif
     switch (ocl->oc_class) {
     case COIN_CLASS:
+/*JP
         Strcpy(buf, "coin");
+*/
+        Strcat(buf, "\8bà\89Ý");
         break;
     case POTION_CLASS:
+/*JP
         Strcpy(buf, "potion");
+*/
+        Strcat(buf, "\96ò");
         break;
     case SCROLL_CLASS:
+/*JP
         Strcpy(buf, "scroll");
+*/
+        Strcat(buf, "\8aª\95¨");
         break;
     case WAND_CLASS:
+/*JP
         Strcpy(buf, "wand");
+*/
+        Strcat(buf, "\8fñ");
         break;
     case SPBOOK_CLASS:
+/*JP
         Strcpy(buf, "spellbook");
+*/
+        Strcat(buf, "\96\82\96@\8f\91");
         break;
     case RING_CLASS:
+/*JP
         Strcpy(buf, "ring");
+*/
+        Strcat(buf, "\8ew\97Ö");
         break;
     case AMULET_CLASS:
+#if 0 /*JP*/
         if (nn)
             Strcpy(buf, actualn);
         else
@@ -135,8 +175,24 @@ register int otyp;
         if (dn)
             Sprintf(eos(buf), " (%s)", dn);
         return buf;
+#else
+        if (nn)
+            Strcat(buf, actualn);
+        else if(un)
+            Strcat(buf, "\96\82\8f\9c\82¯");
+        break;
+#endif
+#if 1 /*JP*/
+    case GEM_CLASS:
+        if(nn)
+          Strcat(buf, actualn);
+        else if(un)
+          Strcat(buf, "\95ó\90Î");
+        break;
+#endif
     default:
         if (nn) {
+#if 0 /*JP*/
             Strcpy(buf, actualn);
             if (GemStone(otyp))
                 Strcat(buf, " stone");
@@ -144,27 +200,49 @@ register int otyp;
                 Sprintf(eos(buf), " called %s", un);
             if (dn)
                 Sprintf(eos(buf), " (%s)", dn);
+#else
+            Strcat(buf, actualn);
+#endif
         } else {
+#if 0 /*JP*/
             Strcpy(buf, dn ? dn : actualn);
             if (ocl->oc_class == GEM_CLASS)
                 Strcat(buf,
                        (ocl->oc_material == MINERAL) ? " stone" : " gem");
             if (un)
                 Sprintf(eos(buf), " called %s", un);
+#else
+            Strcat(buf, dn ? dn : actualn);
+#endif
         }
+#if 0 /*JP*/
         return buf;
+#else
+        break;
+#endif
     }
     /* here for ring/scroll/potion/wand */
     if (nn) {
+#if 0 /*JP*/
         if (ocl->oc_unique)
             Strcpy(buf, actualn); /* avoid spellbook of Book of the Dead */
         else
             Sprintf(eos(buf), " of %s", actualn);
+#else
+        Strcpy(buf, actualn);
+#endif
     }
+#if 0 /*JP*/
     if (un)
         Sprintf(eos(buf), " called %s", un);
+#endif
     if (dn)
+#if 0 /*JP*/
         Sprintf(eos(buf), " (%s)", dn);
+#else
+        Sprintf(eos(buf), "(%s%s)", dn,
+            ocl->oc_class == POTION_CLASS ? "\96ò" : "");
+#endif
     return buf;
 }
 
@@ -224,6 +302,11 @@ char *
 fruitname(juice)
 boolean juice; /* whether or not to append " juice" to the name */
 {
+#if 1 /*JP*//*\93ú\96{\8cê\82Å\82Í\82»\82±\82Ü\82Å\82µ\82È\82¢*/
+    char *buf = nextobuf();
+    Sprintf(buf, "%s%s", pl_fruit, juice ? "\83W\83\85\81[\83X" : "");
+    return buf;
+#else
     char *buf = nextobuf();
     const char *fruit_nam = strstri(pl_fruit, " of ");
 
@@ -234,6 +317,7 @@ boolean juice; /* whether or not to append " juice" to the name */
 
     Sprintf(buf, "%s%s", makesingular(fruit_nam), juice ? " juice" : "");
     return buf;
+#endif
 }
 
 char *
@@ -286,41 +370,83 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
     }
 
     if (obj_is_pname(obj))
+#if 0 /*JP*/
+        goto nameit;
+#else
+    {
+        Strcat(buf, ONAME(obj));
         goto nameit;
+    }
+#endif
+#if 1 /*JP*/
+    if (has_oname(obj) && dknown) {
+        Strcat(buf, ONAME(obj));
+        Strcat(buf, "\82Æ\96¼\82Ã\82¯\82ç\82ê\82½");
+    }
+#endif
     switch (obj->oclass) {
     case AMULET_CLASS:
         if (!dknown)
+/*JP
             Strcpy(buf, "amulet");
+*/
+            Strcat(buf, "\96\82\8f\9c\82¯");  
         else if (typ == AMULET_OF_YENDOR || typ == FAKE_AMULET_OF_YENDOR)
             /* each must be identified individually */
             Strcpy(buf, known ? actualn : dn);
         else if (nn)
             Strcpy(buf, actualn);
         else if (un)
+/*JP
             Sprintf(buf, "amulet called %s", un);
+*/
+            Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é\96\82\8f\9c\82¯", un);
         else
+/*JP
             Sprintf(buf, "%s amulet", dn);
+*/
+            Sprintf(eos(buf), "%s", dn);
         break;
     case WEAPON_CLASS:
         if (is_poisonable(obj) && obj->opoisoned)
+/*JP
             Strcpy(buf, "poisoned ");
+*/
+            Strcpy(buf, "\93Å\82Ì\93h\82ç\82ê\82½");
     case VENOM_CLASS:
     case TOOL_CLASS:
+#if 1 /*JP*/
+        if (typ == FIGURINE)
+            Sprintf(eos(buf), "%s\82Ì", mons[obj->corpsenm].mname);
+#endif
         if (typ == LENSES)
+/*JP
             Strcpy(buf, "pair of ");
+*/
+            Strcpy(buf, "\88ê\91Î\82Ì");
         else if (is_wet_towel(obj))
+/*JP
             Strcpy(buf, (obj->spe < 3) ? "moist " : "wet ");
+*/
+            Strcpy(buf, (obj->spe < 3) ? "\8e¼\82Á\82½" : "\94G\82ê\82½");
 
         if (!dknown)
             Strcat(buf, dn ? dn : actualn);
         else if (nn)
             Strcat(buf, actualn);
         else if (un) {
+#if 0 /*JP*/
             Strcat(buf, dn ? dn : actualn);
             Strcat(buf, " called ");
             Strcat(buf, un);
+#else
+            Strcat(buf, un);
+            Strcat(buf, "\82Æ\8cÄ\82Î\82ê\82é");
+            Strcat(buf, dn ? dn : actualn);
+#endif
         } else
             Strcat(buf, dn ? dn : actualn);
+#if 0 /*JP*/ /*\82±\82ê\82Í\8cê\8f\87\82Ì\8aÖ\8cW\82©\82ç\8fã\82Ì\95û\82Å\92è\8b`*/
         /* If we use an() here we'd have to remember never to use */
         /* it whenever calling doname() or xname(). */
         if (typ == FIGURINE && omndx != NON_PM) {
@@ -328,6 +454,9 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
                     index(vowels, *mons[omndx].mname) ? "n" : "",
                     mons[omndx].mname);
         } else if (is_wet_towel(obj)) {
+#else
+        if (is_wet_towel(obj)) {
+#endif
             if (wizard)
                 Sprintf(eos(buf), " (%d)", obj->spe);
         }
@@ -335,25 +464,38 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
     case ARMOR_CLASS:
         /* depends on order of the dragon scales objects */
         if (typ >= GRAY_DRAGON_SCALES && typ <= YELLOW_DRAGON_SCALES) {
+/*JP
             Sprintf(buf, "set of %s", actualn);
+*/
+            Sprintf(buf, "%s\88ê\8e®", actualn);
             break;
         }
         if (is_boots(obj) || is_gloves(obj))
+/*JP
             Strcpy(buf, "pair of ");
+*/
+            Strcat(buf,"\88ê\91Î\82Ì");
 
         if (obj->otyp >= ELVEN_SHIELD && obj->otyp <= ORCISH_SHIELD
             && !dknown) {
+/*JP
             Strcpy(buf, "shield");
+*/
+            Strcat(buf, "\8f\82");
             break;
         }
         if (obj->otyp == SHIELD_OF_REFLECTION && !dknown) {
+/*JP
             Strcpy(buf, "smooth shield");
+*/
+            Strcat(buf, "\82·\82×\82·\82×\82µ\82½\8f\82");
             break;
         }
 
         if (nn)
             Strcat(buf, actualn);
         else if (un) {
+#if 0 /*JP*/
             if (is_boots(obj))
                 Strcat(buf, "boots");
             else if (is_gloves(obj))
@@ -368,6 +510,22 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
                 Strcpy(buf, "armor");
             Strcat(buf, " called ");
             Strcat(buf, un);
+#else
+            char *p;
+            if (is_boots(obj))
+                p = "\8cC";
+            else if (is_gloves(obj))
+                p = "\8f¬\8eè";
+            else if (is_cloak(obj))
+                p = "\83N\83\8d\81[\83N";
+            else if (is_helmet(obj))
+                p = "\8a\95";
+            else if (is_shield(obj))
+                p = "\8f\82";
+            else
+                p = "\8aZ";
+            Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é%s", un, p);
+#endif
         } else
             Strcat(buf, dn);
         break;
@@ -396,26 +554,47 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
         if (Is_pudding(obj)) {
             Sprintf(buf, "%s%s",
                     (obj->owt < 100)
+/*JP
                        ? "small "
+*/
+                       ? "\8f¬\82³\82¢"
                        : (obj->owt > 500)
+/*JP
                           ? "very large "
+*/
+                          ? "\82Æ\82Ä\82à\91å\82«\82¢"
                           : (obj->owt > 300)
+/*JP
                              ? "large "
+*/
+                             ? "\91å\82«\82¢"
                              : "",
                     actualn);
             break;
         }
 
+#if 0 /*JP*/
         Strcpy(buf, actualn);
         if (typ == TIN && known)
             tin_details(obj, omndx, buf);
+#else
+        if (typ == TIN && known)
+            /*JP \81u\81`\82Ì\93÷\82Ì\81v*/
+            tin_details(obj, omndx, buf);
+        Strcat(buf, actualn);
+#endif
         break;
     case COIN_CLASS:
     case CHAIN_CLASS:
+#if 0 /*JP*/
         Strcpy(buf, actualn);
+#else
+        Strcat(buf, actualn);
+#endif
         break;
     case ROCK_CLASS:
         if (typ == STATUE && omndx != NON_PM)
+#if 0 /*JP*/
             Sprintf(buf, "%s%s of %s%s",
                     (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC))
                        ? "historic "
@@ -429,63 +608,134 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
                              ? "an "
                              : "a ",
                     mons[omndx].mname);
+#else
+            Sprintf(eos(buf), "%s%s\82Ì%s", 
+                    (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC))
+                    ? "\97ð\8ej\93I\82È"
+                    : "",
+                    mons[obj->corpsenm].mname, actualn);
+#endif
         else
+#if 0 /*JP*/
             Strcpy(buf, actualn);
+#else
+            Strcat(buf, actualn);
+#endif
         break;
     case BALL_CLASS:
+#if 0 /*JP*/
         Sprintf(buf, "%sheavy iron ball",
                 (obj->owt > ocl->oc_weight) ? "very " : "");
+#else
+        Sprintf(eos(buf), "%s\8fd\82¢\93S\8b\85",
+                (obj->owt > ocl->oc_weight) ? "\82Æ\82Ä\82à" : "");
+#endif
         break;
     case POTION_CLASS:
         if (dknown && obj->odiluted)
+/*JP
             Strcpy(buf, "diluted ");
+*/
+            Strcat(buf, "\94\96\82Ü\82Á\82½");
         if (nn || un || !dknown) {
+#if 0 /*JP*/
             Strcat(buf, "potion");
             if (!dknown)
                 break;
+#else
+            if (!dknown){
+                Strcat(buf, "\96ò");
+                break;
+            }
+#endif
             if (nn) {
+#if 0 /*JP*/
                 Strcat(buf, " of ");
+#endif
                 if (typ == POT_WATER && bknown
                     && (obj->blessed || obj->cursed)) {
+/*JP
                     Strcat(buf, obj->blessed ? "holy " : "unholy ");
+*/
+                    Strcat(buf, obj->blessed ? "\90¹" : "\95s\8fò\82È");
                 }
                 Strcat(buf, actualn);
             } else {
+#if 0 /*JP*/
                 Strcat(buf, " called ");
                 Strcat(buf, un);
+#else
+                Strcat(buf, un);
+                Strcat(buf, "\82Æ\8cÄ\82Î\82ê\82é\96ò");
+#endif
             }
         } else {
             Strcat(buf, dn);
+/*JP
             Strcat(buf, " potion");
+*/
+            Strcat(buf, "\96ò");
         }
         break;
     case SCROLL_CLASS:
+#if 0 /*JP*/
         Strcpy(buf, "scroll");
         if (!dknown)
             break;
+#else
+        if(!dknown){
+            Strcat(buf,"\8aª\95¨");
+            break;
+        }
+#endif
         if (nn) {
+#if 0 /*JP*/
             Strcat(buf, " of ");
+#endif
             Strcat(buf, actualn);
         } else if (un) {
+#if 0 /*JP*/
             Strcat(buf, " called ");
             Strcat(buf, un);
+#else
+            Strcat(buf, un);
+            Strcat(buf, "\82Æ\8cÄ\82Î\82ê\82é\8aª\95¨");
+#endif
         } else if (ocl->oc_magic) {
+#if 0 /*JP*/
             Strcat(buf, " labeled ");
+#endif
             Strcat(buf, dn);
         } else {
+#if 0 /*JP*/
             Strcpy(buf, dn);
             Strcat(buf, " scroll");
+#else
+            Strcat(buf, dn);
+#endif
         }
         break;
     case WAND_CLASS:
         if (!dknown)
+/*JP
             Strcpy(buf, "wand");
+*/
+            Strcat(buf, "\8fñ");
         else if (nn)
+/*JP
             Sprintf(buf, "wand of %s", actualn);
+*/
+            Strcat(buf, actualn);
         else if (un)
+/*JP
             Sprintf(buf, "wand called %s", un);
+*/
+            Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é\8fñ", un);
         else
+/*JP
             Sprintf(buf, "%s wand", dn);
+*/
+            Strcat(buf, dn);
         break;
     case SPBOOK_CLASS:
         if (typ == SPE_NOVEL) { /* 3.6 tribute */
@@ -500,48 +750,88 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
             break;
             /* end of tribute */
         } else if (!dknown) {
+/*JP
             Strcpy(buf, "spellbook");
+*/
+            Strcat(buf, "\96\82\96@\8f\91");
         } else if (nn) {
+#if 0 /*JP*/
             if (typ != SPE_BOOK_OF_THE_DEAD)
                 Strcpy(buf, "spellbook of ");
+#endif
             Strcat(buf, actualn);
         } else if (un) {
+/*JP
             Sprintf(buf, "spellbook called %s", un);
+*/
+            Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é\96\82\96@\8f\91", un);
         } else
+/*JP
             Sprintf(buf, "%s spellbook", dn);
+*/
+            Sprintf(eos(buf), "%s", dn);
         break;
     case RING_CLASS:
         if (!dknown)
+/*JP
             Strcpy(buf, "ring");
+*/
+            Strcat(buf, "\8ew\97Ö");
         else if (nn)
+/*JP
             Sprintf(buf, "ring of %s", actualn);
+*/
+            Strcat(buf, actualn);
         else if (un)
+/*JP
             Sprintf(buf, "ring called %s", un);
+*/
+            Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é\8ew\97Ö", un);
         else
+/*JP
             Sprintf(buf, "%s ring", dn);
+*/
+            Strcat(buf, dn);
         break;
     case GEM_CLASS: {
+/*JP
         const char *rock = (ocl->oc_material == MINERAL) ? "stone" : "gem";
+*/
+        const char *rock = (ocl->oc_material == MINERAL) ? "\90Î" : "\95ó\90Î";
 
         if (!dknown) {
+#if 0 /*JP*/
             Strcpy(buf, rock);
+#else
+            Strcat(buf, rock);
+#endif
         } else if (!nn) {
             if (un)
+/*JP
                 Sprintf(buf, "%s called %s", rock, un);
+*/
+                Sprintf(eos(buf), "%s\82Æ\8cÄ\82Î\82ê\82é%s", un, rock);
             else
+/*JP
                 Sprintf(buf, "%s %s", dn, rock);
+*/
+                Strcat(buf, dn);
         } else {
             Strcpy(buf, actualn);
+#if 0 /*JP*/
             if (GemStone(typ))
                 Strcat(buf, " stone");
+#endif
         }
         break;
     }
     default:
         Sprintf(buf, "glorkum %d %d %d", obj->oclass, typ, obj->spe);
     }
+#if 0 /*JP*/
     if (pluralize)
         Strcpy(buf, makeplural(buf));
+#endif
 
     if (obj->otyp == T_SHIRT && program_state.gameover) {
         char tmpbuf[BUFSZ];
@@ -549,6 +839,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
         Sprintf(eos(buf), " with text \"%s\"", tshirt_text(obj, tmpbuf));
     }
 
+#if 0 /*JP*/
     if (has_oname(obj) && dknown) {
         Strcat(buf, " named ");
     nameit:
@@ -557,6 +848,9 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
 
     if (!strncmpi(buf, "the ", 4))
         buf += 4;
+#else
+nameit:
+#endif
     return buf;
 }
 
@@ -621,7 +915,10 @@ struct obj *obj;
     if (m_shot.n > 1 && m_shot.o == obj->otyp) {
         /* "the Nth arrow"; value will eventually be passed to an() or
            The(), both of which correctly handle this "the " prefix */
+/*JP
         Sprintf(tmpbuf, "the %d%s ", m_shot.i, ordin(m_shot.i));
+*/
+        Sprintf(tmpbuf, "%d%s\96Ú\82Ì", m_shot.i, numeral(obj));
         onm = strprepend(onm, tmpbuf);
     }
     return onm;
@@ -632,6 +929,7 @@ boolean
 the_unique_obj(obj)
 struct obj *obj;
 {
+#if 0 /*JP*/
     boolean known = (obj->known || iflags.override_ID);
 
     if (!obj->dknown && !iflags.override_ID)
@@ -641,6 +939,9 @@ struct obj *obj;
     else
         return (boolean) (objects[obj->otyp].oc_unique
                           && (known || obj->otyp == AMULET_OF_YENDOR));
+#else
+    return FALSE;
+#endif
 }
 
 /* should monster type be prefixed with "the"? (mostly used for corpses) */
@@ -686,34 +987,65 @@ char *prefix;
     if (obj->oeroded && !iscrys) {
         switch (obj->oeroded) {
         case 2:
+/*JP
             Strcat(prefix, "very ");
+*/
+            Strcat(prefix, "\82Æ\82Ä\82à");
             break;
         case 3:
+/*JP
             Strcat(prefix, "thoroughly ");
+*/
+            Strcat(prefix, "\82©\82È\82è");
             break;
         }
+/*JP
         Strcat(prefix, is_rustprone(obj) ? "rusty " : "burnt ");
+*/
+        Strcat(prefix, is_rustprone(obj) ? "\8eK\82Ñ\82½" : "\8f\9d\82Â\82¢\82½");
     }
     if (obj->oeroded2 && !iscrys) {
         switch (obj->oeroded2) {
         case 2:
+/*JP
             Strcat(prefix, "very ");
+*/
+            Strcat(prefix, "\82Æ\82Ä\82à");
             break;
         case 3:
+/*JP
             Strcat(prefix, "thoroughly ");
+*/
+            Strcat(prefix, "\82©\82È\82è");
             break;
         }
+/*JP
         Strcat(prefix, is_corrodeable(obj) ? "corroded " : "rotted ");
+*/
+        Strcat(prefix, is_corrodeable(obj) ? "\95\85\90H\82µ\82½" : "\95\85\82Á\82½");
     }
     if (rknown && obj->oerodeproof)
         Strcat(prefix, iscrys
+/*JP
                           ? "fixed "
+*/
+                          ? "\88À\92è\82µ\82½"
                           : is_rustprone(obj)
+/*JP
                              ? "rustproof "
+*/
+                             ? "\8eK\82Ñ\82È\82¢"
                              : is_corrodeable(obj)
+#if 0 /*JP*/
                                 ? "corrodeproof " /* "stainless"? */
+#else
+                                ? "\95\85\90H\82µ\82È\82¢" /* "stainless"? */
+#endif
                                 : is_flammable(obj)
+/*JP
                                    ? "fireproof "
+*/
+                                   ? "\94R\82¦\82È\82¢"
                                    : "");
 }
 
@@ -730,6 +1062,9 @@ boolean with_price;
                                 the start of prefix instead of the
                                 end (Strcat is used on the end) */
     register char *bp = xname(obj);
+#if 1 /*JP*//*\8f\87\8f\98\93ü\82ê\91Ö\82¦\82É\8eg\82¤*/
+    char preprefix[PREFIX];
+#endif
 
     if (iflags.override_ID) {
         known = cknown = bknown = lknown = TRUE;
@@ -746,23 +1081,56 @@ boolean with_price;
      * combining both into one function taking a parameter.
      */
     /* must check opoisoned--someone can have a weirdly-named fruit */
+#if 0 /*JP*/
     if (!strncmp(bp, "poisoned ", 9) && obj->opoisoned) {
         bp += 9;
         ispoisoned = TRUE;
     }
+#else
+    if (!strncmp(bp, "\93Å\82Ì\93h\82ç\82ê\82½", 12) && obj->opoisoned) {
+        bp += 12;
+        ispoisoned = TRUE;
+    }
+#endif
+#if 1 /*JP*/
+    /* JP
+     *\81u\8eq\94L\82Ì\82½\82Ü\82Æ\96¼\82Ã\82¯\82ç\82ê\82½\8e\80\91Ì\81v\82æ\82è\81u\82½\82Ü\82Æ\96¼\82Ã\82¯\82ç\82ê\82½\8eq\94L\82Ì\8e\80\91Ì\81v
+     *  \82Ì\82Ù\82¤\82ª\8e©\91R\82Å\82 \82é\81D
+     */
+    {
+        char *tp;
+        preprefix[0] = '\0';
+        if((tp = strstri(bp, "\96¼\82Ã\82¯\82ç\82ê\82½")) != NULL){
+            tp += 12; /* \81u\96¼\82Ã\82¯\82ç\82ê\82½\81v*/
+            strncpy(preprefix, bp, tp - bp);
+            preprefix[tp - bp] = '\0';
+            bp = tp;
+        }
+        Strcpy(prefix, "");
+    }
+#endif
 
     if (obj->quan != 1L) {
+#if 0 /*JP*/
         Sprintf(prefix, "%ld ", obj->quan);
+#else /* \93ú\96{\8cê\82Æ\82µ\82Ä\82Í\90\94\8e\8c\82ª\82È\82¢\82Ì\82Í\95s\8e©\91R */
+        Sprintf(prefix, "%ld%s\82Ì", obj->quan, numeral(obj));
+#endif
     } else if (obj->otyp == CORPSE) {
         /* skip article prefix for corpses [else corpse_xname()
            would have to be taught how to strip it off again] */
         *prefix = '\0';
+#if 0 /*JP*/ /* \8a¥\8e\8c\82Í\95s\97v */
     } else if (obj_is_pname(obj) || the_unique_obj(obj)) {
         if (!strncmpi(bp, "the ", 4))
             bp += 4;
         Strcpy(prefix, "the ");
     } else {
         Strcpy(prefix, "a ");
+#else /*prefix\82Ì\8f\89\8aú\89»*/
+    } else {
+        Strcpy(prefix, "");
+#endif
     }
 
     /* "empty" goes at the beginning, but item count goes at the end */
@@ -778,7 +1146,10 @@ boolean with_price;
              /* not bag of tricks: empty if container which has no contents */
              : (Is_container(obj) || obj->otyp == STATUE)
             && !Has_contents(obj)))
+/*JP
         Strcat(prefix, "empty ");
+*/
+        Strcat(prefix, "\8bó\82Ì");
 
     if (bknown && obj->oclass != COIN_CLASS
         && (obj->otyp != POT_WATER || !objects[POT_WATER].oc_name_known
@@ -787,9 +1158,15 @@ boolean with_price;
          * always allow "uncursed potion of water"
          */
         if (obj->cursed)
+/*JP
             Strcat(prefix, "cursed ");
+*/
+            Strcat(prefix, "\8eô\82í\82ê\82½");
         else if (obj->blessed)
+/*JP
             Strcat(prefix, "blessed ");
+*/
+            Strcat(prefix, "\8fj\95\9f\82³\82ê\82½");
         else if (!iflags.implicit_uncursed
             /* For most items with charges or +/-, if you know how many
              * charges are left or what the +/- is, then you must have
@@ -810,20 +1187,35 @@ boolean with_price;
                      && obj->otyp != FAKE_AMULET_OF_YENDOR
                      && obj->otyp != AMULET_OF_YENDOR
                      && !Role_if(PM_PRIEST)))
+/*JP
             Strcat(prefix, "uncursed ");
+*/
+            Strcat(prefix, "\8eô\82í\82ê\82Ä\82¢\82È\82¢");
     }
 
     if (lknown && Is_box(obj)) {
         if (obj->obroken)
+/*JP
             Strcat(prefix, "unlockable ");
+*/
+            Strcat(prefix, "\8c®\82Ì\89ó\82ê\82½");
         else if (obj->olocked)
+/*JP
             Strcat(prefix, "locked ");
+*/
+            Strcat(prefix, "\8c®\82Ì\8a|\82©\82Á\82½");
         else
+/*JP
             Strcat(prefix, "unlocked ");
+*/
+            Strcat(prefix, "\8c®\82Ì\8a|\82©\82Á\82Ä\82¢\82È\82¢");
     }
 
     if (obj->greased)
+/*JP
         Strcat(prefix, "greased ");
+*/
+        Strcat(prefix, "\96û\82Ì\93h\82ç\82ê\82½");
 
     if (cknown && Has_contents(obj)) {
         /* we count all objects (obj->quantity); perhaps we should
@@ -833,18 +1225,28 @@ boolean with_price;
            when there are 2 scrolls plus 1000 gold pieces */
         long itemcount = count_contents(obj, FALSE, FALSE, TRUE);
 
+#if 0 /*JP*/
         Sprintf(eos(bp), " containing %ld item%s", itemcount,
                 plur(itemcount));
+#else
+        Sprintf(eos(bp), "(%ld\8cÂ\93ü\82Á\82Ä\82¢\82é)", itemcount);
+#endif
     }
 
     switch (obj->oclass) {
     case AMULET_CLASS:
         if (obj->owornmask & W_AMUL)
+/*JP
             Strcat(bp, " (being worn)");
+*/
+            Strcat(bp, "(\90g\82É\82Â\82¯\82Ä\82¢\82é)");
         break;
     case WEAPON_CLASS:
         if (ispoisoned)
+/*JP
             Strcat(prefix, "poisoned ");
+*/
+            Strcat(prefix, "\93Å\82Ì\93h\82ç\82ê\82½");
     plus:
         add_erosion_words(obj, prefix);
         if (known) {
@@ -854,38 +1256,67 @@ boolean with_price;
         break;
     case ARMOR_CLASS:
         if (obj->owornmask & W_ARMOR)
+/*JP
             Strcat(bp, (obj == uskin) ? " (embedded in your skin)"
+*/
+            Strcat(bp, (obj == uskin) ? "(\94§\82É\96\84\82ß\82±\82Ü\82ê\82Ä\82¢\82é)"
+/*JP
                                       : " (being worn)");
+*/
+                                      : "(\90g\82É\82Â\82¯\82Ä\82¢\82é)");
         goto plus;
     case TOOL_CLASS:
         /* weptools already get this done when we go to the +n code */
         if (!is_weptool(obj))
             add_erosion_words(obj, prefix);
         if (obj->owornmask & (W_TOOL /* blindfold */ | W_SADDLE)) {
+/*JP
             Strcat(bp, " (being worn)");
+*/
+            Strcat(bp, "(\90g\82É\82Â\82¯\82Ä\82¢\82é)");
             break;
         }
         if (obj->otyp == LEASH && obj->leashmon != 0) {
+/*JP
             Strcat(bp, " (in use)");
+*/
+            Strcat(bp, "(\8c\8b\82Ñ\82Â\82¯\82Ä\82¢\82é)");
             break;
         }
         if (is_weptool(obj))
             goto plus;
         if (obj->otyp == CANDELABRUM_OF_INVOCATION) {
+#if 0 /*JP*/
             if (!obj->spe)
                 Strcpy(tmpbuf, "no");
             else
                 Sprintf(tmpbuf, "%d", obj->spe);
             Sprintf(eos(bp), " (%s candle%s%s)", tmpbuf, plur(obj->spe),
                     !obj->lamplit ? " attached" : ", lit");
+#else
+            if(!obj->spe)
+                Sprintf(eos(bp), "(\88ê\96{\82à\8eæ\82è\82Â\82¯\82ç\82ê\82Ä\82¢\82È\82¢)");
+            else {
+                if(!obj->lamplit)
+                  Sprintf(eos(bp), "(%d\96{\8eæ\82è\82Â\82¯\82ç\82ê\82Ä\82¢\82é)", obj->spe);
+                else
+                  Sprintf(eos(bp), "(%d\96{\8cõ\82Á\82Ä\82¢\82é)", obj->spe);
+            }
+#endif
             break;
         } else if (obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP
                    || obj->otyp == BRASS_LANTERN || Is_candle(obj)) {
             if (Is_candle(obj)
                 && obj->age < 20L * (long) objects[obj->otyp].oc_cost)
+/*JP
                 Strcat(prefix, "partly used ");
+*/
+                Strcat(prefix, "\8eg\82¢\82³\82µ\82Ì");
             if (obj->lamplit)
+/*JP
                 Strcat(bp, " (lit)");
+*/
+                Strcat(bp, "(\8cõ\82Á\82Ä\82¢\82é)");
             break;
         }
         if (objects[obj->otyp].oc_charged)
@@ -895,34 +1326,57 @@ boolean with_price;
         add_erosion_words(obj, prefix);
     charges:
         if (known)
+/*JP
             Sprintf(eos(bp), " (%d:%d)", (int) obj->recharged, obj->spe);
+*/
+            Sprintf(eos(bp), "(%d:%d)", (int) obj->recharged, obj->spe);
         break;
     case POTION_CLASS:
         if (obj->otyp == POT_OIL && obj->lamplit)
+/*JP
             Strcat(bp, " (lit)");
+*/
+            Strcat(bp, "(\8cõ\82Á\82Ä\82¢\82é)");
         break;
     case RING_CLASS:
         add_erosion_words(obj, prefix);
     ring:
         if (obj->owornmask & W_RINGR)
+/*JP
             Strcat(bp, " (on right ");
+*/
+            Strcat(bp, "(\89E");
         if (obj->owornmask & W_RINGL)
+/*JP
             Strcat(bp, " (on left ");
+*/
+            Strcat(bp, "(\8d¶");
         if (obj->owornmask & W_RING) {
             Strcat(bp, body_part(HAND));
             Strcat(bp, ")");
         }
         if (known && objects[obj->otyp].oc_charged) {
+#if 1 /*JP*/
+            Strcat(prefix, " ");
+#endif
             Strcat(prefix, sitoa(obj->spe));
             Strcat(prefix, " ");
         }
         break;
     case FOOD_CLASS:
         if (obj->oeaten)
+/*JP
             Strcat(prefix, "partly eaten ");
+*/
+            Strcat(prefix, "\90H\82×\82©\82¯\82Ì");
         if (obj->otyp == CORPSE) {
+#if 0 /*JP*/
             Sprintf(prefix, "%s ",
                     corpse_xname(obj, prefix, CXN_ARTICLE | CXN_NOCORPSE));
+#else
+            Sprintf(prefix, "%s\82Ì",
+                    corpse_xname(obj, prefix, CXN_ARTICLE | CXN_NOCORPSE));
+#endif
         } else if (obj->otyp == EGG) {
 #if 0 /* corpses don't tell if they're stale either */
             if (known && stale_egg(obj))
@@ -930,10 +1384,18 @@ boolean with_price;
 #endif
             if (omndx >= LOW_PM
                 && (known || (mvitals[omndx].mvflags & MV_KNOWS_EGG))) {
+#if 0 /*JP*/
                 Strcat(prefix, mons[omndx].mname);
                 Strcat(prefix, " ");
+#else
+                Strcat(prefix, mons[omndx].mname);
+                Strcat(prefix, "\82Ì");
+#endif
                 if (obj->spe)
+/*JP
                     Strcat(bp, " (laid by you)");
+*/
+                    Strcat(bp, "(\82 \82È\82½\82ª\8eY\82ñ\82¾)");
             }
         }
         if (obj->otyp == MEAT_RING)
@@ -943,34 +1405,52 @@ boolean with_price;
     case CHAIN_CLASS:
         add_erosion_words(obj, prefix);
         if (obj->owornmask & W_BALL)
+/*JP
             Strcat(bp, " (chained to you)");
+*/
+            Strcat(bp, "(\82 \82È\82½\82É\8cq\82ª\82ê\82Ä\82¢\82é)");
         break;
     }
 
     if ((obj->owornmask & W_WEP) && !mrg_to_wielded) {
         if (obj->quan != 1L) {
+/*JP
             Strcat(bp, " (wielded)");
+*/
+            Strcat(bp, "(\91\95\94õ\82µ\82Ä\82¢\82é)");
         } else {
             const char *hand_s = body_part(HAND);
 
             if (bimanual(obj))
                 hand_s = makeplural(hand_s);
+/*JP
             Sprintf(eos(bp), " (weapon in %s)", hand_s);
+*/
+            Sprintf(eos(bp), "(%s\82É\82µ\82Ä\82¢\82é)", hand_s);
 
             if (warn_obj_cnt && obj == uwep && (EWarn_of_mon & W_WEP) != 0L) {
                 /* presumably can be felt when blind */
-                Strcat(bp, " (glowing");
+#if 0 /*JP*/
+                Strcat(bp, " (");
                 if (!Blind)
-                    Sprintf(eos(bp), " %s", glow_color(obj->oartifact));
-                Strcat(bp, ")");
+                    Sprintf(eos(bp), "%s\90F\82É", glow_color(obj->oartifact));
+                Strcat(bp, "\8bP\82¢\82Ä\82¢\82é)");
+#else
+#endif
             }
         }
     }
     if (obj->owornmask & W_SWAPWEP) {
         if (u.twoweap)
+/*JP
             Sprintf(eos(bp), " (wielded in other %s)", body_part(HAND));
+*/
+            Sprintf(eos(bp), "(\8d¶%s\82É\82µ\82Ä\82¢\82é)", body_part(HAND));
         else
+/*JP
             Strcat(bp, " (alternate weapon; not wielded)");
+*/
+            Strcat(bp, "(\97\\94õ\82Ì\95\90\8aí;\91\95\94õ\82µ\82Ä\82¢\82È\82¢)");
     }
     if (obj->owornmask & W_QUIVER) {
         switch (obj->oclass) {
@@ -978,16 +1458,25 @@ boolean with_price;
             if (is_ammo(obj)) {
                 if (objects[obj->otyp].oc_skill == -P_BOW) {
                     /* Ammo for a bow */
+/*JP
                     Strcat(bp, " (in quiver)");
+*/
+                    Strcat(bp, "(\96î\93\9b\82É\93ü\82Á\82Ä\82¢\82é)");
                     break;
                 } else {
                     /* Ammo not for a bow */
+/*JP
                     Strcat(bp, " (in quiver pouch)");
+*/
+                    Strcat(bp, "(\92e\93ü\82ê\82É\93ü\82Á\82Ä\82¢\82é)");
                     break;
                 }
             } else {
                 /* Weapons not considered ammo */
+/*JP
                 Strcat(bp, " (at the ready)");
+*/
+                Strcat(bp, "(\8f\80\94õ\82µ\82Ä\82¢\82é)");
                 break;
             }
         /* Small things and ammo not for a bow */
@@ -996,10 +1485,16 @@ boolean with_price;
         case WAND_CLASS:
         case COIN_CLASS:
         case GEM_CLASS:
+/*JP
             Strcat(bp, " (in quiver pouch)");
+*/
+            Strcat(bp, "(\92e\93ü\82ê\82É\93ü\82Á\82Ä\82¢\82é)");
             break;
         default: /* odd things */
+/*JP
             Strcat(bp, " (at the ready)");
+*/
+            Strcat(bp, "(\8f\80\94õ\82µ\82Ä\82¢\82é)");
         }
     }
     if (!iflags.suppress_price && is_unpaid(obj)) {
@@ -1014,6 +1509,7 @@ boolean with_price;
         if (price > 0)
             Sprintf(eos(bp), " (%ld %s)", price, currency(price));
     }
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
     if (!strncmp(prefix, "a ", 2)
         && index(vowels, *(prefix + 2) ? *(prefix + 2) : *bp)
         && (*(prefix + 2)
@@ -1023,13 +1519,19 @@ boolean with_price;
         Strcpy(prefix, "an ");
         Strcpy(prefix + 3, tmpbuf + 2);
     }
+#endif
 
     /* show weight for items (debug tourist info)
      * aum is stolen from Crawl's "Arbitrary Unit of Measure" */
     if (wizard) {
         Sprintf(eos(bp), " (%d aum)", obj->owt);
     }
+#if 0 /*JP*/
     bp = strprepend(bp, prefix);
+#else /*JP:\81u\96¼\95t\82¯\82ç\82ê\82½\81v\82ð\96ß\82·*/
+    Strcat(preprefix, prefix);
+    bp = strprepend(bp, preprefix);
+#endif
     return bp;
 }
 
@@ -1106,12 +1608,18 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
     const char *mname;
 
     if (omndx == NON_PM) { /* paranoia */
+/*JP
         mname = "thing";
+*/
+        mname = "\89½\82©";
         /* [Possible enhancement:  check whether corpse has monster traits
             attached in order to use priestname() for priests and minions.] */
     } else if (omndx == PM_ALIGNED_PRIEST) {
         /* avoid "aligned priest"; it just exposes internal details */
+/*JP
         mname = "priest";
+*/
+        mname = "\91m\97µ";
     } else {
         mname = mons[omndx].mname;
         if (the_unique_pm(&mons[omndx]) || type_is_pname(&mons[omndx])) {
@@ -1136,8 +1644,10 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
        Name causes it to assume a personal name and return Name as-is;
        that's usually the behavior wanted, but here we need to force "the"
        to precede capitalized unique monsters (pnames are handled above) */
+#if 0 /*JP*//*\93ú\96{\8cê\82É\92è\8a¥\8e\8c\82Í\95s\97v*/
     if (the_prefix)
         Strcat(nambuf, "the ");
+#endif
 
     if (!adjective || !*adjective) {
         /* normal case:  newt corpse */
@@ -1145,9 +1655,15 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
     } else {
         /* adjective positioning depends upon format of monster name */
         if (possessive) /* Medusa's cursed partly eaten corpse */
+/*JP
             Sprintf(eos(nambuf), "%s %s", mname, adjective);
+*/
+            Sprintf(eos(nambuf), "%s%s", mname, adjective);
         else /* cursed partly eaten troll corpse */
+/*JP
             Sprintf(eos(nambuf), "%s %s", adjective, mname);
+*/
+            Sprintf(eos(nambuf), "%s%s", adjective, mname);
         /* in case adjective has a trailing space, squeeze it out */
         mungspaces(nambuf);
         /* doname() might include a count in the adjective argument;
@@ -1157,12 +1673,16 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
     }
 
     if (!omit_corpse) {
+#if 0 /*JP*/
         Strcat(nambuf, " corpse");
         /* makeplural(nambuf) => append "s" to "corpse" */
         if (otmp->quan > 1L && !ignore_quan) {
             Strcat(nambuf, "s");
             any_prefix = FALSE; /* avoid "a newt corpses" */
         }
+#else
+        Strcat(nambuf, "\82Ì\8e\80\91Ì");
+#endif
     }
 
     /* it's safe to overwrite our nambuf after an() has copied
@@ -1244,13 +1764,18 @@ struct obj *obj;
            devnull tournament, suppress player supplied fruit names because
            those can be used to fake other objects and dungeon features */
         buf = nextobuf();
+/*JP
         Sprintf(buf, "deadly slime mold%s", plur(obj->quan));
+*/
+        Strcpy(buf, "\8aë\8c¯\82È\82Ë\82Î\82Ë\82Î\83J\83r");
     } else {
         buf = xname(obj);
     }
     /* apply an article if appropriate; caller should always use KILLED_BY */
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
     if (obj->quan == 1L && !strstri(buf, "'s ") && !strstri(buf, "s' "))
         buf = (obj_is_pname(obj) || the_unique_obj(obj)) ? the(buf) : an(buf);
+#endif
 
     objects[obj->otyp].oc_name_known = save_ocknown;
     objects[obj->otyp].oc_uname = save_ocuname;
@@ -1369,6 +1894,7 @@ register const char *str;
 {
     char *buf = nextobuf();
 
+#if 0 /*JP*//*\95s\92è\8a¥\8e\8c\82Í\95s\97v*/
     buf[0] = '\0';
 
     if (strncmpi(str, "the ", 4) && strcmp(str, "molten lava")
@@ -1382,6 +1908,9 @@ register const char *str;
     }
 
     Strcat(buf, str);
+#else /*\92P\82É\83R\83s\81[*/
+    Strcpy(buf, str);
+#endif
     return buf;
 }
 
@@ -1391,7 +1920,9 @@ const char *str;
 {
     char *tmp = an(str);
 
+#if 0 /*JP*//*\91å\95\8e\9a\89»\82µ\82È\82¢*/
     *tmp = highc(*tmp);
+#endif
     return tmp;
 }
 
@@ -1404,6 +1935,7 @@ the(str)
 const char *str;
 {
     char *buf = nextobuf();
+#if 0 /*JP*//*\92è\8a¥\8e\8c\82Í\95s\97v*/
     boolean insert_the = FALSE;
 
     if (!strncmpi(str, "the ", 4)) {
@@ -1445,6 +1977,9 @@ const char *str;
         buf[0] = '\0';
     Strcat(buf, str);
 
+#else /*\92P\82É\83R\83s\81[*/
+    Strcpy(buf, str);
+#endif /*JP*/
     return buf;
 }
 
@@ -1454,10 +1989,22 @@ const char *str;
 {
     char *tmp = the(str);
 
+#if 0 /*JP*//*\91å\95\8e\9a\89»\82µ\82È\82¢*/
     *tmp = highc(*tmp);
+#endif
     return tmp;
 }
 
+#if 1 /*JP*/
+char *
+aobjnam(otmp, verb)
+register struct obj *otmp;
+register const char *verb;
+{
+    return xname(otmp);
+}
+
+#else
 /* returns "count cxname(otmp)" or just cxname(otmp) if count == 1 */
 char *
 aobjnam(otmp, verb)
@@ -1477,6 +2024,7 @@ const char *verb;
     }
     return bp;
 }
+#endif /*JP*/
 
 /* combine yname and aobjnam eg "your count cxname(otmp)" */
 char *
@@ -1506,7 +2054,9 @@ const char *verb;
 {
     register char *s = yobjnam(obj, verb);
 
+#if 0 /*JP*/
     *s = highc(*s);
+#endif
     return s;
 }
 
@@ -1518,10 +2068,12 @@ const char *verb;
 {
     char *bp = The(xname(otmp));
 
+#if 0 /*JP*//*\93ú\96{\8cê\82É\82Í\8eO\92P\8c»\82Ìs\82Í\82È\82¢*/
     if (verb) {
         Strcat(bp, " ");
         Strcat(bp, otense(otmp, verb));
     }
+#endif /*JP*/
     return bp;
 }
 
@@ -1563,7 +2115,9 @@ struct obj *obj;
 {
     char *s = yname(obj);
 
+#if 0 /*JP*/
     *s = highc(*s);
+#endif
     return s;
 }
 
@@ -1577,9 +2131,15 @@ struct obj *obj;
 {
     char *outbuf = nextobuf();
     char *s = shk_your(outbuf, obj); /* assert( s == outbuf ); */
+#if 0 /*JP*/
     int space_left = BUFSZ - 1 - strlen(s);
 
     return strncat(s, minimal_xname(obj), space_left);
+#else
+    int space_left = BUFSZ - strlen(s);
+
+    return strncat(s, minimal_xname(obj), space_left);
+#endif
 }
 
 /* capitalized variant of ysimple_name() */
@@ -1589,7 +2149,9 @@ struct obj *obj;
 {
     char *s = ysimple_name(obj);
 
+#if 0 /*JP*/
     *s = highc(*s);
+#endif
     return s;
 }
 
@@ -1600,8 +2162,10 @@ struct obj *obj;
 {
     char *simpleoname = minimal_xname(obj);
 
+#if 0 /*JP*//*\93ú\96{\8cê\82Í\92P\95¡\93¯\8c^*/
     if (obj->quan != 1L)
         simpleoname = makeplural(simpleoname);
+#endif
     return simpleoname;
 }
 
@@ -1648,8 +2212,10 @@ struct obj *obj;
     if (obj->oartifact) {
         outbuf = nextobuf();
         Strcpy(outbuf, artiname(obj->oartifact));
+#if 0 /*JP*/
         if (!strncmp(outbuf, "The ", 4))
             outbuf[0] = lowc(outbuf[0]);
+#endif
     } else {
         outbuf = xname(obj);
     }
@@ -1681,8 +2247,10 @@ const char *verb;
      * if the result of xname(otmp) would be plural.  Don't bother
      * recomputing xname(otmp) at this time.
      */
+#if 0 /*JP*//*\93ú\96{\8cê\82É\82Í\8eO\92P\8c»\82Ìs\82Í\82È\82¢*/
     if (!is_plural(otmp))
         return vtense((char *) 0, verb);
+#endif /*JP*/
 
     buf = nextobuf();
     Strcpy(buf, verb);
@@ -1708,6 +2276,7 @@ vtense(subj, verb)
 register const char *subj;
 register const char *verb;
 {
+#if 0 /*JP*//*\93ú\96{\8cê\82É\82Í\8eO\92P\8c»\82Ìs\82Í\82È\82¢*/
     char *buf = nextobuf(), *bspot;
     int len, ltmp;
     const char *sp, *spot;
@@ -1795,6 +2364,12 @@ sing:
         Strcasecpy(bspot + 1, "s");
     }
 
+#else
+    char *buf;
+
+    buf = nextobuf();
+    Strcpy(buf, verb);
+#endif /*JP*/
     return buf;
 }
 
@@ -1937,6 +2512,7 @@ char *
 makeplural(oldstr)
 const char *oldstr;
 {
+#if 0 /*JP*//*\93ú\96{\8cê\82Í\92P\95¡\93¯\8c^*/
     register char *spot;
     char lo_c, *str = nextobuf();
     const char *excess = (char *) 0;
@@ -2083,6 +2659,10 @@ const char *oldstr;
 bottom:
     if (excess)
         Strcat(str, excess);
+#else /*JP*/
+    char *str = nextobuf();
+    Strcpy(str, oldstr);
+#endif
     return str;
 }
 
@@ -2102,6 +2682,7 @@ char *
 makesingular(oldstr)
 const char *oldstr;
 {
+#if 0 /*JP*//*\93ú\96{\8cê\82Í\92P\95¡\93¯\8c^*/
     register char *p, *bp;
     const char *excess = 0;
     char *str = nextobuf();
@@ -2204,6 +2785,11 @@ bottom:
         Strcat(bp, excess);
 
     return bp;
+#else /*JP*/
+    char *str = nextobuf();
+    Strcpy(str, oldstr);
+    return str;
+#endif
 }
 
 /* compare user string against object name string using fuzzy matching */
@@ -2404,6 +2990,7 @@ schar skill;
  * if not an object return &zeroobj; if an error (no matching object),
  * return null.
  */
+
 struct obj *
 readobjnam(bp, no_wish)
 register char *bp;
@@ -2422,6 +3009,10 @@ struct obj *no_wish;
     struct fruit *f;
     int ftype = context.current_fruit;
     char fruitbuf[BUFSZ];
+#if 1 /*JP*/
+    char buf[BUFSZ];
+    char pfx[BUFSZ];
+#endif
     /* Fruits may not mess up the ability to wish for real objects (since
      * you can leave a fruit in a bones file and it will be added to
      * another person's game), so they must be checked for last, after
@@ -2459,8 +3050,12 @@ struct obj *no_wish;
     (void) mungspaces(bp);
     /* allow wishing for "nothing" to preserve wishless conduct...
        [now requires "wand of nothing" if that's what was really wanted] */
+#if 0 /*JP*/
     if (!strcmpi(bp, "nothing") || !strcmpi(bp, "nil")
         || !strcmpi(bp, "none"))
+#else
+    if (!strcmpi(bp, "\82È\82µ") || !strcmpi(bp, "\96³\82µ"))
+#endif
         return no_wish;
     /* save the [nearly] unmodified choice string */
     Strcpy(fruitbuf, bp);
@@ -2489,26 +3084,54 @@ struct obj *no_wish;
             while (*bp == ' ')
                 bp++;
             l = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "blessed ", l = 8)
                    || !strncmpi(bp, "holy ", l = 5)) {
+#else
+        } else if (!strncmpi(bp, "\8fj\95\9f\82³\82ê\82½", l = 10)) {
+#endif
             blessed = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "moist ", l = 6)
                    || !strncmpi(bp, "wet ", l = 4)) {
+#else
+        } else if (!strncmpi(bp, "\8e¼\82Á\82½", l = 6)
+                   || !strncmpi(bp, "\94G\82ê\82½", l = 6)) {
+#endif
+#if 0 /*JP*/
             if (!strncmpi(bp, "wet ", 4))
+#else
+            if (!strncmpi(bp, "\94G\82ê\82½", 4))
+#endif
                 wetness = rn2(3) + 3;
             else
                 wetness = rnd(2);
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "cursed ", l = 7)
                    || !strncmpi(bp, "unholy ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\8eô\82í\82ê\82½", l = 8)) {
+#endif
             iscursed = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "uncursed ", l = 9)) {
+#else
+        } else if (!strncmpi(bp, "\8eô\82í\82ê\82Ä\82¢\82È\82¢", l = 9)) {
+#endif
             uncursed = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "rustproof ", l = 10)
                    || !strncmpi(bp, "erodeproof ", l = 11)
                    || !strncmpi(bp, "corrodeproof ", l = 13)
                    || !strncmpi(bp, "fixed ", l = 6)
                    || !strncmpi(bp, "fireproof ", l = 10)
                    || !strncmpi(bp, "rotproof ", l = 9)) {
+#else
+        } else if (!strncmpi(bp, "\8eK\82Ñ\82È\82¢", l = 8)
+                   || !strncmpi(bp, "\95\85\90H\82µ\82È\82¢", l = 10)
+                   || !strncmpi(bp, "\88À\92è\82µ\82½", l = 8)
+                   || !strncmpi(bp, "\94R\82¦\82È\82¢", l = 8)) {
+#endif
             erodeproof = 1;
         } else if (!strncmpi(bp, "lit ", l = 4)
                    || !strncmpi(bp, "burning ", l = 8)) {
@@ -3483,7 +4106,10 @@ typfnd:
         artifact_exists(otmp, safe_oname(otmp), FALSE);
         obfree(otmp, (struct obj *) 0);
         otmp = &zeroobj;
+/*JP
         pline("For a moment, you feel %s in your %s, but it disappears!",
+*/
+        pline("\88ê\8fu%s\82ª%s\82Ì\92\86\82É\82 \82é\82æ\82¤\82È\8a´\82\82ª\82µ\82½\82ª\81C\82·\82®\82É\8fÁ\82¦\82³\82Á\82½\81I",
               something, makeplural(body_part(HAND)));
     }
 
@@ -3562,18 +4188,33 @@ struct obj *cloak;
     if (cloak) {
         switch (cloak->otyp) {
         case ROBE:
+/*JP
             return "robe";
+*/
+            return "\83\8d\81[\83u";
         case MUMMY_WRAPPING:
+/*JP
             return "wrapping";
+*/
+            return "\95ï\91Ñ";
         case ALCHEMY_SMOCK:
             return (objects[cloak->otyp].oc_name_known && cloak->dknown)
+/*JP
                        ? "smock"
+*/
+                       ? "\83X\83\82\83b\83N"
+/*JP
                        : "apron";
+*/
+                       : "\83G\83v\83\8d\83\93";
         default:
             break;
         }
     }
+/*JP
     return "cloak";
+*/
+    return "\83N\83\8d\81[\83N";
 }
 
 /* helm vs hat for messages */
@@ -3593,7 +4234,10 @@ struct obj *helmet;
      *      fedora, cornuthaum, dunce cap       -> hat
      *      all other types of helmets          -> helm
      */
+/*JP
     return (helmet && !is_metallic(helmet)) ? "hat" : "helm";
+*/
+    return (helmet && !is_metallic(helmet)) ? "\96X\8eq" : "\8a\95";
 }
 
 const char *
@@ -3604,10 +4248,16 @@ struct monst *mtmp;
         && mtmp->mappearance != STRANGE_OBJECT) {
         int idx = objects[mtmp->mappearance].oc_descr_idx;
         if (mtmp->mappearance == GOLD_PIECE)
+/*JP
             return "gold";
+*/
+            return "\8bà\89Ý";
         return obj_descr[idx].oc_name;
     }
+/*JP
     return "whatcha-may-callit";
+*/
+    return "\89½\82Æ\82©\82¢\82¤\82à\82Ì";
 }
 
 /*
index 87c4004..d0f9223 100644 (file)
@@ -243,151 +243,373 @@ static struct Comp_Opt {
                * a different format */
     int optflags;
 } compopt[] = {
+/*JP
     { "align", "your starting alignment (lawful, neutral, or chaotic)", 8,
+*/
+    { "align",    "\83Q\81[\83\80\83X\83^\81[\83g\8e\9e\82Ì\91®\90« (lawful, neutral, or chaotic\82Ì\82¢\82¸\82ê\82©)", 8,
       DISP_IN_GAME },
+#if 0 /*JP*/
     { "align_message", "message window alignment", 20, DISP_IN_GAME }, /*WC*/
+#else
+    { "align_message", "\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82Ì\91µ\82¦", 20, DISP_IN_GAME }, /*WC*/
+#endif
+#if 0 /*JP*/
     { "align_status", "status window alignment", 20, DISP_IN_GAME },   /*WC*/
+#else
+    { "align_status", "\8fó\8bµ\83E\83B\83\93\83h\83E\82Ì\91µ\82¦", 20, DISP_IN_GAME }, /*WC*/
+#endif
+/*JP
     { "altkeyhandler", "alternate key handler", 20, DISP_IN_GAME },
+*/
+    { "altkeyhandler", "ALT\83L\81[\83n\83\93\83h\83\89", 20, DISP_IN_GAME },
 #ifdef BACKWARD_COMPAT
+/*JP
     { "boulder", "deprecated (use S_boulder in sym file instead)", 1,
+*/
+    { "boulder",  "\8b\90\8aâ\82ð\95\\8e¦\82·\82é\83V\83\93\83{\83\8b\95\8e\9a", 1,
       SET_IN_FILE },
 #endif
+/*JP
     { "catname", "the name of your (first) cat (e.g., catname:Tabby)",
+*/
+    { "catname",  "\96`\8c¯\82ð\8b\9f\82É\82·\82é(\8dÅ\8f\89\82Ì)\94L\82Ì\96¼\91O (\97á catname:\82½\82Ü)",
       PL_PSIZ, DISP_IN_GAME },
+/*JP
     { "disclose", "the kinds of information to disclose at end of game",
+*/
+    { "disclose", "\83Q\81[\83\80\8fI\97¹\8e\9e\82É\8c©\82é\8fî\95ñ\82Ì\8eí\97Þ",
       sizeof(flags.end_disclose) * 2, SET_IN_GAME },
+/*JP
     { "dogname", "the name of your (first) dog (e.g., dogname:Fang)", PL_PSIZ,
+*/
+    { "dogname",  "\96`\8c¯\82ð\8b\9f\82É\82·\82é(\8dÅ\8f\89\82Ì)\8c¢\82Ì\96¼\91O (\97á dogname:\83|\83`)", PL_PSIZ,
       DISP_IN_GAME },
+/*JP
     { "dungeon", "the symbols to use in drawing the dungeon map",
+*/
+    { "dungeon",  "\83_\83\93\83W\83\87\83\93\82ð\95`\89æ\82·\82é\83V\83\93\83{\83\8b\95\8e\9a",
       MAXDCHARS + 1, SET_IN_FILE },
+/*JP
     { "effects", "the symbols to use in drawing special effects",
+*/
+    { "effects",  "\93Á\8eê\8cø\89Ê\82ð\95`\89æ\82·\82é\83V\83\93\83{\83\8b\95\8e\9a",
       MAXECHARS + 1, SET_IN_FILE },
+/*JP
     { "font_map", "the font to use in the map window", 40,
+*/
+    { "font_map", "\83}\83b\83v\83E\83B\83\93\83h\83E\82É\8eg\97p\82·\82é\83t\83H\83\93\83g", 40,
       DISP_IN_GAME },                                              /*WC*/
+#if 0 /*JP*/
     { "font_menu", "the font to use in menus", 40, DISP_IN_GAME }, /*WC*/
+#else
+    { "font_menu", "\83\81\83j\83\85\81[\82É\8eg\97p\82·\82é\83t\83H\83\93\83g", 40, DISP_IN_GAME }, /*WC*/
+#endif
+/*JP
     { "font_message", "the font to use in the message window", 40,
+*/
+    { "font_message", "\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82É\8eg\97p\82·\82é\83t\83H\83\93\83g", 40,
       DISP_IN_GAME },                                                  /*WC*/
+#if 0 /*JP*/
     { "font_size_map", "the size of the map font", 20, DISP_IN_GAME }, /*WC*/
+#else
+    { "font_size_map", "\83}\83b\83v\83t\83H\83\93\83g\82Ì\83T\83C\83Y", 20, DISP_IN_GAME }, /*WC*/
+#endif
+/*JP
     { "font_size_menu", "the size of the menu font", 20,
+*/
+    { "font_size_menu", "\83\81\83j\83\85\81[\83t\83H\83\93\83g\82Ì\83T\83C\83Y", 20,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "font_size_message", "the size of the message font", 20,
+*/
+    { "font_size_message", "\83\81\83b\83Z\81[\83W\83t\83H\83\93\83g\82Ì\83T\83C\83Y", 20,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "font_size_status", "the size of the status font", 20,
+*/
+    { "font_size_status", "\8fó\8bµ\83t\83H\83\93\83g\82Ì\83T\83C\83Y", 20,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "font_size_text", "the size of the text font", 20,
+*/
+    { "font_size_text", "\83e\83L\83X\83g\83t\83H\83\93\83g\82Ì\83T\83C\83Y", 20,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "font_status", "the font to use in status window", 40,
+*/
+    { "font_status", "\8fó\8bµ\83E\83B\83\93\83h\83E\82É\8eg\97p\82·\82é\83t\83H\83\93\83g", 40,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "font_text", "the font to use in text windows", 40,
+*/
+    { "font_text", "\83e\83L\83X\83g\83E\83B\83\93\83h\83E\82É\8eg\97p\82·\82é\83t\83H\83\93\83g", 40,
       DISP_IN_GAME }, /*WC*/
+/*JP
     { "fruit", "the name of a fruit you enjoy eating", PL_FSIZ, SET_IN_GAME },
+*/
+    { "fruit", "\8dD\95¨\82Ì\89Ê\95¨\82Ì\96¼\91O", PL_FSIZ, SET_IN_GAME },
+/*JP
     { "gender", "your starting gender (male or female)", 8, DISP_IN_GAME },
+*/
+    { "gender", "\83Q\81[\83\80\8aJ\8en\8e\9e\82Ì\90«\95Ê(male \82Ü\82½\82Í female)", 8, DISP_IN_GAME },
+/*JP
     { "horsename", "the name of your (first) horse (e.g., horsename:Silver)",
+*/
+    { "horsename", "\96`\8c¯\82ð\8b\9f\82É\82·\82é(\8dÅ\8f\89\82Ì)\94n\82Ì\96¼\91O (\97á ghoulname:\83V\83\8b\83o\81[)",
       PL_PSIZ, DISP_IN_GAME },
+#if 0 /*JP*/
     { "map_mode", "map display mode under Windows", 20, DISP_IN_GAME }, /*WC*/
+#else
+    { "map_mode", "\83E\83B\83\93\83h\83E\95\\8e¦\8e\9e\82Ì\83}\83b\83v\82Ì\95\\8e¦\83\82\81[\83h", 20, DISP_IN_GAME }, /*WC*/
+#endif
+/*JP
     { "menustyle", "user interface for object selection", MENUTYPELEN,
+*/
+    { "menustyle", "\83I\83u\83W\83F\83N\83g\82ð\91I\91ð\82·\82é\82Æ\82«\82Ì\83\86\81[\83U\81[\83C\83\93\83^\83t\83F\81[\83X", MENUTYPELEN,
       SET_IN_GAME },
+/*JP
     { "menu_deselect_all", "deselect all items in a menu", 4, SET_IN_FILE },
+*/
+    { "menu_deselect_all", "\91S\82Ä\82Ì\83A\83C\83e\83\80\82ð\94ñ\91I\91ð", 4, SET_IN_FILE },
+/*JP
     { "menu_deselect_page", "deselect all items on this page of a menu", 4,
+*/
+    { "menu_deselect_page", "\8c»\8dÝ\95\\8e¦\82³\82ê\82Ä\82¢\82é\83y\81[\83W\82Ì\83A\83C\83e\83\80\82ð\94ñ\91I\91ð", 4,
       SET_IN_FILE },
+/*JP
     { "menu_first_page", "jump to the first page in a menu", 4, SET_IN_FILE },
+*/
+    { "menu_first_page", "\83\81\83j\83\85\81[\82Ì\8dÅ\8f\89\82Ì\83y\81[\83W\82Ö", 4, SET_IN_FILE },
+/*JP
     { "menu_headings", "text attribute for menu headings", 9, SET_IN_GAME },
+*/
+    { "menu_headings", "\8b­\92²\81C\94½\93]\82Ü\82½\82Í\89º\90ü\82Å\8eí\97Þ\82ð\95\\8e¦\82·\82é", 9, SET_IN_GAME },
+/*JP
     { "menu_invert_all", "invert all items in a menu", 4, SET_IN_FILE },
+*/
+    { "menu_invert_all", "\91S\82Ä\82Ì\83A\83C\83e\83\80\82ð\94½\93]", 4, SET_IN_FILE },
+/*JP
     { "menu_invert_page", "invert all items on this page of a menu", 4,
+*/
+    { "menu_invert_page", "\8c»\8dÝ\95\\8e¦\82³\82ê\82Ä\82¢\82é\83y\81[\83W\82Ì\83A\83C\83e\83\80\82ð\94½\93]",
       SET_IN_FILE },
+/*JP
     { "menu_last_page", "jump to the last page in a menu", 4, SET_IN_FILE },
+*/
+    { "menu_last_page", "\83\81\83j\83\85\81[\82Ì\8dÅ\8cã\82Ì\83y\81[\83W\82Ö", 4, SET_IN_FILE },
+/*JP
     { "menu_next_page", "goto the next menu page", 4, SET_IN_FILE },
+*/
+    { "menu_next_page", "\8e\9f\82Ì\83\81\83j\83\85\81[\82Ì\83y\81[\83W\82Ö", 4, SET_IN_FILE },
+/*JP
     { "menu_previous_page", "goto the previous menu page", 4, SET_IN_FILE },
+*/
+    { "menu_previous_page", "\91O\82Ì\83\81\83j\83\85\81[\82Ì\83y\81[\83W\82Ö", 4, SET_IN_FILE },
+/*JP
     { "menu_search", "search for a menu item", 4, SET_IN_FILE },
+*/
+    { "menu_search", "\83\81\83j\83\85\81[\82Ì\8c\9f\8dõ", 4, SET_IN_FILE },
+/*JP
     { "menu_select_all", "select all items in a menu", 4, SET_IN_FILE },
+*/
+    { "menu_select_all", "\91S\82Ä\82Ì\83A\83C\83e\83\80\82ð\91I\91ð", 4, SET_IN_FILE },
+/*JP
     { "menu_select_page", "select all items on this page of a menu", 4,
+*/
+    { "menu_select_page", "\8c»\8dÝ\95\\8e¦\82³\82ê\82Ä\82¢\82é\91S\82Ä\82Ì\83A\83C\83e\83\80\82ð\91I\91ð", 4,
       SET_IN_FILE },
+/*JP
     { "monsters", "the symbols to use for monsters", MAXMCLASSES,
+*/
+    { "monsters", "\83\82\83\93\83X\83^\81[\82É\8eg\97p\82³\82ê\82é\83V\83\93\83{\83\8b\95\8e\9a", MAXMCLASSES,
       SET_IN_FILE },
+/*JP
     { "msghistory", "number of top line messages to save", 5, DISP_IN_GAME },
+*/
+    { "msghistory", "\90æ\93ª\8ds\82É\95\\8e¦\82³\82ê\82½\83\81\83b\83Z\81[\83W\97\9a\97ð\82Ì\95Û\91\90\94", 5, DISP_IN_GAME },
 #ifdef TTY_GRAPHICS
+/*JP
     { "msg_window", "the type of message window required", 1, SET_IN_GAME },
+*/
+    {"msg_window", "\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82Ì\83^\83C\83v\82ð\90Ý\92è",1, SET_IN_GAME },
 #else
+/*JP
     { "msg_window", "the type of message window required", 1, SET_IN_FILE },
+*/
+    {"msg_window", "\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82Ì\83^\83C\83v\82ð\90Ý\92è", 1, SET_IN_FILE },
 #endif
+/*JP
     { "name", "your character's name (e.g., name:Merlin-W)", PL_NSIZ,
+*/
+    { "name", "\82 \82È\82½\82Ì\96¼\91O (\97á name:\83}\81[\83\8a\83\93-W)", PL_NSIZ,
       DISP_IN_GAME },
+/*JP
     { "number_pad", "use the number pad for movement", 1, SET_IN_GAME },
+*/
+    { "number_pad", "\83i\83\93\83o\81[\83p\83b\83h\82ð\8eg\97p\82·\82é", 1, SET_IN_GAME },
+/*JP
     { "objects", "the symbols to use for objects", MAXOCLASSES, SET_IN_FILE },
+*/
+    { "objects",  "\83A\83C\83e\83\80\82É\8eg\97p\82³\82ê\82é\83V\83\93\83{\83\8b\95\8e\9a", MAXOCLASSES, SET_IN_FILE },
+/*JP
     { "packorder", "the inventory order of the items in your pack",
+*/
+    { "packorder", "\94w\95\89\82¢\91Ü\93à\82Ì\95¨\82Ì\8f\87\94Ô",
       MAXOCLASSES, SET_IN_GAME },
 #ifdef CHANGE_COLOR
     { "palette",
 #ifndef WIN32
+/*JP
       "palette (00c/880/-fff is blue/yellow/reverse white)", 15,
+*/
+      "\83p\83\8c\83b\83g (00c/880/-fff\82Í\82»\82ê\82¼\82ê\90Â/\89©/\94½\93]\94\92\82ð\8e¦\82·)", 15,
       SET_IN_GAME },
 #else
+/*JP
       "palette (adjust an RGB color in palette (color-R-G-B)", 15,
+*/
+      "\83p\83\8c\83b\83g (\83p\83\8c\83b\83g\82ÌRGB\90F\82ð\92²\90®\82·\82é (\90F-R-G-B)", 15,
       SET_IN_FILE },
 #endif
 #if defined(MAC)
+/*JP
     { "hicolor", "same as palette, only order is reversed", 15, SET_IN_FILE },
+*/
+    { "hicolor",  "\83p\83\8c\83b\83g\82ª\93¯\82\82Æ\82«\81A\8ew\8e¦\82µ\82½\82à\82Ì\82¾\82¯\94½\93]\82³\82¹\82é", 15, SET_IN_FILE },
 #endif
 #endif
     { "paranoid_confirmation", "extra prompting in certain situations", 28,
       SET_IN_GAME },
+/*JP
     { "pettype", "your preferred initial pet type", 4, DISP_IN_GAME },
+*/
+    { "pettype",  "\82 \82È\82½\82Ì\91I\91ð\82µ\82½\8f\89\8aú\83y\83b\83g\82Ì\8eí\97Þ", 4, DISP_IN_GAME },
+/*JP
     { "pickup_burden", "maximum burden picked up before prompt", 20,
+*/
+    { "pickup_burden",  "\8fE\82¤\82Æ\82«\82É\8dÅ\91å\89×\8fd\82É\82È\82é\8eè\91O\82Å\8am\94F\82·\82é", 20,
       SET_IN_GAME },
+/*JP
     { "pickup_types", "types of objects to pick up automatically",
+*/
+    { "pickup_types", "\8e©\93®\82Å\8fE\82¢\82 \82°\82é\95¨\82Ì\83V\83\93\83{\83\8b",
       MAXOCLASSES, SET_IN_GAME },
     { "pile_limit", "threshold for \"there are many objects here\"", 24,
       SET_IN_GAME },
     { "playmode", "normal play, non-scoring explore mode, or debug mode", 8,
       DISP_IN_GAME },
+/*JP
     { "player_selection", "choose character via dialog or prompts", 12,
+*/
+    { "player_selection", "\83L\83\83\83\89\83N\83^\81[\91I\91ð\82É\83_\83C\83A\83\8d\83O\82â\8am\94F\89æ\96Ê\82ð\8eg\82¤", 12,
       DISP_IN_GAME },
+/*JP
     { "race", "your starting race (e.g., Human, Elf)", PL_CSIZ,
+*/
+    { "race",     "\83Q\81[\83\80\8aJ\8en\8e\9e\82Ì\8eí\91° (\97á Human, Elf)", PL_CSIZ,
       DISP_IN_GAME },
+/*JP
     { "role", "your starting role (e.g., Barbarian, Valkyrie)", PL_CSIZ,
+*/
+    { "role",     "\83Q\81[\83\80\8aJ\8en\8e\9e\82Ì\90E\8bÆ (\97á Barbarian, Valkyrie)", PL_CSIZ,
       DISP_IN_GAME },
+/*JP
     { "runmode", "display frequency when `running' or `travelling'",
+*/
+    { "runmode", "\83g\83\89\83x\83\8b\83R\83}\83\93\83h\93\99\82Å\82Ì\98A\91±\88Ú\93®\8e\9e\82Ì\95`\89æ\95p\93x",
       sizeof "teleport", SET_IN_GAME },
+/*JP
     { "scores", "the parts of the score list you wish to see", 32,
+*/
+    { "scores",   "\83Q\81[\83\80\8fI\97¹\8e\9e\82É\8c©\82é\83X\83R\83A\82Ì\8eí\97Þ", 32,
       SET_IN_GAME },
+/*JP
     { "scroll_amount", "amount to scroll map when scroll_margin is reached",
+*/
+    { "scroll_amount", "scroll_margin\82É\93Í\82¢\82½\82Æ\82«\82Ì\83}\83b\83v\83X\83N\83\8d\81[\83\8b\97Ê",
       20, DISP_IN_GAME }, /*WC*/
+/*JP
     { "scroll_margin", "scroll map when this far from the edge", 20,
+*/
+    { "scroll_margin", "\83}\83b\83v\92[\82©\82ç\82Ì\83}\83b\83v\83X\83N\83\8d\81[\83\8b\8aJ\8en\8b\97\97£", 20,
       DISP_IN_GAME }, /*WC*/
     { "sortloot", "sort object selection lists by description", 4,
       SET_IN_GAME },
 #ifdef MSDOS
+/*JP
     { "soundcard", "type of sound card to use", 20, SET_IN_FILE },
+*/
+    { "soundcard", "\8eg\97p\82µ\82Ä\82¢\82é\83T\83E\83\93\83h\83J\81[\83h\82Ì\8eí\97Þ", 20, SET_IN_FILE },
 #endif
     { "symset", "load a set of display symbols from the symbols file", 70,
       SET_IN_GAME },
     { "roguesymset",
       "load a set of rogue display symbols from the symbols file", 70,
       SET_IN_GAME },
+/*JP
     { "suppress_alert", "suppress alerts about version-specific features", 8,
+*/
+    { "suppress_alert", "\83o\81[\83W\83\87\83\93\8aÔ\82Ì\88á\82¢\82É\8aÖ\82·\82é\8cx\8d\90\83\81\83b\83Z\81[\83W\82Ì\96³\8cø\89»", 8,
       SET_IN_GAME },
+#if 0 /*JP*/
     { "tile_width", "width of tiles", 20, DISP_IN_GAME },   /*WC*/
+#else
+    { "tile_width", "\83^\83C\83\8b\82Ì\95\9d", 20, DISP_IN_GAME }, /*WC*/
+#endif
+#if 0 /*JP*/
     { "tile_height", "height of tiles", 20, DISP_IN_GAME }, /*WC*/
+#else
+    { "tile_height", "\83^\83C\83\8b\82Ì\8d\82\82³", 20, DISP_IN_GAME }, /*WC*/
+#endif
+#if 0 /*JP*/
     { "tile_file", "name of tile file", 70, DISP_IN_GAME }, /*WC*/
+#else
+    { "tile_file", "\83^\83C\83\8b\83t\83@\83C\83\8b\82Ì\96¼\91O", 70, DISP_IN_GAME }, /*WC*/
+#endif
+/*JP
     { "traps", "the symbols to use in drawing traps", MAXTCHARS + 1,
+*/
+    { "traps", "ã©\82ð\95`\89æ\82·\82é\83V\83\93\83{\83\8b\95\8e\9a", MAXTCHARS + 1,
       SET_IN_FILE },
+/*JP
     { "vary_msgcount", "show more old messages at a time", 20,
+*/
+    { "vary_msgcount", "\88ê\93x\82É\95\\8e¦\82·\82é\83\81\83b\83Z\81[\83W\82Ì\90\94", 20,
       DISP_IN_GAME }, /*WC*/
 #ifdef MSDOS
+/*JP
     { "video", "method of video updating", 20, SET_IN_FILE },
+*/
+    { "video", "\8eg\97p\82·\82é\83r\83f\83I\83\82\81[\83h\82ð\90Ý\92è\82·\82é", 20, SET_IN_FILE },
 #endif
 #ifdef VIDEOSHADES
+/*JP
     { "videocolors", "color mappings for internal screen routines", 40,
+*/
+    { "videocolors", "\93à\91 \83X\83N\83\8a\81[\83\93\83\8b\81[\83`\83\93\97p\82Ì\83J\83\89\81[\83}\83b\83v\82ð\97p\82¢\82é", 40,
       DISP_IN_GAME },
+/*JP
     { "videoshades", "gray shades to map to black/gray/white", 32,
+*/
+    { "videoshades", "\95\\8e¦\82É\83O\83\8c\83C\83X\83P\81[\83\8b\82ð\97p\82¢\82é", 32,
       DISP_IN_GAME },
 #endif
 #ifdef WIN32
+/*JP
     { "subkeyvalue", "override keystroke value", 7, SET_IN_FILE },
+*/
+    {"subkeyvalue", "\83L\81[\83}\83b\83s\83\93\83O\82ð\95Ï\8dX\82·\82é", 7, SET_IN_FILE },
 #endif
+#if 0 /*JP*/
     { "windowcolors", "the foreground/background colors of windows", /*WC*/
+#else
+    { "windowcolors",  "\83E\83B\83\93\83h\83E\82ð\8ew\92è\82µ\82½\91O\8ci\90F/\94w\8ci\90F\82Å\95\\8e¦\82·\82é", /*WC*/
+#endif
       80, DISP_IN_GAME },
+/*JP
     { "windowtype", "windowing system to use", WINTYPELEN, DISP_IN_GAME },
+*/
+    { "windowtype", "\8eg\97p\82·\82é\83E\83C\83\93\83h\83E\83V\83X\83e\83\80", WINTYPELEN, DISP_IN_GAME },
 #ifdef WINCHAIN
     { "windowchain", "window processor to use", WINTYPELEN, SET_IN_SYS },
 #endif
@@ -398,6 +620,9 @@ static struct Comp_Opt {
     { "Macgraphics", "load MACGraphics display symbols", 70, SET_IN_FILE },
 #endif
 #endif
+#if 1 /*JP*/
+    { "kcode", "\92[\96\96\82Ì\8a¿\8e\9a\83R\81[\83h,", 4, SET_IN_FILE },
+#endif
     { (char *) 0, (char *) 0, 0, 0 }
 };
 
@@ -1887,7 +2112,11 @@ boolean tinitial, tfrom_file;
                     preferred_pet = '\0';
                     break;
                 default:
+#if 0 /*JP*/
                     pline("Unrecognized pet type '%s'.", op);
+#else
+                    pline("'%s'\82Í\83y\83b\83g\82Ì\8eí\97Þ\82Æ\82µ\82Ä\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ\81D", op);
+#endif
                     break;
                 }
         } else if (negated)
@@ -2290,7 +2519,10 @@ boolean tinitial, tfrom_file;
                 }
             }
             if (!forig && num >= 100) {
+/*JP
                 pline("Doing that so many times isn't very fruitful.");
+*/
+                pline("\82»\82ñ\82È\82É\89½\89ñ\82à\82â\82Á\82Ä\82à\82Ù\82Æ\82ñ\82Ç\88Ó\96¡\82Í\82È\82¢\81D");
                 return;
             }
         }
@@ -2579,8 +2811,13 @@ boolean tinitial, tfrom_file;
             if (flags.menu_style == MENU_TRADITIONAL
                 || flags.menu_style == MENU_COMBINATION) {
                 use_menu = FALSE;
+#if 0 /*JP*/
                 Sprintf(qbuf, "New pickup_types: [%s am] (%s)", ocl,
                         *tbuf ? tbuf : "all");
+#else
+                Sprintf(qbuf, "\90V\82µ\82¢pickup_type\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81F[%s am] (%s)", ocl,
+                        *tbuf ? tbuf : "all");
+#endif
                 getlin(qbuf, abuf);
                 op = mungspaces(abuf);
                 if (abuf[0] == '\0' || abuf[0] == '\033')
@@ -2589,8 +2826,13 @@ boolean tinitial, tfrom_file;
                     use_menu = TRUE;
             }
             if (use_menu) {
+#if 0 /*JP*/
                 (void) choose_classes_menu("Auto-Pickup what?", 1, TRUE, ocl,
                                            tbuf);
+#else
+                (void) choose_classes_menu("\82Ç\82ê\82ð\8e©\93®\8fE\82¢\82É\90Ý\92è\82·\82é\81H", 1, TRUE, ocl,
+                                           tbuf);
+#endif
                 op = tbuf;
             }
         }
@@ -2763,6 +3005,14 @@ boolean tinitial, tfrom_file;
             badoption(opts);
         return;
     }
+#if 1 /*JP*/
+    if (!strncmpi(opts, "kcode", 3)){
+        if ((op = string_for_env_opt("kcode", opts, FALSE)) != 0){
+            setkcode(*op);
+        }
+        return;
+    }
+#endif
 
     /* scores:5t[op] 5a[round] o[wn] */
     if (match_optname(opts, "scores", 4, TRUE)) {
@@ -3516,7 +3766,10 @@ doset()
 
     any = zeroany;
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
+/*JP
              "Booleans (selecting will toggle value):", MENU_UNSELECTED);
+*/
+             "\90^\8bU\83I\83v\83V\83\87\83\93 (\91I\91ð\82·\82é\82Æ\92l\82ª\90Ø\82è\91Ö\82í\82è\82Ü\82·)\81F", MENU_UNSELECTED);
     any.a_int = 0;
     /* first list any other non-modifiable booleans, then modifiable ones */
     for (pass = 0; pass <= 1; pass++)
@@ -3551,9 +3804,15 @@ doset()
     indexoffset = boolcount;
     any = zeroany;
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
+#if 0 /*JP*/
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
              "Compounds (selecting will prompt for new value):",
              MENU_UNSELECTED);
+#else
+    add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
+             "\95\8e\9a\97ñ\83I\83v\83V\83\87\83\93 (\91I\91ð\82·\82é\82Æ\90V\82µ\82¢\92l\82Ì\93ü\97Í\82ð\8b\81\82ß\82Ü\82·)\81F",
+             MENU_UNSELECTED);
+#endif
 
 #ifdef notyet /* SYSCF */
     /* XXX I think this is still fragile.  Fixing initial/from_file and/or
@@ -3642,7 +3901,10 @@ doset()
     for (i = 0; i < PREFIX_COUNT; i++)
         doset_add_menu(tmpwin, fqn_prefix_names[i], 0);
 #endif
+/*JP
     end_menu(tmpwin, "Set what options?");
+*/
+    end_menu(tmpwin, "\82Ç\82Ì\83I\83v\83V\83\87\83\93\82ð\90Ý\92è\82µ\82Ü\82·\82©\81H");
     need_redraw = FALSE;
     if ((pick_cnt = select_menu(tmpwin, PICK_ANY, &pick_list)) > 0) {
         /*
@@ -3688,7 +3950,10 @@ doset()
 
                 if (!special_handling(compopt[opt_indx].name, setinitial,
                                       fromfile)) {
+/*JP
                     Sprintf(buf, "Set %s to what?", compopt[opt_indx].name);
+*/
+                    Sprintf(buf, "%s\82É\89½\82ð\90Ý\92è\82·\82é\81H", compopt[opt_indx].name);
                     getlin(buf, buf2);
                     if (buf2[0] == '\033')
                         continue;
@@ -3726,10 +3991,26 @@ int numtotal;
         char letr;
         const char *desc;
     } action_titles[] = {
+#if 0 /*JP*/
         { 'a', "add new %s" },         /* [0] */
+#else
+        { 'a', "\90V\82µ\82¢%s\82ð\92Ç\89Á" },     /* [0] */
+#endif
+#if 0 /*JP*/
         { 'l', "list %s" },            /* [1] */
+#else
+        { 'l', "%s\82ð\88ê\97\97\95\\8e¦" },       /* [1] */
+#endif
+#if 0 /*JP*/
         { 'r', "remove existing %s" }, /* [2] */
+#else
+        { 'r', "\8aù\82É\82 \82é%s\82ð\8dí\8f\9c" },   /* [2] */
+#endif
+#if 0 /*JP*/
         { 'x', "exit this menu" },     /* [3] */
+#else
+        { 'x', "\82±\82Ì\83\81\83j\83\85\81[\82ð\95Â\82\82é" }, /* [3] */
+#endif
     };
 
     opt_idx = 0;
@@ -3751,7 +4032,10 @@ int numtotal;
 #endif
                  MENU_UNSELECTED);
     }
+/*JP
     end_menu(tmpwin, "Do what?");
+*/
+    end_menu(tmpwin, "\82Ç\82¤\82·\82é\81H");
     if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &pick_list)) > 0) {
         for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) {
             opt_idx = pick_list[pick_idx].item.a_int - 1;
@@ -3798,7 +4082,10 @@ boolean setinitial, setfromfile;
             add_menu(tmpwin, NO_GLYPH, &any, *style_name, 0, ATR_NONE,
                      style_name, MENU_UNSELECTED);
         }
+/*JP
         end_menu(tmpwin, "Select menustyle:");
+*/
+        end_menu(tmpwin, "\83\81\83j\83\85\81[\83X\83^\83C\83\8b\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
         if (select_menu(tmpwin, PICK_ONE, &style_pick) > 0) {
             flags.menu_style = style_pick->item.a_int - 1;
             free((genericptr_t) style_pick);
@@ -3848,7 +4135,10 @@ boolean setinitial, setfromfile;
             add_menu(tmpwin, NO_GLYPH, &any, burden_letters[i], 0, ATR_NONE,
                      burden_name, MENU_UNSELECTED);
         }
+/*JP
         end_menu(tmpwin, "Select encumbrance level:");
+*/
+        end_menu(tmpwin, "\8cx\8d\90\82ð\8fo\82·\89×\8fd\83\8c\83x\83\8b\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
         if (select_menu(tmpwin, PICK_ONE, &burden_pick) > 0) {
             flags.pickup_burden = burden_pick->item.a_int - 1;
             free((genericptr_t) burden_pick);
@@ -3879,7 +4169,10 @@ boolean setinitial, setfromfile;
                      ATR_NONE, buf, MENU_UNSELECTED);
             disc_cat[i] = 0;
         }
+/*JP
         end_menu(tmpwin, "Change which disclosure options categories:");
+*/
+        end_menu(tmpwin, "\82Ç\82Ì\83J\83e\83S\83\8a\82Ì\95\\8e¦\8fî\95ñ\83I\83v\83V\83\87\83\93\82ð\95Ï\8dX\82µ\82Ü\82·\82©\81F");
         pick_cnt = select_menu(tmpwin, PICK_ANY, &disclosure_pick);
         if (pick_cnt > 0) {
             for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) {
@@ -3893,7 +4186,10 @@ boolean setinitial, setfromfile;
 
         for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) {
             if (disc_cat[i]) {
+/*JP
                 Sprintf(buf, "Disclosure options for %s:",
+*/
+                Sprintf(buf, "%s\82Ì\8fo\97Í\8c`\8e®\81F",
                         disclosure_names[i]);
                 tmpwin = create_nhwindow(NHW_MENU);
                 start_menu(tmpwin);
@@ -3901,19 +4197,31 @@ boolean setinitial, setfromfile;
                 /* 'y','n',and '+' work as alternate selectors; '-' doesn't */
                 any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
                 add_menu(tmpwin, NO_GLYPH, &any, 'a', any.a_char, ATR_NONE,
+/*JP
                          "Never disclose, without prompting",
+*/
+                         "\8am\94F\82¹\82¸\82É\8fo\97Í\82à\82µ\82È\82¢",
                          MENU_UNSELECTED);
                 any.a_char = DISCLOSE_YES_WITHOUT_PROMPT;
                 add_menu(tmpwin, NO_GLYPH, &any, 'b', any.a_char, ATR_NONE,
+/*JP
                          "Always disclose, without prompting",
+*/
+                         "\8am\94F\82¹\82¸\82É\8fo\97Í\82·\82é",
                          MENU_UNSELECTED);
                 any.a_char = DISCLOSE_PROMPT_DEFAULT_NO;
                 add_menu(tmpwin, NO_GLYPH, &any, 'c', any.a_char, ATR_NONE,
+/*JP
                          "Prompt, with default answer of \"No\"",
+*/
+                         "\8am\94F\82·\82é\81C\83f\83t\83H\83\8b\83g\82Í\81u\8fo\97Í\82µ\82È\82¢\81v",
                          MENU_UNSELECTED);
                 any.a_char = DISCLOSE_PROMPT_DEFAULT_YES;
                 add_menu(tmpwin, NO_GLYPH, &any, 'd', any.a_char, ATR_NONE,
+/*JP
                          "Prompt, with default answer of \"Yes\"",
+*/
+                         "\8am\94F\82·\82é\81C\83f\83t\83H\83\8b\83g\82Í\81u\8fo\97Í\82·\82é\81v",
                          MENU_UNSELECTED);
                 end_menu(tmpwin, buf);
                 if (select_menu(tmpwin, PICK_ONE, &disclosure_pick) > 0) {
@@ -3936,7 +4244,10 @@ boolean setinitial, setfromfile;
             add_menu(tmpwin, NO_GLYPH, &any, *mode_name, 0, ATR_NONE,
                      mode_name, MENU_UNSELECTED);
         }
+/*JP
         end_menu(tmpwin, "Select run/travel display mode:");
+*/
+        end_menu(tmpwin, "\91\96\8ds/\83g\83\89\83x\83\8b\82Ì\95\\8e¦\83\82\81[\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
         if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
             flags.runmode = mode_pick->item.a_int - 1;
             free((genericptr_t) mode_pick);
@@ -3962,7 +4273,10 @@ boolean setinitial, setfromfile;
         any.a_char = 'r';
         add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "reversed",
                  MENU_UNSELECTED);
+/*JP
         end_menu(tmpwin, "Select message history display type:");
+*/
+        end_menu(tmpwin, "\83\81\83b\83Z\81[\83W\97\9a\97ð\82Ì\95\\8e¦\95û\96@\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
         if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) {
             iflags.prevmsg_window = window_pick->item.a_char;
             free((genericptr_t) window_pick);
@@ -4009,8 +4323,13 @@ boolean setinitial, setfromfile;
         any.a_int = ALIGN_RIGHT;
         add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "right",
                  MENU_UNSELECTED);
+#if 0 /*JP*/
         Sprintf(abuf, "Select %s window placement relative to the map:",
                 msg ? "message" : "status");
+#else
+        Sprintf(abuf, "%s\83E\83B\83\93\83h\83E\82Ì\83}\83b\83v\82É\91Î\82·\82é\95\\8e¦\88Ê\92u\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F",
+                msg ? "\83\81\83b\83Z\81[\83W" : "\8fó\91Ô");
+#endif
         end_menu(tmpwin, abuf);
         if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) {
             if (msg)
@@ -4022,10 +4341,22 @@ boolean setinitial, setfromfile;
         destroy_nhwindow(tmpwin);
     } else if (!strcmp("number_pad", optname)) {
         static const char *npchoices[] = {
+/*JP
             " 0 (off)", " 1 (on)", " 2 (on, MSDOS compatible)",
+*/
+            "0 (\96³\8cø)", "1 (\97L\8cø)", "2 (\97L\8cø\81CMSDOS\8cÝ\8a·)",
+/*JP
             " 3 (on, phone-style digit layout)",
+*/
+            " 3 (\97L\8cø\81C\93d\98b\8e®\82Ì\90\94\8e\9a\94z\92u)",
+/*JP
             " 4 (on, phone-style layout, MSDOS compatible)",
+*/
+            " 4 (\97L\8cø\81C\93d\98b\8e®\82Ì\94z\92u\81CMSDOS \8cÝ\8a·)",
+/*JP
             "-1 (off, 'z' to move upper-left, 'y' to zap wands)"
+*/
+            "-1 (\96³\8cø\81C'z' \82Å\8d\8fã\82É\88Ú\93®\81C'y' \82Å\8fñ\82ð\90U\82é)"
         };
         menu_item *mode_pick = (menu_item *) 0;
 
@@ -4037,7 +4368,10 @@ boolean setinitial, setfromfile;
             add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
                      npchoices[i], MENU_UNSELECTED);
         }
+/*JP
         end_menu(tmpwin, "Select number_pad mode:");
+*/
+        end_menu(tmpwin, "number_pad\83\82\81[\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
         if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
             switch (mode_pick->item.a_int - 1) {
             case 0:
@@ -4072,7 +4406,10 @@ boolean setinitial, setfromfile;
         }
         destroy_nhwindow(tmpwin);
     } else if (!strcmp("menu_headings", optname)) {
+/*JP
         int mhattr = query_attr("How to highlight menu headings:");
+*/
+        int mhattr = query_attr("\83\81\83j\83\85\81[\83w\83b\83_\82Ì\8b­\92²\95û\96@\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F");
 
         if (mhattr != -1)
             iflags.menu_headings = mhattr;
@@ -4205,7 +4542,10 @@ boolean setinitial, setfromfile;
         if (opt_idx == 3) {
             ;                      /* done--fall through to function exit */
         } else if (opt_idx == 0) { /* add new */
+/*JP
             getlin("What new autopickup exception pattern?", &apebuf[1]);
+*/
+            getlin("\90V\82µ\82¢\8e©\93®\8fE\82¢\97á\8aO\82Ì\83p\83^\81[\83\93\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81F", &apebuf[1]);
             mungspaces(&apebuf[1]); /* regularize whitespace */
             if (apebuf[1] == '\033') {
                 ; /* fall through to function exit */
@@ -4233,7 +4573,10 @@ boolean setinitial, setfromfile;
                 ape = iflags.autopickup_exceptions[pass];
                 any = zeroany;
                 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
+/*JP
                          (pass == 0) ? "Never pickup" : "Always pickup",
+*/
+                         (pass == 0) ? "\8fí\82É\8fE\82í\82È\82¢" : "\8fí\82É\8fE\82¤",
                          MENU_UNSELECTED);
                 for (i = 0; i < numapes[pass] && ape; i++) {
                     any.a_void = (opt_idx == 1) ? 0 : ape;
@@ -4243,8 +4586,14 @@ boolean setinitial, setfromfile;
                     ape = ape->next;
                 }
             }
+#if 0 /*JP*/
             Sprintf(apebuf, "%s autopickup exceptions",
                     (opt_idx == 1) ? "List of" : "Remove which");
+#else
+            Sprintf(apebuf, "%s\8e©\93®\8fE\82¢\97á\8aO%s",
+                    (opt_idx == 1) ? "" : "\82Ç\82Ì",
+                    (opt_idx == 1) ? "\82Ì\88ê\97\97" : "\82ð\8dí\8f\9c\82µ\82Ü\82·\82©\81H");
+#endif
             end_menu(tmpwin, apebuf);
             pick_cnt = select_menu(tmpwin,
                                    (opt_idx == 1) ? PICK_NONE : PICK_ANY,
@@ -4449,13 +4798,20 @@ const char *optname;
 char *buf;
 {
     char ocl[MAXOCLASSES + 1];
+#if 0 /*JP*/
     static const char none[] = "(none)", randomrole[] = "random",
                       to_be_done[] = "(to be done)", defopt[] = "default",
                       defbrief[] = "def";
+#else
+    static const char none[] = "(\82È\82µ)", randomrole[] = "\83\89\83\93\83_\83\80",
+                      to_be_done[] = "(\96¢\90Ý\92è)", defopt[] = "\83f\83t\83H\83\8b\83g",
+                      defbrief[] = "def";
+#endif
     int i;
 
     buf[0] = '\0';
     if (!strcmp(optname, "align_message"))
+#if 0 /*JP*/
         Sprintf(buf, "%s",
                 iflags.wc_align_message == ALIGN_TOP
                     ? "top"
@@ -4466,7 +4822,19 @@ char *buf;
                                 : iflags.wc_align_message == ALIGN_RIGHT
                                       ? "right"
                                       : defopt);
+#else
+        Sprintf(buf, "%s",
+                iflags.wc_align_message == ALIGN_TOP
+                    ? "\8fã\91¤"
+                    : iflags.wc_align_message == ALIGN_LEFT
+                          ? "\8d\91¤"
+                          : iflags.wc_align_message == ALIGN_BOTTOM
+                                ? "\89º\91¤"
+                                : iflags.wc_align_message == ALIGN_RIGHT
+                                      ? "\89E\91¤" : defopt);
+#endif
     else if (!strcmp(optname, "align_status"))
+#if 0 /*JP*/
         Sprintf(buf, "%s",
                 iflags.wc_align_status == ALIGN_TOP
                     ? "top"
@@ -4477,12 +4845,27 @@ char *buf;
                                 : iflags.wc_align_status == ALIGN_RIGHT
                                       ? "right"
                                       : defopt);
+#else
+        Sprintf(buf, "%s",
+                iflags.wc_align_status == ALIGN_TOP
+                    ? "\8fã\91¤"
+                    : iflags.wc_align_status == ALIGN_LEFT
+                          ? "\8d\91¤"
+                          : iflags.wc_align_status == ALIGN_BOTTOM
+                                ? "\89º\91¤"
+                                : iflags.wc_align_status == ALIGN_RIGHT
+                                      ? "\89E\91¤"
+                                      : defopt);
+#endif
     else if (!strcmp(optname, "align"))
         Sprintf(buf, "%s", rolestring(flags.initalign, aligns, adj));
 #ifdef WIN32
     else if (!strcmp(optname, "altkeyhandler"))
         Sprintf(buf, "%s",
+/*JP
                 iflags.altkeyhandler[0] ? iflags.altkeyhandler : "default");
+*/
+                iflags.altkeyhandler[0] ? iflags.altkeyhandler : defopt);
 #endif
 #ifdef BACKWARD_COMPAT
     else if (!strcmp(optname, "boulder"))
@@ -4624,10 +5007,23 @@ char *buf;
         Sprintf(buf, "%s", plname);
     } else if (!strcmp(optname, "number_pad")) {
         static const char *numpadmodes[] = {
+/*JP
             "0=off", "1=on", "2=on, MSDOS compatible",
+*/
+            "0=\96³\8cø", "1=\97L\8cø", "2=\97L\8cø\81CDOS\8cÝ\8a·",
+/*JP
             "3=on, phone-style layout",
+*/
+            "3=\97L\8cø\81C\93d\98b\8e®\82Ì\90\94\8e\9a\94z\92u",
+/*JP
             "4=on, phone layout, MSDOS compatible",
+*/
+            "4=\97L\8cø\81C\93d\98b\8e®\82Ì\94z\92u\81CMSDOS \8cÝ\8a·",
+#if 0 /*JP*/
             "-1=off, y & z swapped", /*[5]*/
+#else
+            "-1=\96³\8cø\81Cy\82Æz\82ð\93ü\82ê\91Ö\82¦", /*[5]*/
+#endif
         };
         int indx = Cmd.num_pad
                        ? (Cmd.phone_layout ? (Cmd.pcHack_compat ? 4 : 3)
@@ -4664,11 +5060,19 @@ char *buf;
             Strcat(tmpbuf, " Remove");
         Strcpy(buf, tmpbuf[0] ? &tmpbuf[1] : "none");
     } else if (!strcmp(optname, "pettype")) {
+#if 0 /*JP*/
         Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat"
                            : (preferred_pet == 'd') ? "dog"
                              : (preferred_pet == 'h') ? "horse"
                                : (preferred_pet == 'n') ? "none"
                                  : "random");
+#else
+        Sprintf(buf, "%s", (preferred_pet == 'c') ? "\94L"
+                           : (preferred_pet == 'd') ? "\8c¢"
+                             : (preferred_pet == 'h') ? "\94n"
+                               : (preferred_pet == 'n') ? "\82È\82µ"
+                                 : "\83\89\83\93\83_\83\80");
+#endif
     } else if (!strcmp(optname, "pickup_burden")) {
         Sprintf(buf, "%s", burdentype[flags.pickup_burden]);
     } else if (!strcmp(optname, "pickup_types")) {
@@ -4709,7 +5113,11 @@ char *buf;
                 break;
             }
     } else if (!strcmp(optname, "player_selection")) {
+#if 0 /*JP*/
         Sprintf(buf, "%s", iflags.wc_player_selection ? "prompts" : "dialog");
+#else
+        Sprintf(buf, "%s\93ü\97Í", iflags.wc_player_selection ? "\83v\83\8d\83\93\83v\83g" : "\83_\83C\83A\83\8d\83O");
+#endif
 #ifdef MSDOS
     } else if (!strcmp(optname, "soundcard")) {
         Sprintf(buf, "%s", to_be_done);
@@ -4787,7 +5195,10 @@ char *buf;
     if (buf[0])
         return buf;
     else
+/*JP
         return "unknown";
+*/
+        return "\95s\96¾";
 }
 
 int
@@ -4798,6 +5209,7 @@ dotogglepickup()
     flags.pickup = !flags.pickup;
     if (flags.pickup) {
         oc_to_str(flags.pickup_types, ocl);
+#if 0 /*JP*/
         Sprintf(buf, "ON, for %s objects%s", ocl[0] ? ocl : "all",
                 (iflags.autopickup_exceptions[AP_LEAVE]
                  || iflags.autopickup_exceptions[AP_GRAB])
@@ -4805,10 +5217,23 @@ dotogglepickup()
                            ? ", with one exception"
                            : ", with some exceptions")
                     : "");
+#else
+        Sprintf(buf, "%s\83A\83C\83e\83\80\82É\82Â\82¢\82Ä\83I\83\93%s", ocl[0] ? ocl : "\91S\82Ä\82Ì",
+                (iflags.autopickup_exceptions[AP_LEAVE]
+                 || iflags.autopickup_exceptions[AP_GRAB])
+                    ? "\81C\97á\8aO\82 \82è"
+                    : "");
+#endif
     } else {
+/*JP
         Strcpy(buf, "OFF");
+*/
+        Strcpy(buf, "\83I\83t");
     }
+/*JP
     pline("Autopickup: %s.", buf);
+*/
+    pline("\8e©\93®\8fE\82¢\81F%s\81D", buf);
     return 0;
 }
 
@@ -5022,25 +5447,49 @@ char *strval;
 
 /* data for option_help() */
 static const char *opt_intro[] = {
+/*JP
     "", "                 NetHack Options Help:", "",
+*/
+    "", "               NetHack\83I\83v\83V\83\87\83\93\83w\83\8b\83v\81F", "",
 #define CONFIG_SLOT 3 /* fill in next value at run-time */
     (char *) 0,
 #if !defined(MICRO) && !defined(MAC)
+/*JP
     "or use `NETHACKOPTIONS=\"<options>\"' in your environment",
+*/
+    "\82Ü\82½\82Í\8aÂ\8b«\95Ï\90\94\82É`NETHACKOPTIONS=\"<options>\"'\82Æ\92è\8b`\82Å\82«\82Ü\82·",
 #endif
+/*JP
     "(<options> is a list of options separated by commas)",
+*/
+    "(<options>\82Í\83J\83\93\83}\82Å\8bæ\90Ø\82Á\82½\83I\83v\83V\83\87\83\93\82Å\82·)",
 #ifdef VMS
+/*JP
     "-- for example, $ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"",
+*/
+    "-- \97á\82¦\82Î\8e\9f\82Ì\82æ\82¤\82É\82µ\82Ü\82·\81F$ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"",
 #endif
+/*JP
     "or press \"O\" while playing and use the menu.", "",
+*/
+    "\82à\82µ\82­\82Í\83Q\81[\83\80\83v\83\8c\83C\92\86\82É\"O\"\83{\83^\83\93\82ð\89\9f\82·\82±\82Æ\82Å\90Ý\92è\89Â\94\\82Å\82·\81D",
+/*JP
  "Boolean options (which can be negated by prefixing them with '!' or \"no\"):",
+*/
+ "\90^\8bU\92l\83I\83v\83V\83\87\83\93 (\94Û\92è\82Ì\92l\82ð\8ew\92è\82·\82é\8fê\8d\87\81C'!'\82à\82µ\82­\82Í\"no\"\82ð\90æ\93ª\82É\95t\89Á\82µ\82Ü\82·):",
     (char *) 0
 };
 
 static const char *opt_epilog[] = {
     "",
+/*JP
     "Some of the options can be set only before the game is started; those",
+*/
+    "\83I\83v\83V\83\87\83\93\82É\82Í\83Q\81[\83\80\8aJ\8en\91O\82Ì\82Ý\82É\82µ\82©\90Ý\92è\82Å\82«\82È\82¢\82à\82Ì\82ª\82 \82è\82Ü\82·\81D",
+/*JP
     "items will not be selectable in the 'O' command's menu.", (char *) 0
+*/
+    "\82»\82ê\82ç\82Í'O'\83R\83}\83\93\83h\82Ì\83\81\83j\83\85\81[\82Å\82Í\91I\91ð\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82¹\82ñ\81D", (char *) 0
 };
 
 void
@@ -5051,7 +5500,10 @@ option_help()
     winid datawin;
 
     datawin = create_nhwindow(NHW_TEXT);
+/*JP
     Sprintf(buf, "Set options as OPTIONS=<options> in %s", lastconfigfile);
+*/
+    Sprintf(buf, "\83I\83v\83V\83\87\83\93\82Í%s\82Ì\92\86\82ÅOPTIONS=<options>\82Æ\90Ý\92è\82µ\82Ü\82·", lastconfigfile);
     opt_intro[CONFIG_SLOT] = (const char *) buf;
     for (i = 0; opt_intro[i]; i++)
         putstr(datawin, 0, opt_intro[i]);
@@ -5069,7 +5521,10 @@ option_help()
     next_opt(datawin, "");
 
     /* Compound options */
+/*JP
     putstr(datawin, 0, "Compound options:");
+*/
+    putstr(datawin, 0, "\95\8e\9a\97ñ\83I\83v\83V\83\87\83\93:");
     for (i = 0; compopt[i].name; i++) {
         Sprintf(buf2, "`%s'", compopt[i].name);
         Sprintf(buf, "%-20s - %s%c", buf2, compopt[i].descr,
index 0a4fc87..20a2e98 100644 (file)
@@ -52,8 +52,13 @@ const char *new_str;
         return 0;
 
     space_left = BUFSZ - strlen(buf) - 1;
+#if 0 /*JP*/
     (void) strncat(buf, " or ", space_left);
     (void) strncat(buf, new_str, space_left - 4);
+#else
+    (void) strncat(buf, "\82Ü\82½\82Í", space_left);
+    (void) strncat(buf, new_str, space_left - 6);
+#endif
     return 1;
 }
 
@@ -67,13 +72,26 @@ char *outbuf;
     /* include race with role unless polymorphed */
     race[0] = '\0';
     if (!Upolyd)
+/*JP
         Sprintf(race, "%s ", urace.adj);
+*/
+        Sprintf(race, "%s", urace.adj);
+#if 0 /*JP*/
     Sprintf(outbuf, "%s%s%s called %s",
             /* being blinded may hide invisibility from self */
             (Invis && (senseself() || !Blind)) ? "invisible " : "", race,
             mons[u.umonnum].mname, plname);
+#else
+    Sprintf(outbuf, "%s%s%s\82Æ\82¢\82¤\96¼\82Ì%s",
+            (Invis && (senseself() || !Blind)) ? "\8ep\82Ì\8c©\82¦\82È\82¢" : "", race,
+            plname,
+            mons[u.umonnum].mname);
+#endif
     if (u.usteed)
+/*JP
         Sprintf(eos(outbuf), ", mounted on %s", y_monnam(u.usteed));
+*/
+        Sprintf(eos(outbuf), "\81C%s\82É\8fæ\82Á\82Ä\82¢\82é", y_monnam(u.usteed));
     return outbuf;
 }
 
@@ -135,15 +153,32 @@ int x, y, glyph;
         Strcpy(buf, something); /* sanity precaution */
 
     if (levl[x][y].typ == STONE || levl[x][y].typ == SCORR)
+/*JP
         Strcat(buf, " embedded in stone");
+*/
+        Strcat(buf, "\81C\8aâ\82É\96\84\82ß\82±\82Ü\82ê\82Ä\82¢\82é");
     else if (IS_WALL(levl[x][y].typ) || levl[x][y].typ == SDOOR)
+/*JP
         Strcat(buf, " embedded in a wall");
+*/
+        Strcat(buf, "\81C\95Ç\82É\96\84\82ß\82±\82Ü\82ê\82Ä\82¢\82é");
     else if (closed_door(x, y))
+/*JP
         Strcat(buf, " embedded in a door");
+*/
+        Strcat(buf, "\81C\94à\82É\96\84\82ß\82±\82Ü\82ê\82Ä\82¢\82é");
     else if (is_pool(x, y))
+      /*JP 3.4.3 \82±\82Ì\95\94\95ª\82Í\95¨\91Ì\82É\82µ\82©\8eg\82í\82ê\82È\82¢ */
+/*JP
         Strcat(buf, " in water");
+*/
+        Strcat(buf, "\81C\90\85\92\86\82É\82 \82é");
     else if (is_lava(x, y))
+#if 0 /*JP*/
         Strcat(buf, " in molten lava"); /* [can this ever happen?] */
+#else
+        Strcat(buf, "\81C\97n\8aâ\82Ì\92\86\82É\82 \82é");        /* [can this ever happen?] */
+#endif
     return;
 }
 
@@ -161,6 +196,7 @@ int x, y;
     else
         name = distant_monnam(mtmp, ARTICLE_NONE, monnambuf);
 
+#if 0 /*JP*/
     Sprintf(buf, "%s%s%s",
             (mtmp->mx != x || mtmp->my != y)
                 ? ((mtmp->isshk && accurate) ? "tail of " : "tail of a ")
@@ -171,11 +207,26 @@ int x, y;
                     ? "peaceful "
                     : "",
             name);
+#else
+    Sprintf(buf, "%s%s%s",
+            (mtmp->mtame && accurate) ? "\8eè\82È\82¸\82¯\82ç\82ê\82½" :
+            (mtmp->mpeaceful && accurate) ? "\97F\8dD\93I\82È" : "",
+            name,
+            (mtmp->mx != x || mtmp->my != y) ?
+            ((mtmp->isshk && accurate)
+             ? "\82Ì\90K\94ö" : "\82Ì\90K\94ö") : "");
+#endif
     if (u.ustuck == mtmp)
         Strcat(buf, (Upolyd && sticks(youmonst.data))
+/*JP
                      ? ", being held" : ", holding you");
+*/
+                     ? "\81C\82 \82È\82½\82ª\92Í\82Ü\82¦\82Ä\82¢\82é" : "\81C\82 \82È\82½\82ð\92Í\82Ü\82¦\82Ä\82¢\82é");
     if (mtmp->mleashed)
+/*JP
         Strcat(buf, ", leashed to you");
+*/
+        Strcat(buf, "\81C\95R\82Å\8c\8b\82Î\82ê\82Ä\82¢\82é");
 
     if (mtmp->mtrapped && cansee(mtmp->mx, mtmp->my)) {
         struct trap *t = t_at(mtmp->mx, mtmp->my);
@@ -183,7 +234,10 @@ int x, y;
 
         /* newsym lets you know of the trap, so mention it here */
         if (tt == BEAR_TRAP || tt == PIT || tt == SPIKED_PIT || tt == WEB)
+/*JP
             Sprintf(eos(buf), ", trapped in %s",
+*/
+            Sprintf(eos(buf), ", %s\82É\95ß\82Ü\82Á\82Ä\82¢\82é",
                     an(defsyms[trap_to_defsym(tt)].explanation));
     }
 
@@ -193,48 +247,72 @@ int x, y;
         monbuf[0] = '\0';
         if (how_seen != 0 && how_seen != MONSEEN_NORMAL) {
             if (how_seen & MONSEEN_NORMAL) {
+/*JP
                 Strcat(monbuf, "normal vision");
+*/
+                Strcat(monbuf, "\92Ê\8fí\82Ì\8e\8b\8ao");
                 how_seen &= ~MONSEEN_NORMAL;
                 /* how_seen can't be 0 yet... */
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_SEEINVIS) {
+/*JP
                 Strcat(monbuf, "see invisible");
+*/
+                Strcat(monbuf, "\8c©\82¦\82È\82¢\82à\82Ì\82ð\8c©\82é\8e\8b\8ao");
                 how_seen &= ~MONSEEN_SEEINVIS;
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_INFRAVIS) {
+/*JP
                 Strcat(monbuf, "infravision");
+*/
+                Strcat(monbuf, "\90Ô\8aO\90ü\82ª\8c©\82¦\82é\8e\8b\8ao");
                 how_seen &= ~MONSEEN_INFRAVIS;
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_TELEPAT) {
+/*JP
                 Strcat(monbuf, "telepathy");
+*/
+                Strcat(monbuf, "\83e\83\8c\83p\83V\81[");
                 how_seen &= ~MONSEEN_TELEPAT;
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_XRAYVIS) {
                 /* Eyes of the Overworld */
+/*JP
                 Strcat(monbuf, "astral vision");
+*/
+                Strcat(monbuf, "\90¸\90_\82É\82æ\82é\8e\8b\8ao");
                 how_seen &= ~MONSEEN_XRAYVIS;
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_DETECT) {
+/*JP
                 Strcat(monbuf, "monster detection");
+*/
+                Strcat(monbuf, "\89ö\95¨\82ð\94­\8c©\82·\82é\94\\97Í");
                 how_seen &= ~MONSEEN_DETECT;
                 if (how_seen)
                     Strcat(monbuf, ", ");
             }
             if (how_seen & MONSEEN_WARNMON) {
                 if (Hallucination)
+/*JP
                     Strcat(monbuf, "paranoid delusion");
+*/
+                    Strcat(monbuf, "\95Î\8e·\93I\96Ï\91z");
                 else
+/*JP
                     Sprintf(eos(monbuf), "warned of %s",
+*/
+                    Sprintf(eos(monbuf), "%s\82ð\8cx\8d\90\82µ\82Ä\82¢\82é",
                             makeplural(mtmp->data->mname));
                 how_seen &= ~MONSEEN_WARNMON;
                 if (how_seen)
@@ -300,8 +378,13 @@ char *buf, *monbuf;
         }
     } else if (u.uswallow) {
         /* all locations when swallowed other than the hero are the monster */
+#if 0 /*JP*/
         Sprintf(buf, "interior of %s",
                 Blind ? "a monster" : a_monnam(u.ustuck));
+#else
+        Sprintf(buf, "%s\82Ì\93à\95\94",
+                Blind ? "\89ö\95¨" : a_monnam(u.ustuck));
+#endif
         pm = u.ustuck->data;
     } else if (glyph_is_monster(glyph)) {
         bhitpos.x = x;
@@ -317,40 +400,70 @@ char *buf, *monbuf;
 
         Strcpy(buf, defsyms[trap_to_defsym(tnum)].explanation);
     } else if (!glyph_is_cmap(glyph)) {
+/*JP
         Strcpy(buf, "unexplored area");
+*/
+        Strcpy(buf, "\96¢\92T\8dõ\82Ì\8fê\8f\8a");
     } else
         switch (glyph_to_cmap(glyph)) {
         case S_altar:
+/*JP
             Sprintf(buf, "%s %saltar",
+*/
+            Sprintf(buf, "%s%s\8dÕ\92d",
                     /* like endgame high priests, endgame high altars
                        are only recognizable when immediately adjacent */
                     (Is_astralevel(&u.uz) && distu(x, y) > 2)
+/*JP
                         ? "aligned"
+*/
+                        ? "\91®\90«\82Ì"
                         : align_str(
                               Amask2align(levl[x][y].altarmask & ~AM_SHRINE)),
                     ((levl[x][y].altarmask & AM_SHRINE)
                      && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)))
+/*JP
                         ? "high "
+*/
+                        ? "\8d\82\88Ê\82Ì"
                         : "");
             break;
         case S_ndoor:
             if (is_drawbridge_wall(x, y) >= 0)
+/*JP
                 Strcpy(buf, "open drawbridge portcullis");
+*/
+                Strcpy(buf,"\8aJ\82¢\82Ä\82¢\82é\92µ\82Ë\8b´");
             else if ((levl[x][y].doormask & ~D_TRAPPED) == D_BROKEN)
+/*JP
                 Strcpy(buf, "broken door");
+*/
+                Strcpy(buf,"\89ó\82ê\82½\94à");
             else
+/*JP
                 Strcpy(buf, "doorway");
+*/
+                Strcpy(buf,"\8fo\93ü\82è\8cû");
             break;
         case S_cloud:
             Strcpy(buf,
+/*JP
                    Is_airlevel(&u.uz) ? "cloudy area" : "fog/vapor cloud");
+*/
+                   Is_airlevel(&u.uz) ? "\93Ü\82Á\82Ä\82¢\82é\8fê\8f\8a" : "\96¶/\8fö\8bC\82Ì\89_");
             break;
         case S_stone:
             if (!levl[x][y].seenv) {
+/*JP
                 Strcpy(buf, "unexplored");
+*/
+                Strcpy(buf, "\96¢\92T\8dõ");
                 break;
             } else if (levl[x][y].typ == STONE || levl[x][y].typ == SCORR) {
+/*JP
                 Strcpy(buf, "stone");
+*/
+                Strcpy(buf, "\90Î");
                 break;
             }
             /*else FALLTHRU*/
@@ -388,7 +501,11 @@ boolean user_typed_name, without_asking;
 
     fp = dlb_fopen(DATAFILE, "r");
     if (!fp) {
+#if 0 /*JP*/
         pline("Cannot open data file!");
+#else
+        pline("\83f\81[\83^\83t\83@\83C\83\8b\82ð\8aJ\82¯\82È\82¢\81I");
+#endif
         return;
     }
 
@@ -513,10 +630,16 @@ boolean user_typed_name, without_asking;
             return;
         }
 
+/*JP
         if (user_typed_name || without_asking || yn("More info?") == 'y') {
+*/
+        if (user_typed_name || without_asking || yn("\8fÚ\8d×\82ð\8c©\82é\81H") == 'y') {
             if (dlb_fseek(fp, (long) txt_offset + entry_offset, SEEK_SET)
                 < 0) {
+/*JP
                 pline("? Seek error on 'data' file!");
+*/
+                pline("'data'\83t\83@\83C\83\8b\82Ì\83V\81[\83N\83G\83\89\81[\81I");
                 (void) dlb_fclose(fp);
                 return;
             }
@@ -534,7 +657,10 @@ boolean user_typed_name, without_asking;
             destroy_nhwindow(datawin);
         }
     } else if (user_typed_name)
+/*JP
         pline("I don't have any information on those things.");
+*/
+        pline("\82»\82ñ\82È\96¼\91O\82Í\95·\82¢\82½\82±\82Æ\82ª\82È\82¢\81D");
 
     (void) dlb_fclose(fp);
 }
@@ -556,7 +682,10 @@ const char **firstmatch;
     int skipped_venom = 0;
     boolean hit_trap;
     const char *x_str;
+/*JP
     static const char *mon_interior = "the interior of a monster";
+*/
+    static const char *mon_interior = "\89ö\95¨\82Ì\93à\95\94";
 
     if (looked) {
         int oc;
@@ -613,7 +742,11 @@ const char **firstmatch;
                    && cc.x == u.ux && cc.y == u.uy)
                 : (sym == def_monsyms[S_HUMAN].sym && !flags.showrace))
         && !(Race_if(PM_HUMAN) || Race_if(PM_ELF)) && !Upolyd)
+#if 0 /*JP*/
         found += append_str(out_str, "you"); /* tack on "or you" */
+#else
+        found += append_str(out_str, "\82 \82È\82½"); /* tack on "or you" */
+#endif
 
     /* Now check for objects */
     for (i = 1; i < MAXOCLASSES; i++) {
@@ -662,6 +795,7 @@ const char **firstmatch;
             /* alt_i is now 3 or more and no longer of interest */
         }
         if (sym == (looked ? showsyms[i] : defsyms[i].sym) && *x_str) {
+#if 0 /*JP*//*\93ú\96{\8cê\82É\82Í\8aÖ\8cW\82È\82¢*/
             /* avoid "an unexplored", "an stone", "an air", "a water",
                "a floor of a room", "a dark part of a room";
                article==2 => "the", 1 => "an", 0 => (none) */
@@ -670,14 +804,22 @@ const char **firstmatch;
                               || strcmp(x_str, "air") == 0
                               || strcmp(x_str, "water") == 0);
 
+#endif
             if (!found) {
                 if (is_cmap_trap(i)) {
+/*JP
                     Sprintf(out_str, "%sa trap", prefix);
+*/
+                    Sprintf(out_str, "%sã©", prefix);
                     hit_trap = TRUE;
                 } else {
+#if 0 /*JP*/
                     Sprintf(out_str, "%s%s", prefix,
                             article == 2 ? the(x_str)
                             : article == 1 ? an(x_str) : x_str);
+#else
+                    Sprintf(out_str, "%s%s", prefix, x_str);
+#endif
                 }
                 *firstmatch = x_str;
                 found++;
@@ -688,9 +830,13 @@ const char **firstmatch;
                        && (i != S_vibrating_square || Inhell
                            || (looked && glyph_is_trap(glyph)
                                && glyph_to_trap(glyph) == VIBRATING_SQUARE))) {
+#if 0 /*JP*/
                 found += append_str(out_str, (article == 2) ? the(x_str)
                                              : (article == 1) ? an(x_str)
                                                : x_str);
+#else
+                found += append_str(out_str, x_str);
+#endif
                 if (is_cmap_trap(i))
                     hit_trap = TRUE;
             }
@@ -734,11 +880,17 @@ const char **firstmatch;
     /* handle optional boulder symbol as a special case */
     if (iflags.bouldersym && sym == iflags.bouldersym) {
         if (!found) {
+/*JP
             *firstmatch = "boulder";
+*/
+            *firstmatch = "\8aâ";
             Sprintf(out_str, "%s%s", prefix, an(*firstmatch));
             found++;
         } else {
+/*JP
             found += append_str(out_str, "boulder");
+*/
+            found += append_str(out_str, "\8aâ");
         }
     }
 
@@ -778,7 +930,10 @@ const char **firstmatch;
 #define LOOK_VERBOSE 3     /* ':' -- show more info w/o asking */
 
 /* also used by getpos hack in do_name.c */
+/*JP
 const char what_is_an_unknown_object[] = "an unknown object";
+*/
+const char what_is_an_unknown_object[] = "\93ä\82Ì\95¨\91Ì";
 
 int
 do_look(mode, click_cc)
@@ -890,7 +1045,10 @@ coord *click_cc;
           }
         case '?':
             from_screen = FALSE;
+/*JP
             getlin("Specify what? (type the word)", out_str);
+*/
+            getlin("\89½\82ð\92²\82×\82é\81H(\95\8e\9a\82ð\93ü\82ê\82Ä\82Ë)", out_str);
             if (out_str[0] == '\0' || out_str[0] == '\033')
                 return 0;
 
@@ -935,10 +1093,17 @@ coord *click_cc;
         if (from_screen || clicklook) {
             if (from_screen) {
                 if (flags.verbose)
+#if 0 /*JP*/
                     pline("Please move the cursor to %s.",
                           what_is_an_unknown_object);
+#else
+                    pline("\83J\81[\83\\83\8b\82ð\95¨\91Ì\82É\88Ú\93®\82µ\82Ä\82­\82¾\82³\82¢\81D");
+#endif
                 else
+/*JP
                     pline("Pick an object.");
+*/
+                    pline("\95¨\91Ì\82ð\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81D");
 
                 ans = getpos(&cc, quick, what_is_an_unknown_object);
                 if (ans < 0 || cc.x < 0) {
@@ -969,7 +1134,10 @@ coord *click_cc;
                           (boolean) (ans == LOOK_VERBOSE));
             }
         } else {
+/*JP
             pline("I've never heard of such things.");
+*/
+            pline("\82»\82ñ\82È\96¼\91O\82Í\95·\82¢\82½\82±\82Æ\82ª\82È\82¢\81D");
         }
 
     } while (from_screen && !quick && ans != LOOK_ONCE && !clicklook);
@@ -1100,6 +1268,7 @@ doidtrap()
                     break;
             }
             tt = what_trap(tt);
+#if 0 /*JP*/
             pline("That is %s%s%s.",
                   an(defsyms[trap_to_defsym(tt)].explanation),
                   !trap->madeby_u
@@ -1113,9 +1282,23 @@ doidtrap()
                            ? " dug"
                            : " set",
                   !trap->madeby_u ? "" : " by you");
+#else
+            pline("\82»\82ê\82Í%s%s\82¾\81D",
+                  !trap->madeby_u
+                     ? ""
+                     : (tt == WEB)
+                        ? "\82 \82È\82½\82ª\92£\82Á\82½"
+                        : (tt == HOLE || tt == PIT)
+                           ? "\82 \82È\82½\82ª\8c@\82Á\82½"
+                           : "\82 \82È\82½\82ª\8ed\8a|\82¯\82½",
+                  defsyms[trap_to_defsym(tt)].explanation);
+#endif
             return 0;
         }
+/*JP
     pline("I can't see a trap there.");
+*/
+    pline("\82»\82±\82É\82Íã©\82Í\82Ý\82 \82½\82ç\82È\82¢\81D");
     return 0;
 }
 
@@ -1130,7 +1313,11 @@ char *cbuf;
 
     fp = dlb_fopen(CMDHELPFILE, "r");
     if (!fp) {
+#if 0 /*JP*/
         pline("Cannot open data file!");
+#else
+        pline("\83f\81[\83^\83t\83@\83C\83\8b\82ð\8aJ\82¯\82È\82¢\81I");
+#endif
         return 0;
     }
 
@@ -1174,7 +1361,10 @@ dowhatdoes()
 #if defined(UNIX) || defined(VMS)
     introff();
 #endif
+/*JP
     q = yn_function("What command?", (char *) 0, '\0');
+*/
+    q = yn_function("\82Ç\82¤\82¢\82¤\83R\83}\83\93\83h\81H", (char *) 0, '\0');
 #if defined(UNIX) || defined(VMS)
     intron();
 #endif
@@ -1182,7 +1372,10 @@ dowhatdoes()
     if (reslt)
         pline1(reslt);
     else
+/*JP
         pline("I've never heard of such commands.");
+*/
+        pline("\82»\82ñ\82È\83R\83}\83\93\83h\82Í\95·\82¢\82½\82±\82Æ\82ª\82È\82¢\81D");
     return 0;
 }
 
@@ -1218,6 +1411,7 @@ docontact()
 
 /* data for help_menu() */
 static const char *help_menu_items[] = {
+#if 0 /*JP*/
     /*  0*/ "About NetHack (version information).",
     /*  1*/ "Long description of the game and commands.",
     /*  2*/ "List of game commands.",
@@ -1237,6 +1431,27 @@ static const char *help_menu_items[] = {
 #define WIZHLP_SLOT 11
 #endif
     "List of wizard-mode commands.", "", (char *) 0
+#else /*JP*/
+    /*  0*/ "NetHack\82É\82Â\82¢\82Ä(\83o\81[\83W\83\87\83\93\8fî\95ñ)",
+    /*  1*/ "\83Q\81[\83\80\82¨\82æ\82Ñ\83R\83}\83\93\83h\82Ì\89ð\90à(\92·\95¶)",
+    /*  2*/ "\83R\83}\83\93\83h\88ê\97\97",
+    /*  3*/ "NetHack\82Ì\8aÈ\92P\82È\97ð\8ej",
+    /*  4*/ "\89æ\96Ê\82É\95\\8e¦\82³\82ê\82é\95\8e\9a\82Ì\90à\96¾",
+    /*  5*/ "\82±\82Ì\83L\81[\82ª\89½\82ð\88Ó\96¡\82·\82é\82©\82Ì\90à\96¾",
+    /*  6*/ "\83Q\81[\83\80\82Ì\83I\83v\83V\83\87\83\93\88ê\97\97",
+    /*  7*/ "\83Q\81[\83\80\82Ì\83I\83v\83V\83\87\83\93\88ê\97\97(\92·\95¶)",
+    /*  8*/ "\8ag\92£\83R\83}\83\93\83h\88ê\97\97",
+    /*  9*/ "NetHack\82Ì\83\89\83C\83Z\83\93\83X",
+    /* 10*/ "\83T\83|\81[\83g\8fî\95ñ",
+#ifdef PORT_HELP
+    "%s\82É\93Á\97L\82Ì\83w\83\8b\83v\82¨\82æ\82Ñ\83R\83}\83\93\83h",
+#define PORT_HELP_ID 100
+#define WIZHLP_SLOT 12
+#else
+#define WIZHLP_SLOT 11
+#endif
+    "\83E\83B\83U\81[\83h\83\82\81[\83h\82Ì\83R\83}\83\93\83h\88ê\97\97", "", (char *) 0
+#endif /*JP*/
 };
 
 STATIC_OVL boolean
@@ -1271,7 +1486,10 @@ int *sel;
             add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
                      help_menu_items[i], MENU_UNSELECTED);
         }
+/*JP
     end_menu(tmpwin, "Select one item:");
+*/
+    end_menu(tmpwin, "\91I\82ñ\82Å\82­\82¾\82³\82¢\81F");
     n = select_menu(tmpwin, PICK_ONE, &selected);
     destroy_nhwindow(tmpwin);
     if (n > 0) {
index 0fa4e65..2a193c3 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /*
  *     Contains code for picking objects up, and container use.
  */
@@ -67,9 +72,18 @@ STATIC_DCL void FDECL(tipcontainer, (struct obj *));
 static NEARDATA struct obj *current_container;
 #define Icebox (current_container->otyp == ICE_BOX)
 
+/*JP
 static const char moderateloadmsg[] = "You have a little trouble lifting";
+*/
+static const char moderateloadmsg[] = "\82ð\8e\9d\82Á\82½\82ç\8f­\82µ\82Ó\82ç\82Â\82¢\82½\81D";
+/*JP
 static const char nearloadmsg[] = "You have much trouble lifting";
+*/
+static const char nearloadmsg[] = "\82Í\82¸\82Á\82µ\82è\82Æ\8c¨\82É\82Ì\82µ\82©\82©\82Á\82½\81D";
+/*JP
 static const char overloadmsg[] = "You have extreme difficulty lifting";
+*/
+static const char overloadmsg[] = "\82ð\8e\9d\82¿\82 \82°\82é\82Ì\82Í\82Æ\82Ä\82à\82Â\82ç\82¢\81D";
 
 /* BUG: this lets you look at cockatrice corpses while blind without
    touching them */
@@ -135,6 +149,11 @@ int *itemcount;
  *     "?/a" or "a?/" or "/a?",&c picks all '?' even though no '/'
  *         (ie, treated as if it had just been "?a").
  */
+/*JP CHECK: 3.4.3 \82Å\82Ì\8cÄ\82Ñ\8fo\82µ\8c³
+pickup.c:572:("\8fE\82¤")   if (!query_classes(oclasses, &selective, &all_of_a_type,
+pickup.c:2604:("\8eæ\82è\8fo\82·")    if (query_classes(select, &one_by_one, &allflag,
+pickup.c:2704:("\93ü\82ê\82é")        if (query_classes(select, &one_by_one, &allflag, "\93ü\82ê\82é",
+*/
 STATIC_OVL boolean
 query_classes(oclasses, one_at_a_time, everything, action, objs, here,
               menu_on_demand)
@@ -183,8 +202,13 @@ int *menu_on_demand;
         oclasses[oclassct = 0] = '\0';
         *one_at_a_time = *everything = FALSE;
         not_everything = FALSE;
+#if 0 /*JP*/
         Sprintf(qbuf, "What kinds of thing do you want to %s? [%s]", action,
                 ilets);
+#else
+        Sprintf(qbuf,"\82Ç\82Ì\8eí\97Þ\82Ì\82à\82Ì\82ð%s\82©\81H[%s]", jpolite(action),
+                ilets);
+#endif
         getlin(qbuf, inbuf);
         if (*inbuf == '\033')
             return FALSE;
@@ -218,13 +242,28 @@ int *menu_on_demand;
                 } else {
                     if (!where)
                         where =
+/*JP
                             !strcmp(action, "pick up")
+*/
+                            !strcmp(action, "\8fE\82¤")
+/*JP
                                 ? "here"
+*/
+                                ? "\82±\82±"
+/*JP
                                 : !strcmp(action, "take out") ? "inside" : "";
+*/
+                                : !strcmp(action, "\8eæ\82è\8fo\82·") ? "\82Ì\92\86" : "";
                     if (*where)
+/*JP
                         There("are no %c's %s.", sym, where);
+*/
+                        pline("%c\82Í%s\82É\82È\82¢\81D", sym, where);
                     else
+/*JP
                         You("have no %c's.", sym);
+*/
+                        You("%c\82Í\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", sym);
                     not_everything = TRUE;
                 }
             }
@@ -258,7 +297,10 @@ boolean remotely;
         return FALSE;
     }
 
+/*JP
     pline("Touching %s is a fatal mistake.",
+*/
+    pline("%s\82É\90G\82ê\82é\82Ì\82Í\92v\96½\93I\82È\8aÔ\88á\82¢\82¾\81D",
           corpse_xname(obj, (const char *) 0, CXN_SINGULAR | CXN_ARTICLE));
     instapetrify(killer_xname(obj));
     return TRUE;
@@ -273,8 +315,14 @@ boolean remotely;
     if (!obj || obj->otyp != CORPSE || !is_rider(&mons[obj->corpsenm]))
         return FALSE;
 
+/*JP
     pline("At your %s, the corpse suddenly moves...",
+*/
+    pline("\82 \82È\82½\82ª%s\82é\82Æ\93Ë\91R\8e\80\91Ì\82ª\93®\82«\8fo\82µ\82½\81D\81D\81D",
+/*JP
           remotely ? "attempted acquisition" : "touch");
+*/
+          remotely ? "\8al\93¾\82µ\82æ\82¤\82Æ\82·" : "\90G");
     (void) revive_corpse(obj);
     exercise(A_WIS, FALSE);
     return TRUE;
@@ -504,7 +552,10 @@ int what; /* should be a long */
         }
         if (notake(youmonst.data)) {
             if (!autopickup)
+/*JP
                 You("are physically incapable of picking anything up.");
+*/
+                You("\95¨\97\9d\93I\82É\8fE\82¢\82 \82°\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
             else
                 check_here(FALSE);
             return 0;
@@ -539,7 +590,10 @@ int what; /* should be a long */
         /* use menus exclusively */
         if (count) { /* looking for N of something */
             char buf[QBUFSZ];
+/*JP
             Sprintf(buf, "Pick %d of what?", count);
+*/
+            Sprintf(buf, "\89½\82ð%d\8cÂ\8fE\82¢\82Ü\82·\82©\81H", count);
             val_for_n_or_more = count; /* set up callback selector */
             n = query_objlist(buf, objchain, traverse_how | AUTOSELECT_SINGLE
                                                  | INVORDER_SORT,
@@ -548,7 +602,10 @@ int what; /* should be a long */
             for (i = 0; i < n; i++)
                 pick_list[i].count = count;
         } else {
+/*JP
             n = query_objlist("Pick up what?", objchain,
+*/
+            n = query_objlist("\89½\82ð\8fE\82¢\82Ü\82·\82©\81H", objchain,
                               traverse_how | AUTOSELECT_SINGLE | INVORDER_SORT
                                   | FEEL_COCKATRICE,
                               &pick_list, PICK_ANY, all_but_uchain);
@@ -594,14 +651,23 @@ int what; /* should be a long */
         } else if (ct >= 2) {
             int via_menu = 0;
 
+/*JP
             There("are %s objects here.", (ct <= 10) ? "several" : "many");
+*/
+            pline("\82±\82±\82É\82Í%s\82à\82Ì\82ª\82 \82é\81D", (ct <= 10) ? "\82¢\82­\82Â\82©" : "\91ò\8eR\82Ì");
             if (!query_classes(oclasses, &selective, &all_of_a_type,
+/*JP
                                "pick up", objchain,
+*/
+                               "\8fE\82¤", objchain,
                                traverse_how == BY_NEXTHERE, &via_menu)) {
                 if (!via_menu)
                     return 0;
                 n = query_objlist(
+/*JP
                     "Pick up what?", objchain,
+*/
+                    "\89½\82ð\8fE\82¢\82Ü\82·\82©\81H", objchain,
                     traverse_how | (selective ? 0 : INVORDER_SORT),
                     &pick_list, PICK_ANY,
                     via_menu == -2 ? allow_all : allow_category);
@@ -622,8 +688,13 @@ int what; /* should be a long */
             if (!all_of_a_type) {
                 char qbuf[BUFSZ];
 
+#if 0 /*JP*/
                 (void) safe_qbuf(qbuf, "Pick up ", "?", obj, doname,
                                  ansimpleoname, something);
+#else
+                (void) safe_qbuf(qbuf, "", "\82ð\8fE\82¢\82Ü\82·\82©\81H", obj, doname,
+                                 ansimpleoname, "\82±\82ê");
+#endif
                 switch ((obj->quan < 2L) ? ynaq(qbuf) : ynNaq(qbuf)) {
                 case 'q':
                     goto end_query; /* out 2 levels */
@@ -1001,7 +1072,10 @@ int how;               /* type of query */
         any = zeroany;
         any.a_int = ALL_TYPES_SELECTED;
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  (qflags & WORN_TYPES) ? "All worn types" : "All types",
+*/
+                 (qflags & WORN_TYPES) ? "\90g\82É\82Â\82¯\82é\82à\82Ì\91S\82Ä" : "\91S\82Ä",
                  MENU_UNSELECTED);
         invlet = 'b';
     } else
@@ -1038,7 +1112,10 @@ int how;               /* type of query */
         invlet = 'u';
         any = zeroany;
         any.a_int = 'u';
+/*JP
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items",
+*/
+        add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "\96¢\95¥\82Ì\82à\82Ì",
                  MENU_UNSELECTED);
     }
     /* billed items: checked by caller, so always include if BILLED_TYPES */
@@ -1047,15 +1124,24 @@ int how;               /* type of query */
         any = zeroany;
         any.a_int = 'x';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  "Unpaid items already used up", MENU_UNSELECTED);
+*/
+                 "\96¢\95¥\82Å\8eg\82Á\82Ä\82µ\82Ü\82Á\82½\82à\82Ì", MENU_UNSELECTED);
     }
     if (qflags & CHOOSE_ALL) {
         invlet = 'A';
         any = zeroany;
         any.a_int = 'A';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  (qflags & WORN_TYPES) ? "Auto-select every item being worn"
+*/
+                 (qflags & WORN_TYPES) ? "\90g\82É\82Â\82¯\82ç\82ê\82é\95¨\91S\82Ä"
+/*JP
                                        : "Auto-select every item",
+*/
+                                       : "\91S\82Ä",
                  MENU_UNSELECTED);
     }
     /* items with b/u/c/unknown if there are any */
@@ -1064,28 +1150,40 @@ int how;               /* type of query */
         any = zeroany;
         any.a_int = 'B';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  "Items known to be Blessed", MENU_UNSELECTED);
+*/
+                 "\8fj\95\9f\82³\82ê\82Ä\82¢\82é\82Æ\82í\82©\82Á\82Ä\82¢\82é\82à\82Ì", MENU_UNSELECTED);
     }
     if (do_cursed) {
         invlet = 'C';
         any = zeroany;
         any.a_int = 'C';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  "Items known to be Cursed", MENU_UNSELECTED);
+*/
+                 "\8eô\82í\82ê\82Ä\82¢\82é\82Æ\82í\82©\82Á\82Ä\82¢\82é\82à\82Ì", MENU_UNSELECTED);
     }
     if (do_uncursed) {
         invlet = 'U';
         any = zeroany;
         any.a_int = 'U';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  "Items known to be Uncursed", MENU_UNSELECTED);
+*/
+                 "\8eô\82í\82ê\82Ä\82¢\82È\82¢\82Æ\82í\82©\82Á\82Ä\82¢\82é\82à\82Ì", MENU_UNSELECTED);
     }
     if (do_buc_unknown) {
         invlet = 'X';
         any = zeroany;
         any.a_int = 'X';
         add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
+/*JP
                  "Items of unknown B/C/U status", MENU_UNSELECTED);
+*/
+                        "\8fj\95\9f\81^\8eô\82¢\82ª\82í\82©\82ç\82È\82¢\82à\82Ì", MENU_UNSELECTED);
     }
     end_menu(win, qstr);
     n = select_menu(win, how, pick_list);
@@ -1137,7 +1235,11 @@ int *wt_before, *wt_after;
     int wt, iw, ow, oow;
     long qq, savequan, umoney;
     unsigned saveowt;
+#if 0 /*JP*/
     const char *verb, *prefx1, *prefx2, *suffx;
+#else
+    const char *verb, *prefx1;
+#endif
     char obj_nambuf[BUFSZ], where[BUFSZ];
 
     savequan = obj->quan;
@@ -1227,11 +1329,23 @@ int *wt_before, *wt_after;
         /* some message will be given */
         Strcpy(obj_nambuf, doname(obj));
         if (container) {
+/*JP
             Sprintf(where, "in %s", the(xname(container)));
+*/
+            Sprintf(where, "%s\82Ì\92\86\82É\93ü\82Á\82Ä\82¢\82é", the(xname(container)));
+/*JP
             verb = "carry";
+*/
+            verb = "\89^\82×\82È\82¢";
         } else {
+/*JP
             Strcpy(where, "lying here");
+*/
+            Strcpy(where, "\82±\82±\82É\92u\82¢\82Ä\82 \82é");
+/*JP
             verb = telekinesis ? "acquire" : "lift";
+*/
+            verb = telekinesis ? "\8al\93¾\82Å\82«\82È\82¢" : "\8e\9d\82¿\82 \82°\82ç\82ê\82È\82¢";
         }
     } else {
         /* lint suppression */
@@ -1241,25 +1355,47 @@ int *wt_before, *wt_after;
     /* we can carry qq of them */
     if (qq > 0) {
         if (qq < count)
+#if 0 /*JP*/
             You("can only %s %s of the %s %s.", verb,
                 (qq == 1L) ? "one" : "some", obj_nambuf, where);
+#else
+            You("%s%s\82Ì\82¤\82¿\82Ì%s\82µ\82©%s\81D",
+                where, obj_nambuf, (qq == 1L) ? "\82P\82Â" : "\82¢\82­\82Â\82©", verb);
+#endif
         *wt_after = wt;
         return qq;
     }
 
     if (!container)
+#if 0 /*JP*/
         Strcpy(where, "here"); /* slightly shorter form */
+#else
+        Strcpy(where, "\82±\82±\82É\82Í");  /* slightly shorter form */
+#endif
     if (invent || umoney) {
+#if 0 /*JP*/
         prefx1 = "you cannot ";
         prefx2 = "";
         suffx = " any more";
+#else
+        prefx1 = "\82±\82ê\88È\8fã";
+#endif
     } else {
+#if 0 /*JP*/
         prefx1 = (obj->quan == 1L) ? "it " : "even one ";
         prefx2 = "is too heavy for you to ";
         suffx = "";
+#else
+        prefx1 = "\8fd\82·\82¬\82Ä";
+#endif
     }
+#if 0 /*JP:C*/
     There("%s %s %s, but %s%s%s%s.", otense(obj, "are"), obj_nambuf, where,
           prefx1, prefx2, verb, suffx);
+#else
+    pline("%s%s\82ª\82 \82é\81C\82µ\82©\82µ%s%s\81D",
+          where, obj_nambuf, prefx1, verb);
+#endif
 
     /* *wt_after = iw; */
     return 0L;
@@ -1276,8 +1412,13 @@ boolean telekinesis;
     int result, old_wt, new_wt, prev_encumbr, next_encumbr;
 
     if (obj->otyp == BOULDER && Sokoban) {
+#if 0 /*JP*/
         You("cannot get your %s around this %s.", body_part(HAND),
             xname(obj));
+#else
+        You("%s\82ð%s\82Å\8e\9d\82¿\82 \82°\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D",
+                        xname(obj), body_part(HAND));
+#endif
         return -1;
     }
     /* override weight consideration for loadstone picked up by anybody
@@ -1290,8 +1431,13 @@ boolean telekinesis;
             return 1; /* lift regardless of current situation */
         /* if we reach here, we're out of slots and already have at least
            one of these, so treat this one more like a normal item */
+#if 0 /*JP*/
         You("are carrying too much stuff to pick up %s %s.",
             (obj->quan == 1L) ? "another" : "more", simpleonames(obj));
+#else
+        You("%s\82ð%s\8fE\82¤\82É\82Í\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\82¢\82é\81D",
+            simpleonames(obj), (obj->quan == 1L) ? "\82à\82¤\88ê\82Â" : "\82à\82Á\82Æ");
+#endif
         return -1;
     }
 
@@ -1303,7 +1449,10 @@ boolean telekinesis;
                /* [exception for gold coins will have to change
                    if silver/copper ones ever get implemented] */
                && inv_cnt(FALSE) >= 52 && !merge_choice(invent, obj)) {
+/*JP
         Your("knapsack cannot accommodate any more items.");
+*/
+        Your("\83i\83b\83v\83U\83b\83N\82Í\82±\82ê\88È\8fã\83A\83C\83e\83\80\82ð\8bl\82ß\8d\9e\82ß\82È\82¢\81D");
         result = -1; /* nothing lifted */
     } else {
         result = 1;
@@ -1387,9 +1536,14 @@ boolean telekinesis; /* not picking it up directly by hand */
         else if (!obj->spe && !obj->cursed)
             obj->spe = 1;
         else {
+#if 0 /*JP*/
             pline_The("scroll%s %s to dust as you %s %s up.", plur(obj->quan),
                       otense(obj, "turn"), telekinesis ? "raise" : "pick",
                       (obj->quan == 1L) ? "it" : "them");
+#else
+            pline("\8aª\95¨\82Í\82 \82È\82½\82ª%s\8fã\82°\82é\82Æ\90o\82Æ\82È\82Á\82Ä\82µ\82Ü\82Á\82½\81D",
+                      telekinesis ? "\8e\9d\82¿" : "\8fE\82¢");
+#endif
             if (!(objects[SCR_SCARE_MONSTER].oc_name_known)
                 && !(objects[SCR_SCARE_MONSTER].oc_uname))
                 docall(obj);
@@ -1464,35 +1618,62 @@ encumber_msg()
     if (oldcap < newcap) {
         switch (newcap) {
         case 1:
+/*JP
             Your("movements are slowed slightly because of your load.");
+*/
+            Your("\93®\82«\82Í\89×\95¨\82Ì\82½\82ß\82É\8f­\82µ\92x\82­\82È\82Á\82½\81D");
             break;
         case 2:
+/*JP
             You("rebalance your load.  Movement is difficult.");
+*/
+            You("\89×\95¨\82Ì\92Þ\8d\87\82ð\82Æ\82è\92¼\82µ\82½\82ª\81C\93®\82«\82É\82­\82¢\81D");
             break;
         case 3:
+#if 0 /*JP*/
             You("%s under your heavy load.  Movement is very hard.",
                 stagger(youmonst.data, "stagger"));
+#else
+            You("\89×\95¨\82Ì\8fd\82Ý\82Å\82Ì\82½\82¤\82¿\82Ü\82í\82Á\82½\81D\93®\82­\82Ì\82ª\94ñ\8fí\82É\82«\82Â\82¢\81D");
+#endif
             break;
         default:
+#if 0 /*JP*/
             You("%s move a handspan with this load!",
                 newcap == 4 ? "can barely" : "can't even");
+#else
+            You("\82±\82Ì\8fd\82³\82Å\82Í\8f­\82µ\82à\93®\82¯\82È\82¢\81I");
+#endif
             break;
         }
         context.botl = 1;
     } else if (oldcap > newcap) {
         switch (newcap) {
         case 0:
+/*JP
             Your("movements are now unencumbered.");
+*/
+            Your("\93®\82«\82Í\8ay\82É\82È\82Á\82½\81D");
             break;
         case 1:
+/*JP
             Your("movements are only slowed slightly by your load.");
+*/
+            You("\82¿\82å\82Á\82Æ\93®\82«\82â\82·\82­\82È\82Á\82½\81D");
             break;
         case 2:
+/*JP
             You("rebalance your load.  Movement is still difficult.");
+*/
+            You("\89×\95¨\82Ì\92Þ\8d\87\82ð\82Æ\82è\92¼\82µ\82½\81D\82¾\82ª\82Ü\82¾\93®\82­\82Ì\82Í\82«\82Â\82¢\81D");
             break;
         case 3:
+#if 0 /*JP*/
             You("%s under your load.  Movement is still very hard.",
                 stagger(youmonst.data, "stagger"));
+#else
+            You("\89×\95¨\82Ì\8fd\82Ý\82ª\82¸\82Á\82µ\82è\82Æ\8c¨\82É\82­\82é\81D\82Ü\82¾\93®\82­\82Ì\82ª\94ñ\8fí\82É\82«\82Â\82¢\81D");
+#endif
             break;
         }
         context.botl = 1;
@@ -1527,7 +1708,10 @@ able_to_loot(x, y, looting)
 int x, y;
 boolean looting; /* loot vs tip */
 {
+/*JP
     const char *verb = looting ? "loot" : "tip";
+*/
+    const char *verb = looting ? "\8aJ\82¯\82é" : "\82Ð\82Á\82­\82è\95Ô\82·";
 
     if (!can_reach_floor(TRUE)) {
         if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
@@ -1538,14 +1722,25 @@ boolean looting; /* loot vs tip */
     } else if ((is_pool(x, y) && (looting || !Underwater)) || is_lava(x, y)) {
         /* at present, can't loot in water even when Underwater;
            can tip underwater, but not when over--or stuck in--lava */
+#if 0 /*JP*/
         You("cannot %s things that are deep in the %s.", verb,
             is_lava(x, y) ? "lava" : "water");
+#else
+        You("%s\82É\90[\82­\82É\92¾\82ñ\82¾\82à\82Ì\82ð%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+            is_lava(u.ux, u.uy) ? "\97n\8aâ" : "\90\85", verb);
+#endif
         return FALSE;
     } else if (nolimbs(youmonst.data)) {
+/*JP
         pline("Without limbs, you cannot %s anything.", verb);
+*/
+        pline("\8eè\91«\82ª\82È\82¢\82Ì\82Å\81C%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", verb);
         return FALSE;
     } else if (looting && !freehand()) {
+/*JP
         pline("Without a free %s, you cannot loot anything.",
+*/
+        pline("\8e©\97R\82É\82È\82é%s\82ª\82È\82¢\82Ì\82Å\81C\8aJ\82¯\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
               body_part(HAND));
         return FALSE;
     }
@@ -1575,8 +1770,12 @@ struct obj **cobjp;
     if (!cobj)
         return 0;
     if (cobj->olocked) {
+#if 0 /*JP*/
         pline("%s locked.",
               cobj->lknown ? "It is" : "Hmmm, it turns out to be");
+#else
+        pline("%s\8c®\82ª\82©\82©\82Á\82Ä\82¢\82é\81D", cobj->lknown ? "" : "\82Þ\81[\82ñ\81C");
+#endif
         cobj->lknown = 1;
         return 0;
     }
@@ -1584,15 +1783,27 @@ struct obj **cobjp;
 
     if (cobj->otyp == BAG_OF_TRICKS) {
         int tmp;
+/*JP
         You("carefully open the bag...");
+*/
+        You("\90T\8fd\82É\8a\93\82ð\8aJ\82¯\82½\81D\81D\81D");
+/*JP
         pline("It develops a huge set of teeth and bites you!");
+*/
+        pline("\8a\93\82©\82ç\91å\82«\82È\8e\95\82ª\90\82¦\82Ä\82«\82Ä\81C\82 \82È\82½\82ð\8a\9a\82ñ\82¾\81I");
         tmp = rnd(10);
+/*JP
         losehp(Maybe_Half_Phys(tmp), "carnivorous bag", KILLED_BY_AN);
+*/
+        losehp(Maybe_Half_Phys(tmp), "\90H\93÷\8a\93\82É\8a\9a\82Ü\82ê\82Ä", KILLED_BY_AN);
         makeknown(BAG_OF_TRICKS);
         return 1;
     }
 
+/*JP
     You("%sopen %s...", (!cobj->cknown || !cobj->lknown) ? "carefully " : "",
+*/
+    You("%s%s\82ð\8aJ\82¯\82½\81D\81D\81D", (!cobj->cknown || !cobj->lknown) ? "\90T\8fd\82É" : "",
         the(xname(cobj)));
     return use_container(cobjp, 0);
 }
@@ -1606,7 +1817,9 @@ doloot()
     int timepassed = 0;
     coord cc;
     boolean underfoot = TRUE;
+#if 0 /*JP*/
     const char *dont_find_anything = "don't find anything";
+#endif
     struct monst *mtmp;
     char qbuf[BUFSZ];
     int prev_inquiry = 0;
@@ -1618,7 +1831,11 @@ doloot()
         return 0;
     }
     if (nohands(youmonst.data)) {
+#if 0 /*JP*/
         You("have no hands!"); /* not `body_part(HAND)' */
+#else
+        pline("\82 \82È\82½\82É\82Í\8eè\82ª\82È\82¢\81I");
+#endif
         return 0;
     }
     if (Confusion) {
@@ -1658,7 +1875,10 @@ lootcont:
                     add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
                              doname(cobj), MENU_UNSELECTED);
                 }
+/*JP
             end_menu(win, "Loot which containers?");
+*/
+            end_menu(win, "\82Ç\82ê\82ð\8aJ\82¯\82Ü\82·\82©\81H");
             n = select_menu(win, PICK_ANY, &pick_list);
             destroy_nhwindow(win);
 
@@ -1680,9 +1900,15 @@ lootcont:
                 nobj = cobj->nexthere;
 
                 if (Is_container(cobj)) {
+#if 0 /*JP*/
                     c = ynq(safe_qbuf(qbuf, "There is ", " here, loot it?",
                                       cobj, doname, ansimpleoname,
                                       "a container"));
+#else
+                    c = ynq(safe_qbuf(qbuf, "\82±\82±\82É\82Í", "\82ª\82 \82é\81C\8aJ\82¯\82Ü\82·\82©\81H",
+                                      cobj, doname, ansimpleoname,
+                                      "\93ü\82ê\95¨"));
+#endif
                     if (c == 'q')
                         return timepassed;
                     if (c == 'n')
@@ -1700,14 +1926,23 @@ lootcont:
                 c = 'y';
         }
     } else if (IS_GRAVE(levl[cc.x][cc.y].typ)) {
+/*JP
         You("need to dig up the grave to effectively loot it...");
+*/
+        You("\95æ\8dr\82ç\82µ\82ð\82·\82é\82É\82Í\8c@\82ç\82È\82­\82Ä\82Í\81D\81D\81D");
     }
     /*
      * 3.3.1 introduced directional looting for some things.
      */
     if (c != 'y' && mon_beside(u.ux, u.uy)) {
+/*JP
         if (!get_adjacent_loc("Loot in what direction?",
+*/
+        if (!get_adjacent_loc("\82Ç\82Ì\95û\8cü\82ð\92²\82×\82é\81H",
+/*JP
                               "Invalid loot location", u.ux, u.uy, &cc))
+*/
+                              "\96³\8cø\82È\95û\8cü", u.ux, u.uy, &cc))
             return 0;
         if (cc.x == u.ux && cc.y == u.uy) {
             underfoot = TRUE;
@@ -1716,8 +1951,13 @@ lootcont:
         } else
             underfoot = FALSE;
         if (u.dz < 0) {
+#if 0 /*JP*/
             You("%s to loot on the %s.", dont_find_anything,
                 ceiling(cc.x, cc.y));
+#else
+            You("%s\82ð\92²\82×\82½\82ª\89½\82à\82Ý\82Â\82©\82ç\82È\82©\82Á\82½\81D",
+                ceiling(cc.x, cc.y));
+#endif
             timepassed = 1;
             return timepassed;
         }
@@ -1737,21 +1977,40 @@ lootcont:
         if (!underfoot) {
             if (container_at(cc.x, cc.y, FALSE)) {
                 if (mtmp) {
+#if 0 /*JP*/
                     You_cant("loot anything %sthere with %s in the way.",
                              prev_inquiry ? "else " : "", mon_nam(mtmp));
+#else
+                    pline("%s\82ª\82¢\82é\82Ì\82Å%s\94 \82ð\8aJ\82¯\82ç\82ê\82È\82¢\81D",
+                            mon_nam(mtmp), prev_inquiry ? "\82Ù\82©\82Ì" : "");
+#endif
                     return timepassed;
                 } else {
+#if 0 /*JP*/
                     You("have to be at a container to loot it.");
+#else
+                    You("\82Í\94 \82ð\8aJ\82¯\82é\82½\82ß\82É\82Í\93¯\82\88Ê\92u\82É\82¢\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\81D");
+#endif
                 }
             } else {
+#if 0 /*JP*/
                 You("%s %sthere to loot.", dont_find_anything,
                     (prev_inquiry || prev_loot) ? "else " : "");
+#else
+                pline("\82±\82±\82É\82Í%s\8aJ\82¯\82ç\82ê\82é\82à\82Ì\82Í\82È\82¢\81D",
+                    (prev_inquiry || prev_loot) ? "\82Ù\82©\82É" : "");
+#endif
                 return timepassed;
             }
         }
     } else if (c != 'y' && c != 'n') {
+#if 0 /*JP*/
         You("%s %s to loot.", dont_find_anything,
             underfoot ? "here" : "there");
+#else
+        pline("%s\82É\82Í\8aJ\82¯\82ç\82ê\82é\82à\82Ì\82Í\82È\82¢\81D",
+            underfoot ? "\82±\82±" : "\82»\82±");
+#endif
     }
     return timepassed;
 }
@@ -1791,7 +2050,10 @@ reverse_loot()
         dropx(goldob);
         /* the dropped gold might have fallen to lower level */
         if (g_at(x, y))
+/*JP
             pline("Ok, now there is loot here.");
+*/
+            pline("\83I\81[\83P\81[\81C\82±\82±\82É\98d\98G\82ð\92u\82¢\82Ä\82¨\82±\82¤\81D");
     } else {
         /* find original coffers chest if present, otherwise use nearest one
          */
@@ -1809,7 +2071,10 @@ reverse_loot()
             coffers = otmp;
 
         if (coffers) {
+/*JP
             verbalize("Thank you for your contribution to reduce the debt.");
+*/
+            verbalize("\90Ô\8e\9a\8d\91\8dÂ\95Ô\8dÏ\82Ì\82½\82ß\82Ì\8añ\95t\82É\8a´\8eÓ\82µ\82Ü\82·\81D");
             freeinv(goldob);
             (void) add_to_container(coffers, goldob);
             coffers->owt = weight(coffers);
@@ -1822,7 +2087,10 @@ reverse_loot()
                    (mon = makemon(courtmon(), x, y, NO_MM_FLAGS)) != 0) {
             freeinv(goldob);
             add_to_minv(mon, goldob);
+/*JP
             pline("The exchequer accepts your contribution.");
+*/
+            pline("\8dà\96±\8fÈ\82Í\82 \82È\82½\82Ì\8añ\95t\82ð\8eó\82¯\82Æ\82Á\82½\81D");
             if (!rn2(10))
                 levl[x][y].looted = T_LOOTED;
         } else {
@@ -1855,15 +2123,25 @@ boolean *prev_loot;
         if (passed_info)
             *passed_info = 1;
         Sprintf(
+/*JP
             qbuf, "Do you want to remove the saddle from %s?",
+*/
+            qbuf, "%s\82©\82ç\88Æ\82ð\82Í\82¸\82µ\82Ü\82·\82©\81H",
             x_monnam(mtmp, ARTICLE_THE, (char *) 0, SUPPRESS_SADDLE, FALSE));
         if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') {
             if (nolimbs(youmonst.data)) {
+#if 0 /*JP*/
                 You_cant("do that without limbs."); /* not body_part(HAND) */
+#else
+                You_cant("\8eè\82ª\82È\82¢\82Æ\82Å\82«\82È\82¢\81D");
+#endif
                 return 0;
             }
             if (otmp->cursed) {
+/*JP
                 You("can't.  The saddle seems to be stuck to %s.",
+*/
+                pline("\88Æ\82Í%s\82É\82­\82Á\82Â\82¢\82Ä\82¢\82é\82æ\82¤\82¾\81D",
                     x_monnam(mtmp, ARTICLE_THE, (char *) 0, SUPPRESS_SADDLE,
                              FALSE));
                 /* the attempt costs you time */
@@ -1875,7 +2153,10 @@ boolean *prev_loot;
                 otmp->owornmask = 0L;
                 update_mon_intrinsics(mtmp, otmp, FALSE, FALSE);
             }
+/*JP
             otmp = hold_another_object(otmp, "You drop %s!", doname(otmp),
+*/
+            otmp = hold_another_object(otmp, "%s\82ð\97\8e\82Æ\82µ\82½\81I", doname(otmp),
                                        (const char *) 0);
             timepassed = rnd(3);
             if (prev_loot)
@@ -1934,18 +2215,32 @@ register struct obj *obj;
         impossible("<in> no current_container?");
         return 0;
     } else if (obj == uball || obj == uchain) {
+/*JP
         You("must be kidding.");
+*/
+        pline("\82²\8fç\92k\82ð\81D");
         return 0;
     } else if (obj == current_container) {
+/*JP
         pline("That would be an interesting topological exercise.");
+*/
+        pline("\82»\82ê\82Í\8b»\96¡\82ð\82»\82»\82ç\82ê\82é\83g\83|\83\8d\83W\81[\82Ì\96â\91è\82¾\81D");
         return 0;
     } else if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) {
+#if 0 /*JP*/
         Norep("You cannot %s %s you are wearing.",
               Icebox ? "refrigerate" : "stash", something);
+#else
+        Norep("\90g\82É\82Â\82¯\82Ä\82¢\82é\82à\82Ì\82ð%s\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", 
+              Icebox ? "\97â\93\80\82·\82é" : "\82µ\82Ü\82¤");
+#endif
         return 0;
     } else if ((obj->otyp == LOADSTONE) && obj->cursed) {
         obj->bknown = 1;
+/*JP
         pline_The("stone%s won't leave your person.", plur(obj->quan));
+*/
+        pline("\82Ç\82¤\82¢\82¤\82í\82¯\82©\82»\82Ì\90Î\82ð\82µ\82Ü\82¤\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return 0;
     } else if (obj->otyp == AMULET_OF_YENDOR
                || obj->otyp == CANDELABRUM_OF_INVOCATION
@@ -1955,10 +2250,16 @@ register struct obj *obj;
          * steal them.  It also becomes a pain to check to see if someone
          * has the Amulet.  Ditto for the Candelabrum, the Bell and the Book.
          */
+/*JP
         pline("%s cannot be confined in such trappings.", The(xname(obj)));
+*/
+        pline("%s\82Í\8bl\82ß\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", The(xname(obj)));
         return 0;
     } else if (obj->otyp == LEASH && obj->leashmon != 0) {
+/*JP
         pline("%s attached to your pet.", Tobjnam(obj, "are"));
+*/
+        pline("%s\82Í\83y\83b\83g\82É\95t\82¯\82ç\82ê\82Ä\82¢\82é\81D", xname(obj));
         return 0;
     } else if (obj == uwep) {
         if (welded(obj)) {
@@ -1991,7 +2292,10 @@ register struct obj *obj;
          *  of evaluation of the parameters is undefined.
          */
         Strcpy(buf, the(xname(obj)));
+/*JP
         You("cannot fit %s into %s.", buf, the(xname(current_container)));
+*/
+        pline("%s\82ð%s\82É\8bl\82ß\8d\9e\82Þ\82±\82Æ\82Í\82Å\82«\82È\82¢\81D", buf, the(xname(current_container)));
         return 0;
     }
 
@@ -2025,7 +2329,10 @@ register struct obj *obj;
         }
     } else if (Is_mbag(current_container) && mbag_explodes(obj, 0)) {
         /* explicitly mention what item is triggering the explosion */
+/*JP
         pline("As you put %s inside, you are blasted by a magical explosion!",
+*/
+        pline("%s\82ð\92\86\82É\93ü\82ê\82é\82Æ\81C\82 \82È\82½\82Í\96\82\96@\82Ì\94\9a\94­\82ð\97\81\82Ñ\82½\81I",
               doname(obj));
         /* did not actually insert obj yet */
         if (was_unpaid)
@@ -2039,13 +2346,19 @@ register struct obj *obj;
         else
             panic("in_container:  bag not found.");
 
+/*JP
         losehp(d(6, 6), "magical explosion", KILLED_BY_AN);
+*/
+        losehp(d(6, 6), "\96\82\96@\82Ì\94\9a\94­\82Å", KILLED_BY_AN);
         current_container = 0; /* baggone = TRUE; */
     }
 
     if (current_container) {
         Strcpy(buf, the(xname(current_container)));
+/*JP
         You("put %s into %s.", doname(obj), buf);
+*/
+        You("%s\82ð%s\82Ì\92\86\82É\82µ\82Ü\82Á\82½\81D", doname(obj), buf);
 
         /* gold in container always needs to be added to credit */
         if (floor_container && obj->oclass == COIN_CLASS)
@@ -2122,8 +2435,14 @@ register struct obj *obj;
     otmp = addinv(obj);
     loadlev = near_capacity();
     prinv(loadlev
+/*JP
               ? (loadlev < MOD_ENCUMBER ? "You have a little trouble removing"
+*/
+              ? (loadlev < MOD_ENCUMBER ? "\82ð\89^\82Ô\82Ì\82Í\8f­\81X\8d¢\93ï\82¾\81D"
+/*JP
                                         : "You have much trouble removing")
+*/
+                                        : "\82ð\89^\82Ô\82Ì\82Í\82©\82È\82è\8d¢\93ï\82¾\81D")
               : (char *) 0,
           otmp, count);
 
@@ -2143,9 +2462,16 @@ struct obj *item;
     long loss = 0L;
 
     if (item->dknown)
+/*JP
         pline("%s %s vanished!", Doname2(item), otense(item, "have"));
+*/
+        pline("%s\82Í\8fÁ\82¦\8b\8e\82Á\82½\81I", Doname2(item));
     else
+#if 0 /*JP*/
         You("%s %s disappear!", Blind ? "notice" : "see", doname(item));
+#else
+        You("%s\82ª\8c©\82¦\82È\82­\82È\82é\82Ì%s\81D", doname(item), Blind ? "\82É\8bC\82Ã\82¢\82½" : "\82ð\8c©\82½");
+#endif
 
     if (*u.ushops && (shkp = shop_keeper(*u.ushops)) != 0) {
         if (held ? (boolean) item->unpaid : costly_spot(u.ux, u.uy))
@@ -2160,7 +2486,10 @@ STATIC_OVL void
 observe_quantum_cat(box)
 struct obj *box;
 {
+/*JP
     static NEARDATA const char sc[] = "Schroedinger's Cat";
+*/
+    static NEARDATA const char sc[] = "\83V\83\85\83\8c\83f\83B\83\93\83K\81[\82Ì\94L";
     struct obj *deadcat;
     struct monst *livecat;
     xchar ox, oy;
@@ -2180,9 +2509,15 @@ struct obj *box;
         livecat->mpeaceful = 1;
         set_malign(livecat);
         if (!canspotmon(livecat))
+/*JP
             You("think %s brushed your %s.", something, body_part(FOOT));
+*/
+            You("%s\82ª\82 \82È\82½\82Ì%s\82ð\82­\82·\82®\82Á\82½\81D", something, body_part(FOOT));
         else
+/*JP
             pline("%s inside the box is still alive!", Monnam(livecat));
+*/
+            pline("\94 \82Ì\82È\82©\82Ì%s\82Í\82Ü\82¾\90\82«\82Ä\82¢\82é\81I", Monnam(livecat));
         (void) christen_monst(livecat, sc);
     } else {
         deadcat =
@@ -2191,8 +2526,13 @@ struct obj *box;
             obj_extract_self(deadcat);
             (void) add_to_container(box, deadcat);
         }
+#if 0 /*JP*/
         pline_The("%s inside the box is dead!",
                   Hallucination ? rndmonnam(NULL) : "housecat");
+#else
+        pline_The("\94 \82Ì\92\86\82Ì%s\82Í\8e\80\82ñ\82Å\82¢\82é\81I",
+                  Hallucination ? rndmonnam(NULL) : "\94L");
+#endif
     }
     box->owt = weight(box);
     return;
@@ -2214,12 +2554,21 @@ STATIC_OVL void
 explain_container_prompt()
 {
     static const char *const explaintext[] = {
+#if 0 /*JP*/
         "Container actions:", "", " : -- Look: examine contents",
         " o -- Out: take things out", " i -- In: put things in",
         " b -- Both: first take things out, then put things in",
         " r -- Reversed: put things in, then take things out",
         " s -- Stash: put one item in", " q -- Quit: do nothing",
         " ? -- Help: display this text.", "", 0
+#else
+        "\93ü\82ê\95¨\82Ö\82Ì\8ds\93®\81F", "", " : -- Look: \92\86\90g\82ð\92²\82×\82é",
+        " o -- Out: \95¨\82ð\8fo\82·", " i -- In: \95¨\82ð\93ü\82ê\82é",
+        " b -- Both: \82Ü\82¸\95¨\82ð\8fo\82µ\81A\82»\82ê\82©\82ç\95¨\82ð\93ü\82ê\82é",
+        " r -- Reversed: \95¨\82ð\93ü\82ê\81A\82»\82ê\82©\82ç\95¨\82ð\8fo\82·",
+        " s -- Stash: \95¨\82ð\88ê\82Â\93ü\82ê\82é", " q -- Quit: \89½\82à\82µ\82È\82¢",
+        " ? -- Help: \82±\82ê\82ð\95\\8e¦\82·\82é", "", 0
+#endif
     };
     const char *const *txtpp;
     winid win;
@@ -2237,10 +2586,17 @@ boolean
 u_handsy()
 {
     if (nohands(youmonst.data)) {
+#if 0 /*JP*/
         You("have no hands!"); /* not `body_part(HAND)' */
+#else
+        pline("\82 \82È\82½\82É\82Í\8eè\82ª\82È\82¢\81I");  /* not `body_part(HAND)' */
+#endif
         return FALSE;
     } else if (!freehand()) {
+/*JP
         You("have no free %s.", body_part(HAND));
+*/
+        You("%s\82Ì\8e©\97R\82ª\8cø\82©\82È\82¢\81D", body_part(HAND));
         return FALSE;
     }
     return TRUE;
@@ -2265,14 +2621,23 @@ int held;
         return 0;
 
     if (obj->olocked) {
+/*JP
         pline("%s locked.", Tobjnam(obj, "are"));
+*/
+        pline("%s\82Í\8c®\82ª\82©\82©\82Á\82Ä\82¢\82é\81D", xname(obj));
         if (held)
+/*JP
             You("must put it down to unlock.");
+*/
+            if (held) pline("\89º\82É\92u\82©\82È\82¢\82±\82Æ\82É\82Í\8c®\82ð\82Í\82¸\82¹\82È\82¢\81D");
         obj->lknown = 1;
         return 0;
     } else if (obj->otrapped) {
         if (held)
+/*JP
             You("open %s...", the(xname(obj)));
+*/
+            You("%s\82ð\8aJ\82¯\82½\81D\81D\81D", the(xname(obj)));
         obj->lknown = 1;
         (void) chest_trap(obj, HAND, FALSE);
         /* even if the trap fails, you've used up this turn */
@@ -2309,15 +2674,23 @@ int held;
             }
         }
         if (loss)
+/*JP
             You("owe %ld %s for lost merchandise.", loss, currency(loss));
+*/
+            You("\8e¸\82Á\82½\8f¤\95i\82Ì\82½\82ß\82É%ld%s\82Ì\95\89\8dÂ\82ð\95\89\82Á\82½\81D", loss, currency(loss));
         current_container->owt = weight(current_container);
     }
     inokay = (invent != 0
               && !(invent == current_container && !current_container->nobj));
     outokay = Has_contents(current_container);
     if (!outokay) /* preformat the empty-container message */
+#if 0 /*JP:T*/
         Sprintf(emptymsg, "%s is %sempty.", Ysimple_name2(current_container),
                 (quantum_cat || cursed_mbag) ? "now " : "");
+#else
+        Sprintf(emptymsg, "%s\82Í%s\8bó\82Á\82Û\82¾\81D", Ysimple_name2(current_container),
+                (quantum_cat || cursed_mbag) ? "\8d¡\82Í" : "");
+#endif
 
     /*
      * What-to-do prompt's list of possible actions:
@@ -2814,7 +3187,10 @@ dotip()
     if (cobj->oclass == POTION_CLASS) /* can't pour potions... */
         pline_The("%s %s securely sealed.", xname(cobj), otense(cobj, "are"));
     else if (cobj->otyp == STATUE)
+/*JP
         pline("Nothing interesting happens.");
+*/
+        pline("\96Ê\94\92\82¢\82±\82Æ\82Í\89½\82à\8bN\82«\82È\82©\82Á\82½\81D");
     else
         pline1(nothing_happens);
     return 0;
index ce4b607..9ae7b8e 100644 (file)
@@ -159,7 +159,10 @@ VA_DECL(const char *, line)
     char *tmp;
     VA_START(line);
     VA_INIT(line, const char *);
+/*JP
     vpline(YouMessage(tmp, "You ", line), VA_ARGS);
+*/
+    vpline(YouMessage(tmp, "\82 \82È\82½\82Í", line), VA_ARGS);
     VA_END();
 }
 
@@ -170,7 +173,10 @@ VA_DECL(const char *, line)
     char *tmp;
     VA_START(line);
     VA_INIT(line, const char *);
+/*JP
     vpline(YouMessage(tmp, "Your ", line), VA_ARGS);
+*/
+    vpline(YouMessage(tmp, "\82 \82È\82½\82Ì", line), VA_ARGS);
     VA_END();
 }
 
@@ -182,9 +188,15 @@ VA_DECL(const char *, line)
     VA_START(line);
     VA_INIT(line, const char *);
     if (Unaware)
+/*JP
         YouPrefix(tmp, "You dream that you feel ", line);
+*/
+        YouPrefix(tmp, "\82 \82È\82½\82Í\96²\82Ì\92\86\82Å", line);
     else
+/*JP
         YouPrefix(tmp, "You feel ", line);
+*/
+        YouPrefix(tmp, "\82 \82È\82½\82Í", line);
     vpline(strcat(tmp, line), VA_ARGS);
     VA_END();
 }
@@ -196,7 +208,10 @@ VA_DECL(const char *, line)
     char *tmp;
     VA_START(line);
     VA_INIT(line, const char *);
+/*JP
     vpline(YouMessage(tmp, "You can't ", line), VA_ARGS);
+*/
+    vpline(YouMessage(tmp, "\82 \82È\82½\82Í", line), VA_ARGS);
     VA_END();
 }
 
@@ -207,7 +222,10 @@ VA_DECL(const char *, line)
     char *tmp;
     VA_START(line);
     VA_INIT(line, const char *);
+/*JP
     vpline(YouMessage(tmp, "The ", line), VA_ARGS);
+*/
+    vpline(YouMessage(tmp, "", line), VA_ARGS);
     VA_END();
 }
 
@@ -218,7 +236,10 @@ VA_DECL(const char *, line)
     char *tmp;
     VA_START(line);
     VA_INIT(line, const char *);
+/*JP
     vpline(YouMessage(tmp, "There ", line), VA_ARGS);
+*/
+    vpline(YouMessage(tmp, "", line), VA_ARGS);
     VA_END();
 }
 
@@ -227,11 +248,16 @@ void You_hear
 VA_DECL(const char *, line)
 {
     char *tmp;
+#if 1 /*JP*/
+        char *adj;
+        char *p;
+#endif
 
     if (Deaf || !flags.acoustics)
         return;
     VA_START(line);
     VA_INIT(line, const char *);
+#if 0 /*JP*/
     if (Underwater)
         YouPrefix(tmp, "You barely hear ", line);
     else if (Unaware)
@@ -239,6 +265,29 @@ VA_DECL(const char *, line)
     else
         YouPrefix(tmp, "You hear ", line);
     vpline(strcat(tmp, line), VA_ARGS);
+#else
+    if (Underwater)
+        adj = "\82©\82·\82©\82É";
+    else if (Unaware)
+        adj = "\96²\82Ì\92\86\82Å";
+    else
+        adj = "";
+    tmp = You_buf(strlen(adj) + strlen(line) + sizeof("\82 \82È\82½\82Í   "));
+
+    p = (char *)strstr(line, "\95·\82±") ;
+    if (p == NULL)
+        Strcpy(tmp, "\82 \82È\82½\82Í");
+    else
+        Strcpy(tmp, "");
+    if (p != NULL || (p = (char *)strstr(line, "\95·\82¢")) != NULL){
+        strncat(tmp, line, (p - line));
+        strcat(tmp, adj);
+        strcat(tmp, p);
+    } else {
+        Strcat(tmp, line);
+    }
+    vpline(tmp, VA_ARGS);
+#endif
     VA_END();
 }
 
@@ -251,11 +300,19 @@ VA_DECL(const char *, line)
     VA_START(line);
     VA_INIT(line, const char *);
     if (Unaware)
+/*JP
         YouPrefix(tmp, "You dream that you see ", line);
+*/
+        YouPrefix(tmp, "\82 \82È\82½\82Í\96²\82Ì\92\86\82Å", line);
+#if 0 /*JP*//*\82±\82±\82Í\8cÄ\82Ñ\8fo\82µ\8c³\82Å\8f\88\97\9d\82·\82é?*/
     else if (Blind) /* caller should have caught this... */
         YouPrefix(tmp, "You sense ", line);
+#endif
     else
+/*JP
         YouPrefix(tmp, "You see ", line);
+*/
+        YouPrefix(tmp, "\82 \82È\82½\82Í", line);
     vpline(strcat(tmp, line), VA_ARGS);
     VA_END();
 }
@@ -272,10 +329,17 @@ VA_DECL(const char *, line)
 
     VA_START(line);
     VA_INIT(line, const char *);
+#if 0 /*JP*/
     tmp = You_buf((int) strlen(line) + sizeof "\"\"");
     Strcpy(tmp, "\"");
     Strcat(tmp, line);
     Strcat(tmp, "\"");
+#else
+    tmp = You_buf((int) strlen(line) + sizeof "\81u\81v");
+    Strcpy(tmp, "\81u");
+    Strcat(tmp, line);
+    Strcat(tmp, "\81v");
+#endif
     vpline(tmp, VA_ARGS);
     VA_END();
 }
@@ -348,7 +412,10 @@ VA_DECL(const char *, s)
     pbuf[BUFSZ - 1] = '\0'; /* sanity */
     paniclog("impossible", pbuf);
     pline("%s", pbuf);
+/*JP
     pline("Program in disorder - perhaps you'd better #quit.");
+*/
+    pline("\83v\83\8d\83O\83\89\83\80\82É\8fá\8aQ\94­\90¶ - #quit\82µ\82½\82Ù\82¤\82ª\82æ\82³\82»\82¤\82¾\81D");
     program_state.in_impossible = 0;
     VA_END();
 }
@@ -359,15 +426,30 @@ aligntyp alignment;
 {
     switch ((int) alignment) {
     case A_CHAOTIC:
+/*JP
         return "chaotic";
+*/
+        return "\8d¬\93×";
     case A_NEUTRAL:
+/*JP
         return "neutral";
+*/
+        return "\92\86\97§";
     case A_LAWFUL:
+/*JP
         return "lawful";
+*/
+        return "\92\81\8f\98";
     case A_NONE:
+/*JP
         return "unaligned";
+*/
+        return "\96³\90S";
     }
+/*JP
     return "unknown";
+*/
+    return "\95s\96¾";
 }
 
 void
@@ -379,7 +461,10 @@ register struct monst *mtmp;
 
     info[0] = 0;
     if (mtmp->mtame) {
+/*JP
         Strcat(info, ", tame");
+*/
+        Strcat(info, ", \8e\94\82¢\82È\82ç\82³\82ê\82Ä\82¢\82é");
         if (wizard) {
             Sprintf(eos(info), " (%d", mtmp->mtame);
             if (!mtmp->isminion)
@@ -388,14 +473,23 @@ register struct monst *mtmp;
             Strcat(info, ")");
         }
     } else if (mtmp->mpeaceful)
+/*JP
         Strcat(info, ", peaceful");
+*/
+        Strcat(info, ", \97F\8dD\93I");
     if (mtmp->cham >= LOW_PM && mtmp->data != &mons[mtmp->cham])
         /* don't reveal the innate form (chameleon, vampire, &c),
            just expose the fact that this current form isn't it */
+/*JP
         Strcat(info, ", shapechanger");
+*/
+      
     /* pets eating mimic corpses mimic while eating, so this comes first */
     if (mtmp->meating)
+/*JP
         Strcat(info, ", eating");
+*/
+        Strcat(info, ", \90H\8e\96\92\86");
     /* a stethoscope exposes mimic before getting here so this
        won't be relevant for it, but wand of probing doesn't */
     if (mtmp->m_ap_type)
@@ -410,38 +504,78 @@ register struct monst *mtmp;
                                 ? an(mons[mtmp->mappearance].mname)
                                 : something); /* impossible... */
     if (mtmp->mcan)
+/*JP
         Strcat(info, ", cancelled");
+*/
+        Strcat(info, ", \96³\97Í");
     if (mtmp->mconf)
+/*JP
         Strcat(info, ", confused");
+*/
+        Strcat(info, ", \8d¬\97\90\8fó\91Ô");
     if (mtmp->mblinded || !mtmp->mcansee)
+/*JP
         Strcat(info, ", blind");
+*/
+        Strcat(info, ", \96Ó\96Ú");
     if (mtmp->mstun)
+/*JP
         Strcat(info, ", stunned");
+*/
+        Strcat(info, ", \82­\82ç\82­\82ç\8fó\91Ô");
     if (mtmp->msleeping)
+/*JP
         Strcat(info, ", asleep");
+*/
+        Strcat(info, ", \90\87\96°\8fó\91Ô");
 #if 0 /* unfortunately mfrozen covers temporary sleep and being busy \
          (donning armor, for instance) as well as paralysis */
-       else if (mtmp->mfrozen)   Strcat(info, ", paralyzed");
+        else if (mtmp->mfrozen)   Strcat(info, ", paralyzed");
 #else
     else if (mtmp->mfrozen || !mtmp->mcanmove)
+/*JP
         Strcat(info, ", can't move");
+*/
+        Strcat(info, ", \93®\82¯\82È\82¢");
 #endif
     /* [arbitrary reason why it isn't moving] */
     else if (mtmp->mstrategy & STRAT_WAITMASK)
+/*JP
         Strcat(info, ", meditating");
+*/
+        Strcat(info, ", \96»\91z\92\86");
     if (mtmp->mflee)
+/*JP
         Strcat(info, ", scared");
+*/
+        Strcat(info, ", \8b¯\82¦\82Ä\82¢\82é");
     if (mtmp->mtrapped)
+/*JP
         Strcat(info, ", trapped");
+*/
+        Strcat(info, ", ã©\82É\82©\82©\82Á\82Ä\82¢\82é");
     if (mtmp->mspeed)
+#if 0 /*JP:T*/
         Strcat(info, mtmp->mspeed == MFAST ? ", fast" : mtmp->mspeed == MSLOW
                                                             ? ", slow"
                                                             : ", ???? speed");
+#else
+        Strcat(info, mtmp->mspeed == MFAST ? ", \91f\91\81\82¢" : mtmp->mspeed == MSLOW
+                                                            ? ", \92x\82¢"
+                                                            : ", \91¬\93x\95s\96¾");
+#endif
     if (mtmp->mundetected)
+/*JP
         Strcat(info, ", concealed");
+*/
+        Strcat(info, ", \89B\82ê\82Ä\82¢\82é");
     if (mtmp->minvis)
+/*JP
         Strcat(info, ", invisible");
+*/
+        Strcat(info, ", \95s\89Â\8e\8b");
     if (mtmp == u.ustuck)
+#if 0 /*JP:T*/
         Strcat(info, sticks(youmonst.data)
                          ? ", held by you"
                          : !u.uswallow ? ", holding you"
@@ -451,15 +585,32 @@ register struct monst *mtmp;
                                              : is_animal(u.ustuck->data)
                                                    ? ", swallowing you"
                                                    : ", engulfing you");
+#else
+      Strcat(info,  sticks(youmonst.data)
+                         ? ", \82 \82È\82½\82ª\92Í\82Ü\82¦\82Ä\82¢\82é"
+                         : !u.uswallow ? ", \92Í\82Ü\82¦\82Ä\82¢\82é"
+                                       : attacktype_fordmg(u.ustuck->data,
+                                                           AT_ENGL, AD_DGST)
+                                             ? ", \8fÁ\89»\82µ\82Ä\82¢\82é"
+                                             : is_animal(u.ustuck->data)
+                                                   ? ", \88ù\82Ý\8d\9e\82ñ\82Å\82¢\82é"
+                                                   : ", \8aª\82«\8d\9e\82ñ\82Å\82¢\82é");
+#endif
     if (mtmp == u.usteed)
+/*JP
         Strcat(info, ", carrying you");
+*/
+        Strcat(info, ", \82 \82È\82½\82ð\8fæ\82¹\82Ä\82¢\82é");
 
     /* avoid "Status of the invisible newt ..., invisible" */
     /* and unlike a normal mon_nam, use "saddled" even if it has a name */
     Strcpy(monnambuf, x_monnam(mtmp, ARTICLE_THE, (char *) 0,
                                (SUPPRESS_IT | SUPPRESS_INVISIBLE), FALSE));
 
+/*JP
     pline("Status of %s (%s):  Level %d  HP %d(%d)  AC %d%s.", monnambuf,
+*/
+    pline("%s\82Ì\8fó\91Ô (%s)\81F Level %d  HP %d(%d)  AC %d%s", monnambuf,
           align_str(alignment), mtmp->m_lev, mtmp->mhp, mtmp->mhpmax,
           find_mac(mtmp), info);
 }
@@ -471,6 +622,7 @@ ustatusline()
 
     info[0] = '\0';
     if (Sick) {
+#if 0 /*JP*/
         Strcat(info, ", dying from");
         if (u.usick_type & SICK_VOMITABLE)
             Strcat(info, " food poisoning");
@@ -479,18 +631,46 @@ ustatusline()
                 Strcat(info, " and");
             Strcat(info, " illness");
         }
+#else
+        Strcat(info, ", ");
+        if (u.usick_type & SICK_VOMITABLE)
+            Strcat(info, "\90H\92\86\93Å");
+        if (u.usick_type & SICK_NONVOMITABLE) {
+            if (u.usick_type & SICK_VOMITABLE)
+                Strcat(info, "\82Æ");
+            Strcat(info, "\95a\8bC");
+        }
+        Strcat(info, "\82Å\8e\80\82É\82Â\82Â\82 \82é");
+#endif
     }
     if (Stoned)
+/*JP
         Strcat(info, ", solidifying");
+*/
+        Strcat(info, ", \90Î\89»\82µ\82Â\82Â\82 \82é");
     if (Slimed)
+/*JP
         Strcat(info, ", becoming slimy");
+*/
+        Strcat(info, ", \83X\83\89\83C\83\80\82É\82È\82è\82Â\82Â\82 \82é");
     if (Strangled)
+/*JP
         Strcat(info, ", being strangled");
+*/
+        Strcat(info, ", \8eñ\82ð\8di\82ß\82ç\82ê\82Ä\82¢\82é");
     if (Vomiting)
+#if 0 /*JP*/
         Strcat(info, ", nauseated"); /* !"nauseous" */
+#else
+        Strcat(info, ", \93f\82«\8bC\82ª\82·\82é");
+#endif
     if (Confusion)
+/*JP
         Strcat(info, ", confused");
+*/
+        Strcat(info, ", \8d¬\97\90\8fó\91Ô");
     if (Blind) {
+#if 0 /*JP*/
         Strcat(info, ", blind");
         if (u.ucreamed) {
             if ((long) u.ucreamed < Blinded || Blindfolded
@@ -498,49 +678,113 @@ ustatusline()
                 Strcat(info, ", cover");
             Strcat(info, "ed by sticky goop");
         } /* note: "goop" == "glop"; variation is intentional */
+#else
+        Strcat(info, ", ");
+        if (u.ucreamed) {
+            Strcat(info, "\82Ë\82Î\82Ë\82Î\82×\82Æ\82Â\82­\82à\82Ì\82Å");
+            if ((long)u.ucreamed < Blinded || Blindfolded
+                || !haseyes(youmonst.data))
+              Strcat(info, "\95¢\82í\82ê\82Ä");
+        }
+        Strcat(info, "\96Ó\96Ú\8fó\91Ô");
+#endif
     }
     if (Stunned)
+/*JP
         Strcat(info, ", stunned");
+*/
+        Strcat(info, ", \82­\82ç\82­\82ç\8fó\91Ô");
     if (!u.usteed && Wounded_legs) {
         const char *what = body_part(LEG);
         if ((Wounded_legs & BOTH_SIDES) == BOTH_SIDES)
             what = makeplural(what);
+/*JP
         Sprintf(eos(info), ", injured %s", what);
+*/
+        Sprintf(eos(info), ", %s\82É\82¯\82ª\82ð\82µ\82Ä\82¢\82é", what);
     }
     if (Glib)
+/*JP
         Sprintf(eos(info), ", slippery %s", makeplural(body_part(HAND)));
+*/
+        Sprintf(eos(info), ", %s\82ª\82Ê\82é\82Ê\82é", makeplural(body_part(HAND)));
     if (u.utrap)
+/*JP
         Strcat(info, ", trapped");
+*/
+        Strcat(info, ", ã©\82É\82©\82©\82Á\82Ä\82¢\82é");
     if (Fast)
+/*JP
         Strcat(info, Very_fast ? ", very fast" : ", fast");
+*/
+        Strcat(info, Very_fast ? ", \82Æ\82Ä\82à\91f\91\81\82¢" : ", \91f\91\81\82¢");
     if (u.uundetected)
+/*JP
         Strcat(info, ", concealed");
+*/
+        Strcat(info, ", \89B\82ê\82Ä\82¢\82é");
     if (Invis)
+/*JP
         Strcat(info, ", invisible");
+*/
+        Strcat(info, ", \95s\89Â\8e\8b");
     if (u.ustuck) {
+#if 0 /*JP*/
         if (sticks(youmonst.data))
             Strcat(info, ", holding ");
         else
             Strcat(info, ", held by ");
         Strcat(info, mon_nam(u.ustuck));
+#else
+        Strcat(info, ", ");
+        Strcat(info, mon_nam(u.ustuck));
+        if (sticks(youmonst.data))
+            Strcat(info, "\82ð\92Í\82Ü\82¦\82Ä\82¢\82é");
+        else
+            Strcat(info, "\82É\92Í\82Ü\82¦\82ç\82ê\82Ä\82¢\82é");
+#endif
     }
 
+/*JP
     pline("Status of %s (%s%s):  Level %d  HP %d(%d)  AC %d%s.", plname,
+*/
+    pline("%s\82Ì\8fó\91Ô (%s %s)\81F Level %d  HP %d(%d)  AC %d%s", plname,
           (u.ualign.record >= 20)
+/*JP
               ? "piously "
+*/
+              ? "\8chåi" 
               : (u.ualign.record > 13)
+/*JP
                     ? "devoutly "
+*/
+                    ? "\90M\90S\90[\82¢" 
                     : (u.ualign.record > 8)
+/*JP
                           ? "fervently "
+*/
+                          ? "\94M\97ó" 
                           : (u.ualign.record > 3)
+/*JP
                                 ? "stridently "
+*/
+                                ? "\90º\82Ì\82©\82ñ\8d\82\82¢" 
                                 : (u.ualign.record == 3)
                                       ? ""
                                       : (u.ualign.record >= 1)
+/*JP
                                             ? "haltingly "
+*/
+                                            ? "\97L\96¼\96³\8eÀ" 
                                             : (u.ualign.record == 0)
+/*JP
                                                   ? "nominally "
+*/
+                                                  ? "\96À\98f" 
+/*JP
                                                   : "insufficiently ",
+*/
+                                                  : "\95s\93K\93\96",
           align_str(u.ualign.type),
           Upolyd ? mons[u.umonnum].mlevel : u.ulevel, Upolyd ? u.mh : u.uhp,
           Upolyd ? u.mhmax : u.uhpmax, u.uac, info);
@@ -549,10 +793,17 @@ ustatusline()
 void
 self_invis_message()
 {
+#if 0 /*JP:T*/
     pline("%s %s.",
           Hallucination ? "Far out, man!  You" : "Gee!  All of a sudden, you",
           See_invisible ? "can see right through yourself"
                         : "can't see yourself");
+#else
+    pline("%s\82 \82È\82½\82Í%s\81D",
+          Hallucination ? "\83\8f\81[\83I\81I" : "\82°\81I\93Ë\91R",
+          See_invisible ? "\8e©\95ª\8e©\90g\82ª\82¿\82á\82ñ\82Æ\8c©\82¦\82È\82­\82È\82Á\82½"
+                        : "\8e©\95ª\8e©\90g\82ª\8c©\82¦\82È\82­\82È\82Á\82½");
+#endif
 }
 
 void
index 4cd01d0..5fb3b9a 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /*
  * Polymorph self routine.
  *
@@ -31,7 +36,10 @@ STATIC_DCL void NDECL(newman);
 STATIC_DCL boolean FDECL(polysense, (struct permonst *));
 
 STATIC_VAR const char no_longer_petrify_resistant[] =
+/*JP
     "No longer petrify-resistant, you";
+*/
+    "\90Î\89»\82Ö\82Ì\92ï\8dR\97Í\82ª\82È\82­\82È\82Á\82Ä\81C\82 \82È\82½\82Í";
 
 /* controls whether taking on new form or becoming new man can also
    change sex (ought to be an arg to polymon() and newman() instead) */
@@ -190,7 +198,10 @@ const char *fmt, *arg;
             Strcpy(killer.name, kptr->name);
         } else {
             killer.format = KILLED_BY;
+/*JP
             Strcpy(killer.name, "self-genocide");
+*/
+            Strcpy(killer.name, "\8e©\8bs\93I\8bs\8eE\82Å");
         }
         dealloc_killer(kptr);
         done(GENOCIDED);
@@ -342,9 +353,15 @@ newman()
         } else {
         dead: /* we come directly here if their experience level went to 0 or
                  less */
+/*JP
             Your("new form doesn't seem healthy enough to survive.");
+*/
+            Your("\90V\82µ\82¢\8ep\82Í\90\82«\82Ä\82¢\82­\82¾\82¯\82Ì\97Í\82ª\82È\82¢\82æ\82¤\82¾\81D");
             killer.format = KILLED_BY_AN;
+/*JP
             Strcpy(killer.name, "unsuccessful polymorph");
+*/
+            Strcpy(killer.name, "\95Ï\89»\82Ì\8e¸\94s\82Å");
             done(DIED);
             newuhs(FALSE);
             (void) polysense(youmonst.data);
@@ -352,13 +369,19 @@ newman()
         }
     }
     newuhs(FALSE);
+/*JP
     polyman("feel like a new %s!",
+*/
+    polyman("%s\82Æ\82µ\82Ä\90\82Ü\82ê\82©\82í\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I",
             /* use saved gender we're about to revert to, not current */
             (u.mfemale && urace.individual.f)
                 ? urace.individual.f
                 : (urace.individual.m) ? urace.individual.m : urace.noun);
     if (Slimed) {
+/*JP
         Your("body transforms, but there is still slime on you.");
+*/
+        Your("\91Ì\82Í\95Ï\89»\82µ\82½\82ª\81C\83X\83\89\83C\83\80\82ª\82Â\82¢\82½\82Ü\82Ü\82¾\81D");
         make_slimed(10L, (const char *) 0);
     }
 
@@ -392,7 +415,10 @@ int psflags;
         && !isvamp) {
         if (rn2(20) > ACURR(A_CON)) {
             You1(shudder_for_moment);
+/*JP
             losehp(rnd(30), "system shock", KILLED_BY_AN);
+*/
+            losehp(rnd(30), "\83V\83X\83e\83\80\83V\83\87\83b\83N\82Å", KILLED_BY_AN);
             exercise(A_CON, FALSE);
             return;
         }
@@ -407,7 +433,10 @@ int psflags;
         tryct = 5;
         do {
             mntmp = NON_PM;
+/*JP
             getlin("Become what kind of monster? [type the name]", buf);
+*/
+            getlin("\82Ç\82Ì\8eí\82Ì\89ö\95¨\82É\82È\82é\81H[\96¼\91O\82ð\93ü\82ê\82Ä\82Ë]", buf);
             (void) mungspaces(buf);
             if (*buf == '\033') {
                 /* user is cancelling controlled poly */
@@ -432,9 +461,15 @@ int psflags;
             }
             if (mntmp < LOW_PM) {
                 if (!class)
+/*JP
                     pline("I've never heard of such monsters.");
+*/
+                    pline("\82»\82ñ\82È\89ö\95¨\82Í\95·\82¢\82½\82±\82Æ\82ª\82È\82¢\81D");
                 else
+/*JP
                     You_cant("polymorph into any of those.");
+*/
+                    pline("\82»\82ê\82É\82È\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
             } else if (iswere && (were_beastie(mntmp) == u.ulycn
                                   || mntmp == counter_were(u.ulycn)
                                   || (Upolyd && mntmp == PM_HUMAN))) {
@@ -484,7 +519,10 @@ int psflags;
                 /* allow G_EXTINCT */
                 if (Is_dragon_scales(uarm)) {
                     /* dragon scales remain intact as uskin */
+/*JP
                     You("merge with your scaly armor.");
+*/
+                    You("\97Ø\82Ì\8aZ\82Æ\88ê\91Ì\89»\82µ\82½\81D");
                 } else { /* dragon scale mail */
                     /* d.scale mail first reverts to scales */
                     char *p, *dsmail;
@@ -586,7 +624,10 @@ int mntmp;
     int mlvl;
 
     if (mvitals[mntmp].mvflags & G_GENOD) { /* allow G_EXTINCT */
+/*JP
         You_feel("rather %s-ish.", mons[mntmp].mname);
+*/
+        You("%s\82Á\82Û\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", mons[mntmp].mname);
         exercise(A_WIS, TRUE);
         return 0;
     }
@@ -634,22 +675,40 @@ int mntmp;
     }
     if (dochange) {
         flags.female = !flags.female;
+#if 0 /*JP*/
         You("%s %s%s!",
             (u.umonnum != mntmp) ? "turn into a" : "feel like a new",
             (is_male(&mons[mntmp]) || is_female(&mons[mntmp]))
                 ? ""
                 : flags.female ? "female " : "male ",
             mons[mntmp].mname);
+#else
+        You("%s%s\82É\82È\82Á\82½%s\81I",
+            (is_male(&mons[mntmp]) || is_female(&mons[mntmp]))
+                ? ""
+                : flags.female ? "\8f\97\82Ì" : "\92j\82Ì",
+            mons[mntmp].mname,
+            (u.umonnum != mntmp) ? "" : "\82æ\82¤\82È\8bC\82ª\82µ\82½");
+#endif
     } else {
         if (u.umonnum != mntmp)
+/*JP
             You("turn into %s!", an(mons[mntmp].mname));
+*/
+            You("%s\82É\82È\82Á\82½\81I", mons[mntmp].mname);
         else
+/*JP
             You_feel("like a new %s!", mons[mntmp].mname);
+*/
+            You("\95Ê\82Ì%s\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I", mons[mntmp].mname);
     }
     if (Stoned && poly_when_stoned(&mons[mntmp])) {
         /* poly_when_stoned already checked stone golem genocide */
         mntmp = PM_STONE_GOLEM;
+/*JP
         make_stoned(0L, "You turn to stone!", 0, (char *) 0);
+*/
+        make_stoned(0L, "\90Î\82É\82È\82Á\82½\81I", 0, (char *) 0);
     }
 
     u.mtimedone = rn1(500, 500);
@@ -663,16 +722,25 @@ int mntmp;
         ABASE(A_STR) = AMAX(A_STR) = STR18(100);
 
     if (Stone_resistance && Stoned) { /* parnes@eniac.seas.upenn.edu */
+/*JP
         make_stoned(0L, "You no longer seem to be petrifying.", 0,
+*/
+        make_stoned(0L, "\90Î\89»\82©\82ç\89ð\95ú\82³\82ê\82½\82æ\82¤\82¾\81D", 0,
                     (char *) 0);
     }
     if (Sick_resistance && Sick) {
         make_sick(0L, (char *) 0, FALSE, SICK_ALL);
+/*JP
         You("no longer feel sick.");
+*/
+        You("\95a\8bC\82©\82ç\89ð\95ú\82³\82ê\82½\82æ\82¤\82¾\81D");
     }
     if (Slimed) {
         if (flaming(youmonst.data)) {
+/*JP
             make_slimed(0L, "The slime burns away!");
+*/
+            make_slimed(0L, "\83X\83\89\83C\83\80\82Í\94R\82¦\82½\81I");
         } else if (mntmp == PM_GREEN_SLIME) {
             /* do it silently */
             make_slimed(0L, (char *) 0);
@@ -747,36 +815,78 @@ int mntmp;
     }
 
     if (flags.verbose) {
+/*JP
         static const char use_thec[] = "Use the command #%s to %s.";
+*/
+        static const char use_thec[] = "#%s\83R\83}\83\93\83h\82Å%s\82±\82Æ\82ª\82Å\82«\82é\81D";
         static const char monsterc[] = "monster";
 
         if (can_breathe(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "use your breath weapon");
+*/
+            pline(use_thec,monsterc, "\91§\82ð\93f\82«\82©\82¯\82é");
         if (attacktype(youmonst.data, AT_SPIT))
+/*JP
             pline(use_thec, monsterc, "spit venom");
+*/
+            pline(use_thec,monsterc, "\93Å\82ð\93f\82­");
         if (youmonst.data->mlet == S_NYMPH)
+/*JP
             pline(use_thec, monsterc, "remove an iron ball");
+*/
+            pline(use_thec,monsterc, "\93S\8b\85\82ð\82Í\82¸\82·");
         if (attacktype(youmonst.data, AT_GAZE))
+/*JP
             pline(use_thec, monsterc, "gaze at monsters");
+*/
+            pline(use_thec,monsterc, "\89ö\95¨\82ðáÉ\82Þ");
         if (is_hider(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "hide");
+*/
+            pline(use_thec,monsterc, "\89B\82ê\82é");
         if (is_were(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "summon help");
+*/
+            pline(use_thec,monsterc, "\92\87\8aÔ\82ð\8f¢\8a«\82·\82é");
         if (webmaker(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "spin a web");
+*/
+            pline(use_thec,monsterc, "\82­\82à\82Ì\91\83\82ð\92£\82é");
         if (u.umonnum == PM_GREMLIN)
+/*JP
             pline(use_thec, monsterc, "multiply in a fountain");
+*/
+            pline(use_thec,monsterc, "\90ò\82Ì\92\86\82Å\95ª\97ô\82·\82é");
         if (is_unicorn(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "use your horn");
+*/
+            pline(use_thec,monsterc, "\8ap\82ð\8eg\82¤");
         if (is_mind_flayer(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "emit a mental blast");
+*/
+            pline(use_thec,monsterc, "\90¸\90_\94g\82ð\94­\90\82³\82¹\82é");
         if (youmonst.data->msound == MS_SHRIEK) /* worthless, actually */
+/*JP
             pline(use_thec, monsterc, "shriek");
+*/
+            pline(use_thec,monsterc, "\8bà\90Ø\82è\90º\82ð\82 \82°\82é");
         if (is_vampire(youmonst.data))
+/*JP
             pline(use_thec, monsterc, "change shape");
+*/
+            pline(use_thec, monsterc, "\8ep\82ð\95Ï\82¦\82é");
 
         if (lays_eggs(youmonst.data) && flags.female)
+/*JP
             pline(use_thec, "sit", "lay an egg");
+*/
+            pline(use_thec, "sit", "\97\91\82ð\8eY\82Þ");
     }
 
     /* you now know what an egg of your type looks like */
@@ -793,23 +903,38 @@ int mntmp;
         && (u.utraptype == TT_INFLOOR || u.utraptype == TT_BURIEDBALL)) {
         u.utrap = 0;
         if (u.utraptype == TT_INFLOOR)
+/*JP
             pline_The("rock seems to no longer trap you.");
+*/
+            pline("\8aâ\82É\95Â\82\8d\9e\82ß\82ç\82ê\82é\82±\82Æ\82Í\82È\82¢\82¾\82ë\82¤\81D");
         else {
+/*JP
             pline_The("buried ball is no longer bound to you.");
+*/
+            pline_The("\96\84\82Ü\82Á\82½\8b\85\82ª\8e×\96\82\82É\82È\82é\82±\82Æ\82Í\82È\82¢\82¾\82ë\82¤\81D");
             buried_ball_to_freedom();
         }
     } else if (likes_lava(youmonst.data) && u.utrap
                && u.utraptype == TT_LAVA) {
         u.utrap = 0;
+/*JP
         pline_The("lava now feels soothing.");
+*/
+        pline("\97n\8aâ\82ª\90¸\90_\82ð\97\8e\82¿\82Â\82©\82¹\82Ä\82­\82ê\82é\81D");
     }
     if (amorphous(youmonst.data) || is_whirly(youmonst.data)
         || unsolid(youmonst.data)) {
         if (Punished) {
+/*JP
             You("slip out of the iron chain.");
+*/
+            You("\93S\82Ì\8d½\82©\82ç\82·\82é\82è\82Æ\94²\82¯\82½\81D");
             unpunish();
         } else if (u.utrap && u.utraptype == TT_BURIEDBALL) {
+/*JP
             You("slip free of the buried ball and chain.");
+*/
+            You("\96\84\82Ü\82Á\82Ä\82¢\82é\8b\85\82Æ\8d½\82©\82ç\82·\82é\82è\82Æ\94²\82¯\82½\81D");
             buried_ball_to_freedom();
         }
     }
@@ -817,13 +942,21 @@ int mntmp;
         && (amorphous(youmonst.data) || is_whirly(youmonst.data)
             || unsolid(youmonst.data) || (youmonst.data->msize <= MZ_SMALL
                                           && u.utraptype == TT_BEARTRAP))) {
+#if 0 /*JP*/
         You("are no longer stuck in the %s.",
             u.utraptype == TT_WEB ? "web" : "bear trap");
+#else
+        You("%s\82©\82ç\92E\8fo\82µ\82½\81D",
+            u.utraptype == TT_WEB ? "\82­\82à\82Ì\91\83" : "\8cF\82Ìã©");
+#endif
         /* probably should burn webs too if PM_FIRE_ELEMENTAL */
         u.utrap = 0;
     }
     if (webmaker(youmonst.data) && u.utrap && u.utraptype == TT_WEB) {
+/*JP
         You("orient yourself on the web.");
+*/
+        You("\82­\82à\82Ì\91\83\82É\93K\89\9e\82µ\82½\81D");
         u.utrap = 0;
     }
     check_strangling(TRUE); /* maybe start strangling */
@@ -852,47 +985,74 @@ break_armor()
         if ((otmp = uarm) != 0) {
             if (donning(otmp))
                 cancel_don();
+/*JP
             You("break out of your armor!");
+*/
+            You("\8aZ\82ð\89ó\82µ\82½\81I");
             exercise(A_STR, FALSE);
             (void) Armor_gone();
             useup(otmp);
         }
         if ((otmp = uarmc) != 0) {
             if (otmp->oartifact) {
+/*JP
                 Your("%s falls off!", cloak_simple_name(otmp));
+*/
+                Your("%s\82Í\92E\82°\97\8e\82¿\82½\81I", cloak_simple_name(otmp));
                 (void) Cloak_off();
                 dropx(otmp);
             } else {
+/*JP
                 Your("%s tears apart!", cloak_simple_name(otmp));
+*/
+                Your("%s\82Í\82¸\82½\82¸\82½\82É\88ø\82«\97ô\82©\82ê\82½\81I", cloak_simple_name(otmp));
                 (void) Cloak_off();
                 useup(otmp);
             }
         }
         if (uarmu) {
+/*JP
             Your("shirt rips to shreds!");
+*/
+            Your("\83V\83\83\83c\82Í\88ø\82«\97ô\82©\82ê\82½\81I");
             useup(uarmu);
         }
     } else if (sliparm(youmonst.data)) {
         if (((otmp = uarm) != 0) && (racial_exception(&youmonst, otmp) < 1)) {
             if (donning(otmp))
                 cancel_don();
+/*JP
             Your("armor falls around you!");
+*/
+            Your("\8aZ\82Í\82 \82È\82½\82Ì\82Ü\82í\82è\82É\97\8e\82¿\82½\81I");
             (void) Armor_gone();
             dropx(otmp);
         }
         if ((otmp = uarmc) != 0) {
             if (is_whirly(youmonst.data))
+/*JP
                 Your("%s falls, unsupported!", cloak_simple_name(otmp));
+*/
+                Your("%s\82Í\82·\82Æ\82ñ\82Æ\97\8e\82¿\82½\81I", cloak_simple_name(otmp));
             else
+/*JP
                 You("shrink out of your %s!", cloak_simple_name(otmp));
+*/
+                You("%s\82©\82ç\8fk\82Ý\8fo\82½\81I", cloak_simple_name(otmp));
             (void) Cloak_off();
             dropx(otmp);
         }
         if ((otmp = uarmu) != 0) {
             if (is_whirly(youmonst.data))
+/*JP
                 You("seep right through your shirt!");
+*/
+                You("\83V\83\83\83c\82©\82ç\82µ\82Ý\8fo\82½\81I");
             else
+/*JP
                 You("become much too small for your shirt!");
+*/
+                You("\83V\83\83\83c\82æ\82è\82¸\82Á\82Æ\8f¬\82³\82­\82È\82Á\82½\81I");
             setworn((struct obj *) 0, otmp->owornmask & W_ARMU);
             dropx(otmp);
         }
@@ -900,17 +1060,26 @@ break_armor()
     if (has_horns(youmonst.data)) {
         if ((otmp = uarmh) != 0) {
             if (is_flimsy(otmp) && !donning(otmp)) {
+#if 0 /*JP*/
                 char hornbuf[BUFSZ];
 
                 /* Future possibilities: This could damage/destroy helmet */
                 Sprintf(hornbuf, "horn%s", plur(num_horns(youmonst.data)));
                 Your("%s %s through %s.", hornbuf, vtense(hornbuf, "pierce"),
                      yname(otmp));
+#else
+                Your("\8ap\82ª%s\82ð\82Â\82ç\82Ê\82¢\82½\81D", yname(otmp));
+#endif
             } else {
                 if (donning(otmp))
                     cancel_don();
+#if 0 /*JP*/
                 Your("%s falls to the %s!", helm_simple_name(otmp),
                      surface(u.ux, u.uy));
+#else
+                Your("%s\82Í%s\82É\97\8e\82¿\82½\81I", helm_simple_name(otmp),
+                     surface(u.ux, u.uy));
+#endif
                 (void) Helmet_off();
                 dropx(otmp);
             }
@@ -921,21 +1090,32 @@ break_armor()
             if (donning(otmp))
                 cancel_don();
             /* Drop weapon along with gloves */
+/*JP
             You("drop your gloves%s!", uwep ? " and weapon" : "");
+*/
+            You("\8f¬\8eè%s\82ð\97\8e\82µ\82½\81I", uwep ? "\82â\95\90\8aí" : "");
             drop_weapon(0);
             (void) Gloves_off();
             dropx(otmp);
         }
         if ((otmp = uarms) != 0) {
+/*JP
             You("can no longer hold your shield!");
+*/
+            You("\82à\82¤\8f\82\82ð\8e\9d\82Á\82Ä\82ç\82ê\82È\82¢\81I");
             (void) Shield_off();
             dropx(otmp);
         }
         if ((otmp = uarmh) != 0) {
             if (donning(otmp))
                 cancel_don();
+#if 0 /*JP*/
             Your("%s falls to the %s!", helm_simple_name(otmp),
                  surface(u.ux, u.uy));
+#else
+            Your("%s\82Í%s\82É\97\8e\82¿\82½\81I", helm_simple_name(otmp),
+                 surface(u.ux, u.uy));
+#endif
             (void) Helmet_off();
             dropx(otmp);
         }
@@ -946,10 +1126,18 @@ break_armor()
             if (donning(otmp))
                 cancel_don();
             if (is_whirly(youmonst.data))
+/*JP
                 Your("boots fall away!");
+*/
+                Your("\8cC\82Í\92E\82°\97\8e\82¿\82½\81I");
             else
+#if 0 /*JP*/
                 Your("boots %s off your feet!",
                      verysmall(youmonst.data) ? "slide" : "are pushed");
+#else
+                Your("\8cC\82Í\82 \82È\82½\82Ì\91«\82©\82ç%s\81I",
+                     verysmall(youmonst.data) ? "\8a\8a\82è\97\8e\82¿\82½" : "\92E\82°\97\8e\82¿\82½");
+#endif
             (void) Boots_off();
             dropx(otmp);
         }
@@ -984,8 +1172,12 @@ int alone;
                 if (uwep->quan != 1L || u.twoweap)
                     which = makeplural(which);
 
+#if 0 /*JP*/
                 You("find you must %s %s %s!", what,
                     the_your[!!strncmp(which, "corpse", 6)], which);
+#else
+                You("%s\82ð\97\8e\82Æ\82µ\82½\82±\82Æ\82É\8bC\82Ã\82¢\82½\81I", what);
+#endif
             }
             if (u.twoweap) {
                 otmp = uswapwep;
@@ -1010,19 +1202,31 @@ rehumanize()
     /* You can't revert back while unchanging */
     if (Unchanging && (u.mh < 1)) {
         killer.format = NO_KILLER_PREFIX;
+/*JP
         Strcpy(killer.name, "killed while stuck in creature form");
+*/
+        Strcpy(killer.name, "\8c³\82Ì\8ep\82Ö\96ß\82ê\82¸\82É");
         done(DIED);
     }
 
     if (emits_light(youmonst.data))
         del_light_source(LS_MONSTER, monst_to_any(&youmonst));
+/*JP
     polyman("return to %s form!", urace.adj);
+*/
+    polyman("%s\82É\96ß\82Á\82½\81I", urace.adj);
 
     if (u.uhp < 1) {
         /* can only happen if some bit of code reduces u.uhp
            instead of u.mh while poly'd */
+/*JP
         Your("old form was not healthy enough to survive.");
+*/
+        Your("\8c³\82Ì\8ep\82Í\90\82«\82Ä\82¢\82­\82¾\82¯\82Ì\97Í\82ª\82È\82¢\81D");
+/*JP
         Sprintf(killer.name, "reverting to unhealthy %s form", urace.adj);
+*/
+        Sprintf(killer.name, "\95s\8c\92\8dN\82È%s\82Ì\8ep\82É\96ß\82Á\82Ä", urace.adj);
         killer.format = KILLED_BY;
         done(DIED);
     }
@@ -1043,11 +1247,17 @@ dobreathe()
     struct attack *mattk;
 
     if (Strangled) {
+/*JP
         You_cant("breathe.  Sorry.");
+*/
+        You_cant("\91§\82ð\93f\82­\82±\82Æ\82ª\82Å\82«\82È\82¢\81D\8ec\94O\81D");
         return 0;
     }
     if (u.uen < 15) {
+/*JP
         You("don't have enough energy to breathe!");
+*/
+        You("\91§\82ð\93f\82­\82Ì\82É\8f\\95ª\82È\83G\83l\83\8b\83M\81[\82ª\82È\82©\82Á\82½\81D");
         return 0;
     }
     u.uen -= 15;
@@ -1102,11 +1312,19 @@ doremove()
 {
     if (!Punished) {
         if (u.utrap && u.utraptype == TT_BURIEDBALL) {
+#if 0 /*JP*/
             pline_The("ball and chain are buried firmly in the %s.",
                       surface(u.ux, u.uy));
+#else
+            pline_The("\8b\85\82Æ\8d½\82Í%s\82É\82µ\82Á\82©\82è\82Æ\96\84\82Ü\82Á\82Ä\82¢\82é\81D.",
+                      surface(u.ux, u.uy));
+#endif
             return 0;
         }
+/*JP
         You("are not chained to anything!");
+*/
+        You("\89½\82à\82Â\82È\82ª\82ê\82Ä\82¢\82È\82¢\81I");
         return 0;
     }
     unpunish();
@@ -1120,11 +1338,17 @@ dospinweb()
 
     if (Levitation || Is_airlevel(&u.uz) || Underwater
         || Is_waterlevel(&u.uz)) {
+/*JP
         You("must be on the ground to spin a web.");
+*/
+        You("\82­\82à\82Ì\91\83\82ð\92£\82é\82É\82Í\92n\96Ê\82Ì\8fã\82É\82¢\82È\82­\82Ä\82Í\82È\82ç\82È\82¢\81D");
         return 0;
     }
     if (u.uswallow) {
+/*JP
         You("release web fluid inside %s.", mon_nam(u.ustuck));
+*/
+        You("%s\82Ì\93à\82Å\82­\82à\82Ì\91\83\82ð\93f\82«\8fo\82µ\82½\81D", mon_nam(u.ustuck));
         if (is_animal(u.ustuck->data)) {
             expels(u.ustuck, u.ustuck->data, TRUE);
             return 0;
@@ -1143,24 +1367,42 @@ dospinweb()
                 sweep[0] = '\0';
                 switch (u.ustuck->data->mattk[i].adtyp) {
                 case AD_FIRE:
+/*JP
                     Strcpy(sweep, "ignites and ");
+*/
+                    Strcpy(sweep, "\94­\89Î\82µ");
                     break;
                 case AD_ELEC:
+/*JP
                     Strcpy(sweep, "fries and ");
+*/
+                    Strcpy(sweep, "\8fÅ\82°");
                     break;
                 case AD_COLD:
+/*JP
                     Strcpy(sweep, "freezes, shatters and ");
+*/
+                    Strcpy(sweep, "\93\80\82è\82Â\82«\81C\82±\82È\82²\82È\82É\82È\82è");
                     break;
                 }
+/*JP
                 pline_The("web %sis swept away!", sweep);
+*/
+                pline("\82­\82à\82Ì\91\83\82Í%s\82È\82­\82È\82Á\82½\81I", sweep);
             }
             return 0;
         } /* default: a nasty jelly-like creature */
+/*JP
         pline_The("web dissolves into %s.", mon_nam(u.ustuck));
+*/
+        pline("\82­\82à\82Ì\91\83\82Í\95ª\89ð\82µ\82Ä%s\82É\82È\82Á\82½\81D", mon_nam(u.ustuck));
         return 0;
     }
     if (u.utrap) {
+/*JP
         You("cannot spin webs while stuck in a trap.");
+*/
+        You("ã©\82É\82Í\82Ü\82Á\82Ä\82¢\82é\8aÔ\82Í\82­\82à\82Ì\91\83\82ð\92£\82ê\82È\82¢\81D");
         return 0;
     }
     exercise(A_DEX, TRUE);
@@ -1168,13 +1410,19 @@ dospinweb()
         switch (ttmp->ttyp) {
         case PIT:
         case SPIKED_PIT:
+/*JP
             You("spin a web, covering up the pit.");
+*/
+            You("\82­\82à\82Ì\91\83\82ð\92£\82è\81C\97\8e\82µ\8c\8a\82ð\95¢\82Á\82½\81D");
             deltrap(ttmp);
             bury_objs(u.ux, u.uy);
             newsym(u.ux, u.uy);
             return 1;
         case SQKY_BOARD:
+/*JP
             pline_The("squeaky board is muffled.");
+*/
+            pline("\82«\82µ\82Þ\94Â\82Í\95¢\82í\82ê\82½\81D");
             deltrap(ttmp);
             newsym(u.ux, u.uy);
             return 1;
@@ -1182,20 +1430,34 @@ dospinweb()
         case LEVEL_TELEP:
         case MAGIC_PORTAL:
         case VIBRATING_SQUARE:
+/*JP
             Your("webbing vanishes!");
+*/
+            Your("\82­\82à\82Ì\91\83\82Í\8fÁ\82¦\82½\81I");
             return 0;
         case WEB:
+/*JP
             You("make the web thicker.");
+*/
+            You("\82­\82à\82Ì\91\83\82ð\82æ\82è\8cú\82­\82µ\82½\81D");
             return 1;
         case HOLE:
         case TRAPDOOR:
+#if 0 /*JP*/
             You("web over the %s.",
                 (ttmp->ttyp == TRAPDOOR) ? "trap door" : "hole");
+#else
+            You("%s\82ð\82­\82à\82Ì\91\83\82Å\95¢\82Á\82½\81D",
+                (ttmp->ttyp == TRAPDOOR) ? "\97\8e\82µ\94à" : "\8c\8a");
+#endif
             deltrap(ttmp);
             newsym(u.ux, u.uy);
             return 1;
         case ROLLING_BOULDER_TRAP:
+/*JP
             You("spin a web, jamming the trigger.");
+*/
+            You("\82­\82à\82Ì\91\83\82ð\92£\82Á\82Ä\81C\83X\83C\83b\83`\82ð\93®\82©\82È\82­\82µ\82½\81D");
             deltrap(ttmp);
             newsym(u.ux, u.uy);
             return 1;
@@ -1210,7 +1472,10 @@ dospinweb()
         case MAGIC_TRAP:
         case ANTI_MAGIC:
         case POLY_TRAP:
+/*JP
             You("have triggered a trap!");
+*/
+            You("ã©\82ð\8en\93®\82³\82¹\82Ä\82µ\82Ü\82Á\82½\81I");
             dotrap(ttmp, 0);
             return 1;
         default:
@@ -1219,8 +1484,13 @@ dospinweb()
         }
     } else if (On_stairs(u.ux, u.uy)) {
         /* cop out: don't let them hide the stairs */
+#if 0 /*JP:T*/
         Your("web fails to impede access to the %s.",
              (levl[u.ux][u.uy].typ == STAIRS) ? "stairs" : "ladder");
+#else
+        Your("\82­\82à\82Ì\91\83\82Í%s\82Ö\82Ì\88Ú\93®\82ð\8e×\96\82\82Å\82«\82È\82¢\81D",
+             (levl[u.ux][u.uy].typ == STAIRS) ? "\8aK\92i" : "\82Í\82µ\82²");
+#endif
         return 1;
     }
     ttmp = maketrap(u.ux, u.uy, WEB);
@@ -1236,16 +1506,25 @@ dosummon()
 {
     int placeholder;
     if (u.uen < 10) {
+/*JP
         You("lack the energy to send forth a call for help!");
+*/
+        You("\8f\95\82¯\82ð\8cÄ\82Ô\82¾\82¯\82Ì\91Ì\97Í\82ª\82È\82¢\81I");
         return 0;
     }
     u.uen -= 10;
     context.botl = 1;
 
+/*JP
     You("call upon your brethren for help!");
+*/
+    You("\92\87\8aÔ\82ð\8cÄ\82ñ\82¾\81I");
     exercise(A_WIS, TRUE);
     if (!were_summon(youmonst.data, TRUE, &placeholder, (char *) 0))
+/*JP
         pline("But none arrive.");
+*/
+        pline("\82µ\82©\82µ\81C\89½\82à\97\88\82È\82¢\81D");
     return 1;
 }
 
@@ -1270,14 +1549,23 @@ dogaze()
     }
 
     if (Blind) {
+/*JP
         You_cant("see anything to gaze at.");
+*/
+        You("\96Ú\82ª\8c©\82¦\82È\82¢\82Ì\82Å\81C\82É\82ç\82ß\82È\82¢\81D");
         return 0;
     } else if (Hallucination) {
+/*JP
         You_cant("gaze at anything you can see.");
+*/
+        You_cant("\8c©\82¦\82é\82à\82Ì\82ð\89½\82à\82É\82ç\82ß\82È\82¢\81D");
         return 0;
     }
     if (u.uen < 15) {
+/*JP
         You("lack the energy to use your special gaze!");
+*/
+        You("\82É\82ç\82Þ\82¾\82¯\82Ì\91Ì\97Í\82ª\82È\82¢\81I");
         return 0;
     }
     u.uen -= 15;
@@ -1289,20 +1577,35 @@ dogaze()
         if (canseemon(mtmp) && couldsee(mtmp->mx, mtmp->my)) {
             looked++;
             if (Invis && !perceives(mtmp->data)) {
+/*JP
                 pline("%s seems not to notice your gaze.", Monnam(mtmp));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\82É\82ç\82Ý\82É\8bC\82ª\82Â\82¢\82Ä\82È\82¢\82æ\82¤\82¾\81D", Monnam(mtmp));
             } else if (mtmp->minvis && !See_invisible) {
+/*JP
                 You_cant("see where to gaze at %s.", Monnam(mtmp));
+*/
+                You("%s\82Í\8c©\82¦\82È\82¢\82Ì\82Å\81C\82É\82ç\82ß\82È\82¢", Monnam(mtmp));
             } else if (mtmp->m_ap_type == M_AP_FURNITURE
                        || mtmp->m_ap_type == M_AP_OBJECT) {
                 looked--;
                 continue;
             } else if (flags.safe_dog && mtmp->mtame && !Confusion) {
+/*JP
                 You("avoid gazing at %s.", y_monnam(mtmp));
+*/
+                You("%s\82©\82ç\96Ú\82ð\82»\82ç\82µ\82Ä\82µ\82Ü\82Á\82½\81D", y_monnam(mtmp));
             } else {
                 if (flags.confirm && mtmp->mpeaceful && !Confusion) {
+#if 0 /*JP*/
                     Sprintf(qbuf, "Really %s %s?",
                             (adtyp == AD_CONF) ? "confuse" : "attack",
                             mon_nam(mtmp));
+#else
+                    Sprintf(qbuf, "\96{\93\96\82É%s\82ð%s\81H",
+                            mon_nam(mtmp),
+                            (adtyp == AD_CONF) ? "\8d¬\97\90\82³\82¹\82é" : "\8dU\8c\82\82·\82é");
+#endif
                     if (yn(qbuf) != 'y')
                         continue;
                     setmangry(mtmp);
@@ -1317,17 +1620,29 @@ dogaze()
                  */
                 if (adtyp == AD_CONF) {
                     if (!mtmp->mconf)
+/*JP
                         Your("gaze confuses %s!", mon_nam(mtmp));
+*/
+                        Your("\82É\82ç\82Ý\82Í%s\82ð\8d¬\97\90\82³\82¹\82½\81I", mon_nam(mtmp));
                     else
+/*JP
                         pline("%s is getting more and more confused.",
+*/
+                        pline("%s\82Í\82Ü\82·\82Ü\82·\8d¬\97\90\82µ\82½\81I",
                               Monnam(mtmp));
                     mtmp->mconf = 1;
                 } else if (adtyp == AD_FIRE) {
                     int dmg = d(2, 6), lev = (int) u.ulevel;
 
+/*JP
                     You("attack %s with a fiery gaze!", mon_nam(mtmp));
+*/
+                    You("\89\8a\82Ì\82É\82ç\82Ý\82Å%s\82ð\8dU\8c\82\82µ\82½\81I", mon_nam(mtmp));
                     if (resists_fire(mtmp)) {
+/*JP
                         pline_The("fire doesn't burn %s!", mon_nam(mtmp));
+*/
+                        pline("%s\82Í\89\8a\82Å\94R\82¦\82È\82©\82Á\82½\81I", mon_nam(mtmp));
                         dmg = 0;
                     }
                     if (lev > rn2(20))
@@ -1349,7 +1664,10 @@ dogaze()
 
                 if (mtmp->data == &mons[PM_FLOATING_EYE] && !mtmp->mcan) {
                     if (!Free_action) {
+/*JP
                         You("are frozen by %s gaze!",
+*/
+                        You("%s\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I", 
                             s_suffix(mon_nam(mtmp)));
                         nomul((u.ulevel > 6 || rn2(4))
                                   ? -d((int) mtmp->m_lev + 1,
@@ -1359,7 +1677,10 @@ dogaze()
                         nomovemsg = 0;
                         return 1;
                     } else
+/*JP
                         You("stiffen momentarily under %s gaze.",
+*/
+                        You("%s\82Ì\82É\82ç\82Ý\82Å\88ê\8fu\8dd\92¼\82µ\82½\81D",
                             s_suffix(mon_nam(mtmp)));
                 }
                 /* Technically this one shouldn't affect you at all because
@@ -1368,19 +1689,31 @@ dogaze()
                  * effect would be too weird.
                  */
                 if (mtmp->data == &mons[PM_MEDUSA] && !mtmp->mcan) {
+/*JP
                     pline("Gazing at the awake %s is not a very good idea.",
+*/
+                    pline("\96Ú\82ð\8ao\82Ü\82µ\82Ä\82¢\82é%s\82ð\82É\82ç\82Þ\82Ì\82Í\8c«\82¢\82±\82Æ\82\82á\82È\82¢\81D",
                           l_monnam(mtmp));
                     /* as if gazing at a sleeping anything is fruitful... */
+/*JP
                     You("turn to stone...");
+*/
+                    You("\90Î\82É\82È\82Á\82½\81D\81D\81D");
                     killer.format = KILLED_BY;
+/*JP
                     Strcpy(killer.name, "deliberately meeting Medusa's gaze");
+*/
+                    Strcpy(killer.name, "\82í\82´\82í\82´\83\81\83f\83\85\81[\83T\82Ì\82É\82ç\82Ý\82ð\82Ü\82Æ\82à\82É\8c©\82Ä");
                     done(STONING);
                 }
             }
         }
     }
     if (!looked)
+/*JP
         You("gaze at no place in particular.");
+*/
+        You("\8eÀ\8dÛ\82É\82Í\89½\82à\82É\82ç\82ß\82È\82©\82Á\82½\81D");
     return 1;
 }
 
@@ -1475,14 +1808,23 @@ domindblast()
     struct monst *mtmp, *nmon;
 
     if (u.uen < 10) {
+/*JP
         You("concentrate but lack the energy to maintain doing so.");
+*/
+        You("\8fW\92\86\82µ\82½\81D\82µ\82©\82µ\83G\83l\83\8b\83M\81[\82ª\91«\82è\82È\82¢\81D");
         return 0;
     }
     u.uen -= 10;
     context.botl = 1;
 
+/*JP
     You("concentrate.");
+*/
+    You("\8fW\92\86\82µ\82½\81D");
+/*JP
     pline("A wave of psychic energy pours out.");
+*/
+    pline("\90¸\90_\83G\83l\83\8b\83M\81[\94g\82ª\95ú\8eU\82µ\82½\81D");
     for (mtmp = fmon; mtmp; mtmp = nmon) {
         int u_sen;
 
@@ -1495,9 +1837,15 @@ domindblast()
             continue;
         u_sen = telepathic(mtmp->data) && !mtmp->mcansee;
         if (u_sen || (telepathic(mtmp->data) && rn2(2)) || !rn2(10)) {
+#if 0 /*JP*/
             You("lock in on %s %s.", s_suffix(mon_nam(mtmp)),
                 u_sen ? "telepathy"
                       : telepathic(mtmp->data) ? "latent telepathy" : "mind");
+#else
+            pline("%s\82Ì%s\82è\8d\9e\82ñ\82¾\81D", mon_nam(mtmp),
+                u_sen ? "\90¸\90_\82É\93ü"
+                      : telepathic(mtmp->data) ? "\90ö\8dÝ\93I\90¸\90_\82É\93ü" : "\90[\91w\88Ó\8e¯\82É\90ö");
+#endif
             mtmp->mhp -= rnd(15);
             if (mtmp->mhp <= 0)
                 killed(mtmp);
@@ -1509,7 +1857,10 @@ domindblast()
 STATIC_OVL void
 uunstick()
 {
+/*JP
     pline("%s is no longer in your clutches.", Monnam(u.ustuck));
+*/
+    pline("%s\82Í\82 \82È\82½\82Ì\8eè\82©\82ç\93¦\82ê\82½\81D", Monnam(u.ustuck));
     u.ustuck = 0;
 }
 
@@ -1519,7 +1870,10 @@ boolean silently;
 {
     if (uskin) {
         if (!silently)
+/*JP
             Your("skin returns to its original form.");
+*/
+            Your("\94ç\95\86\82Í\96{\97\88\82Ì\8ep\82É\96ß\82Á\82½\81D");
         uarm = uskin;
         uskin = (struct obj *) 0;
         /* undo save/restore hack */
@@ -1533,11 +1887,20 @@ struct monst *mon;
 int part;
 {
     static NEARDATA const char
+#if 0 /*JP*/
         *humanoid_parts[] = { "arm",       "eye",  "face",         "finger",
                               "fingertip", "foot", "hand",         "handed",
                               "head",      "leg",  "light headed", "neck",
                               "spine",     "toe",  "hair",         "blood",
                               "lung",      "nose", "stomach" },
+#else
+        *humanoid_parts[] = { "\98r", "\96Ú", "\8aç", "\8ew",
+            "\8ew\90æ", "\91«", "\8eè", "\8eè\82É\82·\82é",
+            "\93ª", "\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+            "\94w\8d\9c", "\92Ü\90æ", "\94¯",  "\8c\8c",
+            "\94x", "\95@", "\88Ý"},
+#endif
+#if 0 /*JP*/
         *jelly_parts[] = { "pseudopod", "dark spot", "front",
                            "pseudopod extension", "pseudopod extremity",
                            "pseudopod root", "grasp", "grasped",
@@ -1545,6 +1908,16 @@ int part;
                            "middle", "surface", "pseudopod extremity",
                            "ripples", "juices", "surface", "sensor",
                            "stomach" },
+#else
+    *jelly_parts[] = { "\8b[\8e\97\90G\8eè", "\8d\95\82¢\94Á\93_", "\91O\96Ê",
+        "\8b[\8e\97\90G\8eè\82Ì\90æ", "\8b[\8e\97\90G\8eè",
+        "\8b[\8e\97\90G\8eè\82Ì\8a²", "\90G\8eè", "\88¬\82é",
+        "\94]\82Ì\97Ì\88æ", "\89º\95û\82Ì\8b[\8e\97\90G\8eè", "\82Ë\82Î\82Ë\82Î\82µ\82Ä\82«\82½",
+        "\92\86\8aÔ\97Ì\88æ", "\95\\96Ê",  "\8b[\8e\97\90G\8eè",
+        "\94g\96ä", "\91Ì\89t", "\95\\96Ê", "\8a´\8ao\8aí",
+        "\88Ý"},
+#endif
+#if 0 /*JP*/
         *animal_parts[] = { "forelimb",  "eye",           "face",
                             "foreclaw",  "claw tip",      "rear claw",
                             "foreclaw",  "clawed",        "head",
@@ -1552,11 +1925,29 @@ int part;
                             "spine",     "rear claw tip", "fur",
                             "blood",     "lung",          "nose",
                             "stomach" },
+#else
+    *animal_parts[] = { "\91O\91«", "\96Ú", "\8aç",
+        "\91O\92Ü", "\92Ü\90æ", "\8cã\92Ü",
+        "\91O\92Ü", "\82Ð\82Á\82©\82¯\82é", "\93ª",
+        "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+        "\94w\8d\9c", "\8cã\92Ü\90æ", "\96Ñ\94ç",
+        "\8c\8c", "\94x", "\95@",
+        "\88Ý"},
+#endif
+#if 0 /*JP*/
         *bird_parts[] = { "wing",     "eye",  "face",         "wing",
                           "wing tip", "foot", "wing",         "winged",
                           "head",     "leg",  "light headed", "neck",
                           "spine",    "toe",  "feathers",     "blood",
                           "lung",     "bill", "stomach" },
+#else
+    *bird_parts[] = { "\97\83", "\96Ú", "\8aç", "\97\83",
+        "\97\83\82Ì\90æ", "\91«", "\97\83", "\97\83\82É\82Æ\82é",
+        "\93ª", "\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+        "\94w\8d\9c", "\92Ü\90æ", "\89H\96Ñ", "\8c\8c",
+        "\94x", "\82­\82¿\82Î\82µ", "\88Ý" },
+#endif
+#if 0 /*JP*/
         *horse_parts[] = { "foreleg",  "eye",           "face",
                            "forehoof", "hoof tip",      "rear hoof",
                            "forehoof", "hooved",        "head",
@@ -1564,12 +1955,31 @@ int part;
                            "backbone", "rear hoof tip", "mane",
                            "blood",    "lung",          "nose",
                            "stomach" },
+#else
+    *horse_parts[] = { "\91O\91«", "\96Ú", "\8aç",
+        "\91O\92û", "\92û", "\8cã\92û",
+        "\91O\92Ü", "\92û\82É\82Í\82³\82Þ", "\93ª",
+        "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+        "\94w\8d\9c", "\8cã\92Ü\90æ", "\82½\82Ä\82ª\82Ý",
+        "\8c\8c", "\94x", "\95@",
+        "\88Ý" },
+#endif
+#if 0 /*JP*/
         *sphere_parts[] = { "appendage", "optic nerve", "body", "tentacle",
                             "tentacle tip", "lower appendage", "tentacle",
                             "tentacled", "body", "lower tentacle",
                             "rotational", "equator", "body",
                             "lower tentacle tip", "cilia", "life force",
                             "retina", "olfactory nerve", "interior" },
+#else
+        *sphere_parts[] = { "\93Ë\8bN", "\8e\8b\8ao\90_\8co", "\91Ì", "\90G\8eè",
+            "\90G\8eè\82Ì\90æ", "\89º\82Ì\93Ë\8bN", "\90G\8eè",
+            "\90G\8eè\82É\8e\9d\82Â", "\91Ì", "\89º\82Ì\90G\8eè",
+            "\89ñ\93]\82µ\82½", "\92\86\90S\90ü", "\91Ì",
+            "\89º\82Ì\90G\8eè\82Ì\90æ", "\91@\96Ñ", "\90\96½\97Í",
+            "\96Ô\96\8c", "\9ak\8ao\92\86\90\95", "\93à\95\94" },
+#endif
+#if 0 /*JP*/
         *fungus_parts[] = { "mycelium", "visual area", "front",
                             "hypha",    "hypha",       "root",
                             "strand",   "stranded",    "cap area",
@@ -1577,6 +1987,16 @@ int part;
                             "root",     "rhizome tip", "spores",
                             "juices",   "gill",        "gill",
                             "interior" },
+#else
+        *fungus_parts[] = { "\8bÛ\8e\85\91Ì", "\8e\8b\8ao\97Ì\88æ", "\91O",
+            "\8bÛ\8e\85", "\8bÛ\8e\85", "\8dª",
+            "\90G\8eè", "\90G\8eè\82É\82©\82ç\82Ý\82Â\82¯\82é", "\8eP",
+            "\8dª\8cs", "\8d¬\97\90\82·\82é", "\8e²",
+            "\8dª", "\8dª\8cs\82Ì\90æ", "\89è\96E",
+            "\91Ì\89t", "\82¦\82ç", "\82¦\82ç",
+            "\93à\95\94"},
+#endif
+#if 0 /*JP*/
         *vortex_parts[] = { "region",        "eye",           "front",
                             "minor current", "minor current", "lower current",
                             "swirl",         "swirled",       "central core",
@@ -1584,23 +2004,59 @@ int part;
                             "currents",      "edge",          "currents",
                             "life force",    "center",        "leading edge",
                             "interior" },
+#else
+        *vortex_parts[] = { "\97Ì\88æ", "\96Ú", "\91O",
+            "\8f¬\82³\82¢\97¬\82ê", "\8f¬\82³\82¢\97¬\82ê", "\89º\95\94\82Ì\97¬\82ê",
+            "\89Q\8aª", "\89Q\82É\8aª\82­", "\89Q\82Ì\92\86\90S",
+            "\89º\95\94\82Ì\97¬\82ê", "\8d¬\97\90\82µ\82½", "\92\86\90S\95\94",
+            "\97¬\82ê", "\8aO\8eü", "\8bC\97¬",
+            "\90\96½\97Í", "\92\86\90S", "\91O\89\8f",
+            "\93à\95\94" },
+#endif
+#if 0 /*JP*/
         *snake_parts[] = { "vestigial limb", "eye", "face", "large scale",
                            "large scale tip", "rear region", "scale gap",
                            "scale gapped", "head", "rear region",
                            "light headed", "neck", "length", "rear scale",
                            "scales", "blood", "lung", "forked tongue",
                            "stomach" },
+#else
+        *snake_parts[] = { "\91Þ\89»\82µ\82½\91«", "\96Ú", "\8aç", "\91å\82«\82È\97Ø",
+            "\91å\82«\82È\97Ø\82Ì\90æ", "\8cã\95\94\95ª", "\97Ø\82Ì\8c\84\8aÔ",
+            "\97Ø\82Ì\8c\84\8aÔ\82É\82Â\82¯\82é", "\93ª", "\8cã\95\94\95ª",
+            "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ", "\91Ì", "\8cã\95\94\95ª\82Ì\8aZ",
+            "\97Ø", "\8c\8c", "\94x", "\90ã",
+            "\88Ý" },
+#endif
+#if 0 /*JP*/
         *worm_parts[] = { "anterior segment", "light sensitive cell",
                           "clitellum", "setae", "setae", "posterior segment",
                           "segment", "segmented", "anterior segment",
                           "posterior", "over stretched", "clitellum",
                           "length", "posterior setae", "setae", "blood",
                           "skin", "prostomium", "stomach" },
+#else
+        *worm_parts[] = { "\91O\8bæ", "\8a´\8cõ\90«\8d×\96E",
+                          "\8aÂ\91Ñ", "\8ap", "\8ap", "\8cã\8bæ",
+                          "\90ß", "\90ß\82É\82Â\82¯\82é", "\91O\8bæ",
+                          "\8cã\95\94", "\90L\82Ñ\82·\82¬\82½", "\8aÂ\91Ñ",
+                          "\91Ì", "\8cã\95\94\82Ì\8ap", "\8ap", "\8c\8c",
+                          "\94ç\95\86", "\8cû\91O\97t", "\88Ý" },
+#endif
+#if 0 /*JP*/
         *fish_parts[] = { "fin", "eye", "premaxillary", "pelvic axillary",
                           "pelvic fin", "anal fin", "pectoral fin", "finned",
                           "head", "peduncle", "played out", "gills",
                           "dorsal fin", "caudal fin", "scales", "blood",
                           "gill", "nostril", "stomach" };
+#else
+        *fish_parts[] = { "\82Ð\82ê", "\96Ú", "\8aç", "\82Ð\82ê\82Ì\90æ",
+            "\82Ð\82ê\82Ì\90æ", "\94ö\82Ñ\82ê", "\8b¹\82Ð\82ê", "\82Ð\82ê\82Å\8e\9d\82Â",
+            "\93ª", "\94ö\95¿", "\82ß\82Ü\82¢\82ª\82µ\82½", "\82¦\82ç",
+            "\94w\82Ñ\82ê", "\94ö\82Ñ\82ê", "\97Ø", "\8c\8c",
+            "\82¦\82ç", "\95@", "\88Ý" };
+#endif
+#if 0 /*JP*//*\8eg\82í\82È\82¢*/
     /* claw attacks are overloaded in mons[]; most humanoids with
        such attacks should still reference hands rather than claws */
     static const char not_claws[] = {
@@ -1608,8 +2064,13 @@ int part;
         S_QUANTMECH, S_VAMPIRE, S_ORC,    S_GIANT, /* quest nemeses */
         '\0' /* string terminator; assert( S_xxx != 0 ); */
     };
+#endif
     struct permonst *mptr = mon->data;
 
+#if 0 /*JP*/
+/* paw\82Í\8c¢\82Æ\82©\94L\82Ì\8eè\81Cclaw\82Í\83^\83J\82Ì\91«\82Ì\82æ\82¤\82È\82©\82¬\82Â\82ß\81C
+   \82Ç\82¿\82ç\82à\93ú\96{\8cê\82\82á\81u\8eè\81v\82Å\82¢\82¢\82Å\82µ\82å\82¤\81D
+*/
     /* some special cases */
     if (mptr->mlet == S_DOG || mptr->mlet == S_FELINE
         || mptr->mlet == S_RODENT || mptr == &mons[PM_OWLBEAR]) {
@@ -1635,17 +2096,30 @@ int part;
             && !index(not_claws, mptr->mlet) && mptr != &mons[PM_STONE_GOLEM]
             && mptr != &mons[PM_INCUBUS] && mptr != &mons[PM_SUCCUBUS]))
         return (part == HAND) ? "claw" : "clawed";
+#endif
+#if 0 /*JP*//*trunk\82Í\8fÛ\82Ì\95@\82ð\88Ó\96¡\82·\82é\82»\82¤\82Å\82·\81B\93ú\96{\8cê\82Å\82Í\92P\82É\95@\82Å\82¢\82¢\82©\82Æ\81B*/
     if ((mptr == &mons[PM_MUMAK] || mptr == &mons[PM_MASTODON])
         && part == NOSE)
         return "trunk";
+#endif
     if (mptr == &mons[PM_SHARK] && part == HAIR)
+#if 0 /*JP*/
         return "skin"; /* sharks don't have scales */
+#else
+        return "\93ª"; /* sharks don't have scales */
+#endif
     if ((mptr == &mons[PM_JELLYFISH] || mptr == &mons[PM_KRAKEN])
         && (part == ARM || part == FINGER || part == HAND || part == FOOT
             || part == TOE))
+/*JP
         return "tentacle";
+*/
+        return "\90G\8eè";
     if (mptr == &mons[PM_FLOATING_EYE] && part == EYE)
+/*JP
         return "cornea";
+*/
+        return "\8ap\96\8c";
     if (humanoid(mptr) && (part == ARM || part == FINGER || part == FINGERTIP
                            || part == HAND || part == HANDED))
         return humanoid_parts[part];
@@ -1655,6 +2129,7 @@ int part;
         || (mptr == &mons[PM_ROTHE] && part != HAIR))
         return horse_parts[part];
     if (mptr->mlet == S_LIGHT) {
+#if 0 /*JP*/
         if (part == HANDED)
             return "rayed";
         else if (part == ARM || part == FINGER || part == FINGERTIP
@@ -1662,6 +2137,12 @@ int part;
             return "ray";
         else
             return "beam";
+#else
+        if (part == HANDED || part == ARM || part == FINGER
+            || part == FINGERTIP || part == HAND) {
+            return "\8cõ";
+        }
+#endif
     }
     if (mptr == &mons[PM_STALKER] && part == HEAD)
         return "head";
@@ -1730,7 +2211,10 @@ int damtype, dam;
         if (u.mh > u.mhmax)
             u.mh = u.mhmax;
         context.botl = 1;
+/*JP
         pline("Strangely, you feel better than before.");
+*/
+        pline("\8aï\96­\82È\82±\82Æ\82É\81C\91O\82æ\82è\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\81D");
         exercise(A_STR, TRUE);
     }
 }
index 7484d29..de6f11b 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 boolean notonhead = FALSE;
@@ -68,7 +73,10 @@ boolean talk;
 
     if (!xtime && old) {
         if (talk)
+/*JP
             You_feel("less %s now.", Hallucination ? "trippy" : "confused");
+*/
+            You("%s\82ª\82¨\82³\82Ü\82Á\82½\81D", Hallucination ? "\83w\83\8d\83w\83\8d" : "\8d¬\97\90");
     }
     if ((xtime && !old) || (!xtime && old))
         context.botl = TRUE;
@@ -88,15 +96,26 @@ boolean talk;
 
     if (!xtime && old) {
         if (talk)
+#if 0 /*JP*/
             You_feel("%s now.",
                      Hallucination ? "less wobbly" : "a bit steadier");
+#else
+            You_feel("%s\81D",
+                     Hallucination ? "\82Ö\82ë\82è\82ç\82ª\82¨\82³\82Ü\82Á\82½" : "\82¾\82ñ\82¾\82ñ\82µ\82Á\82©\82è\82µ\82Ä\82«\82½");
+#endif
     }
     if (xtime && !old) {
         if (talk) {
             if (u.usteed)
+/*JP
                 You("wobble in the saddle.");
+*/
+                You("\88Æ\82Ì\8fã\82Å\82®\82ç\82®\82ç\82µ\82½\81D");
             else
+/*JP
                 You("%s...", stagger(youmonst.data, "stagger"));
+*/
+                You("%s\81D\81D\81D", stagger(youmonst.data, "\82­\82ç\82­\82ç\82µ\82½"));
         }
     }
     if ((!xtime && old) || (xtime && !old))
@@ -123,11 +142,17 @@ int type;
             return;
         if (!old) {
             /* newly sick */
+/*JP
             You_feel("deathly sick.");
+*/
+            You("\95a\8bC\82Å\8e\80\82É\82»\82¤\82¾\81D");
         } else {
             /* already sick */
             if (talk)
+/*JP
                 You_feel("%s worse.", xtime <= Sick / 2L ? "much" : "even");
+*/
+                You("%s\88«\89»\82µ\82½\82æ\82¤\82È\8bC\82ª\82·\82é\81D", xtime <= Sick/2L ? "\82³\82ç\82É" : "\82à\82Á\82Æ");
         }
         set_itimeout(&Sick, xtime);
         u.usick_type |= type;
@@ -137,11 +162,17 @@ int type;
         u.usick_type &= ~type;
         if (u.usick_type) { /* only partly cured */
             if (talk)
+/*JP
                 You_feel("somewhat better.");
+*/
+                You("\82¿\82å\82Á\82Æ\82æ\82­\82È\82Á\82½\81D");
             set_itimeout(&Sick, Sick * 2); /* approximation */
         } else {
             if (talk)
+/*JP
                 You_feel("cured.  What a relief!");
+*/
+                pline("\89ñ\95\9c\82µ\82½\81D\82 \82 \8f\95\82©\82Á\82½\81I");
             Sick = 0L; /* set_itimeout(&Sick, 0L) */
         }
         context.botl = TRUE;
@@ -213,13 +244,22 @@ boolean talk;
 
     if (!xtime && old)
         if (talk)
+/*JP
             You_feel("much less nauseated now.");
+*/
+            You("\93f\82«\8bC\82ª\82¨\82³\82Ü\82Á\82½\81D");
 
     set_itimeout(&Vomiting, xtime);
 }
 
+/*JP
 static const char vismsg[] = "vision seems to %s for a moment but is %s now.";
+*/
+static const char vismsg[] = "\8e\8b\8aE\82Í\88ê\8fu%s\82È\82Á\82½\82ª\82Ü\82½%s\82È\82Á\82½\81D";
+/*JP
 static const char eyemsg[] = "%s momentarily %s.";
+*/
+static const char eyemsg[] = "%s\82Í\88ê\8fu%s\81D";
 
 void
 make_blinded(xtime, talk)
@@ -243,9 +283,15 @@ boolean talk;
     if (can_see_now && !u_could_see) { /* regaining sight */
         if (talk) {
             if (Hallucination)
+/*JP
                 pline("Far out!  Everything is all cosmic again!");
+*/
+                pline("\82°\81I\82È\82É\82à\82©\82à\82ª\82Ü\82½\93ø\90F\82É\8c©\82¦\82é\81I");
             else
+/*JP
                 You("can see again.");
+*/
+                You("\82Ü\82½\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81D");
         }
     } else if (old && !xtime) {
         /* clearing temporary blindness without toggling blindness */
@@ -253,12 +299,19 @@ boolean talk;
             if (!haseyes(youmonst.data)) {
                 strange_feeling((struct obj *) 0, (char *) 0);
             } else if (Blindfolded) {
+#if 0 /*JP*/
                 eyes = body_part(EYE);
                 if (eyecount(youmonst.data) != 1)
                     eyes = makeplural(eyes);
                 Your(eyemsg, eyes, vtense(eyes, "itch"));
+#else
+                Your(eyemsg, body_part(EYE), "\82©\82ä\82­\82È\82Á\82½");
+#endif
             } else { /* Eyes of the Overworld */
+/*JP
                 Your(vismsg, "brighten", Hallucination ? "sadder" : "normal");
+*/
+                Your(vismsg, "\96¾\82é\82­", Hallucination ? "\8dª\88Ã\82É" : "\95\81\92Ê\82É");
             }
         }
     }
@@ -266,9 +319,15 @@ boolean talk;
     if (u_could_see && !can_see_now) { /* losing sight */
         if (talk) {
             if (Hallucination)
+/*JP
                 pline("Oh, bummer!  Everything is dark!  Help!");
+*/
+                pline("\88Ã\82¢\82æ\81[\81C\8b·\82¢\82æ\81[\81C\8b°\82¢\82æ\81[\81I");
             else
+/*JP
                 pline("A cloud of darkness falls upon you.");
+*/
+                pline("\88Ã\8d\95\82Ì\89_\82ª\82 \82È\82½\82ð\95¢\82Á\82½\81D");
         }
         /* Before the hero goes blind, set the ball&chain variables. */
         if (Punished)
@@ -279,12 +338,19 @@ boolean talk;
             if (!haseyes(youmonst.data)) {
                 strange_feeling((struct obj *) 0, (char *) 0);
             } else if (Blindfolded) {
+#if 0 /*JP*/
                 eyes = body_part(EYE);
                 if (eyecount(youmonst.data) != 1)
                     eyes = makeplural(eyes);
                 Your(eyemsg, eyes, vtense(eyes, "twitch"));
+#else
+                Your(eyemsg, body_part(EYE), "\83s\83N\83s\83N\82µ\82½");
+#endif
             } else { /* Eyes of the Overworld */
+/*JP
                 Your(vismsg, "dim", Hallucination ? "happier" : "normal");
+*/
+                Your(vismsg, "\94\96\88Ã\82­", Hallucination ? "\83n\83b\83s\81[\82É" : "\95\81\92Ê\82É");
             }
         }
     }
@@ -331,9 +397,17 @@ long mask; /* nonzero if resistance status should change by mask */
     if (Unaware)
         talk = FALSE;
 
+#if 0 /*JP*/
     message = (!xtime) ? "Everything %s SO boring now."
                        : "Oh wow!  Everything %s so cosmic!";
+#else
+    message = (!xtime) ? "\89½\82à\82©\82à\82ª\81\96\91Þ\8bü\81\96\82É%s\82é\81D"
+                       : "\83\8f\81[\83I\81I\89½\82à\82©\82à\93ø\90F\82É%s\82é\81I";
+#endif
+/*JP
     verb = (!Blind) ? "looks" : "feels";
+*/
+    verb = (!Blind) ? "\8c©\82¦" : "\8a´\82¶";
 
     if (mask) {
         if (HHallucination)
@@ -353,13 +427,20 @@ long mask; /* nonzero if resistance status should change by mask */
             if (!haseyes(youmonst.data)) {
                 strange_feeling((struct obj *) 0, (char *) 0);
             } else if (Blind) {
+#if 0 /*JP*/
                 const char *eyes = body_part(EYE);
 
                 if (eyecount(youmonst.data) != 1)
                     eyes = makeplural(eyes);
                 Your(eyemsg, eyes, vtense(eyes, "itch"));
+#else
+                Your(eyemsg, body_part(EYE), "\82©\82ä\82­\82È\82Á\82½");
+#endif
             } else { /* Grayswandir */
+/*JP
                 Your(vismsg, "flatten", "normal");
+*/
+                Your(vismsg, "\82¨\82©\82µ\82­", "\95\81\92Ê\82É");
             }
         }
     }
@@ -424,20 +505,37 @@ ghost_from_bottle()
     struct monst *mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, NO_MM_FLAGS);
 
     if (!mtmp) {
+/*JP
         pline("This bottle turns out to be empty.");
+*/
+        pline("\95r\82Í\8bó\82Á\82Û\82¾\82Á\82½\81D");
         return;
     }
     if (Blind) {
+/*JP
         pline("As you open the bottle, %s emerges.", something);
+*/
+        pline("\95r\82ð\8aJ\82¯\82é\82Æ\81C\89½\82©\82ª\8fo\82Ä\82«\82½\81D");
         return;
     }
+#if 0 /*JP*/
     pline("As you open the bottle, an enormous %s emerges!",
           Hallucination ? rndmonnam(NULL) : (const char *) "ghost");
+#else
+    pline("\95r\82ð\8aJ\82¯\82é\82Æ\81C\8b\90\91å\82È%s\82ª\8fo\82Ä\82«\82½\81I",
+          Hallucination ? rndmonnam(NULL) : (const char *) "\97H\97ì");
+#endif
     if (flags.verbose)
+/*JP
         You("are frightened to death, and unable to move.");
+*/
+        You("\82Ü\82Á\82³\82¨\82É\82È\82Á\82Ä\8bÁ\82«\81C\93®\82¯\82È\82­\82È\82Á\82½\81D");
     nomul(-3);
     multi_reason = "being frightened to death";
+/*JP
     nomovemsg = "You regain your composure.";
+*/
+    nomovemsg = "\82 \82È\82½\82Í\95½\90Ã\82ð\8eæ\82è\96ß\82µ\82½\81D";
 }
 
 /* "Quaffing is like drinking, except you spill more." - Terry Pratchett */
@@ -448,14 +546,20 @@ dodrink()
     const char *potion_descr;
 
     if (Strangled) {
+/*JP
         pline("If you can't breathe air, how can you drink liquid?");
+*/
+        pline("\91§\82à\82Å\82«\82È\82¢\82Ì\82É\81C\82Ç\82¤\82â\82Á\82Ä\89t\91Ì\82ð\88ù\82Þ\82ñ\82¾\82¢\81H");
         return 0;
     }
     /* Is there a fountain to drink from here? */
     if (IS_FOUNTAIN(levl[u.ux][u.uy].typ)
         /* not as low as floor level but similar restrictions apply */
         && can_reach_floor(FALSE)) {
+/*JP
         if (yn("Drink from the fountain?") == 'y') {
+*/
+        if (yn("\90ò\82Ì\90\85\82ð\88ù\82Ý\82Ü\82·\82©\81H") == 'y') {
             drinkfountain();
             return 1;
         }
@@ -464,15 +568,24 @@ dodrink()
     if (IS_SINK(levl[u.ux][u.uy].typ)
         /* not as low as floor level but similar restrictions apply */
         && can_reach_floor(FALSE)) {
+/*JP
         if (yn("Drink from the sink?") == 'y') {
+*/
+        if (yn("\97¬\82µ\91ä\82Ì\90\85\82ð\88ù\82Ý\82Ü\82·\82©\81H") == 'y') {
             drinksink();
             return 1;
         }
     }
     /* Or are you surrounded by water? */
     if (Underwater && !u.uswallow) {
+/*JP
         if (yn("Drink the water around you?") == 'y') {
+*/
+        if (yn("\82Ü\82í\82è\82Ì\90\85\82ð\88ù\82Ý\82Ü\82·\82©\81H") == 'y') {
+/*JP
             pline("Do you know what lives in this water?");
+*/
+            pline("\82±\82Ì\90\85\92\86\82Å\89½\82ª\90\82«\82Ä\82¢\82é\82Ì\82©\92m\82Á\82Ä\82é\82©\82¢\81H");
             return 1;
         }
     }
@@ -499,13 +612,19 @@ dodrink()
 
     potion_descr = OBJ_DESCR(objects[otmp->otyp]);
     if (potion_descr) {
+/*JP
         if (!strcmp(potion_descr, "milky")
+*/
+        if (!strcmp(potion_descr, "\83~\83\8b\83N\90F\82Ì")
             && !(mvitals[PM_GHOST].mvflags & G_GONE)
             && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_GHOST].born))) {
             ghost_from_bottle();
             useup(otmp);
             return 1;
+/*JP
         } else if (!strcmp(potion_descr, "smoky")
+*/
+        } else if (!strcmp(potion_descr, "\89\8c\82ª\82Å\82Ä\82¢\82é")
                    && !(mvitals[PM_DJINNI].mvflags & G_GONE)
                    && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_DJINNI].born))) {
             djinni_from_bottle(otmp);
@@ -529,8 +648,13 @@ register struct obj *otmp;
 
     if (nothing) {
         unkn++;
+#if 0 /*JP*/
         You("have a %s feeling for a moment, then it passes.",
             Hallucination ? "normal" : "peculiar");
+#else
+        You("%s\8bC\95ª\82É\82¨\82»\82í\82ê\82½\82ª\81C\82·\82®\82É\8fÁ\82¦\82³\82Á\82½\81D",
+            Hallucination ? "\95\81\92Ê\82Ì" : "\93Æ\93Á\82È");
+#endif
     }
     if (otmp->dknown && !objects[otmp->otyp].oc_name_known) {
         if (!unkn) {
@@ -554,14 +678,24 @@ register struct obj *otmp;
     case SPE_RESTORE_ABILITY:
         unkn++;
         if (otmp->cursed) {
+/*JP
             pline("Ulch!  This makes you feel mediocre!");
+*/
+            pline("\82¤\81[\82ñ\81C\82Ç\82¤\82à\82³\82¦\82È\82¢\82È\82 \81D");
             break;
         } else {
             /* unlike unicorn horn, overrides Fixed_abil */
+#if 0 /*JP*/
             pline("Wow!  This makes you feel %s!",
                   (otmp->blessed)
                       ? (unfixable_trouble_count(FALSE) ? "better" : "great")
                       : "good");
+#else
+            pline("\83\8f\81[\83I\81I\8bC\95ª\82ª%s\82È\82Á\82½\81I",
+                  (otmp->blessed)
+                      ? (unfixable_trouble_count(FALSE) ? "\82¾\82¢\82Ô\82æ\82­" : "\82Æ\82Ä\82à\82æ\82­")
+                      : "\82æ\82­");
+#endif
             i = rn2(A_MAX); /* start at a random point */
             for (ii = 0; ii < A_MAX; ii++) {
                 lim = AMAX(i);
@@ -588,7 +722,10 @@ register struct obj *otmp;
         break;
     case POT_WATER:
         if (!otmp->blessed && !otmp->cursed) {
+/*JP
             pline("This tastes like water.");
+*/
+            pline("\90\85\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81D");
             u.uhunger += rnd(10);
             newuhs(FALSE);
             break;
@@ -597,19 +734,31 @@ register struct obj *otmp;
         if (is_undead(youmonst.data) || is_demon(youmonst.data)
             || u.ualign.type == A_CHAOTIC) {
             if (otmp->blessed) {
+/*JP
                 pline("This burns like acid!");
+*/
+                pline("\8e_\82Ì\82æ\82¤\82É\90ã\82ª\82Ð\82è\82Ð\82è\82·\82é\81I");
                 exercise(A_CON, FALSE);
                 if (u.ulycn >= LOW_PM) {
+/*JP
                     Your("affinity to %s disappears!",
+*/
+                    Your("%s\82Ö\82Ì\90e\8bß\8a´\82Í\82È\82­\82È\82Á\82½\81I",
                          makeplural(mons[u.ulycn].mname));
                     if (youmonst.data == &mons[u.ulycn])
                         you_unwere(FALSE);
                     u.ulycn = NON_PM; /* cure lycanthropy */
                 }
+/*JP
                 losehp(Maybe_Half_Phys(d(2, 6)), "potion of holy water",
+*/
+                losehp(Maybe_Half_Phys(d(2, 6)), "\90¹\90\85\82Å",
                        KILLED_BY_AN);
             } else if (otmp->cursed) {
+/*JP
                 You_feel("quite proud of yourself.");
+*/
+                You("\8e©\91¸\90S\82ð\8a´\82\82½\81D");
                 healup(d(2, 6), 0, 0, 0);
                 if (u.ulycn >= LOW_PM && !Upolyd)
                     you_were();
@@ -617,7 +766,10 @@ register struct obj *otmp;
             }
         } else {
             if (otmp->blessed) {
+/*JP
                 You_feel("full of awe.");
+*/
+                You("\88Ø\95|\82Ì\94O\82É\82©\82ç\82ê\82½\81D");
                 make_sick(0L, (char *) 0, TRUE, SICK_ALL);
                 exercise(A_WIS, TRUE);
                 exercise(A_CON, TRUE);
@@ -626,11 +778,20 @@ register struct obj *otmp;
                 /* make_confused(0L, TRUE); */
             } else {
                 if (u.ualign.type == A_LAWFUL) {
+/*JP
                     pline("This burns like acid!");
+*/
+                    pline("\8e_\82Ì\82æ\82¤\82É\90ã\82ª\82Ð\82è\82Ð\82è\82·\82é\81I");
+/*JP
                     losehp(Maybe_Half_Phys(d(2, 6)), "potion of unholy water",
+*/
+                    losehp(Maybe_Half_Phys(d(2, 6)), "\95s\8fò\82È\90\85\82Å",
                            KILLED_BY_AN);
                 } else
+/*JP
                     You_feel("full of dread.");
+*/
+                    You("\8b°\95|\82Ì\94O\82É\82©\82ç\82ê\82½\81D");
                 if (u.ulycn >= LOW_PM && !Upolyd)
                     you_were();
                 exercise(A_CON, FALSE);
@@ -639,9 +800,15 @@ register struct obj *otmp;
         break;
     case POT_BOOZE:
         unkn++;
+#if 0 /*JP*/
         pline("Ooph!  This tastes like %s%s!",
               otmp->odiluted ? "watered down " : "",
               Hallucination ? "dandelion wine" : "liquid fire");
+#else
+        pline("\82¤\82¥\82Á\82Õ\81I\82±\82ê\82Í%s%s\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81I",
+              otmp->odiluted ? "\90\85\82Å\94\96\82ß\82½" : "",
+              Hallucination ? "\83^\83\93\83|\83|\83\8f\83C\83\93" : "\94R\97¿\83I\83C\83\8b");
+#endif
         if (!otmp->blessed)
             make_confused(itimeout_incr(HConfusion, d(3, 8)), FALSE);
         /* the whiskey makes us feel better */
@@ -651,32 +818,50 @@ register struct obj *otmp;
         newuhs(FALSE);
         exercise(A_WIS, FALSE);
         if (otmp->cursed) {
+/*JP
             You("pass out.");
+*/
+            You("\8bC\90â\82µ\82½\81D");
             multi = -rnd(15);
+/*JP
             nomovemsg = "You awake with a headache.";
+*/
+            nomovemsg = "\96Ú\82ª\82³\82ß\82½\82ª\93ª\92É\82ª\82·\82é\81D";
         }
         break;
     case POT_ENLIGHTENMENT:
         if (otmp->cursed) {
             unkn++;
+/*JP
             You("have an uneasy feeling...");
+*/
+            You("\95s\88À\82È\8bC\8e\9d\82É\82È\82Á\82½\81D\81D\81D");
             exercise(A_WIS, FALSE);
         } else {
             if (otmp->blessed) {
                 (void) adjattrib(A_INT, 1, FALSE);
                 (void) adjattrib(A_WIS, 1, FALSE);
             }
+/*JP
             You_feel("self-knowledgeable...");
+*/
+            You("\8e©\95ª\8e©\90g\82ª\94»\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
             display_nhwindow(WIN_MESSAGE, FALSE);
             enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS);
+/*JP
             pline_The("feeling subsides.");
+*/
+            pline("\82»\82Ì\8a´\82\82Í\82È\82­\82È\82Á\82½\81D");
             exercise(A_WIS, TRUE);
         }
         break;
     case SPE_INVISIBILITY:
         /* spell cannot penetrate mummy wrapping */
         if (BInvis && uarmc->otyp == MUMMY_WRAPPING) {
+/*JP
             You_feel("rather itchy under %s.", yname(uarmc));
+*/
+            You("%s\82Ì\89º\82ª\83\80\83Y\83\80\83Y\82µ\82½\81D", xname(uarmc));
             break;
         }
         /* FALLTHRU */
@@ -692,7 +877,10 @@ register struct obj *otmp;
             incr_itimeout(&HInvis, rn1(15, 31));
         newsym(u.ux, u.uy); /* update position */
         if (otmp->cursed) {
+/*JP
             pline("For some reason, you feel your presence is known.");
+*/
+            pline("\82È\82º\82©\81C\91\8dÝ\82ª\92m\82ç\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             aggravate();
         }
         break;
@@ -702,14 +890,27 @@ register struct obj *otmp;
 
         unkn++;
         if (otmp->cursed)
+#if 0 /*JP*/
             pline("Yecch!  This tastes %s.",
                   Hallucination ? "overripe" : "rotten");
+#else
+            pline("\83I\83F\81[\81I\82±\82ê\82Í%s\83W\83\85\81[\83X\82Ì\96¡\82ª\82·\82é\81D",
+                  Hallucination ? "\8fn\82µ\82·\82¬\82½" : "\95\85\82Á\82½");
+#endif
         else
+#if 0 /*JP*/
             pline(
                 Hallucination
                     ? "This tastes like 10%% real %s%s all-natural beverage."
                     : "This tastes like %s%s.",
                 otmp->odiluted ? "reconstituted " : "", fruitname(TRUE));
+#else
+            pline(
+                Hallucination
+                    ? "10%%%s\82Ì\8f\83\8e©\91R\88ù\97¿\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81D"
+                    : "%s%s\83W\83\85\81[\83X\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81D",
+                otmp->odiluted ? "\90¬\95ª\92²\90®\82³\82ê\82½" : "", fruitname(TRUE));
+#endif
         if (otmp->otyp == POT_FRUIT_JUICE) {
             u.uhunger += (otmp->odiluted ? 5 : 10) * (2 + bcsign(otmp));
             newuhs(FALSE);
@@ -729,22 +930,38 @@ register struct obj *otmp;
         see_monsters();       /* see invisible monsters */
         newsym(u.ux, u.uy);   /* see yourself! */
         if (msg && !Blind) {  /* Blind possible if polymorphed */
+/*JP
             You("can see through yourself, but you are visible!");
+*/
+            You("\93§\96¾\82Å\82 \82é\81D\82µ\82©\82µ\8c©\82¦\82é\82æ\82¤\82É\82È\82Á\82½\81I");
             unkn--;
         }
         break;
     }
     case POT_PARALYSIS:
         if (Free_action) {
+/*JP
             You("stiffen momentarily.");
+*/
+            You("\88ê\8fu\93®\82¯\82È\82­\82È\82Á\82½\81D");
         } else {
             if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))
+/*JP
                 You("are motionlessly suspended.");
+*/
+                You("\8bó\92\86\82Å\93®\82¯\82È\82­\82È\82Á\82½\81D");
             else if (u.usteed)
+/*JP
                 You("are frozen in place!");
+*/
+                You("\82»\82Ì\8fê\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I");
             else
+#if 0 /*JP*/
                 Your("%s are frozen to the %s!", makeplural(body_part(FOOT)),
                      surface(u.ux, u.uy));
+#else
+                You("\93®\82¯\82È\82­\82È\82Á\82½\81I");
+#endif
             nomul(-(rn1(10, 25 - 12 * bcsign(otmp))));
             multi_reason = "frozen by a potion";
             nomovemsg = You_can_move_again;
@@ -753,9 +970,15 @@ register struct obj *otmp;
         break;
     case POT_SLEEPING:
         if (Sleep_resistance || Free_action) {
+/*JP
             You("yawn.");
+*/
+            You("\82 \82­\82Ñ\82ð\82µ\82½\81D");
         } else {
+/*JP
             You("suddenly fall asleep!");
+*/
+            pline("\93Ë\91R\96°\82Á\82Ä\82µ\82Ü\82Á\82½\81I");
             fall_asleep(-rn1(10, 25 - 12 * bcsign(otmp)), TRUE);
         }
         break;
@@ -785,7 +1008,10 @@ register struct obj *otmp;
             }
             see_monsters();
             if (unkn)
+/*JP
                 You_feel("lonely.");
+*/
+                You("\90S\8d×\82­\82È\82Á\82½\81D");
             break;
         }
         if (monster_detect(otmp, 0))
@@ -799,27 +1025,49 @@ register struct obj *otmp;
         exercise(A_WIS, TRUE);
         break;
     case POT_SICKNESS:
+/*JP
         pline("Yecch!  This stuff tastes like poison.");
+*/
+        pline("\83E\83F\81[\81I\93Å\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81D");
         if (otmp->blessed) {
+/*JP
             pline("(But in fact it was mildly stale %s.)", fruitname(TRUE));
+*/
+            pline("(\82µ\82©\82µ\8eÀ\8dÛ\82»\82ê\82Í\8f­\82µ\8cÃ\82­\82È\82Á\82½%s\81D)", fruitname(TRUE));
             if (!Role_if(PM_HEALER)) {
                 /* NB: blessed otmp->fromsink is not possible */
+/*JP
                 losehp(1, "mildly contaminated potion", KILLED_BY_AN);
+*/
+                losehp(1, "\95a\8bC\82É\89\98\90õ\82³\82ê\82½\96ò\82Å", KILLED_BY_AN);
             }
         } else {
             if (Poison_resistance)
+/*JP
                 pline("(But in fact it was biologically contaminated %s.)",
+*/
+                pline("(\82µ\82©\82µ\8eÀ\8dÛ\82»\82ê\82Í\90\95¨\8aw\93I\82É\89\98\90õ\82³\82ê\82½%s\82¾\81D)",
                       fruitname(TRUE));
             if (Role_if(PM_HEALER)) {
+/*JP
                 pline("Fortunately, you have been immunized.");
+*/
+                pline("\8dK\89^\82È\82±\82Æ\82É\81C\82 \82È\82½\82Í\96Æ\89u\82ª\82 \82é\81D");
             } else {
                 char contaminant[BUFSZ];
                 int typ = rn2(A_MAX);
 
+#if 0 /*JP*/
                 Sprintf(contaminant, "%s%s",
                         (Poison_resistance) ? "mildly " : "",
                         (otmp->fromsink) ? "contaminated tap water"
                                          : "contaminated potion");
+#else
+                Sprintf(contaminant, "%s\89\98\90õ\82³\82ê\82½%s\82Å",
+                        (Poison_resistance) ? "\8f­\82µ" : "",
+                        (otmp->fromsink) ? "\90\85"
+                                         : "\96ò");
+#endif
                 if (!Fixed_abil) {
                     poisontell(typ, FALSE);
                     (void) adjattrib(typ, Poison_resistance ? -1 : -rn1(4, 3),
@@ -841,17 +1089,26 @@ register struct obj *otmp;
             }
         }
         if (Hallucination) {
+/*JP
             You("are shocked back to your senses!");
+*/
+            You("\8cÜ\8a´\82É\8fÕ\8c\82\82ð\8eó\82¯\82½\81I");
             (void) make_hallucinated(0L, FALSE, 0L);
         }
         break;
     case POT_CONFUSION:
         if (!Confusion) {
             if (Hallucination) {
+/*JP
                 pline("What a trippy feeling!");
+*/
+                pline("\82È\82ñ\82©\83w\83\8d\83w\83\8d\82·\82é\81I");
                 unkn++;
             } else
+/*JP
                 pline("Huh, What?  Where am I?");
+*/
+                pline("\82Ù\82¦\81H\8e\84\82Í\92N\81H");
         } else
             nothing++;
         make_confused(itimeout_incr(HConfusion,
@@ -860,7 +1117,10 @@ register struct obj *otmp;
         break;
     case POT_GAIN_ABILITY:
         if (otmp->cursed) {
+/*JP
             pline("Ulch!  That potion tasted foul!");
+*/
+            pline("\83E\83F\81I\88«\8fL\82ª\82·\82é\81I");
             unkn++;
         } else if (Fixed_abil) {
             nothing++;
@@ -888,9 +1148,15 @@ register struct obj *otmp;
         /* FALLTHRU */
     case SPE_HASTE_SELF:
         if (!Very_fast) { /* wwf@doe.carleton.ca */
+/*JP
             You("are suddenly moving %sfaster.", Fast ? "" : "much ");
+*/
+            You("\93Ë\91R%s\91¬\82­\88Ú\93®\82Å\82«\82é\82æ\82¤\82É\82È\82Á\82½\81D", Fast ? "" : "\82Æ\82Ä\82à");
         } else {
+/*JP
             Your("%s get new energy.", makeplural(body_part(LEG)));
+*/
+            pline("%s\82É\83G\83l\83\8b\83M\81[\82ª\92\8d\82¬\82±\82Ü\82ê\82é\82æ\82¤\82È\8a´\82\82ª\82µ\82½\81D", body_part(LEG));
             unkn++;
         }
         exercise(A_DEX, TRUE);
@@ -909,7 +1175,10 @@ register struct obj *otmp;
             /* they went up a level */
             if ((ledger_no(&u.uz) == 1 && u.uhave.amulet)
                 || Can_rise_up(u.ux, u.uy, &u.uz)) {
+/*JP
                 const char *riseup = "rise up, through the %s!";
+*/
+                const char *riseup ="%s\82ð\93Ë\82«\94²\82¯\82½\81I";
 
                 if (ledger_no(&u.uz) == 1) {
                     You(riseup, ceiling(u.ux, u.uy));
@@ -920,14 +1189,20 @@ register struct obj *otmp;
 
                     get_level(&newlevel, newlev);
                     if (on_level(&newlevel, &u.uz)) {
+/*JP
                         pline("It tasted bad.");
+*/
+                        pline("\82Æ\82Ä\82à\82Ü\82¸\82¢\81D");
                         break;
                     } else
                         You(riseup, ceiling(u.ux, u.uy));
                     goto_level(&newlevel, FALSE, FALSE, FALSE);
                 }
             } else
+/*JP
                 You("have an uneasy feeling.");
+*/
+                You("\95s\88À\82È\8bC\8e\9d\82É\82È\82Á\82½\81D");
             break;
         }
         pluslvl(FALSE);
@@ -937,13 +1212,19 @@ register struct obj *otmp;
             u.uexp = rndexp(TRUE);
         break;
     case POT_HEALING:
+/*JP
         You_feel("better.");
+*/
+        You("\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\81D");
         healup(d(6 + 2 * bcsign(otmp), 4), !otmp->cursed ? 1 : 0,
                !!otmp->blessed, !otmp->cursed);
         exercise(A_CON, TRUE);
         break;
     case POT_EXTRA_HEALING:
+/*JP
         You_feel("much better.");
+*/
+        You("\8bC\95ª\82ª\82Æ\82Ä\82à\82æ\82­\82È\82Á\82½\81D");
         healup(d(6 + 2 * bcsign(otmp), 8),
                otmp->blessed ? 5 : !otmp->cursed ? 2 : 0, !otmp->cursed,
                TRUE);
@@ -952,7 +1233,10 @@ register struct obj *otmp;
         exercise(A_STR, TRUE);
         break;
     case POT_FULL_HEALING:
+/*JP
         You_feel("completely healed.");
+*/
+        You("\8a®\91S\82É\89ñ\95\9c\82µ\82½\81D");
         healup(400, 4 + 4 * bcsign(otmp), !otmp->cursed, TRUE);
         /* Restore one lost level if blessed */
         if (otmp->blessed && u.ulevel < u.ulevelmax) {
@@ -985,9 +1269,17 @@ register struct obj *otmp;
                 } else if (has_ceiling(&u.uz)) {
                     int dmg = uarmh ? 1 : rnd(10);
 
+#if 0 /*JP*/
                     You("hit your %s on the %s.", body_part(HEAD),
                         ceiling(u.ux, u.uy));
+#else
+                    You("%s\82ð%s\82É\82Ô\82Â\82¯\82½\81D", body_part(HEAD),
+                        ceiling(u.ux,u.uy));
+#endif
+/*JP
                     losehp(Maybe_Half_Phys(dmg), "colliding with the ceiling",
+*/
+                    losehp(Maybe_Half_Phys(dmg), "\93V\88ä\82É\93ª\82ð\82Ô\82Â\82¯\82Ä",
                            KILLED_BY);
                 }
             } /*cursed*/
@@ -1006,9 +1298,15 @@ register struct obj *otmp;
         int num;
 
         if (otmp->cursed)
+/*JP
             You_feel("lackluster.");
+*/
+            You("\88Ó\8bC\8fÁ\92¾\82µ\82½\81D");
         else
+/*JP
             pline("Magical energies course through your body.");
+*/
+            pline("\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ª\82 \82È\82½\82Ì\91Ì\82É\96\9e\82¿\82½\81D");
 
         /* old: num = rnd(5) + 5 * otmp->blessed + 1;
          *      blessed:  +7..11 max & current (+9 avg)
@@ -1039,33 +1337,60 @@ register struct obj *otmp;
 
         if (otmp->lamplit) {
             if (likes_fire(youmonst.data)) {
+/*JP
                 pline("Ahh, a refreshing drink.");
+*/
+                pline("\82í\81[\82¨\81C\90\82«\95Ô\82é\81D");
                 good_for_you = TRUE;
             } else {
+/*JP
                 You("burn your %s.", body_part(FACE));
+*/
+                Your("%s\82Í\8d\95\8fÅ\82°\82É\82È\82Á\82½\81D", body_part(FACE));
                 /* fire damage */
+/*JP
                 losehp(d(Fire_resistance ? 1 : 3, 4), "burning potion of oil",
+*/
+                losehp(d(Fire_resistance ? 1 : 3, 4), "\94R\82¦\82Ä\82¢\82é\96û\82ð\88ù\82ñ\82Å",
                        KILLED_BY_AN);
             }
         } else if (otmp->cursed)
+/*JP
             pline("This tastes like castor oil.");
+*/
+            pline("\82Ð\82Ü\82µ\96û\82Ì\82æ\82¤\82È\96¡\82ª\82·\82é\81D");
         else
+/*JP
             pline("That was smooth!");
+*/
+            pline("\8cû\82 \82½\82è\82ª\82æ\82¢\81I");
         exercise(A_WIS, good_for_you);
         break;
     }
     case POT_ACID:
         if (Acid_resistance) {
             /* Not necessarily a creature who _likes_ acid */
+/*JP
             pline("This tastes %s.", Hallucination ? "tangy" : "sour");
+*/
+            pline("%s\96¡\82ª\82·\82é\81D", Hallucination ? "\82Ò\82è\82Á\82Æ\82µ\82½" : "\8e_\82Ì");
         } else {
             int dmg;
 
+#if 0 /*JP*/
             pline("This burns%s!",
                   otmp->blessed ? " a little" : otmp->cursed ? " a lot"
                                                              : " like acid");
+#else
+            pline("%s\8fÅ\82°\82½\81I",
+                  otmp->blessed ? "\8f­\82µ" : otmp->cursed ? "\82·\82²\82­"
+                                                        : "");
+#endif
             dmg = d(otmp->cursed ? 2 : 1, otmp->blessed ? 4 : 8);
+/*JP
             losehp(Maybe_Half_Phys(dmg), "potion of acid", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\8e_\82Ì\96ò\82ð\88ù\82ñ\82Å", KILLED_BY_AN);
             exercise(A_CON, FALSE);
         }
         if (Stoned)
@@ -1073,7 +1398,10 @@ register struct obj *otmp;
         unkn++; /* holy/unholy water can burn like acid too */
         break;
     case POT_POLYMORPH:
+/*JP
         You_feel("a little %s.", Hallucination ? "normal" : "strange");
+*/
+        You("\8f­\82µ%s\82È\8a´\82\82ª\82µ\82½\81D", Hallucination ? "\95\81\92Ê" : "\95Ï");
         if (!Unchanging)
             polyself(0);
         break;
@@ -1084,6 +1412,24 @@ register struct obj *otmp;
     return -1;
 }
 
+#ifdef  JPEXTENSION
+void
+make_totter(xtime, talk)
+long xtime;     /* nonzero if this is an attempt to turn on hallucination */
+boolean talk;
+{
+        const char *message = 0;
+
+        if (!xtime)
+            message = "\95û\8cü\8a´\8ao\82ª\90³\8fí\82É\82È\82Á\82½\81D";
+        else
+            message = "\95û\8cü\8a´\8ao\82ª\96\83á\83\82µ\82½\81D";
+
+        set_itimeout(&Totter, xtime);
+        pline(message);
+}
+#endif
+
 void
 healup(nhp, nxtra, curesick, cureblind)
 int nhp, nxtra;
@@ -1116,8 +1462,13 @@ struct obj *obj;
 const char *txt;
 {
     if (flags.beginner || !txt)
+#if 0 /*JP*/
         You("have a %s feeling for a moment, then it passes.",
             Hallucination ? "normal" : "strange");
+#else
+        You("%s\8bC\95ª\82É\82¨\82»\82í\82ê\82½\82ª\81C\82·\82®\82É\8fÁ\82¦\82³\82Á\82½\81D",
+            Hallucination ? "\95\81\92Ê\82Ì" : "\8aï\96­\82È");
+#endif
     else
         pline1(txt);
 
@@ -1131,8 +1482,13 @@ const char *txt;
     useup(obj);
 }
 
+#if 0 /*JP*/
 const char *bottlenames[] = { "bottle", "phial", "flagon", "carafe",
                               "flask",  "jar",   "vial" };
+#else
+const char *bottlenames[] = { "\95r", "àÞ\97\9e\95r", "\88ê\8f¡\95r", "\90\85\8d·\82µ",
+                              "\83t\83\89\83X\83R", "\92Ù", "\83K\83\89\83X\95r" };
+#endif
 
 const char *
 bottlename()
@@ -1233,9 +1589,17 @@ boolean your_fault;
 
     if (isyou) {
         distance = 0;
+#if 0 /*JP*/
         pline_The("%s crashes on your %s and breaks into shards.", botlnam,
                   body_part(HEAD));
+#else
+        pline("%s\82ª\82 \82È\82½\82Ì%s\82Ì\8fã\82Å\89ó\82ê\94j\95Ð\82Æ\82È\82Á\82½\81D", botlnam,
+              body_part(HEAD));
+#endif
+/*JP
         losehp(Maybe_Half_Phys(rnd(2)), "thrown potion", KILLED_BY_AN);
+*/
+        losehp(Maybe_Half_Phys(rnd(2)), "\93\8a\82°\82ç\82ê\82½\96ò\82Å", KILLED_BY_AN);
     } else {
         /* sometimes it hits the saddle */
         if (((mon->misc_worn_check & W_SADDLE)
@@ -1247,24 +1611,40 @@ boolean your_fault;
             hit_saddle = TRUE;
         distance = distu(mon->mx, mon->my);
         if (!cansee(mon->mx, mon->my))
+/*JP
             pline("Crash!");
+*/
+            pline("\83K\83V\83\83\83\93\81I");
         else {
             char *mnam = mon_nam(mon);
             char buf[BUFSZ];
 
             if (hit_saddle && saddle) {
+/*JP
                 Sprintf(buf, "%s saddle",
+*/
+                Sprintf(buf, "%s\82Ì\88Æ",
                         s_suffix(x_monnam(mon, ARTICLE_THE, (char *) 0,
                                           (SUPPRESS_IT | SUPPRESS_SADDLE),
                                           FALSE)));
             } else if (has_head(mon->data)) {
+#if 0 /*JP*/
                 Sprintf(buf, "%s %s", s_suffix(mnam),
                         (notonhead ? "body" : "head"));
+#else
+                Sprintf(buf, "%s\82Ì%s", s_suffix(mnam),
+                        (notonhead ? "\91Ì" : "\93ª"));
+#endif
             } else {
                 Strcpy(buf, mnam);
             }
+#if 0 /*JP*/
             pline_The("%s crashes on %s and breaks into shards.", botlnam,
                       buf);
+#else
+            pline("%s\82ª%s\82Ì\8fã\82Å\89ó\82ê\94j\95Ð\82Æ\82È\82Á\82½\81D", botlnam,
+                      buf);
+#endif
         }
         if (rn2(5) && mon->mhp > 1 && !hit_saddle)
             mon->mhp--;
@@ -1272,7 +1652,10 @@ boolean your_fault;
 
     /* oil doesn't instantly evaporate; Neither does a saddle hit */
     if (obj->otyp != POT_OIL && !hit_saddle && cansee(mon->mx, mon->my))
+/*JP
         pline("%s.", Tobjnam(obj, "evaporate"));
+*/
+        pline("%s\82Í\8fö\94­\82µ\82½\81D", xname(obj));
 
     if (isyou) {
         switch (obj->otyp) {
@@ -1281,18 +1664,30 @@ boolean your_fault;
                 explode_oil(obj, u.ux, u.uy);
             break;
         case POT_POLYMORPH:
+/*JP
             You_feel("a little %s.", Hallucination ? "normal" : "strange");
+*/
+            You("%s\82È\8a´\82\82ª\82µ\82½\81D", Hallucination ? "\95\81\92Ê" : "\95Ï");
             if (!Unchanging && !Antimagic)
                 polyself(0);
             break;
         case POT_ACID:
             if (!Acid_resistance) {
                 int dmg;
+#if 0 /*JP*/
                 pline("This burns%s!",
                       obj->blessed ? " a little"
                                    : obj->cursed ? " a lot" : "");
+#else
+                pline("%s\94R\82¦\82½\81I",
+                      obj->blessed ? "\8f­\82µ"
+                                   : obj->cursed ? "\82Í\82°\82µ\82­" : "");
+#endif
                 dmg = d(obj->cursed ? 2 : 1, obj->blessed ? 4 : 8);
+/*JP
                 losehp(Maybe_Half_Phys(dmg), "potion of acid", KILLED_BY_AN);
+*/
+                losehp(Maybe_Half_Phys(dmg), "\8e_\82Ì\96ò\82ð\97\81\82Ñ\82Ä", KILLED_BY_AN);
             }
             break;
         }
@@ -1335,7 +1730,10 @@ boolean your_fault;
             if (mon->mhp < mon->mhpmax) {
                 mon->mhp = mon->mhpmax;
                 if (canseemon(mon))
+/*JP
                     pline("%s looks sound and hale again.", Monnam(mon));
+*/
+                    pline("%s\82Í\8c³\8bC\82É\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mon));
             }
             break;
         case POT_SICKNESS:
@@ -1347,7 +1745,11 @@ boolean your_fault;
                 /* most common case */
                 || resists_poison(mon)) {
                 if (canseemon(mon))
+#if 0 /*JP*/
                     pline("%s looks unharmed.", Monnam(mon));
+#else
+                    pline("%s\82Í\82È\82ñ\82Æ\82à\82È\82¢\82æ\82¤\82¾\81D", Monnam(mon));
+#endif
                 break;
             }
         do_illness:
@@ -1358,7 +1760,10 @@ boolean your_fault;
             if (mon->mhp > mon->mhpmax)
                 mon->mhp = mon->mhpmax;
             if (canseemon(mon))
+/*JP
                 pline("%s looks rather ill.", Monnam(mon));
+*/
+                pline("%s\82Í\95a\8bC\82Á\82Û\82­\8c©\82¦\82é\81D", Monnam(mon));
             break;
         case POT_CONFUSION:
         case POT_BOOZE:
@@ -1372,7 +1777,10 @@ boolean your_fault;
         case POT_SLEEPING:
             /* wakeup() doesn't rouse victims of temporary sleep */
             if (sleep_monst(mon, rnd(12), POTION_CLASS)) {
+/*JP
                 pline("%s falls asleep.", Monnam(mon));
+*/
+                pline("%s\82Í\96°\82Á\82Ä\82µ\82Ü\82Á\82½\81D", Monnam(mon));
                 slept_monst(mon);
             }
             break;
@@ -1402,8 +1810,13 @@ boolean your_fault;
             if (is_undead(mon->data) || is_demon(mon->data)
                 || is_were(mon->data) || is_vampshifter(mon)) {
                 if (obj->blessed) {
+#if 0 /*JP*/
                     pline("%s %s in pain!", Monnam(mon),
                           is_silent(mon->data) ? "writhes" : "shrieks");
+#else
+                    pline("%s\82Í\8bê\92É%s\81I", Monnam(mon),
+                          is_silent(mon->data) ? "\82É\90g\82à\82¾\82¦\82µ\82½" : "\82Ì\8b©\82Ñ\90º\82ð\82 \82°\82½");
+#endif
                     if (!is_silent(mon->data))
                         wake_nearto(mon->mx, mon->my, mon->data->mlevel * 10);
                     mon->mhp -= d(2, 6);
@@ -1415,7 +1828,10 @@ boolean your_fault;
                 } else if (obj->cursed) {
                     angermon = FALSE;
                     if (canseemon(mon))
+/*JP
                         pline("%s looks healthier.", Monnam(mon));
+*/
+                        pline("%s\82Í\82æ\82è\8c³\8bC\82É\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mon));
                     mon->mhp += d(2, 6);
                     if (mon->mhp > mon->mhpmax)
                         mon->mhp = mon->mhpmax;
@@ -1428,7 +1844,10 @@ boolean your_fault;
                 (void) split_mon(mon, (struct monst *) 0);
             } else if (mon->data == &mons[PM_IRON_GOLEM]) {
                 if (canseemon(mon))
+/*JP
                     pline("%s rusts.", Monnam(mon));
+*/
+                    pline("%s\82Í\8eK\82Ñ\82½\81D", Monnam(mon));
                 mon->mhp -= d(1, 6);
                 /* should only be by you */
                 if (mon->mhp < 1)
@@ -1441,8 +1860,13 @@ boolean your_fault;
             break;
         case POT_ACID:
             if (!resists_acid(mon) && !resist(mon, POTION_CLASS, 0, NOTELL)) {
+#if 0 /*JP*/
                 pline("%s %s in pain!", Monnam(mon),
                       is_silent(mon->data) ? "writhes" : "shrieks");
+#else
+                pline("%s\82Í\8bê\92É%s\81I", Monnam(mon),
+                      is_silent(mon->data) ? "\82É\90g\82à\82¾\82¦\82µ\82½" : "\82Ì\8b©\82Ñ\90º\82ð\82 \82°\82½");
+#endif
                 if (!is_silent(mon->data))
                     wake_nearto(mon->mx, mon->my, mon->data->mlevel * 10);
                 mon->mhp -= d(obj->cursed ? 2 : 1, obj->blessed ? 4 : 8);
@@ -1503,13 +1927,20 @@ register struct obj *obj;
     case POT_GAIN_ABILITY:
         if (obj->cursed) {
             if (!breathless(youmonst.data))
+/*JP
                 pline("Ulch!  That potion smells terrible!");
+*/
+                pline("\83E\83Q\83F\81I\96ò\82Í\82à\82Ì\82·\82²\82¢\93õ\82¢\82ª\82·\82é\81I");
             else if (haseyes(youmonst.data)) {
+#if 0 /*JP*/
                 const char *eyes = body_part(EYE);
 
                 if (eyecount(youmonst.data) != 1)
                     eyes = makeplural(eyes);
                 Your("%s %s!", eyes, vtense(eyes, "sting"));
+#else
+                Your("%s\82ª\82¸\82«\82¸\82«\82·\82é\81I", body_part(EYE));
+#endif
             }
             break;
         } else {
@@ -1563,54 +1994,84 @@ register struct obj *obj;
         }
         break;
     case POT_HALLUCINATION:
+/*JP
         You("have a momentary vision.");
+*/
+        You("\88ê\8fu\8c\89e\82É\82Â\82Â\82Ü\82ê\82½\81D");
         break;
     case POT_CONFUSION:
     case POT_BOOZE:
         if (!Confusion)
+/*JP
             You_feel("somewhat dizzy.");
+*/
+            You("\82ß\82Ü\82¢\82ð\8a´\82\82½\81D");
         make_confused(itimeout_incr(HConfusion, rnd(5)), FALSE);
         break;
     case POT_INVISIBILITY:
         if (!Blind && !Invis) {
             kn++;
+#if 0 /*JP*/
             pline("For an instant you %s!",
                   See_invisible ? "could see right through yourself"
                                 : "couldn't see yourself");
+#else
+            pline("\88ê\8fu\8e©\95ª\8e©\90g\82ª%s\8c©\82¦\82È\82­\82È\82Á\82½\81I",
+                  See_invisible ? "\90³\82µ\82­"
+                                : "");
+#endif
         }
         break;
     case POT_PARALYSIS:
         kn++;
         if (!Free_action) {
+/*JP
             pline("%s seems to be holding you.", Something);
+*/
+            pline("%s\82ª\82 \82È\82½\82ð\82Â\82©\82Ü\82¦\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", Something);
             nomul(-rnd(5));
             multi_reason = "frozen by a potion";
             nomovemsg = You_can_move_again;
             exercise(A_DEX, FALSE);
         } else
+/*JP
             You("stiffen momentarily.");
+*/
+            You("\88ê\8fu\8dd\92¼\82µ\82½\81D");
         break;
     case POT_SLEEPING:
         kn++;
         if (!Free_action && !Sleep_resistance) {
+/*JP
             You_feel("rather tired.");
+*/
+            You("\82·\82±\82µ\94æ\82ê\82½\81D");
             nomul(-rnd(5));
             multi_reason = "sleeping off a magical draught";
             nomovemsg = You_can_move_again;
             exercise(A_DEX, FALSE);
         } else
+/*JP
             You("yawn.");
+*/
+            You("\82 \82­\82Ñ\82ð\82µ\82½\81D");
         break;
     case POT_SPEED:
         if (!Fast)
+/*JP
             Your("knees seem more flexible now.");
+*/
+            Your("\95G\82Í\82æ\82è\82·\82Î\82â\82­\93®\82­\82æ\82¤\82É\82È\82Á\82½\81D");
         incr_itimeout(&HFast, rnd(5));
         exercise(A_DEX, TRUE);
         break;
     case POT_BLINDNESS:
         if (!Blind && !Unaware) {
             kn++;
+/*JP
             pline("It suddenly gets dark.");
+*/
+            pline("\93Ë\91R\88Ã\82­\82È\82Á\82½\81D");
         }
         make_blinded(itimeout_incr(Blinded, rnd(5)), FALSE);
         if (!Blind && !Unaware)
@@ -1767,12 +2228,20 @@ dodip()
     if (inaccessible_equipment(obj, "dip", FALSE))
         return 0;
 
+#if 0 /*JP*/
     Sprintf(qbuf, "dip %s into", thesimpleoname(obj));
+#else
+    Sprintf(qbuf, "%s\82ð\90Z\82µ\82Ü\82·\82©", thesimpleoname(obj));
+#endif
     here = levl[u.ux][u.uy].typ;
     /* Is there a fountain to dip into here? */
     if (IS_FOUNTAIN(here)) {
         /* "Dip <the object> into the fountain?" */
+#if 0 /*JP*/
         Sprintf(qtoo, "%s the fountain?", qbuf);
+#else
+        Sprintf(qtoo, "\90ò\82É%s\81H", qbuf);
+#endif
         if (yn(upstart(qtoo)) == 'y') {
             dipfountain(obj);
             return 1;
@@ -1781,7 +2250,11 @@ dodip()
         const char *pooltype = waterbody_name(u.ux, u.uy);
 
         /* "Dip <the object> into the {pool, moat, &c}?" */
+#if 0 /*JP*/
         Sprintf(qtoo, "%s the %s?", qbuf, pooltype);
+#else
+        Sprintf(qtoo, "%s\82É%s\81H", pooltype, qbuf);
+#endif
         if (yn(upstart(qtoo)) == 'y') {
             if (Levitation) {
                 floating_above(pooltype);
@@ -1803,7 +2276,10 @@ dodip()
     if (!potion)
         return 0;
     if (potion == obj && potion->quan == 1L) {
+/*JP
         pline("That is a potion bottle, not a Klein bottle!");
+*/
+        pline("\82±\82ê\82Í\96ò\95r\82¾\81I\83N\83\89\83C\83\93\82Ì\92Ù\82\82á\82È\82¢\81I");
         return 0;
     }
     potion->in_use = TRUE; /* assume it will be used up */
@@ -1847,7 +2323,10 @@ dodip()
                 prinv((char *) 0, obj, 0L);
                 return 1;
             } else {
+/*JP
                 pline("Nothing seems to happen.");
+*/
+                pline("\89½\82à\8bN\82±\82ç\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
                 goto poof;
             }
         }
@@ -1856,7 +2335,11 @@ dodip()
     } else if (obj->oclass == POTION_CLASS && obj->otyp != potion->otyp) {
         long amt = obj->quan;
 
+#if 0 /*JP*/
         Strcpy(qbuf, "The");
+#else
+        Strcpy(qbuf, "");
+#endif
         if (amt > (objects[potion->otyp].oc_magic ? 2L : 9L)) {
             /* trying to dip multiple potions will usually affect only a
                subset; pick an amount between 2 and min(N,9), inclusive */
@@ -1867,13 +2350,23 @@ dodip()
             amt += 1L;
             if (amt < obj->quan) {
                 obj = splitobj(obj, amt);
+#if 0 /*JP*/
                 Sprintf(qbuf, "%ld of the", obj->quan);
+#else
+                Sprintf(qbuf, "%ld\96{\82Ì", obj->quan);
+#endif
             }
         }
         /* [N of] the {obj(s)} mix(es) with [one of] {the potion}... */
+#if 0 /*JP*/
         pline("%s %s %s with %s%s...", qbuf, simpleonames(obj),
               otense(obj, "mix"), (potion->quan > 1L) ? "one of " : "",
               thesimpleoname(potion));
+#else /* [N\96{\82Ì]{obj}\82ð{the potion}[\82Ì\88ê\82Â]\82Æ\8d¬\82º\82½\81D\81D\81D */
+        pline("%s%s\82ð%s%s\82Æ\8d¬\82º\82½\81D\81D\81D", qbuf, simpleonames(obj),
+              thesimpleoname(potion),
+              (potion->quan > 1L) ? "\82Ì\88ê\82Â" : "");
+#endif
         /* Mixing potions is dangerous...
            KMH, balance patch -- acid is particularly unstable */
         if (obj->cursed || obj->otyp == POT_ACID || !rn2(10)) {
@@ -1882,7 +2375,10 @@ dodip()
                around for potionbreathe() [and we can't set obj->in_use
                to 'amt' because that's not implemented] */
             obj->in_use = 1;
+/*JP
             pline("BOOM!  They explode!");
+*/
+            pline("\83o\81[\83\93\81I\94\9a\94­\82µ\82½\81I");
             wake_nearto(u.ux, u.uy, (BOLT_LIM + 1) * (BOLT_LIM + 1));
             exercise(A_STR, FALSE);
             if (!breathless(youmonst.data) || haseyes(youmonst.data))
@@ -1890,7 +2386,10 @@ dodip()
             useupall(obj);
             useup(potion);
             losehp((int) (amt + rnd(9)), /* not physical damage */
+/*JP
                    "alchemic blast", KILLED_BY_AN);
+*/
+                   "\92²\8d\87\82Ì\8e¸\94s\82Å", KILLED_BY_AN);
             return 1;
         }
 
@@ -1920,16 +2419,25 @@ dodip()
                 useupall(obj);
                 useup(potion);
                 if (!Blind)
+/*JP
                     pline_The("mixture glows brightly and evaporates.");
+*/
+                    pline("\8d¬\82º\82é\82Æ\96ò\82Í\96¾\82é\82­\8bP\82«\81C\8fö\94­\82µ\82½\81D");
                 return 1;
             }
         }
         obj->odiluted = (obj->otyp != POT_WATER);
 
         if (obj->otyp == POT_WATER && !Hallucination) {
+/*JP
             pline_The("mixture bubbles%s.", Blind ? "" : ", then clears");
+*/
+            pline("\96ò\82ð\8d¬\82º\82é\82Æ%s\96A\82¾\82Á\82½\81D", Blind ? "" : "\82µ\82Î\82ç\82­");
         } else if (!Blind) {
+/*JP
             pline_The("mixture looks %s.",
+*/
+            pline("\8d¬\82º\82½\96ò\82Í%s\96ò\82É\8c©\82¦\82é\81D",
                       hcolor(OBJ_DESCR(objects[obj->otyp])));
         }
 
@@ -1966,16 +2474,25 @@ dodip()
             char buf[BUFSZ];
 
             if (potion->quan > 1L)
+/*JP
                 Sprintf(buf, "One of %s", the(xname(potion)));
+*/
+                Sprintf(buf, "%s\82Ì\88ê\82Â", the(xname(potion)));
             else
                 Strcpy(buf, The(xname(potion)));
+/*JP
             pline("%s forms a coating on %s.", buf, the(xname(obj)));
+*/
+            pline("%s\82ª%s\82É\93h\82ç\82ê\82½\81D", buf, the(xname(obj)));
             obj->opoisoned = TRUE;
             goto poof;
         } else if (obj->opoisoned && (potion->otyp == POT_HEALING
                                       || potion->otyp == POT_EXTRA_HEALING
                                       || potion->otyp == POT_FULL_HEALING)) {
+/*JP
             pline("A coating wears off %s.", the(xname(obj)));
+*/
+            pline("\93Å\82ª%s\82©\82ç\94\8d\82°\82¨\82¿\82½\81D", the(xname(obj)));
             obj->opoisoned = 0;
             goto poof;
         }
@@ -1992,7 +2509,10 @@ dodip()
         if (potion->lamplit) { /* burning */
             fire_damage(obj, TRUE, u.ux, u.uy);
         } else if (potion->cursed) {
+/*JP
             pline_The("potion spills and covers your %s with oil.",
+*/
+            pline("\96û\82Í\94ò\82Ñ\8eU\82è\82 \82È\82½\82Ì%s\82É\82©\82©\82Á\82½\81D",
                       makeplural(body_part(FINGER)));
             incr_itimeout(&Glib, d(2, 10));
         } else if (obj->oclass != WEAPON_CLASS && !is_weptool(obj)) {
@@ -2005,13 +2525,24 @@ dodip()
         } else if ((!is_rustprone(obj) && !is_corrodeable(obj))
                    || is_ammo(obj) || (!obj->oeroded && !obj->oeroded2)) {
             /* uses up potion, doesn't set obj->greased */
+#if 0 /*JP*/
             pline("%s %s with an oily sheen.", Yname2(obj),
                   otense(obj, "gleam"));
+#else
+                pline("%s\82Í\96û\82Ì\8cõ\91ò\82Å\82«\82ç\82è\82Æ\8cõ\82Á\82½\81D", Yname2(obj));
+#endif
         } else {
+#if 0 /*JP*/
             pline("%s %s less %s.", Yname2(obj), otense(obj, "are"),
                   (obj->oeroded && obj->oeroded2)
                       ? "corroded and rusty"
                       : obj->oeroded ? "rusty" : "corroded");
+#else
+            pline("%s\82Ì%s\82ª\8eæ\82ê\82½\81D", Yname2(obj),
+                  (obj->oeroded && obj->oeroded2)
+                      ? "\95\85\90H\82Æ\8eK"
+                      : obj->oeroded ? "\8eK" : "\95\85\90H");
+#endif
             if (obj->oeroded > 0)
                 obj->oeroded--;
             if (obj->oeroded2 > 0)
@@ -2041,10 +2572,16 @@ more_dips:
             obj->age = 0;
         }
         if (obj->age > 1000L) {
+/*JP
             pline("%s %s full.", Yname2(obj), otense(obj, "are"));
+*/
+            pline("%s\82É\82Í\82½\82Á\82Õ\82è\93ü\82Á\82Ä\82¢\82é\81D", Yname2(obj));
             potion->in_use = FALSE; /* didn't go poof */
         } else {
+/*JP
             You("fill %s with oil.", yname(obj));
+*/
+            You("%s\82É\96û\82ð\93ü\82ê\82½\81D", yname(obj));
             check_unpaid(potion);        /* Yendorian Fuel Tax */
             obj->age += 2 * potion->age; /* burns more efficiently */
             if (obj->age > 1500L)
@@ -2069,7 +2606,10 @@ more_dips:
         oldbuf[0] = '\0';
         if (potion->dknown) {
             old_dknown = TRUE;
+/*JP
             Sprintf(oldbuf, "%s ", hcolor(OBJ_DESCR(objects[potion->otyp])));
+*/
+            Sprintf(oldbuf, "%s", hcolor(OBJ_DESCR(objects[potion->otyp])));
         }
         /* with multiple merged potions, split off one and
            just clear it */
@@ -2090,6 +2630,7 @@ more_dips:
             singlepotion->dknown = FALSE;
         } else {
             singlepotion->dknown = !Hallucination;
+#if 0 /*JP*/
             if (mixture == POT_WATER && singlepotion->dknown)
                 Sprintf(newbuf, "clears");
             else
@@ -2097,6 +2638,15 @@ more_dips:
                         hcolor(OBJ_DESCR(objects[mixture])));
             pline_The("%spotion%s %s.", oldbuf,
                       more_than_one ? " that you dipped into" : "", newbuf);
+#else
+            if (mixture == POT_WATER && singlepotion->dknown)
+                Sprintf(newbuf, "\93§\96¾");
+            else
+                Sprintf(newbuf, "%s\96ò",
+                        hcolor(OBJ_DESCR(objects[mixture])));
+            pline_The("%s%s\96ò\82Í%s\82É\82È\82Á\82½\81D.", more_than_one ? "\90Z\82µ\82½" : "",
+                      oldbuf, newbuf);
+#endif
             if (!objects[old_otyp].oc_uname
                 && !objects[old_otyp].oc_name_known && old_dknown) {
                 struct obj fakeobj;
@@ -2109,13 +2659,19 @@ more_dips:
         }
         obj_extract_self(singlepotion);
         singlepotion =
+/*JP
             hold_another_object(singlepotion, "You juggle and drop %s!",
+*/
+            hold_another_object(singlepotion, "\82¨\8eè\8bÊ\82µ\82Ä%s\82ð\97\8e\82Æ\82µ\82Ä\82µ\82Ü\82Á\82½\81I",
                                 doname(singlepotion), (const char *) 0);
         update_inventory();
         return 1;
     }
 
+/*JP
     pline("Interesting...");
+*/
+    pline("\96Ê\94\92\82¢\81D\81D\81D");
     return 1;
 
 poof:
@@ -2155,16 +2711,36 @@ struct obj *obj;
     int chance;
 
     if (!(mtmp = makemon(&mons[PM_DJINNI], u.ux, u.uy, NO_MM_FLAGS))) {
+#if 0 /*JP*/
         pline("It turns out to be empty.");
+#else
+        if (obj->otyp == MAGIC_LAMP) {
+            pline("\83\89\83\93\83v\82Í\8bó\82Á\82Û\82¾\82Á\82½\81D");
+        } else {
+            pline("\96ò\82Í\8bó\82Á\82Û\82¾\82Á\82½\81D");
+        }
+#endif
         return;
     }
 
     if (!Blind) {
+/*JP
         pline("In a cloud of smoke, %s emerges!", a_monnam(mtmp));
+*/
+        pline("\89\8c\82Ì\92\86\82©\82ç\81C%s\82ª\8c»\82í\82ê\82½\81I", a_monnam(mtmp));
+/*JP
         pline("%s speaks.", Monnam(mtmp));
+*/
+        pline("%s\82Í\98b\82µ\82©\82¯\82½\81D", Monnam(mtmp));
     } else {
+/*JP
         You("smell acrid fumes.");
+*/
+        You("\83c\83\93\82Æ\82·\82é\93õ\82¢\82ª\82µ\82½\81D");
+/*JP
         pline("%s speaks.", Something);
+*/
+        pline("%s\82ª\98b\82µ\82©\82¯\82½\81D", Something);
     }
 
     chance = rn2(5);
@@ -2176,27 +2752,45 @@ struct obj *obj;
 
     switch (chance) {
     case 0:
+/*JP
         verbalize("I am in your debt.  I will grant one wish!");
+*/
+        verbalize("\82¨\91O\82É\82Í\8eØ\82è\82ª\82Å\82«\82½\81D\88ê\82Â\8aè\82¢\82ð\82©\82È\82¦\82Ä\82â\82ë\82¤\81I");
         /* give a wish and discard the monster (mtmp set to null) */
         mongrantswish(&mtmp);
         break;
     case 1:
+/*JP
         verbalize("Thank you for freeing me!");
+*/
+        verbalize("\8e\84\82ð\8f\95\82¯\82Ä\82­\82ê\82½\82±\82Æ\82ð\8a´\8eÓ\82·\82é\81I");
         (void) tamedog(mtmp, (struct obj *) 0);
         break;
     case 2:
+/*JP
         verbalize("You freed me!");
+*/
+        verbalize("\89ð\95ú\82µ\82Ä\82­\82ê\82½\82Ì\82Í\82¨\91O\82©\81I");
         mtmp->mpeaceful = TRUE;
         set_malign(mtmp);
         break;
     case 3:
+/*JP
         verbalize("It is about time!");
+*/
+        verbalize("\82³\82ç\82Î\82¾\81I");
         if (canspotmon(mtmp))
+/*JP
             pline("%s vanishes.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8fÁ\82¦\82½\81D", Monnam(mtmp));
         mongone(mtmp);
         break;
     default:
+/*JP
         verbalize("You disturbed me, fool!");
+*/
+        verbalize("\82¨\82Ü\82¦\82Í\8e\84\82Ì\96°\82è\82ð\96W\82°\82½\81D\82¨\82ë\82©\82à\82Ì\82ß\81I");
         mtmp->mpeaceful = FALSE;
         set_malign(mtmp);
         break;
@@ -2215,9 +2809,15 @@ struct monst *mon,  /* monster being split */
 
     reason[0] = '\0';
     if (mtmp)
+#if 0 /*JP*/
         Sprintf(reason, " from %s heat",
                 (mtmp == &youmonst) ? the_your[1]
                                     : (const char *) s_suffix(mon_nam(mtmp)));
+#else
+        Sprintf(reason, "%s\82Ì\94M\82Å",
+                (mtmp == &youmonst) ? the_your[1]
+                                    : (const char *) s_suffix(mon_nam(mtmp)));
+#endif
 
     if (mon == &youmonst) {
         mtmp2 = cloneu();
@@ -2225,7 +2825,10 @@ struct monst *mon,  /* monster being split */
             mtmp2->mhpmax = u.mhmax / 2;
             u.mhmax -= mtmp2->mhpmax;
             context.botl = 1;
+/*JP
             You("multiply%s!", reason);
+*/
+            You("%s\95ª\97ô\82µ\82½\81I", reason);
         }
     } else {
         mtmp2 = clone_mon(mon, 0, 0);
@@ -2233,7 +2836,10 @@ struct monst *mon,  /* monster being split */
             mtmp2->mhpmax = mon->mhpmax / 2;
             mon->mhpmax -= mtmp2->mhpmax;
             if (canspotmon(mon))
+/*JP
                 pline("%s multiplies%s!", Monnam(mon), reason);
+*/
+                pline("%s\82Í%s\95ª\97ô\82µ\82½\81I", Monnam(mon), reason);
         }
     }
     return mtmp2;
index e3da3e3..629597e 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_PTR int NDECL(prayer_done);
@@ -41,10 +46,16 @@ STATIC_DCL boolean FDECL(blocked_boulder, (int, int));
  *      responsible for the theft of the Amulet from Marduk, the Creator.
  *      Moloch is unaligned.
  */
+/*JP
 static const char *Moloch = "Moloch";
+*/
+static const char *Moloch = "\83\82\81[\83\8d\83b\83N";
 
 static const char *godvoices[] = {
+/*JP
     "booms out", "thunders", "rings out", "booms",
+*/
+    "\8b¿\82«\82í\82½\82Á\82½", "\97\8b\82Ì\82æ\82¤\82É\8b¿\82¢\82½", "\82Æ\82Ç\82ë\82¢\82½", "\8b¿\82¢\82½",
 };
 
 /* values calculated when prayer starts, and used when completed */
@@ -315,27 +326,47 @@ int trouble;
     int i;
     struct obj *otmp = 0;
     const char *what = (const char *) 0;
+#if 0 /*JP*/
     static NEARDATA const char leftglow[] = "Your left ring softly glows",
                                rightglow[] = "Your right ring softly glows";
+#else
+    static NEARDATA const char leftglow[] = "\8d\82Ì\8ew\97Ö",
+                               rightglow[] = "\89E\82Ì\8ew\97Ö";
+#endif
 
     switch (trouble) {
     case TROUBLE_STONED:
+/*JP
         make_stoned(0L, "You feel more limber.", 0, (char *) 0);
+*/
+        make_stoned(0L, "\93î\82ç\82©\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", 0, (char *) 0);
         break;
     case TROUBLE_SLIMED:
+/*JP
         make_slimed(0L, "The slime disappears.");
+*/
+        make_slimed(0L, "\82Ç\82ë\82Ç\82ë\8a´\82Í\8fÁ\82¦\82½\81D");
         break;
     case TROUBLE_STRANGLED:
         if (uamul && uamul->otyp == AMULET_OF_STRANGULATION) {
+/*JP
             Your("amulet vanishes!");
+*/
+            Your("\96\82\8f\9c\82¯\82Í\8fÁ\82¦\82³\82Á\82½\81I");
             useup(uamul);
         }
+/*JP
         You("can breathe again.");
+*/
+        You("\82Ü\82½\8cÄ\8bz\82Å\82«\82é\82æ\82¤\82É\82È\82Á\82½\81D");
         Strangled = 0;
         context.botl = 1;
         break;
     case TROUBLE_LAVA:
+/*JP
         You("are back on solid ground.");
+*/
+        You("\8cÅ\82¢\92n\96Ê\82É\96ß\82Á\82½\81D");
         /* teleport should always succeed, but if not,
          * just untrap them.
          */
@@ -346,12 +377,18 @@ int trouble;
         losestr(-1);
         /*FALLTHRU*/
     case TROUBLE_HUNGRY:
+/*JP
         Your("%s feels content.", body_part(STOMACH));
+*/
+        Your("\90H\97~\82Í\96\9e\82½\82³\82ê\82½\81D");
         init_uhunger();
         context.botl = 1;
         break;
     case TROUBLE_SICK:
+/*JP
         You_feel("better.");
+*/
+        You("\8bC\95ª\82ª\97Ç\82­\82È\82Á\82½\81D");
         make_sick(0L, (char *) 0, FALSE, SICK_ALL);
         break;
     case TROUBLE_REGION:
@@ -362,7 +399,10 @@ int trouble;
         /* "fix all troubles" will keep trying if hero has
            5 or less hit points, so make sure they're always
            boosted to be more than that */
+/*JP
         You_feel("much better.");
+*/
+        You("\82Æ\82Ä\82à\8bC\95ª\82ª\97Ç\82­\82È\82Á\82½\81D");
         if (Upolyd) {
             u.mhmax += rnd(5);
             if (u.mhmax <= 5)
@@ -378,8 +418,13 @@ int trouble;
         break;
     case TROUBLE_COLLAPSING:
         /* override Fixed_abil; uncurse that if feasible */
+#if 0 /*JP*/
         You_feel("%sstronger.",
                  (AMAX(A_STR) - ABASE(A_STR) > 6) ? "much " : "");
+#else
+        You_feel("%s\8b­\82­\82È\82Á\82½\82æ\82¤\82¾\81D",
+                 (AMAX(A_STR) - ABASE(A_STR) > 6) ? "\82Æ\82Ä\82à" : "");
+#endif
         ABASE(A_STR) = AMAX(A_STR);
         context.botl = 1;
         if (Fixed_abil) {
@@ -396,7 +441,10 @@ int trouble;
         }
         break;
     case TROUBLE_STUCK_IN_WALL:
+/*JP
         Your("surroundings change.");
+*/
+        Your("\8aÂ\8b«\82ª\95Ï\89»\82µ\82½\81D");
         /* no control, but works on no-teleport levels */
         (void) safe_teleds(FALSE);
         break;
@@ -418,7 +466,10 @@ int trouble;
         }
         if (Upolyd && nohands(youmonst.data)) {
             if (!Unchanging) {
+/*JP
                 Your("shape becomes uncertain.");
+*/
+                Your("\91Ì\8c^\82Í\95s\96¾\8am\82É\82È\82Á\82½\81D");
                 rehumanize(); /* "You return to {normal} form." */
             } else if ((otmp = unchanger()) != 0 && otmp->cursed) {
                 /* otmp is an amulet of unchanging */
@@ -437,7 +488,10 @@ int trouble;
     /*
      */
     case TROUBLE_PUNISHED:
+/*JP
         Your("chain disappears.");
+*/
+        Your("\8d½\82Í\8fÁ\82¦\82½\81D");
         if (u.utrap && u.utraptype == TT_BURIEDBALL)
             buried_ball_to_freedom();
         else
@@ -463,9 +517,15 @@ int trouble;
             return;
         }
         if (!Blind || (otmp == ublindf && Blindfolded_only)) {
+#if 0 /*JP*/
             pline("%s %s.",
                   what ? what : (const char *) Yobjnam2(otmp, "softly glow"),
                   hcolor(NH_AMBER));
+#else
+            Your("%s\82Í%s\82â\82í\82ç\82©\82­\8bP\82¢\82½\81D",
+                 what ? what : (const char *)xname(otmp),
+                 jconj_adj(hcolor(NH_AMBER)));
+#endif
             iflags.last_msg = PLNMSG_OBJ_GLOWS;
             otmp->bknown = TRUE;
         }
@@ -475,9 +535,15 @@ int trouble;
     case TROUBLE_POISONED:
         /* override Fixed_abil; ignore items which confer that */
         if (Hallucination)
+/*JP
             pline("There's a tiger in your tank.");
+*/
+            pline("\82 \82È\82½\82Ì\83^\83\93\83N\82Ì\92\86\82É\83g\83\89\82ª\82¢\82é\81D");
         else
+/*JP
             You_feel("in good health again.");
+*/
+            You("\82Ü\82½\8c\92\8dN\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         for (i = 0; i < A_MAX; i++) {
             if (ABASE(i) < AMAX(i)) {
                 ABASE(i) = AMAX(i);
@@ -487,11 +553,15 @@ int trouble;
         (void) encumber_msg();
         break;
     case TROUBLE_BLIND: {
+#if 0 /*JP*/
         const char *eyes = body_part(EYE);
 
         if (eyecount(youmonst.data) != 1)
             eyes = makeplural(eyes);
         Your("%s %s better.", eyes, vtense(eyes, "feel"));
+#else
+        pline("%s\82ª\89ñ\95\9c\82µ\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", body_part(EYE));
+#endif
         u.ucreamed = 0;
         make_blinded(0L, FALSE);
         break;
@@ -506,13 +576,19 @@ int trouble;
         make_confused(0L, TRUE);
         break;
     case TROUBLE_HALLUCINATION:
+/*JP
         pline("Looks like you are back in Kansas.");
+*/
+        pline("\8c©\82Ä\81I\83J\83\93\83U\83X\82É\96ß\82Á\82Ä\82«\82½\82ñ\82¾\82í\81D");
         (void) make_hallucinated(0L, FALSE, 0L);
         break;
     case TROUBLE_SADDLE:
         otmp = which_armor(u.usteed, W_SADDLE);
         if (!Blind) {
+/*JP
             pline("%s %s.", Yobjnam2(otmp, "softly glow"), hcolor(NH_AMBER));
+*/
+            pline("%s\82Í%s\82â\82í\82ç\82©\82­\8bP\82¢\82½\81D", y_monnam(u.usteed), hcolor(NH_AMBER));
             otmp->bknown = TRUE;
         }
         uncurse(otmp);
@@ -534,42 +610,81 @@ aligntyp resp_god;
 {
     if (u.uswallow) {
         pline(
+/*JP
           "Suddenly a bolt of lightning comes down at you from the heavens!");
+*/
+          "\93Ë\91R\8bó\82©\82ç\88î\8dÈ\82ª\97\8e\82¿\82Ä\82«\82½\81I");
+/*JP
         pline("It strikes %s!", mon_nam(u.ustuck));
+*/
+        pline("\88î\8dÈ\82Í%s\82É\96½\92\86\82µ\82½\81I", mon_nam(u.ustuck));
         if (!resists_elec(u.ustuck)) {
+/*JP
             pline("%s fries to a crisp!", Monnam(u.ustuck));
+*/
+            pline("%s\82Í\83p\83\8a\83p\83\8a\82É\82È\82Á\82½\81I", Monnam(u.ustuck));
             /* Yup, you get experience.  It takes guts to successfully
              * pull off this trick on your god, anyway.
              */
             xkilled(u.ustuck, 0);
         } else
+/*JP
             pline("%s seems unaffected.", Monnam(u.ustuck));
+*/
+            pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D", Monnam(u.ustuck));
     } else {
+/*JP
         pline("Suddenly, a bolt of lightning strikes you!");
+*/
+        pline("\93Ë\91R\81C\88î\8dÈ\82ª\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
         if (Reflecting) {
             shieldeff(u.ux, u.uy);
             if (Blind)
+/*JP
                 pline("For some reason you're unaffected.");
+*/
+                pline("\82È\82º\82©\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             else
+/*JP
                 (void) ureflects("%s reflects from your %s.", "It");
+*/
+                (void) ureflects("%s\82Í%s\82É\82æ\82Á\82Ä\94½\8eË\82³\82ê\82½\81D", "\89½\82©");
         } else if (Shock_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("It seems not to affect you.");
+*/
+            pline("\88î\8dÈ\82Í\89e\8b¿\82ð\97^\82¦\82È\82¢\82æ\82¤\82¾\81D");
         } else
             fry_by_god(resp_god, FALSE);
     }
 
+/*JP
     pline("%s is not deterred...", align_gname(resp_god));
+*/
+    pline("%s\82Í\82 \82«\82ç\82ß\82È\82©\82Á\82½\81D\81D\81D", align_gname(resp_god));
     if (u.uswallow) {
+/*JP
         pline("A wide-angle disintegration beam aimed at you hits %s!",
+*/
+        pline("\82 \82È\82½\82ð\91_\82Á\82½\8dL\8ap\95²\8dÓ\8cõ\90ü\82ª%s\82É\96½\92\86\82µ\82½\81I",
               mon_nam(u.ustuck));
         if (!resists_disint(u.ustuck)) {
+/*JP
             pline("%s disintegrates into a pile of dust!", Monnam(u.ustuck));
+*/
+            pline("%s\82Í\82¿\82è\82Ì\8eR\82É\82È\82Á\82½\81I", Monnam(u.ustuck));
             xkilled(u.ustuck, 2); /* no corpse */
         } else
+/*JP
             pline("%s seems unaffected.", Monnam(u.ustuck));
+*/
+            pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D", Monnam(u.ustuck));
     } else {
+/*JP
         pline("A wide-angle disintegration beam hits you!");
+*/
+        pline("\8dL\8ap\95²\8dÓ\8cõ\90ü\82ª\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
 
         /* disintegrate shield and body armor before disintegrating
          * the impudent mortal, like black dragon breath -3.
@@ -588,16 +703,28 @@ aligntyp resp_god;
         if (!Disint_resistance)
             fry_by_god(resp_god, TRUE);
         else {
+/*JP
             You("bask in its %s glow for a minute...", NH_BLACK);
+*/
+            You("\82µ\82Î\82ç\82­\81C\82»\82Ì%s\8bP\82«\82Å\92g\82Ü\82Á\82½\81D\81D\81D", NH_BLACK);
+/*JP
             godvoice(resp_god, "I believe it not!");
+*/
+            godvoice(resp_god, "\90M\82\82ç\82ê\82Ê\81I");
         }
         if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) {
             /* one more try for high altars */
+/*JP
             verbalize("Thou cannot escape my wrath, mortal!");
+*/
+            verbalize("\92è\96½\82Ì\8eÒ\82æ\81C\93ð\89ä\82ª\93{\82è\82©\82ç\93¦\82ª\82ê\82é\82±\82Æ\82È\82ç\82ñ\81I");
             summon_minion(resp_god, FALSE);
             summon_minion(resp_god, FALSE);
             summon_minion(resp_god, FALSE);
+/*JP
             verbalize("Destroy %s, my servants!", uhim());
+*/
+            verbalize("%s\82ð\8eE\82¹\81C\82í\82ª\89º\96l\82æ\81I", uhim());
         }
     }
 }
@@ -607,10 +734,18 @@ fry_by_god(resp_god, via_disintegration)
 aligntyp resp_god;
 boolean via_disintegration;
 {
+#if 0 /*JP*/
     You("%s!", !via_disintegration ? "fry to a crisp"
                                    : "disintegrate into a pile of dust");
+#else
+    You("%s\81I", !via_disintegration ? "\83p\83\8a\83p\83\8a\82É\82È\82Á\82½"
+                                    : "\82¿\82è\82Ì\8eR\82É\82È\82Á\82½");
+#endif
     killer.format = KILLED_BY;
+/*JP
     Sprintf(killer.name, "the wrath of %s", align_gname(resp_god));
+*/
+    Sprintf(killer.name, "%s\82Ì\93{\82è\82É\90G\82ê", align_gname(resp_god));
     done(DIED);
 }
 
@@ -640,18 +775,34 @@ aligntyp resp_god;
     switch (rn2(maxanger)) {
     case 0:
     case 1:
+#if 0 /*JP*/
         You_feel("that %s is %s.", align_gname(resp_god),
                  Hallucination ? "bummed" : "displeased");
+#else
+        You("%s\82ª%s\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", align_gname(resp_god),
+            Hallucination ? "\82Ë\82¾\82Á\82Ä" : "\97§\95 \82µ\82Ä");
+#endif
         break;
     case 2:
     case 3:
         godvoice(resp_god, (char *) 0);
+#if 0 /*JP*/
         pline("\"Thou %s, %s.\"",
               (ugod_is_angry() && resp_god == u.ualign.type)
                   ? "hast strayed from the path"
                   : "art arrogant",
               youmonst.data->mlet == S_HUMAN ? "mortal" : "creature");
+#else
+        pline("\81u\93ð%s\81C%s\82æ\81D\81v",
+              (ugod_is_angry() && resp_god == u.ualign.type)
+              ? "\82»\82Ì\93¹\82©\82ç\93¥\82Ý\8fo\82Ä\82¨\82é"
+              : "\98ü\96\9d\82È\82è",
+              youmonst.data->mlet == S_HUMAN ? "\92è\96½\82Ì\82à\82Ì" : "\90\95¨");
+#endif
+/*JP
         verbalize("Thou must relearn thy lessons!");
+*/
+        verbalize("\93ð\82¢\82Ü\88ê\93x\8aw\82Ô\82×\82µ\81I");
         (void) adjattrib(A_WIS, -1, FALSE);
         losexp((char *) 0);
         break;
@@ -665,18 +816,33 @@ aligntyp resp_god;
     case 5:
         gods_angry(resp_god);
         if (!Blind && !Antimagic)
+/*JP
             pline("%s glow surrounds you.", An(hcolor(NH_BLACK)));
+*/
+            pline("%s\8cõ\82ª\82 \82È\82½\82ð\8eæ\82è\8aª\82¢\82½\81D", An(hcolor(NH_BLACK)));
         rndcurse();
         break;
     case 7:
     case 8:
         godvoice(resp_god, (char *) 0);
+#if 0 /*JP*/
         verbalize("Thou durst %s me?",
                   (on_altar() && (a_align(u.ux, u.uy) != resp_god))
                       ? "scorn"
                       : "call upon");
+#else
+        verbalize("\93ð\81C\89ä%s\81H",
+                  (on_altar() && (a_align(u.ux,u.uy) != resp_god))
+                  ? "\82ð\82³\82°\82·\82Ý\82µ\82©\81H"
+                  : "\82É\8bF\82è\82ð\8b\81\82ß\82µ\82©\81H");
+#endif
+#if 0 /*JP*/
         pline("\"Then die, %s!\"",
               youmonst.data->mlet == S_HUMAN ? "mortal" : "creature");
+#else
+        pline("\81u\8e\80\82Ë\81C%s\82æ\81I\81v",
+              youmonst.data->mlet == S_HUMAN ? "\92è\96½\82Ì\82à\82Ì" : "\90\95¨");
+#endif
         summon_minion(resp_god, FALSE);
         break;
 
@@ -698,12 +864,23 @@ const char *str;
         str = Something;
     if (u.uswallow) {
         /* barrier between you and the floor */
+#if 0 /*JP*/
         pline("%s %s into %s %s.", str, vtense(str, "drop"),
               s_suffix(mon_nam(u.ustuck)), mbodypart(u.ustuck, STOMACH));
+#else
+        pline("%s\82ª%s\82Ì%s\82É\97\8e\82¿\82½\81D", str,
+              mon_nam(u.ustuck), mbodypart(u.ustuck, STOMACH));
+#endif
     } else {
+#if 0 /*JP*/
         pline("%s %s %s your %s!", str,
               Blind ? "lands" : vtense(str, "appear"),
               Levitation ? "beneath" : "at", makeplural(body_part(FOOT)));
+#else
+        pline("%s\82ª\82 \82È\82½\82Ì%s\82É%s\81I", str,
+              Levitation ? "\89º\95û" : "\91«\8c³",
+              Blind ? "\92\85\92n\82µ\82½" : "\8c»\82í\82ê\82½");
+#endif
     }
 }
 
@@ -729,22 +906,34 @@ gcrownu()
     switch (u.ualign.type) {
     case A_LAWFUL:
         u.uevent.uhand_of_elbereth = 1;
+/*JP
         verbalize("I crown thee...  The Hand of Elbereth!");
+*/
+        verbalize("\93ð\82É\81D\81D\81D\83G\83\8b\83x\83\8c\83X\82Ì\8cä\8eè\82Ì\89h\97_\82ð\82³\82¸\82¯\82æ\82¤\81I");
         break;
     case A_NEUTRAL:
         u.uevent.uhand_of_elbereth = 2;
         in_hand = (uwep && uwep->oartifact == ART_VORPAL_BLADE);
         already_exists =
             exist_artifact(LONG_SWORD, artiname(ART_VORPAL_BLADE));
+/*JP
         verbalize("Thou shalt be my Envoy of Balance!");
+*/
+        verbalize("\93ð\81C\89ä\82ª\92²\98a\82Ì\8eg\8eÒ\82È\82è\81I");
         break;
     case A_CHAOTIC:
         u.uevent.uhand_of_elbereth = 3;
         in_hand = (uwep && uwep->oartifact == ART_STORMBRINGER);
         already_exists =
             exist_artifact(RUNESWORD, artiname(ART_STORMBRINGER));
+#if 0 /*JP*/
         verbalize("Thou art chosen to %s for My Glory!",
                   already_exists && !in_hand ? "take lives" : "steal souls");
+#else
+        verbalize("\93ð\81C\89ä\82ª\89h\8cõ\82Ì\82½\82ß%s\8eÒ\82Æ\82µ\82Ä\91I\82Î\82ê\82ñ\81I",
+                  already_exists && !in_hand ?
+                              "\90\82«\82È\82ª\82ç\82¦\82ñ" : "\8d°\82ð\92D\82¢\82µ\82½\82ß\82é");
+#endif
         break;
     }
 
@@ -760,7 +949,10 @@ gcrownu()
         obj = mksobj(class_gift, TRUE, FALSE);
         bless(obj);
         obj->bknown = TRUE;
+/*JP
         at_your_feet("A spellbook");
+*/
+        at_your_feet("\96\82\96@\8f\91");
         dropy(obj);
         u.ugifts++;
         /* when getting a new book for known spell, enhance
@@ -784,7 +976,10 @@ gcrownu()
             ; /* already got bonus above */
         } else if (obj && obj->otyp == LONG_SWORD && !obj->oartifact) {
             if (!Blind)
+/*JP
                 Your("sword shines brightly for a moment.");
+*/
+                Your("\8c\95\82Í\82µ\82Î\82ç\82­\82Ì\8aÔ\96¾\82é\82­\8bP\82¢\82½\81D");
             obj = oname(obj, artiname(ART_EXCALIBUR));
             if (obj && obj->oartifact == ART_EXCALIBUR)
                 u.ugifts++;
@@ -798,13 +993,19 @@ gcrownu()
         if (class_gift != STRANGE_OBJECT) {
             ; /* already got bonus above */
         } else if (obj && in_hand) {
+/*JP
             Your("%s goes snicker-snack!", xname(obj));
+*/
+            Your("%s\82Í\83T\83N\83T\83N\82É\82È\82Á\82½\81I", xname(obj));
             obj->dknown = TRUE;
         } else if (!already_exists) {
             obj = mksobj(LONG_SWORD, FALSE, FALSE);
             obj = oname(obj, artiname(ART_VORPAL_BLADE));
             obj->spe = 1;
+/*JP
             at_your_feet("A sword");
+*/
+            at_your_feet("\8c\95");
             dropy(obj);
             u.ugifts++;
         }
@@ -816,11 +1017,17 @@ gcrownu()
     case A_CHAOTIC: {
         char swordbuf[BUFSZ];
 
+/*JP
         Sprintf(swordbuf, "%s sword", hcolor(NH_BLACK));
+*/
+        Sprintf(swordbuf, "%s\8c\95", hcolor(NH_BLACK));
         if (class_gift != STRANGE_OBJECT) {
             ; /* already got bonus above */
         } else if (obj && in_hand) {
+/*JP
             Your("%s hums ominously!", swordbuf);
+*/
+            Your("%s\82Í\8bC\96¡\82Ì\88«\82¢\89¹\82ð\97§\82Ä\82½\81I", swordbuf);
             obj->dknown = TRUE;
         } else if (!already_exists) {
             obj = mksobj(RUNESWORD, FALSE, FALSE);
@@ -853,7 +1060,10 @@ gcrownu()
         unrestrict_weapon_skill(weapon_type(obj));
     } else if (class_gift == STRANGE_OBJECT) {
         /* opportunity knocked, but there was nobody home... */
+/*JP
         You_feel("unworthy.");
+*/
+        You("\89¿\92l\82ª\82È\82¢\82Æ\8ev\82Á\82½\81D");
     }
     update_inventory();
 
@@ -871,12 +1081,21 @@ aligntyp g_align;
     int trouble = in_trouble(); /* what's your worst difficulty? */
     int pat_on_head = 0, kick_on_butt;
 
+#if 0 /*JP*/
     You_feel("that %s is %s.", align_gname(g_align),
              (u.ualign.record >= DEVOUT)
                  ? Hallucination ? "pleased as punch" : "well-pleased"
                  : (u.ualign.record >= STRIDENT)
                        ? Hallucination ? "ticklish" : "pleased"
                        : Hallucination ? "full" : "satisfied");
+#else
+        pline("%s\82ª%s\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", align_gname(g_align),
+              (u.ualign.record >= DEVOUT)
+                  ? Hallucination ? "\82­\82»\8b@\8c\99\82¢\82¢" : "\82²\8b@\8c\99\97í\82µ\82¢"
+                  : (u.ualign.record >= STRIDENT)
+                        ? Hallucination ? "\82­\82·\82®\82Á\82½\82ª\82Á\82Ä\82¢\82é" : "\8fã\8b@\8c\99\82Å\82 \82é"
+                        : Hallucination ? "\95 \82¢\82Á\82Ï\82¢\82Å\82 \82é" : "\96\9e\91«\82µ\82Ä\82¢\82é");
+#endif
 
     /* not your deity */
     if (on_altar() && p_aligntyp != u.ualign.type) {
@@ -965,29 +1184,54 @@ aligntyp g_align;
 
                 *repair_buf = '\0';
                 if (uwep->oeroded || uwep->oeroded2)
+#if 0 /*JP*/
                     Sprintf(repair_buf, " and %s now as good as new",
                             otense(uwep, "are"));
+#else
+                    Sprintf(repair_buf, "\82³\82ç\82É\90V\95i\93¯\97l\82É\82È\82Á\82½\81D");
+#endif
 
                 if (uwep->cursed) {
                     if (!Blind) {
+#if 0 /*JP*/
                         pline("%s %s%s.", Yobjnam2(uwep, "softly glow"),
                               hcolor(NH_AMBER), repair_buf);
+#else
+                        Your("%s\82Í%s\82â\82í\82ç\82©\82­\8bP\82¢\82½\81D%s", xname(uwep), 
+                             jconj_adj(hcolor(NH_AMBER)), repair_buf);
+#endif
                         iflags.last_msg = PLNMSG_OBJ_GLOWS;
                     } else
+#if 0 /*JP*/
                         You_feel("the power of %s over %s.", u_gname(),
                                  yname(uwep));
+#else
+                        pline("%s\82Ì\97Í\82ª%s\82É\92\8d\82ª\82ê\82Ä\82¢\82é\82Ì\82ð\8a´\82\82½\81D", u_gname(),
+                              xname(uwep));
+#endif
                     uncurse(uwep);
                     uwep->bknown = TRUE;
                     *repair_buf = '\0';
                 } else if (!uwep->blessed) {
                     if (!Blind) {
+#if 0 /*JP*/
                         pline("%s with %s aura%s.",
                               Yobjnam2(uwep, "softly glow"),
                               an(hcolor(NH_LIGHT_BLUE)), repair_buf);
+#else
+                        Your("%s\82Í%s\82â\82í\82ç\82©\82È\83I\81[\83\89\82É\82Â\82Â\82Ü\82ê\82½\81D%s",
+                             xname(uwep), 
+                             an(hcolor(NH_LIGHT_BLUE)), repair_buf);
+#endif
                         iflags.last_msg = PLNMSG_OBJ_GLOWS;
                     } else
+#if 0 /*JP*/
                         You_feel("the blessing of %s over %s.", u_gname(),
                                  yname(uwep));
+#else
+                        pline("%s\82Ì\8fj\95\9f\82ª%s\82É\92\8d\82ª\82ê\82Ä\82¢\82é\82Ì\82ð\8a´\82\82½\81D", u_gname(),
+                              xname(uwep));
+#endif
                     bless(uwep);
                     uwep->bknown = TRUE;
                     *repair_buf = '\0';
@@ -1000,8 +1244,13 @@ aligntyp g_align;
                     /* only give this message if we didn't just bless
                        or uncurse (which has already given a message) */
                     if (*repair_buf)
+#if 0 /*JP*/
                         pline("%s as good as new!",
                               Yobjnam2(uwep, Blind ? "feel" : "look"));
+#else
+                        Your("%s\82Í\90V\95i\93¯\97l\82É\82È\82Á\82½%s\81I",
+                             xname(uwep), Blind ? "\82æ\82¤\82È\8bC\82ª\82·\82é" : "");
+#endif
                 }
                 update_inventory();
             }
@@ -1014,16 +1263,31 @@ aligntyp g_align;
             if (!u.uevent.uopened_dbridge && !u.uevent.gehennom_entered) {
                 if (u.uevent.uheard_tune < 1) {
                     godvoice(g_align, (char *) 0);
+#if 0 /*JP*/
                     verbalize("Hark, %s!", youmonst.data->mlet == S_HUMAN
                                                ? "mortal"
                                                : "creature");
+#else
+                    verbalize("%s\82æ\81C\95·\82¯\81I", youmonst.data->mlet == S_HUMAN
+                                                  ? "\92è\96½\82Ì\8eÒ"
+                                                  : "\90\95¨");
+#endif
                     verbalize(
+/*JP
                        "To enter the castle, thou must play the right tune!");
+*/
+                        "\93ð\8fé\82É\93ü\82ç\82ñ\82Æ\97~\82·\82é\82È\82ç\82Î\81C\90³\82µ\82«\92²\82×\82ð\91t\82Å\82é\82×\82µ\81I");
                     u.uevent.uheard_tune++;
                     break;
                 } else if (u.uevent.uheard_tune < 2) {
+/*JP
                     You_hear("a divine music...");
+*/
+                    You_hear("\90_\82Ì\89¹\8ay\82ð\95·\82¢\82½\81D\81D\81D");
+/*JP
                     pline("It sounds like:  \"%s\".", tune);
+*/
+                    pline("\82»\82ê\82Í\8e\9f\82Ì\82æ\82¤\82É\95·\82±\82¦\82½:  \81u%s\81v", tune);
                     u.uevent.uheard_tune++;
                     break;
                 }
@@ -1031,7 +1295,10 @@ aligntyp g_align;
         /* Otherwise, falls into next case */
         case 2:
             if (!Blind)
+/*JP
                 You("are surrounded by %s glow.", an(hcolor(NH_GOLDEN)));
+*/
+                You("%s\8bP\82«\82É\82Â\82Â\82Ü\82ê\82½\81D", hcolor(NH_GOLDEN));
             /* if any levels have been lost (and not yet regained),
                treat this effect like blessed full healing */
             if (u.ulevel < u.ulevelmax) {
@@ -1058,14 +1325,25 @@ aligntyp g_align;
             int any = 0;
 
             if (Blind)
+/*JP
                 You_feel("the power of %s.", u_gname());
+*/
+                You("%s\82Ì\97Í\82ð\8a´\82\82½\81D", u_gname());
             else
+/*JP
                 You("are surrounded by %s aura.", an(hcolor(NH_LIGHT_BLUE)));
+*/
+                You("%s\83I\81[\83\89\82É\82Â\82Â\82Ü\82ê\82½\81D", an(hcolor(NH_LIGHT_BLUE)));
             for (otmp = invent; otmp; otmp = otmp->nobj) {
                 if (otmp->cursed) {
                     if (!Blind) {
+#if 0 /*JP*/
                         pline("%s %s.", Yobjnam2(otmp, "softly glow"),
                               hcolor(NH_AMBER));
+#else
+                        Your("%s\82Í%s\82â\82í\82ç\82©\82­\8bP\82¢\82½\81D", xname(otmp),
+                             jconj_adj(hcolor(NH_AMBER)));
+#endif
                         iflags.last_msg = PLNMSG_OBJ_GLOWS;
                         otmp->bknown = TRUE;
                         ++any;
@@ -1079,21 +1357,36 @@ aligntyp g_align;
         }
         case 5: {
             static NEARDATA const char msg[] =
+/*JP
                 "\"and thus I grant thee the gift of %s!\"";
+*/
+                "\81u\82³\82ç\82É\93ð\82É%s\82ð\82³\82¸\82¯\82æ\82¤\81I\81v";
 
             godvoice(u.ualign.type,
+/*JP
                      "Thou hast pleased me with thy progress,");
+*/
+                     "\93ð\82Ì\90¬\92·\82Í\94ñ\8fí\82É\96]\82Ü\82µ\82¢\81C");
             if (!(HTelepat & INTRINSIC)) {
                 HTelepat |= FROMOUTSIDE;
+/*JP
                 pline(msg, "Telepathy");
+*/
+                pline(msg, "\83e\83\8c\83p\83V\81[");
                 if (Blind)
                     see_monsters();
             } else if (!(HFast & INTRINSIC)) {
                 HFast |= FROMOUTSIDE;
+/*JP
                 pline(msg, "Speed");
+*/
+                pline(msg, "\91¬\82³");
             } else if (!(HStealth & INTRINSIC)) {
                 HStealth |= FROMOUTSIDE;
+/*JP
                 pline(msg, "Stealth");
+*/
+                pline(msg, "\94E\82Ì\97Í");
             } else {
                 if (!(HProtection & INTRINSIC)) {
                     HProtection |= FROMOUTSIDE;
@@ -1101,9 +1394,15 @@ aligntyp g_align;
                         u.ublessed = rn1(3, 2);
                 } else
                     u.ublessed++;
+/*JP
                 pline(msg, "my protection");
+*/
+                pline(msg, "\89ä\82ª\8cì\82è");
             }
+/*JP
             verbalize("Use it wisely in my name!");
+*/
+            verbalize("\89ä\82ª\96¼\82É\89\97\82¢\82Ä\97L\8cø\82É\8eg\82¤\82ª\82æ\82¢\81I");
             break;
         }
         case 7:
@@ -1136,7 +1435,10 @@ aligntyp g_align;
                 otmp->otyp = rnd_class(bases[SPBOOK_CLASS], SPE_BLANK_PAPER);
             }
             bless(otmp);
+/*JP
             at_your_feet("A spellbook");
+*/
+            at_your_feet("\96\82\96@\8f\91");
             place_object(otmp, u.ux, u.uy);
             newsym(u.ux, u.uy);
             break;
@@ -1179,11 +1481,18 @@ boolean bless_water;
             other = TRUE;
     }
     if (!Blind && changed) {
+#if 0 /*JP*/
         pline("%s potion%s on the altar glow%s %s for a moment.",
               ((other && changed > 1L) ? "Some of the"
                                        : (other ? "One of the" : "The")),
               ((other || changed > 1L) ? "s" : ""), (changed > 1L ? "" : "s"),
               (bless_water ? hcolor(NH_LIGHT_BLUE) : hcolor(NH_BLACK)));
+#else
+        pline("%s\8dÕ\92d\82Ì\96ò\82Í\88ê\8fu%s\8bP\82¢\82½\81D",
+              (other && changed > 1L) ? "\82¢\82­\82Â\82©\82Ì"
+                                      : "",
+              jconj_adj(bless_water ? hcolor(NH_LIGHT_BLUE) : hcolor(NH_BLACK)));
+#endif
     }
     return (boolean) (changed > 0L);
 }
@@ -1193,6 +1502,7 @@ godvoice(g_align, words)
 aligntyp g_align;
 const char *words;
 {
+#if 0 /*JP*/
     const char *quot = "";
 
     if (words)
@@ -1202,13 +1512,24 @@ const char *words;
 
     pline_The("voice of %s %s: %s%s%s", align_gname(g_align),
               godvoices[rn2(SIZE(godvoices))], quot, words, quot);
+#else
+    if (words)
+        pline("%s\82Ì\90º\82ª%s: \81u%s\81v", align_gname(g_align),
+              godvoices[rn2(SIZE(godvoices))], words);
+    else
+        pline("%s\82Ì\90º\82ª%s\81F", align_gname(g_align),
+              godvoices[rn2(SIZE(godvoices))]);
+#endif
 }
 
 STATIC_OVL void
 gods_angry(g_align)
 aligntyp g_align;
 {
+/*JP
     godvoice(g_align, "Thou hast angered me.");
+*/
+    godvoice(g_align, "\93ð\81C\89ä\82ð\93{\82ç\82µ\82ß\82½\82è\81D");
 }
 
 /* The g_align god is upset with you. */
@@ -1230,21 +1551,38 @@ register struct obj *otmp;
     if (Hallucination)
         switch (rn2(3)) {
         case 0:
+/*JP
             Your("sacrifice sprouts wings and a propeller and roars away!");
+*/
+            Your("\8c£\8fã\95¨\82Í\89H\82ð\82Í\82â\82µ\81C\83v\83\8d\83y\83\89\82ª\82Ü\82í\82è\81C\94ò\82ñ\82Å\82Á\82½\81I");
             break;
         case 1:
+/*JP
             Your("sacrifice puffs up, swelling bigger and bigger, and pops!");
+*/
+            Your("\8c£\8fã\95¨\82Í\95¬\89\8c\82ð\82 \82°\81C\82Ç\82ñ\82Ç\82ñ\96c\82ê\81C\82»\82µ\82Ä\82Í\82\82¯\82½\81I");
             break;
         case 2:
             Your(
+/*JP
      "sacrifice collapses into a cloud of dancing particles and fades away!");
+*/
+     "\8c£\8fã\95¨\82Í\8d×\82©\82­\8dÓ\82¯\81C\97x\82è\8fo\82µ\81C\82Ç\82±\82©\82É\8ds\82Á\82Ä\82µ\82Ü\82Á\82½\81I");
             break;
         }
     else if (Blind && u.ualign.type == A_LAWFUL)
+/*JP
         Your("sacrifice disappears!");
+*/
+        Your("\8c£\8fã\95¨\82Í\8fÁ\82¦\82½\81I");
     else
+#if 0 /*JP*/
         Your("sacrifice is consumed in a %s!",
              u.ualign.type == A_LAWFUL ? "flash of light" : "burst of flame");
+#else
+        Your("\8c£\8fã\95¨\82Í%s\8fÁ\82¦\82³\82Á\82½\81I",
+             u.ualign.type == A_LAWFUL ? "\82Ü\82Î\82ä\82¢\8cõ\82ð\95ú\82¿" : "\89\8a\82ð\8fã\82°");
+#endif
     if (carried(otmp))
         useup(otmp);
     else
@@ -1256,14 +1594,20 @@ int
 dosacrifice()
 {
     static NEARDATA const char cloud_of_smoke[] =
+/*JP
         "A cloud of %s smoke surrounds you...";
+*/
+        "%s\89\8c\82ª\82 \82È\82½\82ð\8eæ\82è\88Í\82ñ\82¾\81D\81D\81D";
     register struct obj *otmp;
     int value = 0, pm;
     boolean highaltar;
     aligntyp altaralign = a_align(u.ux, u.uy);
 
     if (!on_altar() || u.uswallow) {
+/*JP
         You("are not standing on an altar.");
+*/
+        You("\8dÕ\92d\82Ì\8fã\82É\97§\82Á\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
     highaltar = ((Is_astralevel(&u.uz) || Is_sanctum(&u.uz))
@@ -1306,10 +1650,16 @@ dosacrifice()
 
         if (your_race(ptr)) {
             if (is_demon(youmonst.data)) {
+/*JP
                 You("find the idea very satisfying.");
+*/
+                You("\82»\82Ì\8dl\82¦\82Í\91f\90°\82µ\82¢\82Æ\8ev\82Á\82½\81D");
                 exercise(A_WIS, TRUE);
             } else if (u.ualign.type != A_CHAOTIC) {
+/*JP
                 pline("You'll regret this infamous offense!");
+*/
+                pline("\93ð\81C\82±\82Ì\95\8e\90J\82Ì\8ds\82È\82¢\82ð\8cã\89÷\82·\82é\82×\82µ\81I");
                 exercise(A_WIS, FALSE);
             }
 
@@ -1318,7 +1668,10 @@ dosacrifice()
                 goto desecrate_high_altar;
             } else if (altaralign != A_CHAOTIC && altaralign != A_NONE) {
                 /* curse the lawful/neutral altar */
+/*JP
                 pline_The("altar is stained with %s blood.", urace.adj);
+*/
+                pline("\8dÕ\92d\82Í%s\82Ì\8c\8c\82Å\89\98\82ê\82Ä\82¢\82é\81D", urace.adj);
                 levl[u.ux][u.uy].altarmask = AM_CHAOTIC;
                 angry_priest();
             } else {
@@ -1329,18 +1682,30 @@ dosacrifice()
                 /* is equivalent to demon summoning */
                 if (altaralign == A_CHAOTIC && u.ualign.type != A_CHAOTIC) {
                     pline(
+/*JP
                     "The blood floods the altar, which vanishes in %s cloud!",
+*/
+                    "\8c\8c\82ª\8dÕ\92d\82©\82ç\82 \82Ó\82ê\81C\8dÕ\92d\82Í%s\89_\82Æ\82È\82è\8fÁ\82¦\82½\81I",
                           an(hcolor(NH_BLACK)));
                     levl[u.ux][u.uy].typ = ROOM;
                     levl[u.ux][u.uy].altarmask = 0;
                     newsym(u.ux, u.uy);
                     angry_priest();
+/*JP
                     demonless_msg = "cloud dissipates";
+*/
+                    demonless_msg = "\89_\82Í\8fÁ\82¦\82½\81D";
                 } else {
                     /* either you're chaotic or altar is Moloch's or both */
+/*JP
                     pline_The("blood covers the altar!");
+*/
+                    pline("\8c\8c\82ª\8dÕ\92d\82ð\95¢\82Á\82½\81I");
                     change_luck(altaralign == A_NONE ? -2 : 2);
+/*JP
                     demonless_msg = "blood coagulates";
+*/
+                    demonless_msg = "\8c\8c\82ª\82±\82Ñ\82è\82Â\82¢\82½";
                 }
                 if ((pm = dlord(altaralign)) != NON_PM
                     && (dmon = makemon(&mons[pm], u.ux, u.uy, NO_MM_FLAGS))
@@ -1348,19 +1713,34 @@ dosacrifice()
                     char dbuf[BUFSZ];
 
                     Strcpy(dbuf, a_monnam(dmon));
+/*JP
                     if (!strcmpi(dbuf, "it"))
+*/
+                    if (!strcmpi(dbuf, "\89½\8eÒ\82©"))
+/*JP
                         Strcpy(dbuf, "something dreadful");
+*/
+                        Strcpy(dbuf, "\89½\82©\8b°\82ë\82µ\82¢\82à\82Ì");
                     else
                         dmon->mstrategy &= ~STRAT_APPEARMSG;
+/*JP
                     You("have summoned %s!", dbuf);
+*/
+                    You("%s\82ð\8f¢\8a«\82µ\82½\81I", dbuf);
                     if (sgn(u.ualign.type) == sgn(dmon->data->maligntyp))
                         dmon->mpeaceful = TRUE;
+/*JP
                     You("are terrified, and unable to move.");
+*/
+                    You("\8b°\95|\82Å\93®\82¯\82È\82­\82È\82Á\82½\81D");
                     nomul(-3);
                     multi_reason = "being terrified of a demon";
                     nomovemsg = 0;
                 } else
+/*JP
                     pline_The("%s.", demonless_msg);
+*/
+                    pline("%s\81D", demonless_msg);
             }
 
             if (u.ualign.type != A_CHAOTIC) {
@@ -1382,7 +1762,10 @@ dosacrifice()
                    && mtmp->mtame) {
                 /* mtmp is a temporary pointer to a tame monster's attributes,
                  * not a real monster */
+/*JP
             pline("So this is how you repay loyalty?");
+*/
+            pline("\82»\82ê\82Å\82±\82ê\82ª\82 \82È\82½\82Ì\92\89\8b`\82É\95ñ\82¢\82é\82à\82Ì\82©\81H");
             adjalign(-3);
             value = -1;
             HAggravate_monster |= FROMOUTSIDE;
@@ -1395,9 +1778,15 @@ dosacrifice()
             if (unicalign == altaralign) {
                 /* When same as altar, always a very bad action.
                  */
+#if 0 /*JP*/
                 pline("Such an action is an insult to %s!",
                       (unicalign == A_CHAOTIC) ? "chaos"
                          : unicalign ? "law" : "balance");
+#else
+                pline("\82»\82Ì\82æ\82¤\82È\8ds\93®\82Í\81w%s\81x\82É\94½\82·\82é\81I",
+                      (unicalign == A_CHAOTIC) ? "\8d¬\93×"
+                         : unicalign ? "\92\81\8f\98" : "\92²\98a");
+#endif
                 (void) adjattrib(A_WIS, -1, TRUE);
                 value = -5;
             } else if (u.ualign.type == altaralign) {
@@ -1405,9 +1794,15 @@ dosacrifice()
                  * it's a very good action.
                  */
                 if (u.ualign.record < ALIGNLIM)
+/*JP
                     You_feel("appropriately %s.", align_str(u.ualign.type));
+*/
+                    You("%s\82É\82Ó\82³\82í\82µ\82¢\82Æ\8a´\82\82½\81D", align_str(u.ualign.type));
                 else
+/*JP
                     You_feel("you are thoroughly on the right path.");
+*/
+                    You("\8a®\91S\82É\90³\82µ\82¢\93¹\82ð\95à\82ñ\82Å\82¢\82é\82Ì\82ð\8a´\82\82½\81D");
                 adjalign(5);
                 value += 3;
             } else if (unicalign == u.ualign.type) {
@@ -1435,6 +1830,7 @@ dosacrifice()
                    fall through to the "ashamed" feedback) */
                 gods_upset(A_NONE);
             else
+#if 0 /*JP*/
                 You_feel("%s.",
                          Hallucination
                             ? "homesick"
@@ -1443,6 +1839,16 @@ dosacrifice()
                                ? "an urge to return to the surface"
                                /* else headed towards celestial disgrace */
                                : "ashamed");
+#else
+                You_feel("%s\81D",
+                         Hallucination
+                            ? "\8cÌ\8b½\82ª\97ö\82µ\82­\82È\82Á\82½"
+                            /* if on track, give a big hint */
+                            : (altaralign == u.ualign.type)
+                               ? "\92n\8fã\82É\8bA\82è\82½\82¢\8bC\8e\9d\82É\8bì\82è\97§\82Ä\82ç\82ê\82½"
+                               /* else headed towards celestial disgrace */
+                               : "\92p\82¸\82©\82µ\82¢\8ev\82¢\82ª\82µ\82½");
+#endif
             return 1;
         } else {
             /* The final Test.  Did you win? */
@@ -1453,7 +1859,10 @@ dosacrifice()
                 useup(otmp); /* well, it's gone now */
             else
                 useupf(otmp, 1L);
+/*JP
             You("offer the Amulet of Yendor to %s...", a_gname());
+*/
+            You("\83C\83F\83\93\83_\81[\82Ì\96\82\8f\9c\82¯\82ð%s\82É\8c£\8fã\82µ\82½\81D\81D\81D",a_gname());
             if (altaralign == A_NONE) {
                 /* Moloch's high altar */
                 if (u.ualign.record > -99)
@@ -1475,23 +1884,48 @@ dosacrifice()
                 /* And the opposing team picks you up and
                    carries you off on their shoulders */
                 adjalign(-99);
+#if 0 /*JP*/
                 pline("%s accepts your gift, and gains dominion over %s...",
                       a_gname(), u_gname());
+#else
+                pline("%s\82Í\82 \82È\82½\82Ì\91\97\82è\95¨\82ð\8eó\82¯\82Æ\82è\81C%s\82Ì\8c \97Í\82ð\93¾\82½\81D\81D\81D",
+                      a_gname(), u_gname());
+#endif
+/*JP
                 pline("%s is enraged...", u_gname());
+*/
+                pline("%s\82Í\8c\83\93{\82µ\82½\81D\81D\81D", u_gname());
+/*JP
                 pline("Fortunately, %s permits you to live...", a_gname());
+*/
+                pline("\8dK\89^\82É\82à\81C%s\82Í\82 \82È\82½\82Ì\91\8dÝ\82ð\8b\96\82µ\82Ä\82¢\82é\81D\81D\81D",a_gname());
                 pline(cloud_of_smoke, hcolor(NH_ORANGE));
                 done(ESCAPED);
             } else { /* super big win */
                 adjalign(10);
                 u.uachieve.ascended = 1;
                 pline(
+/*JP
                "An invisible choir sings, and you are bathed in radiance...");
+*/
+                "\82Ç\82±\82©\82ç\82Æ\82à\82È\82­\90¹\89Ì\91à\82Ì\89Ì\82ª\95·\82±\82¦\81C\82 \82È\82½\82Í\8cõ\82É\95ï\82Ü\82ê\82½\81D\81D\81D");
+/*JP
                 godvoice(altaralign, "Congratulations, mortal!");
+*/
+                godvoice(altaralign, "\82æ\82­\82â\82Á\82½\81I\92è\96½\82Ì\8eÒ\82æ\81I");
                 display_nhwindow(WIN_MESSAGE, FALSE);
                 verbalize(
+/*JP
           "In return for thy service, I grant thee the gift of Immortality!");
+*/
+          "\93ð\82Ì\88Ì\8bÆ\82É\91Î\82µ\81C\95s\8e\80\82Ì\91Ì\82ð\95ù\82°\82æ\82¤\82¼\81I");
+#if 0 /*JP*/
                 You("ascend to the status of Demigod%s...",
                     flags.female ? "dess" : "");
+#else
+                You("\8f¸\93V\82µ\81C%s\90_\82Æ\82È\82Á\82½\81D\81D\81D",
+                    flags.female ? "\8f\97" : "");
+#endif
                 done(ASCENDED);
             }
         }
@@ -1500,17 +1934,29 @@ dosacrifice()
     if (otmp->otyp == FAKE_AMULET_OF_YENDOR) {
         if (!highaltar && !otmp->known)
             goto too_soon;
+/*JP
         You_hear("a nearby thunderclap.");
+*/
+        You("\8bß\82­\82É\97\8b\82ª\97\8e\82¿\82½\89¹\82ð\95·\82¢\82½\81D");
         if (!otmp->known) {
+#if 0 /*JP*/
             You("realize you have made a %s.",
                 Hallucination ? "boo-boo" : "mistake");
+#else
+            You("%s\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½\81D",
+                Hallucination ? "\81u\83n\83Y\83\8c\81v\82¾\82Á\82½" : "\8aÔ\88á\82¢\82ð\94Æ\82µ\82½");
+#endif
             otmp->known = TRUE;
             change_luck(-1);
             return 1;
         } else {
             /* don't you dare try to fool the gods */
             if (Deaf)
+#if 0 /*JP*/
                 pline("Oh, no."); /* didn't hear thunderclap */
+#else
+                pline("\82È\82ñ\82Ä\82±\82Á\82½\81D"); /* didn't hear thunderclap */
+#endif
             change_luck(-3);
             adjalign(-1);
             u.ugangr += 3;
@@ -1529,10 +1975,19 @@ dosacrifice()
          * REAL BAD NEWS!!! High altars cannot be converted.  Even an attempt
          * gets the god who owns it truly pissed off.
          */
+/*JP
         You_feel("the air around you grow charged...");
+*/
+        You("\89ñ\82è\82Ì\8bó\8bC\82É\83G\83l\83\8b\83M\81[\82ª\96\9e\82¿\82Ä\82¢\82­\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
+/*JP
         pline("Suddenly, you realize that %s has noticed you...", a_gname());
+*/
+        pline("\93Ë\91R\81C%s\82ª\82 \82È\82½\82ð\82\82Á\82Æ\8c©\82Ä\82¢\82é\82Ì\82É\8bC\82ª\82Â\82¢\82½\81D\81D\81D",a_gname());
         godvoice(altaralign,
+/*JP
                  "So, mortal!  You dare desecrate my High Temple!");
+*/
+                 "\92è\96½\82Ì\8eÒ\82æ\81I\82¨\82Ü\82¦\82Í\89ä\82ª\90_\90¹\82È\82é\8e\9b\89@\82ð\89\98\82·\82Ì\82©\81I");
         /* Throw everything we have at the player */
         god_zaps_you(altaralign);
     } else if (value
@@ -1550,10 +2005,16 @@ dosacrifice()
             if (ugod_is_angry() || (altaralign == A_NONE && Inhell)) {
                 if (u.ualignbase[A_CURRENT] == u.ualignbase[A_ORIGINAL]
                     && altaralign != A_NONE) {
+/*JP
                     You("have a strong feeling that %s is angry...",
+*/
+                    You("%s\82ª\93{\82Á\82Ä\82¢\82é\82Ì\82ð\8am\90M\82µ\82½\81D\81D\81D",
                         u_gname());
                     consume_offering(otmp);
+/*JP
                     pline("%s accepts your allegiance.", a_gname());
+*/
+                    pline("%s\82Í\82 \82È\82½\82Ì\91®\90«\82ð\8eó\82¯\82¢\82ê\82½\81D", a_gname());
 
                     uchangealign(altaralign, 0);
                     /* Beware, Conversion is costly */
@@ -1562,8 +2023,14 @@ dosacrifice()
                 } else {
                     u.ugangr += 3;
                     adjalign(-5);
+/*JP
                     pline("%s rejects your sacrifice!", a_gname());
+*/
+                    pline("%s\82Í\82 \82È\82½\82Ì\8c£\8fã\95¨\82ð\8eó\82¯\82¢\82ê\82È\82¢\81I", a_gname());
+/*JP
                     godvoice(altaralign, "Suffer, infidel!");
+*/
+                    godvoice(altaralign, "\88Ù\92[\8eÒ\82æ\81I\8e¸\82¹\82ë\81I\81I");
                     change_luck(-5);
                     (void) adjattrib(A_WIS, -2, TRUE);
                     if (!Inhell)
@@ -1572,11 +2039,19 @@ dosacrifice()
                 return 1;
             } else {
                 consume_offering(otmp);
+#if 0 /*JP*/
                 You("sense a conflict between %s and %s.", u_gname(),
                     a_gname());
+#else
+                You("%s\82Æ%s\8aÔ\82Ì\91\88\82¢\82ð\8a´\82\82½\81D", u_gname(),
+                    a_gname());
+#endif
                 if (rn2(8 + u.ulevel) > 5) {
                     struct monst *pri;
+/*JP
                     You_feel("the power of %s increase.", u_gname());
+*/
+                    You("%s\82Ì\97Í\82ª\91\9d\91å\82µ\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D", u_gname());
                     exercise(A_WIS, TRUE);
                     change_luck(1);
                     /* Yes, this is supposed to be &=, not |= */
@@ -1586,12 +2061,21 @@ dosacrifice()
                         levl[u.ux][u.uy].altarmask
                         | (Align2amask(u.ualign.type));
                     if (!Blind)
+#if 0 /*JP*/
                         pline_The("altar glows %s.",
                                   hcolor((u.ualign.type == A_LAWFUL)
                                             ? NH_WHITE
                                             : u.ualign.type
                                                ? NH_BLACK
                                                : (const char *) "gray"));
+#else
+                        pline("\8dÕ\92d\82Í%s\8bP\82¢\82½\81D",
+                              jconj_adj(hcolor((u.ualign.type == A_LAWFUL)
+                                            ? NH_WHITE
+                                            : u.ualign.type
+                                               ? NH_BLACK
+                                               : (const char *)"\8aD\90F\82Ì")));
+#endif
 
                     if (rnl(u.ulevel) > 6 && u.ualign.record > 0
                         && rnd(u.ualign.record) > (3 * ALIGNLIM) / 4)
@@ -1601,7 +2085,10 @@ dosacrifice()
                         && !p_coaligned(pri))
                         angry_priest();
                 } else {
+/*JP
                     pline("Unluckily, you feel the power of %s decrease.",
+*/
+                    pline("\95s\8dK\82É\82à\81C%s\82Ì\97Í\82ª\8c¸\8f­\82µ\82½\82Ì\82ð\8a´\82\82½\81D",
                           u_gname());
                     change_luck(-1);
                     exercise(A_WIS, FALSE);
@@ -1622,24 +2109,41 @@ dosacrifice()
                 u.ugangr = 0;
             if (u.ugangr != saved_anger) {
                 if (u.ugangr) {
+#if 0 /*JP*/
                     pline("%s seems %s.", u_gname(),
                           Hallucination ? "groovy" : "slightly mollified");
+#else
+                    pline("%s\82Í%s\82É\8c©\82¦\82é\81D", u_gname(),
+                          Hallucination ? "\91f\93G" : "\82¿\82å\82Á\82Æ\98a\82ç\82¢\82¾\82æ\82¤");
+#endif
 
                     if ((int) u.uluck < 0)
                         change_luck(1);
                 } else {
+#if 0 /*JP*/
                     pline("%s seems %s.", u_gname(),
                           Hallucination ? "cosmic (not a new fact)"
                                         : "mollified");
+#else
+                    pline("%s\82Í%s\82É\8c©\82¦\82é\81D", u_gname(),
+                          Hallucination ? "\93ø\90F(\90V\8e\96\8eÀ\82Å\82Í\82È\82¢)"
+                                        : "\8cy\95Ì\82µ\82½\82æ\82¤");
+#endif
 
                     if ((int) u.uluck < 0)
                         u.uluck = 0;
                 }
             } else { /* not satisfied yet */
                 if (Hallucination)
+/*JP
                     pline_The("gods seem tall.");
+*/
+                    pline("\90_\82Í\82¨\8d\82\82­\82Æ\82Ü\82Á\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D");
                 else
+/*JP
                     You("have a feeling of inadequacy.");
+*/
+                    You("\82Ü\82¾\82Ü\82¾\82¾\82Æ\8a´\82\82½\81D");
             }
         } else if (ugod_is_angry()) {
             if (value > MAXVALUE)
@@ -1647,7 +2151,10 @@ dosacrifice()
             if (value > -u.ualign.record)
                 value = -u.ualign.record;
             adjalign(value);
+/*JP
             You_feel("partially absolved.");
+*/
+            You("\8f­\82µ\82¾\82¯\82ä\82é\82µ\82Ä\82à\82ç\82¦\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         } else if (u.ublesscnt > 0) {
             u.ublesscnt -= ((value * (u.ualign.type == A_CHAOTIC ? 500 : 300))
                             / MAXVALUE);
@@ -1656,16 +2163,28 @@ dosacrifice()
             if (u.ublesscnt != saved_cnt) {
                 if (u.ublesscnt) {
                     if (Hallucination)
+/*JP
                         You("realize that the gods are not like you and I.");
+*/
+                        You("\90_\82Æ\83c\81[\83J\81[\82Ì\92\87\82Å\82Í\82È\82¢\82±\82Æ\82ð\8cå\82Á\82½\81D");
                     else
+/*JP
                         You("have a hopeful feeling.");
+*/
+                        pline("\8aó\96]\82ª\8c©\82¦\82Ä\82«\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
                     if ((int) u.uluck < 0)
                         change_luck(1);
                 } else {
                     if (Hallucination)
+/*JP
                         pline("Overall, there is a smell of fried onions.");
+*/
+                        pline("\82½\82Ü\82Ë\82¬\82ð\97g\82°\82½\93õ\82¢\82ª\82µ\82½\81D");
                     else
+/*JP
                         You("have a feeling of reconciliation.");
+*/
+                        You("\8b\96\82³\82ê\82½\8bC\82ª\82µ\82½\81D");
                     if ((int) u.uluck < 0)
                         u.uluck = 0;
                 }
@@ -1685,9 +2204,15 @@ dosacrifice()
                     if (otmp->cursed)
                         uncurse(otmp);
                     otmp->oerodeproof = TRUE;
+/*JP
                     at_your_feet("An object");
+*/
+                    at_your_feet("\89½\82©");
                     dropy(otmp);
+/*JP
                     godvoice(u.ualign.type, "Use my gift wisely!");
+*/
+                    godvoice(u.ualign.type, "\89ä\82ª\97^\82¦\82µ\82à\82Ì\8c«\82­\8eg\82¤\82×\82µ\81I");
                     u.ugifts++;
                     u.ublesscnt = rnz(300 + (50 * nartifacts));
                     exercise(A_WIS, TRUE);
@@ -1706,13 +2231,24 @@ dosacrifice()
                 u.uluck = 0;
             if (u.uluck != saved_luck) {
                 if (Blind)
+#if 0 /*JP*/
                     You("think %s brushed your %s.", something,
                         body_part(FOOT));
+#else
+                    pline("%s\82ª\82 \82È\82½\82Ì%s\82ð\82­\82·\82®\82Á\82½\82æ\82¤\82¾\81D", something,
+                          body_part(FOOT));
+#endif
                 else
+#if 0 /*JP*/
                     You(Hallucination
                     ? "see crabgrass at your %s.  A funny thing in a dungeon."
                             : "glimpse a four-leaf clover at your %s.",
                         makeplural(body_part(FOOT)));
+#else
+                    You(Hallucination
+                    ? "\91«\8c³\82É\83y\83\93\83y\83\93\91\90\82ð\82Ý\82Â\82¯\82½\81D\96À\8b{\82É\82µ\82Ä\82Í\92¿\82µ\82¢\81D"
+                            : "\8el\97t\82Ì\83N\83\8d\81[\83o\81[\82ð\91«\8c³\82É\8c©\82Â\82¯\82½\81D");
+#endif
             }
         }
     }
@@ -1731,13 +2267,21 @@ boolean praying; /* false means no messages should be given */
 
     if (is_demon(youmonst.data) && (p_aligntyp != A_CHAOTIC)) {
         if (praying)
+#if 0 /*JP*/
             pline_The("very idea of praying to a %s god is repugnant to you.",
                       p_aligntyp ? "lawful" : "neutral");
+#else
+            pline("%s\82Ì\90_\82É\8bF\82è\82ð\82³\82³\82°\82é\82Ì\82Í\8fí\8e¯\82É\94w\82­\81D",
+                p_aligntyp ? "\92\81\8f\98" : "\92\86\97§");
+#endif
         return FALSE;
     }
 
     if (praying)
+/*JP
         You("begin praying to %s.", align_gname(p_aligntyp));
+*/
+        You("%s\82É\8bF\82è\82ð\95ù\82°\82½\81D", align_gname(p_aligntyp));
 
     if (u.ualign.type && u.ualign.type == -p_aligntyp)
         alignment = -u.ualign.record; /* Opposite alignment altar */
@@ -1774,7 +2318,10 @@ int
 dopray()
 {
     /* Confirm accidental slips of Alt-P */
+/*JP
     if (ParanoidPray && yn("Are you sure you want to pray?") != 'y')
+*/
+    if (ParanoidPray && yn("\8bF\82è\82Ü\82·\82©\81H") != 'y')
         return 0;
 
     u.uconduct.gnostic++;
@@ -1784,7 +2331,10 @@ dopray()
         return 0;
 
     if (wizard && p_type >= 0) {
+/*JP
         if (yn("Force the gods to be pleased?") == 'y') {
+*/
+        if (yn("\96³\97\9d\96î\97\9d\90_\82É\94÷\8fÎ\82ñ\82Å\82à\82ç\82¢\82Ü\82·\82©\81H") == 'y') {
             u.ublesscnt = 0;
             if (u.uluck < 0)
                 u.uluck = 0;
@@ -1797,13 +2347,19 @@ dopray()
     }
     nomul(-3);
     multi_reason = "praying";
+/*JP
     nomovemsg = "You finish your prayer.";
+*/
+    nomovemsg = "\8bF\82è\8fI\82¦\82½\81D";
     afternmv = prayer_done;
 
     if (p_type == 3 && !Inhell) {
         /* if you've been true to your god you can't die while you pray */
         if (!Blind)
+/*JP
             You("are surrounded by a shimmering light.");
+*/
+            You("\82©\82·\82©\82È\8cõ\82É\82Â\82Â\82Ü\82ê\82½\81D");
         u.uinvulnerable = TRUE;
     }
 
@@ -1817,20 +2373,36 @@ prayer_done() /* M. Stephenson (1.0.3b) */
 
     u.uinvulnerable = FALSE;
     if (p_type == -1) {
+#if 0 /*JP*/
         godvoice(alignment,
                  (alignment == A_LAWFUL)
                     ? "Vile creature, thou durst call upon me?"
                     : "Walk no more, perversion of nature!");
+#else
+        godvoice(alignment,
+                 (alignment == A_LAWFUL)
+                    ? "\94Ú\97ò\82È\90\95¨\82æ\81C\93ð\81C\89ä\82É\8bF\82è\82ð\8b\81\82ß\82½\82©\81H"
+                    : "\93®\82­\82È\81I\8e\80\82É\82¼\82±\82È\82¢\82Ì\90\95¨\82æ\81I");
+#endif
+/*JP
         You_feel("like you are falling apart.");
+*/
+        You("\83o\83\89\83o\83\89\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         /* KMH -- Gods have mastery over unchanging */
         rehumanize();
         /* no Half_physical_damage adjustment here */
+/*JP
         losehp(rnd(20), "residual undead turning effect", KILLED_BY_AN);
+*/
+        losehp(rnd(20), "\95s\8e\80\82Ì\90\95¨\82ð\93y\82É\95Ô\82·\97Í\82Å", KILLED_BY_AN);
         exercise(A_CON, FALSE);
         return 1;
     }
     if (Inhell) {
+/*JP
         pline("Since you are in Gehennom, %s won't help you.",
+*/
+        pline("\83Q\83w\83i\82É%s\82Ì\97Í\82Í\93Í\82©\82È\82¢\81D",
               align_gname(alignment));
         /* haltingly aligned is least likely to anger */
         if (u.ualign.record <= 0 || rnl(u.ualign.record))
@@ -1889,7 +2461,10 @@ doturn()
             else if (spl_book[sp_no].sp_id == SPE_TURN_UNDEAD)
                 return spelleffects(sp_no, FALSE);
         }
+/*JP
         You("don't know how to turn undead!");
+*/
+        You("\95s\8e\80\82Ì\90\82«\95¨\82ð\93y\82É\96ß\82·\95û\96@\82ð\92m\82ç\82È\82¢\81I");
         return 0;
     }
     u.uconduct.gnostic++;
@@ -1897,17 +2472,26 @@ doturn()
     if ((u.ualign.type != A_CHAOTIC
          && (is_demon(youmonst.data) || is_undead(youmonst.data)))
         || u.ugangr > 6) { /* "Die, mortal!" */
+/*JP
         pline("For some reason, %s seems to ignore you.", u_gname());
+*/
+        pline("\82È\82º\82©\81C%s\82Í\82 \82È\82½\82ð\96³\8e\8b\82µ\82½\82æ\82¤\82¾\81D", u_gname());
         aggravate();
         exercise(A_WIS, FALSE);
         return 0;
     }
     if (Inhell) {
+/*JP
         pline("Since you are in Gehennom, %s won't help you.", u_gname());
+*/
+        pline("\83Q\83w\83i\82É%s\82Ì\97Í\82Í\93Í\82©\82È\82¢\81D", u_gname());
         aggravate();
         return 0;
     }
+/*JP
     pline("Calling upon %s, you chant an arcane formula.", u_gname());
+*/
+    pline("%s\82É\8bF\82è\82ð\8b\81\82ß\82é\82Æ\81C\82 \82È\82½\82Í\95s\89Â\8ev\8bc\82È\8c¾\97t\82Ì\90¹\89Ì\82ð\95·\82¢\82½\81D", u_gname());
     exercise(A_WIS, TRUE);
 
     /* note: does not perform unturn_dead() on victims' inventories */
@@ -1928,7 +2512,10 @@ doturn()
             mtmp->msleeping = 0;
             if (Confusion) {
                 if (!once++)
+/*JP
                     pline("Unfortunately, your voice falters.");
+*/
+                    pline("\8ec\94O\82È\82ª\82ç\81C\82 \82È\82½\82Ì\90º\82Í\82Ç\82à\82Á\82Ä\82µ\82Ü\82Á\82½\81D");
                 mtmp->mflee = 0;
                 mtmp->mfrozen = 0;
                 mtmp->mcanmove = 1;
@@ -2016,7 +2603,10 @@ aligntyp alignment;
         break;
     default:
         impossible("unknown alignment.");
+/*JP
         gnam = "someone";
+*/
+        gnam = "\92N\82©";
         break;
     }
     if (*gnam == '_')
@@ -2084,7 +2674,11 @@ aligntyp alignment;
     }
     if (!gnam) {
         impossible("No random god name?");
+#if 0 /*JP*/
         gnam = "your Friend the Computer"; /* Paranoia */
+#else
+        gnam = "\90e\88¤\82È\82é\83R\83\93\83s\83\85\81[\83^"; /* Paranoia */
+#endif
     }
     if (*gnam == '_')
         ++gnam;
@@ -2096,7 +2690,10 @@ const char *
 align_gtitle(alignment)
 aligntyp alignment;
 {
+/*JP
     const char *gnam, *result = "god";
+*/
+    const char *gnam, *result = "\8eå\90_";
 
     switch (alignment) {
     case A_LAWFUL:
@@ -2113,7 +2710,10 @@ aligntyp alignment;
         break;
     }
     if (gnam && *gnam == '_')
+/*JP
         result = "goddess";
+*/
+        result = "\8f\97\90_";
     return result;
 }
 
@@ -2124,11 +2724,20 @@ register int x, y;
     aligntyp altaralign = a_align(x, y);
 
     if (!strcmp(align_gname(altaralign), u_gname())) {
+/*JP
         godvoice(altaralign, "How darest thou desecrate my altar!");
+*/
+        godvoice(altaralign, "\93ð\81C\89ä\82ª\8dÕ\92d\82ð\89\98\82·\82©\81I");
         (void) adjattrib(A_WIS, -1, FALSE);
     } else {
+/*JP
         pline("A voice (could it be %s?) whispers:", align_gname(altaralign));
+*/
+        pline("\82³\82³\82â\82«\90º(\82½\82Ô\82ñ%s\81H)\82ª\95·\82±\82¦\82é:", align_gname(altaralign));
+/*JP
         verbalize("Thou shalt pay, infidel!");
+*/
+        verbalize("\88Ù\92[\8eÒ\82æ\81I\95ñ\82¢\82ð\8eó\82¯\82æ\81I");
         change_luck(-1);
     }
 }
index f17f431..142bfe5 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Izchak Miller, Steve Linhart, 1989.              */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "mfndpos.h"
 
@@ -123,8 +128,13 @@ pick_move:
             check_special_room(FALSE);
         if (ib) {
             if (cansee(mtmp->mx, mtmp->my))
+#if 0 /*JP*/
                 pline("%s picks up %s.", Monnam(mtmp),
                       distant_name(ib, doname));
+#else
+                pline("%s\82Í%s\82ð\8fE\82Á\82½\81D", Monnam(mtmp),
+                      distant_name(ib, doname));
+#endif
             obj_extract_self(ib);
             (void) mpickobj(mtmp, ib);
         }
@@ -198,7 +208,10 @@ register struct monst *priest;
         || (Conflict && !resist(priest, RING_CLASS, 0, 0))) {
         if (monnear(priest, u.ux, u.uy)) {
             if (Displaced)
+/*JP
                 Your("displaced image doesn't fool %s!", mon_nam(priest));
+*/
+                Your("\8c\89e\82Í%s\82ð\82¾\82Ü\82¹\82È\82©\82Á\82½\81I", mon_nam(priest));
             (void) mattacku(priest);
             return 0;
         } else if (index(u.urooms, temple)) {
@@ -303,37 +316,72 @@ char *pname; /* caller-supplied output buffer */
         return strcpy(pname, what);       /* caller must be confused */
 
     *pname = '\0';
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
     if (!do_hallu || !bogon_is_pname(whatcode))
         Strcat(pname, "the ");
+#endif
     if (mon->minvis)
+/*JP
         Strcat(pname, "invisible ");
+*/
+        Strcat(pname, "\93§\96¾\82È");
     if (mon->isminion && EMIN(mon)->renegade)
+/*JP
         Strcat(pname, "renegade ");
+*/
+        Strcat(pname, "\97 \90Ø\82è\8eÒ\82Ì");
 
     if (mon->ispriest || aligned_priest) { /* high_priest implies ispriest */
         if (!aligned_priest && !high_priest) {
             ; /* polymorphed priest; use ``what'' as is */
         } else {
             if (high_priest)
+#if 0 /*JP*/
                 Strcat(pname, "high ");
+#else
+                {
+                    if (Hallucination)
+                        what = "\96³\94\\8d\82\8b\89\8a¯\97»";
+                    else
+                        what = "\96@\89¤";
+                }
+            else /* \8fã\8bL\82Å\8a®\90¬\82³\82¹\82Ä\81A\88È\89º\82Ì\83R\81[\83h\82Í\92Ê\82ç\82È\82­\82·\82é */
+#endif
             if (Hallucination)
+/*JP
                 what = "poohbah";
+*/
+                what = "\96³\94\\8a¯\97»";
             else if (mon->female)
+/*JP
                 what = "priestess";
+*/
+                what = "\93ò\91m";
             else
+/*JP
                 what = "priest";
+*/
+                what = "\91m\97µ";
         }
     } else {
+/*JP
         if (mon->mtame && !strcmpi(what, "Angel"))
+*/
+        if (mon->mtame && !strcmpi(what, "\93V\8eg"))
+/*JP
             Strcat(pname, "guardian ");
+*/
+            Strcat(pname, "\8cx\8cì");
     }
 
     Strcat(pname, what);
     /* same as distant_monnam(), more or less... */
     if (do_hallu || !high_priest || !Is_astralevel(&u.uz)
         || distu(mon->mx, mon->my) <= 2 || program_state.gameover) {
+#if 0 /*JP*/
         Strcat(pname, " of ");
         Strcat(pname, halu_gname(mon_aligntyp(mon)));
+#endif
     }
     return pname;
 }
@@ -410,8 +458,13 @@ int roomno;
                Moloch so suppress the "of Moloch" for him here too */
             if (sanctum && !Hallucination)
                 priest->ispriest = 0;
+#if 0 /*JP*/
             pline("%s intones:",
                   canseemon(priest) ? Monnam(priest) : "A nearby voice");
+#else
+            pline("%s\82ª\89r\8f¥\82µ\82½\81F",
+                  canseemon(priest) ? Monnam(priest) : "\8bß\82­\82Å\92N\82©");
+#endif
             priest->ispriest = save_priest;
             epri_p->intone_time = moves + (long) d(10, 500); /* ~2505 */
             /* make sure that we don't suppress entry message when
@@ -422,18 +475,32 @@ int roomno;
         if (sanctum && Is_sanctum(&u.uz)) {
             if (priest->mpeaceful) {
                 /* first time inside */
+/*JP
                 msg1 = "Infidel, you have entered Moloch's Sanctum!";
+*/
+                msg1 = "\88Ù\92[\8eÒ\82æ\81I\82±\82±\82Í\81C\83\82\81[\83\8d\83b\83N\82Ì\90¹\88æ\82¾\81I";
+/*JP
                 msg2 = "Be gone!";
+*/
+                msg2 = "\97§\82¿\82³\82ê\81I";
                 priest->mpeaceful = 0;
                 /* became angry voluntarily; no penalty for attacking him */
                 set_malign(priest);
             } else {
                 /* repeat visit, or attacked priest before entering */
+/*JP
                 msg1 = "You desecrate this place by your presence!";
+*/
+                msg1 = "\82¨\82Ü\82¦\82Í\82±\82Ì\90_\90¹\82È\8fê\8f\8a\82ð\89\98\82µ\82Ä\82¢\82é\81I";
             }
         } else if (moves >= epri_p->enter_time) {
+#if 0 /*JP*/
             Sprintf(buf, "Pilgrim, you enter a %s place!",
                     !shrined ? "desecrated" : "sacred");
+#else
+            Sprintf(buf, "\8f\84\97ç\8eÒ\82æ\81C\82¨\82Ü\82¦\82Í%s\92n\82É\82¢\82é\81I",
+                    !shrined ? "\95s\8fò\82Ì" : "\90_\90¹\82È\82é");
+#endif
             msg1 = buf;
         }
         if (msg1 && can_speak && !Deaf) {
@@ -445,13 +512,25 @@ int roomno;
         if (!sanctum) {
             if (!shrined || !p_coaligned(priest)
                 || u.ualign.record <= ALGN_SINNED) {
+/*JP
                 msg1 = "have a%s forbidding feeling...";
+*/
+                msg1 = "%s\8bß\82Ã\82«\82ª\82½\82¢\8bC\8e\9d\82ª\82µ\82½\81D\81D\81D";
+/*JP
                 msg2 = (!shrined || !p_coaligned(priest)) ? "" : " strange";
+*/
+                msg2 = (!shrined || !p_coaligned(priest)) ? "" : "\8aï\96­\82È";
                 this_time = &epri_p->hostile_time;
                 other_time = &epri_p->peaceful_time;
             } else {
+/*JP
                 msg1 = "experience %s sense of peace.";
+*/
+                msg1 = "%s\96\9e\82¿\91«\82è\82½\8bC\8e\9d\82¿\82É\82È\82Á\82½\81D";
+/*JP
                 msg2 = (u.ualign.record >= ALGN_PIOUS) ? "a" : "an unusual";
+*/
+                msg2 = (u.ualign.record >= ALGN_PIOUS) ? "a" : "\82¢\82Â\82É\82È\82­";
                 this_time = &epri_p->peaceful_time;
                 other_time = &epri_p->hostile_time;
             }
@@ -475,13 +554,22 @@ int roomno;
 
         switch (rn2(4)) {
         case 0:
+/*JP
             You("have an eerie feeling...");
+*/
+            You("\82¼\82Á\82Æ\82µ\82½\81D\81D\81D");
             break;
         case 1:
+/*JP
             You_feel("like you are being watched.");
+*/
+            You("\8c©\82Â\82ß\82ç\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             break;
         case 2:
+/*JP
             pline("A shiver runs down your %s.", body_part(SPINE));
+*/
+            pline("\82 \82È\82½\82Ì%s\82ð\90k\82¦\82ª\91\96\82Á\82½\81D", body_part(SPINE));
             break;
         default:
             break; /* no message; unfortunately there's no
@@ -495,16 +583,28 @@ int roomno;
                an exclamation to a simple declaration) if hero has
                already killed enough ghosts.] */
             if (canspotmon(mtmp))
+/*JP
                 pline("An enormous ghost appears next to you!");
+*/
+                pline("\8b\90\91å\82È\97H\97ì\82ª\82 \82È\82½\82Ì\82·\82®\82»\82Î\82É\8c»\82í\82ê\82½\81I");
             else
+/*JP
                 You("sense a presence close by!");
+*/
+                You("\82·\82®\82»\82Î\82É\89½\82©\82ª\82¢\82é\82Ì\82ð\8a´\82\82½\81I");
             mtmp->mpeaceful = 0;
             set_malign(mtmp);
             if (flags.verbose)
+/*JP
                 You("are frightened to death, and unable to move.");
+*/
+                You("\82Ü\82Á\82³\82¨\82É\82È\82Á\82Ä\8bÁ\82«\81C\93®\82¯\82È\82­\82È\82Á\82½\81D");
             nomul(-3);
             multi_reason = "being terrified of a demon";
+/*JP
             nomovemsg = "You regain your composure.";
+*/
+            nomovemsg = "\82 \82È\82½\82Í\95½\90Ã\82ð\8eæ\82è\96ß\82µ\82½\81D";
         }
     }
 }
@@ -536,7 +636,10 @@ register struct monst *priest;
     u.uconduct.gnostic++;
 
     if (priest->mflee || (!priest->ispriest && coaligned && strayed)) {
+/*JP
         pline("%s doesn't want anything to do with you!", Monnam(priest));
+*/
+        pline("%s\82Í\82 \82È\82½\82É\8d\\82¢\82½\82­\82È\82¢\82æ\82¤\82¾\81I", Monnam(priest));
         priest->mpeaceful = 0;
         return;
     }
@@ -545,14 +648,27 @@ register struct monst *priest;
     if (!inhistemple(priest) || !priest->mpeaceful
         || !priest->mcanmove || priest->msleeping) {
         static const char *cranky_msg[3] = {
+/*JP
             "Thou wouldst have words, eh?  I'll give thee a word or two!",
+*/
+            "\93ð\8c¾\97t\82ð\96]\82Þ\82Ì\82©\81H",
+/*JP
             "Talk?  Here is what I have to say!",
+*/
+            "\98b\82·\81H\89½\82ð\8c¾\82¦\82Î\82æ\82¢\82Ì\82¾\81I",
+/*JP
             "Pilgrim, I would speak no longer with thee."
+*/
+            "\8f\84\97ç\8eÒ\82æ\81C\93ð\82É\8cê\82é\82±\82Æ\82È\82Ç\82È\82¢\81D"
         };
 
         if (!priest->mcanmove || priest->msleeping) {
+#if 0 /*JP*/
             pline("%s breaks out of %s reverie!", Monnam(priest),
                   mhis(priest));
+#else
+            pline("%s\82ÍáÒ\91z\82ð\92\86\92f\82µ\82½\81I", Monnam(priest));
+#endif
             priest->mfrozen = priest->msleeping = 0;
             priest->mcanmove = 1;
         }
@@ -565,7 +681,10 @@ register struct monst *priest;
     if (priest->mpeaceful && *in_rooms(priest->mx, priest->my, TEMPLE)
         && !has_shrine(priest)) {
         verbalize(
+/*JP
               "Begone!  Thou desecratest this holy place with thy presence.");
+*/
+              "\97§\82¿\8b\8e\82ê\81I\93ð\82Í\82±\82Ì\90_\90¹\82È\82é\8fê\8f\8a\82ð\89\98\82µ\82Ä\82¢\82é\81D");
         priest->mpeaceful = 0;
         return;
     }
@@ -574,38 +693,67 @@ register struct monst *priest;
             long pmoney = money_cnt(priest->minvent);
             if (pmoney > 0L) {
                 /* Note: two bits is actually 25 cents.  Hmm. */
+#if 0 /*JP*/
                 pline("%s gives you %s for an ale.", Monnam(priest),
                       (pmoney == 1L) ? "one bit" : "two bits");
+#else
+                pline("%s\82Í\82 \82È\82½\82ª\83G\81[\83\8b\8eð\82ð\88ù\82ß\82é\82æ\82¤\82É\81C%s\82ð\97^\82¦\82½\81D", Monnam(priest),
+                      (pmoney == 1L) ? "\8bà\89Ý1\96\87" : "\8bà\89Ý2\96\87");
+#endif
                 money2u(priest, pmoney > 1L ? 2 : 1);
             } else
+/*JP
                 pline("%s preaches the virtues of poverty.", Monnam(priest));
+*/
+                pline("%s\82Í\90´\95n\82Ì\94ü\93¿\82É\82Â\82¢\82Ä\90à\8b³\82µ\82½\81D", Monnam(priest));
             exercise(A_WIS, TRUE);
         } else
+/*JP
             pline("%s is not interested.", Monnam(priest));
+*/
+            pline("%s\82Í\8b»\96¡\82ð\8e¦\82³\82È\82¢\81D", Monnam(priest));
         return;
     } else {
         long offer;
 
+/*JP
         pline("%s asks you for a contribution for the temple.",
+*/
+        pline("%s\82Í\82 \82È\82½\82É\8e\9b\89@\82Ö\82Ì\8añ\91¡\82ð\8b\81\82ß\82½\81D",
               Monnam(priest));
         if ((offer = bribe(priest)) == 0) {
+/*JP
             verbalize("Thou shalt regret thine action!");
+*/
+            verbalize("\93ð\82Ì\8ds\88×\82Í\90_\82ð\96`\93À\82·\82é\82à\82Ì\82È\82è\81I");
             if (coaligned)
                 adjalign(-1);
         } else if (offer < (u.ulevel * 200)) {
             if (money_cnt(invent) > (offer * 2L)) {
+/*JP
                 verbalize("Cheapskate.");
+*/
+                verbalize("\83P\83`\82ß\81D");
             } else {
+/*JP
                 verbalize("I thank thee for thy contribution.");
+*/
+                verbalize("\93ð\82Ì\8añ\91¡\82É\95ñ\82¢\82æ\82¤\82¼\81D");
                 /* give player some token */
                 exercise(A_WIS, TRUE);
             }
         } else if (offer < (u.ulevel * 400)) {
+/*JP
             verbalize("Thou art indeed a pious individual.");
+*/
+            verbalize("\93ð\81C\82Ü\82³\82É\8chåi\82È\82è\81D");
             if (money_cnt(invent) < (offer * 2L)) {
                 if (coaligned && u.ualign.record <= ALGN_SINNED)
                     adjalign(1);
+/*JP
                 verbalize("I bestow upon thee a blessing.");
+*/
+                verbalize("\93ð\82É\8fj\95\9f\82ð\81D");
                 incr_itimeout(&HClairvoyant, rn1(500, 500));
             }
         } else if (offer < (u.ulevel * 600)
@@ -616,7 +764,10 @@ register struct monst *priest;
                    && (!(HProtection & INTRINSIC)
                        || (u.ublessed < 20
                            && (u.ublessed < 9 || !rn2(u.ublessed))))) {
+/*JP
             verbalize("Thy devotion has been rewarded.");
+*/
+            verbalize("\93ð\82ª\8c£\90g\82É\95ñ\82í\82ñ\81D");
             if (!(HProtection & INTRINSIC)) {
                 HProtection |= FROMOUTSIDE;
                 if (!u.ublessed)
@@ -624,7 +775,10 @@ register struct monst *priest;
             } else
                 u.ublessed++;
         } else {
+/*JP
             verbalize("Thy selfless generosity is deeply appreciated.");
+*/
+            verbalize("\93ð\8e©\90g\82Ì\90^\89¿\82Í\91å\82¢\82É\94F\82ß\82ç\82ê\82½\81D");
             if (money_cnt(invent) < (offer * 2L) && coaligned) {
                 if (strayed && (moves - u.ucleansed) > 5000L) {
                     u.ualign.record = 0; /* cleanse thee */
@@ -768,15 +922,24 @@ struct monst *priest;
 
     switch (rn2(3)) {
     case 0:
+/*JP
         pline("%s roars in anger:  \"Thou shalt suffer!\"",
+*/
+        pline("%s\82Í\93{\82è\82Ì\90º\82ð\82 \82°\82½\81F\81u\93ð\81C\8bê\82µ\82Þ\82ª\82æ\82¢\81I\81v",
               a_gname_at(ax, ay));
         break;
     case 1:
+/*JP
         pline("%s voice booms:  \"How darest thou harm my servant!\"",
+*/
+        pline("%s\82Ì\90º\82ª\8b¿\82¢\82½\81F\81u\82í\82ª\89º\96l\82É\8bê\82µ\82Þ\82ª\82æ\82¢\81I\81v",
               s_suffix(a_gname_at(ax, ay)));
         break;
     default:
+/*JP
         pline("%s roars:  \"Thou dost profane my shrine!\"",
+*/
+        pline("%s\82Ì\90º\82ª\95·\82±\82¦\82é\81F\81u\93ð\81C\89ä\82ª\90¹\93°\82ð\89\98\82µ\82½\82è\81I\81v",
               a_gname_at(ax, ay));
         break;
     }
index f1222fc..7bbd1d8 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright 1991, M. Stephenson             */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /*  quest dungeon branch routines. */
@@ -138,14 +143,30 @@ boolean talk;
 
     if (wizard && talk) {
         if (u.ualign.type != original_alignment) {
+#if 0 /*JP*/
             You("are currently %s instead of %s.", align_str(u.ualign.type),
                 align_str(original_alignment));
+#else
+            You("%s\82Å\82Í\82È\82­%s\82Ì\91®\90«\82Å\82 \82é\81D", align_str(original_alignment),
+                align_str(u.ualign.type));
+#endif
         } else if (u.ualignbase[A_CURRENT] != original_alignment) {
+/*JP
             You("have converted.");
+*/
+            You("\93]\8cü\82µ\82Ä\82¢\82é\81D");
         } else if (u.ualign.record < MIN_QUEST_ALIGN) {
+#if 0 /*JP*/
             You("are currently %d and require %d.", u.ualign.record,
                 MIN_QUEST_ALIGN);
+#else
+            Your("\91®\90«\92l\82Í\8c»\8dÝ%d\82Å%d\95K\97v\82¾\81D", u.ualign.record,
+                 MIN_QUEST_ALIGN);
+#endif
+/*JP
             if (yn_function("adjust?", (char *) 0, 'y') == 'y')
+*/
+            if (yn_function("\92¼\82·\81H", (char *) 0, 'y') == 'y')
                 u.ualign.record = MIN_QUEST_ALIGN;
         }
     }
@@ -172,7 +193,10 @@ boolean seal;
     struct trap *t;
     int portal_flag;
 
+/*JP
     br = dungeon_branch("The Quest");
+*/
+    br = dungeon_branch("\83N\83G\83X\83g");
     dest = (br->end1.dnum == u.uz.dnum) ? &br->end2 : &br->end1;
     portal_flag = u.uevent.qexpelled ? 0 /* returned via artifact? */
                                      : !seal ? 1 : -1;
@@ -371,8 +395,14 @@ struct monst *mtmp;
         && (mtmp->mstrategy & STRAT_WAITMASK)) {
         /* Awaken the prisoner */
         if (canseemon(mtmp))
+/*JP
             pline("%s speaks:", Monnam(mtmp));
+*/
+            pline("%s\82Í\98b\82µ\82½\81F", Monnam(mtmp));
+/*JP
         verbalize("I'm finally free!");
+*/
+        verbalize("\82Â\82¢\82É\8e©\97R\82¾\81I");
         mtmp->mstrategy &= ~STRAT_WAITMASK;
         mtmp->mpeaceful = 1;
 
index ed936d9..f0e17e1 100644 (file)
@@ -177,8 +177,12 @@ ldrname()
 {
     int i = urole.ldrnum;
 
+#if 0 /*JP*/
     Sprintf(nambuf, "%s%s", type_is_pname(&mons[i]) ? "" : "the ",
             mons[i].mname);
+#else
+    Strcpy(nambuf, mons[i].mname);
+#endif
     return nambuf;
 }
 
@@ -202,8 +206,12 @@ neminame()
 {
     int i = urole.neminum;
 
+#if 0 /*JP*/
     Sprintf(nambuf, "%s%s", type_is_pname(&mons[i]) ? "" : "the ",
             mons[i].mname);
+#else
+    Strcpy(nambuf, mons[i].mname);
+#endif
     return nambuf;
 }
 
@@ -294,10 +302,16 @@ char c;
         str = rank_of(MIN_QUEST_LEVEL, Role_switch, flags.female);
         break;
     case 's':
+/*JP
         str = (flags.female) ? "sister" : "brother";
+*/
+        str = (flags.female) ? "\96\85" : "\92í";
         break;
     case 'S':
+/*JP
         str = (flags.female) ? "daughter" : "son";
+*/
+        str = (flags.female) ? "\96º" : "\91§\8eq";
         break;
     case 'l':
         str = ldrname();
@@ -342,16 +356,28 @@ char c;
         str = align_gname(A_LAWFUL);
         break;
     case 'C':
+/*JP
         str = "chaotic";
+*/
+        str = "\8d¬\93×";
         break;
     case 'N':
+/*JP
         str = "neutral";
+*/
+        str = "\92\86\97§";
         break;
     case 'L':
+/*JP
         str = "lawful";
+*/
+        str = "\92\81\8f\98";
         break;
     case 'x':
+/*JP
         str = Blind ? "sense" : "see";
+*/
+        str = Blind ? "\8a´\82¶" : "\8c©";
         break;
     case 'Z':
         str = dungeons[0].dname;
index 6f9b39a..2978023 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #define Your_Own_Role(mndx)  \
@@ -182,7 +187,10 @@ doread()
     /* outrumor has its own blindness check */
     if (scroll->otyp == FORTUNE_COOKIE) {
         if (flags.verbose)
+/*JP
             You("break up the cookie and throw away the pieces.");
+*/
+            You("\83N\83b\83L\81[\82ð\8a\84\82è\81C\82©\82¯\82ç\82ð\93\8a\82°\82·\82Ä\82½\81D");
         outrumor(bcsign(scroll), BY_COOKIE);
         if (!Blind)
             u.uconduct.literate++;
@@ -191,21 +199,37 @@ doread()
     } else if (scroll->otyp == T_SHIRT || scroll->otyp == ALCHEMY_SMOCK) {
         char buf[BUFSZ];
         if (Blind) {
+/*JP
             You_cant("feel any Braille writing.");
+*/
+            You("\93_\8e\9a\82Í\82Ç\82¤\82à\8f\91\82¢\82Ä\82È\82¢\82æ\82¤\82¾\81D");
             return 0;
         }
         /* can't read shirt worn under suit (under cloak is ok though) */
         if (scroll->otyp == T_SHIRT && uarm && scroll == uarmu) {
+#if 0 /*JP*/
             pline("%s shirt is obscured by %s%s.",
                   scroll->unpaid ? "That" : "Your", shk_your(buf, uarm),
                   suit_simple_name(uarm));
+#else
+            pline("\83V\83\83\83c\82Í%s\82Å\89B\82³\82ê\82Ä\82¢\82é\81D",
+                  suit_simple_name(uarm));
+#endif
             return 0;
         }
         u.uconduct.literate++;
         if (flags.verbose)
+/*JP
             pline("It reads:");
+*/
+            pline("\82»\82ê\82ð\93Ç\82ñ\82¾\81F");
+#if 0 /*JP*/
         pline("\"%s\"", (scroll->otyp == T_SHIRT) ? tshirt_text(scroll, buf)
                                                   : apron_text(scroll, buf));
+#else
+        pline("\81u%s\81v", (scroll->otyp == T_SHIRT) ? tshirt_text(scroll, buf)
+                                                  : apron_text(scroll, buf));
+#endif
         return 1;
     } else if (scroll->otyp == CREDIT_CARD) {
         static const char *card_msgs[] = {
@@ -225,11 +249,20 @@ doread()
         };
 
         if (Blind) {
+/*JP
             You("feel the embossed numbers:");
+*/
+            You("\95\82\82«\92¤\82è\82É\82³\82ê\82Ä\82¢\82é\94Ô\8d\86\82ð\8a´\82\82½:");
         } else {
             if (flags.verbose)
+/*JP
                 pline("It reads:");
+*/
+                pline("\82»\82ê\82ð\93Ç\82ñ\82¾\81F");
+/*JP
             pline("\"%s\"",
+*/
+            pline("\81u%s\81v",
                   scroll->oartifact
                       ? card_msgs[SIZE(card_msgs) - 1]
                       : card_msgs[scroll->o_id % (SIZE(card_msgs) - 1)]);
@@ -242,32 +275,59 @@ doread()
         u.uconduct.literate++;
         return 1;
     } else if (scroll->otyp == CAN_OF_GREASE) {
+/*JP
         pline("This %s has no label.", singular(scroll, xname));
+*/
+        pline("\82±\82Ì%s\82É\82Í\83\89\83x\83\8b\82ª\82È\82¢\81D", singular(scroll, xname));
         return 0;
     } else if (scroll->otyp == MAGIC_MARKER) {
         if (Blind) {
+/*JP
             You_cant("feel any Braille writing.");
+*/
+            You("\93_\8e\9a\82Í\82Ç\82¤\82à\8f\91\82¢\82Ä\82È\82¢\82æ\82¤\82¾\81D");
             return 0;
         }
         if (flags.verbose)
+/*JP
             pline("It reads:");
+*/
+            pline("\82»\82ê\82ð\93Ç\82ñ\82¾\81F");
+/*JP
         pline("\"Magic Marker(TM) Red Ink Marker Pen. Water Soluble.\"");
+*/
+        pline("\81u\96\82\96@\82Ì\83}\81[\83J(TM) \90Ô\83C\83\93\83N\83}\81[\83J\83y\83\93\81D\90\85\90«\81D\81v");
         u.uconduct.literate++;
         return 1;
     } else if (scroll->oclass == COIN_CLASS) {
         if (Blind)
+/*JP
             You("feel the embossed words:");
+*/
+            You("\95\82\82«\92¤\82è\82É\82³\82ê\82Ä\82¢\82é\95\8e\9a\82ð\8a´\82\82½:");
         else if (flags.verbose)
+/*JP
             You("read:");
+*/
+            pline("\82»\82ê\82ð\93Ç\82ñ\82¾\81F");
         pline("\"1 Zorkmid. 857 GUE. In Frobs We Trust.\"");
         u.uconduct.literate++;
         return 1;
     } else if (scroll->oartifact == ART_ORB_OF_FATE) {
         if (Blind)
+/*JP
             You("feel the engraved signature:");
+*/
+            You("\92¤\82è\8d\9e\82Ü\82ê\82Ä\82¢\82é\83T\83C\83\93\82ð\8a´\82\82½\81F");
         else
+/*JP
             pline("It is signed:");
+*/
+            pline("\83T\83C\83\93\82ª\82 \82é\81F");
+/*JP
         pline("\"Odin.\"");
+*/
+        pline("\81u\83I\81[\83f\83B\83\93\81v");
         u.uconduct.literate++;
         return 1;
     } else if (scroll->otyp == CANDY_BAR) {
@@ -282,25 +342,43 @@ doread()
         };
 
         if (Blind) {
+/*JP
             You_cant("feel any Braille writing.");
+*/
+            You("\93_\8e\9a\82Í\82Ç\82¤\82à\8f\91\82¢\82Ä\82È\82¢\82æ\82¤\82¾\81D");
             return 0;
         }
+/*JP
         pline("The wrapper reads: \"%s\"",
+*/
+        pline("\95ï\82Ý\8e\86\82Ì\95\8e\9a\82ð\93Ç\82ñ\82¾\81F\81u%s\81v",
               wrapper_msgs[scroll->o_id % SIZE(wrapper_msgs)]);
         u.uconduct.literate++;
         return 1;
     } else if (scroll->oclass != SCROLL_CLASS
                && scroll->oclass != SPBOOK_CLASS) {
+/*JP
         pline(silly_thing_to, "read");
+*/
+        pline(silly_thing_to, "\93Ç\82Þ");
         return 0;
     } else if (Blind && (scroll->otyp != SPE_BOOK_OF_THE_DEAD)) {
         const char *what = 0;
         if (scroll->oclass == SPBOOK_CLASS)
+/*JP
             what = "mystic runes";
+*/
+            what = "\90_\94é\93I\82È\83\8b\81[\83\93\95\8e\9a";
         else if (!scroll->dknown)
+/*JP
             what = "formula on the scroll";
+*/
+            what = "\8aª\95¨\82Ì\8eô\95¶";
         if (what) {
+/*JP
             pline("Being blind, you cannot read the %s.", what);
+*/
+            pline("\96Ú\82ª\8c©\82¦\82È\82¢\82Ì\82Å\81C\82 \82È\82½\82Í%s\82ð\93Ç\82Þ\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", what);
             return 0;
         }
     }
@@ -343,20 +421,39 @@ doread()
                        || (scroll->otyp == SCR_REMOVE_CURSE
                            && scroll->cursed));
         if (Blind)
+#if 0 /*JP*/
             pline(nodisappear
                       ? "You %s the formula on the scroll."
                       : "As you %s the formula on it, the scroll disappears.",
                   is_silent(youmonst.data) ? "cogitate" : "pronounce");
+#else
+            pline(nodisappear
+                      ? "\82 \82È\82½\82Í\8eô\95\82ð%s\82½\81D"
+                      : "\8eô\95\82ð%s\82é\82Æ\81C\8aª\95¨\82Í\8fÁ\82¦\82½\81D",
+                  is_silent(youmonst.data) ? "\94O\82¶" : "\8f¥\82¦");
+#endif
         else
+#if 0 /*JP*/
             pline(nodisappear ? "You read the scroll."
                               : "As you read the scroll, it disappears.");
+#else
+            pline(nodisappear ? "\82 \82È\82½\82Í\8aª\95¨\82ð\93Ç\82ñ\82¾\81D"
+                              : "\8aª\95¨\82ð\93Ç\82Þ\82Æ\81C\82»\82ê\82Í\8fÁ\82¦\82½\81D");
+#endif
         if (confused) {
             if (Hallucination)
+/*JP
                 pline("Being so trippy, you screw up...");
+*/
+                pline("\82Æ\82Ä\82à\82Ö\82ë\82Ö\82ë\82È\82Ì\82Å\81C\82­\82µ\82á\82­\82µ\82á\82É\82µ\82Ä\82µ\82Ü\82Á\82½\81D\81D\81D");
             else
+#if 0 /*JP*/
                 pline("Being confused, you %s the magic words...",
                       is_silent(youmonst.data) ? "misunderstand"
                                                : "mispronounce");
+#else
+                pline("\8d¬\97\90\82µ\82Ä\82¢\82é\82Ì\82Å\81C\8eô\95\82ð\8aÔ\88á\82Á\82Ä\82µ\82Ü\82Á\82½\81D\81D\81D");
+#endif
         }
     }
     if (!seffects(scroll)) {
@@ -381,7 +478,10 @@ register struct obj *obj;
         pline1(nothing_happens);
     } else {
         /* order matters: message, shop handling, actual transformation */
+/*JP
         pline("%s briefly.", Yobjnam2(obj, "vibrate"));
+*/
+        Your("%s\82Í\8f¬\8d\8f\82Ý\82É\90U\93®\82µ\82½\81D",xname(obj));
         costly_alteration(obj, COST_UNCHRG);
         obj->spe = 0;
         if (obj->otyp == OIL_LAMP || obj->otyp == BRASS_LANTERN)
@@ -393,7 +493,10 @@ STATIC_OVL void
 p_glow1(otmp)
 register struct obj *otmp;
 {
+/*JP
     pline("%s briefly.", Yobjnam2(otmp, Blind ? "vibrate" : "glow"));
+*/
+    Your("%s\82Í\8f¬\8d\8f\82Ý\82É%s\81D", xname(otmp), Blind ? "\90U\93®\82µ\82½" : "\8bP\82¢\82½");
 }
 
 STATIC_OVL void
@@ -401,8 +504,14 @@ p_glow2(otmp, color)
 register struct obj *otmp;
 register const char *color;
 {
+#if 0 /*JP*/
     pline("%s%s%s for a moment.", Yobjnam2(otmp, Blind ? "vibrate" : "glow"),
           Blind ? "" : " ", Blind ? "" : hcolor(color));
+#else
+    Your("%s\82Í\88ê\8fu%s%s\81D", xname(otmp),
+         Blind ? "" : jconj_adj(hcolor(color)),
+         Blind ? "\90U\93®\82µ\82½" : "\8bP\82¢\82½");
+#endif
 }
 
 /* Is the object chargeable?  For purposes of inventory display; it is
@@ -505,18 +614,30 @@ int curse_bless;
 
         /* destruction depends on current state, not adjustment */
         if (obj->spe > rn2(7) || obj->spe <= -5) {
+#if 0 /*JP*/
             pline("%s momentarily, then %s!", Yobjnam2(obj, "pulsate"),
                   otense(obj, "explode"));
+#else
+            Your("%s\82Í\88ê\8fu\96¬\93®\82µ\81C\94\9a\94­\82µ\82½\81I", xname(obj));
+#endif
             if (is_on)
                 Ring_gone(obj);
             s = rnd(3 * abs(obj->spe)); /* amount of damage */
             useup(obj);
+/*JP
             losehp(Maybe_Half_Phys(s), "exploding ring", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(s), "\8ew\97Ö\82Ì\94\9a\94­\82Å", KILLED_BY_AN);
         } else {
             long mask = is_on ? (obj == uleft ? LEFT_RING : RIGHT_RING) : 0L;
 
+#if 0 /*JP*/
             pline("%s spins %sclockwise for a moment.", Yname2(obj),
                   s < 0 ? "counter" : "");
+#else
+            Your("%s\82Í\88ê\8fu%s\8e\9e\8cv\89ñ\82è\82É\89ñ\93]\82µ\82½\81D", xname(obj),
+                 s < 0 ? "\94½" : "");
+#endif
             if (s < 0)
                 costly_alteration(obj, COST_DECHNT);
             /* cause attributes and/or properties to be updated */
@@ -561,7 +682,10 @@ int curse_bless;
                             == MAGIC_MARKER) { /* previously recharged */
                 obj->recharged = 1; /* override increment done above */
                 if (obj->spe < 3)
+/*JP
                     Your("marker seems permanently dried out.");
+*/
+                    Your("\83}\81[\83J\82Í\8a®\91S\82É\8a£\82«\82«\82Á\82Ä\82µ\82Ü\82Á\82½\81D");
                 else
                     pline1(nothing_happens);
             } else if (is_blessed) {
@@ -598,7 +722,11 @@ int curse_bless;
                 stripspe(obj);
                 if (obj->lamplit) {
                     if (!Blind)
+#if 0 /*JP*/
                         pline("%s out!", Tobjnam(obj, "go"));
+#else
+                        pline("%s\82Í\8fÁ\82¦\82½\81I", xname(obj));
+#endif
                     end_burn(obj, TRUE);
                 }
             } else if (is_blessed) {
@@ -674,7 +802,10 @@ int curse_bless;
 
     } else {
     not_chargable:
+/*JP
         You("have a feeling of loss.");
+*/
+        You("\82È\82É\82©\91¹\82µ\82½\8bC\95ª\82É\82È\82Á\82½\81D");
     }
 }
 
@@ -921,7 +1052,10 @@ boolean showmsg;
 {
     if (!cansee(x, y) || !ACCESSIBLE(levl[x][y].typ) || distu(x, y) >= 32) {
         if (showmsg)
+/*JP
             You("smell rotten eggs.");
+*/
+            pline("\82­\82³\82Á\82½\97\91\82Ì\82É\82¨\82¢\82ª\82µ\82½\81D");
         return FALSE;
     }
     return TRUE;
@@ -972,7 +1106,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         known = TRUE;
         if (sobj->spe)
             pline(
+/*JP
     "This seems to be junk mail addressed to the finder of the Eye of Larn.");
+*/
+    "Eye of Larn\82Ì\94­\8c©\8eÒ\82É\88\82Ä\82ç\82ê\82½\83S\83~\83\81\83C\83\8b\82Ì\82æ\82¤\82¾\81D");
         /* note to the puzzled: the game Larn actually sends you junk
          * mail if you win!
          */
@@ -987,9 +1124,15 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
 
         otmp = some_armor(&youmonst);
         if (!otmp) {
+#if 0 /*JP*/
             strange_feeling(sobj, !Blind
                                       ? "Your skin glows then fades."
                                       : "Your skin feels warm for a moment.");
+#else
+            strange_feeling(sobj, !Blind
+                            ? "\82 \82È\82½\82Ì\91Ì\82Í\88ê\8fu\8bP\82¢\82½\81D"
+                            : "\82 \82È\82½\82Ì\91Ì\82Í\88ê\8fu\92g\82©\82­\82È\82Á\82½\81D");
+#endif
             sobj = 0; /* useup() in strange_feeling() */
             exercise(A_CON, !scursed);
             exercise(A_STR, !scursed);
@@ -1001,19 +1144,35 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             otmp->oerodeproof = 0; /* for messages */
             if (Blind) {
                 otmp->rknown = FALSE;
+/*JP
                 pline("%s warm for a moment.", Yobjnam2(otmp, "feel"));
+*/
+                Your("%s\82Í\88ê\8fu\92g\82©\82­\82È\82Á\82½\81D", xname(otmp));
             } else {
                 otmp->rknown = TRUE;
+#if 0 /*JP*/
                 pline("%s covered by a %s %s %s!", Yobjnam2(otmp, "are"),
                       scursed ? "mottled" : "shimmering",
                       hcolor(scursed ? NH_BLACK : NH_GOLDEN),
                       scursed ? "glow"
                               : (is_shield(otmp) ? "layer" : "shield"));
+#else
+                Your("%s\82Í%s%s%s\82Å\95¢\82í\82ê\82½\81I", xname(otmp),
+                     jconj_adj(hcolor(scursed ? NH_BLACK : NH_GOLDEN)),
+                     scursed ? "\8cõ\82é\82Ü\82¾\82ç\82Ì" : "\82ä\82ç\82ß\82­",
+                     scursed ? "\8bP\82«"
+                             : "\83o\83\8a\83A");
+#endif
             }
             if (new_erodeproof && (otmp->oeroded || otmp->oeroded2)) {
                 otmp->oeroded = otmp->oeroded2 = 0;
+#if 0 /*JP*/
                 pline("%s as good as new!",
                       Yobjnam2(otmp, Blind ? "feel" : "look"));
+#else
+                Your("%s\82Í\90V\95i\93¯\97l\82É\82È\82Á\82½\81I",
+                     xname(otmp));
+#endif
             }
             if (old_erodeproof && !new_erodeproof) {
                 /* restore old_erodeproof before shop charges */
@@ -1040,12 +1199,18 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         s = scursed ? -otmp->spe : otmp->spe;
         if (s > (special_armor ? 5 : 3) && rn2(s)) {
             otmp->in_use = TRUE;
+#if 0 /*JP*/
             pline("%s violently %s%s%s for a while, then %s.", Yname2(otmp),
                   otense(otmp, Blind ? "vibrate" : "glow"),
                   (!Blind && !same_color) ? " " : "",
                   (Blind || same_color) ? "" : hcolor(scursed ? NH_BLACK
                                                               : NH_SILVER),
                   otense(otmp, "evaporate"));
+#else
+            Your("%s\82Í\82µ\82Î\82ç\82­\82Ì\8aÔ\8c\83\82µ\82­%s%s\81C\8fö\94­\82µ\82½\81D", xname(otmp),
+                 (Blind || same_color) ? "" : jconj_adj(hcolor(scursed ? NH_BLACK : NH_SILVER)),
+                 Blind ? "\90U\93®\82µ" : "\8bP\82«");
+#endif
             remove_worn_item(otmp, FALSE);
             useup(otmp);
             break;
@@ -1055,7 +1220,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
                                : sblessed ? rnd(3 - otmp->spe / 3) : 1;
         if (s >= 0 && Is_dragon_scales(otmp)) {
             /* dragon scales get turned into dragon scale mail */
+/*JP
             pline("%s merges and hardens!", Yname2(otmp));
+*/
+            Your("%s\82Í\97Z\8d\87\82µ\8cÅ\82­\82È\82Á\82½\81I", xname(otmp));
             setworn((struct obj *) 0, W_ARM);
             /* assumes same order */
             otmp->otyp += GRAY_DRAGON_SCALE_MAIL - GRAY_DRAGON_SCALES;
@@ -1071,6 +1239,7 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
                 alter_cost(otmp, 0L); /* shop bill */
             break;
         }
+#if 0 /*JP*/
         pline("%s %s%s%s%s for a %s.", Yname2(otmp),
               s == 0 ? "violently " : "",
               otense(otmp, Blind ? "vibrate" : "glow"),
@@ -1078,6 +1247,14 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
               (Blind || same_color) ? ""
                                     : hcolor(scursed ? NH_BLACK : NH_SILVER),
               (s * s > 1) ? "while" : "moment");
+#else
+        Your("%s\82Í%s%s%s%s\81D", xname(otmp),
+             (s * s > 1) ? "\82µ\82Î\82ç\82­\82Ì\8aÔ" : "\88ê\8fu",
+             s == 0 ? "\8c\83\82µ\82­" : "",
+             (Blind || same_color) ? ""
+                                   : jconj_adj(hcolor(sobj->cursed ? NH_BLACK : NH_SILVER)),
+             Blind ? "\90U\93®\82µ\82½" : "\8bP\82¢\82½");
+#endif
         /* [this cost handling will need updating if shop pricing is
            ever changed to care about curse/bless status of armor] */
         if (s < 0)
@@ -1097,15 +1274,23 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
 
         if ((otmp->spe > (special_armor ? 5 : 3))
             && (special_armor || !rn2(7)))
+#if 0 /*JP*/
             pline("%s %s.", Yobjnam2(otmp, "suddenly vibrate"),
                   Blind ? "again" : "unexpectedly");
+#else
+            Your("%s\82Í\93Ë\91R%s\90U\93®\82µ\82½\81D", xname(otmp),
+                 Blind ? "\82Ü\82½" : "\8ev\82¢\82à\82æ\82ç\82¸");
+#endif
         break;
     }
     case SCR_DESTROY_ARMOR: {
         otmp = some_armor(&youmonst);
         if (confused) {
             if (!otmp) {
+/*JP
                 strange_feeling(sobj, "Your bones itch.");
+*/
+                strange_feeling(sobj, "\8d\9c\82ª\83\80\83Y\83\80\83Y\82·\82é\81D");
                 sobj = 0; /* useup() in strange_feeling() */
                 exercise(A_STR, FALSE);
                 exercise(A_CON, FALSE);
@@ -1125,7 +1310,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         }
         if (!scursed || !otmp || !otmp->cursed) {
             if (!destroy_arm(otmp)) {
+/*JP
                 strange_feeling(sobj, "Your skin itches.");
+*/
+                strange_feeling(sobj,"\94ç\95\86\82ª\83\80\83Y\83\80\83Y\82·\82é\81D");
                 sobj = 0; /* useup() in strange_feeling() */
                 exercise(A_STR, FALSE);
                 exercise(A_CON, FALSE);
@@ -1133,7 +1321,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             } else
                 known = TRUE;
         } else { /* armor and scroll both cursed */
+/*JP
             pline("%s.", Yobjnam2(otmp, "vibrate"));
+*/
+            Your("%s\82Í\90U\93®\82µ\82½\81D", xname(otmp));
             if (otmp->spe >= -6) {
                 otmp->spe += -1;
                 adj_abon(otmp, -1);
@@ -1145,35 +1336,69 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
     case SPE_CONFUSE_MONSTER:
         if (youmonst.data->mlet != S_HUMAN || scursed) {
             if (!HConfusion)
+/*JP
+                You_feel("confused.");
+*/
                 You_feel("confused.");
             make_confused(HConfusion + rnd(100), FALSE);
         } else if (confused) {
             if (!sblessed) {
+#if 0 /*JP*/
                 Your("%s begin to %s%s.", makeplural(body_part(HAND)),
                      Blind ? "tingle" : "glow ",
                      Blind ? "" : hcolor(NH_PURPLE));
+#else
+                Your("%s\82Í%s%s\82Í\82\82ß\82½\81D", makeplural(body_part(HAND)),
+                     Blind ? "" : jconj_adj(hcolor(NH_PURPLE)),
+                     Blind ? "\83q\83\8a\83q\83\8a\82µ" : "\8bP\82«");
+#endif
                 make_confused(HConfusion + rnd(100), FALSE);
             } else {
+#if 0 /*JP*/
                 pline("A %s%s surrounds your %s.",
                       Blind ? "" : hcolor(NH_RED),
                       Blind ? "faint buzz" : " glow", body_part(HEAD));
+#else
+                pline("%s%s\82ª\82 \82È\82½\82Ì%s\82ð\8eæ\82è\8aª\82¢\82½\81D",
+                      Blind ? "" : jconj_adj(hcolor(NH_RED)),
+                      Blind ? "\82©\82·\82©\82É\83u\81[\83\93\82Æ\96Â\82é\82à\82Ì" : "\8bP\82­\82à\82Ì",
+                      body_part(HEAD));
+#endif
                 make_confused(0L, TRUE);
             }
         } else {
             if (!sblessed) {
+#if 0 /*JP*/
                 Your("%s%s %s%s.", makeplural(body_part(HAND)),
                      Blind ? "" : " begin to glow",
                      Blind ? (const char *) "tingle" : hcolor(NH_RED),
                      u.umconf ? " even more" : "");
+#else
+                Your("%s\82Í%s%s%s\81D", makeplural(body_part(HAND)),
+                     u.umconf ? "\8f­\82µ" : "",
+                     Blind ? (const char *) "\83q\83\8a\83q\83\8a\82µ\82½" : jconj_adj(hcolor(NH_RED)),
+                     Blind ? "" : "\8bP\82«\82Í\82\82ß\82½");
+#endif
                 u.umconf++;
             } else {
                 if (Blind)
+#if 0 /*JP*/
                     Your("%s tingle %s sharply.", makeplural(body_part(HAND)),
                          u.umconf ? "even more" : "very");
+#else
+                    Your("%s\82Í%s\83s\83\8a\83s\83\8a\82·\82é\81D", makeplural(body_part(HAND)),
+                         u.umconf ? "\8f­\82µ" : "\82Æ\82Ä\82à");
+#endif
                 else
+#if 0 /*JP*/
                     Your("%s glow a%s brilliant %s.",
                          makeplural(body_part(HAND)),
                          u.umconf ? "n even more" : "", hcolor(NH_RED));
+#else
+                    Your("%s\82Í%s%s\96¾\82é\82­\8bP\82¢\82½\81D",
+                         makeplural(body_part(HAND)),
+                         u.umconf ? "\8f­\82µ" : "", jconj_adj(hcolor(NH_RED)));
+#endif
                 /* after a while, repeated uses become less effective */
                 if (u.umconf >= 40)
                     u.umconf++;
@@ -1201,30 +1426,53 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             }
         }
         if (otyp == SCR_SCARE_MONSTER || !ct)
+#if 0 /*JP*/
             You_hear("%s %s.", (confused || scursed) ? "sad wailing"
                                                      : "maniacal laughter",
                      !ct ? "in the distance" : "close by");
+#else
+            You_hear("\89\93\82­\82Å%s\82ð\95·\82¢\82½\81D",
+                     (confused || sobj->cursed) ? "\94ß\82µ\82­\8b\83\82«\8b©\82Ô\90º"
+                                                : "\8b\82Á\82½\82æ\82¤\82É\8fÎ\82¤\90º");
+#endif
         break;
     }
     case SCR_BLANK_PAPER:
         if (Blind)
+/*JP
             You("don't remember there being any magic words on this scroll.");
+*/
+            You("\8aª\95¨\82É\8eô\95\82ª\8f\91\82¢\82Ä\82È\82©\82Á\82½\82±\82Æ\82ð\8ev\82¢\82¾\82µ\82½\81D");
         else
+/*JP
             pline("This scroll seems to be blank.");
+*/
+            pline("\82±\82Ì\8aª\95¨\82É\82Í\89½\82à\8f\91\82¢\82Ä\82È\82¢\82æ\82¤\82É\8c©\82¦\82é\81D");
         known = TRUE;
         break;
     case SCR_REMOVE_CURSE:
     case SPE_REMOVE_CURSE: {
         register struct obj *obj;
 
+#if 0 /*JP*/
         You_feel(!Hallucination
                      ? (!confused ? "like someone is helping you."
                                   : "like you need some help.")
                      : (!confused ? "in touch with the Universal Oneness."
                                   : "the power of the Force against you!"));
+#else
+        You(!Hallucination
+            ? (!confused ? "\92N\82©\82ª\82 \82È\82½\82ð\8f\95\82¯\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                         : "\8e©\95ª\82ª\8f\95\82¯\82ð\95K\97v\82Æ\82µ\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D")
+            : (!confused ? "\89F\92\88\92²\98a\82Ì\8c´\97\9d\82É\90G\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D"
+                         : "\83t\83H\81[\83X\82Ì\97Í\82ª\82 \82È\82½\82É\82Í\82Þ\82©\82Á\82Ä\82¢\82é\82æ\82¤\82É\8a´\82\82½\81I"));
+#endif
 
         if (scursed) {
+/*JP
             pline_The("scroll disintegrates.");
+*/
+            pline("\8aª\95¨\82Í\95²\81X\82É\82È\82Á\82½\81D");
         } else {
             for (obj = invent; obj; obj = obj->nobj) {
                 long wornmask;
@@ -1285,7 +1533,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             unpunish();
         if (u.utrap && u.utraptype == TT_BURIEDBALL) {
             buried_ball_to_freedom();
+/*JP
             pline_The("clasp on your %s vanishes.", body_part(LEG));
+*/
+            pline_The("%s\82Ì\8bà\8bï\82ª\8fÁ\82¦\82½\81D", body_part(LEG));
         }
         update_inventory();
         break;
@@ -1310,18 +1561,32 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             uwep->oerodeproof = 0; /* for messages */
             if (Blind) {
                 uwep->rknown = FALSE;
+/*JP
                 Your("weapon feels warm for a moment.");
+*/
+                pline("\95\90\8aí\82ª\88ê\8fu\92g\82©\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             } else {
                 uwep->rknown = TRUE;
+#if 0 /*JP*/
                 pline("%s covered by a %s %s %s!", Yobjnam2(uwep, "are"),
                       scursed ? "mottled" : "shimmering",
                       hcolor(scursed ? NH_PURPLE : NH_GOLDEN),
                       scursed ? "glow" : "shield");
+#else
+                Your("%s\82Í%s%s%s\82Å\95¢\82í\82ê\82½\81I", xname(uwep),
+                     jconj_adj(hcolor(scursed ? NH_PURPLE : NH_GOLDEN)),
+                     scursed ? "\8cõ\82é\82Ü\82¾\82ç\82Ì" : "\82ä\82ç\82ß\82­",
+                     scursed ? "\8bP\82«" : "\83o\83\8a\83A");
+#endif
             }
             if (new_erodeproof && (uwep->oeroded || uwep->oeroded2)) {
                 uwep->oeroded = uwep->oeroded2 = 0;
+#if 0 /*JP*/
                 pline("%s as good as new!",
                       Yobjnam2(uwep, Blind ? "feel" : "look"));
+#else
+                pline("%s\82Í\90V\95i\93¯\97l\82É\82È\82Á\82½\81I", xname(uwep));
+#endif
             }
             if (old_erodeproof && !new_erodeproof) {
                 /* restore old_erodeproof before shop charges */
@@ -1381,7 +1646,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
     } break;
     case SCR_GENOCIDE:
         if (!already_known)
+/*JP
             You("have found a scroll of genocide!");
+*/
+            pline("\82±\82ê\82Í\8bs\8eE\82Ì\8aª\95¨\82¾\81I");
         known = TRUE;
         if (sblessed)
             do_class_genocide();
@@ -1429,11 +1697,17 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         useup(sobj);
         sobj = 0; /* it's gone */
         if (confused)
+/*JP
             You("identify this as an identify scroll.");
+*/
+            You("\82±\82ê\82Í\8e¯\95Ê\82Ì\8aª\95¨\82¾\82Æ\8e¯\95Ê\82µ\82½\81D");
         else if (!already_known || !invent)
             /* force feedback now if invent became
                empty after using up this scroll */
+/*JP
             pline("This is an identify scroll.");
+*/
+            pline("\82±\82ê\82Í\8e¯\95Ê\82Ì\8aª\95¨\82¾\81D");
         if (!already_known)
             (void) learnscrolltyp(SCR_IDENTIFY);
         /*FALLTHRU*/
@@ -1457,10 +1731,16 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
     case SCR_CHARGING:
         if (confused) {
             if (scursed) {
+/*JP
                 You_feel("discharged.");
+*/
+                You_feel("\95ú\8fo\82³\82ê\82½\8bC\82ª\82·\82é\81D");
                 u.uen = 0;
             } else {
+/*JP
                 You_feel("charged up!");
+*/
+                You_feel("\8f[\93U\82³\82ê\82½\82æ\82¤\82È\8bC\82ª\82·\82é\81I");
                 u.uen += d(sblessed ? 6 : 4, 4);
                 if (u.uen > u.uenmax) /* if current energy is already at   */
                     u.uenmax = u.uen; /* or near maximum, increase maximum */
@@ -1472,7 +1752,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         }
         /* known = TRUE; -- handled inline here */
         if (!already_known) {
+/*JP
             pline("This is a charging scroll.");
+*/
+            pline("\82±\82ê\82Í\8f[\93U\82Ì\8aª\95¨\82¾\81I");
             learnscroll(sobj);
         }
         /* use it up now to prevent it from showing in the
@@ -1486,11 +1769,20 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         break;
     case SCR_MAGIC_MAPPING:
         if (level.flags.nommap) {
+/*JP
             Your("mind is filled with crazy lines!");
+*/
+            Your("\90S\82É\82½\82¾\82È\82ç\82Ê\90ü\81I\90ü\81I\90ü\81I\82ª\95\82\82Ñ\82 \82ª\82Á\82½\81I");
             if (Hallucination)
+/*JP
                 pline("Wow!  Modern art.");
+*/
+                pline("\83\8f\83H\81I\83\82\83_\83\93\83A\81[\83g\82¾\81I");
             else
+/*JP
                 Your("%s spins in bewilderment.", body_part(HEAD));
+*/
+                You("\93\96\98f\82µ\82Ä\96Ú\82ª\82Ü\82í\82Á\82½\81D");
             make_confused(HConfusion + rnd(30), FALSE);
             break;
         }
@@ -1506,19 +1798,29 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         known = TRUE;
     case SPE_MAGIC_MAPPING:
         if (level.flags.nommap) {
+#if 0 /*JP*/
             Your("%s spins as %s blocks the spell!", body_part(HEAD),
                  something);
+#else
+            You("\89½\82©\82ª\8eô\95\82ð\82³\82¦\82¬\82è\81C\96Ú\82ª\82Ü\82í\82Á\82½\81I");
+#endif
             make_confused(HConfusion + rnd(30), FALSE);
             break;
         }
+/*JP
         pline("A map coalesces in your mind!");
+*/
+        pline("\92n\90}\82ª\82 \82È\82½\82Ì\90S\82É\97Z\8d\87\82µ\82½\81I");
         cval = (scursed && !confused);
         if (cval)
             HConfusion = 1; /* to screw up map */
         do_mapping();
         if (cval) {
             HConfusion = 0; /* restore */
+/*JP
             pline("Unfortunately, you can't grasp the details.");
+*/
+            pline("\8ec\94O\82È\82ª\82ç\81C\82 \82È\82½\82Í\8fÚ\8d×\82ð\93¾\82é\82±\82Æ\82ª\82Å\82«\82È\82©\82Á\82½\81D");
         }
         break;
     case SCR_AMNESIA:
@@ -1526,14 +1828,26 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         forget((!sblessed ? ALL_SPELLS : 0)
                | (!confused || scursed ? ALL_MAP : 0));
         if (Hallucination) /* Ommmmmm! */
+/*JP
             Your("mind releases itself from mundane concerns.");
+*/
+            Your("\90S\82Í\95½\96}\82È\97\98\8aQ\8aÖ\8cW\82©\82ç\89ð\95ú\82³\82ê\82½\81D");
         else if (!strncmpi(plname, "Maud", 4))
             pline(
+/*JP
           "As your mind turns inward on itself, you forget everything else.");
+*/
+          "\82 \82È\82½\82Ì\90S\82Í\93à\91¤\82É\8cü\82«\81C\91S\82Ä\82ð\96Y\82ê\82Ä\82µ\82Ü\82Á\82½\81D");
         else if (rn2(2))
+/*JP
             pline("Who was that Maud person anyway?");
+*/
+            pline("Maud\82Á\82Ä\96º\82Í\82¢\82Á\82½\82¢\92N\82¾\82¢\81H");
         else
+/*JP
             pline("Thinking of Maud you forget everything else.");
+*/
+            pline("Maud\82ð\8dl\82¦\82é\82±\82Æ\88È\8aO\81C\82 \82È\82½\82Í\91S\82Ä\82ð\96Y\82ê\82Ä\82µ\82Ü\82Á\82½\81D");
         exercise(A_WIS, FALSE);
         break;
     case SCR_FIRE:
@@ -1546,22 +1860,40 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
             if (Fire_resistance) {
                 shieldeff(u.ux, u.uy);
                 if (!Blind)
+/*JP
                     pline("Oh, look, what a pretty fire in your %s.",
+*/
+                    pline("\82í\82\9f\82²\82ç\82ñ\81D\8f¬\82³\82È\89Î\82ª%s\82É\82 \82é\81D",
                           makeplural(body_part(HAND)));
                 else
+/*JP
                     You_feel("a pleasant warmth in your %s.",
+*/
+                    You_feel("%s\82Ì\92\86\82É\89õ\93K\82È\92g\82©\82³\82ð\8a´\82\82½\81D",
                              makeplural(body_part(HAND)));
             } else {
+/*JP
                 pline_The("scroll catches fire and you burn your %s.",
+*/
+                pline("\8aª\95¨\82É\89Î\82ª\94R\82¦\82¤\82Â\82è\81C\82 \82È\82½\82Ì%s\82ð\8fÄ\82¢\82½\81D",
                           makeplural(body_part(HAND)));
+/*JP
                 losehp(1, "scroll of fire", KILLED_BY_AN);
+*/
+                losehp(1, "\89\8a\82Ì\8aª\95¨\82Å", KILLED_BY_AN);
             }
             break;
         }
         if (Underwater) {
+/*JP
             pline_The("water around you vaporizes violently!");
+*/
+            pline("\82 \82È\82½\82Ì\89ñ\82è\82Ì\90\85\82Í\95¦\93«\82µ\82½\81I");
         } else {
+/*JP
             pline_The("scroll erupts in a tower of flame!");
+*/
+            pline("\8aª\95¨\82©\82ç\89Î\92\8c\82ª\97§\82¿\8f¸\82Á\82½\81I");
             iflags.last_msg = PLNMSG_TOWER_OF_FLAME; /* for explode() */
             burn_away_slime();
         }
@@ -1577,10 +1909,18 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
 
             /* Identify the scroll */
             if (u.uswallow)
+/*JP
                 You_hear("rumbling.");
+*/
+                You_hear("\83S\83\8d\83S\83\8d\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             else
+#if 0 /*JP*/
                 pline_The("%s rumbles %s you!", ceiling(u.ux, u.uy),
                           sblessed ? "around" : "above");
+#else
+                pline("\82 \82È\82½\82Ì%s\82Ì%s\82©\82ç\83S\83\8d\83S\83\8d\82Æ\89¹\82ª\95·\82±\82¦\82Ä\82«\82½\81I",
+                      sblessed ? "\82Ü\82í\82è" : "\90^\8fã", ceiling(u.ux,u.uy));
+#endif
             known = 1;
             sokoban_guilt();
 
@@ -1608,7 +1948,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
     case SCR_PUNISHMENT:
         known = TRUE;
         if (confused || sblessed) {
+/*JP
             You_feel("guilty.");
+*/
+            You("\8dß\82ð\8a´\82\82½\81D");
             break;
         }
         punish(sobj);
@@ -1617,14 +1960,24 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
         coord cc;
 
         if (!already_known)
+/*JP
             You("have found a scroll of stinking cloud!");
+*/
+            You("\88«\8fL\89_\82Ì\8aª\95¨\82ð\94­\8c©\82µ\82½\81I");
         known = TRUE;
+#if 0 /*JP*/
         pline("Where do you want to center the %scloud?",
               already_known ? "stinking " : "");
+#else
+        pline("\89_\82Ì\92\86\90S\82ð\82Ç\82±\82É\82µ\82Ü\82·\82©\81H");
+#endif
         cc.x = u.ux;
         cc.y = u.uy;
         getpos_sethilite(display_stinking_cloud_positions);
+/*JP
         if (getpos(&cc, TRUE, "the desired position") < 0) {
+*/
+        if (getpos(&cc, TRUE, "\91_\82¤\8fê\8f\8a") < 0) {
             pline1(Never_mind);
             break;
         }
@@ -1660,27 +2013,42 @@ boolean confused, helmet_protects, byu, skip_uswallow;
     otmp2->owt = weight(otmp2);
     if (!amorphous(youmonst.data) && !Passes_walls
         && !noncorporeal(youmonst.data) && !unsolid(youmonst.data)) {
+/*JP
         You("are hit by %s!", doname(otmp2));
+*/
+        pline("%s\82ª\96½\92\86\82µ\82½\81I", doname(otmp2));
         dmg = dmgval(otmp2, &youmonst) * otmp2->quan;
         if (uarmh && helmet_protects) {
             if (is_metallic(uarmh)) {
+/*JP
                 pline("Fortunately, you are wearing a hard helmet.");
+*/
+                pline("\8dK\89^\82É\82à\81C\82 \82È\82½\82Í\8cÅ\82¢\8a\95\82ð\90g\82É\82Â\82¯\82Ä\82¢\82é\81D");
                 if (dmg > 2)
                     dmg = 2;
             } else if (flags.verbose) {
+/*JP
                 pline("%s does not protect you.", Yname2(uarmh));
+*/
+                Your("%s\82Å\82Í\8eç\82ê\82È\82¢\81D", xname(uarmh));
             }
         }
     } else
         dmg = 0;
     /* Must be before the losehp(), for bones files */
+/*JP
     if (!flooreffects(otmp2, u.ux, u.uy, "fall")) {
+*/
+    if (!flooreffects(otmp2, u.ux, u.uy, "\97\8e\82¿\82é")) {
         place_object(otmp2, u.ux, u.uy);
         stackobj(otmp2);
         newsym(u.ux, u.uy);
     }
     if (dmg)
+/*JP
         losehp(Maybe_Half_Phys(dmg), "scroll of earth", KILLED_BY_AN);
+*/
+        losehp(Maybe_Half_Phys(dmg), "\91å\92n\82Ì\8aª\95¨\82Å", KILLED_BY_AN);
 }
 
 boolean
@@ -1706,7 +2074,10 @@ boolean confused, byu;
         int mdmg;
 
         if (cansee(mtmp->mx, mtmp->my)) {
+/*JP
             pline("%s is hit by %s!", Monnam(mtmp), doname(otmp2));
+*/
+            pline("%s\82ª%s\82É\96½\92\86\82µ\82½\81I", doname(otmp2), Monnam(mtmp));
             if (mtmp->minvis && !canspotmon(mtmp))
                 map_invisible(mtmp->mx, mtmp->my);
         } else if (u.uswallow && mtmp == u.ustuck)
@@ -1718,16 +2089,27 @@ boolean confused, byu;
         if (helmet) {
             if (is_metallic(helmet)) {
                 if (canspotmon(mtmp))
+/*JP
                     pline("Fortunately, %s is wearing a hard helmet.",
+*/
+                    pline("\8dK\89^\82É\82à\81C%s\82Í\8cÅ\82¢\8a\95\82ð\90g\82É\82Â\82¯\82Ä\82¢\82é\81D",
                           mon_nam(mtmp));
                 else if (!Deaf)
+/*JP
                     You_hear("a clanging sound.");
+*/
+                    You_hear("\83K\83\89\83\93\83K\83\89\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                 if (mdmg > 2)
                     mdmg = 2;
             } else {
                 if (canspotmon(mtmp))
+#if 0 /*JP*/
                     pline("%s's %s does not protect %s.", Monnam(mtmp),
                           xname(helmet), mhim(mtmp));
+#else
+                    pline("%s\82Ì%s\82Å\82Í\8eç\82ê\82È\82¢\81D", Monnam(mtmp),
+                          xname(helmet));
+#endif
             }
         }
         mtmp->mhp -= mdmg;
@@ -1746,7 +2128,10 @@ boolean confused, byu;
         return 1;
     }
     /* Drop the rock/boulder to the floor */
+/*JP
     if (!flooreffects(otmp2, x, y, "fall")) {
+*/
+    if (!flooreffects(otmp2, x, y, "\97\8e\82¿\82é")) {
         place_object(otmp2, x, y);
         stackobj(otmp2);
         newsym(x, y); /* map the rock */
@@ -1760,7 +2145,10 @@ wand_explode(obj, chg)
 struct obj *obj;
 int chg; /* recharging */
 {
+/*JP
     const char *expl = !chg ? "suddenly" : "vibrates violently and";
+*/
+    const char *expl = !chg ? "\93Ë\91R" : "\8c\83\82µ\82­\90U\93®\82µ\81C";
     int dmg, n, k;
 
     /* number of damage dice */
@@ -1796,8 +2184,15 @@ int chg; /* recharging */
     /* inflict damage and destroy the wand */
     dmg = d(n, k);
     obj->in_use = TRUE; /* in case losehp() is fatal (or --More--^C) */
+#if 0 /*JP*/
     pline("%s %s explodes!", Yname2(obj), expl);
+#else
+    pline("%s\82Í%s\94\9a\94­\82µ\82½\81I", xname(obj), expl);
+#endif
+/*JP
     losehp(Maybe_Half_Phys(dmg), "exploding wand", KILLED_BY_AN);
+*/
+    losehp(Maybe_Half_Phys(dmg), "\8fñ\82Ì\94\9a\94­\82Å", KILLED_BY_AN);
     useup(obj);
     /* obscure side-effect */
     exercise(A_STR, FALSE);
@@ -1850,13 +2245,22 @@ struct obj *obj;
 
         if (!Blind) {
             if (u.uswallow) {
+/*JP
                 pline("It seems even darker in here than before.");
+*/
+                pline("\91O\82æ\82è\88Ã\82­\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81D");
             } else {
                 if (uwep && artifact_light(uwep) && uwep->lamplit)
+/*JP
                     pline("Suddenly, the only light left comes from %s!",
+*/
+                    pline("\93Ë\91R\81C\96¾\82©\82è\82ª%s\82¾\82¯\82É\82È\82Á\82½\81I",
                           the(xname(uwep)));
                 else
+/*JP
                     You("are surrounded by darkness!");
+*/
+                    You("\88Ã\88Å\82É\95¢\82í\82ê\82½\81I");
             }
         }
 
@@ -1869,14 +2273,28 @@ struct obj *obj;
             if (Blind)
                 ; /* no feedback */
             else if (is_animal(u.ustuck->data))
+#if 0 /*JP*/
                 pline("%s %s is lit.", s_suffix(Monnam(u.ustuck)),
                       mbodypart(u.ustuck, STOMACH));
+#else
+                pline("%s\82Ì%s\82Í\96¾\82é\82­\82È\82Á\82½\81D", Monnam(u.ustuck),
+                      mbodypart(u.ustuck, STOMACH));
+#endif
             else if (is_whirly(u.ustuck->data))
+/*JP
                 pline("%s shines briefly.", Monnam(u.ustuck));
+*/
+                pline("%s\82Í\82¿\82å\82Á\82Æ\8bP\82¢\82½\81D", Monnam(u.ustuck));
             else
+/*JP
                 pline("%s glistens.", Monnam(u.ustuck));
+*/
+                pline("%s\82Í\82«\82ç\82«\82ç\8bP\82¢\82½\81D", Monnam(u.ustuck));
         } else if (!Blind)
+/*JP
             pline("A lit field surrounds you!");
+*/
+            pline("\93\94\82è\82ª\82 \82È\82½\82ð\8eæ\82è\88Í\82ñ\82¾\81I");
     }
 
     /* No-op when swallowed or in water */
@@ -1954,12 +2372,20 @@ do_class_genocide()
             return;
         }
         do {
+/*JP
             getlin("What class of monsters do you wish to genocide?", buf);
+*/
+            getlin("\82Ç\82Ì\83N\83\89\83X\82É\91®\82·\82é\89ö\95¨\82ð\8bs\8eE\82µ\82Ü\82·\82©\81H[\95\8e\9a\82ð\93ü\82ê\82Ä\82Ë]", buf);
             (void) mungspaces(buf);
         } while (!*buf);
         /* choosing "none" preserves genocideless conduct */
+#if 0 /*JP*/
         if (*buf == '\033' || !strcmpi(buf, "none")
             || !strcmpi(buf, "nothing"))
+#else
+        if (*buf == '\033' || !strcmpi(buf, "\82È\82µ")
+            || !strcmpi(buf, "\96³\82µ"))
+#endif
             return;
 
         class = name_to_monclass(buf, (int *) 0);
@@ -1979,9 +2405,15 @@ do_class_genocide()
         if (!goodcnt && class != mons[urole.malenum].mlet
             && class != mons[urace.malenum].mlet) {
             if (gonecnt)
+/*JP
                 pline("All such monsters are already nonexistent.");
+*/
+                pline("\82»\82Ì\89ö\95¨\82Í\82à\82¤\82¢\82È\82¢\81D");
             else if (immunecnt || class == S_invisible)
+/*JP
                 You("aren't permitted to genocide such monsters.");
+*/
+                You("\82»\82Ì\89ö\95¨\82ð\8bs\8eE\82·\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
             else if (wizard && buf[0] == '*') {
                 register struct monst *mtmp, *mtmp2;
 
@@ -1993,11 +2425,18 @@ do_class_genocide()
                     mongone(mtmp);
                     gonecnt++;
                 }
+/*JP
                 pline("Eliminated %d monster%s.", gonecnt, plur(gonecnt));
+*/
+                pline("%d\82Ì\89ö\95¨\82ð\8f\9c\82¢\82½\81D", gonecnt);
                 return;
             } else
+#if 0 /*JP*/
                 pline("That %s does not represent any monster.",
                       strlen(buf) == 1 ? "symbol" : "response");
+#else
+                pline("\82»\82Ì\82æ\82¤\82È\89ö\95¨\82Í\82¢\82È\82¢\81D");
+#endif
             continue;
         }
 
@@ -2019,12 +2458,18 @@ do_class_genocide()
                     reset_rndmonst(i);
                     kill_genocided_monsters();
                     update_inventory(); /* eggs & tins */
+/*JP
                     pline("Wiped out all %s.", nam);
+*/
+                    pline("%s\82ð\91S\82Ä\94r\8f\9c\82µ\82½\81D", nam);
                     if (Upolyd && i == u.umonnum) {
                         u.mh = -1;
                         if (Unchanging) {
                             if (!feel_dead++)
+/*JP
                                 You("die.");
+*/
+                                You("\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
                             /* finish genociding this class of
                                monsters before ultimately dying */
                             gameover = TRUE;
@@ -2038,16 +2483,25 @@ do_class_genocide()
                         u.uhp = -1;
                         if (Upolyd) {
                             if (!feel_dead++)
+/*JP
                                 You_feel("dead inside.");
+*/
+                                You("\8d°\82ª\8e\80\82ñ\82¾\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
                         } else {
                             if (!feel_dead++)
+/*JP
                                 You("die.");
+*/
+                                You("\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
                             gameover = TRUE;
                         }
                     }
                 } else if (mvitals[i].mvflags & G_GENOD) {
                     if (!gameover)
+/*JP
                         pline("All %s are already nonexistent.", nam);
+*/
+                        pline("%s\82Í\8aù\82É\82¢\82È\82¢\81D", nam);
                 } else if (!gameover) {
                     /* suppress feedback about quest beings except
                        for those applicable to our own role */
@@ -2069,16 +2523,24 @@ do_class_genocide()
                         if (i == PM_HIGH_PRIEST)
                             uniq = FALSE;
 
+#if 0 /*JP*/
                         You("aren't permitted to genocide %s%s.",
                             (uniq && !named) ? "the " : "",
                             (uniq || named) ? mons[i].mname : nam);
+#else
+                        You("%s\82ð\8bs\8eE\82Å\82«\82È\82¢\81D",
+                            (uniq || named) ? mons[i].mname : nam);
+#endif
                     }
                 }
             }
         }
         if (gameover || u.uhp == -1) {
             killer.format = KILLED_BY_AN;
+/*JP
             Strcpy(killer.name, "scroll of genocide");
+*/
+            Strcpy(killer.name, "\8bs\8eE\82Ì\8aª\95¨\82Å");
             if (gameover)
                 done(GENOCIDED);
         }
@@ -2114,11 +2576,17 @@ int how;
                 pline1(thats_enough_tries);
                 return;
             }
+/*JP
             getlin("What monster do you want to genocide? [type the name]",
+*/
+            getlin("\82Ç\82Ì\89ö\95¨\82ð\8bs\8eE\82µ\82Ü\82·\82©\81H[\96¼\91O\82ð\93ü\82ê\82Ä\82Ë]",
                    buf);
             (void) mungspaces(buf);
             /* choosing "none" preserves genocideless conduct */
+/*JP
             if (!strcmpi(buf, "none") || !strcmpi(buf, "nothing")) {
+*/
+            if (!strcmpi(buf, "\82È\82µ") || !strcmpi(buf, "\96³\82µ")) {
                 /* ... but no free pass if cursed */
                 if (!(how & REALLY)) {
                     ptr = rndmonst();
@@ -2132,8 +2600,13 @@ int how;
 
             mndx = name_to_mon(buf);
             if (mndx == NON_PM || (mvitals[mndx].mvflags & G_GENOD)) {
+#if 0 /*JP*/
                 pline("Such creatures %s exist in this world.",
                       (mndx == NON_PM) ? "do not" : "no longer");
+#else
+                pline("\82»\82Ì\82æ\82¤\82È\90\82«\95¨\82Í%s\82±\82Ì\90¢\8aE\82É\91\8dÝ\82µ\82È\82¢\81D",
+                      (mndx == NON_PM) ? "" : "\82à\82Í\82â");
+#endif
                 continue;
             }
             ptr = &mons[mndx];
@@ -2155,8 +2628,14 @@ int how;
                      * circumstances */
                     if (flags.verbose)
                         pline(
+/*JP
                             "A thunderous voice booms through the caverns:");
+*/
+                            "\97\8b\82Ì\82æ\82¤\82È\90º\82ª\93´\8cA\82É\8b¿\82¢\82½\81F");
+/*JP
                     verbalize("No, mortal!  That will not be done.");
+*/
+                    pline("\81u\92è\96½\82Ì\8eÒ\82æ\81I\82»\82Ì\96]\82Ý\82Í\82©\82È\82¤\82Ü\82¢\81D\81v");
                 }
                 continue;
             }
@@ -2167,7 +2646,10 @@ int how;
         }
     }
 
+/*JP
     which = "all ";
+*/
+    which = "\91S\82Ä";
     if (Hallucination) {
         if (Upolyd)
             Strcpy(buf, youmonst.data->mname);
@@ -2179,13 +2661,20 @@ int how;
     } else {
         Strcpy(buf, ptr->mname); /* make sure we have standard singular */
         if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_PRIEST])
+/*JP
             which = !type_is_pname(ptr) ? "the " : "";
+*/
+            which = !type_is_pname(ptr) ? "" : "";
     }
     if (how & REALLY) {
         /* setting no-corpse affects wishing and random tin generation */
         mvitals[mndx].mvflags |= (G_GENOD | G_NOCORPSE);
+#if 0 /*JP*/
         pline("Wiped out %s%s.", which,
               (*which != 'a') ? buf : makeplural(buf));
+#else
+        pline("%s\82ð%s\88ê\91|\82µ\82½\81D", buf, which);
+#endif
 
         if (killplayer) {
             /* might need to wipe out dual role */
@@ -2201,14 +2690,23 @@ int how;
             u.uhp = -1;
             if (how & PLAYER) {
                 killer.format = KILLED_BY;
+/*JP
                 Strcpy(killer.name, "genocidal confusion");
+*/
+                Strcpy(killer.name, "\8d¬\97\90\82É\82æ\82é\8e©\8bs\93I\8bs\8eE\82Å");
             } else if (how & ONTHRONE) {
                 /* player selected while on a throne */
                 killer.format = KILLED_BY_AN;
+/*JP
                 Strcpy(killer.name, "imperious order");
+*/
+                Strcpy(killer.name, "\98ü\96\9d\82È\96½\97ß\82Å");
             } else { /* selected player deliberately, not confused */
                 killer.format = KILLED_BY_AN;
+/*JP
                 Strcpy(killer.name, "scroll of genocide");
+*/
+                Strcpy(killer.name, "\8bs\8eE\82Ì\8aª\95¨\82Å");
             }
 
             /* Polymorphed characters will die as soon as they're rehumanized.
@@ -2216,7 +2714,10 @@ int how;
             /* KMH -- Unchanging prevents rehumanization */
             if (Upolyd && ptr != youmonst.data) {
                 delayed_killer(POLYMORPH, killer.format, killer.name);
+/*JP
                 You_feel("dead inside.");
+*/
+                You("\8d°\82ª\8e\80\82ñ\82¾\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             } else
                 done(GENOCIDED);
         } else if (ptr == youmonst.data) {
@@ -2241,8 +2742,12 @@ int how;
             /* accumulated 'cnt' doesn't take groups into account;
                assume bringing in new mon(s) didn't remove any old ones */
             cnt = monster_census(FALSE) - census;
+#if 0 /*JP*/
             pline("Sent in %s%s.", (cnt > 1) ? "some " : "",
                   (cnt > 1) ? makeplural(buf) : an(buf));
+#else
+            pline("%s\82ª\91\97\82ç\82ê\82Ä\82«\82½\81D", buf);
+#endif
         } else
             pline1(nothing_happens);
     }
@@ -2257,16 +2762,25 @@ struct obj *sobj;
 
     /* KMH -- Punishment is still okay when you are riding */
     if (!reuse_ball)
+/*JP
         You("are being punished for your misbehavior!");
+*/
+        You("\95s\8dì\96@\82Ì\82½\82ß\94±\82ð\8eó\82¯\82½\81I");
     if (Punished) {
+/*JP
         Your("iron ball gets heavier.");
+*/
+        Your("\93S\8b\85\82Í\82³\82ç\82É\8fd\82­\82È\82Á\82½\81D");
         uball->owt += 160 * (1 + sobj->cursed);
         return;
     }
     if (amorphous(youmonst.data) || is_whirly(youmonst.data)
         || unsolid(youmonst.data)) {
         if (!reuse_ball) {
+/*JP
             pline("A ball and chain appears, then falls away.");
+*/
+            pline("\93S\8b\85\82Æ\8d½\82ª\8c»\82í\82ê\82½\82ª\81C\82·\82é\82Á\82Æ\94²\82¯\82½\81D");
             dropy(mkobj(BALL_CLASS, TRUE));
         } else {
             dropy(reuse_ball);
@@ -2363,23 +2877,44 @@ create_particular()
         monclass = MAXMCLASSES;
         which = urole.malenum; /* an arbitrary index into mons[] */
         maketame = makepeaceful = makehostile = FALSE;
+/*JP
         getlin("Create what kind of monster? [type the name or symbol]", buf);
+*/
+        getlin("\82Ç\82Ì\8eí\82Ì\89ö\95¨\82ð\8dì\82è\82Ü\82·\82©\81H[\96¼\91O\82ð\93ü\82ê\82Ä\82Ë]", buf);
         bufp = mungspaces(buf);
         if (*bufp == '\033')
             return FALSE;
         /* allow the initial disposition to be specified */
+#if 0 /*JP*/
         if (!strncmpi(bufp, "tame ", 5)) {
             bufp += 5;
+#else
+        if (!strncmpi(bufp, "\8eè\82È\82¸\82¯\82ç\82ê\82½", 14)) {
+            bufp += 14;
+#endif
             maketame = TRUE;
+#if 0 /*JP*/
         } else if (!strncmpi(bufp, "peaceful ", 9)) {
             bufp += 9;
+#else
+        } else if (!strncmpi(bufp, "\97F\8dD\93I\82È", 8)) {
+            bufp += 8;
+#endif
             makepeaceful = TRUE;
+#if 0 /*JP*/
         } else if (!strncmpi(bufp, "hostile ", 8)) {
             bufp += 8;
+#else
+        } else if (!strncmpi(bufp, "\93G\91Î\93I\82È", 8)) {
+            bufp += 8;
+#endif
             makehostile = TRUE;
         }
         /* decide whether a valid monster was chosen */
+/*JP
         if (wizard && (!strcmp(bufp, "*") || !strcmp(bufp, "random"))) {
+*/
+        if (wizard && (!strcmp(bufp, "*") || !strcmp(bufp, "\83\89\83\93\83_\83\80"))) {
             randmonst = TRUE;
             break;
         }
@@ -2395,7 +2930,10 @@ create_particular()
             break;
         }
         /* no good; try again... */
+/*JP
         pline("I've never heard of such monsters.");
+*/
+        pline("\82»\82Ì\82æ\82¤\82È\89ö\95¨\82Í\95·\82¢\82½\82±\82Æ\82ª\82È\82¢\81D");
     } while (--tryct > 0);
 
     if (!tryct) {
@@ -2405,8 +2943,13 @@ create_particular()
             firstchoice = which;
             if (cant_revive(&which, FALSE, (struct obj *) 0)) {
                 /* wizard mode can override handling of special monsters */
+#if 0 /*JP*/
                 Sprintf(buf, "Creating %s instead; force %s?",
                         mons[which].mname, mons[firstchoice].mname);
+#else
+                Sprintf(buf, "\91ã\82í\82è\82É%s\82ª\8dì\82ç\82ê\82Ü\82·\81G%s\82É\82·\82é\81H",
+                        mons[which].mname, mons[firstchoice].mname);
+#endif
                 if (yn(buf) == 'y')
                     which = firstchoice;
             }
index 6699716..8589100 100644 (file)
@@ -931,13 +931,26 @@ genericptr_t p2;
             make_blinded(1L, FALSE);
         }
         if (!Poison_resistance) {
+#if 0 /*JP*/
             pline("%s is burning your %s!", Something,
                   makeplural(body_part(LUNG)));
+#else
+            pline("\89½\82©\96­\82È\82à\82Ì\82ð\8bz\82¢\82±\82ñ\82¾\81I");
+#endif
+/*JP
             You("cough and spit blood!");
+*/
+            You("\8aP\82«\82±\82Ý\81C\8c\8c\82ð\93f\82¢\82½\81I");
+/*JP
             losehp(Maybe_Half_Phys(rnd(dam) + 5), "gas cloud", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(rnd(dam) + 5), "\83K\83X\89_\82Å", KILLED_BY_AN);
             return FALSE;
         } else {
+/*JP
             You("cough!");
+*/
+            You("\8aP\82«\82±\82ñ\82¾\81I");
             return FALSE;
         }
     } else { /* A monster is inside the cloud */
@@ -947,7 +960,10 @@ genericptr_t p2;
         if (!(nonliving(mtmp->data) || is_vampshifter(mtmp))
             && !breathless(mtmp->data)) {
             if (cansee(mtmp->mx, mtmp->my))
+/*JP
                 pline("%s coughs!", Monnam(mtmp));
+*/
+                pline("%s\82Í\8aP\82«\82±\82ñ\82¾\81I", Monnam(mtmp));
             if (heros_fault(reg))
                 setmangry(mtmp);
             if (haseyes(mtmp->data) && mtmp->mcansee) {
@@ -961,7 +977,10 @@ genericptr_t p2;
                 if (heros_fault(reg))
                     killed(mtmp);
                 else
+/*JP
                     monkilled(mtmp, "gas cloud", AD_DRST);
+*/
+                    monkilled(mtmp, "\83K\83X\89_", AD_DRST);
                 if (mtmp->mhp <= 0) { /* not lifesaved */
                     return TRUE;
                 }
index fdd76a0..d5d1d39 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h"
 #include "tcap.h" /* for TERMLIB and ASCIIGRAPH */
@@ -133,7 +138,10 @@ boolean quietly;
         otmp2 = otmp->nobj;
         if (otmp->in_use) {
             if (!quietly)
+/*JP
                 pline("Finishing off %s...", xname(otmp));
+*/
+                pline("%s\82ð\8eg\82¢\8fI\82¦\82½\81D\81D\81D", xname(otmp));
             useup(otmp);
         }
     }
@@ -526,7 +534,10 @@ unsigned int *stuckid, *steedid;
         && uid != (unsigned long) getuid()) { /* strange ... */
         /* for wizard mode, issue a reminder; for others, treat it
            as an attempt to cheat and refuse to restore this file */
+/*JP
         pline("Saved game was not yours.");
+*/
+        pline("\83Z\81[\83u\82³\82ê\82½\83Q\81[\83\80\82Í\82 \82È\82½\82Ì\82à\82Ì\82Å\82Í\82È\82¢\81D");
         if (!wizard)
             return FALSE;
     }
@@ -579,7 +590,11 @@ unsigned int *stuckid, *steedid;
 #endif
     if (u.uhp <= 0 && (!Upolyd || u.mh <= 0)) {
         u.ux = u.uy = 0; /* affects pline() [hence You()] */
+#if 0 /*JP*/
         You("were not healthy enough to survive restoration.");
+#else
+        You("\8dÄ\8aJ\82Å\82«\82é\82Ù\82Ç\8c\92\8dN\82Å\82Í\82È\82©\82Á\82½\81D");
+#endif
         /* wiz1_level.dlevel is used by mklev.c to see if lots of stuff is
          * uninitialized, so we only have to set it and not the other stuff.
          */
@@ -718,7 +733,10 @@ xchar ltmp;
         /* The savelev can't proceed because the size required
          * is greater than the available disk space.
          */
+/*JP
         pline("Not enough space on `%s' to restore your game.", levels);
+*/
+        pline("\83Q\81[\83\80\82ð\8dÄ\8aJ\82·\82é\82½\82ß\82Ì'%s'\82Ì\82½\82ß\82Ì\83X\83y\81[\83X\82ª\82È\82¢\81D", levels);
 
         /* Remove levels and bones that may have been created.
          */
@@ -743,7 +761,10 @@ xchar ltmp;
             return dorecover(fd);            /* 0 or 1 */
         }
 #endif /* ?AMIGA */
+/*JP
         pline("Be seeing you...");
+*/
+        pline("\82Ü\82½\89ï\82¢\82Ü\82µ\82å\82¤\81D\81D\81D");
         terminate(EXIT_SUCCESS);
     }
 #endif /* MFLOPPY */
@@ -802,10 +823,17 @@ register int fd;
         clear_nhwindow(WIN_MAP);
 #endif
     clear_nhwindow(WIN_MESSAGE);
+#if 0 /*JP*/
     You("return to level %d in %s%s.", depth(&u.uz),
         dungeons[u.uz.dnum].dname,
         flags.debug ? " while in debug mode"
                     : flags.explore ? " while in explore mode" : "");
+#else
+    You("%s%s\82Ì\92n\89º%d\8aK\82É\96ß\82Á\82Ä\82«\82½\81D",
+        flags.debug ? "\83E\83B\83U\81[\83h\83\82\81[\83h\92\86\82Ì"
+                    : flags.explore ? "\92T\8c\9f\83\82\81[\83h\92\86\82Ì" : "",
+        dungeons[u.uz.dnum].dname, depth(&u.uz));
+#endif
     curs(WIN_MAP, 1, 1);
     dotcnt = 0;
     dotrow = 2;
@@ -959,9 +987,18 @@ void
 trickery(reason)
 char *reason;
 {
+/*JP
     pline("Strange, this map is not as I remember it.");
+*/
+    pline("\96­\82¾\81C\82±\82Ì\92n\90}\82Í\8e\84\82ª\8ao\82¦\82Ä\82¢\82½\82à\82Ì\82Æ\88á\82¤\81D");
+/*JP
     pline("Somebody is trying some trickery here...");
+*/
+    pline("\82¾\82ê\82©\82ª\82±\82±\82Å\82¢\82©\82³\82Ü\82ð\82µ\82æ\82¤\82Æ\82µ\82½\82æ\82¤\82¾\81D\81D\81D");
+/*JP
     pline("This game is void.");
+*/
+    pline("\82±\82Ì\83Q\81[\83\80\82Í\96³\8cø\82Æ\82È\82é\81D");
     Strcpy(killer.name, reason ? reason : "");
     done(TRICKED);
 }
index 80791cb..2ca5cad 100644 (file)
--- a/src/rip.c
+++ b/src/rip.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL void FDECL(center, (int, char *));
@@ -118,13 +123,39 @@ time_t when;
     for (line = DEATH_LINE, dpx = buf; line < YEAR_LINE; line++) {
         register int i, i0;
         char tmpchar;
+#if 1 /*JP*/
+        unsigned char *uc;
+        int jstone_line;
+
+        if ((i0 = strlen(dpx)) <= STONE_LINE_LEN)
+            jstone_line = STONE_LINE_LEN;
+        else if (i0 / 2 <= STONE_LINE_LEN )
+            jstone_line = ((i0 + 3) / 4) * 2;
+        else if (i0 / 3 <= STONE_LINE_LEN )
+            jstone_line = ((i0 + 5) / 6) * 2;
+        else
+            jstone_line = ((i0 + 7) / 8) * 2;
+#endif
 
         if ((i0 = strlen(dpx)) > STONE_LINE_LEN) {
             for (i = STONE_LINE_LEN; ((i0 > STONE_LINE_LEN) && i); i--)
                 if (dpx[i] == ' ')
                     i0 = i;
             if (!i)
+#if 0 /*JP*/
                 i0 = STONE_LINE_LEN;
+#else
+                {
+                    i0 = 0;
+                    while(i0 < jstone_line){
+                        uc = (unsigned char *)(dpx + i0);
+                        if(*uc < 128)
+                            ++i0;
+                        else
+                            i0 += 2;
+                    }
+                }
+#endif
         }
         tmpchar = dpx[i0];
         dpx[i0] = 0;
index cccf9c4..90be78f 100644 (file)
@@ -47,7 +47,7 @@ const struct Role roles[] = {
         { "\93´\8cA\8aw\8eÒ", 0 },
         { "\94ü\8fp\8eû\8fW\8eÒ", 0 },
         { "\8aÙ\92·", 0 } },
-      "Quetzalcoatl", "Camaxtli", "Huhetotl", /* Central American */
+      "\83P\83c\83A\83\8b\83J\83g\83\8b", "\83J\83}\83L\83V\83g\83\8a", "\83t\83w\83g\83g\83\8b", /* Central American */
 #endif
       "Arc",
 #if 0 /*JP*/
@@ -108,7 +108,7 @@ const struct Role roles[] = {
         { "\8eE\9dC\8eÒ", 0 },
         { "\8eñ\97Ì", 0 },
         { "\90ª\95\9e\8eÒ", 0 } },
-      "Mitra", "Crom", "Set", /* Hyborian */
+      "\83~\83g\83\89", "\83N\83\8d\83\80", "\83Z\83g", /* Hyborian */
 #endif
       "Bar",
 #if 0 /*JP*/
@@ -169,7 +169,7 @@ const struct Role roles[] = {
         { "\97V\96q\96¯", 0 },
         { "\97¬\98Q\8eÒ", 0 },
         { "\90æ\8bì\8eÒ", 0 } },
-      "Anu", "_Ishtar", "Anshar", /* Babylonian */
+      "\83A\83k", "_\83C\83V\83\85\83^\83\8b", "\83A\83\93\83V\83\83\83\8b", /* Babylonian */
 #endif
       "Cav",
 #if 0 /*JP*/
@@ -230,7 +230,7 @@ const struct Role roles[] = {
         { "\88ã\8et\8eå\94C", 0 },
         { "\93à\89È\88ã", 0 },
         { "\8aO\89È\88ã", 0 } },
-      "_Athena", "Hermes", "Poseidon", /* Greek */
+      "_\83A\83e\83i", "\83w\83\8b\83\81\83X", "\83|\83Z\83C\83h\83\93", /* Greek */
 #endif
       "Hea",
 #if 0 /*JP*/
@@ -290,7 +290,7 @@ const struct Role roles[] = {
         { "\8fd\8bR\8em", 0 },
         { "\8cM\8bR\8em", 0 },
         { "\90¹\8bR\8em", 0 } },
-      "Lugh", "_Brigit", "Manannan Mac Lir", /* Celtic */
+      "\83\8b\81[\83t", "_\83u\83\8a\83W\83b\83g", "\83}\83i\83\93\83i\83\93\81E\83}\83N\83\8a\81[\83\8b", /* Celtic */
 #endif
       "Kni",
 #if 0 /*JP*/
@@ -350,7 +350,7 @@ const struct Role roles[] = {
         { "\96Ø\82Ì\8fK\82¢\8eè", 0 },
         { "\89Î\82Ì\8fK\82¢\8eè", 0 },
         { "\96Æ\8b\96\8aF\93`", 0 } },
-      "Shan Lai Ching", "Chih Sung-tzu", "Huan Ti", /* Chinese */
+      "\8eR\97\8b\90¸", "\90Ô\8f¼\8eq", "\89©\92é", /* Chinese */
 #endif
       "Mon",
 #if 0 /*JP*/
@@ -474,7 +474,7 @@ const struct Role roles[] = {
         { "\93D\96_", 0 },
         { "\8b­\93\90", 0 },
         { "\91å\93D\96_", 0 } },
-      "Issek", "Mog", "Kos", /* Nehwon */
+      "\83C\83Z\83b\83N", "\83\82\83O", "\83R\83X", /* Nehwon */
 #endif
       "Rog",
 #if 0 /*JP*/
@@ -609,7 +609,7 @@ const struct Role roles[] = {
         { "\91å\96¼", "\8d\98\8c³" },         /* a samurai lord */
         { "\8cö\89Æ", 0 },           /* Noble of the Court */
         { "\8cö\89Æ", "\91å\89\9c" } },       /* supreme commander, warlord */
-      "_Amaterasu Omikami", "Raijin", "Susanowo", /* Japanese */
+      "_\93V\8fÆ\91å\90_", "\97\8b\90_", "\90{\8d²\94V\92j", /* Japanese */
 #endif
       "Sam",
 #if 0 /*JP*/
@@ -669,7 +669,7 @@ const struct Role roles[] = {
         { "\8dq\8aC\8eÒ", 0 },
         { "\92T\8c\9f\89Æ", 0 },
         { "\96`\8c¯\8eÒ", 0 } },
-      "Blind Io", "_The Lady", "Offler", /* Discworld */
+      "\96Ó\96Ú\82Ì\83C\83\8d", "_\81\83\8f\97\90_\81\84", "\83I\83t\83\89\81[", /* Discworld */
 #endif
       "Tou",
 #if 0 /*JP*/
@@ -729,7 +729,7 @@ const struct Role roles[] = {
         { "\89p\97Y", 0 },
         { "\90æ\93±\8eÒ", 0 },
         { "\83\8d\81[\83h", "\83\8c\83f\83B" } },
-      "Tyr", "Odin", "Loki", /* Norse */
+      "\83`\83\85\81[\83\8b", "\83I\81[\83f\83B\83\93", "\83\8d\83L", /* Norse */
 #endif
       "Val",
 #if 0 /*JP*/
@@ -789,7 +789,7 @@ const struct Role roles[] = {
         { "\96\82\8fp\8et", 0 },
         { "\96\82\96@\8eg\82¢", 0 },
         { "\91å\96\82\96@\8eg\82¢", 0 } },
-      "Ptah", "Thoth", "Anhur", /* Egyptian */
+      "\83v\83^\83n", "\83g\81[\83g", "\83A\83\93\83t\83\8b", /* Egyptian */
 #endif
       "Wiz",
 #if 0 /*JP*/
@@ -1074,7 +1074,10 @@ STATIC_DCL int FDECL(role_gendercount, (int));
 STATIC_DCL int FDECL(race_alignmentcount, (int));
 
 /* used by str2XXX() */
+/*JP
 static char NEARDATA randomstr[] = "random";
+*/
+static char NEARDATA randomstr[] = "\83\89\83\93\83_\83\80";
 
 boolean
 validrole(rolenum)
@@ -1702,6 +1705,7 @@ promptsep(buf, num_post_attribs)
 char *buf;
 int num_post_attribs;
 {
+#if 0 /*JP*/
     const char *conjuct = "and ";
 
     if (num_post_attribs > 1 && post_attribs < num_post_attribs
@@ -1711,6 +1715,13 @@ int num_post_attribs;
     --post_attribs;
     if (!post_attribs && num_post_attribs > 1)
         Strcat(buf, conjuct);
+#else
+    /*JP: \93ú\96{\8cê\82Å\82Í "A, B, and C" \82Æ\82¢\82¤\8f\88\97\9d\82Í\95s\97v */
+    if(num_post_attribs > post_attribs){
+        Strcat(buf, "\81C");
+    }
+    --post_attribs;
+#endif
     return buf;
 }
 
@@ -1756,7 +1767,10 @@ int buflen, rolenum, racenum, gendnum, alignnum;
 {
     int k, gendercount = 0, aligncount = 0;
     char buf[BUFSZ];
+/*JP
     static char err_ret[] = " character's";
+*/
+    static char err_ret[] = "\83L\83\83\83\89\83N\83^\81[\82Ì";
     boolean donefirst = FALSE;
 
     if (!suppliedbuf || buflen < 1)
@@ -1777,13 +1791,17 @@ int buflen, rolenum, racenum, gendnum, alignnum;
         && ok_align(rolenum, racenum, gendnum, alignnum)) {
         /* if race specified, and multiple choice of alignments for it */
         if ((racenum >= 0) && (aligncount > 1)) {
+#if 0 /*JP*/
             if (donefirst)
                 Strcat(buf, " ");
+#endif
             Strcat(buf, aligns[alignnum].adj);
             donefirst = TRUE;
         } else {
+#if 0 /*JP*/
             if (donefirst)
                 Strcat(buf, " ");
+#endif
             Strcat(buf, aligns[alignnum].adj);
             donefirst = TRUE;
         }
@@ -1814,14 +1832,18 @@ int buflen, rolenum, racenum, gendnum, alignnum;
                and name of role itself does not distinguish gender */
             if ((rolenum != ROLE_NONE) && (gendercount > 1)
                 && !roles[rolenum].name.f) {
+#if 0 /*JP*/
                 if (donefirst)
                     Strcat(buf, " ");
+#endif
                 Strcat(buf, genders[gendnum].adj);
                 donefirst = TRUE;
             }
         } else {
+#if 0 /*JP*/
             if (donefirst)
                 Strcat(buf, " ");
+#endif
             Strcat(buf, genders[gendnum].adj);
             donefirst = TRUE;
         }
@@ -1840,14 +1862,18 @@ int buflen, rolenum, racenum, gendnum, alignnum;
     if (racenum != ROLE_NONE && racenum != ROLE_RANDOM) {
         if (validrole(rolenum)
             && ok_race(rolenum, racenum, gendnum, alignnum)) {
+#if 0 /*JP*/
             if (donefirst)
                 Strcat(buf, " ");
+#endif
             Strcat(buf, (rolenum == ROLE_NONE) ? races[racenum].noun
                                                : races[racenum].adj);
             donefirst = TRUE;
         } else if (!validrole(rolenum)) {
+#if 0 /*JP*/
             if (donefirst)
                 Strcat(buf, " ");
+#endif
             Strcat(buf, races[racenum].noun);
             donefirst = TRUE;
         } else {
@@ -1861,8 +1887,10 @@ int buflen, rolenum, racenum, gendnum, alignnum;
     /* <your lawful female gnomish> || <your lawful female gnome> */
 
     if (validrole(rolenum)) {
+#if 0 /*JP*/
         if (donefirst)
             Strcat(buf, " ");
+#endif
         if (gendnum != ROLE_NONE) {
             if (gendnum == 1 && roles[rolenum].name.f)
                 Strcat(buf, roles[rolenum].name.f);
@@ -1884,9 +1912,14 @@ int buflen, rolenum, racenum, gendnum, alignnum;
 
     if ((racenum == ROLE_NONE || racenum == ROLE_RANDOM)
         && !validrole(rolenum)) {
+#if 0 /*JP*/
         if (donefirst)
             Strcat(buf, " ");
+#endif
+/*JP
         Strcat(buf, "character");
+*/
+        Strcat(buf, "\83L\83\83\83\89\83N\83^\81[");
         donefirst = TRUE;
     }
     /* <your lawful female gnomish cavewoman> || <your lawful female gnome>
@@ -1904,30 +1937,43 @@ build_plselection_prompt(buf, buflen, rolenum, racenum, gendnum, alignnum)
 char *buf;
 int buflen, rolenum, racenum, gendnum, alignnum;
 {
+/*JP
     const char *defprompt = "Shall I pick a character for you? [ynaq] ";
+*/
+    const char *defprompt = "\93K\93\96\82É\83L\83\83\83\89\83N\83^\81[\82ð\91I\82ñ\82Å\82æ\82¢\82Å\82·\82©\81H[ynaq] ";
     int num_post_attribs = 0;
     char tmpbuf[BUFSZ], *p;
 
     if (buflen < QBUFSZ)
         return (char *) defprompt;
 
+#if 0 /*JP*/
     Strcpy(tmpbuf, "Shall I pick ");
     if (racenum != ROLE_NONE || validrole(rolenum))
         Strcat(tmpbuf, "your ");
     else {
         Strcat(tmpbuf, "a ");
     }
+#else
+    Strcpy(tmpbuf, "");
+#endif
     /* <your> */
 
     (void) root_plselection_prompt(eos(tmpbuf), buflen - strlen(tmpbuf),
                                    rolenum, racenum, gendnum, alignnum);
+#if 0 /*JP*/
     Sprintf(buf, "%s", s_suffix(tmpbuf));
+#else
+    Sprintf(buf, "%s\82Ì", tmpbuf);
+#endif
+#if 0 /*JP:\93ú\96{\8cê\82Å\82Í\95s\97v*/
     /* don't bother splitting caveman/cavewoman or priest/priestess
        in order to apply possessive suffix to both halves, but do
        change "priest/priestess'" to "priest/priestess's" */
     if ((p = strstri(buf, "priest/priestess'")) != 0
         && p[sizeof "priest/priestess'" - sizeof ""] == '\0')
         strkitten(buf, 's');
+#endif
 
     /* buf should now be:
      *    <your lawful female gnomish cavewoman's>
@@ -1940,22 +1986,37 @@ int buflen, rolenum, racenum, gendnum, alignnum;
     if (post_attribs) {
         if (pa[BP_RACE]) {
             (void) promptsep(eos(buf), num_post_attribs);
+/*
             Strcat(buf, "race");
+*/
+           Strcat(buf, "\8eí\91°");
         }
         if (pa[BP_ROLE]) {
             (void) promptsep(eos(buf), num_post_attribs);
+/*
             Strcat(buf, "role");
+*/
+           Strcat(buf, "\90E\8bÆ");
         }
         if (pa[BP_GEND]) {
             (void) promptsep(eos(buf), num_post_attribs);
+/*JP
             Strcat(buf, "gender");
+*/
+           Strcat(buf, "\90«\95Ê");
         }
         if (pa[BP_ALIGN]) {
             (void) promptsep(eos(buf), num_post_attribs);
+/*JP
             Strcat(buf, "alignment");
+*/
+           Strcat(buf, "\91®\90«");
         }
     }
+/*JP
     Strcat(buf, " for you? [ynaq] ");
+*/
+    Strcat(buf, "\82ð\93K\93\96\82É\91I\82ñ\82Å\82æ\82ë\82µ\82¢\82Å\82·\82©\81H[ynq] ");
     return buf;
 }
 
@@ -2023,9 +2084,18 @@ role_selection_prolog(which, where)
 int which;
 winid where;
 {
+/*JP
     static const char NEARDATA choosing[] = " choosing now",
+*/
+    static const char NEARDATA choosing[] = " \8c»\8dÝ\91I\91ð\92\86",
+/*JP
                                not_yet[] = " not yet specified",
+*/
+                               not_yet[] = " \96¢\91I\91ð",
+/*JP
                                rand_choice[] = " random";
+*/
+                               rand_choice[] = " \83\89\83\93\83_\83\80";
     char buf[BUFSZ];
     int r, c, g, a, allowmask;
 
@@ -2082,26 +2152,39 @@ winid where;
             Sprintf(eos(buf), "/%s", roles[r].name.f);
     }
     putstr(where, 0, buf);
+/*JP
     Sprintf(buf, "%12s ", "race:");
+*/
+    Sprintf(buf, "%12s ", "\8eí\91°:");
     Strcat(buf, (which == RS_RACE) ? choosing : (c == ROLE_NONE)
                                                     ? not_yet
                                                     : (c == ROLE_RANDOM)
                                                           ? rand_choice
                                                           : races[c].noun);
     putstr(where, 0, buf);
+/*JP
     Sprintf(buf, "%12s ", "gender:");
+*/
+    Sprintf(buf, "%12s ", "\90«\95Ê:");
     Strcat(buf, (which == RS_GENDER) ? choosing : (g == ROLE_NONE)
                                                       ? not_yet
                                                       : (g == ROLE_RANDOM)
                                                             ? rand_choice
                                                             : genders[g].adj);
     putstr(where, 0, buf);
+/*JP
     Sprintf(buf, "%12s ", "alignment:");
+*/
+    Sprintf(buf, "%12s ", "\91®\90«:");
     Strcat(buf, (which == RS_ALGNMNT) ? choosing : (a == ROLE_NONE)
                                                        ? not_yet
                                                        : (a == ROLE_RANDOM)
                                                              ? rand_choice
+#if 0 /*JP:\93ú\96{\8cê\82Å\82Í\96¼\8e\8c\82ª\8e©\91R*/
                                                              : aligns[a].adj);
+#else
+                                                             : aligns[a].noun);
+#endif
     putstr(where, 0, buf);
 }
 
@@ -2390,6 +2473,7 @@ const char *
 Hello(mtmp)
 struct monst *mtmp;
 {
+#if 0 /*JP*/
     switch (Role_switch) {
     case PM_KNIGHT:
         return "Salutations"; /* Olde English */
@@ -2408,11 +2492,38 @@ struct monst *mtmp;
     default:
         return "Hello";
     }
+#else
+/*
+  \82 \82¢\82³\82Â\82Í\93ú\96{\8cê\82Æ\82µ\82Ä\8e©\91R\82É\82È\82é\82æ\82¤\91å\82«\82­\8ed\97l\82ð\95Ï\8dX
+*/
+    static char helo_buf[BUFSZ];
+
+    switch (Role_switch) {
+    case PM_KNIGHT:
+        Sprintf(helo_buf, "\82æ\82­\82¼\8eQ\82Á\82½%s\82æ", plname);
+        break;
+    case PM_SAMURAI:
+        Sprintf(helo_buf, "\82æ\82­\82¼\8eQ\82ç\82ê\82½%s\82æ", plname);
+        break;
+    case PM_TOURIST:
+        Sprintf(helo_buf, "\83A\83\8d\81[\83n%s", plname);
+        break;
+    case PM_VALKYRIE:
+        Sprintf(helo_buf, "\8d°\82Ì\8eç\8cì\8eÒ%s\82æ", plname);
+        break;
+    default:
+        Sprintf(helo_buf, "\82æ\82¤\82±\82»%s", plname);
+        break;
+    }
+
+    return helo_buf;
+#endif
 }
 
 const char *
 Goodbye()
 {
+#if 0 /*JP*/
     switch (Role_switch) {
     case PM_KNIGHT:
         return "Fare thee well"; /* Olde English */
@@ -2425,6 +2536,29 @@ Goodbye()
     default:
         return "Goodbye";
     }
+#else
+    static char helo_buf[BUFSZ];
+
+    switch (Role_switch) {
+    case PM_KNIGHT:
+        Sprintf(helo_buf, "\82³\82ç\82Î\8chåi\82È\82é");
+        break;
+    case PM_SAMURAI:
+        Sprintf(helo_buf, "\82³\82ç\82Î\95\90\8em\93¹\82ð\8eu\82·");
+        break;
+    case PM_TOURIST:
+        Sprintf(helo_buf, "\83A\83\8d\81[\83n");
+        break;
+    case PM_VALKYRIE:
+        Sprintf(helo_buf, "\82³\82ç\82Î\8d°\82Ì\8eç\8cì\8eÒ");
+        break;
+    default:
+        Sprintf(helo_buf, "\82³\82æ\82¤\82È\82ç");
+        break;
+    }
+
+    return helo_buf;
+#endif
 }
 
 /* role.c */
index 18656e5..4a3b7d2 100644 (file)
@@ -147,14 +147,21 @@ boolean exclude_cookie;
             Strcat(rumor_buf, xcrypt(line, xbuf));
         } while (
             count++ < 50 && exclude_cookie
+#if 0 /*JP*/
             && (strstri(rumor_buf, "fortune") || strstri(rumor_buf, "pity")));
+#else
+            && (strstri(rumor_buf, "\90è") || strstri(rumor_buf, "\82È\82ñ\82Ä\82±\82Æ\82¾")));
+#endif
         (void) dlb_fclose(rumors);
         if (count >= 50)
             impossible("Can't find non-cookie rumor?");
         else if (!in_mklev) /* avoid exercizing wisdom for graffiti */
             exercise(A_WIS, (adjtruth > 0));
     } else {
+/*JP
         pline("Can't open rumors file!");
+*/
+        pline("rumors\83t\83@\83C\83\8b\82ª\8aJ\82¯\82È\82¢\81I");
         true_rumor_size = -1; /* don't try to open it again */
     }
 /* this is safe either way, so do it always since we can't get the definition
@@ -324,7 +331,10 @@ int truth; /* 1=true, -1=false, 0=either */
 int mechanism;
 {
     static const char fortune_msg[] =
+/*JP
         "This cookie has a scrap of paper inside.";
+*/
+        "\82±\82Ì\83N\83b\83L\81[\82É\82Í\8e\86\90Ø\82ª\93ü\82Á\82Ä\82¢\82é\81D";
     const char *line;
     char buf[BUFSZ];
     boolean reading = (mechanism == BY_COOKIE || mechanism == BY_PAPER);
@@ -336,20 +346,33 @@ int mechanism;
         else if (Blind) {
             if (mechanism == BY_COOKIE)
                 pline(fortune_msg);
+/*JP
             pline("What a pity that you cannot read it!");
+*/
+            pline("\82»\82ê\82ð\93Ç\82ß\82È\82¢\82È\82ñ\82Ä\8bC\82Ì\93Å\82È\81I");
             return;
         }
     }
     line = getrumor(truth, buf, reading ? FALSE : TRUE);
     if (!*line)
+/*JP
         line = "NetHack rumors file closed for renovation.";
+*/
+        line = "\89\\82Ì\90^\91\8a\82Í\8dü\90V\82Ì\82½\82ß\8bx\8a§\82µ\82Ä\82¢\82é\81D";
     switch (mechanism) {
     case BY_ORACLE:
         /* Oracle delivers the rumor */
+#if 0 /*JP*/
         pline("True to her word, the Oracle %ssays: ",
               (!rn2(4) ? "offhandedly "
                        : (!rn2(3) ? "casually "
                                   : (rn2(2) ? "nonchalantly " : ""))));
+#else
+        pline("\96ñ\91©\82Ç\82¨\82è\82É\81C\8c«\8eÒ\82Í%s\8fq\82×\82½:",
+              (!rn2(4) ? "\96³\91¢\8dì\82É"
+                       : (!rn2(3) ? "\89½\8bC\82È\82­"
+                                  : (rn2(2) ? "\96³\93Ú\92\85\82É" : ""))));
+#endif
         verbalize1(line);
         /* [WIS exercized by getrumor()] */
         return;
@@ -357,7 +380,10 @@ int mechanism;
         pline(fortune_msg);
     /* FALLTHRU */
     case BY_PAPER:
+/*JP
         pline("It reads:");
+*/
+        pline("\82»\82ê\82ð\93Ç\82ñ\82¾:");
         break;
     }
     pline1(line);
@@ -453,10 +479,19 @@ boolean delphi;
         if (delphi)
             putstr(tmpwin, 0,
                    special
+/*JP
                      ? "The Oracle scornfully takes all your money and says:"
+*/
+                     ? "\8c«\8eÒ\82Í\8cy\95Ì\82µ\82½\82æ\82¤\82É\82 \82È\82½\82Ì\91S\82Ä\82Ì\82¨\8bà\82ð\8eó\82¯\82Æ\82è\81C\8fq\82×\82½\81F"
+/*JP
                      : "The Oracle meditates for a moment and then intones:");
+*/
+                     : "\8c«\8eÒ\82Í\82µ\82Î\82ç\82­\96»\91z\82µ\81C\89Ì\82¤\82æ\82¤\82É\98b\82µ\82½\81F");
         else
+/*JP
             putstr(tmpwin, 0, "The message reads:");
+*/
+            putstr(tmpwin, 0, "\83\81\83b\83Z\81[\83W:");
         putstr(tmpwin, 0, "");
 
         while (dlb_fgets(line, COLNO, oracles) && strcmp(line, "---\n")) {
@@ -468,7 +503,10 @@ boolean delphi;
         destroy_nhwindow(tmpwin);
         (void) dlb_fclose(oracles);
     } else {
+/*JP
         pline("Can't open oracles file!");
+*/
+        pline("oracles\83t\83@\83C\83\8b\82ð\8aJ\82¯\82È\82¢\81I");
         oracle_flg = -1; /* don't try to open it again */
     }
 }
@@ -486,17 +524,29 @@ struct monst *oracl;
     umoney = money_cnt(invent);
 
     if (!oracl) {
+/*JP
         There("is no one here to consult.");
+*/
+        pline("\82±\82±\82É\82Í\90_\91õ\82ð\8fq\82×\82é\90l\82Í\82¢\82È\82¢\81D");
         return 0;
     } else if (!oracl->mpeaceful) {
+/*JP
         pline("%s is in no mood for consultations.", Monnam(oracl));
+*/
+        pline("\8c«\8eÒ\82Í\90_\91õ\82ð\8d\90\82°\82Ä\82­\82ê\82é\95µ\88Í\8bC\82Å\82Í\82È\82¢\81D");
         return 0;
     } else if (!umoney) {
+/*JP
         You("have no money.");
+*/
+        You("\82¨\8bà\82ª\82È\82¢\81D");
         return 0;
     }
 
+/*JP
     Sprintf(qbuf, "\"Wilt thou settle for a minor consultation?\" (%d %s)",
+*/
+    Sprintf(qbuf, "\81u\93ð\81C\92á\88Ê\82Ì\90_\91õ\82ð\8eó\82¯\82é\82©\81H\81v(%d%s)",
             minor_cost, currency((long) minor_cost));
     switch (ynq(qbuf)) {
     default:
@@ -504,7 +554,10 @@ struct monst *oracl;
         return 0;
     case 'y':
         if (umoney < (long) minor_cost) {
+/*JP
             You("don't even have enough money for that!");
+*/
+            You("\82±\82ê\82É\95¥\82¦\82é\82¾\82¯\82Ì\82¨\8bà\82·\82ç\8e\9d\82Á\82Ä\82¢\82È\82¢\81I");
             return 0;
         }
         u_pay = minor_cost;
@@ -513,7 +566,7 @@ struct monst *oracl;
         if (umoney <= (long) minor_cost /* don't even ask */
             || (oracle_cnt == 1 || oracle_flg < 0))
             return 0;
-        Sprintf(qbuf, "\"Then dost thou desire a major one?\" (%d %s)",
+        Sprintf(qbuf, "\81u\82È\82ç\82Î\93ð\81C\8d\82\88Ê\82Ì\90_\91õ\82ð\8eó\82¯\82é\82©\81H\81v(%d%s)",
                 major_cost, currency((long) major_cost));
         if (yn(qbuf) != 'y')
             return 0;
index 551eadc..82cada6 100644 (file)
@@ -79,13 +79,19 @@ int
 dosave()
 {
     clear_nhwindow(WIN_MESSAGE);
+/*JP
     if (yn("Really save?") == 'n') {
+*/
+    if(yn("\96{\93\96\82É\95Û\91\82·\82é\81H") == 'n') {
         clear_nhwindow(WIN_MESSAGE);
         if (multi > 0)
             nomul(0);
     } else {
         clear_nhwindow(WIN_MESSAGE);
+/*JP
         pline("Saving...");
+*/
+        pline("\95Û\91\92\86\81D\81D\81D");
 #if defined(UNIX) || defined(VMS) || defined(__EMX__)
         program_state.done_hup = 0;
 #endif
@@ -93,7 +99,10 @@ dosave()
             u.uhp = -1; /* universal game's over indicator */
             /* make sure they see the Saving message */
             display_nhwindow(WIN_MESSAGE, TRUE);
+/*JP
             exit_nhwindows("Be seeing you...");
+*/
+            exit_nhwindows("\82Ü\82½\89ï\82¢\82Ü\82µ\82å\82¤\81D\81D\81D");
             terminate(EXIT_SUCCESS);
         } else
             (void) doredraw();
@@ -143,8 +152,14 @@ dosave0()
         if (fd > 0) {
             (void) nhclose(fd);
             clear_nhwindow(WIN_MESSAGE);
+/*JP
             There("seems to be an old save file.");
+*/
+            pline("\91O\82É\83Z\81[\83u\82µ\82½\83t\83@\83C\83\8b\82ª\82 \82è\82Ü\82·\81D");
+/*JP
             if (yn("Overwrite the old file?") == 'n') {
+*/
+            if (yn("\8cÃ\82¢\83t\83@\83C\83\8b\82É\8fã\8f\91\82«\82µ\82Ü\82·\82©\81H") == 'n') {
                 nh_compress(fq_save);
                 return 0;
             }
index a0cf00e..a913a5d 100644 (file)
--- a/src/shk.c
+++ b/src/shk.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 #define PAY_SOME 2
@@ -25,7 +30,10 @@ STATIC_DCL void FDECL(kops_gone, (BOOLEAN_P));
 extern const struct shclass shtypes[]; /* defined in shknam.c */
 
 STATIC_VAR NEARDATA long int followmsg; /* last time of follow message */
+/*JP
 STATIC_VAR const char and_its_contents[] = " and its contents";
+*/
+STATIC_VAR const char and_its_contents[] = "\92\86\90g\82ð\8d\87\82í\82¹\82Ä";
 STATIC_VAR const char the_contents_of[] = "the contents of ";
 
 STATIC_DCL void FDECL(append_honorific, (char *));
@@ -73,7 +81,9 @@ STATIC_DCL boolean FDECL(rob_shop, (struct monst *));
 STATIC_DCL void FDECL(deserted_shop, (char *));
 STATIC_DCL boolean FDECL(special_stock, (struct obj *, struct monst *,
                                          BOOLEAN_P));
+#if 0 /*JP*//*\8eg\82í\82È\82¢*/
 STATIC_DCL const char *FDECL(cad, (BOOLEAN_P));
+#endif
 
 /*
         invariants: obj->unpaid iff onbill(obj) [unless bp->useup]
@@ -146,7 +156,10 @@ long amount;
     obj_extract_self(mongold);
 
     if (!merge_choice(invent, mongold) && inv_cnt(FALSE) >= 52) {
+/*JP
         You("have no room for the money!");
+*/
+        You("\82¨\8bà\82ð\8e\9d\82Â\97]\97T\82ª\82È\82¢\81I");
         dropy(mongold);
     } else {
         addinv(mongold);
@@ -333,7 +346,10 @@ register boolean nearshop;
         return;
 
     if (!Deaf)
+/*JP
         pline("An alarm sounds!");
+*/
+        pline("\8cx\95ñ\82ª\96Â\82è\82Ð\82Ñ\82¢\82½\81I");
 
     nokops = ((mvitals[PM_KEYSTONE_KOP].mvflags & G_GONE)
               && (mvitals[PM_KOP_SERGEANT].mvflags & G_GONE)
@@ -342,7 +358,10 @@ register boolean nearshop;
 
     if (!angry_guards(!!Deaf) && nokops) {
         if (flags.verbose && !Deaf)
+/*JP
             pline("But no one seems to respond to it.");
+*/
+            pline("\82µ\82©\82µ\92N\82à\89\9e\93\9a\82µ\82È\82©\82Á\82½\81D");
         return;
     }
 
@@ -355,14 +374,20 @@ register boolean nearshop;
         if (nearshop) {
             /* Create swarm around you, if you merely "stepped out" */
             if (flags.verbose)
+/*JP
                 pline_The("Keystone Kops appear!");
+*/
+                pline("\8cx\94õ\88õ\82ª\8c»\82í\82ê\82½\81I");
             mm.x = u.ux;
             mm.y = u.uy;
             makekops(&mm);
             return;
         }
         if (flags.verbose)
+/*JP
             pline_The("Keystone Kops are after you!");
+*/
+            pline("\8cx\94õ\88õ\82ª\82¢\82é\81I");
         /* Create swarm near down staircase (hinders return to level) */
         mm.x = xdnstair;
         mm.y = ydnstair;
@@ -419,9 +444,15 @@ boolean newlev;
          * Player just stepped onto shop-boundary (known from above logic).
          * Try to intimidate him into paying his bill
          */
+#if 0 /*JP*/
         verbalize(NOTANGRY(shkp) ? "%s!  Please pay before leaving."
                                  : "%s!  Don't you leave without paying!",
                   plname);
+#else
+        verbalize(NOTANGRY(shkp) ? "%s\82³\82ñ\81I\8bA\82é\91O\82É\81C\82¨\8bà\82ð\95¥\82Á\82Ä\82¢\82½\82¾\82¯\82Ü\82¹\82ñ\82©\81D"
+                                 : "%s\81I\8bA\82é\91O\82É\81C\8bà\82ð\95¥\82¦\81I",
+                      plname);
+#endif
         return;
     }
 
@@ -465,11 +496,18 @@ struct monst *shkp;
     rouse_shk(shkp, TRUE);
     total = (addupbill(shkp) + eshkp->debit);
     if (eshkp->credit >= total) {
+#if 0 /*JP*/
         Your("credit of %ld %s is used to cover your shopping bill.",
+#else
+        Your("\97a\82¯\8bà\82©\82ç%ld%s\82ª\8a¨\92è\82Ì\8ex\95¥\82¢\82É\8eg\82í\82ê\82½\81D",
+#endif
              eshkp->credit, currency(eshkp->credit));
         total = 0L; /* credit gets cleared by setpaid() */
     } else {
+/*JP
         You("escaped the shop without paying!");
+*/
+        You("\8bà\82ð\95¥\82í\82¸\82É\93X\82©\82ç\93¦\82°\82½\81I");
         total -= eshkp->credit;
     }
     setpaid(shkp);
@@ -478,7 +516,10 @@ struct monst *shkp;
 
     /* by this point, we know an actual robbery has taken place */
     eshkp->robbed += total;
+/*JP
     You("stole %ld %s worth of merchandise.", total, currency(total));
+*/
+    You("\8eG\89Ý\82ð%ld%s\95ª\93\90\82ñ\82¾\81D", total, currency(total));
     if (!Role_if(PM_ROGUE)) /* stealing is unlawful */
         adjalign(-sgn(u.ualign.type));
 
@@ -511,8 +552,14 @@ deserted_shop(enterstring)
     if (Blind && !(Blind_telepat || Detect_monsters))
         ++n; /* force feedback to be less specific */
 
+#if 0 /*JP*/
     pline("This shop %s %s.", (m < n) ? "seems to be" : "is",
           !n ? "deserted" : "untended");
+#else
+    pline("\93X\82Í%s%s\81D",
+          !n ? "\94p\9aÐ\82Æ\89»\82µ\82Ä\82¢\82é" : "\95ú\8aü\82³\82ê\82Ä\82¢\82é",
+          (m < n) ? "\82æ\82¤\82¾" : "is");
+#endif
 }
 
 void
@@ -564,18 +611,32 @@ char *enterstring;
         return; /* no dialog */
 
     if (Invis) {
+/*JP
         pline("%s senses your presence.", shkname(shkp));
+*/
+        pline("%s\82Í\82 \82È\82½\82Ì\91\8dÝ\82É\8bC\82ª\82Â\82¢\82½\81D", shkname(shkp));
+/*JP
         verbalize("Invisible customers are not welcome!");
+*/
+        verbalize("\93§\96¾\82È\82¨\8bq\82³\82ñ\82Æ\82Í\8a´\90S\82µ\82È\82¢\82È\81I");
         return;
     }
 
     rt = rooms[*enterstring - ROOMOFFSET].rtype;
 
     if (ANGRY(shkp)) {
+#if 0 /*JP*/
         verbalize("So, %s, you dare return to %s %s?!", plname,
                   s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name);
+#else
+        verbalize("%s\81I\82í\82´\82í\82´%s\82Ì%s\82É\96ß\82Á\82Ä\82«\82½\82Ì\82©\81H\81I", plname,
+                  s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name);
+#endif
     } else if (eshkp->robbed) {
+/*JP
         pline("%s mutters imprecations against shoplifters.", shkname(shkp));
+*/
+        pline("%s\82Í\93D\96_\82ð\82Ì\82Ì\82µ\82Á\82½\81D", shkname(shkp));
     } else {
         verbalize("%s, %s!  Welcome%s to %s %s!", Hello(shkp), plname,
                   eshkp->visitct++ ? " again" : "", s_suffix(shkname(shkp)),
@@ -592,16 +653,25 @@ char *enterstring;
         if (pick || mattock) {
             cnt = 1;               /* so far */
             if (pick && mattock) { /* carrying both types */
+/*JP
                 tool = "digging tool";
+*/
+                tool = "\8c@\82é\93¹\8bï";
                 cnt = 2; /* `more than 1' is all that matters */
             } else if (pick) {
+/*JP
                 tool = "pick-axe";
+*/
+                tool = "\82Â\82é\82Í\82µ";
                 /* hack: `pick' already points somewhere into inventory */
                 while ((pick = pick->nobj) != 0)
                     if (pick->otyp == PICK_AXE)
                         ++cnt;
             } else { /* assert(mattock != 0) */
+/*JP
                 tool = "mattock";
+*/
+                tool = "\82Â\82é\82Í\82µ";
                 while ((mattock = mattock->nobj) != 0)
                     if (mattock->otyp == DWARVISH_MATTOCK)
                         ++cnt;
@@ -609,15 +679,28 @@ char *enterstring;
                 if (!Blind)
                     makeknown(DWARVISH_MATTOCK);
             }
+#if 0 /*JP*/
             verbalize(NOTANGRY(shkp)
                           ? "Will you please leave your %s%s outside?"
                           : "Leave the %s%s outside.",
                       tool, plur(cnt));
+#else
+            verbalize(NOTANGRY(shkp)
+                          ? "%s\82ð\8aO\82É\92u\82¢\82Ä\82«\82Ä\82¢\82½\82¾\82¯\82Ü\82¹\82ñ\82©\81H"
+                          : "%s\82ð\8aO\82Ö\92u\82¢\82Ä\82±\82¢\81I",
+                      tool);
+#endif
             should_block = TRUE;
         } else if (u.usteed) {
+#if 0 /*JP*/
             verbalize(NOTANGRY(shkp) ? "Will you please leave %s outside?"
                                      : "Leave %s outside.",
                       y_monnam(u.usteed));
+#else
+            verbalize(NOTANGRY(shkp) ? "%s\82ð\8aO\82É\92u\82¢\82Ä\82«\82Ä\82¢\82½\82¾\82¯\82Ü\82¹\82ñ\82©\81H"
+                                     : "%s\82ð\8aO\82Ö\92u\82¢\82Ä\82±\82¢\81I",
+                      y_monnam(u.usteed));
+#endif
             should_block = TRUE;
         } else {
             should_block =
@@ -646,8 +729,12 @@ struct obj *obj;
         /* if you bring a sack of N picks into a shop to sell,
            don't repeat this N times when they're taken out */
         if (moves != pickmovetime)
+#if 0 /*JP*/
             verbalize("You sneaky %s!  Get out of here with that pick!",
                       cad(FALSE));
+#else
+            verbalize("\82Ð\82«\82å\82¤\8eÒ\82ß\81I\82Â\82é\82Í\82µ\82ð\8e\9d\82Á\82Ä\8aO\82É\8fo\82ë\81I");
+#endif
         pickmovetime = moves;
     }
 }
@@ -717,7 +804,10 @@ shopper_financial_report()
 
     eshkp = this_shkp ? ESHK(this_shkp) : 0;
     if (eshkp && !(eshkp->credit || shop_debt(eshkp))) {
+/*JP
         You("have no credit or debt in here.");
+*/
+        You("\97a\82¯\8bà\82à\8eØ\8bà\82à\82È\82¢\81D");
         this_shkp = 0; /* skip first pass */
     }
 
@@ -730,15 +820,30 @@ shopper_financial_report()
                 continue;
             eshkp = ESHK(shkp);
             if ((amt = eshkp->credit) != 0)
+#if 0 /*JP*/
                 You("have %ld %s credit at %s %s.", amt, currency(amt),
                     s_suffix(shkname(shkp)),
                     shtypes[eshkp->shoptype - SHOPBASE].name);
+#else
+                You("%ld%s\82Ì\97a\82¯\8bà\82ª%s\82Ì%s\82É\82 \82é\81D", amt, currency(amt),
+                    shkname(shkp),
+                    shtypes[eshkp->shoptype - SHOPBASE].name);
+#endif
             else if (shkp == this_shkp)
+/*JP
                 You("have no credit in here.");
+*/
+                You("\97a\82¯\8bà\82Í\82È\82¢\81D");
             if ((amt = shop_debt(eshkp)) != 0)
+/*JP
                 You("owe %s %ld %s.", shkname(shkp), amt, currency(amt));
+*/
+                You("%s\82É%ld%s\82Ì\8eØ\82è\82ª\82 \82é\81D", shkname(shkp), amt, currency(amt));
             else if (shkp == this_shkp)
+/*JP
                 You("don't owe any money here.");
+*/
+                pline("\82±\82Ì\93X\82É\8eØ\82è\82Í\82È\82¢\81D");
         }
 }
 
@@ -796,13 +901,19 @@ register boolean silent;
         while (--ct >= 0)
             if (bp->bo_id == obj->o_id) {
                 if (!obj->unpaid)
+/*JP
                     pline("onbill: paid obj on bill?");
+*/
+                    pline("\8a¨\92è\81F\95¥\82¤\81H");
                 return bp;
             } else
                 bp++;
     }
     if (obj->unpaid & !silent)
+/*JP
         pline("onbill: unpaid obj not on bill?");
+*/
+        pline("\8a¨\92è\81F\95¥\82í\82È\82¢\81H");
     return (struct bill_x *) 0;
 }
 
@@ -913,11 +1024,17 @@ register struct monst *shkp;
     if (credit == 0L) {
         ; /* nothing to do; just 'return tmp;' */
     } else if (credit >= tmp) {
+/*JP
         pline_The("price is deducted from your credit.");
+*/
+        pline("\91ã\8bà\82Í\97a\82¯\8bà\82©\82ç\8d·\82µ\88ø\82©\82ê\82½\81D");
         ESHK(shkp)->credit -= tmp;
         tmp = 0L;
     } else {
+/*JP
         pline_The("price is partially covered by your credit.");
+*/
+        pline("\91ã\8bà\82Ì\88ê\95\94\82Í\82 \82È\82½\82Ì\97a\82¯\8bà\82Å\95â\82í\82ê\82½\81D");
         ESHK(shkp)->credit = 0L;
         tmp -= credit;
     }
@@ -1021,8 +1138,13 @@ boolean verbosely;
     if (!shkp->mcanmove || shkp->msleeping) {
         /* greed induced recovery... */
         if (verbosely && canspotmon(shkp))
+#if 0 /*JP*/
             pline("%s %s.", Monnam(shkp),
                   shkp->msleeping ? "wakes up" : "can move again");
+#else
+            pline("%s\82Í%s\81D", Monnam(shkp),
+                  shkp->msleeping ? "\96Ú\82ª\8ao\82ß\82½" : "\82Ó\82½\82½\82Ñ\93®\82¯\82é\82æ\82¤\82É\82È\82Á\82½");
+#endif
         shkp->msleeping = 0;
         shkp->mfrozen = 0;
         shkp->mcanmove = 1;
@@ -1066,9 +1188,15 @@ register boolean silentkops;
             eshkp->dismiss_kops = TRUE;
         }
         if (vanished)
+/*JP
             pline("Satisfied, %s suddenly disappears!", shk_nam);
+*/
+            pline("%s\82Í\96\9e\91«\82·\82é\82Æ\81C\93Ë\91R\8fÁ\82¦\82½\81I", shk_nam);
     } else if (wasmad)
+/*JP
         pline("%s calms down.", Monnam(shkp));
+*/
+        pline("%s\82Í\97\8e\92\85\82¢\82½\81D", Monnam(shkp));
 
     make_happy_shoppers(silentkops);
 }
@@ -1126,14 +1254,23 @@ register xchar ox, oy;
     sx = shkp->mx, sy = shkp->my;
     if (isok(ox, oy) && cansee(ox, oy) && !cansee(sx, sy))
         shkp->mx = ox, shkp->my = oy;
+/*JP
     pline("%s %s!", Monnam(shkp), !ANGRY(shkp) ? "gets angry" : "is furious");
+*/
+    pline("%s\82Í%s\81I", Monnam(shkp), !ANGRY(shkp) ? "\93{\82Á\82½" : "\93{\82è\8b\82Á\82½");
     shkp->mx = sx, shkp->my = sy;
     hot_pursuit(shkp);
 }
 
+/*JP
 STATIC_VAR const char no_money[] = "Moreover, you%s have no money.";
+*/
+STATIC_VAR const char no_money[] = "\82µ\82©\82à\81C\82 \82È\82½\82Í\82¨\8bà\82ª\82È\82¢%s\81D";
 STATIC_VAR const char not_enough_money[] =
+/*JP
     "Besides, you don't have enough to interest %s.";
+*/
+    "\82µ\82©\82à\81C\82 \82È\82½\82Í%s\82ª\8b»\96¡\82ð\8e\9d\82Â\82Ù\82Ç\82¨\8bà\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81I";
 
 STATIC_OVL long
 cheapest_item(shkp) /* delivers the cheapest item on the list */
@@ -1185,12 +1322,18 @@ dopay()
     }
 
     if ((!sk && (!Blind || Blind_telepat)) || (!Blind && !seensk)) {
+/*JP
         There("appears to be no shopkeeper here to receive your payment.");
+*/
+        pline("\8ex\95¥\82¢\82ð\8eó\82¯\82Æ\82é\93X\8eå\82Í\82±\82±\82É\82Í\82¢\82È\82¢\82æ\82¤\82¾\81D");
         return 0;
     }
 
     if (!seensk) {
+/*JP
         You_cant("see...");
+*/
+        You("\8c©\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D\81D\81D");
         return 0;
     }
 
@@ -1208,7 +1351,10 @@ dopay()
             if (canspotmon(shkp))
                 break;
         if (shkp != resident && distu(shkp->mx, shkp->my) > 2) {
+/*JP
             pline("%s is not near enough to receive your payment.",
+*/
+            pline("%s\82Í\89\93\82­\82É\82¢\82é\82Ì\82Å\8ex\95¥\82¦\82È\82¢\81D",
                   Monnam(shkp));
             return 0;
         }
@@ -1217,32 +1363,53 @@ dopay()
         coord cc;
         int cx, cy;
 
+/*JP
         pline("Pay whom?");
+*/
+        pline("\92N\82É\95¥\82¤\81H");
         cc.x = u.ux;
         cc.y = u.uy;
+/*JP
         if (getpos(&cc, TRUE, "the creature you want to pay") < 0)
+*/
+        if (getpos(&cc, TRUE, "\8ex\95¥\82¢\82½\82¢\91\8a\8eè") < 0)
             return 0; /* player pressed ESC */
         cx = cc.x;
         cy = cc.y;
         if (cx < 0) {
+/*JP
             pline("Try again...");
+*/
+            pline("\82à\82¤\88ê\93x\81D\81D\81D");
             return 0;
         }
         if (u.ux == cx && u.uy == cy) {
+/*JP
             You("are generous to yourself.");
+*/
+            pline("\8e©\95ª\8e©\90g\82É\82È\82ñ\82Ä\8bC\91O\82Ì\82¢\82¢\82±\82Æ\81I");
             return 0;
         }
         mtmp = m_at(cx, cy);
         if (!mtmp) {
+/*JP
             There("is no one there to receive your payment.");
+*/
+            pline("\8ex\95¥\82¢\82ð\8eó\82¯\82Æ\82ê\82é\91\8a\8eè\82Í\82¢\82È\82¢\81D");
             return 0;
         }
         if (!mtmp->isshk) {
+/*JP
             pline("%s is not interested in your payment.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8ex\95¥\82¢\82É\8b»\96¡\82ð\8e¦\82³\82È\82¢\81D", Monnam(mtmp));
             return 0;
         }
         if (mtmp != resident && distu(mtmp->mx, mtmp->my) > 2) {
+/*JP
             pline("%s is too far to receive your payment.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8ex\95¥\82¢\82É\8b»\96¡\82ð\8e¦\82³\82È\82¢\81D", Monnam(mtmp));
             return 0;
         }
         shkp = mtmp;
@@ -1261,33 +1428,63 @@ proceed:
         rouse_shk(shkp, TRUE);
 
     if (!shkp->mcanmove || shkp->msleeping) { /* still asleep/paralyzed */
+#if 0 /*JP:T*/
         pline("%s %s.", Monnam(shkp),
               rn2(2) ? "seems to be napping" : "doesn't respond");
+#else
+                pline("%s\82Í%s\81D", Monnam(shkp),
+                      rn2(2) ? "\8b\8f\96°\82è\82ð\82µ\82Ä\82¢\82é\82æ\82¤\82¾" : "\94½\89\9e\82ª\82È\82¢");
+#endif
         return 0;
     }
 
     if (shkp != resident && NOTANGRY(shkp)) {
         umoney = money_cnt(invent);
         if (!ltmp)
+/*JP
             You("do not owe %s anything.", mon_nam(shkp));
+*/
+            You("%s\82É\8eØ\82è\82Í\82È\82¢\81D", mon_nam(shkp));
         else if (!umoney) {
+/*JP
             You("%shave no money.", stashed_gold ? "seem to " : "");
+*/
+            You("\82¨\8bà\82ª\82È\82¢%s\81D", stashed_gold ? "\82æ\82¤\82¾" : "");
             if (stashed_gold)
+/*JP
                 pline("But you have some gold stashed away.");
+*/
+                pline("\82µ\82©\82µ\81C\82 \82È\82½\82É\82Í\82¿\82å\82Á\82Á\82Æ\82µ\82½\83w\83\\83N\83\8a\82ª\82 \82é\81D");
         } else {
             if (umoney > ltmp) {
+#if 0 /*JP*/
                 You("give %s the %ld gold piece%s %s asked for.",
                     shkname(shkp), ltmp, plur(ltmp), mhe(shkp));
+#else
+                You("%s\82É\96]\82Ý\92Ê\82è%ld\96\87\82Ì\8bà\89Ý\82ð\97^\82¦\82½\81D",
+                    shkname(shkp), ltmp);
+#endif
                 pay(ltmp, shkp);
             } else {
+#if 0 /*JP*/
                 You("give %s all your%s gold.", shkname(shkp),
                     stashed_gold ? " openly kept" : "");
+#else
+                You("%s\82É%s\82¨\8bà\91S\95\94\82ð\97^\82¦\82½\81D", shkname(shkp),
+                    stashed_gold ? "\8eè\8e\9d\82¿\82Ì" : "");
+#endif
                 pay(umoney, shkp);
                 if (stashed_gold)
+/*JP
                     pline("But you have hidden gold!");
+*/
+                    pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\83w\83\\83N\83\8a\82ª\82 \82é\81I");
             }
             if ((umoney < ltmp / 2L) || (umoney < ltmp && stashed_gold))
+/*JP
                 pline("Unfortunately, %s doesn't look satisfied.", mhe(shkp));
+*/
+                pline("\8ec\94O\82È\82ª\82ç\81C%s\82Í\96\9e\91«\82µ\82Ä\82È\82¢\82æ\82¤\82¾\81D", mhe(shkp));
             else
                 make_happy_shk(shkp, FALSE);
         }
@@ -1298,42 +1495,76 @@ proceed:
     if (!eshkp->billct && !eshkp->debit) {
         umoney = money_cnt(invent);
         if (!ltmp && NOTANGRY(shkp)) {
+/*JP
             You("do not owe %s anything.", shkname(shkp));
+*/
+            You("%s\82É\8eØ\82è\82Í\82È\82¢\81D", shkname(shkp));
             if (!umoney)
+/*JP
                 pline(no_money, stashed_gold ? " seem to" : "");
+*/
+                pline(no_money, stashed_gold ? "\82æ\82¤\82¾" : "");
         } else if (ltmp) {
+/*JP
             pline("%s is after blood, not money!", shkname(shkp));
+*/
+            pline("%s\82Í\8c\8c\82Ü\82Ý\82ê\82¾\81D\82¨\8bà\82Ç\82±\82ë\82\82á\82È\82¢\81I", Monnam(shkp));
             if (umoney < ltmp / 2L || (umoney < ltmp && stashed_gold)) {
                 if (!umoney)
+/*JP
                     pline(no_money, stashed_gold ? " seem to" : "");
+*/
+                    pline(no_money, stashed_gold ? "\82æ\82¤\82¾" : "");
                 else
                     pline(not_enough_money, mhim(shkp));
                 return 1;
             }
+/*JP
             pline("But since %s shop has been robbed recently,", mhis(shkp));
+*/
+            pline("\82µ\82©\82µ\81C%s\93X\82Í\8dÅ\8bß\93\90\82Ý\82É\82 \82Á\82½\82Ì\82Å\81C", mhis(shkp));
+#if 0 /*JP*/
             pline("you %scompensate %s for %s losses.",
                   (umoney < ltmp) ? "partially " : "", shkname(shkp),
                   mhis(shkp));
+#else
+            pline("%s\82Ì\91¹\8e¸%s\82ð\95â\93U\82µ\82½\81D", mhis(shkp),
+                  (umoney < ltmp) ? "\82Ì\88ê\95\94" : "");
+#endif
             pay(umoney < ltmp ? umoney : ltmp, shkp);
             make_happy_shk(shkp, FALSE);
         } else {
             /* shopkeeper is angry, but has not been robbed --
              * door broken, attacked, etc. */
+/*JP
             pline("%s is after your hide, not your money!", Monnam(shkp));
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\96½\82ð\91_\82Á\82Ä\82¢\82é\81C\82¨\8bà\82Ç\82±\82ë\82\82á\82È\82¢\81I", Monnam(shkp));
             if (umoney < 1000L) {
                 if (!umoney)
+/*JP
                     pline(no_money, stashed_gold ? " seem to" : "");
+*/
+                    pline(no_money, stashed_gold ? "\82æ\82¤\82¾" : "");
                 else
                     pline(not_enough_money, mhim(shkp));
                 return 1;
             }
+#if 0 /*JP*/
             You("try to appease %s by giving %s 1000 gold pieces.",
                 x_monnam(shkp, ARTICLE_THE, "angry", 0, FALSE), mhim(shkp));
+#else
+            You("\8bà\89Ý1000\96\87\82ð%s\82É\8eè\93n\82µ\82Ä\82È\82¾\82ß\82æ\82¤\82Æ\82µ\82½\81D",
+                x_monnam(shkp, ARTICLE_THE, "\93{\82Á\82½", 0, FALSE));
+#endif
             pay(1000L, shkp);
             if (strncmp(eshkp->customer, plname, PL_NSIZ) || rn2(3))
                 make_happy_shk(shkp, FALSE);
             else
+/*JP
                 pline("But %s is as angry as ever.", shkname(shkp));
+*/
+                pline("\82µ\82©\82µ%s\82Í\82Ü\82¾\93{\82Á\82Ä\82¢\82é\81D", shkname(shkp));
         }
         return 1;
     }
@@ -1349,33 +1580,61 @@ proceed:
         long loan = eshkp->loan;
         char sbuf[BUFSZ];
         umoney = money_cnt(invent);
+#if 0 /*JP*//*\96\96\94ö\82É\89ñ\82·*/
         Sprintf(sbuf, "You owe %s %ld %s ", shkname(shkp), dtmp,
                 currency(dtmp));
+#endif
         if (loan) {
             if (loan == dtmp)
+/*JP
                 Strcat(sbuf, "you picked up in the store.");
+*/
+                        Strcpy(sbuf, "\93X\82Ì\92\86\82Å\8fE\82Á\82½\82à\82Ì\82É\91Î\82µ\82Ä\81C");
             else
+#if 0 /*JP*/
                 Strcat(sbuf,
                        "for gold picked up and the use of merchandise.");
+#else
+                Strcpy(sbuf,"\8fE\82Á\82½\82¨\8bà\82â\8eg\82Á\82½\8eG\89Ý\82É\91Î\82µ\82Ä\81C");
+#endif
         } else
+/*JP
             Strcat(sbuf, "for the use of merchandise.");
+*/
+            Strcpy(sbuf, "\8eg\82Á\82½\8eG\89Ý\82É\91Î\82µ\82Ä\81C");
+#if 1 /*JP*//*\8fã\82©\82ç\88Ú\93®*/
+        Sprintf(eos(sbuf), "%s\82É%ld%s\82Ì\8eØ\82è\82ª\82 \82é\81D",
+                shkname(shkp), dtmp, currency(dtmp));
+#endif
         pline1(sbuf);
         if (umoney + eshkp->credit < dtmp) {
+#if 0 /*JP*/
             pline("But you don't%s have enough gold%s.",
                   stashed_gold ? " seem to" : "",
                   eshkp->credit ? " or credit" : "");
+#else
+            pline("\82µ\82©\82µ\81C\82¨\8bà%s\91«\82è\82È\82¢%s\81D",
+                  eshkp->credit ? "\82à\97a\82¯\8bà\82à" : "\82ª",
+                  stashed_gold ? "\82æ\82¤\82¾" : "");
+#endif
             return 1;
         } else {
             if (eshkp->credit >= dtmp) {
                 eshkp->credit -= dtmp;
                 eshkp->debit = 0L;
                 eshkp->loan = 0L;
+/*JP
                 Your("debt is covered by your credit.");
+*/
+                Your("\8eØ\8bà\82Í\97a\82¯\8bà\82Å\95â\82í\82ê\82½\81D");
             } else if (!eshkp->credit) {
                 money2mon(shkp, dtmp);
                 eshkp->debit = 0L;
                 eshkp->loan = 0L;
+/*JP
                 You("pay that debt.");
+*/
+                You("\8eØ\8bà\82ð\95¥\82Á\82½\81D");
                 context.botl = 1;
             } else {
                 dtmp -= eshkp->credit;
@@ -1383,8 +1642,14 @@ proceed:
                 money2mon(shkp, dtmp);
                 eshkp->debit = 0L;
                 eshkp->loan = 0L;
+/*JP
                 pline("That debt is partially offset by your credit.");
+*/
+                pline("\82»\82Ì\8eØ\8bà\82Í\88ê\95\94\97a\82¯\8bà\82Å\91\8a\8eE\82³\82ê\82½\81D");
+/*JP
                 You("pay the remainder.");
+*/
+                You("\8ec\82è\82ð\95¥\82Á\82½\81D");
                 context.botl = 1;
             }
             paid = TRUE;
@@ -1396,21 +1661,36 @@ proceed:
         int iprompt;
         umoney = money_cnt(invent);
         if (!umoney && !eshkp->credit) {
+#if 0 /*JP*/
             You("%shave no money or credit%s.",
                 stashed_gold ? "seem to " : "", paid ? " left" : "");
+#else
+            You("%s\82¨\8bà\82à\97a\82¯\8bà\82à\8e\9d\82Á\82Ä\82È\82¢%s\81D",
+                paid ? "\82à\82¤" : "", stashed_gold ? "\82æ\82¤\82¾" : "");
+#endif
             return 0;
         }
         if ((umoney + eshkp->credit) < cheapest_item(shkp)) {
+#if 0 /*JP*/
             You("don't have enough money to buy%s the item%s you picked.",
                 eshkp->billct > 1 ? " any of" : "", plur(eshkp->billct));
+#else
+            pline("\8fE\82Á\82½\95i\95¨\82ð\94\83\82¤\82É\82Í\82¨\8bà\82ª\91«\82è\82È\82¢\81D");
+#endif
             if (stashed_gold)
+/*JP
                 pline("Maybe you have some gold stashed away?");
+*/
+                You("\82Ç\82±\82©\82É\82¨\8bà\82ð\89B\82µ\82Ä\82¢\82é\82Ì\82©\82à\81H");
             return 0;
         }
 
         /* this isn't quite right; it itemizes without asking if the
          * single item on the bill is partly used up and partly unpaid */
+/*JP
         iprompt = (eshkp->billct > 1 ? ynq("Itemized billing?") : 'y');
+*/
+        iprompt = (eshkp->billct > 1 ? ynq("\8cÂ\95Ê\82É\8a¨\92è\82µ\82Ü\82·\82©\81H") : 'y');
         itemize = (iprompt == 'y');
         if (iprompt == 'q')
             goto thanks;
@@ -1469,8 +1749,13 @@ proceed:
             update_inventory(); /* Done in dopayobj() if itemize. */
     }
     if (!ANGRY(shkp) && paid && !muteshk(shkp))
+#if 0 /*JP*/
         verbalize("Thank you for shopping in %s %s!", s_suffix(shkname(shkp)),
                   shtypes[eshkp->shoptype - SHOPBASE].name);
+#else
+        verbalize("%s\82Ì%s\82Ö\82Ü\82½\82Ç\82¤\82¼\81I", shkname(shkp),
+                  shtypes[eshkp->shoptype - SHOPBASE].name);
+#endif
     return 1;
 }
 
@@ -1499,8 +1784,13 @@ boolean itemize;
         return PAY_BUY;
     }
     if (itemize && umoney + ESHK(shkp)->credit == 0L) {
+#if 0 /*JP*/
         You("%shave no money or credit left.",
             stashed_gold ? "seem to " : "");
+#else
+        You("\82à\82¤\82¨\8bà\82à\97a\82¯\8bà\82à\82È\82¢%s\81D",
+            stashed_gold ? "\82æ\82¤\82¾" : "");
+#endif
         return PAY_BROKE;
     }
     /* we may need to temporarily adjust the object, if part of the
@@ -1524,26 +1814,48 @@ boolean itemize;
     if (itemize) {
         char qbuf[BUFSZ], qsfx[BUFSZ];
 
+/*JP
         Sprintf(qsfx, " for %ld %s.  Pay?", ltmp, currency(ltmp));
+*/
+        Sprintf(qsfx, "\82Í%ld%s\82Å\82·.\94\83\82¢\82Ü\82·\82©\81H", ltmp, currency(ltmp));
+#if 0 /*JP*/
         (void) safe_qbuf(qbuf, (char *) 0, qsfx, obj,
                          (quan == 1L) ? Doname2 : doname, ansimpleoname,
                          (quan == 1L) ? "that" : "those");
+#else
+        (void) safe_qbuf(qbuf, (char *) 0, qsfx, obj,
+                         (quan == 1L) ? Doname2 : doname, ansimpleoname,
+                         "\82»\82ê");
+#endif
         if (yn(qbuf) == 'n') {
             buy = PAY_SKIP;                         /* don't want to buy */
         } else if (quan < bp->bquan && !consumed) { /* partly used goods */
             obj->quan = bp->bquan - save_quan;      /* used up amount */
+#if 0 /*JP*/
             verbalize("%s for the other %s before buying %s.",
                       ANGRY(shkp) ? "Pay" : "Please pay",
                       simpleonames(obj), /* short name suffices */
                       save_quan > 1L ? "these" : "this one");
+#else
+            verbalize("\82»\82ê\82ð\94\83\82¤\82Ü\82¦\82É\91¼\82Ì%s\82ð%s",
+                      simpleonames(obj),
+                      ANGRY(shkp) ? "\95¥\82¦\81I" : "\95¥\82Á\82Ä\82­\82¾\82³\82¢\81D");
+#endif
             buy = PAY_SKIP; /* shk won't sell */
         }
     }
     if (buy == PAY_BUY && umoney + ESHK(shkp)->credit < ltmp) {
+#if 0 /*JP*/
         You("don't%s have gold%s enough to pay for %s.",
             stashed_gold ? " seem to" : "",
             (ESHK(shkp)->credit > 0L) ? " or credit" : "",
             thesimpleoname(obj));
+#else
+        You("%s\82Ì\91ã\8bà\82ð\8ex\95¥\82¤\82¾\82¯\82Ì\82¨\8bà%s\8e\9d\82Á\82Ä\82È\82¢%s\81D",
+            thesimpleoname(obj),
+            (ESHK(shkp)->credit > 0L) ? "\82à\97a\82¯\8bà\82à" : "\82ð",
+            stashed_gold ? "\82æ\82¤\82¾" : "");
+#endif
         buy = itemize ? PAY_SKIP : PAY_CANT;
     }
 
@@ -1556,10 +1868,17 @@ boolean itemize;
     }
 
     pay(ltmp, shkp);
+#if 0 /*JP*/
     shk_names_obj(shkp, obj,
                   consumed ? "paid for %s at a cost of %ld gold piece%s.%s"
                            : "bought %s for %ld gold piece%s.%s",
                   ltmp, "");
+#else
+    shk_names_obj(shkp, obj,
+                  consumed ? "%s\82É\8bà\89Ý%ld\96\87%s\82ð\8ex\95¥\82Á\82½\81D%s"
+                           : "%s\82ð\8bà\89Ý%ld\96\87%s\82Å\94\83\82Á\82½\81D%s",
+                  ltmp, "");
+#endif
     obj->quan = save_quan; /* restore original count */
     /* quan => amount just bought, save_quan => remaining unpaid count */
     if (consumed) {
@@ -1695,11 +2014,21 @@ int croaked;
         if (cansee(shkp->mx, shkp->my) && croaked) {
             takes[0] = '\0';
             if (has_head(shkp->data) && !rn2(2))
+#if 0 /*JP*/
                 Sprintf(takes, ", shakes %s %s,", mhis(shkp),
                         mbodypart(shkp, HEAD));
+#else
+                Strcpy(takes, "\8eñ\82ð\90U\82è\81C");
+#endif
+#if 0 /*JP*/
             pline("%s %slooks at your corpse%s and %s.", Monnam(shkp),
                   (!shkp->mcanmove || shkp->msleeping) ? "wakes up, " : "",
                   takes, !inhishop(shkp) ? "disappears" : "sighs");
+#else
+            pline("%s\82Í%s\82 \82È\82½\82Ì\8e\80\91Ì\82ð\8c©\82Ä%s%s\81D", Monnam(shkp),
+                  (!shkp->mcanmove || shkp->msleeping) ? "\96Ú\82ð\82³\82Ü\82·\82Æ" : "",
+                  takes, !inhishop(shkp) ? "\8ep\82ð\8fÁ\82µ\82½" : "\97­\91§\82ð\82Â\82¢\82½");
+#endif
         }
         rouse_shk(shkp, FALSE); /* wake shk for bones */
         taken = (roomno == eshkp->shoproom);
@@ -1713,7 +2042,10 @@ int croaked;
         && !eshkp->following) {
         taken = (invent != 0);
         if (taken)
+/*JP
             pline("%s gratefully inherits all your possessions.",
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\8e\9d\82¿\95¨\82ð\82 \82è\82ª\82½\82­\8eó\82¯\82Æ\82Á\82½\81D",
                   shkname(shkp));
         set_repo_loc(shkp);
         goto clear;
@@ -1733,10 +2065,18 @@ int croaked;
         umoney = money_cnt(invent);
         takes[0] = '\0';
         if (!shkp->mcanmove || shkp->msleeping)
+/*JP
             Strcat(takes, "wakes up and ");
+*/
+            Strcat(takes, "\96Ú\82ª\82³\82ß\82é\82Æ\81C");
         if (distu(shkp->mx, shkp->my) > 2)
+/*JP
             Strcat(takes, "comes and ");
+*/
+            Strcat(takes, "\8bß\82Ã\82«\81C");
+#if 0 /*JP*/
         Strcat(takes, "takes");
+#endif
 
         if (loss > umoney || !loss || roomno == eshkp->shoproom) {
             eshkp->robbed -= umoney;
@@ -1745,17 +2085,27 @@ int croaked;
             if (umoney > 0)
                 money2mon(shkp, umoney);
             context.botl = 1;
+/*JP
             pline("%s %s all your possessions.", shkname(shkp), takes);
+*/
+            pline("%s\82Í%s\82 \82È\82½\82Ì\8e\9d\82¿\95¨\82·\82×\82Ä\82ð\82à\82ç\82Á\82½\81D", shkname(shkp), takes);
             taken = TRUE;
             /* where to put player's invent (after disclosure) */
             set_repo_loc(shkp);
         } else {
             money2mon(shkp, loss);
             context.botl = 1;
+#if 0 /*JP*/
             pline("%s %s the %ld %s %sowed %s.", Monnam(shkp), takes, loss,
                   currency(loss),
                   strncmp(eshkp->customer, plname, PL_NSIZ) ? "" : "you ",
                   shkp->female ? "her" : "him");
+#else
+            pline("%s\82Í%s%s\8eØ\82è\82Ä\82¢\82é%ld%s\82ð\8eó\82¯\82Æ\82Á\82½\81D", Monnam(shkp), takes,
+                  strncmp(eshkp->customer, plname, PL_NSIZ) ?
+                  "" : "\82 \82È\82½\82ª",
+                  loss, currency(loss));
+#endif
             /* shopkeeper has now been paid in full */
             pacify_shk(shkp);
             eshkp->following = 0;
@@ -2335,10 +2685,14 @@ const char *arg;
     obj_name = doname(obj);
     /* Use an alternate message when extra information is being provided */
     if (was_unknown) {
+#if 0 /*JP*/
         Sprintf(fmtbuf, "%%s; you %s", fmt);
         obj_name[0] = highc(obj_name[0]);
         pline(fmtbuf, obj_name, (obj->quan > 1L) ? "them" : "it", amt,
               plur(amt), arg);
+#else
+        pline(fmt, obj_name, amt, "", arg);
+#endif
     } else {
         You(fmt, obj_name, amt, plur(amt), arg);
     }
@@ -2401,7 +2755,10 @@ boolean ininv, dummy, silent;
         return;
     } else if (ESHK(shkp)->billct == BILLSZ) {
         if (!silent)
+/*JP
             You("got that for free!");
+*/
+            You("\82»\82ê\82ð\82½\82¾\82Å\8eè\82É\93ü\82ê\82½\81I");
         return;
     }
 
@@ -2446,15 +2803,24 @@ boolean ininv, dummy, silent;
         char buf[BUFSZ];
 
         if (!ltmp) {
+/*JP
             pline("%s has no interest in %s.", Monnam(shkp), the(xname(obj)));
+*/
+            pline("%s\82Í%s\82É\8b»\96¡\82ð\8e¦\82³\82È\82¢\81D", Monnam(shkp), xname(obj));
             return;
         }
         if (!ininv) {
+#if 0 /*JP*/
             pline("%s will cost you %ld %s%s.", The(xname(obj)), ltmp,
                   currency(ltmp), (obj->quan > 1L) ? " each" : "");
+#else
+            pline("%s\82Í%s\82½\82Á\82½\82Ì%ld%s\82¾\81D", xname(obj),
+                  (obj->quan > 1L) ? "\88ê\82Â" : "", ltmp, currency(ltmp));
+#endif
         } else {
             long save_quan = obj->quan;
 
+#if 0 /*JP*/
             Strcpy(buf, "\"For you, ");
             if (ANGRY(shkp)) {
                 Strcat(buf, "scum;");
@@ -2462,24 +2828,52 @@ boolean ininv, dummy, silent;
                 append_honorific(buf);
                 Strcat(buf, "; only");
             }
+#else
+            Strcpy(buf, "\81u");
+            if (ANGRY(shkp)) {
+                Strcat(buf, "\82±\82Ì\83N\83\\82Á\82½\82ê\81C");
+            } else {
+                append_honorific(buf);
+                Strcat(buf, "\81C");
+            }
+#endif
             obj->quan = 1L; /* fool xname() into giving singular */
+#if 0 /*JP*/
             pline("%s %ld %s %s %s%s.\"", buf, ltmp, currency(ltmp),
                   (save_quan > 1L) ? "per" : (contentscount && !obj->unpaid)
                                                  ? "for the contents of this"
                                                  : "for this",
                   xname(obj),
                   (contentscount && obj->unpaid) ? and_its_contents : "");
+#else
+            pline("%s%s%s\82½\82Á\82½\82Ì%ld%s\82¾\81D\81v", buf, xname(obj),
+                  (save_quan > 1L) ? "\82Í\88ê\82Â" : (contentscount && !obj->unpaid)
+                                                 ? "\82Ì\92\86\90g\82Í"
+                                                 : "\82Í",
+                  ltmp, currency(ltmp));
+#endif
             obj->quan = save_quan;
         }
     } else if (!silent) {
         if (ltmp)
+#if 0 /*JP*/
             pline_The("list price of %s%s%s is %ld %s%s.",
                       (contentscount && !obj->unpaid) ? the_contents_of : "",
                       the(xname(obj)),
                       (contentscount && obj->unpaid) ? and_its_contents : "",
                       ltmp, currency(ltmp), (obj->quan > 1L) ? " each" : "");
+#else
+            pline_The("%s%s%s%s\82½\82Á\82½\82Ì%ld%s\82¾.",
+                      the(xname(obj)),
+                      (contentscount && !obj->unpaid) ? "\82Ì\92\86\90g\82Í" : "",
+                      (contentscount && obj->unpaid) ? and_its_contents : "",
+                      (obj->quan > 1L) ? "\82»\82ê\82¼\82ê" : "", ltmp, currency(ltmp));
+#endif
         else
+/*JP
             pline("%s does not notice.", Monnam(shkp));
+*/
+            pline("%s\82Í\8bC\82ª\82Â\82¢\82Ä\82¢\82È\82¢\81D", Monnam(shkp));
     }
 }
 
@@ -2489,18 +2883,32 @@ char *buf;
 {
     /* (chooses among [0]..[3] normally; [1]..[4] after the
        Wizard has been killed or invocation ritual performed) */
+#if 0 /*JP*/
     static const char *const honored[] = { "good", "honored", "most gracious",
                                            "esteemed",
                                            "most renowned and sacred" };
+#else
+    static const char *const honored[] = {
+        "\82â\82\9f", "\82â\82\9f\81C\96¼\97_\82 \82é", "\82â\82\9f\81C\8fã\95i\82È",
+        "\82â\82\9f\81C\91¸\8ch\82·\82é",
+        "\82â\82\9f\81C\8d\82\96¼\82Å\90_\90¹\82È"
+        };
+#endif
     Strcat(buf, honored[rn2(SIZE(honored) - 1) + u.uevent.udemigod]);
     if (is_vampire(youmonst.data))
         Strcat(buf, (flags.female) ? " dark lady" : " dark lord");
     else if (is_elf(youmonst.data))
         Strcat(buf, (flags.female) ? " hiril" : " hir");
     else
+#if 0 /*JP*/
         Strcat(buf, !is_human(youmonst.data) ? " creature" : (flags.female)
                                                                  ? " lady"
                                                                  : " sir");
+#else
+        Strcat(buf, !is_human(youmonst.data) ? "\90\95¨\82³\82ñ" : (flags.female)
+                                                          ? "\82¨\8fì\82³\82ñ"
+                                                          : "\92U\93ß\82³\82ñ");
+#endif
 }
 
 void
@@ -2705,31 +3113,60 @@ boolean peaceful, silent;
 
             if (credit_use) {
                 if (ESHK(shkp)->credit) {
+#if 0 /*JP*/
                     You("have %ld %s credit remaining.", ESHK(shkp)->credit,
                         currency(ESHK(shkp)->credit));
+#else
+                    You("%ld%s\82Ì\97a\82¯\8bà\82ª\8ec\82Á\82Ä\82¢\82é\81D", ESHK(shkp)->credit,
+                        currency(ESHK(shkp)->credit));
+#endif
                     return value;
                 } else if (!value) {
+/*JP
                     You("have no credit remaining.");
+*/
+                    pline("\97a\82¯\8bà\82Í\82È\82­\82È\82Á\82½\81D");
                     return 0;
                 }
+/*JP
                 still = "still ";
+*/
+                still = "\82³\82ç\82É";
             }
             if (obj->oclass == COIN_CLASS)
+#if 0 /*JP*/
                 You("%sowe %s %ld %s!", still, mon_nam(shkp), value,
                     currency(value));
+#else
+                You("%s%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81I", still, mon_nam(shkp), value,
+                    currency(value));
+#endif
             else
+#if 0 /*JP*/
                 You("%sowe %s %ld %s for %s!", still, mon_nam(shkp), value,
                     currency(value), obj->quan > 1L ? "them" : "it");
+#else
+                You("%s%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81I", still, mon_nam(shkp), value,
+                    currency(value));
+#endif
         }
     } else {
         ESHK(shkp)->robbed += value;
 
         if (!silent) {
             if (cansee(shkp->mx, shkp->my)) {
+#if 0 /*JP*/
                 Norep("%s booms: \"%s, you are a thief!\"", Monnam(shkp),
                       plname);
+#else
+                Norep("%s\82Í\8b©\82ñ\82¾\81F\81u%s\81C\91Ò\82Ä\81I\82±\82Ì\82Ç\82ë\82Ú\82¤\82ß\81I\81v", Monnam(shkp),
+                      plname);
+#endif
             } else
+/*JP
                 Norep("You hear a scream, \"Thief!\"");
+*/
+                Norep("\8bà\90Ø\82è\90º\82ð\95·\82¢\82½\81C\81u\91Ò\82Ä\81I\82±\82Ì\82Ç\82ë\82Ú\82¤\82ß\81I\81v");
         }
         hot_pursuit(shkp);
         (void) angry_guards(FALSE);
@@ -2811,7 +3248,10 @@ xchar x, y;
 
         if (!unpaid && (sell_how != SELL_DONTSELL)
             && !special_stock(obj, shkp, FALSE))
+/*JP
             pline("%s seems uninterested.", Monnam(shkp));
+*/
+            pline("%s\82Í\8b»\96¡\82ª\82È\82¢\82æ\82¤\82¾\81D", Monnam(shkp));
         return;
     }
 
@@ -2821,7 +3261,10 @@ xchar x, y;
 
     if (ANGRY(shkp)) { /* they become shop-objects, no pay */
         if (!muteshk(shkp))
+/*JP
             verbalize("Thank you, scum!");
+*/
+            verbalize("\82 \82è\82ª\82Æ\82æ\81C\82±\82Ì\83N\83\\82Á\82½\82ê\81I");
         subfrombill(obj, shkp);
         return;
     }
@@ -2835,7 +3278,10 @@ xchar x, y;
             eshkp->robbed = 0L;
         if (offer && !muteshk(shkp))
             verbalize(
+/*JP
   "Thank you for your contribution to restock this recently plundered shop.");
+*/
+  "\8añ\91¡\82ð\82Ç\82¤\82à\82 \82è\82ª\82Æ\82¤\81D\8dÅ\8bß\93\90\82Ý\82É\82 \82Á\82Ä\8eQ\82Á\82Ä\82½\82ñ\82¾\81D");
         subfrombill(obj, shkp);
         return;
     }
@@ -2852,7 +3298,10 @@ xchar x, y;
                     eshkp->loan = 0L;
             }
             eshkp->debit -= gltmp;
+/*JP
             Your("debt is %spaid off.", eshkp->debit ? "partially " : "");
+*/
+            Your("\8eØ\8bà\82Í%s\8ex\95¥\82í\82ê\82½\81D", eshkp->debit ? "\88ê\95\94" : "");
         } else {
             long delta = gltmp - eshkp->debit;
 
@@ -2860,11 +3309,19 @@ xchar x, y;
             if (eshkp->debit) {
                 eshkp->debit = 0L;
                 eshkp->loan = 0L;
+/*JP
                 Your("debt is paid off.");
+*/
+                Your("\8eØ\8bà\82Í\8ex\95¥\82í\82ê\82½\81D");
             }
             if (eshkp->credit == delta)
+#if 0 /*JP*/
                 You("have established %ld %s credit.", delta,
                     currency(delta));
+#else
+                pline("%ld%s\82ð\97a\82¯\82½\81D", delta,
+                      currency(delta));
+#endif
             else
                 pline("%ld %s added to your credit; total is now %ld %s.",
                       delta, currency(delta), eshkp->credit,
@@ -2888,8 +3345,13 @@ xchar x, y;
         || offer == 0L || (obj->oclass == FOOD_CLASS && obj->oeaten)
         || (Is_candle(obj)
             && obj->age < 20L * (long) objects[obj->otyp].oc_cost)) {
+#if 0 /*JP*/
         pline("%s seems uninterested%s.", Monnam(shkp),
               cgold ? " in the rest" : "");
+#else
+        pline("%s\82Í%s\8b»\96¡\82ª\82È\82¢\82æ\82¤\82¾\81D", Monnam(shkp),
+              cgold ? "\8ec\82è\95¨\82É\82Í" : "");
+#endif
         if (container)
             dropped_container(obj, shkp, FALSE);
         obj->no_charge = 1;
@@ -2904,11 +3366,21 @@ xchar x, y;
         if (sell_how == SELL_NORMAL || auto_credit) {
             c = sell_response = 'y';
         } else if (sell_response != 'n') {
+/*JP
             pline("%s cannot pay you at present.", shkname(shkp));
+*/
+            pline("%s\82Í\8d¡\82Ì\82Æ\82±\82ë\82Í\8ex\95¥\82¦\82È\82¢\81D", Monnam(shkp));
+#if 0 /*JP*/
             Sprintf(qbuf, "Will you accept %ld %s in credit for ", tmpcr,
                     currency(tmpcr));
             c = ynaq(safe_qbuf(qbuf, qbuf, "?", obj, doname, thesimpleoname,
                                (obj->quan == 1L) ? "that" : "those"));
+#else
+            Sprintf(qbuf, "\82É\82Â\82¢\82Ä%ld%s\82Ì\97a\82¯\8bà\82ð\8eó\82¯\82¢\82ê\82Ü\82·\82©\81H", tmpcr,
+                    currency(tmpcr));
+            c = ynaq(safe_qbuf(qbuf, "", qbuf, obj, doname, thesimpleoname,
+                               "\82»\82ê"));
+#endif
             if (c == 'a') {
                 c = 'y';
                 auto_credit = TRUE;
@@ -2917,12 +3389,21 @@ xchar x, y;
             c = 'n';
 
         if (c == 'y') {
+#if 0 /*JP*/
             shk_names_obj(
                 shkp, obj,
                 (sell_how != SELL_NORMAL)
                     ? "traded %s for %ld zorkmid%s in %scredit."
                     : "relinquish %s and acquire %ld zorkmid%s in %scredit.",
                 tmpcr, (eshkp->credit > 0L) ? "additional " : "");
+#else
+            shk_names_obj(
+                shkp, obj,
+                (sell_how != SELL_NORMAL)
+                    ? "%s\82ð\8bà\89Ý%ld\96\87\95ª\82Ì\97a\82¯\8bà\82Å\8eó\82¯\82Æ\82Á\82½%s\81D"
+                    : "%s\82ð\93n\82µ\81C\8bà\89Ý%ld\96\87\95ª\82Ì\97a\82¯\8bà\82ð\93¾\82½%s\81D",
+                tmpcr, "");
+#endif
             eshkp->credit += tmpcr;
             subfrombill(obj, shkp);
         } else {
@@ -2972,6 +3453,7 @@ xchar x, y;
                 "... your item in the <bag>.  Sell it?"
                 "... your items in the <bag>.  Sell them?"
              */
+#if 0 /*JP*/
             Sprintf(qbuf, "%s offers%s %ld gold piece%s for %s%s ",
                     shkname(shkp), short_funds ? " only" : "", offer,
                     plur(offer),
@@ -2990,6 +3472,17 @@ xchar x, y;
                     one ? "it" : "them");
             (void) safe_qbuf(qbuf, qbuf, qsfx, obj, xname, simpleonames,
                              one ? "that" : "those");
+#else
+            Sprintf(qbuf,
+                    "%s\82Í\82 \82È\82½\82Ì", Monnam(shkp));
+            Sprintf(qbuf,
+                    "%s\82É%ld\82Ì\92l%s\81D\94\84\82è\82Ü\82·\82©\81H",
+                    (!ltmp && cltmp) ? "\82Ì\92\86\90g" : "",
+                    offer, 
+                    short_funds ? "\82µ\82©\82Â\82¯\82È\82©\82Á\82½" : "\82ð\82Â\82¯\82½");
+            (void) safe_qbuf(qbuf, qbuf, qsfx, obj, xname, simpleonames,
+                             "\82»\82ê");
+#endif
         } else
             qbuf[0] = '\0'; /* just to pacify lint */
 
@@ -3012,6 +3505,7 @@ xchar x, y;
                 obj->no_charge = 1;
             subfrombill(obj, shkp);
             pay(-offer, shkp);
+#if 0 /*JP*/
             shk_names_obj(shkp, obj,
                           (sell_how != SELL_NORMAL)
                            ? ((!ltmp && cltmp && only_partially_your_contents)
@@ -3019,6 +3513,15 @@ xchar x, y;
                          : "sold %s for %ld gold piece%s.%s")
             : "relinquish %s and receive %ld gold piece%s in compensation.%s",
                           offer, "");
+#else
+            shk_names_obj(shkp, obj,
+                          (sell_how != SELL_NORMAL)
+                           ? ((!ltmp && cltmp && only_partially_your_contents)
+                         ? "%s\82Ì\92\86\90g\82ð\8bà\89Ý%ld\96\87\82Å\94\84\82Á\82½%s\81D%s"
+                         : "%s\82ð\8bà\89Ý%ld\96\87\82Å\94\84\82Á\82½%s\81D%s")
+            : "%s\82ð\93n\82µ\81C\8bà\89Ý%ld\96\87\82Ì\91ã\8f\9e\82ð\8eó\82¯\82Æ\82Á\82½%s\81D%s",
+                          offer, "");
+#endif
             break;
         default:
             impossible("invalid sell response");
@@ -3063,7 +3566,10 @@ int mode; /* 0: deliver count 1: paged */
     }
 
     datawin = create_nhwindow(NHW_MENU);
+/*JP
     putstr(datawin, 0, "Unpaid articles already used up:");
+*/
+    putstr(datawin, 0, "\82·\82Å\82É\8eg\82Á\82Ä\82µ\82Ü\82Á\82½\96¢\95¥\82Ì\95i\96Ú\81F");
     putstr(datawin, 0, "");
 
     totused = 0L;
@@ -3093,11 +3599,19 @@ int mode; /* 0: deliver count 1: paged */
         if (totused)
             putstr(datawin, 0, "");
         totused += eshkp->debit;
+#if 0 /*JP*/
         buf_p = xprname((struct obj *) 0, "usage charges and/or other fees",
                         GOLD_SYM, FALSE, eshkp->debit, 0L);
+#else
+        buf_p = xprname((struct obj *) 0, "\8eg\97p\97¿\82Ü\82½\82Í\91¼\82Ì\8eè\90\94\97¿",
+                        GOLD_SYM, FALSE, eshkp->debit, 0L);
+#endif
         putstr(datawin, 0, buf_p);
     }
+/*JP
     buf_p = xprname((struct obj *) 0, "Total:", '*', FALSE, totused, 0L);
+*/
+    buf_p = xprname((struct obj *) 0, "\8d\87\8cv\81F", '*', FALSE, totused, 0L);
     putstr(datawin, 0, "");
     putstr(datawin, 0, buf_p);
     display_nhwindow(datawin, FALSE);
@@ -3167,11 +3681,20 @@ register xchar x, y;
         /* if it is the shk's pos, you hit and anger him */
         && (shkp->mx != x || shkp->my != y)) {
         if (mnearto(shkp, x, y, TRUE) && !muteshk(shkp))
+/*JP
             verbalize("Out of my way, scum!");
+*/
+                    verbalize("\82Ç\82¯\81C\83N\83\\82Á\82½\82ê\81I");
         if (cansee(x, y)) {
+#if 0 /*JP*/
             pline("%s nimbly%s catches %s.", Monnam(shkp),
                   (x == shkp->mx && y == shkp->my) ? "" : " reaches over and",
                   the(xname(obj)));
+#else
+            pline("%s\82Í\82·\82Î\82â\82­%s%s\82ð\82Â\82©\82Ü\82¦\82½\81D", Monnam(shkp),
+                  (x == shkp->mx && y == shkp->my) ? "" : "\8bß\82Ã\82¢\82Ä",
+                  xname(obj));
+#endif
             if (!canspotmon(shkp))
                 map_invisible(x, y);
             delay_output();
@@ -3307,42 +3830,78 @@ boolean croaked;
         return;
 
     if (saw_untrap) {
-        Sprintf(trapmsg, "%s trap%s",
+#if 0 /*JP*/
+        Sprintf(trapmsg, "% trap",
                 (saw_untrap > 3) ? "several" : (saw_untrap > 1) ? "some"
                                                                 : "a",
                 plur(saw_untrap));
         Sprintf(eos(trapmsg), " %s", vtense(trapmsg, "are"));
         Sprintf(eos(trapmsg), " removed from the %s",
                 (doorway_trap && saw_untrap == 1) ? "doorway" : "floor");
+#else
+        Sprintf(trapmsg, "%sã©\82ª%s\82©\82ç\8fÁ\82¦",
+                (saw_untrap > 3) ? "\82 \82¿\82±\82¿\82Ì" : (saw_untrap > 1) ? "\89½\83J\8f\8a\82Ì"
+                                                                   : "",
+                (doorway_trap && saw_untrap == 1) ? "\94à" : "\8f°");
+#endif
     } else
         trapmsg[0] = '\0'; /* not just lint suppression... */
 
     if (saw_walls) {
+#if 0 /*JP*/
         char wallbuf[BUFSZ];
 
         Sprintf(wallbuf, "section%s", plur(saw_walls));
         pline("Suddenly, %s %s of wall %s up!",
               (saw_walls == 1) ? "a" : (saw_walls <= 3) ? "some" : "several",
               wallbuf, vtense(wallbuf, "close"));
+#else
+        pline("\93Ë\91R\81C\95Ç\82ª%s\95Â\82Ü\82Á\82½\81I",
+              (saw_walls == 1) ? "" : (saw_walls <= 3) ? "\89½\89Ó\8f\8a\82©" : "\82 \82¿\82±\82¿\82Å");
+#endif
 
         if (saw_door)
+/*JP
             pline_The("shop door reappears!");
+*/
+            pline("\93X\82Ì\94à\82ª\82Ü\82½\8c»\82í\82ê\82½\81I");
         if (saw_floor)
+/*JP
             pline_The("floor is repaired!");
+*/
+            pline("\8f°\82Í\8fC\95\9c\82³\82ê\82½\81I");
         if (saw_untrap)
+/*JP
             pline("%s!", upstart(trapmsg));
+*/
+            pline("%s\82½\81I", trapmsg);
     } else {
         if (saw_door || saw_floor || saw_untrap)
+#if 0 /*JP*/
             pline("Suddenly, %s%s%s%s%s!",
                   saw_door ? "the shop door reappears" : "",
                   (saw_door && saw_floor) ? " and " : "",
                   saw_floor ? "the floor damage is gone" : "",
                   ((saw_door || saw_floor) && *trapmsg) ? " and " : "",
                   trapmsg);
+#else
+            pline("\93Ë\91R\81C%s%s%s%s%s\82½!",
+                  saw_door ? "\93X\82Ì\94à\82ª\82Ü\82½\8c»\82í\82ê" : "",
+                  (saw_door && saw_floor) ? "\81C" : "",
+                  saw_floor ? "\8f°\82Ì\8f\9d\82ª\8fC\95\9c\82³\82ê" : "",
+                  ((saw_door || saw_floor) && *trapmsg) ? "\81C" : "",
+                  trapmsg);
+#endif
         else if (inside_shop(u.ux, u.uy) == ESHK(shkp)->shoproom)
+/*JP
             You_feel("more claustrophobic than before.");
+*/
+            You("\91O\82æ\82è\95Â\8f\8a\8b°\95|\8fÇ\8bC\96¡\82É\82È\82Á\82½\81D");
         else if (!Deaf && !rn2(10))
+/*JP
             Norep("The dungeon acoustics noticeably change.");
+*/
+            Norep("\96À\8b{\82Ì\89¹\8b¿\82Í\82¢\82¿\82\82é\82µ\82­\95Ï\82Á\82½\81D");
     }
     if (stop_picking)
         stop_occupation();
@@ -3436,7 +3995,10 @@ boolean catchup; /* restoring a level */
              * Take the easy way out and put ball&chain under hero.
              */
             if (!muteshk(shkp))
+/*JP
                 verbalize("Get your junk out of my wall!");
+*/
+                verbalize("\82»\82Ì\83K\83\89\83N\83^\82ð\8aO\82É\8e\9d\82Á\82Ä\8ds\82«\82È\81I");
             unplacebc(); /* pick 'em up */
             placebc();   /* put 'em down */
         }
@@ -3507,26 +4069,44 @@ register struct monst *shkp;
                                           || (omx == u.ux || omy == u.uy))) {
         if (ANGRY(shkp) || (Conflict && !resist(shkp, RING_CLASS, 0, 0))) {
             if (Displaced)
+/*JP
                 Your("displaced image doesn't fool %s!", mon_nam(shkp));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\8c\89e\82É\82¾\82Ü\82³\82ê\82È\82©\82Á\82½\81I", mon_nam(shkp));
             (void) mattacku(shkp);
             return 0;
         }
         if (eshkp->following) {
             if (strncmp(eshkp->customer, plname, PL_NSIZ)) {
                 if (!muteshk(shkp))
+#if 0 /*JP*/
                     verbalize("%s, %s!  I was looking for %s.", Hello(shkp),
                               plname, eshkp->customer);
+#else
+                    verbalize("%s\81I\82í\82½\82µ\82Í%s\82ð\92T\82µ\82Ä\82¢\82Ü\82·\81D", Hello(shkp),
+                              eshkp->customer);
+#endif
                 eshkp->following = 0;
                 return 0;
             }
             if (moves > followmsg + 4) {
                 if (!muteshk(shkp))
+#if 0 /*JP*/
                     verbalize("%s, %s!  Didn't you forget to pay?",
                               Hello(shkp), plname);
+#else
+                    verbalize("%s\81I\8ex\95¥\82¢\82ð\96Y\82ê\82Ä\82¢\82Ü\82¹\82ñ\82©\81H",
+                              Hello(shkp));
+#endif
                 followmsg = moves;
                 if (!rn2(9)) {
+#if 0 /*JP*/
                     pline("%s doesn't like customers who don't pay.",
                           Monnam(shkp));
+#else
+                    pline ("%s\82Í\8bà\82ð\95¥\82í\82È\82¢\8bq\82ª\8c\99\82¢\82Ý\82½\82¢\82¾\81D",
+                           Monnam(shkp));
+#endif
                     rile_shk(shkp);
                 }
             }
@@ -3624,7 +4204,10 @@ register int fall;
 {
     register struct monst *shkp = shop_keeper(*u.ushops);
     int lang;
+/*JP
     const char *grabs = "grabs";
+*/
+    const char *grabs = "\82Â\82©\82ñ\82¾";
 
     if (!shkp)
         return;
@@ -3640,7 +4223,10 @@ register int fall;
 
     if (!inhishop(shkp)) {
         if (Role_if(PM_KNIGHT)) {
+/*JP
             You_feel("like a common thief.");
+*/
+            You("\93D\96_\93¯\91R\82È\8bC\82ª\82µ\82½\81D");
             adjalign(-sgn(u.ualign.type));
         }
         return;
@@ -3649,15 +4235,28 @@ register int fall;
     if (!fall) {
         if (lang == 2) {
             if (u.utraptype == TT_PIT)
+#if 0 /*JP*/
                 verbalize(
                     "Be careful, %s, or you might fall through the floor.",
                     flags.female ? "madam" : "sir");
+#else
+                verbalize("\92\8d\88Ó\82µ\82Ä\82­\82¾\82³\82¢%s\81C\8f°\82©\82ç\97\8e\82¿\82Ü\82·\82æ\81D",
+                          flags.female ? "\82¨\8fì\82³\82ñ" : "\82¨\8bq\82³\82ñ");
+#endif
             else
+#if 0 /*JP*/
                 verbalize("%s, do not damage the floor here!",
                           flags.female ? "Madam" : "Sir");
+#else
+                verbalize("%s\81C\8f°\82É\8f\9d\82ð\82Â\82¯\82È\82¢\82Å\82­\82¾\82³\82¢\81I",
+                          flags.female ? "\82¨\8fì\82³\82ñ" : "\82¨\8bq\82³\82ñ");
+#endif
         }
         if (Role_if(PM_KNIGHT)) {
+/*JP
             You_feel("like a common thief.");
+*/
+            You("\93D\96_\93¯\91R\82È\8bC\82ª\82µ\82½\81D");
             adjalign(-sgn(u.ualign.type));
         }
     } else if (!um_dist(shkp->mx, shkp->my, 5)
@@ -3666,7 +4265,10 @@ register int fall;
         register struct obj *obj, *obj2;
 
         if (nolimbs(shkp->data)) {
+/*JP
             grabs = "knocks off";
+*/
+            grabs = "\92@\82«\97\8e\82µ\82½";
 #if 0
             /* This is what should happen, but for balance
              * reasons, it isn't currently.
@@ -3683,17 +4285,29 @@ register int fall;
             /* for some reason the shopkeeper can't come next to you */
             if (distu(shkp->mx, shkp->my) > 2) {
                 if (lang == 2)
+
+/*JP
                     pline("%s curses you in anger and frustration!",
+*/
+                    pline("\93{\82è\82Å\95s\96\9e\82Ì\82½\82Ü\82Á\82Ä\82¢\82é%s\82Í\82 \82È\82½\82ð\8eô\82Á\82½\81I",
                           shkname(shkp));
                 else if (lang == 1)
                     growl(shkp);
                 rile_shk(shkp);
                 return;
             } else
+#if 0 /*JP*/
                 pline("%s %s, and %s your backpack!", shkname(shkp),
                       makeplural(locomotion(shkp->data, "leap")), grabs);
+#else
+                pline("%s\82Í\94ò\82Ñ\82Â\82¢\82Ä\81C\82 \82È\82½\82Ì\94w\95\89\82¢\91Ü\82ð%s\81I", shkname(shkp),
+                      grabs);
+#endif
         } else
+/*JP
             pline("%s %s your backpack!", shkname(shkp), grabs);
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\94w\95\89\82¢\91Ü\82ð%s\81I", shkname(shkp), grabs);
 
         for (obj = invent; obj; obj = obj2) {
             obj2 = obj->nobj;
@@ -3747,8 +4361,13 @@ boolean cant_mollify;
     register boolean uinshp = (*u.ushops != '\0');
     char qbuf[80];
     register xchar x, y;
+#if 0 /*JP*/
     boolean dugwall = (!strcmp(dmgstr, "dig into")    /* wand */
                        || !strcmp(dmgstr, "damage")); /* pick-axe */
+#else
+    boolean ni_wo = !strcmp(dmgstr, "\8c\8a\82ð\82 \82¯\82é");              /* wand */
+    boolean dugwall = (ni_wo || !strcmp(dmgstr, "\8f\9d\82Â\82¯\82é")); /* pick-axe */
+#endif
     boolean animal, pursue;
     struct damage *tmp_dam, *appear_here = 0;
     /* any number >= (80*80)+(24*24) would do, actually */
@@ -3827,7 +4446,10 @@ boolean cant_mollify;
     if (uinshp) {
         if (um_dist(shkp->mx, shkp->my, 1)
             && !um_dist(shkp->mx, shkp->my, 3)) {
+/*JP
             pline("%s leaps towards you!", shkname(shkp));
+*/
+            pline("%s\82Í\82 \82È\82½\82É\94ò\82Ñ\82©\82©\82Á\82½\81I", shkname(shkp));
             mnexto(shkp);
         }
         pursue = um_dist(shkp->mx, shkp->my, 1);
@@ -3842,8 +4464,14 @@ boolean cant_mollify;
          */
         if (MON_AT(x, y)) {
             if (!Deaf && !animal) {
+/*JP
                 You_hear("an angry voice:");
+*/
+                You("\93{\82è\82Ì\90º\82ð\95·\82¢\82½\81F");
+/*JP
                 verbalize("Out of my way, scum!");
+*/
+                verbalize("\82Ç\82¯\81I\83N\83\\82Á\82½\82ê\81I");
                 wait_synch();
 #if defined(UNIX) || defined(VMS)
 #if defined(SYSV) || defined(ULTRIX) || defined(VMS)
@@ -3866,33 +4494,64 @@ boolean cant_mollify;
             if (animal && shkp->mcanmove && !shkp->msleeping)
                 yelp(shkp);
         } else if (pursue || uinshp || !um_dist(x, y, 1)) {
+#if 0 /*JP*/
             verbalize("How dare you %s my %s?", dmgstr,
                       dugwall ? "shop" : "door");
+#else
+            verbalize("\82Ç\82¤\82µ\82Ä%s%s%s\82è\82µ\82½\82ñ\82¾\81H",
+                      dugwall ? "\93X" : "\94à",
+                      ni_wo ? "\82É" : "\82ð",
+                      jpast(dmgstr));
+#endif
         } else {
+/*JP
             pline("%s shouts:", shkname(shkp));
+*/
+            pline("%s\82Í\82³\82¯\82ñ\82¾\81F", shkname(shkp));
+#if 0 /*JP*/
             verbalize("Who dared %s my %s?", dmgstr,
                       dugwall ? "shop" : "door");
+#else
+            verbalize("\92N\82ª%s%s%s\82è\82µ\82½\82ñ\82¾\82ë\82¤\81H",
+                      dugwall ? "\93X" : "\94à",
+                      ni_wo ? "\82É" : "\82ð",
+                      jpast(dmgstr));
+#endif
         }
         hot_pursuit(shkp);
         return;
     }
 
     if (Invis)
+/*JP
         Your("invisibility does not fool %s!", shkname(shkp));
+*/
+        pline("%s\82Í\93§\96¾\82È\82 \82È\82½\82É\82¾\82Ü\82³\82ê\82È\82©\82Á\82½\81I", shkname(shkp));
+#if 0 /*JP*/
     Sprintf(qbuf, "%sYou did %ld %s worth of damage!%s  Pay?",
             !animal ? cad(TRUE) : "", cost_of_damage,
             currency(cost_of_damage), !animal ? "\"" : "");
+#else
+    Sprintf(qbuf,"\81u\82¨\82¢\81I%ld%s\82Ì\91¹\8aQ\82¾\81I\81v\95¥\82¢\82Ü\82·\82©\81H",
+            cost_of_damage, currency(cost_of_damage));
+#endif
     if (yn(qbuf) != 'n') {
         cost_of_damage = check_credit(cost_of_damage, shkp);
         money2mon(shkp, cost_of_damage);
         context.botl = 1;
+/*JP
         pline("Mollified, %s accepts your restitution.", shkname(shkp));
+*/
+        pline("%s\82Í\81C\8a´\8fî\82ð\82â\82í\82ç\82°\94\85\8f\9e\8bà\82ð\8eó\82¯\82Æ\82Á\82½\81D", shkname(shkp));
         /* move shk back to his home loc */
         home_shk(shkp, FALSE);
         pacify_shk(shkp);
     } else {
         if (!animal)
+/*JP
             verbalize("Oh, yes!  You'll pay!");
+*/
+            verbalize("\82³\82 \81C\95¥\82¤\82ñ\82¾\81I");
         else
             growl(shkp);
         hot_pursuit(shkp);
@@ -3954,7 +4613,10 @@ register struct obj *first_obj;
     struct monst *shkp = shop_keeper(inside_shop(u.ux, u.uy));
 
     tmpwin = create_nhwindow(NHW_MENU);
+/*JP
     putstr(tmpwin, 0, "Fine goods for sale:");
+*/
+    putstr(tmpwin, 0, "\94\84\82è\82É\82Å\82Ä\82¢\82é\82·\82Î\82ç\82µ\82¢\8f¤\95i\81F");
     putstr(tmpwin, 0, "");
     for (otmp = first_obj; otmp; otmp = otmp->nexthere) {
         if (otmp->oclass == COIN_CLASS)
@@ -3966,14 +4628,27 @@ register struct obj *first_obj;
         if (Has_contents(otmp))
             cost += contained_cost(otmp, shkp, 0L, FALSE, FALSE);
         if (!cost) {
+/*JP
             Strcpy(price, "no charge");
+*/
+            Strcpy(price, "\96³\97¿");
             contentsonly = FALSE;
         } else {
+#if 0 /*JP*/
             Sprintf(price, "%ld %s%s", cost, currency(cost),
                     (otmp->quan) > 1L ? " each" : "");
+#else
+            Sprintf(price, "%s%ld%s", 
+                    otmp->quan > 1L ? "\82»\82ê\82¼\82ê" : "", cost, currency(cost));
+#endif
         }
+#if 0 /*JP*/
         Sprintf(buf, "%s%s, %s", contentsonly ? the_contents_of : "",
                 doname(otmp), price);
+#else
+        Sprintf(buf, "%s%s\81C%s", doname(otmp),
+                contentsonly ? "\82Ì\92\86\90g" : "", price);
+#endif
         putstr(tmpwin, 0, buf), cnt++;
     }
     if (cnt > 1) {
@@ -3981,20 +4656,40 @@ register struct obj *first_obj;
     } else if (cnt == 1) {
         if (!cost) {
             /* "<doname(obj)>, no charge" */
+#if 0 /*JP*/
             pline("%s!", upstart(buf)); /* buf still contains the string */
+#else
+            pline("%s\81I", buf); /* buf still contains the string */
+#endif
         } else {
             /* print cost in slightly different format, so can't reuse buf;
                cost and contentsonly are already set up */
+#if 0 /*JP*/
             Sprintf(buf, "%s%s", contentsonly ? the_contents_of : "",
                     doname(first_obj));
+#else
+            Sprintf(buf, "%s%s", doname(first_obj),
+                    contentsonly ? "\82Ì\92\86\90g" : "");
+#endif
+#if 0 /*JP*/
             pline("%s, price %ld %s%s%s", upstart(buf), cost, currency(cost),
                   (first_obj->quan > 1L) ? " each" : "",
                   contentsonly ? "." : shk_embellish(first_obj, cost));
+#else
+            pline("%s%s\82Í%s%ld%s\82¾\81D", 
+                  shk_embellish(first_obj, cost), buf,
+                  first_obj->quan > 1L ? "\82»\82ê\82¼\82ê" : "",
+                  cost, currency(cost));
+#endif
         }
     }
     destroy_nhwindow(tmpwin);
 }
 
+/*JP
\93X\8eå\82Ì\94\84\82è\95\8bå\81B\89p\8cê\82Å\82Í\96\96\94ö\82É\95t\82­\82ª\93ú\96{\8cê\82Å\82Í\90æ\93ª\82É\95t\82­\81B
\92¼\8cã\82É\83A\83C\83e\83\80\96¼\82ª\97\88\82é\82Ì\82Å\81A\83A\83C\83e\83\80\82É\91Î\82·\82é\8c`\97e\82Å\82à\93Æ\97§\82µ\82½\95\82Å\82à\97Ç\82¢\81B
+ */
 STATIC_OVL const char *
 shk_embellish(itm, cost)
 register struct obj *itm;
@@ -4011,40 +4706,91 @@ long cost;
             else
                 o = itm->oclass;
             if (o == FOOD_CLASS)
+/*JP
                 return ", gourmets' delight!";
+*/
+                return "\83O\83\8b\83\81\82ª\8b\83\82¢\82Ä\8aì\82Ô";
             if (objects[itm->otyp].oc_name_known
                     ? objects[itm->otyp].oc_magic
                     : (o == AMULET_CLASS || o == RING_CLASS || o == WAND_CLASS
                        || o == POTION_CLASS || o == SCROLL_CLASS
                        || o == SPBOOK_CLASS))
+/*JP
                 return ", painstakingly developed!";
+*/
+                return "\88ê\8b\89\82Ì\96\82\97Í\82ð\94é\82ß\82½";
+/*JP
             return ", superb craftsmanship!";
+*/
+            return "\88ê\97¬\90E\90l\82Ì\8dì\82Á\82½";
         case 3:
+/*JP
             return ", finest quality.";
+*/
+            return "\8dÅ\8d\82\82Ì\95i\8e¿\82ð\8cÖ\82é";
         case 2:
+/*JP
             return ", an excellent choice.";
+*/
+            return "\82³\82·\82ª\82¨\8bq\82³\82ñ\96Ú\82ª\8d\82\82¢\81I";
         case 1:
+/*JP
             return ", a real bargain.";
+*/
+            return "\96{\93ú\82Ì\96Ú\8bÊ\8f¤\95i\81I";
         default:
             break;
         }
     } else if (itm->oartifact) {
+/*JP
         return ", one of a kind!";
+*/
+        return "\82±\82ê\82Í\90¢\8aE\82É\82Ü\82½\82Æ\82È\82¢\81I";
     }
+/*JP
     return ".";
+*/
+    return "";
 }
 
 /* First 4 supplied by Ronen and Tamar, remainder by development team */
 const char *Izchak_speaks[] = {
+/*JP
     "%s says: 'These shopping malls give me a headache.'",
+*/
+    "%s\9eH\82­\81w\82±\82ê\82ç\83V\83\87\83b\83s\83\93\83O\8aX\82Í\93ª\92É\82Ì\83^\83l\82¾\81D\81x",
+/*JP
     "%s says: 'Slow down.  Think clearly.'",
+*/
+    "%s\9eH\82­\81w\97\8e\82¿\92\85\82¢\82Ä\81C\96¾\9dð\82É\8dl\82¦\82æ\81D\81x",
+/*JP
     "%s says: 'You need to take things one at a time.'",
+*/
+    "%s\9eH\82­\81w\88ê\93x\82É\88ê\8cÂ\82¸\82Â\8eæ\82é\95K\97v\82ª\82 \82é\81D\81x",
+/*JP
     "%s says: 'I don't like poofy coffee... give me Columbian Supremo.'",
+*/
+    "%s\9eH\82­\81w\83z\83\82\82Á\82Û\82¢\83R\81[\83q\82Í\8dD\82«\82\82á\82È\82¢\81D\81D\81D\83R\83\8d\83\93\83r\83A\83\93\81E\83X\83v\83\8c\83\82\82ð\82½\82Ì\82Þ\81D\81x",
+/*JP
     "%s says that getting the devteam's agreement on anything is difficult.",
+*/
+    "\8aJ\94­\83`\81[\83\80\82É\89½\82ç\82©\82Ì\8b¦\92è\82ð\8b\81\82ß\82é\82±\82Æ\82Í\8d¢\93ï\82¾\82Æ%s\82Í\8fq\82×\82½\81D",
+/*JP
     "%s says that he has noticed those who serve their deity will prosper.",
+*/
+    "%s\82Í\90_\82É\8ed\82¦\82Ä\82¢\82é\82â\82Â\82Í\90¬\8c÷\82µ\82Ä\82¢\82é\82Æ\8fq\82×\82½\81D",
+/*JP
     "%s says: 'Don't try to steal from me - I have friends in high places!'",
+*/
+    "%s\9eH\82­\81w\8e\84\82©\82ç\93\90\82à\82¤\82È\82ñ\82Ä\8ev\82í\82È\82¢\82±\82Æ\82¾\81D\8fã\82Ì\95û\82É\92m\82è\8d\87\82¢\82ª\82¢\82é\82ñ\82¾\82©\82ç\81D\81x",
+/*JP
     "%s says: 'You may well need something from this shop in the future.'",
+*/
+    "%s\9eH\82­\81w\8f«\97\88\82±\82Ì\93X\82Ì\89½\82©\82ª\95K\97v\82Æ\82È\82é\82¾\82ë\82¤\81x",
+/*JP
     "%s comments about the Valley of the Dead as being a gateway."
+*/
+    "%s\82Í\8e\80\82Ì\92J\82Í\83Q\81[\83g\83E\83F\83C\82¾\82ë\82¤\82Æ\83R\83\81\83\93\83g\82ð\8fq\82×\82½\81D"
 };
 
 void
@@ -4058,7 +4804,11 @@ struct monst *shkp;
            not actually a shk, which could happen if someone
            wishes for a shopkeeper statue and then animates it.
            (Note: shkname() would be "" in a case like this.) */
+#if 0 /*JP*/
         pline("%s asks whether you've seen any untended shops recently.",
+#else
+        pline("%s\82Í\8dÅ\8bß\82Ç\82±\82©\82É\93X\88õ\82Ì\82¢\82È\82¢\93X\82Í\82È\82¢\82©\82Æ\82½\82¸\82Ë\82½\81D",
+#endif
               Monnam(shkp));
         /* [Perhaps we ought to check whether this conversation
            is taking place inside an untended shop, but a shopless
@@ -4068,38 +4818,80 @@ struct monst *shkp;
 
     eshk = ESHK(shkp);
     if (ANGRY(shkp)) {
+#if 0 /*JP*/
         pline("%s mentions how much %s dislikes %s customers.",
               shkname(shkp), mhe(shkp), eshk->robbed ? "non-paying" : "rude");
+#else
+        pline("%s\82Í%s\8bq\82Í\91å\8c\99\82¢\82¾\82Æ\8c¾\82Á\82½\81D",
+              shkname(shkp),  eshk->robbed ? "\8bà\82ð\8ex\95¥\82í\82È\82¢" : "\96³\97ç\82È");
+#endif
     } else if (eshk->following) {
         if (strncmp(eshk->customer, plname, PL_NSIZ)) {
+#if 0 /*JP*/
             verbalize("%s %s!  I was looking for %s.",
                       Hello(shkp), plname, eshk->customer);
+#else
+            verbalize("%s\81I\8e\84\82Í%s\82ð\92T\82µ\82Ä\82¢\82Ü\82·\81D",
+                      Hello(shkp), eshk->customer);
+#endif
             eshk->following = 0;
         } else {
+#if 0 /*JP*/
             verbalize("%s %s!  Didn't you forget to pay?",
                       Hello(shkp), plname);
+#else
+            verbalize("%s\81I\8ex\95¥\82¢\82ð\96Y\82ê\82Ä\82¢\82Ü\82¹\82ñ\82©\81H", 
+                      Hello(shkp));
+#endif
         }
     } else if (eshk->billct) {
         register long total = addupbill(shkp) + eshk->debit;
 
+#if 0 /*JP*/
         pline("%s says that your bill comes to %ld %s.",
               shkname(shkp), total, currency(total));
+#else
+        pline("%s\82Í\8a¨\92è\82ª%ld%s\82É\82È\82é\82Æ\8c¾\82Á\82½\81D",
+              shkname(shkp), total, currency(total));
+#endif
     } else if (eshk->debit) {
+#if 0 /*JP*/
         pline("%s reminds you that you owe %s %ld %s.",
               shkname(shkp), mhim(shkp), eshk->debit, currency(eshk->debit));
+#else
+        pline("\82 \82È\82½\82Í%s\82É%ld%s\82Ì\8eØ\82è\82ª\82 \82é\82±\82Æ\82ð\8ev\82¢\82¾\82µ\82½\81D",
+              shkname(shkp), eshk->debit, currency(eshk->debit));
+#endif
     } else if (eshk->credit) {
+#if 0 /*JP*/
         pline("%s encourages you to use your %ld %s of credit.",
               shkname(shkp), eshk->credit, currency(eshk->credit));
+#else
+        pline("%s\82Í%ld%s\82Ì\97a\82¯\8bà\82ð\8eg\82¤\82æ\82¤\8a©\82ß\82½\81D",
+              shkname(shkp), eshk->credit, currency(eshk->credit));
+#endif
     } else if (eshk->robbed) {
+/*JP
         pline("%s complains about a recent robbery.", shkname(shkp));
+*/
+        pline("%s\82Í\8dÅ\8bß\82Ì\8b­\93\90\82É\82Â\82¢\82Ä\8bð\92s\82ð\82±\82Ú\82µ\82½\81D", shkname(shkp));
     } else if ((shkmoney = money_cnt(shkp->minvent)) < 50) {
+/*JP
         pline("%s complains that business is bad.", shkname(shkp));
+*/
+        pline("%s\82Í\8f¤\94\84\82ª\8e|\82­\82¢\82Á\82Ä\82È\82¢\82Æ\8bð\92s\82ð\82±\82Ú\82µ\82½\81D", shkname(shkp));
     } else if (shkmoney > 4000) {
+/*JP
         pline("%s says that business is good.", shkname(shkp));
+*/
+        pline("%s\82Í\8f¤\94\84\82ª\8e|\82­\82¢\82Á\82Ä\82¢\82é\82Æ\8c¾\82Á\82½\81D", shkname(shkp));
     } else if (is_izchak(shkp, FALSE)) {
         pline(Izchak_speaks[rn2(SIZE(Izchak_speaks))], shkname(shkp));
     } else {
+/*JP
         pline("%s talks about the problem of shoplifters.", shkname(shkp));
+*/
+        pline("%s\82Í\96\9c\88ø\82Ì\96â\91è\82É\82Â\82¢\82Ä\98b\82µ\82½\81D", shkname(shkp));
     }
 }
 
@@ -4119,8 +4911,12 @@ boolean silent;
         }
     }
     if (cnt && !silent)
+#if 0 /*JP*/
         pline_The("Kop%s (disappointed) vanish%s into thin air.",
                   plur(cnt), (cnt == 1) ? "es" : "");
+#else
+        pline("\82ª\82Á\82©\82è\82µ\82½\8cx\8a¯\82Í\8bó\8bC\82É\82Æ\82¯\82Ä\8fÁ\82¦\82½\81D");
+#endif
 }
 
 STATIC_OVL long
@@ -4202,12 +4998,24 @@ boolean altusage;
 
     arg1 = arg2 = "";
     if (otmp->oclass == SPBOOK_CLASS) {
+/*JP
         fmt = "%sYou owe%s %ld %s.";
+*/
+        fmt = "%s%s%ld%s\82Ì\8eØ\82è\82¾\81D";
+/*JP
         Sprintf(buf, "This is no free library, %s!  ", cad(FALSE));
+*/
+        Strcpy(buf, "\82¨\82¢\81I\82±\82±\82Í\90}\8f\91\8aÙ\82\82á\82È\82¢\81I");
         arg1 = rn2(2) ? buf : "";
+/*JP
         arg2 = ESHK(shkp)->debit > 0L ? " an additional" : "";
+*/
+        arg2 = ESHK(shkp)->debit > 0L ? "\82³\82ç\82É\8c¾\82¦\82Î" : "";
     } else if (otmp->otyp == POT_OIL) {
+/*JP
         fmt = "%s%sThat will cost you %ld %s (Yendorian Fuel Tax).";
+*/
+        fmt = "%s%s\92l\92i\82Í%ld%s(\83C\83F\83\93\83_\81[\94R\97¿\90Å)\82¾\81D";
     } else if (altusage && (otmp->otyp == BAG_OF_TRICKS
                             || otmp->otyp == HORN_OF_PLENTY)) {
         fmt = "%s%sEmptying that will cost you %ld %s.";
@@ -4216,11 +5024,20 @@ boolean altusage;
         if (!rn2(3))
             arg1 = "Watch it!  ";
     } else {
+/*JP
         fmt = "%s%sUsage fee, %ld %s.";
+*/
+        fmt = "%s%s\8eg\97p\97¿\82Í\81C%ld%s\82¾\81D";
         if (!rn2(3))
+/*JP
             arg1 = "Hey!  ";
+*/
+            arg1 = "\82¨\82¢\81I";
         if (!rn2(3))
+/*JP
             arg2 = "Ahem.  ";
+*/
+            arg2 = "\83S\83z\83\93\81D";
     }
 
     if (!muteshk(shkp)) {
@@ -4255,18 +5072,33 @@ register long amount;
     eshkp = ESHK(shkp);
     if (eshkp->credit >= amount) {
         if (eshkp->credit > amount)
+/*JP
             Your("credit is reduced by %ld %s.", amount, currency(amount));
+*/
+            Your("\97a\82¯\8bà\82Í%ld%s\8c¸\82Á\82½\81D", amount, currency(amount));
         else
+/*JP
             Your("credit is erased.");
+*/
+            Your("\97a\82¯\8bà\82Í\92 \8fÁ\82µ\82É\82È\82Á\82½\81D");
         eshkp->credit -= amount;
     } else {
         delta = amount - eshkp->credit;
         if (eshkp->credit)
+/*JP
             Your("credit is erased.");
+*/
+            Your("\97a\82¯\8bà\82Í\92 \8fÁ\82µ\82É\82È\82Á\82½\81D");
         if (eshkp->debit)
+/*JP
             Your("debt increases by %ld %s.", delta, currency(delta));
-        else
+*/
+            Your("\8eØ\8bà\82Í%ld%s\91\9d\82¦\82½\81D", delta, currency(delta));
+       else
+/*JP
             You("owe %s %ld %s.", shkname(shkp), delta, currency(delta));
+*/
+            You("%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81D", shkname(shkp), delta, currency(delta));
         eshkp->debit += delta;
         eshkp->loan += delta;
         eshkp->credit = 0L;
@@ -4301,8 +5133,13 @@ register xchar x, y;
         && ESHK(shkp)->shd.y == y
         && shkp->mcanmove && !shkp->msleeping
         && (ESHK(shkp)->debit || ESHK(shkp)->billct || ESHK(shkp)->robbed)) {
+#if 0 /*JP*/
         pline("%s%s blocks your way!", shkname(shkp),
               Invis ? " senses your motion and" : "");
+#else
+        pline("%s\82Í%s\82 \82È\82½\82Ì\91O\82É\97§\82¿\82Ó\82³\82ª\82Á\82½\81I", shkname(shkp),
+              Invis ? "\93®\82«\82ð\8a´\82\82Æ\82è\81C" : "");
+#endif
         return TRUE;
     }
     return FALSE;
@@ -4338,14 +5175,20 @@ register xchar x, y;
         && (x == sx - 1 || x == sx + 1 || y == sy - 1 || y == sy + 1)
         && (Invis || carrying(PICK_AXE) || carrying(DWARVISH_MATTOCK)
             || u.usteed)) {
+#if 0 /*JP*/
         pline("%s%s blocks your way!", shkname(shkp),
               Invis ? " senses your motion and" : "");
+#else
+        pline("%s%s\82 \82È\82½\82Ì\91O\82É\97§\82¿\82Ó\82³\82ª\82Á\82½\81I", shkname(shkp),
+              Invis ? "\93®\82«\82ð\8a´\82\82Æ\82è\81C" : "");
+#endif
         return TRUE;
     }
     return FALSE;
 }
 
 /* "your " or "Foobar's " (note the trailing space) */
+/* \81u\82 \82È\82½\82Ì\81v\82©\81uFoobar\82Ì\81v(\96\96\94ö\82É\8bó\94\92\82Í\95s\97v) */
 char *
 shk_your(buf, obj)
 char *buf;
@@ -4353,7 +5196,10 @@ struct obj *obj;
 {
     if (!shk_owns(buf, obj) && !mon_owns(buf, obj))
         Strcpy(buf, the_your[carried(obj) ? 1 : 0]);
+/*JP
     return strcat(buf, " ");
+*/
+    return buf;
 }
 
 char *
@@ -4362,7 +5208,9 @@ char *buf;
 struct obj *obj;
 {
     (void) shk_your(buf, obj);
+#if 0 /*JP*/
     *buf = highc(*buf);
+#endif
     return buf;
 }
 
@@ -4378,7 +5226,17 @@ struct obj *obj;
         && (obj->unpaid || (obj->where == OBJ_FLOOR && !obj->no_charge
                             && costly_spot(x, y)))) {
         shkp = shop_keeper(inside_shop(x, y));
+#if 0 /*JP*/
         return strcpy(buf, shkp ? s_suffix(shkname(shkp)) : the_your[0]);
+#else
+        if (shkp) {
+            strcpy(buf, shkname(shkp));
+            strcat(buf, "\82Ì");
+        } else {
+            strcpy(buf, "");
+        }
+        return buf;
+#endif
     }
     return (char *) 0;
 }
@@ -4389,10 +5247,19 @@ char *buf;
 struct obj *obj;
 {
     if (obj->where == OBJ_MINVENT)
+#if 0 /*JP*/
         return strcpy(buf, s_suffix(y_monnam(obj->ocarry)));
+#else
+        {
+            strcpy(buf, mon_nam(obj->ocarry));
+            strcat(buf, "\82Ì");
+            return buf;
+        }
+#endif
     return (char *) 0;
 }
 
+#if 0 /*JP*//*\97\90\96\\82É\8cÄ\82Ñ\82©\82¯\82é\82Æ\82«\82Ì\93ñ\90l\8fÌ\81B\93ú\96{\8cê\82Å\82Í\81u\82¨\82¢\81v\82Å\8dÏ\82Þ\82Ì\82Å\8eg\82í\82È\82¢*/
 STATIC_OVL const char *
 cad(altusage)
 boolean altusage; /* used as a verbalized exclamation:  \"Cad! ...\" */
@@ -4428,6 +5295,7 @@ boolean altusage; /* used as a verbalized exclamation:  \"Cad! ...\" */
     }
     return res;
 }
+#endif /*JP*/
 
 #ifdef __SASC
 void
index 728976c..a3efec2 100644 (file)
@@ -4,6 +4,11 @@
 
 /* shknam.c -- initialize a shop */
 
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL boolean FDECL(veggy_item, (struct obj * obj, int));
@@ -200,7 +205,10 @@ static const char *const shkhealthfoods[] = {
  * (by testing the sign) whether to use mkobj() or mksobj().
  */
 const struct shclass shtypes[] = {
+/*JP
     { "general store",
+*/
+    { "\8eG\89Ý\89®",
       RANDOM_CLASS,
       42,
       D_SHOP,
@@ -211,7 +219,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkgeneral },
+/*JP
     { "used armor dealership",
+*/
+    { "\92\86\8cÃ\8aZ\8f¤\89ï",
       ARMOR_CLASS,
       14,
       D_SHOP,
@@ -222,7 +233,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkarmors },
+/*JP
     { "second-hand bookstore",
+*/
+    { "\8cÃ\8f\91\93X",
       SCROLL_CLASS,
       10,
       D_SHOP,
@@ -233,7 +247,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkbooks },
+/*JP
     { "liquor emporium",
+*/
+    {"\82¨\8eð\82Ì\95S\89Ý\93X",
       POTION_CLASS,
       10,
       D_SHOP,
@@ -244,7 +261,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkliquors },
+/*JP
     { "antique weapons outlet",
+*/
+    { "\8cÃ\95\90\8aí\90ê\96å\8f¬\94\84\93X",
       WEAPON_CLASS,
       5,
       D_SHOP,
@@ -255,7 +275,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkweapons },
+/*JP
     { "delicatessen",
+*/
+    { "\90H\95i\93X",
       FOOD_CLASS,
       5,
       D_SHOP,
@@ -266,7 +289,10 @@ const struct shclass shtypes[] = {
         { 3, -ICE_BOX },
         { 0, 0 } },
       shkfoods },
+/*JP
     { "jewelers",
+*/
+    { "\95ó\90Î\93X",
       RING_CLASS,
       3,
       D_SHOP,
@@ -277,7 +303,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkrings },
+/*JP
     { "quality apparel and accessories",
+*/
+    { "\82¨\83V\83\83\83\8c\82È\97m\95i\93X",
       WAND_CLASS,
       3,
       D_SHOP,
@@ -286,7 +315,10 @@ const struct shclass shtypes[] = {
         { 5, -ELVEN_CLOAK },
         { 0, 0 } },
       shkwands },
+/*JP
     { "hardware store",
+*/
+    { "\93¹\8bï\89®",
       TOOL_CLASS,
       3,
       D_SHOP,
@@ -297,7 +329,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shktools },
+/*JP
     { "rare books",
+*/
+    { "\8c\82Ì\96{\89®",
       SPBOOK_CLASS,
       3,
       D_SHOP,
@@ -308,7 +343,10 @@ const struct shclass shtypes[] = {
         { 0, 0 },
         { 0, 0 } },
       shkbooks },
+/*JP
     { "health food store",
+*/
+    { "\8c\92\8dN\90H\95i\82Ì\93X",
       FOOD_CLASS,
       2,
       D_SHOP,
@@ -323,7 +361,10 @@ const struct shclass shtypes[] = {
      * probability of zero.  They are only created via the special level
      * loader.
      */
+/*JP
     { "lighting store",
+*/
+    { "\8fÆ\96¾\93X",
       TOOL_CLASS,
       0,
       D_SHOP,
@@ -722,7 +763,10 @@ register struct mkroom *sroom;
             n--;
         else if (inside_shop(sx, sy - 1))
             n++;
+/*JP
         Sprintf(buf, "Closed for inventory");
+*/
+        Sprintf(buf, "\92I\89µ\82µ\82Ì\82½\82ß\95Â\93X");
         make_engr_at(m, n, buf, 0L, DUST);
     }
 
index b91da15..0c47c8e 100644 (file)
--- a/src/sit.c
+++ b/src/sit.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "artifact.h"
 
@@ -22,9 +27,15 @@ take_gold()
         }
     }
     if (!lost_money) {
+/*JP
         You_feel("a strange sensation.");
+*/
+        You("\8aï\96­\82È\8a´\8ao\82ð\8ao\82¦\82½\81D");
     } else {
+/*JP
         You("notice you have no money!");
+*/
+        You("\82¨\8bà\82ð\8e\9d\82Á\82Ä\82È\82¢\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½\81I");
         context.botl = 1;
     }
 }
@@ -33,12 +44,18 @@ take_gold()
 int
 dosit()
 {
+/*JP
     static const char sit_message[] = "sit on the %s.";
+*/
+    static const char sit_message[] = "%s\82É\8dÀ\82Á\82½\81D";
     register struct trap *trap = t_at(u.ux, u.uy);
     register int typ = levl[u.ux][u.uy].typ;
 
     if (u.usteed) {
+/*JP
         You("are already sitting on %s.", mon_nam(u.usteed));
+*/
+        You("\82à\82¤%s\82É\8dÀ\82Á\82Ä\82¢\82é\81D", mon_nam(u.usteed));
         return 0;
     }
     if (u.uundetected && is_hider(youmonst.data) && u.umonnum != PM_TRAPPER)
@@ -46,19 +63,34 @@ dosit()
 
     if (!can_reach_floor(FALSE)) {
         if (u.uswallow)
+/*JP
             There("are no seats in here!");
+*/
+            pline("\82±\82±\82É\82Í\88Ö\8eq\82ª\82È\82¢\81I");
         else if (Levitation)
+/*JP
             You("tumble in place.");
+*/
+            You("\82»\82Ì\8fê\82Å\92\88\95Ô\82è\82µ\82½\81D");
         else
+/*JP
             You("are sitting on air.");
+*/
+            You("\8bó\92\86\82É\8dÀ\82Á\82½\81D");
         return 0;
     } else if (u.ustuck && !sticks(youmonst.data)) {
         /* holding monster is next to hero rather than beneath, but
            hero is in no condition to actually sit at has/her own spot */
         if (humanoid(u.ustuck->data))
+/*JP
             pline("%s won't offer %s lap.", Monnam(u.ustuck), mhis(u.ustuck));
+*/
+            pline("%s\82Í\82Ð\82´\82ð\8fo\82³\82È\82©\82Á\82½\81D", Monnam(u.ustuck));
         else
+/*JP
             pline("%s has no lap.", Monnam(u.ustuck));
+*/
+            pline("%s\82É\82Í\82Ð\82´\82ª\82È\82¢\81D", Monnam(u.ustuck));
         return 0;
     } else if (is_pool(u.ux, u.uy) && !Underwater) { /* water walking */
         goto in_water;
@@ -71,111 +103,206 @@ dosit()
 
         obj = level.objects[u.ux][u.uy];
         if (youmonst.data->mlet == S_DRAGON && obj->oclass == COIN_CLASS) {
+#if 0 /*JP*/
             You("coil up around your %shoard.",
                 (obj->quan + money_cnt(invent) < u.ulevel * 1000) ? "meager "
                                                                   : "");
+#else
+            You("%s\82¨\95ó\82Ì\82Ü\82í\82è\82Å\82Æ\82®\82ë\82ð\8aª\82¢\82½\81D",
+                (obj->quan + money_cnt(invent) < u.ulevel * 1000) ? "\82í\82¸\82©\82È"
+                                                                  : "");
+#endif
         } else {
+/*JP
             You("sit on %s.", the(xname(obj)));
+*/
+            You("%s\82É\8dÀ\82Á\82½\81D", the(xname(obj)));
             if (!(Is_box(obj) || objects[obj->otyp].oc_material == CLOTH))
+/*JP
                 pline("It's not very comfortable...");
+*/
+                pline("\82 \82Ü\82è\8dÀ\82è\82²\82±\82¿\82ª\82æ\82­\82È\82¢\81D\81D\81D");
         }
     } else if (trap != 0 || (u.utrap && (u.utraptype >= TT_LAVA))) {
         if (u.utrap) {
             exercise(A_WIS, FALSE); /* you're getting stuck longer */
             if (u.utraptype == TT_BEARTRAP) {
+/*JP
                 You_cant("sit down with your %s in the bear trap.",
+*/
+                pline("%s\82ª\8cF\82Ìã©\82É\82Í\82³\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\8dÀ\82ê\82È\82¢\81D",
                          body_part(FOOT));
                 u.utrap++;
             } else if (u.utraptype == TT_PIT) {
                 if (trap && trap->ttyp == SPIKED_PIT) {
+/*JP
                     You("sit down on a spike.  Ouch!");
+*/
+                    You("\83g\83Q\82Ì\8fã\82É\8dÀ\82Á\82½\81D\82¢\82Ä\82Á\81I");
                     losehp(Half_physical_damage ? rn2(2) : 1,
+/*JP
                            "sitting on an iron spike", KILLED_BY);
+*/
+                           "\93S\82Ì\83g\83Q\82Ì\8fã\82É\8dÀ\82Á\82Ä", KILLED_BY);
                     exercise(A_STR, FALSE);
                 } else
+/*JP
                     You("sit down in the pit.");
+*/
+                    You("\97\8e\82µ\8c\8a\82Ì\92\86\82Å\8dÀ\82Á\82½\81D");
                 u.utrap += rn2(5);
             } else if (u.utraptype == TT_WEB) {
+/*JP
                 You("sit in the spider web and get entangled further!");
+*/
+                You("\82­\82à\82Ì\91\83\82Ì\92\86\82Å\8dÀ\82Á\82½\82ç\81C\82Ü\82·\82Ü\82·\97\8d\82Ü\82Á\82½\81I");
                 u.utrap += rn1(10, 5);
             } else if (u.utraptype == TT_LAVA) {
                 /* Must have fire resistance or they'd be dead already */
+/*JP
                 You("sit in the lava!");
+*/
+                You("\97n\8aâ\82Ì\92\86\82É\8dÀ\82Á\82½\81I");
                 if (Slimed)
                     burn_away_slime();
                 u.utrap += rnd(4);
+/*JP
                 losehp(d(2, 10), "sitting in lava",
+*/
+                losehp(d(2, 10), "\97n\8aâ\82Ì\92\86\82É\8dÀ\82Á\82Ä",
                        KILLED_BY); /* lava damage */
             } else if (u.utraptype == TT_INFLOOR
                        || u.utraptype == TT_BURIEDBALL) {
+/*JP
                 You_cant("maneuver to sit!");
+*/
+                You("\8dÀ\82é\82æ\82¤\82È\93®\8dì\82ª\82Å\82«\82È\82¢\81I");
                 u.utrap++;
             }
         } else {
+/*JP
             You("sit down.");
+*/
+            You("\8dÀ\82Á\82½\81D");
             dotrap(trap, 0);
         }
     } else if (Underwater || Is_waterlevel(&u.uz)) {
         if (Is_waterlevel(&u.uz))
+/*JP
             There("are no cushions floating nearby.");
+*/
+            pline("\8bß\82­\82É\95\82\82¢\82Ä\82¢\82é\83N\83b\83V\83\87\83\93\82Í\82È\82¢\81D");
         else
+/*JP
             You("sit down on the muddy bottom.");
+*/
+            You("\82Ç\82ë\82Ç\82ë\82µ\82½\92ê\82É\8dÀ\82Á\82½\81D");
     } else if (is_pool(u.ux, u.uy)) {
     in_water:
+/*JP
         You("sit in the water.");
+*/
+        You("\90\85\82Ì\92\86\82Å\8dÀ\82Á\82½\81D");
         if (!rn2(10) && uarm)
+/*JP
             (void) water_damage(uarm, "armor", TRUE);
+*/
+            (void) water_damage(uarm, "\8aZ", TRUE);
         if (!rn2(10) && uarmf && uarmf->otyp != WATER_WALKING_BOOTS)
+/*JP
             (void) water_damage(uarm, "armor", TRUE);
+*/
+            (void) water_damage(uarm, "\8aZ", TRUE);
     } else if (IS_SINK(typ)) {
         You(sit_message, defsyms[S_sink].explanation);
+/*JP
         Your("%s gets wet.", humanoid(youmonst.data) ? "rump" : "underside");
+*/
+        Your("%s\82Í\94G\82ê\82½\81D", humanoid(youmonst.data) ? "\90K" : "\89º\95\94");
     } else if (IS_ALTAR(typ)) {
         You(sit_message, defsyms[S_altar].explanation);
         altar_wrath(u.ux, u.uy);
     } else if (IS_GRAVE(typ)) {
         You(sit_message, defsyms[S_grave].explanation);
     } else if (typ == STAIRS) {
+/*JP
         You(sit_message, "stairs");
+*/
+        You(sit_message, "\8aK\92i");
     } else if (typ == LADDER) {
+/*JP
         You(sit_message, "ladder");
+*/
+        You(sit_message, "\82Í\82µ\82²");
     } else if (is_lava(u.ux, u.uy)) {
         /* must be WWalking */
+/*JP
         You(sit_message, "lava");
+*/
+        You(sit_message, "\97n\8aâ");
         burn_away_slime();
         if (likes_lava(youmonst.data)) {
+/*JP
             pline_The("lava feels warm.");
+*/
+            pline("\97n\8aâ\82Í\92g\82©\82¢\81D");
             return 1;
         }
+/*JP
         pline_The("lava burns you!");
+*/
+        You("\97n\8aâ\82Å\94R\82¦\82½\81I");
         losehp(d((Fire_resistance ? 2 : 10), 10), /* lava damage */
+/*JP
                "sitting on lava", KILLED_BY);
+*/
+               "\97n\8aâ\82É\8dÀ\82Á\82Ä", KILLED_BY);
     } else if (is_ice(u.ux, u.uy)) {
         You(sit_message, defsyms[S_ice].explanation);
         if (!Cold_resistance)
+/*JP
             pline_The("ice feels cold.");
+*/
+            pline("\95X\82Í\97â\82½\82­\8a´\82\82½\81D");
     } else if (typ == DRAWBRIDGE_DOWN) {
+/*JP
         You(sit_message, "drawbridge");
+*/
+        You(sit_message, "\92µ\82Ë\8b´");
     } else if (IS_THRONE(typ)) {
         You(sit_message, defsyms[S_throne].explanation);
         if (rnd(6) > 4) {
             switch (rnd(13)) {
             case 1:
                 (void) adjattrib(rn2(A_MAX), -rn1(4, 3), FALSE);
+/*JP
                 losehp(rnd(10), "cursed throne", KILLED_BY_AN);
+*/
+                losehp(rnd(10), "\8eô\82í\82ê\82½\8bÊ\8dÀ\82Å", KILLED_BY_AN);
                 break;
             case 2:
                 (void) adjattrib(rn2(A_MAX), 1, FALSE);
                 break;
             case 3:
+#if 0 /*JP*/
                 pline("A%s electric shock shoots through your body!",
                       (Shock_resistance) ? "n" : " massive");
+#else
+                pline("%s\93d\8bC\82ª\82 \82È\82½\82Ì\91Ì\82ð\91\96\82è\94²\82¯\82½\81I",
+                      (Shock_resistance) ? "" : "\8c\83\82µ\82¢");
+#endif
+/*JP
                 losehp(Shock_resistance ? rnd(6) : rnd(30), "electric chair",
+*/
+                losehp(Shock_resistance ? rnd(6) : rnd(30), "\93d\8bC\88Ö\8eq\82Å",
                        KILLED_BY_AN);
                 exercise(A_CON, FALSE);
                 break;
             case 4:
+/*JP
                 You_feel("much, much better!");
+*/
+                You_feel("\82Æ\82Ä\82à\81C\82Æ\82Ä\82à\8c³\8bC\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
                 if (Upolyd) {
                     if (u.mh >= (u.mhmax - 5))
                         u.mhmax += 4;
@@ -194,7 +321,10 @@ dosit()
                 break;
             case 6:
                 if (u.uluck + rn2(5) < 0) {
+/*JP
                     You_feel("your luck is changing.");
+*/
+                    pline("\89^\82ª\8cü\82¢\82Ä\82«\82½\8bC\82ª\82·\82é\81D");
                     change_luck(1);
                 } else
                     makewish();
@@ -204,25 +334,47 @@ dosit()
                 int cnt = rnd(10);
 
                 /* Magical voice not affected by deafness */
+/*JP
                 pline("A voice echoes:");
+*/
+                pline("\90º\82ª\8b¿\82¢\82½:");
+#if 0 /*JP*/
                 verbalize("Thy audience hath been summoned, %s!",
                           flags.female ? "Dame" : "Sire");
+#else
+                verbalize("%s\82æ\81I\93ð\82Ì\92®\8fO\8f¢\8a«\82³\82ê\82µ\81D",
+                          flags.female ? "\8f\97" : "\92j");
+#endif
                 while (cnt--)
                     (void) makemon(courtmon(), u.ux, u.uy, NO_MM_FLAGS);
                 break;
               }
             case 8:
                 /* Magical voice not affected by deafness */
+/*JP
                 pline("A voice echoes:");
+*/
+                pline("\90º\82ª\8b¿\82¢\82½:");
+#if 0 /*JP*/
                 verbalize("By thine Imperious order, %s...",
                           flags.female ? "Dame" : "Sire");
+#else
+                verbalize("%s\82æ\81I\93ð\82Ì\98ü\96\9d\95·\82«\82¢\82ê\82æ\82¤\82¼\81D",
+                          flags.female ? "\8f\97" : "\92j");
+#endif
                 do_genocide(5); /* REALLY|ONTHRONE, see do_genocide() */
                 break;
             case 9:
                 /* Magical voice not affected by deafness */
+/*JP
                 pline("A voice echoes:");
+*/
+                pline("\90º\82ª\8b¿\82¢\82½:");
                 verbalize(
+/*JP
                  "A curse upon thee for sitting upon this most holy throne!");
+*/
+                 "\90¹\82È\82é\8bÊ\8dÀ\82É\8dÀ\82è\82µ\93ð\82É\8eô\82¢\82 \82ê\81I");
                 if (Luck > 0) {
                     make_blinded(Blinded + rn1(100, 250), TRUE);
                 } else
@@ -231,37 +383,58 @@ dosit()
             case 10:
                 if (Luck < 0 || (HSee_invisible & INTRINSIC)) {
                     if (level.flags.nommap) {
+/*JP
                         pline("A terrible drone fills your head!");
+*/
+                        pline("\8b°\82µ\82¢\83u\83\93\83u\83\93\82Æ\82¢\82¤\89¹\82ª\93ª\82É\8b¿\82¢\82½\81I");
                         make_confused((HConfusion & TIMEOUT) + (long) rnd(30),
                                       FALSE);
                     } else {
+/*JP
                         pline("An image forms in your mind.");
+*/
+                        pline("\82 \82é\83C\83\81\81[\83W\82ª\93ª\82É\95\82\82ñ\82¾\81D");
                         do_mapping();
                     }
                 } else {
+/*JP
                     Your("vision becomes clear.");
+*/
+                    Your("\8e\8b\8aE\82Í\8dá\82¦\93n\82Á\82½\81D");
                     HSee_invisible |= FROMOUTSIDE;
                     newsym(u.ux, u.uy);
                 }
                 break;
             case 11:
                 if (Luck < 0) {
+/*JP
                     You_feel("threatened.");
+*/
+                    You("\8bº\94\97\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
                     aggravate();
                 } else {
+/*JP
                     You_feel("a wrenching sensation.");
+*/
+                    You("\82Ë\82\82ç\82ê\82½\82æ\82¤\82È\8a´\8ao\82ð\8a´\82\82½\81D");
                     tele(); /* teleport him */
                 }
                 break;
             case 12:
+/*JP
                 You("are granted an insight!");
+*/
+                You("\93´\8e@\97Í\82ð\93¾\82½\81I");
                 if (invent) {
                     /* rn2(5) agrees w/seffects() */
                     identify_pack(rn2(5), FALSE);
                 }
                 break;
             case 13:
+/*JP
                 Your("mind turns into a pretzel!");
+*/
+                Your("\90S\82Í\83N\83l\83N\83l\82É\82È\82Á\82½\81I");
                 make_confused((HConfusion & TIMEOUT) + (long) rn1(7, 16),
                               FALSE);
                 break;
@@ -271,28 +444,47 @@ dosit()
             }
         } else {
             if (is_prince(youmonst.data))
+/*JP
                 You_feel("very comfortable here.");
+*/
+                You("\82±\82±\82Í\82Æ\82Ä\82à\97\8e\82¿\92\85\82­\81D");
             else
+/*JP
                 You_feel("somehow out of place...");
+*/
+                You("\89½\82©\8fê\88á\82¢\82Ì\8bC\82ª\82µ\82½\81D\81D\81D");
         }
 
         if (!rn2(3) && IS_THRONE(levl[u.ux][u.uy].typ)) {
             /* may have teleported */
             levl[u.ux][u.uy].typ = ROOM;
+/*JP
             pline_The("throne vanishes in a puff of logic.");
+*/
+            pline("\8bÊ\8dÀ\82Í\82Ó\82Á\82Æ\8fÁ\82¦\82½\81D");
             newsym(u.ux, u.uy);
         }
     } else if (lays_eggs(youmonst.data)) {
         struct obj *uegg;
 
         if (!flags.female) {
+#if 0 /*JP*/
             pline("%s can't lay eggs!",
                   Hallucination
                       ? "You may think you are a platypus, but a male still"
                       : "Males");
+#else
+            pline("%s\97Y\82Í\97\91\82ð\8eY\82ß\82È\82¢\81I",
+                  Hallucination
+                      ? "\82 \82È\82½\82Í\8e©\95ª\82ª\83J\83\82\83m\83n\83V\82¾\82Æ\8ev\82Á\82Ä\82¢\82é\82©\82à\82µ\82ê\82È\82¢\82ª\81C\82â\82Á\82Ï\82è"
+                      : "");
+#endif
             return 0;
         } else if (u.uhunger < (int) objects[EGG].oc_nutrition) {
+/*JP
             You("don't have enough energy to lay an egg.");
+*/
+            You("\97\91\82ð\8eY\82Þ\82¾\82¯\82Ì\83G\83l\83\8b\83M\81[\82ª\82È\82¢\81D");
             return 0;
         }
 
@@ -303,12 +495,18 @@ dosit()
         /* this sets hatch timers if appropriate */
         set_corpsenm(uegg, egg_type_from_parent(u.umonnum, FALSE));
         uegg->known = uegg->dknown = 1;
+/*JP
         You("lay an egg.");
+*/
+        You("\97\91\82ð\8eY\82ñ\82¾\81D");
         dropy(uegg);
         stackobj(uegg);
         morehungry((int) objects[EGG].oc_nutrition);
     } else {
+/*JP
         pline("Having fun sitting on the %s?", surface(u.ux, u.uy));
+*/
+        pline("%s\82É\8dÀ\82Á\82Ä\8ay\82µ\82¢\82©\82¢\81H", surface(u.ux,u.uy));
     }
     return 1;
 }
@@ -320,16 +518,25 @@ rndcurse()
     int nobj = 0;
     int cnt, onum;
     struct obj *otmp;
+/*JP
     static const char mal_aura[] = "feel a malignant aura surround %s.";
+*/
+    static const char mal_aura[] = "\8e×\88«\82È\83I\81[\83\89\82ð%s\82Ì\89ñ\82è\82É\8a´\82\82½\81D";
 
     if (uwep && (uwep->oartifact == ART_MAGICBANE) && rn2(20)) {
+/*JP
         You(mal_aura, "the magic-absorbing blade");
+*/
+        You(mal_aura, "\96\82\97Í\82ð\8bz\82¢\82Æ\82é\93\81");
         return;
     }
 
     if (Antimagic) {
         shieldeff(u.ux, u.uy);
+/*JP
         You(mal_aura, "you");
+*/
+        You(mal_aura, "\82 \82È\82½");
     }
 
     for (otmp = invent; otmp; otmp = otmp->nobj) {
@@ -356,7 +563,10 @@ rndcurse()
 
             if (otmp->oartifact && spec_ability(otmp, SPFX_INTEL)
                 && rn2(10) < 8) {
+/*JP
                 pline("%s!", Tobjnam(otmp, "resist"));
+*/
+                pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81I", xname(otmp));
                 continue;
             }
 
@@ -376,8 +586,13 @@ rndcurse()
         else
             curse(otmp);
         if (!Blind) {
+#if 0 /*JP*/
             pline("%s %s.", Yobjnam2(otmp, "glow"),
                   hcolor(otmp->cursed ? NH_BLACK : (const char *) "brown"));
+#else
+            pline("%s\82Í%s\8bP\82¢\82½\81D", xname(otmp),
+                  jconj_adj(hcolor(otmp->cursed ? NH_BLACK : (const char *)"\92\83\90F\82Ì")));
+#endif
             otmp->bknown = TRUE;
         }
     }
@@ -391,19 +606,28 @@ attrcurse()
     case 1:
         if (HFire_resistance & INTRINSIC) {
             HFire_resistance &= ~INTRINSIC;
+/*JP
             You_feel("warmer.");
+*/
+            You("\92g\82©\82³\82ð\8a´\82\82½\81D");
             break;
         }
     case 2:
         if (HTeleportation & INTRINSIC) {
             HTeleportation &= ~INTRINSIC;
+/*JP
             You_feel("less jumpy.");
+*/
+            You("\82¿\82å\82Á\82Æ\97\8e\82¿\82Â\82¢\82½\81D");
             break;
         }
     case 3:
         if (HPoison_resistance & INTRINSIC) {
             HPoison_resistance &= ~INTRINSIC;
+/*JP
             You_feel("a little sick!");
+*/
+            You("\8f­\82µ\8bC\95ª\82ª\88«\82­\82È\82Á\82½\81I");
             break;
         }
     case 4:
@@ -411,51 +635,79 @@ attrcurse()
             HTelepat &= ~INTRINSIC;
             if (Blind && !Blind_telepat)
                 see_monsters(); /* Can't sense mons anymore! */
+/*JP
             Your("senses fail!");
+*/
+            Your("\8cÜ\8a´\82Í\96\83á\83\82µ\82½\81I");
             break;
         }
     case 5:
         if (HCold_resistance & INTRINSIC) {
             HCold_resistance &= ~INTRINSIC;
+/*JP
             You_feel("cooler.");
+*/
+            You("\97Á\82µ\82³\82ð\8a´\82\82½\81D");
             break;
         }
     case 6:
         if (HInvis & INTRINSIC) {
             HInvis &= ~INTRINSIC;
+/*JP
             You_feel("paranoid.");
+*/
+            You("\96Ï\91z\82ð\95ø\82¢\82½\81D");
             break;
         }
     case 7:
         if (HSee_invisible & INTRINSIC) {
             HSee_invisible &= ~INTRINSIC;
+#if 0 /*JP*/
             You("%s!", Hallucination ? "tawt you taw a puttie tat"
                                      : "thought you saw something");
+#else
+            if(Hallucination)
+                You("\82¾\82ê\8aI\82Ý\82ç\81C\82ê\82Ä\82¢\82é\81D");
+            else
+                You("\92N\82©\82É\8c©\82ç\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81I");
+#endif
             break;
         }
     case 8:
         if (HFast & INTRINSIC) {
             HFast &= ~INTRINSIC;
+/*JP
             You_feel("slower.");
+*/
+            You("\92x\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             break;
         }
     case 9:
         if (HStealth & INTRINSIC) {
             HStealth &= ~INTRINSIC;
+/*JP
             You_feel("clumsy.");
+*/
+            You("\95s\8aí\97p\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             break;
         }
     case 10:
         /* intrinsic protection is just disabled, not set back to 0 */
         if (HProtection & INTRINSIC) {
             HProtection &= ~INTRINSIC;
+/*JP
             You_feel("vulnerable.");
+*/
+            You("\96³\96h\94õ\82É\82È\82Á\82½\8bC\82ª\82µ\82½\81D");
             break;
         }
     case 11:
         if (HAggravate_monster & INTRINSIC) {
             HAggravate_monster &= ~INTRINSIC;
+/*JP
             You_feel("less attractive.");
+*/
+            You("\96£\97Í\82ª\8e¸\82¹\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             break;
         }
     default:
index f08fe9d..2f16705 100644 (file)
@@ -2,6 +2,11 @@
 /*      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-2016            */
+/* 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*/
         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*/
         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*/
         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*/
         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*/
                         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) */
             }
             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*/
                     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;
@@ -156,15 +215,28 @@ dosounds()
 
                 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*/
                     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*/
                     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 +245,15 @@ dosounds()
     }
     if (level.flags.has_barracks && !rn2(200)) {
         static const char *const barracks_msg[4] = {
+#if 0 /*JP*/
             "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 +275,14 @@ dosounds()
     }
     if (level.flags.has_zoo && !rn2(200)) {
         static const char *const zoo_msg[3] = {
+#if 0 /*JP*/
             "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 +303,14 @@ dosounds()
         if (tended_shop(sroom)
             && !index(u.ushops, (int) (ROOM_INDEX(sroom) + ROOMOFFSET))) {
             static const char *const shop_msg[3] = {
+#if 0 /*JP*/
                 "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 +338,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*/
                 "*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,
@@ -285,11 +383,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*/
                 "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 +404,31 @@ dosounds()
 }
 
 static const char *const h_sounds[] = {
+#if 0 /*JP*/
     "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¾",
+
+    "\83S\83\8d\83S\83\8d\96Â\82Á\82½",
+    "\83z\81[\83z\81[\96Â\82¢\82½",
+    "\83|\83\93\82Æ\96Â\82¢\82½",
+    "\83K\83\89\83\93\83K\83\89\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½",
+    /*JP \8ec\82è\82Í\96¢\96ó */
+#endif
 };
 
 const char *
@@ -315,35 +440,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 +519,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 +545,48 @@ register struct monst *mtmp;
     else
         switch (mtmp->data->msound) {
         case MS_MEW:
+/*JP
             yelp_verb = "yowl";
+*/
+            yelp_verb = "\94ß\82µ\82­\96Â\82¢\82½";
             break;
         case MS_BARK:
         case MS_GROWL:
+/*JP
             yelp_verb = "yelp";
+*/
+            yelp_verb = "\83L\83\83\83\93\83L\83\83\83\93\96Â\82¢\82½";
             break;
         case MS_ROAR:
+/*JP
             yelp_verb = "snarl";
+*/
+            yelp_verb = "\82¤\82È\82Á\82½";
             break;
         case MS_SQEEK:
+/*JP
             yelp_verb = "squeal";
+*/
+            yelp_verb = "\83L\81[\83L\81[\96Â\82¢\82½";
             break;
         case MS_SQAWK:
+/*JP
             yelp_verb = "screak";
+*/
+            yelp_verb = "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½";
             break;
         case MS_WAIL:
+/*JP
             yelp_verb = "wail";
+*/
+            yelp_verb = "\94ß\82µ\82­\96Â\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 +610,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 +654,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");
     }
 }
 
@@ -542,7 +736,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 +753,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*/
                 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 ? "!" : "\81D\82¨\8bx\82Ý\82É\82È\82è\82Ü\82¹\82ñ\82©\81H");
+#endif
                 verbl_msg = verbuf;
             } else {
+#if 0 /*JP*/
                 Sprintf(verbuf, "%s%s",
                         nightchild ? "Child of the night, " : "",
                         midnight()
@@ -575,37 +783,69 @@ 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*/
                 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 */
             };
             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 */
+#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 +863,232 @@ register struct monst *mtmp;
     } break;
     case MS_WERE:
         if (flags.moonphase == FULL_MOON && (night() ^ !rn2(13))) {
+#if 0 /*JP*/
             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 */
     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);
         multi_reason = "scared by rattling";
         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,14 +1099,24 @@ register struct monst *mtmp;
         if (!mtmp->mpeaceful) {
             switch (rn2(4)) {
             case 0:
+#if 0 /*JP*/
                 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;
             }
@@ -770,55 +1128,106 @@ register struct monst *mtmp;
             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
             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;
@@ -835,22 +1244,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*/
             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*/
                 "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,43 +1304,88 @@ 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*/
                   "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*/
                        "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)];
@@ -920,11 +1404,17 @@ register struct monst *mtmp;
                 tribtitle = noveltitle(&novelidx);
             }
             if (tribtitle) {
+/*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))
+/*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;
             }
@@ -934,17 +1424,27 @@ register struct monst *mtmp;
         }
         /* end of tribute addition */
         else if (ptr == &mons[PM_DEATH] && !rn2(10))
+/*JP
             pline_msg = "is busy reading a copy of Sandman #8.";
+*/
+            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;
     }
 
     if (pline_msg)
+/*JP
         pline("%s %s", Monnam(mtmp), pline_msg);
+*/
+        pline("%s\82Í%s", Monnam(mtmp), pline_msg);
     else if (mtmp->mcan && verbl_msg_mcan)
         verbalize1(verbl_msg_mcan);
     else if (verbl_msg) {
+#if 0 /*JP*//*\83f\83X\82ð\93Á\95Ê\88µ\82¢\82µ\82È\82¢*/
         if (ptr == &mons[PM_DEATH]) {
             /* Death talks in CAPITAL LETTERS
                and without quotation marks */
@@ -954,6 +1454,9 @@ register struct monst *mtmp;
         } else {
             verbalize1(verbl_msg);
         }
+#else
+        verbalize1(verbl_msg);
+#endif
     }
     return 1;
 }
@@ -976,23 +1479,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 +1526,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 +1564,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,9 +1583,14 @@ dochat()
         && (otmp = vobj_at(tx, ty)) != 0 && otmp->otyp == STATUE) {
         /* Talking to a statue */
         if (!Blind) {
+#if 0 /*JP*/
             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;
     }
@@ -1069,7 +1604,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 +1617,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;
     }
 
index 71068c7..2a10181 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (c) M. Stephenson 1988                          */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* spellmenu arguments; 0 thru n-1 used as spl_book[] index when swapping */
@@ -97,7 +102,9 @@ STATIC_DCL const char *FDECL(spelltypemnemonic, (int));
 #define uarmfbon 2 /* All metal interferes to some degree */
 
 /* since the spellbook itself doesn't blow up, don't say just "explodes" */
+#if 0 /*JP*/
 static const char explodes[] = "radiates explosive energy";
+#endif
 
 /* convert a letter into a number in the range 0..51, or -1 if not a letter */
 STATIC_OVL int
@@ -125,11 +132,17 @@ struct obj *bp;
 
     switch (rn2(lev)) {
     case 0:
+/*JP
         You_feel("a wrenching sensation.");
+*/
+        You("\82Ë\82\82ç\82ê\82½\82æ\82¤\82È\8a´\8ao\82ð\8a´\82\82½\81D");
         tele(); /* teleport him */
         break;
     case 1:
+/*JP
         You_feel("threatened.");
+*/
+        You("\82¨\82Ç\82³\82ê\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         aggravate();
         break;
     case 2:
@@ -139,11 +152,17 @@ struct obj *bp;
         take_gold();
         break;
     case 4:
+/*JP
         pline("These runes were just too much to comprehend.");
+*/
+        pline("\82±\82Ì\83\8b\81[\83\93\95\8e\9a\82ð\97\9d\89ð\82·\82é\82Ì\82Í\8d¢\93ï\82¾\81D");
         make_confused(HConfusion + rn1(7, 16), FALSE);
         break;
     case 5:
+/*JP
         pline_The("book was coated with contact poison!");
+*/
+        pline("\82±\82Ì\96{\82Í\90Ú\90G\8c^\82Ì\93Å\82Å\95¢\82í\82ê\82Ä\82¢\82é\81I");
         if (uarmg) {
             erode_obj(uarmg, "gloves", ERODE_CORRODE, EF_GREASE | EF_VERBOSE);
             break;
@@ -151,19 +170,33 @@ struct obj *bp;
         /* temp disable in_use; death should not destroy the book */
         bp->in_use = FALSE;
         losestr(Poison_resistance ? rn1(2, 1) : rn1(4, 3));
+#if 0 /*JP*/
         losehp(rnd(Poison_resistance ? 6 : 10), "contact-poisoned spellbook",
                KILLED_BY_AN);
+#else
+        losehp(rnd(Poison_resistance ? 6 : 10), "\90Ú\90G\93Å\82Ì\96\82\96@\8f\91\82Å",
+               KILLED_BY_AN);
+#endif
         bp->in_use = TRUE;
         break;
     case 6:
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline_The("book %s, but you are unharmed!", explodes);
+*/
+            pline("\96{\82Í\8b­\97Í\82È\83G\83l\83\8b\83M\81[\82ð\95ú\8fo\82µ\82½\81C\82µ\82©\82µ\82 \82È\82½\82Í\8f\9d\82Â\82©\82È\82¢\81I");
         } else {
+/*JP
             pline("As you read the book, it %s in your %s!", explodes,
+*/
+            pline("\96{\82Í\8b­\97Í\82È\83G\83l\83\8b\83M\81[\82ð\82 \82È\82½\82Ì%s\82É\95ú\8fo\82µ\82½\81I",
                   body_part(FACE));
             dmg = 2 * rnd(10) + 5;
+/*JP
             losehp(Maybe_Half_Phys(dmg), "exploding rune", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\8b­\97Í\82È\83\8b\81[\83\93\95\8e\9a\82Ì\83G\83l\83\8b\83M\81[\82Å", KILLED_BY_AN);
         }
         return TRUE;
     default:
@@ -183,17 +216,28 @@ struct obj *spellbook;
     if (!rn2(3) && spellbook->otyp != SPE_BOOK_OF_THE_DEAD) {
         spellbook->in_use = TRUE; /* in case called from learn */
         pline(
+/*JP
          "Being confused you have difficulties in controlling your actions.");
+*/
+         "\8d¬\97\90\82µ\82Ä\82¢\82é\82Ì\82Å\81C\82»\82¤\82¢\82¤\82±\82Æ\82ð\82·\82é\82Ì\82Í\93ï\82µ\82¢\81D");
         display_nhwindow(WIN_MESSAGE, FALSE);
+/*JP
         You("accidentally tear the spellbook to pieces.");
+*/
+        You("\82¤\82Á\82©\82è\81C\96\82\96@\8f\91\82ð\88ø\82«\82³\82¢\82Ä\82µ\82Ü\82Á\82½\81D");
         if (!objects[spellbook->otyp].oc_name_known
             && !objects[spellbook->otyp].oc_uname)
             docall(spellbook);
         useup(spellbook);
         gone = TRUE;
     } else {
+#if 0 /*JP*/
         You("find yourself reading the %s line over and over again.",
             spellbook == context.spbook.book ? "next" : "first");
+#else
+        You("%s\82Ì\8ds\82ð\89½\93x\82à\8cJ\82è\95Ô\82µ\82Ä\93Ç\82ñ\82Å\82¢\82½\82±\82Æ\82É\8bC\95t\82¢\82½\81D",
+            spellbook == context.spbook.book ? "\8e\9f" : "\8dÅ\8f\89");
+#endif
     }
     return gone;
 }
@@ -206,7 +250,10 @@ struct obj *book2;
     struct monst *mtmp, *mtmp2;
     coord mm;
 
+/*JP
     You("turn the pages of the Book of the Dead...");
+*/
+    You("\8e\80\8eÒ\82Ì\8f\91\82Ì\83y\81[\83W\82ð\82ß\82­\82Á\82½\81D\81D\81D");
     makeknown(SPE_BOOK_OF_THE_DEAD);
     /* KMH -- Need ->known to avoid "_a_ Book of the Dead" */
     book2->known = 1;
@@ -216,16 +263,28 @@ struct obj *book2;
                          arti_cursed = FALSE;
 
         if (book2->cursed) {
+/*JP
             pline_The("runes appear scrambled.  You can't read them!");
+*/
+            pline("\83\8b\81[\83\93\95\8e\9a\82Í\82²\82¿\82á\82Ü\82º\82É\82È\82Á\82Ä\82¨\82è\81C\93Ç\82Þ\82±\82Æ\82ª\82Å\82«\82È\82©\82Á\82½\81I");
             return;
         }
 
         if (!u.uhave.bell || !u.uhave.menorah) {
+/*JP
             pline("A chill runs down your %s.", body_part(SPINE));
+*/
+            Your("%s\82É\8a¦\82¯\82ª\91\96\82Á\82½\81D", body_part(SPINE));
             if (!u.uhave.bell)
+/*JP
                 You_hear("a faint chime...");
+*/
+                You_hear("\82©\82·\82©\82È\83x\83\8b\82Ì\89¹\82ð\95·\82¢\82½\81D\81D\81D");
             if (!u.uhave.menorah)
+/*JP
                 pline("Vlad's doppelganger is amused.");
+*/
+                pline("\83\94\83\89\83h\82Ì\90\97ì\82Í\8fÎ\82Á\82½\81D");
             return;
         }
 
@@ -247,8 +306,14 @@ struct obj *book2;
         }
 
         if (arti_cursed) {
+/*JP
             pline_The("invocation fails!");
+*/
+            pline("\93Á\8eê\94\\97Í\82Í\94­\8aö\82³\82ê\82È\82©\82Á\82½\81I");
+/*JP
             pline("At least one of your artifacts is cursed...");
+*/
+            pline("\8f­\82È\82­\82Æ\82à\90¹\8aí\82Ì\82Ð\82Æ\82Â\82ª\8eô\82í\82ê\82Ä\82¢\82é\81D\81D\81D");
         } else if (arti1_primed && arti2_primed) {
             unsigned soon =
                 (unsigned) d(2, 6); /* time til next intervene() */
@@ -262,7 +327,10 @@ struct obj *book2;
             if (!u.udg_cnt || u.udg_cnt > soon)
                 u.udg_cnt = soon;
         } else { /* at least one artifact not prepared properly */
+/*JP
             You("have a feeling that %s is amiss...", something);
+*/
+            You("\89½\82©\82ª\8aÔ\88á\82Á\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
             goto raise_dead;
         }
         return;
@@ -272,7 +340,10 @@ struct obj *book2;
     if (book2->cursed) {
     raise_dead:
 
+/*JP
         You("raised the dead!");
+*/
+        You("\8e\80\8eÒ\82ð\91h\82ç\82¹\82½\81I");
         /* first maybe place a dangerous adversary */
         if (!rn2(3) && ((mtmp = makemon(&mons[PM_MASTER_LICH], u.ux, u.uy,
                                         NO_MINVENT)) != 0
@@ -310,13 +381,22 @@ struct obj *book2;
     } else {
         switch (rn2(3)) {
         case 0:
+/*JP
             Your("ancestors are annoyed with you!");
+*/
+            Your("\90æ\91c\82Í\82 \82È\82½\82ª\8c\99\82¢\82È\82æ\82¤\82¾\81I");
             break;
         case 1:
+/*JP
             pline_The("headstones in the cemetery begin to move!");
+*/
+            pline("\95æ\92n\82Ì\95æ\90Î\82ª\93®\82«\82Í\82\82ß\82½\81I");
             break;
         default:
+/*JP
             pline("Oh my!  Your name appears in the book!");
+*/
+            pline("\82È\82ñ\82Ä\82±\82Á\82½\82¢\81I\82 \82È\82½\82Ì\96¼\91O\82ª\96{\82É\8f\91\82¢\82Ä\82 \82é\81I");
         }
     }
     return;
@@ -357,9 +437,15 @@ learn(VOID_ARGS)
         return 0;
     }
 
+#if 0 /*JP*/
     Sprintf(splname,
             objects[booktype].oc_name_known ? "\"%s\"" : "the \"%s\" spell",
             OBJ_NAME(objects[booktype]));
+#else
+    Sprintf(splname,
+            objects[booktype].oc_name_known ? "\"%s\"" : "\"%s\"",
+            OBJ_NAME(objects[booktype]));
+#endif
     for (i = 0; i < MAXSPELL; i++)
         if (spellid(i) == booktype || spellid(i) == NO_SPELL)
             break;
@@ -369,16 +455,27 @@ learn(VOID_ARGS)
     } else if (spellid(i) == booktype) {
         /* normal book can be read and re-read a total of 4 times */
         if (book->spestudied > MAX_SPELL_STUDY) {
+/*JP
             pline("This spellbook is too faint to be read any more.");
+*/
+            pline("\82±\82Ì\96\82\96@\8f\91\82Ì\95\8e\9a\82Í\94\96\82·\82¬\82Ä\82±\82ê\88È\8fã\93Ç\82ß\82È\82¢\81D");
             book->otyp = booktype = SPE_BLANK_PAPER;
             /* reset spestudied as if polymorph had taken place */
             book->spestudied = rn2(book->spestudied);
         } else if (spellknow(i) > KEEN / 10) {
+/*JP
             You("know %s quite well already.", splname);
+*/
+            You("\82·\82Å\82É%s\82ð\8fn\92m\82µ\82Ä\82¢\82é\81D", splname);
             costly = FALSE;
         } else { /* spellknow(i) <= KEEN/10 */
+#if 0 /*JP*/
             Your("knowledge of %s is %s.", splname,
                  spellknow(i) ? "keener" : "restored");
+#else
+            Your("%s\82É\91Î\82·\82é\92m\8e¯\82Í%s\82³\82ê\82½\81D", splname,
+                 spellknow(i) ? "\82³\82ç\82É\8c¤\82¬\82·\82Ü" : "\95\9c\8c³");
+#endif
             incrnknow(i, 1);
             book->spestudied++;
             exercise(A_WIS, TRUE); /* extra study */
@@ -392,7 +489,10 @@ learn(VOID_ARGS)
            one less reading is available than when re-learning */
         if (book->spestudied >= MAX_SPELL_STUDY) {
             /* pre-used due to being the product of polymorph */
+/*JP
             pline("This spellbook is too faint to read even once.");
+*/
+            pline("\82±\82Ì\96\82\96@\8f\91\82Ì\95\8e\9a\82Í\94\96\82·\82¬\82Ä\82±\82ê\88È\8fã\93Ç\82ß\82È\82¢\81D");
             book->otyp = booktype = SPE_BLANK_PAPER;
             /* reset spestudied as if polymorph had taken place */
             book->spestudied = rn2(book->spestudied);
@@ -401,7 +501,10 @@ learn(VOID_ARGS)
             spl_book[i].sp_lev = objects[booktype].oc_level;
             incrnknow(i, 1);
             book->spestudied++;
+/*JP
             You(i > 0 ? "add %s to your repertoire." : "learn %s.", splname);
+*/
+            You(i > 0 ? "%s\82ð\83\8c\83p\81[\83g\83\8a\81[\82É\89Á\82¦\82½\81D" : "%s\82ð\8fK\93¾\82µ\82½\81D", splname);
         }
         makeknown((int) booktype);
     }
@@ -455,12 +558,20 @@ register struct obj *spellbook;
         /* handle the sequence: start reading, get interrupted, have
            context.spbook.book become erased somehow, resume reading it */
         && booktype != SPE_BLANK_PAPER) {
+#if 0 /*JP*/
         You("continue your efforts to %s.",
             (booktype == SPE_NOVEL) ? "read the novel" : "memorize the spell");
+#else
+        You("%s\82ð\8dÄ\8aJ\82µ\82½\81D",
+            (booktype == SPE_NOVEL) ? "\93Ç\8f\91" : "\96\82\96@\82Ì\8aw\8fK");
+#endif
     } else {
         /* KMH -- Simplified this code */
         if (booktype == SPE_BLANK_PAPER) {
+/*JP
             pline("This spellbook is all blank.");
+*/
+            pline("\82±\82Ì\96\82\96@\8f\91\82Í\90^\82Á\94\92\82¾\81D");
             makeknown(booktype);
             return 1;
         }
@@ -523,8 +634,13 @@ register struct obj *spellbook;
                 if (Role_if(PM_WIZARD) && read_ability < 20 && !confused) {
                     char qbuf[QBUFSZ];
                     Sprintf(qbuf,
+#if 0 /*JP*/
                      "This spellbook is %sdifficult to comprehend. Continue?",
                             (read_ability < 12 ? "very " : ""));
+#else
+                     "\82±\82Ì\96\82\96@\8f\91\82ð\97\9d\89ð\82·\82é\82Ì\82Í%s\8d¢\93ï\82¾\81D\91±\82¯\82Ü\82·\82©\81H",
+                            (read_ability < 12 ? "\82Æ\82Ä\82à" : ""));
+#endif
                     if (yn(qbuf) != 'y') {
                         spellbook->in_use = FALSE;
                         return 1;
@@ -546,7 +662,10 @@ register struct obj *spellbook;
             context.spbook.delay = 0;
             if (gone || !rn2(3)) {
                 if (!gone)
+/*JP
                     pline_The("spellbook crumbles to dust!");
+*/
+                    pline("\96\82\96@\8f\91\82Í\90o\82Æ\82È\82Á\82½\81I");
                 if (!objects[spellbook->otyp].oc_name_known
                     && !objects[spellbook->otyp].oc_uname)
                     docall(spellbook);
@@ -566,14 +685,22 @@ register struct obj *spellbook;
         }
         spellbook->in_use = FALSE;
 
+#if 0 /*JP*/
         You("begin to %s the runes.",
             spellbook->otyp == SPE_BOOK_OF_THE_DEAD ? "recite" : "memorize");
+#else
+        You("\83\8b\81[\83\93\95\8e\9a\82ð%s\82µ\82Í\82\82ß\82½\81D",
+            spellbook->otyp == SPE_BOOK_OF_THE_DEAD ? "\88Ã\8f¥" : "\8bL\89¯");
+#endif
     }
 
     context.spbook.book = spellbook;
     if (context.spbook.book)
         context.spbook.o_id = context.spbook.book->o_id;
+/*JP
     set_occupation(learn, "studying", 0);
+*/
+        set_occupation(learn, "\8aw\82Ô", 0);
     return 1;
 }
 
@@ -637,7 +764,10 @@ rejectcasting()
          * But why isn't lack of free arms (for gesturing) an issue when
          * poly'd hero has no limbs?
          */
+/*JP
         Your("arms are not free to cast!");
+*/
+        pline("\96\82\96@\82ð\8f¥\82¦\82æ\82¤\82É\82à\98r\82Ì\8e©\97R\82ª\8cø\82©\82È\82¢\81I");
         return TRUE;
     }
     return FALSE;
@@ -655,7 +785,10 @@ int *spell_no;
     char ilet, lets[BUFSZ], qbuf[QBUFSZ];
 
     if (spellid(0) == NO_SPELL) {
+/*JP
         You("don't know any spells right now.");
+*/
+        You("\8d¡\82Ì\82Æ\82±\82ë\89½\82Ì\96\82\96@\82à\92m\82ç\82È\82¢\81D");
         return FALSE;
     }
     if (rejectcasting())
@@ -678,7 +811,10 @@ int *spell_no;
             Sprintf(lets, "a-zA-%c", 'A' + nspells - 27);
 
         for (;;) {
+/*JP
             Sprintf(qbuf, "Cast which spell? [%s *?]", lets);
+*/
+            Sprintf(qbuf, "\82Ç\82Ì\96\82\96@\82ð\8f¥\82¦\82é\81H[%s ?]", lets);
             ilet = yn_function(qbuf, (char *) 0, '\0');
             if (ilet == '*' || ilet == '?')
                 break; /* use menu mode */
@@ -687,14 +823,20 @@ int *spell_no;
 
             idx = spell_let_to_idx(ilet);
             if (idx < 0 || idx >= nspells) {
+/*JP
                 You("don't know that spell.");
+*/
+                You("\82»\82ñ\82È\96\82\96@\82Í\92m\82ç\82È\82¢\81D");
                 continue; /* ask again */
             }
             *spell_no = idx;
             return TRUE;
         }
     }
+/*JP
     return dospellmenu("Choose which spell to cast", SPELLMENU_CAST,
+*/
+    return dospellmenu("\82Ç\82Ì\96\82\96@\82ð\8f¥\82¦\82é\81H", SPELLMENU_CAST,
                        spell_no);
 }
 
@@ -715,19 +857,40 @@ int skill;
 {
     switch (skill) {
     case P_ATTACK_SPELL:
+/*JP
         return "attack";
+*/
+        return "\8dU\8c\82";
     case P_HEALING_SPELL:
+/*JP
         return "healing";
+*/
+        return "\8e¡\96ü";
     case P_DIVINATION_SPELL:
+/*JP
         return "divination";
+*/
+        return "\97\\92m";
     case P_ENCHANTMENT_SPELL:
+/*JP
         return "enchantment";
+*/
+        return "\95â\8f\95";
     case P_CLERIC_SPELL:
+/*JP
         return "clerical";
+*/
+        return "\91m\97µ";
     case P_ESCAPE_SPELL:
+/*JP
         return "escape";
+*/
+        return "\92E\8fo";
     case P_MATTER_SPELL:
+/*JP
         return "matter";
+*/
+        return "\95¨\8e¿";
     default:
         impossible("Unknown spell skill, %d;", skill);
         return "";
@@ -786,28 +949,63 @@ cast_protection()
             const char *hgolden = hcolor(NH_GOLDEN), *atmosphere;
 
             if (u.uspellprot) {
+/*JP
                 pline_The("%s haze around you becomes more dense.", hgolden);
+*/
+                pline("\82 \82È\82½\82Ì\82Ü\82í\82è\82Ì%s\89à\82ª\94Z\82­\82È\82Á\82½\81D", hgolden);
             } else {
                 rmtyp = levl[u.ux][u.uy].typ;
                 atmosphere = u.uswallow
                                 ? ((u.ustuck->data == &mons[PM_FOG_CLOUD])
+/*JP
                                    ? "mist"
+*/
+                                   ? "\96¶"
                                    : is_whirly(u.ustuck->data)
+/*JP
                                       ? "maelstrom"
+*/
+                                      ? "\89Q"
                                       : is_animal(u.ustuck->data)
+/*JP
                                          ? "maw"
+*/
+                                         ? "\88Ý"
+/*JP
                                          : "ooze")
+*/
+                                         : "\82Ë\82Î\82Ë\82Î")
                                 : (u.uinwater
+/*JP
                                    ? "water"
+*/
+                                   ? "\90\85"
                                    : (rmtyp == CLOUD)
+/*JP
                                       ? "cloud"
+*/
+                                      ? "\89_"
                                       : IS_TREE(rmtyp)
+/*JP
                                          ? "vegitation"
+*/
+                                         ? "\96Ø"
                                          : IS_STWALL(rmtyp)
+/*JP
                                             ? "stone"
+*/
+                                            ? "\90Î"
+/*JP
                                             : "air");
+*/
+                                            : "\8bó\8bC");
+#if 0 /*JP*/
                 pline_The("%s around you begins to shimmer with %s haze.",
                           atmosphere, an(hgolden));
+#else
+                pline("\82 \82È\82½\82Ì\82Ü\82í\82è\82Ì%s\82ª%s\96\82Å\83L\83\89\83L\83\89\82Æ\8cõ\82è\82Í\82\82ß\82½\81D",
+                          atmosphere, hgolden);
+#endif
             }
         }
         u.uspellprot += gain;
@@ -817,7 +1015,10 @@ cast_protection()
             u.usptime = u.uspmtime;
         find_ac();
     } else {
+/*JP
         Your("skin feels warm for a moment.");
+*/
+        Your("\94§\82Í\88ê\8fu\83|\83J\83|\83J\82µ\82½\81D");
     }
 }
 
@@ -892,38 +1093,71 @@ boolean atme;
      * decrement of spell knowledge is done every turn.
      */
     if (spellknow(spell) <= 0) {
+/*JP
         Your("knowledge of this spell is twisted.");
+*/
+        Your("\82±\82Ì\96\82\96@\82É\8aÖ\82·\82é\92m\8e¯\82Í\82æ\82\82ê\82½\81D");
+/*JP
         pline("It invokes nightmarish images in your mind...");
+*/
+        pline("\82»\82ê\82Í\88«\96²\82ð\90S\82É\95\82\82Î\82¹\82½\81D\81D\81D");
         spell_backfire(spell);
         return 1;
     } else if (spellknow(spell) <= KEEN / 200) { /* 100 turns left */
+/*JP
         You("strain to recall the spell.");
+*/
+        You("\96\82\96@\82ð\8ev\82¢\82¾\82·\82Ì\82É\8bê\98J\82µ\82½\81D");
     } else if (spellknow(spell) <= KEEN / 40) { /* 500 turns left */
+/*JP
         You("have difficulty remembering the spell.");
+*/
+        You("\8eô\95\82ð\8ev\82¢\8fo\82·\82Ì\82ª\93ï\82µ\82­\82È\82Á\82Ä\82«\82½\81D");
     } else if (spellknow(spell) <= KEEN / 20) { /* 1000 turns left */
+/*JP
         Your("knowledge of this spell is growing faint.");
+*/
+        Your("\82±\82Ì\96\82\96@\82É\8aÖ\82·\82é\92m\8e¯\82ª\82¨\82Ú\82ë\82°\82É\82È\82Á\82Ä\82«\82½\81D");
     } else if (spellknow(spell) <= KEEN / 10) { /* 2000 turns left */
+/*JP
         Your("recall of this spell is gradually fading.");
+*/
+        Your("\82±\82Ì\96\82\96@\82É\8aÖ\82·\82é\92m\8e¯\82ª\8f\99\81X\82É\94\96\82ê\82Ä\82«\82½\81D");
     }
     energy = (spellev(spell) * 5); /* 5 <= energy <= 35 */
 
     if (u.uhunger <= 10 && spellid(spell) != SPE_DETECT_FOOD) {
+/*JP
         You("are too hungry to cast that spell.");
+*/
+        pline("\95 \82ª\8c¸\82è\82·\82¬\82Ä\96\82\96@\82ð\8f¥\82¦\82ç\82ê\82È\82¢\81D");
         return 0;
     } else if (ACURR(A_STR) < 4 && spellid(spell) != SPE_RESTORE_ABILITY) {
+/*JP
         You("lack the strength to cast spells.");
+*/
+        pline("\8b­\82³\82ª\8f­\82È\82·\82¬\82Ä\96\82\96@\82ð\8f¥\82¦\82ç\82ê\82È\82¢\81D");
         return 0;
     } else if (check_capacity(
+/*JP
                 "Your concentration falters while carrying so much stuff.")) {
+*/
+                "\82½\82­\82³\82ñ\82à\82Ì\82ð\8e\9d\82¿\82·\82¬\82Ä\8fW\92\86\82Å\82«\82È\82¢\81D")){
         return 1;
     }
 
     if (u.uhave.amulet) {
+/*JP
         You_feel("the amulet draining your energy away.");
+*/
+        pline("\96\82\8f\9c\82¯\82ª\82 \82È\82½\82Ì\83G\83l\83\8b\83M\81[\82ð\8bz\82¢\82Æ\82Á\82Ä\82¢\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         energy += rnd(2 * energy);
     }
     if (energy > u.uen) {
+/*JP
         You("don't have enough energy to cast that spell.");
+*/
+        pline("\96\82\96@\82ð\8f¥\82¦\82é\82¾\82¯\82Ì\8f\\95ª\82È\83G\83l\83\8b\83M\81[\82ª\82È\82¢\81D");
         return 0;
     } else {
         if (spellid(spell) != SPE_DETECT_FOOD) {
@@ -978,7 +1212,10 @@ boolean atme;
 
     chance = percent_success(spell);
     if (confused || (rnd(100) > chance)) {
+/*JP
         You("fail to cast the spell correctly.");
+*/
+        You("\96\82\96@\82ð\90³\82µ\82­\8f¥\82¦\82é\82±\82Æ\82ª\82Å\82«\82È\82©\82Á\82½\81D");
         u.uen -= energy / 2;
         context.botl = 1;
         return 1;
@@ -1016,8 +1253,12 @@ boolean atme;
                     if (!u.dx && !u.dy && !u.dz) {
                         if ((damage = zapyourself(pseudo, TRUE)) != 0) {
                             char buf[BUFSZ];
+#if 0 /*JP*/
                             Sprintf(buf, "zapped %sself with a spell",
                                     uhim());
+#else
+                            Strcpy(buf, "\8e©\95ª\8e©\90g\82Ì\96\82\96@\82ð\97\81\82Ñ\82Ä");
+#endif
                             losehp(damage, buf, NO_KILLER_PREFIX);
                         }
                     } else {
@@ -1075,13 +1316,19 @@ boolean atme;
                  * spelleffects() is organized means that aborting with
                  * "nevermind" is not an option.
                  */
+/*JP
                 pline_The("magical energy is released!");
+*/
+                pline("\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ª\89ð\95ú\82³\82ê\82½\81I");
             }
             if (!u.dx && !u.dy && !u.dz) {
                 if ((damage = zapyourself(pseudo, TRUE)) != 0) {
                     char buf[BUFSZ];
 
+/*JP
                     Sprintf(buf, "zapped %sself with a spell", uhim());
+*/
+                    Strcpy(buf, "\8e©\95ª\8e©\90g\82Ì\96\82\96@\82ð\97\81\82Ñ\82Ä");
                     if (physical_damage)
                         damage = Maybe_Half_Phys(damage);
                     losehp(damage, buf, NO_KILLER_PREFIX);
@@ -1128,9 +1375,15 @@ boolean atme;
         break;
     case SPE_CURE_SICKNESS:
         if (Sick)
+/*JP
             You("are no longer ill.");
+*/
+            Your("\95a\8bC\82Í\92¼\82Á\82½\81D");
         if (Slimed)
+/*JP
             make_slimed(0L, "The slime disappears!");
+*/
+            make_slimed(0L, "\83X\83\89\83C\83\80\82Í\8fÁ\82¦\82½\81I");
         healup(0, 0, TRUE, FALSE);
         break;
     case SPE_CREATE_FAMILIAR:
@@ -1141,7 +1394,10 @@ boolean atme;
             do_vicinity_map();
         /* at present, only one thing blocks clairvoyance */
         else if (uarmh && uarmh->otyp == CORNUTHAUM)
+/*JP
             You("sense a pointy hat on top of your %s.", body_part(HEAD));
+*/
+            You("\82Æ\82ª\82Á\82½\96X\8eq\82ð%s\82Ì\8fã\82É\94­\8c©\82µ\82½\81D", body_part(HEAD));
         break;
     case SPE_PROTECTION:
         cast_protection();
@@ -1171,24 +1427,42 @@ throwspell()
     struct monst *mtmp;
 
     if (u.uinwater) {
+/*JP
         pline("You're joking! In this weather?");
+*/
+        pline("\90\85\92\86\82Å\89½\82ð\82µ\82æ\82¤\82Á\82Ä\82¢\82¤\82ñ\82¾\82¢\81H");
         return 0;
     } else if (Is_waterlevel(&u.uz)) {
+/*JP
         You("had better wait for the sun to come out.");
+*/
+        You("\91¾\97z\82ª\8c»\82ê\82é\82Ü\82Å\91Ò\82Á\82½\82Ù\82¤\82ª\82æ\82¢\82¾\82ë\82¤\81D");
         return 0;
     }
 
+/*JP
     pline("Where do you want to cast the spell?");
+*/
+    pline("\82Ç\82±\82É\8cü\82©\82Á\82Ä\96\82\96@\82ð\8f¥\82¦\82é\81H");
     cc.x = u.ux;
     cc.y = u.uy;
+/*JP
     if (getpos(&cc, TRUE, "the desired position") < 0)
+*/
+    if (getpos(&cc, TRUE, "\96]\82Ý\82Ì\8fê\8f\8a") < 0)
         return 0; /* user pressed ESC */
     /* The number of moves from hero to where the spell drops.*/
     if (distmin(u.ux, u.uy, cc.x, cc.y) > 10) {
+/*JP
         pline_The("spell dissipates over the distance!");
+*/
+        pline("\89\93\82·\82¬\82é\81I");
         return 0;
     } else if (u.uswallow) {
+/*JP
         pline_The("spell is cut short!");
+*/
+        pline("\82¾\82ß\82¾\81I\8bß\82·\82¬\82é\81I");
         exercise(A_WIS, FALSE); /* What were you THINKING! */
         u.dx = 0;
         u.dy = 0;
@@ -1196,7 +1470,10 @@ throwspell()
     } else if ((!cansee(cc.x, cc.y)
                 && (!(mtmp = m_at(cc.x, cc.y)) || !canspotmon(mtmp)))
                || IS_STWALL(levl[cc.x][cc.y].typ)) {
+/*JP
         Your("mind fails to lock onto that location!");
+*/
+        You("\82»\82±\82É\8cü\82©\82Á\82Ä\8fW\92\86\82µ\82½\82ª\8e¸\94s\82µ\82½\81I");
         return 0;
     }
 
@@ -1471,15 +1748,24 @@ dovspell()
     struct spell spl_tmp;
 
     if (spellid(0) == NO_SPELL) {
+/*JP
         You("don't know any spells right now.");
+*/
+        You("\96\82\96@\82ð\92m\82ç\82È\82¢\81D");
     } else {
+/*JP
         while (dospellmenu("Currently known spells",
+*/
+        while (dospellmenu("\8c»\8dÝ\92m\82Á\82Ä\82¢\82é\96\82\96@\88ê\97\97",
                            SPELLMENU_VIEW, &splnum)) {
             if (splnum == SPELLMENU_SORT) {
                 if (spellsortmenu())
                     sortspells();
             } else {
+/*JP
                 Sprintf(qbuf, "Reordering spells; swap '%c' with",
+*/
+                Sprintf(qbuf, "'%c'\82Æ\95À\82Ñ\95Ï\82¦\82é\96\82\96@\82Í\81H",
                         spellet(splnum));
                 if (!dospellmenu(qbuf, splnum, &othnum))
                     break;
@@ -1523,11 +1809,18 @@ int *spell_no;
      * given string and are of the form "a - ".
      */
     if (!iflags.menu_tab_sep) {
+#if 0 /*JP*/
         Sprintf(buf, "%-20s     Level %-12s Fail Retention", "    Name",
                 "Category");
+#else
+        Sprintf(buf, "%-20s     Level  %-12s \90¬\8c÷\97¦", "    Name", "\95ª\97Þ");
+#endif
         fmt = "%-20s  %2d   %-12s %3d%% %9s";
     } else {
+/*JP
         Sprintf(buf, "Name\tLevel\tCategory\tFail\tRetention");
+*/
+        Sprintf(buf, "\96¼\91O\t\83\8c\83x\83\8b\t\95ª\97Þ\t\90¬\8c÷\97¦");
         fmt = "%s\t%-d\t%s\t%-d%%\t%s";
     }
     add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
index 4b5378d..b3fa1c3 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_PTR int NDECL(stealarm);
@@ -13,13 +18,25 @@ equipname(otmp)
 register struct obj *otmp;
 {
     return ((otmp == uarmu)
+/*JP
                 ? "shirt"
+*/
+                ? "\83V\83\83\83c"
                 : (otmp == uarmf)
+/*JP
                       ? "boots"
+*/
+                      ? "\8cC"
                       : (otmp == uarms)
+/*JP
                             ? "shield"
+*/
+                            ? "\8f\82"
                             : (otmp == uarmg)
+/*JP
                                   ? "gloves"
+*/
+                                  ? "\8f¬\8eè"
                                   : (otmp == uarmc)
                                         ? cloak_simple_name(otmp)
                                         : (otmp == uarmh)
@@ -97,6 +114,7 @@ register struct monst *mtmp;
         obj_extract_self(fgold);
         add_to_minv(mtmp, fgold);
         newsym(u.ux, u.uy);
+#if 0 /*JP*/
         if (u.usteed) {
             who = u.usteed;
             whose = s_suffix(y_monnam(who));
@@ -114,6 +132,10 @@ register struct monst *mtmp;
             what += 5;
         pline("%s quickly snatches some gold from %s %s %s!", Monnam(mtmp),
               (Levitation || Flying) ? "beneath" : "between", whose, what);
+#else /*JP:\91«\82ª\96³\82­\82Ä\82à\81u\91«\8c³\81v\82Å\82æ\82µ\82Æ\82·\82é*/
+        pline("%s\82Í\91f\91\81\82­\82 \82È\82½\82Ì%s\82©\82ç\8bà\82ð\82Ð\82Á\82½\82­\82Á\82½\81I", Monnam(mtmp),
+              (Levitation || Flying) ? "\89º" : "\91«\8c³");
+#endif
         if (!ygold || !rn2(5)) {
             if (!tele_restrict(mtmp))
                 (void) rloc(mtmp, TRUE);
@@ -130,7 +152,10 @@ register struct monst *mtmp;
             setnotworn(ygold);
         freeinv(ygold);
         add_to_minv(mtmp, ygold);
+/*JP
         Your("purse feels lighter.");
+*/
+        Your("\8dà\95z\82Í\8cy\82­\82È\82Á\82½\81D");
         if (!tele_restrict(mtmp))
             (void) rloc(mtmp, TRUE);
         monflee(mtmp, 0, FALSE, FALSE);
@@ -159,7 +184,10 @@ stealarm(VOID_ARGS)
                     if (otmp->unpaid)
                         subfrombill(otmp, shop_keeper(*u.ushops));
                     freeinv(otmp);
+/*JP
                     pline("%s steals %s!", Monnam(mtmp), doname(otmp));
+*/
+                    pline("%s\82Í%s\82ð\93\90\82ñ\82¾\81I", Monnam(mtmp), doname(otmp));
                     (void) mpickobj(mtmp, otmp); /* may free otmp */
                     /* Implies seduction, "you gladly hand over ..."
                        so we don't set mavenge bit here. */
@@ -266,9 +294,15 @@ char *objnambuf;
     nothing_to_steal:
         /* Not even a thousand men in armor can strip a naked man. */
         if (Blind)
+/*JP
             pline("Somebody tries to rob you, but finds nothing to steal.");
+*/
+            pline("\92N\82©\82ª\82 \82È\82½\82©\82ç\93\90\82à\82¤\82Æ\82µ\82½\82ª\81C\93\90\82Þ\82à\82Ì\82ª\82È\82¢\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½\81D");
         else
+/*JP
             pline("%s tries to rob you, but there is nothing to steal!",
+*/
+            pline("%s\82Í\82 \82È\82½\82©\82ç\93\90\82à\82¤\82Æ\82µ\82½\82ª\81C\93\90\82Þ\82à\82Ì\82ª\82È\82¢\82±\82Æ\82É\8bC\82ª\82Â\82¢\82½\81I",
                   Monnam(mtmp));
         return 1; /* let her flee */
     }
@@ -345,6 +379,7 @@ gotobj:
                       || (otmp == uleft && welded(uwep) && bimanual(uwep)));
 
         if (ostuck || can_carry(mtmp, otmp) == 0) {
+#if 0 /*JP*/
             static const char *const how[] = { "steal", "snatch", "grab",
                                                "take" };
         cant_take:
@@ -353,6 +388,12 @@ gotobj:
                   (otmp->owornmask & W_ARMOR) ? "your " : "",
                   (otmp->owornmask & W_ARMOR) ? equipname(otmp)
                                               : yname(otmp));
+#else
+        cant_take:
+            pline("%s\82Í%s\82ð\93\90\82à\82¤\82Æ\82µ\82½\82ª\92ú\82ß\82½\81D", Monnam(mtmp),
+                  (otmp->owornmask & W_ARMOR) ? equipname(otmp)
+                                              : yname(otmp));
+#endif
             /* the fewer items you have, the less likely the thief
                is going to stick around to try again (0) instead of
                running away (1) */
@@ -403,6 +444,7 @@ gotobj:
                     unmul((char *) 0);
                 slowly = (armordelay >= 1 || multi < 0);
                 if (flags.female)
+#if 0 /*JP*/
                     pline("%s charms you.  You gladly %s your %s.",
                           !seen ? "She" : Monnam(mtmp),
                           curssv ? "let her take"
@@ -410,7 +452,17 @@ gotobj:
                                            : was_doffing ? "continue removing"
                                                          : "start removing",
                           equipname(otmp));
+#else
+                    pline("%s\82Í\82 \82È\82½\82ð\96£\97¹\82µ\82½\81D\82 \82È\82½\82Í\82æ\82ë\82±\82ñ\82Å%s\82ð%s\82½\81D",
+                          !seen ? "\94Þ\8f\97" : Monnam(mtmp),
+                          equipname(otmp),
+                          curssv ? "\82Í\82¸\82µ\82Ä\82à\82ç\82Á"
+                                 : !slowly ? "\82Í\82¸\82µ\82Ä\8eè\93n\82µ"
+                                           : was_doffing ? "\82Í\82¸\82µ\91±\82¯"
+                                                         : "\82Í\82¸\82µ\8en\82ß");
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s seduces you and %s off your %s.",
                           !seen ? "She" : Adjmonnam(mtmp, "beautiful"),
                           curssv
@@ -419,6 +471,16 @@ gotobj:
                                         : was_doffing ? "you continue taking"
                                                       : "you start taking",
                           equipname(otmp));
+#else
+                    pline("%s\82Í\82 \82È\82½\82ð\97U\98f\82µ\82½\81D\82 \82È\82½\82Í%s\82ð%s\81D",
+                          !seen ? "\94Þ\8f\97" : Adjmonnam(mtmp, "\94ü\82µ\82¢"),
+                          equipname(otmp),
+                          curssv
+                              ? "\82Í\82¸\82µ\82Ä\82à\82ç\82Á"
+                              : !slowly ? "\82Í\82¸\82µ"
+                                        : was_doffing ? "\82Í\82¸\82µ\91±\82¯"
+                                                      : "\82Í\82¸\82µ\8en\82ß");
+#endif
                 named++;
                 /* the following is to set multi for later on */
                 nomul(-armordelay);
@@ -456,7 +518,10 @@ gotobj:
     if (otmp->unpaid)
         subfrombill(otmp, shop_keeper(*u.ushops));
     freeinv(otmp);
+/*JP
     pline("%s stole %s.", named ? "She" : Monnam(mtmp), doname(otmp));
+*/
+    pline("%s\82Í%s\82ð\93\90\82ñ\82¾\81D", named ? "\94Þ\8f\97" : Monnam(mtmp), doname(otmp));
     could_petrify =
         (otmp->otyp == CORPSE && touch_petrifies(&mons[otmp->corpsenm]));
     (void) mpickobj(mtmp, otmp); /* may free otmp */
@@ -488,7 +553,10 @@ register struct obj *otmp;
     if (obj_sheds_light(otmp) && attacktype(mtmp->data, AT_ENGL)) {
         /* this is probably a burning object that you dropped or threw */
         if (u.uswallow && mtmp == u.ustuck && !Blind)
+/*JP
             pline("%s out.", Tobjnam(otmp, "go"));
+*/
+            pline("%s\82Í\94ò\82Ñ\82¾\82µ\82½\81D", xname(otmp));
         snuff_otmp = TRUE;
     }
     /* for hero owned object on shop floor, mtmp is taking possession
@@ -549,7 +617,10 @@ struct monst *mtmp;
         /* mpickobj wont merge otmp because none of the above things
            to steal are mergable */
         (void) mpickobj(mtmp, otmp); /* may merge and free otmp */
+/*JP
         pline("%s stole %s!", Monnam(mtmp), doname(otmp));
+*/
+        pline("%s\82Í%s\82ð\93\90\82ñ\82¾\81I", Monnam(mtmp), doname(otmp));
         if (can_teleport(mtmp->data) && !tele_restrict(mtmp))
             (void) rloc(mtmp, TRUE);
     }
@@ -630,8 +701,14 @@ boolean verbosely;
     }
     /* obj_no_longer_held(obj); -- done by place_object */
     if (verbosely && cansee(omx, omy))
+/*JP
         pline("%s drops %s.", Monnam(mon), distant_name(obj, doname));
+*/
+        pline("%s\82Í%s\82ð\92u\82¢\82½\81D", Monnam(mon), distant_name(obj, doname));
+/*JP
     if (!flooreffects(obj, omx, omy, "fall")) {
+*/
+    if (!flooreffects(obj, omx, omy, "\97\8e\82¿\82é")) {
         place_object(obj, omx, omy);
         stackobj(obj);
     }
index 40ef107..a575ee0 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Kevin Hugo, 1998-1999. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* Monsters that might be ridden */
@@ -16,7 +21,10 @@ STATIC_DCL void FDECL(maybewakesteed, (struct monst *));
 void
 rider_cant_reach()
 {
+/*JP
     You("aren't skilled enough to reach from %s.", y_monnam(u.usteed));
+*/
+    You("\82Ü\82¾\8f\\95ª\82É\8bZ\97Ê\82ð\90Ï\82ñ\82Å\82¢\82È\82¢\82Ì\82Å\81C%s\82©\82ç\93Í\82©\82È\82¢\81D", y_monnam(u.usteed));
 }
 
 /*** Putting the saddle on ***/
@@ -51,42 +59,66 @@ struct obj *otmp;
         return 0;
     }
     if (!u.dx && !u.dy) {
+/*JP
         pline("Saddle yourself?  Very funny...");
+*/
+        pline("\8e©\95ª\8e©\90g\82É\88Æ\81H\82¨\82à\82µ\82ë\82¢\81D\81D\81D");
         return 0;
     }
     if (!isok(u.ux + u.dx, u.uy + u.dy)
         || !(mtmp = m_at(u.ux + u.dx, u.uy + u.dy)) || !canspotmon(mtmp)) {
+/*JP
         pline("I see nobody there.");
+*/
+        pline("\82»\82±\82É\82Í\92N\82à\82¢\82È\82¢\82æ\82¤\82É\8c©\82¦\82é\81D");
         return 1;
     }
 
     /* Is this a valid monster? */
     if (mtmp->misc_worn_check & W_SADDLE || which_armor(mtmp, W_SADDLE)) {
+/*JP
         pline("%s doesn't need another one.", Monnam(mtmp));
+*/
+        pline("%s\82Í\82à\82¤\88Æ\82ª\8eæ\82è\82Â\82¯\82ç\82ê\82Ä\82¢\82é\81D", Monnam(mtmp));
         return 1;
     }
     ptr = mtmp->data;
     if (touch_petrifies(ptr) && !uarmg && !Stone_resistance) {
         char kbuf[BUFSZ];
 
+/*JP
         You("touch %s.", mon_nam(mtmp));
+*/
+        You("%s\82É\90G\82ê\82½\81D", mon_nam(mtmp));
         if (!(poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))) {
+/*JP
             Sprintf(kbuf, "attempting to saddle %s", an(mtmp->data->mname));
+*/
+            Sprintf(kbuf, "%s\82É\88Æ\82ð\8eæ\82è\82Â\82¯\82æ\82¤\82Æ\82µ\82Ä", mtmp->data->mname);
             instapetrify(kbuf);
         }
     }
     if (ptr == &mons[PM_INCUBUS] || ptr == &mons[PM_SUCCUBUS]) {
+/*JP
         pline("Shame on you!");
+*/
+        pline("\92p\82ð\92m\82ê\81I");
         exercise(A_WIS, FALSE);
         return 1;
     }
     if (mtmp->isminion || mtmp->isshk || mtmp->ispriest || mtmp->isgd
         || mtmp->iswiz) {
+/*JP
         pline("I think %s would mind.", mon_nam(mtmp));
+*/
+        pline("%s\82Í\8c\99\82ª\82Á\82Ä\82¢\82é\82æ\82¤\82¾\81D", mon_nam(mtmp));
         return 1;
     }
     if (!can_saddle(mtmp)) {
+/*JP
         You_cant("saddle such a creature.");
+*/
+        You("\82»\82Ì\90\82«\95¨\82É\88Æ\82Í\82Æ\82è\82Â\82¯\82ç\82ê\82È\82¢\81D");
         return 1;
     }
 
@@ -115,11 +147,17 @@ struct obj *otmp;
     if (Confusion || Fumbling || Glib)
         chance -= 20;
     else if (uarmg && (s = OBJ_DESCR(objects[uarmg->otyp])) != (char *) 0
+/*JP
              && !strncmp(s, "riding ", 7))
+*/
+             && !strncmp(s, "\8fæ\94n\97p\82Ì", 8))
         /* Bonus for wearing "riding" (but not fumbling) gloves */
         chance += 10;
     else if (uarmf && (s = OBJ_DESCR(objects[uarmf->otyp])) != (char *) 0
+/*JP
              && !strncmp(s, "riding ", 7))
+*/
+             && !strncmp(s, "\8fæ\94n\97p\82Ì", 8))
         /* ... or for "riding boots" */
         chance += 10;
     if (otmp->cursed)
@@ -130,7 +168,10 @@ struct obj *otmp;
 
     /* Make the attempt */
     if (rn2(100) < chance) {
+/*JP
         You("put the saddle on %s.", mon_nam(mtmp));
+*/
+        You("\88Æ\82ð%s\82É\8eæ\82è\82Â\82¯\82½\81D", mon_nam(mtmp));
         if (otmp->owornmask)
             remove_worn_item(otmp, FALSE);
         freeinv(otmp);
@@ -142,7 +183,10 @@ struct obj *otmp;
         otmp->leashmon = mtmp->m_id;
         update_mon_intrinsics(mtmp, otmp, TRUE, FALSE);
     } else
+/*JP
         pline("%s resists!", Monnam(mtmp));
+*/
+        pline("%s\82Í\8b\91\94Û\82µ\82½\81I", Monnam(mtmp));
     return 1;
 }
 
@@ -166,7 +210,10 @@ doride()
     if (u.usteed) {
         dismount_steed(DISMOUNT_BYCHOICE);
     } else if (getdir((char *) 0) && isok(u.ux + u.dx, u.uy + u.dy)) {
+/*JP
         if (wizard && yn("Force the mount to succeed?") == 'y')
+*/
+        if (wizard && yn("\96³\97\9d\96î\97\9d\90¬\8c÷\82³\82¹\82Ü\82·\82©\81H") == 'y')
             forcemount = TRUE;
         return (mount_steed(m_at(u.ux + u.dx, u.uy + u.dy), forcemount));
     } else {
@@ -187,13 +234,20 @@ boolean force;      /* Quietly force this animal */
 
     /* Sanity checks */
     if (u.usteed) {
+/*JP
         You("are already riding %s.", mon_nam(u.usteed));
+*/
+        You("\82à\82¤%s\82É\8fæ\82Á\82Ä\82¢\82é\81D", mon_nam(u.usteed));
         return (FALSE);
     }
 
     /* Is the player in the right form? */
     if (Hallucination && !force) {
+#if 0 /*JP*/
         pline("Maybe you should find a designated driver.");
+#else
+        pline("\82¨\82»\82ç\82­\82 \82È\82½\82Í\8ew\92è\83h\83\89\83C\83o\81[\82ð\92T\82·\82×\82«\82¾\82ë\82¤\81D");
+#endif
         return (FALSE);
     }
     /* While riding Wounded_legs refers to the steed's,
@@ -210,7 +264,10 @@ boolean force;      /* Quietly force this animal */
      * temporary 1 point Dex loss become permanent.]
      */
     if (Wounded_legs) {
+/*JP
         Your("%s are in no shape for riding.", makeplural(body_part(LEG)));
+*/
+        pline("%s\82ð\89ö\89ä\82µ\82Ä\82¢\82é\82Ì\82Å\8fæ\82ê\82È\82¢\81D", makeplural(body_part(LEG)));
         if (force && wizard && yn("Heal your legs?") == 'y')
             HWounded_legs = EWounded_legs = 0;
         else
@@ -219,11 +276,17 @@ boolean force;      /* Quietly force this animal */
 
     if (Upolyd && (!humanoid(youmonst.data) || verysmall(youmonst.data)
                    || bigmonst(youmonst.data) || slithy(youmonst.data))) {
+/*JP
         You("won't fit on a saddle.");
+*/
+        You("\88Æ\82É\8d\87\82í\82È\82¢\81D");
         return (FALSE);
     }
     if (!force && (near_capacity() > SLT_ENCUMBER)) {
+/*JP
         You_cant("do that while carrying so much stuff.");
+*/
+        You("\91ò\8eR\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\82¨\82è\8fo\97\88\82È\82¢\81D");
         return (FALSE);
     }
 
@@ -231,84 +294,138 @@ boolean force;      /* Quietly force this animal */
     if (!mtmp || (!force && ((Blind && !Blind_telepat) || mtmp->mundetected
                              || mtmp->m_ap_type == M_AP_FURNITURE
                              || mtmp->m_ap_type == M_AP_OBJECT))) {
+/*JP
         pline("I see nobody there.");
+*/
+        pline("\82»\82±\82É\82Í\89½\82à\8c©\82¦\82È\82¢\81D");
         return (FALSE);
     }
     if (u.uswallow || u.ustuck || u.utrap || Punished
         || !test_move(u.ux, u.uy, mtmp->mx - u.ux, mtmp->my - u.uy,
                       TEST_MOVE)) {
         if (Punished || !(u.uswallow || u.ustuck || u.utrap))
+/*JP
             You("are unable to swing your %s over.", body_part(LEG));
+*/
+            You("\88Æ\82ð\82Ü\82½\82®\82±\82Æ\82ª\82Å\82«\82È\82¢\81D");
         else
+/*JP
             You("are stuck here for now.");
+*/
+            You("\82Í\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\8fo\97\88\82È\82¢\81D");
         return (FALSE);
     }
 
     /* Is this a valid monster? */
     otmp = which_armor(mtmp, W_SADDLE);
     if (!otmp) {
+/*JP
         pline("%s is not saddled.", Monnam(mtmp));
+*/
+        pline("%s\82É\82Í\88Æ\82ª\8eæ\82è\82Â\82¯\82ç\82ê\82Ä\82¢\82È\82¢\81D", Monnam(mtmp));
         return (FALSE);
     }
     ptr = mtmp->data;
     if (touch_petrifies(ptr) && !Stone_resistance) {
         char kbuf[BUFSZ];
 
+/*JP
         You("touch %s.", mon_nam(mtmp));
+*/
+        You("%s\82É\90G\82ê\82½\81D", mon_nam(mtmp));
+/*JP
         Sprintf(kbuf, "attempting to ride %s", an(mtmp->data->mname));
+*/
+        Sprintf(kbuf, "%s\82É\8fæ\82ë\82¤\82Æ\82µ\82Ä", a_monnam(mtmp));
         instapetrify(kbuf);
     }
     if (!mtmp->mtame || mtmp->isminion) {
+/*JP
         pline("I think %s would mind.", mon_nam(mtmp));
+*/
+        pline("%s\82Í\8c\99\82ª\82Á\82Ä\82¢\82é\82æ\82¤\82¾\81D", mon_nam(mtmp));
         return (FALSE);
     }
     if (mtmp->mtrapped) {
         struct trap *t = t_at(mtmp->mx, mtmp->my);
 
+#if 0 /*JP*/
         You_cant("mount %s while %s's trapped in %s.", mon_nam(mtmp),
                  mhe(mtmp), an(defsyms[trap_to_defsym(t->ttyp)].explanation));
+#else
+        You("%s\82É\95ß\82Ü\82Á\82Ä\82¢\82é%s\82É\82Í\8fæ\82ê\82È\82¢\81D",
+            defsyms[trap_to_defsym(t->ttyp)].explanation, mon_nam(mtmp));
+#endif
         return (FALSE);
     }
 
     if (!force && !Role_if(PM_KNIGHT) && !(--mtmp->mtame)) {
         /* no longer tame */
         newsym(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
         pline("%s resists%s!", Monnam(mtmp),
               mtmp->mleashed ? " and its leash comes off" : "");
+#else
+        pline("%s\82Í\8b\91\94Û%s\81I", Monnam(mtmp),
+              mtmp->mleashed ? "\82µ\82Ä\81C\95R\82ð\82Í\82¸\82µ\82½" : "\82µ\82½");
+#endif
         if (mtmp->mleashed)
             m_unleash(mtmp, FALSE);
         return (FALSE);
     }
     if (!force && Underwater && !is_swimmer(ptr)) {
+/*JP
         You_cant("ride that creature while under water.");
+*/
+        You("\90\85\92\86\82Å\8fæ\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return (FALSE);
     }
     if (!can_saddle(mtmp) || !can_ride(mtmp)) {
+/*JP
         You_cant("ride such a creature.");
+*/
+        You("\82»\82Ì\90\82«\95¨\82É\8fæ\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         return (0);
     }
 
     /* Is the player impaired? */
     if (!force && !is_floater(ptr) && !is_flyer(ptr) && Levitation
         && !Lev_at_will) {
+/*JP
         You("cannot reach %s.", mon_nam(mtmp));
+*/
+        You("%s\82É\93Í\82©\82È\82¢\81D", mon_nam(mtmp));
         return (FALSE);
     }
     if (!force && uarm && is_metallic(uarm) && greatest_erosion(uarm)) {
+#if 0 /*JP*/
         Your("%s armor is too stiff to be able to mount %s.",
              uarm->oeroded ? "rusty" : "corroded", mon_nam(mtmp));
+#else
+        Your("%s\8aZ\82Í\83M\83V\83M\83V\82¢\82Á\82Ä\82¨\82è%s\82É\8fæ\82ê\82È\82¢\81D",
+             uarm->oeroded ? "\8eK\82Ñ\82½" : "\95\85\90H\82µ\82½", mon_nam(mtmp));
+#endif
         return (FALSE);
     }
     if (!force
         && (Confusion || Fumbling || Glib || Wounded_legs || otmp->cursed
             || (u.ulevel + mtmp->mtame < rnd(MAXULEV / 2 + 5)))) {
         if (Levitation) {
+/*JP
             pline("%s slips away from you.", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82©\82ç\82Í\82È\82ê\82Ä\82¢\82Á\82½\81D", Monnam(mtmp));
             return FALSE;
         }
+/*JP
         You("slip while trying to get on %s.", mon_nam(mtmp));
+*/
+        You("%s\82É\8fæ\82ë\82¤\82Æ\82µ\82Ä\82·\82×\82Á\82½\81D", mon_nam(mtmp));
 
+/*JP
         Sprintf(buf, "slipped while mounting %s",
+*/
+        Sprintf(buf, "%s\82É\8fæ\82ë\82¤\82Æ\82µ\82Ä\82·\82×\82è\97\8e\82¿\82Ä",
                 /* "a saddled mumak" or "a saddled pony called Dobbin" */
                 x_monnam(mtmp, ARTICLE_A, (char *) 0,
                          SUPPRESS_IT | SUPPRESS_INVISIBLE
@@ -323,8 +440,14 @@ boolean force;      /* Quietly force this animal */
     if (!force) {
         if (Levitation && !is_floater(ptr) && !is_flyer(ptr))
             /* Must have Lev_at_will at this point */
+/*JP
             pline("%s magically floats up!", Monnam(mtmp));
+*/
+            pline("%s\82Í\96\82\96@\82Ì\97Í\82Å\95\82\82¢\82½\81I", Monnam(mtmp));
+/*JP
         You("mount %s.", mon_nam(mtmp));
+*/
+        You("%s\82É\8fæ\82Á\82½\81D", mon_nam(mtmp));
     }
     /* setuwep handles polearms differently when you're mounted */
     if (uwep && is_pole(uwep))
@@ -357,8 +480,8 @@ kick_steed()
 #if 0 /*JP*/
     char He[4];
 #else
-       /* role.c Gender.he \82Ì\92l\82ª\83R\83s\81[\82³\82ê\82é */
-       char He[16];
+    /* role.c Gender.he \82Ì\92l\82ª\83R\83s\81[\82³\82ê\82é */
+    char He[16];
 #endif
     if (!u.usteed)
         return;
@@ -380,11 +503,23 @@ kick_steed()
                 u.usteed->mcanmove = 1;
             }
             if (u.usteed->msleeping || !u.usteed->mcanmove)
+#if 0 /*JP*/
                 pline("%s stirs.", He);
+#else
+                pline("%s\82Í\90g\82\82ë\82¬\82µ\82½\81D", He);
+#endif
             else
+#if 0 /*JP*/
                 pline("%s rouses %sself!", He, mhim(u.usteed));
+#else
+                pline("%s\82Í\95±\8bN\82µ\82½\81I", He);
+#endif
         } else
+#if 0 /*JP*/
             pline("%s does not respond.", He);
+#else
+            pline("%s\82Í\94½\89\9e\82µ\82È\82¢\81D", He);
+#endif
         return;
     }
 
@@ -400,7 +535,10 @@ kick_steed()
         return;
     }
 
+/*JP
     pline("%s gallops!", Monnam(u.usteed));
+*/
+    pline("%s\82Í\91¬\91«\82É\82È\82Á\82½\81I", Monnam(u.usteed));
     u.ugallop += rn1(20, 30);
     return;
 }
@@ -464,7 +602,10 @@ int reason; /* Player was thrown off etc. */
     struct monst *mtmp;
     struct obj *otmp;
     coord cc;
+/*JP
     const char *verb = "fall";
+*/
+    const char *verb = "\97\8e\82¿\82½";
     boolean repair_leg_damage = (Wounded_legs != 0L);
     unsigned save_utrap = u.utrap;
     boolean have_spot = landing_spot(&cc, reason, 0);
@@ -478,17 +619,29 @@ int reason; /* Player was thrown off etc. */
     otmp = which_armor(mtmp, W_SADDLE);
     switch (reason) {
     case DISMOUNT_THROWN:
+/*JP
         verb = "are thrown";
+*/
+        verb = "\82Ó\82è\97\8e\82³\82ê\82½";
     case DISMOUNT_FELL:
+/*JP
         You("%s off of %s!", verb, mon_nam(mtmp));
+*/
+        You("%s\82©\82ç%s\81I", mon_nam(mtmp), verb);
         if (!have_spot)
             have_spot = landing_spot(&cc, reason, 1);
+/*JP
         losehp(Maybe_Half_Phys(rn1(10, 10)), "riding accident", KILLED_BY_AN);
+*/
+        losehp(Maybe_Half_Phys(rn1(10, 10)), "\8bR\8fæ\8e\96\8cÌ\82Å", KILLED_BY_AN);
         set_wounded_legs(BOTH_SIDES, (int) HWounded_legs + rn1(5, 5));
         repair_leg_damage = FALSE;
         break;
     case DISMOUNT_POLY:
+/*JP
         You("can no longer ride %s.", mon_nam(u.usteed));
+*/
+        You("%s\82É\8fæ\82Á\82Ä\82ç\82ê\82È\82¢\81D", mon_nam(u.usteed));
         if (!have_spot)
             have_spot = landing_spot(&cc, reason, 1);
         break;
@@ -504,22 +657,39 @@ int reason; /* Player was thrown off etc. */
     case DISMOUNT_BYCHOICE:
     default:
         if (otmp && otmp->cursed) {
+#if 0 /*JP*/
             You("can't.  The saddle %s cursed.",
                 otmp->bknown ? "is" : "seems to be");
+#else
+            You("\8d~\82è\82ç\82ê\82È\82¢\81D\88Æ\82Í\8eô\82í\82ê\82Ä\82¢\82é%s\81D",
+                otmp->bknown ? "" : "\82æ\82¤\82¾");
+#endif
             otmp->bknown = TRUE;
             return;
         }
         if (!have_spot) {
+/*JP
             You("can't. There isn't anywhere for you to stand.");
+*/
+            pline("\82 \82È\82½\82Ì\97§\82Â\8fê\8f\8a\82ª\82È\82¢\82Ì\82Å\8d~\82è\82ç\82ê\82È\82¢\81D");
             return;
         }
         if (!has_mname(mtmp)) {
+/*JP
             pline("You've been through the dungeon on %s with no name.",
+*/
+            pline("\82 \82È\82½\82Í\96¼\91O\82Ì\82È\82¢%s\82Æ\8b¤\82É\96À\8b{\93à\82É\82¢\82é\81D",
                   an(mtmp->data->mname));
             if (Hallucination)
+/*JP
                 pline("It felt good to get out of the rain.");
+*/
+                pline("\89J\82ª\8d~\82ç\82È\82¢\82Ì\82Æ\82¢\82¤\82Ì\82Í\82¢\82¢\8bC\95ª\82¾\82Á\82½\81D");
         } else
+/*JP
             You("dismount %s.", mon_nam(mtmp));
+*/
+            You("%s\82©\82ç\8d~\82è\82½\81D", mon_nam(mtmp));
     }
     /* While riding, Wounded_legs refers to the steed's legs;
        after dismounting, it reverts to the hero's legs. */
@@ -553,14 +723,20 @@ int reason; /* Player was thrown off etc. */
             if (!is_flyer(mdat) && !is_floater(mdat) && !is_clinger(mdat)) {
                 if (is_pool(u.ux, u.uy)) {
                     if (!Underwater)
+/*JP
                         pline("%s falls into the %s!", Monnam(mtmp),
+*/
+                        pline("%s\82Í%s\82É\97\8e\82¿\82½\81I", Monnam(mtmp),
                               surface(u.ux, u.uy));
                     if (!is_swimmer(mdat) && !amphibious(mdat)) {
                         killed(mtmp);
                         adjalign(-1);
                     }
                 } else if (is_lava(u.ux, u.uy)) {
+/*JP
                     pline("%s is pulled into the lava!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\97n\8aâ\82Ì\92\86\82É\82Ð\82Á\82Ï\82ç\82ê\82½\81I", Monnam(mtmp));
                     if (!likes_lava(mdat)) {
                         killed(mtmp);
                         adjalign(-1);
index 5faf013..9a9631c 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL boolean FDECL(tele_jump_ok, (int, int, int, int));
@@ -399,7 +404,10 @@ boolean force_it;
             yelp(mtmp);
             return FALSE;
         } else {
+/*JP
             Your("leash goes slack.");
+*/
+            Your("\95R\82Í\82½\82é\82ñ\82¾\81D");
         release_it:
             m_unleash(mtmp, FALSE);
             return TRUE;
@@ -429,7 +437,10 @@ struct obj *scroll;
     /* Disable teleportation in stronghold && Vlad's Tower */
     if (level.flags.noteleport) {
         if (!wizard) {
+/*JP
             pline("A mysterious force prevents you from teleporting!");
+*/
+            pline("\8aï\96­\82È\97Í\82ª\8fu\8aÔ\88Ú\93®\82ð\96h\82¢\82¾\81I");
             return TRUE;
         }
     }
@@ -439,23 +450,36 @@ struct obj *scroll;
         make_blinded(0L, FALSE);
 
     if ((u.uhave.amulet || On_W_tower_level(&u.uz)) && !rn2(3)) {
+/*JP
         You_feel("disoriented for a moment.");
+*/
+        You("\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         if (!wizard || yn("Override?") != 'y')
             return FALSE;
     }
     if ((Teleport_control && !Stunned) || wizard) {
         if (unconscious()) {
+/*JP
             pline("Being unconscious, you cannot control your teleport.");
+*/
+            pline("\88Ó\8e¯\82ª\82È\82¢\82Ì\82Å\81C\82 \82È\82½\82Í\8fu\8aÔ\88Ú\93®\82ð\90§\8cä\82Å\82«\82È\82¢\81D");
         } else {
+#if 0 /*JP*//*\8eå\8cê\82ð\8fÈ\97ª\82µ\82Ä\8aÈ\97ª\89»*/
             char whobuf[BUFSZ];
 
             Strcpy(whobuf, "you");
             if (u.usteed)
                 Sprintf(eos(whobuf), " and %s", mon_nam(u.usteed));
             pline("To what position do %s want to be teleported?", whobuf);
+#else
+            pline("\82Ç\82Ì\88Ê\92u\82É\8fu\8aÔ\88Ú\93®\82µ\82Ü\82·\82©\81H");
+#endif
             cc.x = u.ux;
             cc.y = u.uy;
+/*JP
             if (getpos(&cc, TRUE, "the desired position") < 0)
+*/
+            if (getpos(&cc, TRUE, "\88Ú\93®\82µ\82½\82¢\8fê\8f\8a") < 0)
                 return TRUE; /* abort */
             /* possible extensions: introduce a small error if
                magic power is low; allow transfer to solid rock */
@@ -466,7 +490,10 @@ struct obj *scroll;
                 teleds(cc.x, cc.y, FALSE);
                 return TRUE;
             }
+/*JP
             pline("Sorry...");
+*/
+            pline("\82¨\82Á\82Æ\81D\81D\81D");
             result = TRUE;
         }
     } else if (scroll && scroll->blessed) {
@@ -499,8 +526,14 @@ dotele()
     if (trap) {
         trap_once = trap->once; /* trap may get deleted, save this */
         if (trap->once) {
+/*JP
             pline("This is a vault teleport, usable once only.");
+*/
+            pline("\88ê\93x\82©\82¬\82è\82Ì\91q\8cÉ\82Ö\82Ì\8fu\8aÔ\88Ú\93®\82Ìã©\82¾\81D");
+/*JP
             if (yn("Jump in?") == 'n')
+*/
+            if (yn("\94ò\82Ñ\8d\9e\82Þ\81H") == 'n')
                 trap = 0;
             else {
                 deltrap(trap);
@@ -508,8 +541,12 @@ dotele()
             }
         }
         if (trap)
+#if 0 /*JP*/
             You("%s onto the teleportation trap.",
                 locomotion(youmonst.data, "jump"));
+#else
+            You("\8fu\8aÔ\88Ú\93®\82Ìã©\82É\94ò\82Ñ\82±\82ñ\82¾\81D");
+#endif
     }
     if (!trap) {
         boolean castit = FALSE;
@@ -527,9 +564,15 @@ dotele()
             if (!wizard) {
                 if (!castit) {
                     if (!Teleportation)
+/*JP
                         You("don't know that spell.");
+*/
+                        You("\82»\82ñ\82È\96\82\96@\82Í\92m\82ç\82È\82¢\81D");
                     else
+/*JP
                         You("are not able to teleport at will.");
+*/
+                        You("\8e©\95ª\82Ì\88Ó\8ev\82Å\8fu\8aÔ\88Ú\93®\82Å\82«\82È\82¢\81D");
                     return 0;
                 }
             }
@@ -537,8 +580,13 @@ dotele()
 
         if (u.uhunger <= 100 || ACURR(A_STR) < 6) {
             if (!wizard) {
+#if 0 /*JP*/
                 You("lack the strength %s.",
                     castit ? "for a teleport spell" : "to teleport");
+#else
+                You("%s\82¾\82¯\82Ì\97Í\82ª\82È\82¢\81D",
+                    castit ? "\8fu\8aÔ\88Ú\93®\82Ì\96\82\96@\82ð\8f¥\82¦\82é" : "\8fu\8aÔ\88Ú\93®\82·\82é");
+#endif
                 return 1;
             }
         }
@@ -548,14 +596,22 @@ dotele()
             if (wizard)
                 energy = u.uen;
             else {
+#if 0 /*JP*/
                 You("lack the energy %s.",
                     castit ? "for a teleport spell" : "to teleport");
+#else
+                You("%s\82¾\82¯\82Ì\83G\83l\83\8b\83M\81[\82ª\82È\82¢\81D",
+                    castit ? "\8fu\8aÔ\88Ú\93®\82Ì\96\82\96@\82ð\8f¥\82¦\82é" : "\8fu\8aÔ\88Ú\93®\82·\82é");
+#endif
                 return 1;
             }
         }
 
         if (check_capacity(
+/*JP
                 "Your concentration falters from carrying so much."))
+*/
+                "\91ò\8eR\82à\82Ì\82ð\8e\9d\82¿\82·\82¬\82Ä\8fW\92\86\82Å\82«\82È\82¢\81D"))
             return 1;
 
         if (castit) {
@@ -596,32 +652,47 @@ level_tele()
 
     if ((u.uhave.amulet || In_endgame(&u.uz) || In_sokoban(&u.uz))
         && !wizard) {
+/*JP
         You_feel("very disoriented for a moment.");
+*/
+        You("\88ê\8fu\95û\8cü\8a´\8ao\82ð\91å\82«\82­\8e¸\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         return;
     }
     if ((Teleport_control && !Stunned) || wizard) {
         char qbuf[BUFSZ];
         int trycnt = 0;
 
+/*JP
         Strcpy(qbuf, "To what level do you want to teleport?");
+*/
+        Strcpy(qbuf, "\89½\8aK\82É\88Ú\93®\82µ\82Ü\82·\82©\81H");
         do {
             if (++trycnt == 2) {
                 if (wizard)
                     Strcat(qbuf, " [type a number or ? for a menu]");
                 else
+/*JP
                     Strcat(qbuf, " [type a number]");
+*/
+                    Strcat(qbuf, " [\90\94\8e\9a\82ð\82¢\82ê\82Ä\82Ë]");
             }
             getlin(qbuf, buf);
             if (!strcmp(buf, "\033")) { /* cancelled */
                 if (Confusion && rnl(5)) {
+/*JP
                     pline("Oops...");
+*/
+                    pline("\82¨\82Á\82Æ\81D\81D\81D");
                     goto random_levtport;
                 }
                 return;
             } else if (!strcmp(buf, "*")) {
                 goto random_levtport;
             } else if (Confusion && rnl(5)) {
+/*JP
                 pline("Oops...");
+*/
+                pline("\82¨\82Á\82Æ\81D\81D\81D");
                 goto random_levtport;
             }
             if (wizard && !strcmp(buf, "?")) {
@@ -657,21 +728,46 @@ level_tele()
         if (newlev == 0) {
             if (trycnt >= 10)
                 goto random_levtport;
+/*JP
             if (ynq("Go to Nowhere.  Are you sure?") != 'y')
+*/
+            if (ynq("\82Ç\82±\82Æ\82à\92m\82ê\82Ê\8fê\8f\8a\82É\8ds\82«\82Ü\82·\81H\82æ\82ë\82µ\82¢\82Å\82·\82©\81H") != 'y')
                 return;
+#if 0 /*JP*/
             You("%s in agony as your body begins to warp...",
                 is_silent(youmonst.data) ? "writhe" : "scream");
+#else
+            You("\91Ì\82ª\88Ú\93®\82µ\82Í\82\82ß\82é\82Æ\81C\8bê\82µ\82Ý%s\81D\81D\81D",
+                is_silent(youmonst.data) ? "\82Å\90g\82à\82¾\82¦\82µ\82½" : "\82Ì\82 \82¦\82¬\90º\82ð\8fo\82µ\82½");
+#endif
             display_nhwindow(WIN_MESSAGE, FALSE);
+/*JP
             You("cease to exist.");
+*/
+                Your("\91\8dÝ\82Í\8fÁ\96Å\82µ\82½\81D");
             if (invent)
+/*JP
                 Your("possessions land on the %s with a thud.",
+*/
+                Your("\8e\9d\82¿\82à\82Ì\82Í\83h\83T\83b\82Æ%s\82É\97\8e\82¿\82½\81D",
                      surface(u.ux, u.uy));
             killer.format = NO_KILLER_PREFIX;
+/*JP
             Strcpy(killer.name, "committed suicide");
+*/
+            Strcpy(killer.name, "\8e©\8eE\82µ\82½");
             done(DIED);
+/*JP
             pline("An energized cloud of dust begins to coalesce.");
+*/
+            pline("\83G\83l\83\8b\83M\81[\82ð\82à\82Á\82½\82Ù\82±\82è\82Ì\89Q\82ª\8c\8b\8d\87\82µ\82Í\82\82ß\82½\81D");
+#if 0 /*JP*/
             Your("body rematerializes%s.",
                  invent ? ", and you gather up all your possessions" : "");
+#else
+            Your("\91Ì\82Í\8dÄ\82Ñ\8eÀ\91Ì\89»\82µ\82½\81D%s",
+                 invent ? "\82»\82µ\82Ä\91S\82Ä\82Ì\8e\9d\82¿\95¨\82ð\8fE\82¢\8fã\82°\82½\81D" : "");
+#endif
             return;
         }
 
@@ -712,7 +808,10 @@ level_tele()
         int llimit = dunlevs_in_dungeon(&u.uz);
 
         if (newlev >= 0 || newlev <= -llimit) {
+/*JP
             You_cant("get there from here.");
+*/
+            You("\82»\82±\82É\82Í\8ds\82¯\82È\82¢\81D");
             return;
         }
         newlevel.dnum = u.uz.dnum;
@@ -733,30 +832,65 @@ level_tele()
             in_mklev = FALSE;
         }
         if (newlev <= -10) {
+/*JP
             You("arrive in heaven.");
+*/
+            You("\93V\8d\91\82É\92H\82è\82Â\82¢\82½\81D");
+/*JP
             verbalize("Thou art early, but we'll admit thee.");
+*/
+            verbalize("\93ð\81C\8e\80\82Ê\82É\82Í\91\81\82·\82¬\82é\82ª\82»\82ê\82à\82æ\82©\82ë\82¤\81D");
             killer.format = NO_KILLER_PREFIX;
+/*JP
             Strcpy(killer.name, "went to heaven prematurely");
+*/
+            Strcpy(killer.name, "\8eá\82­\82µ\82Ä\93V\8d\91\82É\8ds\82Á\82½");
         } else if (newlev == -9) {
+/*JP
             You_feel("deliriously happy. ");
+*/
+            You("\8b\82Á\82½\82æ\82¤\82È\8dK\82¹\82ð\8a´\82\82½\81D");
+/*JP
             pline("(In fact, you're on Cloud 9!) ");
+*/
+            pline("(\96{\93\96\82É\8bê\82ð\8fæ\82è\89z\82¦\82½\8fê\8f\8a\82É\82¢\82é\81I) ");
             display_nhwindow(WIN_MESSAGE, FALSE);
         } else
+/*JP
             You("are now high above the clouds...");
+*/
+            You("\89_\82Ì\97y\82©\8fã\82É\82¢\82é\81D\81D\81D");
 
         if (killer.name[0]) {
             ; /* arrival in heaven is pending */
         } else if (Levitation) {
+/*JP
             escape_by_flying = "float gently down to earth";
+*/
+            escape_by_flying = "\82ä\82Á\82­\82è\92n\96Ê\82É\8d~\82è\82½\81D";
         } else if (Flying) {
+/*JP
             escape_by_flying = "fly down to the ground";
+*/
+            escape_by_flying = "\82ä\82Á\82­\82è\92n\96Ê\82É\8d~\82è\82½\81D";
         } else {
+/*JP
             pline("Unfortunately, you don't know how to fly.");
+*/
+            pline("\8ec\94O\82È\82ª\82ç\81C\82 \82È\82½\82Í\94ò\82Ñ\82©\82½\82ð\92m\82ç\82È\82¢\81D");
+/*JP
             You("plummet a few thousand feet to your death.");
+*/
+            pline("\90\94\90ç\83t\83B\81[\83g\82Ì\8e\80\82Ì\83_\83C\83r\83\93\83O\82¾\81I");
+#if 0 /*JP*/
             Sprintf(killer.name,
                     "teleported out of the dungeon and fell to %s death",
                     uhis());
             killer.format = NO_KILLER_PREFIX;
+#else
+            Strcpy(killer.name, "\96À\8b{\82ð\94ò\82Ñ\82¾\82µ\83_\83C\83r\83\93\83O\82µ\82Ä");
+            killer.format = KILLED_BY;
+#endif
         }
     }
 
@@ -770,13 +904,19 @@ level_tele()
         done(DIED);
         /* can only get here via life-saving (or declining to die in
            explore|debug mode); the hero has now left the dungeon... */
+/*JP
         escape_by_flying = "find yourself back on the surface";
+*/
+        escape_by_flying = "\8bC\82ª\82Â\82¢\82½\82ç\92n\8fã\82É\96ß\82Á\82Ä\82¢\82½";
         u.uz = lsav; /* restore u.uz so escape code works */
     }
 
     /* calls done(ESCAPED) if newlevel==0 */
     if (escape_by_flying) {
+/*JP
         You("%s.", escape_by_flying);
+*/
+        You("%s\81D", escape_by_flying);
         newlevel.dnum = 0;   /* specify main dungeon */
         newlevel.dlevel = 0; /* escape the dungeon */
         /* [dlevel used to be set to 1, but it doesn't make sense to
@@ -796,7 +936,10 @@ level_tele()
                           + dunlevs_in_dungeon(&u.uz) - 1)) {
             newlev = dungeons[u.uz.dnum].depth_start
                      + dunlevs_in_dungeon(&u.uz) - 2;
+/*JP
             pline("Sorry...");
+*/
+            pline("\82¨\82Á\82Æ\81D\81D\81D");
         }
         /* no teleporting out of quest dungeon */
         if (In_quest(&u.uz) && newlev < depth(&qstart_level))
@@ -834,20 +977,29 @@ register struct trap *ttmp;
     if (!on_level(&u.uz, &u.uz0))
         return;
 
+/*JP
     You("activated a magic portal!");
+*/
+    pline("\96\82\96@\82Ì\93ü\8cû\82ª\8dì\93®\82µ\82½\81I");
 
     /* prevent the poor shnook, whose amulet was stolen while in
      * the endgame, from accidently triggering the portal to the
      * next level, and thus losing the game
      */
     if (In_endgame(&u.uz) && !u.uhave.amulet) {
+/*JP
         You_feel("dizzy for a moment, but nothing happens...");
+*/
+        You("\88ê\8fu\82ß\82Ü\82¢\82ð\8a´\82\82½\81C\82µ\82©\82µ\89½\82à\8bN\82«\82È\82©\82Á\82½\81D\81D\81D");
         return;
     }
 
     target_level = ttmp->dst;
     schedule_goto(&target_level, FALSE, FALSE, 1,
+/*JP
                   "You feel dizzy for a moment, but the sensation passes.",
+*/
+                  "\88ê\8fu\82ß\82Ü\82¢\82ð\8a´\82\82½\81C\82µ\82©\82µ\82»\82Ì\8a´\8ao\82Í\8fÁ\82¦\82½\81D",
                   (char *) 0);
 }
 
@@ -858,7 +1010,10 @@ struct trap *trap;
     if (In_endgame(&u.uz) || Antimagic) {
         if (Antimagic)
             shieldeff(u.ux, u.uy);
+/*JP
         You_feel("a wrenching sensation.");
+*/
+        You("\82Ë\82\82ç\82ê\82½\82æ\82¤\82È\8a´\8ao\82ð\8a´\82\82½\81D");
     } else if (!next_to_u()) {
         You1(shudder_for_moment);
     } else if (trap->once) {
@@ -873,20 +1028,35 @@ void
 level_tele_trap(trap)
 struct trap *trap;
 {
+#if 0 /*JP*/
     You("%s onto a level teleport trap!",
         Levitation ? (const char *) "float"
                    : locomotion(youmonst.data, "step"));
+#else
+    You("\95Ê\82Ì\8aK\82Ö\82Ì\8fu\8aÔ\88Ú\93®\82Ìã©\82ð%s\81I",
+        Levitation ? (const char *) "\8c©\89º\82ë\82µ\82½"
+                   : jpast(locomotion(youmonst.data, "\93¥\82Þ")));
+#endif
     if (Antimagic) {
         shieldeff(u.ux, u.uy);
     }
     if (Antimagic || In_endgame(&u.uz)) {
+/*JP
         You_feel("a wrenching sensation.");
+*/
+        You("\82Ë\82\82ç\82ê\82½\82æ\82¤\82È\8a´\8ao\82ð\8a´\82\82½\81D");
         return;
     }
     if (!Blind)
+/*JP
         You("are momentarily blinded by a flash of light.");
+*/
+        You("\82Ü\82Î\82ä\82¢\8cõ\82Å\88ê\8fu\96Ú\82ª\82­\82ç\82ñ\82¾\81D");
     else
+/*JP
         You("are momentarily disoriented.");
+*/
+        You("\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\81D");
     deltrap(trap);
     newsym(u.ux, u.uy); /* get rid of trap symbol */
     level_tele();
@@ -1078,8 +1248,13 @@ struct monst *mon;
 {
     if (level.flags.noteleport) {
         if (canseemon(mon))
+#if 0 /*JP*/
             pline("A mysterious force prevents %s from teleporting!",
                   mon_nam(mon));
+#else
+            pline("\8aï\96­\82È\97Í\82ª%s\82Ì\8fu\8aÔ\88Ú\93®\82ð\96h\82¢\82¾\81I",
+                  mon_nam(mon));
+#endif
         return TRUE;
     }
     return FALSE;
@@ -1110,9 +1285,15 @@ int in_sight;
 
         if (in_sight) {
             if (canseemon(mtmp))
+/*JP
                 pline("%s seems disoriented.", monname);
+*/
+                pline("%s\82Í\88ê\8fu\95û\8cü\8a´\8ao\82ð\8e¸\82Á\82½\82æ\82¤\82¾\81D", monname);
             else
+/*JP
                 pline("%s suddenly disappears!", monname);
+*/
+                pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", monname);
             seetrap(trap);
         }
     }
@@ -1140,8 +1321,13 @@ int in_sight;
                 assign_level(&tolevel, &valley_level);
             } else if (Is_botlevel(&u.uz)) {
                 if (in_sight && trap->tseen)
+#if 0 /*JP*/
                     pline("%s avoids the %s.", Monnam(mtmp),
                           (tt == HOLE) ? "hole" : "trap");
+#else
+                    pline("%s\82Í%s\82ð\89ñ\94ð\82µ\82½\81D", Monnam(mtmp),
+                          (tt == HOLE) ? "\8c\8a" : "ã©");
+#endif
                 return 0;
             } else {
                 get_level(&tolevel, depth(&u.uz) + 1);
@@ -1150,7 +1336,10 @@ int in_sight;
             if (In_endgame(&u.uz)
                 && (mon_has_amulet(mtmp) || is_home_elemental(mptr))) {
                 if (in_sight && mptr->mlet != S_ELEMENTAL) {
+/*JP
                     pline("%s seems to shimmer for a moment.", Monnam(mtmp));
+*/
+                    pline("%s\82ª\88ê\8fu\8bP\82¢\82½\82æ\82¤\82É\8c©\82¦\82½\81D", Monnam(mtmp));
                     seetrap(trap);
                 }
                 return 0;
@@ -1163,21 +1352,30 @@ int in_sight;
 
             if (mon_has_amulet(mtmp) || In_endgame(&u.uz)) {
                 if (in_sight)
+/*JP
                     pline("%s seems very disoriented for a moment.",
+*/
+                    pline("%s\82Í\88ê\8fu\95û\8cü\8a´\8ao\82ð\91å\82«\82­\8e¸\82Á\82½\82æ\82¤\82¾\81D",
                           Monnam(mtmp));
                 return 0;
             }
             nlev = random_teleport_level();
             if (nlev == depth(&u.uz)) {
                 if (in_sight)
+/*JP
                     pline("%s shudders for a moment.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\88ê\8fu\90k\82¦\82½\81D", Monnam(mtmp));
                 return 0;
             }
             get_level(&tolevel, nlev);
         }
 
         if (in_sight) {
+/*JP
             pline("Suddenly, %s disappears out of sight.", mon_nam(mtmp));
+*/
+            pline("\93Ë\91R%s\82ª\8e\8b\8aE\82©\82ç\8fÁ\82¦\82½\81D", mon_nam(mtmp));
             seetrap(trap);
         }
         migrate_to_level(mtmp, ledger_no(&tolevel), migrate_typ, (coord *) 0);
@@ -1225,7 +1423,10 @@ register struct obj *obj;
                     != within_bounded_area(otx, oty, dndest.nlx, dndest.nly,
                                            dndest.nhx, dndest.nhy)));
 
+/*JP
     if (flooreffects(obj, tx, ty, "fall")) {
+*/
+    if (flooreffects(obj, tx, ty, "\97\8e\82¿\82é")) {
         return FALSE;
     } else if (otx == 0 && oty == 0) {
         ; /* fell through a trap door; no update of old loc needed */
@@ -1328,11 +1529,17 @@ boolean give_feedback;
 
     if (mtmp->ispriest && *in_rooms(mtmp->mx, mtmp->my, TEMPLE)) {
         if (give_feedback)
+/*JP
             pline("%s resists your magic!", Monnam(mtmp));
+*/
+            pline("%s\82Í\96\82\96@\82ð\96h\82¢\82¾\81I", Monnam(mtmp));
         return FALSE;
     } else if (level.flags.noteleport && u.uswallow && mtmp == u.ustuck) {
         if (give_feedback)
+/*JP
             You("are no longer inside %s!", mon_nam(mtmp));
+*/
+            You("%s\82Ì\93à\95\94\82©\82ç\92E\8fo\82µ\82½\81I", mon_nam(mtmp));
         unstuck(mtmp);
         (void) rloc(mtmp, TRUE);
     } else if (is_rider(mtmp->data) && rn2(13)
index e50ae39..2f53b36 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h" /* for checking save modes */
 
@@ -16,11 +21,19 @@ STATIC_DCL void FDECL(cleanup_burn, (ANY_P *, long));
 
 /* He is being petrified - dialogue by inmet!tower */
 static NEARDATA const char *const stoned_texts[] = {
+#if 0 /*JP*/
     "You are slowing down.",            /* 5 */
     "Your limbs are stiffening.",       /* 4 */
     "Your limbs have turned to stone.", /* 3 */
     "You have turned to stone.",        /* 2 */
     "You are a statue."                 /* 1 */
+#else
+    "\82 \82È\82½\82Í\82Ì\82ë\82­\82È\82Á\82½\81D",           /* 5 */
+    "\82 \82È\82½\82Ì\8eè\91«\82Í\8dd\92¼\82µ\82½\81D",         /* 4 */
+    "\82 \82È\82½\82Ì\8eè\91«\82Í\90Î\89»\82µ\82½\81D",         /* 3 */
+    "\82 \82È\82½\82Í\90Î\82É\82È\82Á\82½\81D",             /* 2 */
+    "\82 \82È\82½\82Í\92¤\91\9c\82É\82È\82Á\82½\81D"            /* 1 */
+#endif
 };
 
 STATIC_OVL void
@@ -64,11 +77,19 @@ stoned_dialogue()
 
 /* He is getting sicker and sicker prior to vomiting */
 static NEARDATA const char *const vomiting_texts[] = {
+#if 0 /*JP*/
     "are feeling mildly nauseated.", /* 14 */
     "feel slightly confused.",       /* 11 */
     "can't seem to think straight.", /* 8 */
     "feel incredibly sick.",         /* 5 */
     "suddenly vomit!"                /* 2 */
+#else
+    "\82¿\82å\82Á\82Æ\93f\82«\8bC\82ª\82µ\82½\81D",        /* 14 */
+    "\8f­\82µ\8d¬\97\90\82µ\82½\81D",                /* 11 */
+    "\82Ü\82Æ\82à\82É\8ev\8dl\82Å\82«\82È\82­\82È\82Á\82½\81D",  /* 8 */
+    "\82Æ\82Ä\82à\8bC\95ª\82ª\88«\82­\82È\82Á\82½\81D",      /* 5 */
+    "\93Ë\91R\9aq\93f\82µ\82½\81I"                 /* 2 */
+#endif
 };
 
 STATIC_OVL void
@@ -122,15 +143,31 @@ vomiting_dialogue()
 }
 
 static NEARDATA const char *const choke_texts[] = {
+#if 0 /*JP*/
     "You find it hard to breathe.", "You're gasping for air.",
     "You can no longer breathe.", "You're turning %s.", "You suffocate."
+#else
+    "\82 \82È\82½\82Í\8cÄ\8bz\82ª\8d¢\93ï\82É\82È\82Á\82½\81D",
+    "\82 \82È\82½\82Í\8bê\82µ\82­\82Ä\82 \82¦\82¢\82¾\81D",
+    "\82 \82È\82½\82Í\82à\82¤\8cÄ\8bz\82ª\82Å\82«\82È\82¢\81D",
+    "\82 \82È\82½\82Í%s\82È\82Á\82½\81D",
+    "\82 \82È\82½\82Í\92\82\91§\82µ\82½\81D"
+#endif
 };
 
 static NEARDATA const char *const choke_texts2[] = {
+#if 0 /*JP*/
     "Your %s is becoming constricted.",
     "Your blood is having trouble reaching your brain.",
     "The pressure on your %s increases.", "Your consciousness is fading.",
     "You suffocate."
+#else
+    "\82 \82È\82½\82Ì%s\82Í\8di\82ß\82Â\82¯\82ç\82ê\82½\81D",
+    "\8c\8c\89t\82Ì\82ß\82®\82è\82ª\88«\82­\82È\82Á\82½\81D",
+    "%s\82Ì\88³\97Í\82ª\8d\82\82­\82È\82Á\82½\81D",
+    "\88Ó\8e¯\82ª\89\93\82­\82È\82Á\82Ä\82«\82½\81D",
+    "\82 \82È\82½\82Í\92\82\91§\82µ\82½\81D"
+#endif
 };
 
 STATIC_OVL void
@@ -145,7 +182,10 @@ choke_dialogue()
             const char *str = choke_texts[SIZE(choke_texts) - i];
 
             if (index(str, '%'))
+/*JP
                 pline(str, hcolor(NH_BLUE));
+*/
+                pline(str, jconj_adj(hcolor(NH_BLUE)));
             else
                 pline1(str);
         }
@@ -154,11 +194,19 @@ choke_dialogue()
 }
 
 static NEARDATA const char *const slime_texts[] = {
+#if 0 /*JP*/
     "You are turning a little %s.",   /* 5 */
     "Your limbs are getting oozy.",   /* 4 */
     "Your skin begins to peel away.", /* 3 */
     "You are turning into %s.",       /* 2 */
     "You have become %s."             /* 1 */
+#else
+    "\8f­\82µ%s\82È\82Á\82½\81D",                 /* 5 */
+    "\8eè\91«\82ª\97n\82¯\82Í\82\82ß\82½\81D",           /* 4 */
+    "\94§\82ª\82Ç\82ë\82Ç\82ë\82É\82È\82Á\82Ä\82«\82½\81D",     /* 3 */
+    "%s\82É\82È\82è\82Í\82\82ß\82½\81D",             /* 2 */
+    "%s\82É\82È\82Á\82Ä\82µ\82Ü\82Á\82½\81D",           /* 1 */
+#endif
 };
 
 STATIC_OVL void
@@ -176,10 +224,16 @@ slime_dialogue()
         if (index(buf, '%')) {
             if (i == 4L) {  /* "you are turning green" */
                 if (!Blind) /* [what if you're already green?] */
+/*JP
                     pline(buf, hcolor(NH_GREEN));
+*/
+                    pline(buf, jconj_adj(hcolor(NH_GREEN)));
             } else
                 pline(buf,
+/*JP
                       an(Hallucination ? rndmonnam(NULL) : "green slime"));
+*/
+                      Hallucination ? rndmonnam(NULL) : "\97Î\83X\83\89\83C\83\80");
         } else
             pline1(buf);
     }
@@ -197,7 +251,10 @@ void
 burn_away_slime()
 {
     if (Slimed) {
+/*JP
         make_slimed(0L, "The slime that covers you is burned away!");
+*/
+        pline("\82 \82È\82½\82ð\95¢\82Á\82Ä\82¢\82½\83X\83\89\83C\83\80\82Í\8fÄ\82¯\97\8e\82¿\82½\81I");
     }
 }
 
@@ -254,14 +311,22 @@ nh_timeout()
             u.uspellprot--;
             find_ac();
             if (!Blind)
+#if 0 /*JP*/
                 Norep("The %s haze around you %s.", hcolor(NH_GOLDEN),
                       u.uspellprot ? "becomes less dense" : "disappears");
+#else
+                Norep("\82 \82È\82½\82Ì\89ñ\82è\82Ì%s\96\82Í%s\81D", hcolor(NH_GOLDEN),
+                      u.uspellprot ? "\8fÁ\82¦\82Í\82\82ß\82½" : "\8fÁ\82¦\82½");
+#endif
         }
     }
 
     if (u.ugallop) {
         if (--u.ugallop == 0L && u.usteed)
+/*JP
             pline("%s stops galloping.", Monnam(u.usteed));
+*/
+            pline("%s\82Í\91¬\8bì\82¯\82ð\82â\82ß\82½\81D", Monnam(u.usteed));
     }
 
     for (upp = u.uprops; upp < u.uprops + SIZE(u.uprops); upp++)
@@ -271,10 +336,19 @@ nh_timeout()
             case STONED:
                 if (kptr && kptr->name[0]) {
                     killer.format = kptr->format;
+#if 0 /*JP*/
                     Strcpy(killer.name, kptr->name);
+#else
+                    Sprintf(killer.name, "%s\82Ì\8dU\8c\82\82Å", kptr->name);
+#endif
                 } else {
+#if 0 /*JP*/
                     killer.format = NO_KILLER_PREFIX;
                     Strcpy(killer.name, "killed by petrification");
+#else
+                    killer.format = KILLED_BY;
+                    Strcpy(killer.name, "\90Î\89»\8dU\8c\82\82Å");
+#endif
                 }
                 dealloc_killer(kptr);
                 /* (unlike sliming, you aren't changing form here) */
@@ -286,7 +360,10 @@ nh_timeout()
                     Strcpy(killer.name, kptr->name);
                 } else {
                     killer.format = NO_KILLER_PREFIX;
+/*JP
                     Strcpy(killer.name, "turned into green slime");
+*/
+                    Strcpy(killer.name, "\97Î\83X\83\89\83C\83\80\82É\82È\82Á\82½");
                 }
                 dealloc_killer(kptr);
                 /* involuntarily break "never changed form" conduct */
@@ -297,7 +374,10 @@ nh_timeout()
                 make_vomiting(0L, TRUE);
                 break;
             case SICK:
+/*JP
                 You("die from your illness.");
+*/
+                You("\95a\8bC\82Å\8e\80\82ñ\82¾\81D");
                 if (kptr && kptr->name[0]) {
                     killer.format = kptr->format;
                     Strcpy(killer.name, kptr->name);
@@ -320,8 +400,13 @@ nh_timeout()
                 break;
             case FAST:
                 if (!Very_fast)
+#if 0 /*JP*/
                     You_feel("yourself slowing down%s.",
                              Fast ? " a bit" : "");
+#else
+                    You("%s\92x\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+                        Fast ? "\82¿\82å\82Á\82Æ" : "");
+#endif
                 break;
             case CONFUSION:
                 /* So make_confused works properly */
@@ -351,9 +436,15 @@ nh_timeout()
             case INVIS:
                 newsym(u.ux, u.uy);
                 if (!Invis && !BInvis && !Blind) {
+#if 0 /*JP*/
                     You(!See_invisible
                             ? "are no longer invisible."
                             : "can no longer see through yourself.");
+#else
+                    You(!See_invisible
+                        ? "\82à\82¤\93§\96¾\82Å\82Í\82È\82¢\81D"
+                        : "\93§\82«\82Æ\82¨\82Á\82Ä\82¢\82È\82¢\81D");
+#endif
                     stop_occupation();
                 }
                 break;
@@ -367,6 +458,13 @@ nh_timeout()
                 heal_legs();
                 stop_occupation();
                 break;
+#ifdef JPEXTENSION
+                case TOTTER:
+                        Totter = 0;
+                        make_totter(0L, TRUE);
+                        stop_occupation();
+                        break;
+#endif
             case HALLUC:
                 set_itimeout(&HHallucination, 1L);
                 (void) make_hallucinated(0L, TRUE, 0L);
@@ -377,7 +475,10 @@ nh_timeout()
                 if (unconscious() || Sleep_resistance) {
                     incr_itimeout(&HSleepy, rnd(100));
                 } else if (Sleepy) {
+/*JP
                     You("fall asleep.");
+*/
+                    You("\96°\82è\82É\97\8e\82¿\82½\81D");
                     sleeptime = rnd(20);
                     fall_asleep(-sleeptime, TRUE);
                     incr_itimeout(&HSleepy, sleeptime + rnd(100));
@@ -388,8 +489,13 @@ nh_timeout()
                 break;
             case STRANGLED:
                 killer.format = KILLED_BY;
+#if 0 /*JP*/
                 Strcpy(killer.name,
                        (u.uburied) ? "suffocation" : "strangulation");
+#else
+                Strcpy(killer.name,
+                       (u.uburied) ? "\92\82\91§\82µ\82Ä" : "\8eñ\82ð\8di\82ß\82ç\82ê\82Ä");
+#endif
                 done(DIED);
                 /* must be declining to die in explore|wizard mode;
                    treat like being cured of strangulation by prayer */
@@ -411,7 +517,10 @@ nh_timeout()
                      * to this number must be thoroughly play tested.
                      */
                     if ((inv_weight() > -500)) {
+/*JP
                         You("make a lot of noise!");
+*/
+                        You("\91å\82«\82È\89¹\82ð\82½\82Ä\82½\81I");
                         wake_nearby();
                     }
                 }
@@ -447,7 +556,10 @@ boolean wakeup_msg;
     }
     /* early wakeup from combat won't be possible until next monster turn */
     u.usleep = monstermoves;
+/*JP
     nomovemsg = wakeup_msg ? "You wake up." : You_can_move_again;
+*/
+    nomovemsg = wakeup_msg ? "\96Ú\82ð\8ao\82Ü\82µ\82½\81D" : You_can_move_again;
 }
 
 /* Attach an egg hatch timeout to the given egg.
@@ -574,8 +686,13 @@ long timeout;
         boolean siblings = (hatchcount > 1), redraw = FALSE;
 
         if (cansee_hatchspot) {
+#if 0 /*JP*/
             Sprintf(monnambuf, "%s%s", siblings ? "some " : "",
                     siblings ? makeplural(m_monnam(mon)) : an(m_monnam(mon)));
+#else
+            Sprintf(monnambuf, "%s%s", siblings ? "\82¢\82­\82Â\82©\82Ì" : "",
+                    a_monnam(mon));
+#endif
             /* we don't learn the egg type here because learning
                an egg type requires either seeing the egg hatch
                or being familiar with the egg already,
@@ -587,24 +704,46 @@ long timeout;
         case OBJ_INVENT:
             knows_egg = TRUE; /* true even if you are blind */
             if (!cansee_hatchspot)
+#if 0 /*JP*/
                 You_feel("%s %s from your pack!", something,
                          locomotion(mon->data, "drop"));
+#else
+                pline("\89½\82©\82ª\82 \82È\82½\82Ì\94w\95\89\82¢\91Ü\82©\82ç%s\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+                      jpast(locomotion(mon->data, "\97\8e\82¿\82é")));
+#endif
             else
+#if 0 /*JP*/
                 You_see("%s %s out of your pack!", monnambuf,
                         locomotion(mon->data, "drop"));
+#else
+                You("%s\82ª\82 \82È\82½\82Ì\94w\95\89\82¢\91Ü\82©\82ç%s\82Ì\82ð\8c©\82½\81D", monnambuf,
+                    jpast(locomotion(mon->data, "\97\8e\82¿\82é")));
+#endif
             if (yours) {
+#if 0 /*JP*/
                 pline("%s cries sound like \"%s%s\"",
                       siblings ? "Their" : "Its",
                       flags.female ? "mommy" : "daddy", egg->spe ? "." : "?");
+#else
+                pline("\82»\82ê\82Í\81w%s%s\81x\82Æ\96Â\82¢\82Ä\82¢\82é\82æ\82¤\82¾\81D",
+                      flags.female ? "\83}\83}" : "\83p\83p", egg->spe ? "" : "\81H");
+#endif
             } else if (mon->data->mlet == S_DRAGON && !Deaf) {
+#if 0 /*JP*/
                 verbalize("Gleep!"); /* Mything eggs :-) */
+#else
+                verbalize("\83u\83H\81[\81I");          /* Mything eggs :-) */
+#endif
             }
             break;
 
         case OBJ_FLOOR:
             if (cansee_hatchspot) {
                 knows_egg = TRUE;
+/*JP
                 You_see("%s hatch.", monnambuf);
+*/
+                You("%s\82ª\97\91\82©\82ç\82©\82¦\82é\82Ì\82ð\8c©\82½\81D", monnambuf);
                 redraw = TRUE; /* update egg's map location */
             }
             break;
@@ -613,15 +752,29 @@ long timeout;
             if (cansee_hatchspot) {
                 /* egg carrying monster might be invisible */
                 if (canseemon(egg->ocarry)) {
+/*JP
                     Sprintf(carriedby, "%s pack",
+*/
+                    Sprintf(carriedby, "%s\82Ì\94w\95\89\82¢\91Ü\82©\82ç",
                             s_suffix(a_monnam(egg->ocarry)));
                     knows_egg = TRUE;
                 } else if (is_pool(mon->mx, mon->my))
+/*JP
                     Strcpy(carriedby, "empty water");
+*/
+                    Strcpy(carriedby, "\89½\82à\82È\82¢\90\85\92\86\82©\82ç");
                 else
+/*JP
                     Strcpy(carriedby, "thin air");
+*/
+                    Strcpy(carriedby, "\89½\82à\82È\82¢\8bó\8aÔ\82©\82ç");
+#if 0 /*JP*/
                 You_see("%s %s out of %s!", monnambuf,
                         locomotion(mon->data, "drop"), carriedby);
+#else
+                You("%s\82ª%s%s\82Ì\82ð\8c©\82½\81D", monnambuf, carriedby, 
+                    locomotion(mon->data, "\97\8e\82¿\82é"));
+#endif
             }
             break;
 #if 0
@@ -705,6 +858,7 @@ slip_or_trip()
           name; if not, look for rocks to trip over; trip over
           anonymous "something" if there aren't any rocks.
         */
+#if 0 /*JP*/
         what = (iflags.last_msg == PLNMSG_ONE_ITEM_HERE)
                 ? ((otmp->quan == 1L) ? "it"
                       : Hallucination ? "they" : "them")
@@ -713,13 +867,29 @@ slip_or_trip()
                       : ((otmp2 = sobj_at(ROCK, u.ux, u.uy)) == 0
                              ? something
                              : (otmp2->quan == 1L ? "a rock" : "some rocks"));
+#else
+        what = (iflags.last_msg == PLNMSG_ONE_ITEM_HERE)
+                ? "\82»\82ê"
+                : (otmp->dknown || !Blind)
+                      ? doname(otmp)
+                      : ((otmp2 = sobj_at(ROCK, u.ux, u.uy)) == 0
+                             ? something
+                             : "\90Î");
+#endif
         if (Hallucination) {
             what = strcpy(buf, what);
             buf[0] = highc(buf[0]);
+#if 0 /*JP*/
             pline("Egads!  %s bite%s your %s!", what,
                   (!otmp || otmp->quan == 1L) ? "s" : "", body_part(FOOT));
+#else
+            pline("\82®\82í\82\9f\81I%s\82ª%s\82É\8a\9a\82Ý\82Â\82¢\82½\81I", what, body_part(FOOT));
+#endif
         } else {
+/*JP
             You("trip over %s.", what);
+*/
+            You("%s\82É\82Â\82Ü\82Ã\82¢\82½\81D", what);
         }
         if (!uarmf && otmp->otyp == CORPSE
             && touch_petrifies(&mons[otmp->corpsenm]) && !Stone_resistance) {
@@ -728,6 +898,7 @@ slip_or_trip()
             instapetrify(killer.name);
         }
     } else if (rn2(3) && is_ice(u.ux, u.uy)) {
+#if 0 /*JP*/
         pline("%s %s%s on the ice.",
               u.usteed ? upstart(x_monnam(u.usteed,
                                           (has_mname(u.usteed)) ? ARTICLE_NONE
@@ -735,38 +906,75 @@ slip_or_trip()
                                           (char *) 0, SUPPRESS_SADDLE, FALSE))
                        : "You",
               rn2(2) ? "slip" : "slide", on_foot ? "" : "s");
+#else
+        pline("%s\82Í\95X\82Ì\8fã\82Å\8a\8a\82Á\82½\81D",
+              u.usteed ? upstart(x_monnam(u.usteed,
+                                          (has_mname(u.usteed)) ? ARTICLE_NONE
+                                                                : ARTICLE_THE,
+                                          (char *) 0, SUPPRESS_SADDLE, FALSE))
+                       : "\82 \82È\82½");
+#endif
     } else {
         if (on_foot) {
             switch (rn2(4)) {
             case 1:
+#if 0 /*JP*/
                 You("trip over your own %s.",
                     Hallucination ? "elbow" : makeplural(body_part(FOOT)));
+#else
+                You("\8e©\95ª\82Ì%s\82ð\93¥\82ñ\82Å\82Â\82Ü\82Ã\82¢\82½\81D",
+                    Hallucination ? "\95I" : body_part(FOOT));
+#endif
                 break;
             case 2:
+#if 0 /*JP*/
                 You("slip %s.",
                     Hallucination ? "on a banana peel" : "and nearly fall");
+#else
+                You("%s\81D", Hallucination ?
+                    "\83o\83i\83i\82Ì\94ç\82Å\8a\8a\82Á\82½" : "\8a\8a\82Á\82Ä\93]\82Ñ\82»\82¤\82É\82È\82Á\82½");
+#endif
                 break;
             case 3:
+/*JP
                 You("flounder.");
+*/
+                You("\82\82½\82Î\82½\82µ\82½\81D");
                 break;
             default:
+/*JP
                 You("stumble.");
+*/
+                You("\82æ\82ë\82ß\82¢\82½\81D");
                 break;
             }
         } else {
             switch (rn2(4)) {
             case 1:
+#if 0 /*JP*/
                 Your("%s slip out of the stirrups.",
                      makeplural(body_part(FOOT)));
+#else
+                You("\82 \82Ô\82Ý\82ð\93¥\82Ý\8aO\82µ\82Ä\82µ\82Ü\82Á\82½\81D");
+#endif
                 break;
             case 2:
+/*JP
                 You("let go of the reins.");
+*/
+                You("\8eè\8dj\82ð\95ú\82µ\82Ä\82µ\82Ü\82Á\82½\81D");
                 break;
             case 3:
+/*JP
                 You("bang into the saddle-horn.");
+*/
+                You("\83T\83h\83\8b\83z\81[\83\93\82É\82Ô\82Â\82©\82Á\82Ä\82µ\82Ü\82Á\82½\81D");
                 break;
             default:
+/*JP
                 You("slide to one side of the saddle.");
+*/
+                You("\82·\82×\82Á\82Ä\88Æ\82Ì\95Ð\91¤\82É\82¸\82ê\82Ä\82µ\82Ü\82Á\82½\81D");
                 break;
             }
             dismount_steed(DISMOUNT_FELL);
@@ -783,10 +991,16 @@ const char *tailer;
     switch (obj->where) {
     case OBJ_INVENT:
     case OBJ_MINVENT:
+/*JP
         pline("%s flickers%s.", Yname2(obj), tailer);
+*/
+        pline("%s\82Í%s\93_\96Å\82µ\82½\81D", Yname2(obj), tailer);
         break;
     case OBJ_FLOOR:
+/*JP
         You_see("%s flicker%s.", an(xname(obj)), tailer);
+*/
+        You("%s\82ª%s\93_\96Å\82·\82é\82Ì\82ð\8c©\82½\81D", an(xname(obj)), tailer);
         break;
     }
 }
@@ -799,15 +1013,27 @@ struct obj *obj;
     /* from adventure */
     switch (obj->where) {
     case OBJ_INVENT:
+/*JP
         Your("lantern is getting dim.");
+*/
+        Your("\83\89\83\93\83^\83\93\82Í\88Ã\82­\82È\82Á\82Ä\82«\82½\81D");
         if (Hallucination)
+/*JP
             pline("Batteries have not been invented yet.");
+*/
+            pline("\93d\92r\82Í\82Ü\82¾\94­\96¾\82³\82ê\82Ä\82È\82¢\82ñ\82¾\82Á\82¯\81D");
         break;
     case OBJ_FLOOR:
+/*JP
         You_see("a lantern getting dim.");
+*/
+        pline("\83\89\83\93\83^\83\93\82ª\88Ã\82­\82È\82Á\82Ä\82«\82½\82Ì\82ª\8c©\82¦\82½\81D");
         break;
     case OBJ_MINVENT:
+/*JP
         pline("%s lantern is getting dim.", s_suffix(Monnam(obj->ocarry)));
+*/
+        pline("%s\82Ì\83\89\83\93\83^\83\93\82Í\88Ã\82­\82È\82Á\82Ä\82«\82½\81D", Monnam(obj->ocarry));
         break;
     }
 }
@@ -873,10 +1099,16 @@ long timeout;
             switch (obj->where) {
             case OBJ_INVENT:
             case OBJ_MINVENT:
+/*JP
                 pline("%spotion of oil has burnt away.", whose);
+*/
+                pline("%s\83I\83C\83\8b\82Í\94R\82¦\82Â\82«\82½\81D", whose);
                 break;
             case OBJ_FLOOR:
+/*JP
                 You_see("a burning potion of oil go out.");
+*/
+                You("\83I\83C\83\8b\82Ì\89Î\82ª\8fÁ\82¦\82½\82Ì\82ð\8c©\82½\81D");
                 need_newsym = TRUE;
                 break;
             }
@@ -906,7 +1138,10 @@ long timeout;
                     lantern_message(obj);
                 else
                     see_lamp_flicker(obj,
+/*JP
                                      obj->age == 50L ? " considerably" : "");
+*/
+                                     obj->age == 50L ? "\8c\83\82µ\82­" : "");
             }
             break;
 
@@ -918,10 +1153,16 @@ long timeout;
                     switch (obj->where) {
                     case OBJ_INVENT:
                     case OBJ_MINVENT:
+/*JP
                         pline("%s seems about to go out.", Yname2(obj));
+*/
+                        pline("%s\82Í\8d¡\82É\82à\8fÁ\82¦\82»\82¤\82¾\81D", Yname2(obj));
                         break;
                     case OBJ_FLOOR:
+/*JP
                         You_see("%s about to go out.", an(xname(obj)));
+*/
+                        pline("%s\82ª\8fÁ\82¦\82©\82¯\82Ä\82¢\82é\82Ì\82ª\8c©\82¦\82½\81D", an(xname(obj)));
                         break;
                     }
                 }
@@ -935,15 +1176,27 @@ long timeout;
                 case OBJ_INVENT:
                 case OBJ_MINVENT:
                     if (obj->otyp == BRASS_LANTERN)
+/*JP
                         pline("%slantern has run out of power.", whose);
+*/
+                        pline("%s\83\89\83\93\83^\83\93\82Ì\97Í\82ð\8eg\82¢\90Ø\82Á\82½\81D", whose);
                     else
+/*JP
                         pline("%s has gone out.", Yname2(obj));
+*/
+                        pline("%s\82Í\8fÁ\82¦\82½\81D", Yname2(obj));
                     break;
                 case OBJ_FLOOR:
                     if (obj->otyp == BRASS_LANTERN)
+/*JP
                         You_see("a lantern run out of power.");
+*/
+                        You("\83\89\83\93\83^\83\93\82ª\8fÁ\82¦\82é\82Ì\82ð\8c©\82½\81D");
                     else
+/*JP
                         You_see("%s go out.", an(xname(obj)));
+*/
+                        You("%s\82ª\8fÁ\82¦\82é\82Ì\82ð\8c©\82½\81D", an(xname(obj)));
                     break;
                 }
             }
@@ -973,15 +1226,25 @@ long timeout;
                 switch (obj->where) {
                 case OBJ_INVENT:
                 case OBJ_MINVENT:
+#if 0 /*JP*/
                     pline("%s%scandle%s getting short.", whose,
                           menorah ? "candelabrum's " : "",
                           many ? "s are" : " is");
+#else
+                    pline("%s%s\82ë\82¤\82»\82­\82Í\92Z\82­\82È\82Á\82½\81D", whose,
+                          menorah ? "\90C\91ä\82Ì" : "");
+#endif
                     break;
                 case OBJ_FLOOR:
+#if 0 /*JP*/
                     You_see("%scandle%s getting short.",
                             menorah ? "a candelabrum's " : many ? "some "
                                                                 : "a ",
                             many ? "s" : "");
+#else
+                    You("%s\82ë\82¤\82»\82­\82ª\92Z\82­\82È\82é\82Ì\82ð\8c©\82½\81D",
+                        menorah ? "\90C\91ä\82Ì" : "");
+#endif
                     break;
                 }
             break;
@@ -991,15 +1254,25 @@ long timeout;
                 switch (obj->where) {
                 case OBJ_INVENT:
                 case OBJ_MINVENT:
+#if 0 /*JP*/
                     pline("%s%scandle%s flame%s flicker%s low!", whose,
                           menorah ? "candelabrum's " : "", many ? "s'" : "'s",
                           many ? "s" : "", many ? "" : "s");
+#else
+                    pline("%s%s\82ë\82¤\82»\82­\82Ì\89\8a\82Í\93_\96Å\82µ\81C\88Ã\82­\82È\82Á\82½\81I", whose,
+                          menorah ? "\90C\91ä\82Ì" : "");
+#endif
                     break;
                 case OBJ_FLOOR:
+#if 0 /*JP*/
                     You_see("%scandle%s flame%s flicker low!",
                             menorah ? "a candelabrum's " : many ? "some "
                                                                 : "a ",
                             many ? "s'" : "'s", many ? "s" : "");
+#else
+                    You("%s\82ë\82¤\82»\82­\82Ì\89\8a\82ª\93_\96Å\82µ\81C\88Ã\82­\82È\82é\82Ì\82ð\8c©\82½\81I",
+                        menorah ? "\90C\91ä\82Ì" : "");
+#endif
                     break;
                 }
             break;
@@ -1011,37 +1284,59 @@ long timeout;
                     switch (obj->where) {
                     case OBJ_INVENT:
                     case OBJ_MINVENT:
+#if 0 /*JP*/
                         pline("%scandelabrum's flame%s.", whose,
                               many ? "s die" : " dies");
+#else
+                        pline("%s\90C\91ä\82Ì\89\8a\82Í\8fÁ\82¦\82½\81D", whose);
+#endif
                         break;
                     case OBJ_FLOOR:
+#if 0 /*JP*/
                         You_see("a candelabrum's flame%s die.",
                                 many ? "s" : "");
+#else
+                        You("\90C\91ä\82Ì\89\8a\82ª\8fÁ\82¦\82é\82Ì\82ð\8c©\82½\81D");
+#endif
                         break;
                     }
                 } else {
                     switch (obj->where) {
                     case OBJ_INVENT:
                     case OBJ_MINVENT:
+#if 0 /*JP*/
                         pline("%s %s consumed!", Yname2(obj),
                               many ? "are" : "is");
+#else
+                        pline("%s\82Í\94R\82¦\82Â\82«\82½\81I", Yname2(obj));
+#endif
                         break;
                     case OBJ_FLOOR:
                         /*
                         You see some wax candles consumed!
                         You see a wax candle consumed!
                         */
+#if 0 /*JP*/
                         You_see("%s%s consumed!", many ? "some " : "",
                                 many ? xname(obj) : an(xname(obj)));
+#else
+                        You("%s\82ª\94R\82¦\82Â\82«\82é\82Ì\82ð\8c©\82½\81I", xname(obj));
+#endif
                         need_newsym = TRUE;
                         break;
                     }
 
                     /* post message */
+#if 0 /*JP*/
                     pline(Hallucination
                               ? (many ? "They shriek!" : "It shrieks!")
                               : Blind ? "" : (many ? "Their flames die."
                                                    : "Its flame dies."));
+#else
+                    pline(Hallucination ? "\82»\82ê\82Í\90k\82¦\82½\81D"
+                          : Blind ? "" 
+                          : "\89\8a\82Í\8fÁ\82¦\82½\81D");
+#endif
                 }
             }
             end_burn(obj, FALSE);
@@ -1286,7 +1581,10 @@ do_storms()
     if (levl[u.ux][u.uy].typ == CLOUD) {
         /* Inside a cloud during a thunder storm is deafening. */
         /* Even if already deaf, we sense the thunder's vibrations. */
+/*JP
         pline("Kaboom!!!  Boom!!  Boom!!");
+*/
+        pline("\83s\83J\83b\81I\81I\83S\83\8d\83S\83\8d\83S\83\8d\83S\83\8d\81I\81I\83h\81[\83\93\81I");
         incr_itimeout(&HDeaf, rn1(20, 30));
         if (!u.uinvulnerable) {
             stop_occupation();
@@ -1295,7 +1593,10 @@ do_storms()
             nomovemsg = 0;
         }
     } else
+/*JP
         You_hear("a rumbling noise.");
+*/
+        You_hear("\97\8b\82Ì\89¹\82ð\95·\82¢\82½\81D");
 }
 
 /* -------------------------------------------------------------------------
index 54f2a2d..e3c3a63 100644 (file)
@@ -88,11 +88,20 @@ int how;
 {
     static NEARDATA const char *const killed_by_prefix[] = {
         /* DIED, CHOKING, POISONING, STARVING, */
+/*JP
         "killed by ", "choked on ", "poisoned by ", "died of ",
+*/
+        "\8e\80\82ñ\82¾", "\82Å\92\82\91§\82µ\82½", "\82Ì\93Å\82Å\8e\80\82ñ\82¾", "",
         /* DROWNING, BURNING, DISSOLVED, CRUSHING, */
+/*JP
         "drowned in ", "burned by ", "dissolved in ", "crushed to death by ",
+*/
+         "\93M\8e\80\82µ\82½","\8fÄ\8e\80\82µ\82½", "\97n\8aâ\82É\97n\82¯\82½", "\89\9f\82µ\92×\82³\82ê\82½",
         /* STONING, TURNED_SLIME, GENOCIDED, */
+/*JP
         "petrified by ", "turned to slime by ", "killed by ",
+*/
+         "\90Î\82É\82È\82Á\82½", "\82É\83X\83\89\83C\83\80\82É\82³\82ê\82½", "\8bs\8eE\82³\82ê\82½",
         /* PANICKED, TRICKED, QUIT, ESCAPED, ASCENDED */
         "", "", "", "", ""
     };
@@ -100,6 +109,10 @@ int how;
     char *kname = killer.name;
 
     buf[0] = '\0'; /* so strncat() can find the end */
+#if 1 /*JP*//*\90æ\82É\91Î\8fÛ\82ð\83R\83s\81[*/
+    strncat(buf, kname, siz - 1);
+    siz -= strlen(buf);
+#endif
     switch (killer.format) {
     default:
         impossible("bad killer format? (%d)", killer.format);
@@ -107,17 +120,29 @@ int how;
     case NO_KILLER_PREFIX:
         break;
     case KILLED_BY_AN:
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
         kname = an(kname);
+#endif
         /*FALLTHRU*/
     case KILLED_BY:
+#if 0 /*JP*/
         (void) strncat(buf, killed_by_prefix[how], siz - 1);
         l = strlen(buf);
         buf += l, siz -= l;
+#else /*JP:\8aù\82É\91Î\8fÛ\82ð\83R\83s\81[\82µ\82Ä\82¢\82é\82Ì\82Å\92P\82É\92Ç\89Á*/
+        (void) strncat(buf, killed_by_prefix[how], siz - 1);
+#endif
         break;
+#if 1 /*JP*/
+      case KILLED_SUFFIX:
+        (void) strncat(buf, "\82É\8eE\82³\82ê\82½", siz - 1);
+#endif
     }
+#if 0 /*JP*//*\8aù\82É\83R\83s\81[\8dÏ\82Ý*/
     /* we're writing into buf[0] (after possibly advancing buf) rather than
        appending, but strncat() appends a terminator and strncpy() doesn't */
     (void) strncat(buf, kname, siz - 1);
+#endif
 }
 
 STATIC_OVL void
@@ -549,8 +574,13 @@ time_t when;
                 char pbuf[BUFSZ];
                 topten_print("");
                 Sprintf(pbuf,
+#if 0 /*JP*/
              "Since you were in %s mode, the score list will not be checked.",
                         wizard ? "wizard" : "discover");
+#else
+             "%s\83\82\81[\83h\82Å\83v\83\8c\83C\82µ\82½\82Ì\82Å\83X\83R\83A\83\8a\83X\83g\82É\82Í\8dÚ\82ç\82È\82¢\81D",
+                        wizard ? "\83E\83B\83U\81[\83h" : "\94­\8c©");
+#endif
                 topten_print(pbuf);
             }
         goto showwin;
@@ -612,7 +642,10 @@ time_t when;
                     char pbuf[BUFSZ];
 
                     Sprintf(pbuf,
+/*JP
                         "You didn't beat your previous score of %ld points.",
+*/
+                        "\82 \82È\82½\82Í\88È\91O\82Ì%ld\83|\83C\83\93\83g\82Ì\83X\83R\83A\82É\93Í\82©\82È\82©\82Á\82½\81D",
                             t1->points);
                     topten_print(pbuf);
                     topten_print("");
@@ -649,13 +682,22 @@ time_t when;
         if (!done_stopprint)
             if (rank0 > 0) {
                 if (rank0 <= 10) {
+/*JP
                     topten_print("You made the top ten list!");
+*/
+                    topten_print("\82 \82È\82½\82Í\83g\83b\83v10\83\8a\83X\83g\82É\8dÚ\82Á\82½\81I");
                 } else {
                     char pbuf[BUFSZ];
 
+#if 0 /*JP*/
                     Sprintf(pbuf,
                             "You reached the %d%s place on the top %d list.",
                             rank0, ordin(rank0), sysopt.entrymax);
+#else
+                    Sprintf(pbuf,
+                            "\82 \82È\82½\82Í\81C\83g\83b\83v%d\83\8a\83X\83g\82Ì%d\88Ê\82É\8dÚ\82Á\82½\81D",
+                            sysopt.entrymax, rank0);
+#endif
                     topten_print(pbuf);
                 }
                 topten_print("");
@@ -761,7 +803,20 @@ boolean so;
     char linebuf[BUFSZ];
     char *bp, hpbuf[24], linebuf3[BUFSZ];
     int hppos, lngr;
+#if 1 /*JP*/
+    char who[BUFSZ];
+    char where[BUFSZ];
+    char action[BUFSZ];
+    char car[BUFSZ];
+    char cdr[BUFSZ];
+    const char *jdeath;
+#endif
 
+#if 1 /*JP*/
+    who[0] = '\0';
+    where[0] = '\0';
+    action[0] = '\0';
+#endif
     linebuf[0] = '\0';
     if (rank)
         Sprintf(eos(linebuf), "%3d", rank);
@@ -779,9 +834,27 @@ boolean so;
      */
     Sprintf(eos(linebuf), "-%s", t1->plgend);
     if (t1->plalign[0] != '?')
+/*JP
         Sprintf(eos(linebuf), "-%s ", t1->plalign);
+*/
+        Sprintf(eos(linebuf), "-%s", t1->plalign);
     else
+/*JP
         Strcat(linebuf, " ");
+*/
+        Strcat(linebuf, "");
+#if 1 /*JP*/
+        Strcat(linebuf, "\82Í");
+/*JP: \93ú\96{\8cê\82Å\82Í\81u\81\9b\81\9b\82ð\8eè\82É\81v\82ð\90æ\82É\92Ç\89Á\82µ\82È\82¢\82Æ\95s\8e©\91R */
+        jdeath = t1->death;
+        if (!strncmp(jdeath, "\96\82\8f\9c\82¯\82ð\8eè\82É", 12))
+            jdeath += 12;
+        else if (!strncmp(jdeath, "\93V\8fã\82Å\92p\90J\82ð\8eó\82¯", 16))
+            jdeath += 16;
+        else if (!strncmp(jdeath, "\8bU\95¨\82Ì\96\82\8f\9c\82¯\82ð\92Í\82Ü\82³\82ê", 24))
+            jdeath += 24;
+#endif
+#if 0 /*JP*/
     if (!strncmp("escaped", t1->death, 7)) {
         Sprintf(eos(linebuf), "escaped the dungeon %s[max level %d]",
                 !strncmp(" (", t1->death + 7, 2) ? t1->death + 7 + 2 : "",
@@ -789,15 +862,44 @@ boolean so;
         /* fixup for closing paren in "escaped... with...Amulet)[max..." */
         if ((bp = index(linebuf, ')')) != 0)
             *bp = (t1->deathdnum == astral_level.dnum) ? '\0' : ' ';
+#else
+        if (!strncmp("\92E\8fo\82µ\82½", jdeath, 8)
+            || !strncmp("escaped", jdeath, 7)) {
+            char jbuf[BUFSZ];
+            strncpy(jbuf, t1->death, jdeath - t1->death);
+            jbuf[jdeath - t1->death] = '\0';
+            Sprintf(action, "%s\96À\8b{\82©\82ç\92E\8fo\82µ\82½[\8dÅ\91å\92n\89º%d\8aK]",
+                    jbuf, t1->maxlvl);
+#endif
         second_line = FALSE;
+#if 0 /*JP*/
     } else if (!strncmp("ascended", t1->death, 8)) {
+#else
+        } else if (!strncmp("\8f¸\93V\82µ\82½", jdeath, 8)
+                   || !strncmp("ascended", jdeath, 8)) {
+#endif
+#if 0 /*JP:T*/
         Sprintf(eos(linebuf), "ascended to demigod%s-hood",
                 (t1->plgend[0] == 'F') ? "dess" : "");
+#else
+            Sprintf(action, "\8f¸\93V\82µ%s\90_\82Æ\82È\82Á\82½",
+                    (t1->plgend[0] == 'F') ? "\8f\97" : "");
+#endif
         second_line = FALSE;
     } else {
+/*JP
         if (!strncmp(t1->death, "quit", 4)) {
+*/
+            if (!strncmp(jdeath, "\94²\82¯\82½", 4)) {
+#if 0 /*JP*/
             Strcat(linebuf, "quit");
+#else
+                Strcat(action, t1->death);
+#endif
             second_line = FALSE;
+#if 1 /*JP*/
+            }
+#else
         } else if (!strncmp(t1->death, "died of st", 10)) {
             Strcat(linebuf, "starved to death");
             second_line = FALSE;
@@ -812,50 +914,89 @@ boolean so;
             Strcat(linebuf, "turned to stone");
         } else
             Strcat(linebuf, "died");
+#endif /*JP*/
 
         if (t1->deathdnum == astral_level.dnum) {
             const char *arg, *fmt = " on the Plane of %s";
 
             switch (t1->deathlev) {
             case -5:
+#if 0 /*JP*/
                 fmt = " on the %s Plane";
+#endif
+/*JP
                 arg = "Astral";
+*/
+                arg = "\93V\8fã\8aE";
                 break;
             case -4:
+/*JP
                 arg = "Water";
+*/
+                arg = "\90\85\82Ì\90¸\97ì\8aE";
                 break;
             case -3:
+/*JP
                 arg = "Fire";
+*/
+                arg = "\89Î\82Ì\90¸\97ì\8aE";
                 break;
             case -2:
+/*JP
                 arg = "Air";
+*/
+                arg = "\95\97\82Ì\90¸\97ì\8aE";
                 break;
             case -1:
+/*JP
                 arg = "Earth";
+*/
+                arg = "\92n\82Ì\90¸\97ì\8aE";
                 break;
             default:
                 arg = "Void";
                 break;
             }
+#if 0 /*JP*/
             Sprintf(eos(linebuf), fmt, arg);
+#else
+            Sprintf(where, "%s\82É\82Ä", arg);
+#endif
         } else {
+/*JP
             Sprintf(eos(linebuf), " in %s", dungeons[t1->deathdnum].dname);
+*/
+            Sprintf(eos(linebuf), "%s", dungeons[t1->deathdnum].dname);
             if (t1->deathdnum != knox_level.dnum)
+/*JP
                 Sprintf(eos(linebuf), " on level %d", t1->deathlev);
+*/
+                Sprintf(eos(linebuf), "\82Ì\92n\89º%d\8aK\82É\82Ä", t1->deathlev);
             if (t1->deathlev != t1->maxlvl)
+/*JP
                 Sprintf(eos(linebuf), " [max %d]", t1->maxlvl);
+*/
+                Sprintf(eos(where), "[\8dÅ\91å\92n\89º%d\8aK]", t1->maxlvl);
         }
 
         /* kludge for "quit while already on Charon's boat" */
         if (!strncmp(t1->death, "quit ", 5))
             Strcat(linebuf, t1->death + 4);
     }
+#if 0 /*JP*/
     Strcat(linebuf, ".");
+#endif
 
     /* Quit, starved, ascended, and escaped contain no second line */
     if (second_line)
+/*JP
         Sprintf(eos(linebuf), "  %c%s.", highc(*(t1->death)), t1->death + 1);
+*/
+        Sprintf(action, "%s", t1->death);
 
+#if 1 /*JP*/
+    Sprintf(eos(linebuf), "%s%s%s\81D", who, where, action);
+#endif
     lngr = (int) strlen(linebuf);
     if (t1->hp <= 0)
         hpbuf[0] = '-', hpbuf[1] = '\0';
@@ -863,6 +1004,26 @@ boolean so;
         Sprintf(hpbuf, "%d", t1->hp);
     /* beginning of hp column after padding (not actually padded yet) */
     hppos = COLNO - (sizeof("  Hp [max]") - 1); /* sizeof(str) includes \0 */
+#if 1 /*JP*/
+    while(lngr >= hppos ){
+/*JP hppos\82æ\82è\91O\82Ì\93K\93\96\82È\88Ê\92u\82Å\95ª\8a\84\82·\82é\81D*/
+        car[0] = '\0';
+        cdr[0] = '\0';
+        split_japanese(linebuf, car, cdr, hppos);
+        
+        bp = eos(car);
+        if (so) {
+            while (bp < car + (COLNO-1)) *bp++ = ' ';
+            *bp = 0;
+            topten_print_bold(car);
+        } else
+            topten_print(car);
+        
+            Sprintf(linebuf, "%15s %s", "", cdr);
+        lngr = (int)strlen(linebuf);
+    }
+/*JP: \93ú\96{\8cê\82ª\93ü\82é\82Æ\95\8e\9a\97ñ\82ð\8cã\82©\82ç\8c©\82Ä\82¢\82­\82±\82Æ\82Í\82Å\82«\82È\82¢\82½\82ß\83R\83\81\83\93\83g\83A\83E\83g*/
+#else
     while (lngr >= hppos) {
         for (bp = eos(linebuf); !(*bp == ' ' && (bp - linebuf < hppos)); bp--)
             ;
@@ -888,6 +1049,7 @@ boolean so;
         Sprintf(linebuf, "%15s %s", "", linebuf3);
         lngr = strlen(linebuf);
     }
+#endif /*JP*/
     /* beginning of hp column not including padding */
     hppos = COLNO - 7 - (int) strlen(hpbuf);
     bp = eos(linebuf);
index b8944ee..db6ca34 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 extern const char *const destroy_strings[][3]; /* from zap.c */
@@ -40,13 +45,28 @@ STATIC_DCL void NDECL(maybe_finish_sokoban);
 /* mintrap() should take a flags argument, but for time being we use this */
 STATIC_VAR int force_mintrap = 0;
 
+#if 0 /*JP*/
 STATIC_VAR const char *const a_your[2] = { "a", "your" };
 STATIC_VAR const char *const A_Your[2] = { "A", "Your" };
 STATIC_VAR const char tower_of_flame[] = "tower of flame";
 STATIC_VAR const char *const A_gush_of_water_hits = "A gush of water hits";
+#endif
+#if 0 /*JP*/
 STATIC_VAR const char *const blindgas[6] = { "humid",   "odorless",
                                              "pungent", "chilling",
                                              "acrid",   "biting" };
+#else
+STATIC_VAR const char * const blindgas[6] = {
+    "\82Þ\82µ\82Þ\82µ\82·\82é", "\96³\8fL\82Ì",
+    "\8eh\8c\83\8fL\82Ì\82·\82é", "\97â\82½\82¢",
+    "\83c\83\93\82Æ\82µ\82½\82É\82¨\82¢\82Ì", "\82Ð\82è\82Ð\82è\82·\82é"
+    };
+#endif
+#if 1 /*JP*/
+const char *set_you[2] = { "", "\82 \82È\82½\82Ì\8ed\8a|\82¯\82½" };
+STATIC_VAR const char *dig_you[2] = { "", "\82 \82È\82½\82ª\8c@\82Á\82½" };
+STATIC_VAR const char *web_you[2] = { "", "\82 \82È\82½\82ª\92£\82Á\82½" };
+#endif
 
 /* called when you're hit by fire (dofiretrap,buzz,zapyourself,explode);
    returns TRUE if hit on torso */
@@ -82,10 +102,18 @@ struct monst *victim;
             item = hitting_u ? uarmh : which_armor(victim, W_ARMH);
             if (item) {
                 mat_idx = objects[item->otyp].oc_material;
+#if 0 /*JP*/
                 Sprintf(buf, "%s %s", materialnm[mat_idx],
                         helm_simple_name(item));
+#else
+                Sprintf(buf, "%s\82Ì%s", materialnm[mat_idx],
+                        helm_simple_name(item));
+#endif
             }
+/*JP
             if (!burn_dmg(item, item ? buf : "helmet"))
+*/
+            if (!burn_dmg(item, item ? buf : "\8a\95"))
                 continue;
             break;
         case 1:
@@ -101,21 +129,33 @@ struct monst *victim;
             }
             item = hitting_u ? uarmu : which_armor(victim, W_ARMU);
             if (item)
+/*JP
                 (void) burn_dmg(item, "shirt");
+*/
+                (void) burn_dmg(item, "\83V\83\83\83c");
             return TRUE;
         case 2:
             item = hitting_u ? uarms : which_armor(victim, W_ARMS);
+/*JP
             if (!burn_dmg(item, "wooden shield"))
+*/
+            if (!burn_dmg(item, "\96Ø\82Ì\8f\82"))
                 continue;
             break;
         case 3:
             item = hitting_u ? uarmg : which_armor(victim, W_ARMG);
+/*JP
             if (!burn_dmg(item, "gloves"))
+*/
+            if (!burn_dmg(item, "\8f¬\8eè"))
                 continue;
             break;
         case 4:
             item = hitting_u ? uarmf : which_armor(victim, W_ARMF);
+/*JP
             if (!burn_dmg(item, "boots"))
+*/
+            if (!burn_dmg(item, "\8cC"))
                 continue;
             break;
         }
@@ -141,10 +181,20 @@ const char *ostr;
 int type;
 int ef_flags;
 {
+#if 0 /*JP*/
     static NEARDATA const char *const action[] = { "smoulder", "rust", "rot",
                                                    "corrode" };
+#else
+    static NEARDATA const char * const action[] = {
+        "\82­\82·\82Ô\82Á\82½", "\8eK\82Ñ\82½", "\95\85\82Á\82½", "\95\85\90H\82µ\82½" };
+#endif
+#if 0 /*JP*/
     static NEARDATA const char *const msg[] = { "burnt", "rusted", "rotten",
                                                 "corroded" };
+#else
+    static NEARDATA const char * const msg[] =  {
+        "\8fÅ\82°\82½", "\8eK\82Ñ\82½", "\95\85\82Á\82½", "\95\85\90H\82µ\82½" };
+#endif
     boolean vulnerable = FALSE;
     boolean is_primary = TRUE;
     boolean check_grease = ef_flags & EF_GREASE;
@@ -199,20 +249,37 @@ int ef_flags;
     } else if (!vulnerable || (otmp->oerodeproof && otmp->rknown)) {
         if (print && flags.verbose) {
             if (victim == &youmonst)
+/*JP
                 Your("%s %s not affected.", ostr, vtense(ostr, "are"));
+*/
+                Your("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81D",ostr);
             else if (vismon)
+#if 0 /*JP*/
                 pline("%s %s %s not affected.", s_suffix(Monnam(victim)),
                       ostr, vtense(ostr, "are"));
+#else
+                pline("%s\82Ì%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81D", Monnam(victim),
+                      ostr);
+#endif
         }
         return ER_NOTHING;
     } else if (otmp->oerodeproof || (otmp->blessed && !rnl(4))) {
         if (flags.verbose && (print || otmp->oerodeproof)) {
             if (victim == &youmonst)
+#if 0 /*JP*/
                 pline("Somehow, your %s %s not affected.", ostr,
                       vtense(ostr, "are"));
+#else
+                pline("\82È\82º\82©\81C%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81D",ostr);
+#endif
             else if (vismon)
+#if 0 /*JP*/
                 pline("Somehow, %s %s %s not affected.",
                       s_suffix(mon_nam(victim)), ostr, vtense(ostr, "are"));
+#else
+                pline("\82È\82º\82©\81C%s\82Ì%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81D",
+                      mon_nam(victim), ostr);
+#endif
             else if (visobj)
                 pline("Somehow, the %s %s not affected.", ostr,
                       vtense(ostr, "are"));
@@ -229,17 +296,34 @@ int ef_flags;
 
         return ER_NOTHING;
     } else if (erosion < MAX_ERODE) {
+#if 0 /*JP*/
         const char *adverb = (erosion + 1 == MAX_ERODE)
                                  ? " completely"
                                  : erosion ? " further" : "";
+#else
+        const char *adverb = (erosion + 1 == MAX_ERODE)
+                                 ? "\8a®\91S\82É"
+                                 : erosion ? "\82³\82ç\82É" : "";
+#endif
 
         if (victim == &youmonst)
+/*JP
             Your("%s %s%s!", ostr, vtense(ostr, action[type]), adverb);
+*/
+            pline("%s\82Í%s%s\81I", ostr, adverb, action[type]);
         else if (vismon)
+#if 0 /*JP*/
             pline("%s %s %s%s!", s_suffix(Monnam(victim)), ostr,
                   vtense(ostr, action[type]), adverb);
+#else
+            pline("%s\82Ì%s\82Í%s%s\81I", Monnam(victim), ostr,
+                  adverb, action[type]);
+#endif
         else if (visobj)
+/*JP
             pline("The %s %s%s!", ostr, vtense(ostr, action[type]), adverb);
+*/
+            pline("%s\82Í%s%s\81I", ostr, adverb, action[type]);
 
         if (ef_flags & EF_PAY)
             costly_alteration(otmp, cost_type);
@@ -271,14 +355,28 @@ int ef_flags;
     } else {
         if (flags.verbose && print) {
             if (victim == &youmonst)
+#if 0 /*JP*/
                 Your("%s %s completely %s.", ostr,
                      vtense(ostr, Blind ? "feel" : "look"), msg[type]);
+#else
+                Your("%s\82Í\8a®\91S\82É%s%s\81D", ostr,
+                     msg[type], Blind ? "\82æ\82¤\82¾" : "");
+#endif
             else if (vismon)
+#if 0 /*JP*/
                 pline("%s %s %s completely %s.", s_suffix(Monnam(victim)),
                       ostr, vtense(ostr, "look"), msg[type]);
+#else
+                pline("%s\82Ì%s\82Í\8a®\91S\82É%s\81D", Monnam(victim),
+                      ostr, msg[type]);
+#endif
             else if (visobj)
+#if 0 /*JP*/
                 pline("The %s %s completely %s.", ostr, vtense(ostr, "look"),
                       msg[type]);
+#else
+                pline("%s\82Í\8a®\91S\82É%s\81D", ostr, msg[type]);
+#endif
         }
         return ER_NOTHING;
     }
@@ -293,22 +391,38 @@ register struct obj *otmp;
 const char *ostr;
 struct monst *victim;
 {
+/*JP
     static const char txt[] = "protected by the layer of grease!";
+*/
+    static const char txt[] = "\96û\82Ì\93h\82è\82±\82Ý\82É\82æ\82Á\82Ä\8eç\82ç\82ê\82Ä\82¢\82é\81I";
     boolean vismon = victim && (victim != &youmonst) && canseemon(victim);
 
     if (ostr) {
         if (victim == &youmonst)
+/*JP
             Your("%s %s %s", ostr, vtense(ostr, "are"), txt);
+*/
+            Your("%s\82Í%s", ostr, txt);
         else if (vismon)
+#if 0 /*JP*/
             pline("%s's %s %s %s", Monnam(victim),
                   ostr, vtense(ostr, "are"), txt);
+#else
+            pline("%s\82Ì%s\82Í%s", Monnam(victim), ostr, txt);
+#endif
     } else if (victim == &youmonst || vismon) {
+/*JP
         pline("%s %s", Yobjnam2(otmp, "are"), txt);
+*/
+        Your("%s\82Í%s",xname(otmp), txt);
     }
     if (!rn2(2)) {
         otmp->greased = 0;
         if (carried(otmp)) {
+/*JP
             pline_The("grease dissolves.");
+*/
+            pline("\96û\82Í\82Í\82°\82Ä\82µ\82Ü\82Á\82½\81D");
             update_inventory();
         }
         return TRUE;
@@ -483,12 +597,21 @@ boolean td; /* td == TRUE : trap door or hole */
         feeltrap(t);
         if (!Sokoban) {
             if (t->ttyp == TRAPDOOR)
+/*JP
                 pline("A trap door opens up under you!");
+*/
+                pline("\97\8e\82µ\94à\82ª\82 \82È\82½\82Ì\91«\8c³\82É\8aJ\82¢\82½\81I");
             else
+/*JP
                 pline("There's a gaping hole under you!");
+*/
+                pline("\82 \82È\82½\82Ì\91«\89º\82É\82Û\82Á\82©\82è\82Æ\8c\8a\82ª\8aJ\82¢\82Ä\82¢\82é\81I");
         }
     } else
+/*JP
         pline_The("%s opens up under you!", surface(u.ux, u.uy));
+*/
+        pline("\91«\8c³\82Ì%s\82É\8c\8a\82ª\8aJ\82¢\82½\81I", surface(u.ux,u.uy));
 
     if (Sokoban && Can_fall_thru(&u.uz))
         ; /* KMH -- You can't escape the Sokoban level traps */
@@ -496,19 +619,35 @@ boolean td; /* td == TRUE : trap door or hole */
              || (!Can_fall_thru(&u.uz) && !levl[u.ux][u.uy].candig) || Flying
              || is_clinger(youmonst.data)
              || (Inhell && !u.uevent.invoked && newlevel == bottom)) {
+/*JP
         dont_fall = "don't fall in.";
+*/
+        dont_fall = "\82µ\82©\82µ\82 \82È\82½\82Í\97\8e\82¿\82È\82©\82Á\82½\81D";
     } else if (youmonst.data->msize >= MZ_HUGE) {
+/*JP
         dont_fall = "don't fit through.";
+*/
+        dont_fall = "\92Ê\82è\94²\82¯\82é\82É\82Í\83T\83C\83Y\82ª\8d\87\82í\82È\82¢\81D";
     } else if (!next_to_u()) {
+/*JP
         dont_fall = "are jerked back by your pet!";
+*/
+        dont_fall = "\82 \82È\82½\82Í\83y\83b\83g\82É\82æ\82Á\82Ä\88ø\82Á\82Ï\82è\82à\82Ç\82³\82ê\82½\81I";
     }
     if (dont_fall) {
+#if 0 /*JP*//*\81u\82 \82È\82½\82Í\81v\82Å\8en\82Ü\82ç\82È\82¢\82à\82Ì\82à\82 \82é*/
         You1(dont_fall);
+#else
+        pline1(dont_fall);
+#endif
         /* hero didn't fall through, but any objects here might */
         impact_drop((struct obj *) 0, u.ux, u.uy, 0);
         if (!td) {
             display_nhwindow(WIN_MESSAGE, FALSE);
+/*JP
             pline_The("opening under you closes up.");
+*/
+            pline_The("\91«\89º\82É\8aJ\82¢\82Ä\82¢\82½\82à\82Ì\82Í\95Â\82\82½\81D");
         }
         return;
     }
@@ -522,11 +661,19 @@ boolean td; /* td == TRUE : trap door or hole */
         dtmp.dnum = u.uz.dnum;
         dtmp.dlevel = newlevel;
         if (dist > 1)
+#if 0 /*JP*/
             You("fall down a %s%sshaft!", dist > 3 ? "very " : "",
                 dist > 2 ? "deep " : "");
+#else
+            You("%s%s\8c\8a\82Ì\92\86\82ð\97\8e\82¿\82Ä\82¢\82Á\82½\81I", dist > 3 ? "\82Æ\82Ä\82à" : "",
+                dist > 2 ? "\90[\82¢" : "");
+#endif
     }
     if (!td)
+/*JP
         Sprintf(msgbuf, "The hole in the %s above you closes up.",
+*/
+        Sprintf(msgbuf, "%s\82É\8aJ\82¢\82½\8c\8a\82Í\95Â\82\82½\81D",
                 ceiling(u.ux, u.uy));
 
     schedule_goto(&dtmp, FALSE, TRUE, 0, (char *) 0,
@@ -578,8 +725,10 @@ int *fail_reason;
     const char *comes_to_life;
     char statuename[BUFSZ], tmpbuf[BUFSZ];
     static const char historic_statue_is_gone[] =
+/*JP
         "that the historic statue is now gone";
-
+*/
+        "\97ð\8ej\93I\82È\92¤\91\9c\82ª\82È\82­\82È\82Á\82Ä\82µ\82Ü\82Á\82½\82±\82Æ";
     if (cant_revive(&mnum, TRUE, statue)) {
         /* mnum has changed; we won't be animating this statue as itself */
         if (mnum != PM_DOPPELGANGER)
@@ -650,6 +799,7 @@ int *fail_reason;
         set_malign(mon);
     }
 
+#if 0 /*JP*/
     comes_to_life = !canspotmon(mon)
                         ? "disappears"
                         : golem_xform
@@ -657,9 +807,19 @@ int *fail_reason;
                               : (nonliving(mon->data) || is_vampshifter(mon))
                                     ? "moves"
                                     : "comes to life";
+#else
+    comes_to_life = !canspotmon(mon)
+                        ? "\8fÁ\82¦"
+                        : golem_xform
+                              ? "\93÷\91Ì\82É\96ß\82Á"
+                              : (nonliving(mon->data) || is_vampshifter(mon))
+                                    ? "\93®\82¢"
+                                    : "\90\96½\82ð\91Ñ\82Ñ";
+#endif
     if ((x == u.ux && y == u.uy) || cause == ANIMATE_SPELL) {
         /* "the|your|Manlobbi's statue [of a wombat]" */
         shkp = shop_keeper(*in_rooms(mon->mx, mon->my, SHOPBASE));
+#if 0 /*JP*/
         Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue),
                 (cause == ANIMATE_SPELL
                  /* avoid "of a shopkeeper" if it's Manlobbi himself
@@ -669,19 +829,43 @@ int *fail_reason;
                  && (mon != shkp || carried(statue)))
                    ? xname(statue)
                    : "statue");
+#else
+        Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue),
+                (cause == ANIMATE_SPELL
+                 && (mon != shkp || carried(statue)))
+                   ? xname(statue)
+                   : "\92¤\91\9c");
+#endif
+/*JP
         pline("%s %s!", upstart(statuename), comes_to_life);
+*/
+        pline("%s\82Í%s\82½\81I", upstart(statuename), comes_to_life);
     } else if (Hallucination) { /* They don't know it's a statue */
+/*JP
         pline_The("%s suddenly seems more animated.", rndmonnam((char *) 0));
+*/
+        pline_The("%s\82Í\93Ë\91R\82æ\82è\8a\88\93®\93I\82É\82È\82Á\82½\81D", rndmonnam((char *) 0));
     } else if (cause == ANIMATE_SHATTER) {
         if (cansee(x, y))
             Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue),
                     xname(statue));
         else
+/*JP
             Strcpy(statuename, "a statue");
+*/
+            Strcpy(statuename, "\92¤\91\9c");
+#if 0 /*JP*/
         pline("Instead of shattering, %s suddenly %s!", statuename,
               comes_to_life);
+#else
+        pline("%s\82Í\8dÓ\82¯\82¸\82É%s\82½\81I", statuename,
+              comes_to_life);
+#endif
     } else { /* cause == ANIMATE_NORMAL */
+/*JP
         You("find %s posing as a statue.",
+*/
+        You("%s\82ª\92¤\91\9c\82Ì\82Ó\82è\82ð\82µ\82Ä\82¢\82é\82Ì\82ð\8c©\82Â\82¯\82½\81D",
             canspotmon(mon) ? a_monnam(mon) : something);
         if (!canspotmon(mon) && Blind)
             map_invisible(x, y);
@@ -704,12 +888,18 @@ int *fail_reason;
                                 FALSE);
 
         if (historic) {
+/*JP
             You_feel("guilty %s.", historic_statue_is_gone);
+*/
+            You_feel("%s\82É\8dß\82ð\8a´\82\82½\81D", historic_statue_is_gone);
             adjalign(-1);
         }
     } else {
         if (historic && cansee(x, y))
+/*JP
             You_feel("regret %s.", historic_statue_is_gone);
+*/
+            You_feel("%s\82ð\8cã\89÷\82µ\82½\81D", historic_statue_is_gone);
         /* no alignment penalty */
     }
 
@@ -826,27 +1016,45 @@ unsigned trflags;
          * reason why the player cannot escape the trap with a dexterity
          * check, clinging to the ceiling, etc.
          */
+#if 0 /*JP*/
         pline("Air currents pull you down into %s %s!",
               a_your[trap->madeby_u],
               defsyms[trap_to_defsym(ttype)].explanation);
+#else
+        pline("\8bó\8bC\82Ì\97¬\82ê\82ª\82 \82È\82½\82ð%s\82É\88ø\82«\96ß\82µ\82½\81I",
+              defsyms[trap_to_defsym(ttype)].explanation);
+#endif
         /* then proceed to normal trap effect */
     } else if (already_seen && !forcetrap) {
         if ((Levitation || (Flying && !plunged))
             && (ttype == PIT || ttype == SPIKED_PIT || ttype == HOLE
                 || ttype == BEAR_TRAP)) {
+#if 0 /*JP*/
             You("%s over %s %s.", Levitation ? "float" : "fly",
                 a_your[trap->madeby_u],
                 defsyms[trap_to_defsym(ttype)].explanation);
+#else
+            You("%s%s\82Ì\8fã%s\81D",
+                set_you[trap->madeby_u],
+                defsyms[trap_to_defsym(ttype)].explanation,
+                Levitation ? "\82ð\8c©\89º\82ë\82µ\82½" : "\82ð\94ò\82ñ\82Å\82¢\82é");
+#endif
             return;
         }
         if (!Fumbling && ttype != MAGIC_PORTAL && ttype != VIBRATING_SQUARE
             && ttype != ANTI_MAGIC && !forcebungle && !plunged && !adj_pit
             && (!rn2(5) || ((ttype == PIT || ttype == SPIKED_PIT)
                             && is_clinger(youmonst.data)))) {
+#if 0 /*JP:T*/
             You("escape %s %s.", (ttype == ARROW_TRAP && !trap->madeby_u)
                                      ? "an"
                                      : a_your[trap->madeby_u],
                 defsyms[trap_to_defsym(ttype)].explanation);
+#else
+            You("%s%s\82ð\82·\82é\82è\82Æ\94ð\82¯\82½\81D",
+                set_you[trap->madeby_u],
+                defsyms[trap_to_defsym(ttype)].explanation);
+#endif
             return;
         }
     }
@@ -862,21 +1070,30 @@ unsigned trflags;
     switch (ttype) {
     case ARROW_TRAP:
         if (trap->once && trap->tseen && !rn2(15)) {
+/*JP
             You_hear("a loud click!");
+*/
+            You_hear("\83K\83`\83\83\83b\82Æ\82¢\82¤\91å\82«\82È\89¹\82ð\95·\82¢\82½\81I");
             deltrap(trap);
             newsym(u.ux, u.uy);
             break;
         }
         trap->once = 1;
         seetrap(trap);
+/*JP
         pline("An arrow shoots out at you!");
+*/
+        pline("\96î\82ª\94ò\82ñ\82Å\82«\82½\81I");
         otmp = mksobj(ARROW, TRUE, FALSE);
         otmp->quan = 1L;
         otmp->owt = weight(otmp);
         otmp->opoisoned = 0;
         if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) { /* nothing */
             ;
+/*JP
         } else if (thitu(8, dmgval(otmp, &youmonst), otmp, "arrow")) {
+*/
+        } else if (thitu(8, dmgval(otmp, &youmonst), otmp, "\96î")) {
             obfree(otmp, (struct obj *) 0);
         } else {
             place_object(otmp, u.ux, u.uy);
@@ -889,14 +1106,20 @@ unsigned trflags;
 
     case DART_TRAP:
         if (trap->once && trap->tseen && !rn2(15)) {
+/*JP
             You_hear("a soft click.");
+*/
+            You_hear("\83J\83`\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             deltrap(trap);
             newsym(u.ux, u.uy);
             break;
         }
         trap->once = 1;
         seetrap(trap);
+/*JP
         pline("A little dart shoots out at you!");
+*/
+        pline("\8f¬\82³\82È\93\8a\82°\96î\82ª\94ò\82ñ\82Å\82«\82½\81I");
         otmp = mksobj(DART, TRUE, FALSE);
         otmp->quan = 1L;
         otmp->owt = weight(otmp);
@@ -905,12 +1128,22 @@ unsigned trflags;
         oldumort = u.umortality;
         if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) { /* nothing */
             ;
+/*JP
         } else if (thitu(7, dmgval(otmp, &youmonst), otmp, "little dart")) {
+*/
+        } else if (thitu(7, dmgval(otmp, &youmonst), otmp, "\93\8a\82°\96î")) {
             if (otmp->opoisoned)
+#if 0 /*JP*/
                 poisoned("dart", A_CON, "little dart",
                          /* if damage triggered life-saving,
                             poison is limited to attrib loss */
                          (u.umortality > oldumort) ? 0 : 10, TRUE);
+#else
+                poisoned("\93\8a\82°\96î", A_CON, "\8f¬\82³\82È\93\8a\82°\96î",
+                         /* if damage triggered life-saving,
+                            poison is limited to attrib loss */
+                         (u.umortality > oldumort) ? 0 : 10, TRUE);
+#endif
             obfree(otmp, (struct obj *) 0);
         } else {
             place_object(otmp, u.ux, u.uy);
@@ -923,7 +1156,10 @@ unsigned trflags;
 
     case ROCKTRAP:
         if (trap->once && trap->tseen && !rn2(15)) {
+/*JP
             pline("A trap door in %s opens, but nothing falls out!",
+*/
+            pline("\97\8e\82µ\94à\82ª%s\82É\8aJ\82¢\82½\82ª\81C\89½\82à\97\8e\82¿\82Ä\82±\82È\82©\82Á\82½\81I",
                   the(ceiling(u.ux, u.uy)));
             deltrap(trap);
             newsym(u.ux, u.uy);
@@ -936,15 +1172,26 @@ unsigned trflags;
             otmp->quan = 1L;
             otmp->owt = weight(otmp);
 
+#if 0 /*JP*/
             pline("A trap door in %s opens and %s falls on your %s!",
                   the(ceiling(u.ux, u.uy)), an(xname(otmp)), body_part(HEAD));
+#else
+            pline("\97\8e\82µ\94à\82ª%s\82É\8aJ\82«\81C%s\82ª\82 \82È\82½\82Ì%s\82É\97\8e\82¿\82Ä\82«\82½\81I",
+                  ceiling(u.ux,u.uy), xname(otmp), body_part(HEAD));
+#endif
 
             if (uarmh) {
                 if (is_metallic(uarmh)) {
+/*JP
                     pline("Fortunately, you are wearing a hard helmet.");
+*/
+                    pline("\8dK\89^\82É\82à\81C\82 \82È\82½\82Í\8cÅ\82¢\8a\95\82ð\90g\82É\82Â\82¯\82Ä\82¢\82½\81D");
                     dmg = 2;
                 } else if (flags.verbose) {
+/*JP
                     pline("%s does not protect you.", Yname2(uarmh));
+*/
+                    pline("%s\82Å\82Í\96h\82°\82È\82¢\81D", xname(uarmh));
                 }
             }
 
@@ -953,7 +1200,10 @@ unsigned trflags;
             stackobj(otmp);
             newsym(u.ux, u.uy); /* map the rock */
 
+/*JP
             losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\97\8e\8aâ\82Å", KILLED_BY_AN);
             exercise(A_STR, FALSE);
         }
         break;
@@ -963,15 +1213,29 @@ unsigned trflags;
             if (!Blind) {
                 seetrap(trap);
                 if (Hallucination)
+/*JP
                     You("notice a crease in the linoleum.");
+*/
+                    You("\8f°\82Ì\8ed\8fã\8dÞ\82Ì\82µ\82í\82É\8bC\82ª\82Â\82¢\82½\81D");
                 else
+/*JP
                     You("notice a loose board below you.");
+*/
+                    You("\91«\8c³\82Ì\8aÉ\82ñ\82¾\94Â\82É\8bC\82ª\82Â\82¢\82½\81D");
             }
         } else {
             seetrap(trap);
+#if 0 /*JP*/
             pline("A board beneath you %s%s%s.",
                   Deaf ? "vibrates" : "squeaks ",
                   Deaf ? "" : trapnote(trap, 0), Deaf ? "" : " loudly");
+#else
+            if (Deaf) {
+                pline("\91«\8c³\82Ì\94Â\82ª\82ä\82ê\82½\81D");
+            } else {
+                pline("\91«\8c³\82Ì\94Â\82ª\91å\82«\82­%s\82Ì\89¹\82É\82«\82µ\82ñ\82¾\81D", trapnote(trap, 0));
+            }
+#endif
             wake_nearby();
         }
         break;
@@ -984,29 +1248,55 @@ unsigned trflags;
         feeltrap(trap);
         if (amorphous(youmonst.data) || is_whirly(youmonst.data)
             || unsolid(youmonst.data)) {
+#if 0 /*JP*/
             pline("%s bear trap closes harmlessly through you.",
                   A_Your[trap->madeby_u]);
+#else
+            pline("%s\8cF\82Ìã©\82Í\8a\9a\82Ý\82Â\82¢\82½\82ª\81C\82·\82é\82Á\82Æ\92Ê\82è\94²\82¯\82½\81D",
+                  set_you[trap->madeby_u]);
+#endif
             break;
         }
         if (!u.usteed && youmonst.data->msize <= MZ_SMALL) {
+#if 0 /*JP*/
             pline("%s bear trap closes harmlessly over you.",
                   A_Your[trap->madeby_u]);
+#else
+            pline("%s\8cF\82Ìã©\82Í\8a\9a\82Ý\82Â\82¢\82½\82ª\81C\97y\82©\8fã\95û\82¾\82Á\82½\81D",
+                  set_you[trap->madeby_u]);
+#endif
             break;
         }
         u.utrap = rn1(4, 4);
         u.utraptype = TT_BEARTRAP;
         if (u.usteed) {
+#if 0 /*JP*/
             pline("%s bear trap closes on %s %s!", A_Your[trap->madeby_u],
                   s_suffix(mon_nam(u.usteed)), mbodypart(u.usteed, FOOT));
+#else
+            pline("%s\8cF\82Ìã©\82Í%s\82Ì%s\82É\8a\9a\82Ý\82Â\82¢\82½\81I", set_you[trap->madeby_u],
+                  mon_nam(u.usteed), mbodypart(u.usteed, FOOT));
+#endif
             if (thitm(0, u.usteed, (struct obj *) 0, dmg, FALSE))
                 u.utrap = 0; /* steed died, hero not trapped */
         } else {
+#if 0 /*JP*/
             pline("%s bear trap closes on your %s!", A_Your[trap->madeby_u],
                   body_part(FOOT));
+#else
+            pline("%s\8cF\82Ìã©\82ª\82 \82È\82½\82Ì%s\82É\8a\9a\82Ý\82Â\82¢\82½\81I", set_you[trap->madeby_u],
+                  body_part(FOOT));
+#endif
             set_wounded_legs(rn2(2) ? RIGHT_SIDE : LEFT_SIDE, rn1(10, 10));
             if (u.umonnum == PM_OWLBEAR || u.umonnum == PM_BUGBEAR)
+/*JP
                 You("howl in anger!");
+*/
+                You("\93{\82è\82Ì\99ô\9aK\82ð\82 \82°\82½\81I");
+/*JP
             losehp(Maybe_Half_Phys(dmg), "bear trap", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\8cF\82Ìã©\82Å", KILLED_BY_AN);
         }
         exercise(A_DEX, FALSE);
         break;
@@ -1015,9 +1305,15 @@ unsigned trflags;
     case SLP_GAS_TRAP:
         seetrap(trap);
         if (Sleep_resistance || breathless(youmonst.data)) {
+/*JP
             You("are enveloped in a cloud of gas!");
+*/
+            You("\83K\83X\89_\82É\82Â\82Â\82Ü\82ê\82½\81I");
         } else {
+/*JP
             pline("A cloud of gas puts you to sleep!");
+*/
+            pline("\82 \82È\82½\82Í\83K\83X\89_\82Å\96°\82Á\82Ä\82µ\82Ü\82Á\82½\81I");
             fall_asleep(-rnd(25), TRUE);
         }
         (void) steedintrap(trap, (struct obj *) 0);
@@ -1033,27 +1329,45 @@ unsigned trflags;
          */
         switch (rn2(5)) {
         case 0:
+/*JP
             pline("%s you on the %s!", A_gush_of_water_hits, body_part(HEAD));
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82Ì%s\82É\96½\92\86\82µ\82½\81I", body_part(HEAD));
             (void) water_damage(uarmh, helm_simple_name(uarmh), TRUE);
             break;
         case 1:
+/*JP
             pline("%s your left %s!", A_gush_of_water_hits, body_part(ARM));
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82Ì\8d¶%s\82É\96½\92\86\82µ\82½\81I", body_part(ARM));
+/*JP
             if (water_damage(uarms, "shield", TRUE) != ER_NOTHING)
+*/
+            if (water_damage(uarms, "\8f\82", TRUE) != ER_NOTHING)
                 break;
             if (u.twoweap || (uwep && bimanual(uwep)))
                 (void) water_damage(u.twoweap ? uswapwep : uwep, 0, TRUE);
         glovecheck:
+/*JP
             (void) water_damage(uarmg, "gauntlets", TRUE);
+*/
+            (void) water_damage(uarmg, "\8f¬\8eè", TRUE);
             /* Not "metal gauntlets" since it gets called
              * even if it's leather for the message
              */
             break;
         case 2:
+/*JP
             pline("%s your right %s!", A_gush_of_water_hits, body_part(ARM));
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82Ì\89E%s\82É\96½\92\86\82µ\82½\81I", body_part(ARM));
             (void) water_damage(uwep, 0, TRUE);
             goto glovecheck;
         default:
+/*JP
             pline("%s you!", A_gush_of_water_hits);
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
             for (otmp = invent; otmp; otmp = otmp->nobj)
                 if (otmp->lamplit && otmp != uwep
                     && (otmp != uswapwep || !u.twoweap))
@@ -1061,20 +1375,38 @@ unsigned trflags;
             if (uarmc)
                 (void) water_damage(uarmc, cloak_simple_name(uarmc), TRUE);
             else if (uarm)
+/*JP
                 (void) water_damage(uarm, "armor", TRUE);
+*/
+                (void) water_damage(uarm, "\8aZ", TRUE);
             else if (uarmu)
+/*JP
                 (void) water_damage(uarmu, "shirt", TRUE);
+*/
+                (void) water_damage(uarmu, "\83V\83\83\83c", TRUE);
         }
         update_inventory();
 
         if (u.umonnum == PM_IRON_GOLEM) {
             int dam = u.mhmax;
 
+/*JP
             pline("%s you!", A_gush_of_water_hits);
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
+/*JP
             You("are covered with rust!");
+*/
+            You("\8eK\82É\95¢\82í\82ê\82½\81I");
+/*JP
             losehp(Maybe_Half_Phys(dam), "rusting away", KILLED_BY);
+*/
+            losehp(Maybe_Half_Phys(dam), "\8a®\91S\82É\8eK\82Ñ\82Ä", KILLED_BY);
         } else if (u.umonnum == PM_GREMLIN && rn2(3)) {
+/*JP
             pline("%s you!", A_gush_of_water_hits);
+*/
+            pline("\90\85\82ª\95¬\8fo\82µ\82Ä\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
             (void) split_mon(&youmonst, (struct monst *) 0);
         }
 
@@ -1093,12 +1425,25 @@ unsigned trflags;
         feeltrap(trap);
         if (!Sokoban && is_clinger(youmonst.data) && !plunged) {
             if (trap->tseen) {
+#if 0 /*JP*/
                 You_see("%s %spit below you.", a_your[trap->madeby_u],
                         ttype == SPIKED_PIT ? "spiked " : "");
+#else
+                pline("\91«\8c³\82É%s%s\97\8e\82µ\8c\8a\82ð\94­\8c©\82µ\82½\81D", dig_you[trap->madeby_u],
+                      ttype == SPIKED_PIT ? "\83g\83Q\82¾\82ç\82¯\82Ì" : "");
+#endif
             } else {
+#if 0 /*JP*/
                 pline("%s pit %sopens up under you!", A_Your[trap->madeby_u],
                       ttype == SPIKED_PIT ? "full of spikes " : "");
+#else
+                pline("%s%s\97\8e\82µ\8c\8a\82ª\91«\8c³\82É\8aJ\82¢\82½\81I", dig_you[trap->madeby_u],
+                      ttype == SPIKED_PIT ? "\83g\83Q\82¾\82ç\82¯\82Ì" : "");
+#endif
+/*JP
                 You("don't fall in!");
+*/
+                pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\97\8e\82¿\82È\82©\82Á\82½\81I");
             }
             break;
         }
@@ -1107,66 +1452,128 @@ unsigned trflags;
 
             if (u.usteed) {
                 if ((trflags & RECURSIVETRAP) != 0)
+/*JP
                     Sprintf(verbbuf, "and %s fall",
+*/
+                    Sprintf(verbbuf, "\82Æ%s",
                             x_monnam(u.usteed, steed_article, (char *) 0,
                                      SUPPRESS_SADDLE, FALSE));
                 else
+#if 0 /*JP*/
                     Sprintf(verbbuf, "lead %s",
                             x_monnam(u.usteed, steed_article, "poor",
                                      SUPPRESS_SADDLE, FALSE));
+#else
+                    Sprintf(verbbuf,"\82Æ%s",
+                            x_monnam(u.usteed, steed_article, "\82©\82í\82¢\82»\82¤\82È",
+                                     SUPPRESS_SADDLE, FALSE));
+#endif
             } else if (adj_pit) {
                 You("move into an adjacent pit.");
             } else {
+#if 0 /*JP*/
                 Strcpy(verbbuf,
                        !plunged ? "fall" : (Flying ? "dive" : "plunge"));
+#else
+                Strcpy(verbbuf,
+                       !plunged ? "\97\8e\82¿\82½" : (Flying ? "\94ò\82Ñ\8d\9e\82ñ\82¾" : "\93Ë\93ü\82µ\82½"));
+#endif
+/*JP
                 You("%s into %s pit!", verbbuf, a_your[trap->madeby_u]);
+*/
+                You("%s\97\8e\82µ\8c\8a\82É%s!", set_you[trap->madeby_u], verbbuf);
             }
         }
         /* wumpus reference */
         if (Role_if(PM_RANGER) && !trap->madeby_u && !trap->once
             && In_quest(&u.uz) && Is_qlocate(&u.uz)) {
+/*JP
             pline("Fortunately it has a bottom after all...");
+*/
+            pline("\8dK\82¢\81C\8c\8b\8bÇ\82Í\92ê\82ª\82 \82Á\82½\81D\81D\81D");
             trap->once = 1;
         } else if (u.umonnum == PM_PIT_VIPER || u.umonnum == PM_PIT_FIEND) {
+/*JP
             pline("How pitiful.  Isn't that the pits?");
+*/
+            pline("\82±\82Ì\97\8e\82µ\8c\8a\82Í\82¢\82¢\8ed\8e\96\82ð\82µ\82Ä\82¢\82é\81D");
         }
         if (ttype == SPIKED_PIT) {
+/*JP
             const char *predicament = "on a set of sharp iron spikes";
+*/
+            const char *predicament = "\89s\82¢\93S\82Ì\83g\83Q\83g\83Q\82Ì\8fã\82É\97\8e\82¿\82½";
 
             if (u.usteed) {
+#if 0 /*JP*/
                 pline("%s %s %s!",
                       upstart(x_monnam(u.usteed, steed_article, "poor",
                                        SUPPRESS_SADDLE, FALSE)),
                       adj_pit ? "steps" : "lands", predicament);
+#else
+                pline("%s\82Í%s\81I",
+                      upstart(x_monnam(u.usteed, steed_article, "\82©\82í\82¢\82»\82¤\82È",
+                                       SUPPRESS_SADDLE, FALSE)),
+                      predicament);
+#endif
             } else
+#if 0 /*JP*/
                 You("%s %s!", adj_pit ? "step" : "land", predicament);
+#else
+                You("%s\81I", predicament);
+#endif
         }
         u.utrap = rn1(6, 2);
         u.utraptype = TT_PIT;
         if (!steedintrap(trap, (struct obj *) 0)) {
             if (ttype == SPIKED_PIT) {
                 oldumort = u.umortality;
+#if 0 /*JP*/
                 losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)),
                        plunged
                            ? "deliberately plunged into a pit of iron spikes"
                            : adj_pit ? "stepped into a pit of iron spikes"
                                      : "fell into a pit of iron spikes",
                        NO_KILLER_PREFIX);
+#else
+                losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)),
+                       plunged
+                           ? "\82í\82´\82í\82´\83g\83Q\82¾\82ç\82¯\82Ì\97\8e\82µ\8c\8a\82É\93Ë\93ü\82µ\82Ä"
+                           : adj_pit ? "\83g\83Q\82¾\82ç\82¯\82Ì\97\8e\82µ\8c\8a\82É\93¥\82Ý\8d\9e\82ñ\82Å"
+                                     : "\83g\83Q\82¾\82ç\82¯\82Ì\97\8e\82µ\8c\8a\82É\97\8e\82¿\82Ä",
+                       NO_KILLER_PREFIX);
+#endif
                 if (!rn2(6))
+#if 0 /*JP*/
                     poisoned("spikes", A_STR,
                              adj_pit ? "stepping on poison spikes"
                                      : "fall onto poison spikes",
                              /* if damage triggered life-saving,
                                 poison is limited to attrib loss */
                              (u.umortality > oldumort) ? 0 : 8, FALSE);
+#else
+                    poisoned("\83g\83Q", A_STR,
+                             adj_pit ? "\93Å\82Ì\93h\82ç\82ê\82½\83g\83Q\82ð\93¥\82ñ\82Å"
+                                     : "\93Å\82Ì\93h\82ç\82ê\82½\83g\83Q\82Ì\8fã\82É\97\8e\82¿\82Ä",
+                             /* if damage triggered life-saving,
+                                poison is limited to attrib loss */
+                             (u.umortality > oldumort) ? 0 : 8, FALSE);
+#endif
             } else {
                 /* plunging flyers take spike damage but not pit damage */
                 if (!adj_pit
                     && !(plunged && (Flying || is_clinger(youmonst.data))))
+#if 0 /*JP*/
                     losehp(Maybe_Half_Phys(rnd(6)),
                            plunged ? "deliberately plunged into a pit"
                                    : "fell into a pit",
                            NO_KILLER_PREFIX);
+#else
+                    losehp(Maybe_Half_Phys(rnd(6)),
+                           plunged ? "\82í\82´\82í\82´\97\8e\82µ\8c\8a\82É\93Ë\93ü\82µ\82Ä"
+                                   : "\97\8e\82µ\8c\8a\82É\97\8e\82¿\82Ä",
+                           NO_KILLER_PREFIX);
+#endif
             }
             if (Punished && !carried(uball)) {
                 unplacebc();
@@ -1174,7 +1581,10 @@ unsigned trflags;
                 placebc();
             }
             if (!adj_pit)
+/*JP
                 selftouch("Falling, you");
+*/
+                selftouch("\97\8e\89º\92\86\81C\82 \82È\82½\82Í");
             vision_full_recalc = 1; /* vision limits change */
             exercise(A_STR, FALSE);
             exercise(A_DEX, FALSE);
@@ -1209,27 +1619,43 @@ unsigned trflags;
             if (acidic(youmonst.data) || u.umonnum == PM_GELATINOUS_CUBE
                 || u.umonnum == PM_FIRE_ELEMENTAL) {
                 if (webmsgok)
+#if 0 /*JP*/
                     You("%s %s spider web!",
                         (u.umonnum == PM_FIRE_ELEMENTAL) ? "burn"
                                                          : "dissolve",
                         a_your[trap->madeby_u]);
+#else
+                    You("%s\82­\82à\82Ì\91\83\82ð%s\81I",
+                        web_you[trap->madeby_u],
+                        (u.umonnum == PM_FIRE_ELEMENTAL) ? "\8fÄ\82¢\82½"
+                                                         : "\82±\82È\82²\82È\82É\82µ\82½");
+#endif
                 deltrap(trap);
                 newsym(u.ux, u.uy);
                 break;
             }
             if (webmsgok)
+/*JP
                 You("flow through %s spider web.", a_your[trap->madeby_u]);
+*/
+                You("%s\82­\82à\82Ì\91\83\82ð\82·\82é\82è\82Æ\92Ê\82è\94²\82¯\82½\81D", web_you[trap->madeby_u]);
             break;
         }
         if (webmaker(youmonst.data)) {
             if (webmsgok)
+#if 0 /*JP*/
                 pline(trap->madeby_u ? "You take a walk on your web."
                                      : "There is a spider web here.");
+#else
+                pline(trap->madeby_u ? "\8e©\95ª\82Å\92£\82Á\82½\82­\82à\82Ì\91\83\82Ì\8fã\82ð\95à\82¢\82½\81D"
+                                     : "\82±\82±\82É\82Í\82­\82à\82Ì\91\83\82ª\82 \82é\81D");
+#endif
             break;
         }
         if (webmsgok) {
             char verbbuf[BUFSZ];
 
+#if 0 /*JP*/
             if (forcetrap) {
                 Strcpy(verbbuf, "are caught by");
             } else if (u.usteed) {
@@ -1242,6 +1668,20 @@ unsigned trflags;
                                    : locomotion(youmonst.data, "stumble"));
             }
             You("%s %s spider web!", verbbuf, a_your[trap->madeby_u]);
+#else
+            if (forcetrap) {
+                Strcpy(verbbuf, "\82 \82È\82½\82Í");
+            } else if (u.usteed) {
+                Sprintf(verbbuf, "\82 \82È\82½\82Æ%s",
+                        x_monnam(u.usteed, steed_article, "\82©\82í\82¢\82»\82¤\82È",
+                                 SUPPRESS_SADDLE, FALSE));
+            } else {
+                Sprintf(verbbuf, "\82 \82È\82½\82Í%s",
+                        Levitation ? (const char *) "\95\82\82«\82È\82ª\82ç"
+                        : jconj(locomotion(youmonst.data, "\82Â\82Ü\82¸\82­"), "\82Ä"));
+            }
+            pline("%s%s\82­\82à\82Ì\91\83\82É\82Ð\82Á\82©\82©\82Á\82½\81I", verbbuf, web_you[trap->madeby_u]);
+#endif
         }
         u.utraptype = TT_WEB;
 
@@ -1291,7 +1731,10 @@ unsigned trflags;
             else {
                 u.utrap = 0;
                 if (webmsgok)
+/*JP
                     You("tear through %s web!", a_your[trap->madeby_u]);
+*/
+                    You("%s\82­\82à\82Ì\91\83\82ð\90Ø\82è\97ô\82¢\82½\81I", web_you[trap->madeby_u]);
                 deltrap(trap);
                 newsym(u.ux, u.uy); /* get rid of trap symbol */
             }
@@ -1307,9 +1750,18 @@ unsigned trflags;
         if (!rn2(30)) {
             deltrap(trap);
             newsym(u.ux, u.uy); /* update position */
+/*JP
             You("are caught in a magical explosion!");
+*/
+            You("\96\82\96@\82Ì\94\9a\94­\82ð\97\81\82Ñ\82½\81I");
+/*JP
             losehp(rnd(10), "magical explosion", KILLED_BY_AN);
+*/
+            losehp(rnd(10), "\96\82\96@\82Ì\94\9a\94­\82ð\97\81\82Ñ\82Ä", KILLED_BY_AN);
+/*JP
             Your("body absorbs some of the magical energy!");
+*/
+            Your("\91Ì\82Í\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ð\8f­\82µ\8bz\82¢\82Æ\82Á\82½\81I");
             u.uen = (u.uenmax += 2);
             break;
         } else {
@@ -1347,11 +1799,20 @@ unsigned trflags;
             if (Passes_walls)
                 dmgval2 = (dmgval2 + 3) / 4;
 
+#if 0 /*JP*/
             You_feel((dmgval2 >= hp) ? "unbearably torpid!"
                                      : (dmgval2 >= hp / 4) ? "very lethargic."
                                                            : "sluggish.");
+#else
+            You_feel((dmgval2 >= hp) ? "\91Ï\82¦\82ç\82ê\82È\82¢\82Ù\82Ç\96³\8bC\97Í\82É\82È\82Á\82½\81I"
+                                     : (dmgval2 >= hp / 4) ? "\82Æ\82Ä\82à\8bC\82¾\82é\82­\82È\82Á\82½\81D"
+                                                           : "\82à\82Ì\82®\82³\82È\8bC\95ª\82É\82È\82Á\82½\81D");
+#endif
             /* opposite of magical explosion */
+/*JP
             losehp(dmgval2, "anti-magic implosion", KILLED_BY_AN);
+*/
+            losehp(dmgval2, "\94½\96\82\96@\82Ì\93à\95\94\94j\97ô\82Å", KILLED_BY_AN);
         }
         break;
 
@@ -1360,23 +1821,41 @@ unsigned trflags;
 
         seetrap(trap);
         if (u.usteed)
+/*JP
             Sprintf(verbbuf, "lead %s",
+*/
+            Sprintf(verbbuf, "%s\82Æ\82Æ\82à\82É\94ò\82Ñ\8d\9e\82ñ\82¾",
                     x_monnam(u.usteed, steed_article, (char *) 0,
                              SUPPRESS_SADDLE, FALSE));
         else
+#if 0 /*JP*/
             Sprintf(verbbuf, "%s", Levitation
                                        ? (const char *) "float"
                                        : locomotion(youmonst.data, "step"));
+#else
+            Sprintf(verbbuf,"%s",
+                    jpast(Levitation ? (const char *)"\95\82\82«\82È\82ª\82ç\94ò\82Ñ\82±\82Þ"
+                          : locomotion(youmonst.data, "\93¥\82Ý\8d\9e\82Þ")));
+#endif
+/*JP
         You("%s onto a polymorph trap!", verbbuf);
+*/
+        You("\95Ï\89»\82Ìã©\82É%s\81I", verbbuf);
         if (Antimagic || Unchanging) {
             shieldeff(u.ux, u.uy);
+/*JP
             You_feel("momentarily different.");
+*/
+            You("\88ê\8fu\88á\82Á\82½\8a´\82\82ª\82µ\82½\81D");
             /* Trap did nothing; don't remove it --KAA */
         } else {
             (void) steedintrap(trap, (struct obj *) 0);
             deltrap(trap);      /* delete trap before polymorph */
             newsym(u.ux, u.uy); /* get rid of trap symbol */
+/*JP
             You_feel("a change coming over you.");
+*/
+            You("\95Ï\89»\82ª\96K\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
             polyself(0);
         }
         break;
@@ -1389,16 +1868,33 @@ unsigned trflags;
             if (!already_seen && rn2(3))
                 break;
             feeltrap(trap);
+#if 0 /*JP*/
             pline("%s %s in a pile of soil below you.",
                   already_seen ? "There is" : "You discover",
                   trap->madeby_u ? "the trigger of your mine" : "a trigger");
+#else
+            if(already_seen)
+                pline("\82±\82±\82É\82Í%s\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ª\82 \82é\81D",
+                      set_you[trap->madeby_u]);
+            else
+                You("\91«\89º\82Ì\93y\82Ì\8eR\82É%s\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ð\82Ý\82Â\82¯\82½\81D",
+                    set_you[trap->madeby_u]);
+#endif
             if (already_seen && rn2(3))
                 break;
+#if 0 /*JP*/
             pline("KAABLAMM!!!  %s %s%s off!",
                   forcebungle ? "Your inept attempt sets"
                               : "The air currents set",
                   already_seen ? a_your[trap->madeby_u] : "",
                   already_seen ? " land mine" : "it");
+#else
+            pline("\82¿\82ã\82Ç\81[\82ñ\81I\81I%s%s%s\8bN\94\9a\83X\83C\83b\83`\82ª\94­\93®\82µ\82½\81I",
+                  forcebungle ? "\95s\8aí\97p\82È\82¹\82¢\82Å"
+                              : "\8bó\8bC\82Ì\97¬\82ê\82Å",
+                  already_seen ? set_you[trap->madeby_u] : "",
+                  already_seen ? "\92n\97\8b\82Ì" : "");
+#endif
         } else {
             /* prevent landmine from killing steed, throwing you to
              * the ground, and you being affected again by the same
@@ -1409,8 +1905,13 @@ unsigned trflags;
             if (recursive_mine)
                 break;
             feeltrap(trap);
+#if 0 /*JP*/
             pline("KAABLAMM!!!  You triggered %s land mine!",
                   a_your[trap->madeby_u]);
+#else
+            pline("\82¿\82ã\82Ç\81[\82ñ\81I\81I%s\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ð\93¥\82ñ\82¾\81I",
+                  set_you[trap->madeby_u]);
+#endif
             if (u.usteed)
                 steed_mid = u.usteed->m_id;
             recursive_mine = TRUE;
@@ -1425,7 +1926,10 @@ unsigned trflags;
         if (steed_mid && saddle && !u.usteed)
             (void) keep_saddle_with_steedcorpse(steed_mid, fobj, saddle);
         newsym(u.ux, u.uy); /* update trap symbol */
+/*JP
         losehp(Maybe_Half_Phys(rnd(16)), "land mine", KILLED_BY_AN);
+*/
+        losehp(Maybe_Half_Phys(rnd(16)), "\92n\97\8b\82ð\93¥\82ñ\82Å", KILLED_BY_AN);
         /* fall recursively into the pit... */
         if ((trap = t_at(u.ux, u.uy)) != 0)
             dotrap(trap, RECURSIVETRAP);
@@ -1437,12 +1941,18 @@ unsigned trflags;
         int style = ROLL | (trap->tseen ? LAUNCH_KNOWN : 0);
 
         feeltrap(trap);
+/*JP
         pline("Click! You trigger a rolling boulder trap!");
+*/
+        pline("\83J\83`\83b\81I\82 \82È\82½\82Í\8b\90\8aâ\82Ìã©\82Ì\83X\83C\83b\83`\82ð\93¥\82ñ\82¾\81I");
         if (!launch_obj(BOULDER, trap->launch.x, trap->launch.y,
                         trap->launch2.x, trap->launch2.y, style)) {
             deltrap(trap);
             newsym(u.ux, u.uy); /* get rid of trap symbol */
+/*JP
             pline("Fortunately for you, no boulder was released.");
+*/
+            pline("\89^\82Ì\82æ\82¢\82±\82Æ\82É\8aâ\82Í\93]\82ª\82Á\82Ä\82±\82È\82©\82Á\82½\81D");
         }
         break;
     }
@@ -1471,16 +1981,26 @@ boolean noprefix;
 {
     static char tnbuf[12];
     const char *tn,
+#if 0 /*JP*/
         *tnnames[12] = { "C note",  "D flat", "D note",  "E flat",
                          "E note",  "F note", "F sharp", "G note",
                          "G sharp", "A note", "B flat",  "B note" };
+#else
+        *tnnames[12] = { "\83h",  "\83\8c\81ó", "\83\8c",  "\83~\81ó",
+                         "\83~",  "\83t\83@", "\83t\83@\81ò", "\83\",
+                         "\83\\81ò", "\83\89", "\83V\81ó",  "\83V" };
+#endif
 
     tnbuf[0] = '\0';
     tn = tnnames[trap->tnote];
+#if 0 /*JP*/
     if (!noprefix)
         Sprintf(tnbuf, "%s ",
                 (*tn == 'A' || *tn == 'E' || *tn == 'F') ? "an" : "a");
     Sprintf(eos(tnbuf), "%s", tn);
+#else
+    Sprintf(tnbuf, "%s\82Ì\89¹", tn);
+#endif
     return tnbuf;
 }
 
@@ -1522,7 +2042,10 @@ struct obj *otmp;
             && !steed->msleeping && steed->mcanmove) {
             if (sleep_monst(steed, rnd(25), -1))
                 /* no in_sight check here; you can feel it even if blind */
+/*JP
                 pline("%s suddenly falls asleep!", Monnam(steed));
+*/
+                pline("%s\82Í\82Æ\82Â\82º\82ñ\96°\82Á\82Ä\82µ\82Ü\82Á\82½\81I", Monnam(steed));
         }
         steedhit = TRUE;
         break;
@@ -1543,7 +2066,10 @@ struct obj *otmp;
             if (!can_saddle(steed) || !can_ride(steed))
                 dismount_steed(DISMOUNT_POLY);
             else
+/*JP
                 You("have to adjust yourself in the saddle on %s.",
+*/
+                You("%s\82Ì\88Æ\82Ì\8fã\82Å\8dÀ\82è\82È\82¨\82µ\82½\81D",
                     x_monnam(steed, ARTICLE_A, (char *) 0, SUPPRESS_SADDLE,
                              FALSE));
         }
@@ -1707,8 +2233,13 @@ int style;
     switch (style) {
     case ROLL | LAUNCH_UNSEEN:
         if (otyp == BOULDER) {
+#if 0 /*JP*/
             You_hear(Hallucination ? "someone bowling."
                                    : "rumbling in the distance.");
+#else
+            You_hear(Hallucination ? "\92N\82©\82ª\83{\81[\83\8a\83\93\83O\82ð\82µ\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D"
+                                   : "\89\93\82­\82Ì\83S\83\8d\83S\83\8d\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
+#endif
         }
         style &= ~LAUNCH_UNSEEN;
         goto roll;
@@ -1757,7 +2288,10 @@ int style;
         if ((mtmp = m_at(bhitpos.x, bhitpos.y)) != 0) {
             if (otyp == BOULDER && throws_rocks(mtmp->data)) {
                 if (rn2(3)) {
+/*JP
                     pline("%s snatches the boulder.", Monnam(mtmp));
+*/
+                    pline("%s\82Í\8aâ\82ð\82Â\82©\82Ý\8eæ\82Á\82½\81D", Monnam(mtmp));
                     singleobj->otrapped = 0;
                     (void) mpickobj(mtmp, singleobj);
                     used_up = TRUE;
@@ -1790,11 +2324,19 @@ int style;
                 switch (t->ttyp) {
                 case LANDMINE:
                     if (rn2(10) > 2) {
+#if 0 /*JP*/
                         pline(
                             "KAABLAMM!!!%s",
                             cansee(bhitpos.x, bhitpos.y)
                                 ? " The rolling boulder triggers a land mine."
                                 : "");
+#else
+                        pline(
+                            "\82¿\82ã\82Ç\81[\82ñ\81I\81I%s",
+                            cansee(bhitpos.x, bhitpos.y)
+                                ? "\93]\82ª\82Á\82Ä\82«\82½\8aâ\82ª\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ð\93¥\82ñ\82¾\81D"
+                                : "");
+#endif
                         deltrap(t);
                         del_engr_at(bhitpos.x, bhitpos.y);
                         place_object(singleobj, bhitpos.x, bhitpos.y);
@@ -1813,9 +2355,15 @@ int style;
                 case LEVEL_TELEP:
                 case TELEP_TRAP:
                     if (cansee(bhitpos.x, bhitpos.y))
+/*JP
                         pline("Suddenly the rolling boulder disappears!");
+*/
+                        pline("\93]\82ª\82Á\82Ä\82«\82½\8aâ\82ª\82Æ\82Â\82º\82ñ\8fÁ\82¦\82½\81I");
                     else
+/*JP
                         You_hear("a rumbling stop abruptly.");
+*/
+                        pline("\83S\83\8d\83S\83\8d\82Æ\82¢\82¤\89¹\82ª\93Ë\91R\8e~\82Ü\82Á\82½\81D");
                     singleobj->otrapped = 0;
                     if (t->ttyp == TELEP_TRAP)
                         (void) rloco(singleobj);
@@ -1842,7 +2390,10 @@ int style;
                     /* the boulder won't be used up if there is a
                        monster in the trap; stop rolling anyway */
                     x2 = bhitpos.x, y2 = bhitpos.y; /* stops here */
+/*JP
                     if (flooreffects(singleobj, x2, y2, "fall")) {
+*/
+                    if (flooreffects(singleobj, x2, y2, "\97\8e\82¿\82é")) {
                         used_up = TRUE;
                         launch_drop_spot((struct obj *) 0, 0, 0);
                     }
@@ -1852,20 +2403,32 @@ int style;
                 if (used_up || dist == -1)
                     break;
             }
+/*JP
             if (flooreffects(singleobj, bhitpos.x, bhitpos.y, "fall")) {
+*/
+            if (flooreffects(singleobj, bhitpos.x, bhitpos.y, "\97\8e\82¿\82é")) {
                 used_up = TRUE;
                 launch_drop_spot((struct obj *) 0, 0, 0);
                 break;
             }
             if (otyp == BOULDER
                 && (otmp2 = sobj_at(BOULDER, bhitpos.x, bhitpos.y)) != 0) {
+/*JP
                 const char *bmsg = " as one boulder sets another in motion";
+*/
+                const char *bmsg = "\82Ð\82Æ\82Â\82Ì\8aâ\82ª\91¼\82Ì\8aâ\82ð\93®\82©\82µ\82½\82©\82Ì\82æ\82¤\82È\81C";
 
                 if (!isok(bhitpos.x + dx, bhitpos.y + dy) || !dist
                     || IS_ROCK(levl[bhitpos.x + dx][bhitpos.y + dy].typ))
+/*JP
                     bmsg = " as one boulder hits another";
+*/
+                    bmsg = "\82Ð\82Æ\82Â\82Ì\8aâ\82ª\91¼\82Ì\8aâ\82É\93\96\82½\82Á\82½\82æ\82¤\82È";
 
+/*JP
                 You_hear("a loud crash%s!",
+*/
+                You_hear("%s\91å\82«\82È\83S\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81I",
                          cansee(bhitpos.x, bhitpos.y) ? bmsg : "");
                 obj_extract_self(otmp2);
                 /* pass off the otrapped flag to the next boulder */
@@ -1879,7 +2442,10 @@ int style;
         }
         if (otyp == BOULDER && closed_door(bhitpos.x, bhitpos.y)) {
             if (cansee(bhitpos.x, bhitpos.y))
+/*JP
                 pline_The("boulder crashes through a door.");
+*/
+                pline("\8aâ\82Í\94à\82ð\94j\89ó\82µ\82½\81D");
             levl[bhitpos.x][bhitpos.y].doormask = D_BROKEN;
             if (dist)
                 unblock_point(bhitpos.x, bhitpos.y);
@@ -2051,7 +2617,10 @@ register struct monst *mtmp;
                 if (!rn2(2)) {
                     mtmp->mtrapped = 0;
                     if (canseemon(mtmp))
+/*JP
                         pline("%s pulls free...", Monnam(mtmp));
+*/
+                        pline("%s\82Í\8f\95\82¯\8fã\82°\82ç\82ê\82½\81D", Monnam(mtmp));
                     fill_pit(mtmp->mx, mtmp->my);
                 }
             } else {
@@ -2060,13 +2629,19 @@ register struct monst *mtmp;
         } else if (metallivorous(mptr)) {
             if (trap->ttyp == BEAR_TRAP) {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s eats a bear trap!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\8cF\82Ìã©\82ð\90H\82×\82½\81I", Monnam(mtmp));
                 deltrap(trap);
                 mtmp->meating = 5;
                 mtmp->mtrapped = 0;
             } else if (trap->ttyp == SPIKED_PIT) {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s munches on some spikes!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\83g\83Q\83g\83Q\82ð\90H\82×\82½\81I", Monnam(mtmp));
                 trap->ttyp = PIT;
                 mtmp->meating = 5;
             }
@@ -2104,8 +2679,13 @@ register struct monst *mtmp;
         case ARROW_TRAP:
             if (trap->once && trap->tseen && !rn2(15)) {
                 if (in_sight && see_it)
+#if 0 /*JP:T*/
                     pline("%s triggers a trap but nothing happens.",
                           Monnam(mtmp));
+#else
+                    pline("%s\82ª\82í\82È\82ð\8bN\93®\82³\82¹\82½\82ª\89½\82à\8bN\82±\82ç\82È\82©\82Á\82½\81D",
+                          Monnam(mtmp));
+#endif
                 deltrap(trap);
                 newsym(mtmp->mx, mtmp->my);
                 break;
@@ -2123,8 +2703,13 @@ register struct monst *mtmp;
         case DART_TRAP:
             if (trap->once && trap->tseen && !rn2(15)) {
                 if (in_sight && see_it)
+#if 0 /*JP:T*/
                     pline("%s triggers a trap but nothing happens.",
                           Monnam(mtmp));
+#else
+                    pline("%s\82ª\82í\82È\82ð\8bN\93®\82³\82¹\82½\82ª\89½\82à\8bN\82±\82ç\82È\82©\82Á\82½\81D",
+                          Monnam(mtmp));
+#endif
                 deltrap(trap);
                 newsym(mtmp->mx, mtmp->my);
                 break;
@@ -2144,7 +2729,10 @@ register struct monst *mtmp;
             if (trap->once && trap->tseen && !rn2(15)) {
                 if (in_sight && see_it)
                     pline(
+/*JP
                         "A trap door above %s opens, but nothing falls out!",
+*/
+                        "%s\82Ì\8fã\82Ì\94à\82ª\8aJ\82¢\82½\82ª\81C\89½\82à\97\8e\82¿\82Ä\82±\82È\82©\82Á\82½\81I",
                         mon_nam(mtmp));
                 deltrap(trap);
                 newsym(mtmp->mx, mtmp->my);
@@ -2165,15 +2753,26 @@ register struct monst *mtmp;
             /* stepped on a squeaky board */
             if (in_sight) {
                 if (!Deaf) {
+#if 0 /*JP*/
                     pline("A board beneath %s squeaks %s loudly.",
                           mon_nam(mtmp), trapnote(trap, 0));
+#else
+                    pline("%s\82Ì\91«\8c³\82Ì\94Â\82ª\91å\82«\82­%s\82É\82«\82µ\82ñ\82¾\81D",
+                          mon_nam(mtmp), trapnote(trap, 0));
+#endif
                     seetrap(trap);
                 } else {
+/*JP
                     pline("%s stops momentarily and appears to cringe.",
+*/
+                    pline("%s\82Í\88ê\8fu\8e~\82Ü\82Á\82Ä\90g\82ð\82·\82­\82ß\82½\82æ\82¤\82¾\81D",
                           Monnam(mtmp));
                 }
             } else
+/*JP
                 You_hear("a distant %s squeak.", trapnote(trap, 1));
+*/
+                You_hear("\89\93\82­\82Å%s\82Å\82«\82µ\82Þ\89¹\82ð\95·\82¢\82½\81D", trapnote(trap, 1));
             /* wake up nearby monsters */
             wake_nearto(mtmp->mx, mtmp->my, 40);
             break;
@@ -2182,18 +2781,31 @@ register struct monst *mtmp;
                 && !is_whirly(mptr) && !unsolid(mptr)) {
                 mtmp->mtrapped = 1;
                 if (in_sight) {
+#if 0 /*JP*/
                     pline("%s is caught in %s bear trap!", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\8cF\82Ìã©\82É\82Â\82©\82Ü\82Á\82½\81I", Monnam(mtmp),
+                          set_you[trap->madeby_u]);
+#endif
                     seetrap(trap);
                 } else {
                     if (mptr == &mons[PM_OWLBEAR]
                         || mptr == &mons[PM_BUGBEAR])
+/*JP
                         You_hear("the roaring of an angry bear!");
+*/
+                        You_hear("\93{\82è\82Ì\99ô\9aK\82ð\95·\82¢\82½\81I");
                 }
             } else if (force_mintrap) {
                 if (in_sight) {
+#if 0 /*JP*/
                     pline("%s evades %s bear trap!", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\8cF\82Ìã©\82ð\82½\82­\82Ý\82É\94ð\82¯\82½\81I", Monnam(mtmp),
+                          set_you[trap->madeby_u]);
+#endif
                     seetrap(trap);
                 }
             }
@@ -2204,7 +2816,10 @@ register struct monst *mtmp;
             if (!resists_sleep(mtmp) && !breathless(mptr) && !mtmp->msleeping
                 && mtmp->mcanmove) {
                 if (sleep_monst(mtmp, rnd(25), -1) && in_sight) {
+/*JP
                     pline("%s suddenly falls asleep!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\93Ë\91R\96°\82è\82É\97\8e\82¿\82½\81I", Monnam(mtmp));
                     seetrap(trap);
                 }
             }
@@ -2217,34 +2832,58 @@ register struct monst *mtmp;
             switch (rn2(5)) {
             case 0:
                 if (in_sight)
+#if 0 /*JP*/
                     pline("%s %s on the %s!", A_gush_of_water_hits,
                           mon_nam(mtmp), mbodypart(mtmp, HEAD));
+#else
+                    pline("\90\85\82ª\95¬\8fo\82µ\82Ä\81C%s\82Ì%s\82É\96½\92\86\82µ\82½\81I", 
+                          mon_nam(mtmp), mbodypart(mtmp, HEAD));
+#endif
                 target = which_armor(mtmp, W_ARMH);
                 (void) water_damage(target, helm_simple_name(target), TRUE);
                 break;
             case 1:
                 if (in_sight)
+#if 0 /*JP*/
                     pline("%s %s's left %s!", A_gush_of_water_hits,
                           mon_nam(mtmp), mbodypart(mtmp, ARM));
+#else
+                    pline("\90\85\82ª\95¬\8fo\82µ\82Ä\81C%s\82Ì\8d¶%s\82É\96½\92\86\82µ\82½\81I",
+                          mon_nam(mtmp), mbodypart(mtmp, ARM));
+#endif
                 target = which_armor(mtmp, W_ARMS);
+/*JP
                 if (water_damage(target, "shield", TRUE) != ER_NOTHING)
+*/
+                if (water_damage(target, "\8f\82", TRUE) != ER_NOTHING)
                     break;
                 target = MON_WEP(mtmp);
                 if (target && bimanual(target))
                     (void) water_damage(target, 0, TRUE);
             glovecheck:
                 target = which_armor(mtmp, W_ARMG);
+/*JP
                 (void) water_damage(target, "gauntlets", TRUE);
+*/
+                (void) water_damage(target, "\8f¬\8eè", TRUE);
                 break;
             case 2:
                 if (in_sight)
+#if 0 /*JP*/
                     pline("%s %s's right %s!", A_gush_of_water_hits,
                           mon_nam(mtmp), mbodypart(mtmp, ARM));
+#else
+                    pline("\90\85\82ª\95¬\8fo\82µ\82Ä\81C%s\82Ì\89E%s\82É\96½\92\86\82µ\82½\81I",
+                          mon_nam(mtmp), mbodypart(mtmp, ARM));
+#endif
                 (void) water_damage(MON_WEP(mtmp), 0, TRUE);
                 goto glovecheck;
             default:
                 if (in_sight)
+/*JP
                     pline("%s %s!", A_gush_of_water_hits, mon_nam(mtmp));
+*/
+                    pline("\90\85\82ª\95¬\8fo\82µ\82Ä\81C%s\82É\96½\92\86\82µ\82½\81I", mon_nam(mtmp));
                 for (otmp = mtmp->minvent; otmp; otmp = otmp->nobj)
                     if (otmp->lamplit
                         && (otmp->owornmask & (W_WEP | W_SWAPWEP)) == 0)
@@ -2253,16 +2892,28 @@ register struct monst *mtmp;
                     (void) water_damage(target, cloak_simple_name(target),
                                         TRUE);
                 else if ((target = which_armor(mtmp, W_ARM)) != 0)
+/*JP
                     (void) water_damage(target, "armor", TRUE);
+*/
+                    (void) water_damage(target, "\8aZ", TRUE);
                 else if ((target = which_armor(mtmp, W_ARMU)) != 0)
+/*JP
                     (void) water_damage(target, "shirt", TRUE);
+*/
+                    (void) water_damage(target, "\83V\83\83\83c", TRUE);
             }
 
             if (mptr == &mons[PM_IRON_GOLEM]) {
                 if (in_sight)
+/*JP
                     pline("%s falls to pieces!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82­\82¾\82¯\82¿\82Á\82½\81I", Monnam(mtmp));
                 else if (mtmp->mtame)
+/*JP
                     pline("May %s rust in peace.", mon_nam(mtmp));
+*/
+                    pline("%s\82æ\81C\88À\82ç\82©\82É\8eK\82Ñ\82ñ\8e\96\82ð\81D", mon_nam(mtmp));
                 mondied(mtmp);
                 if (mtmp->mhp <= 0)
                     trapkilled = TRUE;
@@ -2274,16 +2925,29 @@ register struct monst *mtmp;
         case FIRE_TRAP:
         mfiretrap:
             if (in_sight)
+#if 0 /*JP*/
                 pline("A %s erupts from the %s under %s!", tower_of_flame,
                       surface(mtmp->mx, mtmp->my), mon_nam(mtmp));
+#else
+                pline("\89Î\92\8c\82ª%s\82Ì\91«\8c³\82Ì%s\82©\82ç\97§\82¿\82Ì\82Ú\82Á\82½\81I",
+                      mon_nam(mtmp), surface(mtmp->mx,mtmp->my));
+#endif
             else if (see_it) /* evidently `mtmp' is invisible */
+#if 0 /*JP*/
                 You_see("a %s erupt from the %s!", tower_of_flame,
                         surface(mtmp->mx, mtmp->my));
+#else
+                You("\89Î\92\8c\82ª%s\82©\82ç\90\82\82é\82Ì\82ð\8c©\82½\81I",
+                    surface(mtmp->mx,mtmp->my));
+#endif
 
             if (resists_fire(mtmp)) {
                 if (in_sight) {
                     shieldeff(mtmp->mx, mtmp->my);
+/*JP
                     pline("%s is uninjured.", Monnam(mtmp));
+*/
+                    pline("\82ª\81C%s\82Í\8f\9d\82Â\82©\82È\82¢\81D", Monnam(mtmp));
                 }
             } else {
                 int num = d(2, 4), alt;
@@ -2326,7 +2990,10 @@ register struct monst *mtmp;
             }
             if (burn_floor_objects(mtmp->mx, mtmp->my, see_it, FALSE)
                 && !see_it && distu(mtmp->mx, mtmp->my) <= 3 * 3)
+/*JP
                 You("smell smoke.");
+*/
+                pline("\89\8c\82Ì\93õ\82¢\82ª\82µ\82½\81D");
             if (is_ice(mtmp->mx, mtmp->my))
                 melt_ice(mtmp->mx, mtmp->my, (char *) 0);
             if (see_it)
@@ -2334,7 +3001,10 @@ register struct monst *mtmp;
             break;
         case PIT:
         case SPIKED_PIT:
+/*JP
             fallverb = "falls";
+*/
+            fallverb = "\97\8e\82¿\82é";
             if (is_flyer(mptr) || is_floater(mptr)
                 || (mtmp->wormno && count_wsegs(mtmp) > 5)
                 || is_clinger(mptr)) {
@@ -2342,25 +3012,43 @@ register struct monst *mtmp;
                     /* openfallingtrap; not inescapable here */
                     if (in_sight) {
                         seetrap(trap);
+/*JP
                         pline("%s doesn't fall into the pit.", Monnam(mtmp));
+*/
+                        pline("%s\82Í\97\8e\82µ\8c\8a\82É\97\8e\82¿\82È\82©\82Á\82½\81D", Monnam(mtmp));
                     }
                     break; /* inescapable = FALSE; */
                 }
                 if (!inescapable)
                     break;               /* avoids trap */
+#if 0 /*JP*/
                 fallverb = "is dragged"; /* sokoban pit */
+#else
+                fallverb = "\82¸\82è\97\8e\82¿\82é"; /* sokoban pit */
+#endif
             }
             if (!passes_walls(mptr))
                 mtmp->mtrapped = 1;
             if (in_sight) {
+#if 0 /*JP*/
                 pline("%s %s into %s pit!", Monnam(mtmp), fallverb,
                       a_your[trap->madeby_u]);
+#else
+                pline("%s\82Í%s\97\8e\82µ\8c\8a\82É%s\81I", Monnam(mtmp),
+                      set_you[trap->madeby_u], jpast(fallverb));
+#endif
                 if (mptr == &mons[PM_PIT_VIPER]
                     || mptr == &mons[PM_PIT_FIEND])
+/*JP
                     pline("How pitiful.  Isn't that the pits?");
+*/
+                    pline("\82±\82Ì\97\8e\82µ\8c\8a\82Í\82¢\82¢\8ed\8e\96\82ð\82µ\82Ä\82¢\82é\81D");
                 seetrap(trap);
             }
+/*JP
             mselftouch(mtmp, "Falling, ", FALSE);
+*/
+            mselftouch(mtmp, "\97\8e\89º\92\86\81C", FALSE);
             if (mtmp->mhp <= 0 || thitm(0, mtmp, (struct obj *) 0,
                                         rnd((tt == PIT) ? 6 : 10), FALSE))
                 trapkilled = TRUE;
@@ -2381,17 +3069,26 @@ register struct monst *mtmp;
                         seetrap(trap);
                         if (tt == TRAPDOOR)
                             pline(
+/*JP
                             "A trap door opens, but %s doesn't fall through.",
+*/
+                            "\97\8e\82µ\94à\82ª\8aJ\82¢\82½\82ª\81C%s\82Í\97\8e\82¿\82È\82©\82Á\82½\81D",
                                   mon_nam(mtmp));
                         else /* (tt == HOLE) */
+/*JP
                             pline("%s doesn't fall through the hole.",
+*/
+                            pline("%s\82Í\8c\8a\82É\97\8e\82¿\82È\82©\82Á\82½\81D",
                                   Monnam(mtmp));
                     }
                     break; /* inescapable = FALSE; */
                 }
                 if (inescapable) { /* sokoban hole */
                     if (in_sight) {
+/*JP
                         pline("%s seems to be yanked down!", Monnam(mtmp));
+*/
+                        pline("%s\82Í\88ø\82«\97\8e\82³\82ê\82½\82æ\82¤\82¾\81I", Monnam(mtmp));
                         /* suppress message in mlevel_tele_trap() */
                         in_sight = FALSE;
                         seetrap(trap);
@@ -2420,18 +3117,31 @@ register struct monst *mtmp;
                 if (acidic(mptr) || mptr == &mons[PM_GELATINOUS_CUBE]
                     || mptr == &mons[PM_FIRE_ELEMENTAL]) {
                     if (in_sight)
+#if 0 /*JP*/
                         pline("%s %s %s spider web!", Monnam(mtmp),
                               (mptr == &mons[PM_FIRE_ELEMENTAL])
                                   ? "burns"
                                   : "dissolves",
                               a_your[trap->madeby_u]);
+#else
+                        pline("%s%s\82­\82à\82Ì\91\83\82ð%s\81I",
+                              Monnam(mtmp),
+                              web_you[trap->madeby_u],
+                              (mptr == &mons[PM_FIRE_ELEMENTAL]) ?
+                              "\8fÄ\82¢\82½" : "\82±\82È\82²\82È\82É\82µ\82½");
+#endif
                     deltrap(trap);
                     newsym(mtmp->mx, mtmp->my);
                     break;
                 }
                 if (in_sight) {
+#if 0 /*JP*/
                     pline("%s flows through %s spider web.", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\82­\82à\82Ì\91\83\82ð\82·\82é\82è\82Æ\92Ê\82è\94²\82¯\82½\81D", Monnam(mtmp),
+                          web_you[trap->madeby_u]);
+#endif
                     seetrap(trap);
                 }
                 break;
@@ -2441,7 +3151,10 @@ register struct monst *mtmp;
             case PM_OWLBEAR: /* Eric Backus */
             case PM_BUGBEAR:
                 if (!in_sight) {
+/*JP
                     You_hear("the roaring of a confused bear!");
+*/
+                    You_hear("\8d¬\97\90\82Ì\99ô\9aK\82ð\95·\82¢\82½\81I");
                     mtmp->mtrapped = 1;
                     break;
                 }
@@ -2453,8 +3166,13 @@ register struct monst *mtmp;
                     || (mtmp->wormno && count_wsegs(mtmp) > 5)) {
                     tear_web = TRUE;
                 } else if (in_sight) {
+#if 0 /*JP*/
                     pline("%s is caught in %s spider web.", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\82­\82à\82Ì\91\83\82É\82Â\82©\82Ü\82Á\82½\81D", Monnam(mtmp),
+                          web_you[trap->madeby_u]);
+#endif
                     seetrap(trap);
                 }
                 mtmp->mtrapped = tear_web ? 0 : 1;
@@ -2478,14 +3196,24 @@ register struct monst *mtmp;
             }
             if (tear_web) {
                 if (in_sight)
+#if 0 /*JP*/
                     pline("%s tears through %s spider web!", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\82­\82à\82Ì\91\83\82ð\88ø\82«\97ô\82¢\82½\81I", Monnam(mtmp),
+                          web_you[trap->madeby_u]);
+#endif
                 deltrap(trap);
                 newsym(mtmp->mx, mtmp->my);
             } else if (force_mintrap && !mtmp->mtrapped) {
                 if (in_sight) {
+#if 0 /*JP*/
                     pline("%s avoids %s spider web!", Monnam(mtmp),
                           a_your[trap->madeby_u]);
+#else
+                    pline("%s\82Í%s\82­\82à\82Ì\91\83\82ð\94ð\82¯\82½\81I", Monnam(mtmp),
+                          web_you[trap->madeby_u]);
+#endif
                     seetrap(trap);
                 }
             }
@@ -2505,7 +3233,10 @@ register struct monst *mtmp;
                     mtmp->mspec_used += d(2, 2);
                     if (in_sight) {
                         seetrap(trap);
+/*JP
                         pline("%s seems lethargic.", Monnam(mtmp));
+*/
+                        pline("%s\88ê\8fu\96³\8bC\97Í\8a´\82ð\8a´\82\82½\81D", Monnam(mtmp));
                     }
                 }
             } else { /* take some damage */
@@ -2528,7 +3259,10 @@ register struct monst *mtmp;
                 if ((mtmp->mhp -= dmgval2) <= 0)
                     monkilled(mtmp,
                               in_sight
+/*JP
                                   ? "compression from an anti-magic field"
+*/
+                                  ? "\94½\96\82\96@\8bó\8aÔ\82Ì\88³\8fk"
                                   : (const char *) 0,
                               -AD_MAGM);
                 if (mtmp->mhp <= 0)
@@ -2544,7 +3278,10 @@ register struct monst *mtmp;
                 boolean already_seen = trap->tseen;
 
                 if (in_sight && !already_seen) {
+/*JP
                     pline("A trigger appears in a pile of soil below %s.",
+*/
+                    pline("%s\82Ì\91«\8c³\82Ì\93y\82Ì\8eR\82É\8bN\94\9a\83X\83C\83b\83`\82ª\8c»\82í\82ê\82½\81D",
                           mon_nam(mtmp));
                     seetrap(trap);
                 }
@@ -2552,16 +3289,28 @@ register struct monst *mtmp;
                     break;
                 if (in_sight) {
                     newsym(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
                     pline_The("air currents set %s off!",
                               already_seen ? "a land mine" : "it");
+#else
+                    pline("\8bó\8bC\82Ì\97¬\82ê\82Å\83X\83C\83b\83`\82ª\93ü\82Á\82½\81I");
+#endif
                 }
             } else if (in_sight) {
                 newsym(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
                 pline("KAABLAMM!!!  %s triggers %s land mine!", Monnam(mtmp),
                       a_your[trap->madeby_u]);
+#else
+                pline("\82¿\82ã\82Ç\81[\82ñ\81I\81I%s\82Í%s\92n\97\8b\82Ì\8bN\94\9a\83X\83C\83b\83`\82ð\93¥\82ñ\82¾\81I", Monnam(mtmp),
+                      set_you[trap->madeby_u]);
+#endif
             }
             if (!in_sight)
+/*JP
                 pline("Kaablamm!  You hear an explosion in the distance!");
+*/
+                pline("\82¿\82ã\82Ç\81[\82ñ\81I\82 \82È\82½\82Í\89\93\95û\82Ì\94\9a\94­\89¹\82ð\95·\82¢\82½\81I");
             blow_up_landmine(trap);
             /* explosion might have destroyed a drawbridge; don't
                dish out more damage if monster is already dead */
@@ -2579,7 +3328,10 @@ register struct monst *mtmp;
                 trapkilled = TRUE;
             if (unconscious()) {
                 multi = -1;
+/*JP
                 nomovemsg = "The explosion awakens you!";
+*/
+                nomovemsg = "\94\9a\94­\82Å\82 \82È\82½\82Í\8bN\82«\82½\81I";
             }
             break;
         case POLY_TRAP:
@@ -2599,8 +3351,13 @@ register struct monst *mtmp;
 
                 newsym(mtmp->mx, mtmp->my);
                 if (in_sight)
+#if 0 /*JP*/
                     pline("Click! %s triggers %s.", Monnam(mtmp),
                           trap->tseen ? "a rolling boulder trap" : something);
+#else
+                    pline("\83J\83`\83b\81I%s\82Í%s\82Ì\83X\83C\83b\83`\82ð\93¥\82ñ\82¾\81I", Monnam(mtmp),
+                          trap->tseen ? "\97\8e\8aâ\82Ìã©" : "\89½\82©");
+#endif
                 if (launch_obj(BOULDER, trap->launch.x, trap->launch.y,
                                trap->launch2.x, trap->launch2.y, style)) {
                     if (in_sight)
@@ -2616,11 +3373,19 @@ register struct monst *mtmp;
         case VIBRATING_SQUARE:
             if (see_it && !Blind) {
                 if (in_sight)
+#if 0 /*JP*/
                     pline("You see a strange vibration beneath %s %s.",
                           s_suffix(mon_nam(mtmp)),
                           makeplural(mbodypart(mtmp, FOOT)));
+#else
+                    pline("%s\82Ì%s\82ª\95s\8ev\8bc\82É\90U\93®\82µ\82Ä\82¢\82é\82Ì\82ð\8c©\82½\81D",
+                          mon_nam(mtmp), mbodypart(mtmp, FOOT));
+#endif
                 else
+/*JP
                     pline("You see the ground vibrate in the distance.");
+*/
+                    pline("\89\93\82­\82Å\92n\96Ê\82ª\90U\93®\82µ\82Ä\82¢\82é\82Ì\82ð\8c©\82½\81D");
                 seetrap(trap);
             }
             break;
@@ -2643,7 +3408,10 @@ const char *str;
         return;
     if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))
         return;
+/*JP
     You("turn to stone...");
+*/
+    You("\90Î\82É\82È\82Á\82½\81D\81D\81D");
     killer.format = KILLED_BY;
     if (str != killer.name)
         Strcpy(killer.name, str ? str : "");
@@ -2667,7 +3435,10 @@ boolean byplayer;
     mon_adjust_speed(mon, -3, (struct obj *) 0);
 
     if (cansee(mon->mx, mon->my))
+/*JP
         pline("%s turns to stone.", Monnam(mon));
+*/
+        pline("%s\82Í\90Î\82É\82È\82Á\82½\81D", Monnam(mon));
     if (byplayer) {
         stoned = TRUE;
         xkilled(mon, 0);
@@ -2683,8 +3454,14 @@ const char *arg;
 
     if (uwep && uwep->otyp == CORPSE && touch_petrifies(&mons[uwep->corpsenm])
         && !Stone_resistance) {
+/*JP
         pline("%s touch the %s corpse.", arg, mons[uwep->corpsenm].mname);
+*/
+        pline("%s%s\82Ì\8e\80\91Ì\82É\90G\82Á\82½\81D", arg, mons[uwep->corpsenm].mname);
+/*JP
         Sprintf(kbuf, "%s corpse", an(mons[uwep->corpsenm].mname));
+*/
+        Sprintf(kbuf, "%s\82Ì\8e\80\91Ì\82Å", mons[uwep->corpsenm].mname);
         instapetrify(kbuf);
         /* life-saved; unwield the corpse if we can't handle it */
         if (!uarmg && !Stone_resistance)
@@ -2694,8 +3471,14 @@ const char *arg;
        allow two-weapon combat when either weapon is a corpse] */
     if (u.twoweap && uswapwep && uswapwep->otyp == CORPSE
         && touch_petrifies(&mons[uswapwep->corpsenm]) && !Stone_resistance) {
+/*JP
         pline("%s touch the %s corpse.", arg, mons[uswapwep->corpsenm].mname);
+*/
+        pline("%s%s\82Ì\8e\80\91Ì\82É\90G\82Á\82½\81D", arg, mons[uswapwep->corpsenm].mname);
+/*JP
         Sprintf(kbuf, "%s corpse", an(mons[uswapwep->corpsenm].mname));
+*/
+        Sprintf(kbuf, "%s\82Ì\8e\80\91Ì\82Å", mons[uswapwep->corpsenm].mname);
         instapetrify(kbuf);
         /* life-saved; unwield the corpse */
         if (!uarmg && !Stone_resistance)
@@ -2714,9 +3497,15 @@ boolean byplayer;
     if (mwep && mwep->otyp == CORPSE && touch_petrifies(&mons[mwep->corpsenm])
         && !resists_ston(mon)) {
         if (cansee(mon->mx, mon->my)) {
+#if 0 /*JP*/
             pline("%s%s touches %s.", arg ? arg : "",
                   arg ? mon_nam(mon) : Monnam(mon),
                   corpse_xname(mwep, (const char *) 0, CXN_PFX_THE));
+#else
+            pline("%s%s\82Í%s\82Ì\8e\80\91Ì\82É\90G\82Á\82½\81D", arg ? arg : "",
+                  arg ? mon_nam(mon) : Monnam(mon),
+                  corpse_xname(mwep, (const char *) 0, CXN_PFX_THE));
+#endif
         }
         minstapetrify(mon, byplayer);
         /* if life-saved, might not be able to continue wielding */
@@ -2732,39 +3521,73 @@ float_up()
     if (u.utrap) {
         if (u.utraptype == TT_PIT) {
             u.utrap = 0;
+/*JP
             You("float up, out of the pit!");
+*/
+            You("\95\82\82«\8fã\82ª\82Á\82Ä\81C\97\8e\82µ\8c\8a\82©\82ç\8fo\82½\81I");
             vision_full_recalc = 1; /* vision limits change */
             fill_pit(u.ux, u.uy);
         } else if (u.utraptype == TT_INFLOOR) {
+/*JP
             Your("body pulls upward, but your %s are still stuck.",
+*/
+            Your("\91Ì\82Í\88ø\82«\8fã\82°\82ç\82ê\82½\81D\82µ\82©\82µ%s\82Í\82Ü\82¾\82Í\82Ü\82Á\82Ä\82¢\82é\81D",
                  makeplural(body_part(LEG)));
         } else {
+/*JP
             You("float up, only your %s is still stuck.", body_part(LEG));
+*/
+            You("\95\82\82«\8fo\82½\81D%s\82¾\82¯\82ª\82Í\82Ü\82Á\82Ä\82¢\82é\81D", body_part(LEG));
         }
 #if 0
     } else if (Is_waterlevel(&u.uz)) {
+/*JP
         pline("It feels as though you've lost some weight.");
+*/
+        You("\82Ü\82é\82Å\91Ì\8fd\82ª\8c¸\82Á\82½\82æ\82¤\82É\8a´\82\82½\81D");
 #endif
     } else if (u.uinwater) {
         spoteffects(TRUE);
     } else if (u.uswallow) {
+#if 0 /*JP*/
         You(is_animal(u.ustuck->data) ? "float away from the %s."
                                       : "spiral up into %s.",
             is_animal(u.ustuck->data) ? surface(u.ux, u.uy)
                                       : mon_nam(u.ustuck));
+#else
+        You(is_animal(u.ustuck->data) ? "%s\82Ì\92\86\82Å\95\82\82¢\82½\81D"
+                                      : "%s\82Ì\92\86\82Å\82®\82é\82®\82é\89ñ\93]\82µ\82½\81D",
+            is_animal(u.ustuck->data) ? surface(u.ux, u.uy)
+                                      : mon_nam(u.ustuck));
+#endif
     } else if (Hallucination) {
+/*JP
         pline("Up, up, and awaaaay!  You're walking on air!");
+*/
+        pline("\8fã\82ê\81C\8fã\82ê\81C\8fã\82ê\82¥\82¥\82¥\82¥\81I\82 \82È\82½\82Í\8bó\92\86\82ð\95à\82¢\82Ä\82¢\82é\81I");
     } else if (Is_airlevel(&u.uz)) {
+/*JP
         You("gain control over your movements.");
+*/
+        You("\82¤\82Ü\82­\95à\82¯\82é\82æ\82¤\82É\82È\82Á\82½\81D");
     } else {
+/*JP
         You("start to float in the air!");
+*/
+        You("\8bó\92\86\82É\95\82\82«\82Í\82\82ß\82½\81I");
     }
     if (u.usteed && !is_floater(u.usteed->data)
         && !is_flyer(u.usteed->data)) {
         if (Lev_at_will) {
+/*JP
             pline("%s magically floats up!", Monnam(u.usteed));
+*/
+            pline("%s\82Í\96\82\96@\82Ì\97Í\82Å\95\82\82¢\82½\81I", Monnam(u.usteed));
         } else {
+/*JP
             You("cannot stay on %s.", mon_nam(u.usteed));
+*/
+            You("%s\82Ì\8fã\82É\8fæ\82Á\82Ä\82¢\82ç\82ê\82È\82¢\81D", mon_nam(u.usteed));
             dismount_steed(DISMOUNT_GENERIC);
         }
     }
@@ -2784,7 +3607,10 @@ int x, y;
     if ((t = t_at(x, y)) && ((t->ttyp == PIT) || (t->ttyp == SPIKED_PIT))
         && (otmp = sobj_at(BOULDER, x, y))) {
         obj_extract_self(otmp);
+/*JP
         (void) flooreffects(otmp, x, y, "settle");
+*/
+        (void) flooreffects(otmp, x, y, "\82Í\82Ü\82é");
     }
 }
 
@@ -2817,8 +3643,12 @@ long hmask, emask; /* might cancel timeout */
         }
     }
     if (u.uswallow) {
+#if 0 /*JP*/
         You("float down, but you are still %s.",
             is_animal(u.ustuck->data) ? "swallowed" : "engulfed");
+#else
+        You("\92\85\92n\82µ\82½\82ª\81C\82Ü\82¾\88ù\82Ý\8d\9e\82Ü\82ê\82½\82Ü\82Ü\82¾\81D");
+#endif
         return 1;
     }
 
@@ -2839,11 +3669,21 @@ long hmask, emask; /* might cancel timeout */
     if (!Flying) {
         if (!u.uswallow && u.ustuck) {
             if (sticks(youmonst.data))
+#if 0 /*JP:T*/
                 You("aren't able to maintain your hold on %s.",
                     mon_nam(u.ustuck));
+#else
+                You("%s\82ð\82Â\82©\82Ü\82¦\91±\82¯\82Ä\82¢\82ç\82ê\82È\82­\82È\82Á\82½\81D",
+                    mon_nam(u.ustuck));
+#endif
             else
+#if 0 /*JP:T*/
                 pline("Startled, %s can no longer hold you!",
                       mon_nam(u.ustuck));
+#else
+                pline("%s\82Í\8bÁ\82¢\82Ä\82 \82È\82½\82ð\95ú\82µ\82Ä\82µ\82Ü\82Á\82½\81I",
+                      mon_nam(u.ustuck));
+#endif
             u.ustuck = 0;
         }
         /* kludge alert:
@@ -2865,9 +3705,15 @@ long hmask, emask; /* might cancel timeout */
     if (!trap) {
         trap = t_at(u.ux, u.uy);
         if (Is_airlevel(&u.uz)) {
+/*JP
             You("begin to tumble in place.");
+*/
+            You("\82»\82Ì\8fê\82Å\82Ð\82Á\82­\82è\95Ô\82è\82Í\82\82ß\82½\81D");
         } else if (Is_waterlevel(&u.uz) && !no_msg) {
+/*JP
             You_feel("heavier.");
+*/
+            You("\8fd\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         /* u.uinwater msgs already in spoteffects()/drown() */
         } else if (!u.uinwater && !no_msg) {
             if (!(emask & W_SADDLE)) {
@@ -2878,13 +3724,25 @@ long hmask, emask; /* might cancel timeout */
                      * once levitation ceases knocks you off your feet.
                      */
                     if (Hallucination)
+/*JP
                         pline("Bummer!  You've crashed.");
+*/
+                        pline("\82â\82ß\82Ä\82¥\81I\82 \82È\82½\82Í\92@\82«\82Â\82¯\82ç\82ê\82½\81D");
                     else
+/*JP
                         You("fall over.");
+*/
+                        You("\82Â\82Ü\82Ã\82¢\82½\81D");
+/*JP
                     losehp(rnd(2), "dangerous winds", KILLED_BY);
+*/
+                    losehp(rnd(2), "\8aë\8c¯\82È\95\97\82Å", KILLED_BY);
                     if (u.usteed)
                         dismount_steed(DISMOUNT_FELL);
+/*JP
                     selftouch("As you fall, you");
+*/
+                    selftouch("\97\8e\82¿\82È\82ª\82ç\81C\82 \82È\82½\82Í");
                 } else if (u.usteed && (is_floater(u.usteed->data)
                                         || is_flyer(u.usteed->data))) {
                     You("settle more firmly in the saddle.");
@@ -2894,7 +3752,10 @@ long hmask, emask; /* might cancel timeout */
                              ? "splashed down"
                              : "hit the ground");
                 } else {
+/*JP
                     You("float gently to the %s.", surface(u.ux, u.uy));
+*/
+                    You("\90Ã\82©\82É%s\82Ü\82Å\92H\82è\82Â\82¢\82½\81D", surface(u.ux, u.uy));
                 }
             }
         }
@@ -2979,16 +3840,30 @@ struct obj *box; /* null for floor trap */
      */
 
     if ((box && !carried(box)) ? is_pool(box->ox, box->oy) : Underwater) {
+/*JP
         pline("A cascade of steamy bubbles erupts from %s!",
+*/
+        pline("\8fö\8bC\82Ì\96A\82ª%s\82©\82ç\82µ\82ã\81[\82Á\82Æ\94­\90\82µ\82½\81I",
               the(box ? xname(box) : surface(u.ux, u.uy)));
         if (Fire_resistance)
+/*JP
             You("are uninjured.");
+*/
+            You("\8f\9d\82Â\82©\82È\82¢\81D");
         else
+/*JP
             losehp(rnd(3), "boiling water", KILLED_BY);
+*/
+            losehp(rnd(3), "\95¦\93«\82µ\82½\90\85\82Å", KILLED_BY);
         return;
     }
+#if 0 /*JP*/
     pline("A %s %s from %s!", tower_of_flame, box ? "bursts" : "erupts",
           the(box ? xname(box) : surface(u.ux, u.uy)));
+#else
+    pline("\89Î\92\8c\82ª%s\82©\82ç%s\81I", box ? xname(box) : surface(u.ux,u.uy),
+          box ? "\90\81\82«\8fo\82µ\82½" : "\97§\82¿\82Ì\82Ú\82Á\82½");
+#endif
     if (Fire_resistance) {
         shieldeff(u.ux, u.uy);
         num = rn2(2);
@@ -3021,9 +3896,16 @@ struct obj *box; /* null for floor trap */
             u.uhpmax -= rn2(min(u.uhpmax, num + 1)), context.botl = 1;
     }
     if (!num)
+/*JP
         You("are uninjured.");
+*/
+        You("\8f\9d\82Â\82©\82È\82¢\81D");
     else
+#if 0 /*JP*/
         losehp(num, tower_of_flame, KILLED_BY_AN); /* fire damage */
+#else
+        losehp(num, "\89Î\92\8c\82Å", KILLED_BY_AN); /* fire damage */
+#endif
     burn_away_slime();
 
     if (burnarmor(&youmonst) || rn2(3)) {
@@ -3032,7 +3914,10 @@ struct obj *box; /* null for floor trap */
         destroy_item(POTION_CLASS, AD_FIRE);
     }
     if (!box && burn_floor_objects(u.ux, u.uy, see_it, TRUE) && !see_it)
+/*JP
         You("smell paper burning.");
+*/
+        You("\8e\86\82Ì\82±\82°\82é\93õ\82¢\82ª\82µ\82½\81D");
     if (is_ice(u.ux, u.uy))
         melt_ice(u.ux, u.uy, (char *) 0);
 }
@@ -3049,14 +3934,23 @@ domagictrap()
         register int cnt = rnd(4);
 
         if (!resists_blnd(&youmonst)) {
+/*JP
             You("are momentarily blinded by a flash of light!");
+*/
+            You("\82Ü\82Î\82ä\82¢\8cõ\82Å\88ê\8fu\96Ú\82ª\82­\82ç\82ñ\82¾\81I");
             make_blinded((long) rn1(5, 10), FALSE);
             if (!Blind)
                 Your1(vision_clears);
         } else if (!Blind) {
+/*JP
             You_see("a flash of light!");
+*/
+            You("\82Ü\82Î\82ä\82¢\8cõ\82ð\97\81\82Ñ\82½\81I");
         } else
+/*JP
             You_hear("a deafening roar!");
+*/
+            You_hear("\8e¨\82ð\82Â\82ñ\82´\82­\82æ\82¤\82È\99ô\9aK\82ð\95·\82¢\82½\81I");
         incr_itimeout(&HDeaf, rn1(20, 30));
         while (cnt--)
             (void) makemon((struct permonst *) 0, u.ux, u.uy, NO_MM_FLAGS);
@@ -3072,35 +3966,67 @@ domagictrap()
 
         /* odd feelings */
         case 13:
+/*JP
             pline("A shiver runs up and down your %s!", body_part(SPINE));
+*/
+            pline("\90k\82¦\82ª\82 \82È\82½\82Ì%s\82ð\91\96\82Á\82½\81I", body_part(SPINE));
             break;
         case 14:
+#if 0 /*JP*/
             You_hear(Hallucination ? "the moon howling at you."
                                    : "distant howling.");
+#else
+            You_hear(Hallucination ? "\8c\8e\82ª\96i\82¦\82Ä\82¢\82é\82Ì\82ð\95·\82¢\82½\81D"
+                                   : "\89\93\95û\82Ì\89\93\96i\82ð\95·\82¢\82½\81D");
+#endif
             break;
         case 15:
             if (on_level(&u.uz, &qstart_level))
+#if 0 /*JP*/
                 You_feel(
                     "%slike the prodigal son.",
                     (flags.female || (Upolyd && is_neuter(youmonst.data)))
                         ? "oddly "
                         : "");
+#else /*JP \90¹\8f\91\82Ì\83\8b\83J\93`\82æ\82è */
+                You("%s\95ú\93 \91§\8eq\82Ì\82æ\82¤\82É\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D",
+                    (flags.female || (Upolyd && is_neuter(youmonst.data)))
+                    ? "\88Ù\8fí\82É"
+                    : "");
+#endif
             else
+#if 0 /*JP*/
                 You("suddenly yearn for %s.",
                     Hallucination
                         ? "Cleveland"
                         : (In_quest(&u.uz) || at_dgn_entrance("The Quest"))
                               ? "your nearby homeland"
                               : "your distant homeland");
+#else
+                You("\93Ë\91R%s\82ª\97ö\82µ\82­\82È\82Á\82½\81D",
+                    Hallucination ? "\90Â\90X"
+                        : (In_quest(&u.uz) || at_dgn_entrance("\83N\83G\83X\83g"))
+                            ? "\82·\82®\82»\82±\82É\82 \82é\8cÌ\8b½"
+                            : "\82Í\82é\82©\82©\82È\82½\82Ì\8cÌ\8b½");
+#endif
             break;
         case 16:
+/*JP
             Your("pack shakes violently!");
+*/
+            Your("\91Ü\82Í\8c\83\82µ\82­\97h\82ê\82½\81I");
             break;
         case 17:
+/*JP
             You(Hallucination ? "smell hamburgers." : "smell charred flesh.");
+*/
+            You(Hallucination ? "\83n\83\93\83o\81[\83K\81[\82Ì\93õ\82¢\82ª\82µ\82½\81D" : "\8d\95\8fÅ\82°\82Ì\93÷\82Ì\93õ\82¢\82ª\82µ\82½\81D");
             break;
         case 18:
+/*JP
             You_feel("tired.");
+*/
+            You("\94æ\82ê\82ð\8a´\82\82½\81D");
             break;
 
         /* very occasionally something nice happens. */
@@ -3178,10 +4104,16 @@ xchar x, y;
             return FALSE;
         /* Container is burnt up - dump contents out */
         if (in_sight)
+/*JP
             pline("%s catches fire and burns.", Yname2(obj));
+*/
+            pline("%s\82Í\89Î\82ª\82Â\82¢\82Ä\94R\82¦\82½\81D", Yname2(obj));
         if (Has_contents(obj)) {
             if (in_sight)
+/*JP
                 pline("Its contents fall out.");
+*/
+                pline("\92\86\90g\82ª\8fo\82Ä\82«\82½\81D");
             for (otmp = obj->cobj; otmp; otmp = ncobj) {
                 ncobj = otmp->nobj;
                 obj_extract_self(otmp);
@@ -3204,21 +4136,34 @@ xchar x, y;
             return FALSE;
         if (obj->otyp == SPE_BOOK_OF_THE_DEAD) {
             if (in_sight)
+/*JP
                 pline("Smoke rises from %s.", the(xname(obj)));
+*/
+                pline("%s\82©\82ç\89\8c\82ª\82 \82ª\82Á\82½\81D", the(xname(obj)));
             return FALSE;
         }
         dindx = (obj->oclass == SCROLL_CLASS) ? 3 : 4;
         if (in_sight)
+#if 0 /*JP*/
             pline("%s %s.", Yname2(obj),
                   destroy_strings[dindx][(obj->quan > 1L)]);
+#else
+            pline("%s\82Í%s\81D", Yname2(obj),
+                  destroy_strings[dindx][(obj->quan > 1L)]);
+#endif
         setnotworn(obj);
         delobj(obj);
         return TRUE;
     } else if (obj->oclass == POTION_CLASS) {
         dindx = (obj->otyp != POT_OIL) ? 1 : 2;
         if (in_sight)
+#if 0 /*JP*/
             pline("%s %s.", Yname2(obj),
                   destroy_strings[dindx][(obj->quan > 1L)]);
+#else
+            pline("%s\82Í%s\81D", Yname2(obj),
+                  destroy_strings[dindx][(obj->quan > 1L)]);
+#endif
         setnotworn(obj);
         delobj(obj);
         return TRUE;
@@ -3249,7 +4194,10 @@ xchar x, y;
     }
 
     if (num && (Blind && !couldsee(x, y)))
+/*JP
         You("smell smoke.");
+*/
+        You("\89\8c\82Ì\82É\82¨\82¢\82ª\82µ\82½\81D");
     return num;
 }
 
@@ -3277,10 +4225,18 @@ struct obj *obj;
             ) {
             if (!Blind) {
                 if (victim == &youmonst)
+/*JP
                     pline("Your %s.", aobjnam(obj, "fade"));
+*/
+                    pline("%s\82Ì\95\8e\9a\82Í\94\96\82ê\82½\81D", xname(obj));
                 else if (vismon)
+#if 0 /*JP*/
                     pline("%s %s.", s_suffix(Monnam(victim)),
                           aobjnam(obj, "fade"));
+#else
+                    pline("%s\82Ì%s\82Ì\95\8e\9a\82Í\94\96\82ê\82½\81D", Monnam(victim),
+                          xname(obj));
+#endif
             }
         }
         obj->otyp = SCR_BLANK_PAPER;
@@ -3333,7 +4289,10 @@ boolean force;
     } else if (Is_container(obj) && !Is_box(obj)
                && (obj->otyp != OILSKIN_SACK || (obj->cursed && !rn2(3)))) {
         if (carried(obj))
+/*JP
             pline("Water gets into your %s!", ostr);
+*/
+            pline("\90\85\82ª%s\82Ì\92\86\82É\93ü\82Á\82½\81I", ostr);
 
         water_damage_chain(obj->cobj, FALSE);
         return ER_NOTHING;
@@ -3350,7 +4309,10 @@ boolean force;
             return 0;
 #endif
         if (carried(obj))
+/*JP
             pline("Your %s %s.", ostr, vtense(ostr, "fade"));
+*/
+            pline("%s\82Ì\95\8e\9a\82Í\94\96\82ê\82½\81D", ostr);
 
         obj->otyp = SCR_BLANK_PAPER;
         obj->dknown = 0;
@@ -3360,12 +4322,18 @@ boolean force;
         return ER_DAMAGED;
     } else if (obj->oclass == SPBOOK_CLASS) {
         if (obj->otyp == SPE_BOOK_OF_THE_DEAD) {
+/*JP
             pline("Steam rises from %s.", the(xname(obj)));
+*/
+            pline("\8fö\8bC\82ª%s\82©\82ç\97§\82¿\82Ì\82Ú\82Á\82½\81D", xname(obj));
             return 0;
         }
 
         if (carried(obj))
+/*JP
             pline("Your %s %s.", ostr, vtense(ostr, "fade"));
+*/
+            pline("%s\82Ì\95\8e\9a\82Í\94\96\82ê\82½\81D", ostr);
 
         if (obj->otyp == SPE_NOVEL) {
             obj->novelidx = 0;
@@ -3399,10 +4367,14 @@ boolean force;
              * variant.
              */
             bufp = simpleonames(obj);
+#if 0 /*JP*/
             pline("%s %s %s!", /* "A potion explodes!" */
                   !exploded ? (one ? "A" : "Some")
                             : (one ? "Another" : "More"),
                   bufp, vtense(bufp, "explode"));
+#else
+            pline("\96ò\95r\82ª\94\9a\94­\82µ\82½\81I");
+#endif
             if (acid_ctx.ctx_valid) {
                 if (obj->dknown)
                     acid_ctx.dkn_boom++;
@@ -3416,7 +4388,10 @@ boolean force;
             return ER_DESTROYED;
         } else if (obj->odiluted) {
             if (carried(obj))
+/*JP
                 pline("Your %s %s further.", ostr, vtense(ostr, "dilute"));
+*/
+                pline("%s\82Í\82³\82ç\82É\94\96\82Ü\82Á\82½\81D", ostr);
 
             obj->otyp = POT_WATER;
             obj->dknown = 0;
@@ -3427,7 +4402,10 @@ boolean force;
             return ER_DAMAGED;
         } else if (obj->otyp != POT_WATER) {
             if (carried(obj))
+/*JP
                 pline("Your %s %s.", ostr, vtense(ostr, "dilute"));
+*/
+                pline("%s\82Í\94\96\82Ü\82Á\82½\81D", ostr);
 
             obj->odiluted++;
             if (carried(obj))
@@ -3533,10 +4511,18 @@ drown()
     }
 
     if (!u.uinwater) {
+#if 0 /*JP*/
         You("%s into the water%c", Is_waterlevel(&u.uz) ? "plunge" : "fall",
             Amphibious || Swimming ? '.' : '!');
+#else
+        You("\90\85\82Ì\92\86\82É%s%s", Is_waterlevel(&u.uz) ? "\94ò\82Ñ\82±\82ñ\82¾" : "\97\8e\82¿\82½",
+            Amphibious || Swimming ? "\81D" : "\81I");
+#endif
         if (!Swimming && !Is_waterlevel(&u.uz))
+/*JP
             You("sink like %s.", Hallucination ? "the Titanic" : "a rock");
+*/
+            You("%s\82Ì\82æ\82¤\82É\92¾\82ñ\82¾\81D", Hallucination ? "\83^\83C\83^\83j\83b\83N\8d\86" : "\8aâ");
     }
 
     water_damage_chain(invent, FALSE);
@@ -3544,30 +4530,49 @@ drown()
     if (u.umonnum == PM_GREMLIN && rn2(3))
         (void) split_mon(&youmonst, (struct monst *) 0);
     else if (u.umonnum == PM_IRON_GOLEM) {
+/*JP
         You("rust!");
+*/
+        You("\8eK\82Ñ\82½\81I");
         i = Maybe_Half_Phys(d(2, 6));
         if (u.mhmax > i)
             u.mhmax -= i;
+/*JP
         losehp(i, "rusting away", KILLED_BY);
+*/
+        losehp(i, "\8a®\91S\82É\8eK\82Ñ\82Ä", KILLED_BY);
     }
     if (inpool_ok)
         return FALSE;
 
     if ((i = number_leashed()) > 0) {
+#if 0 /*JP*/
         pline_The("leash%s slip%s loose.", (i > 1) ? "es" : "",
                   (i > 1) ? "" : "s");
+#else
+        pline("\95R\82ª\82ä\82é\82ñ\82¾\81D");
+#endif
         unleash_all();
     }
 
     if (Amphibious || Swimming) {
         if (Amphibious) {
             if (flags.verbose)
+/*JP
                 pline("But you aren't drowning.");
+*/
+                pline("\82µ\82©\82µ\81C\82 \82È\82½\82Í\93M\82ê\82È\82©\82Á\82½\81D");
             if (!Is_waterlevel(&u.uz)) {
                 if (Hallucination)
+/*JP
                     Your("keel hits the bottom.");
+*/
+                    You("\92ê\82É\83j\81[\83h\83\8d\83b\83v\82ð\8c\88\82ß\82½\81D");
                 else
+/*JP
                     You("touch bottom.");
+*/
+                    You("\92ê\82É\82Â\82¢\82½\81D");
             }
         }
         if (Punished) {
@@ -3582,13 +4587,20 @@ drown()
     }
     if ((Teleportation || can_teleport(youmonst.data)) && !Unaware
         && (Teleport_control || rn2(3) < Luck + 2)) {
+#if 0 /*JP*/
         You("attempt a teleport spell."); /* utcsri!carroll */
+#else
+        You("\8fu\8aÔ\88Ú\93®\82Ì\8eô\95\82ð\8f¥\82¦\82Ä\82Ý\82½\81D");
+#endif
         if (!level.flags.noteleport) {
             (void) dotele();
             if (!is_pool(u.ux, u.uy))
                 return TRUE;
         } else
+/*JP
             pline_The("attempted teleport spell fails.");
+*/
+            pline("\8fu\8aÔ\88Ú\93®\82Ì\8eô\95\82Í\8e¸\94s\82µ\82½\81D");
     }
     if (u.usteed) {
         dismount_steed(DISMOUNT_GENERIC);
@@ -3601,7 +4613,10 @@ drown()
        while still asleep; we can't do that the same way that waking
        due to combat is handled; note unmul() clears u.usleep */
     if (u.usleep)
+/*JP
         unmul("Suddenly you wake up!");
+*/
+        unmul("\93Ë\91R\82 \82È\82½\82Í\96Ú\82ª\8ao\82ß\82½\81I");
     /* being doused will revive from fainting */
     if (is_fainted())
         reset_faint();
@@ -3630,19 +4645,34 @@ crawl:
         /* time to do some strip-tease... */
         boolean succ = Is_waterlevel(&u.uz) ? TRUE : emergency_disrobe(&lost);
 
+/*JP
         You("try to crawl out of the water.");
+*/
+        You("\90\85\82©\82ç\82Í\82¢\82 \82ª\82ë\82¤\82Æ\82µ\82½\81D");
         if (lost)
+/*JP
             You("dump some of your gear to lose weight...");
+*/
+            You("\91Ì\82ð\8cy\82­\82·\82é\82½\82ß\82¢\82­\82Â\82©\95¨\82ð\93\8a\82°\82·\82Ä\82½\81D\81D\81D");
         if (succ) {
+/*JP
             pline("Pheew!  That was close.");
+*/
+            pline("\83n\83@\83n\83@\81I\82 \82Ô\82È\82©\82Á\82½\81D");
             teleds(x, y, TRUE);
             return TRUE;
         }
         /* still too much weight */
+/*JP
         pline("But in vain.");
+*/
+        pline("\82ª\81C\96³\91Ê\82¾\82Á\82½\81D");
     }
     u.uinwater = 1;
+/*JP
     You("drown.");
+*/
+    You("\93M\82ê\82½\81D");
     for (i = 0; i < 5; i++) { /* arbitrary number of loops */
         /* killer format and name are reconstructed every iteration
            because lifesaving resets them */
@@ -3657,12 +4687,20 @@ crawl:
         if (safe_teleds(TRUE))
             break; /* successful life-save */
         /* nowhere safe to land; repeat drowning loop... */
+/*JP
         pline("You're still drowning.");
+*/
+        You("\82Ü\82¾\93M\82ê\82Ä\82¢\82é\81D");
     }
     if (u.uinwater) {
         u.uinwater = 0;
+#if 0 /*JP*/
         You("find yourself back %s.",
             Is_waterlevel(&u.uz) ? "in an air bubble" : "on land");
+#else
+        You("\82¢\82Â\82Ì\82Ü\82É\82©%s\82É\82¢\82é\82Ì\82É\8bC\82ª\82Â\82¢\82½\81D",
+            Is_waterlevel(&u.uz) ? "\8bó\8bC\82Ì\96A\82Ì\92\86" : "\92n\96Ê");
+#endif
     }
     return TRUE;
 }
@@ -3673,13 +4711,19 @@ int n;
 {
     if (!u.uenmax) {
         /* energy is completely gone */
+/*JP
         You_feel("momentarily lethargic.");
+*/
+        You("\88ê\8fu\96³\8bC\97Í\8a´\82ð\8a´\82\82½\81D");
     } else {
         /* throttle further loss a bit when there's not much left to lose */
         if (n > u.uenmax || n > u.ulevel)
             n = rnd(n);
 
+/*JP
         You_feel("your magical energy drain away%c", (n > u.uen) ? '!' : '.');
+*/
+        You("\96\82\96@\82Ì\83G\83l\83\8b\83M\81[\82ª\8bz\82¢\82Æ\82ç\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½%s", (n > u.uen) ? "\81I" : "\81D");
         u.uen -= n;
         if (u.uen < 0) {
             u.uenmax -= rnd(-u.uen);
@@ -3696,19 +4740,31 @@ int
 dountrap()
 {
     if (near_capacity() >= HVY_ENCUMBER) {
+/*JP
         pline("You're too strained to do that.");
+*/
+        pline("ã©\82ð\89ð\8f\9c\82µ\82æ\82¤\82É\82à\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\82¢\82é\81D");
         return 0;
     }
     if ((nohands(youmonst.data) && !webmaker(youmonst.data))
         || !youmonst.data->mmove) {
+/*JP
         pline("And just how do you expect to do that?");
+*/
+        pline("\82¢\82Á\82½\82¢\89½\82ð\8aú\91Ò\82µ\82Ä\82¢\82é\82ñ\82¾\82¢\81H");
         return 0;
     } else if (u.ustuck && sticks(youmonst.data)) {
+/*JP
         pline("You'll have to let go of %s first.", mon_nam(u.ustuck));
+*/
+        pline("%s\82ð\8eè\97£\82³\82È\82¢\82±\82Æ\82É\82Í\82Å\82«\82È\82¢\81D", mon_nam(u.ustuck));
         return 0;
     }
     if (u.ustuck || (welded(uwep) && bimanual(uwep))) {
+/*JP
         Your("%s seem to be too busy for that.", makeplural(body_part(HAND)));
+*/
+        Your("\82»\82ñ\82È\82±\82Æ\82ð\82·\82é\97]\97T\82È\82ñ\82Ä\82È\82¢\81D");
         return 0;
     }
     return untrap(FALSE);
@@ -3824,12 +4880,18 @@ boolean force_failure;
 
     /* Test for monster first, monsters are displayed instead of trap. */
     if (mtmp && (!mtmp->mtrapped || !holdingtrap)) {
+/*JP
         pline("%s is in the way.", Monnam(mtmp));
+*/
+        pline("\82»\82±\82É\82Í%s\82ª\82¢\82é\81D", Monnam(mtmp));
         return 0;
     }
     /* We might be forced to move onto the trap's location. */
     if (sobj_at(BOULDER, ttmp->tx, ttmp->ty) && !Passes_walls && !under_u) {
+/*JP
         There("is a boulder in your way.");
+*/
+        pline("\82»\82±\82É\82Í\8aâ\82ª\82 \82é\81D");
         return 0;
     }
     /* duplicate tight-space checks from test_move */
@@ -3838,8 +4900,13 @@ boolean force_failure;
         if ((invent && (inv_weight() + weight_cap() > 600))
             || bigmonst(youmonst.data)) {
             /* don't allow untrap if they can't get thru to it */
+#if 0 /*JP*/
             You("are unable to reach the %s!",
                 defsyms[trap_to_defsym(ttype)].explanation);
+#else
+            You("%s\82É\93Í\82©\82È\82¢\81I",
+                defsyms[trap_to_defsym(ttype)].explanation);
+#endif
             return 0;
         }
     }
@@ -3848,15 +4915,23 @@ boolean force_failure;
         if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
             rider_cant_reach();
         else
+#if 0 /*JP*/
             You("are unable to reach the %s!",
                 defsyms[trap_to_defsym(ttype)].explanation);
+#else
+            You("%s\82É\93Í\82©\82È\82¢\81I",
+                defsyms[trap_to_defsym(ttype)].explanation);
+#endif
         return 0;
     }
 
     /* Will our hero succeed? */
     if (force_failure || untrap_prob(ttmp)) {
         if (rnl(5)) {
+/*JP
             pline("Whoops...");
+*/
+            pline("\82¤\82í\82Á\81D\81D\81D");
             if (mtmp) { /* must be a trap that holds monsters */
                 if (ttype == BEAR_TRAP) {
                     if (mtmp->mtame)
@@ -3869,7 +4944,10 @@ boolean force_failure;
 
                         if (ttmp2) {
                             pline_The(
+/*JP
                                 "webbing sticks to you. You're caught too!");
+*/
+                                "\82­\82à\82Ì\91\83\82ª\82 \82È\82½\82É\82©\82ç\82ñ\82Å\82«\82½\81D\82Ü\82·\82Ü\82·\95ß\82Ü\82Á\82Ä\82µ\82Ü\82Á\82½\81I");
                             dotrap(ttmp2, NOWEBMSG);
                             if (u.usteed && u.utrap) {
                                 /* you, not steed, are trapped */
@@ -3877,7 +4955,10 @@ boolean force_failure;
                             }
                         }
                     } else
+/*JP
                         pline("%s remains entangled.", Monnam(mtmp));
+*/
+                        pline("%s\82Í\82©\82ç\82Ü\82Á\82½\82Ü\82Ü\82¾\81D", Monnam(mtmp));
                 }
             } else if (under_u) {
                 dotrap(ttmp, 0);
@@ -3885,10 +4966,16 @@ boolean force_failure;
                 move_into_trap(ttmp);
             }
         } else {
+#if 0 /*JP*/
             pline("%s %s is difficult to %s.",
                   ttmp->madeby_u ? "Your" : under_u ? "This" : "That",
                   defsyms[trap_to_defsym(ttype)].explanation,
                   (ttype == WEB) ? "remove" : "disarm");
+#else
+            pline("%s%s\82ð\89ð\8f\9c\82·\82é\82Ì\82Í\8d¢\93ï\82¾\81D",
+                  ttmp->madeby_u ? "\82 \82È\82½\82Ì\8ed\8a|\82¯\82½" : under_u ? "\82±\82Ì" : "\82»\82Ì",
+                  defsyms[trap_to_defsym(ttype)].explanation);
+#endif
         }
         return 1;
     }
@@ -3906,13 +4993,19 @@ struct monst *mtmp;
             && mtmp->data->mlet != S_HUMAN) {
             mtmp->mpeaceful = 1;
             set_malign(mtmp); /* reset alignment */
+/*JP
             pline("%s is grateful.", Monnam(mtmp));
+*/
+            pline("%s\82Í\8aì\82ñ\82Å\82¢\82é\81D", Monnam(mtmp));
         }
         /* Helping someone out of a trap is a nice thing to do,
          * A lawful may be rewarded, but not too often.  */
         if (!rn2(3) && !rnl(8) && u.ualign.type == A_LAWFUL) {
             adjalign(1);
+/*JP
             You_feel("that you did the right thing.");
+*/
+            You("\90³\82µ\82¢\82±\82Æ\82ð\82µ\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         }
     }
 }
@@ -3933,16 +5026,28 @@ struct trap *ttmp;
        There's no need for a cockatrice test, only the trap is touched */
     if ((mtmp = m_at(ttmp->tx, ttmp->ty)) != 0) {
         mtmp->mtrapped = 0;
+#if 0 /*JP*/
         You("remove %s %s from %s.", the_your[ttmp->madeby_u],
             (ttmp->ttyp == BEAR_TRAP) ? "bear trap" : "webbing",
             mon_nam(mtmp));
+#else
+        You("%s%s\82ð%s\82©\82ç\82Í\82¸\82µ\82½\81D", set_you[ttmp->madeby_u],
+            (ttmp->ttyp == BEAR_TRAP) ? "\8cF\82Ìã©" : "\82­\82à\82Ì\91\83",
+            mon_nam(mtmp));
+#endif
         reward_untrap(ttmp, mtmp);
     } else {
         if (ttmp->ttyp == BEAR_TRAP) {
+/*JP
             You("disarm %s bear trap.", the_your[ttmp->madeby_u]);
+*/
+            You("%s\8cF\82Ìã©\82ð\89ð\8f\9c\82µ\82½\81D", set_you[ttmp->madeby_u]);
             cnv_trap_obj(BEARTRAP, 1, ttmp, FALSE);
         } else /* if (ttmp->ttyp == WEB) */ {
+/*JP
             You("succeed in removing %s web.", the_your[ttmp->madeby_u]);
+*/
+            You("%s\82­\82à\82Ì\91\83\82ð\8eæ\82è\8f\9c\82¢\82½\81D", set_you[ttmp->madeby_u]);
             deltrap(ttmp);
         }
     }
@@ -3958,7 +5063,10 @@ struct trap *ttmp;
 
     if (fails < 2)
         return fails;
+/*JP
     You("disarm %s land mine.", the_your[ttmp->madeby_u]);
+*/
+    You("%s\92n\97\8b\82ð\89ð\8f\9c\82µ\82½\81D", set_you[ttmp->madeby_u]);
     cnv_trap_obj(LAND_MINE, 1, ttmp, FALSE);
     return 1;
 }
@@ -3994,7 +5102,11 @@ struct trap *ttmp;
         useup(obj); /* oil */
         makeknown(POT_OIL);
     }
+#if 0 /*JP*/
     You("repair the squeaky board."); /* no madeby_u */
+#else
+    You("\82«\82µ\82Þ\94Â\82ð\8fC\97\9d\82µ\82½\81D"); /* no madeby_u */
+#endif
     deltrap(ttmp);
     newsym(u.ux + u.dx, u.uy + u.dy);
     more_experienced(1, 5);
@@ -4012,7 +5124,10 @@ int otyp;
 
     if (fails < 2)
         return fails;
+/*JP
     You("disarm %s trap.", the_your[ttmp->madeby_u]);
+*/
+    pline("%sã©\82ð\89ð\8f\9c\82µ\82½\81D", set_you[ttmp->madeby_u]);
     cnv_trap_obj(otyp, 50 - rnl(50), ttmp, FALSE);
     return 1;
 }
@@ -4029,14 +5144,22 @@ boolean stuff;
     int wc = weight_cap();
 
     if (((wt * 2) / wc) >= HVY_ENCUMBER) {
+#if 0 /*JP*/
         pline("%s is %s for you to lift.", Monnam(mtmp),
               stuff ? "carrying too much" : "too heavy");
+#else
+        pline("%s\82Í%s\8e\9d\82¿\82 \82°\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81D", Monnam(mtmp),
+              stuff ? "\95¨\82ð\8e\9d\82¿\82·\82¬\82Ä\82¨\82è" : "\8fd\82·\82¬\82Ä");
+#endif
         if (!ttmp->madeby_u && !mtmp->mpeaceful && mtmp->mcanmove
             && !mindless(mtmp->data) && mtmp->data->mlet != S_HUMAN
             && rnl(10) < 3) {
             mtmp->mpeaceful = 1;
             set_malign(mtmp); /* reset alignment */
+/*JP
             pline("%s thinks it was nice of you to try.", Monnam(mtmp));
+*/
+            pline("%s\82Í\82 \82È\82½\82Ì\93w\97Í\82É\8a´\8eÓ\82µ\82Ä\82¢\82é\82æ\82¤\82¾\81D", Monnam(mtmp));
         }
         return 0;
     }
@@ -4063,7 +5186,10 @@ struct trap *ttmp;
      * Test the monster first - monsters are displayed before traps.
      */
     if (!mtmp->mtrapped) {
+/*JP
         pline("%s isn't trapped.", Monnam(mtmp));
+*/
+        pline("%s\82Íã©\82É\82©\82©\82Á\82Ä\82¢\82È\82¢\81D", Monnam(mtmp));
         return 0;
     }
     /* Do you have the necessary capacity to lift anything? */
@@ -4072,48 +5198,80 @@ struct trap *ttmp;
 
     /* Will our hero succeed? */
     if ((uprob = untrap_prob(ttmp)) && !mtmp->msleeping && mtmp->mcanmove) {
+#if 0 /*JP*/
         You("try to reach out your %s, but %s backs away skeptically.",
             makeplural(body_part(ARM)), mon_nam(mtmp));
+#else
+        You("%s\82ð\8d·\82µ\89\84\82×\82æ\82¤\82Æ\82µ\82½\82ª%s\82Í\8cx\89ú\82µ\82Ä\82¢\82é\81D",
+            body_part(ARM), mon_nam(mtmp));
+#endif
         return 1;
     }
 
     /* is it a cockatrice?... */
     if (touch_petrifies(mtmp->data) && !uarmg && !Stone_resistance) {
+#if 0 /*JP*/
         You("grab the trapped %s using your bare %s.", mtmp->data->mname,
             makeplural(body_part(HAND)));
+#else
+        You("ã©\82É\82©\82©\82Á\82Ä\82¢\82é%s\82ð\91f%s\82Å\92Í\82ñ\82¾\81D", mtmp->data->mname,
+            body_part(HAND));
+#endif
 
         if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) {
             display_nhwindow(WIN_MESSAGE, FALSE);
         } else {
             char kbuf[BUFSZ];
 
+#if 0 /*JP*/
             Sprintf(kbuf, "trying to help %s out of a pit",
                     an(mtmp->data->mname));
+#else
+            Sprintf(kbuf, "ã©\82É\82©\82©\82Á\82Ä\82¢\82é%s\82ð\8f\95\82¯\82æ\82¤\82Æ\82µ\82Ä",
+                    a_monnam(mtmp));
+#endif
             instapetrify(kbuf);
             return 1;
         }
     }
     /* need to do cockatrice check first if sleeping or paralyzed */
     if (uprob) {
+/*JP
         You("try to grab %s, but cannot get a firm grasp.", mon_nam(mtmp));
+*/
+        You("%s\82ð\82Â\82©\82à\82¤\82Æ\82µ\82½\82ª\81C\82µ\82Á\82©\82è\82Æ\88¬\82ê\82È\82©\82Á\82½\81D", mon_nam(mtmp));
         if (mtmp->msleeping) {
             mtmp->msleeping = 0;
+/*JP
             pline("%s awakens.", Monnam(mtmp));
+*/
+            pline("%s\82Í\96Ú\82ð\8ao\82Ü\82µ\82½\81D", Monnam(mtmp));
         }
         return 1;
     }
 
+#if 0 /*JP*/
     You("reach out your %s and grab %s.", makeplural(body_part(ARM)),
         mon_nam(mtmp));
+#else
+    You("%s\82ð\90L\82Î\82µ\82Ä%s\82ð\82Â\82©\82ñ\82¾\81D", body_part(ARM),
+        mon_nam(mtmp));
+#endif
 
     if (mtmp->msleeping) {
         mtmp->msleeping = 0;
+/*JP
         pline("%s awakens.", Monnam(mtmp));
+*/
+        pline("%s\82Í\96Ú\82ð\8ao\82Ü\82µ\82½\81D", Monnam(mtmp));
     } else if (mtmp->mfrozen && !rn2(mtmp->mfrozen)) {
         /* After such manhandling, perhaps the effect wears off */
         mtmp->mcanmove = 1;
         mtmp->mfrozen = 0;
+/*JP
         pline("%s stirs.", Monnam(mtmp));
+*/
+        pline("%s\82Í\93®\82«\8en\82ß\82½\81D", Monnam(mtmp));
     }
 
     /* is the monster too heavy? */
@@ -4127,7 +5285,10 @@ struct trap *ttmp;
     if (!try_lift(mtmp, ttmp, wt, TRUE))
         return 1;
 
+/*JP
     You("pull %s out of the pit.", mon_nam(mtmp));
+*/
+    You("%s\82ð\97\8e\82µ\8c\8a\82©\82ç\82Ð\82Á\82Ï\82Á\82½\81D", mon_nam(mtmp));
     mtmp->mtrapped = 0;
     fill_pit(mtmp->mx, mtmp->my);
     reward_untrap(ttmp, mtmp);
@@ -4154,7 +5315,10 @@ boolean force;
     x = u.ux + u.dx;
     y = u.uy + u.dy;
     if (!isok(x, y)) {
+/*JP
         pline_The("perils lurking there are beyond your grasp.");
+*/
+        pline_The("\82»\82±\82É\82 \82é\8aë\8c¯\82Í\82 \82È\82½\82Ì\8eè\82É\95\89\82¦\82È\82¢\81D");
         return 0;
     }
     ttmp = t_at(x, y);
@@ -4176,16 +5340,28 @@ boolean force;
         if (ttmp)
             Strcat(the_trap, an(trapdescr));
         if (ttmp && boxcnt)
+/*JP
             Strcat(the_trap, " and ");
+*/
+            Strcat(the_trap, "\82Æ");
         if (boxcnt)
+/*JP
             Strcat(the_trap, (boxcnt == 1) ? "a container" : "containers");
+*/
+            Strcat(the_trap, "\97e\8aí");
         useplural = ((ttmp && boxcnt > 0) || boxcnt > 1);
         /* note: boxcnt and useplural will always be 0 for !here case */
         if (ttmp || boxcnt)
+#if 0 /*JP*/
             There("%s %s %s but you can't reach %s%s.",
                   useplural ? "are" : "is", the_trap, here ? "here" : "there",
                   useplural ? "them" : "it",
                   u.usteed ? " while mounted" : "");
+#else
+            pline("%s\82ª\82 \82é\82ª\81C%s\93Í\82©\82È\82¢\81D",
+                  the_trap,
+                  u.usteed ? "\8fæ\82Á\82Ä\82¢\82é\82Æ" : "");
+#endif
         trap_skipped = (ttmp != 0);
     } else { /* deal_with_floor_trap */
 
@@ -4193,17 +5369,31 @@ boolean force;
             Strcpy(the_trap, the(trapdescr));
             if (boxcnt) {
                 if (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT) {
+#if 0 /*JP*/
                     You_cant("do much about %s%s.", the_trap,
                              u.utrap ? " that you're stuck in"
                                      : " while standing on the edge of it");
+#else
+                    pline("%s%s\82É\91Î\82µ\82Ä\82Í\82½\82¢\82µ\82½\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+                          u.utrap ? "\8e©\95ª\82ª\82Í\82Ü\82Á\82Ä\82¢\82é"
+                                  : "\82·\82®\82»\82Î\82Ì",
+                          the_trap);
+#endif
                     trap_skipped = TRUE;
                     deal_with_floor_trap = FALSE;
                 } else {
+#if 0 /*JP*/
                     Sprintf(
                         qbuf, "There %s and %s here. %s %s?",
                         (boxcnt == 1) ? "is a container" : "are containers",
                         an(trapdescr),
                         (ttmp->ttyp == WEB) ? "Remove" : "Disarm", the_trap);
+#else
+                    Sprintf(
+                        qbuf, "\94 \82Æ%s\82ª\82 \82é\81D%s\81H",
+                        trapdescr,
+                        (ttmp->ttyp == WEB) ? "\8eæ\82è\8f\9c\82­" : "\89ð\8f\9c\82·\82é");
+#endif
                     switch (ynq(qbuf)) {
                     case 'q':
                         return 0;
@@ -4216,8 +5406,12 @@ boolean force;
             }
             if (deal_with_floor_trap) {
                 if (u.utrap) {
+#if 0 /*JP*/
                     You("cannot deal with %s while trapped%s!", the_trap,
                         (x == u.ux && y == u.uy) ? " in it" : "");
+#else
+                    pline("ã©\82É\82©\82©\82Á\82Ä\82¢\82é\8aÔ\82Íã©\82ð\89ð\8f\9c\82Å\82«\82È\82¢\81I");
+#endif
                     return 1;
                 }
                 if ((mtmp = m_at(x, y)) != 0
@@ -4241,16 +5435,25 @@ boolean force;
                 case PIT:
                 case SPIKED_PIT:
                     if (here) {
+/*JP
                         You("are already on the edge of the pit.");
+*/
+                        You("\82à\82¤\97\8e\82µ\8c\8a\82Ì\92[\82É\82¢\82é\81D");
                         return 0;
                     }
                     if (!mtmp) {
+/*JP
                         pline("Try filling the pit instead.");
+*/
+                        pline("\82È\82ñ\82Æ\82©\96\84\82ß\82é\82±\82Æ\82ð\8dl\82¦\82Ä\82Ý\82½\82ç\81H");
                         return 0;
                     }
                     return help_monster_out(mtmp, ttmp);
                 default:
+/*JP
                     You("cannot disable %s trap.", !here ? "that" : "this");
+*/
+                    pline("%sã©\82Í\89ð\8f\9c\82Å\82«\82È\82¢\81D", !here ? "\82»\82Ì" : "\82±\82Ì");
                     return 0;
                 }
             }
@@ -4259,9 +5462,15 @@ boolean force;
         if (boxcnt) {
             for (otmp = level.objects[x][y]; otmp; otmp = otmp->nexthere)
                 if (Is_box(otmp)) {
+#if 0 /*JP*/
                     (void) safe_qbuf(qbuf, "There is ",
                                      " here.  Check it for traps?", otmp,
                                      doname, ansimpleoname, "a box");
+#else
+                    (void) safe_qbuf(qbuf, "",
+                                     "\82ª\82 \82é\81Dã©\82ð\92²\82×\82Ü\82·\82©\81H", otmp,
+                                     doname, ansimpleoname, "\94 ");
+#endif
                     switch (ynq(qbuf)) {
                     case 'q':
                         return 0;
@@ -4273,11 +5482,17 @@ boolean force;
                          && (force || (!confused
                                        && rn2(MAXULEV + 1 - u.ulevel) < 10)))
                         || (!force && confused && !rn2(3))) {
+/*JP
                         You("find a trap on %s!", the(xname(otmp)));
+*/
+                        pline("%s\82Éã©\82ð\94­\8c©\82µ\82½\81I", the(xname(otmp)));
                         if (!confused)
                             exercise(A_WIS, TRUE);
 
+/*JP
                         switch (ynq("Disarm it?")) {
+*/
+                        switch (ynq("\89ð\8f\9c\82µ\82Ü\82·\82©\81H")) {
                         case 'q':
                             return 1;
                         case 'n':
@@ -4295,20 +5510,34 @@ boolean force;
                                                   > ch)) {
                                 (void) chest_trap(otmp, FINGER, TRUE);
                             } else {
+/*JP
                                 You("disarm it!");
+*/
+                                You("\89ð\8f\9c\82µ\82½\81I");
                                 otmp->otrapped = 0;
                             }
                         } else
+/*JP
                             pline("That %s was not trapped.", xname(otmp));
+*/
+                            pline("\82»\82Ì%s\82Éã©\82Í\82È\82¢\81D", xname(otmp));
                         return 1;
                     } else {
+/*JP
                         You("find no traps on %s.", the(xname(otmp)));
+*/
+                        pline("ã©\82ð\94­\8c©\82Å\82«\82È\82©\82Á\82½\81D");
                         return 1;
                     }
                 }
 
+#if 0 /*JP*/
             You(trap_skipped ? "find no other traps here."
                              : "know of no traps here.");
+#else
+            You(trap_skipped ? "\91¼\82Ìã©\82ð\8c©\82Â\82¯\82ç\82ê\82È\82©\82Á\82½\81D"
+                             : "\82±\82±\82Éã©\82ª\82È\82¢\82±\82Æ\82ð\92m\82Á\82Ä\82¢\82é\81D");
+#endif
             return 0;
         }
 
@@ -4320,36 +5549,60 @@ boolean force;
 
     if (!IS_DOOR(levl[x][y].typ)) {
         if (!trap_skipped)
+/*JP
             You("know of no traps there.");
+*/
+            You("\82»\82±\82Éã©\82ª\82È\82¢\82±\82Æ\82ð\92m\82Á\82Ä\82¢\82é\81D");
         return 0;
     }
 
     switch (levl[x][y].doormask) {
     case D_NODOOR:
+/*JP
         You("%s no door there.", Blind ? "feel" : "see");
+*/
+        pline("\82»\82±\82É\82Í\94à\82ª\82È\82¢%s\81D", Blind ? "\82æ\82¤\82¾" : "\82æ\82¤\82É\8c©\82¦\82é");
         return 0;
     case D_ISOPEN:
+/*JP
         pline("This door is safely open.");
+*/
+        pline("\82»\82Ì\94à\82Í\88À\91S\82É\8aJ\82¢\82Ä\82¢\82é\81D");
         return 0;
     case D_BROKEN:
+/*JP
         pline("This door is broken.");
+*/
+        pline("\82»\82Ì\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
         return 0;
     }
 
     if ((levl[x][y].doormask & D_TRAPPED
          && (force || (!confused && rn2(MAXULEV - u.ulevel + 11) < 10)))
         || (!force && confused && !rn2(3))) {
+/*JP
         You("find a trap on the door!");
+*/
+        pline("\94à\82Éã©\82ð\94­\8c©\82µ\82½\81I");
         exercise(A_WIS, TRUE);
+/*JP
         if (ynq("Disarm it?") != 'y')
+*/
+        if (ynq("\89ð\8f\9c\82µ\82Ü\82·\82©\81H") != 'y')
             return 1;
         if (levl[x][y].doormask & D_TRAPPED) {
             ch = 15 + (Role_if(PM_ROGUE) ? u.ulevel * 3 : u.ulevel);
             exercise(A_DEX, TRUE);
             if (!force && (confused || Fumbling
                            || rnd(75 + level_difficulty() / 2) > ch)) {
+/*JP
                 You("set it off!");
+*/
+                You("\83X\83C\83b\83`\82ð\93ü\82ê\82Ä\82µ\82Ü\82Á\82½\81I");
+/*JP
                 b_trapped("door", FINGER);
+*/
+                b_trapped("\94à", FINGER);
                 levl[x][y].doormask = D_NODOOR;
                 unblock_point(x, y);
                 newsym(x, y);
@@ -4357,14 +5610,23 @@ boolean force;
                 if (*in_rooms(x, y, SHOPBASE))
                     add_damage(x, y, 0L);
             } else {
+/*JP
                 You("disarm it!");
+*/
+                You("\89ð\8f\9c\82µ\82½\81I");
                 levl[x][y].doormask &= ~D_TRAPPED;
             }
         } else
+/*JP
             pline("This door was not trapped.");
+*/
+            pline("\94à\82Éã©\82Í\82È\82©\82Á\82½\81D");
         return 1;
     } else {
+/*JP
         You("find no traps on the door.");
+*/
+        pline("\94à\82Éã©\82ð\94­\8c©\82Å\82«\82È\82©\82Á\82½\81D");
         return 1;
     }
 }
@@ -4389,8 +5651,12 @@ boolean *noticed; /* set to true iff hero notices the effect; */
         return FALSE;
 
     trapdescr = defsyms[trap_to_defsym(t->ttyp)].explanation;
+#if 0 /*JP*/
     which = t->tseen ? the_your[t->madeby_u]
                      : index(vowels, *trapdescr) ? "an" : "a";
+#else
+    which = t->tseen ? set_you[t->madeby_u] : "";
+#endif
 
     if (ishero) {
         if (!u.utrap)
@@ -4400,10 +5666,19 @@ boolean *noticed; /* set to true iff hero notices the effect; */
         /* give message only if trap was the expected type */
         if (u.utraptype == TT_BEARTRAP || u.utraptype == TT_WEB) {
             if (u.usteed)
+/*JP
                 Sprintf(buf, "%s is", noit_Monnam(u.usteed));
+*/
+                Strcpy(buf, noit_Monnam(u.usteed));
             else
+/*JP
                 Strcpy(buf, "You are");
+*/
+                Strcpy(buf, "\82 \82È\82½");
+/*JP
             pline("%s released from %s %s.", buf, which, trapdescr);
+*/
+            pline("%s\82Í%s%s\82©\82ç\89ð\95ú\82³\82ê\82½\81D", buf, which, trapdescr);
         }
     } else {
         if (!mon->mtrapped)
@@ -4411,15 +5686,28 @@ boolean *noticed; /* set to true iff hero notices the effect; */
         mon->mtrapped = 0;
         if (canspotmon(mon)) {
             *noticed = TRUE;
+#if 0 /*JP*/
             pline("%s is released from %s %s.", Monnam(mon), which,
                   trapdescr);
+#else
+            pline("%s\82Í%s%s\82©\82ç\89ð\95ú\82³\82ê\82½\81D", Monnam(mon), which,
+                  trapdescr);
+#endif
         } else if (cansee(t->tx, t->ty) && t->tseen) {
             *noticed = TRUE;
             if (t->ttyp == WEB)
+#if 0 /*JP*/
                 pline("%s is released from %s %s.", Something, which,
                       trapdescr);
+#else
+                pline("\89½\8eÒ\82©\82Í%s%s\82©\82ç\89ð\95ú\82³\82ê\82½\81D", which,
+                      trapdescr);
+#endif
             else /* BEAR_TRAP */
+/*JP
                 pline("%s %s opens.", upstart(strcpy(buf, which)), trapdescr);
+*/
+                pline("%s%s\82Í\8aJ\82¢\82½\81D", which, trapdescr);
         }
         /* might pacify monster if adjacent */
         if (rn2(2) && distu(mon->mx, mon->my) <= 2)
@@ -4531,33 +5819,51 @@ boolean disarm;
 
     otmp->otrapped = 0; /* trap is one-shot; clear flag first in case
                            chest kills you and ends up in bones file */
+/*JP
     You(disarm ? "set it off!" : "trigger a trap!");
+*/
+    You(disarm ? "\83X\83C\83b\83`\82ð\93ü\82ê\82Ä\82µ\82Ü\82Á\82½\81I" : "ã©\82É\82Ð\82Á\82©\82©\82Á\82½\81I");
     display_nhwindow(WIN_MESSAGE, FALSE);
     if (Luck > -13 && rn2(13 + Luck) > 7) { /* saved by luck */
         /* trap went off, but good luck prevents damage */
         switch (rn2(13)) {
         case 12:
         case 11:
+/*JP
             msg = "explosive charge is a dud";
+*/
+            msg = "\94\9a\94­\82Í\95s\94­\82¾\82Á\82½";
             break;
         case 10:
         case 9:
+/*JP
             msg = "electric charge is grounded";
+*/
+            msg = "\93d\8c\82\82ª\95ú\8fo\82³\82ê\82½\82ª\83A\81[\83X\82³\82ê\82Ä\82¢\82½";
             break;
         case 8:
         case 7:
+/*JP
             msg = "flame fizzles out";
+*/
+            msg = "\89\8a\82Í\83V\83\85\81[\82Á\82Æ\8fÁ\82¦\82½";
             break;
         case 6:
         case 5:
         case 4:
+/*JP
             msg = "poisoned needle misses";
+*/
+            msg = "\93Å\90j\82Í\8eh\82³\82ç\82È\82©\82Á\82½";
             break;
         case 3:
         case 2:
         case 1:
         case 0:
+/*JP
             msg = "gas cloud blows away";
+*/
+            msg = "\83K\83X\89_\82Í\90\81\82«\94ò\82ñ\82¾";
             break;
         default:
             impossible("chest disarm bug");
@@ -4565,7 +5871,10 @@ boolean disarm;
             break;
         }
         if (msg)
+/*JP
             pline("But luckily the %s!", msg);
+*/
+            pline("\82µ\82©\82µ\89^\82Ì\82æ\82¢\82±\82Æ\82É%s\81I", msg);
     } else {
         switch (rn2(20) ? ((Luck >= 13) ? 0 : rn2(13 - Luck)) : rn2(26)) {
         case 25:
@@ -4585,8 +5894,14 @@ boolean disarm;
             insider = (*u.ushops && inside_shop(u.ux, u.uy)
                        && *in_rooms(ox, oy, SHOPBASE) == *u.ushops);
 
+/*JP
             pline("%s!", Tobjnam(obj, "explode"));
+*/
+            pline("%s\82Í\94\9a\94­\82µ\82½\81I", xname(obj));
+/*JP
             Sprintf(buf, "exploding %s", xname(obj));
+*/
+            Sprintf(buf, "%s\82Ì\94\9a\94­\82Å", xname(obj));
 
             if (costly)
                 loss += stolen_value(obj, ox, oy, (boolean) shkp->mpeaceful,
@@ -4616,11 +5931,21 @@ boolean disarm;
             exercise(A_STR, FALSE);
             if (costly && loss) {
                 if (insider)
+#if 0 /*JP*/
                     You("owe %ld %s for objects destroyed.", loss,
                         currency(loss));
+#else
+                    You("\8aí\95¨\94j\91¹\82Å%ld%s\82Ì\8eØ\82è\82ð\82Â\82­\82Á\82½\81D", loss,
+                        currency(loss));
+#endif
                 else {
+#if 0 /*JP*/
                     You("caused %ld %s worth of damage!", loss,
                         currency(loss));
+#else
+                    You("%ld%s\95ª\82Ì\91¹\8aQ\82ð\88ø\82«\82¨\82±\82µ\82½\81I", loss,
+                        currency(loss));
+#endif
                     make_angry_shk(shkp, ox, oy);
                 }
             }
@@ -4630,16 +5955,28 @@ boolean disarm;
         case 19:
         case 18:
         case 17:
+/*JP
             pline("A cloud of noxious gas billows from %s.", the(xname(obj)));
+*/
+            pline("\97L\93Å\83K\83X\82ª%s\82©\82ç\89Q\82Ü\82¢\82½\81D", the(xname(obj)));
+/*JP
             poisoned("gas cloud", A_STR, "cloud of poison gas", 15, FALSE);
+*/
+            poisoned("\83K\83X\89_", A_STR, "\83K\83X\89_", 15, FALSE);
             exercise(A_CON, FALSE);
             break;
         case 16:
         case 15:
         case 14:
         case 13:
+/*JP
             You_feel("a needle prick your %s.", body_part(bodypart));
+*/
+            You("%s\83`\83N\83b\82Æ\82¢\82¤\92É\82Ý\82ð\8a´\82\82½\81D", body_part(bodypart));
+/*JP
             poisoned("needle", A_CON, "poisoned needle", 10, FALSE);
+*/
+            poisoned("\90j", A_CON, "\93Å\90j", 10, FALSE);
             exercise(A_CON, FALSE);
             break;
         case 12:
@@ -4653,45 +5990,76 @@ boolean disarm;
         case 6: {
             int dmg;
 
+/*JP
             You("are jolted by a surge of electricity!");
+*/
+            You("\93d\8bC\83V\83\87\83b\83N\82ð\82­\82ç\82Á\82½\81I");
             if (Shock_resistance) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 You("don't seem to be affected.");
+*/
+                pline("\82µ\82©\82µ\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
                 dmg = 0;
             } else
                 dmg = d(4, 4);
             destroy_item(RING_CLASS, AD_ELEC);
             destroy_item(WAND_CLASS, AD_ELEC);
             if (dmg)
+/*JP
                 losehp(dmg, "electric shock", KILLED_BY_AN);
+*/
+                losehp(dmg, "\93d\8bC\83V\83\87\83b\83N\82Å", KILLED_BY_AN);
             break;
         } /* case 6 */
         case 5:
         case 4:
         case 3:
             if (!Free_action) {
+/*JP
                 pline("Suddenly you are frozen in place!");
+*/
+                pline("\93Ë\91R\82»\82Ì\8fê\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I");
                 nomul(-d(5, 6));
                 multi_reason = "frozen by a trap";
                 exercise(A_DEX, FALSE);
                 nomovemsg = You_can_move_again;
             } else
+/*JP
                 You("momentarily stiffen.");
+*/
+                You("\88ê\8fu\8dd\92¼\82µ\82½\81D");
             break;
         case 2:
         case 1:
         case 0:
+#if 0 /*JP*/
             pline("A cloud of %s gas billows from %s.",
                   Blind ? blindgas[rn2(SIZE(blindgas))] : rndcolor(),
                   the(xname(obj)));
+#else
+            pline("%s\83K\83X\89_\82ª%s\82Ì\92ê\82Å\89Q\82Ü\82¢\82½\81D",
+                  Blind ? blindgas[rn2(SIZE(blindgas))] :
+                  jconj_adj(rndcolor()), xname(obj));
+#endif
             if (!Stunned) {
                 if (Hallucination)
+/*JP
                     pline("What a groovy feeling!");
+*/
+                    pline("\82È\82ñ\82Ä\91f\93G\82È\82ñ\82¾\81I");
                 else
+#if 0 /*JP*/
                     You("%s%s...", stagger(youmonst.data, "stagger"),
                         Halluc_resistance ? ""
                                           : Blind ? " and get dizzy"
                                                   : " and your vision blurs");
+#else
+                    You("\82­\82ç\82­\82ç\82µ%s\82½...",
+                        Halluc_resistance ? ""
+                                          : Blind ? "\81C\82ß\82Ü\82¢\82ª\82µ"
+                                                  : "\81C\8ci\90F\82ª\82Ú\82â\82¯\82Ä\82«");
+#endif
             }
             make_stunned((HStun & TIMEOUT) + (long) rn1(7, 16), FALSE);
             (void) make_hallucinated(
@@ -4875,9 +6243,15 @@ int bodypart;
     int lvl = level_difficulty(),
         dmg = rnd(5 + (lvl < 5 ? lvl : 2 + lvl / 2));
 
+/*JP
     pline("KABOOM!!  %s was booby-trapped!", The(item));
+*/
+    pline("\82¿\82ã\82Ç\81[\82ñ\81I\81I%s\82É\83u\81[\83r\81[\83g\83\89\83b\83v\82ª\8ed\8a|\82¯\82ç\82ê\82Ä\82¢\82½\81I", item);
     wake_nearby();
+/*JP
     losehp(Maybe_Half_Phys(dmg), "explosion", KILLED_BY_AN);
+*/
+    losehp(Maybe_Half_Phys(dmg), "\83u\81[\83r\81[\83g\83\89\83b\83v\82Ì\94\9a\94­\82Å", KILLED_BY_AN);
     exercise(A_STR, FALSE);
     if (bodypart)
         exercise(A_CON, FALSE);
@@ -4909,12 +6283,18 @@ boolean nocorpse;
      */
     if (!strike) {
         if (obj && cansee(mon->mx, mon->my))
+/*JP
             pline("%s is almost hit by %s!", Monnam(mon), doname(obj));
+*/
+            pline("\82à\82¤\8f­\82µ\82Å%s\82ª%s\82É\96½\92\86\82·\82é\82Æ\82±\82ë\82¾\82Á\82½\81I", doname(obj), Monnam(mon));
     } else {
         int dam = 1;
 
         if (obj && cansee(mon->mx, mon->my))
+/*JP
             pline("%s is hit by %s!", Monnam(mon), doname(obj));
+*/
+            pline("%s\82ª%s\82É\96½\92\86\82µ\82½\81I", doname(obj), Monnam(mon));
         if (d_override)
             dam = d_override;
         else if (obj) {
@@ -4948,14 +6328,30 @@ unconscious()
     if (multi >= 0)
         return FALSE;
 
+#if 0 /*JP*/
     return (boolean) (u.usleep
                       || (nomovemsg
                           && (!strncmp(nomovemsg, "You awake", 9)
                               || !strncmp(nomovemsg, "You regain con", 14)
                               || !strncmp(nomovemsg, "You are consci", 14))));
+#else
+/*JP 3.6.0 \82Å\82Ì\8fo\8c»\88Ê\92u/\89ñ\90\94
+ "You awake"      : potion.c(1)
+  "You regain con": eat.c(1)
+  "You are consci": eat.c(1)
+*/
+    return (boolean) (u.usleep
+                      || (nomovemsg
+                          && (!strncmp(nomovemsg, "\96Ú\82ª\82³\82ß\82½\82ª\93ª\92É", 18)
+                              || !strncmp(nomovemsg, "\82 \82È\82½\82Í\90³\8bC\82Ã\82¢\82½", 18)
+                              || !strncmp(nomovemsg, "\82 \82È\82½\82Í\82Ü\82½\90³\8bC\82Ã", 18))));
+#endif
 }
 
+/*JP
 static const char lava_killer[] = "molten lava";
+*/
+static const char lava_killer[] = "\82Ç\82ë\82Ç\82ë\82Ì\97n\8aâ\82Å";
 
 boolean
 lava_effects()
@@ -4994,7 +6390,10 @@ lava_effects()
      */
     if (Wwalking && uarmf && is_organic(uarmf) && !uarmf->oerodeproof) {
         obj = uarmf;
+/*JP
         pline("%s into flame!", Yobjnam2(obj, "burst"));
+*/
+        Your("%s\82Í\94R\82¦\82½\81I", xname(obj));
         iflags.in_lava_effects++; /* (see above) */
         (void) Boots_off();
         useup(obj);
@@ -5003,13 +6402,19 @@ lava_effects()
 
     if (!Fire_resistance) {
         if (Wwalking) {
+/*JP
             pline_The("lava here burns you!");
+*/
+            pline("\97n\8aâ\82ª\82 \82È\82½\82ð\8fÄ\82«\82Â\82­\82µ\82½\81I");
             if (usurvive) {
                 losehp(dmg, lava_killer, KILLED_BY); /* lava damage */
                 goto burn_stuff;
             }
         } else
+/*JP
             You("fall into the lava!");
+*/
+            You("\97n\8aâ\82É\97\8e\82¿\82½\81I");
 
         usurvive = Lifesaved || discover;
         if (wizard)
@@ -5027,12 +6432,20 @@ lava_effects()
             /* above, we set in_use for objects which are to be destroyed */
             if (obj->otyp == SPE_BOOK_OF_THE_DEAD && !Blind) {
                 if (usurvive)
+#if 0 /*JP*/
                     pline("%s glows a strange %s, but remains intact.",
                           The(xname(obj)), hcolor("dark red"));
+#else
+                    pline("%s\82Í\95s\8ev\8bc\82É%s\8bP\82¢\82½\82ª\81C\96³\8f\9d\82Ì\82æ\82¤\82¾\81D",
+                          xname(obj), jconj_adj(hcolor("\88Ã\90Ô\90F\82Ì")));
+#endif
             } else if (obj->in_use) {
                 if (obj->owornmask) {
                     if (usurvive)
+/*JP
                         pline("%s into flame!", Yobjnam2(obj, "burst"));
+*/
+                        Your("%s\82Í\94R\82¦\82½\81I", xname(obj));
                     remove_worn_item(obj, TRUE);
                 }
                 useupall(obj);
@@ -5051,14 +6464,23 @@ lava_effects()
                because lifesaving resets them */
             killer.format = KILLED_BY;
             Strcpy(killer.name, lava_killer);
+/*JP
             You("%s...", boil_away ? "boil away" : "burn to a crisp");
+*/
+            You("%s\81D\81D\81D", boil_away ? "\95¦\93«\82µ\82½" : "\94R\82¦\82Ä\83p\83\8a\83p\83\8a\82É\82È\82Á\82½");
             done(BURNING);
             if (safe_teleds(TRUE))
                 break; /* successful life-save */
             /* nowhere safe to land; repeat burning loop */
+/*JP
             pline("You're still burning.");
+*/
+            You("\82Ü\82¾\94R\82¦\82Ä\82¢\82é\81D");
         }
+/*JP
         You("find yourself back on solid %s.", surface(u.ux, u.uy));
+*/
+        You("\82¢\82Â\82Ì\82Ü\82É\82©\8cÅ\82¢%s\82É\96ß\82Á\82Ä\82¢\82½\81D", surface(u.ux, u.uy));
         return TRUE;
     } else if (!Wwalking && (!u.utrap || u.utraptype != TT_LAVA)) {
         boil_away = !Fire_resistance;
@@ -5066,9 +6488,15 @@ lava_effects()
            hero needs to escape immediately */
         u.utrap = rn1(4, 4) + ((boil_away ? 2 : rn1(4, 12)) << 8);
         u.utraptype = TT_LAVA;
+#if 0 /*JP*/
         You("sink into the lava%s!", !boil_away
                                          ? ", but it only burns slightly"
                                          : " and are about to be immolated");
+#else
+        You("\97n\8aâ\82É\92¾\82ñ%s\82¾\81I", !boil_away
+                                         ? "\82¾\82ª\81C\82¿\82å\82Á\82Æ\8fÅ\82°\82½\82¾\82¯"
+                                         : "\82Å\8fÄ\82«\8eE\82³\82ê\82»\82¤");
+#endif
         if (u.uhp > 1)
             losehp(!boil_away ? 1 : (u.uhp / 2), lava_killer,
                    KILLED_BY); /* lava damage */
@@ -5085,7 +6513,10 @@ burn_stuff:
 void
 sink_into_lava()
 {
+/*JP
     static const char sink_deeper[] = "You sink deeper into the lava.";
+*/
+    static const char sink_deeper[] = "\82 \82È\82½\82Í\82æ\82è\90[\82­\97n\8aâ\82É\92¾\82ñ\82¾\81D";
 
     if (!u.utrap || u.utraptype != TT_LAVA) {
         ; /* do nothing; this shouldn't happen */
@@ -5102,8 +6533,14 @@ sink_into_lava()
         u.utrap -= (1 << 8);
         if (u.utrap < (1 << 8)) {
             killer.format = KILLED_BY;
+/*JP
             Strcpy(killer.name, "molten lava");
+*/
+            Strcpy(killer.name, "\82Ç\82ë\82Ç\82ë\82Ì\97n\8aâ\82Å");
+/*JP
             You("sink below the surface and die.");
+*/
+            You("\8a®\91S\82É\97n\8aâ\82Ì\92\86\82É\92¾\82ñ\82Å\81A\8e\80\82É\82Ü\82µ\82½\81D\81D\81D");
             burn_away_slime(); /* add insult to injury? */
             done(DISSOLVED);
         } else if (!u.umoved) {
index d41f716..bfd3ff4 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL boolean FDECL(known_hitum, (struct monst *, struct obj *, int *,
@@ -134,7 +139,10 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */
     if (!canspotmon(mtmp) && !glyph_is_warning(glyph_at(bhitpos.x, bhitpos.y))
         && !glyph_is_invisible(levl[bhitpos.x][bhitpos.y].glyph)
         && !(!Blind && mtmp->mundetected && hides_under(mtmp->data))) {
+/*JP
         pline("Wait!  There's %s there you can't see!", something);
+*/
+        pline("\82¿\82å\82Á\82Æ\91Ò\82Á\82½\81I\8ep\82Ì\8c©\82¦\82È\82¢%s\82ª\82¢\82é\81I", something);
         map_invisible(bhitpos.x, bhitpos.y);
         /* if it was an invisible mimic, treat it as if we stumbled
          * onto a visible mimic
@@ -176,10 +184,18 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */
             struct obj *obj;
 
             if (Blind || (is_pool(mtmp->mx, mtmp->my) && !Underwater))
+/*JP
                 pline("Wait!  There's a hidden monster there!");
+*/
+                pline("\91Ò\82Ä\81I\89ö\95¨\82ª\89B\82ê\82Ä\82¢\82é\81I");
             else if ((obj = level.objects[mtmp->mx][mtmp->my]) != 0)
+#if 0 /*JP*/
                 pline("Wait!  There's %s hiding under %s!",
                       an(l_monnam(mtmp)), doname(obj));
+#else
+                pline("\91Ò\82Ä\81I%s\82Ì\89º\82É%s\82ª\89B\82ê\82Ä\82¢\82é\81I",
+                      doname(obj), l_monnam(mtmp));
+#endif
             return TRUE;
         }
     }
@@ -201,7 +217,10 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */
             return FALSE;
         }
         if (canspotmon(mtmp)) {
+/*JP
             Sprintf(qbuf, "Really attack %s?", mon_nam(mtmp));
+*/
+            Sprintf(qbuf, "\96{\93\96\82É%s\82ð\8dU\8c\82\82·\82é\82Ì\81H", mon_nam(mtmp));
             if (!paranoid_query(ParanoidHit, qbuf)) {
                 context.move = 0;
                 return TRUE;
@@ -225,11 +244,17 @@ struct monst *mtmp;
     if (Role_if(PM_KNIGHT) && u.ualign.type == A_LAWFUL
         && (!mtmp->mcanmove || mtmp->msleeping
             || (mtmp->mflee && !mtmp->mavenge))) {
+/*JP
         You("caitiff!");
+*/
+        pline("\82±\82ê\82Í\94Ú\8b¯\82È\8ds\82¢\82¾\81I");
         adjalign(-1);
     } else if (Role_if(PM_SAMURAI) && mtmp->mpeaceful) {
         /* attacking peaceful creatures is bad for the samurai's giri */
+/*JP
         You("dishonorably attack the innocent!");
+*/
+        pline("\96³\8eÀ\82Ì\8eÒ\82ð\8dU\8c\82\82·\82é\82Ì\82Í\95s\96¼\97_\82¾\81I");
         adjalign(-1);
     }
 }
@@ -349,11 +374,17 @@ register struct monst *mtmp;
                 monflee(mtmp, rnd(6), FALSE, FALSE);
                 Strcpy(buf, y_monnam(mtmp));
                 buf[0] = highc(buf[0]);
+/*JP
                 You("stop.  %s is in the way!", buf);
+*/
+                You("\8e~\82Ü\82Á\82½\81D%s\82ª\93¹\82É\82¢\82é\81I", buf);
                 return TRUE;
             } else if ((mtmp->mfrozen || (!mtmp->mcanmove)
                         || (mtmp->data->mmove == 0)) && rn2(6)) {
+/*JP
                 pline("%s doesn't seem to move!", Monnam(mtmp));
+*/
+                pline("%s\82Í\93®\82¯\82È\82¢\82æ\82¤\82¾\81I", Monnam(mtmp));
                 return TRUE;
             } else
                 return FALSE;
@@ -372,12 +403,18 @@ register struct monst *mtmp;
 
     if (Upolyd && noattacks(youmonst.data)) {
         /* certain "pacifist" monsters don't attack */
+/*JP
         You("have no way to attack monsters physically.");
+*/
+        You("\95¨\97\9d\93I\82É\89ö\95¨\82ð\8dU\8c\82\82·\82é\82·\82×\82ª\82È\82¢\81D");
         mtmp->mstrategy &= ~STRAT_WAITMASK;
         goto atk_done;
     }
 
+/*JP
     if (check_capacity("You cannot fight while so heavily loaded.")
+*/
+    if (check_capacity("\82 \82È\82½\82Í\95¨\82ð\82½\82­\82³\82ñ\8e\9d\82¿\82·\82¬\82Ä\90í\82¦\82È\82¢\81D")
         /* consume extra nutrition during combat; maybe pass out */
         || overexertion())
         goto atk_done;
@@ -389,13 +426,23 @@ register struct monst *mtmp;
         unweapon = FALSE;
         if (flags.verbose) {
             if (uwep)
+/*JP
                 You("begin bashing monsters with %s.",
+*/
+                You("%s\82Å\89ö\95¨\82ð\82È\82®\82è\82Â\82¯\82½\81D",
                     yobjnam(uwep, (char *) 0));
             else if (!cantwield(youmonst.data))
+#if 0 /*JP*/
                 You("begin %sing monsters with your %s %s.",
                     Role_if(PM_MONK) ? "strik" : "bash",
                     uarmg ? "gloved" : "bare", /* Del Lamb */
                     makeplural(body_part(HAND)));
+#else
+                You("%s%s\82Å\89ö\95¨\82ð%s\82Â\82¯\82½\81D",
+                    uarmg ? "\83O\83\8d\81[\83u\82ð\95t\82¯\82½" : "\91f",
+                    body_part(HAND),
+                    Role_if(PM_MONK) ? "\91Å\82¿" : "\82È\82®\82è");
+#endif
         }
     }
     exercise(A_STR, TRUE); /* you're exercising muscles */
@@ -445,7 +492,10 @@ struct attack *uattk;
         /* this may need to be generalized if weapons other than
            Stormbringer acquire similar anti-social behavior... */
         if (flags.verbose)
+/*JP
             Your("bloodthirsty blade attacks!");
+*/
+            Your("\95\90\8aí\82Í\8c\8c\82É\8bQ\82¦\82Ä\82¢\82é\81I");
     }
 
     if (!*mhit) {
@@ -627,9 +677,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                     && rnl(4) == 4 - 1) {
                     boolean more_than_1 = (obj->quan > 1L);
 
+#if 0 /*JP*/
                     pline("As you hit %s, %s%s breaks into splinters.",
                           mon_nam(mon), more_than_1 ? "one of " : "",
                           yname(obj));
+#else
+                    pline("%s\82ð\8dU\8c\82\82·\82é\82Æ\81C%s%s\82Í\82±\82Á\82Ï\82Ý\82\82ñ\82É\82È\82Á\82½\81D",
+                          mon_nam(mon), yname(obj),
+                          more_than_1 ? "\82Ì\82Ð\82Æ\82Â" : "");
+#endif
                     if (!more_than_1)
                         uwepgone(); /* set unweapon */
                     useup(obj);
@@ -648,7 +704,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                 } else if (mon->mflee && Role_if(PM_ROGUE) && !Upolyd
                            /* multi-shot throwing is too powerful here */
                            && hand_to_hand) {
+/*JP
                     You("strike %s from behind!", mon_nam(mon));
+*/
+                    You("%s\82ð\94w\8cã\82©\82ç\8dU\8c\82\82µ\82½\81I", mon_nam(mon));
                     tmp += rnd(u.ulevel);
                     hittxt = TRUE;
                 } else if (dieroll == 2 && obj == uwep
@@ -672,8 +731,13 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                      */
                     setmnotwielded(mon, monwep);
                     mon->weapon_check = NEED_WEAPON;
+#if 0 /*JP*/
                     pline("%s from the force of your blow!",
                           Yobjnam2(monwep, "shatter"));
+#else
+                    pline("%s\82Ì%s\82Í\82 \82È\82½\82Ì\88ê\8c\82\82Å\95²\81X\82É\82È\82Á\82½\81I",
+                          Monnam(mon), xname(monwep));
+#endif
                     m_useupall(mon, monwep);
                     /* If someone just shattered MY weapon, I'd flee! */
                     if (rn2(4)) {
@@ -735,7 +799,9 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         } else {
             if (mdat == &mons[PM_SHADE] && !shade_aware(obj)) {
                 tmp = 0;
+#if 0 /*JP*/
                 Strcpy(unconventional, cxname(obj));
+#endif
             } else {
                 switch (obj->otyp) {
                 case BOULDER:         /* 1d20 */
@@ -745,7 +811,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                     break;
                 case MIRROR:
                     if (breaktest(obj)) {
+/*JP
                         You("break %s.  That's bad luck!", ysimple_name(obj));
+*/
+                        You("%s\8b¾\82ð\89ó\82µ\82Ä\82µ\82Ü\82Á\82½\81D\82±\82è\82á\82Ü\82¢\82Á\82½\81I", ysimple_name(obj));
                         change_luck(-2);
                         useup(obj);
                         obj = (struct obj *) 0;
@@ -756,7 +825,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                     tmp = 1;
                     break;
                 case EXPENSIVE_CAMERA:
+/*JP
                     You("succeed in destroying %s.  Congratulations!",
+*/
+                    You("%s\83J\83\81\83\89\82ð\89ó\82·\82±\82Æ\82ª\82Å\82«\82½\81D\82¨\82ß\82Å\82Æ\82¤\81I",
                         ysimple_name(obj));
                     release_camera_demon(obj, u.ux, u.uy);
                     useup(obj);
@@ -765,10 +837,17 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                     if (touch_petrifies(&mons[obj->corpsenm])) {
                         tmp = 1;
                         hittxt = TRUE;
+#if 0 /*JP*/
                         You("hit %s with %s.", mon_nam(mon),
                             corpse_xname(obj, (const char *) 0,
                                          obj->dknown ? CXN_PFX_THE
                                                      : CXN_ARTICLE));
+#else
+                        You("%s\82ð%s\82Å\8dU\8c\82\82µ\82½\81D", mon_nam(mon),
+                            corpse_xname(obj, (const char *) 0,
+                                         obj->dknown ? CXN_PFX_THE
+                                                     : CXN_ARTICLE));
+#endif
                         obj->dknown = 1;
                         if (!munstone(mon, TRUE))
                             minstapetrify(mon, TRUE);
@@ -812,12 +891,20 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
 
                     if (touch_petrifies(&mons[obj->corpsenm])) {
                         /*learn_egg_type(obj->corpsenm);*/
+#if 0 /*JP*/
                         pline("Splat! You hit %s with %s %s egg%s!",
                               mon_nam(mon),
                               obj->known ? "the" : cnt > 1L ? "some" : "a",
                               obj->known ? mons[obj->corpsenm].mname
                                          : "petrifying",
                               plur(cnt));
+#else
+                        pline("\83r\83`\83\83\83b\81I\82 \82È\82½\82Í%s\82É%s%s\82Ì\97\91\82ð\93\8a\82°\82Â\82¯\82½\81I",
+                              mon_nam(mon),
+                              cnt > 1L ? "\82¢\82­\82Â\82©\82Ì" : "",
+                              obj->known ? mons[obj->corpsenm].mname
+                                         : "\90Î\89»");
+#endif
                         obj->known = 1; /* (not much point...) */
                         useup_eggs(obj);
                         if (!munstone(mon, TRUE))
@@ -826,15 +913,27 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                             break;
                         return (boolean) (mon->mhp > 0);
                     } else { /* ordinary egg(s) */
+#if 0 /*JP*/
                         const char *eggp =
                             (obj->corpsenm != NON_PM && obj->known)
                                 ? the(mons[obj->corpsenm].mname)
                                 : (cnt > 1L) ? "some" : "an";
                         You("hit %s with %s egg%s.", mon_nam(mon), eggp,
                             plur(cnt));
+#else
+                        const char *eggp =
+                            (obj->corpsenm != NON_PM && obj->known)
+                                ? mons[obj->corpsenm].mname : "";
+                            You("%s\82É%s%s\97\91\82ð\93\8a\82°\82Â\82¯\82½\81D",
+                                mon_nam(mon), eggp, *eggp ? "\82Ì" : "");
+#endif
                         if (touch_petrifies(mdat) && !stale_egg(obj)) {
+#if 0 /*JP*/
                             pline_The("egg%s %s alive any more...", plur(cnt),
                                       (cnt == 1L) ? "isn't" : "aren't");
+#else
+                            pline("\82à\82¤\97\91\82ª\9bz\89»\82·\82é\82±\82Æ\82Í\82È\82¢\82¾\82ë\82¤\81D\81D\81D");
+#endif
                             if (obj->timed)
                                 obj_stop_timers(obj);
                             obj->otyp = ROCK;
@@ -846,7 +945,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                             if (thrown)
                                 place_object(obj, mon->mx, mon->my);
                         } else {
+/*JP
                             pline("Splat!");
+*/
+                            pline("\83r\83`\83\83\83b\81I");
                             useup_eggs(obj);
                             exercise(A_WIS, FALSE);
                         }
@@ -869,11 +971,21 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                                              : AT_WEAP),
                                  obj)) {
                         if (Blind) {
+#if 0 /*JP*/
                             pline(obj->otyp == CREAM_PIE ? "Splat!"
                                                          : "Splash!");
+#else
+                            pline(obj->otyp == CREAM_PIE ? "\83r\83V\83\83\83b\81I"
+                                                         : "\83s\83`\83\83\83b\81I");
+#endif
                         } else if (obj->otyp == BLINDING_VENOM) {
+#if 0 /*JP*/
                             pline_The("venom blinds %s%s!", mon_nam(mon),
                                       mon->mcansee ? "" : " further");
+#else
+                            pline("\93Å\89t\82Å%s\82Í%s\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I", mon_nam(mon),
+                                  mon->mcansee ? "" : "\82³\82ç\82É");
+#endif
                         } else {
                             char *whom = mon_nam(mon);
                             char *what = The(xname(obj));
@@ -883,10 +995,20 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                             /* note: s_suffix returns a modifiable buffer */
                             if (haseyes(mdat)
                                 && mdat != &mons[PM_FLOATING_EYE])
+#if 0 /*JP*/
                                 whom = strcat(strcat(s_suffix(whom), " "),
                                               mbodypart(mon, FACE));
+#else
+                                whom = strcat(strcat(s_suffix(whom), "\82Ì"),
+                                              mbodypart(mon, FACE));
+#endif
+#if 0 /*JP*/
                             pline("%s %s over %s!", what,
                                   vtense(what, "splash"), whom);
+#else
+                            pline("%s\82Í%s\82É\82Ô\82¿\82Ü\82¯\82ç\82ê\82½\81I",
+                                  what, whom);
+#endif
                         }
                         setmangry(mon);
                         mon->mcansee = 0;
@@ -896,7 +1018,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                         else
                             mon->mblinded += tmp;
                     } else {
+/*JP
                         pline(obj->otyp == CREAM_PIE ? "Splat!" : "Splash!");
+*/
+                        pline(obj->otyp==CREAM_PIE ? "\83r\83V\83\83\83b\81I" : "\83s\83`\83\83\83b\81I");
                         setmangry(mon);
                     }
                     if (thrown)
@@ -909,10 +1034,16 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
                     break;
                 case ACID_VENOM: /* thrown (or spit) */
                     if (resists_acid(mon)) {
+/*JP
                         Your("venom hits %s harmlessly.", mon_nam(mon));
+*/
+                        pline("\93Å\89t\82Í%s\82É\82Í\8cø\89Ê\82ª\82È\82©\82Á\82½\81D", mon_nam(mon));
                         tmp = 0;
                     } else {
+/*JP
                         Your("venom burns %s!", mon_nam(mon));
+*/
+                        Your("\93Å\89t\82Í%s\82ð\8fÄ\82¢\82½\81I", mon_nam(mon));
                         tmp = dmgval(obj, mon);
                     }
                     if (thrown)
@@ -985,10 +1116,16 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         if (nopoison < 2)
             nopoison = 2;
         if (Role_if(PM_SAMURAI)) {
+/*JP
             You("dishonorably use a poisoned weapon!");
+*/
+            You("\95s\96¼\97_\82É\82à\93Å\82Ì\95\90\8aí\82ð\8eg\97p\82µ\82½\81I");
             adjalign(-sgn(u.ualign.type));
         } else if (u.ualign.type == A_LAWFUL && u.ualign.record > -10) {
+/*JP
             You_feel("like an evil coward for using a poisoned weapon.");
+*/
+            You("\93Å\82Ì\95\90\8aí\82ð\8eg\97p\82·\82é\82Ì\82Í\94Ú\8b¯\82¾\82Æ\8a´\82\82½\81D");
             adjalign(-1);
         }
         if (obj && !rn2(nopoison)) {
@@ -1010,10 +1147,14 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         tmp = 0;
         if (mdat == &mons[PM_SHADE]) {
             if (!hittxt) {
+#if 0 /*JP*/
                 const char *what = *unconventional ? unconventional : "attack";
 
                 Your("%s %s harmlessly through %s.", what,
                      vtense(what, "pass"), mon_nam(mon));
+#else
+                Your("\8dU\8c\82\82Í%s\82ð\92Ê\82è\82Ê\82¯\82½\81D", mon_nam(mon));
+#endif
                 hittxt = TRUE;
             }
         } else {
@@ -1024,9 +1165,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
 
     if (jousting) {
         tmp += d(2, (obj == uwep) ? 10 : 2); /* [was in dmgval()] */
+/*JP
         You("joust %s%s", mon_nam(mon), canseemon(mon) ? exclam(tmp) : ".");
+*/
+        You("%s\82É\93Ë\8c\82\82µ\82½%s", mon_nam(mon), canseemon(mon) ? exclam(tmp) : "\81D");
         if (jousting < 0) {
+/*JP
             pline("%s shatters on impact!", Yname2(obj));
+*/
+            Your("%s\82Í\8fÕ\8c\82\82Å\89ó\82ê\82½\81I", xname(obj));
             /* (must be either primary or secondary weapon to get here) */
             u.twoweap = FALSE; /* untwoweapon() is too verbose here */
             if (obj == uwep)
@@ -1048,8 +1195,13 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         if (rnd(100) < P_SKILL(P_BARE_HANDED_COMBAT) && !bigmonst(mdat)
             && !thick_skinned(mdat)) {
             if (canspotmon(mon))
+#if 0 /*JP*/
                 pline("%s %s from your powerful strike!", Monnam(mon),
                       makeplural(stagger(mon->data, "stagger")));
+#else
+                pline("%s\82Í\82 \82È\82½\82Ì\89ï\90S\82Ì\88ê\8c\82\82Å\82æ\82ë\82ß\82¢\82½\81I",
+                      Monnam(mon));
+#endif
             /* avoid migrating a dead monster */
             if (mon->mhp > tmp) {
                 mhurtle(mon, u.dx, u.dy, 1);
@@ -1084,7 +1236,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         && obj && obj == uwep && objects[obj->otyp].oc_material == IRON
         && hand_to_hand) {
         if (clone_mon(mon, 0, 0)) {
+/*JP
             pline("%s divides as you hit it!", Monnam(mon));
+*/
+            pline("\82 \82È\82½\82Ì\8dU\8c\82\82Å%s\82Í\95ª\97ô\82µ\82½\81I", Monnam(mon));
             hittxt = TRUE;
         }
     }
@@ -1095,10 +1250,18 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
         if (thrown)
             hit(mshot_xname(obj), mon, exclam(tmp));
         else if (!flags.verbose)
+/*JP
             You("hit it.");
+*/
+            pline("\8dU\8c\82\82Í\96½\92\86\82µ\82½\81D");
         else
+#if 0 /*JP*/
             You("%s %s%s", Role_if(PM_BARBARIAN) ? "smite" : "hit",
                 mon_nam(mon), canseemon(mon) ? exclam(tmp) : ".");
+#else
+            Your("%s\82Ö\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½%s",
+                 mon_nam(mon), canseemon(mon) ? exclam(tmp) : "\81D");
+#endif
     }
 
     if (silvermsg) {
@@ -1108,23 +1271,45 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
 
         if (canspotmon(mon)) {
             if (barehand_silver_rings == 1)
+/*JP
                 fmt = "Your silver ring sears %s!";
+*/
+                fmt = "%s\82Í\8bâ\82Ì\8ew\97Ö\82Å\8fÄ\82©\82ê\82½\81I";
             else if (barehand_silver_rings == 2)
+/*JP
                 fmt = "Your silver rings sear %s!";
+*/
+                fmt = "%s\82Í\8bâ\82Ì\8ew\97Ö\82Å\8fÄ\82©\82ê\82½\81I";
             else if (silverobj && saved_oname[0]) {
+#if 0 /*JP*/
                 Sprintf(silverobjbuf, "Your %s%s %s %%s!",
                         strstri(saved_oname, "silver") ? "" : "silver ",
                         saved_oname, vtense(saved_oname, "sear"));
+#else
+                Sprintf(silverobjbuf, "%%s\82Í%s%s\82Å\8fÄ\82©\82ê\82½\81I",
+                        strstri(saved_oname, "\8bâ") ?
+                        "" : "\8bâ\82Ì",
+                        saved_oname);
+#endif
                 fmt = silverobjbuf;
             } else
+/*JP
                 fmt = "The silver sears %s!";
+*/
+                fmt = "%s\82Í\8bâ\82Å\8fÄ\82©\82ê\82½\81I";
         } else {
             *whom = highc(*whom); /* "it" -> "It" */
+/*JP
             fmt = "%s is seared!";
+*/
+            fmt = "%s\82Í\8fÄ\82©\82ê\82½\81I";
         }
         /* note: s_suffix returns a modifiable buffer */
         if (!noncorporeal(mdat) && !amorphous(mdat))
+/*JP
             whom = strcat(s_suffix(whom), " flesh");
+*/
+            whom = strcat(s_suffix(whom), "\82Ì\93÷");
         pline(fmt, whom);
     }
     /* if a "no longer poisoned" message is coming, it will be last;
@@ -1137,9 +1322,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
     /* [note: thrown obj might go away during killed/xkilled call] */
 
     if (needpoismsg)
+/*JP
         pline_The("poison doesn't seem to affect %s.", mon_nam(mon));
+*/
+        pline("\93Å\82Í%s\82É\8cø\82©\82È\82©\82Á\82½\82æ\82¤\82¾\81D", mon_nam(mon));
     if (poiskilled) {
+/*JP
         pline_The("poison was deadly...");
+*/
+        pline("\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
         if (!already_killed)
             xkilled(mon, 0);
         destroyed = TRUE; /* return FALSE; */
@@ -1152,12 +1343,19 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
             mon->mconf = 1;
             if (!mon->mstun && mon->mcanmove && !mon->msleeping
                 && canseemon(mon))
+/*JP
                 pline("%s appears confused.", Monnam(mon));
+*/
+                pline("%s\82Í\8d¬\97\90\82µ\82Ä\82¢\82é\82æ\82¤\82¾\81D", Monnam(mon));
         }
     }
     if (unpoisonmsg)
+#if 0 /*JP*/
         Your("%s %s no longer poisoned.", saved_oname,
              vtense(saved_oname, "are"));
+#else
+        Your("%s\82Í\82à\82¤\93Å\82ª\93h\82ç\82ê\82Ä\82¢\82È\82¢\81D", xname(obj));
+#endif
 
     return destroyed ? FALSE : TRUE;
 }
@@ -1210,6 +1408,7 @@ struct attack *mattk;
        protection might fail (33% chance) when the armor is cursed */
     if (obj && (obj->greased || obj->otyp == OILSKIN_CLOAK)
         && (!obj->cursed || rn2(3))) {
+#if 0 /*JP*/
         You("%s %s %s %s!",
             mattk->adtyp == AD_WRAP ? "slip off of"
                                     : "grab, but cannot hold onto",
@@ -1219,9 +1418,21 @@ struct attack *mattk;
             (obj->greased || objects[obj->otyp].oc_name_known)
                 ? xname(obj)
                 : cloak_simple_name(obj));
+#else
+        You("%s\82Ì%s%s%s\81I",
+            mon_nam(mdef), obj->greased ? "\96û\82Ì\93h\82ç\82ê\82½" : "\8a\8a\82è\82â\82·\82¢",
+            (obj->greased || objects[obj->otyp].oc_name_known)
+                ? xname(obj)
+                : cloak_simple_name(obj),
+            mattk->adtyp == AD_WRAP ? "\82Å\8a\8a\82Á\82½"
+                                    : "\82ð\82Â\82©\82Ü\82æ\82¤\82Æ\82µ\82½\82ª\81C\82Å\82«\82È\82©\82Á\82½");
+#endif
 
         if (obj->greased && !rn2(2)) {
+/*JP
             pline_The("grease wears off.");
+*/
+            pline("\96û\82Í\97\8e\82¿\82Ä\82µ\82Ü\82Á\82½\81D");
             obj->greased = 0;
         }
         return TRUE;
@@ -1276,7 +1487,10 @@ demonpet()
     struct permonst *pm;
     struct monst *dtmp;
 
+/*JP
     pline("Some hell-p has arrived!");
+*/
+    pline("\92n\8d\96\82Ì\92\87\8aÔ\82ª\8c»\82í\82ê\82½\81I");
     i = !rn2(6) ? ndemon(u.ualign.type) : NON_PM;
     pm = i != NON_PM ? &mons[i] : youmonst.data;
     if ((dtmp = makemon(pm, u.ux, u.uy, NO_MM_FLAGS)) != 0)
@@ -1342,11 +1556,19 @@ struct attack *mattk;
 
     if (stealoid) { /* we will be taking everything */
         if (gender(mdef) == (int) u.mfemale && youmonst.data->mlet == S_NYMPH)
+/*JP
             You("charm %s.  She gladly hands over her possessions.",
+*/
+            You("%s\82ð\82¤\82Á\82Æ\82è\82³\82¹\82½\81D\94Þ\8f\97\82Í\82æ\82ë\82±\82ñ\82Å\8e\9d\82¿\95¨\82ð\82³\82µ\82¾\82µ\82½\81D",
                 mon_nam(mdef));
         else
+#if 0 /*JP*/
             You("seduce %s and %s starts to take off %s clothes.",
                 mon_nam(mdef), mhe(mdef), mhis(mdef));
+#else
+            You("%s\82ð\97U\98f\82µ\82½\81D%s\82Í\95\9e\82ð\92E\82¬\82Í\82\82ß\82½\81D",
+                mon_nam(mdef), mhe(mdef));
+#endif
     }
 
     while ((otmp = mdef->minvent) != 0) {
@@ -1362,12 +1584,21 @@ struct attack *mattk;
             update_mon_intrinsics(mdef, otmp, FALSE, FALSE);
 
             if (otmp == stealoid) /* special message for final item */
+#if 0 /*JP*/
                 pline("%s finishes taking off %s suit.", Monnam(mdef),
                       mhis(mdef));
+#else
+                pline("%s\82Í\92E\82¬\8fI\82¦\82½\81D", Monnam(mdef));
+#endif
         }
         /* give the object to the character */
+#if 0 /*JP*/
         otmp = hold_another_object(otmp, "You snatched but dropped %s.",
                                    doname(otmp), "You steal: ");
+#else
+        otmp = hold_another_object(otmp, "\82 \82È\82½\82Í%s\82ð\93\90\82ñ\82¾\82ª\97\8e\82Æ\82µ\82½\81D",
+                                   doname(otmp), "\82ð\93\90\82ñ\82¾\81D");
+#endif
         if (otmp->where != OBJ_INVENT)
             continue;
         if (theft_petrifies(otmp))
@@ -1408,8 +1639,12 @@ register struct attack *mattk;
     switch (mattk->adtyp) {
     case AD_STUN:
         if (!Blind)
+#if 0 /*JP*/
             pline("%s %s for a moment.", Monnam(mdef),
                   makeplural(stagger(pd, "stagger")));
+#else
+            pline("%s\82Í\88ê\8fu\82­\82ç\82­\82ç\82µ\82½\81D", Monnam(mdef));
+#endif
         mdef->mstun = 1;
         goto physical;
     case AD_LEGS:
@@ -1456,10 +1691,16 @@ register struct attack *mattk;
             break;
         }
         if (!Blind)
+/*JP
             pline("%s is %s!", Monnam(mdef), on_fire(pd, mattk));
+*/
+            pline("%s\82Í%s\81I", Monnam(mdef), on_fire(mdef->data, mattk));
         if (pd == &mons[PM_STRAW_GOLEM] || pd == &mons[PM_PAPER_GOLEM]) {
             if (!Blind)
+/*JP
                 pline("%s burns completely!", Monnam(mdef));
+*/
+                pline("%s\82Í\8a®\91S\82É\94R\82¦\90s\82«\82½\81I", Monnam(mdef));
             xkilled(mdef, 2);
             tmp = 0;
             break;
@@ -1469,7 +1710,10 @@ register struct attack *mattk;
         tmp += destroy_mitem(mdef, SPBOOK_CLASS, AD_FIRE);
         if (resists_fire(mdef)) {
             if (!Blind)
+/*JP
                 pline_The("fire doesn't heat %s!", mon_nam(mdef));
+*/
+                pline("\89\8a\82Í%s\82É\89e\8b¿\82ª\82È\82¢\81I", mon_nam(mdef));
             golemeffects(mdef, AD_FIRE, tmp);
             shieldeff(mdef->mx, mdef->my);
             tmp = 0;
@@ -1483,11 +1727,17 @@ register struct attack *mattk;
             break;
         }
         if (!Blind)
+/*JP
             pline("%s is covered in frost!", Monnam(mdef));
+*/
+            pline("%s\82Í\95X\82Å\95¢\82í\82ê\82½\81I", Monnam(mdef));
         if (resists_cold(mdef)) {
             shieldeff(mdef->mx, mdef->my);
             if (!Blind)
+/*JP
                 pline_The("frost doesn't chill %s!", mon_nam(mdef));
+*/
+                pline("\95X\82Í%s\82ð\93\80\82ç\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", mon_nam(mdef));
             golemeffects(mdef, AD_COLD, tmp);
             tmp = 0;
         }
@@ -1499,11 +1749,17 @@ register struct attack *mattk;
             break;
         }
         if (!Blind)
+/*JP
             pline("%s is zapped!", Monnam(mdef));
+*/
+            pline("%s\82Í\93d\8c\82\82ð\82­\82ç\82Á\82½\81I", Monnam(mdef));
         tmp += destroy_mitem(mdef, WAND_CLASS, AD_ELEC);
         if (resists_elec(mdef)) {
             if (!Blind)
+/*JP
                 pline_The("zap doesn't shock %s!", mon_nam(mdef));
+*/
+                pline("\93d\8c\82\82Í%s\82É\89e\8b¿\82ð\97^\82¦\82È\82¢\81I", mon_nam(mdef));
             golemeffects(mdef, AD_ELEC, tmp);
             shieldeff(mdef->mx, mdef->my);
             tmp = 0;
@@ -1535,9 +1791,15 @@ register struct attack *mattk;
                 obj_extract_self(mongold);
                 if (merge_choice(invent, mongold) || inv_cnt(FALSE) < 52) {
                     addinv(mongold);
+/*JP
                     Your("purse feels heavier.");
+*/
+                    You("\8dà\95z\82ª\8fd\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
                 } else {
+/*JP
                     You("grab %s's gold, but find no room in your knapsack.",
+*/
+                    You("%s\82Ì\82¨\8bà\82ð\82Â\82©\82ñ\82¾\82ª\81C\8e\9d\82¿\95¨\91Ü\82É\93ü\82ç\82È\82©\82Á\82½\81D",
                         mon_nam(mdef));
                     dropy(mongold);
                 }
@@ -1557,13 +1819,19 @@ register struct attack *mattk;
             Strcpy(nambuf, Monnam(mdef));
             if (u_teleport_mon(mdef, FALSE) && u_saw_mon
                 && !(canseemon(mdef) || (u.uswallow && u.ustuck == mdef)))
+/*JP
                 pline("%s suddenly disappears!", nambuf);
+*/
+                pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", nambuf);
         }
         break;
     case AD_BLND:
         if (can_blnd(&youmonst, mdef, mattk->aatyp, (struct obj *) 0)) {
             if (!Blind && mdef->mcansee)
+/*JP
                 pline("%s is blinded.", Monnam(mdef));
+*/
+                pline("%s\82Í\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D", Monnam(mdef));
             mdef->mcansee = 0;
             tmp += mdef->mblinded;
             if (tmp > 127)
@@ -1576,13 +1844,19 @@ register struct attack *mattk;
         if (night() && !rn2(10) && !mdef->mcan) {
             if (pd == &mons[PM_CLAY_GOLEM]) {
                 if (!Blind)
+/*JP
                     pline("Some writing vanishes from %s head!",
+*/
+                    pline("%s\82Ì\93ª\82É\8f\91\82¢\82Ä\82 \82é\95\8e\9a\82Ì\82¢\82­\82Â\82©\82ª\8fÁ\82¦\82½\81I",
                           s_suffix(mon_nam(mdef)));
                 xkilled(mdef, 0);
                 /* Don't return yet; keep hp<1 and tmp=0 for pet msg */
             } else {
                 mdef->mcan = 1;
+/*JP
                 You("chuckle.");
+*/
+                You("\82­\82·\82­\82·\8fÎ\82Á\82½\81D");
             }
         }
         tmp = 0;
@@ -1590,10 +1864,16 @@ register struct attack *mattk;
     case AD_DRLI:
         if (!negated && !rn2(3) && !resists_drli(mdef)) {
             int xtmp = d(2, 6);
+/*JP
             pline("%s suddenly seems weaker!", Monnam(mdef));
+*/
+            pline("%s\82Í\93Ë\91R\8eã\82­\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82½\81I", Monnam(mdef));
             mdef->mhpmax -= xtmp;
             if ((mdef->mhp -= xtmp) <= 0 || !mdef->m_lev) {
+/*JP
                 pline("%s dies!", Monnam(mdef));
+*/
+                pline("%s\82Í\8e\80\82ñ\82¾\81I", Monnam(mdef));
                 xkilled(mdef, 0);
             } else
                 mdef->m_lev--;
@@ -1602,7 +1882,10 @@ register struct attack *mattk;
         break;
     case AD_RUST:
         if (pd == &mons[PM_IRON_GOLEM]) {
+/*JP
             pline("%s falls to pieces!", Monnam(mdef));
+*/
+            pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
             xkilled(mdef, 0);
         }
         erode_armor(mdef, ERODE_RUST);
@@ -1614,7 +1897,10 @@ register struct attack *mattk;
         break;
     case AD_DCAY:
         if (pd == &mons[PM_WOOD_GOLEM] || pd == &mons[PM_LEATHER_GOLEM]) {
+/*JP
             pline("%s falls to pieces!", Monnam(mdef));
+*/
+            pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
             xkilled(mdef, 0);
         }
         erode_armor(mdef, ERODE_ROT);
@@ -1629,12 +1915,21 @@ register struct attack *mattk;
     case AD_DRDX:
     case AD_DRCO:
         if (!negated && !rn2(8)) {
+/*JP
             Your("%s was poisoned!", mpoisons_subj(&youmonst, mattk));
+*/
+            Your("%s\82Í\93Å\82³\82ê\82Ä\82¢\82é\81I", mpoisons_subj(&youmonst, mattk));
             if (resists_poison(mdef))
+/*JP
                 pline_The("poison doesn't seem to affect %s.", mon_nam(mdef));
+*/
+                pline("\93Å\82Í%s\82É\89e\8b¿\82ð\97^\82¦\82È\82¢\81D", mon_nam(mdef));
             else {
                 if (!rn2(10)) {
+/*JP
                     Your("poison was deadly...");
+*/
+                    Your("\97^\82¦\82½\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
                     tmp = mdef->mhp;
                 } else
                     tmp += rn1(10, 6);
@@ -1645,11 +1940,17 @@ register struct attack *mattk;
         struct obj *helmet;
 
         if (notonhead || !has_head(pd)) {
+/*JP
             pline("%s doesn't seem harmed.", Monnam(mdef));
+*/
+            pline("%s\82Í\8f\9d\82Â\82¢\82½\82æ\82¤\82É\82Í\8c©\82¦\82È\82¢\81D", Monnam(mdef));
             tmp = 0;
             if (!Unchanging && pd == &mons[PM_GREEN_SLIME]) {
                 if (!Slimed) {
+/*JP
                     You("suck in some slime and don't feel very well.");
+*/
+                    You("\83X\83\89\83C\83\80\82ð\8bz\82¢\8eæ\82Á\82Ä\81C\8bï\8d\87\82ª\88«\82­\82È\82Á\82½\81D");
                     make_slimed(10L, (char *) 0);
                 }
             }
@@ -1659,9 +1960,14 @@ register struct attack *mattk;
             break;
 
         if ((helmet = which_armor(mdef, W_ARMH)) != 0 && rn2(8)) {
+#if 0 /*JP*/
             pline("%s %s blocks your attack to %s head.",
                   s_suffix(Monnam(mdef)), helm_simple_name(helmet),
                   mhis(mdef));
+#else
+            pline("%s\82Ì%s\82ª\93ª\82Ö\82Ì\8dU\8c\82\82ð\96h\82¢\82¾\81D",
+                  Monnam(mdef), helm_simple_name(helmet));
+#endif
             break;
         }
 
@@ -1678,22 +1984,36 @@ register struct attack *mattk;
                 if (m_slips_free(mdef, mattk)) {
                     tmp = 0;
                 } else {
+/*JP
                     You("swing yourself around %s!", mon_nam(mdef));
+*/
+                    You("%s\82É\90g\91Ì\82ð\97\8d\82Ý\82Â\82©\82¹\82½\81I", mon_nam(mdef));
                     u.ustuck = mdef;
                 }
             } else if (u.ustuck == mdef) {
                 /* Monsters don't wear amulets of magical breathing */
                 if (is_pool(u.ux, u.uy) && !is_swimmer(pd)
                     && !amphibious(pd)) {
+/*JP
                     You("drown %s...", mon_nam(mdef));
+*/
+                    You("%s\82ð\93M\82ê\82³\82¹\82½\81D\81D\81D", mon_nam(mdef));
                     tmp = mdef->mhp;
                 } else if (mattk->aatyp == AT_HUGS)
+/*JP
                     pline("%s is being crushed.", Monnam(mdef));
+*/
+                    pline("%s\82Í\89\9f\82µ\82Â\82Ô\82³\82ê\82Ä\82¢\82é\81D", Monnam(mdef));
             } else {
                 tmp = 0;
                 if (flags.verbose)
+#if 0 /*JP*/
                     You("brush against %s %s.", s_suffix(mon_nam(mdef)),
                         mbodypart(mdef, LEG));
+#else
+                    You("%s\82Ì%s\82É\90G\82ê\82½\81D", mon_nam(mdef),
+                        mbodypart(mdef, LEG));
+#endif
             }
         } else
             tmp = 0;
@@ -1701,14 +2021,20 @@ register struct attack *mattk;
     case AD_PLYS:
         if (!negated && mdef->mcanmove && !rn2(3) && tmp < mdef->mhp) {
             if (!Blind)
+/*JP
                 pline("%s is frozen by you!", Monnam(mdef));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I", Monnam(mdef));
             paralyze_monst(mdef, rnd(10));
         }
         break;
     case AD_SLEE:
         if (!negated && !mdef->msleeping && sleep_monst(mdef, rnd(10), -1)) {
             if (!Blind)
+/*JP
                 pline("%s is put to sleep by you!", Monnam(mdef));
+*/
+                pline("%s\82Í\93Ë\91R\96°\82è\82É\82¨\82¿\82½\81I", Monnam(mdef));
             slept_monst(mdef);
         }
         break;
@@ -1719,7 +2045,10 @@ register struct attack *mattk;
             if (!munslime(mdef, TRUE) && mdef->mhp > 0) {
                 /* this assumes newcham() won't fail; since hero has
                    a slime attack, green slimes haven't been geno'd */
+/*JP
                 You("turn %s into slime.", mon_nam(mdef));
+*/
+                pline("%s\82Í\83X\83\89\83C\83\80\82É\82È\82Á\82½\81D", mon_nam(mdef));
                 if (newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE))
                     pd = mdef->data;
             }
@@ -1739,13 +2068,19 @@ register struct attack *mattk;
 
             mon_adjust_speed(mdef, -1, (struct obj *) 0);
             if (mdef->mspeed != oldspeed && canseemon(mdef))
+/*JP
                 pline("%s slows down.", Monnam(mdef));
+*/
+                pline("%s\82Í\82Ì\82ë\82­\82È\82Á\82½\81D", Monnam(mdef));
         }
         break;
     case AD_CONF:
         if (!mdef->mconf) {
             if (canseemon(mdef))
+/*JP
                 pline("%s looks confused.", Monnam(mdef));
+*/
+                pline("%s\82Í\8d¬\97\90\82µ\82½\82æ\82¤\82¾\81D", Monnam(mdef));
             mdef->mconf = 1;
         }
         break;
@@ -1757,11 +2092,17 @@ register struct attack *mattk;
     mdef->mstrategy &= ~STRAT_WAITFORU; /* in case player is very fast */
     if ((mdef->mhp -= tmp) < 1) {
         if (mdef->mtame && !cansee(mdef->mx, mdef->my)) {
+/*JP
             You_feel("embarrassed for a moment.");
+*/
+            You("\82µ\82Î\82ç\82­\8d¢\98f\82µ\82½\81D");
             if (tmp)
                 xkilled(mdef, 0); /* !tmp but hp<1: already killed */
         } else if (!flags.verbose) {
+/*JP
             You("destroy it!");
+*/
+            You("\93|\82µ\82½\81I");
             if (tmp)
                 xkilled(mdef, 0);
         } else if (tmp)
@@ -1778,20 +2119,29 @@ register struct attack *mattk;
 {
     register int tmp = d((int) mattk->damn, (int) mattk->damd);
 
+/*JP
     You("explode!");
+*/
+    You("\94\9a\94­\82µ\82½\81I");
     switch (mattk->adtyp) {
         boolean resistance; /* only for cold/fire/elec */
 
     case AD_BLND:
         if (!resists_blnd(mdef)) {
+/*JP
             pline("%s is blinded by your flash of light!", Monnam(mdef));
+*/
+            pline("%s\82Í\82Ü\82Î\82ä\82¢\8cõ\82Å\96Ú\82ª\82­\82ç\82ñ\82¾\81I", Monnam(mdef));
             mdef->mblinded = min((int) mdef->mblinded + tmp, 127);
             mdef->mcansee = 0;
         }
         break;
     case AD_HALU:
         if (haseyes(mdef->data) && mdef->mcansee) {
+/*JP
             pline("%s is affected by your flash of light!", Monnam(mdef));
+*/
+            pline("%s\82Í\82Ü\82Î\82ä\82¢\8cõ\82Å\89e\8b¿\82ð\8eó\82¯\82½\81I", Monnam(mdef));
             mdef->mconf = 1;
         }
         break;
@@ -1805,7 +2155,10 @@ register struct attack *mattk;
         resistance = resists_elec(mdef);
     common:
         if (!resistance) {
+/*JP
             pline("%s gets blasted!", Monnam(mdef));
+*/
+            pline("%s\82Í\94\9a\94­\82ð\97\81\82Ñ\82½\81I", Monnam(mdef));
             mdef->mhp -= tmp;
             if (mdef->mhp <= 0) {
                 killed(mdef);
@@ -1816,7 +2169,10 @@ register struct attack *mattk;
             if (is_golem(mdef->data))
                 golemeffects(mdef, (int) mattk->adtyp, tmp);
             else
+/*JP
                 pline_The("blast doesn't seem to affect %s.", mon_nam(mdef));
+*/
+                pline("\94\9a\94­\82Í%s\82É\89e\8b¿\82ð\97^\82¦\82È\82©\82Á\82½\82æ\82¤\82¾\81D", mon_nam(mdef));
         }
         break;
     default:
@@ -1834,7 +2190,10 @@ struct monst *mdef;
         tmp_at(DISP_ALWAYS, mon_to_glyph(&youmonst));
         tmp_at(mdef->mx, mdef->my);
     }
+/*JP
     You("engulf %s!", mon_nam(mdef));
+*/
+    You("%s\82ð\88ù\82Ý\8d\9e\82ñ\82¾\81I", mon_nam(mdef));
     delay_output();
     delay_output();
 }
@@ -1903,11 +2262,20 @@ register struct attack *mattk;
             case AD_DGST:
                 /* eating a Rider or its corpse is fatal */
                 if (is_rider(pd)) {
+/*JP
                     pline("Unfortunately, digesting any of it is fatal.");
+*/
+                    pline("\8ec\94O\82È\82ª\82ç\81C\82»\82ê\82ð\90H\82×\82é\82Ì\82Í\92v\96½\93I\82È\8aÔ\88á\82¢\82¾\81D");
                     end_engulf();
+#if 0 /*JP*/
                     Sprintf(killer.name, "unwisely tried to eat %s",
                             pd->mname);
                     killer.format = NO_KILLER_PREFIX;
+#else
+                    Sprintf(killer.name, "\8bð\82©\82É\82à%s\82ð\90H\82×\82æ\82¤\82Æ\82µ\82Ä",
+                            pd->mname);
+                    killer.format = KILLED_BY;
+#endif
                     done(DIED);
                     return 0; /* lifesaved */
                 }
@@ -1924,7 +2292,10 @@ register struct attack *mattk;
                 newuhs(FALSE);
                 xkilled(mdef, 2);
                 if (mdef->mhp > 0) { /* monster lifesaved */
+/*JP
                     You("hurriedly regurgitate the sizzling in your %s.",
+*/
+                    You("%s\82Ì\92\86\82Å\83V\83\85\81[\83V\83\85\81[\82Æ\82¢\82¤\89¹\82ð\97§\82Ä\82Ä\82¢\82é\82à\82Ì\82ð\91å\8b}\82¬\82Å\93f\82«\96ß\82µ\82½\81D",
                         body_part(STOMACH));
                 } else {
                     tmp = 1 + (pd->cwt >> 8);
@@ -1934,14 +2305,20 @@ register struct attack *mattk;
                         u.uhunger += (pd->cnutrit + 1) / 2;
                     } else
                         tmp = 0;
+/*JP
                     Sprintf(msgbuf, "You totally digest %s.", mon_nam(mdef));
+*/
+                    Sprintf(msgbuf, "\82 \82È\82½\82Í%s\82ð\8a®\91S\82É\8fÁ\89»\82µ\82½\81D", mon_nam(mdef));
                     if (tmp != 0) {
                         /* setting afternmv = end_engulf is tempting,
                          * but will cause problems if the player is
                          * attacked (which uses his real location) or
                          * if his See_invisible wears off
                          */
+/*JP
                         You("digest %s.", mon_nam(mdef));
+*/
+                        You("%s\82ð\8fÁ\89»\82µ\82Ä\82¢\82é\81D", mon_nam(mdef));
                         if (Slow_digestion)
                             tmp *= 2;
                         nomul(-tmp);
@@ -1950,7 +2327,10 @@ register struct attack *mattk;
                     } else
                         pline1(msgbuf);
                     if (pd == &mons[PM_GREEN_SLIME]) {
+/*JP
                         Sprintf(msgbuf, "%s isn't sitting well with you.",
+*/
+                        Sprintf(msgbuf, "%s\82Í\82 \82È\82½\82Æ\82¤\82Ü\82­\90Ü\82è\8d\87\82¢\82ð\82Â\82¯\82ç\82ê\82È\82¢\82æ\82¤\82¾\81D",
                                 The(pd->mname));
                         if (!Unchanging) {
                             make_slimed(5L, (char *) 0);
@@ -1962,18 +2342,33 @@ register struct attack *mattk;
                 return 2;
             case AD_PHYS:
                 if (youmonst.data == &mons[PM_FOG_CLOUD]) {
+/*JP
                     pline("%s is laden with your moisture.", Monnam(mdef));
+*/
+                    pline("%s\82Í\82 \82È\82½\82Ì\8e¼\8bC\82É\8bê\82µ\82ß\82ç\82ê\82Ä\82¢\82é\81D", Monnam(mdef));
                     if (amphibious(pd) && !flaming(pd)) {
                         dam = 0;
+/*JP
                         pline("%s seems unharmed.", Monnam(mdef));
+*/
+                        pline("%s\82Í\8f\9d\82Â\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D", Monnam(mdef));
                     }
                 } else
+/*JP
                     pline("%s is pummeled with your debris!", Monnam(mdef));
+*/
+                    pline("%s\82Í\8a¢âI\82Å\92É\82ß\82Â\82¯\82ç\82ê\82½\81I", Monnam(mdef));
                 break;
             case AD_ACID:
+/*JP
                 pline("%s is covered with your goo!", Monnam(mdef));
+*/
+                pline("%s\82Í\82Ë\82Î\82Â\82­\82à\82Ì\82Å\95¢\82í\82ê\82½\81I", Monnam(mdef));
                 if (resists_acid(mdef)) {
+/*JP
                     pline("It seems harmless to %s.", mon_nam(mdef));
+*/
+                    pline("\82µ\82©\82µ\81C%s\82Í\82È\82ñ\82Æ\82à\82È\82¢\81D", mon_nam(mdef));
                     dam = 0;
                 }
                 break;
@@ -1981,7 +2376,10 @@ register struct attack *mattk;
                 if (can_blnd(&youmonst, mdef, mattk->aatyp,
                              (struct obj *) 0)) {
                     if (mdef->mcansee)
+/*JP
                         pline("%s can't see in there!", Monnam(mdef));
+*/
+                        pline("%s\82Í\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I", mon_nam(mdef));
                     mdef->mcansee = 0;
                     dam += mdef->mblinded;
                     if (dam > 127)
@@ -1992,10 +2390,16 @@ register struct attack *mattk;
                 break;
             case AD_ELEC:
                 if (rn2(2)) {
+/*JP
                     pline_The("air around %s crackles with electricity.",
+*/
+                    pline("%s\82Ì\89ñ\82è\82Ì\8bó\8bC\82Í\93d\8bC\82Å\83s\83\8a\83s\83\8a\82µ\82Ä\82¢\82é\81D",
                               mon_nam(mdef));
                     if (resists_elec(mdef)) {
+/*JP
                         pline("%s seems unhurt.", Monnam(mdef));
+*/
+                        pline("\82µ\82©\82µ\81C%s\82Í\95½\8bC\82È\82æ\82¤\82¾\81D", Monnam(mdef));
                         dam = 0;
                     }
                     golemeffects(mdef, (int) mattk->adtyp, dam);
@@ -2005,10 +2409,16 @@ register struct attack *mattk;
             case AD_COLD:
                 if (rn2(2)) {
                     if (resists_cold(mdef)) {
+/*JP
                         pline("%s seems mildly chilly.", Monnam(mdef));
+*/
+                        pline("%s\82Í\97â\82¦\82½\82æ\82¤\82¾\81D", Monnam(mdef));
                         dam = 0;
                     } else
+/*JP
                         pline("%s is freezing to death!", Monnam(mdef));
+*/
+                        pline("%s\82Í\93\80\8e\80\82µ\82»\82¤\82¾\81I", Monnam(mdef));
                     golemeffects(mdef, (int) mattk->adtyp, dam);
                 } else
                     dam = 0;
@@ -2016,10 +2426,16 @@ register struct attack *mattk;
             case AD_FIRE:
                 if (rn2(2)) {
                     if (resists_fire(mdef)) {
+/*JP
                         pline("%s seems mildly hot.", Monnam(mdef));
+*/
+                        pline("%s\82Í\92g\82©\82­\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mdef));
                         dam = 0;
                     } else
+/*JP
                         pline("%s is burning to a crisp!", Monnam(mdef));
+*/
+                        pline("%s\82Í\94R\82¦\82Ä\83J\83\89\83J\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
                     golemeffects(mdef, (int) mattk->adtyp, dam);
                 } else
                     dam = 0;
@@ -2036,10 +2452,18 @@ register struct attack *mattk;
                 if (mdef->mhp <= 0) /* not lifesaved */
                     return 2;
             }
+#if 0 /*JP*/
             You("%s %s!", is_animal(youmonst.data) ? "regurgitate" : "expel",
                 mon_nam(mdef));
+#else
+            You("%s\82ð%s\82µ\82½\81I", mon_nam(mdef),
+                is_animal(youmonst.data) ? "\93f\82«\96ß" : "\94r\8fo");
+#endif
             if (Slow_digestion || is_animal(youmonst.data)) {
+/*JP
                 pline("Obviously, you didn't like %s taste.",
+*/
+                pline("\82Ç\82¤\82à%s\82Ì\96¡\82Í\8dD\82«\82É\82È\82ê\82È\82¢\81D",
                       s_suffix(mon_nam(mdef)));
             }
         }
@@ -2057,11 +2481,20 @@ boolean wouldhavehit;
         Your("armor is rather cumbersome...");
 
     if (could_seduce(&youmonst, mdef, mattk))
+/*JP
         You("pretend to be friendly to %s.", mon_nam(mdef));
+*/
+        You("%s\82É\97F\8dD\93I\82È\82Ó\82è\82ð\82µ\82½\81D", mon_nam(mdef));
     else if (canspotmon(mdef) && flags.verbose)
+/*JP
         You("miss %s.", mon_nam(mdef));
+*/
+        Your("%s\82Ö\82Ì\8dU\8c\82\82Í\8aO\82ê\82½\81D", mon_nam(mdef));
     else
+/*JP
         You("miss it.");
+*/
+        Your("\89½\8eÒ\82©\82Ö\82Ì\8dU\8c\82\82Í\8aO\82ê\82½\81D");
     if (!mdef->msleeping && mdef->mcanmove)
         wakeup(mdef);
 }
@@ -2135,11 +2568,19 @@ register struct monst *mon;
 
                 if (!u.uswallow
                     && (compat = could_seduce(&youmonst, mon, mattk))) {
+#if 0 /*JP*/
                     You("%s %s %s.",
                         mon->mcansee && haseyes(mon->data) ? "smile at"
                                                            : "talk to",
                         mon_nam(mon),
                         compat == 2 ? "engagingly" : "seductively");
+#else
+                    You("%s\82Ö%s%s\81D",
+                        mon_nam(mon),
+                        compat == 2 ? "\96£\97Í\93I\82É" : "\97U\98f\93I\82É",
+                        mon->mcansee && haseyes(mon->data) ? "\94÷\8fÎ\82Ý\82©\82¯\82½"
+                                                           : "\98b\82µ\82©\82¯\82½");
+#endif
                     /* doesn't anger it; no wakeup() */
                     sum[i] = damageum(mon, mattk);
                     break;
@@ -2149,24 +2590,48 @@ register struct monst *mon;
                 if (mon->data == &mons[PM_SHADE]
                     && !(mattk->aatyp == AT_KICK && uarmf
                          && uarmf->blessed)) {
+/*JP
                     Your("attack passes harmlessly through %s.",
+*/
+                    Your("\8dU\8c\82\82Í%s\82ð\82·\82Á\82Æ\92Ê\82è\82Ê\82¯\82½\81D",
                          mon_nam(mon));
                     break;
                 }
                 if (mattk->aatyp == AT_KICK)
+/*JP
                     You("kick %s.", mon_nam(mon));
+*/
+                    You("%s\82ð\8fR\82Á\82½\81D", mon_nam(mon));
                 else if (mattk->aatyp == AT_BITE)
+/*JP
                     You("bite %s.", mon_nam(mon));
+*/
+                    You("%s\82É\8a\9a\82Ý\82Â\82¢\82½\81D", mon_nam(mon));
                 else if (mattk->aatyp == AT_STNG)
+/*JP
                     You("sting %s.", mon_nam(mon));
+*/
+                    You("%s\82É\93Ë\82«\82³\82µ\82½\81D", mon_nam(mon));
                 else if (mattk->aatyp == AT_BUTT)
+/*JP
                     You("butt %s.", mon_nam(mon));
+*/
+                    You("%s\82É\93ª\93Ë\82«\82ð\82­\82ç\82í\82µ\82½\81D", mon_nam(mon));
                 else if (mattk->aatyp == AT_TUCH)
+/*JP
                     You("touch %s.", mon_nam(mon));
+*/
+                    You("%s\82É\90G\82ê\82½\81D", mon_nam(mon));
                 else if (mattk->aatyp == AT_TENT)
+/*JP
                     Your("tentacles suck %s.", mon_nam(mon));
+*/
+                    Your("\90G\8eè\82ª%s\82Ì\91Ì\89t\82ð\8bz\82¢\82Æ\82Á\82½\81D", mon_nam(mon));
                 else
+/*JP
                     You("hit %s.", mon_nam(mon));
+*/
+                    Your("%s\82Ö\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½\81D", mon_nam(mon));
                 sum[i] = damageum(mon, mattk);
             } else {
                 missum(mon, mattk, (tmp + armorpenalty > dieroll));
@@ -2180,14 +2645,26 @@ register struct monst *mon;
             dhit = 1;
             wakeup(mon);
             if (mon->data == &mons[PM_SHADE])
+/*JP
                 Your("hug passes harmlessly through %s.", mon_nam(mon));
+*/
+                You("%s\82ð\82Â\82©\82Ü\82¦\82æ\82¤\82Æ\82µ\82½\82ª\92Ê\82è\82Ê\82¯\82½\81D", mon_nam(mon));
             else if (!sticks(mon->data) && !u.uswallow) {
                 if (mon == u.ustuck) {
+#if 0 /*JP*/
                     pline("%s is being %s.", Monnam(mon),
                           u.umonnum == PM_ROPE_GOLEM ? "choked" : "crushed");
+#else
+                    pline("%s\82Í%s\81D", Monnam(mon),
+                          u.umonnum==PM_ROPE_GOLEM ? "\8eñ\82ð\8di\82ß\82ç\82ê\82Ä\82¢\82é"
+                                                   : "\89\9f\82µ\82Â\82Ô\82³\82ê\82Ä\82¢\82é");
+#endif
                     sum[i] = damageum(mon, mattk);
                 } else if (i >= 2 && sum[i - 1] && sum[i - 2]) {
+/*JP
                     You("grab %s!", mon_nam(mon));
+*/
+                    You("%s\82ð\82Â\82©\82Ü\82¦\82½\81I", mon_nam(mon));
                     u.ustuck = mon;
                     sum[i] = damageum(mon, mattk);
                 }
@@ -2206,13 +2683,19 @@ register struct monst *mon;
             if ((dhit = (tmp > rnd(20 + i)))) {
                 wakeup(mon);
                 if (mon->data == &mons[PM_SHADE])
+/*JP
                     Your("attempt to surround %s is harmless.", mon_nam(mon));
+*/
+                    You("%s\82ð\88ù\82Ý\82±\82à\82¤\82Æ\82µ\82½\82ª\8e¸\94s\82µ\82½\81D", mon_nam(mon));
                 else {
                     sum[i] = gulpum(mon, mattk);
                     if (sum[i] == 2 && (mon->data->mlet == S_ZOMBIE
                                         || mon->data->mlet == S_MUMMY)
                         && rn2(5) && !Sick_resistance) {
+/*JP
                         You_feel("%ssick.", (Sick) ? "very " : "");
+*/
+                        You_feel("%s\8bC\95ª\82ª\88«\82¢\81D", (Sick) ? "\82Æ\82Ä\82à" : "");
                         mdamageu(mon, rnd(8));
                     }
                 }
@@ -2307,10 +2790,16 @@ boolean wep_was_destroyed;
     case AD_ACID:
         if (mhit && rn2(2)) {
             if (Blind || !flags.verbose)
+/*JP
                 You("are splashed!");
+*/
+                You("\89½\82©\82ð\97\81\82Ñ\82¹\82ç\82ê\82½\81I");
             else
+/*JP
                 You("are splashed by %s acid!", s_suffix(mon_nam(mon)));
-
+*/
+                You("%s\82Ì\8e_\82ð\97\81\82Ñ\82¹\82ç\82ê\82½\81I", s_suffix(mon_nam(mon)));
             if (!Acid_resistance)
                 mdamageu(mon, tmp);
             if (!rn2(30))
@@ -2377,9 +2866,15 @@ boolean wep_was_destroyed;
         /* wrath of gods for attacking Oracle */
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("A hail of magic missiles narrowly misses you!");
+*/
+            pline("\96\82\96@\82Ì\96î\82Ì\89J\82ð\82È\82ñ\82Æ\82©\82©\82í\82µ\82½\81I");
         } else {
+/*JP
             You("are hit by magic missiles appearing from thin air!");
+*/
+            pline("\93Ë\94@\8bó\92\86\82É\8c»\82í\82ê\82½\96\82\96@\82Ì\96î\82ª\96½\92\86\82µ\82½\81I");
             mdamageu(mon, tmp);
         }
         break;
@@ -2412,32 +2907,52 @@ boolean wep_was_destroyed;
                     break;
                 }
                 if (mon->mcansee) {
+/*JP
                     if (ureflects("%s gaze is reflected by your %s.",
+*/
+                    if (ureflects("%s\82Ì\82É\82ç\82Ý\82Í%s\82É\82æ\82Á\82Ä\94½\8eË\82³\82ê\82½\81D",
                                   s_suffix(Monnam(mon)))) {
                         ;
                     } else if (Free_action) {
+/*JP
                         You("momentarily stiffen under %s gaze!",
+*/
+                        You("%s\82Ì\82É\82ç\82Ý\82Å\88ê\8fu\8dd\92¼\82µ\82½\81I",
                             s_suffix(mon_nam(mon)));
                     } else if (Hallucination && rn2(4)) {
                         pline("%s looks %s%s.", Monnam(mon),
                               !rn2(2) ? "" : "rather ",
                               !rn2(2) ? "numb" : "stupified");
                     } else {
+/*JP
                         You("are frozen by %s gaze!", s_suffix(mon_nam(mon)));
+*/
+                        You("%s\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82­\82È\82Á\82½\81I", mon_nam(mon));
                         nomul((ACURR(A_WIS) > 12 || rn2(4)) ? -tmp : -127);
                         multi_reason = "frozen by a monster's gaze";
                         nomovemsg = 0;
                     }
                 } else {
+#if 0 /*JP*/
                     pline("%s cannot defend itself.",
                           Adjmonnam(mon, "blind"));
+#else
+                    pline("%s\82Í\96h\8cä\82Å\82«\82È\82¢\81D",
+                          Adjmonnam(mon,"\96Ú\82Ì\8c©\82¦\82È\82¢"));
+#endif
                     if (!rn2(500))
                         change_luck(-1);
                 }
             } else if (Free_action) {
+/*JP
                 You("momentarily stiffen.");
+*/
+                You("\88ê\8fu\8dd\92¼\82µ\82½\81D");
             } else { /* gelatinous cube */
+/*JP
                 You("are frozen by %s!", mon_nam(mon));
+*/
+                You("%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82­\82È\82Á\82½\81I", mon_nam(mon));
                 nomovemsg = You_can_move_again;
                 nomul(-tmp);
                 multi_reason = "frozen by a monster";
@@ -2448,11 +2963,17 @@ boolean wep_was_destroyed;
             if (monnear(mon, u.ux, u.uy)) {
                 if (Cold_resistance) {
                     shieldeff(u.ux, u.uy);
+/*JP
                     You_feel("a mild chill.");
+*/
+                    You("\8a¦\82³\82ð\8a´\82\82½\81D");
                     ugolemeffects(AD_COLD, tmp);
                     break;
                 }
+/*JP
                 You("are suddenly very cold!");
+*/
+                You("\93Ë\91R\81C\96Ò\97ó\82É\8a¦\82­\82È\82Á\82½\81I");
                 mdamageu(mon, tmp);
                 /* monster gets stronger with your heat! */
                 mon->mhp += tmp / 2;
@@ -2471,22 +2992,34 @@ boolean wep_was_destroyed;
             if (monnear(mon, u.ux, u.uy)) {
                 if (Fire_resistance) {
                     shieldeff(u.ux, u.uy);
+/*JP
                     You_feel("mildly warm.");
+*/
+                    You("\92g\82©\82³\82ð\8a´\82\82½\81D");
                     ugolemeffects(AD_FIRE, tmp);
                     break;
                 }
+/*JP
                 You("are suddenly very hot!");
+*/
+                You("\93Ë\91R\81C\96Ò\97ó\82É\94M\82­\82È\82Á\82½\81I");
                 mdamageu(mon, tmp); /* fire damage */
             }
             break;
         case AD_ELEC:
             if (Shock_resistance) {
                 shieldeff(u.ux, u.uy);
+/*JP
                 You_feel("a mild tingle.");
+*/
+                You("\83s\83\8a\83s\83\8a\82Æá\83\82ê\82ð\8a´\82\82½\81D");
                 ugolemeffects(AD_ELEC, tmp);
                 break;
             }
+/*JP
             You("are jolted with electricity!");
+*/
+            You("\93d\8bC\83V\83\87\83b\83N\82ð\82¤\82¯\82½\81I");
             mdamageu(mon, tmp);
             break;
         default:
@@ -2554,7 +3087,10 @@ struct attack *mattk;     /* null means we find one internally */
         if (!mon->mcan) {
             if (drain_item(obj) && carried(obj)
                 && (obj->known || obj->oclass == ARMOR_CLASS)) {
+/*JP
                 pline("%s less effective.", Yobjnam2(obj, "seem"));
+*/
+                Your("%s\82©\82ç\96\82\97Í\82ª\8fÁ\82¦\82½\82æ\82¤\82¾\81D", xname(obj));
             }
             break;
         }
@@ -2571,7 +3107,10 @@ void
 stumble_onto_mimic(mtmp)
 struct monst *mtmp;
 {
+/*JP
     const char *fmt = "Wait!  That's %s!", *generic = "a monster", *what = 0;
+*/
+    const char *fmt = "\82¿\82å\82Á\82Æ\82Ü\82Á\82½\81I%s\82¾\81I", *generic = "\89ö\95¨", *what = 0;
 
     if (!u.ustuck && !mtmp->mflee && dmgtype(mtmp->data, AD_STCK))
         u.ustuck = mtmp;
@@ -2586,9 +3125,15 @@ struct monst *mtmp;
 
         if (glyph_is_cmap(glyph) && (glyph_to_cmap(glyph) == S_hcdoor
                                      || glyph_to_cmap(glyph) == S_vcdoor))
+/*JP
             fmt = "The door actually was %s!";
+*/
+            fmt = "\94à\82Í\8eÀ\8dÛ\82É\82Í%s\82¾\82Á\82½\81I";
         else if (glyph_is_object(glyph) && glyph_to_obj(glyph) == GOLD_PIECE)
+/*JP
             fmt = "That gold was %s!";
+*/
+            fmt = "\8bà\89Ý\82Í%s\82¾\82Á\82½\81I";
 
         /* cloned Wiz starts out mimicking some other monster and
            might make himself invisible before being revealed */
@@ -2618,14 +3163,26 @@ struct monst *mon;
         return;
     if (u.umconf == 1) {
         if (Blind)
+/*JP
             Your("%s stop tingling.", hands);
+*/
+            Your("%s\82Ìá\83\82ê\82ª\82Æ\82ê\82½\81D", hands);
         else
+/*JP
             Your("%s stop glowing %s.", hands, hcolor(NH_RED));
+*/
+            Your("%s\82Ì%s\8bP\82«\82Í\82È\82­\82È\82Á\82½\81D", hands, hcolor(NH_RED));
     } else {
         if (Blind)
+/*JP
             pline_The("tingling in your %s lessens.", hands);
+*/
+            pline("%s\82Ìá\83\82ê\82ª\82Æ\82ê\82Ä\82«\82½\81D",hands);
         else
+/*JP
             Your("%s no longer glow so brightly %s.", hands, hcolor(NH_RED));
+*/
+            Your("%s\82Ì%s\8bP\82«\82ª\82È\82­\82È\82Á\82Ä\82«\82½\81D",hands, hcolor(NH_RED));
     }
     u.umconf--;
 }
@@ -2640,14 +3197,20 @@ struct obj *otmp; /* source of flash */
     if (mtmp->msleeping) {
         mtmp->msleeping = 0;
         if (useeit) {
+/*JP
             pline_The("flash awakens %s.", mon_nam(mtmp));
+*/
+            pline("\91M\8cõ\82Å%s\82ª\96Ú\82ð\8ao\82Ü\82µ\82½\81D", mon_nam(mtmp));
             res = 1;
         }
     } else if (mtmp->data->mlet != S_LIGHT) {
         if (!resists_blnd(mtmp)) {
             tmp = dist2(otmp->ox, otmp->oy, mtmp->mx, mtmp->my);
             if (useeit) {
+/*JP
                 pline("%s is blinded by the flash!", Monnam(mtmp));
+*/
+                pline("%s\82Í\91M\8cõ\82Å\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I", Monnam(mtmp));
                 res = 1;
             }
             if (mtmp->data == &mons[PM_GREMLIN]) {
@@ -2674,8 +3237,13 @@ light_hits_gremlin(mon, dmg)
 struct monst *mon;
 int dmg;
 {
+#if 0 /*JP*/
     pline("%s %s!", Monnam(mon),
           (dmg > mon->mhp / 2) ? "wails in agony" : "cries out in pain");
+#else
+    pline("%s\82Í%s\81I", Monnam(mon),
+          (dmg > mon->mhp / 2) ? "\8bê\92É\82Ì\90º\82ð\82 \82°\82½" : "\8c\83\92É\82Å\8b©\82ñ\82¾");
+#endif
     if ((mon->mhp -= dmg) <= 0) {
         if (context.mon_moving)
             monkilled(mon, (char *) 0, AD_BLND);
index 5b73dad..22e1c01 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL struct monst *NDECL(findgd);
@@ -92,9 +97,15 @@ boolean forceshow;
         egrd->fcbeg++;
     }
     if (sawcorridor)
+/*JP
         pline_The("corridor disappears.");
+*/
+        pline("\92Ê\98H\82Í\8fÁ\82¦\82½\81D");
     if (IS_ROCK(levl[u.ux][u.uy].typ))
+/*JP
         You("are encased in rock.");
+*/
+        You("\90Î\82É\82Â\82Â\82Ü\82ê\82½\81D");
     return TRUE;
 }
 
@@ -335,10 +346,17 @@ invault()
         reset_faint(); /* if fainted - wake up */
         gsensed = !canspotmon(guard);
         if (!gsensed)
+#if 0 /*JP*/
             pline("Suddenly one of the Vault's %s enters!",
                   makeplural(guard->data->mname));
+#else
+            pline("\93Ë\91R\81C\91q\8cÉ\82Ì\94Ô\95º\82ª\93ü\82Á\82Ä\82«\82½\81I");
+#endif
         else
+/*JP
             pline("Someone else has entered the Vault.");
+*/
+            pline("\92N\82©\82ª\91q\8cÉ\82É\93ü\82Á\82Ä\82«\82½\81D");
         newsym(guard->mx, guard->my);
         if (u.uswallow) {
             /* can't interrogate hero, don't interrogate engulfer */
@@ -351,10 +369,16 @@ invault()
         if (youmonst.m_ap_type == M_AP_OBJECT || u.uundetected) {
             if (youmonst.m_ap_type == M_AP_OBJECT
                 && youmonst.mappearance != GOLD_PIECE)
+/*JP
                 verbalize("Hey! Who left that %s in here?",
+*/
+                verbalize("\82¨\82¢\81I\82¾\82ê\82ª\82±\82Ì%s\82ð\82±\82±\82É\92u\82¢\82Ä\8ds\82Á\82½\82ñ\82¾\81H",
                           mimic_obj_name(&youmonst));
             /* You're mimicking some object or you're hidden. */
+/*JP
             pline("Puzzled, %s turns around and leaves.", mhe(guard));
+*/
+            pline("%s\82Í\8d¢\98f\82µ\82È\82ª\82ç\81C\8cü\82«\92¼\82Á\82Ä\8b\8e\82Á\82Ä\82¢\82Á\82½\81D", mhe(guard));
             mongone(guard);
             return;
         }
@@ -362,7 +386,10 @@ invault()
             /* [we ought to record whether this this message has already
                been given in order to vary it upon repeat visits, but
                discarding the monster and its egd data renders that hard] */
+/*JP
             verbalize("I'll be back when you're ready to speak to me!");
+*/
+            verbalize("\98b\82¹\82é\82æ\82¤\82É\82È\82Á\82½\82ç\96ß\82Á\82Ä\82«\82Ä\82â\82é\81I");
             mongone(guard);
             return;
         }
@@ -374,9 +401,16 @@ invault()
         }
         trycount = 5;
         do {
+/*JP
             getlin("\"Hello stranger, who are you?\" -", buf);
+*/
+            getlin("\81u\8c©\82È\82¢\8aç\82¾\82È\81C\82¨\82Ü\82¦\82Í\92N\82¾\81H\81v-", buf);
             (void) mungspaces(buf);
+#if 0 /*JP*/
         } while (!letter(buf[0]) && --trycount > 0);
+#else
+        } while (!letter(buf[0]) && !is_kanji(buf[0]) && --trycount > 0);
+#endif
 
         if (u.ualign.type == A_LAWFUL
             /* ignore trailing text, in case player includes rank */
@@ -384,15 +418,27 @@ invault()
             adjalign(-1); /* Liar! */
         }
 
+#if 0 /*JP*/
         if (!strcmpi(buf, "Croesus") || !strcmpi(buf, "Kroisos")
             || !strcmpi(buf, "Creosote")) {
+#else
+    if (!strcmpi(buf, "Croesus") || !strcmpi(buf, "Kroisos")
+        || !strcmpi(buf, "Creosote")
+        || !strcmp(buf, "\83N\83\8d\83C\83\\83X") || !strcmp(buf, "\83N\83\8c\83I\83\\81[\83g")) {
+#endif
             if (!mvitals[PM_CROESUS].died) {
                 verbalize(
+/*JP
                     "Oh, yes, of course.  Sorry to have disturbed you.");
+*/
+                    "\82¢\82â\81C\82±\82è\82á\81C\82¦\81[\82Æ\81C\82¨\91\9b\82ª\82¹\82µ\82Ü\82µ\82½\81D");
                 mongone(guard);
             } else {
                 setmangry(guard);
+/*JP
                 verbalize("Back from the dead, are you?  I'll remedy that!");
+*/
+                verbalize("\82Ù\82¤\81I\8e\80\82Ì\90¢\8aE\82©\82ç\96ß\82Á\82Ä\82«\82½\82Ì\82©\81H\82¤\82»\82È\82ç\8fã\8eè\82É\82Â\82¯\81I");
                 /* don't want guard to waste next turn wielding a weapon */
                 if (!MON_WEP(guard)) {
                     guard->weapon_check = NEED_HTH_WEAPON;
@@ -401,18 +447,33 @@ invault()
             }
             return;
         }
+/*JP
         verbalize("I don't know you.");
+*/
+        verbalize("\92m\82ç\82ñ\82È\81D");
         umoney = money_cnt(invent);
         if (Deaf) {
             ;
         } else if (!umoney && !hidden_gold()) {
+/*JP
             verbalize("Please follow me.");
+*/
+            verbalize("\8e\84\82Ì\8cã\82É\82Â\82¢\82Ä\82«\82È\82³\82¢\81D");
         } else {
             if (!umoney)
+/*JP
                 verbalize("You have hidden gold.");
+*/
+                verbalize("\82Ü\82¾\8bà\89Ý\82ð\89B\82µ\82Ä\82é\82È\81D");
             verbalize(
+/*JP
                 "Most likely all your gold was stolen from this vault.");
+*/
+                "\91q\8cÉ\82©\82ç\93\90\82ñ\82¾\8bà\89Ý\82ª\82 \82é\82¾\82ë\82¤\81D");
+/*JP
             verbalize("Please drop that gold and follow me.");
+*/
+            verbalize("\82»\82ê\82ð\82»\82Á\82­\82è\96ß\82µ\82Ä\82©\82ç\81C\8e\84\82Ì\8cã\82É\82Â\82¢\82Ä\82«\82È\82³\82¢\81D");
         }
         EGD(guard)->gdx = gx;
         EGD(guard)->gdy = gy;
@@ -521,13 +582,25 @@ struct monst *grd;
 
     if (movedgold || fixed) {
         if (in_fcorridor(grd, grd->mx, grd->my) || cansee(grd->mx, grd->my))
+/*JP
             pline("%s whispers an incantation.", noit_Monnam(grd));
+*/
+            pline("%s\82Í\8eô\95\82ð\82³\82³\82â\82¢\82½\81D", noit_Monnam(grd));
         else
+/*JP
             You_hear("a distant chant.");
+*/
+            You_hear("\89\93\95û\82Å\82Ì\8eô\95\82ð\95·\82¢\82½\81D");
         if (movedgold)
+/*JP
             pline("A mysterious force moves the gold into the vault.");
+*/
+            pline("\95s\8ev\8bc\82È\97Í\82ª\8bà\89Ý\82ð\91q\8cÉ\82Ö\89^\82ñ\82¾\81D");
         if (fixed)
+/*JP
             pline_The("damaged vault's walls are magically restored!");
+*/
+            pline("\8f\9d\82Â\82¢\82½\91q\8cÉ\82Ì\95Ç\82Í\96\82\96@\82Å\95\9c\8c³\82³\82ê\82½\81I");
     }
 }
 
@@ -587,16 +660,27 @@ register struct monst *grd;
     if (egrd->fcend == 1) {
         if (u_in_vault && (u_carry_gold || um_dist(grd->mx, grd->my, 1))) {
             if (egrd->warncnt == 3 && !Deaf)
+#if 0 /*JP*/
                 verbalize("I repeat, %sfollow me!",
                           u_carry_gold
                               ? (!umoney ? "drop that hidden money and "
                                          : "drop that money and ")
                               : "");
+#else
+                verbalize("\8cJ\82è\95Ô\82·\81I%s\8e\84\82É\82Â\82¢\82Ä\82±\82¢\81I",
+                          u_carry_gold
+                              ? (!umoney ? "\89B\82µ\8e\9d\82Á\82Ä\82é\8bà\82ð\92u\82¢\82Ä"
+                                         : "\8bà\82ð\92u\82¢\82Ä")
+                              : "");
+#endif
             if (egrd->warncnt == 7) {
                 m = grd->mx;
                 n = grd->my;
                 if (!Deaf)
+/*JP
                     verbalize("You've been warned, knave!");
+*/
+                    verbalize("\8cx\8d\90\82Í\82µ\82½\82¼\81C\88«\93}\82ß\81I");
                 mnexto(grd);
                 levl[m][n].typ = egrd->fakecorr[0].ftyp;
                 newsym(m, n);
@@ -619,17 +703,30 @@ register struct monst *grd;
                 grd->mpeaceful = 0;
             letknow:
                 if (!cansee(grd->mx, grd->my) || !mon_visible(grd))
+/*JP
                     You_hear("the shrill sound of a guard's whistle.");
+*/
+                    You_hear("\94Ô\95º\82Ì\89s\82¢\93J\82Ì\89¹\82ð\95·\82¢\82½\81D");
                 else
+#if 0 /*JP*/
                     You(um_dist(grd->mx, grd->my, 2)
                             ? "see %s approaching."
                             : "are confronted by %s.",
                         /* "an angry guard" */
                         x_monnam(grd, ARTICLE_A, "angry", 0, FALSE));
+#else
+                    You(um_dist(grd->mx, grd->my, 2)
+                        ? "%s\82ª\8bß\82Ã\82¢\82Ä\82­\82é\82Ì\82ð\8c©\82½\81D"
+                        : "%s\82Æ\91Î\9b³\82µ\82½\81D",
+                        x_monnam(grd, ARTICLE_A, "\93{\82Á\82½", 0, FALSE));
+#endif
                 return -1;
             } else {
                 if (!Deaf)
+/*JP
                     verbalize("Well, begone.");
+*/
+                    verbalize("\97§\82¿\8b\8e\82ê\81D");
                 wallify_vault(grd);
                 egrd->gddone = 1;
                 goto cleanup;
@@ -642,7 +739,10 @@ register struct monst *grd;
             && !egrd->gddone && !in_fcorridor(grd, u.ux, u.uy)
             && levl[egrd->fakecorr[0].fx][egrd->fakecorr[0].fy].typ
                    == egrd->fakecorr[0].ftyp) {
+/*JP
             pline("%s, confused, disappears.", noit_Monnam(grd));
+*/
+            pline("%s\82Í\8d¬\97\90\82µ\81C\8fÁ\82¦\82½\81D", noit_Monnam(grd));
             disappear_msg_seen = TRUE;
             goto cleanup;
         }
@@ -656,11 +756,17 @@ register struct monst *grd;
             if (egrd->warncnt < 6) {
                 egrd->warncnt = 6;
                 if (!Deaf)
+/*JP
                     verbalize("Drop all your gold, scoundrel!");
+*/
+                    verbalize("\8bà\82ð\91S\95\94\92u\82¢\82Ä\82ä\82¯\81C\82È\82ç\82¸\82à\82Ì\81I");
                 return 0;
             } else {
                 if (!Deaf)
+/*JP
                     verbalize("So be it, rogue!");
+*/
+                    verbalize("\93\90\90l\82ß\81I");
                 grd->mpeaceful = 0;
                 return -1;
             }
@@ -687,7 +793,10 @@ register struct monst *grd;
             /* just for insurance... */
             if (MON_AT(m, n) && m != grd->mx && n != grd->my) {
                 if (!Deaf)
+/*JP
                     verbalize("Out of my way, scum!");
+*/
+                    verbalize("\96Ú\82Ì\91O\82©\82ç\8fÁ\82¦\82ë\81C\83N\83\\82Á\82½\82ê\81I");
                 (void) rloc(m_at(m, n), FALSE);
             }
             remove_monster(grd->mx, grd->my);
@@ -696,8 +805,13 @@ register struct monst *grd;
             mpickgold(grd); /* does a newsym */
         }
         if (cansee(m, n))
+#if 0 /*JP*/
             pline("%s%s picks up the gold.", Monnam(grd),
                   grd->mpeaceful ? " calms down and" : "");
+#else
+            pline("%s\82Í%s\8bà\89Ý\82ð\8fE\82Á\82½\81D", Monnam(grd),
+                  grd->mpeaceful ? "\93{\82è\82ð\90Ã\82ß" : "");
+#endif
         if (x != grd->mx || y != grd->my) {
             remove_monster(grd->mx, grd->my);
             newsym(grd->mx, grd->my);
@@ -712,7 +826,10 @@ register struct monst *grd;
     if (um_dist(grd->mx, grd->my, 1) || egrd->gddone) {
         if (!egrd->gddone && !rn2(10) && !Deaf && !u.uswallow
             && !(u.ustuck && !sticks(youmonst.data)))
+/*JP
             verbalize("Move along!");
+*/
+            verbalize("\97£\82ê\82é\82È\81I");
         restfakecorr(grd);
         return 0; /* didn't move */
     }
@@ -833,7 +950,10 @@ newpos:
         restfakecorr(grd);
         if (!semi_dead && (in_fcorridor(grd, u.ux, u.uy) || cansee(x, y))) {
             if (!disappear_msg_seen && see_guard)
+/*JP
                 pline("Suddenly, %s disappears.", noit_mon_nam(grd));
+*/
+                pline("\93Ë\91R\81C%s\82Í\8fÁ\82¦\82½\81D", noit_mon_nam(grd));
             return 1;
         }
         return -2;
@@ -869,8 +989,13 @@ paygd()
         return;
 
     if (u.uinvault) {
+#if 0 /*JP*/
         Your("%ld %s goes into the Magic Memory Vault.", umoney,
              currency(umoney));
+#else
+        Your("%ld%s\82Í\96\82\96@\82Ì\8bL\94O\91q\8cÉ\82É\93ü\82Á\82½\81D", umoney,
+             currency(umoney));
+#endif
         gx = u.ux;
         gy = u.uy;
     } else {
@@ -879,11 +1004,19 @@ paygd()
             return;
         }
         mnexto(grd);
+/*JP
         pline("%s remits your gold to the vault.", Monnam(grd));
+*/
+        pline("%s\82Í\82 \82È\82½\82Ì\8bà\89Ý\82ð\91q\8cÉ\82É\91\97\82Á\82½\81D", Monnam(grd));
         gx = rooms[EGD(grd)->vroom].lx + rn2(2);
         gy = rooms[EGD(grd)->vroom].ly + rn2(2);
+#if 0 /*JP*/
         Sprintf(buf, "To Croesus: here's the gold recovered from %s the %s.",
                 plname, mons[u.umonster].mname);
+#else
+        Sprintf(buf, "\83N\83\8d\83C\83\\83X\82Ö: \82±\82±\82É%s\82Ì%s\82©\82ç\8eæ\82è\96ß\82µ\82½\8bà\89Ý\82ð\91\97\82é\81D",
+                mons[u.umonster].mname, plname);
+#endif
         make_grave(gx, gy, buf);
     }
     for (coins = invent; coins; coins = nextcoins) {
index 97c8d03..1e19e98 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "dlb.h"
 #include "date.h"
  */
 #ifdef SHORT_FILENAMES
 #include "patchlev.h"
+#include "../japanese/jpatchle.h"
 #else
 #include "patchlevel.h"
+#include "../japanese/jpatchlevel.h"
 #endif
 
 #define BETA_INFO ""
@@ -49,6 +56,9 @@ doversion()
     char buf[BUFSZ];
 
     pline("%s", getversionstring(buf));
+#if 1 /*JP*/
+    pline("%s", JVERSION_ID);
+#endif
     return 0;
 }
 
index cc14f35..c874baf 100644 (file)
@@ -7,6 +7,12 @@
  *      bonuses for any given weapon used, as well as weapons selection
  *      code for monsters.
  */
+
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* Categories whose names don't come from OBJ_NAME(objects[type])
@@ -54,12 +60,21 @@ STATIC_OVL void
 give_may_advance_msg(skill)
 int skill;
 {
+#if 0 /*JP*/
     You_feel("more confident in your %sskills.",
              skill == P_NONE ? "" : skill <= P_LAST_WEAPON
                                         ? "weapon "
                                         : skill <= P_LAST_SPELL
                                               ? "spell casting "
                                               : "fighting ");
+#else
+    You("%s\83X\83L\83\8b\82ð\8d\82\82ß\82é\8e©\90M\82ª\97N\82¢\82Ä\82«\82½\81D",
+        skill == P_NONE ? "" : skill <= P_LAST_WEAPON
+            ? "\95\90\8aí\82Ì"
+            : skill <= P_LAST_SPELL
+                  ? "\96\82\96@\82Ì"
+                  : "\90í\82¢\82Ì");
+#endif
 }
 
 STATIC_DCL boolean FDECL(can_advance, (int, BOOLEAN_P));
@@ -588,11 +603,17 @@ boolean polyspot;
         mon->weapon_check = NO_WEAPON_WANTED;
         obj_extract_self(obj);
         if (cansee(mon->mx, mon->my)) {
+/*JP
             pline("%s drops %s.", Monnam(mon), distant_name(obj, doname));
+*/
+            pline("%s\82Í%s\82ð\92u\82¢\82½\81D", Monnam(mon), distant_name(obj, doname));
             newsym(mon->mx, mon->my);
         }
         /* might be dropping object into water or lava */
+/*JP
         if (!flooreffects(obj, mon->mx, mon->my, "drop")) {
+*/
+        if (!flooreffects(obj, mon->mx, mon->my, "\97\8e\82¿\82é")) {
             if (polyspot)
                 bypass_obj(obj);
             place_object(obj, mon->mx, mon->my);
@@ -685,17 +706,34 @@ register struct monst *mon;
 
                 if (bimanual(mw_tmp))
                     mon_hand = makeplural(mon_hand);
+#if 0 /*JP*/
                 Sprintf(welded_buf, "%s welded to %s %s",
                         otense(mw_tmp, "are"), mhis(mon), mon_hand);
+#endif
 
                 if (obj->otyp == PICK_AXE) {
+#if 0 /*JP*/
                     pline("Since %s weapon%s %s,", s_suffix(mon_nam(mon)),
                           plur(mw_tmp->quan), welded_buf);
+#else
+                    pline("%s\82Í\95\90\8aí\82ð\8eè\82É\82µ\82æ\82¤\82Æ\82µ\82½\82ª\81C", mon_nam(mon));
+#endif
+#if 0 /*JP*/
                     pline("%s cannot wield that %s.", mon_nam(mon),
                           xname(obj));
+#else
+                    pline("%s\82Í%s\82ð\91\95\94õ\82Å\82«\82È\82©\82Á\82½\81D", mon_nam(mon),
+                          xname(obj));
+#endif
                 } else {
+/*JP
                     pline("%s tries to wield %s.", Monnam(mon), doname(obj));
+*/
+                    pline("%s\82Í%s\82ð\91\95\94õ\82µ\82æ\82¤\82Æ\82µ\82½\81D", Monnam(mon), doname(obj));
+/*JP
                     pline("%s %s!", Yname2(mw_tmp), welded_buf);
+*/
+                    pline("%s\82Í%s\82ð\8eè\82É\82µ\82½\81I", Monnam(mon), xname(mw_tmp));
                 }
                 mw_tmp->bknown = 1;
             }
@@ -706,20 +744,35 @@ register struct monst *mon;
         setmnotwielded(mon, mw_tmp);
         mon->weapon_check = NEED_WEAPON;
         if (canseemon(mon)) {
+/*JP
             pline("%s wields %s!", Monnam(mon), doname(obj));
+*/
+            pline("%s\82Í%s\82ð\91\95\94õ\82µ\82½\81I", Monnam(mon), doname(obj));
             if (mwelded(mw_tmp)) {
+#if 0 /*JP*/
                 pline("%s %s to %s %s!", Tobjnam(obj, "weld"),
                       is_plural(obj) ? "themselves" : "itself",
                       s_suffix(mon_nam(mon)), mbodypart(mon, HAND));
+#else
+                pline("%s\82Í\8f\9f\8eè\82É%s\82Ì%s\82É\91\95\94õ\82³\82ê\82½\81I",
+                      xname(obj),
+                      mon_nam(mon), mbodypart(mon, HAND));
+#endif
                 obj->bknown = 1;
             }
         }
         if (artifact_light(obj) && !obj->lamplit) {
             begin_burn(obj, FALSE);
             if (canseemon(mon))
+#if 0 /*JP*/
                 pline("%s %s in %s %s!", Tobjnam(obj, "shine"),
                       arti_light_description(obj), s_suffix(mon_nam(mon)),
                       mbodypart(mon, HAND));
+#else
+                pline("%s\82Í%s\82Ì%s\82Ì\92\86\82Å%s\8bP\82¢\82½\81I",
+                      xname(obj), mon_nam(mon),
+                      mbodypart(mon, HAND), arti_light_description(obj));
+#endif
         }
         obj->owornmask = W_WEP;
         return 1;
@@ -877,26 +930,47 @@ char *buf;
 
     switch (P_SKILL(skill)) {
     case P_UNSKILLED:
+/*JP
         ptr = "Unskilled";
+*/
+        ptr = "\8f\89\90S\8eÒ";
         break;
     case P_BASIC:
+/*JP
         ptr = "Basic";
+*/
+        ptr = "\93ü\96å\8eÒ";
         break;
     case P_SKILLED:
+/*JP
         ptr = "Skilled";
+*/
+        ptr = "\8fn\97û\8eÒ";
         break;
     case P_EXPERT:
+/*JP
         ptr = "Expert";
+*/
+        ptr = "\83G\83L\83X\83p\81[\83g";
         break;
     /* these are for unarmed combat/martial arts only */
     case P_MASTER:
+/*JP
         ptr = "Master";
+*/
+        ptr = "\83}\83X\83^\81[";
         break;
     case P_GRAND_MASTER:
+/*JP
         ptr = "Grand Master";
+*/
+        ptr = "\83O\83\89\83\93\83h\83}\83X\83^\81[";
         break;
     default:
+/*JP
         ptr = "Unknown";
+*/
+        ptr = "\95s\96¾";
         break;
     }
     Strcpy(buf, ptr);
@@ -984,18 +1058,33 @@ int skill;
     P_SKILL(skill)++;
     u.skill_record[u.skills_advanced++] = skill;
     /* subtly change the advance message to indicate no more advancement */
+#if 0 /*JP*/
     You("are now %s skilled in %s.",
         P_SKILL(skill) >= P_MAX_SKILL(skill) ? "most" : "more",
         P_NAME(skill));
+#else
+    Your("%s\82Ì\83X\83L\83\8b\82ð%s\8d\82\82ß\82½\81D", 
+         P_NAME(skill),
+         P_SKILL(skill) >= P_MAX_SKILL(skill) ? "\8dÅ\8d\82\82É" : "\82³\82ç\82É");
+#endif
 }
 
 static const struct skill_range {
     short first, last;
     const char *name;
 } skill_ranges[] = {
+/*JP
     { P_FIRST_H_TO_H, P_LAST_H_TO_H, "Fighting Skills" },
+*/
+    { P_FIRST_H_TO_H, P_LAST_H_TO_H, "\90í\82¢\82Ì\83X\83L\83\8b" },
+/*JP
     { P_FIRST_WEAPON, P_LAST_WEAPON, "Weapon Skills" },
+*/
+    { P_FIRST_WEAPON, P_LAST_WEAPON, "\95\90\8aí\82Ì\83X\83L\83\8b" },
+/*JP
     { P_FIRST_SPELL, P_LAST_SPELL, "Spellcasting Skills" },
+*/
+    { P_FIRST_SPELL,  P_LAST_SPELL,  "\96\82\96@\82Ì\83X\83L\83\8b" },
 };
 
 /*
@@ -1044,18 +1133,30 @@ enhance_weapon_skill()
         if (eventually_advance > 0 || maxxed_cnt > 0) {
             any = zeroany;
             if (eventually_advance > 0) {
+#if 0 /*JP*/
                 Sprintf(buf, "(Skill%s flagged by \"*\" may be enhanced %s.)",
                         plur(eventually_advance),
                         (u.ulevel < MAXULEV)
                             ? "when you're more experienced"
                             : "if skill slots become available");
+#else
+                Sprintf(buf, "(\"*\"\82ª\82Â\82¢\82Ä\82¢\82é\83X\83L\83\8b\82Í%s\8d\82\82ß\82ç\82ê\82é\81D)",
+                        (u.ulevel < MAXULEV)
+                            ? "\82à\82Á\82Æ\8co\8c±\82ð\82Â\82ß\82Î"
+                            : "\83X\83L\83\8b\83X\83\8d\83b\83g\82ª\8eg\82¦\82é\82æ\82¤\82É\82È\82ê\82Î");
+#endif
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
                          MENU_UNSELECTED);
             }
             if (maxxed_cnt > 0) {
+#if 0 /*JP*/
                 Sprintf(buf,
                  "(Skill%s flagged by \"#\" cannot be enhanced any further.)",
                         plur(maxxed_cnt));
+#else
+                Sprintf(buf,
+                        "(\"#\"\82ª\82Â\82¢\82Ä\82¢\82é\83X\83L\83\8b\82Í\82±\82ê\88È\8fã\8d\82\82ß\82ç\82ê\82È\82¢\81D)");
+#endif
                 add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
                          MENU_UNSELECTED);
             }
@@ -1119,8 +1220,13 @@ enhance_weapon_skill()
                          MENU_UNSELECTED);
             }
 
+#if 0 /*JP*/
         Strcpy(buf, (to_advance > 0) ? "Pick a skill to advance:"
                                      : "Current skills:");
+#else
+        Strcpy(buf, (to_advance > 0) ? "\83X\83L\83\8b\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F"
+                                     : "\8c»\8dÝ\82Ì\83X\83L\83\8b\81F");
+#endif
         if (wizard && !speedy)
             Sprintf(eos(buf), "  (%d slot%s available)", u.weapon_slots,
                     plur(u.weapon_slots));
@@ -1135,7 +1241,10 @@ enhance_weapon_skill()
             for (n = i = 0; i < P_NUM_SKILLS; i++) {
                 if (can_advance(i, speedy)) {
                     if (!speedy)
+/*JP
                         You_feel("you could be more dangerous!");
+*/
+                        You("\82³\82ç\82É\83X\83L\83\8b\82ð\8d\82\82ß\82é\82±\82Æ\82ª\82Å\82«\82»\82¤\82È\8bC\82ª\82µ\82½\81I");
                     n++;
                     break;
                 }
@@ -1513,9 +1622,14 @@ register struct obj *obj;
     if (artifact_light(obj) && obj->lamplit) {
         end_burn(obj, FALSE);
         if (canseemon(mon))
+#if 0 /*JP*/
             pline("%s in %s %s %s shining.", The(xname(obj)),
                   s_suffix(mon_nam(mon)), mbodypart(mon, HAND),
                   otense(obj, "stop"));
+#else
+            pline("%s\82ª\8e\9d\82Â%s\82Ì\8bP\82«\82ª\8fÁ\82¦\82½\81D",
+                  mon_nam(mon), xname(obj));
+#endif
     }
     if (MON_WEP(mon) == obj)
         MON_NOWEP(mon);
index 7ab1051..7ec2752 100644 (file)
@@ -21,17 +21,26 @@ register struct monst *mon;
 
                 switch (monsndx(mon->data)) {
                 case PM_WEREWOLF:
+/*JP
                     howler = "wolf";
+*/
+                    howler = "\98T";
                     break;
                 case PM_WEREJACKAL:
+/*JP
                     howler = "jackal";
+*/
+                    howler = "\83W\83\83\83b\83J\83\8b";
                     break;
                 default:
                     howler = (char *) 0;
                     break;
                 }
                 if (howler)
+/*JP
                     You_hear("a %s howling at the moon.", howler);
+*/
+                    You_hear("\8c\8e\96é\82É%s\82ª\96i\82¦\82é\90º\82ð\95·\82¢\82½\81D", howler);
             }
         }
     } else if (!rn2(30) || Protection_from_shape_changers) {
@@ -101,8 +110,13 @@ register struct monst *mon;
     }
 
     if (canseemon(mon) && !Hallucination)
+#if 0 /*JP*/
         pline("%s changes into a %s.", Monnam(mon),
               is_human(&mons[pm]) ? "human" : mons[pm].mname + 4);
+#else
+        pline("%s\82Í%s\82Ì\8ep\82É\82È\82Á\82½\81D", Monnam(mon),
+              is_human(&mons[pm]) ? "\90l\8aÔ" : mons[pm].mname + 4);
+#endif
 
     set_mon_data(mon, &mons[pm], 0);
     if (mon->msleeping || !mon->mcanmove) {
@@ -139,19 +153,28 @@ char *genbuf;
             typ =
                 rn2(3) ? PM_SEWER_RAT : rn2(3) ? PM_GIANT_RAT : PM_RABID_RAT;
             if (genbuf)
+/*JP
                 Strcpy(genbuf, "rat");
+*/
+                Strcpy(genbuf, "\83l\83Y\83~");
             break;
         case PM_WEREJACKAL:
         case PM_HUMAN_WEREJACKAL:
             typ = PM_JACKAL;
             if (genbuf)
+/*JP
                 Strcpy(genbuf, "jackal");
+*/
+                Strcpy(genbuf, "\83W\83\83\83b\83J\83\8b");
             break;
         case PM_WEREWOLF:
         case PM_HUMAN_WEREWOLF:
             typ = rn2(5) ? PM_WOLF : PM_WINTER_WOLF;
             if (genbuf)
+/*JP
                 Strcpy(genbuf, "wolf");
+*/
+                Strcpy(genbuf, "\98T");
             break;
         default:
             continue;
@@ -177,9 +200,14 @@ you_were()
     if (Unchanging || (u.umonnum == u.ulycn))
         return;
     if (controllable_poly) {
+#if 0 /*JP*/
         /* `+4' => skip "were" prefix to get name of beast */
         Sprintf(qbuf, "Do you want to change into %s?",
                 an(mons[u.ulycn].mname + 4));
+#else /*JP: \93ú\96{\8cê\82Å\82Í\82»\82±\82Ü\82Å\82µ\82È\82¢ */
+        Sprintf(qbuf,"%s\82É\95Ï\89»\82µ\82Ü\82·\82©\81H",
+                mons[u.ulycn].mname + 4);
+#endif
         if (yn(qbuf) == 'n')
             return;
     }
@@ -193,11 +221,17 @@ boolean purify;
     boolean controllable_poly = Polymorph_control && !(Stunned || Unaware);
 
     if (purify) {
+/*JP
         You_feel("purified.");
+*/
+        You("\8fò\82ß\82ç\82ê\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81D");
         u.ulycn = NON_PM; /* cure lycanthropy */
     }
     if (!Unchanging && is_were(youmonst.data)
+/*JP
         && (!controllable_poly || yn("Remain in beast form?") == 'n'))
+*/
+        && (!controllable_poly || yn("\8fb\82Ì\8ep\82Ì\82Ü\82Ü\82Å\82¢\82é\81H") == 'n'))
         rehumanize();
 }
 
index 3a0625c..63a5e77 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* KMH -- Differences between the three weapon slots.
@@ -94,7 +99,10 @@ register struct obj *obj;
     if (uwep == obj && artifact_light(olduwep) && olduwep->lamplit) {
         end_burn(olduwep, FALSE);
         if (!Blind)
+/*JP
             pline("%s shining.", Tobjnam(olduwep, "stop"));
+*/
+            pline("%s\82Í\8bP\82«\82ð\8e~\82ß\82½\81D", xname(olduwep));
     }
     /* Note: Explicitly wielding a pick-axe will not give a "bashing"
      * message.  Wielding one via 'a'pplying it will.
@@ -121,10 +129,19 @@ struct obj *obj;
         return FALSE;
 
     /* Prevent wielding cockatrice when not wearing gloves --KAA */
+#if 0 /*JP*/
     You("wield %s in your bare %s.",
         corpse_xname(obj, (const char *) 0, CXN_PFX_THE),
         makeplural(body_part(HAND)));
+#else
+    You("%s\82ð%s\82É\82µ\82½\81D",
+        corpse_xname(obj, (const char *) 0, CXN_PFX_THE),
+        body_part(HAND));
+#endif
+/*JP
     Sprintf(kbuf, "wielding %s bare-handed", killer_xname(obj));
+*/
+    Sprintf(kbuf, "%s\82ð\91f\8eè\82Å\8eè\82É\82µ\82Ä", killer_xname(obj));
     instapetrify(kbuf);
     return TRUE;
 }
@@ -139,34 +156,53 @@ struct obj *wep;
     if (!wep) {
         /* No weapon */
         if (uwep) {
+/*JP
             You("are empty %s.", body_part(HANDED));
+*/
+            You("%s\82ð\8bó\82¯\82½\81D", body_part(HAND));
             setuwep((struct obj *) 0);
             res++;
         } else
+/*JP
             You("are already empty %s.", body_part(HANDED));
+*/
+            You("\89½\82à%s\82É\82µ\82Ä\82¢\82È\82¢\81I", body_part(HAND));
     } else if (wep->otyp == CORPSE && cant_wield_corpse(wep)) {
         /* hero must have been life-saved to get here; use a turn */
         res++; /* corpse won't be wielded */
     } else if (uarms && bimanual(wep)) {
+#if 0 /*JP*/
         You("cannot wield a two-handed %s while wearing a shield.",
             is_sword(wep) ? "sword" : wep->otyp == BATTLE_AXE ? "axe"
                                                               : "weapon");
+#else
+        pline("\8f\82\82ð\91\95\94õ\82µ\82Ä\82¢\82é\82Æ\82«\82É\97¼\8eè\8e\9d\82¿\82Ì%s\82ð\91\95\94õ\82Å\82«\82È\82¢\81D",
+              is_sword(wep) ? "\8c\95" : wep->otyp == BATTLE_AXE ? "\95\80"
+                                                             : "\95\90\8aí");
+#endif
     } else if (!retouch_object(&wep, FALSE)) {
         res++; /* takes a turn even though it doesn't get wielded */
     } else {
         /* Weapon WILL be wielded after this point */
         res++;
         if (will_weld(wep)) {
+#if 0 /*JP*//*\8eg\82í\82È\82¢*/
             const char *tmp = xname(wep), *thestr = "The ";
 
             if (strncmp(tmp, thestr, 4) && !strncmp(The(tmp), thestr, 4))
                 tmp = thestr;
             else
                 tmp = "";
+#endif
+#if 0 /*JP*/
             pline("%s%s %s to your %s!", tmp, aobjnam(wep, "weld"),
                   (wep->quan == 1L) ? "itself" : "themselves", /* a3 */
                   bimanual(wep) ? (const char *) makeplural(body_part(HAND))
                                 : body_part(HAND));
+#else
+            pline("%s\82Í\8f\9f\8eè\82É\82 \82È\82½\82Ì%s\82É\91\95\94õ\82³\82ê\82½\81D",
+                  xname(wep), body_part(HAND));
+#endif
             wep->bknown = TRUE;
         } else {
             /* The message must be printed before setuwep (since
@@ -189,8 +225,13 @@ struct obj *wep;
         if (artifact_light(wep) && !wep->lamplit) {
             begin_burn(wep, FALSE);
             if (!Blind)
+#if 0 /*JP*/
                 pline("%s to shine %s!", Tobjnam(wep, "begin"),
                       arti_light_description(wep));
+#else
+                pline("%s\82Í%s\8bP\82«\82Í\82\82ß\82½\81I", xname(wep),
+                      arti_light_description(wep));
+#endif
         }
 #if 0
         /* we'll get back to this someday, but it's not balanced yet */
@@ -206,8 +247,13 @@ struct obj *wep;
 
             if ((this_shkp = shop_keeper(inside_shop(u.ux, u.uy)))
                 != (struct monst *) 0) {
+#if 0 /*JP*/
                 pline("%s says \"You be careful with my %s!\"",
                       shkname(this_shkp), xname(wep));
+#else
+                pline("%s\82Í\8fq\82×\82½\81u%s\82Ì\88µ\82¢\82Í\8bC\82ð\82Â\82¯\82Ä\82­\82ê\82æ\81I\81v",
+                      shkname(this_shkp), xname(wep));
+#endif
             }
         }
     }
@@ -248,7 +294,10 @@ dowield()
     /* May we attempt this? */
     multi = 0;
     if (cantwield(youmonst.data)) {
+/*JP
         pline("Don't be ridiculous!");
+*/
+        pline("\82Î\82©\82Î\82©\82µ\82¢\81I");
         return 0;
     }
 
@@ -257,7 +306,10 @@ dowield()
         /* Cancelled */
         return 0;
     else if (wep == uwep) {
+/*JP
         You("are already wielding that!");
+*/
+        You("\82à\82¤\82»\82ê\82ð%s\82É\82µ\82Ä\82¢\82é\81I", body_part(HAND));
         if (is_weptool(wep) || is_wet_towel(wep))
             unweapon = FALSE; /* [see setuwep()] */
         return 0;
@@ -276,7 +328,10 @@ dowield()
     else if (wep == uquiver)
         setuqwep((struct obj *) 0);
     else if (wep->owornmask & (W_ARMOR | W_ACCESSORY | W_SADDLE)) {
+/*JP
         You("cannot wield that!");
+*/
+        You("\82»\82ê\82ð\91\95\94õ\82Å\82«\82È\82¢\81I");
         return 0;
     }
 
@@ -299,7 +354,10 @@ doswapweapon()
     /* May we attempt this? */
     multi = 0;
     if (cantwield(youmonst.data)) {
+/*JP
         pline("Don't be ridiculous!");
+*/
+        pline("\82Î\82©\82Î\82©\82µ\82¢\81I");
         return 0;
     }
     if (welded(uwep)) {
@@ -324,7 +382,10 @@ doswapweapon()
         if (uswapwep)
             prinv((char *) 0, uswapwep, 0L);
         else
+/*JP
             You("have no secondary weapon readied.");
+*/
+            You("\97\\94õ\82Ì\95\90\8aí\82Ì\97p\88Ó\82ð\82â\82ß\82½\81D");
     }
 
     if (u.twoweap && !can_twoweapon())
@@ -357,22 +418,38 @@ dowieldquiver()
     if (newquiver == &zeroobj) {
         /* Explicitly nothing */
         if (uquiver) {
+/*JP
             You("now have no ammunition readied.");
+*/
+            pline("\91\95\93U\82·\82é\82½\82ß\82Ì\96î\92e\82ª\82È\82­\82È\82Á\82½\81D");
             setuqwep(newquiver = (struct obj *) 0);
         } else {
+/*JP
             You("already have no ammunition readied!");
+*/
+            pline("\91\95\93U\82·\82é\82½\82ß\82Ì\96î\92e\82ª\82È\82¢\81D");
             return 0;
         }
     } else if (newquiver == uquiver) {
+/*JP
         pline("That ammunition is already readied!");
+*/
+        pline("\82à\82¤\91\95\93U\82³\82ê\82Ä\82¢\82é\81I");
         return 0;
     } else if (newquiver == uwep) {
         /* Prevent accidentally readying the main weapon */
+#if 0 /*JP*/
         pline("%s already being used as a weapon!",
               !is_plural(uwep) ? "That is" : "They are");
+#else
+        pline("\82à\82¤\95\90\8aí\82Æ\82µ\82Ä\8eg\82í\82ê\82Ä\82¢\82é\81I");
+#endif
         return 0;
     } else if (newquiver->owornmask & (W_ARMOR | W_ACCESSORY | W_SADDLE)) {
+/*JP
         You("cannot ready that!");
+*/
+        You("\82»\82ê\82Í\8eg\82¦\82È\82¢\81I");
         return 0;
     } else {
         long dummy;
@@ -408,19 +485,28 @@ const char *verb; /* "rub",&c */
     if (obj == uwep)
         return TRUE; /* nothing to do if already wielding it */
 
+#if 0 /*JP*/
     if (!verb)
         verb = "wield";
+#endif
     what = xname(obj);
+#if 0 /*JP*/
     more_than_1 = (obj->quan > 1L || strstri(what, "pair of ") != 0
                    || strstri(what, "s of ") != 0);
+#endif
 
     if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) {
+#if 0 /*JP*/
         You_cant("%s %s while wearing %s.", verb, yname(obj),
                  more_than_1 ? "them" : "it");
+#else
+        pline("\90g\82É\82Â\82¯\82½\82Ü\82Ü\82Å\82Í%s\82Í\8eg\82¦\82È\82¢\81D", yname(obj));
+#endif
         return FALSE;
     }
     if (welded(uwep)) {
         if (flags.verbose) {
+#if 0 /*JP*/
             const char *hand = body_part(HAND);
 
             if (bimanual(uwep))
@@ -430,19 +516,33 @@ const char *verb; /* "rub",&c */
             pline(
                "Since your weapon is welded to your %s, you cannot %s %s %s.",
                   hand, verb, more_than_1 ? "those" : "that", xname(obj));
+#else
+            pline("\95\90\8aí\82ð\8eè\82É\82µ\82Ä\82¢\82é\82Ì\82Å\81C%s\82ð\8eg\82¦\82È\82¢\81D", xname(obj));
+#endif
         } else {
+/*JP
             You_cant("do that.");
+*/
+            pline("\82»\82ê\82Í\82Å\82«\82È\82¢\81D");
         }
         return FALSE;
     }
     if (cantwield(youmonst.data)) {
+/*JP
         You_cant("hold %s strongly enough.", more_than_1 ? "them" : "it");
+*/
+        You("\82»\82ê\82ð\8e\9d\82Â\82Ù\82Ç\97Í\82ª\82È\82¢\81D");
         return FALSE;
     }
     /* check shield */
     if (uarms && bimanual(obj)) {
+#if 0 /*JP*/
         You("cannot %s a two-handed %s while wearing a shield.", verb,
             (obj->oclass == WEAPON_CLASS) ? "weapon" : "tool");
+#else
+        pline("\8f\82\82ð\91\95\94õ\82µ\82½\82Ü\82Ü\97¼\8eè\8e\9d\82¿\82Ì%s\82ð\91\95\94õ\82Å\82«\82È\82¢\81D",
+              (obj->oclass == WEAPON_CLASS) ? "\95\90\8aí" : "\93¹\8bï");
+#endif
         return FALSE;
     }
 
@@ -456,7 +556,10 @@ const char *verb; /* "rub",&c */
     } else {
         struct obj *oldwep = uwep;
 
+/*JP
         You("now wield %s.", doname(obj));
+*/
+        You("%s\82ð\91\95\94õ\82µ\82½\81D", doname(obj));
         setuwep(obj);
         if (flags.pushweapon && oldwep && uwep != oldwep)
             setuswapwep(oldwep);
@@ -479,26 +582,52 @@ can_twoweapon()
 #define NOT_WEAPON(obj) (!is_weptool(obj) && obj->oclass != WEAPON_CLASS)
     if (!could_twoweap(youmonst.data)) {
         if (Upolyd)
+/*JP
             You_cant("use two weapons in your current form.");
+*/
+            pline("\8c»\8dÝ\82Ì\8ep\82Å\82Í\93ñ\93\81\97¬\82Í\8eg\82¦\82È\82¢\81D");
         else
+/*JP
             pline("%s aren't able to use two weapons at once.",
+*/
+            pline("%s\82Í\93ñ\82Â\82Ì\95\90\8aí\82ð\93¯\8e\9e\82É\88µ\82¦\82È\82¢\81D",
                   makeplural((flags.female && urole.name.f) ? urole.name.f
                                                             : urole.name.m));
     } else if (!uwep || !uswapwep)
+#if 0 /*JP*/
         Your("%s%s%s empty.", uwep ? "left " : uswapwep ? "right " : "",
              body_part(HAND), (!uwep && !uswapwep) ? "s are" : " is");
+#else
+        Your("%s%s\82Í\8bó\82Á\82Û\82¾\81D", uwep ? "\8d\82Ì" : uswapwep ? "\89E\82Ì" : "",
+             body_part(HAND));
+#endif
     else if (NOT_WEAPON(uwep) || NOT_WEAPON(uswapwep)) {
         otmp = NOT_WEAPON(uwep) ? uwep : uswapwep;
+#if 0 /*JP*/
         pline("%s %s.", Yname2(otmp),
               is_plural(otmp) ? "aren't weapons" : "isn't a weapon");
+#else
+        pline("%s\82Í\95\90\8aí\82\82á\82È\82¢\81D", Yname2(otmp));
+#endif
     } else if (bimanual(uwep) || bimanual(uswapwep)) {
         otmp = bimanual(uwep) ? uwep : uswapwep;
+/*JP
         pline("%s isn't one-handed.", Yname2(otmp));
+*/
+        pline("%s\82Í\95Ð\8eè\8e\9d\82¿\82Ì\95\90\8aí\82\82á\82È\82¢\81D", Yname2(otmp));
     } else if (uarms)
+/*JP
         You_cant("use two weapons while wearing a shield.");
+*/
+        You("\8f\82\82ð\8e\9d\82Á\82Ä\82¢\82é\8aÔ\82Í\97¼\8eè\8e\9d\82¿\82Å\82«\82È\82¢\81D");
     else if (uswapwep->oartifact)
+#if 0 /*JP*/
         pline("%s being held second to another weapon!",
               Yobjnam2(uswapwep, "resist"));
+#else
+        pline("%s\82Í\97\\94õ\82Ì\95\90\8aí\82Æ\82µ\82Ä\88µ\82í\82ê\82é\82±\82Æ\82ð\8b\91\82ñ\82¾\81I",
+              Yname2(uswapwep));
+#endif
     else if (uswapwep->otyp == CORPSE && cant_wield_corpse(uswapwep)) {
         /* [Note: NOT_WEAPON() check prevents ever getting here...] */
         ; /* must be life-saved to reach here; return FALSE */
@@ -519,7 +648,10 @@ drop_uswapwep()
 
     /* Avoid trashing makeplural's static buffer */
     Strcpy(str, makeplural(body_part(HAND)));
+/*JP
     pline("%s from your %s!", Yobjnam2(obj, "slip"), str);
+*/
+    You("%s\82ð\97\8e\82µ\82Ä\82µ\82Ü\82Á\82½\81I", xname(obj));
     dropx(obj);
 }
 
@@ -528,7 +660,10 @@ dotwoweapon()
 {
     /* You can always toggle it off */
     if (u.twoweap) {
+/*JP
         You("switch to your primary weapon.");
+*/
+        You("\88ê\82Â\82Ì\95\90\8aí\82Å\90í\93¬\82·\82é\82±\82Æ\82É\82µ\82½\81D");
         u.twoweap = 0;
         update_inventory();
         return 0;
@@ -537,7 +672,10 @@ dotwoweapon()
     /* May we use two weapons? */
     if (can_twoweapon()) {
         /* Success! */
+/*JP
         You("begin two-weapon combat.");
+*/
+        You("\93ñ\93\81\97¬\82Å\90í\93¬\82·\82é\82±\82Æ\82É\82µ\82½\81D");
         u.twoweap = 1;
         update_inventory();
         return (rnd(20) > ACURR(A_DEX));
@@ -558,7 +696,10 @@ uwepgone()
         if (artifact_light(uwep) && uwep->lamplit) {
             end_burn(uwep, FALSE);
             if (!Blind)
+/*JP
                 pline("%s shining.", Tobjnam(uwep, "stop"));
+*/
+                pline("%s\82Í\8bP\82«\82ð\8e~\82ß\82½\81D", xname(uwep));
         }
         setworn((struct obj *) 0, W_WEP);
         unweapon = TRUE;
@@ -588,7 +729,10 @@ void
 untwoweapon()
 {
     if (u.twoweap) {
+/*JP
         You("can no longer use two weapons at once.");
+*/
+        You("\82à\82¤\82Q\82Â\82Ì\95\90\8aí\82ð\93¯\8e\9e\82É\8eg\97p\82·\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
         u.twoweap = FALSE;
         update_inventory();
     }
@@ -608,8 +752,13 @@ register int amount;
     if (!uwep || (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep))) {
         char buf[BUFSZ];
 
+#if 0 /*JP*/
         Sprintf(buf, "Your %s %s.", makeplural(body_part(HAND)),
                 (amount >= 0) ? "twitch" : "itch");
+#else
+        Sprintf(buf, "\82 \82È\82½\82Ì%s\82Í%s\81D", makeplural(body_part(HAND)),
+                (amount >= 0) ? "\82Ð\82«\82Â\82Á\82½" : "\83\80\83Y\83\80\83Y\82µ\82½");
+#endif
         strange_feeling(otmp, buf);
         exercise(A_DEX, (boolean) (amount >= 0));
         return 0;
@@ -621,8 +770,13 @@ register int amount;
     if (uwep->otyp == WORM_TOOTH && amount >= 0) {
         multiple = (uwep->quan > 1L);
         /* order: message, transformation, shop handling */
+#if 0 /*JP*/
         Your("%s %s much sharper now.", simpleonames(uwep),
              multiple ? "fuse, and become" : "is");
+#else
+        Your("%s\82Í%s\82æ\82è\89s\82³\82ð\91\9d\82µ\82½\82æ\82¤\82¾\81D", simpleonames(uwep),
+             multiple ? "\97Z\8d\87\82µ\82Ä\81C" : "");
+#endif
         uwep->otyp = CRYSKNIFE;
         uwep->oerodeproof = 0;
         if (multiple) {
@@ -642,8 +796,13 @@ register int amount;
     } else if (uwep->otyp == CRYSKNIFE && amount < 0) {
         multiple = (uwep->quan > 1L);
         /* order matters: message, shop handling, transformation */
+#if 0 /*JP*/
         Your("%s %s much duller now.", simpleonames(uwep),
              multiple ? "fuse, and become" : "is");
+#else
+        Your("%s\82Í%s\82æ\82è\93Ý\82­\82È\82Á\82Ä\82µ\82Ü\82Á\82½\82æ\82¤\82¾\81D", simpleonames(uwep),
+             multiple ? "\97Z\8d\87\82µ\82Ä\81C" : "");
+#endif
         costly_alteration(uwep, COST_DEGRD); /* DECHNT? other? */
         uwep->otyp = WORM_TOOTH;
         uwep->oerodeproof = 0;
@@ -662,27 +821,47 @@ register int amount;
         wepname = ONAME(uwep);
     if (amount < 0 && uwep->oartifact && restrict_name(uwep, wepname)) {
         if (!Blind)
+/*JP
             pline("%s %s.", Yobjnam2(uwep, "faintly glow"), color);
+*/
+            Your("%s\82Í\82í\82¸\82©\82É%s\8bP\82¢\82½\81D", xname(uwep),jconj_adj(color));
         return 1;
     }
     /* there is a (soft) upper and lower limit to uwep->spe */
     if (((uwep->spe > 5 && amount >= 0) || (uwep->spe < -5 && amount < 0))
         && rn2(3)) {
         if (!Blind)
+#if 0 /*JP*/
             pline("%s %s for a while and then %s.",
                   Yobjnam2(uwep, "violently glow"), color,
                   otense(uwep, "evaporate"));
+#else
+            Your("%s\82Í\82µ\82Î\82ç\82­\8c\83\82µ\82­%s\8bP\82«\81C\8fö\94­\82µ\82½\81D",
+                 xname(uwep), jconj_adj(color));
+#endif
         else
+/*JP
             pline("%s.", Yobjnam2(uwep, "evaporate"));
+*/
+            Your("%s\82Í\8fö\94­\82µ\82½\81D", xname(uwep));
 
         useupall(uwep); /* let all of them disappear */
         return 1;
     }
     if (!Blind) {
+/*JP
         xtime = (amount * amount == 1) ? "moment" : "while";
+*/
+        xtime = (amount*amount == 1) ? "\88ê\8fu" : "\82µ\82Î\82ç\82­\82Ì\8aÔ";
+#if 0 /*JP*/
         pline("%s %s for a %s.",
               Yobjnam2(uwep, amount == 0 ? "violently glow" : "glow"), color,
               xtime);
+#else
+        Your("%s\82Í%s%s%s\8bP\82¢\82½\81D",
+             xname(uwep), xtime, jconj_adj(color), 
+             amount == 0 ? "\8c\83\82µ\82­" : "");
+#endif
         if (otyp != STRANGE_OBJECT && uwep->known
             && (amount > 0 || (amount < 0 && otmp->bknown)))
             makeknown(otyp);
@@ -704,15 +883,24 @@ register int amount;
      * spe dependent.  Give an obscure clue here.
      */
     if (uwep->oartifact == ART_MAGICBANE && uwep->spe >= 0) {
+#if 0 /*JP*/
         Your("right %s %sches!", body_part(HAND),
              (((amount > 1) && (uwep->spe > 1)) ? "flin" : "it"));
+#else
+        Your("\89E%s\82Í%s\81I",
+             body_part(HAND),
+             (((amount > 1) && (uwep->spe > 1)) ? "\82Ð\82è\82Ð\82è\82µ\82½" : "\83\80\83Y\83\80\83Y\82µ\82½"));
+#endif
     }
 
     /* an elven magic clue, cookie@keebler */
     /* elven weapons vibrate warningly when enchanted beyond a limit */
     if ((uwep->spe > 5)
         && (is_elven_weapon(uwep) || uwep->oartifact || !rn2(7)))
+/*JP
         pline("%s unexpectedly.", Yobjnam2(uwep, "suddenly vibrate"));
+*/
+        Your("%s\82Í\93Ë\91R\90k\82¦\82¾\82µ\82½\81D", xname(uwep));
 
     return 1;
 }
@@ -735,9 +923,13 @@ register struct obj *obj;
     long savewornmask;
 
     savewornmask = obj->owornmask;
+#if 0 /*JP*/
     pline("%s welded to your %s!", Yobjnam2(obj, "are"),
           bimanual(obj) ? (const char *) makeplural(body_part(HAND))
                         : body_part(HAND));
+#else
+    You("%s\82ð%s\82É\8d\\82¦\82½\81I", xname(obj), body_part(HAND));
+#endif
     obj->owornmask = savewornmask;
 }
 
index facacc7..671ecef 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 /* wizard code - inspired by rogue code from Merlyn Leroy (digi-g!brian) */
 /*             - heavily modified to give the wiz balls.  (genat!mike)   */
 /*             - dewimped and given some maledictions. -3. */
@@ -57,11 +62,20 @@ amulet()
             if (ttmp->ttyp == MAGIC_PORTAL) {
                 int du = distu(ttmp->tx, ttmp->ty);
                 if (du <= 9)
+/*JP
                     pline("%s hot!", Tobjnam(amu, "feel"));
+*/
+                        pline("%s\82Í\94M\82­\8a´\82\82½\81I", xname(amu));
                 else if (du <= 64)
+/*JP
                     pline("%s very warm.", Tobjnam(amu, "feel"));
+*/
+                        pline("%s\82Í\82Æ\82Ä\82à\92g\82©\82­\8a´\82\82½\81D", xname(amu));
                 else if (du <= 144)
+/*JP
                     pline("%s warm.", Tobjnam(amu, "feel"));
+*/
+                        pline("%s\82Í\92g\82©\82­\8a´\82\82½\81D", xname(amu));
                 /* else, the amulet feels normal */
                 break;
             }
@@ -78,7 +92,10 @@ amulet()
             mtmp->msleeping = 0;
             if (distu(mtmp->mx, mtmp->my) > 2)
                 You(
+/*JP
       "get the creepy feeling that somebody noticed your taking the Amulet.");
+*/
+      "\82 \82È\82½\82ª\96\82\8f\9c\82¯\82ð\8e\9d\82Á\82Ä\82¢\82é\82±\82Æ\82ª\92N\82©\82É\92m\82ç\82ê\82½\82Æ\8a´\82\82Ä\82¼\82Á\82Æ\82µ\82½\81D");
             return;
         }
     }
@@ -363,10 +380,17 @@ register struct monst *mtmp;
 
                 if ((otmp = on_ground(which_arti(targ))) != 0) {
                     if (cansee(mtmp->mx, mtmp->my))
+#if 0 /*JP*/
                         pline("%s picks up %s.", Monnam(mtmp),
                               (distu(mtmp->mx, mtmp->my) <= 5)
                                   ? doname(otmp)
                                   : distant_name(otmp, doname));
+#else
+                        pline("%s\82Í%s\82ð\8fE\82Á\82½\81D", Monnam(mtmp),
+                              (distu(mtmp->mx, mtmp->my) <= 5)
+                                  ? doname(otmp)
+                                  : distant_name(otmp, doname));
+#endif
                     obj_extract_self(otmp);
                     (void) mpickobj(mtmp, otmp);
                     return 1;
@@ -514,14 +538,20 @@ resurrect()
 
     if (!context.no_of_wizards) {
         /* make a new Wizard */
+/*JP
         verb = "kill";
+*/
+        verb = "\82ð\93¢\82Ä\82µ";
         mtmp = makemon(&mons[PM_WIZARD_OF_YENDOR], u.ux, u.uy, MM_NOWAIT);
         /* affects experience; he's not coming back from a corpse
            but is subject to repeated killing like a revived corpse */
         if (mtmp) mtmp->mrevived = 1;
     } else {
         /* look for a migrating Wizard */
+/*JP
         verb = "elude";
+*/
+        verb = "\82æ\82è\93¦\82ê\82ñ";
         mmtmp = &migrating_mons;
         while ((mtmp = *mmtmp) != 0) {
             if (mtmp->iswiz
@@ -552,8 +582,14 @@ resurrect()
         mtmp->mtame = mtmp->mpeaceful = 0; /* paranoia */
         set_malign(mtmp);
         if (!Deaf) {
+/*JP
             pline("A voice booms out...");
+*/
+            pline("\90º\82ª\8d\82\82­\96Â\82è\8b¿\82¢\82½\81D\81D\81D");
+/*JP
             verbalize("So thou thought thou couldst %s me, fool.", verb);
+*/
+            verbalize("\97]%s\82Æ\8ev\82¢\82µ\82©\81C\92s\82ê\8eÒ\82ª\81D", verb);
         }
     }
 }
@@ -568,11 +604,17 @@ intervene()
     switch (which) {
     case 0:
     case 1:
+/*JP
         You_feel("vaguely nervous.");
+*/
+        You("\89½\82Æ\82È\82­\95s\88À\82É\82È\82Á\82½\81D");
         break;
     case 2:
         if (!Blind)
+/*JP
             You("notice a %s glow surrounding you.", hcolor(NH_BLACK));
+*/
+            pline("%s\8cõ\82ª\82 \82È\82½\82ð\82Æ\82è\82Ü\82¢\82Ä\82¢\82é\82Ì\82É\8bC\82ª\82Â\82¢\82½\81D", hcolor(NH_BLACK));
         rndcurse();
         break;
     case 3:
@@ -598,6 +640,7 @@ wizdead()
 }
 
 const char *const random_insult[] = {
+#if 0 /*JP*/
     "antic",      "blackguard",   "caitiff",    "chucklehead",
     "coistrel",   "craven",       "cretin",     "cur",
     "dastard",    "demon fodder", "dimwit",     "dolt",
@@ -606,15 +649,39 @@ const char *const random_insult[] = {
     "rattlepate", "reprobate",    "scapegrace", "varlet",
     "villein", /* (sic.) */
     "wittol",     "worm",         "wretch",
+#else
+    "\82Ó\82´\82¯\82½\96ì\98Y", "\88«\93}",       "\82­\82»\82Á\82½\82ê", "\82Ì\82ë\82Ü",
+    "\82 \82ñ\82Û\82ñ\82½\82ñ", "\89°\95a\8eÒ",     "\94\92\92s",       "\82ë\82­\82Å\82È\82µ",
+    "\82¤\82Â\82¯",       "\88«\96\82\82Ì\89a\90H", "\82¤\82·\82Ì\82ë",   "\82Ü\82Ê\82¯",
+    "\94n\8e­",         "\82¨\82¢\82Í\82¬",   "\8bð\82©\8eÒ",     "\82È\82ç\82¸\8eÒ",
+    "\88«\90l",         "\8bÉ\88«\90l",     "\94n\8e­\82½\82ê",   "\94Ú\8b¯\8eÒ",
+    "\95\97\91D\93ª",       "\93¹\8ay\8eÒ",     "\96ï\89î\8eÒ",     "\89º\98Y",
+    "\93z\97ê", /* (sic.) */
+    "\82Ó\82È\82Þ\82µ",     "åv\92\8e",       "\90l\82Å\82È\82µ",
+#endif
 };
 
 const char *const random_malediction[] = {
+#if 0 /*JP*/
     "Hell shall soon claim thy remains,", "I chortle at thee, thou pathetic",
     "Prepare to die, thou", "Resistance is useless,",
     "Surrender or die, thou", "There shall be no mercy, thou",
     "Thou shalt repent of thy cunning,", "Thou art as a flea to me,",
     "Thou art doomed,", "Thy fate is sealed,",
     "Verily, thou shalt be one dead"
+#else
+    "\92n\8d\96\82Í\82¢\82Ã\82ê\81C\93ð\82Ì\96S\8a[\82ð\97v\8b\81\82·\82é\82Å\82 \82ë\82¤\81C",
+    "\88£\82ê\82È\82â\82Â\82æ\82Ì\82¤\81D\97]\82Í\96\9e\91«\82\82á",
+    "\93ð\81C\8e\80\82É\94õ\82¦\82æ",
+    "\92ï\8dR\82µ\82Ä\82à\96³\91Ê\82\82á\81C",
+    "\8d~\8eQ\82¹\82æ\81D\82³\82à\82È\82­\82Î\8e\80\82\82á\81D",
+    "\8e\9c\94ß\82Í\96³\82©\82ç\82ñ",
+    "\93ð\81C\82¸\82é\82ð\8cã\89÷\82·\82×\82µ\81C",
+    "\93ð\82Í\97]\82É\82Æ\82Á\82Ä\83m\83~\82Ì\82æ\82¤\82È\82à\82Ì\82\82á\81C",
+    "\93ð\82Í\8eô\82í\82ê\82Ä\82¨\82é\81C",
+    "\93ð\82Ì\89^\96½\82Í\95\95\88ó\82³\82ê\82Ä\82¨\82é\81C",
+    "\82Ü\82±\82Æ\82É\93ð\82Í\8e\80\82É\82½\82é\8eÒ\82È\82è"
+#endif
 };
 
 /* Insult or intimidate the player */
@@ -626,26 +693,50 @@ register struct monst *mtmp;
         return;
     if (mtmp->iswiz) {
         if (!rn2(5)) /* typical bad guy action */
+/*JP
             pline("%s laughs fiendishly.", Monnam(mtmp));
+*/
+            pline("%s\82Í\88«\96\82\82Ì\82æ\82¤\82É\8fÎ\82Á\82½\81D", Monnam(mtmp));
         else if (u.uhave.amulet && !rn2(SIZE(random_insult)))
+/*JP
             verbalize("Relinquish the amulet, %s!",
+*/
+            verbalize("\96\82\82æ\82¯\82ð\8eè\95ú\82¹\81C%s\81I",
                       random_insult[rn2(SIZE(random_insult))]);
         else if (u.uhp < 5 && !rn2(2)) /* Panic */
+#if 0 /*JP*/
             verbalize(rn2(2) ? "Even now thy life force ebbs, %s!"
                              : "Savor thy breath, %s, it be thy last!",
                       random_insult[rn2(SIZE(random_insult))]);
+#else
+            verbalize(rn2(2) ? "\8d¡\82Æ\82È\82Á\82Ä\82à\82È\82¨\93ð\82Ì\96½\82Í\82 \82¦\82Ä\90\8a\82¦\82é\82Ì\82¾\81C%s\81I"
+                             : "\91§\82ð\96¡\82í\82Á\82Ä\82¨\82¯\81C%s\81C\93ð\82Ì\8dÅ\8aú\82Ì\8e\9e\82¾\81I",
+                      random_insult[rn2(SIZE(random_insult))]);
+#endif
         else if (mtmp->mhp < 5 && !rn2(2)) /* Parthian shot */
+/*JP
             verbalize(rn2(2) ? "I shall return." : "I'll be back.");
+*/
+            verbalize(rn2(2) ? "\97]\82Í\95K\82¸\8bA\82Á\82Ä\82­\82é\81D" : "\97]\82Í\96ß\82Á\82Ä\82­\82é\81D");
         else
+#if 0 /*JP*/
             verbalize("%s %s!",
                       random_malediction[rn2(SIZE(random_malediction))],
                       random_insult[rn2(SIZE(random_insult))]);
+#else
+            verbalize("%s\81C%s\81I",
+                      random_malediction[rn2(SIZE(random_malediction))],
+                      random_insult[rn2(SIZE(random_insult))]);
+#endif
     } else if (is_lminion(mtmp)) {
         com_pager(rn2(QTN_ANGELIC - 1 + (Hallucination ? 1 : 0))
                   + QT_ANGELIC);
     } else {
         if (!rn2(5))
+/*JP
             pline("%s casts aspersions on your ancestry.", Monnam(mtmp));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\89Æ\95¿\82ð\92\86\8f\9d\82µ\82½\81D", Monnam(mtmp));
         else
             com_pager(rn2(QTN_DEMONIC) + QT_DEMONIC);
     }
index 5d41c59..aed90fb 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 #include "lev.h"
 
@@ -388,10 +393,18 @@ struct obj *weap;
     if (!new_worm) {
         if (context.mon_moving) {
             if (canspotmon(worm))
+#if 0 /*JP*/
                 pline("Part of %s tail has been cut off.",
                       s_suffix(mon_nam(worm)));
+#else
+                pline("%s\82Ì\90K\94ö\82Ì\88ê\95\94\95ª\82ª\90Ø\82è\97\8e\82Æ\82³\82ê\82½\81D",
+                      mon_nam(worm));
+#endif
         } else
+/*JP
             You("cut part of the tail off of %s.", mon_nam(worm));
+*/
+            You("%s\82Ì\90K\94ö\82Ì\88ê\95\94\95ª\82ð\90Ø\82Á\82½\81D", mon_nam(worm));
         toss_wsegs(new_tail, TRUE);
         if (worm->mhp > 1)
             worm->mhp /= 2;
@@ -421,9 +434,15 @@ struct obj *weap;
     place_wsegs(new_worm);
 
     if (context.mon_moving)
+/*JP
         pline("%s is cut in half.", Monnam(worm));
+*/
+        pline("%s\82Í\90^\82Á\82Õ\82½\82Â\82É\82³\82ê\82½\81D", Monnam(worm));
     else
+/*JP
         You("cut %s in half.", mon_nam(worm));
+*/
+        You("%s\82ð\90^\82Á\82Õ\82½\82Â\82É\82µ\82½\81D", mon_nam(worm));
 }
 
 /*
index 947f367..fa2f6f5 100644 (file)
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL void FDECL(m_lose_armor, (struct monst *, struct obj *));
@@ -277,17 +282,29 @@ struct obj *obj; /* item to make known if effect can be seen */
         && !(mon->mfrozen || mon->msleeping) && canseemon(mon)) {
         /* fast to slow (skipping intermediate state) or vice versa */
         const char *howmuch =
+/*JP
             (mon->mspeed + oldspeed == MFAST + MSLOW) ? "much " : "";
+*/
+            (mon->mspeed + oldspeed == MFAST + MSLOW) ? "\82·\82²\82­" : "";
 
         if (petrify) {
             /* mimic the player's petrification countdown; "slowing down"
                even if fast movement rate retained via worn speed boots */
             if (flags.verbose)
+/*JP
                 pline("%s is slowing down.", Monnam(mon));
+*/
+                pline("%s\82Í\82Ì\82ë\82­\82È\82Á\82½\81D", Monnam(mon));
         } else if (adjust > 0 || mon->mspeed == MFAST)
+/*JP
             pline("%s is suddenly moving %sfaster.", Monnam(mon), howmuch);
+*/
+            pline("%s\82Ì\93®\82«\82Í\93Ë\91R%s\82·\82Î\82â\82­\82È\82Á\82½\81D", Monnam(mon), howmuch);
         else
+/*JP
             pline("%s seems to be moving %sslower.", Monnam(mon), howmuch);
+*/
+            pline("%s\82Ì\93®\82«\82Í%s\82Ì\82ë\82­\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mon), howmuch);
 
         /* might discover an object if we see the speed change happen */
         if (obj != 0)
@@ -596,11 +613,19 @@ outer_break:
             char buf[BUFSZ];
 
             if (old)
+/*JP
                 Sprintf(buf, " removes %s and", distant_name(old, doname));
+*/
+                Sprintf(buf, "%s\82ð\82Í\82¸\82µ\82Ä", distant_name(old, doname));
             else
                 buf[0] = '\0';
+#if 0 /*JP*/
             pline("%s%s puts on %s.", Monnam(mon), buf,
                   distant_name(best, doname));
+#else
+            pline("%s\82Í%s%s\82ð\90g\82É\82Â\82¯\82½\81D", Monnam(mon), buf,
+                  distant_name(best,doname));
+#endif
             if (autocurse)
                 pline("%s %s %s %s for a moment.", s_suffix(Monnam(mon)),
                       simpleonames(best), otense(best, "glow"),
@@ -621,7 +646,10 @@ outer_break:
     /* if couldn't see it but now can, or vice versa, */
     if (!creation && (unseen ^ !canseemon(mon))) {
         if (mon->minvis && !See_invisible) {
+/*JP
             pline("Suddenly you cannot see %s.", nambuf);
+*/
+            pline("\93Ë\91R%s\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81D", nambuf);
             makeknown(best->otyp);
         } /* else if (!mon->minvis) pline("%s suddenly appears!",
              Amonnam(mon)); */
@@ -775,7 +803,9 @@ boolean polyspot;
     struct permonst *mdat = mon->data;
     boolean vis = cansee(mon->mx, mon->my);
     boolean handless_or_tiny = (nohands(mdat) || verysmall(mdat));
+#if 0 /*JP*//*\8eg\82í\82È\82¢*/
     const char *pronoun = mhim(mon), *ppronoun = mhis(mon);
+#endif
 
     if (breakarm(mdat)) {
         if ((otmp = which_armor(mon, W_ARM)) != 0) {
@@ -785,42 +815,74 @@ boolean polyspot;
                      "the dragon merges with his scaly armor" is odd
                      and the monster's previous form is already gone */
             else if (vis)
+/*JP
                 pline("%s breaks out of %s armor!", Monnam(mon), ppronoun);
+*/
+                pline("%s\82Í\8aZ\82ð\82â\82Ô\82è\8fo\82½\81I", Monnam(mon));
             else
+/*JP
                 You_hear("a cracking sound.");
+*/
+                You_hear("\83o\83\8a\83o\83\8a\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             m_useup(mon, otmp);
         }
         if ((otmp = which_armor(mon, W_ARMC)) != 0) {
             if (otmp->oartifact) {
                 if (vis)
+#if 0 /*JP*/
                     pline("%s %s falls off!", s_suffix(Monnam(mon)),
                           cloak_simple_name(otmp));
+#else
+                    pline("%s\82Ì%s\82Í\97\8e\82¿\82½\81I", Monnam(mon),
+                          cloak_simple_name(otmp));
+#endif
                 if (polyspot)
                     bypass_obj(otmp);
                 m_lose_armor(mon, otmp);
             } else {
                 if (vis)
+#if 0 /*JP*/
                     pline("%s %s tears apart!", s_suffix(Monnam(mon)),
                           cloak_simple_name(otmp));
+#else
+                    pline("%s\82Ì%s\82Í\82¸\82½\82¸\82½\82É\82È\82Á\82½\81I", Monnam(mon),
+                          cloak_simple_name(otmp));
+#endif
                 else
+/*JP
                     You_hear("a ripping sound.");
+*/
+                    You_hear("\83r\83\8a\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                 m_useup(mon, otmp);
             }
         }
         if ((otmp = which_armor(mon, W_ARMU)) != 0) {
             if (vis)
+/*JP
                 pline("%s shirt rips to shreds!", s_suffix(Monnam(mon)));
+*/
+                pline("%s\82Ì\83V\83\83\83c\82Í\82¸\82½\82¸\82½\82É\82È\82Á\82½\81I", Monnam(mon));
             else
+/*JP
                 You_hear("a ripping sound.");
+*/
+                You_hear("\83r\83\8a\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             m_useup(mon, otmp);
         }
     } else if (sliparm(mdat)) {
         if ((otmp = which_armor(mon, W_ARM)) != 0) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s armor falls around %s!", s_suffix(Monnam(mon)),
                       pronoun);
+#else
+                pline("%s\82Ì\8aZ\82ª\89ñ\82è\82É\97\8e\82¿\82½\81I", Monnam(mon));
+#endif
             else
+/*JP
                 You_hear("a thud.");
+*/
+                You_hear("\83h\83V\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             if (polyspot)
                 bypass_obj(otmp);
             m_lose_armor(mon, otmp);
@@ -828,11 +890,21 @@ boolean polyspot;
         if ((otmp = which_armor(mon, W_ARMC)) != 0) {
             if (vis) {
                 if (is_whirly(mon->data))
+#if 0 /*JP*/
                     pline("%s %s falls, unsupported!", s_suffix(Monnam(mon)),
                           cloak_simple_name(otmp));
+#else
+                    pline("%s\82Ì%s\82Í\8ex\82¦\82«\82ê\82¸\82É\97\8e\82¿\82½\81I", Monnam(mon),
+                          cloak_simple_name(otmp));
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s shrinks out of %s %s!", Monnam(mon), ppronoun,
                           cloak_simple_name(otmp));
+#else
+                    pline("%s\82Í%s\82æ\82è\8fk\82ñ\82¾\81I", Monnam(mon),
+                          cloak_simple_name(otmp));
+#endif
             }
             if (polyspot)
                 bypass_obj(otmp);
@@ -841,11 +913,20 @@ boolean polyspot;
         if ((otmp = which_armor(mon, W_ARMU)) != 0) {
             if (vis) {
                 if (sliparm(mon->data))
+#if 0 /*JP*/
                     pline("%s seeps right through %s shirt!", Monnam(mon),
                           ppronoun);
+#else
+                    pline("%s\82Í\8e©\95ª\82Ì\83V\83\83\83c\82É\82µ\82Ý\8d\9e\82ñ\82¾\81I", Monnam(mon));
+#endif
                 else
+#if 0 /*JP*/
                     pline("%s becomes much too small for %s shirt!",
                           Monnam(mon), ppronoun);
+#else
+                    pline("%s\82Í\8e©\95ª\82Ì\83V\83\83\83c\82æ\82è\82¸\82Á\82Æ\8f¬\82³\82­\82È\82Á\82½\81I",
+                          Monnam(mon));
+#endif
             }
             if (polyspot)
                 bypass_obj(otmp);
@@ -856,18 +937,30 @@ boolean polyspot;
         /* [caller needs to handle weapon checks] */
         if ((otmp = which_armor(mon, W_ARMG)) != 0) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s drops %s gloves%s!", Monnam(mon), ppronoun,
                       MON_WEP(mon) ? " and weapon" : "");
+#else
+                pline("%s\82Í\8f¬\8eè%s\82ð\97\8e\82µ\82½\81I", Monnam(mon), 
+                      MON_WEP(mon) ? "\82Æ\95\90\8aí" : "");
+#endif
             if (polyspot)
                 bypass_obj(otmp);
             m_lose_armor(mon, otmp);
         }
         if ((otmp = which_armor(mon, W_ARMS)) != 0) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s can no longer hold %s shield!", Monnam(mon),
                       ppronoun);
+#else
+                pline("%s\82Í\82à\82Í\82â\8f\82\82ð\8e\9d\82Â\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", Monnam(mon));
+#endif
             else
+/*JP
                 You_hear("a clank.");
+*/
+                You_hear("\83J\83\89\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             if (polyspot)
                 bypass_obj(otmp);
             m_lose_armor(mon, otmp);
@@ -878,10 +971,18 @@ boolean polyspot;
             /* flimsy test for horns matches polyself handling */
             && (handless_or_tiny || !is_flimsy(otmp))) {
             if (vis)
+#if 0 /*JP*/
                 pline("%s helmet falls to the %s!", s_suffix(Monnam(mon)),
                       surface(mon->mx, mon->my));
+#else
+                pline("%s\82Ì\8a\95\82Í%s\82Ö\97\8e\82¿\82½\81I", 
+                      Monnam(mon), surface(mon->mx, mon->my));
+#endif
             else
+/*JP
                 You_hear("a clank.");
+*/
+                You_hear("\83K\83`\83\83\83\93\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
             if (polyspot)
                 bypass_obj(otmp);
             m_lose_armor(mon, otmp);
@@ -891,10 +992,18 @@ boolean polyspot;
         if ((otmp = which_armor(mon, W_ARMF)) != 0) {
             if (vis) {
                 if (is_whirly(mon->data))
+/*JP
                     pline("%s boots fall away!", s_suffix(Monnam(mon)));
+*/
+                    pline("%s\82Ì\8cC\82Í\82Ê\82°\97\8e\82¿\82½\81I", Monnam(mon));
                 else
+#if 0 /*JP*/
                     pline("%s boots %s off %s feet!", s_suffix(Monnam(mon)),
                           verysmall(mdat) ? "slide" : "are pushed", ppronoun);
+#else
+                    pline("%s\82Ì\8cC\82Í\91«\82©\82ç%s\81I", Monnam(mon),
+                          verysmall(mdat) ? "\8a\8a\82è\97\8e\82¿\82½" : "\89\9f\82µ\8fo\82³\82ê\82½");
+#endif
             }
             if (polyspot)
                 bypass_obj(otmp);
@@ -907,18 +1016,30 @@ boolean polyspot;
                 bypass_obj(otmp);
             m_lose_armor(mon, otmp);
             if (vis)
+/*JP
                 pline("%s saddle falls off.", s_suffix(Monnam(mon)));
+*/
+                pline("%s\82©\82ç\88Æ\82ª\97\8e\82¿\82½\81D", Monnam(mon));
         }
         if (mon == u.usteed)
             goto noride;
     } else if (mon == u.usteed && !can_ride(mon)) {
     noride:
+/*JP
         You("can no longer ride %s.", mon_nam(mon));
+*/
+        You("\82à\82¤%s\82É\8fæ\82Á\82Ä\82¢\82ç\82ê\82È\82¢\81D", mon_nam(mon));
         if (touch_petrifies(u.usteed->data) && !Stone_resistance && rnl(3)) {
             char buf[BUFSZ];
 
+/*JP
             You("touch %s.", mon_nam(u.usteed));
+*/
+            You("%s\82É\90G\82Á\82½\81D", mon_nam(u.usteed));
+/*JP
             Sprintf(buf, "falling off %s", an(u.usteed->data->mname));
+*/
+            Sprintf(buf, "%s\82©\82ç\97\8e\82¿\82Ä", u.usteed->data->mname);
             instapetrify(buf);
         }
         dismount_steed(DISMOUNT_FELL);
index 1000b29..517121d 100644 (file)
@@ -1,6 +1,11 @@
 /* NetHack 3.6 write.c $NHDT-Date: 1446078770 2015/10/29 00:32:50 $  $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 STATIC_DCL int FDECL(cost, (struct obj *));
@@ -105,11 +110,19 @@ register struct obj *pen;
     const char *typeword;
 
     if (nohands(youmonst.data)) {
+/*JP
         You("need hands to be able to write!");
+*/
+        You("\8f\91\82­\82½\82ß\82É\82Í\8eè\82ª\95K\97v\82¾\81I");
         return 0;
     } else if (Glib) {
+#if 0 /*JP*/
         pline("%s from your %s.", Tobjnam(pen, "slip"),
               makeplural(body_part(FINGER)));
+#else
+        pline("%s\82ª%s\82©\82ç\8a\8a\82è\82¨\82¿\82½\81D", xname(pen),
+              body_part(FINGER));
+#endif
         dropx(pen);
         return 1;
     }
@@ -120,14 +133,25 @@ register struct obj *pen;
         return 0;
     /* can't write on a novel (unless/until it's been converted into a blank
        spellbook), but we want messages saying so to avoid "spellbook" */
+#if 0 /*JP*/
     typeword = (paper->otyp == SPE_NOVEL)
                   ? "book"
                   : (paper->oclass == SPBOOK_CLASS)
                      ? "spellbook"
                      : "scroll";
+#else
+    typeword = (paper->otyp == SPE_NOVEL)
+                  ? "\96{"
+                  : (paper->oclass == SPBOOK_CLASS)
+                     ? "\96\82\96@\8f\91"
+                     : "\8aª\95¨";
+#endif
     if (Blind) {
         if (!paper->dknown) {
+/*JP
             You("don't know if that %s is blank or not.", typeword);
+*/
+            You("%s\82ª\94\92\8e\86\82©\82Ç\82¤\82©\82í\82©\82ç\82È\82¢\81I", typeword);
             return 1;
         } else if (paper->oclass == SPBOOK_CLASS) {
             /* can't write a magic book while blind */
@@ -138,18 +162,25 @@ register struct obj *pen;
     }
     paper->dknown = 1;
     if (paper->otyp != SCR_BLANK_PAPER && paper->otyp != SPE_BLANK_PAPER) {
+/*JP
         pline("That %s is not blank!", typeword);
+*/
+        pline("%s\82Í\94\92\8e\86\82\82á\82È\82¢\81I", typeword);
         exercise(A_WIS, FALSE);
         return 1;
     }
 
     /* what to write */
+/*JP
     Sprintf(qbuf, "What type of %s do you want to write?", typeword);
+*/
+    Sprintf(qbuf, "\82Ç\82Ì\8eí\82Ì%s\82Ì\8eô\95\82ð\8f\91\82«\82Ü\82·\82©\81H", typeword);
     getlin(qbuf, namebuf);
     (void) mungspaces(namebuf); /* remove any excess whitespace */
     if (namebuf[0] == '\033' || !namebuf[0])
         return 1;
     nm = namebuf;
+#if 0 /*JP*//*\93ú\96{\8cê\82Å\82Í\95s\97v*/
     if (!strncmpi(nm, "scroll ", 7))
         nm += 7;
     else if (!strncmpi(nm, "spellbook ", 10))
@@ -161,6 +192,7 @@ register struct obj *pen;
         (void) strncpy(bp, " armor ", 7); /* won't add '\0' */
         (void) mungspaces(bp + 1);        /* remove the extra space */
     }
+#endif
 
     deferred = 0;       /* not any scroll or book */
     deferralchance = 0; /* incremented for each oc_uname match */
@@ -204,21 +236,36 @@ register struct obj *pen;
         goto found;
     }
 
+/*JP
     There("is no such %s!", typeword);
+*/
+    pline("\82»\82Ì\82æ\82¤\82È%s\82Í\82È\82¢\81I", typeword);
     return 1;
 found:
 
     if (i == SCR_BLANK_PAPER || i == SPE_BLANK_PAPER) {
+/*JP
         You_cant("write that!");
+*/
+        pline("\94\92\8e\86\82É\94\92\8e\86\82ð\8f\91\82­\81H\81I");
+/*JP
         pline("It's obscene!");
+*/
+        pline("\82»\82¤\82¢\82¤\82â\82è\82©\82½\82Í\82¿\82å\82Á\82Æ\95s\96ù\89õ\82¾\82È\81I");
         return 1;
     } else if (i == SPE_BOOK_OF_THE_DEAD) {
+/*JP
         pline("No mere dungeon adventurer could write that.");
+*/
+        pline("\88ê\89î\82Ì\96À\8b{\96`\8c¯\89Æ\82É\82Í\8f\91\82¯\82é\82à\82Ì\82Å\82Í\82È\82¢\81D");
         return 1;
     } else if (by_descr && paper->oclass == SPBOOK_CLASS
                && !objects[i].oc_name_known) {
         /* can't write unknown spellbooks by description */
+/*JP
         pline("Unfortunately you don't have enough information to go on.");
+*/
+        pline("\8ec\94O\82È\82ª\82ç\82»\82ê\82ð\8f\91\82­\82¾\82¯\82Ì\8f\\95ª\82È\92m\8e¯\82ª\82È\82¢\81D");
         return 1;
     }
 
@@ -234,7 +281,10 @@ found:
     /* see if there's enough ink */
     basecost = cost(new_obj);
     if (pen->spe < basecost / 2) {
+/*JP
         Your("marker is too dry to write that!");
+*/
+        Your("\83}\81[\83J\82Í\8a£\82«\82·\82¬\82Ä\82¨\82è\82¤\82Ü\82­\8f\91\82¯\82È\82©\82Á\82½\81I");
         obfree(new_obj, (struct obj *) 0);
         return 1;
     }
@@ -247,13 +297,22 @@ found:
     /* dry out marker */
     if (pen->spe < actualcost) {
         pen->spe = 0;
+/*JP
         Your("marker dries out!");
+*/
+        pline("\8f\91\82¢\82Ä\82¢\82é\93r\92\86\82Å\83}\81[\83J\82Í\8a£\82«\82«\82Á\82½\81I");
         /* scrolls disappear, spellbooks don't */
         if (paper->oclass == SPBOOK_CLASS) {
+/*JP
             pline_The("spellbook is left unfinished and your writing fades.");
+*/
+            pline_The("\96\82\96@\8f\91\82É\82Í\8f\91\82«\82«\82ê\82È\82©\82Á\82½\81D\82»\82µ\82Ä\8f\91\82¢\82½\95\8e\9a\82Í\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81D");
             update_inventory(); /* pen charges */
         } else {
+/*JP
             pline_The("scroll is now useless and disappears!");
+*/
+            pline_The("\8aª\95¨\82Í\8eg\82¢\82à\82Ì\82É\82È\82ç\82È\82­\82È\82Á\82Ä\8fÁ\96Å\82µ\82½\81I");
             useup(paper);
         }
         obfree(new_obj, (struct obj *) 0);
@@ -290,19 +349,31 @@ found:
         && !(by_descr && label_known(new_obj->otyp, invent))
         /* and Luck might override after both checks have failed */
         && rnl(Role_if(PM_WIZARD) ? 5 : 15)) {
+/*JP
         You("%s to write that.", by_descr ? "fail" : "don't know how");
+*/
+        You("%s\81I", by_descr ? "\8f\91\82­\82Ì\82É\8e¸\94s\82µ\82½" : "\82Ç\82¤\82â\82Á\82Ä\8f\91\82­\82Ì\82©\92m\82ç\82È\82¢");
         /* scrolls disappear, spellbooks don't */
         if (paper->oclass == SPBOOK_CLASS) {
             You(
+/*JP
       "write in your best handwriting:  \"My Diary\", but it quickly fades.");
+*/
+      "\92\9a\94J\82É\8f\91\82¢\82½\81F\81u\89ä\82ª\93ú\8bL\81v\81D\82µ\82©\82µ\82 \82Á\82Æ\8c¾\82¤\8aÔ\82É\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81D");
             update_inventory(); /* pen charges */
         } else {
             if (by_descr) {
                 Strcpy(namebuf, OBJ_DESCR(objects[new_obj->otyp]));
                 wipeout_text(namebuf, (6 + MAXULEV - u.ulevel) / 6, 0);
             } else
+/*JP
                 Sprintf(namebuf, "%s was here!", plname);
+*/
+                Sprintf(namebuf, "%s\82Í\82±\82±\82É\82 \82è\81I", plname);
+/*JP
             You("write \"%s\" and the scroll disappears.", namebuf);
+*/
+            You("\81u%s\81v\82Æ\8f\91\82¢\82½\81D\82·\82é\82Æ\8aª\95¨\82Í\8fÁ\82¦\82Ä\82µ\82Ü\82Á\82½\81D", namebuf);
             useup(paper);
         }
         obfree(new_obj, (struct obj *) 0);
@@ -328,8 +399,13 @@ found:
     /* success */
     if (new_obj->oclass == SPBOOK_CLASS) {
         /* acknowledge the change in the object's description... */
+#if 0 /*JP*/
         pline_The("spellbook warps strangely, then turns %s.",
                   new_book_description(new_obj->otyp, namebuf));
+#else
+        pline("\96\82\96@\8f\91\82Í\96­\82É\94½\82è\82©\82¦\82è\81C\82»\82µ\82Ä%s\82É\82È\82Á\82½\81D",
+                  new_book_description(new_obj->otyp, namebuf));
+#endif
     }
     new_obj->blessed = (curseval > 0);
     new_obj->cursed = (curseval < 0);
@@ -337,9 +413,15 @@ found:
     if (new_obj->otyp == SCR_MAIL)
         new_obj->spe = 1;
 #endif
+#if 0 /*JP*/
     new_obj =
         hold_another_object(new_obj, "Oops!  %s out of your grasp!",
                             The(aobjnam(new_obj, "slip")), (const char *) 0);
+#else
+    new_obj =
+        hold_another_object(new_obj, "\82¨\82Á\82Æ\81I%s\82Í\82 \82È\82½\82Ì\8eè\82©\82ç\8a\8a\82è\97\8e\82¿\82½\81I",
+                            xname(new_obj), (const char *) 0);
+#endif
     return 1;
 }
 
index 474f195..d29ee54 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -2,6 +2,11 @@
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* 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-2016            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* Disintegration rays have special treatment; corpses are never left.
@@ -53,23 +58,65 @@ STATIC_DCL int FDECL(spell_hit_bonus, (int));
     ((ptr)->mlet == S_EEL || amphibious(ptr) || is_swimmer(ptr))
 
 STATIC_VAR const char are_blinded_by_the_flash[] =
+/*JP
     "are blinded by the flash!";
+*/
+    "\82Ü\82Î\82ä\82¢\8cõ\82Å\96Ú\82ª\8c©\82¦\82È\82­\82È\82Á\82½\81I";
 
 const char *const flash_types[] =
     {                  /* also used in buzzmu(mcastu.c) */
+#if 0 /*JP*/
       "magic missile", /* Wands must be 0-9 */
       "bolt of fire", "bolt of cold", "sleep ray", "death ray",
       "bolt of lightning", "", "", "", "",
+#else
+        "\96\82\96@\82Ì\96î", /* Wands must be 0-9 */
+        "\89Î\82Ì\91M\8cõ",
+        "\95X\82Ì\91M\8cõ",
+        "\96°\82è\8cõ\90ü",
+        "\8e\80\82Ì\8cõ\90ü",
+        "\88î\8dÈ\82Ì\91M\8cõ",
+        "",
+        "",
+        "",
+        "",
+#endif
 
+#if 0 /*JP*/
       "magic missile", /* Spell equivalents must be 10-19 */
       "fireball", "cone of cold", "sleep ray", "finger of death",
       "bolt of lightning", /* There is no spell, used for retribution */
       "", "", "", "",
+#else
+        "\96\82\96@\82Ì\96î", /* Spell equivalents must be 10-19 */
+        "\89Î\82Ì\8bÊ",
+        "\97â\8bC",
+        "\96°\82è\8cõ\90ü",
+        "\8e\80\82Ì\8ew",
+        "\88î\8dÈ\82Ì\91M\8cõ", /* There is no spell, used for retribution */
+        "",
+        "",
+        "",
+        "",
+#endif
 
+#if 0 /*JP*/
       "blast of missiles", /* Dragon breath equivalents 20-29*/
       "blast of fire", "blast of frost", "blast of sleep gas",
       "blast of disintegration", "blast of lightning", "blast of poison gas",
       "blast of acid", "", ""
+#else
+        "\96\82\96@\82Ì\96î\82Ì\91§", /* Dragon breath equivalents 20-29*/
+        "\89Î\82Ì\91§",
+        "\95X\82Ì\91§",
+        "\90\87\96°\83K\83X\82Ì\91§",
+        "\95ª\89ð\82Ì\91§",
+        "\88î\8dÈ\82Ì\91§",
+        "\93Å\83K\83X\82Ì\91§",
+        "\8e_\82Ì\91§",
+        "",
+        ""
+#endif
     };
 
 /*
@@ -138,7 +185,10 @@ struct obj *otmp;
     boolean reveal_invis = FALSE, learn_it = FALSE;
     boolean dbldam = Role_if(PM_KNIGHT) && u.uhave.questart;
     int dmg, otyp = otmp->otyp;
+/*JP
     const char *zap_type_text = "spell";
+*/
+    const char *zap_type_text = "\96\82\96@";
     struct obj *obj;
     boolean disguised_mimic =
         (mtmp->data->mlet == S_MIMIC && mtmp->m_ap_type != M_AP_NOTHING);
@@ -148,13 +198,19 @@ struct obj *otmp;
 
     switch (otyp) {
     case WAN_STRIKING:
+/*JP
         zap_type_text = "wand";
+*/
+        zap_type_text = "\8fñ";
     /* fall through */
     case SPE_FORCE_BOLT:
         reveal_invis = TRUE;
         if (resists_magm(mtmp)) { /* match effect on player */
             shieldeff(mtmp->mx, mtmp->my);
+/*JP
             pline("Boing!");
+*/
+            pline("\83{\83C\83\93\81I");
             break; /* skip makeknown */
         } else if (u.uswallow || rnd(20) < 10 + find_mac(mtmp)) {
             dmg = d(2, 12);
@@ -174,8 +230,14 @@ struct obj *otmp;
             mon_adjust_speed(mtmp, -1, otmp);
             m_dowear(mtmp, FALSE); /* might want speed boots */
             if (u.uswallow && (mtmp == u.ustuck) && is_whirly(mtmp->data)) {
+/*JP
                 You("disrupt %s!", mon_nam(mtmp));
+*/
+                You("%s\82ð\83o\83\89\83o\83\89\82É\82µ\82½\81I", mon_nam(mtmp));
+/*JP
                 pline("A huge hole opens up...");
+*/
+                pline("\92E\8fo\82Å\82«\82»\82¤\82È\8c\8a\82ª\8aJ\82¢\82½\81D\81D\81D");
                 expels(mtmp, mtmp->data, TRUE);
             }
         }
@@ -224,7 +286,10 @@ struct obj *otmp;
                with their metabolism...) */
             if (mtmp->cham == NON_PM && !rn2(25)) {
                 if (canseemon(mtmp)) {
+/*JP
                     pline("%s shudders!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\90g\90k\82¢\82µ\82½\81I", Monnam(mtmp));
                     learn_it = TRUE;
                 }
                 /* context.bypasses = TRUE; ## for make_corpse() */
@@ -253,7 +318,10 @@ struct obj *otmp;
         Strcpy(nambuf, Monnam(mtmp));
         mon_set_minvis(mtmp);
         if (!oldinvis && knowninvisible(mtmp)) {
+/*JP
             pline("%s turns transparent!", nambuf);
+*/
+            pline("%s\82Í\93§\96¾\82É\82È\82Á\82½\81I", nambuf);
             learn_it = TRUE;
         }
         break;
@@ -274,9 +342,15 @@ struct obj *otmp;
         if (u.uswallow && mtmp == u.ustuck) {
             if (is_animal(mtmp->data)) {
                 if (Blind)
+/*JP
                     You_feel("a sudden rush of air!");
+*/
+                    You("\93Ë\91R\8c\83\82µ\82¢\8bó\8bC\82Ì\97¬\82ê\82ð\8a´\82\82½\81I");
                 else
+/*JP
                     pline("%s opens its mouth!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\8cû\82ð\8aJ\82¢\82½\81I", Monnam(mtmp));
             }
             expels(mtmp, mtmp->data, TRUE);
             /* zap which hits steed will only release saddle if it
@@ -325,8 +399,13 @@ struct obj *otmp;
                     } else
                         mimic_hit_msg(mtmp, otyp);
                 } else
+#if 0 /*JP*/
                     pline("%s looks%s better.", Monnam(mtmp),
                           otyp == SPE_EXTRA_HEALING ? " much" : "");
+#else
+                    pline("%s\82Í%s\8c³\8bC\82É\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mtmp),
+                          otyp == SPE_EXTRA_HEALING ? "\82Æ\82Ä\82à" : "" );
+#endif
             }
             if (mtmp->mtame || mtmp->mpeaceful) {
                 adjalign(Role_if(PM_HEALER) ? 1 : sgn(u.ualign.type));
@@ -359,10 +438,16 @@ struct obj *otmp;
             /* turn into flesh golem */
             if (newcham(mtmp, &mons[PM_FLESH_GOLEM], FALSE, FALSE)) {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s turns to flesh!", name);
+*/
+                    pline("%s\82Ì\90Î\89»\82ª\89ð\82¯\82½\81I", name);
             } else {
                 if (canseemon(mtmp))
+/*JP
                     pline("%s looks rather fleshy for a moment.", name);
+*/
+                    pline("%s\82Í\88ê\8fu\90Î\89»\82ª\89ð\82¯\82½\81D", name);
             }
         } else
             wake = FALSE;
@@ -383,7 +468,10 @@ struct obj *otmp;
             else {
                 mtmp->m_lev--;
                 if (canseemon(mtmp))
+/*JP
                     pline("%s suddenly seems weaker!", Monnam(mtmp));
+*/
+                    pline("%s\82Í\82Æ\82Â\82º\82ñ\8eã\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I", Monnam(mtmp));
             }
         }
         break;
@@ -440,8 +528,13 @@ struct monst *mtmp;
         }
         (void) display_minventory(mtmp, MINV_ALL | MINV_NOLET, (char *) 0);
     } else {
+#if 0 /*JP*/
         pline("%s is not carrying anything%s.", noit_Monnam(mtmp),
               (u.uswallow && mtmp == u.ustuck) ? " besides you" : "");
+#else
+        pline("%s\82Í%s\89½\82à\8e\9d\82Á\82Ä\82¢\82È\82¢\81D", noit_Monnam(mtmp),
+              (u.uswallow && mtmp == u.ustuck) ? "\82 \82È\82½\88È\8aO\82É" : "");
+#endif
     }
 }
 
@@ -787,7 +880,11 @@ boolean by_hero;
         ghost = find_mid(m_id, FM_FMON);
         if (ghost && ghost->data == &mons[PM_GHOST]) {
             if (canseemon(ghost))
+#if 0 /*JP*/
                 pline("%s is suddenly drawn into its former body!",
+#else
+                pline("%s\82Í\93Ë\91R\82à\82Æ\82Ì\91Ì\82É\88ø\82«\8d\9e\82Ü\82ê\82½\81I",
+#endif
                       Monnam(ghost));
             /* transfer the ghost's inventory along with it */
             while ((otmp = ghost->minvent) != 0) {
@@ -889,11 +986,20 @@ struct monst *mon;
             ++res;
             if (youseeit) {
                 if (!once++)
+/*JP
                     Strcpy(owner, (mon == &youmonst) ? "Your"
+*/
+                    Strcpy(owner, (mon == &youmonst) ? "\82 \82È\82½"
                                                      : s_suffix(Monnam(mon)));
+/*JP
                 pline("%s %s suddenly comes alive!", owner, corpse);
+*/
+                pline("%s\82Ì%s\82Í\93Ë\91R\90\96½\82ð\91Ñ\82Ñ\82½\81I", owner, corpse);
             } else if (canseemon(mtmp2))
+/*JP
                 pline("%s suddenly appears!", Amonnam(mtmp2));
+*/
+                pline("%s\82ª\93Ë\91R\8c»\82í\82ê\82½\81I", Amonnam(mtmp2));
         }
     }
     return res;
@@ -1192,7 +1298,10 @@ int okind;
     case METAL:
     case MITHRIL:
         pm_index = PM_IRON_GOLEM;
+/*JP
         material = "metal ";
+*/
+        material = "\8bà\91®";
         break;
     case COPPER:
     case SILVER:
@@ -1200,46 +1309,77 @@ int okind;
     case GEMSTONE:
     case MINERAL:
         pm_index = rn2(2) ? PM_STONE_GOLEM : PM_CLAY_GOLEM;
+/*JP
         material = "lithic ";
+*/
+        material = "\8dz\95¨";
         break;
     case 0:
     case FLESH:
         /* there is no flesh type, but all food is type 0, so we use it */
         pm_index = PM_FLESH_GOLEM;
+/*JP
         material = "organic ";
+*/
+        material = "\97L\8b@\95¨";
         break;
     case WOOD:
         pm_index = PM_WOOD_GOLEM;
+/*JP
         material = "wood ";
+*/
+        material = "\96Ø\8dÞ";
         break;
     case LEATHER:
         pm_index = PM_LEATHER_GOLEM;
+/*JP
         material = "leather ";
+*/
+        material = "\8av";
         break;
     case CLOTH:
         pm_index = PM_ROPE_GOLEM;
+/*JP
         material = "cloth ";
+*/
+        material = "\95z";
         break;
     case BONE:
         pm_index = PM_SKELETON; /* nearest thing to "bone golem" */
+/*JP
         material = "bony ";
+*/
+        material = "\8d\9c";
         break;
     case GOLD:
         pm_index = PM_GOLD_GOLEM;
+/*JP
         material = "gold ";
+*/
+        material = "\8bà";
         break;
     case GLASS:
         pm_index = PM_GLASS_GOLEM;
+/*JP
         material = "glassy ";
+*/
+        material = "\83K\83\89\83X";
         break;
     case PAPER:
         pm_index = PM_PAPER_GOLEM;
+/*JP
         material = "paper ";
+*/
+        material = "\8e\86";
         break;
     default:
         /* if all else fails... */
         pm_index = PM_STRAW_GOLEM;
+#if 0 /*JP*/
         material = "";
+#else
+        material = "\95¨\91Ì";
+#endif
         break;
     }
 
@@ -1250,8 +1390,13 @@ int okind;
     polyuse(obj, okind, (int) mons[pm_index].cwt);
 
     if (mtmp && cansee(mtmp->mx, mtmp->my)) {
+#if 0 /*JP*/
         pline("Some %sobjects meld, and %s arises from the pile!", material,
               a_monnam(mtmp));
+#else
+        pline("\82¢\82­\82Â\82©\82Ì%s\82ª\97n\82¯\81C\82»\82Ì\8eR\82©\82ç%s\82ª\8c»\82í\82ê\82½\81I", material,
+              a_monnam(mtmp));
+#endif
     }
 }
 
@@ -1567,11 +1712,17 @@ int id;
                     && !costly_spot(u.ux, u.uy))
                     make_angry_shk(shkp, ox, oy);
                 else {
+/*JP
                     pline("%s gets angry!", Monnam(shkp));
+*/
+                    pline("%s\82Í\8c\83\93{\82µ\82½\81I", Monnam(shkp));
                     hot_pursuit(shkp);
                 }
             } else
+/*JP
                 Norep("%s is furious!", Monnam(shkp));
+*/
+                Norep("%s\82Í\93{\82Á\82½\81I", Monnam(shkp));
         }
     }
     delobj(obj);
@@ -1637,8 +1788,13 @@ struct obj *obj;
                     else
                         delobj(obj);
                     if (cansee(mon->mx, mon->my))
+#if 0 /*JP*/
                         pline_The("figurine %sanimates!",
                                   golem_xform ? "turns to flesh and " : "");
+#else
+                        pline_The("\90l\8c`\82Í%s\93®\82«\82¾\82µ\82½\81I",
+                                  golem_xform ? "\90Î\89»\82ª\89ð\82¯\82Ä" : "");
+#endif
                 }
             }
             if (mon) {
@@ -1692,9 +1848,15 @@ struct obj *obj;
            non-eating, or something stranger) */
         if (Role_if(PM_MONK) || !u.uconduct.unvegetarian
             || !carnivorous(youmonst.data))
+/*JP
             Norep("You smell the odor of meat.");
+*/
+            Norep("\93÷\82Ì\88«\8fL\82ª\95Y\82Á\82½\81D");
         else
+/*JP
             Norep("You smell a delicious smell.");
+*/
+            Norep("\82·\82Î\82ç\82µ\82¢\8d\81\82è\82¾\81I");
     }
     newsym(oox, ooy);
     return res;
@@ -1819,7 +1981,10 @@ struct obj *obj, *otmp;
                        so just make probing be inconclusive for it */
                     if (catbox)
                         obj->cknown = 0;
+/*JP
                     pline("%s empty.", Tobjnam(obj, catbox ? "seem" : "are"));
+*/
+                    pline("%s\82Í\8bó\82Á\82Û%s\82¾\81D", xname(obj), catbox ? "\82Ì\82æ\82¤" : "");
                 } else {
                     struct obj *o;
                     /* view contents (not recursively) */
@@ -1988,7 +2153,10 @@ register struct obj *wand;
     if (wand->spe < 0 || (wand->spe == 0 && rn2(121)))
         return 0;
     if (wand->spe == 0)
+/*JP
         You("wrest one last charge from the worn-out wand.");
+*/
+        You("\8eg\82¢\82«\82Á\82½\8fñ\82©\82ç\8dÅ\8cã\82Ì\97Í\82ð\82µ\82Ú\82è\82Æ\82Á\82½\81D");
     wand->spe--;
     return 1;
 }
@@ -2026,17 +2194,26 @@ register struct obj *obj;
     case WAN_WISHING:
         known = TRUE;
         if (Luck + rn2(5) < 0) {
+/*JP
             pline("Unfortunately, nothing happens.");
+*/
+            pline("\8ec\94O\82È\82ª\82ç\81C\89½\82à\8bN\82«\82È\82©\82Á\82½\81D");
             break;
         }
         makewish();
         break;
     case WAN_ENLIGHTENMENT:
         known = TRUE;
+/*JP
         You_feel("self-knowledgeable...");
+*/
+        You("\8e©\95ª\8e©\90g\82ª\94»\82é\82æ\82¤\82È\8bC\82ª\82µ\82½\81D\81D\81D");
         display_nhwindow(WIN_MESSAGE, FALSE);
         enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS);
+/*JP
         pline_The("feeling subsides.");
+*/
+        pline("\82»\82Ì\8a´\82\82Í\82È\82­\82È\82Á\82½\81D");
         exercise(A_WIS, TRUE);
         break;
     }
@@ -2055,9 +2232,15 @@ struct obj *otmp;
 {
     int dmg;
     otmp->in_use = TRUE; /* in case losehp() is fatal */
+/*JP
     pline("%s suddenly explodes!", The(xname(otmp)));
+*/
+    pline("%s\82Í\93Ë\91R\94\9a\94­\82µ\82½\81I", xname(otmp));
     dmg = d(otmp->spe + 2, 6);
+/*JP
     losehp(Maybe_Half_Phys(dmg), "exploding wand", KILLED_BY_AN);
+*/
+    losehp(Maybe_Half_Phys(dmg), "\8fñ\82Ì\94\9a\94­\82Å", KILLED_BY_AN);
     useup(otmp);
 }
 
@@ -2087,14 +2270,21 @@ dozap()
         return 1;
     } else if (!(objects[obj->otyp].oc_dir == NODIR) && !getdir((char *) 0)) {
         if (!Blind)
+/*JP
             pline("%s glows and fades.", The(xname(obj)));
+*/
+            pline("%s\82Í\88ê\8fu\8bP\82¢\82½\81D", The(xname(obj)));
         /* make him pay for knowing !NODIR */
     } else if (!u.dx && !u.dy && !u.dz
                && !(objects[obj->otyp].oc_dir == NODIR)) {
         if ((damage = zapyourself(obj, TRUE)) != 0) {
+#if 0 /*JP*/
             char buf[BUFSZ];
             Sprintf(buf, "zapped %sself with a wand", uhim());
             losehp(Maybe_Half_Phys(damage), buf, NO_KILLER_PREFIX);
+#else
+            losehp(Maybe_Half_Phys(damage), "\8e©\95ª\8e©\90g\82Ì\8fñ\82Ì\97Í\82ð\97\81\82Ñ\82Ä", NO_KILLER_PREFIX);
+#endif
         }
     } else {
         /*      Are we having fun yet?
@@ -2109,7 +2299,10 @@ dozap()
         current_wand = 0;
     }
     if (obj && obj->spe < 0) {
+/*JP
         pline("%s to dust.", Tobjnam(obj, "turn"));
+*/
+        pline("%s\82Í\82¿\82è\82Æ\82È\82Á\82½\81D", xname(obj));
         useup(obj);
     }
     update_inventory(); /* maybe used a charge */
@@ -2130,10 +2323,16 @@ boolean ordinary;
         learn_it = TRUE;
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline("Boing!");
+*/
+            pline("\83{\83C\83\93\81I");
         } else {
             if (ordinary) {
+/*JP
                 You("bash yourself!");
+*/
+                You("\8e©\95ª\8e©\90g\82ð\91Å\82¿\82Â\82¯\82½\81I");
                 damage = d(2, 12);
             } else
                 damage = d(1 + obj->spe, 6);
@@ -2144,12 +2343,18 @@ boolean ordinary;
     case WAN_LIGHTNING:
         learn_it = TRUE;
         if (!Shock_resistance) {
+/*JP
             You("shock yourself!");
+*/
+            You("\93d\8c\82\82ð\82¤\82¯\82½\81I");
             damage = d(12, 6);
             exercise(A_CON, FALSE);
         } else {
             shieldeff(u.ux, u.uy);
+/*JP
             You("zap yourself, but seem unharmed.");
+*/
+            You("\8e©\95ª\82É\8fñ\82ð\82Ó\82è\82©\82´\82µ\82½\82ª\81C\89ö\89ä\82Í\82µ\82È\82©\82Á\82½\82æ\82¤\82¾\81D");
             ugolemeffects(AD_ELEC, d(12, 6));
         }
         destroy_item(WAND_CLASS, AD_ELEC);
@@ -2158,7 +2363,10 @@ boolean ordinary;
         break;
 
     case SPE_FIREBALL:
+/*JP
         You("explode a fireball on top of yourself!");
+*/
+        Your("\93ª\8fã\82Å\89Î\82Ì\8bÊ\82ª\94\9a\94­\82µ\82½\81I");
         explode(u.ux, u.uy, 11, d(6, 6), WAND_CLASS, EXPL_FIERY);
         break;
     case WAN_FIRE:
@@ -2166,10 +2374,16 @@ boolean ordinary;
         learn_it = TRUE;
         if (Fire_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             You_feel("rather warm.");
+*/
+            You("\82¿\82å\82Á\82Æ\92g\82©\82­\8a´\82\82½\81D");
             ugolemeffects(AD_FIRE, d(12, 6));
         } else {
+/*JP
             pline("You've set yourself afire!");
+*/
+            You("\89\8a\82É\82Â\82Â\82Ü\82ê\82½\81I");
             damage = d(12, 6);
         }
         burn_away_slime();
@@ -2186,10 +2400,16 @@ boolean ordinary;
         learn_it = TRUE;
         if (Cold_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             You_feel("a little chill.");
+*/
+            You("\82¿\82å\82Á\82Æ\97â\82½\82­\8a´\82\82½\81D");
             ugolemeffects(AD_COLD, d(12, 6));
         } else {
+/*JP
             You("imitate a popsicle!");
+*/
+            You("\83A\83C\83X\83L\83\83\83\93\83f\81[\82Ì\82æ\82¤\82É\82È\82Á\82½\81I");
             damage = d(12, 6);
         }
         destroy_item(POTION_CLASS, AD_COLD);
@@ -2200,10 +2420,16 @@ boolean ordinary;
         learn_it = TRUE;
         if (Antimagic) {
             shieldeff(u.ux, u.uy);
+/*JP
             pline_The("missiles bounce!");
+*/
+            pline("\96\82\96@\82Ì\96î\82Í\82Í\82Ë\82©\82¦\82Á\82½\81I");
         } else {
             damage = d(4, 6);
+/*JP
             pline("Idiot!  You've shot yourself!");
+*/
+            pline("\89½\82â\82Á\82Ä\82ñ\82¾\81I\82 \82È\82½\82Í\8e©\95ª\8e©\90g\82ð\8c\82\82Á\82½\81I");
         }
         break;
 
@@ -2223,7 +2449,10 @@ boolean ordinary;
     case SPE_DRAIN_LIFE:
         if (!Drain_resistance) {
             learn_it = TRUE; /* (no effect for spells...) */
+/*JP
             losexp("life drainage");
+*/
+            losexp("\90\96½\97Í\82ð\8bz\8eû\82³\82ê\82Ä");
         }
         damage = 0; /* No additional damage */
         break;
@@ -2236,7 +2465,10 @@ boolean ordinary;
 
         if (BInvis && uarmc->otyp == MUMMY_WRAPPING) {
             /* A mummy wrapping absorbs it and protects you */
+/*JP
             You_feel("rather itchy under %s.", yname(uarmc));
+*/
+            You("%s\82Ì\89º\82ª\83\80\83Y\83\80\83Y\82µ\82½\81D", xname(uarmc));
             break;
         }
         if (ordinary || !rn2(10)) { /* permanent */
@@ -2256,9 +2488,15 @@ boolean ordinary;
         if (!(HFast & INTRINSIC)) {
             learn_it = TRUE;
             if (!Fast)
+/*JP
                 You("speed up.");
+*/
+                You("\93®\82«\82ª\91¬\82­\82È\82Á\82½\81D");
             else
+/*JP
                 Your("quickness feels more natural.");
+*/
+                You("\91¬\82³\82É\8aµ\82ê\82Ä\82«\82½\81D");
             exercise(A_DEX, TRUE);
         }
         HFast |= FROMOUTSIDE;
@@ -2269,9 +2507,15 @@ boolean ordinary;
         learn_it = TRUE;
         if (Sleep_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             You("don't feel sleepy!");
+*/
+            You("\96°\82­\82È\82ç\82È\82¢\81I");
         } else {
+/*JP
             pline_The("sleep ray hits you!");
+*/
+            pline("\96°\82è\8cõ\90ü\82ª\82 \82È\82½\82É\96½\92\86\82µ\82½\81I");
             fall_asleep(-rnd(50), TRUE);
         }
         break;
@@ -2297,15 +2541,30 @@ boolean ordinary;
     case SPE_FINGER_OF_DEATH:
         if (nonliving(youmonst.data) || is_demon(youmonst.data)) {
             pline((obj->otyp == WAN_DEATH)
+/*JP
                       ? "The wand shoots an apparently harmless beam at you."
+*/
+                      ? "\8fñ\82Ì\8cõ\90ü\82Í\82Ç\82¤\82â\82ç\82 \82È\82½\82É\89e\8b¿\82ð\97^\82¦\82È\82¢\82à\82Ì\82Ì\82æ\82¤\82¾\81D"
+/*JP
                       : "You seem no deader than before.");
+*/
+                      : "\82 \82È\82½\82Í\82±\82ê\88È\8fã\8e\80\82Ë\82È\82¢\82æ\82¤\82¾\81D");
             break;
         }
         learn_it = TRUE;
+/*JP
         Sprintf(killer.name, "shot %sself with a death ray", uhim());
+*/
+        Strcpy(killer.name, "\8e©\95ª\82ª\8c\82\82Á\82½\8e\80\82Ì\8cõ\90ü\82É\82æ\82Á\82Ä");
         killer.format = NO_KILLER_PREFIX;
+/*JP
         You("irradiate yourself with pure energy!");
+*/
+        You("\83G\83l\83\8b\83M\81[\82ð\8e©\95ª\8e©\90g\82É\8fÆ\8eË\82µ\82½\81D");
+/*JP
         You("die.");
+*/
+        pline("\82 \82È\82½\82Í\8e\80\82É\82Ü\82µ\82½\81D");
         /* They might survive with an amulet of life saving */
         done(DIED);
         break;
@@ -2314,18 +2573,29 @@ boolean ordinary;
         learn_it = TRUE;
         (void) unturn_dead(&youmonst);
         if (is_undead(youmonst.data)) {
+#if 0 /*JP*/
             You_feel("frightened and %sstunned.",
                      Stunned ? "even more " : "");
+#else
+            You("\8b°\95|\82µ%s\82­\82ç\82­\82ç\82µ\82½\81D",
+                Stunned ? "\82³\82ç\82É" : "");
+#endif
             make_stunned((HStun & TIMEOUT) + (long) rnd(30), FALSE);
         } else
+/*JP
             You("shudder in dread.");
+*/
+            You("\8b°\95|\82Å\90k\82¦\82½\81D");
         break;
     case SPE_HEALING:
     case SPE_EXTRA_HEALING:
         learn_it = TRUE; /* (no effect for spells...) */
         healup(d(6, obj->otyp == SPE_EXTRA_HEALING ? 8 : 4), 0, FALSE,
                (obj->otyp == SPE_EXTRA_HEALING));
+/*JP
         You_feel("%sbetter.", obj->otyp == SPE_EXTRA_HEALING ? "much " : "");
+*/
+        You("%s\8bC\95ª\82ª\82æ\82­\82È\82Á\82½\81D", obj->otyp == SPE_EXTRA_HEALING ? "\82Æ\82Ä\82à" : "");
         break;
     case WAN_LIGHT: /* (broken wand) */
         /* assert( !ordinary ); */
@@ -2556,8 +2826,15 @@ boolean youattack, allow_cancel_kill, self_cancel;
 {
     boolean youdefend = (mdef == &youmonst);
     static const char writing_vanishes[] =
+/*JP
         "Some writing vanishes from %s head!";
+*/
+        "\89½\82©\82Ì\95\8e\9a\82ª%s\82Ì\93ª\82©\82ç\8fÁ\82¦\82½\81I";
+#if 0 /*JP:T*/
     static const char your[] = "your"; /* should be extern */
+#else
+    static const char your[] = "\82 \82È\82½"; /* should be extern */
+#endif
 
     if (youdefend ? (!youattack && Antimagic)
                   : resist(mdef, obj->oclass, 0, NOTELL))
@@ -2582,7 +2859,10 @@ boolean youattack, allow_cancel_kill, self_cancel;
                 pline(writing_vanishes, your);
 
             if (Unchanging)
+/*JP
                 Your("amulet grows hot for a moment, then cools.");
+*/
+                Your("\96\82\8f\9c\82¯\82Í\82µ\82Î\82ç\82­\94M\82­\82È\82è\81C\82â\82ª\82Ä\8c³\82É\96ß\82Á\82½\81D");
             else
                 rehumanize();
         }
@@ -2629,14 +2909,23 @@ struct obj *obj; /* wand or spell */
     case WAN_PROBING:
         ptmp = 0;
         if (u.dz < 0) {
+/*JP
             You("probe towards the %s.", ceiling(x, y));
+*/
+            You("\8fã\95û\82Ì%s\82ð\92²\82×\82½\81D", ceiling(x,y));
         } else {
             ptmp += bhitpile(obj, bhito, x, y, u.dz);
+/*JP
             You("probe beneath the %s.", surface(x, y));
+*/
+            You("\89º\95û\82Ì%s\82ð\92²\82×\82½\81D", surface(x,y));
             ptmp += display_binventory(x, y, TRUE);
         }
         if (!ptmp)
+/*JP
             Your("probe reveals nothing.");
+*/
+            pline("\92²\8d¸\82Ì\8c\8b\89Ê\89½\82à\82Å\82Ä\82±\82È\82©\82Á\82½\81D");
         return TRUE; /* we've done our own bhitpile */
     case WAN_OPENING:
     case SPE_KNOCK:
@@ -2648,7 +2937,10 @@ struct obj *obj; /* wand or spell */
                    /* can't use the stairs down to quest level 2 until
                       leader "unlocks" them; give feedback if you try */
                    on_level(&u.uz, &qstart_level) && !ok_to_quest()) {
+/*JP
             pline_The("stairs seem to ripple momentarily.");
+*/
+            pline("\8aK\92i\82ª\88ê\8fu\97h\82ê\82½\82æ\82¤\82É\8c©\82¦\82½\81D");
             disclose = TRUE;
         }
         /* down will release you from bear trap or web */
@@ -2680,10 +2972,18 @@ struct obj *obj; /* wand or spell */
                    && !Is_qstart(&u.uz)) {
             int dmg;
             /* similar to zap_dig() */
+#if 0 /*JP*/
             pline("A rock is dislodged from the %s and falls on your %s.",
                   ceiling(x, y), body_part(HEAD));
+#else
+            pline("%s\82©\82ç\8aâ\82ª\97\8e\82¿\82Ä\82 \82È\82½\82Ì%s\82É\96½\92\86\82µ\82½\81D",
+                  ceiling(x, y), body_part(HEAD));
+#endif
             dmg = rnd((uarmh && is_metallic(uarmh)) ? 2 : 6);
+/*JP
             losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN);
+*/
+            losehp(Maybe_Half_Phys(dmg), "\97\8e\8aâ\82Å", KILLED_BY_AN);
             if ((otmp = mksobj_at(ROCK, x, y, FALSE, FALSE)) != 0) {
                 (void) xname(otmp); /* set dknown, maybe bknown */
                 stackobj(otmp);
@@ -2695,11 +2995,20 @@ struct obj *obj; /* wand or spell */
             } else if (striking && ttmp->ttyp == TRAPDOOR) {
                 /* striking transforms trapdoor into hole */
                 if (Blind && !ttmp->tseen) {
+/*JP
                     pline("%s beneath you shatters.", Something);
+*/
+                    pline("\82 \82È\82½\82Ì\89º\82É\82 \82é\89½\82©\82ª\82±\82È\82²\82È\82É\82È\82Á\82½\81D");
                 } else if (!ttmp->tseen) { /* => !Blind */
+/*JP
                     pline("There's a trapdoor beneath you; it shatters.");
+*/
+                    pline("\82 \82È\82½\82Ì\89º\82É\82Í\97\8e\82µ\94à\82ª\82 \82Á\82½\81G\82»\82ê\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D");
                 } else {
+/*JP
                     pline("The trapdoor beneath you shatters.");
+*/
+                    pline("\82 \82È\82½\82Ì\89º\82É\82 \82é\97\8e\82µ\94à\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D");
                     disclose = TRUE;
                 }
                 ttmp->ttyp = HOLE;
@@ -2711,12 +3020,20 @@ struct obj *obj; /* wand or spell */
                 /* locking transforms hole into trapdoor */
                 ttmp->ttyp = TRAPDOOR;
                 if (Blind || !ttmp->tseen) {
+#if 0 /*JP*/
                     pline("Some %s swirls beneath you.",
                           is_ice(x, y) ? "frost" : "dust");
+#else
+                    pline("\82 \82È\82½\82Ì\89º\82Å%s\82ª\82¤\82¸\82ð\8aª\82­\82Ì\82ª\8c©\82¦\82½\81D",
+                          is_ice(x,y) ? "\91\9a" : "\82Ù\82±\82è");
+#endif
                 } else {
                     ttmp->tseen = 1;
                     newsym(x, y);
+/*JP
                     pline("A trapdoor appears beneath you.");
+*/
+                    pline("\82 \82È\82½\82Ì\89º\82É\97\8e\82µ\94à\82ª\82 \82ç\82í\82ê\82½\81D");
                     disclose = TRUE;
                 }
                 /* hadn't fallen down hole; won't fall now */
@@ -2728,7 +3045,10 @@ struct obj *obj; /* wand or spell */
             || (Is_qstart(&u.uz) && u.dz < 0)) {
             pline1(nothing_happens);
         } else if (u.dz < 0) { /* we should do more... */
+/*JP
             pline("Blood drips on your %s.", body_part(FACE));
+*/
+            pline("\8c\8c\82ª\82 \82È\82½\82Ì%s\82Ö\82µ\82½\82½\82è\97\8e\82¿\82Ä\82«\82½\81D", body_part(FACE));
         } else if (u.dz > 0 && !OBJ_AT(u.ux, u.uy)) {
             /*
             Print this message only if there wasn't an engraving
@@ -2739,10 +3059,18 @@ struct obj *obj; /* wand or spell */
                 if (is_pool(u.ux, u.uy) || is_ice(u.ux, u.uy))
                     pline1(nothing_happens);
                 else
+#if 0 /*JP:T*/
                     pline("Blood %ss %s your %s.",
                           is_lava(u.ux, u.uy) ? "boil" : "pool",
                           Levitation ? "beneath" : "at",
                           makeplural(body_part(FOOT)));
+#else
+                    pline("%s%s%s\81D",
+                          makeplural(body_part(FOOT)),
+                          Levitation ? "\82Ì\89º" : "\8c³",
+                          is_lava(u.ux, u.uy) ?
+                          "\82Å\8c\8c\82ª\95¦\93«\82µ\82½" : "\82É\8c\8c\82¾\82Ü\82è\82ª\8fo\97\88\82½");
+#endif
             }
         }
         break;
@@ -2774,9 +3102,15 @@ struct obj *obj; /* wand or spell */
             case SPE_STONE_TO_FLESH:
                 if (e->engr_type == ENGRAVE) {
                     /* only affects things in stone */
+#if 0 /*JP*/
                     pline_The(Hallucination
                                   ? "floor runs like butter!"
                                   : "edges on the floor get smoother.");
+#else
+                    pline(Hallucination
+                                  ? "\8f°\82ª\83o\83^\81[\82Ì\82æ\82¤\82É\91\96\82Á\82Ä\82¢\82Á\82½\81I"
+                                  : "\8f°\82Ì\89\8f\82ª\82È\82ß\82ç\82©\82É\82È\82Á\82½\81D");
+#endif
                     wipe_engr_at(x, y, d(2, 4), TRUE);
                 }
                 break;
@@ -2822,7 +3156,10 @@ zapwrapup()
 {
     /* if do_osshock() set obj_zapped while polying, give a message now */
     if (obj_zapped)
+/*JP
         You_feel("shuddering vibrations.");
+*/
+        You("\82¼\82Á\82Æ\82·\82é\90U\93®\82ð\8a´\82\82½\81D"); 
     obj_zapped = FALSE;
 }
 
@@ -2953,7 +3290,10 @@ int force;
     /* force == 0 occurs e.g. with sleep ray */
     /* note that large force is usual with wands so that !! would
             require information about hand/weapon/wand */
+/*JP
     return (const char *) ((force < 0) ? "?" : (force <= 4) ? "." : "!");
+*/
+    return (const char *) ((force < 0) ? "\81H" : (force <= 4) ? "\81D" : "\81I");
 }
 
 void
@@ -2964,10 +3304,18 @@ const char *force; /* usually either "." or "!" */
 {
     if ((!cansee(bhitpos.x, bhitpos.y) && !canspotmon(mtmp)
          && !(u.uswallow && mtmp == u.ustuck)) || !flags.verbose)
+/*JP
         pline("%s %s it.", The(str), vtense(str, "hit"));
+*/
+        pline("%s\82Í\89½\82©\82É\96½\92\86\82µ\82½\81D", str);
     else
+#if 0 /*JP*/
         pline("%s %s %s%s", The(str), vtense(str, "hit"),
               mon_nam(mtmp), force);
+#else
+        pline("%s\82Í%s\82É\96½\92\86\82µ\82½%s", str,
+              mon_nam(mtmp), force);
+#endif
 }
 
 void
@@ -2975,11 +3323,19 @@ miss(str, mtmp)
 register const char *str;
 register struct monst *mtmp;
 {
+#if 0 /*JP*/
     pline(
         "%s %s %s.", The(str), vtense(str, "miss"),
         ((cansee(bhitpos.x, bhitpos.y) || canspotmon(mtmp)) && flags.verbose)
             ? mon_nam(mtmp)
             : "it");
+#else
+    pline(
+        "%s\82Ì%s\82Ö\82Ì\8dU\8c\82\82Í\82Í\82¸\82ê\82½\81D", str,
+        ((cansee(bhitpos.x,bhitpos.y) || canspotmon(mtmp)) && flags.verbose)
+            ? mon_nam(mtmp)
+            : "\89½\8eÒ\82©");
+#endif
 }
 
 STATIC_OVL void
@@ -3253,15 +3609,25 @@ struct obj **pobj; /* object tossed/used, set to NULL
             struct trap *t;
             if ((bobj = sobj_at(BOULDER, x, y)) != 0) {
                 if (cansee(x, y))
+#if 0 /*JP*/
                     pline("%s hits %s.", The(distant_name(obj, xname)),
                           an(xname(bobj)));
+#else
+                    pline("%s\82Í%s\82É\96½\92\86\82µ\82½\81D", distant_name(obj, xname),
+                          xname(bobj));
+#endif
                 range = 0;
             } else if (obj == uball) {
                 if (!test_move(x - ddx, y - ddy, ddx, ddy, TEST_MOVE)) {
                     /* nb: it didn't hit anything directly */
                     if (cansee(x, y))
+#if 0 /*JP*/
                         pline("%s jerks to an abrupt halt.",
                               The(distant_name(obj, xname))); /* lame */
+#else
+                        pline("%s\82Í\82Æ\82Â\82º\82ñ\83K\83N\83\93\82Æ\8e~\82Ü\82Á\82½\81D",
+                              distant_name(obj, xname)); /* lame */
+#endif
                     range = 0;
                 } else if (Sokoban && (t = t_at(x, y)) != 0
                            && (t->ttyp == PIT || t->ttyp == SPIKED_PIT
@@ -3280,7 +3646,10 @@ struct obj **pobj; /* object tossed/used, set to NULL
         tmp_at(DISP_END, 0);
 
     if (shopdoor)
+/*JP
         pay_for_damage("destroy", FALSE);
+*/
+        pay_for_damage("\94j\89ó\82·\82é", FALSE);
 
     return (struct monst *) 0;
 }
@@ -3344,12 +3713,18 @@ int dx, dy;
             if (Fumbling || rn2(20) >= ACURR(A_DEX)) {
                 /* we hit ourselves */
                 (void) thitu(10 + obj->spe, dmgval(obj, &youmonst), obj,
+/*JP
                              "boomerang");
+*/
+                             "\83u\81[\83\81\83\89\83\93");
                 endmultishot(TRUE);
                 break;
             } else { /* we catch it */
                 tmp_at(DISP_END, 0);
+/*JP
                 You("skillfully catch the boomerang.");
+*/
+                You("\8fã\8eè\82É\83u\81[\83\81\83\89\83\93\82ð\92Í\82Ü\82¦\82½\81D");
                 return &youmonst;
             }
         }
@@ -3539,12 +3914,21 @@ const char *fltxt;
 xchar sx, sy;
 {
     int dam = 0, abstyp = abs(type);
+#if 1 /*JP*/
+    char buf[BUFSZ];
+
+    Sprintf(buf, "%s\82É\82æ\82Á\82Ä", fltxt);
+    fltxt = buf;
+#endif
 
     switch (abstyp % 10) {
     case ZT_MAGIC_MISSILE:
         if (Antimagic) {
             shieldeff(sx, sy);
+/*JP
             pline_The("missiles bounce off!");
+*/
+            pline("\96\82\96@\82Ì\96î\82Í\94½\8eË\82µ\82½\81I");
         } else {
             dam = d(nd, 6);
             exercise(A_STR, FALSE);
@@ -3553,7 +3937,10 @@ xchar sx, sy;
     case ZT_FIRE:
         if (Fire_resistance) {
             shieldeff(sx, sy);
+/*JP
             You("don't feel hot!");
+*/
+            You("\94M\82³\82ð\8a´\82\82È\82¢\81I");
             ugolemeffects(AD_FIRE, d(nd, 6));
         } else {
             dam = d(nd, 6);
@@ -3572,7 +3959,10 @@ xchar sx, sy;
     case ZT_COLD:
         if (Cold_resistance) {
             shieldeff(sx, sy);
+/*JP
             You("don't feel cold.");
+*/
+            You("\97â\82½\82³\82ð\8a´\82\82È\82¢\81D");
             ugolemeffects(AD_COLD, d(nd, 6));
         } else {
             dam = d(nd, 6);
@@ -3583,7 +3973,10 @@ xchar sx, sy;
     case ZT_SLEEP:
         if (Sleep_resistance) {
             shieldeff(u.ux, u.uy);
+/*JP
             You("don't feel sleepy.");
+*/
+            You("\96°\82­\82È\82ç\82È\82¢\81D");
         } else {
             fall_asleep(-d(nd, 25), TRUE); /* sleep ray */
         }
@@ -3591,7 +3984,10 @@ xchar sx, sy;
     case ZT_DEATH:
         if (abstyp == ZT_BREATH(ZT_DEATH)) {
             if (Disint_resistance) {
+/*JP
                 You("are not disintegrated.");
+*/
+                You("\95ª\89ð\82³\82ê\82È\82¢\81D");
                 break;
             } else if (uarms) {
                 /* destroy shield; other possessions are safe */
@@ -3612,11 +4008,17 @@ xchar sx, sy;
                 (void) destroy_arm(uarmu);
         } else if (nonliving(youmonst.data) || is_demon(youmonst.data)) {
             shieldeff(sx, sy);
+/*JP
             You("seem unaffected.");
+*/
+            You("\89e\8b¿\82ð\8eó\82¯\82È\82¢\82æ\82¤\82¾\81D");
             break;
         } else if (Antimagic) {
             shieldeff(sx, sy);
+/*JP
             You("aren't affected.");
+*/
+            You("\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             break;
         }
         killer.format = KILLED_BY_AN;
@@ -3628,7 +4030,10 @@ xchar sx, sy;
     case ZT_LIGHTNING:
         if (Shock_resistance) {
             shieldeff(sx, sy);
+/*JP
             You("aren't affected.");
+*/
+            You("\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D");
             ugolemeffects(AD_ELEC, d(nd, 6));
         } else {
             dam = d(nd, 6);
@@ -3640,14 +4045,23 @@ xchar sx, sy;
             destroy_item(RING_CLASS, AD_ELEC);
         break;
     case ZT_POISON_GAS:
+/*JP
         poisoned("blast", A_DEX, "poisoned blast", 15, FALSE);
+*/
+        poisoned("\91§", A_DEX, "\93Å\82Ì\91§", 15, FALSE);
         break;
     case ZT_ACID:
         if (Acid_resistance) {
+/*JP
             pline_The("acid doesn't hurt.");
+*/
+            pline("\8e_\82Å\82Í\8f\9d\82Â\82©\82È\82©\82Á\82½\81D");
             dam = 0;
         } else {
+/*JP
             pline_The("acid burns!");
+*/
+            pline("\8e_\82Å\8fÄ\82¯\82½\81I");
             dam = d(nd, 6);
             exercise(A_STR, FALSE);
         }
@@ -3720,9 +4134,19 @@ boolean u_caused;
                 cnt += delquan;
                 if (give_feedback) {
                     if (delquan > 1L)
+#if 0 /*JP*/
                         pline("%ld %s burn.", delquan, buf2);
+#else
+                        pline("%ld%s\82Ì%s\82ª\94R\82¦\82½\81D", 
+                              delquan, 
+                              obj->oclass == SCROLL_CLASS ? "\96\87" : "\8dû",
+                              buf2);
+#endif
                     else
+/*JP
                         pline("%s burns.", An(buf1));
+*/
+                        pline("%s\82Í\94R\82¦\82½\81D", buf1);
                 }
             }
         }
@@ -3759,9 +4183,15 @@ const char *fltxt;
 
     if (canseemon(mon)) {
         if (!m_amulet)
+/*JP
             pline("%s is disintegrated!", Monnam(mon));
+*/
+            pline("%s\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81I", Monnam(mon));
         else
+/*JP
             hit(fltxt, mon, "!");
+*/
+            hit(fltxt, mon, "\81I");
     }
 
 /* note: worn amulet of life saving must be preserved in order to operate */
@@ -3832,8 +4262,13 @@ register int dx, dy;
         if (!u.ustuck)
             u.uswallow = 0;
         else
+#if 0 /*JP*/
             pline("%s rips into %s%s", The(fltxt), mon_nam(u.ustuck),
                   exclam(tmp));
+#else
+            pline("%s\82Í%s\82ð\82Ð\82«\82³\82¢\82½%s", fltxt, mon_nam(u.ustuck),
+                  exclam(tmp));
+#endif
         /* Using disintegration from the inside only makes a hole... */
         if (tmp == MAGIC_COOKIE)
             u.ustuck->mhp = 0;
@@ -3888,8 +4323,13 @@ register int dx, dy;
                     if (cansee(mon->mx, mon->my)) {
                         hit(fltxt, mon, exclam(0));
                         shieldeff(mon->mx, mon->my);
+#if 0 /*JP*/
                         (void) mon_reflects(mon,
                                             "But it reflects from %s %s!");
+#else
+                        (void) mon_reflects(mon,
+                                            "\82µ\82©\82µ\82»\82ê\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81I");
+#endif
                     }
                     dx = -dx;
                     dy = -dy;
@@ -3901,24 +4341,47 @@ register int dx, dy;
                         && abs(type) == ZT_BREATH(ZT_DEATH)) {
                         if (canseemon(mon)) {
                             hit(fltxt, mon, ".");
+/*JP
                             pline("%s disintegrates.", Monnam(mon));
+*/
+                            pline("%s\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D", Monnam(mon));
+#if 0 /*JP*/
                             pline("%s body reintegrates before your %s!",
                                   s_suffix(Monnam(mon)),
                                   (eyecount(youmonst.data) == 1)
                                       ? body_part(EYE)
                                       : makeplural(body_part(EYE)));
+#else
+                            pline("%s\82Ì\91Ì\82Í\82 \82È\82½\82Ì\96Ú\82Ì\91O\82Å\8dÄ\8c\8b\8d\87\82µ\82½\81I",
+                                  Monnam(mon));
+#endif
+/*JP
                             pline("%s resurrects!", Monnam(mon));
+*/
+                            pline("%s\82Í\91h\82Á\82½\81I", Monnam(mon));
                         }
                         mon->mhp = mon->mhpmax;
                         break; /* Out of while loop */
                     }
                     if (mon->data == &mons[PM_DEATH] && abstype == ZT_DEATH) {
                         if (canseemon(mon)) {
+/*JP
                             hit(fltxt, mon, ".");
+*/
+                            hit(fltxt, mon, "\81D");
+#if 0 /*JP*/
                             pline("%s absorbs the deadly %s!", Monnam(mon),
                                   type == ZT_BREATH(ZT_DEATH) ? "blast"
                                                               : "ray");
+#else
+                            pline("%s\82Í\8e\80\82Ì%s\82ð\8bz\8eû\82µ\82½\81I", Monnam(mon),
+                                  type == ZT_BREATH(ZT_DEATH) ? "\91§"
+                                                              : "\8cõ\90ü");
+#endif
+/*JP
                             pline("It seems even stronger than before.");
+*/
+                            pline("\82³\82ç\82É\8b­\82­\82È\82Á\82½\82æ\82¤\82È\8bC\82³\82¦\82·\82é\81D");
                         }
                         break; /* Out of while loop */
                     }
@@ -3937,7 +4400,10 @@ register int dx, dy;
                         } else {
                             /* some armor was destroyed; no damage done */
                             if (canseemon(mon))
+/*JP
                                 pline("%s %s is disintegrated!",
+*/
+                                pline("%s\82Ì%s\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81I",
                                       s_suffix(Monnam(mon)),
                                       distant_name(otmp, xname));
                             m_useup(mon, otmp);
@@ -3957,13 +4423,24 @@ register int dx, dy;
                 goto buzzmonst;
             } else if (zap_hit((int) u.uac, 0)) {
                 range -= 2;
+/*JP
                 pline("%s hits you!", The(fltxt));
+*/
+                pline("%s\82Í\82 \82È\82½\82É\96½\92\86\82µ\82½\81I", fltxt);
                 if (Reflecting) {
                     if (!Blind) {
+#if 0 /*JP*/
                         (void) ureflects("But %s reflects from your %s!",
                                          "it");
+#else
+                        (void) ureflects("\82µ\82©\82µ\81C%s\82Í\82 \82È\82½\82Ì%s\82É\82æ\82Á\82Ä\94½\8eË\82µ\82½\81D",
+                                         "\82»\82ê");
+#endif
                     } else
+/*JP
                         pline("For some reason you are not affected.");
+*/
+                        pline("\82È\82º\82©\82 \82È\82½\82Í\89e\8b¿\82ð\8eó\82¯\82È\82©\82Á\82½\81D");
                     dx = -dx;
                     dy = -dy;
                     shieldeff(sx, sy);
@@ -3971,7 +4448,10 @@ register int dx, dy;
                     zhitu(type, nd, fltxt, sx, sy);
                 }
             } else if (!Blind) {
+/*JP
                 pline("%s whizzes by you!", The(fltxt));
+*/
+                pline("%s\82Í\82 \82È\82½\82Ì\82»\82Î\82ð\82©\82·\82ß\82½\81I", fltxt);
             } else if (abstype == ZT_LIGHTNING) {
                 Your("%s tingles.", body_part(ARM));
             }
@@ -4035,6 +4515,7 @@ register int dx, dy;
         explode(sx, sy, type, d(12, 6), 0, EXPL_FIERY);
  get_out_buzz:
     if (shopdamage)
+#if 0 /*JP*/
         pay_for_damage(abstype == ZT_FIRE
                           ? "burn away"
                           : abstype == ZT_COLD
@@ -4046,6 +4527,18 @@ register int dx, dy;
                                    ? "disintegrate"
                                    : "destroy",
                        FALSE);
+#else
+        pay_for_damage(abstype == ZT_FIRE
+                       ? "\94R\82â\82·"
+                       : abstype == ZT_COLD
+                          ? "\95²\81X\82É\82·\82é"
+                          : abstype == ZT_ACID
+                          ? "\8f\9d\82Â\82¯\82é"
+                             : abstype == ZT_DEATH
+                                ? "\95²\8dÓ\82·\82é"
+                                : "\94j\89ó\82·\82é",
+                       FALSE);
+#endif
     bhitpos = save_bhitpos;
 }
 
@@ -4058,7 +4551,10 @@ const char *msg;
     struct obj *otmp;
 
     if (!msg)
+/*JP
         msg = "The ice crackles and melts.";
+*/
+        msg = "\95X\82Í\83s\83L\83s\83L\96Â\82è\81C\97n\82¯\82½\81D";
     if (lev->typ == DRAWBRIDGE_UP) {
         lev->drawbridgemask &= ~DB_ICE; /* revert to DB_MOAT */
     } else { /* lev->typ == ICE */
@@ -4082,7 +4578,10 @@ const char *msg;
         Norep("%s", msg);
     if ((otmp = sobj_at(BOULDER, x, y)) != 0) {
         if (cansee(x, y))
+/*JP
             pline("%s settles...", An(xname(otmp)));
+*/
+            pline("%s\82Í\82Í\82Ü\82Á\82½\81D\81D\81D", xname(otmp));
         do {
             obj_extract_self(otmp); /* boulder isn't being pushed */
             if (!boulder_hits_pool(otmp, x, y, FALSE))
@@ -4171,7 +4670,10 @@ short exploding_wand_typ;
         if (t && t->ttyp == WEB) {
             /* a burning web is too flimsy to notice if you can't see it */
             if (see_it)
+/*JP
                 Norep("A web bursts into flames!");
+*/
+                Norep("\82­\82à\82Ì\91\83\82Í\89\8a\82É\95ï\82Ü\82ê\82½\81I");
             (void) delfloortrap(t);
             if (see_it)
                 newsym(x, y);
@@ -4179,11 +4681,17 @@ short exploding_wand_typ;
         if (is_ice(x, y)) {
             melt_ice(x, y, (char *) 0);
         } else if (is_pool(x, y)) {
+/*JP
             const char *msgtxt = "You hear hissing gas.";
+*/
+            const char *msgtxt = "\82µ\82ã\81[\82Á\82Æ\82¢\82¤\83K\83X\82Ì\89¹\82ð\95·\82¢\82½\81D";
 
             if (lev->typ != POOL) { /* MOAT or DRAWBRIDGE_UP */
                 if (see_it)
+/*JP
                     msgtxt = "Some water evaporates.";
+*/
+                    msgtxt = "\82·\82±\82µ\90\85\82ª\8fö\94­\82µ\82½\81D";
             } else {
                 rangemod -= 3;
                 lev->typ = ROOM;
@@ -4191,14 +4699,20 @@ short exploding_wand_typ;
                 if (t)
                     t->tseen = 1;
                 if (see_it)
+/*JP
                     msgtxt = "The water evaporates.";
+*/
+                    msgtxt = "\90\85\82ª\8fö\94­\82µ\82½\81D";
             }
             Norep("%s", msgtxt);
             if (lev->typ == ROOM)
                 newsym(x, y);
         } else if (IS_FOUNTAIN(lev->typ)) {
             if (see_it)
+/*JP
                 pline("Steam billows from the fountain.");
+*/
+                pline("\90ò\82©\82ç\8fö\8bC\82ª\97§\82¿\82Ì\82Ú\82Á\82½\81D");
             rangemod -= 1;
             dryup(x, y, type > 0);
         }
@@ -4212,9 +4726,15 @@ short exploding_wand_typ;
             if (lev->typ == WATER) {
                 /* For now, don't let WATER freeze. */
                 if (see_it)
+/*JP
                     pline_The("water freezes for a moment.");
+*/
+                    pline("\90\85\82Í\88ê\8fu\93\80\82Á\82½\81D");
                 else
+/*JP
                     You_hear("a soft crackling.");
+*/
+                    You_hear("\83s\83L\81I\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                 rangemod -= 1000; /* stop */
             } else {
                 rangemod -= 3;
@@ -4230,15 +4750,27 @@ short exploding_wand_typ;
                 bury_objs(x, y);
                 if (see_it) {
                     if (lava)
+/*JP
                         Norep("The lava cools and solidifies.");
+*/
+                        Norep("\97n\8aâ\82Í\97â\82¦\8cÅ\82Ü\82Á\82½\81D");
                     else if (moat)
+/*JP
                         Norep("The %s is bridged with ice!",
+*/
+                        Norep("%s\82É\95X\82Ì\8b´\82ª\82©\82¯\82ç\82ê\82½\81I",
                               waterbody_name(x, y));
                     else
+/*JP
                         Norep("The water freezes.");
+*/
+                        Norep("\90\85\82Í\93\80\82Á\82½\81D");
                     newsym(x, y);
                 } else if (!lava)
+/*JP
                     You_hear("a crackling sound.");
+*/
+                    You_hear("\83s\83L\83s\83L\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
 
                 if (x == u.ux && y == u.uy) {
                     if (u.uinwater) { /* not just `if (Underwater)' */
@@ -4250,11 +4782,17 @@ short exploding_wand_typ;
                     } else if (u.utrap && u.utraptype == TT_LAVA) {
                         if (Passes_walls) {
                             u.utrap = 0;
+/*JP
                             You("pass through the now-solid rock.");
+*/
+                            You("\82¢\82Ü\8cÅ\82­\82È\82Á\82½\82Î\82©\82è\82Ì\90Î\82Ì\92\86\82ð\82·\82è\94²\82¯\82½\81D");
                         } else {
                             u.utrap = rn1(50, 20);
                             u.utraptype = TT_INFLOOR;
+/*JP
                             You("are firmly stuck in the cooling rock.");
+*/
+                            You("\97â\82¦\82½\8aâ\82Ì\82È\82©\82É\82µ\82Á\82©\82è\82Æ\96\84\82Ü\82Á\82½\81D");
                         }
                     }
                 } else if ((mon = m_at(x, y)) != 0) {
@@ -4320,12 +4858,23 @@ short exploding_wand_typ;
     /* set up zap text for possible door feedback; for exploding wand, we
        want "the blast" rather than "your blast" even if hero caused it */
     yourzap = (type >= 0 && !exploding_wand_typ);
+#if 0 /*JP*/
     zapverb = "blast"; /* breath attack or wand explosion */
+#else
+    zapverb = "\8fÕ\8c\82"; /* breath attack or wand explosion */
+#endif
     if (!exploding_wand_typ) {
         if (abs(type) < ZT_SPELL(0))
+#if 0 /*JP*/
             zapverb = "bolt"; /* wand zap */
+#else
+            zapverb = "\8cõ\90ü"; /* wand zap */
+#endif
         else if (abs(type) < ZT_BREATH(0))
+/*JP
             zapverb = "spell";
+*/
+            zapverb = "\8eô\95¶";
     }
 
     /* secret door gets revealed, converted into regular door */
@@ -4350,26 +4899,50 @@ short exploding_wand_typ;
         switch (abstype) {
         case ZT_FIRE:
             new_doormask = D_NODOOR;
+/*JP
             see_txt = "The door is consumed in flames!";
+*/
+            see_txt = "\94à\82Í\89\8a\82Å\8fÄ\82«\82Â\82­\82³\82ê\82½\81I";
+/*JP
             sense_txt = "smell smoke.";
+*/
+            sense_txt = "\89\8c\82Ì\93õ\82¢\82ª\82µ\82½\81D";
             break;
         case ZT_COLD:
             new_doormask = D_NODOOR;
+/*JP
             see_txt = "The door freezes and shatters!";
+*/
+            see_txt = "\94à\82Í\93\80\82è\81C\82±\82È\82²\82È\82É\82È\82Á\82½\81I";
+/*JP
             sense_txt = "feel cold.";
+*/
+            sense_txt = "\97â\8bC\82ð\8a´\82\82½\81D";
             break;
         case ZT_DEATH:
             /* death spells/wands don't disintegrate */
             if (abs(type) != ZT_BREATH(ZT_DEATH))
                 goto def_case;
             new_doormask = D_NODOOR;
+/*JP
             see_txt = "The door disintegrates!";
+*/
+            see_txt = "\94à\82Í\95²\8dÓ\82³\82ê\82½\81I";
+/*JP
             hear_txt = "crashing wood.";
+*/
+            hear_txt = "\96Ø\82Ì\89ó\82ê\82é\89¹\82ð\95·\82¢\82½\81D";
             break;
         case ZT_LIGHTNING:
             new_doormask = D_BROKEN;
+/*JP
             see_txt = "The door splinters!";
+*/
+            see_txt = "\94à\82Í\82¸\82½\82¸\82½\82É\82È\82Á\82½\81I";
+/*JP
             hear_txt = "crackling.";
+*/
+            hear_txt = "\83s\83L\83s\83L\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D";
             break;
         default:
         def_case:
@@ -4387,12 +4960,23 @@ short exploding_wand_typ;
                    inaccurate for an exploding wand since
                    other adjacent locations still get hit */
                 if (exploding_wand_typ)
+/*JP
                     pline_The("door remains intact.");
+*/
+                    pline_The("\94à\82Í\96³\8f\9d\82¾\81D");
                 else
+#if 0 /*JP*/
                     pline_The("door absorbs %s %s!", yourzap ? "your" : "the",
                               zapverb);
+#else
+                    pline_The("\94à\82Í%s%s\82ð\8bz\8eû\82µ\82½\81I", yourzap ? "\82 \82È\82½\82ª\95ú\82Á\82½" : "",
+                              zapverb);
+#endif
             } else
+/*JP
                 You_feel("vibrations.");
+*/
+                You("\90U\93®\82ð\8a´\82\82½\81D");
             break;
         }
         if (new_doormask >= 0) { /* door gets broken */
@@ -4409,7 +4993,11 @@ short exploding_wand_typ;
                 pline1(see_txt);
                 newsym(x, y);
             } else if (sense_txt) {
+#if 0 /*JP*//*\81u\82 \82È\82½\82Í\81v\82ª\95s\93K\90Ø\82È\95\82à\82 \82é*/
                 You1(sense_txt);
+#else
+                pline1(sense_txt);
+#endif
             } else if (hear_txt)
                 You_hear1(hear_txt);
             if (picking_at(x, y)) {
@@ -4422,7 +5010,10 @@ short exploding_wand_typ;
     if (OBJ_AT(x, y) && abstype == ZT_FIRE)
         if (burn_floor_objects(x, y, FALSE, type > 0) && couldsee(x, y)) {
             newsym(x, y);
+/*JP
             You("%s of smoke.", !Blind ? "see a puff" : "smell a whiff");
+*/
+            pline("%s\81D", !Blind ? "\82Û\82í\82Á\82Æ\89\8c\82ª\82 \82ª\82Á\82½" : "\89\8c\82Ì\83v\83\93\82Æ\82¢\82¤\93õ\82¢\82ª\82µ\82½");
         }
     if ((mon = m_at(x, y)) != 0) {
         /* Cannot use wakeup() which also angers the monster */
@@ -4499,7 +5090,10 @@ register struct obj *obj;
         place_object(item, obj->ox, obj->oy);
     }
     if (by_you && Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) {
+/*JP
         You_feel("guilty about damaging such a historic statue.");
+*/
+        You_feel("\82±\82Ì\82æ\82¤\82È\97ð\8ej\93I\82È\92¤\91\9c\82É\8f\9d\82ð\82Â\82¯\82é\82Ì\82Í\8dß\90[\82¢\82±\82Æ\82¾\82Æ\8ev\82Á\82½\81D");
         adjalign(-1);
     }
     obj->spe = 0;
@@ -4521,13 +5115,34 @@ register struct obj *obj;
  */
 const char *const destroy_strings[][3] = {
     /* also used in trap.c */
+/*JP
     { "freezes and shatters", "freeze and shatter", "shattered potion" },
+*/
+    { "\93\80\8c\8b\82µ\82Ä\8dÓ\82¯\82½", "\93\80\8c\8b\82µ\82Ä\8dÓ\82¯\82½", "\8dÓ\82¯\82½\96ò\95r\82Å" },
+/*JP
     { "boils and explodes", "boil and explode", "boiling potion" },
+*/
+    { "\95¦\93«\82µ\82Ä\94\9a\94­\82µ\82½", "\95¦\93«\82µ\82Ä\94\9a\94­\82µ\82½", "\95¦\93«\82µ\82½\96ò\82Å" },
+/*JP
     { "ignites and explodes", "ignite and explode", "exploding potion" },
+*/
+    { "\89Î\82ª\82Â\82¢\82Ä\94\9a\94­\82µ\82½", "\89Î\82ª\82Â\82¢\82Ä\94\9a\94­\82µ\82½", "\94\9a\94­\82µ\82½\96ò\82Å" },
+/*JP
     { "catches fire and burns", "catch fire and burn", "burning scroll" },
+*/
+    { "\89Î\82ª\82Â\82¢\82Ä\94R\82¦\82½", "\89Î\82ª\82Â\82¢\82Ä\94R\82¦\82½", "\94R\82¦\82½\8aª\95¨\82Å" },
+/*JP
     { "catches fire and burns", "", "burning book" },
+*/
+    { "\89Î\82ª\82Â\82¢\82Ä\94R\82¦\82½", "\89Î\82ª\82Â\82¢\82Ä\94R\82¦\82½", "\94R\82¦\82½\96\82\96@\8f\91\82Å" },
+/*JP
     { "turns to dust and vanishes", "", "" },
+*/
+    { "\90o\82É\82È\82Á\82Ä\8fÁ\82¦\82½", "\90o\82É\82È\82Á\82Ä\8fÁ\82¦\82½", "" },
+/*JP
     { "breaks apart and explodes", "", "exploding wand" },
+*/
+    { "\82Î\82ç\82Î\82ç\82É\89ó\82ê\82Ä\94\9a\94­\82µ\82½", "\82Î\82ç\82Î\82ç\82É\89ó\82ê\82Ä\94\9a\94­\82µ\82½", "\8fñ\82Ì\94\9a\94­\82Å" },
 };
 
 void
@@ -4573,8 +5188,14 @@ register int osym, dmgtyp;
             if (obj->otyp == SPE_BOOK_OF_THE_DEAD) {
                 skip++;
                 if (!Blind)
+#if 0 /*JP:T*/
                     pline("%s glows a strange %s, but remains intact.",
                           The(xname(obj)), hcolor("dark red"));
+#else
+                    pline("%s\82Í\8aï\96­\82É%s\8bP\82¢\82½\82ª\89½\82à\95Ï\89»\82µ\82È\82©\82Á\82½\81D",
+                          xname(obj), jconj_adj(hcolor("\88Ã\8a\8c\90F\82Ì")));
+#endif
+
             }
             quan = obj->quan;
             switch (osym) {
@@ -4644,11 +5265,22 @@ register int osym, dmgtyp;
 
             if (!cnt)
                 continue;
+#if 0 /*JP*/
             mult = (cnt == quan)
                        ? (quan > 1) ? "All of your " : "Your"
                        : (cnt == 1L) ? "One of your" : "Some of your";
+#else
+            mult = (cnt == quan)
+                       ? ""
+                       : (cnt == 1L) ? "\82Ì\82Ð\82Æ\82Â" : "\82Ì\82¢\82­\82Â\82©";
+#endif
+#if 0 /*JP*/
             pline("%s %s %s!", mult, xname(obj),
                   destroy_strings[dindx][(cnt > 1L)]);
+#else
+            pline("\82 \82È\82½\82Ì%s%s\82Í%s\81I", xname(obj), mult, 
+                  destroy_strings[dindx][(cnt > 1L)]);
+#endif
             if (osym == POTION_CLASS && dmgtyp != AD_COLD) {
                 if (!breathless(youmonst.data) || haseyes(youmonst.data))
                     potionbreathe(obj);
@@ -4665,7 +5297,10 @@ register int osym, dmgtyp;
                 useup(obj);
             if (dmg) {
                 if (xresist)
+/*JP
                     You("aren't hurt!");
+*/
+                    You("\8f\9d\82Â\82©\82È\82¢\81I");
                 else {
                     const char *how = destroy_strings[dindx][2];
                     boolean one = (cnt == 1L);
@@ -4722,8 +5357,13 @@ int osym, dmgtyp;
             if (obj->otyp == SPE_BOOK_OF_THE_DEAD) {
                 skip++;
                 if (vis)
+#if 0 /*JP*/
                     pline("%s glows a strange %s, but remains intact.",
                           The(distant_name(obj, xname)), hcolor("dark red"));
+#else
+                    pline("%s\82Í\8aï\96­\82É%s\8bP\82¢\82½\82ª\89½\82à\95Ï\89»\82µ\82È\82©\82Á\82½\81D",
+                          The(distant_name(obj, xname)), jconj_adj(hcolor("\88Ã\8a\8c\90F\82Ì")));
+#endif
             }
             quan = obj->quan;
             switch (osym) {
@@ -4787,11 +5427,19 @@ int osym, dmgtyp;
             if (!cnt)
                 continue;
             if (vis)
+#if 0 /*JP*/
                 pline("%s%s %s!",
                       (cnt == obj->quan) ? "" : (cnt > 1L) ? "Some of "
                                                            : "One of ",
                       (cnt == obj->quan) ? Yname2(obj) : yname(obj),
                       destroy_strings[dindx][(cnt > 1L)]);
+#else
+                pline("%s%s\82Í%s\81I",
+                      (cnt == obj->quan) ? Yname2(obj) : yname(obj),
+                      (cnt == obj->quan) ? "" : (cnt > 1L) ? "\82Ì\82¢\82­\82Â\82©"
+                                                           : "\82Ì\82Ð\82Æ\82Â",
+                      destroy_strings[dindx][(cnt > 1L)]);
+#endif
             for (i = 0; i < cnt; i++)
                 m_useup(mtmp, obj);
         }
@@ -4843,7 +5491,10 @@ int damage, tell;
     if (resisted) {
         if (tell) {
             shieldeff(mtmp->mx, mtmp->my);
+/*JP
             pline("%s resists!", Monnam(mtmp));
+*/
+            pline("%s\82Í\96h\82¢\82¾\81I", Monnam(mtmp));
         }
         damage = (damage + 1) / 2;
     }
@@ -4930,12 +5581,24 @@ makewish()
     promptbuf[0] = '\0';
     nothing = zeroobj; /* lint suppression; only its address matters */
     if (flags.verbose)
+/*JP
         You("may wish for an object.");
+*/
+        You("\96]\82Ý\82Ì\82à\82Ì\82ð\8eè\82É\93ü\82ê\82ç\82ê\82é\81D");
 retry:
+/*JP
     Strcpy(promptbuf, "For what do you wish");
+*/
+    Strcpy(promptbuf, "\89½\82ð\82¨\96]\82Ý");
     if (iflags.cmdassist && tries > 0)
+/*JP
         Strcat(promptbuf, " (enter 'help' for assistance)");
+*/
+        Strcat(promptbuf, " (\8f\95\82¯\82ª\95K\97v\82È\82ç 'help' \82Æ\93ü\97Í)");
+/*JP
     Strcat(promptbuf, "?");
+*/
+    Strcat(promptbuf, "\81H");
     getlin(promptbuf, buf);
     (void) mungspaces(buf);
     if (buf[0] == '\033') {
@@ -4952,7 +5615,10 @@ retry:
      */
     otmp = readobjnam(buf, &nothing);
     if (!otmp) {
+/*JP
         pline("Nothing fitting that description exists in the game.");
+*/
+        pline("\82¤\81[\82ñ\81D\82»\82ñ\82È\82à\82Ì\82Í\91\8dÝ\82µ\82È\82¢\82æ\82¤\82¾\81D");
         if (++tries < MAXWISHTRY)
             goto retry;
         pline1(thats_enough_tries);
@@ -4970,7 +5636,11 @@ retry:
 
     if (otmp != &zeroobj) {
         const char
+/*JP
             *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"),
+*/
+            *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "\8a\8a\82è\97\8e\82¿\82½" : "\97\8e\82¿\82½"),
+#if 0 /*JP*/
             *oops_msg = (u.uswallow
                          ? "Oops!  %s out of your reach!"
                          : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)
@@ -4978,6 +5648,15 @@ retry:
                             || levl[u.ux][u.uy].typ >= ICE)
                             ? "Oops!  %s away from you!"
                             : "Oops!  %s to the floor!");
+#else
+            *oops_msg = (u.uswallow
+                         ? "\82¨\82Á\82Æ\81C\93Í\82©\82È\82¢\82Æ\82±\82ë\82É%s\81I"
+                         : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)
+                            || levl[u.ux][u.uy].typ < IRONBARS
+                            || levl[u.ux][u.uy].typ >= ICE)
+                            ? "\82¨\82Á\82Æ\81C\8eè\82©\82ç%s\81I"
+                            : "\82¨\82Á\82Æ\81C\8f°\82É%s\81I");
+#endif
 
         /* The(aobjnam()) is safe since otmp is unidentified -dlc */
         (void) hold_another_object(otmp, oops_msg,