/*
 * WineFile
 * Japanese Language Support
 *
 * Copyright 2000 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 *
 * 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 */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "ファイル(&F)"  {
        MENUITEM "開く(&O)\tEnter",                ID_ACTIVATE
        MENUITEM "移動(&M)...\tF7",                ID_FILE_MOVE
        MENUITEM "コピー(&C)...\tF8",                ID_FILE_COPY
        MENUITEM "&In Clipboard...\tF9",        118
        MENUITEM "削除(&D)\tDel",                ID_FILE_DELETE
        MENUITEM "名前の変更(&N)...",                  109
        MENUITEM "プロパティ(&I)...\tAlt+Enter",   ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "圧縮(&O)...",                119
        MENUITEM "解凍(&O)...",              120
        MENUITEM SEPARATOR
        MENUITEM "実行(&R)...",                     ID_EXECUTE
        MENUITEM "印刷(&P)...",                   102
        MENUITEM "関連付け...",                103
        MENUITEM SEPARATOR
        MENUITEM "ディレクトリを作成(&E)...",        111
        MENUITEM "検索(&H)...",                  104
        MENUITEM "ファイルを選択(&S)...",            116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "終了(&X)\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "終了(&X)",                       ID_FILE_EXIT
#endif
    }

    POPUP "ディスク(&D)"  {
        MENUITEM "ディスクをコピー(&C)...",               201
        MENUITEM "&Label Disk...",              202
        MENUITEM SEPARATOR
        MENUITEM "ディスクをフォーマット(&F)...",             ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Make System Disk...", -1 /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "ネットワークドライブに接続(&N)",      ID_CONNECT_NETWORK_DRIVE
        MENUITEM "ネットワークドライブを切断(&D)",   ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Share as...",                 254
        MENUITEM "&Remove Share...",            255
        MENUITEM SEPARATOR
        MENUITEM "ドライブを選択(&S)...",            251
    }

    POPUP "ディレクトリ(&R)"  {
        MENUITEM "&Next Level\t+",              301
        MENUITEM "ツリーを展開(&T)\t*",             302
        MENUITEM "すべてを展開(&A)\tStrg+*",         303
        MENUITEM "ツリーを折り畳む(&T)\t-",           304
        MENUITEM SEPARATOR
        MENUITEM "&Mark Children",              505
    }

    POPUP "表示(&V)"  {
        MENUITEM "ツリーとディレクトリ(&R)",         413
        MENUITEM "ツリーのみ(&E)",                  411
        MENUITEM "ディレクトリのみ(&O)",             412
        MENUITEM SEPARATOR
        MENUITEM "分割(&L)",                      ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "名前(&N)",                       ID_VIEW_NAME
        MENUITEM "すべてのファイル詳細(&A)",           ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "部分詳細(&P)...",         ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "名前で並べ替え(&S)",               ID_VIEW_SORT_NAME
        MENUITEM "種類で並べ替え(&B)",               ID_VIEW_SORT_TYPE
        MENUITEM "サイズで並べ替え(&Z)",               ID_VIEW_SORT_SIZE
        MENUITEM "日付で並べ替え(&D)",               ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Filter by &...",              ID_VIEW_FILTER
    }

    POPUP "オプション(&O)"  {
        MENUITEM "確認(&C)...",            501
        MENUITEM "フォント(&F)...",                    ID_SELECT_FONT
        MENUITEM "ツールバーをカスタマイズ(&B)...",       512
        MENUITEM SEPARATOR
        MENUITEM "ツールバー(&T)",                    ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "ドライブバー(&D)",                   ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "ステータスバー(&S)",                 ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "全画面表示(&U)\tCtrl+Shift+S",  ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Minimize on run",            504
        MENUITEM "終了時に設定を保存(&S)",      ID_VIEW_SAVESETTINGS
    }


    POPUP "セキュリティ(&S)"  {
        MENUITEM "&Access...",                  605
        MENUITEM "&Logging...",                 606
        MENUITEM "&Owner...",                   607
    }

    POPUP "ウィンドウ(&W)"  {
        MENUITEM "新規ウィンドウ(&W)",                 ID_WINDOW_NEW
        MENUITEM "重ねて表示\tCtrl+F5",          ID_WINDOW_CASCADE
        MENUITEM "上下に並べて表示(&H)",          ID_WINDOW_TILE_HORZ
        MENUITEM "左右に並べて表示(&V)\tCtrl+F4",   ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Arrange Automatically",       ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Arrange &Symbols",            ID_WINDOW_ARRANGE
        MENUITEM "更新(&R)\tF5",                ID_REFRESH
    }

    POPUP "ヘルプ(&H)"  {
        MENUITEM "ヘルプ トピック(&H)\tF1",            ID_HELP
        MENUITEM "ヘルプの検索(&S)...\tF1",         ID_HELP
        MENUITEM "ヘルプを使う(&U)\tF1",             ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "Winefile について(&A)...",          ID_ABOUT
    }
}


IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "実行"
FONT 9, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "コマンド(&C):", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    CONTROL         "As &Symbol", 214, "Button", BS_AUTOCHECKBOX|WS_TABSTOP,3, 45, 71, 12
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "キャンセル", 2, 158, 23, 47, 14
    PUSHBUTTON      "ヘルプ(&H)", 254, 158, 43, 47, 14
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "移動先を選択"
FONT 9, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "パス(&P):", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "キャンセル", 2, 158, 23, 47, 14
    PUSHBUTTON      "参照(&B)", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "By File Type"
FONT 9, "MS Shell Dlg"
BEGIN
    LTEXT           "&Name:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "File Type",-1,7,23,87,56
    CONTROL         "&Directories",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programs",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Docu&ments",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Other files",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Show Hidden/&System Files",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Properties for %s"
FONT 9, "MS Shell Dlg"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,191,29,50,14
    LTEXT           "&File Name:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Full &Path:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Last Change:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Version:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Cop&yright:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Size:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Attributes",-1,7,79,158,46
    CONTROL         "&Read Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "H&idden",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archive",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&System",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Compressed",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Version Information",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Applying font settings"
    IDS_FONT_SEL_ERROR      "Error while selecting new font."
}

STRINGTABLE
{
    IDS_WINEFILE            "Wine ファイルマネージャ"
    IDS_ERROR               "Error"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Desktop"
    IDS_SHELL               "シェル"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "未実装"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "名前"
    IDS_COL_SIZE            "サイズ"
    IDS_COL_CDATE           "CDate"
    IDS_COL_ADATE           "ADate"
    IDS_COL_MDATE           "MDate"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "リンク"
    IDS_COL_ATTR            "属性"
    IDS_COL_SEC             "セキュリティ"

    IDS_FREE_SPACE_FMT      "%s of %s free"
}
