/*
 * Copyright 2008 by Katayama Hirofumi MZ
 *
 * 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 "wordpad.h"

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

LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT

IDM_MAINMENU MENU
BEGIN
    POPUP "ファイル(&F)"
    BEGIN
        MENUITEM "新規作成(&N)...\tCtrl+N", ID_FILE_NEW
        MENUITEM "開く(&O)...\tCtrl+O",     ID_FILE_OPEN
        MENUITEM "上書き保存(&S)\tCtrl+S",  ID_FILE_SAVE
        MENUITEM "名前を付けて保存(&A)...", ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "印刷(&P)...\tCtrl+P",     ID_PRINT
        MENUITEM "印刷プレビュー(&W)...",   ID_PREVIEW
        MENUITEM "ページ設定(&E)...",       ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "終了(&X)",                ID_FILE_EXIT
    END
    POPUP "編集(&E)"
    BEGIN
        MENUITEM "元に戻す(&U)\tCtrl+Z",        ID_EDIT_UNDO
        MENUITEM "やり直し(&E)\tCtrl+Y",        ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "切り取り(&T)\tCtrl+X",        ID_EDIT_CUT
        MENUITEM "コピー(&C)\tCtrl+C",          ID_EDIT_COPY
        MENUITEM "貼り付け(&P)\tCtrl+V",        ID_EDIT_PASTE
        MENUITEM "クリア(&C)\tDEL",             ID_EDIT_CLEAR
        MENUITEM "すべて選択(&S)\tCtrl+A",      ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "検索(&F)...\tCtrl+F",         ID_FIND
        MENUITEM "次を検索(&N)\tF3",            ID_FIND_NEXT
        MENUITEM "置換(&R)...\tCtrl+H",         ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "読み取り専用(&O)",            ID_EDIT_READONLY
        MENUITEM "変更あり(&M)",                ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "E&xtras"
        BEGIN
            MENUITEM "Selection &info",         ID_EDIT_SELECTIONINFO
            MENUITEM "Character &format",       ID_EDIT_CHARFORMAT
            MENUITEM "&Def. char format",       ID_EDIT_DEFCHARFORMAT
            MENUITEM "Paragrap&h format",       ID_EDIT_PARAFORMAT
            MENUITEM "&Get text",               ID_EDIT_GETTEXT
        END
    END
    POPUP "表示(&V)"
    BEGIN
        MENUITEM "ツールバー(&T)",              ID_TOGGLE_TOOLBAR
        MENUITEM "書式バー(&F)",                ID_TOGGLE_FORMATBAR
        MENUITEM "ルーラー(&R)",                ID_TOGGLE_RULER
        MENUITEM "ステータス バー(&S)",         ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "オプション(&O)...",           ID_VIEWPROPERTIES
    END
    POPUP "挿入(&I)"
    BEGIN
        MENUITEM "日付と時刻(&D)...",           ID_DATETIME
    END
    POPUP "書式(&O)"
    BEGIN
        MENUITEM "フォント(&F)...",             ID_FONTSETTINGS
        MENUITEM "箇条書き(&B)"                 ID_BULLET
        MENUITEM "段落(&P)..."                  ID_PARAFORMAT
        MENUITEM "タブ(&T)..."                  ID_TABSTOPS
        POPUP "背景(&D)"
        BEGIN
            MENUITEM "システム(&S)\tCtrl+1",        ID_BACK_1
            MENUITEM "&PostThat yellowish\tCtrl+2", ID_BACK_2
        END
    END
    POPUP "ヘルプ(&H)"
    BEGIN
        MENUITEM "Wine Wordpadについて(&A)"      ID_ABOUT
    END
END

IDM_POPUP MENU
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "切り取り(&T)",        ID_EDIT_CUT
        MENUITEM "コピー(&C)",          ID_EDIT_COPY
        MENUITEM "貼り付け(&P)",        ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "箇条書き(&B)"         ID_BULLET
        MENUITEM "段落(&P)..."          ID_PARAFORMAT
    END
END

IDM_COLOR_POPUP MENU
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "黒"       ID_COLOR_BLACK
        MENUITEM "茶色"     ID_COLOR_MAROON
        MENUITEM "緑"       ID_COLOR_GREEN
        MENUITEM "オリーブ" ID_COLOR_OLIVE
        MENUITEM "紺"       ID_COLOR_NAVY
        MENUITEM "紫"       ID_COLOR_PURPLE
        MENUITEM "青緑"     ID_COLOR_TEAL
        MENUITEM "灰色"     ID_COLOR_GRAY
        MENUITEM "銀色"     ID_COLOR_SILVER
        MENUITEM "赤"       ID_COLOR_RED
        MENUITEM "黄緑"     ID_COLOR_LIME
        MENUITEM "黄"       ID_COLOR_YELLOW
        MENUITEM "青"       ID_COLOR_BLUE
        MENUITEM "赤紫"     ID_COLOR_FUCHSIA
        MENUITEM "水色"     ID_COLOR_AQUA
        MENUITEM "白"       ID_COLOR_WHITE
        MENUITEM "自動"     ID_COLOR_AUTOMATIC
    END
END

IDD_DATETIME DIALOG 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "日付と時刻"
FONT 10, "MS Shell Dlg"
BEGIN
    LTEXT        "利用できる形式",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "キャンセル(&C)",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "新規作成"
FONT 10, "MS Shell Dlg"
BEGIN
    LTEXT        "新しい文書形式",-1,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&OK",IDOK,97,12,40,12
    PUSHBUTTON   "キャンセル(&C)",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "段落の設定"
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX "インデント", -1, 10, 10, 120, 68
    LTEXT "左(&L)", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "右(&R)", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "最初の行(&F)", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "整列(&A)", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "キャンセル(&C)", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "タブの設定"
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX "タブの停止位置(&T)", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "追加(&A)", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "削除(&R)", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "キャンセル(&C)", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "すべて削除(&L)", ID_TAB_EMPTY, 137, 51, 50, 15
END

IDD_FORMATOPTS DIALOG 0, 0, 280, 110
STYLE DS_SYSMODAL
CAPTION ""
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX "行の折り返し", -1, 10, 10, 130, 85
    RADIOBUTTON "折り返ししない", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "ウィンドウの境界で折り返す(&W)", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "マージンで折り返す(&M)", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "ツールバー", -1, 150, 10, 120, 85
    CHECKBOX "ツールバー(&T)", IDC_PAGEFMT_TB, 160, 20, 80, 15
    CHECKBOX "書式バー(&F)", IDC_PAGEFMT_FB, 160, 38, 80, 15
    CHECKBOX "ルーラー(&R)", IDC_PAGEFMT_RU, 160, 56, 80, 15
    CHECKBOX "ステータスバー(&S)", IDC_PAGEFMT_SB, 160, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE
BEGIN
    STRING_ALL_FILES,              "すべてのファイル (*.*)"
    STRING_TEXT_FILES_TXT,         "テキスト文書 (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Unicodeテキスト文書(*.txt)"
    STRING_RICHTEXT_FILES_RTF,     "リッチテキスト形式 (*.rtf)"
    STRING_NEWFILE_RICHTEXT,       "リッチテキスト文書"
    STRING_NEWFILE_TXT,            "テキスト文書"
    STRING_NEWFILE_TXT_UNICODE,    "Unicodeテキスト文書"
    STRING_PRINTER_FILES_PRN,      "プリンタファイル (*.PRN)"
END

STRINGTABLE
BEGIN
    STRING_ALIGN_LEFT,            "左"
    STRING_ALIGN_RIGHT,           "右"
    STRING_ALIGN_CENTER,          "中央"
END

STRINGTABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "オプション"
    STRING_VIEWPROPS_TEXT,           "テキスト"
    STRING_VIEWPROPS_RICHTEXT,       "リッチテキスト"
END

STRINGTABLE
BEGIN
    STRING_PREVIEW_PRINT,            "印刷"
    STRING_PREVIEW_NEXTPAGE,         "次のページ"
    STRING_PREVIEW_PREVPAGE,         "前のページ"
    STRING_PREVIEW_TWOPAGES,         "2ページ"
    STRING_PREVIEW_ONEPAGE,          "1ページ"
    STRING_PREVIEW_ZOOMIN,           "拡大"
    STRING_PREVIEW_ZOOMOUT,          "縮小"
    STRING_PREVIEW_CLOSE,            "閉じる"
    STRING_PREVIEW_PAGE,             "ページ"
    STRING_PREVIEW_PAGES,            "ページ"
    STRING_UNITS_CM,                 "cm"
    STRING_UNITS_IN,                 "in"
    STRING_UNITS_INCH,               "インチ"
    STRING_UNITS_PT,                 "pt"
END

STRINGTABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "文書"
    STRING_PROMPT_SAVE_CHANGES,  "'%s'への変更を保存しますか?"
    STRING_SEARCH_FINISHED,      "文書の検索を完了。"
    STRING_LOAD_RICHED_FAILED,   "RichEditライブラリの読み込みに失敗。"
    STRING_SAVE_LOSEFORMATTING,  "プレーンテキスト形式で保存すると、" \
                                 "すべての書式が失われます。" \
                                 "それでもよいですか？"
    STRING_INVALID_NUMBER,       "数の書式が不正"
    STRING_OLE_STORAGE_NOT_SUPPORTED, "OLEストレージ文書はサポートされていません。"
    STRING_WRITE_FAILED,              "ファイルを保存できません。"
    STRING_WRITE_ACCESS_DENIED,       "ファイルに保存する権限がありません。"
    STRING_OPEN_FAILED,               "ファイルを開けません。"
    STRING_OPEN_ACCESS_DENIED,        "ファイルを開く権限がありません。"
    STRING_PRINTING_NOT_IMPLEMENTED,  "プリントが実装されていません。"
    STRING_MAX_TAB_STOPS,             "32以上なタブを追加できません。"
END
