/*
 * Portuguese Language File
 *
 * Copyright 2008 Ricardo Filipe
 *
 * 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"

#pragma code_page(65001)

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&Ficheiro"
    BEGIN
        MENUITEM "&Novo...\tCtrl+N",       ID_FILE_NEW
        MENUITEM "&Abrir...\tCtrl+O",      ID_FILE_OPEN
        MENUITEM "&Guardar\tCtrl+S",         ID_FILE_SAVE
        MENUITEM "Guardar &como...",           ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "&Imprimir...\tCtrl+P",     ID_PRINT
        MENUITEM "&Pré visualizar...",     ID_PREVIEW
        MENUITEM "C&onfigurar página...",        ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "&Sair",                 ID_FILE_EXIT
    END
    POPUP "&Editar"
    BEGIN
        MENUITEM "&Anular\tCtrl+Z",               ID_EDIT_UNDO
        MENUITEM "&Refazer\tCtrl+Y",               ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "&Cortar\tCtrl+X",                ID_EDIT_CUT
        MENUITEM "C&opiar\tCtrl+C",               ID_EDIT_COPY
        MENUITEM "Col&ar\tCtrl+V",              ID_EDIT_PASTE
        MENUITEM "&Limpar\tDEL",                 ID_EDIT_CLEAR
        MENUITEM "&Seleccionar tudo\tCtrl+A",         ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "Local&izar...\tCrtl+F",            ID_FIND
        MENUITEM "&Encontrar Seguinte\tF3",              ID_FIND_NEXT
        MENUITEM "&Substituir...\tCtrl+H",         ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "Some&nte leitura",                  ID_EDIT_READONLY
        MENUITEM "&Modificado",                   ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "E&xtras"
        BEGIN
            MENUITEM "&Informação da selecção",             ID_EDIT_SELECTIONINFO
            MENUITEM "&Formato dos caracteres",           ID_EDIT_CHARFORMAT
            MENUITEM "&Definir formato dos caracteres",           ID_EDIT_DEFCHARFORMAT
            MENUITEM "F&ormato dos parágrafos",           ID_EDIT_PARAFORMAT
            MENUITEM "&Buscar texto",                   ID_EDIT_GETTEXT
        END
    END
    POPUP "&Ver"
    BEGIN
        MENUITEM "&Barra de Ferramentas",        ID_TOGGLE_TOOLBAR
        MENUITEM "Barra de &Formatação",      ID_TOGGLE_FORMATBAR
        MENUITEM "&Régua",          ID_TOGGLE_RULER
        MENUITEM "Barra de &Estado",      ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Opções...",     ID_VIEWPROPERTIES
    END
    POPUP "&Inserir"
    BEGIN
        MENUITEM "&Data e hora...",  ID_DATETIME
    END
    POPUP "F&ormato"
    BEGIN
        MENUITEM "&Tipo de Letra...",                     ID_FONTSETTINGS
        MENUITEM "&Lista de marcas"                ID_BULLET
        MENUITEM "&Parágrafo..."                 ID_PARAFORMAT
        MENUITEM "T&abulações..."                      ID_TABSTOPS
        POPUP "&Fundo"
        BEGIN
            MENUITEM "&Sistema\tCtrl+1",         ID_BACK_1
            MENUITEM "&PostThat amarelo\tCtrl+2",           ID_BACK_2
        END
    END
    POPUP "&Ajuda"
    BEGIN
        MENUITEM "&Sobre Wine Wordpad"       ID_ABOUT
    END
END

IDM_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "&Cortar",                ID_EDIT_CUT
        MENUITEM "C&opiar",               ID_EDIT_COPY
        MENUITEM "Co&lar",              ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "&Lista de marcas"       ID_BULLET
        MENUITEM "&Parágrafo..."        ID_PARAFORMAT
    END
END

IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Data e hora"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Formatos Disponíveis",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "&Cancelar",IDCANCEL,87,26,40,12
END

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

IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Parágrafo"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Identação", -1, 10, 10, 120, 68
    LTEXT "Esquerda", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Direita", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Primeira Linha", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Alinhamento", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Cancelar", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabulações"
FONT 8, "MS SHell DLg"
BEGIN
    GROUPBOX "Marca de tabulação", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "&Adicionar", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "&Remover", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 135, 15, 55, 15
    PUSHBUTTON "&Cancelar", IDCANCEL, 135, 33, 55, 15
    PUSHBUTTON "Remover &todos", ID_TAB_EMPTY, 135, 51, 55, 15
END

IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 280, 110
STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Moldar o texto", -1, 10, 10, 130, 85
    RADIOBUTTON "&Sem moldagem", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "&Moldar à janela", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "Moldar pela &régua", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "Barras de Ferramentas", -1, 150, 10, 120, 85
    CHECKBOX "&Barra de Ferramentas", IDC_PAGEFMT_TB, 160, 20, 90, 15
    CHECKBOX "Barra de &Formatação", IDC_PAGEFMT_FB, 160, 38, 90, 15
    CHECKBOX "&Régua", IDC_PAGEFMT_RU, 160, 56, 90, 15
    CHECKBOX "Barra de &Estado", IDC_PAGEFMT_SB, 160, 74, 90, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_RICHTEXT_FILES_RTF,     "Rich text format (*.rtf)"
    STRING_TEXT_FILES_TXT,         "Documentos de texto (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Documentos de texto Unicode (*.txt)"
    STRING_ALL_FILES,              "Todos os documentos (*.*)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALIGN_LEFT,            "Esquerda"
    STRING_ALIGN_RIGHT,           "Direita"
    STRING_ALIGN_CENTER,          "Centro"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_NEWFILE_RICHTEXT,     "Rich text document"
    STRING_NEWFILE_TXT,          "Documento de texto"
    STRING_NEWFILE_TXT_UNICODE,  "Documento de texto Unicode"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PRINTER_FILES_PRN,        "Ficheiros de impressora (*.PRN)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "Opções"
    STRING_VIEWPROPS_TEXT,           "Texto"
    STRING_VIEWPROPS_RICHTEXT,       "Rich text"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PREVIEW_PRINT,            "Imprimir"
    STRING_PREVIEW_NEXTPAGE,         "Próxima página"
    STRING_PREVIEW_PREVPAGE,         "Página anterior"
    STRING_PREVIEW_TWOPAGES,         "Duas páginas"
    STRING_PREVIEW_ONEPAGE,          "Uma página"
    STRING_PREVIEW_CLOSE,            "Fechar"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_UNITS_CM,             "cm"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "Documento"
    STRING_PROMPT_SAVE_CHANGES,  "Guardar alterações a '%s'?"
    STRING_SEARCH_FINISHED,      "Acabou a pesquisa do documento."
    STRING_LOAD_RICHED_FAILED,   "Falhou o carregamento da biblioteca RichEdit."
    STRING_SAVE_LOSEFORMATTING,  "Escolheu guardar em formato de texto simples, " \
                                 "o que vai anular todas as formatações. " \
                                 "Tem a certeza que quer fazer isto?"
    STRING_INVALID_NUMBER,       "Formato de número inválido"
    STRING_OLE_STORAGE_NOT_SUPPORTED, "Documentos OLE não são suportados"
    STRING_WRITE_FAILED,              "Não foi possível guardar o ficheiro."
    STRING_WRITE_ACCESS_DENIED,       "Não tem permissões para guardar o ficheiro."
    STRING_OPEN_FAILED,               "Não foi possível abrir o ficheiro."
    STRING_OPEN_ACCESS_DENIED,        "Não tem permissões para abrir o ficheiro."
    STRING_PRINTING_NOT_IMPLEMENTED, "Impressão não implementada"
    STRING_MAX_TAB_STOPS,             "Não pode adicionar mais de 32 tabs."
END
