patch投げ用
Revision | 46ee79aa41961ee68420e7aa954646fa56904573 (tree) |
---|---|
Time | 2016-04-03 03:15:24 |
Author | SHIRAKATA Kentaro <argrath@ub32...> |
Commiter | SHIRAKATA Kentaro |
add translation
@@ -2636,7 +2636,7 @@ int final; | ||
2636 | 2636 | /*JP |
2637 | 2637 | you_have("infravision", from_what(INFRAVISION)); |
2638 | 2638 | */ |
2639 | - you_have("暗闇で物を見る能力", from_what(INFRAVISION)); | |
2639 | + you_have("赤外線が見える視覚", from_what(INFRAVISION)); | |
2640 | 2640 | if (Detect_monsters) |
2641 | 2641 | /*JP |
2642 | 2642 | you_are("sensing the presence of monsters", ""); |
@@ -779,6 +779,7 @@ register int type; | ||
779 | 779 | * http://concord.wikia.com/wiki/List_of_Fictional_Currencies |
780 | 780 | */ |
781 | 781 | static const char *const currencies[] = { |
782 | +#if 0 /*JP*/ | |
782 | 783 | "Altarian Dollar", /* The Hitchhiker's Guide to the Galaxy */ |
783 | 784 | "Ankh-Morpork Dollar", /* Discworld */ |
784 | 785 | "auric", /* The Domination of Draka */ |
@@ -800,6 +801,29 @@ static const char *const currencies[] = { | ||
800 | 801 | "Triganic Pu", /* The Hitchhiker's Guide to the Galaxy */ |
801 | 802 | "woolong", /* Cowboy Bebop */ |
802 | 803 | "zorkmid", /* Zork, NetHack */ |
804 | +#else | |
805 | + "アルタイル・ドル", /* The Hitchhiker's Guide to the Galaxy */ | |
806 | + "アンクモルポーク・ドル", /* Discworld */ | |
807 | + "ユーリック", /* The Domination of Draka */ | |
808 | + "バッカゾイド", /* Space Quest */ | |
809 | + "サーボゾイド", /* Starslip */ | |
810 | + "クレジット・チット", /* Deus Ex */ | |
811 | + "キュービット", /* Battlestar Galactica */ | |
812 | + "フレニアン・ピッブル・ビード", /* The Hitchhiker's Guide to the Galaxy */ | |
813 | + "フレッツァ", /* Jules Verne */ | |
814 | + "帝国クレジット", /* Star Wars */ | |
815 | + "香港月ドル", /* The Moon is a Harsh Mistress */ | |
816 | + "コンバック", /* Snow Crash */ | |
817 | + "ナーナイト", /* System Shock 2 */ | |
818 | + "クァトロ", /* Star Trek, Sim City */ | |
819 | + "シモレオン", /* Sim City */ | |
820 | + "ソラリ", /* Spaceballs */ | |
821 | + "スペースバック", /* Spaceballs */ | |
822 | + "スポアバック", /* Spore */ | |
823 | + "トライガニック・プー", /* The Hitchhiker's Guide to the Galaxy */ | |
824 | + "ウーロン", /* Cowboy Bebop */ | |
825 | + "ゴールド", /* Zork, NetHack */ | |
826 | +#endif | |
803 | 827 | }; |
804 | 828 | |
805 | 829 | const char * |
@@ -1250,8 +1274,12 @@ register const char *let, *word; | ||
1250 | 1274 | bp = (rn2(2) ? buf : (bp + 4)); |
1251 | 1275 | } else |
1252 | 1276 | bp = buf; |
1277 | +#if 0 /*JP*/ | |
1253 | 1278 | You("mime %s something%s%s.", ing_suffix(bp), suf ? " " : "", |
1254 | 1279 | suf ? suf : ""); |
1280 | +#else | |
1281 | + You("何かを%sふりをした.", bp); | |
1282 | +#endif | |
1255 | 1283 | } |
1256 | 1284 | return (allownone ? &zeroobj : (struct obj *) 0); |
1257 | 1285 | } |
@@ -1497,12 +1525,12 @@ static NEARDATA const char removeables[] = { ARMOR_CLASS, WEAPON_CLASS, | ||
1497 | 1525 | /* interactive version of getobj - used for Drop, Identify and */ |
1498 | 1526 | /* Takeoff (A). Return the number of times fn was called successfully */ |
1499 | 1527 | /* If combo is TRUE, we just use this to get a category list */ |
1500 | -/*JP CHECK: 3.4.3 の呼び出し元 | |
1501 | -do.c:864: (result = ggetobj("drop", drop, 0, FALSE, (unsigned *)0)) < -1) | |
1502 | -do.c:925: i = ggetobj("drop", drop, 0, TRUE, &ggoresults); | |
1503 | -do_wear.c:2538: (result = ggetobj("take off", select_off, 0, FALSE, (unsigned *)0)) < -1) | |
1504 | -do_wear.c:2586: if (ggetobj("take off", select_off, 0, TRUE, (unsigned *)0) == -2) | |
1505 | -invent.c:1782: n = ggetobj("identify", identify, id_limit, FALSE, (unsigned *)0); | |
1528 | +/*JP CHECK: 3.6.0 の呼び出し元 | |
1529 | +do.c:962: || (result = ggetobj("drop", drop, 0, FALSE, (unsigned *) 0)) < -1) | |
1530 | +do.c:1009: i = ggetobj("drop", drop, 0, TRUE, &ggoresults); | |
1531 | +do_wear.c:2955: || (result = ggetobj("take off", select_off, 0, FALSE, | |
1532 | +do_wear.c:3007: if (ggetobj("take off", select_off, 0, TRUE, (unsigned *) 0) == -2) | |
1533 | +invent.c:2014: n = ggetobj("identify", identify, id_limit, FALSE, | |
1506 | 1534 | */ |
1507 | 1535 | int |
1508 | 1536 | ggetobj(word, fn, mx, combo, resultflags) |
@@ -1717,10 +1745,9 @@ unsigned *resultflags; | ||
1717 | 1745 | * If allflag then no questions are asked. Max gives the max nr of |
1718 | 1746 | * objects to be treated. Return the number of objects treated. |
1719 | 1747 | */ |
1720 | -/*JP CHECK: 3.4.3 での呼び出し元 | |
1721 | -invent.c:1512:ggetobj() int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); | |
1722 | -pickup.c:2615:("nodot") if (askchain((struct obj **)¤t_container->cobj, | |
1723 | -pickup.c:2711:("nodot") (void) askchain((struct obj **)&invent, | |
1748 | +/*JP CHECK: 3.6.0 での呼び出し元 | |
1749 | +invent.c:1728: int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); | |
1750 | +pickup.c:2882: if (askchain(objlist, (one_by_one ? (char *) 0 : selection), allflag, | |
1724 | 1751 | wordには動詞が英語で入る。 |
1725 | 1752 | */ |
1726 | 1753 | int |
@@ -1939,7 +1966,10 @@ int id_limit; | ||
1939 | 1966 | pline1(thats_enough_tries); |
1940 | 1967 | break; |
1941 | 1968 | } else { /* try again */ |
1969 | +/*JP | |
1942 | 1970 | pline("Choose an item; use ESC to decline."); |
1971 | +*/ | |
1972 | + pline("アイテムを選んでください;やめるならESC."); | |
1943 | 1973 | } |
1944 | 1974 | } |
1945 | 1975 | } |
@@ -2747,17 +2777,30 @@ dotypeinv() | ||
2747 | 2777 | |
2748 | 2778 | switch (c) { |
2749 | 2779 | case 'B': |
2780 | +/*JP | |
2750 | 2781 | which = "known to be blessed"; |
2782 | +*/ | |
2783 | + which = "祝福されているとわかっている"; | |
2751 | 2784 | break; |
2752 | 2785 | case 'U': |
2786 | +/*JP | |
2753 | 2787 | which = "known to be uncursed"; |
2788 | +*/ | |
2789 | + which = "呪われていないとわかっている"; | |
2754 | 2790 | break; |
2755 | 2791 | case 'C': |
2792 | +/*JP | |
2756 | 2793 | which = "known to be cursed"; |
2794 | +*/ | |
2795 | + which = "呪われているとわかっている"; | |
2757 | 2796 | break; |
2758 | 2797 | case 'X': |
2798 | +#if 0 /*JP*/ | |
2759 | 2799 | You( |
2760 | 2800 | "have no objects whose blessed/uncursed/cursed status is unknown."); |
2801 | +#else | |
2802 | + You("祝福/呪いがわからないものは何ももっていない."); | |
2803 | +#endif | |
2761 | 2804 | break; /* better phrasing is desirable */ |
2762 | 2805 | default: |
2763 | 2806 | /*JP |
@@ -3037,7 +3080,10 @@ boolean picked_some; | ||
3037 | 3080 | pline1(fbuf); |
3038 | 3081 | read_engr_at(u.ux, u.uy); /* Eric Backus */ |
3039 | 3082 | if (obj_cnt == 1 && otmp->quan == 1L) |
3083 | +/*JP | |
3040 | 3084 | There("is %s object here.", picked_some ? "another" : "an"); |
3085 | +*/ | |
3086 | + There("ここには%s一つものがある.", picked_some ? "もう" : ""); | |
3041 | 3087 | else |
3042 | 3088 | #if 0 /*JP*/ |
3043 | 3089 | There("are %s%s objects here.", |
@@ -3056,6 +3102,7 @@ boolean picked_some; | ||
3056 | 3102 | #endif |
3057 | 3103 | for (; otmp; otmp = otmp->nexthere) |
3058 | 3104 | if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) { |
3105 | +#if 0 /*JP*//*"It's (corpse_name), unfortunately"*/ | |
3059 | 3106 | pline("%s %s%s.", |
3060 | 3107 | (obj_cnt > 1) |
3061 | 3108 | ? "Including" |
@@ -3066,6 +3113,16 @@ boolean picked_some; | ||
3066 | 3113 | poly_when_stoned(youmonst.data) |
3067 | 3114 | ? "" |
3068 | 3115 | : ", unfortunately"); |
3116 | +#else | |
3117 | + pline("%s%s%s.", | |
3118 | + poly_when_stoned(youmonst.data) | |
3119 | + ? "" | |
3120 | + : "残念ながら", | |
3121 | + corpse_xname(otmp, (const char *) 0, CXN_ARTICLE), | |
3122 | + (obj_cnt > 1) | |
3123 | + ? "を含んでいる" | |
3124 | + : "だ"); | |
3125 | +#endif | |
3069 | 3126 | feel_cockatrice(otmp, FALSE); |
3070 | 3127 | break; |
3071 | 3128 | } |
@@ -3103,7 +3160,10 @@ boolean picked_some; | ||
3103 | 3160 | for (; otmp; otmp = otmp->nexthere) { |
3104 | 3161 | if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) { |
3105 | 3162 | felt_cockatrice = TRUE; |
3163 | +/*JP | |
3106 | 3164 | Sprintf(buf, "%s...", doname(otmp)); |
3165 | +*/ | |
3166 | + Sprintf(buf, "%s...", doname(otmp)); | |
3107 | 3167 | putstr(tmpwin, 0, buf); |
3108 | 3168 | break; |
3109 | 3169 | } |
@@ -3649,7 +3709,10 @@ doorganize() /* inventory organizer by Del Lamb */ | ||
3649 | 3709 | const char *adj_type; |
3650 | 3710 | |
3651 | 3711 | if (!invent) { |
3712 | +/*JP | |
3652 | 3713 | You("aren't carrying anything to adjust."); |
3714 | +*/ | |
3715 | + You("順序を変えるものを何も持っていない."); | |
3653 | 3716 | return 0; |
3654 | 3717 | } |
3655 | 3718 |
@@ -3801,7 +3864,10 @@ doorganize() /* inventory organizer by Del Lamb */ | ||
3801 | 3864 | } else if (inv_cnt(FALSE) >= 52) { |
3802 | 3865 | (void) merged(&splitting, &obj); /* undo split */ |
3803 | 3866 | /* "knapsack cannot accommodate any more items" */ |
3867 | +/*JP | |
3804 | 3868 | Your("pack is too full."); |
3869 | +*/ | |
3870 | + Your("持ち物は一杯だ."); | |
3805 | 3871 | return 0; |
3806 | 3872 | } else { |
3807 | 3873 | bumped = otmp; |
@@ -3833,7 +3899,10 @@ doorganize() /* inventory organizer by Del Lamb */ | ||
3833 | 3899 | /* messages deferred until inventory has been fully reestablished */ |
3834 | 3900 | prinv(adj_type, obj, 0L); |
3835 | 3901 | if (bumped) |
3902 | +/*JP | |
3836 | 3903 | prinv("Moving:", bumped, 0L); |
3904 | +*/ | |
3905 | + prinv("移動:", bumped, 0L); | |
3837 | 3906 | if (splitting) |
3838 | 3907 | clear_splitobjs(); /* reset splitobj context */ |
3839 | 3908 | update_inventory(); |
@@ -2,6 +2,10 @@ | ||
2 | 2 | /* Copyright (c) Dean Luick, 1994 */ |
3 | 3 | /* NetHack may be freely redistributed. See license for details. */ |
4 | 4 | |
5 | +/* JNetHack Copyright */ | |
6 | +/* For 3.6-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */ | |
7 | +/* JNetHack may be freely redistributed. See license for details. */ | |
8 | + | |
5 | 9 | #include "hack.h" |
6 | 10 | #include "lev.h" /* for checking save modes */ |
7 | 11 |
@@ -355,8 +355,13 @@ struct obj *pick; | ||
355 | 355 | You("%sをつかむことができない!手がないんだもの!", xname(pick)); |
356 | 356 | return PICKLOCK_DID_NOTHING; |
357 | 357 | } else if (u.uswallow) { |
358 | +#if 0 /*JP*/ | |
358 | 359 | You_cant("%sunlock %s.", (picktyp == CREDIT_CARD) ? "" : "lock or ", |
359 | 360 | mon_nam(u.ustuck)); |
361 | +#else | |
362 | + You_cant("%sを%sない.", mon_nam(u.ustuck), | |
363 | + (picktyp == CREDIT_CARD) ? "開けられ" : "開け閉めでき"); | |
364 | +#endif | |
360 | 365 | return PICKLOCK_DID_NOTHING; |
361 | 366 | } |
362 | 367 |
@@ -626,7 +631,10 @@ doforce() | ||
626 | 631 | char qbuf[QBUFSZ]; |
627 | 632 | |
628 | 633 | if (u.uswallow) { |
634 | +/*JP | |
629 | 635 | You_cant("force anything from inside here."); |
636 | +*/ | |
637 | + You_cant("内側からこじ開けることはできない."); | |
630 | 638 | return 0; |
631 | 639 | } |
632 | 640 | if (!uwep /* proper type test */ |
@@ -474,12 +474,30 @@ struct obj *otmp; | ||
474 | 474 | #ifdef AMIGA |
475 | 475 | "Only Amiga makes it possible.", "CATS have all the answers.", |
476 | 476 | #endif |
477 | +/*JP | |
477 | 478 | "This mail complies with the Yendorian Anti-Spam Act (YASA)", |
479 | +*/ | |
480 | + "このメールはイェンダースパム対策法(YASA)に準拠しています.", | |
481 | +/*JP | |
478 | 482 | "Please find enclosed a small token to represent your Owlbear", |
483 | +*/ | |
484 | + "あなたのアウルベアを表現するために同封した小さいトークンを探してください", | |
485 | +/*JP | |
479 | 486 | "**FR33 P0T10N 0F FULL H34L1NG**", |
487 | +*/ | |
488 | + "**完全回復の薬プレゼント**", | |
489 | +/*JP | |
480 | 490 | "Please return to sender (Asmodeus)", |
491 | +*/ | |
492 | + "送信者(アスモデウス)に送り返してください", | |
493 | +/*JP | |
481 | 494 | "Buy a potion of gain level for only $19.99! Guaranteed to be blessed!", |
495 | +*/ | |
496 | + "レベルアップの薬がたったの1980円!祝福保証!", | |
497 | +/*JP | |
482 | 498 | "Invitation: Visit the NetHack web site at http://www.nethack.org!" |
499 | +*/ | |
500 | + "招待状: NetHack ウェブサイト http://www.nethack.org に来てね!" | |
483 | 501 | }; |
484 | 502 | |
485 | 503 | /* XXX replace with more general substitution code and add local |
@@ -2,6 +2,11 @@ | ||
2 | 2 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
3 | 3 | /* NetHack may be freely redistributed. See license for details. */ |
4 | 4 | |
5 | +/* JNetHack Copyright */ | |
6 | +/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000 */ | |
7 | +/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */ | |
8 | +/* JNetHack may be freely redistributed. See license for details. */ | |
9 | + | |
5 | 10 | #include "hack.h" |
6 | 11 | |
7 | 12 | #include <ctype.h> |
@@ -2118,7 +2123,10 @@ int *seencount; /* secondary output */ | ||
2118 | 2123 | impossible("bad bag o' tricks"); |
2119 | 2124 | } else if (bag->spe < 1) { |
2120 | 2125 | /* if tipping known empty bag, give normal empty container message */ |
2126 | +/*JP | |
2121 | 2127 | pline1((tipping && bag->cknown) ? "It's empty." : nothing_happens); |
2128 | +*/ | |
2129 | + pline1((tipping && bag->cknown) ? "それは空だ." : nothing_happens); | |
2122 | 2130 | /* now known to be empty if sufficiently discovered */ |
2123 | 2131 | if (bag->dknown && objects[bag->otyp].oc_name_known) |
2124 | 2132 | bag->cknown = 1; |
@@ -2144,7 +2152,10 @@ int *seencount; /* secondary output */ | ||
2144 | 2152 | if (bag->dknown) |
2145 | 2153 | makeknown(BAG_OF_TRICKS); |
2146 | 2154 | } else if (!tipping) { |
2155 | +/*JP | |
2147 | 2156 | pline1(!moncount ? nothing_happens : "Nothing seems to happen."); |
2157 | +*/ | |
2158 | + pline1(!moncount ? nothing_happens : "何も起きなかったようだ."); | |
2148 | 2159 | } |
2149 | 2160 | } |
2150 | 2161 | return moncount; |
@@ -759,20 +759,34 @@ int spellnum; | ||
759 | 759 | fmt = 0; |
760 | 760 | if (!seecaster) { |
761 | 761 | char *arg; /* [not const: upstart(N==1 ? an() : makeplural())] */ |
762 | +/*JP | |
762 | 763 | const char *what = (let == S_SNAKE) ? "snake" : "insect"; |
764 | +*/ | |
765 | + const char *what = (let == S_SNAKE) ? "ヘビ" : "虫"; | |
763 | 766 | |
764 | 767 | if (newseen <= oldseen || Unaware) { |
765 | 768 | /* unseen caster fails or summons unseen critters, |
766 | 769 | or unconscious hero ("You dream that you hear...") */ |
770 | +/*JP | |
767 | 771 | You_hear("someone summoning %s.", makeplural(what)); |
772 | +*/ | |
773 | + You_hear("誰かが%sを召喚しているのを聞いた.", what); | |
768 | 774 | } else { |
769 | 775 | /* unseen caster summoned seen critter(s) */ |
770 | 776 | arg = (newseen == oldseen + 1) ? an(what) : makeplural(what); |
771 | 777 | if (!Deaf) |
778 | +#if 0 /*JP*/ | |
772 | 779 | You_hear("someone summoning something, and %s %s.", arg, |
773 | 780 | vtense(arg, "appear")); |
781 | +#else | |
782 | + You_hear("誰かが何かを召喚するのを聞いた,そして%sが現れた.", | |
783 | + arg); | |
784 | +#endif | |
774 | 785 | else |
786 | +/*JP | |
775 | 787 | pline("%s %s.", upstart(arg), vtense(arg, "appear")); |
788 | +*/ | |
789 | + pline("%sが現れた.", arg); | |
776 | 790 | } |
777 | 791 | |
778 | 792 | /* seen caster, possibly producing unseen--or just one--critters; |
@@ -119,7 +119,7 @@ struct attack *mattk; | ||
119 | 119 | fmt = (could_seduce(magr, mdef, mattk) && !magr->mcan) |
120 | 120 | ? "%s pretends to be friendly to" |
121 | 121 | : "%s misses"; |
122 | -#else | |
122 | +#else /*JP:英語と変数展開のタイミングが異なるので注意*/ | |
123 | 123 | fmt = (could_seduce(magr,mdef,mattk) && !magr->mcan) |
124 | 124 | ? "%sは%%sに友好的なふりをした." |
125 | 125 | : "%sの%%sへの攻撃は外れた."; |
@@ -276,12 +276,18 @@ boolean quietly; | ||
276 | 276 | return MM_HIT; /* no damage during the polymorph */ |
277 | 277 | } |
278 | 278 | if (!quietly && canspotmon(magr)) |
279 | +/*JP | |
279 | 280 | pline("%s turns to stone!", Monnam(magr)); |
281 | +*/ | |
282 | + pline("%sは石になった!", Monnam(magr)); | |
280 | 283 | monstone(magr); |
281 | 284 | if (magr->mhp > 0) |
282 | 285 | return MM_HIT; /* lifesaved */ |
283 | 286 | else if (magr->mtame && !vis) |
287 | +/*JP | |
284 | 288 | You(brief_feeling, "peculiarly sad"); |
289 | +*/ | |
290 | + You(brief_feeling, "もの悲しい"); | |
285 | 291 | return MM_AGR_DIED; |
286 | 292 | } |
287 | 293 | } |
@@ -291,8 +297,12 @@ boolean quietly; | ||
291 | 297 | place_monster(magr, tx, ty); /* put down at target spot */ |
292 | 298 | place_monster(mdef, fx, fy); |
293 | 299 | if (vis && !quietly) |
300 | +#if 0 /*JP*/ | |
294 | 301 | pline("%s moves %s out of %s way!", Monnam(magr), mon_nam(mdef), |
295 | 302 | is_rider(pa) ? "the" : mhis(magr)); |
303 | +#else | |
304 | + pline("%sは%sを押しのけた!", Monnam(magr), mon_nam(mdef)); | |
305 | +#endif | |
296 | 306 | newsym(fx, fy); /* see it */ |
297 | 307 | newsym(tx, ty); /* all happen */ |
298 | 308 | flush_screen(0); /* make sure it shows up */ |
@@ -626,7 +636,7 @@ struct attack *mattk; | ||
626 | 636 | Sprintf(buf, "%s gazes at", Monnam(magr)); |
627 | 637 | pline("%s %s...", buf, mon_nam(mdef)); |
628 | 638 | #else |
629 | - Sprintf(buf,"%sは%%sをにらみつけた...", Monnam(magr)); | |
639 | + Sprintf(buf, "%sは%%sをにらみつけた...", Monnam(magr)); | |
630 | 640 | pline(buf, mon_nam(mdef)); |
631 | 641 | #endif |
632 | 642 | } |
@@ -737,7 +747,7 @@ register struct attack *mattk; | ||
737 | 747 | Sprintf(buf, "%s swallows", Monnam(magr)); |
738 | 748 | pline("%s %s.", buf, mon_nam(mdef)); |
739 | 749 | #else |
740 | - Sprintf(buf,"%sは%%sをぐっと飲みこんだ.", Monnam(magr)); | |
750 | + Sprintf(buf, "%sは%%sをぐっと飲みこんだ.", Monnam(magr)); | |
741 | 751 | pline(buf, mon_nam(mdef)); |
742 | 752 | #endif |
743 | 753 | } |
@@ -1100,13 +1110,14 @@ register struct attack *mattk; | ||
1100 | 1110 | Monnam(mdef)); |
1101 | 1111 | tmp = 0; |
1102 | 1112 | } else if (vis) { |
1103 | -#if 0 /*JP*/ | |
1113 | +/*JP | |
1104 | 1114 | pline("%s is covered in acid!", Monnam(mdef)); |
1105 | - pline("It burns %s!", mon_nam(mdef)); | |
1106 | -#else | |
1115 | +*/ | |
1107 | 1116 | pline("%sは酸につつまれた!", Monnam(mdef)); |
1117 | +/*JP | |
1118 | + pline("It burns %s!", mon_nam(mdef)); | |
1119 | +*/ | |
1108 | 1120 | pline("%sは焼かれた!", mon_nam(mdef)); |
1109 | -#endif | |
1110 | 1121 | } |
1111 | 1122 | if (!rn2(30)) |
1112 | 1123 | erode_armor(mdef, ERODE_CORRODE); |
@@ -1888,7 +1899,10 @@ boolean givemsg; | ||
1888 | 1899 | || attacktype(mon->data, AT_BREA))) { |
1889 | 1900 | mon->mspec_used += d(2, 2); |
1890 | 1901 | if (givemsg) |
1902 | +/*JP | |
1891 | 1903 | pline("%s seems lethargic.", Monnam(mon)); |
1904 | +*/ | |
1905 | + pline("%sは無気力になったようだ.", Monnam(mon)); | |
1892 | 1906 | } |
1893 | 1907 | } |
1894 | 1908 |
@@ -503,7 +503,10 @@ register struct monst *mtmp; | ||
503 | 503 | so mtmp's next move will be a regular attack */ |
504 | 504 | place_monster(mtmp, mtmp->mx, mtmp->my); /* put back */ |
505 | 505 | newsym(u.ux, u.uy); /* u.uundetected was toggled */ |
506 | +/*JP | |
506 | 507 | pline("%s draws back as you drop!", Monnam(mtmp)); |
508 | +*/ | |
509 | + pline("あなたが落ちることで%sは引き戻された!", Monnam(mtmp)); | |
507 | 510 | return 0; |
508 | 511 | } |
509 | 512 |
@@ -717,7 +720,10 @@ register struct monst *mtmp; | ||
717 | 720 | int numseen, numhelp; |
718 | 721 | char buf[BUFSZ], genericwere[BUFSZ]; |
719 | 722 | |
723 | +/*JP | |
720 | 724 | Strcpy(genericwere, "creature"); |
725 | +*/ | |
726 | + Strcpy(genericwere, "何か"); | |
721 | 727 | numhelp = were_summon(mdat, FALSE, &numseen, genericwere); |
722 | 728 | if (youseeit) { |
723 | 729 | /*JP |
@@ -765,10 +771,7 @@ register struct monst *mtmp; | ||
765 | 771 | pline("%s%s!", upstart(buf), from_nowhere); |
766 | 772 | #else |
767 | 773 | pline("%sが%s現れた!", |
768 | - strcmp(genericwere, "creature") | |
769 | - ? genericwere | |
770 | - : "何か", | |
771 | - from_nowhere); | |
774 | + genericwere, from_nowhere); | |
772 | 775 | #endif |
773 | 776 | } |
774 | 777 | } /* else no help came; but you didn't know it tried */ |
@@ -631,9 +631,15 @@ register struct obj *otmp; | ||
631 | 631 | |
632 | 632 | /* alteration types; must match COST_xxx macros in hack.h */ |
633 | 633 | static const char *const alteration_verbs[] = { |
634 | +#if 0 /*JP*/ | |
634 | 635 | "cancel", "drain", "uncharge", "unbless", "uncurse", "disenchant", |
635 | 636 | "degrade", "dilute", "erase", "burn", "neutralize", "destroy", "splatter", |
636 | 637 | "bite", "open", "break the lock on", "rust", "rot", "tarnish" |
638 | +#else | |
639 | + "無効化した", "劣化させた", "放出させた", "祝福を解いた", "呪いを解いた", "魔力を減らした", | |
640 | + "劣化させた", "薄めた", "消した", "燃やした", "無毒化した", "壊した", "使った", | |
641 | + "食べた", "開けた", "鍵を壊した", "錆びさせた", "腐らせた", "傷つけた" | |
642 | +#endif | |
637 | 643 | }; |
638 | 644 | |
639 | 645 | /* possibly bill for an object which the player has just modified */ |
@@ -645,7 +651,9 @@ int alter_type; | ||
645 | 651 | xchar ox, oy; |
646 | 652 | char objroom; |
647 | 653 | boolean set_bknown; |
654 | +#if 0 /*JP*//*使わない*/ | |
648 | 655 | const char *those, *them; |
656 | +#endif | |
649 | 657 | struct monst *shkp = 0; |
650 | 658 | |
651 | 659 | if (alter_type < 0 || alter_type >= SIZE(alteration_verbs)) { |
@@ -676,10 +684,12 @@ int alter_type; | ||
676 | 684 | return; |
677 | 685 | } |
678 | 686 | |
687 | +#if 0 /*JP*//*日本語では不要*/ | |
679 | 688 | if (obj->quan == 1L) |
680 | 689 | those = "that", them = "it"; |
681 | 690 | else |
682 | 691 | those = "those", them = "them"; |
692 | +#endif | |
683 | 693 | |
684 | 694 | /* when shopkeeper describes the object as being uncursed or unblessed |
685 | 695 | hero will know that it is now uncursed; will also make the feedback |
@@ -691,17 +701,27 @@ int alter_type; | ||
691 | 701 | case OBJ_INVENT: |
692 | 702 | if (set_bknown) |
693 | 703 | obj->bknown = 1; |
704 | +#if 0 /*JP*/ | |
694 | 705 | verbalize("You %s %s %s, you pay for %s!", |
695 | 706 | alteration_verbs[alter_type], those, simpleonames(obj), |
696 | 707 | them); |
708 | +#else | |
709 | + verbalize("%sを%sのなら,買ってもらうよ!", | |
710 | + simpleonames(obj), alteration_verbs[alter_type]); | |
711 | +#endif | |
697 | 712 | bill_dummy_object(obj); |
698 | 713 | break; |
699 | 714 | case OBJ_FLOOR: |
700 | 715 | if (set_bknown) |
701 | 716 | obj->bknown = 1; |
702 | 717 | if (costly_spot(u.ux, u.uy) && objroom == *u.ushops) { |
718 | +#if 0 /*JP*/ | |
703 | 719 | verbalize("You %s %s, you pay for %s!", |
704 | 720 | alteration_verbs[alter_type], those, them); |
721 | +#else | |
722 | + verbalize("%sのなら,買ってもらうよ!", | |
723 | + alteration_verbs[alter_type]); | |
724 | +#endif | |
705 | 725 | bill_dummy_object(obj); |
706 | 726 | } else { |
707 | 727 | (void) stolen_value(obj, ox, oy, FALSE, FALSE); |
@@ -2096,15 +2116,24 @@ boolean tipping; /* caller emptying entire contents; affects shop handling */ | ||
2096 | 2116 | do { |
2097 | 2117 | obj->otyp = rnd_class(POT_BOOZE, POT_WATER); |
2098 | 2118 | } while (obj->otyp == POT_SICKNESS); |
2119 | +/*JP | |
2099 | 2120 | what = (obj->quan > 1L) ? "Some potions" : "A potion"; |
2121 | +*/ | |
2122 | + what = "薬"; | |
2100 | 2123 | } else { |
2101 | 2124 | obj = mkobj(FOOD_CLASS, FALSE); |
2102 | 2125 | if (obj->otyp == FOOD_RATION && !rn2(7)) |
2103 | 2126 | obj->otyp = LUMP_OF_ROYAL_JELLY; |
2127 | +/*JP | |
2104 | 2128 | what = "Some food"; |
2129 | +*/ | |
2130 | + what = "食べ物"; | |
2105 | 2131 | } |
2106 | 2132 | ++objcount; |
2133 | +/*JP | |
2107 | 2134 | pline("%s %s out.", what, vtense(what, "spill")); |
2135 | +*/ | |
2136 | + pline("%sが飛び出てきた.", what); | |
2108 | 2137 | obj->blessed = horn->blessed; |
2109 | 2138 | obj->cursed = horn->cursed; |
2110 | 2139 | obj->owt = weight(obj); |
@@ -2116,6 +2145,7 @@ boolean tipping; /* caller emptying entire contents; affects shop handling */ | ||
2116 | 2145 | being included in its formatted name during next message */ |
2117 | 2146 | iflags.suppress_price++; |
2118 | 2147 | if (!tipping) { |
2148 | +#if 0 /*JP*/ | |
2119 | 2149 | obj = hold_another_object( |
2120 | 2150 | obj, u.uswallow ? "Oops! %s out of your reach!" |
2121 | 2151 | : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) |
@@ -2124,6 +2154,16 @@ boolean tipping; /* caller emptying entire contents; affects shop handling */ | ||
2124 | 2154 | ? "Oops! %s away from you!" |
2125 | 2155 | : "Oops! %s to the floor!", |
2126 | 2156 | The(aobjnam(obj, "slip")), (const char *) 0); |
2157 | +#else | |
2158 | + obj = hold_another_object( | |
2159 | + obj, u.uswallow ? "おっと!%sは届かない!" | |
2160 | + : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) | |
2161 | + || levl[u.ux][u.uy].typ < IRONBARS | |
2162 | + || levl[u.ux][u.uy].typ >= ICE) | |
2163 | + ? "おっと!%sはあなたの手から滑り落ちた!" | |
2164 | + : "おっと!%sは床に滑り落ちた!", | |
2165 | + xname(obj), (const char *)0); | |
2166 | +#endif | |
2127 | 2167 | } else { |
2128 | 2168 | /* assumes this is taking place at hero's location */ |
2129 | 2169 | if (!can_reach_floor(TRUE)) { |
@@ -2132,8 +2172,13 @@ boolean tipping; /* caller emptying entire contents; affects shop handling */ | ||
2132 | 2172 | if (IS_ALTAR(levl[u.ux][u.uy].typ)) |
2133 | 2173 | doaltarobj(obj); /* does its own drop message */ |
2134 | 2174 | else |
2175 | +#if 0 /*JP*/ | |
2135 | 2176 | pline("%s %s to the %s.", Doname2(obj), |
2136 | 2177 | otense(obj, "drop"), surface(u.ux, u.uy)); |
2178 | +#else | |
2179 | + pline("%sは%sに落ちた.", Doname2(obj), | |
2180 | + surface(u.ux, u.uy)); | |
2181 | +#endif | |
2137 | 2182 | dropy(obj); |
2138 | 2183 | } |
2139 | 2184 | } |
@@ -1779,11 +1779,11 @@ struct monst *mtmp; | ||
1779 | 1779 | /*JP |
1780 | 1780 | pline("But wait..."); |
1781 | 1781 | */ |
1782 | - pline("しかし..."); | |
1782 | + pline("ちょっとまった..."); | |
1783 | 1783 | /*JP |
1784 | 1784 | pline("%s medallion begins to glow!", s_suffix(Monnam(mtmp))); |
1785 | 1785 | */ |
1786 | - pline("%sのメダリオンが輝きはじめた!", Monnam(mtmp)); | |
1786 | + pline("%sの魔除けが輝きはじめた!", Monnam(mtmp)); | |
1787 | 1787 | makeknown(AMULET_OF_LIFE_SAVING); |
1788 | 1788 | /* amulet is visible, but monster might not be */ |
1789 | 1789 | if (canseemon(mtmp)) { |
@@ -1802,7 +1802,7 @@ struct monst *mtmp; | ||
1802 | 1802 | /*JP |
1803 | 1803 | pline_The("medallion crumbles to dust!"); |
1804 | 1804 | */ |
1805 | - pline_The("メダリオンはこなごなにくだけてしまった!"); | |
1805 | + pline("魔除けはこなごなにくだけた!"); | |
1806 | 1806 | } |
1807 | 1807 | m_useup(mtmp, lifesave); |
1808 | 1808 |
@@ -1854,6 +1854,7 @@ register struct monst *mtmp; | ||
1854 | 1854 | || amorphous(mtmp->data)); |
1855 | 1855 | |
1856 | 1856 | /* construct a format string before transformation */ |
1857 | +#if 0 /*JP*/ | |
1857 | 1858 | Sprintf(buf, "The %s%s suddenly %s and rises as %%s!", |
1858 | 1859 | spec_mon ? "" : "seemingly dead ", |
1859 | 1860 | x_monnam(mtmp, ARTICLE_NONE, (char *) 0, |
@@ -1861,6 +1862,15 @@ register struct monst *mtmp; | ||
1861 | 1862 | | SUPPRESS_INVISIBLE | SUPPRESS_IT, |
1862 | 1863 | FALSE), |
1863 | 1864 | spec_mon ? "reconstitutes" : "transforms"); |
1865 | +#else | |
1866 | + Sprintf(buf, "%s%sは突然%s,%%sとして蘇った!", | |
1867 | + spec_mon ? "" : "死んだように思われた", | |
1868 | + x_monnam(mtmp, ARTICLE_NONE, (char *) 0, | |
1869 | + SUPPRESS_SADDLE | SUPPRESS_HALLUCINATION | |
1870 | + | SUPPRESS_INVISIBLE | SUPPRESS_IT, | |
1871 | + FALSE), | |
1872 | + spec_mon ? "再構成され" : "変化し"); | |
1873 | +#endif | |
1864 | 1874 | mtmp->mcanmove = 1; |
1865 | 1875 | mtmp->mfrozen = 0; |
1866 | 1876 | if (mtmp->mhpmax <= 0) |
@@ -2373,7 +2383,11 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't | ||
2373 | 2383 | /* oc_big is also oc_bimanual and oc_bulky */ |
2374 | 2384 | && (otmp->owt > 30 || objects[otyp].oc_big)) { |
2375 | 2385 | delobj(otmp); |
2386 | +#if 0 /*JP*/ | |
2376 | 2387 | } else if (!flooreffects(otmp, x, y, (dest & 1) ? "fall" : "")) { |
2388 | +#else | |
2389 | + } else if (!flooreffects(otmp, x, y, (dest & 1) ? "落ちる" : "")) { | |
2390 | +#endif | |
2377 | 2391 | place_object(otmp, x, y); |
2378 | 2392 | stackobj(otmp); |
2379 | 2393 | } |
@@ -2384,7 +2398,10 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't | ||
2384 | 2398 | : CORPSTAT_NONE); |
2385 | 2399 | if (burycorpse && cadaver && cansee(x, y) && !mtmp->minvis |
2386 | 2400 | && cadaver->where == OBJ_BURIED && (dest & 1)) { |
2401 | +/*JP | |
2387 | 2402 | pline("%s corpse ends up buried.", s_suffix(Monnam(mtmp))); |
2403 | +*/ | |
2404 | + pline("%sの死体は埋まってしまった.", s_suffix(Monnam(mtmp))); | |
2388 | 2405 | } |
2389 | 2406 | } |
2390 | 2407 | } |
@@ -2525,8 +2542,12 @@ struct monst *mtmp; | ||
2525 | 2542 | if (!in_mklev && (mtmp->mstrategy & STRAT_APPEARMSG)) { |
2526 | 2543 | mtmp->mstrategy &= ~STRAT_APPEARMSG; /* one chance only */ |
2527 | 2544 | if (!couldspot && canspotmon(mtmp)) |
2545 | +#if 0 /*JP*/ | |
2528 | 2546 | pline("%s suddenly %s!", Amonnam(mtmp), |
2529 | 2547 | !Blind ? "appears" : "arrives"); |
2548 | +#else | |
2549 | + pline("突然%sが現れた!", Amonnam(mtmp)); | |
2550 | +#endif | |
2530 | 2551 | } |
2531 | 2552 | return; |
2532 | 2553 | } |
@@ -3790,14 +3811,20 @@ struct permonst *mdat; | ||
3790 | 3811 | switch (mndx) { |
3791 | 3812 | case PM_ROTHE: |
3792 | 3813 | case PM_MINOTAUR: |
3814 | +/*JP | |
3793 | 3815 | You("notice a bovine smell."); |
3816 | +*/ | |
3817 | + You("牛のようなにおいに気付いた."); | |
3794 | 3818 | msg_given = TRUE; |
3795 | 3819 | break; |
3796 | 3820 | case PM_CAVEMAN: |
3797 | 3821 | case PM_CAVEWOMAN: |
3798 | 3822 | case PM_BARBARIAN: |
3799 | 3823 | case PM_NEANDERTHAL: |
3824 | +/*JP | |
3800 | 3825 | You("smell body odor."); |
3826 | +*/ | |
3827 | + pline("体臭のようなにおいがした."); | |
3801 | 3828 | msg_given = TRUE; |
3802 | 3829 | break; |
3803 | 3830 | /* |
@@ -3820,7 +3847,10 @@ struct permonst *mdat; | ||
3820 | 3847 | case PM_WERERAT: |
3821 | 3848 | case PM_WEREWOLF: |
3822 | 3849 | case PM_OWLBEAR: |
3850 | +/*JP | |
3823 | 3851 | You("detect an odor reminiscent of an animal's den."); |
3852 | +*/ | |
3853 | + pline("動物のねぐらを思い出すようなにおいがした."); | |
3824 | 3854 | msg_given = TRUE; |
3825 | 3855 | break; |
3826 | 3856 | /* |
@@ -3828,16 +3858,25 @@ struct permonst *mdat; | ||
3828 | 3858 | break; |
3829 | 3859 | */ |
3830 | 3860 | case PM_STEAM_VORTEX: |
3861 | +/*JP | |
3831 | 3862 | You("smell steam."); |
3863 | +*/ | |
3864 | + pline("蒸気のにおいがした."); | |
3832 | 3865 | msg_given = TRUE; |
3833 | 3866 | break; |
3834 | 3867 | case PM_GREEN_SLIME: |
3868 | +/*JP | |
3835 | 3869 | pline("%s stinks.", Something); |
3870 | +*/ | |
3871 | + pline("悪臭がした."); | |
3836 | 3872 | msg_given = TRUE; |
3837 | 3873 | break; |
3838 | 3874 | case PM_VIOLET_FUNGUS: |
3839 | 3875 | case PM_SHRIEKER: |
3876 | +/*JP | |
3840 | 3877 | You("smell mushrooms."); |
3878 | +*/ | |
3879 | + pline("きのこのにおいがした."); | |
3841 | 3880 | msg_given = TRUE; |
3842 | 3881 | break; |
3843 | 3882 | /* These are here to avoid triggering the |
@@ -3855,35 +3894,61 @@ struct permonst *mdat; | ||
3855 | 3894 | if (nonspecific) |
3856 | 3895 | switch (mdat->mlet) { |
3857 | 3896 | case S_DOG: |
3897 | +/*JP | |
3858 | 3898 | You("notice a dog smell."); |
3899 | +*/ | |
3900 | + You("犬のにおいに気付いた."); | |
3859 | 3901 | msg_given = TRUE; |
3860 | 3902 | break; |
3861 | 3903 | case S_DRAGON: |
3904 | +/*JP | |
3862 | 3905 | You("smell a dragon!"); |
3906 | +*/ | |
3907 | + pline("ドラゴンのにおいがする!"); | |
3863 | 3908 | msg_given = TRUE; |
3864 | 3909 | break; |
3865 | 3910 | case S_FUNGUS: |
3911 | +/*JP | |
3866 | 3912 | pline("%s smells moldy.", Something); |
3913 | +*/ | |
3914 | + pline("何か苔のようなにおいがする."); | |
3867 | 3915 | msg_given = TRUE; |
3868 | 3916 | break; |
3869 | 3917 | case S_UNICORN: |
3918 | +#if 0 /*JP*/ | |
3870 | 3919 | You("detect a%s odor reminiscent of a stable.", |
3871 | 3920 | (mndx == PM_PONY) ? "n" : " strong"); |
3921 | +#else | |
3922 | + pline("馬小屋を思い出すような%sにおいがした.", | |
3923 | + (mndx == PM_PONY) ? "" : "強い"); | |
3924 | +#endif | |
3872 | 3925 | msg_given = TRUE; |
3873 | 3926 | break; |
3874 | 3927 | case S_ZOMBIE: |
3928 | +/*JP | |
3875 | 3929 | You("smell rotting flesh."); |
3930 | +*/ | |
3931 | + pline("腐った肉のにおいがした."); | |
3876 | 3932 | msg_given = TRUE; |
3877 | 3933 | break; |
3878 | 3934 | case S_EEL: |
3935 | +/*JP | |
3879 | 3936 | You("smell fish."); |
3937 | +*/ | |
3938 | + pline("魚のにおいがした."); | |
3880 | 3939 | msg_given = TRUE; |
3881 | 3940 | break; |
3882 | 3941 | case S_ORC: |
3883 | 3942 | if (maybe_polyd(is_orc(youmonst.data), Race_if(PM_ORC))) |
3943 | +/*JP | |
3884 | 3944 | You("notice an attractive smell."); |
3945 | +*/ | |
3946 | + You("魅力的なにおいに気付いた."); | |
3885 | 3947 | else |
3948 | +/*JP | |
3886 | 3949 | pline("A foul stench makes you feel a little nauseated."); |
3950 | +*/ | |
3951 | + pline("むかつくような悪臭で少し気分が悪くなった."); | |
3887 | 3952 | msg_given = TRUE; |
3888 | 3953 | break; |
3889 | 3954 | default: |
@@ -252,9 +252,15 @@ struct obj *obj; /* aatyp == AT_WEAP, AT_SPIT */ | ||
252 | 252 | if (check_visor) { |
253 | 253 | o = (mdef == &youmonst) ? invent : mdef->minvent; |
254 | 254 | for (; o; o = o->nobj) |
255 | +#if 0 /*JP*/ | |
255 | 256 | if ((o->owornmask & W_ARMH) |
256 | 257 | && (s = OBJ_DESCR(objects[o->otyp])) != (char *) 0 |
257 | 258 | && !strcmp(s, "visored helmet")) |
259 | +#else | |
260 | + if ((o->owornmask & W_ARMH) | |
261 | + && (s = OBJ_DESCR(objects[o->otyp])) != (char *) 0 | |
262 | + && !strcmp(s, "面頬付きの兜")) | |
263 | +#endif | |
258 | 264 | return FALSE; |
259 | 265 | } |
260 | 266 |
@@ -85,7 +85,10 @@ struct obj *obj; | ||
85 | 85 | struct monst *mtmp; |
86 | 86 | |
87 | 87 | potion_descr = OBJ_DESCR(objects[obj->otyp]); |
88 | +/*JP | |
88 | 89 | if (potion_descr && !strcmp(potion_descr, "milky")) { |
90 | +*/ | |
91 | + if (potion_descr && !strcmp(potion_descr, "ミルク色の")) { | |
89 | 92 | if (!(mvitals[PM_GHOST].mvflags & G_GONE) |
90 | 93 | && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_GHOST].born))) { |
91 | 94 | if (!enexto(&cc, mon->mx, mon->my, &mons[PM_GHOST])) |
@@ -125,7 +128,7 @@ struct obj *obj; | ||
125 | 128 | /*JP |
126 | 129 | if (potion_descr && !strcmp(potion_descr, "smoky") |
127 | 130 | */ |
128 | - if (potion_descr && !strcmp(potion_descr, "煙の出ている薬") | |
131 | + if (potion_descr && !strcmp(potion_descr, "煙の出ている") | |
129 | 132 | && !(mvitals[PM_DJINNI].mvflags & G_GONE) |
130 | 133 | && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_DJINNI].born))) { |
131 | 134 | if (!enexto(&cc, mon->mx, mon->my, &mons[PM_DJINNI])) |
@@ -483,19 +483,35 @@ int force; | ||
483 | 483 | ((Fumbling && !rn2(5)) |
484 | 484 | || (!rnl(Role_if(PM_ARCHEOLOGIST) ? 3 : 9)) |
485 | 485 | || ((ACURR(A_DEX) > 7) && rn2(5))); |
486 | +/*JP | |
486 | 487 | You("are jostled around violently!"); |
488 | +*/ | |
489 | + You("乱暴に押しのけられた!"); | |
487 | 490 | u.utrap = rn1(6, 2); |
488 | 491 | u.utraptype = TT_PIT; /* superfluous */ |
492 | +#if 0 /*JP*/ | |
489 | 493 | losehp(Maybe_Half_Phys(rnd(keepfooting ? 2 : 4)), |
490 | 494 | "hurt in a chasm", NO_KILLER_PREFIX); |
495 | +#else | |
496 | + losehp(Maybe_Half_Phys(rnd(keepfooting ? 2 : 4)), | |
497 | + "地割れで傷ついて", NO_KILLER_PREFIX); | |
498 | +#endif | |
491 | 499 | if (keepfooting) |
492 | 500 | exercise(A_DEX, TRUE); |
493 | 501 | else |
502 | +#if 0 /*JP*/ | |
494 | 503 | selftouch( |
495 | 504 | (Upolyd && (slithy(youmonst.data) |
496 | 505 | || nolimbs(youmonst.data))) |
497 | 506 | ? "Shaken, you" |
498 | 507 | : "Falling down, you"); |
508 | +#else | |
509 | + selftouch( | |
510 | + (Upolyd && (slithy(youmonst.data) | |
511 | + || nolimbs(youmonst.data))) | |
512 | + ? "揺さぶられて,あなたは" | |
513 | + : "落ちながら,あなたは"); | |
514 | +#endif | |
499 | 515 | } |
500 | 516 | } else |
501 | 517 | newsym(x, y); |
@@ -712,7 +728,10 @@ struct obj *instr; | ||
712 | 728 | || instr->otyp == TOOLED_HORN || instr->otyp == FROST_HORN |
713 | 729 | || instr->otyp == FIRE_HORN || instr->otyp == BUGLE) |
714 | 730 | && !can_blow(&youmonst)) { |
731 | +/*JP | |
715 | 732 | You("are incapable of playing %s.", the(distant_name(instr, xname))); |
733 | +*/ | |
734 | + You("%sを演奏する能力がない.", the(distant_name(instr, xname))); | |
716 | 735 | return 0; |
717 | 736 | } |
718 | 737 | if (instr->otyp != LEATHER_DRUM && instr->otyp != DRUM_OF_EARTHQUAKE) { |
@@ -493,11 +493,15 @@ oclass_to_name(oclass, buf) | ||
493 | 493 | char oclass; |
494 | 494 | char *buf; |
495 | 495 | { |
496 | +#if 0 /*JP*//*使わない*/ | |
496 | 497 | char *s; |
498 | +#endif | |
497 | 499 | |
498 | 500 | Strcpy(buf, let_to_name(oclass, FALSE, FALSE)); |
501 | +#if 0 /*JP*//*小文字化しない*/ | |
499 | 502 | for (s = buf; *s; ++s) |
500 | 503 | *s = lowc(*s); |
504 | +#endif | |
501 | 505 | return buf; |
502 | 506 | } |
503 | 507 |
@@ -506,10 +510,22 @@ int | ||
506 | 510 | doclassdisco() |
507 | 511 | { |
508 | 512 | static NEARDATA const char |
513 | +/*JP | |
509 | 514 | prompt[] = "View discoveries for which sort of objects?", |
515 | +*/ | |
516 | + prompt[] = "どの種類の発見物を見ますか?", | |
517 | +/*JP | |
510 | 518 | havent_discovered_any[] = "haven't discovered any %s yet.", |
519 | +*/ | |
520 | + havent_discovered_any[] = "まだ何も%sを発見していない.", | |
521 | +/*JP | |
511 | 522 | unique_items[] = "unique items", |
523 | +*/ | |
524 | + unique_items[] = "特殊アイテム", | |
525 | +/*JP | |
512 | 526 | artifact_items[] = "artifacts"; |
527 | +*/ | |
528 | + artifact_items[] = "聖器"; | |
513 | 529 | char *s, c, oclass, menulet, allclasses[MAXOCLASSES], |
514 | 530 | discosyms[2 + MAXOCLASSES + 1], buf[BUFSZ]; |
515 | 531 | int i, ct, dis, xtras; |
@@ -573,7 +589,10 @@ doclassdisco() | ||
573 | 589 | |
574 | 590 | /* there might not be anything for us to do... */ |
575 | 591 | if (!discosyms[0]) { |
592 | +/*JP | |
576 | 593 | You(havent_discovered_any, "items"); |
594 | +*/ | |
595 | + You(havent_discovered_any, "アイテム"); | |
577 | 596 | if (tmpwin != WIN_ERR) |
578 | 597 | destroy_nhwindow(tmpwin); |
579 | 598 | return 0; |
@@ -645,7 +664,10 @@ doclassdisco() | ||
645 | 664 | break; |
646 | 665 | default: |
647 | 666 | oclass = def_char_to_objclass(c); |
667 | +/*JP | |
648 | 668 | Sprintf(buf, "Discovered %s", let_to_name(oclass, FALSE, FALSE)); |
669 | +*/ | |
670 | + Sprintf(buf, "発見した%s", let_to_name(oclass, FALSE, FALSE)); | |
649 | 671 | putstr(tmpwin, iflags.menu_headings, buf); |
650 | 672 | for (i = bases[(int) oclass]; |
651 | 673 | i < NUM_OBJECTS && objects[i].oc_class == oclass; ++i) { |
@@ -716,11 +738,20 @@ rename_disco() | ||
716 | 738 | } |
717 | 739 | } |
718 | 740 | if (ct == 0) { |
741 | +/*JP | |
719 | 742 | You("haven't discovered anything yet..."); |
743 | +*/ | |
744 | + You("まだ何も発見していない..."); | |
720 | 745 | } else if (mn == 0) { |
746 | +/*JP | |
721 | 747 | pline("None of your discoveries can be assigned names..."); |
748 | +*/ | |
749 | + pline("名前の付けられる発見物はない..."); | |
722 | 750 | } else { |
751 | +/*JP | |
723 | 752 | end_menu(tmpwin, "Pick an object type to name"); |
753 | +*/ | |
754 | + end_menu(tmpwin, "名前を付けるオブジェクトの種類を選んでください"); | |
724 | 755 | dis = STRANGE_OBJECT; |
725 | 756 | sl = select_menu(tmpwin, PICK_ONE, &selected); |
726 | 757 | if (sl > 0) { |
@@ -56,6 +56,7 @@ struct Jitem { | ||
56 | 56 | && typ != SAPPHIRE && typ != BLACK_OPAL && typ != EMERALD \ |
57 | 57 | && typ != OPAL))) |
58 | 58 | |
59 | +#if 0 /*JP*/ | |
59 | 60 | STATIC_OVL struct Jitem Japanese_items[] = { { SHORT_SWORD, "wakizashi" }, |
60 | 61 | { BROADSWORD, "ninja-to" }, |
61 | 62 | { FLAIL, "nunchaku" }, |
@@ -69,6 +70,21 @@ STATIC_OVL struct Jitem Japanese_items[] = { { SHORT_SWORD, "wakizashi" }, | ||
69 | 70 | { FOOD_RATION, "gunyoki" }, |
70 | 71 | { POT_BOOZE, "sake" }, |
71 | 72 | { 0, "" } }; |
73 | +#else | |
74 | +STATIC_OVL struct Jitem Japanese_items[] = { { SHORT_SWORD, "脇差し" }, | |
75 | + { BROADSWORD, "忍者刀" }, | |
76 | + { FLAIL, "ヌンチャク" }, | |
77 | + { GLAIVE, "なぎなた" }, | |
78 | + { LOCK_PICK, "おさく" }, | |
79 | + { WOODEN_HARP, "琴" }, | |
80 | + { KNIFE, "刺刀" }, | |
81 | + { PLATE_MAIL, "短甲" }, | |
82 | + { HELMET, "兜" }, | |
83 | + { LEATHER_GLOVES, "弓懸" }, | |
84 | + { FOOD_RATION, "丸薬" }, | |
85 | + { POT_BOOZE, "酒" }, | |
86 | + { 0, "" } }; | |
87 | +#endif | |
72 | 88 | |
73 | 89 | STATIC_DCL const char *FDECL(Japanese_item_name, (int i)); |
74 | 90 |
@@ -834,7 +850,10 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ | ||
834 | 850 | if (obj->otyp == T_SHIRT && program_state.gameover) { |
835 | 851 | char tmpbuf[BUFSZ]; |
836 | 852 | |
853 | +/*JP | |
837 | 854 | Sprintf(eos(buf), " with text \"%s\"", tshirt_text(obj, tmpbuf)); |
855 | +*/ | |
856 | + Sprintf(eos(buf), "(「%s」と書いてある)", tshirt_text(obj, tmpbuf)); | |
838 | 857 | } |
839 | 858 | |
840 | 859 | #if 0 /*JP*/ |
@@ -894,8 +913,13 @@ struct obj *obj; | ||
894 | 913 | bareobj.spe = obj->spe; |
895 | 914 | |
896 | 915 | bufp = distant_name(&bareobj, xname); /* xname(&bareobj) */ |
916 | +#if 0 /*JP*/ | |
897 | 917 | if (!strncmp(bufp, "uncursed ", 9)) |
898 | 918 | bufp += 9; /* Role_if(PM_PRIEST) */ |
919 | +#else | |
920 | + if (!strncmp(bufp, "呪われていない", 14)) | |
921 | + bufp += 14; /* Role_if(PM_PRIEST) */ | |
922 | +#endif | |
899 | 923 | |
900 | 924 | objects[otyp].oc_uname = saveobcls.oc_uname; |
901 | 925 | objects[otyp].oc_name_known = saveobcls.oc_name_known; |
@@ -2914,6 +2938,8 @@ STATIC_OVL NEARDATA const struct o_range o_ranges[] = { | ||
2914 | 2938 | { "grey stone", GEM_CLASS, LUCKSTONE, FLINT }, |
2915 | 2939 | }; |
2916 | 2940 | |
2941 | + | |
2942 | +#if 0 /*JP*//*not used*/ | |
2917 | 2943 | /* alternate spellings; if the difference is only the presence or |
2918 | 2944 | absence of spaces and/or hyphens (such as "pickaxe" vs "pick axe" |
2919 | 2945 | vs "pick-axe") then there is no need for inclusion in this list; |
@@ -2957,6 +2983,7 @@ struct alt_spellings { | ||
2957 | 2983 | { "flintstone", FLINT }, |
2958 | 2984 | { (const char *) 0, 0 }, |
2959 | 2985 | }; |
2986 | +#endif | |
2960 | 2987 | |
2961 | 2988 | short |
2962 | 2989 | rnd_otyp_by_wpnskill(skill) |
@@ -3274,6 +3301,7 @@ struct obj *no_wish; | ||
3274 | 3301 | contents = SPINACH; |
3275 | 3302 | } |
3276 | 3303 | |
3304 | +#if 0 /*JP*//*日本語では処理しない*/ | |
3277 | 3305 | /* |
3278 | 3306 | Skip over "pair of ", "pairs of", "set of" and "sets of". |
3279 | 3307 |
@@ -3298,7 +3326,9 @@ struct obj *no_wish; | ||
3298 | 3326 | } else if (!strncmpi(bp, "sets of ", 8)) { |
3299 | 3327 | bp += 8; |
3300 | 3328 | } |
3329 | +#endif | |
3301 | 3330 | |
3331 | +#if 0 /*JP*//*日本語では処理しない*/ | |
3302 | 3332 | /* intercept pudding globs here; they're a valid wish target, |
3303 | 3333 | * but we need them to not get treated like a corpse. |
3304 | 3334 | * |
@@ -3330,6 +3360,7 @@ struct obj *no_wish; | ||
3330 | 3360 | *p = 0; |
3331 | 3361 | } |
3332 | 3362 | } |
3363 | +#endif | |
3333 | 3364 | /* Find corpse type w/o "of" (red dragon scale mail, yeti corpse) */ |
3334 | 3365 | if (strncmpi(bp, "samurai sword", 13)) /* not the "samurai" monster! */ |
3335 | 3366 | if (strncmpi(bp, "wizard lock", 11)) /* not the "wizard" monster! */ |
@@ -3361,6 +3392,7 @@ struct obj *no_wish; | ||
3361 | 3392 | } |
3362 | 3393 | } |
3363 | 3394 | |
3395 | +#if 0 /*JP*//*単数化はしない*/ | |
3364 | 3396 | /* first change to singular if necessary */ |
3365 | 3397 | if (*bp) { |
3366 | 3398 | char *sng = makesingular(bp); |
@@ -3370,7 +3402,9 @@ struct obj *no_wish; | ||
3370 | 3402 | Strcpy(bp, sng); |
3371 | 3403 | } |
3372 | 3404 | } |
3405 | +#endif | |
3373 | 3406 | |
3407 | +#if 0 /*JP*//*スペル揺れ処理はしない*/ | |
3374 | 3408 | /* Alternate spellings (pick-ax, silver sabre, &c) */ |
3375 | 3409 | { |
3376 | 3410 | struct alt_spellings *as = spellings; |
@@ -3393,6 +3427,7 @@ struct obj *no_wish; | ||
3393 | 3427 | ++p; /* self terminating */ |
3394 | 3428 | } |
3395 | 3429 | } |
3430 | +#endif | |
3396 | 3431 | |
3397 | 3432 | /* dragon scales - assumes order of dragons */ |
3398 | 3433 | if (!strcmpi(bp, "scales") && mntmp >= PM_GRAY_DRAGON |
@@ -3403,6 +3438,7 @@ struct obj *no_wish; | ||
3403 | 3438 | } |
3404 | 3439 | |
3405 | 3440 | p = eos(bp); |
3441 | +#if 0 /*JP*/ | |
3406 | 3442 | if (!BSTRCMPI(bp, p - 10, "holy water")) { |
3407 | 3443 | typ = POT_WATER; |
3408 | 3444 | if ((p - bp) >= 12 && *(p - 12) == 'u') |
@@ -3411,11 +3447,31 @@ struct obj *no_wish; | ||
3411 | 3447 | blessed = 1; |
3412 | 3448 | goto typfnd; |
3413 | 3449 | } |
3450 | +#else /*JP:聖水と不浄な水を別に判定*/ | |
3451 | + if (!BSTRCMPI(bp, p - 4, "聖水")) { | |
3452 | + typ = POT_WATER; | |
3453 | + blessed = 1; | |
3454 | + goto typfnd; | |
3455 | + } | |
3456 | + if (!BSTRCMPI(bp, p - 4, "不浄な水")) { | |
3457 | + typ = POT_WATER; | |
3458 | + iscursed = 1; | |
3459 | + goto typfnd; | |
3460 | + } | |
3461 | +#endif | |
3462 | +#if 0 /*JP*/ | |
3414 | 3463 | if (unlabeled && !BSTRCMPI(bp, p - 6, "scroll")) { |
3464 | +#else | |
3465 | + if (unlabeled && !BSTRCMPI(bp, p - 4, "巻物")) { | |
3466 | +#endif | |
3415 | 3467 | typ = SCR_BLANK_PAPER; |
3416 | 3468 | goto typfnd; |
3417 | 3469 | } |
3470 | +#if 0 /*JP*/ | |
3418 | 3471 | if (unlabeled && !BSTRCMPI(bp, p - 9, "spellbook")) { |
3472 | +#else | |
3473 | + if (unlabeled && !BSTRCMPI(bp, p - 6, "魔法書")) { | |
3474 | +#endif | |
3419 | 3475 | typ = SPE_BLANK_PAPER; |
3420 | 3476 | goto typfnd; |
3421 | 3477 | } |
@@ -3425,9 +3481,14 @@ struct obj *no_wish; | ||
3425 | 3481 | * gold/money concept. Maybe we want to add other monetary units as |
3426 | 3482 | * well in the future. (TH) |
3427 | 3483 | */ |
3484 | +#if 0 /*JP*/ | |
3428 | 3485 | if (!BSTRCMPI(bp, p - 10, "gold piece") || !BSTRCMPI(bp, p - 7, "zorkmid") |
3429 | 3486 | || !strcmpi(bp, "gold") || !strcmpi(bp, "money") |
3430 | 3487 | || !strcmpi(bp, "coin") || *bp == GOLD_SYM) { |
3488 | +#else | |
3489 | + if (!BSTRCMPI(bp, p - 4, "金貨") || !BSTRCMPI(bp, p - 8, "ゴールド") | |
3490 | + || *bp == GOLD_SYM) { | |
3491 | +#endif | |
3431 | 3492 | if (cnt > 5000 && !wizard) |
3432 | 3493 | cnt = 5000; |
3433 | 3494 | else if (cnt < 1) |
@@ -3622,7 +3683,11 @@ srch: | ||
3622 | 3683 | Strcat(bp, " mail"); |
3623 | 3684 | goto retry; |
3624 | 3685 | } |
3686 | +#if 0 /*JP*/ | |
3625 | 3687 | if (!strcmpi(bp, "spinach")) { |
3688 | +#else | |
3689 | + if (!strcmp(bp, "ホウレン草")) { | |
3690 | +#endif | |
3626 | 3691 | contents = SPINACH; |
3627 | 3692 | typ = TIN; |
3628 | 3693 | goto typfnd; |
@@ -2,6 +2,11 @@ | ||
2 | 2 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
3 | 3 | /* NetHack may be freely redistributed. See license for details. */ |
4 | 4 | |
5 | +/* JNetHack Copyright */ | |
6 | +/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000 */ | |
7 | +/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */ | |
8 | +/* JNetHack may be freely redistributed. See license for details. */ | |
9 | + | |
5 | 10 | #ifdef OPTION_LISTS_ONLY /* (AMIGA) external program for opt lists */ |
6 | 11 | #include "config.h" |
7 | 12 | #include "objclass.h" |
@@ -478,8 +483,13 @@ static struct Comp_Opt { | ||
478 | 483 | { "hicolor", "パレットが同じとき、指示したものだけ反転させる", 15, SET_IN_FILE }, |
479 | 484 | #endif |
480 | 485 | #endif |
486 | +#if 0 /*JP*/ | |
481 | 487 | { "paranoid_confirmation", "extra prompting in certain situations", 28, |
482 | 488 | SET_IN_GAME }, |
489 | +#else | |
490 | + { "paranoid_confirmation", "一部の状況で追加の確認をする", 28, | |
491 | + SET_IN_GAME }, | |
492 | +#endif | |
483 | 493 | /*JP |
484 | 494 | { "pettype", "your preferred initial pet type", 4, DISP_IN_GAME }, |
485 | 495 | */ |
@@ -494,10 +504,20 @@ static struct Comp_Opt { | ||
494 | 504 | */ |
495 | 505 | { "pickup_types", "自動で拾いあげる物のシンボル", |
496 | 506 | MAXOCLASSES, SET_IN_GAME }, |
507 | +#if 0 /*JP*/ | |
497 | 508 | { "pile_limit", "threshold for \"there are many objects here\"", 24, |
498 | 509 | SET_IN_GAME }, |
510 | +#else | |
511 | + { "pile_limit", "「ここにはたくさんのものがある」のしきい値", 24, | |
512 | + SET_IN_GAME }, | |
513 | +#endif | |
514 | +#if 0 /*JP*/ | |
499 | 515 | { "playmode", "normal play, non-scoring explore mode, or debug mode", 8, |
500 | 516 | DISP_IN_GAME }, |
517 | +#else | |
518 | + { "playmode", "通常モード,探検モード,デバッグモードのいずれか", 8, | |
519 | + DISP_IN_GAME }, | |
520 | +#endif | |
501 | 521 | /*JP |
502 | 522 | { "player_selection", "choose character via dialog or prompts", 12, |
503 | 523 | */ |
@@ -533,7 +553,10 @@ static struct Comp_Opt { | ||
533 | 553 | */ |
534 | 554 | { "scroll_margin", "マップ端からのマップスクロール開始距離", 20, |
535 | 555 | DISP_IN_GAME }, /*WC*/ |
556 | +/*JP | |
536 | 557 | { "sortloot", "sort object selection lists by description", 4, |
558 | +*/ | |
559 | + { "sortloot", "物体選択リストを説明でソートする", 4, | |
537 | 560 | SET_IN_GAME }, |
538 | 561 | #ifdef MSDOS |
539 | 562 | /*JP |
@@ -541,11 +564,22 @@ static struct Comp_Opt { | ||
541 | 564 | */ |
542 | 565 | { "soundcard", "使用しているサウンドカードの種類", 20, SET_IN_FILE }, |
543 | 566 | #endif |
567 | +#if 0 /*JP*/ | |
544 | 568 | { "symset", "load a set of display symbols from the symbols file", 70, |
545 | 569 | SET_IN_GAME }, |
570 | +#else | |
571 | + { "symset", "symbolsファイルから表示シンボルの設定を読み込む", 70, | |
572 | + SET_IN_GAME }, | |
573 | +#endif | |
574 | +#if 0 /*JP*/ | |
546 | 575 | { "roguesymset", |
547 | 576 | "load a set of rogue display symbols from the symbols file", 70, |
548 | 577 | SET_IN_GAME }, |
578 | +#else | |
579 | + { "roguesymset", | |
580 | + "symbolsファイルからローグレベルの表示シンボルの設定を読み込む", 70, | |
581 | + SET_IN_GAME }, | |
582 | +#endif | |
549 | 583 | /*JP |
550 | 584 | { "suppress_alert", "suppress alerts about version-specific features", 8, |
551 | 585 | */ |
@@ -611,13 +645,25 @@ static struct Comp_Opt { | ||
611 | 645 | */ |
612 | 646 | { "windowtype", "使用するウインドウシステム", WINTYPELEN, DISP_IN_GAME }, |
613 | 647 | #ifdef WINCHAIN |
648 | +/*JP | |
614 | 649 | { "windowchain", "window processor to use", WINTYPELEN, SET_IN_SYS }, |
650 | +*/ | |
651 | + { "windowchain", "使用するウィンドウプロセッサ", WINTYPELEN, SET_IN_SYS }, | |
615 | 652 | #endif |
616 | 653 | #ifdef BACKWARD_COMPAT |
654 | +/*JP | |
617 | 655 | { "DECgraphics", "load DECGraphics display symbols", 70, SET_IN_FILE }, |
656 | +*/ | |
657 | + { "DECgraphics", "DECGraphics表示シンボルを読み込む", 70, SET_IN_FILE }, | |
658 | +/*JP | |
618 | 659 | { "IBMgraphics", "load IBMGraphics display symbols", 70, SET_IN_FILE }, |
660 | +*/ | |
661 | + { "IBMgraphics", "IBMGraphics表示シンボルを読み込む", 70, SET_IN_FILE }, | |
619 | 662 | #ifdef MAC_GRAPHICS_ENV |
663 | +/*JP | |
620 | 664 | { "Macgraphics", "load MACGraphics display symbols", 70, SET_IN_FILE }, |
665 | +*/ | |
666 | + { "Macgraphics", "MACGraphics表示シンボルを読み込む", 70, SET_IN_FILE }, | |
621 | 667 | #endif |
622 | 668 | #endif |
623 | 669 | #if 1 /*JP*/ |
@@ -2,6 +2,11 @@ | ||
2 | 2 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
3 | 3 | /* NetHack may be freely redistributed. See license for details. */ |
4 | 4 | |
5 | +/* JNetHack Copyright */ | |
6 | +/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000 */ | |
7 | +/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */ | |
8 | +/* JNetHack may be freely redistributed. See license for details. */ | |
9 | + | |
5 | 10 | /* This file contains the command routines dowhatis() and dohelp() and */ |
6 | 11 | /* a few other help related facilities */ |
7 | 12 |
@@ -367,6 +372,7 @@ char *buf, *monbuf; | ||
367 | 372 | how |= 4; |
368 | 373 | |
369 | 374 | if (how) |
375 | +#if 0 /*JP*/ | |
370 | 376 | Sprintf( |
371 | 377 | eos(buf), " [seen: %s%s%s%s%s]", |
372 | 378 | (how & 1) ? "infravision" : "", |
@@ -375,6 +381,16 @@ char *buf, *monbuf; | ||
375 | 381 | /* add comma if detect and (infrav or telep or both) */ |
376 | 382 | ((how & 7) > 4) ? ", " : "", |
377 | 383 | (how & 4) ? "monster detection" : ""); |
384 | +#else | |
385 | + Sprintf( | |
386 | + eos(buf), " [感知: %s%s%s%s%s]", | |
387 | + (how & 1) ? "赤外線" : "", | |
388 | + /* add comma if telep and infrav */ | |
389 | + ((how & 3) > 2) ? ", " : "", (how & 2) ? "テレパシー" : "", | |
390 | + /* add comma if detect and (infrav or telep or both) */ | |
391 | + ((how & 7) > 4) ? ", " : "", | |
392 | + (how & 4) ? "怪物感知" : ""); | |
393 | +#endif | |
378 | 394 | } |
379 | 395 | } else if (u.uswallow) { |
380 | 396 | /* all locations when swallowed other than the hero are the monster */ |
@@ -971,15 +987,24 @@ coord *click_cc; | ||
971 | 987 | versions: "Specify unknown object by cursor?" */ |
972 | 988 | add_menu(win, NO_GLYPH, &any, |
973 | 989 | flags.lootabc ? 0 : any.a_char, 'y', ATR_NONE, |
990 | +/*JP | |
974 | 991 | "something on the map", MENU_UNSELECTED); |
992 | +*/ | |
993 | + "地図上にあるもの", MENU_UNSELECTED); | |
975 | 994 | any.a_char = 'i'; |
976 | 995 | add_menu(win, NO_GLYPH, &any, |
977 | 996 | flags.lootabc ? 0 : any.a_char, 0, ATR_NONE, |
997 | +/*JP | |
978 | 998 | "something you're carrying", MENU_UNSELECTED); |
999 | +*/ | |
1000 | + "あなたが持っているもの", MENU_UNSELECTED); | |
979 | 1001 | any.a_char = '?'; |
980 | 1002 | add_menu(win, NO_GLYPH, &any, |
981 | 1003 | flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE, |
1004 | +/*JP | |
982 | 1005 | "something else (by symbol or name)", MENU_UNSELECTED); |
1006 | +*/ | |
1007 | + "それ以外(シンボルか名前で指定)", MENU_UNSELECTED); | |
983 | 1008 | if (!u.uswallow && !Hallucination) { |
984 | 1009 | any = zeroany; |
985 | 1010 | add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, |
@@ -992,21 +1017,36 @@ coord *click_cc; | ||
992 | 1017 | any.a_char = 'm'; |
993 | 1018 | add_menu(win, NO_GLYPH, &any, |
994 | 1019 | flags.lootabc ? 0 : any.a_char, 0, ATR_NONE, |
1020 | +/*JP | |
995 | 1021 | "nearby monsters", MENU_UNSELECTED); |
1022 | +*/ | |
1023 | + "近くにいる怪物", MENU_UNSELECTED); | |
996 | 1024 | any.a_char = 'M'; |
997 | 1025 | add_menu(win, NO_GLYPH, &any, |
998 | 1026 | flags.lootabc ? 0 : any.a_char, 0, ATR_NONE, |
1027 | +/*JP | |
999 | 1028 | "all monsters shown on map", MENU_UNSELECTED); |
1029 | +*/ | |
1030 | + "地図上にいる全ての怪物", MENU_UNSELECTED); | |
1000 | 1031 | any.a_char = 'o'; |
1001 | 1032 | add_menu(win, NO_GLYPH, &any, |
1002 | 1033 | flags.lootabc ? 0 : any.a_char, 0, ATR_NONE, |
1034 | +/*JP | |
1003 | 1035 | "nearby objects", MENU_UNSELECTED); |
1036 | +*/ | |
1037 | + "近くにあるもの", MENU_UNSELECTED); | |
1004 | 1038 | any.a_char = 'O'; |
1005 | 1039 | add_menu(win, NO_GLYPH, &any, |
1006 | 1040 | flags.lootabc ? 0 : any.a_char, 0, ATR_NONE, |
1041 | +/*JP | |
1007 | 1042 | "all objects shown on map", MENU_UNSELECTED); |
1043 | +*/ | |
1044 | + "地図上にある全てのもの", MENU_UNSELECTED); | |
1008 | 1045 | } |
1046 | +/*JP | |
1009 | 1047 | end_menu(win, "What do you want to look at:"); |
1048 | +*/ | |
1049 | + end_menu(win, "何を見る?"); | |
1010 | 1050 | if (select_menu(win, PICK_ONE, &pick_list) > 0) { |
1011 | 1051 | i = pick_list->item.a_char; |
1012 | 1052 | free((genericptr_t) pick_list); |
@@ -1226,9 +1266,15 @@ boolean do_mons; /* True => monsters, False => objects */ | ||
1226 | 1266 | if (count) |
1227 | 1267 | display_nhwindow(win, TRUE); |
1228 | 1268 | else |
1269 | +#if 0 /*JP*/ | |
1229 | 1270 | pline("No %s are currently shown %s.", |
1230 | 1271 | do_mons ? "monsters" : "objects", |
1231 | 1272 | nearby ? "nearby" : "on the map"); |
1273 | +#else | |
1274 | + pline("今のところ%sに%s.", | |
1275 | + nearby ? "近く" : "地図上", | |
1276 | + do_mons ? "怪物はいない" : "ものはない"); | |
1277 | +#endif | |
1232 | 1278 | destroy_nhwindow(win); |
1233 | 1279 | } |
1234 | 1280 |
@@ -75,15 +75,15 @@ static NEARDATA struct obj *current_container; | ||
75 | 75 | /*JP |
76 | 76 | static const char moderateloadmsg[] = "You have a little trouble lifting"; |
77 | 77 | */ |
78 | -static const char moderateloadmsg[] = "を持ったら少しふらついた."; | |
78 | +static const char moderateloadmsg[] = "を持ったら少しふらついた"; | |
79 | 79 | /*JP |
80 | 80 | static const char nearloadmsg[] = "You have much trouble lifting"; |
81 | 81 | */ |
82 | -static const char nearloadmsg[] = "はずっしりと肩にのしかかった."; | |
82 | +static const char nearloadmsg[] = "はずっしりと肩にのしかかった"; | |
83 | 83 | /*JP |
84 | 84 | static const char overloadmsg[] = "You have extreme difficulty lifting"; |
85 | 85 | */ |
86 | -static const char overloadmsg[] = "を持ちあげるのはとてもつらい."; | |
86 | +static const char overloadmsg[] = "を持ちあげるのはとてもつらい"; | |
87 | 87 | |
88 | 88 | /* BUG: this lets you look at cockatrice corpses while blind without |
89 | 89 | touching them */ |
@@ -945,8 +945,13 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */ | ||
945 | 945 | |
946 | 946 | any = zeroany; |
947 | 947 | if (sorted && n > 1) { |
948 | +#if 0 /*JP*/ | |
948 | 949 | Sprintf(buf, "%s Creatures", |
949 | 950 | is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed"); |
951 | +#else | |
952 | + Sprintf(buf, "%s込まれている怪物", | |
953 | + is_animal(u.ustuck->data) ? "飲み" : "巻き"); | |
954 | +#endif | |
950 | 955 | add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf, |
951 | 956 | MENU_UNSELECTED); |
952 | 957 | } |
@@ -1183,7 +1188,7 @@ int how; /* type of query */ | ||
1183 | 1188 | /*JP |
1184 | 1189 | "Items of unknown B/C/U status", MENU_UNSELECTED); |
1185 | 1190 | */ |
1186 | - "祝福/呪いがわからないもの", MENU_UNSELECTED); | |
1191 | + "祝福/呪いがわからないもの", MENU_UNSELECTED); | |
1187 | 1192 | } |
1188 | 1193 | end_menu(win, qstr); |
1189 | 1194 | n = select_menu(win, how, pick_list); |
@@ -1360,7 +1365,7 @@ int *wt_before, *wt_after; | ||
1360 | 1365 | (qq == 1L) ? "one" : "some", obj_nambuf, where); |
1361 | 1366 | #else |
1362 | 1367 | You("%s%sのうちの%sしか%s.", |
1363 | - where, obj_nambuf, (qq == 1L) ? "1つ" : "いくつか", verb); | |
1368 | + where, obj_nambuf, (qq == 1L) ? "一つ" : "いくつか", verb); | |
1364 | 1369 | #endif |
1365 | 1370 | *wt_after = wt; |
1366 | 1371 | return qq; |
@@ -1465,19 +1470,41 @@ boolean telekinesis; | ||
1465 | 1470 | result = 0; /* don't lift */ |
1466 | 1471 | } else { |
1467 | 1472 | char qbuf[BUFSZ]; |
1473 | +#if 1 /*JP*/ | |
1474 | + char qsfx[BUFSZ]; | |
1475 | +#endif | |
1468 | 1476 | long savequan = obj->quan; |
1469 | 1477 | |
1470 | 1478 | obj->quan = *cnt_p; |
1479 | +#if 0 /*JP*/ | |
1471 | 1480 | Strcpy(qbuf, (next_encumbr > HVY_ENCUMBER) |
1472 | 1481 | ? overloadmsg |
1473 | 1482 | : (next_encumbr > MOD_ENCUMBER) |
1474 | 1483 | ? nearloadmsg |
1475 | 1484 | : moderateloadmsg); |
1485 | +#else | |
1486 | + /*JP:アイテム名の後ろに付けたいがsafe_qbufのqsuffixは | |
1487 | + qbufと共用できないので別にqsfxを用意してそちらを使う*/ | |
1488 | + Strcpy(qsfx, (next_encumbr > HVY_ENCUMBER) | |
1489 | + ? overloadmsg | |
1490 | + : (next_encumbr > MOD_ENCUMBER) | |
1491 | + ? nearloadmsg | |
1492 | + : moderateloadmsg); | |
1493 | + Strcat(qsfx, ".続けますか?"); | |
1494 | +#endif | |
1495 | + | |
1496 | +#if 0 /*JP*//*日本語ではどちらも「持つ」で済ませる*/ | |
1476 | 1497 | if (container) |
1477 | 1498 | (void) strsubst(qbuf, "lifting", "removing"); |
1499 | +#endif | |
1500 | +#if 0 /*JP*/ | |
1478 | 1501 | Strcat(qbuf, " "); |
1479 | 1502 | (void) safe_qbuf(qbuf, qbuf, ". Continue?", obj, doname, |
1480 | 1503 | ansimpleoname, something); |
1504 | +#else /*JP:前には何も付けず後ろにqsfxを付ける*/ | |
1505 | + (void) safe_qbuf(qbuf, "", qsfx, obj, doname, | |
1506 | + ansimpleoname, "これ"); | |
1507 | +#endif | |
1481 | 1508 | obj->quan = savequan; |
1482 | 1509 | switch (ynq(qbuf)) { |
1483 | 1510 | case 'q': |
@@ -1817,7 +1844,7 @@ doloot() | ||
1817 | 1844 | int timepassed = 0; |
1818 | 1845 | coord cc; |
1819 | 1846 | boolean underfoot = TRUE; |
1820 | -#if 0 /*JP*/ | |
1847 | +#if 0 /*JP*//*not used*/ | |
1821 | 1848 | const char *dont_find_anything = "don't find anything"; |
1822 | 1849 | #endif |
1823 | 1850 | struct monst *mtmp; |
@@ -1842,7 +1869,10 @@ doloot() | ||
1842 | 1869 | if (rn2(6) && reverse_loot()) |
1843 | 1870 | return 1; |
1844 | 1871 | if (rn2(2)) { |
1872 | +/*JP | |
1845 | 1873 | pline("Being confused, you find nothing to loot."); |
1874 | +*/ | |
1875 | + pline("混乱しているので,開けるものを見つけられない."); | |
1846 | 1876 | return 1; /* costs a turn */ |
1847 | 1877 | } /* else fallthrough to normal looting */ |
1848 | 1878 | } |
@@ -2029,7 +2059,10 @@ reverse_loot() | ||
2029 | 2059 | */ |
2030 | 2060 | for (n = inv_cnt(TRUE), otmp = invent; otmp; --n, otmp = otmp->nobj) |
2031 | 2061 | if (!rn2(n + 1)) { |
2062 | +/*JP | |
2032 | 2063 | prinv("You find old loot:", otmp, 0L); |
2064 | +*/ | |
2065 | + prinv("以前開けたもの:", otmp, 0L); | |
2033 | 2066 | return TRUE; |
2034 | 2067 | } |
2035 | 2068 | return FALSE; |
@@ -2094,7 +2127,10 @@ reverse_loot() | ||
2094 | 2127 | if (!rn2(10)) |
2095 | 2128 | levl[x][y].looted = T_LOOTED; |
2096 | 2129 | } else { |
2130 | +/*JP | |
2097 | 2131 | You("drop %s.", doname(goldob)); |
2132 | +*/ | |
2133 | + You("%sを落した.", doname(goldob)); | |
2098 | 2134 | dropx(goldob); |
2099 | 2135 | } |
2100 | 2136 | } |
@@ -2718,12 +2754,23 @@ int held; | ||
2718 | 2754 | for (;;) { /* repeats if '?' or ":' gets chosen */ |
2719 | 2755 | outmaybe = (outokay || !current_container->cknown); |
2720 | 2756 | if (!outmaybe) |
2757 | +#if 0 /*JP*/ | |
2721 | 2758 | (void) safe_qbuf(qbuf, (char *) 0, " is empty. Do what with it?", |
2722 | 2759 | current_container, Yname2, Ysimple_name2, |
2723 | 2760 | "This"); |
2761 | +#else | |
2762 | + (void) safe_qbuf(qbuf, (char *) 0, "は空だ.どうする?", | |
2763 | + current_container, Yname2, Ysimple_name2, | |
2764 | + "これ"); | |
2765 | +#endif | |
2724 | 2766 | else |
2767 | +#if 0 /*JP*/ | |
2725 | 2768 | (void) safe_qbuf(qbuf, "Do what with ", "?", current_container, |
2726 | 2769 | yname, ysimple_name, "it"); |
2770 | +#else | |
2771 | + (void) safe_qbuf(qbuf, (char *) 0, "をどうする?", current_container, | |
2772 | + yname, ysimple_name, "これ"); | |
2773 | +#endif | |
2727 | 2774 | /* ask player about what to do with this container */ |
2728 | 2775 | if (flags.menu_style == MENU_FULL) { |
2729 | 2776 | if (!inokay && !outmaybe) { |
@@ -2786,8 +2833,12 @@ int held; | ||
2786 | 2833 | |
2787 | 2834 | if ((loot_in || stash_one) |
2788 | 2835 | && (!invent || (invent == current_container && !invent->nobj))) { |
2836 | +#if 0 /*JP*/ | |
2789 | 2837 | You("don't have anything%s to %s.", invent ? " else" : "", |
2790 | 2838 | stash_one ? "stash" : "put in"); |
2839 | +#else | |
2840 | + You("%s入れるものがない.", invent ? "他に" : ""); | |
2841 | +#endif | |
2791 | 2842 | loot_in = stash_one = FALSE; |
2792 | 2843 | } |
2793 | 2844 |
@@ -2866,12 +2917,18 @@ boolean put_in; | ||
2866 | 2917 | int used = 0, menu_on_request = 0; |
2867 | 2918 | |
2868 | 2919 | if (put_in) { |
2920 | +/*JP | |
2869 | 2921 | action = "put in"; |
2922 | +*/ | |
2923 | + action = "入れる"; | |
2870 | 2924 | objlist = &invent; |
2871 | 2925 | actionfunc = in_container; |
2872 | 2926 | checkfunc = ck_bag; |
2873 | 2927 | } else { |
2928 | +/*JP | |
2874 | 2929 | action = "take out"; |
2930 | +*/ | |
2931 | + action = "取り出す"; | |
2875 | 2932 | objlist = &(current_container->cobj); |
2876 | 2933 | actionfunc = out_container; |
2877 | 2934 | checkfunc = (int FDECL((*), (OBJ_P))) 0; |
@@ -2897,7 +2954,10 @@ boolean put_in; | ||
2897 | 2954 | int n, i, n_looted = 0; |
2898 | 2955 | boolean all_categories = TRUE, loot_everything = FALSE; |
2899 | 2956 | char buf[BUFSZ]; |
2957 | +/*JP | |
2900 | 2958 | const char *action = put_in ? "Put in" : "Take out"; |
2959 | +*/ | |
2960 | + const char *action = put_in ? "入れる" : "取り出す"; | |
2901 | 2961 | struct obj *otmp, *otmp2; |
2902 | 2962 | menu_item *pick_list; |
2903 | 2963 | int mflags, res; |
@@ -2907,7 +2967,10 @@ boolean put_in; | ||
2907 | 2967 | all_categories = (retry == -2); |
2908 | 2968 | } else if (flags.menu_style == MENU_FULL) { |
2909 | 2969 | all_categories = FALSE; |
2970 | +/*JP | |
2910 | 2971 | Sprintf(buf, "%s what type of objects?", action); |
2972 | +*/ | |
2973 | + Sprintf(buf, "どの種類のものを%s?", action); | |
2911 | 2974 | mflags = put_in |
2912 | 2975 | ? ALL_TYPES | BUC_ALLBKNOWN | BUC_UNKNOWN |
2913 | 2976 | : ALL_TYPES | CHOOSE_ALL | BUC_ALLBKNOWN | BUC_UNKNOWN; |
@@ -2940,7 +3003,10 @@ boolean put_in; | ||
2940 | 3003 | mflags |= USE_INVLET; |
2941 | 3004 | if (!put_in) |
2942 | 3005 | current_container->cknown = 1; |
3006 | +/*JP | |
2943 | 3007 | Sprintf(buf, "%s what?", action); |
3008 | +*/ | |
3009 | + Sprintf(buf, "何を%s?", action); | |
2944 | 3010 | n = query_objlist(buf, put_in ? invent : current_container->cobj, |
2945 | 3011 | mflags, &pick_list, PICK_ANY, |
2946 | 3012 | all_categories ? allow_all : allow_category); |
@@ -2992,40 +3058,63 @@ boolean outokay, inokay, alreadyused; | ||
2992 | 3058 | start_menu(win); |
2993 | 3059 | |
2994 | 3060 | any.a_int = 1; /* ':' */ |
3061 | +/*JP | |
2995 | 3062 | Sprintf(buf, "Look inside %s", thesimpleoname(obj)); |
3063 | +*/ | |
3064 | + Sprintf(buf, "%sの中身を見る", thesimpleoname(obj)); | |
2996 | 3065 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf, |
2997 | 3066 | MENU_UNSELECTED); |
2998 | 3067 | if (outokay) { |
2999 | 3068 | any.a_int = 2; /* 'o' */ |
3069 | +/*JP | |
3000 | 3070 | Sprintf(buf, "take %s out", something); |
3071 | +*/ | |
3072 | + Strcpy(buf, "何かを取り出す"); | |
3001 | 3073 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, |
3002 | 3074 | buf, MENU_UNSELECTED); |
3003 | 3075 | } |
3004 | 3076 | if (inokay) { |
3005 | 3077 | any.a_int = 3; /* 'i' */ |
3078 | +/*JP | |
3006 | 3079 | Sprintf(buf, "put %s in", something); |
3080 | +*/ | |
3081 | + Strcpy(buf, "何かを入れる"); | |
3007 | 3082 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, |
3008 | 3083 | buf, MENU_UNSELECTED); |
3009 | 3084 | } |
3010 | 3085 | if (outokay) { |
3011 | 3086 | any.a_int = 4; /* 'b' */ |
3087 | +/*JP | |
3012 | 3088 | Sprintf(buf, "%stake out, then put in", inokay ? "both; " : ""); |
3089 | +*/ | |
3090 | + Sprintf(buf, "%sまず取り出す,それから入れる", inokay ? "両方; " : ""); | |
3013 | 3091 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, |
3014 | 3092 | buf, MENU_UNSELECTED); |
3015 | 3093 | } |
3016 | 3094 | if (inokay) { |
3017 | 3095 | any.a_int = 5; /* 'r' */ |
3096 | +#if 0 /*JP*/ | |
3018 | 3097 | Sprintf(buf, "%sput in, then take out", |
3019 | 3098 | outokay ? "both reversed; " : ""); |
3099 | +#else | |
3100 | + Sprintf(buf, "%sまず入れる,それから取り出す", | |
3101 | + outokay ? "両方を逆順で; " : ""); | |
3102 | +#endif | |
3020 | 3103 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, |
3021 | 3104 | buf, MENU_UNSELECTED); |
3022 | 3105 | any.a_int = 6; /* 's' */ |
3106 | +/*JP | |
3023 | 3107 | Sprintf(buf, "stash one item into %s", thesimpleoname(obj)); |
3108 | +*/ | |
3109 | + Sprintf(buf, "ものを一つだけ%sに入れる", thesimpleoname(obj)); | |
3024 | 3110 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, |
3025 | 3111 | buf, MENU_UNSELECTED); |
3026 | 3112 | } |
3027 | 3113 | any.a_int = 7; /* 'q' */ |
3114 | +/*JP | |
3028 | 3115 | Strcpy(buf, alreadyused ? "done" : "do nothing"); |
3116 | +*/ | |
3117 | + Strcpy(buf, alreadyused ? "終わる" : "何もしない"); | |
3029 | 3118 | add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf, |
3030 | 3119 | MENU_SELECTED); |
3031 | 3120 |
@@ -3062,8 +3151,12 @@ dotip() | ||
3062 | 3151 | |
3063 | 3152 | /* check floor container(s) first; at most one will be accessed */ |
3064 | 3153 | if ((boxes = container_at(cc.x, cc.y, TRUE)) > 0) { |
3154 | +#if 0 /*JP*/ | |
3065 | 3155 | Sprintf(buf, "You can't tip %s while carrying so much.", |
3066 | 3156 | !flags.verbose ? "a container" : (boxes > 1) ? "one" : "it"); |
3157 | +#else | |
3158 | + Strcpy(buf, "たくさんものを持ちすぎているのでひっくりかえせない."); | |
3159 | +#endif | |
3067 | 3160 | if (!check_capacity(buf) && able_to_loot(cc.x, cc.y, FALSE)) { |
3068 | 3161 | if (boxes > 1 && (flags.menu_style != MENU_TRADITIONAL |
3069 | 3162 | || iflags.menu_requested)) { |
@@ -3124,9 +3217,15 @@ dotip() | ||
3124 | 3217 | nobj = cobj->nexthere; |
3125 | 3218 | if (!Is_container(cobj)) |
3126 | 3219 | continue; |
3220 | +#if 0 /*JP*/ | |
3127 | 3221 | c = ynq(safe_qbuf(qbuf, "There is ", " here, tip it?", |
3128 | 3222 | cobj, |
3129 | 3223 | doname, ansimpleoname, "container")); |
3224 | +#else | |
3225 | + c = ynq(safe_qbuf(qbuf, "ここには", " がある,ひっくり返す?", | |
3226 | + cobj, | |
3227 | + doname, ansimpleoname, "入れ物")); | |
3228 | +#endif | |
3130 | 3229 | if (c == 'q') |
3131 | 3230 | return 0; |
3132 | 3231 | if (c == 'n') |
@@ -3152,30 +3251,57 @@ dotip() | ||
3152 | 3251 | /* assorted other cases */ |
3153 | 3252 | if (Is_candle(cobj) && cobj->lamplit) { |
3154 | 3253 | /* note "wax" even for tallow candles to avoid giving away info */ |
3254 | +/*JP | |
3155 | 3255 | spillage = "wax"; |
3256 | +*/ | |
3257 | + spillage = "ろう"; | |
3156 | 3258 | } else if ((cobj->otyp == POT_OIL && cobj->lamplit) |
3157 | 3259 | || (cobj->otyp == OIL_LAMP && cobj->age != 0L) |
3158 | 3260 | || (cobj->otyp == MAGIC_LAMP && cobj->spe != 0)) { |
3261 | +/*JP | |
3159 | 3262 | spillage = "oil"; |
3263 | +*/ | |
3264 | + spillage = "油"; | |
3160 | 3265 | /* todo: reduce potion's remaining burn timer or oil lamp's fuel */ |
3161 | 3266 | } else if (cobj->otyp == CAN_OF_GREASE && cobj->spe > 0) { |
3162 | 3267 | /* charged consumed below */ |
3268 | +/*JP | |
3163 | 3269 | spillage = "grease"; |
3270 | +*/ | |
3271 | + spillage = "脂"; | |
3164 | 3272 | } else if (cobj->otyp == FOOD_RATION || cobj->otyp == CRAM_RATION |
3165 | 3273 | || cobj->otyp == LEMBAS_WAFER) { |
3274 | +/*JP | |
3166 | 3275 | spillage = "crumbs"; |
3276 | +*/ | |
3277 | + spillage = "パンくず"; | |
3167 | 3278 | } else if (cobj->oclass == VENOM_CLASS) { |
3279 | +/*JP | |
3168 | 3280 | spillage = "venom"; |
3281 | +*/ | |
3282 | + spillage = "毒液"; | |
3169 | 3283 | } |
3170 | 3284 | if (spillage) { |
3171 | 3285 | buf[0] = '\0'; |
3172 | 3286 | if (is_pool(u.ux, u.uy)) |
3287 | +/*JP | |
3173 | 3288 | Sprintf(buf, " and gradually %s", vtense(spillage, "dissipate")); |
3289 | +*/ | |
3290 | + Strcpy(buf, "そして徐々に散っていった."); | |
3174 | 3291 | else if (is_lava(u.ux, u.uy)) |
3292 | +#if 0 /*JP*/ | |
3175 | 3293 | Sprintf(buf, " and immediately %s away", |
3176 | 3294 | vtense(spillage, "burn")); |
3295 | +#else | |
3296 | + Strcpy(buf, "そしてすぐに燃えつきた."); | |
3297 | +#endif | |
3298 | +#if 0 /*JP*/ | |
3177 | 3299 | pline("Some %s %s onto the %s%s.", spillage, |
3178 | 3300 | vtense(spillage, "spill"), surface(u.ux, u.uy), buf); |
3301 | +#else | |
3302 | + pline("%sが%sの上に飛び散った.%s", spillage, | |
3303 | + surface(u.ux, u.uy), buf); | |
3304 | +#endif | |
3179 | 3305 | /* shop usage message comes after the spill message */ |
3180 | 3306 | if (cobj->otyp == CAN_OF_GREASE && cobj->spe > 0) { |
3181 | 3307 | consume_obj_charge(cobj, TRUE); |
@@ -3185,7 +3311,10 @@ dotip() | ||
3185 | 3311 | } |
3186 | 3312 | /* anything not covered yet */ |
3187 | 3313 | if (cobj->oclass == POTION_CLASS) /* can't pour potions... */ |
3314 | +/*JP | |
3188 | 3315 | pline_The("%s %s securely sealed.", xname(cobj), otense(cobj, "are")); |
3316 | +*/ | |
3317 | + pline_The("%sはしっかりと栓がされている.", xname(cobj)); | |
3189 | 3318 | else if (cobj->otyp == STATUE) |
3190 | 3319 | /*JP |
3191 | 3320 | pline("Nothing interesting happens."); |
@@ -3221,7 +3350,10 @@ struct obj *box; /* or bag */ | ||
3221 | 3350 | non-standard "container" horn of plenty */ |
3222 | 3351 | box->lknown = 1; |
3223 | 3352 | if (box->olocked) { |
3353 | +/*JP | |
3224 | 3354 | pline("It's locked."); |
3355 | +*/ | |
3356 | + pline("鍵が掛かっている."); | |
3225 | 3357 | } else if (box->otrapped) { |
3226 | 3358 | /* we're not reaching inside but we're still handling it... */ |
3227 | 3359 | (void) chest_trap(box, HAND, FALSE); |
@@ -3247,9 +3379,15 @@ struct obj *box; /* or bag */ | ||
3247 | 3379 | |
3248 | 3380 | if (box->spe < old_spe) { |
3249 | 3381 | if (bag) |
3382 | +#if 0 /*JP*/ | |
3250 | 3383 | pline((seen == 0) ? "Nothing seems to happen." |
3251 | 3384 | : (seen == 1) ? "A monster appears." |
3252 | 3385 | : "Monsters appear!"); |
3386 | +#else | |
3387 | + pline((seen == 0) ? "何も起きなかったようだ." | |
3388 | + : (seen == 1) ? "怪物が現れた." | |
3389 | + : "怪物が現れた!"); | |
3390 | +#endif | |
3253 | 3391 | /* check_unpaid wants to see a non-zero charge count */ |
3254 | 3392 | box->spe = old_spe; |
3255 | 3393 | check_unpaid_usage(box, TRUE); |
@@ -3264,13 +3402,19 @@ struct obj *box; /* or bag */ | ||
3264 | 3402 | observe_quantum_cat(box); |
3265 | 3403 | if (!Has_contents(box)) /* evidently a live cat came out */ |
3266 | 3404 | /* container type of "large box" is inferred */ |
3405 | +/*JP | |
3267 | 3406 | pline("%sbox is now empty.", Shk_Your(yourbuf, box)); |
3407 | +*/ | |
3408 | + pline("%s箱は空になった.", Shk_Your(yourbuf, box)); | |
3268 | 3409 | else /* holds cat corpse or other random stuff */ |
3269 | 3410 | empty_it = TRUE; |
3270 | 3411 | box->cknown = 1; |
3271 | 3412 | } else if (!Has_contents(box)) { |
3272 | 3413 | box->cknown = 1; |
3414 | +/*JP | |
3273 | 3415 | pline("It's empty."); |
3416 | +*/ | |
3417 | + pline("これは空だ."); | |
3274 | 3418 | } else { |
3275 | 3419 | empty_it = TRUE; |
3276 | 3420 | } |
@@ -3286,9 +3430,14 @@ struct obj *box; /* or bag */ | ||
3286 | 3430 | if (u.uswallow) |
3287 | 3431 | highdrop = altarizing = FALSE; |
3288 | 3432 | box->cknown = 1; |
3433 | +#if 0 /*JP*/ | |
3289 | 3434 | pline("%s out%c", |
3290 | 3435 | box->cobj->nobj ? "Objects spill" : "An object spills", |
3291 | 3436 | !(highdrop || altarizing) ? ':' : '.'); |
3437 | +#else | |
3438 | + pline("中身が出てきた%s", | |
3439 | + !(highdrop || altarizing) ? ":" : "."); | |
3440 | +#endif | |
3292 | 3441 | for (otmp = box->cobj; otmp; otmp = nobj) { |
3293 | 3442 | nobj = otmp->nobj; |
3294 | 3443 | obj_extract_self(otmp); |
@@ -3311,17 +3460,28 @@ struct obj *box; /* or bag */ | ||
3311 | 3460 | if (altarizing) |
3312 | 3461 | doaltarobj(otmp); |
3313 | 3462 | else if (verbose) |
3463 | +#if 0 /*JP*/ | |
3314 | 3464 | pline("%s %s to the %s.", Doname2(otmp), |
3315 | 3465 | otense(otmp, "drop"), surface(ox, oy)); |
3466 | +#else | |
3467 | + pline("%sは%sの上に落ちた.", Doname2(otmp), | |
3468 | + surface(ox, oy)); | |
3469 | +#endif | |
3316 | 3470 | else |
3471 | +/*JP | |
3317 | 3472 | pline("%s%c", doname(otmp), nobj ? ',' : '.'); |
3473 | +*/ | |
3474 | + pline("%s%s", doname(otmp), nobj ? "," : "."); | |
3318 | 3475 | dropy(otmp); |
3319 | 3476 | } |
3320 | 3477 | if (maybeshopgoods) |
3321 | 3478 | iflags.suppress_price--; /* reset */ |
3322 | 3479 | } |
3323 | 3480 | if (loss) /* magic bag lost some shop goods */ |
3481 | +/*JP | |
3324 | 3482 | You("owe %ld %s for lost merchandise.", loss, currency(loss)); |
3483 | +*/ | |
3484 | + You("失ったものに対して%ld%sの負債を負った.", loss, currency(loss)); | |
3325 | 3485 | box->owt = weight(box); /* mbag_item_gone() doesn't update this */ |
3326 | 3486 | if (held) |
3327 | 3487 | (void) encumber_msg(); |
@@ -2,6 +2,11 @@ | ||
2 | 2 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
3 | 3 | /* NetHack may be freely redistributed. See license for details. */ |
4 | 4 | |
5 | +/* JNetHack Copyright */ | |
6 | +/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000 */ | |
7 | +/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */ | |
8 | +/* JNetHack may be freely redistributed. See license for details. */ | |
9 | + | |
5 | 10 | #define NEED_VARARGS /* Uses ... */ /* comment line for pre-compiled headers \ |
6 | 11 | */ |
7 | 12 | #include "hack.h" |
@@ -493,6 +498,7 @@ register struct monst *mtmp; | ||
493 | 498 | /* a stethoscope exposes mimic before getting here so this |
494 | 499 | won't be relevant for it, but wand of probing doesn't */ |
495 | 500 | if (mtmp->m_ap_type) |
501 | +#if 0 /*JP*/ | |
496 | 502 | Sprintf(eos(info), ", mimicking %s", |
497 | 503 | (mtmp->m_ap_type == M_AP_FURNITURE) |
498 | 504 | ? an(defsyms[mtmp->mappearance].explanation) |
@@ -503,6 +509,18 @@ register struct monst *mtmp; | ||
503 | 509 | : (mtmp->m_ap_type == M_AP_MONSTER) |
504 | 510 | ? an(mons[mtmp->mappearance].mname) |
505 | 511 | : something); /* impossible... */ |
512 | +#else | |
513 | + Sprintf(eos(info), ", %sのまねをしている", | |
514 | + (mtmp->m_ap_type == M_AP_FURNITURE) | |
515 | + ? an(defsyms[mtmp->mappearance].explanation) | |
516 | + : (mtmp->m_ap_type == M_AP_OBJECT) | |
517 | + ? ((mtmp->mappearance == GOLD_PIECE) | |
518 | + ? "金貨" | |
519 | + : an(simple_typename(mtmp->mappearance))) | |
520 | + : (mtmp->m_ap_type == M_AP_MONSTER) | |
521 | + ? an(mons[mtmp->mappearance].mname) | |
522 | + : something); /* impossible... */ | |
523 | +#endif | |
506 | 524 | if (mtmp->mcan) |
507 | 525 | /*JP |
508 | 526 | Strcat(info, ", cancelled"); |
@@ -820,19 +838,33 @@ struct obj *otmp2; | ||
820 | 838 | if ((!Blind && visible) || inpack) { |
821 | 839 | if (Hallucination) { |
822 | 840 | if (onfloor) { |
841 | +/*JP | |
823 | 842 | You_see("parts of the floor melting!"); |
843 | +*/ | |
844 | + You_see("床の一部が溶けているのを見た!"); | |
824 | 845 | } else if (inpack) { |
846 | +/*JP | |
825 | 847 | Your("pack reaches out and grabs something!"); |
848 | +*/ | |
849 | + Your("かばんが手を伸ばして何かをつかんだ!"); | |
826 | 850 | } |
827 | 851 | /* even though we can see where they should be, |
828 | 852 | * they'll be out of our view (minvent or container) |
829 | 853 | * so don't actually show anything */ |
830 | 854 | } else if (onfloor || inpack) { |
855 | +#if 0 /*JP*/ | |
831 | 856 | pline("The %s coalesce%s.", makeplural(obj_typename(otmp->otyp)), |
832 | 857 | inpack ? " inside your pack" : ""); |
858 | +#else | |
859 | + pline("%sが%s合体した.", obj_typename(otmp->otyp), | |
860 | + inpack ? "あなたのかばんの中で" : ""); | |
861 | +#endif | |
833 | 862 | } |
834 | 863 | } else { |
864 | +/*JP | |
835 | 865 | You_hear("a faint sloshing sound."); |
866 | +*/ | |
867 | + You_hear("かすかなバシャバシャという音を聞いた."); | |
836 | 868 | } |
837 | 869 | } |
838 | 870 |
@@ -133,9 +133,16 @@ boolean on; | ||
133 | 133 | vulnerable form into another causes the counter to be reset */ |
134 | 134 | if (uamul && uamul->otyp == AMULET_OF_STRANGULATION |
135 | 135 | && can_be_strangled(&youmonst)) { |
136 | +#if 0 /*JP*/ | |
136 | 137 | Your("%s %s your %s!", simpleonames(uamul), |
137 | 138 | Strangled ? "still constricts" : "begins constricting", |
138 | 139 | body_part(NECK)); /* "throat" */ |
140 | +#else | |
141 | + Your("%s%s%sを絞め%s!", simpleonames(uamul), | |
142 | + Strangled ? "はまだ" : "が", | |
143 | + body_part(NECK), | |
144 | + Strangled ? "ている" : "はじめた"); | |
145 | +#endif | |
139 | 146 | Strangled = 6L; |
140 | 147 | makeknown(AMULET_OF_STRANGULATION); |
141 | 148 | } |
@@ -144,7 +151,10 @@ boolean on; | ||
144 | 151 | } else { |
145 | 152 | if (Strangled && !can_be_strangled(&youmonst)) { |
146 | 153 | Strangled = 0L; |
154 | +/*JP | |
147 | 155 | You("are no longer being strangled."); |
156 | +*/ | |
157 | + You("もはや窒息していない."); | |
148 | 158 | } |
149 | 159 | } |
150 | 160 | } |
@@ -407,7 +417,10 @@ int psflags; | ||
407 | 417 | controllable_poly = Polymorph_control && !(Stunned || Unaware); |
408 | 418 | |
409 | 419 | if (Unchanging) { |
420 | +/*JP | |
410 | 421 | pline("You fail to transform!"); |
422 | +*/ | |
423 | + pline("あなたは変化に失敗した!"); | |
411 | 424 | return; |
412 | 425 | } |
413 | 426 | /* being Stunned|Unaware doesn't negate this aspect of Poly_control */ |
@@ -498,7 +511,10 @@ int psflags; | ||
498 | 511 | pm_name = the(pm_name); |
499 | 512 | else if (!type_is_pname(&mons[mntmp])) |
500 | 513 | pm_name = an(pm_name); |
514 | +/*JP | |
501 | 515 | You_cant("polymorph into %s.", pm_name); |
516 | +*/ | |
517 | + You_cant("%sに変化できない.", pm_name); | |
502 | 518 | } else |
503 | 519 | break; |
504 | 520 | } while (--tryct > 0); |
@@ -530,13 +546,20 @@ int psflags; | ||
530 | 546 | /* similar to noarmor(invent.c), |
531 | 547 | shorten to "<color> scale mail" */ |
532 | 548 | dsmail = strcpy(buf, simpleonames(uarm)); |
549 | +#if 0 /*JP*/ | |
533 | 550 | if ((p = strstri(dsmail, " dragon ")) != 0) |
534 | 551 | while ((p[1] = p[8]) != '\0') |
535 | 552 | ++p; |
553 | +#endif | |
536 | 554 | /* tricky phrasing; dragon scale mail |
537 | 555 | is singular, dragon scales are plural */ |
556 | +#if 0 /*JP*/ | |
538 | 557 | Your("%s reverts to scales as you merge with them.", |
539 | 558 | dsmail); |
559 | +#else | |
560 | + Your("%sは鱗に戻った.", | |
561 | + dsmail); | |
562 | +#endif | |
540 | 563 | /* uarm->spe enchantment remains unchanged; |
541 | 564 | re-converting scales to mail poses risk |
542 | 565 | of evaporation due to over enchanting */ |
@@ -563,7 +586,10 @@ int psflags; | ||
563 | 586 | ? PM_WOLF |
564 | 587 | : !rn2(4) ? PM_FOG_CLOUD : PM_VAMPIRE_BAT; |
565 | 588 | if (controllable_poly) { |
589 | +/*JP | |
566 | 590 | Sprintf(buf, "Become %s?", an(mons[mntmp].mname)); |
591 | +*/ | |
592 | + Sprintf(buf, "%sになる?", mons[mntmp].mname); | |
567 | 593 | if (yn(buf) != 'y') |
568 | 594 | return; |
569 | 595 | } |
@@ -805,9 +831,17 @@ int mntmp; | ||
805 | 831 | if (touch_petrifies(u.usteed->data) && !Stone_resistance && rnl(3)) { |
806 | 832 | char buf[BUFSZ]; |
807 | 833 | |
834 | +#if 0 /*JP*/ | |
808 | 835 | pline("%s touch %s.", no_longer_petrify_resistant, |
809 | 836 | mon_nam(u.usteed)); |
837 | +#else | |
838 | + pline("%sは%sに触れた.", no_longer_petrify_resistant, | |
839 | + mon_nam(u.usteed)); | |
840 | +#endif | |
841 | +/*JP | |
810 | 842 | Sprintf(buf, "riding %s", an(u.usteed->data->mname)); |
843 | +*/ | |
844 | + Sprintf(buf, "%sに乗って", u.usteed->data->mname); | |
811 | 845 | instapetrify(buf); |
812 | 846 | } |
813 | 847 | if (!can_ride(u.usteed)) |
@@ -1161,22 +1195,35 @@ int alone; | ||
1161 | 1195 | candropwep = canletgo(uwep, ""); |
1162 | 1196 | candropswapwep = !u.twoweap || canletgo(uswapwep, ""); |
1163 | 1197 | if (alone) { |
1198 | +#if 0 /*JP*/ | |
1164 | 1199 | what = (candropwep && candropswapwep) ? "drop" : "release"; |
1200 | +#endif | |
1201 | +/*JP | |
1165 | 1202 | which = is_sword(uwep) ? "sword" : weapon_descr(uwep); |
1203 | +*/ | |
1204 | + which = is_sword(uwep) ? "剣" : weapon_descr(uwep); | |
1166 | 1205 | if (u.twoweap) { |
1167 | 1206 | whichtoo = |
1207 | +/*JP | |
1168 | 1208 | is_sword(uswapwep) ? "sword" : weapon_descr(uswapwep); |
1209 | +*/ | |
1210 | + is_sword(uswapwep) ? "剣" : weapon_descr(uswapwep); | |
1169 | 1211 | if (strcmp(which, whichtoo)) |
1212 | +/*JP | |
1170 | 1213 | which = "weapon"; |
1214 | +*/ | |
1215 | + which = "武器"; | |
1171 | 1216 | } |
1217 | +#if 0 /*JP*//*複数形にしない*/ | |
1172 | 1218 | if (uwep->quan != 1L || u.twoweap) |
1173 | 1219 | which = makeplural(which); |
1220 | +#endif | |
1174 | 1221 | |
1175 | 1222 | #if 0 /*JP*/ |
1176 | 1223 | You("find you must %s %s %s!", what, |
1177 | 1224 | the_your[!!strncmp(which, "corpse", 6)], which); |
1178 | 1225 | #else |
1179 | - You("%sを落としたことに気づいた!", what); | |
1226 | + You("%sを落としたことに気づいた!", which); | |
1180 | 1227 | #endif |
1181 | 1228 | } |
1182 | 1229 | if (u.twoweap) { |
@@ -1726,12 +1773,21 @@ dohide() | ||
1726 | 1773 | /* can't hide while being held (or holding) or while trapped |
1727 | 1774 | (except for floor hiders [trapper or mimic] in pits) */ |
1728 | 1775 | if (u.ustuck || (u.utrap && (u.utraptype != TT_PIT || on_ceiling))) { |
1776 | +#if 0 /*JP*/ | |
1729 | 1777 | You_cant("hide while you're %s.", |
1730 | 1778 | !u.ustuck ? "trapped" : !sticks(youmonst.data) |
1731 | 1779 | ? "being held" |
1732 | 1780 | : humanoid(u.ustuck->data) |
1733 | 1781 | ? "holding someone" |
1734 | 1782 | : "holding that creature"); |
1783 | +#else | |
1784 | + You_cant("%s間は隠れられない.", | |
1785 | + !u.ustuck ? "捕まっている" : !sticks(youmonst.data) | |
1786 | + ? "捕まえられている" | |
1787 | + : humanoid(u.ustuck->data) | |
1788 | + ? "誰かをつかんでいる" | |
1789 | + : "怪物をつかんでいる"); | |
1790 | +#endif | |
1735 | 1791 | if (u.uundetected |
1736 | 1792 | || (ismimic && youmonst.m_ap_type != M_AP_NOTHING)) { |
1737 | 1793 | u.uundetected = 0; |
@@ -1744,26 +1800,41 @@ dohide() | ||
1744 | 1800 | such critters aren't offered the option of hiding via #monster */ |
1745 | 1801 | if (youmonst.data->mlet == S_EEL && !is_pool(u.ux, u.uy)) { |
1746 | 1802 | if (IS_FOUNTAIN(levl[u.ux][u.uy].typ)) |
1803 | +/*JP | |
1747 | 1804 | The("fountain is not deep enough to hide in."); |
1805 | +*/ | |
1806 | + The("泉は隠れられるほど深くない."); | |
1748 | 1807 | else |
1808 | +/*JP | |
1749 | 1809 | There("is no water to hide in here."); |
1810 | +*/ | |
1811 | + There("ここには隠れるための水がない."); | |
1750 | 1812 | u.uundetected = 0; |
1751 | 1813 | return 0; |
1752 | 1814 | } |
1753 | 1815 | if (hides_under(youmonst.data) && !level.objects[u.ux][u.uy]) { |
1816 | +/*JP | |
1754 | 1817 | There("is nothing to hide under here."); |
1818 | +*/ | |
1819 | + There("ここには隠れられるものがない."); | |
1755 | 1820 | u.uundetected = 0; |
1756 | 1821 | return 0; |
1757 | 1822 | } |
1758 | 1823 | /* Planes of Air and Water */ |
1759 | 1824 | if (on_ceiling && !has_ceiling(&u.uz)) { |
1825 | +/*JP | |
1760 | 1826 | There("is nowhere to hide above you."); |
1827 | +*/ | |
1828 | + There("あなたの上には隠れられる場所がない."); | |
1761 | 1829 | u.uundetected = 0; |
1762 | 1830 | return 0; |
1763 | 1831 | } |
1764 | 1832 | if ((is_hider(youmonst.data) && !Flying) /* floor hider */ |
1765 | 1833 | && (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz))) { |
1834 | +/*JP | |
1766 | 1835 | There("is nowhere to hide beneath you."); |
1836 | +*/ | |
1837 | + There("あなたの下には隠れられる場所がない."); | |
1767 | 1838 | u.uundetected = 0; |
1768 | 1839 | return 0; |
1769 | 1840 | } |
@@ -1795,7 +1866,10 @@ dopoly() | ||
1795 | 1866 | if (is_vampire(youmonst.data)) { |
1796 | 1867 | polyself(2); |
1797 | 1868 | if (savedat != youmonst.data) { |
1869 | +/*JP | |
1798 | 1870 | You("transform into %s.", an(youmonst.data->mname)); |
1871 | +*/ | |
1872 | + You("%sの姿になった.", youmonst.data->mname); | |
1799 | 1873 | newsym(u.ux, u.uy); |
1800 | 1874 | } |
1801 | 1875 | } |
@@ -2145,7 +2219,10 @@ int part; | ||
2145 | 2219 | #endif |
2146 | 2220 | } |
2147 | 2221 | if (mptr == &mons[PM_STALKER] && part == HEAD) |
2222 | +/*JP | |
2148 | 2223 | return "head"; |
2224 | +*/ | |
2225 | + return "頭"; | |
2149 | 2226 | if (mptr->mlet == S_EEL && mptr != &mons[PM_JELLYFISH]) |
2150 | 2227 | return fish_parts[part]; |
2151 | 2228 | if (mptr->mlet == S_WORM) |
@@ -484,11 +484,17 @@ boolean talk; | ||
484 | 484 | |
485 | 485 | if (!xtime && old) { |
486 | 486 | if (talk) |
487 | +/*JP | |
487 | 488 | You("can hear again."); |
489 | +*/ | |
490 | + You("また聞こえるようになった."); | |
488 | 491 | toggled = TRUE; |
489 | 492 | } else if (xtime && !old) { |
490 | 493 | if (talk) |
494 | +/*JP | |
491 | 495 | You("are unable to hear anything."); |
496 | +*/ | |
497 | + You("何も聞こえなくなった."); | |
492 | 498 | toggled = TRUE; |
493 | 499 | } |
494 | 500 | /* deafness isn't presently shown on status line, but |
@@ -1527,7 +1533,10 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */ | ||
1527 | 1533 | } else if (potion->cursed) { |
1528 | 1534 | if (targobj->blessed) { |
1529 | 1535 | func = unbless; |
1536 | +/*JP | |
1530 | 1537 | glowcolor = "brown"; |
1538 | +*/ | |
1539 | + glowcolor = "茶色の"; | |
1531 | 1540 | costchange = COST_UNBLSS; |
1532 | 1541 | } else if (!targobj->cursed) { |
1533 | 1542 | func = curse; |
@@ -1549,10 +1558,19 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */ | ||
1549 | 1558 | is cleared instead of set if perception is distorted */ |
1550 | 1559 | if (useeit) { |
1551 | 1560 | glowcolor = hcolor(glowcolor); |
1561 | + /*JP:3.6.0時点では動詞は"glow"だけなので決め撃ち*/ | |
1552 | 1562 | if (altfmt) |
1563 | +#if 0 /*JP*/ | |
1553 | 1564 | pline("%s with %s aura.", objphrase, an(glowcolor)); |
1565 | +#else | |
1566 | + pline("%sは%sオーラにつつまれた.", objphrase, glowcolor); | |
1567 | +#endif | |
1554 | 1568 | else |
1569 | +#if 0 /*JP*/ | |
1555 | 1570 | pline("%s %s.", objphrase, glowcolor); |
1571 | +#else | |
1572 | + pline("%sは%s輝いた.", objphrase, jconj_adj(glowcolor)); | |
1573 | +#endif | |
1556 | 1574 | iflags.last_msg = PLNMSG_OBJ_GLOWS; |
1557 | 1575 | targobj->bknown = !Hallucination; |
1558 | 1576 | } |
@@ -1702,7 +1720,10 @@ boolean your_fault; | ||
1702 | 1720 | |
1703 | 1721 | switch (obj->otyp) { |
1704 | 1722 | case POT_WATER: |
1723 | +/*JP | |
1705 | 1724 | Sprintf(saddle_glows, "%s %s", buf, aobjnam(saddle, "glow")); |
1725 | +*/ | |
1726 | + Sprintf(saddle_glows, "%s", buf); | |
1706 | 1727 | affected = H2Opotion_dip(obj, saddle, useeit, saddle_glows); |
1707 | 1728 | break; |
1708 | 1729 | case POT_POLYMORPH: |
@@ -1710,7 +1731,10 @@ boolean your_fault; | ||
1710 | 1731 | break; |
1711 | 1732 | } |
1712 | 1733 | if (useeit && !affected) |
1734 | +/*JP | |
1713 | 1735 | pline("%s %s wet.", buf, aobjnam(saddle, "get")); |
1736 | +*/ | |
1737 | + pline("%sは濡れた.", buf); | |
1714 | 1738 | } else { |
1715 | 1739 | boolean angermon = TRUE; |
1716 | 1740 |
@@ -2233,8 +2257,8 @@ dodip() | ||
2233 | 2257 | |
2234 | 2258 | #if 0 /*JP*/ |
2235 | 2259 | Sprintf(qbuf, "dip %s into", thesimpleoname(obj)); |
2236 | -#else | |
2237 | - Sprintf(qbuf, "%sを浸しますか", thesimpleoname(obj)); | |
2260 | +#else /*JP:英語では何を浸すかを含めているが日本語では処理の都合でとりあえず省略*/ | |
2261 | + Sprintf(qbuf, "dip into"); | |
2238 | 2262 | #endif |
2239 | 2263 | here = levl[u.ux][u.uy].typ; |
2240 | 2264 | /* Is there a fountain to dip into here? */ |
@@ -2288,7 +2312,11 @@ dodip() | ||
2288 | 2312 | potion->in_use = TRUE; /* assume it will be used up */ |
2289 | 2313 | if (potion->otyp == POT_WATER) { |
2290 | 2314 | boolean useeit = !Blind || (obj == ublindf && Blindfolded_only); |
2315 | +#if 0 /*JP*/ | |
2291 | 2316 | const char *obj_glows = Yobjnam2(obj, "glow"); |
2317 | +#else | |
2318 | + const char *obj_glows = cxname(obj); | |
2319 | +#endif | |
2292 | 2320 | |
2293 | 2321 | if (H2Opotion_dip(potion, obj, useeit, obj_glows)) |
2294 | 2322 | goto poof; |
@@ -2452,22 +2480,35 @@ dodip() | ||
2452 | 2480 | been made in order to get the merge result for both cases; |
2453 | 2481 | as a consequence, mixing while Fumbling drops the mixture */ |
2454 | 2482 | freeinv(obj); |
2483 | +#if 0 /*JP*/ | |
2455 | 2484 | (void) hold_another_object(obj, "You drop %s!", doname(obj), |
2456 | 2485 | (const char *) 0); |
2486 | +#else | |
2487 | + (void) hold_another_object(obj, "%sを落した!", doname(obj), | |
2488 | + (const char *) 0); | |
2489 | +#endif | |
2457 | 2490 | return 1; |
2458 | 2491 | } |
2459 | 2492 | |
2460 | 2493 | if (potion->otyp == POT_ACID && obj->otyp == CORPSE |
2461 | 2494 | && obj->corpsenm == PM_LICHEN && !Blind) { |
2495 | +#if 0 /*JP*/ | |
2462 | 2496 | pline("%s %s %s around the edges.", The(cxname(obj)), |
2463 | 2497 | otense(obj, "turn"), |
2464 | 2498 | potion->odiluted ? hcolor(NH_ORANGE) : hcolor(NH_RED)); |
2499 | +#else | |
2500 | + pline("%sはふちが%sなった.", The(cxname(obj)), | |
2501 | + jconj_adj(potion->odiluted ? hcolor(NH_ORANGE) : hcolor(NH_RED))); | |
2502 | +#endif | |
2465 | 2503 | potion->in_use = FALSE; /* didn't go poof */ |
2466 | 2504 | return 1; |
2467 | 2505 | } |
2468 | 2506 | |
2469 | 2507 | if (potion->otyp == POT_WATER && obj->otyp == TOWEL) { |
2470 | - pline_The("towel soaks it up!"); | |
2508 | +/*JP | |
2509 | + pline_The("towel soak up!"); | |
2510 | +*/ | |
2511 | + pline_The("タオルは水を吸い込んだ!"); | |
2471 | 2512 | /* wetting towel already done via water_damage() in H2Opotion_dip */ |
2472 | 2513 | goto poof; |
2473 | 2514 | } |
@@ -119,29 +119,47 @@ struct obj *obj; | ||
119 | 119 | case P_SLING: |
120 | 120 | if (is_ammo(obj)) |
121 | 121 | descr = (obj->otyp == ROCK || is_graystone(obj)) |
122 | +/*JP | |
122 | 123 | ? "stone" |
124 | +*/ | |
125 | + ? "石" | |
123 | 126 | /* avoid "rock"; what about known glass? */ |
124 | 127 | : (obj->oclass == GEM_CLASS) |
128 | +/*JP | |
125 | 129 | ? "gem" |
130 | +*/ | |
131 | + ? "宝石" | |
126 | 132 | /* in case somebody adds odd sling ammo */ |
127 | 133 | : def_oc_syms[(int) obj->oclass].name; |
128 | 134 | break; |
129 | 135 | case P_BOW: |
130 | 136 | if (is_ammo(obj)) |
137 | +/*JP | |
131 | 138 | descr = "arrow"; |
139 | +*/ | |
140 | + descr = "矢"; | |
132 | 141 | break; |
133 | 142 | case P_CROSSBOW: |
134 | 143 | if (is_ammo(obj)) |
144 | +/*JP | |
135 | 145 | descr = "bolt"; |
146 | +*/ | |
147 | + descr = "ボルト"; | |
136 | 148 | break; |
137 | 149 | case P_FLAIL: |
138 | 150 | if (obj->otyp == GRAPPLING_HOOK) |
151 | +/*JP | |
139 | 152 | descr = "hook"; |
153 | +*/ | |
154 | + descr = "フック"; | |
140 | 155 | break; |
141 | 156 | case P_PICK_AXE: |
142 | 157 | /* even if "dwarvish mattock" hasn't been discovered yet */ |
143 | 158 | if (obj->otyp == DWARVISH_MATTOCK) |
159 | +/*JP | |
144 | 160 | descr = "mattock"; |
161 | +*/ | |
162 | + descr = "つるはし"; | |
145 | 163 | break; |
146 | 164 | default: |
147 | 165 | break; |