OSDN Git Service

add translation
authorSHIRAKATA Kentaro <argrath@ub32.org>
Fri, 18 Mar 2016 19:07:35 +0000 (04:07 +0900)
committerSHIRAKATA Kentaro <argrath@ub32.org>
Wed, 23 Mar 2016 15:52:19 +0000 (00:52 +0900)
18 files changed:
src/apply.c
src/do_name.c
src/do_wear.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/potion.c

index aeac87b..2a4e8ac 100644 (file)
@@ -2869,7 +2869,10 @@ struct obj *obj;
         otmp = getobj(lubricables, "grease");
         if (!otmp)
             return;
+/*JP
         if (inaccessible_equipment(otmp, "grease", FALSE))
+*/
+        if (inaccessible_equipment(otmp, "\82É\8e\89\82ð\93h\82é", FALSE))
             return;
         consume_obj_charge(obj, TRUE);
 
index af5a1c8..fbb0ded 100644 (file)
@@ -119,7 +119,10 @@ const char *goal;
     boolean hilite_state = FALSE;
 
     if (!goal)
+/*JP
         goal = "desired location";
+*/
+        goal = "\96Ú\93I\92n";
     if (flags.verbose) {
 /*JP
         pline("(For instructions type a ?)");
@@ -139,7 +142,10 @@ const char *goal;
 #endif
     for (;;) {
         if (show_goal_msg) {
+/*JP
             pline("Move cursor to %s:", goal);
+*/
+            pline("\83J\81[\83\\83\8b\82ð%s\82É\93®\82©\82µ\82Ä\82­\82¾\82³\82¢:", goal);
             curs(WIN_MAP, cx, cy);
             flush_screen(0);
             show_goal_msg = FALSE;
@@ -241,9 +247,15 @@ const char *goal;
             goto nxtc;
         } else if (c == '#') {
             auto_msg = !auto_msg;
+#if 0 /*JP*/
             pline("Automatic description %sis %s.",
                   flags.verbose ? "of features under cursor " : "",
                   auto_msg ? "on" : "off");
+#else
+            pline("%s\90à\96¾\8e©\93®\95\\8e¦\81F%s",
+                  flags.verbose ? "\83J\81[\83\\83\8b\82Ì\89º\82É\82 \82é\82à\82Ì\82Ì" : "",
+                  auto_msg ? "\83I\83\93" : "\83I\83t");
+#endif
             if (!auto_msg)
                 show_goal_msg = TRUE;
             msg_given = TRUE;
@@ -897,8 +909,13 @@ namefloorobj()
     }
     if (!obj) {
         /* "under you" is safe here since there's no object to hide under */
+#if 0 /*JP*/
         pline("There doesn't seem to be any object %s.",
               (cc.x == u.ux && cc.y == u.uy) ? "under you" : "there");
+#else
+        pline("%s\82É\82Í\89½\82à\82È\82¢\82æ\82¤\82¾\81D",
+              (cc.x == u.ux && cc.y == u.uy) ? "\82 \82È\82½\82Ì\89º" : "\82»\82±");
+#endif
         return;
     }
     /* note well: 'obj' might be as instance of STRANGE_OBJECT if target
@@ -927,16 +944,35 @@ namefloorobj()
         /* traditional */
         unames[4] = roguename();
         /* silly */
+/*JP
         unames[5] = "Wibbly Wobbly";
+*/
+        unames[5] = "\82¤\82ë\82¤\82ë";
+#if 0 /*JP*/
         pline("%s %s to call you \"%s.\"",
               The(buf), use_plural ? "decide" : "decides",
               unames[rn2(SIZE(unames))]);
+#else
+        pline("%s\82Í\82 \82È\82½\82ð\81u%s\81v\82Æ\8cÄ\82Ô\82±\82Æ\82É\8c\88\82ß\82½\81D",
+              buf,
+              unames[rn2(SIZE(unames))]);
+#endif
     } else if (!objtyp_is_callable(obj->otyp)) {
+#if 0 /*JP*/
         pline("%s %s can't be assigned a type name.",
               use_plural ? "Those" : "That", buf);
+#else
+        pline("%s\82É\8eí\97Þ\82Ì\96¼\91O\82ð\8a\84\82è\93\96\82Ä\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+              buf);
+#endif
     } else if (!obj->dknown) {
+#if 0 /*JP*/
         You("don't know %s %s well enough to name %s.",
             use_plural ? "those" : "that", buf, use_plural ? "them" : "it");
+#else
+        You("\96¼\91O\82ð\95t\82¯\82ç\82ê\82é\82Ù\82Ç%s\82Ì\82±\82Æ\82ð\82æ\82­\92m\82ç\82È\82¢\81D",
+            buf);
+#endif
     } else {
         docall(obj);
     }
@@ -1055,9 +1091,15 @@ boolean called;
     /* an "aligned priest" not flagged as a priest or minion should be
        "priest" or "priestess" (normally handled by priestname()) */
     if (mdat == &mons[PM_ALIGNED_PRIEST])
+/*JP
         pm_name = mtmp->female ? "priestess" : "priest";
+*/
+        pm_name = mtmp->female ? "\93ò\91m" : "\91m\97µ";
     else if (mdat == &mons[PM_HIGH_PRIEST] && mtmp->female)
+/*JP
         pm_name = "high priestess";
+*/
+        pm_name = "\96@\89¤";
 
     /* Shopkeepers: use shopkeeper name.  For normal shopkeepers, just
      * "Asidonhopo"; for unusual ones, "Asidonhopo the invisible
index dad2e32..caef62d 100644 (file)
@@ -134,7 +134,10 @@ boolean on;
 */
                 Your("\90Ã\82©\82É\93®\82¯\82é\82æ\82¤\82É\82È\82Á\82½\81D");
             else if (Levitation || Flying)
+/*JP
                 You("float imperceptibly.");
+*/
+                You("\82¢\82Â\82Ì\82Ü\82É\82©\95\82\82¢\82Ä\82¢\82½\81D");
             else
 /*JP
                 You("walk very quietly.");
@@ -179,8 +182,13 @@ boolean on;
                 || Detect_monsters))) {
         makeknown(obj->otyp);
 
+#if 0 /*JP*/
         You_feel("that monsters%s have difficulty pinpointing your location.",
                  on ? "" : " no longer");
+#else
+        You_feel("\89ö\95¨\82Í\82 \82È\82½\82Ì\88Ê\92u\82ª\82Í\82Á\82«\82è\82Æ\95ª\82©%s\82È\82Á\82½\82æ\82¤\82¾\81D",
+                 on ? "\82ç\82È\82­" : "\82é\82æ\82¤\82É");
+#endif
     }
 }
 
@@ -508,7 +516,7 @@ Helmet_on(VOID_ARGS)
             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é"
+                         ? "\8b÷\82Á\82±\82É\8dÀ\82Á\82Ä\82¢\82é"
                          : "\96Ú\82ª\82Ü\82í\82Á\82½");
 #endif
         } else {
@@ -1461,9 +1469,15 @@ struct obj *stolenobj; /* no message if stolenobj is already being doffing */
        by unmul() since the on or off action isn't completing */
     afternmv = 0;
     if (putting_on || otmp != stolenobj) {
+#if 0 /*JP*/
         Sprintf(buf, "You stop %s %s.",
                 putting_on ? "putting on" : "taking off",
                 thesimpleoname(otmp));
+#else
+        Sprintf(buf, "\82 \82È\82½\82Í%s\82ð%s\82Ì\82ð\8e~\82ß\82½\81D",
+                thesimpleoname(otmp),
+                putting_on ? "\90g\82É\82Â\82¯\82é" : "\8aO\82·");
+#endif
     } else {
         buf[0] = '\0';   /* silently stop doffing stolenobj */
         result = -multi; /* remember this before calling unmul() */
@@ -1533,7 +1547,10 @@ armor_or_accessory_off(obj)
 struct obj *obj;
 {
     if (!(obj->owornmask & (W_ARMOR | W_ACCESSORY))) {
+/*JP
         You("are not wearing that.");
+*/
+        You("\82»\82ê\82ð\90g\82É\82Â\82¯\82Ä\82¢\82È\82¢\81D");
         return 0;
     }
 
@@ -2099,7 +2116,7 @@ struct obj *obj;
 /*JP
                 You("cannot make the ring stick to your body.");
 */
-                You("\8ew\97Ö\82ð\82Í\82ß\82ê\82È\82¢\91Ì\82¾\81D");
+                You("\8ew\97Ö\82ð\82Í\82ß\82ç\82ê\82È\82¢\91Ì\82¾\81D");
                 return 0;
             }
             if (uleft && uright) {
@@ -2225,7 +2242,7 @@ struct obj *obj;
 /*JP
             You_cant("wear that!");
 */
-            You_cant("wear that!");
+            You_cant("\82»\82ê\82ð\90g\82É\82Â\82¯\82ç\82ê\82È\82¢\81I");
             return 0;
         }
     }
@@ -2310,7 +2327,10 @@ dowear()
     if (uarm && uarmu && uarmc && uarmh && uarms && uarmg && uarmf
         && uleft && uright && uamul && ublindf) {
         /* 'W' message doesn't mention accessories */
+/*JP
         You("are already wearing a full complement of armor.");
+*/
+        You("\82·\82Å\82É\8a®\91S\91\95\94õ\82µ\82Ä\82¢\82é\81D");
         return 0;
     }
     otmp = getobj(clothes, "wear");
@@ -3125,10 +3145,16 @@ boolean
 inaccessible_equipment(obj, verb, only_if_known_cursed)
 struct obj *obj;
 const char *verb; /* "dip" or "grease", or null to avoid messages */
+/*JP:\93ú\96{\8cê\82Å\82Í "\82ð\90Z\82·", "\82É\8e\89\82ð\93h\82é", null \82Ì\82¢\82¸\82ê\82©*/
 boolean only_if_known_cursed; /* ignore covering unless known to be cursed */
 {
+#if 0 /*JP*/
     static NEARDATA const char need_to_take_off_outer_armor[] =
         "need to take off %s to %s %s.";
+#else /*JP:\88ø\90\94\82ª\8c´\95\82Æ\95Ï\82í\82Á\82Ä\82¢\82é\82±\82Æ\82É\92\8d\88Ó*/
+    static NEARDATA const char need_to_take_off_outer_armor[] =
+        "%s%s\82É\82Í%s\82ð%s\95K\97v\82ª\82 \82é\81D";
+#endif
     char buf[BUFSZ];
     boolean anycovering = !only_if_known_cursed; /* more comprehensible... */
 #define BLOCKSACCESS(x) (anycovering || ((x)->cursed && (x)->bknown))
@@ -3140,7 +3166,11 @@ boolean only_if_known_cursed; /* ignore covering unless known to be cursed */
     if (obj == uarm && uarmc && BLOCKSACCESS(uarmc)) {
         if (verb) {
             Strcpy(buf, yname(uarmc));
+#if 0 /*JP*/
             You(need_to_take_off_outer_armor, buf, verb, yname(obj));
+#else /*JP:\91Î\8fÛ\82Í\83N\83\8d\81[\83N\82È\82Ì\82Åjoffmsg\82ð\8eg\82í\82¸\8c\88\82ß\8c\82\82¿*/
+            You(need_to_take_off_outer_armor, xname(obj), verb, buf, "\92E\82®");
+#endif
         }
         return TRUE;
     }
@@ -3160,10 +3190,17 @@ boolean only_if_known_cursed; /* ignore covering unless known to be cursed */
             if (uarmc)
                 Strcat(buf, yname(uarmc));
             if (uarm && uarmc)
+/*JP
                 Strcat(buf, " and ");
+*/
+                Strcat(buf, "\82Æ");
             if (uarm)
                 Strcat(buf, sameprefix ? xname(uarm) : yname(uarm));
+#if 0 /*JP*/
             You(need_to_take_off_outer_armor, buf, verb, yname(obj));
+#else /*JP:\91Î\8fÛ\82Í\83N\83\8d\81[\83N\82©\8aZ\82È\82Ì\82Åjoffmsg\82ð\8eg\82í\82¸\8c\88\82ß\8c\82\82¿*/
+            You(need_to_take_off_outer_armor, xname(obj), verb, buf, "\92E\82®");
+#endif
         }
         return TRUE;
     }
@@ -3171,7 +3208,11 @@ boolean only_if_known_cursed; /* ignore covering unless known to be cursed */
     if ((obj == uleft || obj == uright) && uarmg && BLOCKSACCESS(uarmg)) {
         if (verb) {
             Strcpy(buf, yname(uarmg));
+#if 0 /*JP*/
             You(need_to_take_off_outer_armor, buf, verb, yname(obj));
+#else /*JP:\91Î\8fÛ\82Í\8f¬\8eè\82È\82Ì\82Åjoffmsg\82ð\8eg\82í\82¸\8c\88\82ß\8c\82\82¿*/
+            You(need_to_take_off_outer_armor, xname(obj), verb, buf, "\82Í\82¸\82·");
+#endif
         }
         return TRUE;
     }
index 9aa611d..3add048 100644 (file)
@@ -332,8 +332,13 @@ boolean devour;
             /* edible item owned by shop has been thrown or kicked
                by hero and caught by tame or food-tameable monst */
             oprice = unpaid_cost(obj, TRUE);
+#if 0 /*JP*/
             pline("That %s will cost you %ld %s.", objnambuf, oprice,
                   currency(oprice));
+#else
+            pline("\82 \82Ì%s\82Í%ld%s\82¾\81D", objnambuf, oprice,
+                  currency(oprice));
+#endif
             /* delobj->obfree will handle actual shop billing update */
         }
         delobj(obj);
@@ -1150,6 +1155,7 @@ struct monst *mtmp;
            (on the other hand, perhaps you're sensing a brief glimpse
            of its mind as it changes form) */
         newsym(mtmp->mx, mtmp->my);
+#if 0 /*JP*/
         You("%s %s appear where %s was!",
             cansee(mtmp->mx, mtmp->my) ? "see" : "sense",
             (mtmp->m_ap_type == M_AP_FURNITURE)
@@ -1164,6 +1170,22 @@ struct monst *mtmp;
                                   ? an(mons[mtmp->mappearance].mname)
                                   : something,
             buf);
+#else
+        You("%s\82ª\82 \82Á\82½\82Æ\82±\82ë\82É%s\82ª\8c»\82ê\82½\82Ì%s\81I",
+            buf,
+            (mtmp->m_ap_type == M_AP_FURNITURE)
+                ? an(defsyms[mtmp->mappearance].explanation)
+                : (mtmp->m_ap_type == M_AP_OBJECT
+                   && OBJ_DESCR(objects[mtmp->mappearance]))
+                      ? an(OBJ_DESCR(objects[mtmp->mappearance]))
+                      : (mtmp->m_ap_type == M_AP_OBJECT
+                         && OBJ_NAME(objects[mtmp->mappearance]))
+                            ? an(OBJ_NAME(objects[mtmp->mappearance]))
+                            : (mtmp->m_ap_type == M_AP_MONSTER)
+                                  ? an(mons[mtmp->mappearance].mname)
+                                  : something,
+            cansee(mtmp->mx, mtmp->my) ? "\82ð\8c©\82½" : "\82É\8bC\82Ã\82¢\82½");
+#endif
         display_nhwindow(WIN_MAP, TRUE);
     }
 }
index de71b5f..b965677 100644 (file)
@@ -194,8 +194,13 @@ xchar x, y;
             map_invisible(x, y);
         else
             newsym(x, y);
+#if 0 /*JP*/
         There("is %s here.",
               canspotmon(mon) ? a_monnam(mon) : "something hidden");
+#else
+        There("%s\82ª\82¢\82é\81D",
+              canspotmon(mon) ? a_monnam(mon) : "\89½\82©\89B\82ê\82Ä\82¢\82é\82à\82Ì");
+#endif
     }
 
     /* Kick attacks by kicking monsters are normal attacks, not special.
@@ -424,6 +429,7 @@ register struct obj *gold;
                out of the vault.  If he did do that, player
                could try fighting, then weasle out of being
                killed by throwing his/her gold when losing. */
+#if 0 /*JP*/
             verbalize(
                 umoney
                     ? "Drop the rest and follow me."
@@ -432,6 +438,16 @@ register struct obj *gold;
                           : mtmp->mpeaceful
                                 ? "I'll take care of that; please move along."
                                 : "I'll take that; now get moving.");
+#else
+            verbalize(
+                umoney
+                    ? "\8ec\82è\82ð\92u\82¢\82Ä\82Â\82¢\82Ä\82«\82È\82³\82¢\81D"
+                    : hidden_gold()
+                          ? "\82Ü\82¾\8bà\82ð\89B\82µ\82Ä\82¢\82é\82È\81D\92u\82«\82È\82³\82¢\81D"
+                          : mtmp->mpeaceful
+                                ? "\82»\82ê\82Í\8e\84\82ª\8fE\82Á\82Ä\82¨\82«\82Ü\82·\82©\82ç\82Â\82¢\82Ä\82«\82Ä\82­\82¾\82³\82¢\81D"
+                                : "\82»\82ê\82Í\8fE\82Á\82Ä\82¨\82­\81D\97\88\82È\82³\82¢\81D");
+#endif
         } else if (is_mercenary(mtmp->data)) {
             long goldreqd = 0L;
 
@@ -783,20 +799,36 @@ xchar x, y;
             kickedobj = splitobj(kickedobj, 1L);
         } else {
             if (rn2(20)) {
+#if 0 /*JP*/
                 static NEARDATA const char *const flyingcoinmsg[] = {
                     "scatter the coins", "knock coins all over the place",
                     "send coins flying in all directions",
                 };
+#else
+                static NEARDATA const char *const flyingcoinmsg[] = {
+                    "\8bà\89Ý\82ð\82Ü\82«\8eU\82ç\82µ\82½", "\8bà\89Ý\82ð\82Î\82ç\82Ü\82¢\82½",
+                    "\8bà\89Ý\82ð\82 \82¿\82±\82¿\82É\94ò\82Î\82µ\82½",
+                };
+#endif
 
+/*JP
                 pline("Thwwpingg!");
+*/
+                pline("\83K\83V\83\83\81[\83\93\81I");
+/*JP
                 You("%s!", flyingcoinmsg[rn2(SIZE(flyingcoinmsg))]);
+*/
+                You("%s\81I", flyingcoinmsg[rn2(SIZE(flyingcoinmsg))]);
                 (void) scatter(x, y, rn2(3) + 1, VIS_EFFECTS | MAY_HIT,
                                kickedobj);
                 newsym(x, y);
                 return 1;
             }
             if (kickedobj->quan > 300L) {
+/*JP
                 pline("Thump!");
+*/
+                pline("\83S\83c\83\93\81I");
                 return (!rn2(3) || martial());
             }
         }
@@ -995,9 +1027,15 @@ dokick()
 
         if (wl == BOTH_SIDES)
             bp = makeplural(bp);
+#if 0 /*JP*/
         Your("%s%s %s in no shape for kicking.",
              (wl == LEFT_SIDE) ? "left " : (wl == RIGHT_SIDE) ? "right " : "",
              bp, (wl == BOTH_SIDES) ? "are" : "is");
+#else
+        Your("%s%s\82Í\8fR\82è\82ª\82Å\82«\82é\8fó\91Ô\82\82á\82È\82¢\81D",
+             (wl == LEFT_SIDE) ? "\8d¶" : (wl == RIGHT_SIDE) ? "\89E" : "",
+             bp);
+#endif
         no_kick = TRUE;
     } else if (near_capacity() > SLT_ENCUMBER) {
 /*JP
@@ -1362,9 +1400,16 @@ dokick()
             (void) mksobj_at(ROCK, x, y, TRUE, FALSE);
             del_engr_at(x, y);
             if (Blind)
+#if 0 /*JP*/
                 pline("Crack!  %s broke!", Something);
+#else
+                pline("\83S\83c\83\93\81I\89½\82©\82ª\89ó\82ê\82½\81I");
+#endif
             else {
+/*JP
                 pline_The("headstone topples over and breaks!");
+*/
+                pline("\95æ\90Î\82Í\93|\82ê\82Ä\89ó\82ê\82½\81I");
                 newsym(x, y);
             }
             return 1;
index a332762..ba6c524 100644 (file)
@@ -282,7 +282,11 @@ int *shotlimit_p; /* (see dothrow()) */
         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)) {
+#if 0 /*JP*/
         You_cant("throw or shoot without hands."); /* not body_part(HAND) */
+#else
+        You("\8eè\82ª\82È\82¢\81D"); /* not body_part(HAND) */
+#endif
         return FALSE;
         /*[what about !freehand(), aside from cursed missile launcher?]*/
     }
@@ -428,7 +432,10 @@ dofire()
         /* give feedback if quiver has now been filled */
         if (uquiver) {
             uquiver->owornmask &= ~W_QUIVER; /* less verbose */
+/*JP
             prinv("You ready:", uquiver, 0L);
+*/
+            prinv("\8f\80\94õ\81F", uquiver, 0L);
             uquiver->owornmask |= W_QUIVER;
         }
     }
@@ -1013,7 +1020,10 @@ boolean hitsroof;
                 /* egg ends up "all over your face"; perhaps
                    visored helmet should still save you here */
                 if (uarmh)
+/*JP
                     Your("%s fails to protect you.", helm_simple_name(uarmh));
+*/
+                    Your("%s\82Í\82 \82È\82½\82ð\8eç\82ê\82È\82©\82Á\82½\81D", helm_simple_name(uarmh));
                 goto petrify;
             }
         case CREAM_PIE:
@@ -2009,9 +2019,15 @@ xchar x, y;
         && (mtmp = makemon(&mons[rn2(3) ? PM_HOMUNCULUS : PM_IMP], x, y,
                            NO_MM_FLAGS)) != 0) {
         if (canspotmon(mtmp))
+#if 0 /*JP*/
             pline("%s is released!", Hallucination
                                          ? An(rndmonnam(NULL))
                                          : "The picture-painting demon");
+#else
+            pline("%s\82ª\89ð\95ú\82³\82ê\82½\81I", Hallucination
+                                         ? rndmonnam(NULL)
+                                         : "\82¨\8aG\95`\82«\82Ì\88«\96\82");
+#endif
         mtmp->mpeaceful = !obj->cursed;
         set_malign(mtmp);
     }
index 916cea3..c0bbe64 100644 (file)
@@ -31,7 +31,10 @@ nhsym l_syms[SYM_MAX] = DUMMY;   /* loaded symbols          */
 nhsym r_syms[SYM_MAX] = DUMMY;   /* rogue symbols           */
 
 nhsym warnsyms[WARNCOUNT] = DUMMY; /* the current warning display symbols */
+/*JP
 const char invisexplain[] = "remembered, unseen, creature";
+*/
+const char invisexplain[] = "\8ao\82¦\82Ä\82¢\82é\82ª\8c©\82¦\82Ä\82¢\82È\82¢\89ö\95¨";
 
 /* Default object class symbols.  See objclass.h.
  * {symbol, name, explain}
@@ -40,88 +43,319 @@ const char invisexplain[] = "remembered, unseen, creature";
  */
 const struct class_sym def_oc_syms[MAXOCLASSES] = {
     { '\0', "", "" }, /* placeholder for the "random class" */
+/*JP
     { ILLOBJ_SYM, "illegal objects", "strange object" },
+*/
+    { ILLOBJ_SYM, "\8aï\96­\82È\95¨\91Ì", "\8aï\96­\82È\95¨\91Ì" },
+/*JP
     { WEAPON_SYM, "weapons", "weapon" },
+*/
+    { WEAPON_SYM, "\95\90\8aí", "\95\90\8aí" },
+/*JP
     { ARMOR_SYM, "armor", "suit or piece of armor" },
+*/
+    { ARMOR_SYM, "\8aZ", "\95\9e\82Ü\82½\82Í\8aZ\82Ì\82½\82®\82¢" },
+/*JP
     { RING_SYM, "rings", "ring" },
+*/
+    { RING_SYM, "\8ew\97Ö", "\8ew\97Ö" },
+/*JP
     { AMULET_SYM, "amulets", "amulet" },
+*/
+    { AMULET_SYM, "\96\82\8f\9c\82¯", "\96\82\8f\9c\82¯" },
+/*JP
     { TOOL_SYM, "tools", "useful item (pick-axe, key, lamp...)" },
+*/
+    { TOOL_SYM, "\93¹\8bï", "\95Ö\97\98\82È\93¹\8bï(\82Â\82é\82Í\82µ\81C\8c®\81C\83\89\83\93\83v\81D\81D\81D)" },
+/*JP
     { FOOD_SYM, "food", "piece of food" },
+*/
+    { FOOD_SYM, "\90H\97¿", "\90H\97¿" },
+/*JP
     { POTION_SYM, "potions", "potion" },
+*/
+    { POTION_SYM, "\96ò", "\96ò" },
+/*JP
     { SCROLL_SYM, "scrolls", "scroll" },
+*/
+    { SCROLL_SYM, "\8aª\95¨", "\8aª\95¨" },
+/*JP
     { SPBOOK_SYM, "spellbooks", "spellbook" },
+*/
+    { SPBOOK_SYM, "\96\82\96@\8f\91", "\96\82\96@\8f\91" },
+/*JP
     { WAND_SYM, "wands", "wand" },
+*/
+    { WAND_SYM, "\8fñ", "\8fñ" },
+/*JP
     { GOLD_SYM, "coins", "pile of coins" },
+*/
+    { GOLD_SYM, "\8bà\89Ý", "\8bà\89Ý\82Ì\8eR" },
+/*JP
     { GEM_SYM, "rocks", "gem or rock" },
+*/
+    { GEM_SYM, "\90Î", "\95ó\90Î\82Ü\82½\82Í\90Î" },
+/*JP
     { ROCK_SYM, "large stones", "boulder or statue" },
+*/
+    { ROCK_SYM, "\8b\90\90Î", "\8aâ\82Ü\82½\82Í\91\9c" },
+/*JP
     { BALL_SYM, "iron balls", "iron ball" },
+*/
+    { BALL_SYM, "\93S\8b\85", "\93S\8b\85" },
+/*JP
     { CHAIN_SYM, "chains", "iron chain" },
+*/
+    { CHAIN_SYM, "\8d½", "\93S\82Ì\8d½" },
+/*JP
     { VENOM_SYM, "venoms", "splash of venom" }
+*/
+    { VENOM_SYM, "\93Å", "\93Å\89t" }
 };
 
 /* Default monster class symbols.  See monsym.h. */
 const struct class_sym def_monsyms[MAXMCLASSES] = {
     { '\0', "", "" },
+/*JP
     { DEF_ANT, "", "ant or other insect" },
+*/
+    { DEF_ANT, "", "\8ba\82Ü\82½\82Í\91¼\82Ì\8d©\92\8e" },
+/*JP
     { DEF_BLOB, "", "blob" },
+*/
+    { DEF_BLOB, "", "\83u\83\8d\83b\83u" },
+/*JP
     { DEF_COCKATRICE, "", "cockatrice" },
+*/
+    { DEF_COCKATRICE, "", "\83R\83J\83g\83\8a\83X" },
+/*JP
     { DEF_DOG, "", "dog or other canine" },
+*/
+    { DEF_DOG, "", "\8c¢\82Ü\82½\82Í\83C\83k\89È\82Ì\93®\95¨" },
+/*JP
     { DEF_EYE, "", "eye or sphere" },
+*/
+    { DEF_EYE, "", "\96Ú\82Ü\82½\82Í\8b\85\91Ì" },
+/*JP
     { DEF_FELINE, "", "cat or other feline" },
+*/
+    { DEF_FELINE, "", "\94L\82Ü\82½\82Í\83l\83R\89È\82Ì\93®\95¨" },
+/*JP
     { DEF_GREMLIN, "", "gremlin" },
+*/
+    { DEF_GREMLIN, "", "\83O\83\8c\83\80\83\8a\83\93" },
+/*JP
     { DEF_HUMANOID, "", "humanoid" },
+*/
+    { DEF_HUMANOID, "", "\83q\83\85\81[\83}\83m\83C\83h" },
+/*JP
     { DEF_IMP, "", "imp or minor demon" },
+*/
+    { DEF_IMP, "", "\83C\83\93\83v\82Ü\82½\82Í\89º\8b\89\88«\96\82" },
+/*JP
     { DEF_JELLY, "", "jelly" },
+*/
+    { DEF_JELLY, "", "\83[\83\8a\81[" },
+/*JP
     { DEF_KOBOLD, "", "kobold" },
+*/
+    { DEF_KOBOLD, "", "\83R\83{\83\8b\83g" },
+/*JP
     { DEF_LEPRECHAUN, "", "leprechaun" },
+*/
+    { DEF_LEPRECHAUN, "", "\83\8c\83v\83\89\83R\81[\83\93" },
+/*JP
     { DEF_MIMIC, "", "mimic" },
+*/
+    { DEF_MIMIC, "", "\83~\83~\83b\83N" },
+/*JP
     { DEF_NYMPH, "", "nymph" },
+*/
+    { DEF_NYMPH, "", "\83j\83\93\83t" },
+/*JP
     { DEF_ORC, "", "orc" },
+*/
+    { DEF_ORC, "", "\83I\81[\83N" },
+/*JP
     { DEF_PIERCER, "", "piercer" },
+*/
+    { DEF_PIERCER, "", "\8c\8a\8bò\82¢" },
+/*JP
     { DEF_QUADRUPED, "", "quadruped" },
+*/
+    { DEF_QUADRUPED, "", "\8el\91«\93®\95¨" },
+/*JP
     { DEF_RODENT, "", "rodent" },
+*/
+    { DEF_RODENT, "", "ê\96\8e\95\93®\95¨" },
+/*JP
     { DEF_SPIDER, "", "arachnid or centipede" },
+*/
+    { DEF_SPIDER, "", "\83N\83\82\8c`\97Þ\93®\95¨\82Ü\82½\82Í\83\80\83J\83f" },
+/*JP
     { DEF_TRAPPER, "", "trapper or lurker above" },
+*/
+    { DEF_TRAPPER, "", "\83g\83\89\83b\83p\81[\82Ü\82½\82Í\83\89\81[\83J\81[" },
+/*JP
     { DEF_UNICORN, "", "unicorn or horse" },
+*/
+    { DEF_UNICORN, "", "\83\86\83j\83R\81[\83\93\82Ü\82½\82Í\94n" },
+/*JP
     { DEF_VORTEX, "", "vortex" },
+*/
+    { DEF_VORTEX, "", "\89Q" },
+/*JP
     { DEF_WORM, "", "worm" },
+*/
+    { DEF_WORM, "", "\83\8f\81[\83\80" },
+/*JP
     { DEF_XAN, "", "xan or other mythical/fantastic insect" },
+*/
+    { DEF_XAN, "", "\83U\83\93\82Ü\82½\82Í\90_\98b\82â\83t\83@\83\93\83^\83W\81[\82Ì\8d©\92\8e" },
+/*JP
     { DEF_LIGHT, "", "light" },
+*/
+    { DEF_LIGHT, "", "\8cõ" },
+/*JP
     { DEF_ZRUTY, "", "zruty" },
+*/
+    { DEF_ZRUTY, "", "\83Y\83\8b\83e\83B" },
+/*JP
     { DEF_ANGEL, "", "angelic being" },
+*/
+    { DEF_ANGEL, "", "\93V\8eg" },
+/*JP
     { DEF_BAT, "", "bat or bird" },
+*/
+    { DEF_BAT, "", "\82±\82¤\82à\82è\82Ü\82½\82Í\92¹" },
+/*JP
     { DEF_CENTAUR, "", "centaur" },
+*/
+    { DEF_CENTAUR, "", "\83P\83\93\83^\83E\83\8d\83X" },
+/*JP
     { DEF_DRAGON, "", "dragon" },
+*/
+    { DEF_DRAGON, "", "\83h\83\89\83S\83\93" },
+/*JP
     { DEF_ELEMENTAL, "", "elemental" },
+*/
+    { DEF_ELEMENTAL, "", "\90¸\97ì" },
+/*JP
     { DEF_FUNGUS, "", "fungus or mold" },
+*/
+    { DEF_FUNGUS, "", "\83L\83m\83R\82Ü\82½\82Í\83\82\81[\83\8b\83h" },
+/*JP
     { DEF_GNOME, "", "gnome" },
+*/
+    { DEF_GNOME, "", "\83m\81[\83\80" },
+/*JP
     { DEF_GIANT, "", "giant humanoid" },
+*/
+    { DEF_GIANT, "", "\8b\90\90l" },
+/*JP
     { '\0', "", "invisible monster" },
+*/
+    { '\0', "", "\93§\96¾\82È\89ö\95¨" },
+/*JP
     { DEF_JABBERWOCK, "", "jabberwock" },
+*/
+    { DEF_JABBERWOCK, "", "\83W\83\83\83o\83E\83H\83b\83N" },
+/*JP
     { DEF_KOP, "", "Keystone Kop" },
+*/
+    { DEF_KOP, "", "\8cx\94õ\88õ" },
+/*JP
     { DEF_LICH, "", "lich" },
+*/
+    { DEF_LICH, "", "\83\8a\83b\83`" },
+/*JP
     { DEF_MUMMY, "", "mummy" },
+*/
+    { DEF_MUMMY, "", "\83~\83C\83\89" },
+/*JP
     { DEF_NAGA, "", "naga" },
+*/
+    { DEF_NAGA, "", "\83i\81[\83K" },
+/*JP
     { DEF_OGRE, "", "ogre" },
+*/
+    { DEF_OGRE, "", "\83I\81[\83K" },
+/*JP
     { DEF_PUDDING, "", "pudding or ooze" },
+*/
+    { DEF_PUDDING, "", "\83v\83\8a\83\93\82Ü\82½\82Í\83E\81[\83Y" },
+/*JP
     { DEF_QUANTMECH, "", "quantum mechanic" },
+*/
+    { DEF_QUANTMECH, "", "\97Ê\8eq\8fê" },
+/*JP
     { DEF_RUSTMONST, "", "rust monster or disenchanter" },
+*/
+    { DEF_RUSTMONST, "", "\8eK\82Ì\89ö\95¨\82Ü\82½\82Í\8bz\96\82\82Ì\89ö\95¨" },
+/*JP
     { DEF_SNAKE, "", "snake" },
+*/
+    { DEF_SNAKE, "", "\83w\83r" },
+/*JP
     { DEF_TROLL, "", "troll" },
+*/
+    { DEF_TROLL, "", "\83g\83\8d\83\8b" },
+/*JP
     { DEF_UMBER, "", "umber hulk" },
+*/
+    { DEF_UMBER, "", "\83A\83\93\83o\81[\83n\83\8b\83N" },
+/*JP
     { DEF_VAMPIRE, "", "vampire" },
+*/
+    { DEF_VAMPIRE, "", "\8bz\8c\8c\8bS" },
+/*JP
     { DEF_WRAITH, "", "wraith" },
+*/
+    { DEF_WRAITH, "", "\83\8c\83C\83X" },
+/*JP
     { DEF_XORN, "", "xorn" },
+*/
+    { DEF_XORN, "", "\83]\81[\83\93" },
+/*JP
     { DEF_YETI, "", "apelike creature" },
+*/
+    { DEF_YETI, "", "\89\8e\82Ì\82æ\82¤\82È\90\95¨" },
+/*JP
     { DEF_ZOMBIE, "", "zombie" },
+*/
+    { DEF_ZOMBIE, "", "\83]\83\93\83r" },
+/*JP
     { DEF_HUMAN, "", "human or elf" },
+*/
+    { DEF_HUMAN, "", "\90l\8aÔ\82Ü\82½\82Í\83G\83\8b\83t" },
+/*JP
     { DEF_GHOST, "", "ghost" },
+*/
+    { DEF_GHOST, "", "\88«\96\82" },
+/*JP
     { DEF_GOLEM, "", "golem" },
+*/
+    { DEF_GOLEM, "", "\83S\81[\83\8c\83\80" },
+/*JP
     { DEF_DEMON, "", "major demon" },
+*/
+    { DEF_DEMON, "", "\88«\96\82" },
+/*JP
     { DEF_EEL, "", "sea monster" },
+*/
+    { DEF_EEL, "", "\8aC\82Ì\89ö\95¨" },
+/*JP
     { DEF_LIZARD, "", "lizard" },
+*/
+    { DEF_LIZARD, "", "\83g\83J\83Q" },
+/*JP
     { DEF_WORM_TAIL, "", "long worm tail" },
+*/
+    { DEF_WORM_TAIL, "", "\83\8d\83\93\83O\83\8f\81[\83\80\82Ì\90K\94ö" },
+/*JP
     { DEF_MIMIC_DEF, "", "mimic" },
+*/
+    { DEF_MIMIC_DEF, "", "\83~\83~\83b\83N" },
 };
 
 const struct symdef def_warnsyms[WARNCOUNT] = {
@@ -161,6 +395,7 @@ const struct symdef def_warnsyms[WARNCOUNT] = {
  *  Default screen symbols with explanations and colors.
  */
 const struct symdef defsyms[MAXPCHARS] = {
+#if 0 /*JP*/
 /* 0*/ { ' ', "dark part of a room", C(NO_COLOR) },  /* stone */
        { '|', "wall", C(CLR_GRAY) },                 /* vwall */
        { '-', "wall", C(CLR_GRAY) },                 /* hwall */
@@ -171,6 +406,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '-', "wall", C(CLR_GRAY) },                 /* crwall */
        { '-', "wall", C(CLR_GRAY) },                 /* tuwall */
        { '-', "wall", C(CLR_GRAY) },                 /* tdwall */
+#else
+/* 0*/ { ' ', "\95\94\89®\82Ì\88Ã\82¢\95\94\95ª", C(NO_COLOR) },       /* stone */
+       { '|', "\95Ç", C(CLR_GRAY) },                   /* vwall */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* hwall */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* tlcorn */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* trcorn */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* blcorn */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* brcorn */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* crwall */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* tuwall */
+       { '-', "\95Ç", C(CLR_GRAY) },                   /* tdwall */
+#endif
+#if 0 /*JP*/
 /*10*/ { '|', "wall", C(CLR_GRAY) },                 /* tlwall */
        { '|', "wall", C(CLR_GRAY) },                 /* trwall */
        { '.', "doorway", C(CLR_GRAY) },              /* ndoor */
@@ -181,6 +429,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '#', "iron bars", C(HI_METAL) },            /* bars */
        { '#', "tree", C(CLR_GREEN) },                /* tree */
        { '.', "floor of a room", C(CLR_GRAY) },      /* room */
+#else
+/*10*/ { '|', "\95Ç", C(CLR_GRAY) },                   /* tlwall */
+       { '|', "\95Ç", C(CLR_GRAY) },                   /* trwall */
+       { '.', "\8fo\93ü\8cû", C(CLR_GRAY) },               /* ndoor */
+       { '-', "\8aJ\82¢\82½\94à", C(CLR_BROWN) },            /* vodoor */
+       { '|', "\8aJ\82¢\82½\94à", C(CLR_BROWN) },            /* hodoor */
+       { '+', "\95Â\82\82½\94à", C(CLR_BROWN) },            /* vcdoor */
+       { '+', "\95Â\82\82½\94à", C(CLR_BROWN) },            /* hcdoor */
+       { '#', "\93S\96_", C(HI_METAL) },                 /* bars */
+       { '#', "\96Ø", C(CLR_GREEN) },                  /* tree */
+       { '.', "\95\94\89®\82Ì\8f°", C(CLR_GRAY) },             /* room */
+#endif
+#if 0 /*JP*/
 /*20*/ { '.', "dark part of a room", C(CLR_BLACK) }, /* dark room */
        { '#', "corridor", C(CLR_GRAY) },             /* dark corr */
        { '#', "lit corridor", C(CLR_GRAY) },   /* lit corr (see mapglyph.c) */
@@ -191,6 +452,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '_', "altar", C(CLR_GRAY) },                /* altar */
        { '|', "grave", C(CLR_GRAY) },                /* grave */
        { '\\', "opulent throne", C(HI_GOLD) },       /* throne */
+#else
+/*20*/ { '.', "\95\94\89®\82Ì\88Ã\82¢\95\94\95ª", C(CLR_BLACK) },      /* dark room */
+       { '#', "\92Ê\98H", C(CLR_GRAY) },                 /* dark corr */
+       { '#', "\96¾\82é\82¢\92Ê\98H", C(CLR_GRAY) },     /* lit corr (see mapglyph.c) */
+       { '<', "\8fã\82è\8aK\92i", C(CLR_GRAY) },             /* upstair */
+       { '>', "\89º\82è\8aK\92i", C(CLR_GRAY) },             /* dnstair */
+       { '<', "\8fã\82è\82Í\82µ\82²", C(CLR_BROWN) },          /* upladder */
+       { '>', "\89º\82è\82Í\82µ\82²", C(CLR_BROWN) },          /* dnladder */
+       { '_', "\8dÕ\92d", C(CLR_GRAY) },                 /* altar */
+       { '|', "\95æ", C(CLR_GRAY) },                   /* grave */
+       { '\\', "\89Ø\82â\82©\82È\8bÊ\8dÀ", C(HI_GOLD) },         /* throne */
+#endif
+#if 0 /*JP*/
 /*30*/ { '#', "sink", C(CLR_GRAY) },                 /* sink */
        { '{', "fountain", C(CLR_BLUE) },             /* fountain */
        { '}', "water", C(CLR_BLUE) },                /* pool */
@@ -201,6 +475,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '#', "raised drawbridge", C(CLR_BROWN) },   /* vcdbridge */
        { '#', "raised drawbridge", C(CLR_BROWN) },   /* hcdbridge */
        { ' ', "air", C(CLR_CYAN) },                  /* open air */
+#else
+/*30*/ { '#', "\97¬\82µ\91ä", C(CLR_GRAY) },               /* sink */
+       { '{', "\90ò", C(CLR_BLUE) },                   /* fountain */
+       { '}', "\90\85\82Ì\82½\82Ü\82Á\82½\8fê\8f\8a", C(CLR_BLUE) },     /* pool */
+       { '.', "\95X", C(CLR_CYAN) },                   /* ice */
+       { '}', "\97n\8aâ", C(CLR_RED) },                  /* lava */
+       { '.', "\8d~\82è\82Ä\82¢\82é\92µ\82Ë\8b´", C(CLR_BROWN) },    /* vodbridge */
+       { '.', "\8d~\82è\82Ä\82¢\82é\92µ\82Ë\8b´", C(CLR_BROWN) },    /* hodbridge */
+       { '#', "\8fã\82Á\82Ä\82¢\82é\92µ\82Ë\8b´", C(CLR_BROWN) },    /* vcdbridge */
+       { '#', "\8fã\82Á\82Ä\82¢\82é\92µ\82Ë\8b´", C(CLR_BROWN) },    /* hcdbridge */
+       { ' ', "\8bó\8bC\82Ì\82½\82Ü\82Á\82½\8fê\8f\8a", C(CLR_CYAN) },   /* open air */
+#endif
+#if 0 /*JP*/
 /*40*/ { '#', "cloud", C(CLR_GRAY) },                /* [part of] a cloud */
        { '}', "water", C(CLR_BLUE) },                /* under water */
        { '^', "arrow trap", C(HI_METAL) },           /* trap */
@@ -211,6 +498,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '^', "land mine", C(CLR_RED) },             /* trap */
        { '^', "rolling boulder trap", C(CLR_GRAY) }, /* trap */
        { '^', "sleeping gas trap", C(HI_ZAP) },      /* trap */
+#else
+/*40*/ { '#', "\89_", C(CLR_GRAY) },                   /* [part of] a cloud */
+       { '}', "\90\85", C(CLR_BLUE) },                   /* under water */
+       { '^', "\96î\82Ìã©", C(HI_METAL) },               /* trap */
+       { '^', "\93\8a\82°\96î\82Ìã©", C(HI_METAL) },           /* trap */
+       { '^', "\97\8e\90Î\82Ìã©", C(CLR_GRAY) },             /* trap */
+       { '^', "\82«\82µ\82Þ\94Â", C(CLR_BROWN) },            /* trap */
+       { '^', "\8cF\82Ìã©", C(HI_METAL) },               /* trap */
+       { '^', "\92n\97\8b", C(CLR_RED) },                  /* trap */
+       { '^', "\8b\90\8aâ\82Ìã©", C(CLR_GRAY) },             /* trap */
+       { '^', "\90\87\96°\83K\83X\82Ìã©", C(HI_ZAP) },           /* trap */
+#endif
+#if 0 /*JP*/
 /*50*/ { '^', "rust trap", C(CLR_BLUE) },            /* trap */
        { '^', "fire trap", C(CLR_ORANGE) },          /* trap */
        { '^', "pit", C(CLR_BLACK) },                 /* trap */
@@ -221,6 +521,19 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '^', "level teleporter", C(CLR_MAGENTA) },    /* trap */
        { '^', "magic portal", C(CLR_BRIGHT_MAGENTA) }, /* trap */
        { '"', "web", C(CLR_GRAY) },                    /* web */
+#else
+/*50*/ { '^', "\95\85\90H\82Ìã©", C(CLR_BLUE) },             /* trap */
+       { '^', "\89Î\82Ìã©", C(CLR_ORANGE) },             /* trap */
+       { '^', "\97\8e\82µ\8c\8a", C(CLR_BLACK) },              /* trap */
+       { '^', "\83g\83Q\82¾\82ç\82¯\82Ì\97\8e\82µ\8c\8a", C(CLR_BLACK) },  /* trap */
+       { '^', "\8c\8a", C(CLR_BROWN) },                  /* trap */
+       { '^', "\97\8e\82µ\94à", C(CLR_BROWN) },              /* trap */
+       { '^', "\8fu\8aÔ\88Ú\93®\82Ìã©", C(CLR_MAGENTA) },      /* trap */
+       { '^', "\95Ê\82Ì\8aK\82Ö\82Ì\8fu\8aÔ\88Ú\93®\82Ìã©", C(CLR_MAGENTA) }, /* trap */
+       { '^', "\96\82\96@\82Ìã©", C(CLR_BRIGHT_MAGENTA) },   /* trap */
+       { '"', "\82­\82à\82Ì\91\83", C(CLR_GRAY) },             /* web */
+#endif
+#if 0 /*JP*/
 /*60*/ { '^', "statue trap", C(CLR_GRAY) },            /* trap */
        { '^', "magic trap", C(HI_ZAP) },               /* trap */
        { '^', "anti-magic field", C(HI_ZAP) },         /* trap */
@@ -233,13 +546,32 @@ const struct symdef defsyms[MAXPCHARS] = {
        { '*', "", C(CLR_WHITE) },               /* dig beam */
        { '!', "", C(CLR_WHITE) },               /* camera flash beam */
        { ')', "", C(HI_WOOD) },                 /* boomerang open left */
+#else
+/*60*/ { '^', "\92¤\91\9c\82Ìã©", C(CLR_GRAY) },               /* trap */
+       { '^', "\96\82\96@\82Ìã©", C(HI_ZAP) },                 /* trap */
+       { '^', "\94½\96\82\96@\8bó\8aÔ\82Ìã©", C(HI_ZAP) },           /* trap */
+       { '^', "\95Ï\89»\82Ìã©", C(CLR_BRIGHT_GREEN) },       /* trap */
+       { '^', "\90U\93®\82µ\82Ä\82¢\82é\8fê\8f\8a", C(CLR_YELLOW) },     /* trap */
+       { '|', "\95Ç", C(CLR_GRAY) },              /* vbeam */
+       { '-', "\95Ç", C(CLR_GRAY) },              /* hbeam */
+       { '\\', "\95Ç", C(CLR_GRAY) },             /* lslant */
+       { '/', "\95Ç", C(CLR_GRAY) },              /* rslant */
+       { '*', "", C(CLR_WHITE) },               /* dig beam */
+       { '!', "", C(CLR_WHITE) },               /* camera flash beam */
+       { ')', "", C(HI_WOOD) },                 /* boomerang open left */
+#endif
 /*70*/ { '(', "", C(HI_WOOD) },                 /* boomerang open right */
        { '0', "", C(HI_ZAP) },                  /* 4 magic shield symbols */
        { '#', "", C(HI_ZAP) },
        { '@', "", C(HI_ZAP) },
        { '*', "", C(HI_ZAP) },
+#if 0 /*JP*/
        { '#', "poison cloud", C(CLR_BRIGHT_GREEN) },   /* part of a cloud */
        { '?', "valid position", C(CLR_BRIGHT_GREEN) }, /*  target position */
+#else
+       { '#', "\93Å\89_", C(CLR_BRIGHT_GREEN) },           /* part of a cloud */
+       { '?', "\97L\8cø\82È\88Ê\92u", C(CLR_BRIGHT_GREEN) },     /*  target position */
+#endif
        { '/', "", C(CLR_GREEN) },         /* swallow top left      */
        { '-', "", C(CLR_GREEN) },         /* swallow top center    */
        { '\\', "", C(CLR_GREEN) },        /* swallow top right     */
index 70b1c87..e8f8f6c 100644 (file)
@@ -2009,11 +2009,20 @@ donamelevel()
 
     if (mptr->custom) {
         char tmpbuf[BUFSZ];
+#if 0 /*JP*/
         Sprintf(tmpbuf, "Replace annotation \"%.30s%s\" with?", mptr->custom,
                 strlen(mptr->custom) > 30 ? "..." : "");
         getlin(tmpbuf, nbuf);
+#else
+        Sprintf(tmpbuf, "\8c»\8dÝ\82Ì\96¼\91O\81u%.30s%s\81v\82ð\89½\82É\8f\91\82«\8a·\82¦\82é\81H", mptr->custom,
+                strlen(mptr->custom) > 30 ? "..." : "");
+        getlin(tmpbuf, nbuf);
+#endif
     } else
+/*JP
         getlin("What do you want to call this dungeon level?", nbuf);
+*/
+        getlin("\82±\82Ì\8aK\82ð\89½\82Æ\8cÄ\82Ô\81H", nbuf);
     if (index(nbuf, '\033'))
         return 0;
     (void) mungspaces(nbuf);
index 5026882..9306c6d 100644 (file)
--- a/src/eat.c
+++ b/src/eat.c
@@ -194,13 +194,19 @@ eatmupdate()
 
     if (is_obj_mappear(&youmonst,ORANGE) && !Hallucination) {
         /* revert from hallucinatory to "normal" mimicking */
+/*JP
         altmsg = "You now prefer mimicking yourself.";
+*/
+        altmsg = "\82 \82È\82½\82Í\8e©\95ª\8e©\90g\82Ì\82Ü\82Ë\82ð\82·\82é\82±\82Æ\82ð\91I\82ñ\82¾\81D";
         altapp = GOLD_PIECE;
     } else if (is_obj_mappear(&youmonst,GOLD_PIECE) && Hallucination) {
         /* won't happen; anything which might make immobilized
            hero begin hallucinating (black light attack, theft
            of Grayswandir) will terminate the mimicry first */
+/*JP
         altmsg = "Your rind escaped intact.";
+*/
+        altmsg = "\82 \82È\82½\82Ì\94ç\82ª\82»\82Ì\82Ü\82Ü\82Ì\8c`\82Å\93¦\82°\82Ä\82¢\82Á\82½\81D";
         altapp = ORANGE;
     }
 
@@ -519,16 +525,30 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
 
     if (noncorporeal(pd)) {
         if (visflag)
+#if 0 /*JP*/
             pline("%s brain is unharmed.",
                   (mdef == &youmonst) ? "Your" : s_suffix(Monnam(mdef)));
+#else
+            pline("%s\82Ì\94]\82Í\96³\8e\96\82¾\82Á\82½\81D",
+                  (mdef == &youmonst) ? "\82 \82È\82½" : Monnam(mdef));
+#endif
         return MM_MISS; /* side-effects can't occur */
     } else if (magr == &youmonst) {
+/*JP
         You("eat %s brain!", s_suffix(mon_nam(mdef)));
+*/
+        You("%s\82Ì\94]\82ð\90H\82×\82½\81I", mon_nam(mdef));
     } else if (mdef == &youmonst) {
+/*JP
         Your("brain is eaten!");
+*/
+        Your("\94]\82Í\90H\82×\82ç\82ê\82½\81I");
     } else { /* monster against monster */
         if (visflag)
+/*JP
             pline("%s brain is eaten!", s_suffix(Monnam(mdef)));
+*/
+            pline("%s\82Ì\94]\82Í\90H\82×\82ç\82ê\82½\81I", Monnam(mdef));
     }
 
     if (flesh_petrifies(pd)) {
@@ -542,7 +562,10 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
             /* no need to check for poly_when_stoned or Stone_resistance;
                mind flayers don't have those capabilities */
             if (visflag)
+/*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) {
                 /* life-saved; don't continue eating the brains */
@@ -550,7 +573,10 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
             } else {
                 if (magr->mtame && !visflag)
                     /* parallels mhitm.c's brief_feeling */
+/*JP
                     You("have a sad thought for a moment, then is passes.");
+*/
+                    You("\94ß\82µ\82¢\8dl\82¦\82É\82¨\82»\82í\82ê\82½\82ª\81A\82·\82®\82É\89ß\82¬\82³\82Á\82½\81D");
                 return MM_AGR_DIED;
             }
         }
@@ -562,12 +588,21 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
          */
         eating_conducts(pd);
         if (mindless(pd)) { /* (cannibalism not possible here) */
+/*JP
             pline("%s doesn't notice.", Monnam(mdef));
+*/
+            pline("%s\82Í\8bC\82Ã\82¢\82Ä\82¢\82È\82¢\81D", Monnam(mdef));
             /* all done; no extra harm inflicted upon target */
             return MM_MISS;
         } else if (is_rider(pd)) {
+/*JP
             pline("Ingesting that is fatal.");
+*/
+            pline("\8eæ\82è\8d\9e\82ñ\82¾\82ç\82·\82®\82É\8e\80\82ñ\82Å\82µ\82Ü\82Á\82½\81D");
+/*JP
             Sprintf(killer.name, "unwisely ate the brain of %s", pd->mname);
+*/
+            Sprintf(killer.name, "\8bð\82©\82É\82à%s\82Ì\91Ì\82ð\90H\82×\82Ä", pd->mname);
             killer.format = NO_KILLER_PREFIX;
             done(DIED);
             /* life-saving needed to reach here */
@@ -595,19 +630,28 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
          */
         /* no such thing as mindless players */
         if (ABASE(A_INT) <= ATTRMIN(A_INT)) {
+/*JP
             static NEARDATA const char brainlessness[] = "brainlessness";
+*/
+            static NEARDATA const char brainlessness[] = "\94]\82ð\8e¸\82Á\82Ä";
 
             if (Lifesaved) {
                 Strcpy(killer.name, brainlessness);
                 killer.format = KILLED_BY;
                 done(DIED);
                 /* amulet of life saving has now been used up */
+/*JP
                 pline("Unfortunately your brain is still gone.");
+*/
+                pline("\8ec\94O\82È\82ª\82ç\82 \82È\82½\82É\82Í\94]\82ª\82È\82¢\81D");
                 /* sanity check against adding other forms of life-saving */
                 u.uprops[LIFESAVED].extrinsic =
                     u.uprops[LIFESAVED].intrinsic = 0L;
             } else {
+/*JP
                 Your("last thought fades away.");
+*/
+                Your("\8dÅ\8cã\82Ì\8ev\82¢\82ª\91\96\94n\93\95\82Ì\82æ\82¤\82É\89¡\82¬\82Á\82½\81D");
             }
             Strcpy(killer.name, brainlessness);
             killer.format = KILLED_BY;
@@ -615,7 +659,10 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
             /* can only get here when in wizard or explore mode and user has
                explicitly chosen not to die; arbitrarily boost intelligence */
             ABASE(A_INT) = ATTRMIN(A_INT) + 2;
+/*JP
             You_feel("like a scarecrow.");
+*/
+            You("\82©\82©\82µ\82Ì\82æ\82¤\82È\8bC\8e\9d\82ª\82µ\82½\81D");
         }
         give_nutrit = TRUE; /* in case a conflicted pet is doing this */
         exercise(A_WIS, FALSE);
@@ -627,7 +674,10 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
          */
         if (mindless(pd)) {
             if (visflag)
+/*JP
                 pline("%s doesn't notice.", Monnam(mdef));
+*/
+                pline("%s\82Í\8bC\82Ã\82¢\82Ä\82¢\82È\82¢\81D", Monnam(mdef));
             return MM_MISS;
         } else if (is_rider(pd)) {
             mondied(magr);
@@ -639,7 +689,10 @@ int *dmg_p; /* for dishing out extra damage in lieu of Int loss */
             *dmg_p += xtra_dmg;
             give_nutrit = TRUE;
             if (*dmg_p >= mdef->mhp && visflag)
+/*JP
                 pline("%s last thought fades away...",
+*/
+                pline("%s\82Ì\8dÅ\8cã\82Ì\8ev\82¢\82ª\82æ\82¬\82é\81D\81D\81D",
                       s_suffix(Monnam(mdef)));
         }
     }
@@ -1175,7 +1228,10 @@ register int pm;
     case PM_DOPPELGANGER:
     case PM_SANDESTIN: /* moot--they don't leave corpses */
         if (Unchanging) {
-            You_feel("momentarily different."); /* same as poly trap */
+#if 0 /*JP*/
+            You_feel("\88ê\8fu\88á\82Á\82½\8a´\82\82ª\82µ\82½\81D"); /* same as poly trap */
+#else
+#endif
         } else {
 /*JP
             You_feel("a change coming over you.");
@@ -1346,6 +1402,7 @@ char *buf;
 */
             Strcat(buf, "\8bó\82Á\82Û\82Ì");
         else {
+#if 0 /*JP*//*\93ú\96{\8cê\82Í\8cã\82Å*/
             if ((obj->cknown || iflags.override_ID) && obj->spe < 0) {
                 if (r == ROTTEN_TIN || r == HOMEMADE_TIN) {
                     /* put these before the word tin */
@@ -1354,19 +1411,32 @@ char *buf;
                 } else {
                     Sprintf(eos(buf), " of %s ", tintxts[r].txt);
                 }
+                Sprintf(eos(buf), "%s", tintxts[r].txt);
             } else {
                 Strcpy(eos(buf), " of ");
             }
+#endif
+#if 1 /*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) {
+                Strcpy(eos(buf), tintxts[r].txt);
+            }
+#endif
             if (vegetarian(&mons[mnum]))
 /*JP
                 Sprintf(eos(buf), "%s", mons[mnum].mname);
 */
-                Sprintf(eos(buf), "%s\82Ì", mons[mnum].mname);
+                Sprintf(eos(buf), "%s", mons[mnum].mname);
             else
 /*JP
                 Sprintf(eos(buf), "%s meat", mons[mnum].mname);
 */
-                Sprintf(eos(buf), "%s\82Ì\93÷\82Ì", mons[mnum].mname);
+                Sprintf(eos(buf), "%s\82Ì\93÷", mons[mnum].mname);
+#if 1 /*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) {
+                Strcpy(eos(buf), tintxts[r].txt);
+            }
+            Strcpy(eos(buf), "\82Ì");
+#endif
         }
     }
 }
@@ -1436,7 +1506,10 @@ const char *mesg;
 
     r = tin_variety(tin, FALSE);
     if (tin->otrapped || (tin->cursed && r != HOMEMADE_TIN && !rn2(8))) {
+/*JP
         b_trapped("tin", 0);
+*/
+        b_trapped("\8aÊ", 0);
         costly_tin(COST_DSTROY);
         goto use_up_tin;
     }
@@ -1458,7 +1531,10 @@ const char *mesg;
         which = 0; /* 0=>plural, 1=>as-is, 2=>"the" prefix */
         if ((mnum == PM_COCKATRICE || mnum == PM_CHICKATRICE)
             && (Stone_resistance || Hallucination)) {
+/*JP
             what = "chicken";
+*/
+            what = "\8c{\93÷";
             which = 1; /* suppress pluralization */
         } else if (Hallucination) {
             what = rndmonnam(NULL);
@@ -1657,11 +1733,18 @@ struct obj *otmp;
 */
             mesg = "\8aÊ\82Í\96\82\96@\82Ì\82æ\82¤\82É\8aJ\82¢\82½\81I";
         else
+/*JP
             pline_The("tin seems easy to open.");
+*/
+            pline_The("\8aÊ\82Í\8aÈ\92P\82É\8aJ\82¯\82ç\82ê\82»\82¤\82¾\81D");
     } else if (uwep) {
         switch (uwep->otyp) {
         case TIN_OPENER:
+#if 0 /*JP*/
             mesg = "You easily open the tin."; /* iff tmp==0 */
+#else
+            mesg = "\82 \82È\82½\82Í\8aÈ\92P\82É\8aÊ\82ð\8aJ\82¯\82½\81D"; /* iff tmp==0 */
+#endif
             tmp = rn2(uwep->cursed ? 3 : !uwep->blessed ? 2 : 1);
             break;
         case DAGGER:
@@ -1939,9 +2022,15 @@ struct obj *otmp;
             consume_oeaten(otmp, 2); /* oeaten >>= 2 */
     } else if ((mnum == PM_COCKATRICE || mnum == PM_CHICKATRICE)
                && (Stone_resistance || Hallucination)) {
+/*JP
         pline("This tastes just like chicken!");
+*/
+        pline("\82±\82ê\82Í\8c{\93÷\82Ì\96¡\82¾\81I");
     } else if (mnum == PM_FLOATING_EYE && u.umonnum == PM_RAVEN) {
+/*JP
         You("peck the eyeball with delight.");
+*/
+        You("\96Ú\8bÊ\82ð\82Â\82ñ\82Â\82ñ\82Â\82Â\82¢\82½\81D");
     } else {
         /* [is this right?  omnivores end up always disliking the taste] */
         boolean yummy = vegan(&mons[mnum])
@@ -2046,7 +2135,7 @@ struct obj *otmp;
 /*JP
                                 : "That food really hit the spot!");
 */
-                                : "That food really hit the spot!");
+                                : "\82±\82Ì\90H\82×\95¨\82Í\96{\93\96\82É\90\\82µ\95ª\82È\82¢\81I");
         else if (u.uhunger <= 700)
 /*JP
             pline("That satiated your %s!", body_part(STOMACH));
@@ -2564,11 +2653,20 @@ struct obj *otmp;
                not food, so we substitute cursed; fortunately our hero
                won't have to wait for a prince to be rescued/revived */
             if (Race_if(PM_DWARF) && Hallucination)
+/*JP
                 verbalize("Heigh-ho, ho-hum, I think I'll skip work today.");
+*/
+                verbalize("\83n\83C\83z\81[\81C\83n\83C\83z\81[\81C\8d¡\93ú\82Í\8bx\82Ý\81D");
             else if (Deaf || !flags.acoustics)
+/*JP
                 You("fall asleep.");
+*/
+                You("\96°\82è\82É\97\8e\82¿\82½\81D");
             else
+/*JP
                 You_hear("sinister laughter as you fall asleep...");
+*/
+                You_hear("\96°\82è\82É\97\8e\82¿\82é\82Æ\82«\82É\8e×\88«\82È\8fÎ\82¢\90º\82ð\95·\82¢\82½\81D\81D\81D");
             fall_asleep(-rn1(11, 20), TRUE);
         }
         break;
@@ -2615,7 +2713,11 @@ struct obj *otmp;
     int material = objects[otmp->otyp].oc_material, mnum = otmp->corpsenm;
     long rotted = 0L;
 
+#if 0 /*JP*/
     Strcpy(foodsmell, Tobjnam(otmp, "smell"));
+#else
+    Strcpy(foodsmell, xname(otmp));
+#endif
     Strcpy(it_or_they, (otmp->quan == 1L) ? "it" : "they");
 #if 0 /*JP*/
     Sprintf(eat_it_anyway, "Eat %s anyway?",
@@ -3280,7 +3382,10 @@ void
 reset_faint()
 {
     if (afternmv == unfaint)
+/*JP
         unmul("You revive.");
+*/
+        unmul("\82 \82È\82½\82Í\8bC\82ª\82Â\82¢\82½\81D");
 }
 
 /* compute and comment on your (new?) hunger status */
@@ -3612,7 +3717,10 @@ vomit() /* A good idea from David Neves */
     if (cantvomit(youmonst.data))
         /* doesn't cure food poisoning; message assumes that we aren't
            dealing with some esoteric body_part() */
+/*JP
         Your("jaw gapes convulsively.");
+*/
+        Your("\82 \82²\82Í\94­\8dì\93I\82É\91å\82«\82­\8aJ\82¢\82½\81D");
     else
         make_sick(0L, (char *) 0, TRUE, SICK_VOMITABLE);
     nomul(-2);
index f92414f..307d8dd 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -467,12 +467,21 @@ int how;
                set up fake mptr for type_is_pname/the_unique_pm */
             mptr = &mons[mtmp->mappearance];
             fakenm = mptr->mname;
+#if 0 /*JP*/
         } else if (alt && strstri(realnm, "vampire")
                    && !strcmp(fakenm, "vampire bat")) {
             /* special case: use "vampire in bat form" in preference
                to redundant looking "vampire in vampire bat form" */
             fakenm = "bat";
+#else
+        } else if (alt && strstri(realnm, "\8bz\8c\8c\8bS")
+                   && !strcmp(fakenm, "\8bz\8c\8c\82±\82¤\82à\82è")) {
+            /* \81u\8bz\8c\8c\82±\82¤\82à\82è\82Ì\8ep\82Ì\8bz\8c\8c\8bS\81v\82Í\8fç\92·\82È\82Ì\82Å
+               \81u\82±\82¤\82à\82è\82Ì\8ep\82Ì\8bz\8c\8c\8bS\81v\82Ì\8c`\82É\82·\82é */
+            fakenm = "\82±\82¤\82à\82è";
+#endif
         }
+#if 0 /*JP*/
         /* for the alternate format, always suppress any article;
            pname and the_unique should also have s_suffix() applied,
            but vampires don't take on any shapes which warrant that */
@@ -482,12 +491,23 @@ int how;
             Sprintf(shape, "the %s", fakenm);
         else /* "a"/"an" */
             Strcpy(shape, an(fakenm));
+#else /*JP:\93ú\96{\8cê\82Å\82Í\83V\83\93\83v\83\8b*/
+        Strcpy(shape, fakenm);
+#endif
         /* omit "called" to avoid excessive verbosity */
+#if 0 /*JP*/
         Sprintf(eos(buf),
                 alt ? "%s in %s form"
                     : mimicker ? "%s disguised as %s"
                                : "%s imitating %s",
                 realnm, shape);
+#else
+        Sprintf(eos(buf),
+                alt ? "%s\82Ì\8ep\82Ì%s"
+                    : mimicker ? "%s\82Ì\82Ó\82è\82ð\82µ\82Ä\82¢\82é%s"
+                               : "%s\82Ì\82Ü\82Ë\82ð\82µ\82Ä\82¢\82é%s",
+                shape, realnm);
+#endif
         mptr = mtmp->data; /* reset for mimicker case */
     } else if (mptr == &mons[PM_GHOST]) {
 #if 0 /*JP*/
@@ -787,9 +807,15 @@ boolean taken;
 
     if (!done_stopprint) {
         ask = should_query_disclose_option('o', &defquery);
+#if 0 /*JP*/
         c = ask ? yn_function("Do you want to see the dungeon overview?",
                               ynqchars, defquery)
                 : defquery;
+#else
+        c = ask ? yn_function("\96À\8b{\82Ì\8aT\97v\82ð\8c©\82Ü\82·\82©\81H",
+                              ynqchars, defquery)
+                : defquery;
+#endif
         if (c == 'y')
             show_overview((how >= PANICKED) ? 1 : 2, how);
         if (c == 'q')
@@ -1778,7 +1804,10 @@ boolean ask;
         }
     } else if (defquery == 'a') {
         /* #dovanquished rather than final disclosure, so pline() is ok */
+/*JP
         pline("No monsters have been vanquished.");
+*/
+        pline("\93|\82µ\82½\93G\82Í\82¢\82È\82©\82Á\82½\81D");
     }
 }
 
index 7ab835e..16b4eb2 100644 (file)
@@ -191,11 +191,19 @@ cant_reach_floor(x, y, up, check_pit)
 int x, y;
 boolean up, check_pit;
 {
+#if 0 /*JP*/
     You("can't reach the %s.",
         up ? ceiling(x, y)
            : (check_pit && can_reach_floor(FALSE))
                ? "bottom of the pit"
                : surface(x, y));
+#else
+    You("%s\82É\93Í\82©\82È\82¢\81D",
+        up ? ceiling(x, y)
+           : (check_pit && can_reach_floor(FALSE))
+               ? "\97\8e\82µ\8c\8a\82Ì\92ê"
+               : surface(x, y));
+#endif
 }
 
 const char *
@@ -660,7 +668,10 @@ doengrave()
         return 0;
 
     if (otmp == &zeroobj) {
+/*JP
         Strcat(strcpy(fbuf, "your "), makeplural(body_part(FINGER)));
+*/
+        Strcat(strcpy(fbuf, "\82 \82È\82½\82Ì"), makeplural(body_part(FINGER)));
         writer = fbuf;
     } else
         writer = yname(otmp);
index 595068d..d7b8478 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 <limits.h>
 
index 7b4821f..1e040e6 100644 (file)
@@ -605,9 +605,15 @@ int expltype;
                 if (iflags.last_msg == PLNMSG_CAUGHT_IN_EXPLOSION
                     || iflags.last_msg
                            == PLNMSG_TOWER_OF_FLAME) /*seffects()*/
+/*JP
                     pline("It is fatal.");
+*/
+                    pline("\82»\82ê\82Í\92v\96½\93I\82¾\81D");
                 else
+/*JP
                     pline_The("%s is fatal.", str);
+*/
+                    pline_The("%s\82Í\92v\96½\93I\82¾\81D", str);
                 /* Known BUG: BURNING suppresses corpse in bones data,
                    but done does not handle killer reason correctly */
                 done((adtyp == AD_FIRE) ? BURNING : DIED);
index dcc5663..982db30 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"
 
index ff0c079..cf37d87 100644 (file)
@@ -2,13 +2,13 @@
 /*     Copyright Scott R. Turner, srt@ucla, 10/27/86 */
 /* NetHack may be freely redistributed.  See license for details. */
 
-/* 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. */
 
+/* Code for drinking from fountains. */
+
 #include "hack.h"
 
 STATIC_DCL void NDECL(dowatersnakes);
@@ -797,7 +797,7 @@ drinksink()
 /*JP
         pline("Yuk, this water tastes awful.");
 */
-       pline("\83I\83F\81C\82Æ\82Ä\82à\82Ð\82Ç\82¢\96¡\82ª\82·\82é\81D");
+        pline("\83I\83F\81C\82Æ\82Ä\82à\82Ð\82Ç\82¢\96¡\82ª\82·\82é\81D");
         more_experienced(1, 0);
         newexplevel();
         break;
index d49b495..115e303 100644 (file)
@@ -1003,7 +1003,10 @@ int mode;
     } else if (dx && dy && worm_cross(ux, uy, x, y)) {
         /* consecutive long worm segments are at <ux,y> and <x,uy> */
         if (mode == DO_MOVE)
+/*JP
             pline("%s is in your way.", Monnam(m_at(ux, y)));
+*/
+            pline("\93¹\82Ì\93r\92\86\82É%s\82ª\82¢\82é\81D", Monnam(m_at(ux, y)));
         return FALSE;
     }
     /* Pick travel path that does not require crossing a trap.
@@ -1403,36 +1406,72 @@ struct trap *desttrap; /* nonnull if another trap at <x,y> */
                    after this successful move would have its
                    can't-do-that message suppressed by Norep */
                 if (flags.verbose)
+/*JP
                     Norep("You move within the chain's reach.");
+*/
+                    Norep("\8d½\82ª\93Í\82­\94Í\88Í\82É\88Ú\93®\82Å\82«\82é\81D");
                 return TRUE;
             }
         }
         if (--u.utrap) {
             if (flags.verbose) {
                 if (anchored) {
+#if 0 /*JP*/
                     predicament = "chained to the";
                     culprit = "buried ball";
+#else
+                    predicament = "\82Æ\82Â\82È\82ª\82Á\82Ä\82¢\82é";
+                    culprit = "\96\84\82Ü\82Á\82Ä\82¢\82é\8b\85";
+#endif
                 } else {
+#if 0 /*JP*/
                     predicament = "stuck in the";
                     culprit = surface(u.ux, u.uy);
+#else
+                    predicament = "\82É\96\84\82Ü\82Á\82Ä\82¢\82é";
+                    culprit = surface(u.ux, u.uy);
+#endif
                 }
                 if (u.usteed) {
                     if (anchored)
+#if 0 /*JP*/
                         Norep("You and %s are %s %s.", steedname, predicament,
                               culprit);
+#else
+                        Norep("\82 \82È\82½\82Æ%s\82Í%s%s\81D", steedname, culprit,
+                              predicament);
+#endif
                     else
+#if 0 /*JP*/
                         Norep("%s is %s %s.", upstart(steedname), predicament,
                               culprit);
+#else
+                        Norep("%s\82Í%s%s\81D", steedname, culprit,
+                              predicament);
+#endif
                 } else
+/*JP
                     Norep("You are %s %s.", predicament, culprit);
+*/
+                    Norep("\82 \82È\82½\82Í%s\82É%s\81D", culprit, predicament);
             }
         } else {
             if (u.usteed)
+#if 0 /*JP*/
                 pline("%s finally %s free.", upstart(steedname),
                       !anchored ? "lurches" : "wrenches the ball");
+#else
+                pline("%s\82Í%s\82â\82Á\82Æ\8e©\97R\82É\82È\82Á\82½\81D", upstart(steedname),
+                      !anchored ? "\82à\82ª\82¢\82Ä" : "\93S\8b\85\82ð\82à\82¬\8eæ\82Á\82Ä");
+#endif
             else
+#if 0 /*JP*/
                 You("finally %s free.",
                     !anchored ? "wriggle" : "wrench the ball");
+#else
+                You("%s\82â\82Á\82Æ\8e©\97R\82É\82È\82Á\82½\81D",
+                    !anchored ? "\82à\82ª\82¢\82Ä" : "\93S\8b\85\82ð\82à\82¬\8eæ\82Á\82Ä");
+#endif
             if (anchored)
                 buried_ball_to_punishment();
         }
@@ -1761,27 +1800,51 @@ domove()
                because you don't see remembered terrain while underwater;
                although the hero can attack an adjacent monster this way,
                assume he can't reach out far enough to distinguish terrain */
+#if 0 /*JP*/
             Sprintf(buf, (Is_waterlevel(&u.uz) && levl[x][y].typ == AIR)
                              ? "an air bubble"
                              : "nothing");
+#else
+            Sprintf(buf, (Is_waterlevel(&u.uz) && levl[x][y].typ == AIR)
+                             ? "\8bó\8bC\82Ì\96A"
+                             : "\89½\82à\82È\82¢\82Æ\82±\82ë");
+#endif
         else if (solid)
             /* glyph might indicate unseen terrain if hero is blind;
                unlike searching, this won't reveal what that terrain is
                (except for solid rock, where the glyph would otherwise
                yield ludicrous "dark part of a room") */
+#if 0 /*JP*/
             Strcpy(buf,
                    (levl[x][y].typ == STONE)
                        ? "solid rock"
                        : glyph_is_cmap(glyph)
                             ? the(defsyms[glyph_to_cmap(glyph)].explanation)
                             : (const char *) "an unknown obstacle");
+#else
+            Strcpy(buf,
+                   (levl[x][y].typ == STONE)
+                       ? "\90Î"
+                       : glyph_is_cmap(glyph)
+                            ? the(defsyms[glyph_to_cmap(glyph)].explanation)
+                            : (const char *) "\95s\96¾\82È\8fá\8aQ\95¨");
+#endif
         /* note: 'solid' is misleadingly named and catches pools
            of water and lava as well as rock and walls */
         else
+/*JP
             Strcpy(buf, "thin air");
+*/
+            Strcpy(buf, "\89½\82à\82È\82¢\8bó\92\86");
+#if 0 /*JP*/
         You("%s%s %s.",
             !(boulder || solid) ? "" : !explo ? "harmlessly " : "futilely ",
             explo ? "explode at" : "attack", buf);
+#else
+        You("%s%s%s.",
+            !(boulder || solid) ? "" : !explo ? "\8cø\89Ê\82È\82­" : "\82Þ\82¾\82É",
+            buf, explo ? "\82Å\94\9a\94­\82µ\82½" : "\82ð\8dU\8c\82\82µ\82½");
+#endif
 
         nomul(0);
         if (explo) {
@@ -1877,7 +1940,10 @@ domove()
         } else if (u.ux0 != x && u.uy0 != y && NODIAG(mtmp->data - mons)) {
             /* can't swap places when pet can't move to your spot */
             u.ux = u.ux0, u.uy = u.uy0;
+/*JP
             You("stop.  %s can't move diagonally.", upstart(y_monnam(mtmp)));
+*/
+            You("\8e~\82Ü\82Á\82½\81D%s\82Í\8eÎ\82ß\82É\93®\82¯\82È\82¢\81D", upstart(y_monnam(mtmp)));
         } else if (u.ux0 != x && u.uy0 != y && bad_rock(mtmp->data, x, u.uy0)
                    && bad_rock(mtmp->data, u.ux0, y)
                    && (bigmonst(mtmp->data) || (curr_mon_load(mtmp) > 600))) {
@@ -2097,7 +2163,10 @@ switch_terrain()
     if (blocklev) {
         /* called from spoteffects(), skip float_down() */
         if (Levitation)
+/*JP
             You_cant("levitate in here.");
+*/
+            You_cant("\82±\82±\82Å\82Í\95\82\97V\82Å\82«\82È\82¢\81D");
         BLevitation |= FROMOUTSIDE;
     } else if (BLevitation) {
         BLevitation &= ~FROMOUTSIDE;
@@ -2107,7 +2176,10 @@ switch_terrain()
     /* the same terrain that blocks levitation also blocks flight */
     if (blocklev) {
         if (Flying)
+/*JP
             You_cant("fly in here.");
+*/
+            You_cant("\82±\82±\82Å\82Í\94ò\82×\82È\82¢\81D");
         BFlying |= FROMOUTSIDE;
     } else if (BFlying) {
         BFlying &= ~FROMOUTSIDE;
@@ -2116,7 +2188,10 @@ switch_terrain()
            resuming it; that could be tracked so that this message could
            be adjusted to "resume flying", but isn't worth the effort...] */
         if (Flying)
+/*JP
             You("start flying.");
+*/
+            You("\94ò\82Ñ\82Í\82\82ß\82½\81D");
     }
 }
 
@@ -2307,9 +2382,15 @@ boolean pick;
     /* Warning alerts you to ice danger */
     if (Warning && is_ice(u.ux, u.uy)) {
         static const char *const icewarnings[] = {
+#if 0 /*JP*/
             "The ice seems very soft and slushy.",
             "You feel the ice shift beneath you!",
             "The ice, is gonna BREAK!", /* The Dead Zone */
+#else
+            "\95X\82Í\82Æ\82Ä\82à\93î\82ç\82©\82­\82Ä\97n\82¯\82»\82¤\82¾\81D",
+            "\82 \82È\82½\82Ì\89º\82Ì\95X\82ª\93®\82¢\82½\82æ\82¤\82È\8bC\82ª\82µ\82½\81I",
+            "\95X\82ª\89ó\82ê\82é\82¼\81I", /* The Dead Zone */
+#endif
         };
         long time_left = spot_time_left(u.ux, u.uy, MELT_ICE_AWAY);
         if (time_left && time_left < 15L)
@@ -2788,15 +2869,30 @@ dopickup()
     if (!OBJ_AT(u.ux, u.uy)) {
         register struct rm *lev = &levl[u.ux][u.uy];
         if (IS_THRONE(lev->typ))
+/*JP
             pline("It must weigh%s a ton!", lev->looted ? " almost" : "");
+*/
+            pline("\82±\82ê\82Í%s\8fd\82¢\81I", lev->looted ? "\82©\82È\82è" : "\82·\82²\82­");
         else if (IS_SINK(lev->typ))
+/*JP
             pline_The("plumbing connects it to the floor.");
+*/
+            pline_The("\94z\8aÇ\82Í\8f°\82É\82Â\82È\82ª\82Á\82Ä\82¢\82é\81D");
         else if (IS_GRAVE(lev->typ))
+/*JP
             You("don't need a gravestone.  Yet.");
+*/
+            pline("\82 \82È\82½\82É\82Í\95æ\90Î\82Í\95s\97v\82¾\81D\81D\81D\8d¡\82Ì\82Æ\82±\82ë\81D");
         else if (IS_FOUNTAIN(lev->typ))
+/*JP
             You("could drink the water...");
+*/
+            You("\90\85\82ð\88ù\82ß\82È\82¢\81D\81D\81D");
         else if (IS_DOOR(lev->typ) && (lev->doormask & D_ISOPEN))
+/*JP
             pline("It won't come off the hinges.");
+*/
+            pline("\83q\83\93\83W\82ð\8aO\82¹\82È\82¢\81D");
         else
 /*JP
             There("is nothing here to pick up.");
@@ -2813,7 +2909,10 @@ dopickup()
         else if (u.usteed && P_SKILL(P_RIDING) < P_BASIC)
             rider_cant_reach();
         else if (Blind && !can_reach_floor(TRUE))
+/*JP
             You("cannot reach anything here.");
+*/
+            You("\89½\82É\82à\93Í\82©\82È\82¢\81D");
         else
 /*JP
             You("cannot reach the %s.", surface(u.ux, u.uy));
index 83e48c3..4259f53 100644 (file)
@@ -3,6 +3,11 @@
 /* Copyright (c) Robert Patrick Rankin, 1991                      */
 /* 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 config.h+extern.h */
 /*=
     Assorted 'small' utility routines.  They're virtually independent of
index de6f11b..eda4052 100644 (file)
@@ -2225,7 +2225,10 @@ dodip()
     allowall[1] = '\0';
     if (!(obj = getobj(allowall, "dip")))
         return 0;
+/*JP
     if (inaccessible_equipment(obj, "dip", FALSE))
+*/
+    if (inaccessible_equipment(obj, "\82ð\90Z\82·", FALSE))
         return 0;
 
 #if 0 /*JP*/