/*
 * cryptui dll resources (Norwegian Bokmål)
 *
 * Copyright 2010 Alexander N. Sørnes <alex@thehandofagony.com>
 *
 * 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_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Generelt"
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 "&Installer sertifikat...", IDC_ADDTOSTORE,103,216,70,14
  PUSHBUTTON "Info fra ut&steder", 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 "Vi&s:", -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 "R&ediger egenskaper...", IDC_EDITPROPERTIES,103,216,70,14
  PUSHBUTTON "&Kopier til fil...", IDC_EXPORT,177,216,70,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Sertifiseringssti"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Sertifiseringsst&i", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Vis sertifikat", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "Sertifikatstatu&s:", 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 "Ansvarsfraskrivelse"
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 "Lukk", 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 "Generelt"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Vennlig navn:", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Beskrivelse:", -1, 6,32,60,14
  EDITTEXT IDC_DESCRIPTION, 60,30,191,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Sertifikatformål", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "Bruk sertifikat&et til alle mulige formål",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Ikke bruk dette sertifikatet til noen formål",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Bruk sertifikatet kun til følgende f&ormål:",
    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 "Legg til &formål...", IDC_ADD_PURPOSE,184,194,60,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Legg til formål"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Skriv inn identifiseringskoden (OID'en) for formålet du vil legge til:",
    -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 "Velg sertifikatlager"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Velg sertifikatlageret du vil bruke:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "Vi&s fysiske lagre", 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 "Veiviser for import av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Velkommen til veiviseren for import av sertifikater", IDC_IMPORT_TITLE,
    115,7,195,12
  LTEXT "Denne veiviseren hjelper deg å importere sertifikater og lister over tiltrodde eller tilbakekalte sertifikater fra en fil til et sertifikatlager.",
    -1, 115,26,195,25
  LTEXT "Et sertifikat kan brukes til å identifisere deg eller datamaskinen du kommuniserer med. Det kan også brukes til signering av meldinger eller andre former for godkjenning. Sertifikatlagre er samlinger av sertifikater og lister over tiltrodde eller tilbakekalte sertifikater.",
    -1, 115,56,195,40
  LTEXT "Trykk «Neste» for å fortsette.",
    -1, 115,103,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,178
CAPTION "Veiviser for import av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Filnavn:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "Bla...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Merk:  Følgende filformater kan inneholde mer enn ett sertifikat eller liste over tiltrodde eller tilbakekalte sertifikater:",
    -1, 21,26,265,16
  LTEXT "Standardformat for kryptografiske meldinger/PKCS #7 Messages (.p7b)",
    -1, 31,49,265,10
  LTEXT "Personlig informasjonsutveksling/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 "Veiviser for import av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine kan velge sertifikatlageret automatisk, eller du kan oppgi en plassering for sertifikatene selv.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "Velg sertifikatlager &automatisk",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Plasser aller sertifikatene i følgende lager:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Bla...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,178
CAPTION "Veiviser for import av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Fullføring av veiviseren for import av sertifikater", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Veiviseren for import av sertifikater er fullført; operasjonene var vellykket.",
    -1, 115,33,195,24
  LTEXT "Følgende innstillinger ble valgt:",
    -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 "Sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Tilte&nkt formål:", -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 "&Importér...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Eksportér...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "Fje&rn", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "&Avansert...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Sertifikatets tiltenkte formål", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "&Vis", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Lukk", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Avanserte innstillinger"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Sertifikatformål", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Velg ett eller flere formål som skal vises når avanserte formål er valgt.",
    -1, 14,18,220,16
  LTEXT "&Sertifikatformål:", -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 "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Velkommen til veiviseren for eksport av sertifikater", IDC_EXPORT_TITLE,
    115,7,195,12
  LTEXT "Denne veiviseren hjelper deg med å eksportere sertifikater og lister over tiltrodde eller tilbakekalte sertifikater fra et sertifikatlager til en fil.",
    -1, 115,26,195,25
  LTEXT "Et sertifikat kan brukes til å identifisere deg eller datamaskinen du kommuniserer med. Det kan også brukes til signering av meldinger eller andre former for godkjenning. Sertifikatlagre er samlinger av sertifikater og lister over tiltrodde eller tilbakekalte sertifikater.",
    -1, 115,56,195,40
  LTEXT "Trykk «Neste» for å fortsette.",
    -1, 115,103,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Hvis du velger å eksportere den private nøkkelen vil du bli bedt om å velge et passord seinere, slik at du kan beskytte nøkkelen.", -1, 21,1,195,25
  LTEXT "Vil du eksportere den private nøkkelen?", -1, 21,27,195,10
  AUTORADIOBUTTON "&Ja, eksportér den private nøkkelen",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Nei, ikke eksportér den private nøkkelen",
    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 "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Passord:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Bekreft passord:", -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 "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Velg formatet du ønsker å bruke:", -1, 21,1,195,10
  AUTORADIOBUTTON "&DER-kodet X.509 (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,240,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Ba&se64-kodet X.509 (.cer):",
    IDC_EXPORT_FORMAT_BASE64, 31,30,240,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Standardformat for &kryptografiske meldinger/PKCS #7 Message (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,240,12, BS_AUTORADIOBUTTON
  CHECKBOX "Ta med alle sertifikater &i sertifikatstien, hvis mulig",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Personlig informasjonsutveksling/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,240,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "Ta med aller sertifikater i sertifikatstien, hvis m&ulig",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Bruk st&erk kryptering",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Slett den private nø&kkelen hvis eksporten er vellykket",
    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 "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Filnavn:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Bla...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,178
CAPTION "Veiviser for eksport av sertifikater"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Fullføring av veiviseren for eksport av sertifikater", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Veiviseren for eksport av sertifikater er fullført; operasjonene var vellykket.",
    -1, 115,33,195,24
  LTEXT "Følgende innstillinger ble valgt:",
    -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
