/*
 * Regedit resources
 *
 * Copyright 2004 Hajime Segawa
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "resource.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT

/*
 * Menu
 */

IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
    POPUP "レジストリ(&R)"
    BEGIN
        MENUITEM "レジストリのインポート(&I)...",    ID_REGISTRY_IMPORTREGISTRYFILE
        MENUITEM "レジストリのエクスポート(&E)...",    ID_REGISTRY_EXPORTREGISTRYFILE
        MENUITEM SEPARATOR
        MENUITEM "ネットワークレジストリに接続(&C)...", ID_REGISTRY_CONNECTNETWORKREGISTRY, GRAYED
        MENUITEM "ネットワークレジストリから切断(&D)...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "印刷(&P)\tCtrl+P",              ID_REGISTRY_PRINT, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "終了(&x)",                       ID_REGISTRY_EXIT
    END
    POPUP "編集(&E)"
    BEGIN
        MENUITEM "変更(&M)",                     ID_EDIT_MODIFY
        MENUITEM SEPARATOR
        POPUP "新規(&N)"
        BEGIN
            MENUITEM "キー(&K)",                        ID_EDIT_NEW_KEY
            MENUITEM SEPARATOR
            MENUITEM "文字列値(&S)",               ID_EDIT_NEW_STRINGVALUE
            MENUITEM "バイナリ値(&B)",               ID_EDIT_NEW_BINARYVALUE
            MENUITEM "DWORD値(&D)",                ID_EDIT_NEW_DWORDVALUE
            MENUITEM "複数行文字列値(&M)",         ID_EDIT_NEW_MULTI_STRINGVALUE
        END
        MENUITEM SEPARATOR
        MENUITEM "削除(&D)\tDel",                ID_EDIT_DELETE
        MENUITEM "名前の変更(&R)\tF2",                 ID_EDIT_RENAME
        MENUITEM SEPARATOR
        MENUITEM "キー名をコピー(&C)",              ID_EDIT_COPYKEYNAME
        MENUITEM SEPARATOR
        MENUITEM "検索(&F)\tCtrl+F",               ID_EDIT_FIND, GRAYED
        MENUITEM "次の検索候補(&x)\tF3",              ID_EDIT_FINDNEXT, GRAYED
    END
    POPUP "表示(&V)"
    BEGIN
        MENUITEM "ステータスバー(&B)",                 ID_VIEW_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "分割(&l)",                      ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "リフレッシュ(&R)\tF5",                ID_VIEW_REFRESH
    END
    POPUP "お気に入り(&F)"
    BEGIN
        MENUITEM "お気に入りに追加(&A)...",          ID_FAVORITES_ADDTOFAVORITES
        MENUITEM "お気に入りから削除(&R)...",           ID_FAVORITES_REMOVEFAVORITE
    END
    POPUP "ヘルプ(&H)"
    BEGIN
        MENUITEM "ヘルプ(&H)\tF1",            ID_HELP_HELPTOPICS
        MENUITEM SEPARATOR
        MENUITEM "バージョン情報(&A)",      ID_HELP_ABOUT
    END
END

IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
  POPUP ""
  BEGIN
	MENUITEM "変更(&M)",                     ID_EDIT_MODIFY
	MENUITEM "バイナリデータを変更",          ID_EDIT_MODIFY_BIN
	MENUITEM SEPARATOR
	MENUITEM "削除(&D)\tDel",                ID_EDIT_DELETE
	MENUITEM "名前の変更(&R)",                     ID_EDIT_RENAME
  END
  POPUP ""
  BEGIN
        POPUP "新規(&N)"
        BEGIN
            MENUITEM "キー(&K)",                        ID_EDIT_NEW_KEY
            MENUITEM SEPARATOR
            MENUITEM "文字列値(&S)",               ID_EDIT_NEW_STRINGVALUE
            MENUITEM "バイナリ値(&B)",               ID_EDIT_NEW_BINARYVALUE
            MENUITEM "DWORD値(&D)",                ID_EDIT_NEW_DWORDVALUE
            MENUITEM "複数行文字列値(&M)",         ID_EDIT_NEW_MULTI_STRINGVALUE
        END
        MENUITEM SEPARATOR
        MENUITEM "削除(&D)\tDel",                ID_EDIT_DELETE
        MENUITEM "名前の変更(&R)\tF2",                 ID_EDIT_RENAME
        MENUITEM SEPARATOR
        MENUITEM "エクスポート(&E)...",               ID_EDIT_EXPORT
        MENUITEM "キー名をコピー(&C)",              ID_EDIT_COPYKEYNAME
        MENUITEM SEPARATOR
        MENUITEM "検索(&F)\tCtrl+F",               ID_EDIT_FIND, GRAYED
  END
END


/*
 * Dialog
 */

IDD_EXPORT_TEMPLATE DIALOG DISCARDABLE  50, 50, 278, 54
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
    WS_BORDER
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX "レジストリのエクスポート", IDC_EXPORT_BASE, 6, 6, 266, 42, WS_GROUP
    AUTORADIOBUTTON "すべて(&A)", IDC_EXPORT_ALL, 12, 15, 244, 12
    AUTORADIOBUTTON "選択された部分(&E):", IDC_EXPORT_SELECTED, 12, 30, 70, 12
    EDITTEXT IDC_EXPORT_PATH, 82, 30, 184, 12
END

IDD_FIND DIALOG DISCARDABLE  22, 17, 220, 85
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "検索"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "検索:",IDC_STATIC,5,7,119,8
    EDITTEXT        IDC_VALUE_NAME,40,5,125,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    LTEXT           "検索対象:",IDC_STATIC,5, 22, 119, 8
    CHECKBOX        "キー", IDC_FIND_KEYS, 5, 34, 90, 10, WS_TABSTOP | WS_GROUP | BS_AUTOCHECKBOX
    CHECKBOX        "値の名前", IDC_FIND_VALUES, 5, 46, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    CHECKBOX        "値の中身", IDC_FIND_CONTENT, 5, 58, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    CHECKBOX        "完全に一致するものだけ", IDC_FIND_WHOLE, 5, 70, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    DEFPUSHBUTTON   "検索",IDOK,175,5,40,15,WS_GROUP
    PUSHBUTTON      "閉じる",IDCANCEL,175,24,40,15, WS_GROUP
END

IDD_ADDFAVORITE DIALOG DISCARDABLE  22, 17, 210, 55
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "お気に入りに追加"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "名前:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK",IDOK,120,36,40,15,WS_GROUP
    PUSHBUTTON      "キャンセル",IDCANCEL,165,36,40,15,WS_GROUP
END

IDD_DELFAVORITE DIALOG DISCARDABLE  22, 17, 210, 90
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "お気に入りの削除"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "名前:",IDC_STATIC,5,5,119,8
    LISTBOX         IDC_NAME_LIST,5,15,200,52, WS_BORDER | WS_TABSTOP | LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL
    DEFPUSHBUTTON   "OK",IDOK,120,72,40,15,WS_GROUP
    PUSHBUTTON      "キャンセル",IDCANCEL,165,72,40,15,WS_GROUP
END

IDD_EDIT_STRING DIALOG DISCARDABLE  22, 17, 210, 75
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "文字列の編集"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "値の名前:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED
    LTEXT           "データ:",IDC_STATIC,5,30,119,8
    EDITTEXT        IDC_VALUE_DATA,5,40,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK",IDOK,140,60,30,11,WS_GROUP
    PUSHBUTTON   "キャンセル",IDCANCEL,175,60,30,11,WS_GROUP
END

IDD_EDIT_DWORD DIALOG DISCARDABLE  22, 17, 210, 100
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "DWORD値の編集"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "値の名前:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED
    LTEXT           "データ:",IDC_STATIC,5,30,90,8
    EDITTEXT        IDC_VALUE_DATA,5,40,90,12, WS_BORDER | WS_TABSTOP
    GROUPBOX        "ベース", IDC_DWORD_BASE, 120, 30, 85, 37, BS_GROUPBOX
    AUTORADIOBUTTON "16進数", IDC_DWORD_HEX, 130, 40, 60, 10, WS_TABSTOP
    AUTORADIOBUTTON "10進数", IDC_DWORD_DEC, 130, 52, 60, 10, WS_TABSTOP
    DEFPUSHBUTTON   "OK",IDOK,140,80,30,11,WS_GROUP
    PUSHBUTTON   "キャンセル",IDCANCEL,175,80,30,11,WS_GROUP
END

IDD_EDIT_BINARY DIALOG DISCARDABLE  22, 17, 170, 100
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "バイナリ値の編集"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "値の名前:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,160,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL| WS_DISABLED
    LTEXT           "値のデータ:",IDC_STATIC,5,30,90,8
    CONTROL         "",IDC_VALUE_DATA,"HexEdit",WS_TABSTOP,5,40,160,40
    DEFPUSHBUTTON   "OK",IDOK,80,83,40,15,WS_GROUP
    PUSHBUTTON   "キャンセル",IDCANCEL,125,83,40,15,WS_GROUP
END

IDD_EDIT_MULTI_STRING DIALOG DISCARDABLE  22, 17, 210, 175
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "複数行文字列の編集"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "値の名前:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL| WS_DISABLED
    LTEXT           "値のデータ:",IDC_STATIC,5,30,119,8
    EDITTEXT        IDC_VALUE_DATA,5,40,200,112, WS_BORDER | WS_TABSTOP | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN
    DEFPUSHBUTTON   "OK",IDOK,120,156,40,15,WS_GROUP
    PUSHBUTTON   "キャンセル",IDCANCEL,165,156,40,15,WS_GROUP
END

/*
 * String Table
 */

STRINGTABLE DISCARDABLE
BEGIN
    IDS_LIST_COLUMN_NAME    "名前"
    IDS_LIST_COLUMN_TYPE    "タイプ"
    IDS_LIST_COLUMN_DATA    "データ"
END

STRINGTABLE DISCARDABLE
BEGIN
    IDS_APP_TITLE           "レジストリエディタ"
END

STRINGTABLE DISCARDABLE
BEGIN
    ID_REGISTRY_MENU        "レジストリ全体を操作するコマンド"
    ID_EDIT_MENU            "値とキーを編集するコマンド"
    ID_VIEW_MENU            "レジストリウィンドウをカスタマイズするコマンド"
    ID_FAVORITES_MENU       "よく使うキーにアクセスするコマンド"
    ID_HELP_MENU            "レジストリエディタについてのヘルプや情報を表示するコマンド"
    ID_EDIT_NEW_MENU        "新しいキーや値を作成するコマンド"
END

STRINGTABLE DISCARDABLE
BEGIN
    ID_EDIT_MODIFY          "値のデータを変更"
    ID_EDIT_NEW_KEY         "新しいキーを追加"
    ID_EDIT_NEW_STRINGVALUE "新しい文字列値を追加"
    ID_EDIT_NEW_BINARYVALUE "新しいバイナリ値を追加"
    ID_EDIT_NEW_DWORDVALUE  "新しいDWORD値を追加"
    ID_EDIT_NEW_MULTI_STRINGVALUE "新しい複数行文字列値を追加"
    ID_REGISTRY_IMPORTREGISTRYFILE "テキストファイルをレジストリにインポート"
    ID_REGISTRY_EXPORTREGISTRYFILE
                            "レジストリの一部または全部をテキストファイルにエクスポート"
    ID_REGISTRY_CONNECTNETWORKREGISTRY
                            "リモートコンピュータのレジストリに接続"
    ID_REGISTRY_DISCONNECTNETWORKREGISTRY
                            "リモートコンピュータのレジストリから切断"
    ID_REGISTRY_PRINT       "レジストリの一部または全部を印刷"
/*    ID_HELP_HELPTOPICS      "レジストリエディタのヘルプを開く" */
    ID_HELP_ABOUT           "プログラムの情報、バージョン、著作者を表示"
END

STRINGTABLE DISCARDABLE
BEGIN
    ID_REGISTRY_EXIT        "レジストリエディタを終了"
    ID_FAVORITES_ADDTOFAVORITES "キーをお気に入りに追加"
    ID_FAVORITES_REMOVEFAVORITE "キーをお気に入りから削除"
    ID_VIEW_STATUSBAR       "ステータスバーを表示・隠す"
    ID_VIEW_SPLIT           "ペイン間のしきりの位置を変更"
    ID_VIEW_REFRESH         "ウィンドウをリフレッシュ"
    ID_EDIT_DELETE          "選択した項目を削除"
    ID_EDIT_RENAME          "選択した項目の名前を変更"
    ID_EDIT_COPYKEYNAME     "選択したキーの名前をクリップボードにコピー"
    ID_EDIT_FIND            "キー、値、データから文字列を検索"
    ID_EDIT_FINDNEXT        "以前の検索条件において次の候補を検索"
    ID_EDIT_EXPORT          "選択したレジストリ キー以下をテキストファイルに出力"
END

STRINGTABLE DISCARDABLE
BEGIN
    IDS_ERROR		    "エラー"
    IDS_BAD_KEY		    "キー '%s' を削除できません"
    IDS_BAD_VALUE           "値 '%s' を削除できません"
    IDS_UNSUPPORTED_TYPE    "このタイプのキーは編集できません (%u)"
    IDS_TOO_BIG_VALUE       "値が大きすぎます (%u)"
    IDS_DELETE_BOX_TITLE    "値の削除確認"
    IDS_DELETE_BOX_TEXT     "本当に '%s'を削除しますか?"
    IDS_DELETE_BOX_TEXT_MULTIPLE "これらの値を削除しますか?"
    IDS_NEWKEY              "新しいキー #%d"
    IDS_NEWVALUE            "新しい値 #%d"
    IDS_NOTFOUND            "検索文字列 '%s'が見つかりません"
END

STRINGTABLE DISCARDABLE
BEGIN
    IDS_FILEDIALOG_IMPORT_TITLE   "レジストリ ファイルのインポート"
    IDS_FILEDIALOG_EXPORT_TITLE   "レジストリ ファイルのエクスポート"
    IDS_FILEDIALOG_FILTER         "登録ファイル\0*.reg\0Win9x/NT4 登録ファイル (REGEDIT4)\0*.reg\0すべてのファイル (*.*)\0*.*\0\0"
END

STRINGTABLE DISCARDABLE
BEGIN
    IDS_REGISTRY_ROOT_NAME           "マイ コンピュータ"
    IDS_REGISTRY_DEFAULT_VALUE       "(既定)"
    IDS_REGISTRY_VALUE_NOT_SET       "(値の設定なし)"
    IDS_REGISTRY_VALUE_CANT_DISPLAY  "(cannot display value)"
    IDS_REGISTRY_UNKNOWN_TYPE        "(unknown %d)"
END

/*****************************************************************/

/*
 * TEXTINCLUDE
 */

1 TEXTINCLUDE DISCARDABLE
BEGIN
    "resource.h\0"
END

/*****************************************************************/
