/*
 * HTML Help resources
 * Portuguese Language Support
 *
 * Copyright 2008 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)

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

STRINGTABLE
BEGIN
    IDS_CONTENTS     "&Conteúdos"
    IDS_INDEX        "&Índice"
    IDS_SEARCH       "&Pesquisar"
    IDS_FAVORITES    "&Favoritos"
END


LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN

STRINGTABLE
BEGIN
    IDTB_EXPAND      "Mostrar"
    IDTB_CONTRACT    "Ocultar"
    IDTB_STOP        "Parar"
    IDTB_REFRESH     "Recarregar"
    IDTB_BACK        "Voltar"
    IDTB_HOME        "Início"
    IDTB_SYNC        "Sincronizar"
    IDTB_PRINT       "Imprimir"
    IDTB_OPTIONS     "Opções"
    IDTB_FORWARD     "Avançar"
    IDTB_NOTES       "IDTB_NOTES"
    IDTB_BROWSE_FWD  "IDTB_BROWSE_FWD"
    IDTB_BROWSE_BACK "IDT_BROWSE_BACK"
    IDTB_CONTENTS    "IDTB_CONTENTS"
    IDTB_INDEX       "IDTB_INDEX"
    IDTB_SEARCH      "IDTB_SEARCH"
    IDTB_HISTORY     "IDTB_HISTORY"
    IDTB_FAVORITES   "IDTB_FAVORITES"
    IDTB_JUMP1       "Jump1"
    IDTB_JUMP2       "Jump2"
    IDTB_CUSTOMIZE   "Personalizar"
    IDTB_ZOOM        "Zoom"
    IDTB_TOC_NEXT    "IDTB_TOC_NEXT"
    IDTB_TOC_PREV    "IDTB_TOC_PREV"
END

LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE

STRINGTABLE
BEGIN
    IDTB_EXPAND      "Mostrar"
    IDTB_CONTRACT    "Esconder"
    IDTB_STOP        "Parar"
    IDTB_REFRESH     "Actualizar"
    IDTB_BACK        "Retroceder"
    IDTB_HOME        "Início"
    IDTB_SYNC        "Sincronizar"
    IDTB_PRINT       "Imprimir"
    IDTB_OPTIONS     "Opções"
    IDTB_FORWARD     "Avançar"
    IDTB_NOTES       "IDTB_NOTES"
    IDTB_BROWSE_FWD  "IDTB_BROWSE_FWD"
    IDTB_BROWSE_BACK "IDT_BROWSE_BACK"
    IDTB_CONTENTS    "IDTB_CONTENTS"
    IDTB_INDEX       "IDTB_INDEX"
    IDTB_SEARCH      "IDTB_SEARCH"
    IDTB_HISTORY     "IDTB_HISTORY"
    IDTB_FAVORITES   "IDTB_FAVORITES"
    IDTB_JUMP1       "Jump1"
    IDTB_JUMP2       "Jump2"
    IDTB_CUSTOMIZE   "Personalizar"
    IDTB_ZOOM        "Zoom"
    IDTB_TOC_NEXT    "IDTB_TOC_NEXT"
    IDTB_TOC_PREV    "IDTB_TOC_PREV"
END
