/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2003 Marcelo Duarte
 * Copyright 2006-2007 Américo José Melo
 * Copyright 2009 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 "shresdef.h"

#pragma code_page(65001)

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

MENU_001 MENU DISCARDABLE
BEGIN
	MENUITEM "Ícones &grandes",	FCIDM_SHVIEW_BIGICON
	MENUITEM "Ícones &pequenos",	FCIDM_SHVIEW_SMALLICON
	MENUITEM "&Lista",		FCIDM_SHVIEW_LISTVIEW
	MENUITEM "&Detalhes",		FCIDM_SHVIEW_REPORTVIEW
END


/*
 shellview background menu
*/
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

MENU_002 MENU DISCARDABLE
BEGIN
	POPUP ""
	BEGIN
	  POPUP "&Exibir"
	  BEGIN
	    MENUITEM "Ícones &grandes",	FCIDM_SHVIEW_BIGICON
	    MENUITEM "Ícones &pequenos",	FCIDM_SHVIEW_SMALLICON
	    MENUITEM "&Lista",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "&Detalhes",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "O&rganizar ícones"
	  BEGIN
	    MENUITEM "Por &nome",	0x30	/* column 0 */
	    MENUITEM "Por &tipo",	0x32	/* column 2 */
	    MENUITEM "Por ta&manho",	0x31	/* ... */
	    MENUITEM "Por &data",	0x33
	    MENUITEM SEPARATOR
	    MENUITEM "Auto organi&zar",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "Alin&har ícones",	FCIDM_SHVIEW_SNAPTOGRID
	  MENUITEM SEPARATOR
	  MENUITEM "&Atualizar",		FCIDM_SHVIEW_REFRESH
	  MENUITEM SEPARATOR
	  MENUITEM "Co&lar",		FCIDM_SHVIEW_INSERT
	  MENUITEM "Colar a&talho",	FCIDM_SHVIEW_INSERTLINK
	  MENUITEM SEPARATOR
	  POPUP "Novo"
	  BEGIN
	    MENUITEM "&Pasta",	FCIDM_SHVIEW_NEWFOLDER
	    MENUITEM "&Atalho",	FCIDM_SHVIEW_NEWLINK
	    MENUITEM SEPARATOR
	  END
	  MENUITEM SEPARATOR
	  MENUITEM "Propriedades",	FCIDM_SHVIEW_PROPERTIES
	END
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

MENU_002 MENU DISCARDABLE
BEGIN
	POPUP ""
	BEGIN
	  POPUP "&Mostrar"
	  BEGIN
	    MENUITEM "Ícones &grandes",	FCIDM_SHVIEW_BIGICON
	    MENUITEM "Ícones &pequenos",	FCIDM_SHVIEW_SMALLICON
	    MENUITEM "&Lista",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "&Detalhes",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "O&rganizar ícones"
	  BEGIN
	    MENUITEM "Por &nome",	0x30	/* column 0 */
	    MENUITEM "Por &tipo",	0x32	/* column 2 */
	    MENUITEM "Por ta&manho",	0x31	/* ... */
	    MENUITEM "Por &data",	0x33
	    MENUITEM SEPARATOR
	    MENUITEM "Auto organi&zar",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "Alin&har ícones",	FCIDM_SHVIEW_SNAPTOGRID
	  MENUITEM SEPARATOR
	  MENUITEM "&Actualizar",		FCIDM_SHVIEW_REFRESH
	  MENUITEM SEPARATOR
	  MENUITEM "Co&lar",		FCIDM_SHVIEW_INSERT
	  MENUITEM "Colar a&talho",	FCIDM_SHVIEW_INSERTLINK
	  MENUITEM SEPARATOR
	  POPUP "Novo"
	  BEGIN
	    MENUITEM "&Pasta",	FCIDM_SHVIEW_NEWFOLDER
	    MENUITEM "&Atalho",	FCIDM_SHVIEW_NEWLINK
	    MENUITEM SEPARATOR
	  END
	  MENUITEM SEPARATOR
	  MENUITEM "Propriedades",	FCIDM_SHVIEW_PROPERTIES
	END
END


/*
 shellview item menu
*/
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

MENU_SHV_FILE MENU DISCARDABLE
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "&Select"		FCIDM_SHVIEW_OPEN
	  MENUITEM "&Explorar",		FCIDM_SHVIEW_EXPLORE
	  MENUITEM "A&brir",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "C&ortar",		FCIDM_SHVIEW_CUT
	  MENUITEM "&Copiar",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "Criar a&talho",	FCIDM_SHVIEW_CREATELINK
	  MENUITEM "E&xcluir",		FCIDM_SHVIEW_DELETE
	  MENUITEM "&Renomear",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "&Propriedades",	FCIDM_SHVIEW_PROPERTIES
	END
END

/*
 shellview item menu
*/
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

MENU_SHV_FILE MENU DISCARDABLE
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "&Seleccionar"	FCIDM_SHVIEW_OPEN
	  MENUITEM "&Explorar",		FCIDM_SHVIEW_EXPLORE
	  MENUITEM "A&brir",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "C&ortar",		FCIDM_SHVIEW_CUT
	  MENUITEM "&Copiar",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "Criar a&talho",	FCIDM_SHVIEW_CREATELINK
	  MENUITEM "Re&mover",		FCIDM_SHVIEW_DELETE
	  MENUITEM "&Renomear",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "&Propriedades",	FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "&Ficheiro"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "&Sair", IDM_CPANEL_EXIT
    END

    POPUP "&Ver"
    BEGIN
        MENUITEM "Ícones &grandes", FCIDM_SHVIEW_BIGICON
        MENUITEM "Ícones &pequenos", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Lista", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detalhes", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Ajuda"
    BEGIN
        MENUITEM "&Sobre o painel de controlo...", IDM_CPANEL_ABOUT
    END
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

MENU_CPANEL MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "E&xit", IDM_CPANEL_EXIT
    END

    POPUP "&View"
    BEGIN
        MENUITEM "Ícones &grandes", FCIDM_SHVIEW_BIGICON
        MENUITEM "Ícones &pequenos", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Lista", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detalhes", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Help"
    BEGIN
        MENUITEM "&About Control Panel...", IDM_CPANEL_ABOUT
    END
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

SHBRSFORFOLDER_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Procurar pasta"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancelar", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
 LTEXT "", IDD_TITLE, 4, 4, 180, 12
 LTEXT "", IDD_STATUS, 4, 25, 180, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	4, 40, 180, 120
}

SHNEWBRSFORFOLDER_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Procurar Pasta"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "Pasta:", IDD_FOLDER, 10, 156, 40, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	12, 38, 194, 105
 EDITTEXT IDD_FOLDERTEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Criar nova pasta", IDD_MAKENEWFOLDER, 12, 174, 70, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancelar", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP
}

SHELL_YESTOALL_MSGBOX DIALOG 200, 100, 280, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Mensagem"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Sim", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Sim a &todos", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Não", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Cancelar", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP
    ICON "", IDD_ICON, 10, 10, 16, 16
    LTEXT "", IDD_MESSAGE, 40, 10, 238, 52, 0
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Sobre %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "&Licença do Wine", IDC_ABOUT_LICENSE, 153, 113, 60, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 170, 10
 LTEXT "Executando em %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine foi disponibilizado por:", IDC_ABOUT_WINE_TEXT, 8, 54, 204, 10
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Acerca do %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "&Licença do Wine", IDC_ABOUT_LICENSE, 153, 113, 60, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 170, 10
 LTEXT "Executando em %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine disponibilizado por:", IDC_ABOUT_WINE_TEXT, 8, 54, 204, 10
}


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "Digite o nome do programa, pasta, documento, ou endereço Internet, que o Wine irá abrí-lo para você.", 12289, 36, 11, 182, 18
 LTEXT "&Abrir:", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Cancelar", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Procurar...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "Digite o nome do programa, pasta, documento, ou endereço Internet, que o Wine irá abrí-lo.", 12289, 36, 11, 182, 18
 LTEXT "&Abrir:", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Cancelar", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Procurar...", 12288, 170, 63, 50, 14, WS_TABSTOP
}


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
{
        /* columns in the shellview */
	IDS_SHV_COLUMN1		"Arquivo"
	IDS_SHV_COLUMN2		"Tamanho"
	IDS_SHV_COLUMN3		"Tipo"
	IDS_SHV_COLUMN4		"Modificado"
	IDS_SHV_COLUMN5		"Atributos"
	IDS_SHV_COLUMN6		"Tamanho"
	IDS_SHV_COLUMN7		"Disponível"
	IDS_SHV_COLUMN8		"Nome"
	IDS_SHV_COLUMN9		"Comentários"
	IDS_SHV_COLUMN10	"Dono"
	IDS_SHV_COLUMN11	"Grupo"
	IDS_SHV_COLUMN_DELFROM	"Localização original"
	IDS_SHV_COLUMN_DELDATE	"Data de exclusão"

        /* special folders */
	IDS_DESKTOP		"Área de trabalho"
	IDS_MYCOMPUTER		"Meu computador"
	IDS_RECYCLEBIN_FOLDER_NAME      "Reciclagem"
	IDS_CONTROLPANEL	"Painel de controlo"

        /* context menus */
	IDS_VIEW_LARGE		"Ícones &grandes"
	IDS_VIEW_SMALL		"Ícones &pequenos"
	IDS_VIEW_LIST		"&Lista"
	IDS_VIEW_DETAILS	"&Detalhes"
	IDS_SELECT		"Selecionar"
	IDS_OPEN		"Abrir"

	IDS_CREATEFOLDER_DENIED "Não pode criar nova pasta: Permissão negada."
	IDS_CREATEFOLDER_CAPTION "Erro durante a criação da nova pasta"
	IDS_DELETEITEM_CAPTION "Confirmar exclusão de arquivo"
	IDS_DELETEFOLDER_CAPTION "Confirmar exclusão de pasta"
	IDS_DELETEITEM_TEXT "Você tem certeza que deseja excluir '%1'?"
	IDS_DELETEMULTIPLE_TEXT "Você tem certeza que deseja excluir estes %1 itens?"
	IDS_OVERWRITEFILE_TEXT "This folder already contains a file called '%1'.\n\nDo you want to replace it?"
	IDS_DELETESELECTED_TEXT "Are you sure you want to delete the selected item(s)?"
	IDS_TRASHITEM_TEXT "Are you sure that you want to send '%1' to the Trash?"
	IDS_TRASHFOLDER_TEXT "Are you sure that you want to send '%1' and all its content to the Trash?"
	IDS_TRASHMULTIPLE_TEXT "Are you sure that you want to send these %1 items to the Trash?"
	IDS_CANTTRASH_TEXT "The item '%1' can't be sent to Trash. Do you want to delete it instead?"
	IDS_OVERWRITEFILE_CAPTION "Confirmar sobreescrever arquivo"
	IDS_OVERWRITEFOLDER_TEXT "This folder already contains a folder named '%1'.\n\n"\
	    "If the files in the destination folder have the same names as files in the\n"\
	    "selected folder they will be replaced. Do you still want to move or copy\n"\
	    "the folder?"

        /* message box strings */
	IDS_RESTART_TITLE       "Reiniciar"
	IDS_RESTART_PROMPT      "Você quer simular a reinicialização do Windows?"
	IDS_SHUTDOWN_TITLE      "Desligar"
	IDS_SHUTDOWN_PROMPT     "Você quer finalizar a sessão no Wine?"

        /* shell folder path default values */
	IDS_PROGRAMS                "Menu Iniciar\\Programas"
	IDS_PERSONAL                "Meus Documentos"
	IDS_FAVORITES               "Favoritos"
	IDS_STARTUP                 "Menu Iniciar\\Programas\\Iniciar"
	IDS_RECENT                  "Recent"
	IDS_SENDTO                  "SendTo"
	IDS_STARTMENU               "Menu Iniciar"
	IDS_MYMUSIC                 "Minhas Músicas"
	IDS_MYVIDEO                 "Meus Vídeos"
	IDS_DESKTOPDIRECTORY        "Desktop"
	IDS_NETHOOD                 "NetHood"
	IDS_TEMPLATES               "Templates"
	IDS_APPDATA                 "Application Data"
	IDS_PRINTHOOD               "PrintHood"
	IDS_LOCAL_APPDATA           "Configurações locais\\Dados de aplicativos"
	IDS_INTERNET_CACHE          "Configurações locais\\Temporary Internet Files"
	IDS_COOKIES                 "Cookies"
	IDS_HISTORY                 "Configurações locais\\Histórico"
	IDS_PROGRAM_FILES           "Arquivos de programas"
	IDS_MYPICTURES              "Minhas Imagens"
	IDS_PROGRAM_FILES_COMMON    "Arquivos de programas\\Arquivos comuns"
	IDS_COMMON_DOCUMENTS        "Documentos"
	IDS_ADMINTOOLS              "Menu Iniciar\\Programas\\Ferramentas Administrativas"
	IDS_COMMON_MUSIC            "Documentos\\Minhas Músicas"
	IDS_COMMON_PICTURES         "Documentos\\Minhas Imagens"
	IDS_COMMON_VIDEO            "Documentos\\Meus Vídeos"
	IDS_CDBURN_AREA             "Configurações locais\\Dados de aplicativos\\Microsoft\\CD Burning"

	IDS_NEWFOLDER               "Nova Pasta"

	IDS_CPANEL_TITLE            "Wine Control Panel"
	IDS_CPANEL_NAME             "Name"
	IDS_CPANEL_DESCRIPTION      "Description"
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
{
        /* columns in the shellview */
	IDS_SHV_COLUMN1		"Ficheiro"
	IDS_SHV_COLUMN2		"Tamanho"
	IDS_SHV_COLUMN3		"Tipo"
	IDS_SHV_COLUMN4		"Modificado"
	IDS_SHV_COLUMN5		"Atributos"
	IDS_SHV_COLUMN6		"Tamanho"
	IDS_SHV_COLUMN7		"Disponível"
	IDS_SHV_COLUMN8		"Nome"
	IDS_SHV_COLUMN9		"Comentários"
	IDS_SHV_COLUMN10	"Dono"
	IDS_SHV_COLUMN11	"Grupo"
	IDS_SHV_COLUMN_DELFROM	"Localização original"
	IDS_SHV_COLUMN_DELDATE	"Data de exclusão"

        /* special folders */
	IDS_DESKTOP		"Ambiente de trabalho"
	IDS_MYCOMPUTER		"O Meu Computador"
	IDS_RECYCLEBIN_FOLDER_NAME      "Reciclagem"
	IDS_CONTROLPANEL	"Painel de controlo"

        /* context menus */
	IDS_VIEW_LARGE		"Ícones &grandes"
	IDS_VIEW_SMALL		"Ícones &pequenos"
	IDS_VIEW_LIST		"&Lista"
	IDS_VIEW_DETAILS	"&Detalhes"
	IDS_SELECT		"Seleccionar"
	IDS_OPEN		"Abrir"

	IDS_CREATEFOLDER_DENIED "Não é possível criar nova pasta: Permissão negada."
	IDS_CREATEFOLDER_CAPTION "Erro durante a criação da nova pasta"
	IDS_DELETEITEM_CAPTION "Confirmar exclusão do ficheiro"
	IDS_DELETEFOLDER_CAPTION "Confirmar exclusão da pasta"
	IDS_DELETEITEM_TEXT "Tem certeza que deseja excluir '%1'?"
	IDS_DELETEMULTIPLE_TEXT "Tem certeza que deseja excluir estes %1 itens?"
	IDS_DELETESELECTED_TEXT "Tem a certeza que deseja excluir os itens seleccionados?"
	IDS_TRASHITEM_TEXT "Tem a certeza que quer enviar '%1' para a Reciclagem?"
	IDS_TRASHFOLDER_TEXT "Tem a certeza que quer enviar '%1' e todo o seu conteúdo para a Reciclagem?"
	IDS_TRASHMULTIPLE_TEXT "Tem a certeza que quer enviar estes %1 itens para a Reciclagem?"
	IDS_CANTTRASH_TEXT "O item '%1' não pode ser enviado para a Reciclagem. Deseja apagá-lo em vez disso?"
	IDS_OVERWRITEFILE_TEXT "Substituir ficheiro %1?"
	IDS_OVERWRITEFILE_CAPTION "Confirmar substituição de ficheiro"
	IDS_OVERWRITEFOLDER_TEXT "Esta pasta já contém uma pasta chamada '%1'.\n\n"\
	    "Se os ficheiros na pasta de destino tiverem os mesmos nomes de ficheiros na\n"\
	    "pasta seleccionada eles serão substituídos. Ainda deseja mover ou copiar a pasta?"

        /* message box strings */
	IDS_RESTART_TITLE       "Reiniciar"
	IDS_RESTART_PROMPT      "Deseja simular a reinicialização do Windows?"
	IDS_SHUTDOWN_TITLE      "Desligar"
	IDS_SHUTDOWN_PROMPT     "Deseja finalizar esta sessão do Wine?"

        /* Run File dialog */
        IDS_RUNDLG_ERROR           "Não é possível mostrar a caixa de diálogo Executar Ficheiro (erro interno)"
        IDS_RUNDLG_BROWSE_ERROR    "Não é possível mostrar a caixa de diálogo de Procura (erro interno)"
        IDS_RUNDLG_BROWSE_CAPTION  "Procurar"
        IDS_RUNDLG_BROWSE_FILTER   "Ficheiros Executáveis\0*.exe\0Todos os ficheiros\0*.*\0\0"

        /* shell folder path default values */
	IDS_PROGRAMS                "Menu Iniciar\\Programas"
	IDS_PERSONAL                "OS Meus Documentos"
	IDS_FAVORITES               "Favoritos"
	IDS_STARTUP                 "Menu Iniciar\\Programas\\Iniciar"
	IDS_RECENT                  "Recentes"
	IDS_SENDTO                  "Enviar Para"
	IDS_STARTMENU               "Menu Iniciar"
	IDS_MYMUSIC                 "As Minhas Músicas"
	IDS_MYVIDEO                 "Os Meus Vídeos"
	IDS_DESKTOPDIRECTORY        "Ambiente de Trabalho"
	IDS_NETHOOD                 "Rede"
	IDS_TEMPLATES               "Modelos"
	IDS_APPDATA                 "Dados de aplicação"
	IDS_PRINTHOOD               "Impressoras"
	IDS_LOCAL_APPDATA           "Definições locais\\Dados de aplicação"
	IDS_INTERNET_CACHE          "Definições locais\\Ficheiros temporários de Internet"
	IDS_COOKIES                 "Cookies"
	IDS_HISTORY                 "Definições locais\\Histórico"
	IDS_PROGRAM_FILES           "Programas"
	IDS_MYPICTURES              "As Minhas Imagens"
	IDS_PROGRAM_FILES_COMMON    "Programas\\Ficheiros comuns"
	IDS_COMMON_DOCUMENTS        "Os Meus Documentos"
	IDS_ADMINTOOLS              "Menu Iniciar\\Programas\\Ferramentas Administrativas"
	IDS_COMMON_MUSIC            "Os Meus Documentos\\As Minhas Músicas"
	IDS_COMMON_PICTURES         "Os Meus Documentos\\As Minhas Imagens"
	IDS_COMMON_VIDEO            "Os Meus Documentos\\Os Meus Vídeos"
	IDS_CDBURN_AREA             "Definições locais\\Dados de aplicação\\Microsoft\\CD Burning"

	IDS_NEWFOLDER               "Nova Pasta"

	IDS_CPANEL_TITLE            "Painel de controlo do Wine"
	IDS_CPANEL_NAME             "Nome"
	IDS_CPANEL_DESCRIPTION      "Descrição"
        IDS_SHLEXEC_NOASSOC         "Não existe um programa Windows configurado para abrir este tipo de ficheiro."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Licença do Wine"
IDS_LICENSE,
"O Wine é software livre; você pode redistribuí-lo e/ou \
modificá-lo sob os termos da GNU Lesser General Public \
License tal como publicado pela Free Software Foundation; seja a \
versão 2.1 da Licença, ou (por sua escolha) outra versão mais recente.\n\n\
O Wine é distribuído na esperança que seja útil, \
mas SEM QUALQUER GARANTIA; nem sequer a garantia implícita de \
MERCANTIBILIDADE ou FEITO PARA UM PROPÓSITO ESPECÍFICO.  veja a GNU \
Lesser General Public License para mais detalhes.\n\n\
Deverá ter recebido uma cópia da GNU Lesser General Public \
License com o Wine; se não, escreva à Free Software \
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA."
}
