/*
 * WineFile
 * Portuguese Language Support
 *
 * Copyright 2003 Marcelo Duarte
 * Copyright 2004,2007 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 "resource.h"

#pragma code_page(65001)

/* Menu */

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Arquivo"  {
        MENUITEM "A&brir\tEnter",               ID_ACTIVATE
        MENUITEM "&Mover...\tF7",               ID_FILE_MOVE
        MENUITEM "&Copiar...\tF8",              ID_FILE_COPY
        MENUITEM "Na área de &transferência...\tF9",        118
        MENUITEM "E&xcluir\tDel",               ID_FILE_DELETE
        MENUITEM "Re&nomear...",                109
        MENUITEM "Propri&edades...\tAlt+Enter", ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "C&omprimir...",               119
        MENUITEM "&Descomprimir...",             120
        MENUITEM SEPARATOR
        MENUITEM "Exec&utar...",                ID_RUN
        MENUITEM "&Imprimir...",                102
        MENUITEM "A&ssociar...",                103
        MENUITEM SEPARATOR
        MENUITEM "Criar &pasta...",             111
        MENUITEM "Pes&quisar...",               104
        MENUITEM "Selecionar arqui&vos...",     116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "Sai&r\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "Sai&r",                       ID_FILE_EXIT
#endif
    }

    POPUP "&Disco"  {
        MENUITEM "&Copiar disco...",            201
        MENUITEM "&Nomear disco...",            202
        MENUITEM SEPARATOR
        MENUITEM "&Formatar disco...",          ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Gerar disco de sistema...", -1   /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Con&ectar unidade de rede",   ID_CONNECT_NETWORK_DRIVE
        MENUITEM "De&sconectar unidade de rede",ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "C&ompartilhar como...",       254
        MENUITEM "&Remover compartilhamento...",255
        MENUITEM SEPARATOR
        MENUITEM "Selecionar &unidade...",      251
    }

    POPUP "Á&rvore"  {
        MENUITEM "&Próximo nível\t+",           301
        MENUITEM "E&xpandir pasta\t*",          302
        MENUITEM "Expandir &tudo\tStrg+*",      303
        MENUITEM "Recolher p&asta\t-",          304
        MENUITEM SEPARATOR
        MENUITEM "&Indicar subníveis",          505
    }

    POPUP "E&xibir"  {
        MENUITEM "Á&rvore e pasta",             413
        MENUITEM "Apenas ár&vore",             411
        MENUITEM "Apenas &pasta",              412
        MENUITEM SEPARATOR
        MENUITEM "&Dividir",                    ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Nome",                       ID_VIEW_NAME
        MENUITEM "&Todos os detalhes",          ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "D&etalhes parciais...",       ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Classificar por nome",       ID_VIEW_SORT_NAME
        MENUITEM "Cla&ssificar por tipo",       ID_VIEW_SORT_TYPE
        MENUITEM "Classificar por ta&manho",    ID_VIEW_SORT_SIZE
        MENUITEM "Classi&ficar por data",      ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Classificar p&or...",         ID_VIEW_FILTER
    }

    POPUP "&Opções"  {
        MENUITEM "&Confirmação...",             501
        MENUITEM "&Fonte...",                   ID_SELECT_FONT
        MENUITEM "&Personalizar barra de ferramentas...", 512
        MENUITEM SEPARATOR
        MENUITEM "Barra d&e ferramentas",       ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Barra de &unidades",          ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "Barra de s&tatus",           ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "Tela cheia\tCtrl+Shift+S",    ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Minimizar durante o uso",    504
        MENUITEM "&Salvar configurações ao sair",511
    }


    POPUP "&Segurança"  {
        MENUITEM "&Acesso...",                  605
        MENUITEM "Au&tenticação...",                 606
        MENUITEM "&Proprietário...",                   607
    }

    POPUP "&Janela"  {
        MENUITEM "&Nova janela",                ID_WINDOW_NEW
        MENUITEM "&Em cascata\tCtrl+F5",        ID_WINDOW_CASCADE
        MENUITEM "Lado a lado &horizontalmente",ID_WINDOW_TILE_HORZ
        MENUITEM "Lado a lado &verticalmente\tCtrl+F4",ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Organizar automaticamente",   ID_WINDOW_AUTOSORT
#endif
        MENUITEM "&Organizar ícones",           ID_WINDOW_ARRANGE
        MENUITEM "&Atualizar\tF5",              ID_REFRESH
    }

    POPUP "Aj&uda"  {
        MENUITEM "&Tópicos da ajuda\tF1",       ID_HELP
        MENUITEM "&Pesquisar...",                ID_HELP
        MENUITEM "Usando a &ajuda",             ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Sobre o Winefile...",        ID_ABOUT
    }
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Ficheiro"  {
        MENUITEM "A&brir\tEnter",               ID_ACTIVATE
        MENUITEM "&Mover...\tF7",               ID_FILE_MOVE
        MENUITEM "&Copiar...\tF8",              ID_FILE_COPY
        MENUITEM "Na Area de &Transferência...\tF9",        118
        MENUITEM "E&xcluir\tDel",               ID_FILE_DELETE
        MENUITEM "Re&nomear...",                109
        MENUITEM "Propri&edades...\tAlt+Enter", ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "C&omprimir...",               119
        MENUITEM "&Descomprimir...",            120
        MENUITEM SEPARATOR
        MENUITEM "Exec&utar...",                ID_RUN
        MENUITEM "&Imprimir...",                102
        MENUITEM "A&ssociar...",                103
        MENUITEM SEPARATOR
        MENUITEM "Criar &pasta...",             111
        MENUITEM "Pes&quisar...",               104
        MENUITEM "Seleccion&ar ficheiros...",    116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "Sai&r\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "Sai&r",                       ID_FILE_EXIT
#endif
    }

    POPUP "&Disco"  {
        MENUITEM "&Copiar disco...",            201
        MENUITEM "&Nomear disco...",            202
        MENUITEM SEPARATOR
        MENUITEM "&Formatar disco...",          ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Gerar disco de sistema...", -1   /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "L&igar unidade de rede",   ID_CONNECT_NETWORK_DRIVE
        MENUITEM "D&esligar unidade de rede",ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "&Partilhar como...",          254
        MENUITEM "&Remover partilha...",        255
        MENUITEM SEPARATOR
        MENUITEM "Seleccionar &unidade...",     251
    }

    POPUP "Á&rvore"  {
        MENUITEM "&Próximo nível\t+",           301
        MENUITEM "E&xpandir pasta\t*",          302
        MENUITEM "Expandir &tudo\tStrg+*",      303
        MENUITEM "Recolher p&asta\t-",          304
        MENUITEM SEPARATOR
        MENUITEM "&Indicar subníveis",          505
    }

    POPUP "E&xibir"  {
        MENUITEM "Á&rvore e pasta",             413
        MENUITEM "Apenas ár&vore",             411
        MENUITEM "Apenas &pasta",              412
        MENUITEM SEPARATOR
        MENUITEM "&Dividir",                    ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Nome",                       ID_VIEW_NAME
        MENUITEM "&Todos os detalhes",          ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "D&etalhes parciais...",       ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Classificar por nome",       ID_VIEW_SORT_NAME
        MENUITEM "Cla&ssificar por tipo",       ID_VIEW_SORT_TYPE
        MENUITEM "Classificar por ta&manho",    ID_VIEW_SORT_SIZE
        MENUITEM "Classi&ficar por data",      ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Classificar p&or...",         ID_VIEW_FILTER
    }

    POPUP "&Opções"  {
        MENUITEM "&Confirmação...",             501
        MENUITEM "&Tipo de letra...",                   ID_SELECT_FONT
        MENUITEM "&Personalizar barra de ferramentas...", 512
        MENUITEM SEPARATOR
        MENUITEM "Barra de &ferramentas",       ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Barra de &unidades",          ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "Barra de &estado",           ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "Ecrã completo\tCtrl+Shift+S",    ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Minimizar durante o uso",    504
        MENUITEM "&Gravar configurações ao sair",511
    }


    POPUP "&Segurança"  {
        MENUITEM "&Acesso...",                  605
        MENUITEM "Au&tenticação...",                 606
        MENUITEM "&Dono...",                    607
    }

    POPUP "&Janela"  {
        MENUITEM "&Nova janela",                ID_WINDOW_NEW
        MENUITEM "&Em cascata\tCtrl+F5",        ID_WINDOW_CASCADE
        MENUITEM "Lado a lado &horizontalmente",ID_WINDOW_TILE_HORZ
        MENUITEM "Lado a lado &verticalmente\tCtrl+F4",ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Organizar automaticamente",   ID_WINDOW_AUTOSORT
#endif
        MENUITEM "&Organizar ícones",           ID_WINDOW_ARRANGE
        MENUITEM "&Actualizar\tF5",             ID_REFRESH
    }

    POPUP "Aj&uda"  {
        MENUITEM "&Tópicos da ajuda\tF1",       ID_HELP
        MENUITEM "&Pesquisar...",                ID_HELP
        MENUITEM "Usar a &ajuda",             ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Sobre o Winefile...",        ID_ABOUT
    }
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Selecionar destino"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Caminho:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Cancelar", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Procurar", 254, 158, 43, 47, 14
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Seleccionar destino"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Localização:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Cancelar", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Procurar", 254, 158, 43, 47, 14
}


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Por tipo de arquivo"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Nome:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Tipo de arquivo",-1,7,23,87,56
    CONTROL         "&Diretórios",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programas",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Do&cumentos",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Outros arquivos",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "&Mostrar arquivos ocultos/sistema",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Cancelar",IDCANCEL,104,24,50,14
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Por tipo de ficheiro"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Nome:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Tipo de ficheiro",-1,7,23,87,56
    CONTROL         "&Directórios",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programas",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Do&cumentos",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Outros ficheiros",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "&Mostrar ficheiros ocultos/sistema",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Cancelar",IDCANCEL,104,24,50,14
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propriedades de %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Cancelar",IDCANCEL,191,29,50,14
    LTEXT           "&Nome do arquivo:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Localização Completa:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Última alteração:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versão:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Direitos de autor:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Tamanho:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Atributos",-1,7,79,158,46
    CONTROL         "&Apenas leitura",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "&Oculto",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "Ar&quivo",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Sistema",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Comprimido",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Informação de versão",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propriedades de %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Cancelar",IDCANCEL,191,29,50,14
    LTEXT           "&Nome do ficheiro:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Localização Completa:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Última alteração:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versão:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Direitos de autor:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Tamanho:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Atributos",-1,7,79,158,46
    CONTROL         "&Apenas de leitura",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "&Oculto",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "Ar&quivo",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Sistema",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Comprimido",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Informação de versão",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Aplicando configurações de fonte"
    IDS_FONT_SEL_ERROR      "Erro al selecionar nova fonte."
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "A aplicar configurações do tipo de letra"
    IDS_FONT_SEL_ERROR      "Erro ao seleccionar novo tipo de letra."
}


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
{
 IDS_WINEFILE               "Gerenciador de Arquivos do Wine"
 IDS_ERROR                  "Erro"
 IDS_ROOT_FS                "root fs"
 IDS_UNIXFS                 "unixfs"
 IDS_DESKTOP                "Área de trabalho"
 IDS_SHELL                  "Linha de comandos"
 IDS_TITLEFMT               "%s - %s"
 IDS_NO_IMPL                "Ainda não implementado"
 IDS_WINE_FILE              "Arquivo Wine"
}

STRINGTABLE
{
 IDS_COL_NAME               "Nome"
 IDS_COL_SIZE               "Tamanho"
 IDS_COL_CDATE              "CData"
 IDS_COL_ADATE              "AData"
 IDS_COL_MDATE              "MData"
 IDS_COL_IDX                "Índice/Inode"
 IDS_COL_LINKS              "Links"
 IDS_COL_ATTR               "Atributos"
 IDS_COL_SEC                "Segurança"

 IDS_FREE_SPACE_FMT         "%s de %s livre"
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
{
 IDS_WINEFILE               "Winefile"
 IDS_ERROR                  "Erro"
 IDS_ROOT_FS                "root fs"
 IDS_UNIXFS                 "unixfs"
 IDS_DESKTOP                "Área de trabalho"
 IDS_SHELL                  "Linha de comandos"
 IDS_TITLEFMT               "%s - %s"
 IDS_NO_IMPL                "Ainda não implementado"
 IDS_WINE_FILE              "Ficheiro Wine"
}

STRINGTABLE
{
 IDS_COL_NAME               "Nome"
 IDS_COL_SIZE               "Tamanho"
 IDS_COL_CDATE              "CData"
 IDS_COL_ADATE              "AData"
 IDS_COL_MDATE              "MData"
 IDS_COL_IDX                "Índice/Inode"
 IDS_COL_LINKS              "Ligações"
 IDS_COL_ATTR               "Atributos"
 IDS_COL_SEC                "Segurança"

 IDS_FREE_SPACE_FMT         "%s de %s livre"
}
