/*
 * WineCfg resources
 * Portuguese Language Support
 *
 * Copyright 2003 Marcelo Duarte
 * Copyright 2004,2007,2008 Américo José Melo
 *
 * 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 "config.h"   /* Needed for the PACKAGE_STRING definition */
#include "resource.h"

#pragma code_page(65001)

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDR_WINECFG MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Configurar", IDC_AUDIO_CONFIGURE
    END
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 270
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           PACKAGE_STRING,IDC_STATIC,119,17,120,8
    CONTROL         IDB_WINE,IDC_STATIC,"Static", SS_BITMAP, 15,17,157,111
    LTEXT           "http://www.winehq.org/",IDC_STATIC,119,31,106,8
    LTEXT           "This program 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.",
                    IDC_STATIC,119,44,124,72
    GROUPBOX        " Informações de registro do Windows ", IDC_STATIC, 15, 110, 230, 55
    LTEXT           "Proprietário:", IDC_STATIC, 22, 126, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 126, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Organização:", IDC_STATIC, 22, 140, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 140, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 270
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT           PACKAGE_STRING,IDC_STATIC,119,17,120,8
    CONTROL         IDB_WINE,IDC_STATIC,"Static", SS_BITMAP, 15,17,157,111
    LTEXT           "http://www.winehq.org/",IDC_STATIC,119,31,106,8
    LTEXT           "Esta biblioteca é de código livre; pode-a redistribuir e/ou modificar nos termos da Licença Publica Geral Lesser GNU como publicado pela Fundação de Programas Livres; também a versão 2.1 da Licença, ou (na sua opinião) qualquer versão posterior.",
                    IDC_STATIC,119,44,124,72
    GROUPBOX        " Informações de registro do Windows ", IDC_STATIC, 15, 110, 230, 55
    LTEXT           "Proprietário:", IDC_STATIC, 22, 126, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 126, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Organização:", IDC_STATIC, 22, 140, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 140, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_APPCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Configurações da aplicação ",IDC_STATIC, 8,4,244,240
    LTEXT           "Wine pode imitar vários estilos e versões do Windows para cada aplicação",
                    IDC_STATIC,15,20,227,20
    CONTROL         "Aplicações",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,50,230,150
    PUSHBUTTON	    "&Adiconar aplicação...",IDC_APP_ADDAPP, 90,204,75,14
    PUSHBUTTON	    "&Remover aplicação",IDC_APP_REMOVEAPP, 170,204,75,14
    LTEXT           "Versão do &Windows:",IDC_STATIC,17,226,58,8
    COMBOBOX        IDC_WINVER,83,224,163,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_APPCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Definições da aplicação ",IDC_STATIC, 8,4,244,240
    LTEXT           "O Wine pode imitar vários estilos e versões do Windows para cada aplicação. Esta aba está ligada às abas de Ligações e Gráficos para permitir alterar definições por aplicação ou no sistema assim como também nessas abas.",
                    IDC_STATIC,15,20,227,45
    CONTROL         "Aplicações",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,55,230,140
    PUSHBUTTON	    "&Adiconar aplicação...",IDC_APP_ADDAPP, 90,204,75,14
    PUSHBUTTON	    "&Remover aplicação",IDC_APP_REMOVEAPP, 170,204,75,14
    LTEXT           "Versão &Windows:",IDC_STATIC,17,226,58,8
    COMBOBOX        IDC_WINVER,83,224,163,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Configurações de janela ",IDC_STATIC,8,4,244,84
    CONTROL     "Programas DirectX podem impedir que o mouse deixe a janela?",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Allow the window manager to &decorate the windows",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Allow the &window manager to control the windows",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "Emular uma área de trabalho virtual",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Tamanho da área de trabalho:",IDC_DESKTOP_SIZE,15,70,44,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,109,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,64,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,117,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "&Vertex Shader Support: ",IDC_STATIC,15,110,80,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,100,108,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Allow &Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " Screen &Resolution ",IDC_STATIC,8,151,244,93
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,187,15
    EDITTEXT    IDC_RES_DPIEDIT,204,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "dpi",IDC_STATIC,235,163,10,8
    LTEXT       "This is a sample text using 10 point Tahoma",IDC_RES_FONT_PREVIEW,15,181,230,55
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Definições da Janela ",IDC_STATIC,8,4,244,184
    CONTROL     "Permitir às aplicações DirectX impedir que o &rato deixe a sua janela",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Allow the window manager to &decorate the windows",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Permitit ao &gestor de janelas controlar as janelas",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "Emular um ecrã &virtual",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Tamanho do &ecrã:",IDC_DESKTOP_SIZE,15,70,44,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,109,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,64,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,117,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "Suporte &Vertex: ",IDC_STATIC,15,110,80,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,100,108,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Permitir Sombreamento de &Pontos (se suportado pelo material)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " &Resolução do Ecrã ",IDC_STATIC,8,151,244,93
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,187,15
    EDITTEXT    IDC_RES_DPIEDIT,204,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "dpi",IDC_STATIC,235,163,10,8
    LTEXT       "This is a sample text using 10 point Tahoma",IDC_RES_FONT_PREVIEW,15,181,230,55
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Substituição de DLL ",IDC_STATIC,8,4,244,240
    LTEXT           "As bibliotecas de Ligação Dinâmica pode ser especificadas individualmente para serem embutidas (fornecido pelo Wine) ou nativas (tiradas do Windows ou fornecidas pela aplicação)."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "&Nova substituição para:",IDC_STATIC,16,58,100,8
    COMBOBOX        IDC_DLLCOMBO,16,68,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "&Adicionar",IDC_DLLS_ADDDLL, 164,68,82,13,BS_DEFPUSHBUTTON
    LTEXT           "Substituições E&xistentes:",IDC_STATIC,16,86,100,8
    LISTBOX         IDC_DLLS_LIST,16,96,140,140,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "&Editar",IDC_DLLS_EDITDLL,164,96,82,14
    PUSHBUTTON      "&Remover",IDC_DLLS_REMOVEDLL,164,114,82,14
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_LOADORDER DIALOG DISCARDABLE 80, 90, 110, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Editar Substituição"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Ordem de Carregamento ",IDC_STATIC,8,4,94,66
    CONTROL         "Em&butida (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,75,10
    CONTROL         "&Nativa (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,75,10
    CONTROL         "E&mbutida depois Nativa",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,75,10
    CONTROL         "Nati&va depois Embutida",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,75,10
    CONTROL         "&Desactivar",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,75,10
    DEFPUSHBUTTON   "OK",IDOK,8,74,45,14,WS_GROUP
    PUSHBUTTON      "Cancelar",IDCANCEL,57,74,45,14,WS_GROUP
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_DRIVECFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Outras unidades",IDC_STATIC,8,4,244,240
    LTEXT           "Failed to connect to the mount manager, the drive configuration cannot be edited.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,220,76
    CONTROL         "Listview",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "&Adicionar...",IDC_BUTTON_ADD,15,98,44,14
    PUSHBUTTON      "&Remover",IDC_BUTTON_REMOVE,62,98,37,14
    PUSHBUTTON      "Auto&detectar...",IDC_BUTTON_AUTODETECT,190,98,56,14

    /* editing drive details */
    LTEXT           "&Path:",IDC_STATIC_PATH,15,123,20,9
    EDITTEXT        IDC_EDIT_PATH,41,120,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Browse...",IDC_BUTTON_BROWSE_PATH,206,120,40,13

    LTEXT           "&Type:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,41,135,77,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    LTEXT           "Label and serial number",IDC_LABELSERIAL_STATIC,15,155,95,10

    PUSHBUTTON      "Show &Advanced",IDC_BUTTON_SHOW_HIDE_ADVANCED,186,136,60,13
    CONTROL         "Autodetect &from Device:",IDC_RADIO_AUTODETECT,"Button",
                    BS_AUTORADIOBUTTON,15,166,93,10
    EDITTEXT        IDC_EDIT_DEVICE,27,176,174,13,ES_AUTOHSCROLL
    PUSHBUTTON      "Bro&wse...",IDC_BUTTON_BROWSE_DEVICE,206,176,40,13
    CONTROL         "&Manually Assign:",IDC_RADIO_ASSIGN,"Button",
                    BS_AUTORADIOBUTTON,15,195,69,10

    LTEXT           "&Label:",IDC_STATIC_LABEL,33,208,29,12
    EDITTEXT        IDC_EDIT_LABEL,63,205,78,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "S&erial:",IDC_STATIC_SERIAL,33,225,29,12
    EDITTEXT        IDC_EDIT_SERIAL,63,221,78,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Show &dot files",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,260,230,8
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_DRIVECFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " &Unidades ",IDC_STATIC,8,4,244,240
    LTEXT           "Falhou a ligação ao gestor de unidades, a configuração da unidade não pode ser editada.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,220,76
    CONTROL         "Listagem",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "&Adicionar...",IDC_BUTTON_ADD,15,98,44,14
    PUSHBUTTON      "&Remover",IDC_BUTTON_REMOVE,62,98,37,14
    PUSHBUTTON      "Auto&detectar...",IDC_BUTTON_AUTODETECT,190,98,56,14

    /* editing drive details */
    LTEXT           "&Localização:",IDC_STATIC_PATH,15,123,20,9
    EDITTEXT        IDC_EDIT_PATH,41,120,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Procurar...",IDC_BUTTON_BROWSE_PATH,206,120,40,13

    LTEXT           "&Tipo:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,41,135,77,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    LTEXT           "Nome e nº de serie",IDC_LABELSERIAL_STATIC,15,155,95,10

    PUSHBUTTON      "Mostrar &Avançado",IDC_BUTTON_SHOW_HIDE_ADVANCED,186,136,60,13
    CONTROL         "Autodetectar &Dispositivo:",IDC_RADIO_AUTODETECT,"Button",
                    BS_AUTORADIOBUTTON,15,166,93,10
    EDITTEXT        IDC_EDIT_DEVICE,27,176,174,13,ES_AUTOHSCROLL
    PUSHBUTTON      "P&rocurar...",IDC_BUTTON_BROWSE_DEVICE,206,176,40,13
    CONTROL         "Atribuir &Manualmente:",IDC_RADIO_ASSIGN,"Button",
                    BS_AUTORADIOBUTTON,15,195,69,10

    LTEXT           "&Nome:",IDC_STATIC_LABEL,33,208,29,12
    EDITTEXT        IDC_EDIT_LABEL,63,205,78,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Nº S&erie:",IDC_STATIC_SERIAL,33,225,29,12
    EDITTEXT        IDC_EDIT_SERIAL,63,221,78,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Mostrar &ficheiros com pontos",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,260,230,8
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_AUDIOCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Selecção do Controlador ",IDC_STATIC,8,4,244,195
    LTEXT           "Seleccione um controlador de som marcando o desejado. Desactive o som não seleccionado qualquer controlador. Não é recomendada a selecção de vários controladores . Configure um controlador seleccionado-o com o clique direito.",IDC_STATIC,15,18,227,35
    CONTROL         "Dispositivos",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,55,140,140
    PUSHBUTTON      "&Testar Som",IDC_AUDIO_TEST,170,55,65,14
    PUSHBUTTON	    "Painel de &Controlo",IDC_AUDIO_CONTROL_PANEL,170,75,65,14
    GROUPBOX        " DirectSound ",IDC_STATIC,8,205,244,60
    LTEXT	    "Aceleração do &Material: ",IDC_STATIC,15,215,90,10
    COMBOBOX	    IDC_DSOUND_HW_ACCEL,100,213,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Taxa de Amo&stra Predefinida:",IDC_STATIC,15,232,70,8
    COMBOBOX        IDC_DSOUND_RATES,90,230,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Bits Predefinidos por Amostra:",IDC_STATIC,137,232,80,8
    COMBOBOX        IDC_DSOUND_BITS,220,230,30,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL         "&Emulação do Controlador",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,250,230,10
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
    LTEXT           "&Theme:",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Install theme...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "&Color:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Size:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "It&em:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "C&olor:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "Si&ze:",IDC_SYSPARAM_SIZE_TEXT,166,64,30,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "&Font",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " S&hell Folder ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "&Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "B&rowse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Aparência ",IDC_STATIC,8,4,244,106
    LTEXT           "&Tema:",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Instalar tema...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "&Cor:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Tamanho:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Ít&em:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "C&or:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "Tama&nho:",IDC_SYSPARAM_SIZE_TEXT,166,64,30,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "Tipo de &Letra",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " &Pastas Pessoais ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "&Ligar a:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "P&rocurar",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE DISCARDABLE
BEGIN
    IDS_TAB_APPLICATIONS    "Applications"
    IDS_TAB_DLLS            "Bibliotecas"
    IDS_TAB_DRIVES          "Unidades"
    IDS_CHOOSE_PATH         "Select the unix target directory, please."
    IDS_HIDE_ADVANCED       "Hide &Advanced"
    IDS_SHOW_ADVANCED       "Show &Advanced"
    IDS_NOTHEME             "(No Theme)"
    IDS_TAB_GRAPHICS        "Graphics"
    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
    IDS_TAB_AUDIO           "Audio"
    IDS_TAB_ABOUT           "About"
    IDS_WINECFG_TITLE       "Configuração do Wine"
    IDS_WINECFG_TITLE_APP   "Configuração do Wine para %s"
    IDS_THEMEFILE           "Theme files"
    IDS_THEMEFILE_SELECT    "Select a theme file"
    IDS_AUDIO_MISSING       "There is no audio driver currently specified in the registry.\n\nA recommended driver has been selected for you.\nYou can use this driver or select another driver if available.\n\nYou must click Apply for the selection to take effect."
    IDS_SHELL_FOLDER        "Diretórios"
    IDS_LINKS_TO            "Links para"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDS_TAB_APPLICATIONS    "Aplicações"
    IDS_TAB_DLLS            "Bibliotecas"
    IDS_TAB_DRIVES          "Unidades"
    IDS_CHOOSE_PATH         "Seleccione o directório de destino unix."
    IDS_HIDE_ADVANCED       "&Ocultar"
    IDS_SHOW_ADVANCED       "&Avançado"
    IDS_NOTHEME             "(Sem Tema)"
    IDS_TAB_GRAPHICS        "Gráficos"
    IDS_TAB_DESKTOP_INTEGRATION "Integração do Ecrã"
    IDS_TAB_AUDIO           "Áudio"
    IDS_TAB_ABOUT           "Acerca"
    IDS_WINECFG_TITLE       "Configuração Wine"
    IDS_WINECFG_TITLE_APP   "Configuração Wine para %s"
    IDS_THEMEFILE           "Ficheiros de temas"
    IDS_THEMEFILE_SELECT    "Seleccione um ficheiro de tema"
    IDS_AUDIO_MISSING       "Não está actualmente nenhum controlador áudio seleccionado no registo.\n\nFoi seleccionado para si um controlador recomendado.\nPode usar este controlador ou seleccionar outro se disponível.\n\nTem que clicar am Aplicar para que a selecção tenha efeito."
    IDS_SHELL_FOLDER        "Directórios"
    IDS_LINKS_TO            "Ligações para"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDS_DLL_WARNING         "Não é recomendado que mude a ordem de carregamento desta biblioteca.\nTem certeza que quer fazer isto?"
    IDS_DLL_WARNING_CAPTION "Aviso: biblioteca do sistema"
    IDS_DLL_NATIVE          "nativa"
    IDS_DLL_BUILTIN         "embutida"
    IDS_DLL_NATIVE_BUILTIN  "nativa, embutida"
    IDS_DLL_BUILTIN_NATIVE  "embutida, nativa"
    IDS_DLL_DISABLED        "desactivada"
    IDS_DEFAULT_SETTINGS    "Definições Predefinidas"
    IDS_EXECUTABLE_FILTER   "Programas Wine (*.exe,*.exe.so)\0*.exe;*.exe.so\0"
    IDS_USE_GLOBAL_SETTINGS "Usar definições globais"
    IDS_SELECT_EXECUTABLE   "Seleccionar um ficheiro executável"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDS_SHADER_MODE_HARDWARE    "Material"
    IDS_SHADER_MODE_NONE        "Nenhum"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDS_DRIVE_UNKNOWN           "Autodetectar"
    IDS_DRIVE_FIXED             "Disco rígido local"
    IDS_DRIVE_REMOTE            "Partilha de rede"
    IDS_DRIVE_REMOVABLE         "Disquete"
    IDS_DRIVE_CDROM             "CD-ROM"
    IDS_DRIVE_LETTERS_EXCEEDED  "Não pode adicionar mais unidades.\n\nCada unidade tem que ter uma letra, de A a Z, como tal não pode adicionar mais de 26"
    IDS_SYSTEM_DRIVE_LABEL      "Unidade do sistema"
    IDS_CONFIRM_DELETE_C        "Tem certeza que deseja apaga a unidade C?\n\nA maior parte das aplicações Windows esperam que a unidade C exista, e irá danificar-se se não existir. Se continuar lembre-se de recriar a unidade!"
    IDS_COL_DRIVELETTER         "Letra"
    IDS_COL_DRIVEMAPPING        "Unidades"
    IDS_NO_DRIVE_C              "se não tem uma unidade C. Isto não é nada bom.\n\nCertifique-se que clica em  ?Adicionar? no seprador Unidades para criar uma!\n"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDS_ACCEL_FULL              "Total"
    IDS_ACCEL_STANDARD          "Padrão"
    IDS_ACCEL_BASIC             "Básico"
    IDS_ACCEL_EMULATION         "Emulação"
    IDS_DRIVER_ALSA             "Controlador ALSA"
    IDS_DRIVER_ESOUND           "Controlador EsounD"
    IDS_DRIVER_OSS              "Controlador OSS"
    IDS_DRIVER_JACK             "Controlador JACK"
    IDS_DRIVER_NAS              "Controlador NAS"
    IDS_DRIVER_AUDIOIO          "Controlador ES de Áudio (Solaris)"
    IDS_DRIVER_COREAUDIO        "Controlador CoreAudio"
    IDS_OPEN_DRIVER_ERROR       "Não é possível abrir %s!"
    IDS_SOUNDDRIVERS            "Controladores de Som"
    IDS_DEVICES_WAVEOUT         "Dispositivos de Saída Wave"
    IDS_DEVICES_WAVEIN          "Dispositivos de Entrada Wave"
    IDS_DEVICES_MIDIOUT         "Dispositivos de Saída MIDI"
    IDS_DEVICES_MIDIIN          "Dispositivos de Entrada MIDI"
    IDS_DEVICES_AUX             "Dispositivos Auxiliares"
    IDS_DEVICES_MIXER           "Dispositivos Misturadores"
    IDS_UNAVAILABLE_DRIVER      "Encontrou-se um controlador no registo que não está disponível!\n\nRemover ?%s? do registo?"
    IDS_WARNING                 "Aviso"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
BEGIN
    IDC_SYSPARAMS_BUTTON            "Fundo dos Controlos"
    IDC_SYSPARAMS_BUTTON_TEXT       "Texto dos Controlos"
    IDC_SYSPARAMS_DESKTOP           "Ecrã"
    IDC_SYSPARAMS_MENU              "Fundo do Menu"
    IDC_SYSPARAMS_MENU_TEXT         "Texto do Menu"
    IDC_SYSPARAMS_SCROLLBAR         "Barra de Rolagem"
    IDC_SYSPARAMS_SELECTION         "Fundo de Selecção"
    IDC_SYSPARAMS_SELECTION_TEXT    "Texto de Selecção"
    IDC_SYSPARAMS_TOOLTIP           "Fundo das Dicas"
    IDC_SYSPARAMS_TOOLTIP_TEXT      "Texto das Dicas"
    IDC_SYSPARAMS_WINDOW            "Fundo das Janelas"
    IDC_SYSPARAMS_WINDOW_TEXT       "Texto das Janelas"
    IDC_SYSPARAMS_ACTIVE_TITLE      "Barra de Título Activa"
    IDC_SYSPARAMS_ACTIVE_TITLE_TEXT "Texto de Título Activo"
    IDC_SYSPARAMS_INACTIVE_TITLE    "Barra de Título Inactiva"
    IDC_SYSPARAMS_INACTIVE_TITLE_TEXT "Texto de Título Inactivo"
    IDC_SYSPARAMS_MSGBOX_TEXT       "Texto da Caixa de Mensagem"
    IDC_SYSPARAMS_APPWORKSPACE      "Application Workspace"
    IDC_SYSPARAMS_WINDOW_FRAME      "Window Frame"
    IDC_SYSPARAMS_ACTIVE_BORDER     "Active Border"
    IDC_SYSPARAMS_INACTIVE_BORDER   "Inactive Border"
    IDC_SYSPARAMS_BUTTON_SHADOW     "Controls Shadow"
    IDC_SYSPARAMS_GRAY_TEXT         "Gray Text"
    IDC_SYSPARAMS_BUTTON_HILIGHT    "Controls Highlight"
    IDC_SYSPARAMS_BUTTON_DARK_SHADOW "Controls Dark Shadow"
    IDC_SYSPARAMS_BUTTON_LIGHT      "Controls Light"
    IDC_SYSPARAMS_BUTTON_ALTERNATE  "Controls Alternate Background"
    IDC_SYSPARAMS_HOT_TRACKING      "Hot Tracked Item"
    IDC_SYSPARAMS_ACTIVE_TITLE_GRADIENT "Active Title Bar Gradient"
    IDC_SYSPARAMS_INACTIVE_TITLE_GRADIENT "Inactive Title Bar Gradient"
    IDC_SYSPARAMS_MENU_HILIGHT      "Menu Highlight"
    IDC_SYSPARAMS_MENUBAR           "Menu Bar"
END
