Kentaro Shirakata
argra****@users*****
2005年 6月 5日 (日) 18:02:48 JST
Index: jnethack/src/options.c diff -u jnethack/src/options.c:1.13 jnethack/src/options.c:1.14 --- jnethack/src/options.c:1.13 Tue Apr 26 04:21:43 2005 +++ jnethack/src/options.c Sun Jun 5 18:02:47 2005 @@ -210,15 +210,34 @@ * a different format */ int optflags; } compopt[] = { +#if 0 /*JP*/ { "align", "your starting alignment (lawful, neutral, or chaotic)", 8, DISP_IN_GAME }, { "align_message", "message window alignment", 20, DISP_IN_GAME }, /*WC*/ { "align_status", "status window alignment", 20, DISP_IN_GAME }, /*WC*/ { "altkeyhandler", "alternate key handler", 20, DISP_IN_GAME }, +#else /*JP*/ + { "align", "ゲームスタート時の属性 (lawful, neutral, or chaoticのいずれか)", + 8, DISP_IN_GAME }, + { "align_message", "メッセージウィンドウの揃え", 20, DISP_IN_GAME }, /*WC*/ + { "align_status", "状況ウィンドウの揃え", 20, DISP_IN_GAME }, /*WC*/ + { "altkeyhandler", "ALTキーハンドラ", 20, DISP_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "boulder", "the symbol to use for displaying boulders", 1, SET_IN_GAME }, +#else /*JP*/ + { "boulder", "巨岩を表示するシンボル文字", + 1, SET_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "catname", "the name of your (first) cat (e.g., catname:Tabby)", PL_PSIZ, DISP_IN_GAME }, +#else /*JP*/ + { "catname", "冒険を供にする(最初の)猫の名前 (例 catname:たま)", + PL_PSIZ, DISP_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "disclose", "the kinds of information to disclose at end of game", sizeof(flags.end_disclose) * 2, SET_IN_GAME }, @@ -226,8 +245,23 @@ PL_PSIZ, DISP_IN_GAME }, { "dungeon", "the symbols to use in drawing the dungeon map", MAXDCHARS+1, SET_IN_FILE }, +#else /*JP*/ + { "disclose", "ゲーム終了時に見る情報の種類", + sizeof(flags.end_disclose) * 2, + SET_IN_GAME }, + { "dogname", "冒険を供にする(最初の)犬の名前 (例 dogname:ポチ)", + PL_PSIZ, DISP_IN_GAME }, + { "dungeon", "ダンジョンを描画するシンボル文字", + MAXDCHARS+1, SET_IN_FILE }, +#endif /*JP*/ +#if 0 /*JP*/ { "effects", "the symbols to use in drawing special effects", MAXECHARS+1, SET_IN_FILE }, +#else /*JP*/ + { "effects", "特殊効果を描画するシンボル文字", + MAXECHARS+1, SET_IN_FILE }, +#endif /*JP*/ +#if 0 /*JP*/ { "font_map", "the font to use in the map window", 40, DISP_IN_GAME }, /*WC*/ { "font_menu", "the font to use in menus", 40, DISP_IN_GAME }, /*WC*/ { "font_message", "the font to use in the message window", @@ -241,10 +275,35 @@ { "font_text", "the font to use in text windows", 40, DISP_IN_GAME }, /*WC*/ { "fruit", "the name of a fruit you enjoy eating", PL_FSIZ, SET_IN_GAME }, +#else /*JP*/ + { "font_map", "マップウィンドウに使用するフォント", 40, DISP_IN_GAME }, /*WC*/ + { "font_menu", "メニューに使用するフォント", 40, DISP_IN_GAME }, /*WC*/ + { "font_message", "メッセージウィンドウに使用するフォント", + 40, DISP_IN_GAME }, /*WC*/ + { "font_size_map", "マップフォントのサイズ", 20, DISP_IN_GAME }, /*WC*/ + { "font_size_menu", "メニューフォントのサイズ", 20, DISP_IN_GAME }, /*WC*/ + { "font_size_message", "メッセージフォントのサイズ", 20, DISP_IN_GAME }, /*WC*/ + { "font_size_status", "状況フォントのサイズ", 20, DISP_IN_GAME }, /*WC*/ + { "font_size_text", "テキストフォントのサイズ", 20, DISP_IN_GAME }, /*WC*/ + { "font_status", "状況ウィンドウに使用するフォント", 40, DISP_IN_GAME }, /*WC*/ + { "font_text", "テキストウィンドウに使用するフォント", 40, DISP_IN_GAME }, /*WC*/ + { "fruit", "好物の果物の名前", PL_FSIZ, SET_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "gender", "your starting gender (male or female)", 8, DISP_IN_GAME }, +#else /*JP*/ + { "gender", "ゲーム開始時の性別(male または female)", + 8, DISP_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "horsename", "the name of your (first) horse (e.g., horsename:Silver)", PL_PSIZ, DISP_IN_GAME }, +#else /*JP*/ + { "horsename", "冒険を供にする(最初の)馬の名前 (例 ghoulname:シルバー)", + PL_PSIZ, DISP_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "map_mode", "map display mode under Windows", 20, DISP_IN_GAME }, /*WC*/ { "menustyle", "user interface for object selection", MENUTYPELEN, SET_IN_GAME }, @@ -273,13 +332,61 @@ # else {"msg_window", "the type of message window required", 1, SET_IN_FILE}, # endif +#else /*JP*/ + { "map_mode", "ウィンドウ表示時のマップの表示モード", 20, DISP_IN_GAME }, /*WC*/ + { "menucolor", "メニューの色設定", PL_PSIZ, SET_IN_FILE }, + { "menustyle", "オブジェクトを選択するときのユーザーインタフェース", + MENUTYPELEN, SET_IN_GAME }, + { "menu_deselect_all", "全てのアイテムを非選択", 4, SET_IN_FILE }, + { "menu_deselect_page", "現在表示されているページのアイテムを非選択", + 4, SET_IN_FILE }, + { "menu_first_page", "メニューの最初のページへ", + 4, SET_IN_FILE }, + { "menu_headings", "強調,反転または下線で種類を表示する", 9, SET_IN_GAME }, + { "menu_invert_all", "全てのアイテムを反転", 4, SET_IN_FILE }, + { "menu_invert_page", "現在表示されているページのアイテムを反転", + 4, SET_IN_FILE }, + { "menu_last_page", "メニューの最後のページへ", 4, SET_IN_FILE }, + { "menu_next_page", "次のメニューのページへ", 4, SET_IN_FILE }, + { "menu_previous_page", "前のメニューのページへ", 4, SET_IN_FILE }, + { "menu_search", "メニューの検索", 4, SET_IN_FILE }, + { "menu_select_all", "全てのアイテムを選択", 4, SET_IN_FILE }, + { "menu_select_page", "現在表示されている全てのアイテムを選択", + 4, SET_IN_FILE }, + { "monsters", "モンスターに使用されるシンボル文字", + MAXMCLASSES, SET_IN_FILE }, + { "msghistory", "先頭行に表示されたメッセージ履歴の保存数", + 5, DISP_IN_GAME }, +# ifdef TTY_GRAPHICS + {"msg_window", "メッセージウィンドウのタイプを設定",1, SET_IN_GAME}, +# else + {"msg_window", "メッセージウィンドウのタイプを設定", 1, SET_IN_FILE}, +# endif +#endif /*JP*/ +#if 0 /*JP*/ { "name", "your character's name (e.g., name:Merlin-W)", PL_NSIZ, DISP_IN_GAME }, { "number_pad", "use the number pad", 1, SET_IN_GAME}, +#else /*JP*/ + { "name", "あなたの名前 (例 name:マーリン-W)", + PL_NSIZ, DISP_IN_GAME }, + { "number_pad", "ナンバーパッドを使用する", 1, SET_IN_GAME}, +#endif /*JP*/ +#if 0 /*JP*/ { "objects", "the symbols to use for objects", MAXOCLASSES, SET_IN_FILE }, +#else /*JP*/ + { "objects", "アイテムに使用されるシンボル文字", + MAXOCLASSES, SET_IN_FILE }, +#endif /*JP*/ +#if 0 /*JP*/ { "packorder", "the inventory order of the items in your pack", MAXOCLASSES, SET_IN_GAME }, +#else /*JP*/ + { "packorder", "背負い袋内の物の順番を決めるシンボル", + MAXOCLASSES, SET_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ #ifdef CHANGE_COLOR { "palette", "palette (00c/880/-fff is blue/yellow/reverse white)", 15 , SET_IN_GAME }, @@ -288,6 +395,17 @@ 15, SET_IN_FILE }, # endif #endif +#else /*JP*/ +#ifdef CHANGE_COLOR + { "palette", "パレット (00c/880/-fffはそれぞれ青/黄/反転白を示す)", + 15 , SET_IN_GAME }, +# if defined(MAC) + { "hicolor", "パレットが同じとき、指示したものだけ反転させる", + 15, SET_IN_FILE }, +# endif +#endif +#endif /*JP*/ +#if 0 /*JP*/ { "pettype", "your preferred initial pet type", 4, DISP_IN_GAME }, { "pickup_burden", "maximum burden picked up before prompt", 20, SET_IN_GAME }, @@ -295,12 +413,31 @@ MAXOCLASSES, SET_IN_GAME }, { "player_selection", "choose character via dialog or prompts", 12, DISP_IN_GAME }, +#else /*JP*/ + { "pettype", "あなたの選択した初期ペットの種類", 4, DISP_IN_GAME }, + { "pickup_burden", "拾うときに最大荷重になる手前で確認する", + 20, SET_IN_GAME }, + { "pickup_types", "自動で拾いあげる物のシンボル", + MAXOCLASSES, SET_IN_GAME }, + { "player_selection", "キャラクター選択にダイアログや確認画面を使う", + 12, DISP_IN_GAME }, +#endif +#if 0 /*JP*/ { "race", "your starting race (e.g., Human, Elf)", PL_CSIZ, DISP_IN_GAME }, { "role", "your starting role (e.g., Barbarian, Valkyrie)", PL_CSIZ, DISP_IN_GAME }, { "runmode", "display frequency when `running' or `travelling'", sizeof "teleport", SET_IN_GAME }, +#else /*JP*/ + { "race", "ゲーム開始時の種族 (例 Human, Elf)", + PL_CSIZ, DISP_IN_GAME }, + { "role", "ゲーム開始時の職業 (例 Barbarian, Valkyrie)", + PL_CSIZ, DISP_IN_GAME }, + { "runmode", "トラベルコマンド等での連続移動時の描画頻度", + sizeof "teleport", SET_IN_GAME }, +#endif +#if 0 /*JP*/ { "scores", "the parts of the score list you wish to see", 32, SET_IN_GAME }, { "scroll_amount", "amount to scroll map when scroll_margin is reached", @@ -311,11 +448,34 @@ #endif { "suppress_alert", "suppress alerts about version-specific features", 8, SET_IN_GAME }, +#else /*JP*/ + { "scores", "ゲーム終了時に見るスコアの種類", + 32, SET_IN_GAME }, + { "scroll_amount", "scroll_marginに届いたときのマップスクロール量", + 20, DISP_IN_GAME }, /*WC*/ + { "scroll_margin", "マップ端からのマップスクロール開始距離", 20, DISP_IN_GAME }, /*WC*/ +#ifdef MSDOS + { "soundcard", "使用しているサウンドカードの種類", 20, SET_IN_FILE }, +#endif + { "suppress_alert", "バージョン間の違いに関する警告メッセージの無効化", + 8, SET_IN_GAME }, +#endif /*JP*/ +#if 0 /*JP*/ { "tile_width", "width of tiles", 20, DISP_IN_GAME}, /*WC*/ { "tile_height", "height of tiles", 20, DISP_IN_GAME}, /*WC*/ { "tile_file", "name of tile file", 70, DISP_IN_GAME}, /*WC*/ { "traps", "the symbols to use in drawing traps", MAXTCHARS+1, SET_IN_FILE }, +#else /*JP*/ + { "tile_width", "タイルの幅", 20, DISP_IN_GAME}, /*WC*/ + { "tile_height", "タイルの高さ", 20, DISP_IN_GAME}, /*WC*/ + { "tile_file", "タイルファイルの名前", 70, DISP_IN_GAME}, /*WC*/ + { "tileset", "あらかじめ設定されたタイルセット名を使用する", + PL_PSIZ, SET_IN_GAME }, + { "traps", "罠を描画するシンボル文字", + MAXTCHARS+1, SET_IN_FILE }, +#endif /*JP*/ +#if 0 /*JP*/ { "vary_msgcount", "show more old messages at a time", 20, DISP_IN_GAME }, /*WC*/ #ifdef MSDOS { "video", "method of video updating", 20, SET_IN_FILE }, @@ -329,9 +489,30 @@ #ifdef WIN32CON {"subkeyvalue", "override keystroke value", 7, SET_IN_FILE}, #endif +#else /*JP*/ + { "vary_msgcount", "一度に表示するメッセージの数", 20, DISP_IN_GAME }, /*WC*/ +#ifdef MSDOS + { "video", "使用するビデオモードを設定する", 20, SET_IN_FILE }, +#endif +#ifdef VIDEOSHADES + { "videocolors", "内蔵スクリーンルーチン用のカラーマップを用いる", + 40, DISP_IN_GAME }, + { "videoshades", "表示にグレイスケールを用いる", + 32, DISP_IN_GAME }, +#endif +#ifdef WIN32CON + {"subkeyvalue", "キーマッピングを変更する", 7, SET_IN_FILE}, +#endif +#endif /*JP*/ +#if 0 /*JP*/ { "windowcolors", "the foreground/background colors of windows", /*WC*/ 80, DISP_IN_GAME }, { "windowtype", "windowing system to use", WINTYPELEN, DISP_IN_GAME }, +#else /*JP*/ + { "windowcolors", "ウィンドウを指定した前景色/背景色で表示する", /*WC*/ + 80, DISP_IN_GAME }, + { "windowtype", "使用するウインドウシステム", WINTYPELEN, DISP_IN_GAME }, +#endif /*JP*/ #if 1 /*JP*/ { "kcode", "端末の漢字コード,", 4, SET_IN_FILE }, #endif @@ -1069,7 +1250,11 @@ preferred_pet = 'n'; break; default: +#if 0 /*JP*/ pline("Unrecognized pet type '%s'.", op); +#else + pline("'%s'はペットの種類として受け付けられません.", op); +#endif break; } } else if (negated) preferred_pet = 'n'; @@ -1686,8 +1871,13 @@ if (flags.menu_style == MENU_TRADITIONAL || flags.menu_style == MENU_COMBINATION) { use_menu = FALSE; +#if 0 /*JP*/ Sprintf(qbuf, "New pickup_types: [%s am] (%s)", ocl, *tbuf ? tbuf : "all"); +#else + Sprintf(qbuf, "新しいpickup_typeを入力してください:[%s am] (%s)", + ocl, *tbuf ? tbuf : "all"); +#endif getlin(qbuf, abuf); op = mungspaces(abuf); if (abuf[0] == '\0' || abuf[0] == '\033') @@ -1696,8 +1886,13 @@ use_menu = TRUE; } if (use_menu) { +#if 0 /*JP*/ (void) choose_classes_menu("Auto-Pickup what?", 1, TRUE, ocl, tbuf); +#else + (void) choose_classes_menu("どれを自動拾いに設定しますか?", 1, + TRUE, ocl, tbuf); +#endif op = tbuf; } } @@ -2281,12 +2476,21 @@ }; static NEARDATA const char *burdentype[] = { +#if 0 /*JP*/ "unencumbered", "burdened", "stressed", "strained", "overtaxed", "overloaded" +#else + "通常", "よろめき", "圧迫", + "限界", "荷重", "超過" +#endif }; static NEARDATA const char *runmodes[] = { +#if 0 /*JP*/ "teleport", "run", "walk", "crawl" +#else + "一瞬", "走る", "歩く", "這う" +#endif }; /* @@ -2409,8 +2613,13 @@ start_menu(tmpwin); any.a_void = 0; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, "Booleans (selecting will toggle value):", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, + "真偽オプション (選択すると値が切り替わります):", MENU_UNSELECTED); +#endif any.a_int = 0; /* first list any other non-modifiable booleans, then modifiable ones */ for (pass = 0; pass <= 1; pass++) @@ -2443,9 +2652,15 @@ indexoffset = boolcount; any.a_void = 0; add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, "Compounds (selecting will prompt for new value):", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, + "文字列オプション (選択すると新しい値の入力を求めます):", + MENU_UNSELECTED); +#endif startpass = DISP_IN_GAME; endpass = SET_IN_GAME; @@ -2487,8 +2702,13 @@ } #ifdef AUTOPICKUP_EXCEPTIONS any.a_int = -1; +#if 0 /*JP*/ Sprintf(buf, "autopickup exceptions (%d currently set)", count_ape_maps((int *)0, (int *)0)); +#else + Sprintf(buf, "自動拾いの対象外 (現在の設定数:%d)", + count_ape_maps((int *)0, (int *)0)); +#endif /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); #endif /* AUTOPICKUP_EXCEPTIONS */ @@ -2500,7 +2720,11 @@ for (i = 0; i < PREFIX_COUNT; i++) doset_add_menu(tmpwin, fqn_prefix_names[i], 0); #endif +#if 0 /*JP*/ end_menu(tmpwin, "Set what options?"); +#else + end_menu(tmpwin, "どのオプションを設定しますか?"); +#endif need_redraw = FALSE; if ((pick_cnt = select_menu(tmpwin, PICK_ANY, &pick_list)) > 0) { /* @@ -2531,7 +2755,11 @@ if (!special_handling(compopt[opt_indx].name, setinitial, fromfile)) { +#if 0 /*JP*/ Sprintf(buf, "Set %s to what?", compopt[opt_indx].name); +#else + Sprintf(buf, "%sに何を設定しますか?", compopt[opt_indx].name); +#endif getlin(buf, buf2); if (buf2[0] == '\033') continue; @@ -2584,7 +2812,11 @@ add_menu(tmpwin, NO_GLYPH, &any, *style_name, 0, ATR_NONE, style_name, MENU_UNSELECTED); } +#if 0 /*JP*/ end_menu(tmpwin, "Select menustyle:"); +#else + end_menu(tmpwin, "メニュースタイルを選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &style_pick) > 0) { flags.menu_style = style_pick->item.a_int - 1; free((genericptr_t)style_pick); @@ -2602,7 +2834,11 @@ add_menu(tmpwin, NO_GLYPH, &any, burden_letters[i], 0, ATR_NONE, burden_name, MENU_UNSELECTED); } +#if 0 /*JP*/ end_menu(tmpwin, "Select encumbrance level:"); +#else + end_menu(tmpwin, "警告を出す荷重レベルを選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &burden_pick) > 0) { flags.pickup_burden = burden_pick->item.a_int - 1; free((genericptr_t)burden_pick); @@ -2621,7 +2857,11 @@ * must correspond to disclosure_options in decl.h */ static const char *disclosure_names[] = { +#if 0 /*JP*/ "inventory", "attributes", "vanquished", "genocides", "conduct" +#else + "所持アイテム", "最終属性", "殺害一覧", "虐殺一覧", "挑戦一覧" +#endif }; int disc_cat[NUM_DISCLOSURE_OPTIONS]; const char *disclosure_name; @@ -2635,7 +2875,11 @@ ATR_NONE, disclosure_name, MENU_UNSELECTED); disc_cat[i] = 0; } +#if 0 /*JP*/ end_menu(tmpwin, "Change which disclosure options categories:"); +#else + end_menu(tmpwin, "どのカテゴリの表示情報オプションを変更しますか:"); +#endif if ((pick_cnt = select_menu(tmpwin, PICK_ANY, &disclosure_category_pick)) > 0) { for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) { opt_idx = disclosure_category_pick[pick_idx].item.a_int - 1; @@ -2650,24 +2894,48 @@ if (disc_cat[i]) { char dbuf[BUFSZ]; menu_item *disclosure_option_pick = (menu_item *)0; +#if 0 /*JP*/ Sprintf(dbuf, "Disclosure options for %s:", disclosure_names[i]); +#else + Sprintf(dbuf, "%sの出力形式:", disclosure_names[i]); +#endif tmpwin = create_nhwindow(NHW_MENU); start_menu(tmpwin); any.a_char = DISCLOSE_NO_WITHOUT_PROMPT; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE,"Never disclose and don't prompt", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, + ATR_NONE,"確認せずに出力もしない", MENU_UNSELECTED); +#endif any.a_void = 0; any.a_char = DISCLOSE_YES_WITHOUT_PROMPT; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE,"Always disclose and don't prompt", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, + ATR_NONE,"確認せずに出力する", MENU_UNSELECTED); +#endif any.a_void = 0; any.a_char = DISCLOSE_PROMPT_DEFAULT_NO; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,"Prompt and default answer to \"No\"", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, + ATR_NONE,"デフォルトを「出力しない」として確認する", MENU_UNSELECTED); +#endif any.a_void = 0; any.a_char = DISCLOSE_PROMPT_DEFAULT_YES; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'd', 0, ATR_NONE,"Prompt and default answer to \"Yes\"", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'd', 0, + ATR_NONE,"デフォルトを「出力する」として確認する", MENU_UNSELECTED); +#endif end_menu(tmpwin, dbuf); if (select_menu(tmpwin, PICK_ONE, &disclosure_option_pick) > 0) { flags.end_disclose[i] = disclosure_option_pick->item.a_char; @@ -2679,16 +2947,28 @@ retval = TRUE; } else if (!strcmp("runmode", optname)) { const char *mode_name; +#if 1 /*JP*/ + const char *mode_letters = "trwc"; +#endif menu_item *mode_pick = (menu_item *)0; tmpwin = create_nhwindow(NHW_MENU); start_menu(tmpwin); for (i = 0; i < SIZE(runmodes); i++) { mode_name = runmodes[i]; any.a_int = i + 1; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, *mode_name, 0, ATR_NONE, mode_name, MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, mode_letters[i], 0, + ATR_NONE, mode_name, MENU_UNSELECTED); +#endif } +#if 0 /*JP*/ end_menu(tmpwin, "Select run/travel display mode:"); +#else + end_menu(tmpwin, "走行/トラベルの表示モードを選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) { iflags.runmode = mode_pick->item.a_int - 1; free((genericptr_t)mode_pick); @@ -2703,18 +2983,42 @@ tmpwin = create_nhwindow(NHW_MENU); start_menu(tmpwin); any.a_char = 's'; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE, "single", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 's', 0, + ATR_NONE, "一行ずつ表示(single)", MENU_UNSELECTED); +#endif any.a_char = 'c'; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE, "combination", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, + ATR_NONE, "single×2の後にfull(combination)", MENU_UNSELECTED); +#endif any.a_char = 'f'; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'f', 0, ATR_NONE, "full", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'f', 0, + ATR_NONE, "古いものから一画面表示(full)", MENU_UNSELECTED); +#endif any.a_char = 'r'; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "reversed", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, + ATR_NONE, "最近のものから一画面表示(reversed)", MENU_UNSELECTED); +#endif +#if 0 /*JP*/ end_menu(tmpwin, "Select message history display type:"); +#else + end_menu(tmpwin, "メッセージ履歴の表示方法を選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) { iflags.prevmsg_window = window_pick->item.a_char; free((genericptr_t)window_pick); @@ -2732,19 +3036,44 @@ tmpwin = create_nhwindow(NHW_MENU); start_menu(tmpwin); any.a_int = ALIGN_TOP; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 't', 0, + ATR_NONE, "上側", MENU_UNSELECTED); +#endif any.a_int = ALIGN_BOTTOM; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE, "bottom", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, + ATR_NONE, "下側", MENU_UNSELECTED); +#endif any.a_int = ALIGN_LEFT; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'l', 0, ATR_NONE, "left", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'l', 0, + ATR_NONE, "左側", MENU_UNSELECTED); +#endif any.a_int = ALIGN_RIGHT; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "right", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, + ATR_NONE, "右側", MENU_UNSELECTED); +#endif +#if 0 /*JP*/ Sprintf(abuf, "Select %s window placement relative to the map:", msg ? "message" : "status"); +#else + Sprintf(abuf, "%sウィンドウのマップに対する表示位置を選択してください:", + msg ? "メッセージ" : "状態"); +#endif end_menu(tmpwin, abuf); if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) { if (msg) iflags.wc_align_message = window_pick->item.a_int; @@ -2755,7 +3084,11 @@ retval = TRUE; } else if (!strcmp("number_pad", optname)) { static const char *npchoices[3] = +#if 0 /*JP*/ {"0 (off)", "1 (on)", "2 (on, DOS compatible)"}; +#else + {"0 (無効)", "1 (有効)", "2 (有効,DOS互換)"}; +#endif const char *npletters = "abc"; menu_item *mode_pick = (menu_item *)0; @@ -2766,7 +3099,11 @@ add_menu(tmpwin, NO_GLYPH, &any, npletters[i], 0, ATR_NONE, npchoices[i], MENU_UNSELECTED); } +#if 0 /*JP*/ end_menu(tmpwin, "Select number_pad mode:"); +#else + end_menu(tmpwin, "number_padモードを選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) { int mode = mode_pick->item.a_int - 1; switch(mode) { @@ -2788,7 +3125,11 @@ destroy_nhwindow(tmpwin); retval = TRUE; } else if (!strcmp("menu_headings", optname)) { +#if 0 /*JP*/ static const char *mhchoices[3] = {"bold", "inverse", "underline"}; +#else + static const char *mhchoices[3] = {"太字", "反転", "下線"}; +#endif const char *npletters = "biu"; menu_item *mode_pick = (menu_item *)0; @@ -2799,7 +3140,11 @@ add_menu(tmpwin, NO_GLYPH, &any, npletters[i], 0, ATR_NONE, mhchoices[i], MENU_UNSELECTED); } +#if 0 /*JP*/ end_menu(tmpwin, "How to highlight menu headings:"); +#else + end_menu(tmpwin, "メニューヘッダの強調方法を選択してください:"); +#endif if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) { int mode = mode_pick->item.a_int - 1; switch(mode) { @@ -2827,10 +3172,17 @@ char apebuf[BUFSZ]; struct autopickup_exception *ape; static const char *action_titles[] = { +#if 0 /*JP*/ "a", "add new autopickup exception", "l", "list autopickup exceptions", "r", "remove existing autopickup exception", "e", "exit this menu", +#else + "a", "新しい自動拾いの例外を追加", + "l", "自動拾いの例外を一覧表示", + "r", "既にある自動拾いの例外を削除", + "e", "このメニューを閉じる", +#endif }; ape_again: opt_idx = 0; @@ -2844,7 +3196,11 @@ add_menu(tmpwin, NO_GLYPH, &any, *action_titles[i], 0, ATR_NONE, action_titles[i+1], MENU_UNSELECTED); } +#if 0 /*JP*/ end_menu(tmpwin, "Do what?"); +#else + end_menu(tmpwin, "どうしますか?"); +#endif if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &pick_list)) > 0) { for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) { opt_idx = pick_list[pick_idx].item.a_int - 1; @@ -2856,7 +3212,11 @@ if (pick_cnt < 1) return FALSE; if (opt_idx == 0) { /* add new */ +#if 0 /*JP*/ getlin("What new autopickup exception pattern?", &apebuf[1]); +#else + getlin("新しい自動拾い例外のパターンを入力してください:", &apebuf[1]); +#endif if (apebuf[1] == '\033') return FALSE; apebuf[0] = '"'; Strcat(apebuf,"\""); @@ -2871,8 +3231,13 @@ if (numapes[pass] == 0) continue; ape = iflags.autopickup_exceptions[pass]; any.a_void = 0; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, (pass == 0) ? "Never pickup" : "Always pickup", +#else + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, + (pass == 0) ? "常に拾わない" : "常に拾う", +#endif MENU_UNSELECTED); for (i = 0; i < numapes[pass] && ape; i++) { any.a_void = (opt_idx == 1) ? 0 : ape; @@ -2882,8 +3247,14 @@ ape = ape->next; } } +#if 0 /*JP*/ Sprintf(apebuf, "%s autopickup exceptions", (opt_idx == 1) ? "List of" : "Remove which"); +#else + Sprintf(apebuf, "%s自動拾い例外%s", + (opt_idx == 1) ? "" : "どの", + (opt_idx == 1) ? "の一覧" : "を削除しますか?"); +#endif end_menu(tmpwin, apebuf); pick_cnt = select_menu(tmpwin, (opt_idx == 1) ? PICK_NONE : PICK_ANY, @@ -2915,31 +3286,59 @@ char *buf; { char ocl[MAXOCLASSES+1]; +#if 0 /*JP*/ static const char none[] = "(none)", randomrole[] = "random", to_be_done[] = "(to be done)", defopt[] = "default", defbrief[] = "def"; +#else + static const char none[] = "(なし)", randomrole[] = "ランダム", + to_be_done[] = "(設定済み)", + defopt[] = "デフォルト", + defbrief[] = "def"; +#endif int i; buf[0] = '\0'; if (!strcmp(optname,"align_message")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_align_message == ALIGN_TOP ? "top" : iflags.wc_align_message == ALIGN_LEFT ? "left" : iflags.wc_align_message == ALIGN_BOTTOM ? "bottom" : iflags.wc_align_message == ALIGN_RIGHT ? "right" : defopt); +#else + Sprintf(buf, "%s", iflags.wc_align_message == ALIGN_TOP ? "上側" : + iflags.wc_align_message == ALIGN_LEFT ? "左側" : + iflags.wc_align_message == ALIGN_BOTTOM ? "下側" : + iflags.wc_align_message == ALIGN_RIGHT ? "右側" : + defopt); +#endif else if (!strcmp(optname,"align_status")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_align_status == ALIGN_TOP ? "top" : iflags.wc_align_status == ALIGN_LEFT ? "left" : iflags.wc_align_status == ALIGN_BOTTOM ? "bottom" : iflags.wc_align_status == ALIGN_RIGHT ? "right" : defopt); +#else + Sprintf(buf, "%s", iflags.wc_align_status == ALIGN_TOP ? "上側" : + iflags.wc_align_status == ALIGN_LEFT ? "左側" : + iflags.wc_align_status == ALIGN_BOTTOM ? "下側" : + iflags.wc_align_status == ALIGN_RIGHT ? "右側" : + defopt); +#endif else if (!strcmp(optname,"align")) Sprintf(buf, "%s", rolestring(flags.initalign, aligns, adj)); #ifdef WIN32CON else if (!strcmp(optname,"altkeyhandler")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.altkeyhandler[0] ? iflags.altkeyhandler : "default"); +#else + Sprintf(buf, "%s", iflags.altkeyhandler[0] ? + iflags.altkeyhandler : defopt); +#endif /*JP*/ #endif else if (!strcmp(optname, "boulder")) Sprintf(buf, "%c", iflags.bouldersym ? @@ -2997,7 +3396,11 @@ else if (!strcmp(optname, "fruit")) Sprintf(buf, "%s", pl_fruit); else if (!strcmp(optname, "gender")) +#if 0 /*JP*/ Sprintf(buf, "%s", rolestring(flags.initgend, genders, adj)); +#else + Sprintf(buf, "%s", rolestring(flags.initgend, genders, j)); +#endif else if (!strcmp(optname, "horsename")) Sprintf(buf, "%s", horsename[0] ? horsename : none); else if (!strcmp(optname, "map_mode")) @@ -3025,10 +3428,17 @@ else if (!strcmp(optname, "menu_invert_all")) Sprintf(buf, "%s", to_be_done); else if (!strcmp(optname, "menu_headings")) { +#if 0 /*JP*/ Sprintf(buf, "%s", (iflags.menu_headings == ATR_BOLD) ? "bold" : (iflags.menu_headings == ATR_INVERSE) ? "inverse" : (iflags.menu_headings == ATR_ULINE) ? "underline" : "unknown"); +#else + Sprintf(buf, "%s", (iflags.menu_headings == ATR_BOLD) ? + "太字" : (iflags.menu_headings == ATR_INVERSE) ? + "反転" : (iflags.menu_headings == ATR_ULINE) ? + "下線" : "不明"); +#endif } else if (!strcmp(optname, "menu_invert_page")) Sprintf(buf, "%s", to_be_done); @@ -3057,9 +3467,15 @@ else if (!strcmp(optname, "name")) Sprintf(buf, "%s", plname); else if (!strcmp(optname, "number_pad")) +#if 0 /*JP*/ Sprintf(buf, "%s", (!iflags.num_pad) ? "0=off" : (iflags.num_pad_mode) ? "2=on, DOS compatible" : "1=on"); +#else + Sprintf(buf, "%s", + (!iflags.num_pad) ? "0=無効" : + (iflags.num_pad_mode) ? "2=有効,DOS互換" : "1=有効"); +#endif else if (!strcmp(optname, "objects")) Sprintf(buf, "%s", to_be_done); else if (!strcmp(optname, "packorder")) { @@ -3071,9 +3487,15 @@ Sprintf(buf, "%s", get_color_string()); #endif else if (!strcmp(optname, "pettype")) +#if 0 /*JP*/ Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat" : (preferred_pet == 'd') ? "dog" : (preferred_pet == 'n') ? "none" : "random"); +#else + Sprintf(buf, "%s", (preferred_pet == 'c') ? "猫" : + (preferred_pet == 'd') ? "犬" : + (preferred_pet == 'n') ? "なし" : randomrole); +#endif else if (!strcmp(optname, "pickup_burden")) Sprintf(buf, "%s", burdentype[flags.pickup_burden] ); else if (!strcmp(optname, "pickup_types")) { @@ -3081,9 +3503,17 @@ Sprintf(buf, "%s", ocl[0] ? ocl : "all" ); } else if (!strcmp(optname, "race")) +#if 0 /*JP*/ Sprintf(buf, "%s", rolestring(flags.initrace, races, noun)); +#else + Sprintf(buf, "%s", rolestring(flags.initrace, races, j)); +#endif else if (!strcmp(optname, "role")) +#if 0 /*JP*/ Sprintf(buf, "%s", rolestring(flags.initrole, roles, name.m)); +#else + Sprintf(buf, "%s", rolestring(flags.initrole, roles, jname.m)); +#endif else if (!strcmp(optname, "runmode")) Sprintf(buf, "%s", runmodes[iflags.runmode]); else if (!strcmp(optname, "scores")) { @@ -3099,7 +3529,11 @@ else Strcpy(buf, defopt); } else if (!strcmp(optname, "player_selection")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_player_selection ? "prompts" : "dialog"); +#else + Sprintf(buf, "%s入力", iflags.wc_player_selection ? "プロンプト" : "ダイアログ"); +#endif #ifdef MSDOS else if (!strcmp(optname, "soundcard")) Sprintf(buf, "%s", to_be_done); @@ -3167,7 +3601,11 @@ #endif if (buf[0]) return buf; +#if 0 /*JP*/ else return "unknown"; +#else + else return "不明"; +#endif } int @@ -3300,27 +3738,54 @@ /* data for option_help() */ static const char *opt_intro[] = { "", +#if 0 /*JP*/ " NetHack Options Help:", +#else /*JP*/ + " NetHackオプションヘルプ:", +#endif /*JP*/ "", #define CONFIG_SLOT 3 /* fill in next value at run-time */ (char *)0, #if !defined(MICRO) && !defined(MAC) +#if 0 /*JP*/ "or use `NETHACKOPTIONS=\"<options>\"' in your environment", +#else /*JP*/ + "または環境変数に`NETHACKOPTIONS=\"<options>\"'と定義できます", +#endif /*JP*/ #endif +#if 0 /*JP*/ "(<options> is a list of options separated by commas)", +#else /*JP*/ + "(<options>はカンマで区切って連続して指定することができます)", +#endif /*JP*/ #ifdef VMS +#if 0 /*JP*/ "-- for example, $ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"", +#else /*JP*/ + "-- 例えば次のようにします:$ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"", +#endif /*JP*/ #endif +#if 0 /*JP*/ "or press \"O\" while playing and use the menu.", "", "Boolean options (which can be negated by prefixing them with '!' or \"no\"):", +#else /*JP*/ + "もしくはゲームプレイ中に\"O\"ボタンを押すことで設定可能です.", + "", + "真偽値オプション (否定の値を指定する場合,'!'もしくは\"no\"を先頭に付加します):", +#endif /*JP*/ (char *)0 }; static const char *opt_epilog[] = { "", +#if 0 /*JP*/ "Some of the options can be set only before the game is started; those", "items will not be selectable in the 'O' command's menu.", +#else + "幾つかのオプションはゲーム開始前のみにしか設定できないものがあります.", + "それらは'O'コマンドのメニューでは選択することができません.", +#endif (char *)0 }; @@ -3332,7 +3797,11 @@ winid datawin; datawin = create_nhwindow(NHW_TEXT); +#if 0 /*JP*/ Sprintf(buf, "Set options as OPTIONS=<options> in %s", configfile); +#else + Sprintf(buf, "オプションは%sの中でOPTIONS=<options>と設定します", configfile); +#endif opt_intro[CONFIG_SLOT] = (const char *) buf; for (i = 0; opt_intro[i]; i++) putstr(datawin, 0, opt_intro[i]); @@ -3350,7 +3819,11 @@ next_opt(datawin, ""); /* Compound options */ +#if 0 /*JP*/ putstr(datawin, 0, "Compound options:"); +#else + putstr(datawin, 0, "文字列オプション:"); +#endif for (i = 0; compopt[i].name; i++) { Sprintf(buf2, "`%s'", compopt[i].name); Sprintf(buf, "%-20s - %s%c", buf2, compopt[i].descr,