/*
 * Notepad
 * Portuguese Language Support
 *
 * Copyright 1999 Marcel Baur <alves@correionet.com.br>
 * Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
 * Copyright 2003 Marcelo Duarte
 * Copyright 2004 Américo José Melo
 * Copyright 2010 Gustavo Henrique Milaré
 *
 * 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 "notepad_res.h"

#pragma code_page(65001)

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

MAIN_MENU MENU
{
 POPUP "&Arquivo" {
  MENUITEM "&Novo\tCtrl+N",		CMD_NEW
  MENUITEM "A&brir...\tCtrl+O",		CMD_OPEN
  MENUITEM "&Salvar\tCtrl+S",		CMD_SAVE
  MENUITEM "Salvar &como...",	CMD_SAVE_AS
  MENUITEM SEPARATOR
  MENUITEM "&Imprimir...\tCtrl+P",		CMD_PRINT
  MENUITEM "C&onfigurar página...",	CMD_PAGE_SETUP
  MENUITEM "Configurar i&mpressora...", CMD_PRINTER_SETUP
  MENUITEM SEPARATOR
  MENUITEM "Sai&r",		CMD_EXIT
 }
POPUP "&Editar" {
  MENUITEM "&Desfazer\tCtrl+Z", CMD_UNDO
  MENUITEM SEPARATOR
  MENUITEM "&Recortar\tCtrl+X",	CMD_CUT
  MENUITEM "&Copiar\tCtrl+C",	CMD_COPY
  MENUITEM "C&olar\tCtrl+V",	CMD_PASTE
  MENUITEM "E&xcluir\tDel",	CMD_DELETE
  MENUITEM SEPARATOR
  MENUITEM "Selecionar &tudo",	CMD_SELECT_ALL
  MENUITEM "&Data/Hora\tF5",	CMD_TIME_DATE
  MENUITEM SEPARATOR
  MENUITEM "&Quebrar automática de linha",	CMD_WRAP
  MENUITEM "&Fonte...",          CMD_FONT
 }
POPUP "&Pesquisa" {
  MENUITEM "&Localizar...",	CMD_SEARCH
  MENUITEM "Localizar &próxima\tF3",	CMD_SEARCH_NEXT
  MENUITEM "&Substituir...\tCtrl+H", CMD_REPLACE
 }
POPUP "&Ajuda" {
  MENUITEM "&Conteúdo",		CMD_HELP_CONTENTS
  MENUITEM "&Procurar...",	CMD_HELP_SEARCH
  MENUITEM "&Ajuda na ajuda",	CMD_HELP_ON_HELP
  MENUITEM SEPARATOR
  MENUITEM "&Sobre o Notepad", CMD_HELP_ABOUT_NOTEPAD
 }
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

MAIN_MENU MENU
{
 POPUP "&Ficheiro" {
  MENUITEM "&Novo...",		CMD_NEW
  MENUITEM "A&brir",		CMD_OPEN
  MENUITEM "&Gravar",		CMD_SAVE
  MENUITEM "Gravar &como...",	CMD_SAVE_AS
  MENUITEM SEPARATOR
  MENUITEM "&Imprimir",		CMD_PRINT
  MENUITEM "C&onfigurar página...",	CMD_PAGE_SETUP
  MENUITEM "Configurar i&mpressora...", CMD_PRINTER_SETUP
  MENUITEM SEPARATOR
  MENUITEM "Sai&r",		CMD_EXIT
 }
POPUP "&Editar" {
  MENUITEM "&Desfazer\tCtrl+Z", CMD_UNDO
  MENUITEM SEPARATOR
  MENUITEM "&Cortar\tCtrl+X",	CMD_CUT
  MENUITEM "&Copiar\tCtrl+C",	CMD_COPY
  MENUITEM "C&olar\tCtrl+V",	CMD_PASTE
  MENUITEM "E&xcluir\tDel",	CMD_DELETE
  MENUITEM SEPARATOR
  MENUITEM "Seleccionar &tudo",	CMD_SELECT_ALL
  MENUITEM "&Data/Hora\tF5",	CMD_TIME_DATE
  MENUITEM SEPARATOR
  MENUITEM "&Quebrar automática de linha",	CMD_WRAP
  MENUITEM "&Tipo de Letra...",          CMD_FONT
 }
POPUP "&Pesquisa" {
  MENUITEM "&Localizar...",	CMD_SEARCH
  MENUITEM "Localizar &próxima\tF3",	CMD_SEARCH_NEXT
  MENUITEM "&Substituir...\tCtrl+H", CMD_REPLACE
 }
POPUP "&Ajuda" {
  MENUITEM "&Conteúdo",		CMD_HELP_CONTENTS
  MENUITEM "&Procurar...",	CMD_HELP_SEARCH
  MENUITEM "&Ajuda na ajuda",	CMD_HELP_ON_HELP
  MENUITEM SEPARATOR
  MENUITEM "&Acerca do Notepad...", CMD_HELP_ABOUT_NOTEPAD
 }
}


/* Dialog `Page setup' */

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Configurar página"
{
LTEXT    "&Cabeçalho:",  0x140,  10, 07, 40, 15
EDITTEXT IDC_PAGESETUP_HEADERVALUE,   60, 05,110, 12, WS_BORDER | WS_TABSTOP
LTEXT    "&Rodapé:",  0x142,   10, 24, 40, 15
EDITTEXT IDC_PAGESETUP_FOOTERVALUE,   60, 22,110, 12, WS_BORDER | WS_TABSTOP

GROUPBOX "&Margens (milímetros):",      0x144,     10, 43,160, 45
LTEXT    "&Esquerda:",        0x145,   20, 55, 35, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_LEFTVALUE,     55, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Superior:",         0x148,    20, 73, 35, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_TOPVALUE,      55, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Direita:",       0x14B, 100, 55, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_RIGHTVALUE,   130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Inferior:",      0x14E,100, 73, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_BOTTOMVALUE,  130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP

DEFPUSHBUTTON "OK",         IDOK,                   180,  3, 40, 15, WS_TABSTOP
PUSHBUTTON    "Cancelar",     IDCANCEL,               180, 21, 40, 15, WS_TABSTOP
PUSHBUTTON    "&Ajuda",       IDHELP,                180, 39, 40, 15, WS_TABSTOP
}

IDD_OFN_TEMPLATE  DIALOG 50,50,300,15
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Codificação:", -1, 5,0, 50,12
  COMBOBOX IDC_OFN_ENCCOMBO, 53,0, 156,48, WS_CHILD | WS_VSCROLL | CBS_DROPDOWNLIST
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
{
STRING_PAGESETUP_HEADERVALUE,	"&f"
STRING_PAGESETUP_FOOTERVALUE,	"Página &p"

STRING_NOTEPAD,					"Notepad"
STRING_ERROR,					"ERRO"
STRING_WARNING,					"AVISO"
STRING_INFO,					"Informação"

STRING_UNTITLED,				"(sem nome)"

STRING_ALL_FILES,				"Todos os arquivos (*.*)"
STRING_TEXT_FILES_TXT,			"Arquivos texto (*.txt)"

STRING_TOOLARGE,				"Arquivo '%s' é muito longo para o notepad.\n \
Por favor use um editor diferente."
STRING_NOTEXT,					"Você não digitou nenhum texto. \
\nPor favor digite alguma coisa e tente novamente"
STRING_DOESNOTEXIST,				"Arquivo '%s'\nnão existe\n\n \
Você deseja criar um novo arquivo?"
STRING_NOTSAVED,				"Arquivo '%s'\nfoi modificado\n\n \
Gostaria de salvar as alterações?"
STRING_NOTFOUND,					"'%s' não pode ser encontrado."
STRING_OUT_OF_MEMORY,			"Não há memória suficiente para completar essa \
tarefa.\nFeche um ou mais aplicativos para aumentar a quantidade de memória livre."

STRING_UNICODE_LE,     "Unicode (UTF-16)"
STRING_UNICODE_BE,     "Unicode (UTF-16 big-endian)"

STRING_LOSS_OF_UNICODE_CHARACTERS,         "%s\n\
Este arquivo contém caracteres Unicode que serão perdidos se\n\
for salvo na codificação %s.\n\
Para manter estes caracteres, clique em Cancelar e depois selecione\n\
uma das opções Unicode na lista de Codificações.\n\
Continuar?"
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
{
 STRING_PAGESETUP_HEADERVALUE,	"&f"
 STRING_PAGESETUP_FOOTERVALUE,	"Página &p"

 STRING_NOTEPAD,		"Notepad"
 STRING_ERROR,			"ERRO"
 STRING_WARNING,		"AVISO"
 STRING_INFO,			"Informação"

 STRING_UNTITLED,		"(sem nome)"

 STRING_ALL_FILES,		"Todos os arquivos (*.*)"
 STRING_TEXT_FILES_TXT,		"Ficheiros de texto (*.txt)"

 STRING_TOOLARGE,		"Ficheiros '%s' é muito longo para o notepad.\n \
 Por favor use um editor diferente."
 STRING_NOTEXT,			"Não digitou nenhum texto. \
\nPor favor digite alguma coisa e tente novamente"
 STRING_DOESNOTEXIST,		"Ficheiro '%s'\nnão existe\n\n \
Deseja criar um novo ficheiro?"
 STRING_NOTSAVED,		"Ficheiro '%s'\nfoi modificado\n\n \
Gostaria de gravar as alterações?"
 STRING_NOTFOUND,		"'%s' não pode ser encontrado."
 STRING_OUT_OF_MEMORY,		"Não há memória suficiente para completar esta \
tarefa.\nFeche uma ou mais aplicações para aumentar a quantidade de memória livre."

STRING_UNICODE_LE,     "Unicode (UTF-16)"
STRING_UNICODE_BE,     "Unicode (UTF-16 big-endian)"

STRING_LOSS_OF_UNICODE_CHARACTERS,         "%s\n\
Este ficheiro contém caracteres Unicode que serão perdidos se\n\
guardar este ficheiro na codificação %s.\n\
Para manter estes caracteres, carregue em Cancelar, e depois seleccione\n\
uma das opções Unicode na lista de Codificações.\n\
Continuar?"
}
