// I18N constants
// LANG: "pt_br", ENCODING: UTF-8
//
// IMPORTANT NOTICE FOR TRANSLATORS
// ============================================================================
//
// Please be sure you read the README_TRANSLATORS.TXT in the Xinha Root 
// Directory.  Unless you are making a new plugin or module it is unlikely 
// that you want to be editing this file directly.
//
{
    "&#8212; font &#8212;": "&#8212; fonte &#8212;",
    "&#8212; format &#8212;": "&#8212; formato &#8212;",
    "&#8212; size &#8212;": "&#8212; tamanho &#8212;",
    "About this editor": "Sobre este editor",
    "Address": "Endereço",
    "Background Color": "Cor do Fundo",
    "Bold": "Negrito",
    "Bulleted List": "Lista Marcadores",
    "CTRL-0 (zero)": "CTRL-0 (zero)",
    "CTRL-1 .. CTRL-6": "CTRL-1 .. CTRL-6",
    "CTRL-A": "CTRL-A",
    "CTRL-B": "CTRL-B",
    "CTRL-C": "CTRL-C",
    "CTRL-E": "CTRL-E",
    "CTRL-I": "CTRL-I",
    "CTRL-J": "CTRL-J",
    "CTRL-L": "CTRL-L",
    "CTRL-N": "CTRL-N",
    "CTRL-R": "CTRL-R",
    "CTRL-S": "CTRL-S",
    "CTRL-U": "CTRL-U",
    "CTRL-V": "CTRL-V",
    "CTRL-X": "CTRL-X",
    "CTRL-Y": "CTRL-Y",
    "CTRL-Z": "CTRL-Z",
    "Clean content pasted from Word": "Limpar conteúdo copiado do Word",
    "Clear Inline Font Specifications": "Limpar especificações de fontes inline",
    "Clear MSOffice tags": "Limpar tags do MS Office",
    "Close": "Fechar",
    "Constructing object": "Construindo objeto",
    "Copy selection": "Copiar seleção",
    "Create Statusbar": "Criar barra de informação (statusbar)",
    "Create Toolbar": "Criar Barra de Ferramentas",
    "Current style": "Estilo Atual",
    "Cut selection": "Recortar seleção",
    "Decrease Indent": "Diminuir Indentação",
    "Direction left to right": "Da esquerda para direita",
    "Direction right to left": "Da direita para esquerda",
    "ENTER": "ENTER",
    "Editor Help": "Ajuda do Editor",
    "Finishing": "Terminando",
    "Font Color": "Cor da Fonte",
    "Formatted": "Formatado",
    "Generate Xinha framework": "Gerar Área de Trabalho do Xinha",
    "Heading 1": "Título 1",
    "Heading 2": "Título 2",
    "Heading 3": "Título 3",
    "Heading 4": "Título 4",
    "Heading 5": "Título 5",
    "Heading 6": "Título 6",
    "Headings": "Títulos",
    "Help using editor": "Ajuda - Usando o editor",
    "Horizontal Rule": "Linha Horizontal",
    "Increase Indent": "Aumentar Indentação",
    "Init editor size": "Iniciar tamanho do editor",
    "Insert Table": "Inserir Tabela",
    "Insert Web Link": "Inserir Link",
    "Insert/Modify Image": "Inserir/Modificar Imagem",
    "Insert/Overwrite": "Inserir/Sobrescrever",
    "Italic": "Itálico",
    "Justify Center": "Justificar Centralizado",
    "Justify Full": "Justificar Completamente",
    "Justify Left": "Justificar à Esquerda",
    "Justify Right": "Justificar à Direita",
    "Keyboard shortcuts": "Atalhos de Teclado",
    "Loading in progress. Please wait!": "Carregamento em processo. Por favor, aguarde!",
    "Normal": "Normal",
    "Ordered List": "Lista Numerada",
    "Paste from clipboard": "Colar da Área de Transferência",
    "Path": "Caminho",
    "Print document": "Imprimir documento",
    "Redoes your last action": "Refazer sua última ação",
    "Remove formatting": "Remover formatação",
    "SHIFT-ENTER": "SHIFT-ENTER",
    "Save as": "Salvar como",
    "Select Color": "Selecionar cor",
    "Select all": "Selecionar tudo",
    "Set format to paragraph": "Definir formato para o parágrafo",
    "Split Block": "Dividir Bloco",
    "Strikethrough": "Tachado",
    "Subscript": "Subscrito",
    "Superscript": "Sobrescrito",
    "The editor provides the following key combinations:": "Este editor fornece a seguinte combinação de teclas:",
    "Toggle Borders": "Mudar Bordas",
    "Toggle HTML Source": "Ver Código-Fonte",
    "Underline": "Sublinhado",
    "Undoes your last action": "Desfazer sua última ação",
    "Would you like to clear font colours?": "Deseja limpar as cores de fonte",
    "Would you like to clear font sizes?": "Deseja limpar os tamanhos de fonte",
    "Would you like to clear font typefaces?": "Deseja limpar os tipos de fonte",
    "You are in TEXT MODE.  Use the [<>] button to switch back to WYSIWYG.": "Você está no MODO TEXTO.  Use o botão [<>] para mudar para o MODO VISUAL (WYSIWYG)",
    "insert linebreak": "inserir quebra de linha",
    "new paragraph": "novo parágrafo",
    "__OBSOLETE__": {
        "About": "Sobre",
        "About Xinha": "Sobre o Xinha",
        "Absbottom": "Inferior absoluto",
        "Absmiddle": "Meio absoluto",
        "Alignment:": "Alinhamento",
        "Alternate text:": "Texto alternativo",
        "Baseline": "Linha base",
        "Border thickness:": "Espessura da borda",
        "Bottom": "Botão",
        "Cancel": "Cancelar",
        "Cell padding:": "Espaçamento interno da célula:",
        "Cell spacing:": "Espaçamento da célula:",
        "Collapse borders:": "Bordas fechadas:",
        "Cols:": "Colunas:",
        "Developer": "Desenvolvedor",
        "Em": "Em",
        "Enlarge Editor": "Expandir Editor",
        "Enter the image URL here": "Entre aqui com a URL da imagem",
        "Fixed width columns": "Colunas com largura fixa",
        "For browsers that don't support images": "Para navegadores que não suportam imagens",
        "Horizontal padding": "Espaçamento interno horizontal",
        "Horizontal:": "Horizontal:",
        "Image Preview:": "Visualização da Imagem:",
        "Image URL:": "URL da imagem:",
        "Insert Image": "Inserir Imagem",
        "Insert/Modify Link": "Inserir/Modificar Link",
        "Layout": "Esquema",
        "Leave empty for no border": "Deixe em branco para não ter bordas",
        "Left": "Esquerda",
        "License": "Licença",
        "Middle": "Meio",
        "Name": "Nome",
        "New window (_blank)": "Nova janela (_blank)",
        "None (use implicit)": "Nenhum (uso implicito)",
        "Not set": "Não definido",
        "Number of columns": "Número de colunas",
        "Number of rows": "Número de linhas",
        "OK": "OK",
        "Percent": "Porcentagem",
        "Pixels": "Pixels",
        "Plugins": "Plugins",
        "Positioning of this image": "Posicionamento desta imagem",
        "Positioning of this table": "Posicionamento desta tabela",
        "Preview": "Visualização",
        "Preview the image in a new window": "Visualizar a imagem em uma nova janela",
        "Right": "Direita",
        "Rows:": "Linhas:",
        "Same frame (_self)": "Mesmo frame (_self)",
        "Space between adjacent cells": "Espaço entre células adjacentes",
        "Space between content and border in cell": "Espaço entre conteúdo e borda na célula",
        "Spacing": "Espaçamento",
        "Sponsored by": "Patrocinado por",
        "Target:": "Destino:",
        "Texttop": "Texto no topo",
        "Thanks": "Agradecimentos",
        "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "O botão Colar não funciona em navegadores baseado no Mozilla (por razões técnicas de segurança). Pressione CTRL-V no seu teclado para colar diretamente.",
        "Title (tooltip):": "Título (tooltip)",
        "Top": "Topo",
        "Top frame (_top)": "Frame no topo (_top)",
        "URL:": "URL:",
        "Version": "Versão",
        "Vertical padding": "Espaçamento interno vertical",
        "Vertical:": "Vertical:",
        "Width of the table": "Largura da tabela",
        "Width unit": "Unidade de largura",
        "Width:": "Largura:",
        "Xinha Help": "Ajuda do Xinha",
        "Your Document is not well formed. Check JavaScript console for details.": "Seu Documento não está formatado corretamente. Verifique o console do JavaScript para maiores detalhes."
    }
};