/*
 * 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_RUN
        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_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"
}
