/*
 *  Notepad (Serbian resources)
 *
 *  Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
 *  Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
 *  Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
 *  Copyright 2010 Đorđe Vasiljević
 *
 * 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 "notepad_res.h"

#pragma code_page(65001)

LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC

MAIN_MENU MENU
{
 POPUP "&Датотека" {
  MENUITEM "&Ново\tCtrl+N",      CMD_NEW
  MENUITEM "&Отвори...\tCtrl+O",  CMD_OPEN
  MENUITEM "&Сачувај\tCtrl+S",     CMD_SAVE
  MENUITEM "Сачувај &као...",       CMD_SAVE_AS
  MENUITEM SEPARATOR
  MENUITEM "&Штампај...\tCtrl+P",            CMD_PRINT
  MENUITEM "Поставке &стране...",    CMD_PAGE_SETUP
  MENUITEM "Поставке &штампе...", CMD_PRINTER_SETUP
  MENUITEM SEPARATOR
  MENUITEM "&Излаз",             CMD_EXIT
 }
POPUP "&Уређивање" {
  MENUITEM "&Опозови\tCtrl+Z",     CMD_UNDO
  MENUITEM SEPARATOR
  MENUITEM "&Исеци\tCtrl+X",      CMD_CUT
  MENUITEM "&Умножи\tCtrl+C",     CMD_COPY
  MENUITEM "&Налепи\tCtrl+V",    CMD_PASTE
  MENUITEM "&Избриши\tDel",      CMD_DELETE
  MENUITEM SEPARATOR
  MENUITEM "Изабери &све\tCtrl+A",       CMD_SELECT_ALL
  MENUITEM "&Време/датум\tF5",    CMD_TIME_DATE
  MENUITEM SEPARATOR
  MENUITEM "&Преломи дуге линије",  CMD_WRAP
  MENUITEM "&Фонт...",          CMD_FONT
 }
POPUP "&Претрага" {
  MENUITEM "&Пронађи...\tCtrl+F",   CMD_SEARCH
  MENUITEM "&Пронађи следеће\tF3",  CMD_SEARCH_NEXT
  MENUITEM "&Замени...\tCtrl+H", CMD_REPLACE
 }
POPUP "&Помоћ" {
  MENUITEM "&Садржаји",         CMD_HELP_CONTENTS
  MENUITEM "&Претражи...",        CMD_HELP_SEARCH
  MENUITEM "&Помоћ за помоћ",     CMD_HELP_ON_HELP
  MENUITEM SEPARATOR
  MENUITEM "&О Бележници", CMD_HELP_ABOUT_NOTEPAD
 }
}

/* Dialog `Page setup' */

DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Поставке стране"
{
LTEXT    "&Заглавље:",  0x140,  10, 07, 40, 15
EDITTEXT IDC_PAGESETUP_HEADERVALUE,   60, 05,110, 12, WS_BORDER | WS_TABSTOP
LTEXT    "&Поглавље:",  0x142,   10, 24, 40, 15
EDITTEXT IDC_PAGESETUP_FOOTERVALUE,   60, 22,110, 12, WS_BORDER | WS_TABSTOP

GROUPBOX "&Маргине (у милиметрима):",      0x144,     10, 43,160, 45
LTEXT    "&Лево:",        0x145,   20, 55, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_LEFTVALUE,     50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Врх:",         0x148,    20, 73, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_TOPVALUE,      50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Десно:",       0x14B, 100, 55, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_RIGHTVALUE,   130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Дно:",      0x14E,100, 73, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_BOTTOMVALUE,  130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP

DEFPUSHBUTTON "У реду",         IDOK,                   180,  3, 40, 15, WS_TABSTOP
PUSHBUTTON    "Откажи",     IDCANCEL,               180, 21, 40, 15, WS_TABSTOP
PUSHBUTTON    "&Помоћ",       IDHELP,                180, 39, 40, 15, WS_TABSTOP
}

IDD_OFN_TEMPLATE  DIALOG 50,50,300,15
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Кодни распоред:", -1, 5,0, 50,12
  COMBOBOX IDC_OFN_ENCCOMBO, 53,0, 156,48, WS_CHILD | WS_VSCROLL | CBS_DROPDOWNLIST
END

STRINGTABLE
{
STRING_PAGESETUP_HEADERVALUE,   "&f"
STRING_PAGESETUP_FOOTERVALUE,   "Страна &p"

STRING_NOTEPAD,                                 "Бележница"
STRING_ERROR,                                   "Грешка"
STRING_WARNING,                                 "Упозорење"
STRING_INFO,                                    "Подаци"

STRING_UNTITLED,                                "Неименовано"

STRING_ALL_FILES,                               "Све датотеке (*.*)"
STRING_TEXT_FILES_TXT,                  "Текстуалне датотеке (*.txt)"

STRING_TOOLARGE,                                "Датотека „%s“ је превелика за Бележницу.\n\
Користите други уређивач текста."
STRING_NOTEXT,                                  "Нисте унели никакав текст.\
\nУнесите нешто и покушајте поново"
STRING_DOESNOTEXIST,                            "Датотека „%s“ не постоји.\n\n\
Желите ли да направите нову датотеку?"
STRING_NOTSAVED,                                "Датотека „%s“ је измењена.\n\n\
Желите ли да сачувате измене?"
STRING_NOTFOUND,                                        "Датотека „%s“ није пронађена."
STRING_OUT_OF_MEMORY,                   "Нема довољно меморије за извршавање овог \
задатка.\nЗатворите један или више програма да бисте повећали износ слободне меморије."

STRING_UNICODE_LE,     "Уникод (UTF-16)"
STRING_UNICODE_BE,     "Уникод (UTF-16 big-endian)"

STRING_LOSS_OF_UNICODE_CHARACTERS,         "%s\n\
Ова датотека садржи знакове уникода који ће бити\n\
изгубљени ако је сачувате у %s кодном распореду.\n\
Да бисте задржали ове знакове, кликните на „Откажи“\n\
и изаберите једну од уникод опција у падајућем менију.\n\
Желите ли да наставите?"
}

LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN

MAIN_MENU MENU
{
 POPUP "&Datoteka" {
  MENUITEM "&Novo\tCtrl+N",      CMD_NEW
  MENUITEM "&Otvori...\tCtrl+O",  CMD_OPEN
  MENUITEM "&Sačuvaj\tCtrl+S",     CMD_SAVE
  MENUITEM "Sačuvaj &kao...",       CMD_SAVE_AS
  MENUITEM SEPARATOR
  MENUITEM "&Štampaj...\tCtrl+P",            CMD_PRINT
  MENUITEM "Postavke &strane...",    CMD_PAGE_SETUP
  MENUITEM "Postavke &štampe...", CMD_PRINTER_SETUP
  MENUITEM SEPARATOR
  MENUITEM "&Izlaz",             CMD_EXIT
 }
POPUP "&Uređivanje" {
  MENUITEM "&Opozovi\tCtrl+Z",     CMD_UNDO
  MENUITEM SEPARATOR
  MENUITEM "&Iseci\tCtrl+X",      CMD_CUT
  MENUITEM "&Umnoži\tCtrl+C",     CMD_COPY
  MENUITEM "&Nalepi\tCtrl+V",    CMD_PASTE
  MENUITEM "&Izbriši\tDel",      CMD_DELETE
  MENUITEM SEPARATOR
  MENUITEM "Izaberi &sve\tCtrl+A",       CMD_SELECT_ALL
  MENUITEM "&Vreme/datum\tF5",    CMD_TIME_DATE
  MENUITEM SEPARATOR
  MENUITEM "&Prelomi duge linije",  CMD_WRAP
  MENUITEM "&Font...",          CMD_FONT
 }
POPUP "&Pretraga" {
  MENUITEM "&Pronađi...\tCtrl+F",   CMD_SEARCH
  MENUITEM "&Pronađi sledeće\tF3",  CMD_SEARCH_NEXT
  MENUITEM "&Zameni...\tCtrl+H", CMD_REPLACE
 }
POPUP "&Pomoć" {
  MENUITEM "&Sadržaji",         CMD_HELP_CONTENTS
  MENUITEM "&Pretraži...",        CMD_HELP_SEARCH
  MENUITEM "&Pomoć za pomoć",     CMD_HELP_ON_HELP
  MENUITEM SEPARATOR
  MENUITEM "&O Beležnici", CMD_HELP_ABOUT_NOTEPAD
 }
}

/* Dialog `Page setup' */

DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Postavke strane"
{
LTEXT    "&Zaglavlje:",  0x140,  10, 07, 40, 15
EDITTEXT IDC_PAGESETUP_HEADERVALUE,   60, 05,110, 12, WS_BORDER | WS_TABSTOP
LTEXT    "&Poglavlje:",  0x142,   10, 24, 40, 15
EDITTEXT IDC_PAGESETUP_FOOTERVALUE,   60, 22,110, 12, WS_BORDER | WS_TABSTOP

GROUPBOX "&Margine (u milimetrima):",      0x144,     10, 43,160, 45
LTEXT    "&Levo:",        0x145,   20, 55, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_LEFTVALUE,     50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Vrh:",         0x148,    20, 73, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_TOPVALUE,      50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Desno:",       0x14B, 100, 55, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_RIGHTVALUE,   130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT    "&Dno:",      0x14E,100, 73, 30, 10, WS_CHILD
EDITTEXT IDC_PAGESETUP_BOTTOMVALUE,  130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP

DEFPUSHBUTTON "U redu",         IDOK,                   180,  3, 40, 15, WS_TABSTOP
PUSHBUTTON    "Otkaži",     IDCANCEL,               180, 21, 40, 15, WS_TABSTOP
PUSHBUTTON    "&Pomoć",       IDHELP,                180, 39, 40, 15, WS_TABSTOP
}

IDD_OFN_TEMPLATE  DIALOG 50,50,300,15
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Kodni raspored:", -1, 5,0, 50,12
  COMBOBOX IDC_OFN_ENCCOMBO, 53,0, 156,48, WS_CHILD | WS_VSCROLL | CBS_DROPDOWNLIST
END

STRINGTABLE
{
STRING_PAGESETUP_HEADERVALUE,   "&f"
STRING_PAGESETUP_FOOTERVALUE,   "Strana &p"

STRING_NOTEPAD,                                 "Beležnica"
STRING_ERROR,                                   "Greška"
STRING_WARNING,                                 "Upozorenje"
STRING_INFO,                                    "Podaci"

STRING_UNTITLED,                                "Neimenovano"

STRING_ALL_FILES,                               "Sve datoteke (*.*)"
STRING_TEXT_FILES_TXT,                  "Tekstualne datoteke (*.txt)"

STRING_TOOLARGE,                                "Datoteka „%s“ je prevelika za Beležnicu.\n\
Koristite drugi uređivač teksta."
STRING_NOTEXT,                                  "Niste uneli nikakav tekst.\
\nUnesite nešto i pokušajte ponovo"
STRING_DOESNOTEXIST,                            "Datoteka „%s“ ne postoji.\n\n\
Želite li da napravite novu datoteku?"
STRING_NOTSAVED,                                "Datoteka „%s“ je izmenjena.\n\n\
Želite li da sačuvate izmene?"
STRING_NOTFOUND,                                        "Datoteka „%s“ nije pronađena."
STRING_OUT_OF_MEMORY,                   "Nema dovoljno memorije za izvršavanje ovog \
zadatka.\nZatvorite jedan ili više programa da biste povećali iznos slobodne memorije."

STRING_UNICODE_LE,     "Unikod (UTF-16)"
STRING_UNICODE_BE,     "Unikod (UTF-16 big-endian)"

STRING_LOSS_OF_UNICODE_CHARACTERS,         "%s\n\
Ova datoteka sadrži znakove unikoda koji će biti\n\
izgubljeni ako je sačuvate u %s kodnom rasporedu.\n\
Da biste zadržali ove znakove, kliknite na „Otkaži“\n\
i izaberite jednu od unikod opcija u padajućem meniju.\n\
Želite li da nastavite?"
}
