/*
* Add/Remove Programs Slovenian resources
*
* Copyright 2008 Rok Mandeljc
*
* 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 "res.h"

#pragma code_page(65001)

LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT

STRINGTABLE
{
   IDS_CPL_TITLE, "Dodaj/odstrani programe"
   IDS_CPL_DESC, "Omogoča namestitev novih programov oziroma odstranitev programov z vašega računalnika."
   IDS_TAB1_TITLE, "Programi"

   IDS_UNINSTALL_FAILED, "Napaka pri zaganjanju odstranitvenega programa '%s'. Ali želite izbrisati odstranitveni vnos za ta program iz registra?"
   IDS_NOT_SPECIFIED, "Ni navedeno"

   IDS_COLUMN_NAME, "Ime"
   IDS_COLUMN_PUBLISHER, "Založnik"
   IDS_COLUMN_VERSION, "Različica"
   IDS_INSTALL_FILTER, "Instalacijski programi\0*instal*.exe;*setup*.exe;*.msi\0Programi (*.exe)\0*.exe\0Vse datoteke (*.*)\0*.*\0\0"

   IDS_REMOVE, "&Odstrani ..."
   IDS_MODIFY_REMOVE, "&Modify/Remove..."
}

IDD_MAIN DIALOG 0, 0, 320, 220
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Dodaj/odstrani programe"
FONT 8, "MS Shell Dlg"
{
 CONTROL "Za namestitev novega programa z diskete, CD-ROMa ali trdega diska kliknite 'Namesti'.", 1000, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 40, 7, 270, 20
 CONTROL "&Namesti ...", IDC_INSTALL, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 246, 26, 64, 14
 CONTROL "", -1, "STATIC", SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE, 7, 46, 303, 1
 CONTROL 2, 1001, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 7, 7, 21, 20
        CONTROL "Naslednji programi omogočajo samodejno odstranitev. Za odstranitev programa oz. spremembo nameščenih komponent izberite program s seznama in kliknite 'Dodaj/Odstrani'.", 1002, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 40, 57, 270, 30
 CONTROL "", IDL_PROGRAMS, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SORTASCENDING | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 7, 90, 303, 100
 CONTROL "&Informacije ...", IDC_SUPPORT_INFO, "button", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 104, 198, 64, 14
 CONTROL "&Modify...", IDC_MODIFY, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 172, 198, 68, 14
 CONTROL "&Odstrani ...", IDC_ADDREMOVE, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 244, 198, 68, 14
 CONTROL 3, 1003, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 7, 57, 21, 20
}

IDD_INFO DIALOG 0, 0, 256, 138
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Informacije"
FONT 8, "MS Shell Dlg"
{
 CONTROL "V redu", IDOK, "BUTTON", BS_DEFPUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 103, 116, 50, 14
        CONTROL "Naslednje informacije lahko uporabite pri pridobivanju tehnične podpore za %s:", IDC_INFO_LABEL, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 12, 9, 228, 19
 CONTROL "Založnik:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 30, 80, 8
 CONTROL "Različica:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 40, 80, 8
 CONTROL "Kontakt:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 50, 80, 8
 CONTROL "Tehnična podpora:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 60, 80, 8
 CONTROL "Telefon teh. podpore:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 70, 80, 8
 CONTROL "Readme:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 80, 80, 8
 CONTROL "Popravki:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 90, 80, 8
 CONTROL "Komentar:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 100, 80, 8
 CONTROL "", IDC_INFO_PUBLISHER, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 30, 136, 8
 CONTROL "", IDC_INFO_VERSION, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 40, 136, 8
 CONTROL "", IDC_INFO_CONTACT, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 50, 136, 8
 CONTROL "", IDC_INFO_SUPPORT, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 60, 136, 8
 CONTROL "", IDC_INFO_PHONE, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 70, 136, 8
 CONTROL "", IDC_INFO_README, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 80, 136, 8
 CONTROL "", IDC_INFO_UPDATES, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 90, 136, 8
 CONTROL "", IDC_INFO_COMMENTS, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 100, 136, 8
}
