/*
 * cryptui dll Swedish resources
 *
 * Copyright 2010 Anders Jonsson
 *
 * 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 "cryptuires.h"

#pragma code_page(65001)

LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Allmänt"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  CONTROL "", -1, "Static", WS_BORDER|SS_WHITERECT, 6,10,241,200
  CONTROL "", IDC_CERTIFICATE_ICON,"RichEdit20W",
    ES_READONLY|WS_DISABLED,8,11,26,26
  CONTROL "", IDC_CERTIFICATE_INFO,"RichEdit20W",
    ES_READONLY|WS_DISABLED,34,11,212,26
  CONTROL "", -1, "Static", SS_BLACKFRAME, 16,37,222,1
  CONTROL "", IDC_CERTIFICATE_STATUS,"RichEdit20W",
    ES_READONLY|ES_MULTILINE,8,38,238,78
  CONTROL "", -1, "Static", SS_BLACKFRAME, 16,116,222,1
  CONTROL "", IDC_CERTIFICATE_NAMES,"RichEdit20W",
    ES_READONLY|ES_MULTILINE|WS_DISABLED,8,118,238,90
  PUSHBUTTON "&Installera certifikat...", IDC_ADDTOSTORE,103,216,70,14
  PUSHBUTTON "Utfärdarens &utlåtande", IDC_ISSUERSTATEMENT,177,216,70,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "Detaljer"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Visa:", -1, 6,12,40,14
  COMBOBOX IDC_DETAIL_SELECT, 28,10,100,14,
    CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP
  CONTROL "", IDC_DETAIL_LIST, "SysListView32",
    LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    6,28,241,100
  CONTROL "", IDC_DETAIL_VALUE, "RichEdit20W",
    ES_READONLY|ES_MULTILINE|WS_TABSTOP, 6,136,241,70
  PUSHBUTTON "&Ändra egenskaper...", IDC_EDITPROPERTIES,103,216,70,14
  PUSHBUTTON "&Spara till fil...", IDC_EXPORT,177,216,70,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Certifieringssökväg"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Certifierings&sökväg", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Visa certifikat", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "&Certifikatsstatus:", IDC_CERTIFICATESTATUS,6,183,70,14
  CONTROL "", IDC_CERTIFICATESTATUSTEXT,"RichEdit20W",
    WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,195,245,36
END

IDD_USERNOTICE DIALOG 0, 0, 255, 256
CAPTION "Ansvarsfriskrivning"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  CONTROL "", IDC_USERNOTICE,"RichEdit20W",
    WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,10,241,200
  PUSHBUTTON "Stäng", IDOK,103,216,70,14
  PUSHBUTTON "Mer &Info", IDC_CPS,177,216,70,14
END

IDD_CERT_PROPERTIES_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Allmänt"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Vänligt &namn:", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Beskrivning:", -1, 6,32,60,14
  EDITTEXT IDC_DESCRIPTION, 60,30,191,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Certifikatssyften", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "&Aktivera alla syften för detta certifikat",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "A&vaktivera alla syften för detta certifikat",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Aktivera &enbart följande syften för detta certifikat:",
    IDC_ENABLE_SELECTED_PURPOSES, 12,82,180,14, BS_AUTORADIOBUTTON
  CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    24,100,220,90
  PUSHBUTTON "Lägg till &syfte...", IDC_ADD_PURPOSE,184,194,60,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Lägg till syfte"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Lägg till objektidentifieraren (OID) för certifikatssyftet du vill lägga till:",
    -1, 6,6,190,28
  EDITTEXT IDC_NEW_PURPOSE, 6,28,190,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  PUSHBUTTON "OK", IDOK, 33,48,60,14
  PUSHBUTTON "Avbryt", IDCANCEL, 100,48,60,14
END

IDD_SELECT_STORE DIALOG 0,0,200,136
CAPTION "Välj certifikatlager"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Välj certifikatlagret du vill använda:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "&Visa fysiska lager", IDC_SHOW_PHYSICAL_STORES, 6,102,90,14,
    BS_AUTOCHECKBOX|WS_TABSTOP
  PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Avbryt", IDCANCEL, 144,118,50,14
END

IDD_IMPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Guiden för import av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Välkommen till guiden för import av certifikat", IDC_IMPORT_TITLE,
    115,7,195,12
  LTEXT "Denna guide hjälper dig att importera certifikat, listor över återkallade certifikat, och listor över betrodda certifikat från en fil till ett certifikatlager.",
    -1, 115,26,195,25
  LTEXT "Ett certifikat kan användas för att identifiera dig eller datorn som du kommunicerar med.  Det kan även användas för autentisering samt för att signera meddelanden.  Certifikatlager är samlingar av certifikat, listor över återkallade certifikat, och listor över betrodda certifikat.",
    -1, 115,56,195,40
  LTEXT "För att fortsätta, klicka Nästa.",
    -1, 115,103,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,178
CAPTION "Guiden för import av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Filnamn:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Bläddra...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Obs:  Följande filformat kan innehålla mer än ett certifikat och listor över återkallade eller betrodda certifikat:",
    -1, 21,26,265,16
  LTEXT "Standard för kryptografisk meddelandesyntax/PKCS #7-meddelande (.p7b)",
    -1, 31,49,265,10
  LTEXT "Personal Information Exchange/PKCS #12 (.pfx, .p12)",
    -1, 31,64,265,10
  LTEXT "Microsoft Serialized Certificate Store (.sst)",
    -1, 31,79,265,10
END

IDD_IMPORT_STORE DIALOG 0,0,317,143
CAPTION "Guiden för import av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine kan välja certifikatlagret automatiskt, eller så kan du ange en sökväg för certifikaten.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "Välj certifikatlager &automatiskt",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Placera alla certifikat i följande lager:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Bläddra...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,178
CAPTION "Guiden för import av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Avslutar guiden för import av certifikat", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Du har slutfört guiden för import av certifikat.",
    -1, 115,33,195,24
  LTEXT "Du har angett följande inställningar:",
    -1, 115,57,195,12
  CONTROL "", IDC_IMPORT_SETTINGS, "SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    115,67,174,100
END

IDD_CERT_MGR DIALOG 0,0,335,270
CAPTION "Certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Avsett s&yfte:", -1, 7,9,100,12
  COMBOBOX IDC_MGR_PURPOSE_SELECTION, 83,7,245,14,
    CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP
  CONTROL "", IDC_MGR_STORES, "SysTabControl32",
    WS_CLIPSIBLINGS|WS_TABSTOP, 7,25,321,140
  CONTROL "", IDC_MGR_CERTS, "SysListView32",
    LVS_REPORT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 15,46,305,111
  PUSHBUTTON "&Importera...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Exportera...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "&Ta bort", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "&Avancerat...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Avsedda syften för certifikat", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "&Visa", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Stäng", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Avancerade val"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Syfte för certifikat", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Välj ett eller flera syften att listas när Avancerade Syften är valt.",
    -1, 14,18,220,16
  LTEXT "&Syften för certifikat:", -1, 14,41,90,12, WS_TABSTOP
  CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    14,51,220,90
  PUSHBUTTON "OK", IDOK, 132,155,51,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Avbryt", IDCANCEL, 190,155,51,14
END

IDD_EXPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Välkommen till guiden för export av certifikat", IDC_EXPORT_TITLE,
    115,7,195,12
  LTEXT "Denna guide hjälper dig att exportera certifikat, listor över återkallade certifikat och listor över betrodda certifikat från ett certifikatlager till en fil.",
    -1, 115,26,195,25
  LTEXT "Ett certifikat kan användas för att identifiera dig eller datorn som du kommunicerar med.  Det kan också användas till autentisering, samt signering av meddelanden.  Certifikatlager är samlingar av certifikat, listor över återkallade certifikat och listor över betrodda certifikat.",
    -1, 115,56,195,40
  LTEXT "För att fortsätta, klicka Nästa.",
    -1, 115,103,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Om du väljer att exportera den privata nyckeln så kommer du på en senare sida tillbes ange ett lösenord för att skydda den privata nyckeln.", -1, 21,1,195,25
  LTEXT "Vill du exportera den privata nyckeln?", -1, 21,27,195,10
  AUTORADIOBUTTON "&Ja, exportera den privata nyckeln",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Nej, exportera inte den privata nyckeln",
    IDC_EXPORT_PRIVATE_KEY_NO, 31,48,200,12, BS_AUTORADIOBUTTON
  LTEXT "", IDC_EXPORT_PRIVATE_KEY_UNAVAILABLE, 21,60,200,24
END

IDD_EXPORT_PASSWORD DIALOG 0,0,317,143
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Lösenord:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Bekräfta lösenord:", -1, 21,35,195,10
  EDITTEXT IDC_EXPORT_PASSWORD_CONFIRM, 21,45,208,14, ES_AUTOHSCROLL|WS_TABSTOP
END

IDD_EXPORT_FORMAT DIALOG 0,0,317,143
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Välj formatet du vill använda:", -1, 21,1,195,10
  AUTORADIOBUTTON "&DER-kodad X.509 (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,240,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Ba&se64-kodad X.509 (.cer):",
    IDC_EXPORT_FORMAT_BASE64, 31,30,240,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Standard för &kryptografisk meddelandesyntax/PKCS #7 (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,240,12, BS_AUTORADIOBUTTON
  CHECKBOX "&Inkludera alla certifikat i certifieringssökvägen om möjligt",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Personal Information Exchange/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,240,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "Inkl&udera alla certifikat i certifieringssökvägen om möjligt",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "&Använd stark kryptering",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Ta bort den privata &nyckeln om exporten lyckas",
    IDC_EXPORT_PFX_DELETE_PRIVATE_KEY, 44,117,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
END

IDD_EXPORT_FILE DIALOG 0,0,317,143
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Filnamn:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Bläddra...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,178
CAPTION "Guiden för export av certifikat"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Avslutar guiden för export av certifikat", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Du har nu fullföljt guiden för export av certifikat.",
    -1, 115,33,195,24
  LTEXT "Du har angett följande inställningar:",
    -1, 115,57,195,12
  CONTROL "", IDC_EXPORT_SETTINGS, "SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    115,67,174,100
END
