OSDN Git Service

patch src/
[jnethack/source.git] / src / shk.c
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