/*
 * Copyright 2004 Krzysztof Foltman
 * Copyright 2010 Claudia Cotună
 *                Michael Stefaniuc
 *
 * 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"

LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL

#pragma code_page(65001)

IDM_MAINMENU MENU
BEGIN
    POPUP "&Fișier"
    BEGIN
        MENUITEM "&Nou...\tCtrl+N",                     ID_FILE_NEW
        MENUITEM "&Deschide...\tCtrl+O",                ID_FILE_OPEN
        MENUITEM "&Salvează\tCtrl+S",                   ID_FILE_SAVE
        MENUITEM "S&alvează ca...",                     ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "Im&primă...\tCtrl+P",                 ID_PRINT
        MENUITEM "Pre&vizualizare imprimare...",        ID_PREVIEW
        MENUITEM "&Opțiuni pagină...",                  ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "&Ieșire",                             ID_FILE_EXIT
    END
    POPUP "&Editare"
    BEGIN
        MENUITEM "&Anulează\tCtrl+Z",                   ID_EDIT_UNDO
        MENUITEM "R&efă\tCtrl+Y",                       ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "&Taie\tCtrl+X",                       ID_EDIT_CUT
        MENUITEM "&Copiază\tCtrl+C",                    ID_EDIT_COPY
        MENUITEM "Li&pește\tCtrl+V",                    ID_EDIT_PASTE
        MENUITEM "&Curăță\tDEL",                        ID_EDIT_CLEAR
        MENUITEM "&Selectează tot\tCtrl+A",             ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "Cău&tare...\tCrtl+F",                 ID_FIND
        MENUITEM "Caută &următorul\tF3",                ID_FIND_NEXT
        MENUITEM "Î&nlocuire...\tCtrl+H",               ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "D&oar citire",                        ID_EDIT_READONLY
        MENUITEM "&Modificat",                          ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "S&uplimente"
        BEGIN
            MENUITEM "Detal&ii pentru selecție",        ID_EDIT_SELECTIONINFO
            MENUITEM "&Format caracter",                ID_EDIT_CHARFORMAT
            MENUITEM "For&mat caracter implicit",       ID_EDIT_DEFCHARFORMAT
            MENUITEM "Format &paragraf",                ID_EDIT_PARAFORMAT
            MENUITEM "Extra&ge textul",                 ID_EDIT_GETTEXT
        END
    END
    POPUP "&Vizualizare"
    BEGIN
        MENUITEM "Bara de unel&te",                     ID_TOGGLE_TOOLBAR
        MENUITEM "Bara de &format",                     ID_TOGGLE_FORMATBAR
        MENUITEM "&Riglă",                              ID_TOGGLE_RULER
        MENUITEM "Bară de &stare",                      ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Opțiuni...",                         ID_VIEWPROPERTIES
    END
    POPUP "&Inserare"
    BEGIN
        MENUITEM "&Data și ora...",                     ID_DATETIME
    END
    POPUP "F&ormat"
    BEGIN
        MENUITEM "&Font...",                            ID_FONTSETTINGS
        MENUITEM "Punct &bulină"                        ID_BULLET
        MENUITEM "&Paragraf..."                         ID_PARAFORMAT
        MENUITEM "&Taburi..."                           ID_TABSTOPS
        POPUP "Fun&dal"
        BEGIN
            MENUITEM "&Sistem\tCtrl+1",                 ID_BACK_1
            MENUITEM "Gălbui de &post-it\tCtrl+2",      ID_BACK_2
        END
    END
    POPUP "&Ajutor"
    BEGIN
        MENUITEM "&Despre Wine Wordpad"                 ID_ABOUT
    END
END

IDM_POPUP MENU
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "&Taie",               ID_EDIT_CUT
        MENUITEM "&Copiază",            ID_EDIT_COPY
        MENUITEM "&Lipește",            ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Punct &bulină"        ID_BULLET
        MENUITEM "&Paragraf..."         ID_PARAFORMAT
    END
END

IDM_COLOR_POPUP MENU
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Negru",               ID_COLOR_BLACK
        MENUITEM "Maro",                ID_COLOR_MAROON
        MENUITEM "Verde",               ID_COLOR_GREEN
        MENUITEM "Oliv"                 ID_COLOR_OLIVE
        MENUITEM "Bleumarin"            ID_COLOR_NAVY
        MENUITEM "Violet"               ID_COLOR_PURPLE
        MENUITEM "Verde-albăstrui"      ID_COLOR_TEAL
        MENUITEM "Gri"                  ID_COLOR_GRAY
        MENUITEM "Argintiu"             ID_COLOR_SILVER
        MENUITEM "Roșu"                 ID_COLOR_RED
        MENUITEM "Lămâie verde"         ID_COLOR_LIME
        MENUITEM "Galben"               ID_COLOR_YELLOW
        MENUITEM "Albastru"             ID_COLOR_BLUE
        MENUITEM "Fuchsia"              ID_COLOR_FUCHSIA
        MENUITEM "Culoarea apei"        ID_COLOR_AQUA
        MENUITEM "Alb"                  ID_COLOR_WHITE
        MENUITEM "Automatic"            ID_COLOR_AUTOMATIC
    END
END

IDD_DATETIME DIALOG 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Data și ora"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Formate disponibile",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "&Anulează",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Nou"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Nou tip de document",-1,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&OK",IDOK,97,12,40,12
    PUSHBUTTON   "&Anulează",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Format paragraf"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Indentare", -1, 10, 10, 120, 68
    LTEXT "Stânga", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Dreapta", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Primul rând", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Aliniere", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Anulează", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Taburi"
FONT 8, "MS SHell DLg"
BEGIN
    GROUPBOX "Spațiere tab", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "&Adaugă", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "&Elimină", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Anulează", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "E&limină tot", ID_TAB_EMPTY, 137, 51, 50, 15
END

IDD_FORMATOPTS DIALOG 0, 0, 280, 110
STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Despărțire rânduri", -1, 10, 10, 130, 85
    RADIOBUTTON "Fără desparțire râ&nduri", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "Încadrează textul în chenarul &ferestrei", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "Încadrează textul în limitele ri&glei", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "Bare de unelte", -1, 150, 10, 120, 85
    CHECKBOX "Bara de unel&te", IDC_PAGEFMT_TB, 160, 20, 80, 15
    CHECKBOX "Bara de &format", IDC_PAGEFMT_FB, 160, 38, 80, 15
    CHECKBOX "&Riglă", IDC_PAGEFMT_RU, 160, 56, 80, 15
    CHECKBOX "Bară de &stare", IDC_PAGEFMT_SB, 160, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE
BEGIN
    STRING_ALL_FILES,              "Toate documentele (*.*)"
    STRING_TEXT_FILES_TXT,         "Documentele text (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Documentele text unicode (*.txt)"
    STRING_RICHTEXT_FILES_RTF,     "Formatul de text îmbogățit (*.rtf)"
    STRING_NEWFILE_RICHTEXT,       "Document text îmbogățit"
    STRING_NEWFILE_TXT,            "Document text"
    STRING_NEWFILE_TXT_UNICODE,    "Document text unicode"
    STRING_PRINTER_FILES_PRN,      "Fișiere de imprimat (*.PRN)"
END

STRINGTABLE
BEGIN
    STRING_ALIGN_LEFT,          "Stânga"
    STRING_ALIGN_RIGHT,         "Dreapta"
    STRING_ALIGN_CENTER,        "Centru"
END

STRINGTABLE
BEGIN
    STRING_VIEWPROPS_TITLE,     "Opțiuni"
    STRING_VIEWPROPS_TEXT,      "Text"
    STRING_VIEWPROPS_RICHTEXT,  "Text îmbogățit"
END

STRINGTABLE
BEGIN
    STRING_PREVIEW_PRINT,       "Imprimă"
    STRING_PREVIEW_NEXTPAGE,    "Pagina următoare"
    STRING_PREVIEW_PREVPAGE,    "Pagina precedentă"
    STRING_PREVIEW_TWOPAGES,    "Două pagini"
    STRING_PREVIEW_ONEPAGE,     "O pagină"
    STRING_PREVIEW_ZOOMIN,      "Mărește"
    STRING_PREVIEW_ZOOMOUT,     "Micșorează"
    STRING_PREVIEW_CLOSE,       "Închide"
    STRING_PREVIEW_PAGE,        "Pagină"
    STRING_PREVIEW_PAGES,       "Pagini"
    STRING_UNITS_CM,            "cm"
    STRING_UNITS_IN,            "in"
    STRING_UNITS_INCH,          "țol"
    STRING_UNITS_PT,            "pt"
END

STRINGTABLE
BEGIN
    STRING_DEFAULT_FILENAME,          "Document"
    STRING_PROMPT_SAVE_CHANGES,       "Salvați modificările la „%s”?"
    STRING_SEARCH_FINISHED,           "S-a terminat căutarea în document."
    STRING_LOAD_RICHED_FAILED,        "Nu s-a putut încărca biblioteca RichEdit."
    STRING_SAVE_LOSEFORMATTING,       "Ați ales să salvați în formatul de text simplu, care va pierde formatarea. Sigur doriți să continuați?"
    STRING_INVALID_NUMBER,            "Formatul de număr nu este valid."
    STRING_OLE_STORAGE_NOT_SUPPORTED, "Documentele de depozitare OLE nu sunt suportate."
    STRING_WRITE_FAILED,              "Nu s-a putut salva fișierul."
    STRING_WRITE_ACCESS_DENIED,       "Nu aveți permisiunea să salvați fișierul."
    STRING_OPEN_FAILED,               "Nu s-a putut deschide fișierul."
    STRING_OPEN_ACCESS_DENIED,        "Nu aveți permisiunea de a deschide fișierul."
    STRING_PRINTING_NOT_IMPLEMENTED,  "Imprimarea nu este implementată."
    STRING_MAX_TAB_STOPS,             "Nu se pot adăuga mai mult de 32 de taburi."
END
