Revision | 3be5d02819c7185d7cffb673ed4119a2e0303c7a (tree) |
---|---|
Zeit | 2019-08-11 00:33:06 |
Autor | SHIRAKATA Kentaro <argrath@ub32...> |
Commiter | SHIRAKATA Kentaro |
add translation
@@ -3,10 +3,12 @@ y k u 7 8 9 | ||
3 | 3 | h-.-l 4-.-6 YUHJKLBN: 指定方向に,何かにぶつかるまで歩く, |
4 | 4 | /|\ /|\ または何かの中へ入る. |
5 | 5 | b j n 1 2 3 g<dir>: 指定方向に,何かが見えるまで歩く |
6 | - numberpad G<dir>: 指定方向に,何かが見えるまで歩く. | |
7 | - ただし,通路の分岐で止まらない. | |
8 | - < up ^<dir>: 上に同じ.(コントロールを押しながら) | |
6 | + numberpad | |
7 | + G<dir>: 同じ; ただし,通路の分岐で止まらない. | |
8 | + < up ^<dir>: 上に同じ.(ここでの^はキャレットではなく | |
9 | + コントロールキー) | |
9 | 10 | > down m<dir>: 何もせずに移動する. |
11 | + F<dir>: 怪物がいるのが分からなくても戦う. | |
10 | 12 | number_pad オプションをセットすると,テンキーで移動できる. |
11 | 13 | プラットフォームによっては,Shift+数字,Meta-数字,Alt+数字で |
12 | 14 | YUHJKLBNコマンドを発動するものもある. |
@@ -15,14 +17,14 @@ b j n 1 2 3 g<dir>: | ||
15 | 17 | 数字の '5' は 'G' 接頭辞のように働くが,number_pad が 2 の時は |
16 | 18 | 'g' のように働く. |
17 | 19 | number_pad が 3 なら 1,2,3 と 7,8,9 の役割は逆になる; 4 なら |
18 | - 3 と 2 の組み合わせのように振る舞う。 | |
20 | + 3 と 2 の組み合わせのように振る舞う. | |
19 | 21 | number_pad が -1 なら,英字の移動コマンドを使うが,'y' と |
20 | 22 | 'z' が入れ替わる. |
21 | 23 | |
22 | 24 | 一般: |
23 | -? help ヘルプ | |
24 | -#quit quit ゲームをやめる. | |
25 | -S save ゲームを(後で続けるために)中断する. | |
25 | +? help ヘルプ文章の表示 | |
26 | +#quit quit 現在のゲームを保存せずにゲームをやめる | |
27 | +S save ゲームを(後で続けるために)保存して終了する | |
26 | 28 | ! sh (もしできるなら)シェルを実行する. |
27 | 29 | ^Z suspend ゲームを中断する. |
28 | 30 | O options オプションを設定する. |
@@ -30,17 +32,16 @@ O options | ||
30 | 32 | \ known 今までに発見した道具の一覧を表示する. |
31 | 33 | v version バージョンを表示する. |
32 | 34 | V history ゲームの歴史を表示する. |
33 | -^A again 1つ前のコマンドを実行する.(^Aはコントロールを押しな | |
34 | - がらAを押すことを意味する.) | |
35 | +^A again 1つ前のコマンドを再実行する.(^Aはコントロール-A) | |
35 | 36 | ^R redraw 画面を書きなおす. |
36 | 37 | ^P prevmsg 前のメッセージを見る.(^Pは繰り返し使える) |
37 | -` オリジナルモードと日本語モードの切り替え | |
38 | 38 | # 拡張コマンド(#?でヘルプ) |
39 | 39 | & what-does キーを押して起動するコマンドを説明する. |
40 | 40 | |
41 | 41 | ゲーム: |
42 | 42 | ^D kick 蹴る.(扉等) |
43 | 43 | ^T 'port 瞬間移動.(可能なら) |
44 | +^X show 属性を表示する | |
44 | 45 | a apply 道具を使う.(つるはし,鍵,カメラ等) |
45 | 46 | A armor 全ての鎧を脱ぐ. |
46 | 47 | c close 扉を閉める. |
@@ -48,9 +49,9 @@ C call | ||
48 | 49 | d drop 物を置く. d7a:aなるものを7個置く. |
49 | 50 | D Drop 種類を選んで物を置く. |
50 | 51 | e eat 何かを食べる. |
52 | +E engrave 床のほこりに文字を書く.(E- 指を使って) | |
51 | 53 | f fire 装填されているものを射る. |
52 | 54 | F fight 方向を指定し戦う. |
53 | -E engrave 床のほこりに文字を書く.(E- 指を使って) | |
54 | 55 | i invent あなたの持ち物一覧.(あなたが持っているもの全て) |
55 | 56 | I Invent 種類を選択して持ち物一覧. |
56 | 57 | Iu: 未払の道具一覧. |
@@ -121,9 +122,9 @@ M-w wipe | ||
121 | 122 | `number_pad'のオプションがオンなら,次のコマンドが可能になる. |
122 | 123 | |
123 | 124 | n これに続く数字だけ次のコマンドを実行する. |
125 | +h help '?' と同様ヘルプ文章の一つを表示 | |
124 | 126 | j jump 他の位置に飛びうつる. |
125 | 127 | k kick 蹴る.(扉等) |
126 | 128 | l loot 床の上の箱の中身を略奪する. |
127 | 129 | N name アイテムや物に名前をつける. |
128 | 130 | u untrap 罠をはずす.(通常はしかけられた物) |
129 | - |
@@ -543,7 +543,7 @@ int wtcap; | ||
543 | 543 | /*JP |
544 | 544 | interrupt_multi("You are in full health."); |
545 | 545 | */ |
546 | - interrupt_multi("体力が回復した."); | |
546 | + interrupt_multi("体力が完全回復した."); | |
547 | 547 | } |
548 | 548 | |
549 | 549 | void |
@@ -528,7 +528,10 @@ register struct obj *obj; | ||
528 | 528 | mtmp->mundetected = 0; |
529 | 529 | newsym(mtmp->mx, mtmp->my); |
530 | 530 | } else if (mtmp->mappearance) { |
531 | +/*JP | |
531 | 532 | const char *what = "thing"; |
533 | +*/ | |
534 | + const char *what = "物体"; | |
532 | 535 | |
533 | 536 | switch (M_AP_TYPE(mtmp)) { |
534 | 537 | case M_AP_OBJECT: |
@@ -1324,9 +1327,15 @@ struct obj *obj; | ||
1324 | 1327 | |
1325 | 1328 | if (mtmp->mfrozen) { |
1326 | 1329 | if (vis) |
1330 | +/*JP | |
1327 | 1331 | You("discern no obvious reaction from %s.", mon_nam(mtmp)); |
1332 | +*/ | |
1333 | + You("%sからの明らかな反応は識別できなかった.", mon_nam(mtmp)); | |
1328 | 1334 | else |
1335 | +/*JP | |
1329 | 1336 | You_feel("a bit silly gesturing the mirror in that direction."); |
1337 | +*/ | |
1338 | + You_feel("鏡をその方向に向けるのはちょっとおかしな行動だと感じた."); | |
1330 | 1339 | do_react = FALSE; |
1331 | 1340 | } |
1332 | 1341 | if (do_react) { |
@@ -422,10 +422,15 @@ doextlist(VOID_ARGS) | ||
422 | 422 | add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, |
423 | 423 | "", MENU_UNSELECTED); |
424 | 424 | |
425 | +#if 0 /*JP*/ | |
425 | 426 | Strcpy(buf, menumode ? "Show" : "Hide"); |
426 | 427 | Strcat(buf, " commands that don't autocomplete"); |
427 | 428 | if (!menumode) |
428 | 429 | Strcat(buf, " (those not marked with [A])"); |
430 | +#else | |
431 | + Strcpy(buf, "自動補完されないコマンドを"); | |
432 | + Strcat(buf, menumode ? "表示する" : "表示しない (これらは[A]マークがつかない)"); | |
433 | +#endif | |
429 | 434 | any.a_int = 1; |
430 | 435 | add_menu(menuwin, NO_GLYPH, &any, 'a', 0, ATR_NONE, buf, |
431 | 436 | MENU_UNSELECTED); |
@@ -437,10 +442,19 @@ doextlist(VOID_ARGS) | ||
437 | 442 | actual list of extended commands shown via separator lines; |
438 | 443 | having ':' as an explicit selector overrides the default |
439 | 444 | menu behavior for it; we retain 's' as a group accelerator */ |
445 | +#if 0 /*JP*/ | |
440 | 446 | add_menu(menuwin, NO_GLYPH, &any, ':', 's', ATR_NONE, |
441 | 447 | "Search extended commands", MENU_UNSELECTED); |
448 | +#else | |
449 | + add_menu(menuwin, NO_GLYPH, &any, ':', 's', ATR_NONE, | |
450 | + "拡張コマンドを検索する", MENU_UNSELECTED); | |
451 | +#endif | |
442 | 452 | } else { |
453 | +#if 0 /*JP*/ | |
443 | 454 | Strcpy(buf, "Show all, clear search"); |
455 | +#else | |
456 | + Strcpy(buf, "全て表示; 検索をクリア"); | |
457 | +#endif | |
444 | 458 | if (strlen(buf) + strlen(searchbuf) + strlen(" (\"\")") < QBUFSZ) |
445 | 459 | Sprintf(eos(buf), " (\"%s\")", searchbuf); |
446 | 460 | any.a_int = 3; |
@@ -454,10 +468,17 @@ doextlist(VOID_ARGS) | ||
454 | 468 | } |
455 | 469 | if (wizard) { |
456 | 470 | any.a_int = 4; |
471 | +#if 0 /*JP*/ | |
457 | 472 | add_menu(menuwin, NO_GLYPH, &any, 'z', 0, ATR_NONE, |
458 | 473 | onelist ? "Show debugging commands in separate section" |
459 | 474 | : "Show all alphabetically, including debugging commands", |
460 | 475 | MENU_UNSELECTED); |
476 | +#else | |
477 | + add_menu(menuwin, NO_GLYPH, &any, 'z', 0, ATR_NONE, | |
478 | + onelist ? "デバッグコマンドは別の節に表示する" | |
479 | + : "デバッグコマンドを含む全てのコマンドをアルファベット順に表示する", | |
480 | + MENU_UNSELECTED); | |
481 | +#endif | |
461 | 482 | } |
462 | 483 | any = zeroany; |
463 | 484 | add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, |
@@ -519,8 +540,13 @@ doextlist(VOID_ARGS) | ||
519 | 540 | "", MENU_UNSELECTED); |
520 | 541 | } |
521 | 542 | if (*searchbuf && !n) |
543 | +#if 0 /*JP*/ | |
522 | 544 | add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, |
523 | 545 | "no matches", MENU_UNSELECTED); |
546 | +#else | |
547 | + add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, | |
548 | + "一致なし", MENU_UNSELECTED); | |
549 | +#endif | |
524 | 550 | |
525 | 551 | end_menu(menuwin, (char *) 0); |
526 | 552 | n = select_menu(menuwin, PICK_ONE, &selected); |
@@ -551,8 +577,12 @@ doextlist(VOID_ARGS) | ||
551 | 577 | searchbuf[0] = '\0'; |
552 | 578 | } |
553 | 579 | if (search) { |
580 | +#if 0 /*JP*/ | |
554 | 581 | Strcpy(promptbuf, "Extended command list search phrase"); |
555 | 582 | Strcat(promptbuf, "?"); |
583 | +#else | |
584 | + Strcpy(promptbuf, "拡張コマンドの検索文字列は?"); | |
585 | +#endif | |
556 | 586 | getlin(promptbuf, searchbuf); |
557 | 587 | (void) mungspaces(searchbuf); |
558 | 588 | if (searchbuf[0] == '\033') |
@@ -2229,8 +2259,12 @@ int final; | ||
2229 | 2259 | int egdepth = observable_depth(&u.uz); |
2230 | 2260 | |
2231 | 2261 | (void) endgamelevelname(tmpbuf, egdepth); |
2262 | +#if 0 /*JP*/ | |
2232 | 2263 | Sprintf(buf, "in the endgame, on the %s%s", |
2233 | 2264 | !strncmp(tmpbuf, "Plane", 5) ? "Elemental " : "", tmpbuf); |
2265 | +#else | |
2266 | + Sprintf(buf, "最終試練の%s", tmpbuf); | |
2267 | +#endif | |
2234 | 2268 | } else if (Is_knox(&u.uz)) { |
2235 | 2269 | /* this gives away the fact that the knox branch is only 1 level */ |
2236 | 2270 | /*JP |
@@ -2260,9 +2294,15 @@ int final; | ||
2260 | 2294 | /* TODO? maybe extend this bit to include various other automatic |
2261 | 2295 | annotations from the dungeon overview code */ |
2262 | 2296 | if (Is_rogue_level(&u.uz)) |
2297 | +/*JP | |
2263 | 2298 | Strcat(tmpbuf, ", a primitive area"); |
2299 | +*/ | |
2300 | + Strcat(tmpbuf, ", 単純な世界"); | |
2264 | 2301 | else if (Is_bigroom(&u.uz) && !Blind) |
2302 | +/*JP | |
2265 | 2303 | Strcat(tmpbuf, ", a very big room"); |
2304 | +*/ | |
2305 | + Strcat(tmpbuf, ", とても大きな部屋"); | |
2266 | 2306 | #if 0 /*JP*/ |
2267 | 2307 | Sprintf(buf, "in %s, on %s", dgnbuf, tmpbuf); |
2268 | 2308 | #else |
@@ -2305,9 +2345,14 @@ int final; | ||
2305 | 2345 | long nxtlvl = newuexp(ulvl); |
2306 | 2346 | /* long oldlvl = (ulvl > 1) ? newuexp(ulvl - 1) : 0; */ |
2307 | 2347 | |
2348 | +#if 0 /*JP*/ | |
2308 | 2349 | Sprintf(eos(buf), ", %ld %s%sneeded to attain level %d", |
2309 | 2350 | (nxtlvl - u.uexp), (u.uexp > 0) ? "more " : "", |
2310 | 2351 | !final ? "" : "were ", (ulvl + 1)); |
2352 | +#else | |
2353 | + Sprintf(eos(buf), "(レベル%dまで%ldポイント)", | |
2354 | + (ulvl + 1), (nxtlvl - u.uexp)); | |
2355 | +#endif | |
2311 | 2356 | } |
2312 | 2357 | } |
2313 | 2358 | you_have(buf, ""); |
@@ -2433,15 +2478,32 @@ int final; | ||
2433 | 2478 | if (flags.pickup) { |
2434 | 2479 | char ocl[MAXOCLASSES + 1]; |
2435 | 2480 | |
2481 | +#if 0 /*JP*//*後に回す*/ | |
2436 | 2482 | Strcpy(buf, "on"); |
2483 | +#endif | |
2437 | 2484 | oc_to_str(flags.pickup_types, ocl); |
2485 | +#if 0 /*JP*/ | |
2438 | 2486 | Sprintf(eos(buf), " for %s%s%s", |
2439 | 2487 | *ocl ? "'" : "", *ocl ? ocl : "all types", *ocl ? "'" : ""); |
2488 | +#else | |
2489 | + Sprintf(buf, "%s%s%s", | |
2490 | + *ocl ? "'" : "", *ocl ? ocl : "全ての種類", *ocl ? "'" : ""); | |
2491 | +#endif | |
2440 | 2492 | if (flags.pickup_thrown && *ocl) /* *ocl: don't show if 'all types' */ |
2493 | +/*JP | |
2441 | 2494 | Strcat(buf, " plus thrown"); |
2495 | +*/ | |
2496 | + Strcat(buf, "に加えて投げるもの"); | |
2442 | 2497 | if (iflags.autopickup_exceptions[AP_GRAB] |
2443 | 2498 | || iflags.autopickup_exceptions[AP_LEAVE]) |
2499 | +/*JP | |
2444 | 2500 | Strcat(buf, ", with exceptions"); |
2501 | +*/ | |
2502 | + Strcat(buf, "(例外あり)"); | |
2503 | +#if 1 /*JP*/ | |
2504 | + Strcpy(buf, "に対してオン"); | |
2505 | +#endif | |
2506 | + | |
2445 | 2507 | } else |
2446 | 2508 | /*JP |
2447 | 2509 | Strcpy(buf, "off"); |
@@ -3228,7 +3290,11 @@ int final; | ||
3228 | 3290 | |
3229 | 3291 | /*** Vision and senses ***/ |
3230 | 3292 | if (!Blind && (Blinded || !haseyes(youmonst.data))) |
3293 | +#if 0 /*JP*/ | |
3231 | 3294 | you_can("see", from_what(-BLINDED)); /* Eyes of the Overworld */ |
3295 | +#else /*「超世界の目によって見ることができる」*/ | |
3296 | + you_can("見ることが", from_what(-BLINDED)); /* Eyes of the Overworld */ | |
3297 | +#endif | |
3232 | 3298 | if (See_invisible) { |
3233 | 3299 | if (!Blind) |
3234 | 3300 | /*JP |
@@ -4386,6 +4452,7 @@ int final; | ||
4386 | 4452 | * N wishes (1 for an artifact) |
4387 | 4453 | * N wishes (M for artifacts) |
4388 | 4454 | */ |
4455 | +#if 0 /*JP*/ | |
4389 | 4456 | if (u.uconduct.wisharti == u.uconduct.wishes) |
4390 | 4457 | Sprintf(eos(buf), " (%s", |
4391 | 4458 | (u.uconduct.wisharti > 2L) ? "all " |
@@ -4396,6 +4463,9 @@ int final; | ||
4396 | 4463 | Sprintf(eos(buf), "for %s)", |
4397 | 4464 | (u.uconduct.wisharti == 1L) ? "an artifact" |
4398 | 4465 | : "artifacts"); |
4466 | +#else | |
4467 | + Sprintf(eos(buf), " (聖器は%ld回)", u.uconduct.wisharti); | |
4468 | +#endif | |
4399 | 4469 | } |
4400 | 4470 | you_have_X(buf); |
4401 | 4471 |
@@ -6435,9 +6505,15 @@ const char *msg; | ||
6435 | 6505 | } |
6436 | 6506 | } |
6437 | 6507 | |
6508 | +#if 0 /*JP*/ | |
6438 | 6509 | Sprintf(buf, "Valid direction keys%s%s%s are:", |
6439 | 6510 | prefixhandling ? " to " : "", prefixhandling ? dothat : "", |
6440 | 6511 | NODIAG(u.umonnum) ? " in your current form" : ""); |
6512 | +#else | |
6513 | + Sprintf(buf, "%s%s%sでの有効な方向指定は:", | |
6514 | + prefixhandling ? " to " : "", prefixhandling ? dothat : "", | |
6515 | + NODIAG(u.umonnum) ? " in your current form" : ""); | |
6516 | +#endif | |
6441 | 6517 | putstr(win, 0, buf); |
6442 | 6518 | show_direction_keys(win, !prefixhandling ? '.' : ' ', NODIAG(u.umonnum)); |
6443 | 6519 |
@@ -229,10 +229,17 @@ const char *verb; | ||
229 | 229 | mtmp->mhp -= damage; |
230 | 230 | if (DEADMONSTER(mtmp)) { |
231 | 231 | if (canspotmon(mtmp)) |
232 | +#if 0 /*JP*/ | |
232 | 233 | pline("%s is %s!", Monnam(mtmp), |
233 | 234 | (nonliving(mtmp->data) |
234 | 235 | || is_vampshifter(mtmp)) |
235 | 236 | ? "destroyed" : "killed"); |
237 | +#else | |
238 | + pline("%sは%s!", Monnam(mtmp), | |
239 | + (nonliving(mtmp->data) | |
240 | + || is_vampshifter(mtmp)) | |
241 | + ? "倒された" : "殺された"); | |
242 | +#endif | |
236 | 243 | mondied(mtmp); |
237 | 244 | } |
238 | 245 | } else { |
@@ -1331,20 +1338,41 @@ dodown() | ||
1331 | 1338 | |
1332 | 1339 | if (trap) { |
1333 | 1340 | const char *down_or_thru = trap->ttyp == HOLE ? "down" : "through"; |
1341 | +#if 0 /*JP*/ | |
1334 | 1342 | const char *actn = Flying ? "fly" : locomotion(youmonst.data, "jump"); |
1343 | +#else | |
1344 | + const char *actn = ""; | |
1345 | +#endif | |
1335 | 1346 | |
1336 | 1347 | if (youmonst.data->msize >= MZ_HUGE) { |
1337 | 1348 | char qbuf[QBUFSZ]; |
1338 | 1349 | |
1350 | +#if 0 /*JP*/ | |
1339 | 1351 | You("don't fit %s easily.", down_or_thru); |
1340 | 1352 | Sprintf(qbuf, "Try to squeeze %s?", down_or_thru); |
1353 | +#else | |
1354 | + pline("ここは狭くて簡単には通り抜けられない."); | |
1355 | + Sprintf(qbuf, "体を押し込みますか?"); | |
1356 | +#endif | |
1341 | 1357 | if (yn(qbuf) == 'y') { |
1342 | 1358 | if (!rn2(3)) { |
1359 | +#if 0 /*JP*/ | |
1343 | 1360 | actn = "manage to squeeze"; |
1361 | +#else | |
1362 | + actn = "なんとか"; | |
1363 | +#endif | |
1364 | +#if 0 /*JP*/ | |
1344 | 1365 | losehp(Maybe_Half_Phys(rnd(4)), |
1345 | 1366 | "contusion from a small passage", KILLED_BY); |
1367 | +#else | |
1368 | + losehp(Maybe_Half_Phys(rnd(4)), | |
1369 | + "狭い道での打ち身で", KILLED_BY); | |
1370 | +#endif | |
1346 | 1371 | } else { |
1372 | +/*JP | |
1347 | 1373 | You("were unable to fit %s.", down_or_thru); |
1374 | +*/ | |
1375 | + You("通り抜けられない."); | |
1348 | 1376 | return 0; |
1349 | 1377 | } |
1350 | 1378 | } else { |
@@ -1355,7 +1383,7 @@ dodown() | ||
1355 | 1383 | You("%s %s the %s.", actn, down_or_thru, |
1356 | 1384 | trap->ttyp == HOLE ? "hole" : "trap door"); |
1357 | 1385 | #else |
1358 | - You("%s.", | |
1386 | + You("%s%s.", actn, | |
1359 | 1387 | trap->ttyp == HOLE ? "穴を降りた" : "落し扉を通り抜けた"); |
1360 | 1388 | #endif |
1361 | 1389 | } |
@@ -1249,7 +1249,7 @@ dokick() | ||
1249 | 1249 | /*JP |
1250 | 1250 | You("splash some %s around.", hliquid("water")); |
1251 | 1251 | */ |
1252 | - You("%sを回りにまきちらした.", hliquid("water")); | |
1252 | + You("%sを回りにまきちらした.", hliquid("水")); | |
1253 | 1253 | return 1; |
1254 | 1254 | } |
1255 | 1255 |
@@ -852,10 +852,16 @@ int x, y; | ||
852 | 852 | (void) drown(); |
853 | 853 | return FALSE; |
854 | 854 | } else if (!Is_waterlevel(&u.uz) && !stopping_short) { |
855 | +/*JP | |
855 | 856 | Norep("You move over %s.", an(is_moat(x, y) ? "moat" : "pool")); |
857 | +*/ | |
858 | + Norep("あなたは%sの上を移動した.", is_moat(x, y) ? "堀" : "水たまり"); | |
856 | 859 | } |
857 | 860 | } else if (is_lava(x, y) && !stopping_short) { |
861 | +/*JP | |
858 | 862 | Norep("You move over some lava."); |
863 | +*/ | |
864 | + Norep("あなたは溶岩の上を移動した."); | |
859 | 865 | } |
860 | 866 | |
861 | 867 | /* FIXME: |
@@ -1513,7 +1519,10 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */ | ||
1513 | 1519 | } else if (u.uswallow) { |
1514 | 1520 | if (tethered_weapon) { |
1515 | 1521 | tmp_at(DISP_END, 0); |
1522 | +/*JP | |
1516 | 1523 | pline("%s returns to your hand!", The(xname(thrownobj))); |
1524 | +*/ | |
1525 | + pline("%sはあなたの手に戻ってきた!", The(xname(thrownobj))); | |
1517 | 1526 | thrownobj = addinv(thrownobj); |
1518 | 1527 | (void) encumber_msg(); |
1519 | 1528 | /* in case addinv() autoquivered */ |
@@ -3843,10 +3843,10 @@ boolean incr; | ||
3843 | 3843 | /* Returns an object representing food. |
3844 | 3844 | * Object may be either on floor or in inventory. |
3845 | 3845 | */ |
3846 | -/*JP CHECK: 3.6.1 での呼び出し元 | |
3847 | -apply.c:2478: if (!(corpse = floorfood("tin", 2))) | |
3848 | -eat.c:3050: if (!(otmp = floorfood("eat", 0))) | |
3849 | -pray.c:1659: otmp = floorfood("sacrifice", 1); | |
3846 | +/*JP CHECK: 3.6.2 での呼び出し元 | |
3847 | +apply.c:2500: if (!(corpse = floorfood("tin", 2))) | |
3848 | +eat.c:3089: if (!(otmp = floorfood("eat", 0))) | |
3849 | +pray.c:1684: otmp = floorfood("sacrifice", 1); | |
3850 | 3850 | この関数は英語名のまま呼び出すこと。 |
3851 | 3851 | */ |
3852 | 3852 | struct obj * |
@@ -3994,7 +3994,10 @@ vomit() /* A good idea from David Neves */ | ||
3994 | 3994 | vomiting_dialog() gives a vomit message when its countdown |
3995 | 3995 | reaches 0, but only if u.uhs < FAINTING (and !cantvomit()) */ |
3996 | 3996 | if (u.uhs >= FAINTING) |
3997 | +/*JP | |
3997 | 3998 | Your("%s heaves convulsively!", body_part(STOMACH)); |
3999 | +*/ | |
4000 | + Your("%sは激しい吐き気をもよおした!", body_part(STOMACH)); | |
3998 | 4001 | } |
3999 | 4002 | |
4000 | 4003 | /* nomul()/You_can_move_again used to be unconditional, which was |
@@ -1796,7 +1796,10 @@ domove_core() | ||
1796 | 1796 | doing so while encumbered is feasible; if in an aquatic |
1797 | 1797 | form, stressed or less is allowed; otherwise (magical |
1798 | 1798 | breathing), only burdened is allowed */ |
1799 | +/*JP | |
1799 | 1800 | You("are carrying too much to climb out of the water."); |
1801 | +*/ | |
1802 | + You("水から上がるには荷物を持ちすぎている."); | |
1800 | 1803 | nomul(0); |
1801 | 1804 | return; |
1802 | 1805 | } |
@@ -2245,9 +2245,9 @@ unsigned *resultflags; | ||
2245 | 2245 | * If allflag then no questions are asked. Mx gives the max number |
2246 | 2246 | * of objects to be treated. Return the number of objects treated. |
2247 | 2247 | */ |
2248 | -/*JP CHECK: 3.6.0 での呼び出し元 | |
2249 | -invent.c:1886: int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); | |
2250 | -pickup.c:3145: if (askchain(objlist, (one_by_one ? (char *) 0 : selection), allflag, | |
2248 | +/*JP CHECK: 3.6.2 での呼び出し元 | |
2249 | +invent.c:2228: int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); | |
2250 | +pickup.c:3208: if (askchain(objlist, (one_by_one ? (char *) 0 : selection), allflag, | |
2251 | 2251 | wordには動詞が英語で入る。 |
2252 | 2252 | */ |
2253 | 2253 | int |
@@ -3253,7 +3253,10 @@ dounpaid() | ||
3253 | 3253 | char contbuf[BUFSZ]; |
3254 | 3254 | |
3255 | 3255 | /* Shopkeeper knows what to charge for contents */ |
3256 | +/*JP | |
3256 | 3257 | Sprintf(contbuf, "%s contents", s_suffix(xname(otmp))); |
3258 | +*/ | |
3259 | + Sprintf(contbuf, "%sの中身", xname(otmp)); | |
3257 | 3260 | putstr(win, 0, |
3258 | 3261 | xprname((struct obj *) 0, contbuf, CONTAINED_SYM, |
3259 | 3262 | TRUE, contcost, 0L)); |
@@ -499,7 +499,7 @@ struct obj *otmp UNUSED; | ||
499 | 499 | /*JP |
500 | 500 | "Please disregard previous letter.", "Welcome to NetHack.", |
501 | 501 | */ |
502 | - "前のメールは忘れてください.", "NetHackへようこそ!", | |
502 | + "前のメールは忘れてください.", "JNetHackへようこそ!", | |
503 | 503 | #ifdef AMIGA |
504 | 504 | "Only Amiga makes it possible.", "CATS have all the answers.", |
505 | 505 | #endif |
@@ -763,9 +763,9 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ | ||
763 | 763 | break; |
764 | 764 | case ROCK_CLASS: |
765 | 765 | if (typ == STATUE && omndx != NON_PM) { |
766 | +#if 0 /*JP*/ | |
766 | 767 | char anbuf[10]; |
767 | 768 | |
768 | -#if 0 /*JP*/ | |
769 | 769 | Sprintf(buf, "%s%s of %s%s", |
770 | 770 | (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) |
771 | 771 | ? "historic " |
@@ -3504,7 +3504,11 @@ struct obj *no_wish; | ||
3504 | 3504 | int wetness, gsize = 0; |
3505 | 3505 | struct fruit *f; |
3506 | 3506 | int ftype = context.current_fruit; |
3507 | +#if 0 /*JP*/ | |
3507 | 3508 | char fruitbuf[BUFSZ], globbuf[BUFSZ]; |
3509 | +#else | |
3510 | + char fruitbuf[BUFSZ]; | |
3511 | +#endif | |
3508 | 3512 | /* Fruits may not mess up the ability to wish for real objects (since |
3509 | 3513 | * you can leave a fruit in a bones file and it will be added to |
3510 | 3514 | * another person's game), so they must be checked for last, after |
@@ -1684,6 +1684,7 @@ boolean do_mons; /* True => monsters, False => objects */ | ||
1684 | 1684 | } |
1685 | 1685 | |
1686 | 1686 | static const char *suptext1[] = { |
1687 | +#if 0 /*JP:T*/ | |
1687 | 1688 | "%s is a member of a marauding horde of orcs", |
1688 | 1689 | "rumored to have brutally attacked and plundered", |
1689 | 1690 | "the ordinarily sheltered town that is located ", |
@@ -1693,9 +1694,19 @@ static const char *suptext1[] = { | ||
1693 | 1694 | "defiantly acclaim their allegiance to their", |
1694 | 1695 | "leader %s in their names.", |
1695 | 1696 | (char *) 0, |
1697 | +#else | |
1698 | + "%sは,ノームの鉱山の奥に位置している", | |
1699 | + "通常通り防御していた街を容赦なく攻撃して", | |
1700 | + "略奪したと噂される,オークの襲撃集団の一員である.", | |
1701 | + "", | |
1702 | + "その悪質な集団のメンバーは,そのリーダーである%sの名の下に", | |
1703 | + "誇らしげかつ挑戦的にその忠誠を称賛している.", | |
1704 | + (char *) 0, | |
1705 | +#endif | |
1696 | 1706 | }; |
1697 | 1707 | |
1698 | 1708 | static const char *suptext2[] = { |
1709 | +#if 0 /*JP:T*/ | |
1699 | 1710 | "\"%s\" is the common dungeon name of", |
1700 | 1711 | "a nefarious orc who is known to acquire property", |
1701 | 1712 | "from thieves and sell it off for profit.", |
@@ -1703,6 +1714,15 @@ static const char *suptext2[] = { | ||
1703 | 1714 | "The perpetrator was last seen hanging around the", |
1704 | 1715 | "stairs leading to the Gnomish Mines.", |
1705 | 1716 | (char *) 0, |
1717 | +#else | |
1718 | + "\"%s\" は,盗賊から物品を入手して", | |
1719 | + "利益を得るために売りさばくことで知られている", | |
1720 | + "無法なオークの一般的な迷宮名である.", | |
1721 | + "", | |
1722 | + "犯人が最後に目撃されたのは", | |
1723 | + "ノームの炭鉱へ続く階段の近くである.", | |
1724 | + (char *) 0, | |
1725 | +#endif | |
1706 | 1726 | }; |
1707 | 1727 | |
1708 | 1728 | void |
@@ -1803,7 +1823,10 @@ doidtrap() | ||
1803 | 1823 | boolean chesttrap = trapped_chest_at(tt, x, y); |
1804 | 1824 | |
1805 | 1825 | if (chesttrap || trapped_door_at(tt, x, y)) { |
1826 | +/*JP | |
1806 | 1827 | pline("That is a trapped %s.", chesttrap ? "chest" : "door"); |
1828 | +*/ | |
1829 | + pline("それは罠が仕掛けられた%sだ.", chesttrap ? "箱" : "扉"); | |
1807 | 1830 | return 0; /* trap ID'd, but no time elapses */ |
1808 | 1831 | } |
1809 | 1832 | } |
@@ -2132,11 +2155,19 @@ dowhatdoes() | ||
2132 | 2155 | char q, *reslt; |
2133 | 2156 | |
2134 | 2157 | if (!once) { |
2158 | +#if 0 /*JP*/ | |
2135 | 2159 | pline("Ask about '&' or '?' to get more info.%s", |
2136 | 2160 | #ifdef ALTMETA |
2137 | 2161 | iflags.altmeta ? " (For ESC, type it twice.)" : |
2138 | 2162 | #endif |
2139 | 2163 | ""); |
2164 | +#else | |
2165 | + pline("さらなる情報については '&' か '?' についてたずねます.%s", | |
2166 | +#ifdef ALTMETA | |
2167 | + iflags.altmeta ? " (ESCについては,2回タイプします.)" : | |
2168 | +#endif | |
2169 | + ""); | |
2170 | +#endif | |
2140 | 2171 | once = TRUE; |
2141 | 2172 | } |
2142 | 2173 | #if defined(UNIX) || defined(VMS) |
@@ -1288,7 +1288,10 @@ rehumanize() | ||
1288 | 1288 | #endif |
1289 | 1289 | done(DIED); |
1290 | 1290 | } else if (uamul && uamul->otyp == AMULET_OF_UNCHANGING) { |
1291 | +/*JP | |
1291 | 1292 | Your("%s %s!", simpleonames(uamul), otense(uamul, "fail")); |
1293 | +*/ | |
1294 | + Your("%sに失敗した!", simpleonames(uamul)); | |
1292 | 1295 | uamul->dknown = 1; |
1293 | 1296 | makeknown(AMULET_OF_UNCHANGING); |
1294 | 1297 | } |
@@ -1321,8 +1324,13 @@ rehumanize() | ||
1321 | 1324 | vision_full_recalc = 1; |
1322 | 1325 | (void) encumber_msg(); |
1323 | 1326 | if (was_flying && !Flying && u.usteed) |
1327 | +#if 0 /*JP*/ | |
1324 | 1328 | You("and %s return gently to the %s.", |
1325 | 1329 | mon_nam(u.usteed), surface(u.ux, u.uy)); |
1330 | +#else | |
1331 | + You("と%sは%sに着地した.", | |
1332 | + mon_nam(u.usteed), surface(u.ux, u.uy)); | |
1333 | +#endif | |
1326 | 1334 | retouch_equipment(2); |
1327 | 1335 | if (!uarmg) |
1328 | 1336 | selftouch(no_longer_petrify_resistant); |
@@ -2013,7 +2021,7 @@ struct monst *mon; | ||
2013 | 2021 | int part; |
2014 | 2022 | { |
2015 | 2023 | static NEARDATA const char |
2016 | -#if 0 /*JP*/ | |
2024 | +#if 0 /*JP:T*/ | |
2017 | 2025 | *humanoid_parts[] = { "arm", "eye", "face", "finger", |
2018 | 2026 | "fingertip", "foot", "hand", "handed", |
2019 | 2027 | "head", "leg", "light headed", "neck", |
@@ -2027,7 +2035,7 @@ int part; | ||
2027 | 2035 | "背骨", "爪先", "髪", "血", |
2028 | 2036 | "肺", "鼻", "胃"}, |
2029 | 2037 | #endif |
2030 | -#if 0 /*JP*/ | |
2038 | +#if 0 /*JP:T*/ | |
2031 | 2039 | *jelly_parts[] = { "pseudopod", "dark spot", "front", |
2032 | 2040 | "pseudopod extension", "pseudopod extremity", |
2033 | 2041 | "pseudopod root", "grasp", "grasped", |
@@ -2045,7 +2053,7 @@ int part; | ||
2045 | 2053 | "波紋", "体液", "表面", "感覚器", |
2046 | 2054 | "胃"}, |
2047 | 2055 | #endif |
2048 | -#if 0 /*JP*/ | |
2056 | +#if 0 /*JP:T*/ | |
2049 | 2057 | *animal_parts[] = { "forelimb", "eye", "face", |
2050 | 2058 | "foreclaw", "claw tip", "rear claw", |
2051 | 2059 | "foreclaw", "clawed", "head", |
@@ -2063,7 +2071,7 @@ int part; | ||
2063 | 2071 | "血", "肺", "鼻", |
2064 | 2072 | "胃"}, |
2065 | 2073 | #endif |
2066 | -#if 0 /*JP*/ | |
2074 | +#if 0 /*JP:T*/ | |
2067 | 2075 | *bird_parts[] = { "wing", "eye", "face", "wing", |
2068 | 2076 | "wing tip", "foot", "wing", "winged", |
2069 | 2077 | "head", "leg", "light headed", "neck", |
@@ -2077,7 +2085,7 @@ int part; | ||
2077 | 2085 | "背骨", "爪先", "羽毛", "血", |
2078 | 2086 | "肺", "くちばし", "胃" }, |
2079 | 2087 | #endif |
2080 | -#if 0 /*JP*/ | |
2088 | +#if 0 /*JP:T*/ | |
2081 | 2089 | *horse_parts[] = { "foreleg", "eye", "face", |
2082 | 2090 | "forehoof", "hoof tip", "rear hoof", |
2083 | 2091 | "forehoof", "hooved", "head", |
@@ -2095,7 +2103,7 @@ int part; | ||
2095 | 2103 | "血", "肺", "鼻", |
2096 | 2104 | "胃" }, |
2097 | 2105 | #endif |
2098 | -#if 0 /*JP*/ | |
2106 | +#if 0 /*JP:T*/ | |
2099 | 2107 | *sphere_parts[] = { "appendage", "optic nerve", "body", "tentacle", |
2100 | 2108 | "tentacle tip", "lower appendage", "tentacle", |
2101 | 2109 | "tentacled", "body", "lower tentacle", |
@@ -2111,7 +2119,7 @@ int part; | ||
2111 | 2119 | "下の触手の先", "繊毛", "生命力", |
2112 | 2120 | "網膜", "嗅覚中枢", "内部" }, |
2113 | 2121 | #endif |
2114 | -#if 0 /*JP*/ | |
2122 | +#if 0 /*JP:T*/ | |
2115 | 2123 | *fungus_parts[] = { "mycelium", "visual area", "front", |
2116 | 2124 | "hypha", "hypha", "root", |
2117 | 2125 | "strand", "stranded", "cap area", |
@@ -2129,7 +2137,7 @@ int part; | ||
2129 | 2137 | "体液", "えら", "えら", |
2130 | 2138 | "内部"}, |
2131 | 2139 | #endif |
2132 | -#if 0 /*JP*/ | |
2140 | +#if 0 /*JP:T*/ | |
2133 | 2141 | *vortex_parts[] = { "region", "eye", "front", |
2134 | 2142 | "minor current", "minor current", "lower current", |
2135 | 2143 | "swirl", "swirled", "central core", |
@@ -2147,7 +2155,7 @@ int part; | ||
2147 | 2155 | "生命力", "中心", "前縁", |
2148 | 2156 | "内部" }, |
2149 | 2157 | #endif |
2150 | -#if 0 /*JP*/ | |
2158 | +#if 0 /*JP:T*/ | |
2151 | 2159 | *snake_parts[] = { "vestigial limb", "eye", "face", "large scale", |
2152 | 2160 | "large scale tip", "rear region", "scale gap", |
2153 | 2161 | "scale gapped", "head", "rear region", |
@@ -2163,7 +2171,7 @@ int part; | ||
2163 | 2171 | "鱗", "血", "肺", "舌", |
2164 | 2172 | "胃" }, |
2165 | 2173 | #endif |
2166 | -#if 0 /*JP*/ | |
2174 | +#if 0 /*JP:T*/ | |
2167 | 2175 | *worm_parts[] = { "anterior segment", "light sensitive cell", |
2168 | 2176 | "clitellum", "setae", "setae", "posterior segment", |
2169 | 2177 | "segment", "segmented", "anterior segment", |
@@ -2179,7 +2187,7 @@ int part; | ||
2179 | 2187 | "体", "後部の角", "角", "血", |
2180 | 2188 | "皮膚", "口前葉", "胃" }, |
2181 | 2189 | #endif |
2182 | -#if 0 /*JP*/ | |
2190 | +#if 0 /*JP:T*/ | |
2183 | 2191 | *fish_parts[] = { "fin", "eye", "premaxillary", "pelvic axillary", |
2184 | 2192 | "pelvic fin", "anal fin", "pectoral fin", "finned", |
2185 | 2193 | "head", "peduncle", "played out", "gills", |
@@ -1390,8 +1390,13 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */ | ||
1390 | 1390 | add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", |
1391 | 1391 | MENU_UNSELECTED); |
1392 | 1392 | } |
1393 | +#if 0 /*JP*/ | |
1393 | 1394 | add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, |
1394 | 1395 | "Select one of your saved games", MENU_UNSELECTED); |
1396 | +#else | |
1397 | + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, | |
1398 | + "セーブしたゲームを一つ選んだください", MENU_UNSELECTED); | |
1399 | +#endif | |
1395 | 1400 | for (k = 0; saved[k]; ++k) { |
1396 | 1401 | any.a_int = k + 1; |
1397 | 1402 | add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, saved[k], |
@@ -1399,12 +1404,22 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */ | ||
1399 | 1404 | } |
1400 | 1405 | clet = (k <= 'n' - 'a') ? 'n' : 0; /* new game */ |
1401 | 1406 | any.a_int = -1; /* not >= 0 */ |
1407 | +#if 0 /*JP*/ | |
1402 | 1408 | add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE, |
1403 | 1409 | "Start a new character", MENU_UNSELECTED); |
1410 | +#else | |
1411 | + add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE, | |
1412 | + "新しいキャラクタで始める", MENU_UNSELECTED); | |
1413 | +#endif | |
1404 | 1414 | clet = (k + 1 <= 'q' - 'a') ? 'q' : 0; /* quit */ |
1405 | 1415 | any.a_int = -2; |
1416 | +#if 0 /*JP*/ | |
1406 | 1417 | add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE, |
1407 | 1418 | "Never mind (quit)", MENU_SELECTED); |
1419 | +#else | |
1420 | + add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE, | |
1421 | + "やめる", MENU_SELECTED); | |
1422 | +#endif | |
1408 | 1423 | /* no prompt on end_menu, as we've done our own at the top */ |
1409 | 1424 | end_menu(tmpwin, (char *) 0); |
1410 | 1425 | if (select_menu(tmpwin, PICK_ONE, &chosen_game) > 0) { |
@@ -1523,7 +1523,10 @@ dopay() | ||
1523 | 1523 | } |
1524 | 1524 | mtmp = m_at(cx, cy); |
1525 | 1525 | if (!cansee(cx, cy) && (!mtmp || !canspotmon(mtmp))) { |
1526 | +/*JP | |
1526 | 1527 | You("can't %s anyone there.", !Blind ? "see" : "sense"); |
1528 | +*/ | |
1529 | + You("ここには誰も%sない.", !Blind ? "見え" : "感じられ"); | |
1527 | 1530 | return 0; |
1528 | 1531 | } |
1529 | 1532 | if (!mtmp) { |
@@ -1732,7 +1735,7 @@ dopay() | ||
1732 | 1735 | /*JP |
1733 | 1736 | Strcat(sbuf, "you picked up in the store."); |
1734 | 1737 | */ |
1735 | - Strcpy(sbuf, "店の中で拾ったものに対して,"); | |
1738 | + Strcpy(sbuf, "店の中で拾ったものに対して,"); | |
1736 | 1739 | else |
1737 | 1740 | #if 0 /*JP*/ |
1738 | 1741 | Strcat(sbuf, |
@@ -3464,13 +3467,9 @@ boolean peaceful, silent; | ||
3464 | 3467 | */ |
3465 | 3468 | still = "さらに"; |
3466 | 3469 | } |
3467 | -#if 0 /*JP:T*/ | |
3470 | +#if 0 /*JP*/ | |
3468 | 3471 | Sprintf(buf, "%sowe %s %ld %s", still, shkname(shkp), |
3469 | 3472 | value, currency(value)); |
3470 | -#else | |
3471 | - Sprintf(buf, "%s%sに%ld%sの借りをつくった", still, shkname(shkp), | |
3472 | - value, currency(value)); | |
3473 | -#endif | |
3474 | 3473 | if (u_count) /* u_count > 0 implies Has_contents(obj) */ |
3475 | 3474 | Sprintf(eos(buf), " for %s%sits contents", |
3476 | 3475 | was_unpaid ? "it and " : "", |
@@ -3478,6 +3477,10 @@ boolean peaceful, silent; | ||
3478 | 3477 | else if (obj->oclass != COIN_CLASS) |
3479 | 3478 | Sprintf(eos(buf), " for %s", |
3480 | 3479 | (obj->quan > 1L) ? "them" : "it"); |
3480 | +#else | |
3481 | + Sprintf(buf, "%s%sに%ld%sの借りをつくった", still, shkname(shkp), | |
3482 | + value, currency(value)); | |
3483 | +#endif | |
3481 | 3484 | |
3482 | 3485 | #if 0 /*JP*/ |
3483 | 3486 | You("%s!", buf); /* "You owe <shk> N zorkmids for it!" */ |
@@ -4038,7 +4041,7 @@ register xchar x, y; | ||
4038 | 4041 | /*JP |
4039 | 4042 | verbalize("Out of my way, scum!"); |
4040 | 4043 | */ |
4041 | - verbalize("どけ,クソったれ!"); | |
4044 | + verbalize("どけ,クソったれ!"); | |
4042 | 4045 | if (cansee(x, y)) { |
4043 | 4046 | #if 0 /*JP:T*/ |
4044 | 4047 | pline("%s nimbly%s catches %s.", Shknam(shkp), |
@@ -4321,10 +4324,18 @@ boolean catchup; /* restoring a level */ | ||
4321 | 4324 | message for the only repair, but perhaps the shop repair |
4322 | 4325 | incantation means that shk's untrap attempt will never fail */ |
4323 | 4326 | if (canseemon(shkp)) |
4327 | +#if 0 /*JP*/ | |
4324 | 4328 | pline("%s whispers %s.", Shknam(shkp), |
4325 | 4329 | shk_closeby ? "an incantation" : "something"); |
4330 | +#else | |
4331 | + pline("%sは%sをささやいた.", Shknam(shkp), | |
4332 | + shk_closeby ? "呪文" : "何か"); | |
4333 | +#endif | |
4326 | 4334 | else if (!Deaf && shk_closeby) |
4335 | +/*JP | |
4327 | 4336 | You_hear("someone muttering an incantation."); |
4337 | +*/ | |
4338 | + You_hear("誰かが呪文をつぶやいているのを聞いた."); | |
4328 | 4339 | *once = 0; |
4329 | 4340 | } |
4330 | 4341 | if (ttmp) { |
@@ -492,13 +492,19 @@ dosit() | ||
492 | 492 | return 0; |
493 | 493 | } else if (eggs_in_water(youmonst.data)) { |
494 | 494 | if (!(Underwater || Is_waterlevel(&u.uz))) { |
495 | +/*JP | |
495 | 496 | pline("A splash tetra you are not."); |
497 | +*/ | |
498 | + pline("あなたはコペラ・アーノルディではなかった."); | |
496 | 499 | return 0; |
497 | 500 | } |
498 | 501 | if (Upolyd && |
499 | 502 | (youmonst.data == &mons[PM_GIANT_EEL] |
500 | 503 | || youmonst.data == &mons[PM_ELECTRIC_EEL])) { |
504 | +/*JP | |
501 | 505 | You("yearn for the Sargasso Sea."); |
506 | +*/ | |
507 | + You("サルガッソー海にあこがれた."); | |
502 | 508 | return 0; |
503 | 509 | } |
504 | 510 | } |
@@ -183,21 +183,21 @@ dosounds() | ||
183 | 183 | /*JP |
184 | 184 | You_hear("a low buzzing."); |
185 | 185 | */ |
186 | - You_hear("ぶーんという音を聞いた."); | |
186 | + You_hear("ぶーんという音を聞いた."); | |
187 | 187 | break; |
188 | 188 | case 1: |
189 | 189 | /*JP |
190 | 190 | You_hear("an angry drone."); |
191 | 191 | */ |
192 | - You_hear("興奮した雄バチの音を聞いた."); | |
192 | + You_hear("興奮した雄バチの音を聞いた."); | |
193 | 193 | break; |
194 | 194 | case 2: |
195 | 195 | #if 0 /*JP*/ |
196 | 196 | You_hear("bees in your %sbonnet!", |
197 | 197 | uarmh ? "" : "(nonexistent) "); |
198 | 198 | #else |
199 | - You_hear("ハチがあなたの帽子%sの中にいる音を聞いた!", | |
200 | - uarmh ? "" : "(被ってないけど)"); | |
199 | + You_hear("ハチがあなたの帽子%sの中にいる音を聞いた!", | |
200 | + uarmh ? "" : "(被ってないけど)"); | |
201 | 201 | #endif |
202 | 202 | break; |
203 | 203 | } |
@@ -2190,7 +2190,10 @@ char *outbuf; | ||
2190 | 2190 | |
2191 | 2191 | if (turnsleft < 1L) { |
2192 | 2192 | /* spell has expired; hero can't successfully cast it anymore */ |
2193 | +/*JP | |
2193 | 2194 | Strcpy(outbuf, "(gone)"); |
2195 | +*/ | |
2196 | + Strcpy(outbuf, "(忘却)"); | |
2194 | 2197 | } else if (turnsleft >= (long) KEEN) { |
2195 | 2198 | /* full retention, first turn or immediately after reading book */ |
2196 | 2199 | Strcpy(outbuf, "100%"); |
@@ -316,7 +316,10 @@ boolean force; /* Quietly force this animal */ | ||
316 | 316 | attempting to mount a tail segment when hero was not adjacent |
317 | 317 | to worm's head could trigger an impossible() in worm_cross() |
318 | 318 | called from test_move(), so handle not-on-head before that */ |
319 | +/*JP | |
319 | 320 | You("couldn't ride %s, let alone its tail.", a_monnam(mtmp)); |
321 | +*/ | |
322 | + You("%sには乗れない,もちろん尻尾にも乗れない.", a_monnam(mtmp)); | |
320 | 323 | return FALSE; |
321 | 324 | } |
322 | 325 | if (u.uswallow || u.ustuck || u.utrap || Punished |
@@ -474,7 +477,10 @@ boolean force; /* Quietly force this animal */ | ||
474 | 477 | */ |
475 | 478 | You("%sに乗った.", mon_nam(mtmp)); |
476 | 479 | if (Flying) |
480 | +/*JP | |
477 | 481 | You("and %s take flight together.", mon_nam(mtmp)); |
482 | +*/ | |
483 | + You("と%sは一緒に空を飛んだ.", mon_nam(mtmp)); | |
478 | 484 | } |
479 | 485 | /* setuwep handles polearms differently when you're mounted */ |
480 | 486 | if (uwep && is_pole(uwep)) |
@@ -501,9 +501,15 @@ struct kinfo *kptr; | ||
501 | 501 | player may have genocided green slimes after being infected */ |
502 | 502 | if ((mvitals[PM_GREEN_SLIME].mvflags & G_GENOD) != 0) { |
503 | 503 | killer.format = KILLED_BY; |
504 | +/*JP | |
504 | 505 | Strcpy(killer.name, "slimicide"); |
506 | +*/ | |
507 | + Strcpy(killer.name, "スライム虐殺"); | |
505 | 508 | /* immediately follows "OK, so you don't die." */ |
509 | +/*JP | |
506 | 510 | pline("Yes, you do. Green slime has been genocided..."); |
511 | +*/ | |
512 | + pline("はい,そうです.緑スライムは虐殺されました..."); | |
507 | 513 | done(GENOCIDED); |
508 | 514 | /* could be life-saved again (only in explore or wizard mode) |
509 | 515 | but green slimes are gone; just stay in current form */ |
@@ -769,7 +775,10 @@ nh_timeout() | ||
769 | 775 | /* timed Flying is via #wizintrinsic only */ |
770 | 776 | if (was_flying && !Flying) { |
771 | 777 | context.botl = 1; |
778 | +/*JP | |
772 | 779 | You("land."); |
780 | +*/ | |
781 | + You("着地した."); | |
773 | 782 | spoteffects(TRUE); |
774 | 783 | } |
775 | 784 | break; |
@@ -778,8 +787,13 @@ nh_timeout() | ||
778 | 787 | if (!Warn_of_mon) { |
779 | 788 | context.warntype.speciesidx = NON_PM; |
780 | 789 | if (context.warntype.species) { |
790 | +#if 0 /*JP*/ | |
781 | 791 | You("are no longer warned about %s.", |
782 | 792 | makeplural(context.warntype.species->mname)); |
793 | +#else | |
794 | + You("もはや%sを警告しなくなった.", | |
795 | + makeplural(context.warntype.species->mname)); | |
796 | +#endif | |
783 | 797 | context.warntype.species = (struct permonst *) 0; |
784 | 798 | } |
785 | 799 | } |
@@ -192,7 +192,10 @@ int ef_flags; | ||
192 | 192 | *const msg[] = { "burnt", "rusted", "rotten", "corroded" }, |
193 | 193 | */ |
194 | 194 | *const msg[] = { "焦げた", "錆びた", "腐った", "腐食した" }, |
195 | +/*JP | |
195 | 196 | *const bythe[] = { "heat", "oxidation", "decay", "corrosion" }; |
197 | +*/ | |
198 | + *const bythe[] = { "熱", "酸化", "腐敗", "腐食" }; | |
196 | 199 | boolean vulnerable = FALSE, is_primary = TRUE, |
197 | 200 | check_grease = (ef_flags & EF_GREASE) ? TRUE : FALSE, |
198 | 201 | print = (ef_flags & EF_VERBOSE) ? TRUE : FALSE, |
@@ -1088,7 +1091,10 @@ boolean msg; | ||
1088 | 1091 | if (!was_Lev && Levitation) |
1089 | 1092 | float_up(); |
1090 | 1093 | if (!was_Fly && Flying) |
1094 | +/*JP | |
1091 | 1095 | You("can fly."); |
1096 | +*/ | |
1097 | + You("飛べるようになった."); | |
1092 | 1098 | } |
1093 | 1099 | } |
1094 | 1100 |
@@ -1564,8 +1570,13 @@ unsigned trflags; | ||
1564 | 1570 | */ |
1565 | 1571 | You("隣の落し穴に移動した."); |
1566 | 1572 | } else if (adj_pit) { |
1573 | +#if 0 /*JP:T*/ | |
1567 | 1574 | You("stumble over debris%s.", |
1568 | 1575 | !rn2(5) ? " between the pits" : ""); |
1576 | +#else | |
1577 | + You("は%sがらくたでつまづいた.", | |
1578 | + !rn2(5) ? "落し穴の" : ""); | |
1579 | +#endif | |
1569 | 1580 | } else { |
1570 | 1581 | #if 0 /*JP*/ |
1571 | 1582 | Strcpy(verbbuf, |
@@ -1912,14 +1923,18 @@ unsigned trflags; | ||
1912 | 1923 | |
1913 | 1924 | seetrap(trap); |
1914 | 1925 | if (viasitting) |
1926 | +#if 0 /*JP*/ | |
1915 | 1927 | Strcpy(verbbuf, "trigger"); /* follows "You sit down." */ |
1928 | +#else | |
1929 | + Strcpy(verbbuf, "を引き起こした"); /* follows "You sit down." */ | |
1930 | +#endif | |
1916 | 1931 | else if (u.usteed) |
1917 | 1932 | #if 0 /*JP*/ |
1918 | 1933 | Sprintf(verbbuf, "lead %s onto", |
1919 | 1934 | x_monnam(u.usteed, steed_article, (char *) 0, |
1920 | 1935 | SUPPRESS_SADDLE, FALSE)); |
1921 | 1936 | #else |
1922 | - Sprintf(verbbuf, "%sとともに飛び込んだ", | |
1937 | + Sprintf(verbbuf, "に%sとともに飛び込んだ", | |
1923 | 1938 | x_monnam(u.usteed, steed_article, (char *) 0, |
1924 | 1939 | SUPPRESS_SADDLE, FALSE)); |
1925 | 1940 | #endif |
@@ -1929,14 +1944,14 @@ unsigned trflags; | ||
1929 | 1944 | Levitation ? (const char *) "float" |
1930 | 1945 | : locomotion(youmonst.data, "step")); |
1931 | 1946 | #else |
1932 | - Sprintf(verbbuf,"%s", | |
1947 | + Sprintf(verbbuf,"に%s", | |
1933 | 1948 | jpast(Levitation ? (const char *)"浮きながら飛びこむ" |
1934 | 1949 | : locomotion(youmonst.data, "踏み込む"))); |
1935 | 1950 | #endif |
1936 | 1951 | /*JP |
1937 | 1952 | You("%s a polymorph trap!", verbbuf); |
1938 | 1953 | */ |
1939 | - You("変化の罠に%s!", verbbuf); | |
1954 | + You("変化の罠%s!", verbbuf); | |
1940 | 1955 | if (Antimagic || Unchanging) { |
1941 | 1956 | shieldeff(u.ux, u.uy); |
1942 | 1957 | /*JP |
@@ -3639,11 +3654,20 @@ float_up() | ||
3639 | 3654 | (void) buried_ball(&cc); |
3640 | 3655 | /* being chained to the floor blocks levitation from floating |
3641 | 3656 | above that floor but not from enhancing carrying capacity */ |
3657 | +#if 0 /*JP*/ | |
3642 | 3658 | You("feel lighter, but your %s is still chained to the %s.", |
3643 | 3659 | body_part(LEG), |
3644 | 3660 | IS_ROOM(levl[cc.x][cc.y].typ) ? "floor" : "ground"); |
3661 | +#else | |
3662 | + You("すこし軽くなったが,あなたの%sはまだ%sにつながっている.", | |
3663 | + body_part(LEG), | |
3664 | + IS_ROOM(levl[cc.x][cc.y].typ) ? "床" : "地面"); | |
3665 | +#endif | |
3645 | 3666 | } else if (u.utraptype == WEB) { |
3667 | +/*JP | |
3646 | 3668 | You("float up slightly, but you are still stuck in the web."); |
3669 | +*/ | |
3670 | + You("すこし浮き上がったが,まだくもの巣につかまっている."); | |
3647 | 3671 | } else { /* bear trap */ |
3648 | 3672 | /*JP |
3649 | 3673 | You("float up slightly, but your %s is still stuck.", |
@@ -3754,12 +3778,21 @@ long hmask, emask; /* might cancel timeout */ | ||
3754 | 3778 | |
3755 | 3779 | float_vs_flight(); |
3756 | 3780 | if (trapped && u.utrap) /* u.utrap => paranoia */ |
3781 | +#if 0 /*JP*/ | |
3757 | 3782 | You("are no longer trying to float up from the %s.", |
3758 | 3783 | (u.utraptype == TT_BEARTRAP) ? "trap's jaws" |
3759 | 3784 | : (u.utraptype == TT_WEB) ? "web" |
3760 | 3785 | : (u.utraptype == TT_BURIEDBALL) ? "chain" |
3761 | 3786 | : (u.utraptype == TT_LAVA) ? "lava" |
3762 | 3787 | : "ground"); /* TT_INFLOOR */ |
3788 | +#else | |
3789 | + You("もはや%sから浮き上がろうとしなくなった.", | |
3790 | + (u.utraptype == TT_BEARTRAP) ? "罠の歯" | |
3791 | + : (u.utraptype == TT_WEB) ? "くもの巣" | |
3792 | + : (u.utraptype == TT_BURIEDBALL) ? "鎖" | |
3793 | + : (u.utraptype == TT_LAVA) ? "溶岩" | |
3794 | + : "地面"); /* TT_INFLOOR */ | |
3795 | +#endif | |
3763 | 3796 | (void) encumber_msg(); /* carrying capacity might have changed */ |
3764 | 3797 | return 0; |
3765 | 3798 | } |
@@ -4138,7 +4171,10 @@ domagictrap() | ||
4138 | 4171 | context.botl = TRUE; |
4139 | 4172 | } else { |
4140 | 4173 | /* magic vibrations still hit you */ |
4174 | +/*JP | |
4141 | 4175 | You_feel("rankled."); |
4176 | +*/ | |
4177 | + You_feel("いらいらした."); | |
4142 | 4178 | incr_itimeout(&HDeaf, rn1(5, 15)); |
4143 | 4179 | context.botl = TRUE; |
4144 | 4180 | } |
@@ -5947,14 +5983,23 @@ boolean *noticed; /* set to true iff hero notices the effect; */ | ||
5947 | 5983 | which = ""; |
5948 | 5984 | switch (u.utraptype) { |
5949 | 5985 | case TT_LAVA: |
5986 | +/*JP | |
5950 | 5987 | trapdescr = "molten lava"; |
5988 | +*/ | |
5989 | + trapdescr = "どろどろの溶岩"; | |
5951 | 5990 | break; |
5952 | 5991 | case TT_INFLOOR: |
5953 | 5992 | /* solidified lava, so not "floor" even if within a room */ |
5993 | +/*JP | |
5954 | 5994 | trapdescr = "ground"; |
5995 | +*/ | |
5996 | + trapdescr = "地面"; | |
5955 | 5997 | break; |
5956 | 5998 | case TT_BURIEDBALL: |
5999 | +/*JP | |
5957 | 6000 | trapdescr = "your anchor"; |
6001 | +*/ | |
6002 | + trapdescr = "くさび"; | |
5958 | 6003 | break; |
5959 | 6004 | case TT_BEARTRAP: |
5960 | 6005 | case TT_PIT: |
@@ -5964,7 +6009,10 @@ boolean *noticed; /* set to true iff hero notices the effect; */ | ||
5964 | 6009 | default: |
5965 | 6010 | /* lint suppression in case 't' is unexpectedly Null |
5966 | 6011 | or u.utraptype has new value we don't know about yet */ |
6012 | +/*JP | |
5967 | 6013 | trapdescr = "trap"; |
6014 | +*/ | |
6015 | + trapdescr = "罠"; | |
5968 | 6016 | break; |
5969 | 6017 | } |
5970 | 6018 | } else { |
@@ -6677,7 +6725,7 @@ unconscious() | ||
6677 | 6725 | || !strncmp(nomovemsg, "You regain con", 14) |
6678 | 6726 | || !strncmp(nomovemsg, "You are consci", 14)))); |
6679 | 6727 | #else |
6680 | -/*JP 3.6.0 での出現位置/回数 | |
6728 | +/*JP 3.6.2 での出現位置/回数 | |
6681 | 6729 | "You awake" : potion.c(1) |
6682 | 6730 | "You regain con": eat.c(1) |
6683 | 6731 | "You are consci": eat.c(1) |
@@ -197,8 +197,13 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */ | ||
197 | 197 | struct obj *obj; |
198 | 198 | |
199 | 199 | if (!Blind && Hallucination) |
200 | +#if 0 /*JP*/ | |
200 | 201 | pline("A %s %s appeared!", |
201 | 202 | mtmp->mtame ? "tame" : "wild", l_monnam(mtmp)); |
203 | +#else | |
204 | + pline("%s%sが現れた!", | |
205 | + mtmp->mtame ? "手なづけられた" : "野生の", l_monnam(mtmp)); | |
206 | +#endif | |
202 | 207 | else if (Blind || (is_pool(mtmp->mx, mtmp->my) && !Underwater)) |
203 | 208 | /*JP |
204 | 209 | pline("Wait! There's a hidden monster there!"); |
@@ -480,7 +485,10 @@ register struct monst *mtmp; | ||
480 | 485 | && (m_move(mtmp, 0) == 2 /* it died */ |
481 | 486 | || mtmp->mx != u.ux + u.dx |
482 | 487 | || mtmp->my != u.uy + u.dy)) { /* it moved */ |
488 | +/*JP | |
483 | 489 | You("miss wildly and stumble forwards."); |
490 | +*/ | |
491 | + You("大きく外して前につまづいた."); | |
484 | 492 | return FALSE; |
485 | 493 | } |
486 | 494 |
@@ -1484,20 +1492,37 @@ int dieroll; | ||
1484 | 1492 | |
1485 | 1493 | if (canspotmon(mon)) { |
1486 | 1494 | if (saved_oname[0]) { |
1495 | +#if 0 /*JP*/ | |
1487 | 1496 | Sprintf(emitlightobjbuf, |
1488 | 1497 | "%s radiance penetrates deep into", |
1489 | 1498 | s_suffix(saved_oname)); |
1490 | 1499 | Strcat(emitlightobjbuf, " %s!"); |
1500 | +#else | |
1501 | + Sprintf(emitlightobjbuf, | |
1502 | + "%s光が%%sに深く貫通した!", | |
1503 | + s_suffix(saved_oname)); | |
1504 | +#endif | |
1491 | 1505 | fmt = emitlightobjbuf; |
1492 | 1506 | } else |
1507 | +/*JP | |
1493 | 1508 | fmt = "The light sears %s!"; |
1509 | +*/ | |
1510 | + fmt = "光は%sを焼いた!"; | |
1494 | 1511 | } else { |
1512 | +#if 0 /*JP*/ | |
1495 | 1513 | *whom = highc(*whom); /* "it" -> "It" */ |
1514 | +#endif | |
1515 | +/*JP | |
1496 | 1516 | fmt = "%s is seared!"; |
1517 | +*/ | |
1518 | + fmt = "%sは焼かれた!"; | |
1497 | 1519 | } |
1498 | 1520 | /* note: s_suffix returns a modifiable buffer */ |
1499 | 1521 | if (!noncorporeal(mdat) && !amorphous(mdat)) |
1522 | +/*JP | |
1500 | 1523 | whom = strcat(s_suffix(whom), " flesh"); |
1524 | +*/ | |
1525 | + whom = strcat(s_suffix(whom), "肉"); | |
1501 | 1526 | pline(fmt, whom); |
1502 | 1527 | } |
1503 | 1528 | /* if a "no longer poisoned" message is coming, it will be last; |
@@ -1907,9 +1932,15 @@ int specialdmg; /* blessed and/or silver bonus against various things */ | ||
1907 | 1932 | */ |
1908 | 1933 | pline("%sは完全に燃え尽きた!", Monnam(mdef)); |
1909 | 1934 | else |
1935 | +#if 0 /*JP*/ | |
1910 | 1936 | You("smell burning%s.", |
1911 | 1937 | (pd == &mons[PM_PAPER_GOLEM]) ? " paper" |
1912 | 1938 | : (pd == &mons[PM_STRAW_GOLEM]) ? " straw" : ""); |
1939 | +#else | |
1940 | + You("%sが燃えるにおいがした.", | |
1941 | + (pd == &mons[PM_PAPER_GOLEM]) ? "紙" | |
1942 | + : (pd == &mons[PM_STRAW_GOLEM]) ? "わら" : "何か"); | |
1943 | +#endif | |
1913 | 1944 | xkilled(mdef, XKILL_NOMSG | XKILL_NOCORPSE); |
1914 | 1945 | tmp = 0; |
1915 | 1946 | break; |
@@ -2881,7 +2912,9 @@ register struct monst *mon; | ||
2881 | 2912 | if (dhit) { |
2882 | 2913 | int compat, specialdmg; |
2883 | 2914 | long silverhit = 0L; |
2915 | +#if 0 /*JP*//* すべて「攻撃した」にする */ | |
2884 | 2916 | const char *verb = 0; /* verb or body part */ |
2917 | +#endif | |
2885 | 2918 | |
2886 | 2919 | if (!u.uswallow |
2887 | 2920 | && (compat = could_seduce(&youmonst, mon, mattk)) != 0) { |
@@ -2909,7 +2942,9 @@ register struct monst *mon; | ||
2909 | 2942 | case AT_CLAW: |
2910 | 2943 | case AT_TUCH: |
2911 | 2944 | /* verb=="claws" may be overridden below */ |
2945 | +#if 0 /*JP*/ | |
2912 | 2946 | verb = (mattk->aatyp == AT_TUCH) ? "touch" : "claws"; |
2947 | +#endif | |
2913 | 2948 | /* decide if silver-hater will be hit by silver ring(s); |
2914 | 2949 | for 'multi_claw' where attacks alternate right/left, |
2915 | 2950 | assume 'even' claw or touch attacks use right hand |
@@ -2930,35 +2965,49 @@ register struct monst *mon; | ||
2930 | 2965 | case AT_TENT: |
2931 | 2966 | /* assumes mind flayer's tentacles-on-head rather |
2932 | 2967 | than sea monster's tentacle-as-arm */ |
2968 | +#if 0 /*JP*/ | |
2933 | 2969 | verb = "tentacles"; |
2970 | +#endif | |
2934 | 2971 | break; |
2935 | 2972 | case AT_KICK: |
2973 | +#if 0 /*JP*/ | |
2936 | 2974 | verb = "kick"; |
2975 | +#endif | |
2937 | 2976 | specialdmg = special_dmgval(&youmonst, mon, W_ARMF, |
2938 | 2977 | &silverhit); |
2939 | 2978 | break; |
2940 | 2979 | case AT_BUTT: |
2980 | +#if 0 /*JP*/ | |
2941 | 2981 | verb = "head butt"; /* mbodypart(mon,HEAD)=="head" */ |
2942 | 2982 | /* hypothetical; if any form with a head-butt attack |
2943 | 2983 | could wear a helmet, it would hit shades when |
2944 | 2984 | wearing a blessed (or silver) one */ |
2985 | +#endif | |
2945 | 2986 | specialdmg = special_dmgval(&youmonst, mon, W_ARMH, |
2946 | 2987 | &silverhit); |
2947 | 2988 | break; |
2948 | 2989 | case AT_BITE: |
2990 | +#if 0 /*JP*/ | |
2949 | 2991 | verb = "bite"; |
2992 | +#endif | |
2950 | 2993 | break; |
2951 | 2994 | case AT_STNG: |
2995 | +#if 0 /*JP*/ | |
2952 | 2996 | verb = "sting"; |
2997 | +#endif | |
2953 | 2998 | break; |
2954 | 2999 | default: |
3000 | +#if 0 /*JP*/ | |
2955 | 3001 | verb = "hit"; |
3002 | +#endif | |
2956 | 3003 | break; |
2957 | 3004 | } |
2958 | 3005 | if (mon->data == &mons[PM_SHADE] && !specialdmg) { |
3006 | +#if 0 /*JP*/ | |
2959 | 3007 | if (!strcmp(verb, "hit") |
2960 | 3008 | || (mattk->aatyp == AT_CLAW && humanoid(mon->data))) |
2961 | 3009 | verb = "attack"; |
3010 | +#endif | |
2962 | 3011 | #if 0 /*JP*/ |
2963 | 3012 | Your("%s %s harmlessly through %s.", |
2964 | 3013 | verb, vtense(verb, "pass"), mon_nam(mon)); |
@@ -2973,9 +3022,15 @@ register struct monst *mon; | ||
2973 | 3022 | */ |
2974 | 3023 | Your("触手が%sの体液を吸いとった.", mon_nam(mon)); |
2975 | 3024 | } else { |
3025 | +#if 0 /*JP*/ | |
2976 | 3026 | if (mattk->aatyp == AT_CLAW) |
2977 | 3027 | verb = "hit"; /* not "claws" */ |
3028 | +#endif | |
3029 | +#if 0 /*JP*/ | |
2978 | 3030 | You("%s %s.", verb, mon_nam(mon)); |
3031 | +#else | |
3032 | + You("%sを攻撃した.", mon_nam(mon)); | |
3033 | +#endif | |
2979 | 3034 | if (silverhit && flags.verbose) |
2980 | 3035 | silver_sears(&youmonst, mon, silverhit); |
2981 | 3036 | } |
@@ -3033,13 +3088,19 @@ register struct monst *mon; | ||
3033 | 3088 | unconcerned = FALSE; |
3034 | 3089 | } |
3035 | 3090 | if (mon->data == &mons[PM_SHADE]) { |
3091 | +#if 0 /*JP*/ | |
3036 | 3092 | const char *verb = byhand ? "grasp" : "hug"; |
3093 | +#endif | |
3037 | 3094 | |
3038 | 3095 | /* hugging a shade; successful if blessed outermost armor |
3039 | 3096 | for normal hug, or blessed gloves or silver ring(s) for |
3040 | 3097 | choking hug; deals damage but never grabs hold */ |
3041 | 3098 | if (specialdmg) { |
3099 | +#if 0 /*JP*/ | |
3042 | 3100 | You("%s %s%s", verb, mon_nam(mon), exclam(specialdmg)); |
3101 | +#else | |
3102 | + You("%sをつかんだ%s", mon_nam(mon), exclam(specialdmg)); | |
3103 | +#endif | |
3043 | 3104 | if (silverhit && flags.verbose) |
3044 | 3105 | silver_sears(&youmonst, mon, silverhit); |
3045 | 3106 | sum[i] = damageum(mon, mattk, specialdmg); |
@@ -3308,7 +3369,7 @@ boolean wep_was_destroyed; | ||
3308 | 3369 | /*JP |
3309 | 3370 | pline("A hail of magic missiles narrowly misses you!"); |
3310 | 3371 | */ |
3311 | - pline("魔法の矢の雨をなんとかかわした!"); | |
3372 | + pline("魔法の矢の雨がかすめていった!"); | |
3312 | 3373 | } else { |
3313 | 3374 | /*JP |
3314 | 3375 | You("are hit by magic missiles appearing from thin air!"); |
@@ -263,7 +263,10 @@ struct monst *grd; | ||
263 | 263 | && um_dist(grd->mx, grd->my, 1)) { |
264 | 264 | if (grd->mpeaceful) { |
265 | 265 | if (canspotmon(grd)) /* see or sense via telepathy */ |
266 | +/*JP | |
266 | 267 | pline("%s becomes irate.", Monnam(grd)); |
268 | +*/ | |
269 | + pline("%sは激怒した.", Monnam(grd)); | |
267 | 270 | grd->mpeaceful = 0; /* bypass setmangry() */ |
268 | 271 | } |
269 | 272 | /* if arriving outside guard's temporary corridor, give the |
@@ -1192,7 +1195,10 @@ register struct monst *grd; | ||
1192 | 1195 | /* We're stuck, so try to find a new destination. */ |
1193 | 1196 | if (!find_guard_dest(grd, &egrd->gdx, &egrd->gdy) |
1194 | 1197 | || (egrd->gdx == gx && egrd->gdy == gy)) { |
1198 | +/*JP | |
1195 | 1199 | pline("%s, confused, disappears.", Monnam(grd)); |
1200 | +*/ | |
1201 | + pline("%sは混乱し,消えた.", Monnam(grd)); | |
1196 | 1202 | disappear_msg_seen = TRUE; |
1197 | 1203 | goto cleanup; |
1198 | 1204 | } else |
@@ -476,7 +476,9 @@ struct monst *magr UNUSED; | ||
476 | 476 | struct monst *mdef; |
477 | 477 | long silverhit; |
478 | 478 | { |
479 | +#if 0 /*JP*/ | |
479 | 480 | char rings[20]; /* plenty of room for "rings" */ |
481 | +#endif | |
480 | 482 | int ltyp = ((uleft && (silverhit & W_RINGL) != 0L) |
481 | 483 | ? uleft->otyp : STRANGE_OBJECT), |
482 | 484 | rtyp = ((uright && (silverhit & W_RINGR) != 0L) |
@@ -494,6 +496,7 @@ long silverhit; | ||
494 | 496 | silver [see hmonas(uhitm.c) for explanation of 'multi_claw'] */ |
495 | 497 | both = ((ltyp == rtyp && uleft->dknown == uright->dknown) |
496 | 498 | || (l_ag && r_ag)); |
499 | +#if 0 /*JP*/ | |
497 | 500 | Sprintf(rings, "ring%s", both ? "s" : ""); |
498 | 501 | Your("%s%s %s %s!", |
499 | 502 | (l_ag || r_ag) ? "silver " |
@@ -501,6 +504,14 @@ long silverhit; | ||
501 | 504 | : ((silverhit & W_RINGL) != 0L) ? "left " |
502 | 505 | : "right ", |
503 | 506 | rings, vtense(rings, "sear"), mon_nam(mdef)); |
507 | +#else | |
508 | + Your("%s指輪が%sを焼いた!", | |
509 | + (l_ag || r_ag) ? "銀の" | |
510 | + : both ? "" | |
511 | + : ((silverhit & W_RINGL) != 0L) ? "左の" | |
512 | + : "右の", | |
513 | + mon_nam(mdef)); | |
514 | +#endif | |
504 | 515 | } |
505 | 516 | } |
506 | 517 |
@@ -223,7 +223,10 @@ struct obj *wep; | ||
223 | 223 | |
224 | 224 | wep->owornmask |= W_WEP; |
225 | 225 | if (wep->otyp == AKLYS && (wep->owornmask & W_WEP) != 0) |
226 | +/*JP | |
226 | 227 | You("secure the tether."); |
228 | +*/ | |
229 | + You("ひもをしっかりと固定した."); | |
227 | 230 | prinv((char *) 0, wep, 0L); |
228 | 231 | wep->owornmask = dummy; |
229 | 232 | } |
@@ -922,12 +925,20 @@ register int amount; | ||
922 | 925 | |
923 | 926 | if (amount >= 0 && uwep && will_weld(uwep)) { /* cursed tin opener */ |
924 | 927 | if (!Blind) { |
928 | +#if 0 /*JP*/ | |
925 | 929 | Sprintf(buf, "%s with %s aura.", |
926 | 930 | Yobjnam2(uwep, "glow"), an(hcolor(NH_AMBER))); |
931 | +#else | |
932 | + Sprintf(buf, "%sは%sオーラにつつまれた.", | |
933 | + xname(uwep), hcolor(NH_AMBER)); | |
934 | +#endif | |
927 | 935 | uwep->bknown = !Hallucination; |
928 | 936 | } else { |
929 | 937 | /* cursed tin opener is wielded in right hand */ |
938 | +/*JP | |
930 | 939 | Sprintf(buf, "Your right %s tingles.", body_part(HAND)); |
940 | +*/ | |
941 | + Sprintf(buf, "あなたの右%sはちくちくした.", body_part(HAND)); | |
931 | 942 | } |
932 | 943 | uncurse(uwep); |
933 | 944 | update_inventory(); |
@@ -2123,11 +2123,19 @@ struct obj *obj, *otmp; | ||
2123 | 2123 | /* we don't want to force alive vs dead |
2124 | 2124 | determination for Schroedinger's Cat here, |
2125 | 2125 | so just make probing be inconclusive for it */ |
2126 | +#if 0 /*JP*/ | |
2126 | 2127 | You("aren't sure whether %s has %s or its corpse inside.", |
2127 | 2128 | the(xname(obj)), |
2128 | 2129 | /* unfortunately, we can't tell whether rndmonnam() |
2129 | 2130 | picks a form which can't leave a corpse */ |
2130 | 2131 | an(Hallucination ? rndmonnam((char *) 0) : "cat")); |
2132 | +#else | |
2133 | + pline("%sに%sが入っているのかその死体が入っているのかわからない.", | |
2134 | + xname(obj), | |
2135 | + /* unfortunately, we can't tell whether rndmonnam() | |
2136 | + picks a form which can't leave a corpse */ | |
2137 | + Hallucination ? rndmonnam((char *) 0) : "猫"); | |
2138 | +#endif | |
2131 | 2139 | obj->cknown = 0; |
2132 | 2140 | } else { |
2133 | 2141 | struct obj *o; |
@@ -2227,8 +2235,13 @@ struct obj *obj, *otmp; | ||
2227 | 2235 | } else { |
2228 | 2236 | if (cansee(ox, oy)) { |
2229 | 2237 | if (canspotmon(mtmp)) { |
2238 | +#if 0 /*JP*/ | |
2230 | 2239 | pline("%s is resurrected!", |
2231 | 2240 | upstart(noname_monnam(mtmp, ARTICLE_THE))); |
2241 | +#else | |
2242 | + pline("%sは生き返った!", | |
2243 | + upstart(noname_monnam(mtmp, ARTICLE_THE))); | |
2244 | +#endif | |
2232 | 2245 | learn_it = TRUE; |
2233 | 2246 | } else { |
2234 | 2247 | /* saw corpse but don't see monster: maybe |
@@ -2236,7 +2249,10 @@ struct obj *obj, *otmp; | ||
2236 | 2249 | a different spot than <ox,oy> */ |
2237 | 2250 | if (!type_is_pname(&mons[corpsenm])) |
2238 | 2251 | corpsname = The(corpsname); |
2252 | +/*JP | |
2239 | 2253 | pline("%s disappears.", corpsname); |
2254 | +*/ | |
2255 | + pline("%sは消えた.", corpsname); | |
2240 | 2256 | } |
2241 | 2257 | } else { |
2242 | 2258 | /* couldn't see corpse's location */ |
@@ -2245,7 +2261,10 @@ struct obj *obj, *otmp; | ||
2245 | 2261 | if (!type_is_pname(&mons[corpsenm])) |
2246 | 2262 | corpsname = an(corpsname); |
2247 | 2263 | if (!Hallucination) |
2264 | +/*JP | |
2248 | 2265 | You_hear("%s reviving.", corpsname); |
2266 | +*/ | |
2267 | + You_hear("%sが生き返る音を聞いた.", corpsname); | |
2249 | 2268 | else |
2250 | 2269 | /*JP |
2251 | 2270 | You_hear("a defibrillator."); |
@@ -3093,7 +3112,11 @@ boolean youattack, allow_cancel_kill, self_cancel; | ||
3093 | 3112 | if (!Blind) |
3094 | 3113 | pline(writing_vanishes, your); |
3095 | 3114 | else /* note: "dark" rather than "heavy" is intentional... */ |
3115 | +#if 0 /*JP*/ | |
3096 | 3116 | You_feel("%s headed.", Hallucination ? "dark" : "light"); |
3117 | +#else /*いい訳語を思いつかないので幻覚でメッセージを変えない */ | |
3118 | + You_feel("軽はずみだった気がした."); | |
3119 | +#endif | |
3097 | 3120 | u.mh = 0; /* fatal; death handled by rehumanize() */ |
3098 | 3121 | } |
3099 | 3122 | if (Unchanging && u.mh > 0) |
@@ -5626,9 +5649,11 @@ int osym, dmgtyp; | ||
5626 | 5649 | pline("%s %s %s!", mult, xname(obj), |
5627 | 5650 | destroy_strings[dindx][(cnt > 1L)]); |
5628 | 5651 | #else |
5629 | - mult = (cnt == quan) | |
5630 | - ? "" | |
5631 | - : (cnt == 1L) ? "のひとつ" : "のいくつか"; | |
5652 | + mult = (cnt == 1L) | |
5653 | + ? ((quan == 1L) ? "" /* 1 of 1 */ | |
5654 | + : "のひとつ") /* 1 of N */ | |
5655 | + : ((cnt < quan) ? "のいくつか" /* n of N */ | |
5656 | + : "の全て"); /* N of N */ | |
5632 | 5657 | pline("あなたの%s%sは%s!", xname(obj), mult, |
5633 | 5658 | destroy_strings[dindx][(cnt > 1L)]); |
5634 | 5659 | #endif |