/*
 * Copyright 2004 Marcelo Duarte
 * Copyright 2006 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 "resource.h"

#pragma code_page(65001)

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

UIINSERTOBJECT DIALOG DISCARDABLE  0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Inserir objeto"
FONT 8, "MS Shell Dlg"
BEGIN
    LISTBOX         IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
                    LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
                    WS_TABSTOP
    LTEXT           "Tipo de objeto:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
    DEFPUSHBUTTON   "OK",IDOK,221,7,66,14
    PUSHBUTTON      "Cancelar",IDCANCEL,221,24,66,14
    GROUPBOX        "Resultado",IDC_RESULT,7,103,208,41
    CONTROL         "Criar novo",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON | 
                    WS_GROUP,7,20,62,10
    CONTROL         "Criar controle",IDC_CREATECONTROL,"Button",
                    BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
    CONTROL         "Criar do arquivo",IDC_CREATEFROMFILE,"Button",
                    BS_AUTORADIOBUTTON,7,37,67,10
    LTEXT           "",IDC_RESULTDESC,49,112,159,23
    PUSHBUTTON      "&Adicionar Controle...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
    CONTROL         "Mostrar como ícone",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
    PUSHBUTTON      "Procurar...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
    LTEXT           "Arquivo:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
    EDITTEXT        IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

UIINSERTOBJECT DIALOG DISCARDABLE  0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Inserir objecto"
FONT 8, "MS Shell Dlg"
BEGIN
    LISTBOX         IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
                    LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
                    WS_TABSTOP
    LTEXT           "Tipo de objecto:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
    DEFPUSHBUTTON   "OK",IDOK,221,7,66,14
    PUSHBUTTON      "Cancelar",IDCANCEL,221,24,66,14
    GROUPBOX        "Resultado",IDC_RESULT,7,103,208,41
    CONTROL         "Criar novo",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
                    WS_GROUP,7,20,62,10
    CONTROL         "Criar controlo",IDC_CREATECONTROL,"Button",
                    BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
    CONTROL         "Criar do ficheiro",IDC_CREATEFROMFILE,"Button",
                    BS_AUTORADIOBUTTON,7,37,67,10
    LTEXT           "",IDC_RESULTDESC,49,112,159,23
    PUSHBUTTON      "&Adicionar Controlo...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
    CONTROL         "Mostrar como ícone",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
    PUSHBUTTON      "Procurar...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
    LTEXT           "Ficheiro:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
    EDITTEXT        IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE DISCARDABLE
{
  IDS_RESULTOBJDESC	"Inserir um novo objeto %s no documento"
  IDS_RESULTFILEOBJDESC	"Inserir o conteúdo do arquivo como um objeto no documento de modo que possa ativá-lo usando o programa que o criou."
  IDS_BROWSE            "Procurar"
  IDS_NOTOLEMOD         "O arquivo não parece ser um módulo OLE válido. Impossível registrar o controle OLE."
  IDS_NOTOLEMODCAPTION  "Adicionar Controle"
}

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE DISCARDABLE
{
  IDS_RESULTOBJDESC	"Inserir novo objecto %s no documento"
  IDS_RESULTFILEOBJDESC	"Inserir conteúdo do ficheiro como um objecto no documento de modo que opossa activar usando o programa que o criou."
  IDS_BROWSE            "Procurar"
  IDS_NOTOLEMOD         "O ficheiro não parece ser um módulo OLE válido. Impossível registrar o controlo OLE."
  IDS_NOTOLEMODCAPTION  "Adicionar Controlo"
}

IDD_PASTESPECIAL4 DIALOG DISCARDABLE 3, 15, 293, 140
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Colar Especial"
FONT 8, "MS Shell Dlg"
BEGIN
    LTEXT         "Origem:", -1, 6, 9, 30, 8, WS_VISIBLE | WS_GROUP
    CONTROL       "&Colar", IDC_PS_PASTE, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_GROUP | WS_VISIBLE,
                  6, 38, 55, 10
    CONTROL       "Colar &Ligação", IDC_PS_PASTELINK, "Button", BS_AUTORADIOBUTTON | WS_VISIBLE,
                  6, 63, 55, 10
    LTEXT         "&Como:", -1, 65, 25, 16, 8, WS_VISIBLE | WS_GROUP
    LISTBOX       IDC_PS_PASTELIST,     65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | NOT WS_VISIBLE
    LISTBOX       IDC_PS_PASTELINKLIST, 65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | NOT WS_VISIBLE
    LISTBOX       IDC_PS_DISPLAYLIST,   65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | WS_VISIBLE
    CONTROL       "OK", IDOK, "Button", BS_DEFPUSHBUTTON | WS_TABSTOP | WS_GROUP | WS_VISIBLE, 224, 6, 66, 14
    CONTROL       "Cancelar", IDCANCEL, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 23, 66, 14
    CONTROL       "&Ajuda", IDC_OLEUIHELP, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 42, 66, 14
    CONTROL       "&Mostrar como Icone", IDC_PS_DISPLAYASICON, "Button", BS_AUTOCHECKBOX | WS_TABSTOP | WS_VISIBLE, 224, 59, 66, 14
    CONTROL       "", IDC_PS_ICONDISPLAY, "Static", SS_ICON | WS_VISIBLE, 224, 75, 66, 44
    CONTROL       "Mudar &Icone...", IDC_PS_CHANGEICON, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 123, 66, 14
    CONTROL       "", IDC_PS_RESULTIMAGE, "Static", SS_ICON | WS_VISIBLE, 8, 101, 42, 34
    CONTROL       "<< texto resultante fica aqui >>", IDC_PS_RESULTTEXT, "Static", SS_NOPREFIX | WS_VISIBLE, 54, 100, 159, 35
    CONTROL       "Resultado", -1, "Button", BS_GROUPBOX | WS_GROUP | WS_VISIBLE, 6, 90, 212, 48
    CONTROL       "", IDC_PS_SOURCETEXT, "Edit", ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE, 37, 9, 180, 8
END

STRINGTABLE DISCARDABLE
{
    IDS_PS_PASTE_DATA                     "Insere o conteúdo da área de transferência no seu documento como %s."
    IDS_PS_PASTE_OBJECT                   "Insere o conteúdo da área de transferência no seu documento para que o possa activar usando %s."
    IDS_PS_PASTE_OBJECT_AS_ICON           "Insere o conteúdo da área de transferência no seu documento para que o possa activar usando %s.  Vai ser mostrado como um icone."
    IDS_PS_PASTE_LINK_DATA                "Insere o conteúdo da área de transferência no seu documento como %s.  Os dados estão ligados ao ficheiro de origem para que alterações ao ficheiro se reflictam no seu documento."
    IDS_PS_PASTE_LINK_OBJECT              "Insere uma imagem da área de transferência no seu documento.  A imagem fica ligada ao ficheiro de origem para que alterações ao ficheiro se reflictam no seu documento."
    IDS_PS_PASTE_LINK_OBJECT_AS_ICON      "Insere um atalho que aponta para a localização do conteúdo na área de transferência.  O atalho fica ligado ao ficheiro de origem para que alterações ao ficheiro se reflictam no seu documento."
    IDS_PS_NON_OLE                        "Insere o conteúdo da área de transferência no seu documento."
    IDS_PS_UNKNOWN_TYPE                   "Tipo Desconhecido"
    IDS_PS_UNKNOWN_SRC                    "Origem Desconhecida"
    IDS_PS_UNKNOWN_APP                    "o programa que o criou"
}
