/*
 * Regedit resources
 *
 * Copyright 2003 Marcelo Duarte
 * Copyright 2004 Américo José Melo
 * Copyright 2009 Ricardo Filipe
 * 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 "resource.h"

#pragma code_page(65001)

/*
 * Menu
 */

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDR_REGEDIT_MENU MENU
BEGIN
    POPUP "&Registro"
    BEGIN
        MENUITEM "&Importar arquivo do Registro...", ID_REGISTRY_IMPORTREGISTRYFILE
        MENUITEM "&Exportar arquivo do Registro...", ID_REGISTRY_EXPORTREGISTRYFILE
        MENUITEM SEPARATOR
        MENUITEM "&Conectar Registro da rede...",    ID_REGISTRY_CONNECTNETWORKREGISTRY, GRAYED
        MENUITEM "&Desconectar Registro da rede...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Im&primir\tCtrl+P",                ID_REGISTRY_PRINT, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Sai&r",                            ID_REGISTRY_EXIT
    END
    POPUP "&Editar"
    BEGIN
        MENUITEM "&Modificar",                       ID_EDIT_MODIFY
        MENUITEM SEPARATOR
        POPUP "&Novo"
        BEGIN
            MENUITEM "&Chave",                       ID_EDIT_NEW_KEY
            MENUITEM SEPARATOR
            MENUITEM "Valor &Texto",                 ID_EDIT_NEW_STRINGVALUE
            MENUITEM "Valor &Binário",               ID_EDIT_NEW_BINARYVALUE
            MENUITEM "Valor &DWORD",                 ID_EDIT_NEW_DWORDVALUE
            MENUITEM "Valor de palavras &múltiplas", ID_EDIT_NEW_MULTI_STRINGVALUE
        END
        MENUITEM SEPARATOR
        MENUITEM "&Excluir\tDel",                    ID_EDIT_DELETE
        MENUITEM "&Renomear\tF2",                    ID_EDIT_RENAME
        MENUITEM SEPARATOR
        MENUITEM "&Copiar nome da chave",            ID_EDIT_COPYKEYNAME
        MENUITEM SEPARATOR
        MENUITEM "&Localizar\tCtrl+F",               ID_EDIT_FIND, GRAYED
        MENUITEM "L&ocalizar próxima\tF3",           ID_EDIT_FINDNEXT, GRAYED
    END
    POPUP "E&xibir"
    BEGIN
        MENUITEM "&Barra de status",                 ID_VIEW_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Dividir",                         ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Atualizar\tF5",                   ID_VIEW_REFRESH
    END
    POPUP "&Favoritos"
    BEGIN
        MENUITEM "&Adicionar aos Favoritos...",     ID_FAVORITES_ADDTOFAVORITES
        MENUITEM "&Remover Favorito...",            ID_FAVORITES_REMOVEFAVORITE
    END
    POPUP "Aj&uda"
    BEGIN
        MENUITEM "&Tópicos da Ajuda",            ID_HELP_HELPTOPICS
        MENUITEM SEPARATOR
        MENUITEM "&Sobre o Editor do Registro", ID_HELP_ABOUT
    END
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDR_REGEDIT_MENU MENU
BEGIN
    POPUP "&Registo"
    BEGIN
        MENUITEM "&Importar ficheiro do Registo...", ID_REGISTRY_IMPORTREGISTRYFILE
        MENUITEM "&Exportar ficheiro do Registo...", ID_REGISTRY_EXPORTREGISTRYFILE
        MENUITEM SEPARATOR
        MENUITEM "&Conectar Registo da rede...",    ID_REGISTRY_CONNECTNETWORKREGISTRY, GRAYED
        MENUITEM "&Desconectar Registo da rede...", ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Im&primir\tCtrl+P",                ID_REGISTRY_PRINT, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "Sai&r",                            ID_REGISTRY_EXIT
    END
    POPUP "&Editar"
    BEGIN
        MENUITEM "&Modificar",                       ID_EDIT_MODIFY
        MENUITEM SEPARATOR
        POPUP "&Novo"
        BEGIN
            MENUITEM "&Chave",                       ID_EDIT_NEW_KEY
            MENUITEM SEPARATOR
            MENUITEM "Valor &Texto",                 ID_EDIT_NEW_STRINGVALUE
            MENUITEM "Valor &Binário",               ID_EDIT_NEW_BINARYVALUE
            MENUITEM "Valor &DWORD",                 ID_EDIT_NEW_DWORDVALUE
            MENUITEM "Valor de palavras &múltiplas", ID_EDIT_NEW_MULTI_STRINGVALUE
        END
        MENUITEM SEPARATOR
        MENUITEM "&Excluir\tDel",                    ID_EDIT_DELETE
        MENUITEM "&Renomear\tF2",                    ID_EDIT_RENAME
        MENUITEM SEPARATOR
        MENUITEM "&Copiar nome da chave",            ID_EDIT_COPYKEYNAME
        MENUITEM SEPARATOR
        MENUITEM "&Localizar\tCtrl+F",               ID_EDIT_FIND, GRAYED
        MENUITEM "L&ocalizar próxima\tF3",           ID_EDIT_FINDNEXT, GRAYED
    END
    POPUP "E&xibir"
    BEGIN
        MENUITEM "&Barra de estado",                 ID_VIEW_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Dividir",                         ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Actualizar\tF5",                   ID_VIEW_REFRESH
    END
    POPUP "&Favoritos"
    BEGIN
        MENUITEM "&Adicionar aos Favoritos",     ID_FAVORITES_ADDTOFAVORITES
        MENUITEM "&Remover Favorito",            ID_FAVORITES_REMOVEFAVORITE
    END
    POPUP "Aj&uda"
    BEGIN
        MENUITEM "&Tópicos da Ajuda",            ID_HELP_HELPTOPICS
        MENUITEM SEPARATOR
        MENUITEM "&Acerca do Editor de Registo", ID_HELP_ABOUT
    END
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

IDR_POPUP_MENUS MENU
BEGIN
  POPUP ""
  BEGIN
	MENUITEM "&Modificar",                  ID_EDIT_MODIFY
	MENUITEM "Modificar dados binários",    ID_EDIT_MODIFY_BIN
	MENUITEM SEPARATOR
	MENUITEM "&Excluir\tDel",               ID_EDIT_DELETE
	MENUITEM "&Renomear",                   ID_EDIT_RENAME
  END
  POPUP ""
  BEGIN
        POPUP "&Novo"
        BEGIN
            MENUITEM "&Chave",                       ID_EDIT_NEW_KEY
            MENUITEM SEPARATOR
            MENUITEM "Valor &Texto",                 ID_EDIT_NEW_STRINGVALUE
            MENUITEM "Valor &Binário",               ID_EDIT_NEW_BINARYVALUE
            MENUITEM "Valor &DWORD",                 ID_EDIT_NEW_DWORDVALUE
            MENUITEM "Valor de palavras &múltiplas", ID_EDIT_NEW_MULTI_STRINGVALUE
        END
        MENUITEM SEPARATOR
        MENUITEM "&Excluir\tDel",                    ID_EDIT_DELETE
        MENUITEM "&Renomear\tF2",                    ID_EDIT_RENAME
        MENUITEM SEPARATOR
        MENUITEM "E&xportar..."                      ID_EDIT_EXPORT
        MENUITEM "&Copiar nome da chave",            ID_EDIT_COPYKEYNAME
        MENUITEM SEPARATOR
        MENUITEM "&Localizar\tCtrl+F",               ID_EDIT_FIND, GRAYED
  END
END


/*
 * Dialog
 */

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_EXPORT_TEMPLATE DIALOG  50, 50, 278, 54
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
    WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Exportar registro", IDC_EXPORT_BASE, 6, 6, 266, 42, WS_GROUP
    AUTORADIOBUTTON "&Todos", IDC_EXPORT_ALL, 12, 15, 244, 12
    AUTORADIOBUTTON "&Ramo selecionado:", IDC_EXPORT_SELECTED, 12, 30, 70, 12
    EDITTEXT IDC_EXPORT_PATH, 82, 30, 184, 12
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_EXPORT_TEMPLATE DIALOG  50, 50, 278, 54
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
    WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Exportar registo", IDC_EXPORT_BASE, 6, 6, 266, 42, WS_GROUP
    AUTORADIOBUTTON "&Todos", IDC_EXPORT_ALL, 12, 15, 244, 12
    AUTORADIOBUTTON "&Ramo seleccionado:", IDC_EXPORT_SELECTED, 12, 30, 70, 12
    EDITTEXT IDC_EXPORT_PATH, 82, 30, 184, 12
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

IDD_FIND DIALOG  22, 17, 220, 85
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Procurar"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Procurar:",IDC_STATIC,5,7,119,8
    EDITTEXT        IDC_VALUE_NAME,40,5,125,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    LTEXT           "Procurar em:",IDC_STATIC,5, 22, 119, 8
    CHECKBOX        "Chaves", IDC_FIND_KEYS, 5, 34, 90, 10, WS_TABSTOP | WS_GROUP | BS_AUTOCHECKBOX
    CHECKBOX        "Nomes de valor", IDC_FIND_VALUES, 5, 46, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    CHECKBOX        "Conteúdos de valor", IDC_FIND_CONTENT, 5, 58, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    CHECKBOX        "Apenas toda a frase", IDC_FIND_WHOLE, 5, 70, 90, 10, WS_TABSTOP | BS_AUTOCHECKBOX
    DEFPUSHBUTTON   "Procurar",IDOK,175,5,40,15,WS_GROUP
    PUSHBUTTON      "Fechar",IDCANCEL,175,24,40,15, WS_GROUP
END

IDD_ADDFAVORITE DIALOG  22, 17, 210, 55
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Adicionar Favorito"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK",IDOK,120,36,40,15,WS_GROUP
    PUSHBUTTON      "Cancelar",IDCANCEL,165,36,40,15,WS_GROUP
END

IDD_DELFAVORITE DIALOG  22, 17, 210, 90
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Remover Favorito"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome:",IDC_STATIC,5,5,119,8
    LISTBOX         IDC_NAME_LIST,5,15,200,52, WS_BORDER | WS_TABSTOP | LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL
    DEFPUSHBUTTON   "OK",IDOK,120,72,40,15,WS_GROUP
    PUSHBUTTON      "Cancelar",IDCANCEL,165,72,40,15,WS_GROUP
END

IDD_EDIT_STRING DIALOG  22, 17, 210, 75
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Editar texto"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome do valor:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED
    LTEXT           "Dados do valor:",IDC_STATIC,5,30,119,8
    EDITTEXT        IDC_VALUE_DATA,5,40,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK",IDOK,140,60,30,11,WS_GROUP
    PUSHBUTTON   "Cancelar",IDCANCEL,175,60,30,11,WS_GROUP
END

IDD_EDIT_DWORD DIALOG  22, 17, 210, 100
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "Editar DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome do valor:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED
    LTEXT           "Dados do valor:",IDC_STATIC,5,30,90,8
    EDITTEXT        IDC_VALUE_DATA,5,40,90,12, WS_BORDER | WS_TABSTOP
    GROUPBOX        "Base", IDC_DWORD_BASE, 120, 30, 85, 37, BS_GROUPBOX
    AUTORADIOBUTTON "Hexadecimal", IDC_DWORD_HEX, 130, 40, 60, 10, WS_TABSTOP
    AUTORADIOBUTTON "Decimal", IDC_DWORD_DEC, 130, 52, 60, 10, WS_TABSTOP
    DEFPUSHBUTTON   "OK",IDOK,140,80,30,11,WS_GROUP
    PUSHBUTTON   "Cancelar",IDCANCEL,175,80,30,11,WS_GROUP
END

IDD_EDIT_BINARY DIALOG  22, 17, 170, 100
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_CAPTION | WS_SYSMENU
CAPTION "Editar Binário"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome do valor:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,160,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL| WS_DISABLED
    LTEXT           "Dados do valor:",IDC_STATIC,5,30,90,8
    CONTROL         "",IDC_VALUE_DATA,"HexEdit",WS_TABSTOP,5,40,160,40
    DEFPUSHBUTTON   "OK",IDOK,80,83,40,15,WS_GROUP
    PUSHBUTTON   "Cancelar",IDCANCEL,125,83,40,15,WS_GROUP
END

IDD_EDIT_MULTI_STRING DIALOG  22, 17, 210, 175
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Editar Multi-frase"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           "Nome do valor:",IDC_STATIC,5,5,119,8
    EDITTEXT        IDC_VALUE_NAME,5,15,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL| WS_DISABLED
    LTEXT           "Dados do valor:",IDC_STATIC,5,30,119,8
    EDITTEXT        IDC_VALUE_DATA,5,40,200,112, WS_BORDER | WS_TABSTOP | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN
    DEFPUSHBUTTON   "OK",IDOK,120,156,40,15,WS_GROUP
    PUSHBUTTON   "Cancelar",IDCANCEL,165,156,40,15,WS_GROUP
END

/*
 * String Table
 */

STRINGTABLE
BEGIN
    IDS_LIST_COLUMN_NAME    "Nome"
    IDS_LIST_COLUMN_TYPE    "Tipo"
    IDS_LIST_COLUMN_DATA    "Dados"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    IDS_APP_TITLE           "Editor do Registro"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    IDS_APP_TITLE           "Editor de Registo"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    ID_REGISTRY_MENU        "Contém comandos para trabalhar com o Registro inteiro."
    ID_EDIT_MENU            "Contém comandos para edição de valores ou chaves."
    ID_VIEW_MENU            "Contém comandos para personalização da janela do Registro."
    ID_FAVORITES_MENU       "Contém comandos para acessar chaves frequentemente usadas."
    ID_HELP_MENU            "Contém comandos para exibição da ajuda e informações sobre o Editor do Registro."
    ID_EDIT_NEW_MENU        "Contém comandos para criação de novas chaves ou valores"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    ID_REGISTRY_MENU        "Contém comandos para trabalhar com o Registo inteiro."
    ID_EDIT_MENU            "Contém comandos para edição de valores ou chaves."
    ID_VIEW_MENU            "Contém comandos para personalização da janela do Registo."
    ID_FAVORITES_MENU       "Contém comandos para aceder a chaves frequentemente usadas."
    ID_HELP_MENU            "Contém comandos para exibição da ajuda e informações sobre o Editor do Registo."
    ID_EDIT_NEW_MENU        "Contém comandos para criação de novas chaves ou valores"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    ID_EDIT_MODIFY          "Modifica os dados do valor."
    ID_EDIT_NEW_KEY         "Adiciona uma nova chave"
    ID_EDIT_NEW_STRINGVALUE "Adiciona um novo valor texto."
    ID_EDIT_NEW_BINARYVALUE "Adiciona um novo valor binário."
    ID_EDIT_NEW_DWORDVALUE  "Adiciona um novo valor DWORD."
    ID_EDIT_NEW_MULTI_STRINGVALUE "Adiciona um novo valor de múltiplas strings"
    ID_REGISTRY_IMPORTREGISTRYFILE "Importa um arquivo texto para o registro."
    ID_REGISTRY_EXPORTREGISTRYFILE
                            "Exporta todo ou parte do registro para um arquivo texto."
    ID_REGISTRY_CONNECTNETWORKREGISTRY
                            "Conecta a um registro em um computador remoto."
    ID_REGISTRY_DISCONNECTNETWORKREGISTRY
                            "Desconecta de um registro um computador remoto."
    ID_REGISTRY_PRINT       "Imprime todo ou parte do registro."
/*    ID_HELP_HELPTOPICS      "Abre a ajuda do Editor do Registro." */
    ID_HELP_ABOUT           "Exibe informações do programa, número da versão e copyright."
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    ID_EDIT_MODIFY          "Modifica os dados do valor."
    ID_EDIT_NEW_KEY         "Adiciona uma nova chave"
    ID_EDIT_NEW_STRINGVALUE "Adiciona um novo valor texto."
    ID_EDIT_NEW_BINARYVALUE "Adiciona um novo valor binário."
    ID_EDIT_NEW_DWORDVALUE  "Adiciona um novo valor DWORD."
    ID_EDIT_NEW_MULTI_STRINGVALUE "Adiciona um novo valor multi string"
    ID_REGISTRY_IMPORTREGISTRYFILE "Importa um ficheiro de texto para o registo."
    ID_REGISTRY_EXPORTREGISTRYFILE
                            "Exporta todo ou parte do registo para um ficheiro de texto."
    ID_REGISTRY_CONNECTNETWORKREGISTRY
                            "Conecta a um registo um computador remoto."
    ID_REGISTRY_DISCONNECTNETWORKREGISTRY
                            "Desconecta de um registo um computador remoto."
    ID_REGISTRY_PRINT       "Imprime todo ou parte do registo."
/*    ID_HELP_HELPTOPICS      "Abre a ajuda do Editor de Registo." */
    ID_HELP_ABOUT           "Exibe informações do programa, número da versão e direitos de autor."
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    ID_REGISTRY_EXIT        "Encerra o Editor do Registro."
    ID_FAVORITES_ADDTOFAVORITES "Adiciona chaves a lista de favoritos."
    ID_FAVORITES_REMOVEFAVORITE "Remove chaves da lista de favoritos."
    ID_VIEW_STATUSBAR       "Mostra ou oculta a barra de status."
    ID_VIEW_SPLIT           "Altera a posição da divisão entre os painéis."
    ID_VIEW_REFRESH         "Atualiza a janela."
    ID_EDIT_DELETE          "Exclui a selecão."
    ID_EDIT_RENAME          "Renomeia a selecão."
    ID_EDIT_COPYKEYNAME     "Copia o nome da chave selecionada para a Área de transferência."
    ID_EDIT_FIND            "Localiza um texto em uma chave, valor ou dado."
    ID_EDIT_FINDNEXT        "Localiza a próxima ocorrência do texto especificado na pesquisa anterior."
    ID_EDIT_EXPORT          "Exporta o ramo do registro selecionado para um arquivo de texto"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    ID_REGISTRY_EXIT        "Encerra o Editor de Registo."
    ID_FAVORITES_ADDTOFAVORITES "Adiciona chaves à lista de favoritos."
    ID_FAVORITES_REMOVEFAVORITE "Remove chaves da lista de favoritos."
    ID_VIEW_STATUSBAR       "Mostra ou oculta a barra de status."
    ID_VIEW_SPLIT           "Altera a posição da divisão entre os painéis."
    ID_VIEW_REFRESH         "Actualiza a janela."
    ID_EDIT_DELETE          "Exclui a selecção."
    ID_EDIT_RENAME          "Renomeia a selecção."
    ID_EDIT_COPYKEYNAME     "Copia o nome da chave seleccionada para a Área de transferência."
    ID_EDIT_FIND            "Localiza um texto numa chave, valor ou dado."
    ID_EDIT_FINDNEXT        "Localiza a próxima ocorrência do texto indicado na pesquisa anterior."
    ID_EDIT_EXPORT          "Exporta o ramo seleccionado do registo para um ficheiro de texto"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    IDS_ERROR		    "Erro"
    IDS_BAD_KEY		    "Não pode consultar a chave '%s'"
    IDS_BAD_VALUE           "Não pode consultar o valor '%s'"
    IDS_UNSUPPORTED_TYPE    "Não pode editar chaves deste tipo (%u)"
    IDS_TOO_BIG_VALUE       "Valor é muito grande (%u)"
    IDS_DELETE_BOX_TITLE    "Confirmar exclusão de valor"
    IDS_DELETE_BOX_TEXT     "Tem certeza que deseja excluir o valor '%s'?"
    IDS_DELETE_BOX_TEXT_MULTIPLE "Tem a certeza que deseja excluir estes valores?"
    IDS_NEWKEY              "Nova chave #%d"
    IDS_NEWVALUE            "Novo valor #%d"
    IDS_NOTFOUND            "Chave de busca '%s' não encontrada"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    IDS_ERROR		    "Erro"
    IDS_BAD_KEY		    "Não pode perguntar a chave '%s'"
    IDS_BAD_VALUE           "Não pode perguntar o valor '%s'"
    IDS_UNSUPPORTED_TYPE    "Não pode editar chaves deste tipo (%u)"
    IDS_TOO_BIG_VALUE       "Valor muito grande (%u)"
    IDS_DELETE_BOX_TITLE    "Confirmar exclusão de valor"
    IDS_DELETE_BOX_TEXT     "Tem certeza que deseja excluir o valor '%s'?"
    IDS_DELETE_BOX_TEXT_MULTIPLE "Tem a certeza que deseja excluir estes valores?"
    IDS_NEWKEY              "Nova chave #%d"
    IDS_NEWVALUE            "Novo valor #%d"
    IDS_NOTFOUND            "Chave de pesquisa '%s' não encontrada"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    IDS_FILEDIALOG_IMPORT_TITLE   "Importar Arquivo de Registro"
    IDS_FILEDIALOG_EXPORT_TITLE   "Exportar Arquivo de Registro"
    IDS_FILEDIALOG_FILTER         "Arquivos de Registro\0*.reg\0Arquivos de Registro Win9x/NT4 (REGEDIT4)\0*.reg\0Todos os Arquivos (*.*)\0*.*\0\0"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    IDS_FILEDIALOG_IMPORT_TITLE   "Importar Ficheiro de Registo"
    IDS_FILEDIALOG_EXPORT_TITLE   "Exportar Ficheiro de Registo"
    IDS_FILEDIALOG_FILTER         "Ficheiros de Registo\0*.reg\0Ficheiros de Registo Win9x/NT4 (REGEDIT4)\0*.reg\0Todos os Ficheiros (*.*)\0*.*\0\0"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

STRINGTABLE
BEGIN
    IDS_REGISTRY_ROOT_NAME           "Meu Computador"
    IDS_REGISTRY_DEFAULT_VALUE       "(Omissão)"
    IDS_REGISTRY_VALUE_NOT_SET       "(valor não dado)"
    IDS_REGISTRY_VALUE_CANT_DISPLAY  "(não pode mostrar o valor)"
    IDS_REGISTRY_UNKNOWN_TYPE        "(desconhecido %d)"
END

/*****************************************************************/

/*
 * TEXTINCLUDE
 */

1 TEXTINCLUDE
BEGIN
    "resource.h\0"
END

/*****************************************************************/
