Re: redhat-config-cluster (Red Hat)

Författare: Christian Rose (menthos_at_menthos.com)
Datum: 2003-10-19 22:47:05

sön 2003-10-19 klockan 01.34 skrev Christian Rose:
> Här är en ny översättning, redhat-config-cluster. Ta gärna en titt.
> Filen finns även på
> http://www.menthos.com/po/redhat/redhat-config-cluster.sv.po.

Här glömde jag bifoga filen. Gör ett nytt försök nu.


Christian

# Swedish messages for redhat-config-cluster.
# Copyright (C) 2003 Christian Rose <menthos@menthos.com>.
#
# $Id: sv.po,v 1.130 2003/10/11 15:42:01 menthos Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: redhat-config-cluster\n"
"POT-Creation-Date: 2003-10-08 17:15-0400\n"
"PO-Revision-Date: 2003-10-11 17:42+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. !/usr/bin/python
#. Columns for "treeview"
#. INSTALLDIR="."
#: src/redhat-config-cluster.py:57 src/configure/cluster-config.py:55
#, python-format
msgid "%s %s"
msgstr "%s %s"

#. ## Get Clumanager version to present in 'About' ###
#: src/redhat-config-cluster.py:61 src/configure/cluster-config.py:59
#, python-format
msgid "clumanager %s"
msgstr "clumanager %s"

#. ## gettext ("_") must come before import gtk ###
#. ## gettext first, then import gtk (exception prints gettext "_") ###
#: src/redhat-config-cluster.py:84 src/configure/cluster-config.py:21
#, python-format
msgid ""
"\n"
"  Unable to initialize graphical environment. Most likely cause of failure\n"
"  is that the tool was not run using a graphical environment. Please either\n"
"  start your graphical user interface or set your DISPLAY variable.\n"
"\n"
"  Caught exception: %s\n"
msgstr ""
"\n"
"  Kan inte initiera grafisk miljö. Den troligaste orsaken till felet är att\n"
"  verktyget inte kördes med hjälp av användning av en grafisk miljö. Starta\n"
"  antingen ditt grafiska gränssnitt eller ställ in din DISPLAY-variabel.\n"
"\n"
"  Fångade undantag: %s\n"

#: src/redhat-config-cluster.py:101 src/configure/cluster-config.py:67
msgid "redhat-config-cluster"
msgstr "redhat-config-cluster"

#: src/redhat-config-cluster.py:104
msgid ""
"\n"
"redhat-config-cluster - Python GUI to configure a Red Hat Clumanager "
"cluster.\n"
"\n"
"See redhat-config-cluster(8) for more information.\n"
msgstr ""
"\n"
"redhat-config-cluster - Grafiskt användargränssnitt för konfiguration av ett "
"Red Hat Clumanager-kluster, gjort i Python.\n"
"\n"
"Se redhat-config-cluster(8) för mer information.\n"

#. stateTable=[_("Down"),_("Up"), _("Unknown")]
#: src/redhat-config-cluster.py:146
msgid "Inactive"
msgstr "Inaktiv"

#: src/redhat-config-cluster.py:146
msgid "Active"
msgstr "Aktiv"

#: src/redhat-config-cluster.py:146 src/redhat-config-cluster.py:237
msgid "Unknown"
msgstr "Okänd"

#. 'state' attribute doesn't exist, or has null value
#: src/redhat-config-cluster.py:231
msgid "Uninitialized"
msgstr "Oinitierad"

#: src/redhat-config-cluster.py:232
msgid "Running"
msgstr "Kör"

#: src/redhat-config-cluster.py:233
msgid "Stopped"
msgstr "Stoppad"

#: src/redhat-config-cluster.py:234
msgid "Disabled"
msgstr "Inaktiverad"

#: src/redhat-config-cluster.py:235
msgid "Pending"
msgstr "Väntande"

#: src/redhat-config-cluster.py:236
msgid "Failed"
msgstr "Misslyckades"

#. 'state' attribute doesn't exist, or has null value
#. print "getStateString - self.getState() = <%s>" % state
#: src/redhat-config-cluster.py:266
msgid "Not Monitored"
msgstr "Inte övervakad"

#. option not present, or has null value
#. return an empty list
#. make sure threading is disabled
#. map the event signals to specific methods
#. ## Parse cluster.xml into DOM nodes, and do not lock the cluster.xml
#. ## file, since this program only needs read access.
#. ## set current node label ###
#. ## When cluster is coming up from stopped, we need to allow
#. ## enough time for the cluster to come all the way up.
#. print "on_start_cluster: interval =", interval
#. print "                  tko_count =", tko_count
#. print "                  milliseconds =", milliseconds
#. print "                  seconds =", seconds
#. print "                  max_seconds =", max_seconds
#. (status, output) = getStatusOutput("service clumanager start")
#: src/redhat-config-cluster.py:386
msgid "Error: Cluster did *NOT* come up as expected - will stop cluster now"
msgstr ""
"Fel: Klustret kom *INTE* upp som väntat - kommer att stoppa klustret nu"

#. ## Cluster came up as expected - now safe to call 'updateList' ###
#. gtk.timeout_add(60000,self.onTimer)
#. self.winMain.window.set_cursor(busy_cursor)
#. self.winMain.window.set_cursor(ready_cursor)
#: src/redhat-config-cluster.py:445
msgid ""
"Error: Service Enable failed - please check the logs for error messages.\n"
"\n"
"Once the problem has been corrected, the 'Failed' service must first be "
"Disabled before it can be Enabled."
msgstr ""
"Fel: Aktivering av tjänst misslyckades - kontrollera loggarna för "
"felmeddelanden.\n"
"\n"
"När problemet åtgärdats måste den \"misslyckade\" tjänsten först inaktiveras "
"innan den kan aktiveras."

#. os.system("clusvcadm -d '%s'" % s.getName())
#. os.system("clusvcadm -e '%s'" % s.getName())
#. print prevIter
#. ## service is 'enabled'
#. ## set service to 'disabled'
#. ## Service is NOT running - 'owner' is not present,
#. ## so get "lastowner".
#. os.system("clusvcadm -r '%s' -m %s" % (selection_data.data,s.getName()))
#. ## Service is 'Disabled' - just 'enable' on new member
#. ## Service is not 'Disabled' - restart it on new member
#. __ The callback that sends the drag-and-drop data
#. __ The DnD stuff
#: src/redhat-config-cluster.py:766 src/redhat-config-cluster.py:840
#: src/redhat-config-cluster.py:955 src/redhat-config-cluster.glade.h:15
#: src/configure/failoverdomainnodeDialog.py:48
#: src/configure/failoverdomainsListview.py:31
#: src/configure/membersTreeview.py:30 src/configure/servicesTreeview.py:42
#: src/configure/nfsExportDruid.py:73 src/configure/nfsExportDruid.py:95
#: src/configure/smbShareDruid.py:57 src/configure/smbShareDruid.py:79
msgid "Name"
msgstr "Namn"

#: src/redhat-config-cluster.py:772 src/redhat-config-cluster.glade.h:25
msgid "Status"
msgstr "Status"

#: src/redhat-config-cluster.py:789
msgid "Address"
msgstr "Adress"

#: src/redhat-config-cluster.py:793 src/configure/cluster-config.glade.h:64
msgid "Netmask"
msgstr "Nätmask"

#: src/redhat-config-cluster.py:797 src/configure/cluster-config.glade.h:12
msgid "Broadcast"
msgstr "Broadcast"

#: src/redhat-config-cluster.py:807
msgid "Host"
msgstr "Värd"

#: src/redhat-config-cluster.py:811
msgid "options"
msgstr "alternativ"

#: src/redhat-config-cluster.py:847
msgid "State"
msgstr "Tillstånd"

#: src/redhat-config-cluster.py:854 src/configure/cluster-config.glade.h:51
msgid "Member"
msgstr "Medlem"

#: src/redhat-config-cluster.py:861
msgid ""
"Last\n"
"Transition"
msgstr ""
"Senaste\n"
"övergång"

#: src/redhat-config-cluster.py:868
msgid ""
"Monitor\n"
"Interval"
msgstr ""
"√Ėvervaknings-\n"
"intervall"

#: src/redhat-config-cluster.py:875
msgid "Restarts"
msgstr "Startar om"

#. self.prevXML=""
#: src/redhat-config-cluster.py:897
msgid "Cluster is running"
msgstr "Klustret kör"

#: src/redhat-config-cluster.py:902
msgid "Cluster is not running"
msgstr "Klustret kör inte"

#. ## Don't specify version - already in ABOUT_VERSION
#: src/redhat-config-cluster.py:923 src/configure/cluster-config.py:396
msgid "Copyright (c) 2003 Red Hat, Inc. All rights reserved."
msgstr "Copyright © 2003 Red Hat, Inc. Alla rättigheter förbehållna."

#: src/redhat-config-cluster.py:924 src/configure/cluster-config.py:397
msgid "This software is licensed under the terms of the GPL."
msgstr "Denna programvara är licensierad under villkoren i GPL."

#: src/redhat-config-cluster.py:962 src/configure/cluster-config.glade.h:28
msgid "Device"
msgstr "Enhet"

#: src/redhat-config-cluster.py:969
msgid "PORT"
msgstr "PORT"

#: src/redhat-config-cluster.py:976
msgid "IP"
msgstr "IP"

#: src/redhat-config-cluster.py:983 src/configure/cluster-config.glade.h:110
msgid "User"
msgstr "Användare"

#. #######################################
#. ## end def modify_service_ipaddress ###
#. #######################################
#. ###########################################################################
#. ##############################  Main  #####################################
#. ###########################################################################
#: src/redhat-config-cluster.py:1007
#: src/configure/redhat-config-cluster-cmd.py:1031
#: src/configure/cluster-config.py:91
#, python-format
msgid "Please restart %s with root permissions!"
msgstr "Starta om %s med rooträttigheter!"

#. ## To get here, user just ran 'redhat-config-cluster' - so,
#. ## if configuration file(/etc/cluster.xml) exists, run this
#. ## GUI which is the cluster status GUI.  If the configuration
#. ## file does *NOT* exist, then run the Cluster Configuration
#. ## (CLUSTERCONFIG_APP) application.
#. print "Cluster configuration file does not exist - running cluconfig now!"
#. ## Cluster configuration file *DOES* exist - run this
#. ## Cluster Status GUI now.
#. print "Cluster configuration file *DOES* exist - running clustat now!"
#. if you quit during initialization exceptions can be raised
#: src/redhat-config-cluster.glade.h:1 src/configure/cluster-config.glade.h:1
msgid "*"
msgstr "*"

#: src/redhat-config-cluster.glade.h:2 src/configure/cluster-config.glade.h:25
msgid "Cluster Name: "
msgstr "Klusternamn: "

#: src/redhat-config-cluster.glade.h:3
msgid "Cluster Status"
msgstr "Klusterstatus"

#: src/redhat-config-cluster.glade.h:4
msgid "Devices"
msgstr "Enheter"

#: src/redhat-config-cluster.glade.h:5
msgid "Disable"
msgstr "Inaktivera"

#: src/redhat-config-cluster.glade.h:6
msgid "Enable"
msgstr "Aktivera"

# Hur översätta failover?
#: src/redhat-config-cluster.glade.h:7
msgid "Failover Domain:"
msgstr "√Ėverl√§mningsdom√§n:"

# Quorum = "The minimum attendance required to conduct business at a meeting."
# I detta sammanhang troligtvis det minimala antalet maskiner för att kunna
# jobba...
#: src/redhat-config-cluster.glade.h:8
msgid "Has Quorum"
msgstr "Har majoritet"

#: src/redhat-config-cluster.glade.h:9
msgid "Ip Addresses"
msgstr "IP-adresser"

#: src/redhat-config-cluster.glade.h:10
msgid "Last Time:"
msgstr "Senaste gång:"

#: src/redhat-config-cluster.glade.h:11
msgid "Member Information"
msgstr "Medlemsinformation"

#: src/redhat-config-cluster.glade.h:12
msgid "Member:"
msgstr "Medlem:"

#: src/redhat-config-cluster.glade.h:13
#: src/configure/cluster-config.glade.h:53
msgid "Members"
msgstr "Medlemmar"

#: src/redhat-config-cluster.glade.h:14
msgid "Monitor Interval:"
msgstr "√Ėvervakningsintervall:"

#: src/redhat-config-cluster.glade.h:16
msgid "Name:"
msgstr "Namn:"

#: src/redhat-config-cluster.glade.h:17
msgid "On Member:"
msgstr "På medlem:"

#: src/redhat-config-cluster.glade.h:18
msgid "Power Switch"
msgstr "Strömbrytare"

#: src/redhat-config-cluster.glade.h:19
msgid "Restarts:"
msgstr "Omstarter:"

#: src/redhat-config-cluster.glade.h:20
msgid "Script:"
msgstr "Skript:"

#: src/redhat-config-cluster.glade.h:21
msgid "Service Information"
msgstr "Tjänsteinformation"

#: src/redhat-config-cluster.glade.h:22
#: src/configure/cluster-config.glade.h:98
msgid "Services"
msgstr "Tjänster"

#: src/redhat-config-cluster.glade.h:23
msgid "Start Local Cluster Daemons"
msgstr "Starta lokala klusterdemoner"

#: src/redhat-config-cluster.glade.h:24
msgid "State:"
msgstr "Tillstånd:"

#: src/redhat-config-cluster.glade.h:26
msgid "Status:"
msgstr "Status:"

#: src/redhat-config-cluster.glade.h:27
msgid "Stop Local Cluster Daemons"
msgstr "Stoppa lokala klusterdemoner"

#: src/redhat-config-cluster.glade.h:28
msgid "Transitions"
msgstr "√Ėverg√•ngar"

#: src/redhat-config-cluster.glade.h:29
#: src/configure/cluster-config.glade.h:115
msgid "_Cluster"
msgstr "_Kluster"

#: src/redhat-config-cluster.glade.h:30
msgid "_Configure"
msgstr "_Konfigurera"

#: src/redhat-config-cluster.glade.h:31
#: src/configure/cluster-config.glade.h:116
msgid "_Contents"
msgstr "_Innehåll"

#: src/redhat-config-cluster.glade.h:32
msgid "_Disable"
msgstr "_Inaktivera"

#: src/redhat-config-cluster.glade.h:33
msgid "_Enable"
msgstr "_Aktivera"

#: src/redhat-config-cluster.glade.h:34
msgid "_Restart"
msgstr "_Starta om"

#: src/configure/cluster-config.glade.h:2
msgid "..."
msgstr "..."

#: src/configure/cluster-config.glade.h:3
msgid "Add Child"
msgstr "Lägg till barn"

#: src/configure/cluster-config.glade.h:4
msgid "Add Device"
msgstr "Lägg till enhet"

#: src/configure/cluster-config.glade.h:5
msgid "Add Device or Service IP Address"
msgstr "Lägg till enhet eller tjänste-IP-adress"

#: src/configure/cluster-config.glade.h:6
msgid "Add E_xports"
msgstr "Lägg till e_xporter"

#: src/configure/cluster-config.glade.h:7
msgid "Add NFS Export Druid"
msgstr "Guide för tillägg av NFS-exporter"

#: src/configure/cluster-config.glade.h:8
msgid "Add Samba Druid"
msgstr "Guide för tillägg av Samba"

#: src/configure/cluster-config.glade.h:9
msgid "Add Service IP Address"
msgstr "Lägg till tjänste-IP-adress"

#: src/configure/cluster-config.glade.h:10
msgid ""
"After creating the NFS Export, you can use the Service tab to modify default "
"settings."
msgstr ""
"Efter det att NFS-exporten skapats kan du använda fliken Tjänst för att "
"ändra standardinställningar."

#: src/configure/cluster-config.glade.h:11
msgid ""
"After creating the Samba Share, you can use the Service tab to modify "
"default settings."
msgstr ""
"Efter det att Samba-utdelningen skapats kan du använda fliken Tjänst för att "
"ändra standardinställningar."

#: src/configure/cluster-config.glade.h:13
msgid "Bulk Load NFS"
msgstr "Bulklast-NFS"

#: src/configure/cluster-config.glade.h:14
msgid "Check Interval"
msgstr "Kontrollintervall"

#: src/configure/cluster-config.glade.h:15
msgid ""
"Click Forward to begin entering the necessary\n"
"information to allow the cluster to NFS export\n"
"a directory."
msgstr ""
"Klicka på Framåt för att börja ange den\n"
"information som är nödvändig för att låta\n"
"klustret NFS-exportera en katalog."

#: src/configure/cluster-config.glade.h:18
msgid ""
"Click Forward to begin entering the necessary\n"
"information to allow the cluster to Share a\n"
"directory to Windows clients using Samba."
msgstr ""
"Klicka på Framåt för att börja ange den\n"
"information som är nödvändig för att dela\n"
"en katalog med Windows-klienter med hjälp\n"
"av Samba."

#: src/configure/cluster-config.glade.h:21
msgid "Client Name"
msgstr "Klientnamn"

#: src/configure/cluster-config.glade.h:22
msgid "Client Options"
msgstr "Klientalternativ"

#: src/configure/cluster-config.glade.h:23
msgid "Cluster Configuration"
msgstr "Klusterkonfiguration"

#: src/configure/cluster-config.glade.h:24
msgid "Cluster Daemon Properties"
msgstr "Egenskaper för klusterdemon"

#: src/configure/cluster-config.glade.h:26
msgid "Data Changed!"
msgstr "Data ändrad!"

#: src/configure/cluster-config.glade.h:27
msgid "Delete"
msgstr "Ta bort"

#: src/configure/cluster-config.glade.h:29
msgid "Device Mountpoint"
msgstr "Enhetsmonteringspunkt"

#: src/configure/cluster-config.glade.h:30
msgid "Device Special File"
msgstr "Enhetsspecialfil"

#: src/configure/cluster-config.glade.h:31
msgid "Disk Tiebreaker - Disk Ping Interval"
msgstr "Disk-tiebreaker - Diskpingintervall"

#: src/configure/cluster-config.glade.h:32
msgid "Domain Name"
msgstr "Domännamn"

#: src/configure/cluster-config.glade.h:33
msgid "Enable Broadcast Heartbeating"
msgstr "Aktivera broadcast-hjärtslag"

#: src/configure/cluster-config.glade.h:34
msgid "Enable Multicast Heartbeating"
msgstr "Aktivera multicast-hjärtslag"

#: src/configure/cluster-config.glade.h:35
msgid "Enable Software Watchdog"
msgstr "Aktivera programvaruvakthund"

#: src/configure/cluster-config.glade.h:36
msgid "Enter Directory to Export"
msgstr "Ange katalog att exportera"

#: src/configure/cluster-config.glade.h:37
msgid "Enter Share Name"
msgstr "Ange utdelningsnamn"

#: src/configure/cluster-config.glade.h:38
msgid "Existing Device and Mountpoint"
msgstr "Befintlig enhet och monteringspunkt"

#: src/configure/cluster-config.glade.h:39
msgid "Existing Services with IP Addresses"
msgstr "Befintliga tjänster med IP-adresser"

#: src/configure/cluster-config.glade.h:40
msgid "Export Directory"
msgstr "Exportkatalog"

#: src/configure/cluster-config.glade.h:41
msgid "FS Type"
msgstr "Filsystemstyp"

#: src/configure/cluster-config.glade.h:42
msgid "Failover Domain"
msgstr "√Ėverl√§mningsdom√§n"

#: src/configure/cluster-config.glade.h:43
msgid "Failover Domain Member"
msgstr "√Ėverl√§mningsdom√§nmedlem"

#: src/configure/cluster-config.glade.h:44
msgid "Failover Domains"
msgstr "√Ėverl√§mningsdom√§ner"

#: src/configure/cluster-config.glade.h:45
msgid "Failover Seconds"
msgstr "√Ėverl√§mningssekunder"

#: src/configure/cluster-config.glade.h:46
msgid "Failover Speed"
msgstr "√Ėverl√§mningshastighet"

#: src/configure/cluster-config.glade.h:47
msgid "Faster"
msgstr "Snabbare"

#: src/configure/cluster-config.glade.h:48
msgid "Force Unmount"
msgstr "Tvinga avmontering"

#: src/configure/cluster-config.glade.h:49
msgid "IP Address"
msgstr "IP-adress"

#: src/configure/cluster-config.glade.h:50
msgid "Log Level"
msgstr "Loggnivå"

#: src/configure/cluster-config.glade.h:52
msgid "Member Name"
msgstr "Medlemsnamn"

#: src/configure/cluster-config.glade.h:54
msgid "Mount"
msgstr "Montera"

#: src/configure/cluster-config.glade.h:55
msgid "Mount Point"
msgstr "Monteringspunkt"

#: src/configure/cluster-config.glade.h:56
msgid "Multicast IP Address"
msgstr "Multicast-IP-adress"

#: src/configure/cluster-config.glade.h:57
msgid "NFS Druid"
msgstr "NFS-guide"

#: src/configure/cluster-config.glade.h:58
msgid "NFS Export"
msgstr "NFS-export"

#: src/configure/cluster-config.glade.h:59
msgid "NFS Export Bulk Load Failures"
msgstr "Bulklastfel för NFS-export"

#: src/configure/cluster-config.glade.h:60
msgid "NFS Export Client"
msgstr "NFS-exportklient"

#: src/configure/cluster-config.glade.h:61
msgid "NFS Export Completion"
msgstr "Färdigställning av NFS-export"

#: src/configure/cluster-config.glade.h:62
msgid "NFS Export Directory Name"
msgstr "Katalognamn för NFS-export"

#: src/configure/cluster-config.glade.h:63
msgid "NFS..."
msgstr "NFS..."

#: src/configure/cluster-config.glade.h:65
msgid "Network"
msgstr "Nätverk"

#: src/configure/cluster-config.glade.h:66
msgid "Network Tiebreaker - IP Address"
msgstr "Nätverks-tiebreaker - IP-adress"

#: src/configure/cluster-config.glade.h:67
msgid "New"
msgstr "Ny"

#: src/configure/cluster-config.glade.h:68
msgid "New Device"
msgstr "Ny enhet"

#: src/configure/cluster-config.glade.h:69
msgid "New Service"
msgstr "Ny tjänst"

#: src/configure/cluster-config.glade.h:70
msgid "No Cluster Members"
msgstr "Inga klustermedlemmar"

#: src/configure/cluster-config.glade.h:71
msgid "Options"
msgstr "Alternativ"

#: src/configure/cluster-config.glade.h:72
msgid "Ordered Failover"
msgstr "Ordnad överlämning"

#: src/configure/cluster-config.glade.h:73
msgid "Owner"
msgstr "√Ągare"

#: src/configure/cluster-config.glade.h:74
msgid "Password"
msgstr "Lösenord"

#: src/configure/cluster-config.glade.h:75
msgid "Poll Interval"
msgstr "Pollningsintervall"

#: src/configure/cluster-config.glade.h:76
msgid "Port"
msgstr "Port"

#: src/configure/cluster-config.glade.h:77
msgid "Power Controller"
msgstr "Nätaggregat"

#: src/configure/cluster-config.glade.h:78
msgid "Power Controller Type"
msgstr "Typ av nätaggregat"

#: src/configure/cluster-config.glade.h:79
msgid "Properties"
msgstr "Egenskaper"

#: src/configure/cluster-config.glade.h:80
msgid "Raw Primary"
msgstr "Rå primär"

#: src/configure/cluster-config.glade.h:81
msgid "Raw Shadow"
msgstr "Rå skugga"

#: src/configure/cluster-config.glade.h:82
msgid "Restrict failover to only these members"
msgstr "Begränsa överlämning till endast dessa medlemmar"

#: src/configure/cluster-config.glade.h:83
msgid "SFS Path"
msgstr "SFS-sökväg"

#: src/configure/cluster-config.glade.h:84
msgid "Samba Druid"
msgstr "Samba-guide"

#: src/configure/cluster-config.glade.h:85
msgid "Samba Share Completion"
msgstr "Färdigställning av Samba-utdelning"

#: src/configure/cluster-config.glade.h:86
msgid "Samba Share Name"
msgstr "Namn på Samba-utdelning"

#: src/configure/cluster-config.glade.h:87
msgid "Samba..."
msgstr "Samba..."

#: src/configure/cluster-config.glade.h:88
msgid "Select Device for Export"
msgstr "Välj enhet för export"

#: src/configure/cluster-config.glade.h:89
msgid "Select Device for Share"
msgstr "Välj enhet för utdelning"

#: src/configure/cluster-config.glade.h:90
msgid "Select Service for Export"
msgstr "Välj tjänst för export"

#: src/configure/cluster-config.glade.h:91
msgid "Select Service for Share"
msgstr "Välj tjänst för utdelning"

#: src/configure/cluster-config.glade.h:92
msgid "Select the NFS exports file to bulk load"
msgstr "Välj den NFS-exportfil som ska bulklastas"

#: src/configure/cluster-config.glade.h:93
msgid "Serial"
msgstr "Serienummer"

#: src/configure/cluster-config.glade.h:94
msgid "Service"
msgstr "Tjänst"

#: src/configure/cluster-config.glade.h:95
msgid "Service IP Address"
msgstr "Tjänst-IP-adress"

#: src/configure/cluster-config.glade.h:96
msgid "Service Name"
msgstr "Namn på tjänst"

#: src/configure/cluster-config.glade.h:97
msgid "Service text here"
msgstr "Tjänsttext här"

#: src/configure/cluster-config.glade.h:99
msgid "Share Name"
msgstr "Namn på utdelning"

#: src/configure/cluster-config.glade.h:100
msgid "Shared File System"
msgstr "Delat filsystem"

#: src/configure/cluster-config.glade.h:101
msgid "Shared Raw Device"
msgstr "Delad rå enhet"

#: src/configure/cluster-config.glade.h:102
msgid "Shared State"
msgstr "Delat tillstånd"

#: src/configure/cluster-config.glade.h:103
msgid "Slower"
msgstr "Långsammare"

#: src/configure/cluster-config.glade.h:104
msgid ""
"The cluster will *NOT* function properly\n"
"without at least one member.\n"
"\n"
"You are about to Quit without defining\n"
"any cluster members."
msgstr ""
"Klustret kommer *INTE* att fungera\n"
"korrekt utan minst en medlem.\n"
"\n"
"Du håller på att avsluta utan att\n"
"definiera några medlemmar."

#: src/configure/cluster-config.glade.h:109
msgid "Type"
msgstr "Typ"

#: src/configure/cluster-config.glade.h:111
msgid "User Script"
msgstr "Användarskript"

#: src/configure/cluster-config.glade.h:112
msgid "_Add Child"
msgstr "_Lägg till barn"

#: src/configure/cluster-config.glade.h:113
msgid "_Add Members"
msgstr "_Lägg till medlemmar"

#: src/configure/cluster-config.glade.h:114
msgid "_Bulk Load NFS"
msgstr "_Bulklast-NFS"

#: src/configure/cluster-config.glade.h:117
msgid "_Daemon Properties"
msgstr "_Demonegenskaper"

#: src/configure/cluster-config.glade.h:118
msgid "_Delete"
msgstr "_Ta bort"

#: src/configure/cluster-config.glade.h:119
msgid "_Delete Member"
msgstr "_Ta bort medlem"

#: src/configure/cluster-config.glade.h:120
msgid "_New"
msgstr "_Ny"

#: src/configure/cluster-config.glade.h:121
msgid "_Properties"
msgstr "_Egenskaper"

#: src/configure/cluster-config.glade.h:122
msgid "_Shared State"
msgstr "_Delat tillstånd"

#: src/configure/cluster-config.glade.h:123
msgid "clulockd"
msgstr "clulockd"

#: src/configure/cluster-config.glade.h:124
msgid "clumembd"
msgstr "clumembd"

#: src/configure/cluster-config.glade.h:125
msgid "cluquorumd"
msgstr "cluquorumd"

#: src/configure/cluster-config.glade.h:126
msgid "clurmtabd"
msgstr "clurmtabd"

#: src/configure/cluster-config.glade.h:127
msgid "clusvcmgrd"
msgstr "clusvcmgrd"

#: src/configure/cluster-config.glade.h:128
msgid ""
"redhat-config-cluster:\n"
"\n"
"Do you want to save your changes?\n"
msgstr ""
"redhat-config-cluster:\n"
"\n"
"Vill du spara dina ändringar?\n"

#: src/configure/cluster-config.glade.h:132
msgid ""
"redhat-config-cluster:\n"
"\n"
"These NFS exports were not loaded\n"
"because of errors:"
msgstr ""
"redhat-config-cluster:\n"
"\n"
"Dessa NFS-exporter lästes inte\n"
"in på grund av fel:"

#. !/usr/bin/python
#. ## 9/8/2003 1. changed loglevel default from 4(Warning)
#. ##             to 5(Notice)
#. ## First, if test_ip is a DNS name, convert it to dotted quad ###
#. ## Second, run through all the members and see if the member
#. ## name matches the test_ip.
#: src/configure/clusterpkg/cluquorumd_module.py:59
#, python-format
msgid "Tiebreaker IP Address already exists in cluster as member '%s'"
msgstr "Tiebreaker-IP-adressen finns redan i klustret som medlem \"%s\""

#. ## Next, run through all the service ip addresses and see
#. ## if any of those match the test_ip.
#: src/configure/clusterpkg/cluquorumd_module.py:76
#, python-format
msgid ""
"Tiebreaker IP Address already exists in cluster as service ip address '%s'"
msgstr ""
"Tiebreaker-IP-adressen finns redan i klustret som tjänste-ip-adressen \"%s\""

#. ## Next, make sure test_ip is NOT localhost ###
#. ## Split dotted quad on the period.         ###
#: src/configure/clusterpkg/cluquorumd_module.py:82
msgid "Tiebreaker IP Address cannot start with '127' (localhost)"
msgstr "Tiebreaker-IP-adressen kan inte börja med \"127\" (localhost)"

#. ## test_ip didn't match any member names nor any service ips ###
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. print "----> cluquroumd validate NOW!<-----"
#. print "      self.action = %s" % self.action
#. print "      options     = %s" % options
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. print "cluquorumd tiebreaker_ip = [%s]" % tiebreaker_ip
#: src/configure/clusterpkg/cluquorumd_module.py:119
msgid "Tiebreaker IP Address not found on network"
msgstr "Tiebreaker-IP-adress hittades inte på nätverket"

#. ## Tiebreaker IP Address *NOT* submitted ###
#. ## set warning flag, and raise WARNING below ###
#: src/configure/clusterpkg/cluquorumd_module.py:140
msgid "Tiebreaker IP Address is required for 4-node clusters"
msgstr "Tiebreaker-IP-adress krävs för 4-nodskluster"

#. ###################################
#. ## 3. Create the DOM child node ###
#. ###################################
#. #########################################################
#. ## 4. Create new ClusterEntity from that DOM child node,
#. ##    and set the "id" to the open slot that was found.
#. #########################################################
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. Import all subpackages of our netconfpkg directory. This code is a real
#. dirty hack but does the job(tm). It basically finds all .py files in the
#. package directory and imports from all found files (except __init__.py that
#. is) ;). Nice for plugin mechanism.
#. !/usr/bin/python
#. from clusterpkg.clupowerd_module  import clupowerd
#. for copyfile
#. for rename
#. import clusterpkg.clupowerd_module
#. CLUPOWERD_INFO   = clusterpkg.clupowerd_module.MY_INFO
#. #########################################################################
#. cluconfig: This class inherits from ClusterList so when 'cluconfig'
#. or 'redhat-config-cluster' runs for the 1st time
#. (/etc/cluster.xml doesn't exist), class 'cluconfig'
#. can call ClusterList's 'append_child' method to create
#. nodes clumembd, clupowerd, cluquorumd, clurmtabd,
#. clusvcmgrd, clulockd, cluster, which make up the minimum
#. skeleton of /etc/cluster.xml.
#. #########################################################################
#.
#. ## Called when 2 cluconfig objects are compared ###
#. print "cluconfig __cmp__: self  =", self
#. print "cluconfig __cmp__: other =", other
#. print "cluconfig __cmp__: rc =", integer_rc
#. in destructor __del__, don't release since
#. didn't get lock.
#. ## If parse passes(cluster.xml exists), then call
#. ## ClusterList constructor.  In this situation, we
#. ## won't really be using cluconfig as a ClusterList
#. ## object - it will be used below when the cluster.xml
#. ## file doesn't exist, since ClusterList objects can
#. ## call "add_child".
#. ## /etc/cluster.xml file does *NOT* exist - create one ###
#. ## now create the 'root' element - named 'cluconfig' ###
#. self.add_clupowerd()
#. ## Now that /etc/cluster.xml has been created, generate
#. ## an authentication key - tag 'cluster' option 'key'.
#. ## this is the destructor ###
#. print "cluconfig __del__ TOP!"
#. print "  release lock now!"
#. ## First, create a new 'sharedstate' entity
#. ## Now, remove the "id" attribute that "add_child" created.
#. ## We don't want this since there's only 1 sharedstate node - "id"s
#. ## exist on nodes that can have siblings.
#. ## First, create a new 'clumembd' entity
#. ## Now, remove the "id" attribute that "add_child" created.
#. ## We don't want this since there's only 1 clumembd node - "id"s
#. ## exist on nodes that can have siblings.
#. def add_clupowerd(self, cmdline_args=None):
#. entity = ClusterList.add_child(self, CLUPOWERD_INFO)
#. clupowerd_entity = clupowerd(entity.node)
#. clupowerd_entity.add_options(cmdline_args)
#. clupowerd_entity.node.removeAttribute("id")
#. return clupowerd_entity
#. ########################################################################
#. def getclupowerd  (self):
#. return clupowerd(self.dom.getElementsByTagName("clupowerd")[0])
#. ## 1. Create .tmp file with updated info.
#. ## 2. Now that .tmp has been created successfully, backup
#. ##    the current config file before we overwrite it.
#. ## 3. Move the temp file containing the updated info into place.
#. ## 4. If cluster is running, then 'Reload' so cluster re-reads
#. ##    its updated config file.
#. ## Cluster *IS* running ###
#. print "   cluster is *NOT* running"
#. print "cluconfig"
#. self.getclupowerd().out()
#. !/usr/bin/python
#. from xml.dom import minidom
#. ## 9/8/2003 1. changed loglevel default from 4(Warning)
#. ##             to 5(Notice)
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#: src/configure/clusterpkg/cluquorumd_module.py:156
#: src/configure/clusterpkg/clupowerd_module.py:52
#: src/configure/clusterpkg/clurmtabd_module.py:62
#: src/configure/clusterpkg/clusvcmgrd_module.py:52
#: src/configure/clusterpkg/clulockd_module.py:51
#: src/configure/clusterpkg/clumembd_module.py:163
msgid ""
"Log Level must be a number from 0 to 7:\n"
"  0 - EMERG\n"
"  1 - ALERT\n"
"  2 - CRIT\n"
"  3 - ERR\n"
"  4 - WARNING (DEFAULT)\n"
"  5 - NOTICE\n"
"  6 - INFO\n"
"  7 - DEBUG"
msgstr ""
"Loggnivå måste vara ett tal mellan 0 och 7:\n"
"  0 - AKUT\n"
"  1 - VARN\n"
"  2 - KRIT\n"
"  3 - FEL\n"
"  4 - VARNING (STANDARD)\n"
"  5 - NOTIS\n"
"  6 - INFO\n"
"  7 - FELS√ĖK"

#: src/configure/clusterpkg/cluquorumd_module.py:182
msgid "Ping Interval must be a number from 1 to 10"
msgstr "Pingintervallet måste vara ett tal mellan 1 och 10"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#: src/configure/clusterpkg/cluquorumd_module.py:191
msgid "Tiebreaker IP Address is recommended for 2-node clusters"
msgstr "Tiebreaker-IP-adress rekommenderas för 2-nodskluster"

#. !/usr/bin/python
#. ## for deepcopy
#. Default is "modify" - when parent does
#. add_child, add_child will change this
#. setting for the child to "add" after the
#. entity is created.
#. ## node will only be "None" if instantiating an object just
#. ## to get at the objects MY_INFO - this is for convenience,
#. ## and is probably only done in the abc_module.py's where the
#. ## abc_module needs to get its children's MY_INFO.
#. ## Only give attributes "default" values if there are *NO* attributes
#. ## yet.  That is, give this node default values if this node is *new*.
#. ####################################################################
#. options is a dictionary with 2 levels:
#. 1st level: option name(like "loglevel")
#. 2nd level: a dictionary containing
#. 'datatype' with value either "str"(string) or "int"(integer)
#. 'order'    with a number representing the sequential order
#. that options should be printed out.
#. ####################################################################
#: src/configure/clusterpkg/ClusterEntity.py:58
msgid "Illegal extra options were submitted."
msgstr "Otillåtna extra flaggor skickades."

#. ## From attributes in myoptions, construct a dict with those same
#. ## attributes, but with a "--" prepended, so that each one is a
#. ## valid getopt argument.
#. ## Dictionary "options_submitted" now contains all the submitted options.
#. ## setOptions only called by "modify"(bottom of this class), and
#. ## "modify" is only called by redhat-config-cluster-cmd command line tool.
#. ## 'validate' will raise an exception if errors found ###
#. ## error must be FATAL ###
#: src/configure/clusterpkg/ClusterEntity.py:104
#, python-format
msgid "Option \"%s\" value must be \"yes\" or \"no\""
msgstr "Värdet på flaggan \"%s\" måste vara \"yes\" eller \"no\""

#. ## will cause exception if val is a string ###
#: src/configure/clusterpkg/ClusterEntity.py:112
#, python-format
msgid "Bad value \"%s\" for option \"%s\""
msgstr "Felaktigt värde \"%s\" för flaggan \"%s\""

#. str - int to str
#. value == "" when getAttribute didn't find the option
#: src/configure/clusterpkg/ClusterEntity.py:116
#: src/configure/clusterpkg/ClusterEntity.py:131
#, python-format
msgid "%s bad option"
msgstr "%s felaktig flagga"

#. ## if element has attributes, print those attributes out in order ###
#. ## If option is not in xml(dom), then continue to next option.
#. ## "id"s should not be exposed to users, so don't print id's.
#. ## args will be 'None' coming from GUI add
#. ## only call setOptions if there are options to set ###
#. !/usr/bin/python
#. ## child_being_validated was passed in - user wants to
#. ## find a child whose options match all the search_options
#. ## passed in, and where the child found is
#. ## *NOT* child_being_validated.
#. ## Match not found - raise error ###
#: src/configure/clusterpkg/ClusterList.py:50
#, python-format
msgid "%s with %s does not exist"
msgstr "%s med %s finns inte"

#. def delete_child(self, child_info, args, val, key="name"):
#. ## args will come in as "None" from Gui, but will be a dictionary
#. ## if from cluconfig command line.
#. ########################################################################
#. ## add: 1. calls do_getopt (process command line options)
#. ##      2. calls add_child_entity to create a new child ClusterEntity
#. ##      3. for that new child ClusterEntity, call setOptions
#. ##           to set its options.
#. ########################################################################
#. ###################################################
#. ## 1. Build list of "id"s for existing children ###
#. ###################################################
#. #######################################################
#. ## 2. Find the 1st open "id" slot for the new child ###
#. #######################################################
#: src/configure/clusterpkg/ClusterList.py:106
#, python-format
msgid "ERROR: %ss add_child_entity - couldn't find slot for new id."
msgstr "FEL: %ss add_child_entity - kunde inte hitta plats för nytt id."

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. None
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. ## Figure out how many members have been defined ###
#. errno, errstr = e
#. host is *NOT* in DNS
#. host *IS* in DNS
#. cmd = 'ping -c 1 -w 1 %s 2>/dev/null' % ip
#. rc = os.system(cmd)
#. if rc == 0:
#. return TRUE # ping successful
#. else:
#. return FALSE
#. ping successful
#. ## Cluster is *NOT* running ###
#. ## Cluster *IS* running ###
#. stateTable: 0=Uninitialized
#. 1=Running
#. 2=Stopped
#. 3=Disabled
#. 4=Pending
#. 5=Failed
#. 6=Unknown
#. ## id doesn't exist yet - may have been added by gui and
#. ## config not saved yet.
#: src/configure/clusterpkg/cluster_functions.py:150
msgid ""
"Raw devices have NOT been created yet.\n"
"\n"
"Follow the instructions in the manual\n"
"for 'Creating Raw Devices', and then\n"
"try again."
msgstr ""
"Råa enheter har INTE skapats än.\n"
"\n"
"Följ instruktionerna i manualen för\n"
"att \"Skapa nya enheter\" och försök\n"
"sedan igen."

#: src/configure/clusterpkg/cluster_functions.py:157
#, python-format
msgid ""
"Shared Storage could *NOT* be initialized!\n"
"\n"
"%s"
msgstr ""
"Delat lager kunde *INTE* initieras!\n"
"\n"
"%s"

#: src/configure/clusterpkg/cluster_functions.py:163
#, python-format
msgid ""
"Error: Shared Storage could *NOT* be initialized!\n"
"\n"
"%s"
msgstr ""
"Fel: Delat lager kunde *INTE* initieras!\n"
"\n"
"%s"

# Hur översätta "powercontroller"?
#
#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. None
#. !/usr/bin/python
#. ## 6/17/2003: Lon asked to have 'servertech' taken out of
#. ##            supported network powerswitch types.
#. ##################################################################
#. 4/15/2003 HM - "port" is valid for both 'Serial' and 'Network'
#. powercontrollers.  It is required for 'Serial'
#. ##################################################################
#. ## "device" is valid for "serial" type's
#. ## "ipaddress" and "port" are valid for "network" type's
#. ###########################################################################
#. ###################################################################
#. NOTE: in __validate_serial and __validate_network,
#.
#. WARNING errors must come *Last*, after all FATAL errors.
#.
#. This is because the command line tool will override WARNING's
#. in favor of doing the add or update, whereas the GUI will
#. present the WARNING in a popup dialog.  Since WARNINGs and
#. ERROR's are 'raise'd, editing stops at that point.  So for
#. the command line, we want to be sure that all FATAL checks
#. have already been done, so that if a WARNING is raised, it
#. can be safely overridden sinced we know that only WARNING
#. checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## if any 'Network' options were submitted, then error ###
#. ## From GUI, network and serial options will all be submitted, but
#. ## network options should have null("") value.
#: src/configure/clusterpkg/member_powercontroller_module.py:123
msgid "IP Address is an invalid option for a Serial powercontroller"
msgstr "IP-adress är ett ogiltigt alternativ för ett seriellt nätaggregat"

#. ## Check for *required* fields on "add" ###
#: src/configure/clusterpkg/member_powercontroller_module.py:131
#: src/configure/clusterpkg/member_powercontroller_module.py:157
msgid "Device is required for a Serial powercontroller"
msgstr "Enhet krävs för ett seriellt nätaggregat"

#. ## "device" *WAS* submitted - when "device" submitted, "port"
#. ## is required.
#: src/configure/clusterpkg/member_powercontroller_module.py:140
#: src/configure/clusterpkg/member_powercontroller_module.py:168
msgid "Port is required for a Serial powercontroller"
msgstr "Port krävs för ett seriellt nätaggregat"

#. ## Validate 'Serial' options submitted ###
#. ## Validate Device ###
#: src/configure/clusterpkg/member_powercontroller_module.py:180
#, python-format
msgid "Serial Device file \"%s\" does not exist"
msgstr "Seriella enhetsfilen \"%s\" finns inte"

#: src/configure/clusterpkg/member_powercontroller_module.py:184
msgid "Serial Device file must be a character special device file"
msgstr "Seriella måste vara en teckenspecialenhetsfil"

#: src/configure/clusterpkg/member_powercontroller_module.py:188
msgid "Serial Device must begin with /dev/ttyS"
msgstr "Seriella enheten måste börja med /dev/ttyS"

#. ## Validate Port ###
#. ## Check for Serial 'device' duplicates within the parent member ###
#. ## get_serial_powercontroller will raise exception if not found
#: src/configure/clusterpkg/member_powercontroller_module.py:215
msgid "Serial powercontroller Device already exists in member"
msgstr "Seriell nätaggregatsenhet finns redan i medlem"

#. ## Can only allow 'Serial' powercontroller if there are 2 members
#. ## in the cluster - if >2 members, then 'Serial' invalid - must
#. ## use 'Network' powercontroller.
#: src/configure/clusterpkg/member_powercontroller_module.py:228
msgid ""
"Serial powercontroller may not be used when cluster contains more than 2 "
"members"
msgstr ""
"Seriellt nätaggregat kan inte användas då klustret innehåller färre än 2 "
"medlemmar"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No WARNINGS for ___validate_serial
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## if any 'Serial' options were submitted, then error ###
#. ## From GUI, network and serial options will all be submitted, but
#. ## serial options should have null("") value.
#: src/configure/clusterpkg/member_powercontroller_module.py:251
msgid "Device is an invalid option for a Network powercontroller"
msgstr "Enhet är ett ogiltigt alternativ för ett nätverksnätaggregat"

#. ## Check for *required* fields on "add" ###
#: src/configure/clusterpkg/member_powercontroller_module.py:259
#: src/configure/clusterpkg/member_powercontroller_module.py:290
msgid "IP Address is required for a Network powercontroller"
msgstr "IP-adress krävs för ett nätverksnätaggregat"

#: src/configure/clusterpkg/member_powercontroller_module.py:264
#: src/configure/clusterpkg/member_powercontroller_module.py:295
msgid "Port is required for a Network powercontroller"
msgstr "Port krävs för ett nätverksnätaggregat"

#. ## Check for Network 'ipaddress/port' duplicates within the
#. ## parent member.
#. ## get_network_powercontroller will raise exception if not found
#: src/configure/clusterpkg/member_powercontroller_module.py:317
msgid "Network powercontroller IP Address/Port already exists in member"
msgstr "IP-adress/port för nätverksnätaggregatet finns redan i medlem"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. ## Validate 'Network' options submitted ###
#: src/configure/clusterpkg/member_powercontroller_module.py:329
msgid "Powercontroller IP Address not found on network"
msgstr "IP-adressen för nätaggregatet hittades inte på nätverket"

#. ##########################################################
#. validate: will be called by outside apps.  validate is
#. reponsible for validating all powercontroller
#. options.
#. ##########################################################
#. ## Make sure option 'type' is submitted
#: src/configure/clusterpkg/member_powercontroller_module.py:343
msgid "Type is required when adding a powercontroller"
msgstr "Typ krävs när ett nätaggregat läggs till"

#. ## Must be "modify"
#: src/configure/clusterpkg/member_powercontroller_module.py:358
#: src/configure/clusterpkg/member_powercontroller_module.py:378
msgid "Invalid Powercontroller Type"
msgstr "Ogiltig typ av nätaggregat"

#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. first some defines
#. !/usr/bin/python
#. "alias_ip"          : { "datatype" : "str",
#. "order"    : 1 },
#. "alias_ip=",
#. ## end MY_INFO
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#: src/configure/clusterpkg/cluster_module.py:59
msgid "Cluster Name is required"
msgstr "Klusternamn krävs"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. None
#. !/usr/bin/python
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## Validate "name"
#. ## This is a "modify".
#: src/configure/clusterpkg/device_mount_module.py:106
msgid "Device Mountpoint is required"
msgstr "Enhetsmonteringspunkt krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. msg = _("Mount Point does not exist")
#. raise OptionError("FATAL", msg, "mountpoint", mountpoint)
#. if not stat.S_ISDIR(mode):
#. msg = _("Mount Point must be a directory")
#. raise OptionError("FATAL", msg, "mountpoint", mountpoint)
#: src/configure/clusterpkg/device_mount_module.py:131
msgid "Device Mountpoint already exists"
msgstr "Enhetsmonteringspunkten finns redan"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#: src/configure/clusterpkg/device_mount_module.py:140
#: src/configure/nfsExportDruid.py:447 src/configure/smbShareDruid.py:367
#, python-format
msgid ""
"Device Mountpoint '%s' does not exist, but will be created when the service "
"is started."
msgstr ""
"Enhetsmonteringspunkten \"%s\" finns inte, men kommer att skapas då tjänsten "
"startas."

#. !/usr/bin/python
#. ## end MY_INFO
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## 1st, for any options that were not submitted, see if a
#. ## "default" was defined above.  If there was, make the
#. ## option value equal to the default.
#. ## This option was not submitted - assign the default if
#. ## there is one.
#: src/configure/clusterpkg/member_module.py:99
msgid "Member Name is required"
msgstr "Medlemsnamn krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#: src/configure/clusterpkg/member_module.py:114
#, python-format
msgid "Member '%s' not found in DNS"
msgstr "Medlemmen \"%s\" hittades inte i DNS"

#. ## 'name' is key - check for another member with same name
#: src/configure/clusterpkg/member_module.py:121
#, python-format
msgid "Member '%s' already exists in cluster"
msgstr "Medlemmen \"%s\" finns redan i klustret"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#: src/configure/clusterpkg/member_module.py:133
msgid "Member is not on same network as this host"
msgstr "Medlemmen är inte på samma nätverk som denna värd"

#. ## END WARNINGS ###
#. ## args will come in as "None" from Gui, but will be a dictionary
#. ## if from cluconfig command line.
#. ## Must be deleting a 'Serial' Powercontroller since that has only
#. ## one key field(device).
#. ## Must be deleting a 'Network' Powercontroller since that has
#. ## two key fields (ipaddress,port).
#. ## First, get a list of failoverdomainnodes that refer to the
#. ## *old* member name.  To do that, we need to
#. ##   1. get ownerDocument, and user that to
#. ##   2. get failoverdomains node, then
#. ##   3. get the list of failoverdomains
#. ##   4. for each failoverdomain, scan through the list
#. ##        of failoverdomainnodes - if a failoverdomainnode
#. ##        refers to the "old" member "name", then change
#. ##        that to refer to the new member name.
#. node(failoverdomainnode) match *NOT* found in
#. this domain - continue to next domain
#. ## To get here, match *WAS* found - change node's name from
#. ## old_name to new_name.
#. ######################################################
#. Override the ClusterEntity 'set' function so that
#. if a member 'name' is being changed, we can ensure
#. that all failover domain nodes referring to the
#. "old" member name get changed to refer to the
#. "new" member name.
#. ######################################################
#. !/usr/bin/python
#. ## end self.MY_INFO
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## Validate "name"
#: src/configure/clusterpkg/nfsexport_client_module.py:87
msgid "NFS Export Client Name is required"
msgstr "Klientnamn för NFS-export krävs"

#. ## Must be 'modify' ###
#: src/configure/clusterpkg/nfsexport_client_module.py:99
#: src/configure/clusterpkg/service_device_module.py:159
#: src/configure/clusterpkg/nfsexport_module.py:136
#: src/configure/clusterpkg/service_module.py:102
#: src/configure/nfsExportDruid.py:311 src/configure/smbShareDruid.py:238
msgid "Service must be disabled before updates can be made"
msgstr "Tjänsten måste inaktiveras innan uppdateringar kan genomföras"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#: src/configure/clusterpkg/nfsexport_client_module.py:114
msgid "NFS Export Client Name already exists"
msgstr "Klientnamnet för NFS-export finns redan"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No warnings
#. !/usr/bin/python
#. ##################################################################
#. get_list: The list returned by ClusterList.get_list contains
#. ClusterEntity's - It's not sufficient for each to be a
#. ClusterEntity since ClusterEntity's don't have access to the
#. "member" functions.  Each member in the list returned by
#. this "get_list" must be a *member* entity in order to have
#. access to the "member" functions.
#. ##################################################################
#. ## "member_being_validated" is either the member being modified, or
#. ## the new member just added.  We want to be sure his key info doesn't
#. ## duplicate an existing member.
#. ## Search all the nodes in all the failover domains for a name that
#. ## matches the name of the member passed in.
#: src/configure/clusterpkg/members_module.py:73
#: src/configure/clusterpkg/members_module.py:84
#, python-format
msgid ""
"Member delete not allowed - Member Name '%s' is specified by at least one "
"failover domain"
msgstr ""
"Borttagning av medlem är inte tillåtet - medlemsnamnet \"%s\" är angivet av "
"minst en överlämningsdomän"

#: src/configure/clusterpkg/service_device_module.py:171
msgid "Device Name is required"
msgstr "Enhetsnamn krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#: src/configure/clusterpkg/service_device_module.py:187
#: src/configure/nfsExportDruid.py:427 src/configure/smbShareDruid.py:353
#, python-format
msgid "Device Special File \"%s\" does not exist"
msgstr "Enhetsspecialfilen \"%s\" finns inte"

#: src/configure/clusterpkg/service_device_module.py:191
#: src/configure/nfsExportDruid.py:430 src/configure/smbShareDruid.py:356
msgid "Device Special File must be a block special device file"
msgstr "Enhetsspecialfilen måste vara en blockspecialenhetsfil"

#: src/configure/clusterpkg/service_device_module.py:196
msgid "Device Name already exists in cluster"
msgstr "Enhetsnamnet finns redan i klustret"

#. ## Validate "sharename" ###
#: src/configure/clusterpkg/service_device_module.py:205
msgid ""
"The Service already contains a device with a Samba Share Name specified - "
"more than one Samba Share Name within a service is not allowed"
msgstr ""
"Tjänsten innehåller redan en enhet med ett Samba-utdelningsnamn angivet - "
"mer än ett Samba-utdelningsnamn inom en tjänst är inte tillåtet"

#: src/configure/clusterpkg/service_device_module.py:211
msgid "Samba Share Name may not contain spaces"
msgstr "Samba-utdelningsnamn får inte innehålla blanksteg"

#. return to druid
#. ## Verify that sharename isn't a dup of existing ###
#: src/configure/clusterpkg/service_device_module.py:217
#: src/configure/smbShareDruid.py:416
msgid "Samba Share Name already exists in cluster"
msgstr "Samba-utdelningsnamnet finns redan i klustret"

#: src/configure/clusterpkg/service_device_module.py:223
msgid ""
"A Service IP Address must be entered before specifying a Samba Share Name, "
"since the samba share configuration file to be created requires it"
msgstr ""
"En tjänste-IP-adress måste anges före ett Samba-utdelningsnamn anges, "
"eftersom konfigurationsfilen som ska skapas för samba-utdelningen kräver det"

#. ## Samba Share Name *has* been specified - verify that
#. ## a 'mountpoint' was either specified, or exists in the
#. ## device 'mount'(__no_mountpoint).
#. ## no mountpoint specified - check existing 'mount' tag ###
#: src/configure/clusterpkg/service_device_module.py:234
msgid ""
"A Device Mountpoint must be entered before specifying a Samba Share Name, "
"since the samba share configuration file to be created requires it"
msgstr ""
"En enhetsmonteringspunkt måste anges före ett Samba-utdelningsnamn anges, "
"eftersom konfigurationsfilen som ska skapas för samba-utdelningen kräver det"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No warnings
#. ## "nfsexport_being_validated" is either the nfsexport being modified, or
#. ## the new nfsexport just added.  We want to be sure his key info doesn't
#. ## duplicate an existing nfsexport.
#. ####################################################################
#. ####################################################################
#. !/usr/bin/python
#. ## No need to validate that there are no dups for this nfsexport
#. ## within the whole cluster (all services and devices), since
#. ## the nfsexport directory must be underneath the device mountpoint,
#. ## and since the device mountpoint must be unique within the whole
#. ## cluster, then there is no way that there can be duplicate
#. ## nfsexport directories in 2 different services or 2 different
#. ## devices.  The only dup an nfsexport could have is within the
#. ## same device, so keep the __dup_found check above.
#. def __dup_found_in_cluster(self, option, value):
#. this_nfsexport_id = self.get("id")
#. this_device_id    = self.parent.get("id")
#. this_service_id   = self.parent.parent.get("id")
#.
#. ownerDocument = self.node.ownerDocument
#. services_node = ownerDocument.getElementsByTagName("services")[0]
#. from clusterpkg.services_module import services
#. services_entity = services(services_node)
#. for service in services_entity.get_list():
#. service_id = service.get("id")
#. devices = service.get_devices()
#. for device in devices:
#. device_id = device.get("id")
#. nfsexports = device.get_nfsexports()
#. for nfsexport in nfsexports:
#. nfsexport_id = nfsexport.get("id")
#. if nfsexport.get(option) == value #. and #. (nfsexport_id != this_nfsexport_id or #. device_id    != this_device_id or #. service_id   != this_service_id):
#. return TRUE
#. return FALSE
#. mountpoint not defined - return error
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## Validate "name"
#: src/configure/clusterpkg/nfsexport_module.py:125
msgid "NFS Export Directory Name is required"
msgstr "NFS-exportkatalognamn krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#: src/configure/clusterpkg/nfsexport_module.py:151
msgid "NFS Export Directory Name must start with a slash '/'"
msgstr "NFS-exportkatalognamnet måste börja med ett snedstreck \"/\""

#. msg = _("NFS Export Directory Name \"%s\" does not exist") % name
#. raise OptionError("FATAL", msg, "name", name)
#: src/configure/clusterpkg/nfsexport_module.py:162
msgid "NFS Export Directory Name must be a directory"
msgstr "NFS-exportkatalognamnet måste vara en katalog"

#: src/configure/clusterpkg/nfsexport_module.py:166
msgid "NFS Export Directory Name already exists in device"
msgstr "NFS-exportkatalognamnet finns redan i enheten"

#: src/configure/clusterpkg/nfsexport_module.py:169
msgid "NFS Export Directory Name must be underneath the device mount point"
msgstr "NFS-exportkatalognamnet måste vara under enhetsmonteringspunkten"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No warnings
#. ## "client_being_validated" is either the client being modified, or
#. ## the new client just added.  We want to be sure its key info doesn't
#. ## duplicate an existing client.
#. !/usr/bin/python
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#: src/configure/clusterpkg/service_module.py:93
msgid "Service Name is required"
msgstr "Tjänstenamn krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#. ## 'name' is key - check for another service with same name
#: src/configure/clusterpkg/service_module.py:118
msgid "Service Name already exists"
msgstr "Tjänstenamn finns redan"

#. ## Verify that Failover Domain Name specified for this service
#. ## exists as a current Failover Domain name in the cluster.
#: src/configure/clusterpkg/service_module.py:135
#, python-format
msgid "Failover Domain Name '%s' not found in cluster"
msgstr "√Ėverl√§mningsdom√§nnamnet \"%s\" hittades inte i klustret"

#. ## Validate "userscript"
#: src/configure/clusterpkg/service_module.py:145
msgid "User Script does not exist"
msgstr "Användarskript finns inte"

#: src/configure/clusterpkg/service_module.py:148
msgid "User Script must be a regular file"
msgstr "Användarskript måste vara en normal fil"

#: src/configure/clusterpkg/service_module.py:153
msgid "User Script is not executable"
msgstr "Användarskript är inte körbart"

#: src/configure/clusterpkg/service_module.py:159
msgid "Must define cluster members before a service can be added"
msgstr "Måste definiera klustermedlemmar innan en tjänst kan läggas till"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No warnings
#. def device_found(self, device_being_validated, val, key="name"):
#. ## "device_being_validated" is either the device being modified, or
#. ## the new device just added.  We want to be sure his key info doesn't
#. ## duplicate an existing device.
#. ## 1st, create "device" ###
#. ## Next, create "mount"(only 1 per device) DOM node ###
#. # # # # # # # # # # # # # # # # # # # # # # # # # #
#. return an empty list
#. ## if 'service_ipaddresses' tag doesn't yet exist, create it ###
#. ## Adding first service, and 'service_ipaddresses' tag doesn't
#. ## exist yet, so create it now.
#. # # # # # # # # # # # # # # # # # # # # # # # # # #
#. ## Should only be 1 "service_ipaddresses" node for a service, but this
#. ## handles the case when there is *no* "service_ipaddresses" node
#. ## for this svc.
#. !/usr/bin/python
#. def __dup_found(self, key, value):
#. "This finds duplicate ip addresses *within the service*"
#. prev_value = self.get(key)
#. if self.action == "add" or #. (self.action == "modify" and value != prev_value):
#. service_ipaddresses_entity = self.parent
#. search_options = {key : value}
#. service_ipaddress_being_validated = self
#. if service_ipaddresses_entity.service_ipaddress_found(search_options, service_ipaddress_being_validated):
#. return TRUE
#. return FALSE
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Make sure service is stopped before allow user to add or update
#. ## service ipaddress(es).
#: src/configure/clusterpkg/service_ipaddress_module.py:111
msgid ""
"Service must be disabled before you can add or update service ip addresses"
msgstr ""
"Tjänsten måste inaktiveras innan du kan lägga till eller uppdatera tjänste-"
"ip-adresser"

#. ## Check for *required* fields on "add" ###
#. ## Validate "ipaddress"
#: src/configure/clusterpkg/service_ipaddress_module.py:120
msgid "IP Address is required"
msgstr "IP-adress krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#. if self.__dup_found("ipaddress", ipaddress):
#: src/configure/clusterpkg/service_ipaddress_module.py:136
msgid "IP Address already exists in cluster"
msgstr "IP-adressen finns redan i klustret"

#: src/configure/clusterpkg/service_ipaddress_module.py:145
msgid "IP Address not found in DNS"
msgstr "IP-adressen hittades inte i DNS"

#: src/configure/clusterpkg/service_ipaddress_module.py:157
msgid "Netmask is invalid"
msgstr "Nätmasken är ogiltig"

#: src/configure/clusterpkg/service_ipaddress_module.py:168
msgid "Broadcast is invalid"
msgstr "Broadcastadressen är ogiltig"

#: src/configure/clusterpkg/service_ipaddress_module.py:176
msgid "IP Address not on same network as this host"
msgstr "IP-adressen finns inte på samma nätverk som denna värd"

#: src/configure/clusterpkg/service_ipaddress_module.py:182
msgid "IP Address already in use on network"
msgstr "IP-adressen används redan på nätverket"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#.
#. !/usr/bin/python
#. set to TRUE if you want to allow SFS
#. ## DRIVERS key   = shared state 'type'
#. ##         value = shared state 'driver' for that 'type'
#. ## Use os.path.exists(value), or
#. ##     os.stat(value) - os.stat(value) will raise OSError if not a file.
#. print "OSError - dir(e) = %s" % dir(e)
#. print "  OSError - e.args     =", e.args
#. print "  OSError - e.errno    = %s" % e.errno
#. print "  OSError - e.filename = %s" % e.filename
#. print "  OSError - e.strerror = %s" % e.strerror
#: src/configure/clusterpkg/sharedstate_module.py:72
#, python-format
msgid "Raw %s device does not exist"
msgstr "Rå %s-enhet finns inte"

#: src/configure/clusterpkg/sharedstate_module.py:76
#, python-format
msgid "Raw %s device is not a character special file"
msgstr "Rå %s-enhet är ingen teckenspecialfil"

#: src/configure/clusterpkg/sharedstate_module.py:83
msgid "SFS Path does not exist"
msgstr "SFS-sökväg finns inte"

#: src/configure/clusterpkg/sharedstate_module.py:87
msgid "SFS Path must be a directory"
msgstr "SFS-sökväg måste vara en katalog"

#. ##########################################################################
#. ## if any 'sfs' options were submitted, then error ###
#. ## From GUI, raw and sfs options will all be submitted, but
#. ## sfs options should have null("") value.
#: src/configure/clusterpkg/sharedstate_module.py:100
msgid "SFS Path is an invalid option for a Raw Shared State"
msgstr "SFS-sökväg är ett ogiltigt alterativ för ett rått delat tillstånd"

#. ## validate 'raw' fields - and assign option to 'options' dictionary
#. ## if option does NOT currently exist, and there IS a default value
#: src/configure/clusterpkg/sharedstate_module.py:116
msgid "Raw Primary device is required for Raw Shared State"
msgstr "Rå primär enhet krävs för rått delat tillstånd"

#: src/configure/clusterpkg/sharedstate_module.py:127
msgid "Raw Shadow device is required for Raw Shared State"
msgstr "Rå skuggenhet krävs för rått delat tillstånd"

#. ## 'driver' was not submitted, and there was no existing
#. ## 'driver', and there is a default, so assign the default
#. ############################
#. validation between fields #
#. ############################
#. ## rawprimary NOT submitted - see if that option already exists
#. ## in the sharedstate tag
#. ## rawprimary was not submitted, nor does it already exist
#. ## in the sharedstate tag - error.
#: src/configure/clusterpkg/sharedstate_module.py:151
msgid "Primary Quorum Partition is required"
msgstr "Primär majoritetspartition krävs"

#. ## rawshadow NOT submitted - see if that option already exists
#. ## in the sharedstate tag
#. ## rawshadow was not submitted, nor does it already exist
#. ## in the sharedstate tag - error.
#: src/configure/clusterpkg/sharedstate_module.py:164
msgid "Shadow Quorum Partition is required"
msgstr "Skuggmajoritetspartition krävs"

#: src/configure/clusterpkg/sharedstate_module.py:170
msgid ""
"Primary Quorum Partition must not be the same as the Shadow Quorum Partition"
msgstr ""
"Primär majoritetspartition får inte vara samma som skuggmajoritetspartitionen"

#. ## if any 'raw' options were submitted, then error ###
#. ## From GUI, raw and sfs options will all be submitted, but
#. ## raw options should have null("") value.
#: src/configure/clusterpkg/sharedstate_module.py:182
msgid "Raw Primary Device is an invalid option for an SFS Shared State"
msgstr "Rå primär enhet är ett ogiltigt alternativ för ett SFS-delat tillstånd"

#: src/configure/clusterpkg/sharedstate_module.py:188
msgid "Raw Shadow Device is an invalid option for an SFS Shared State"
msgstr "Rå skuggenhet är ett ogiltigt alternativ för ett SFS-delat tillstånd"

#. ##
#. ## sfspath is required to be present(existing or newly submitted) ###
#. ##
#: src/configure/clusterpkg/sharedstate_module.py:198
#: src/configure/clusterpkg/sharedstate_module.py:208
msgid "SFS Path is required"
msgstr "SFS-sökväg krävs"

#. ##########################################################################
#. ## Make sure option 'type' is submitted
#: src/configure/clusterpkg/sharedstate_module.py:226
msgid "Type is required when adding Shared State"
msgstr "Typ krävs då delat tillstånd läggs till"

#. ## Must be "modify"
#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. !/usr/bin/python
#. from xml.dom import minidom
#. ## 9/8/2003 1. changed loglevel default from 4(Warning)
#. ##               to 5(Notice), and
#. ##          2. changed failover time
#. ##               from 10 seconds (interval 500000, tko_count 20)
#. ##               to   15 seconds (interval 750000, tko_count 20)
#. ## commented out 3/20/2003 HM ###
#. "strict"    : { "datatype" : "yes_no",
#. "order"    : 3,
#. "default"  : "no" },
#.
#. "adaptive"  : { "datatype" : "yes_no",
#. "order"    : 4,
#. "default"  : "yes" },
#. "strict=",
#. "adaptive=",
#. ## This whole failover seconds > min disk ping seconds check
#. ## isn't necessary if 'cluquorumd' pinginterval isn't specified.
#. ## So just return success.
#. success
#. ## 1.0 - force 'float' context so that we don't loose
#. ## fractional parts in multiplication.
#. ## edit passed ###
#. ## edit failed ###
#: src/configure/clusterpkg/clumembd_module.py:113
#, python-format
msgid ""
"Failover seconds [%d] must be greater than the 'cluquorumd' Ping Interval "
"minimum (Ping Interval [%d] * minimum tko count [%d] = %d)"
msgstr ""
"√Ėverl√§mningssekunderna [%d] m√•ste vara st√∂rre √§n minsta pingintervallet f√∂r "
"\"cluquorumd\" (pingintervall [%d] √ó minsta tko-antal [%d] = %d)"

#: src/configure/clusterpkg/clumembd_module.py:186
msgid "Illegal Multicast IP Address"
msgstr "Otillåten multicast-IP-adress"

#: src/configure/clusterpkg/clumembd_module.py:192
msgid "When Multicast is selected, Multicast IP Address is required"
msgstr "När multicast är valt krävs en multicast-IP-adress"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. !/usr/bin/python
#. ## "service_being_validated" is either the service being modified, or
#. ## the new service just added.  We want to be sure its key info doesn't
#. ## duplicate an existing service.
#. ## First, create a new "s"ervice entity
#. ## Next, create new "service_ipaddresses" node - child of new "service"
#. !/usr/bin/python
#. ## end MY_INFO
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## 1st, for any options that were not submitted, see if a
#. ## "default" was defined above.  If there was, make the
#. ## option value equal to the default.
#. ## This option was not submitted - assign the default if
#. ## there is one.
#: src/configure/clusterpkg/failoverdomain_module.py:103
msgid "Domain Name is required"
msgstr "Domännamn krävs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## 'name' is key - check for another failoverdomain with same name
#: src/configure/clusterpkg/failoverdomain_module.py:118
msgid "Domain Name already exists"
msgstr "Domännamnet finns redan"

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. None
#. ############################################################################
#. ## Sort the nodes by "id" to ensure that the failover domain
#. ## nodes list that is returned is in the proper order.
#. ## args will come in as "None" from Gui, but will be a dictionary
#. ## if from cluconfig command line.
#. ## First, get a list of services that refer to the
#. ## *old* domain name.  To do that, we need to
#. ##   1. get ownerDocument, and user that to
#. ##   2. get services node, then
#. ##   3. user services node to spin through all existing
#. ##      services.
#. ######################################################
#. Override the ClusterEntity 'set' function so that
#. if a failover domain 'name' is being changed, we
#. can ensure that all services referring to the
#. "old" name get changed to refer to the "new" name.
#. ######################################################
#: src/configure/clusterpkg/failoverdomain_module.py:220
msgid "  failoverdomainnodes:"
msgstr "  överlämningsdomännoder:"

#. !/usr/bin/python
#. ###########################################################################
#. ###################################################################
#. NOTE: In 'validate', WARNING errors must come *Last*, after all
#. FATAL errors.  This is because the command line tool will
#. override WARNING's in favor of doing the add or update,
#. whereas the GUI will present the WARNING in a popup dialog.
#. Since WARNINGs and ERROR's are 'raise'd, editing stops at
#. that point.  So for the command line, we want to be sure
#. that all FATAL checks have already been done, so that if a
#. WARNING is raised, it can be safely overridden sinced we
#. know that only WARNING checks remain.
#. ###################################################################
#. ######################################################################
#. #######################   1. FATAL ERRORS   ##########################
#. ######################################################################
#. ## Check for *required* fields on "add" ###
#. ## Validate "name"
#: src/configure/clusterpkg/failoverdomainnode_module.py:76
msgid "Failover Domain Node Name is required"
msgstr "√Ėverl√§mningsdom√§nnodsnamn kr√§vs"

#. ## 'genericOptionChecks' will raise an error if either the data
#. ## doesn't match the datatype(str or int), or the option is
#. ## not in the list of valid options for this class.
#. ## Validate submitted options ###
#. ## Validate "name"
#: src/configure/clusterpkg/failoverdomainnode_module.py:91
msgid "Failover Domain Node Name already exists"
msgstr "√Ėverl√§mningsdom√§nnodsnamn finns redan"

#. ## Verify that Domain Node Name specified exists as a current
#. ## Member name in the cluster.
#: src/configure/clusterpkg/failoverdomainnode_module.py:104
#, python-format
msgid "Member not found for Failover Domain Node Name '%s'"
msgstr "Medlem hittades inte för överlämningsdomännodsnamnet \"%s\""

#. ######################################################################
#. #########################   2. WARNINGS   ############################
#. ######################################################################
#. No warnings
#. !/usr/bin/python
#. ##################################################################
#. get_list: The list returned by ClusterList.get_list contains
#. ClusterEntity's - It's not sufficient for each to be a
#. ClusterEntity since ClusterEntity's don't have access to the
#. "failoverdomain" functions.  Each failoverdomain in the list returned by
#. this "get_list" must be a *failoverdomain* entity in order to have
#. access to the "failoverdomain" functions.
#. ##################################################################
#. ## "failoverdomain_being_validated" is either the failoverdomain
#. ## being modified, or the new failoverdomain just added.  We want
#. ## to be sure his key info doesn't duplicate an existing failoverdomain.
#: src/configure/clusterpkg/failoverdomains_module.py:69
#, python-format
msgid ""
"Failover Domain delete not allowed - Domain Name '%s' specified by at least "
"one service"
msgstr ""
"Borttagning av överlämningsdomän inte tillåten - domännamnet \"%s\" angivet "
"av minst en tjänst"

#: src/configure/clusterpkg/failoverdomains_module.py:80
#, python-format
msgid ""
"Domain delete not allowed - Domain Name '%s' specified by at least one "
"service"
msgstr ""
"Domänborttagning inte tillåten - domännamnet \"%s\" angivet av minst en "
"tjänst"

#. !/usr/bin/python
#. ## "service_ipaddress_being_validated" is either the service_ipaddress
#. ## being modified, or the new service_ipaddress just added.  We want to
#. ## be sure his key info doesn't duplicate an existing service_ipaddress.
#. !/usr/bin/python
#. create dictionary
#. skip blank lines
#. for iface_key, iface_dict in self.ifConfig.items():
#. print "\nInterface:", iface_key
#. for key, value in iface_dict.items():
#. print "  key=[%s], value=[%s]" % (key, value)
#. discard spaces at the start
#. split on 2 spaces
#. !/usr/bin/python
#. ## TRUE normally
#. ## FALSE for testing
#. ## socket.inet_aton gets an exception on '255.255.255.255', so
#. ## trap it here first, and return the long integer that would
#. ## have resulted from unpack if inet_aton worked properly.
#. print "\nipToNetAndHost:"
#. print "  ipToNetAndHost in ip       =", ip
#. print "  ipToNetAndHost in maskbits =", maskbits
#. print "  ipToNetAndHost n(dottedQuadToNum(ip)) =", n
#. print "  ipToNetAndHost m(makeMask(maskbits))  =", m
#. print
#. print "  ipToNetAndHost host(n & m)   =", host
#. print "  ipToNetAndHost net(n - host) =", net
#. print "  ipToNetAndHost dottedQuad net  =", dottedQuadNet
#. print "  ipToNetAndHost dottedQuad host =", dottedQuadHost
#. print "\nisHostInNet:"
#. print "  isHostInNet in: host_ip           =", host_ip
#. print "  isHostInNet in: net_ip_with_slash =", net_ip_with_slash
#. print
#. print "  isHostInNet net_ip:     ", net_ip
#. print "  isHostInNet mask_length:", mask_length
#. print
#. print "  isHostInNet net_net:    ", net_net
#. print "  isHostInNet net_host:   ", net_host
#. print
#. print "  isHostInNet host_net:   ", host_net
#. print "  isHostInNet host_host:  ", host_host
#. print
#. ## First, if ip is a DNS name, convert it to dotted quad ###
#. ## Convert ip to number that can be 'and'ed.
#. print "TOP: ip          =", submitted_ip
#. print "     ip_num      =", submitted_ip_num
#. print "     netmask     =", submitted_netmask
#. print "     netmask_num =", submitted_netmask_num
#. ## This 'for' just for debugging ###
#. print "interface ips: ip          = [%s]" % iface_ip
#. print "          ips: ip_num      = [%s]" % iface_ip_num
#. print "          ips: netmask     = [%s]" % iface_netmask
#. print "          ips: netmask_num = [%s]" % iface_netmask_num
#. print "          ips: and result  = [%s]" % iface_ip_netmask_and_result
#. ## Netmask *WAS* submitted.  Now 'and' submitted ip with
#. ## submitted netmask, and see if that result matches the
#. ## result of 'and'ing each interface ip with that ip's
#. ## netmask.  If *NO* match, then ERROR.
#. print "Netmask *WAS* submitted!!!!!!!!!!"
#. print "  submitted 'and' = [%s]" % submitted_ip_netmask_and_result
#. print "Netmask was submitted, and match *FOUND* - OK"
#. print "Netmask was submitted, and match *NOT* found - ERROR"
#. ## Netmask was *NOT* submitted.  'and' submitted ip with
#. ## each interface's netmask, and see if result matches the
#. ## result of 'and'ing each interface ip with that ip's
#. ## netmask.  If *NO* match, then ERROR.
#. print "Netmask was *NOT* submitted ------------>"
#. print "  submitted ip num=[%s], iface netmask num=[%s], and=[%s}" % (submitted_ip_num, iface_netmask_num, ip_netmask_and_result)
#. print "     %%% Netmask was *NOT* submitted, and match *FOUND* - OK"
#. print "Netmask was *NOT* submitted, and match *NOT* found - ERROR"
#. !/usr/bin/python
#. ################################################################
#. NOTE: 9/16/2003 HM - commented out 'netbios name' code, since
#. a new Samba package was built with a patch to correct the
#. 'nmbd -n' option from being ignored.  That new Samba
#. package fixes bugzilla 104222.  But I left functions
#. __getHostName
#. __getNetbiosName
#. in place - they just aren't used now.
#.
#. NOTE: 9/12/2003 HM - added code to workaround Samba
#. bugzilla 104222.  The -n option in the 'nmbd' command
#. is being ignored in Samba, so we added a 'netbios name'
#. [global] option.  Added functions:
#. __getHostName
#. __getNetbiosName
#.
#. When bug 104222 is fixed in Samba, we should be able to
#. remove this code.
#. ################################################################
#. ## 'netbios name' was an element of GLOBAL_OPTIONS
#. "netbios name" ]
#: src/configure/clusterpkg/util_smbconf_module.py:55
msgid ""
"\n"
"# Template samba service configuration file - please modify\n"
"# to specify subdirectories and client access permissions.\n"
"# Remember to copy this file over to *ALL* other cluster\n"
"# members.\n"
"#\n"
"# From a cluster perspective, the key fields are:\n"
"# lock directory - must be unique per samba service.\n"
"# bind interfaces only - must be present set to yes.\n"
"# interfaces - must be set to service floating IP address.\n"
"# path - must be the service mountpoint or subdirectory thereof.\n"
"# Refer to the cluster documentation for details.\n"
msgstr ""
"\n"
"# Konfigurationsfilsmall för samba-tjänsten - ändra denna\n"
"# fil för att ange underkataloger och klientåtkomsträttigheter.\n"
"# Kom ihåg att kopiera över denna fil till *ALLA* andra\n"
"# klustermedlemmar.\n"
"#\n"
"# Ur ett klusterperspektiv är de viktigaste fälten:\n"
"# lock directory - måste vara unikt för varje samba-tjänst.\n"
"# bind interfaces only - måste finnas och vara satt till yes (ja).\n"
"# interfaces - måste vara satt till tjänstens flytande IP-adress.\n"
"# path - måste vara tjänstmonteringspunkten eller underkatalog till denna.\n"
"# Se klusterdokumentationen för fler detaljer.\n"

#. used in writeSambaShareFile to
#. determine new, change, or delete
#. ## smb.conf.[sharename] file exists - load it ###
#. skip comments and blank lines
#. ## must be a name = value line ###
#. ## smb.conf.[sharename] file does *NOT* exist - fill
#. ## dictionary with default options
#. print "util_smbconf_module init_file_dict TOP!"
#. options["global"]["netbios name"]         = ""
#. space separate the ip's
#. host *NOT* found
#. host found
#. ips may contain a space separated list of ipaddresses, so
#.
#. 1. get 1st ipaddress
#. 2. if ipaddress has a "/netmask", then get just the ipaddress
#. 3. resolve the ipaddress (ex: myhost.redhat.com)
#. if it resolves, netbios_name = 1st element of hostname ('myhost')
#. else netbios_name = ipaddress
#. 1. get 1st ipaddress (/netmask)
#. 2. if ipaddress has a "/netmask", then get just the ipaddress
#. 3. resolve the ipaddress (ex: myhost.redhat.com)
#. if it resolves, netbios_name = 1st element of hostname ('myhost')
#. else netbios_name = ipaddress
#. netbios_name = self.__getNetbiosName(ipaddresses)
#. self.share_options["global"]["netbios name"] = netbios_name
#. ## Write out file ###
#. ## print [global] options in order ###
#. ## print [sharename] options in order ###
#. ## Invoke __init__ now to reinitialize object data, since
#. ## share is gone, but device still exists.
#. !/usr/bin/python
#. For a filesystem that runs over 1 line -
#. subsequent lines have null values in
#. columns already presented on the previous
#. line..
#. processed all 6 tokens
#. !/usr/bin/python
#. ## File doesn't exist, so open it for write ###
#: src/configure/clusterpkg/util_lock_module.py:40
#, python-format
msgid ""
"Error: %s is already running under process %s, and has the configuration "
"file locked"
msgstr "Fel: %s kör redan under process %s och har låst konfigurationsfilen"

#. !/usr/bin/python
#. Do this 1st, to prevent --name from being stripped
#. by 'import gtk' in cluster_functions.
#. ## Global variables ###
#. ## Parse the cluster.xml into DOM nodes, and lock the cluster.xml
#. ## Another process already has /etc/cluster.xml locked
#. ## Check Shared State ###
#. ## Shared Storage was previously initialized and is responding
#. ## fine.
#. ## Shared Storage is NOT responding - maybe it hasn't been
#. ## initialized yet.
#. if clu.created_config:
#. ## Since shared storage initialization failed, remove default
#. ## config file that was created.
#. ## Shared Storage was initialized successfully ###
#: src/configure/redhat-config-cluster-cmd.py:57
#, python-format
msgid ""
"\n"
"*** Configuration file %s was created."
msgstr ""
"\n"
"*** Konfigurationsfilen %s skapades."

#: src/configure/redhat-config-cluster-cmd.py:59
msgid ""
"\n"
"*** Shared Storage was initialized successfully.\n"
"\n"
"===================================================="
msgstr ""
"\n"
"*** Delade lagret initierades utan problem.\n"
"\n"
"===================================================="

#. ## attributes for the cluster as a whole
#: src/configure/redhat-config-cluster-cmd.py:70
msgid "Error: config_viewnumber cannot be changed"
msgstr "Fel: config_viewnumber kan inte ändras"

#. ## attributes for the cluster's Shared State
#. print "redhat-config-cluster-cmd modify_sharedstate TOP!"
#: src/configure/redhat-config-cluster-cmd.py:76
#: src/configure/redhat-config-cluster-cmd.py:89
#: src/configure/redhat-config-cluster-cmd.py:126
#: src/configure/redhat-config-cluster-cmd.py:149
#: src/configure/redhat-config-cluster-cmd.py:160
#: src/configure/redhat-config-cluster-cmd.py:170
#: src/configure/redhat-config-cluster-cmd.py:180
#: src/configure/redhat-config-cluster-cmd.py:194
#: src/configure/redhat-config-cluster-cmd.py:210
#: src/configure/redhat-config-cluster-cmd.py:253
#: src/configure/redhat-config-cluster-cmd.py:269
#: src/configure/redhat-config-cluster-cmd.py:337
#: src/configure/redhat-config-cluster-cmd.py:346
#: src/configure/redhat-config-cluster-cmd.py:386
#: src/configure/redhat-config-cluster-cmd.py:402
#: src/configure/redhat-config-cluster-cmd.py:414
#: src/configure/redhat-config-cluster-cmd.py:442
#: src/configure/redhat-config-cluster-cmd.py:481
#: src/configure/redhat-config-cluster-cmd.py:565
#: src/configure/redhat-config-cluster-cmd.py:590
#: src/configure/redhat-config-cluster-cmd.py:607
#: src/configure/redhat-config-cluster-cmd.py:679
#: src/configure/redhat-config-cluster-cmd.py:695
#: src/configure/redhat-config-cluster-cmd.py:769
#: src/configure/redhat-config-cluster-cmd.py:831
#: src/configure/redhat-config-cluster-cmd.py:843
#: src/configure/redhat-config-cluster-cmd.py:901
#: src/configure/redhat-config-cluster-cmd.py:918
#: src/configure/redhat-config-cluster-cmd.py:956
#: src/configure/redhat-config-cluster-cmd.py:972
#: src/configure/redhat-config-cluster-cmd.py:1008
msgid "Error:"
msgstr "Fel:"

#: src/configure/redhat-config-cluster-cmd.py:200
#: src/configure/redhat-config-cluster-cmd.py:274
#: src/configure/redhat-config-cluster-cmd.py:392
#: src/configure/redhat-config-cluster-cmd.py:486
#: src/configure/redhat-config-cluster-cmd.py:613
#: src/configure/redhat-config-cluster-cmd.py:707
#: src/configure/redhat-config-cluster-cmd.py:848
#: src/configure/redhat-config-cluster-cmd.py:923
#: src/configure/redhat-config-cluster-cmd.py:977
#, python-format
msgid "Error: Option \"%s\" requires \"%s\""
msgstr "Fel: Flaggan \"%s\" kräver \"%s\""

#. print "redhat-config-cluster-cmd modify_member TOP"
#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:208
#: src/configure/redhat-config-cluster-cmd.py:224
#, python-format
msgid "Error: Member '%s' does not exist in cluster"
msgstr "Fel: Medlemmen \"%s\" finns inte i klustret"

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:281
#, python-format
msgid "Error: Powercontroller '%s' does not exist in Member '%s'"
msgstr "Fel: Nätaggregatet \"%s\" finns redan i medlemmen \"%s\""

#. ## test to see if valid ip address ###
#. ## Valid dns name will fall in here, so see if that's
#. ## what it is.
#. ## User passed in a 'powercontroller=' with a value containing
#. ## a valid ip address, but no port.
#: src/configure/redhat-config-cluster-cmd.py:314
msgid ""
"Error: --powercontroller value is missing a port number - value must be in "
"format '--powercontroller=ip,port'"
msgstr ""
"Fel: --powercontroller-värdet saknar ett portnummer - värdet måste vara i "
"formatet \"--powercontroller=ip,port\""

#: src/configure/redhat-config-cluster-cmd.py:400
#, python-format
msgid "Error: Failover Domain '%s' does not exist in cluster"
msgstr "Fel: √Ėverl√§mningsdom√§nen \"%s\" finns inte i klustret"

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:493
#, python-format
msgid "Error: Failover Domain Node '%s' does not exist in Failover Domain '%s'"
msgstr ""
"Fel: √Ėverl√§mningsdom√§nnoden \"%s\" finns inte i √∂verl√§mningsdom√§nen \"%s\""

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:620
#: src/configure/redhat-config-cluster-cmd.py:631
#, python-format
msgid "Error: Service '%s' does not exist in cluster"
msgstr "Fel: Tjänsten \"%s\" finns inte i klustret"

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:714
#, python-format
msgid "Error: Device '%s' does not exist in Service '%s'"
msgstr "Fel: Enheten \"%s\" finns inte i tjänsten \"%s\""

#: src/configure/redhat-config-cluster-cmd.py:727
#, python-format
msgid "Error: Device \"%s\" does not exist for Service \"%s\""
msgstr "Fel: Enheten \"%s\" finns inte för tjänsten \"%s\""

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:855
#, python-format
msgid "Error: NFS Export '%s' does not exist in Device '%s'"
msgstr "Fel: NFS-exporten \"%s\" finns inte i enheten \"%s\""

#: src/configure/redhat-config-cluster-cmd.py:868
#, python-format
msgid "Error: NFS Export \"%s\" does not exist for Device \"%s\""
msgstr "Fel: NFS-exporten \"%s\" finns inte för enheten \"%s\""

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:930
#, python-format
msgid ""
"Error: NFS Export Client '%s' does not exist for NFS Export Directory '%s'"
msgstr ""
"Fel: NFS-exportklienten \"%s\" finns inte för NFS-exportkatalogen \"%s\""

#: src/configure/redhat-config-cluster-cmd.py:943
#, python-format
msgid "Error: Client \"%s\" does not exist for NFS Export \"%s\""
msgstr "Fel: Klienten \"%s\" finns inte för NFS-exporten \"%s\""

#. print _("Error:"), e.getMessage()
#: src/configure/redhat-config-cluster-cmd.py:984
#, python-format
msgid "Error: IP Address '%s' does not exist in service '%s'"
msgstr "Fel: IP-adressen \"%s\" finns inte i tjänsten \"%s\""

#: src/configure/redhat-config-cluster-cmd.py:997
#, python-format
msgid "Error: IP Address \"%s\" does not exist for Service \"%s\""
msgstr "Fel: IP-adressen \"%s\" finns inte för tjänsten \"%s\""

#. share_list = []
#. for service in services:
#. devices = service.get_devices()
#. for device in devices:
#. if device.get("sharename") != "":
#. share_list.append(device.get("sharename"))
#. return share_list
#. ## Parse the cluster.xml into DOM nodes, and lock the cluster.xml
#. Used to see if data
#. changed when user quits.
#. ## constants for notebook pages ###
#. Main window
#. delete-event allows you to click the 'X'(upper right) to close
#. the window and stop the application.  It also allows you to
#. click on the down arrow(upper left) to close and stop the app.
#. ##################################
#. ## Populate Cluster attributes ###
#. ##################################
#. get general cluster attributes
#. #######################################
#. ## Create Daemon Properties Dialog  ###
#. #######################################
#. ################################
#. ## Populate Members Treeview ###
#. ################################
#. #################################
#. ## Populate Services Treeview ###
#. #################################
#. #########################################
#. ## Populate Failover Domains Listview ###
#. #########################################
#. #########################################################
#. ## Save device 'share' (samba) info, so we can compare
#. ## at the end.  In on_save_activiate, if devices or
#. ## samba shares were deleted, we must then delete the
#. ## /etc/samba/smb.conf.sharename files.
#. #########################################################
#. self.share_list_before = sambaSharesSnapshot(self.clu)
#. ###################################
#. ## Save NFS export druid dialog ###
#. ###################################
#. #####################################
#. ## Save samba export druid dialog ###
#. #####################################
#. none of cluster options changed - just return
#. ## At least 1 cluster option changed ###
#. ## Invoke service 'validate' to validate all options
#. Don't refresh - leave bad values
#. on screen.
#: src/configure/cluster-config.py:261 src/configure/clientDialog.py:72
#: src/configure/daemonPropDialog.py:254 src/configure/daemonPropDialog.py:279
#: src/configure/deviceDialog.py:130 src/configure/failoverdomainDialog.py:98
#: src/configure/serviceDialog.py:89 src/configure/sharedstateDialog.py:116
#, python-format
msgid ""
"%s\n"
"\n"
"Press 'OK' to Continue, or  'Cancel' to Exit."
msgstr ""
"%s\n"
"\n"
"Tryck \"OK\" för att fortsätta eller \"Avbryt\" för att avsluta."

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. ## Validation passed on all fields - now "set" each by calling
#. ## the ClusterEntity "set".
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected client ###
#: src/configure/clientDialog.py:130
#, python-format
msgid "%s  <client>"
msgstr "%s  <klient>"

#. Client key field is "name"
#. ## Must be an "add" ###
#. ## model.append needs the "iter" of the *parent* of the
#. ## thing that is being appended.
#. parent_iter = self.model.iter_parent(iter)
#. ## rc was gtk.RESPONSE_REJECT:
#. ##   1. User got a FATAL error and clicked 'OK' (only option)
#. ##      so display same dialog again,
#. ##        OR
#. ##   2. User got a WARNING and clicked 'Cancel' to go back
#. ##      and re-enter.
#. !/usr/bin/python
#. # daemonPropDialog.py
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. ###########################################################################
#. NOTES:
#. ======
#. 05/20/2003 HM - Commented out all code referring to 'clupowerd', since
#. clupowerd has been removed from the daemonPropDialog
#. in glade.
#. 03/20/2003 HM - Commented out all code referring to Stability ('strict'
#. and 'adaptive', since we've decided to turn both on
#. by default and not expose them to users.
#. ###########################################################################
#. WARNING
#. #
#. # I18N
#. #
#. ## FAILOVER_SECONDS key is the failover seconds
#. ##                  value is "tko_count|interval" combination that equals
#. ##                     the failover seconds(when multiplied together.  The
#. ##                     interval is in microseconds.
#. ## STABILITY key is the stability scale units(1-3)
#. ##           value is the 'strict' and 'adaptive' fields, and whether
#. ##           or not(0 or 1) they are on.
#. ## If tko_count and interval combo don't exist in FAILOVER_SECONDS,
#. ## then default to 1st(slowest) FAILOVER_SECONDS element.
#. ## If strict and adaptive combo doesn't exist in STABILITY,
#. ## then default to highest STABILITY element.
#. get general cluster attributes
#. self.clupowerd  = clu.getclupowerd()
#: src/configure/daemonPropDialog.py:158
#, python-format
msgid "%2d second failover"
msgstr "%2d andra överlämning"

#. ## Copy the new values from the Gui widgets into the DOM xml ###
#. stability_scale_units = int(self.glade_xml.get_widget('clumembd_stability_hscale').get_value())
#. (clumembd_strict, clumembd_adaptive) = getStabilityStrictAndAdaptive(stability_scale_units)
#. #########################################
#. clupowerd_loglevel = self.glade_xml.get_widget('clupowerd_loglevel_optionmenu').get_history()
#. #########################################
#. #########################################
#. #########################################
#. #########################################
#. "strict"     : clumembd_strict,
#. "adaptive"   : clumembd_adaptive,
#. clupowerd_options = { "loglevel"  : clupowerd_loglevel }
#. ## Invoke service 'validate' to validate all options
#: src/configure/daemonPropDialog.py:253
#, python-format
msgid ""
"Ping Interval * %d must be less than Failover time.  Click 'OK' to change "
"'cluquorumd' Ping Interval to %d"
msgstr ""
"Pingintervall × %d måste vara mindre än överlämningstiden. Klicka på \"OK\" "
"för att ändra pingintervallet för \"cluquorumd\" till %d"

#. Don't refresh - leave bad values
#. on screen.
#. ## Validation passed on all fields - now "set" each by calling
#. ## the ClusterEntity "set".
#. self.clumembd.set("strict", clumembd_strict)
#. self.clumembd.set("adaptive", clumembd_adaptive)
#. self.clupowerd.set("loglevel", clupowerd_loglevel)
#. ## clumembd 'multicast' *IS* checked
#. ## clumembd 'multicast' is *NOT* checked
#. ## Ping Interval is selected ###
#. ## Tiebreaker IP is selected ###
#. ## Create gtk Menu of loglevels that will be used to create
#. ## loglevel optionmenu's for each of the daemons.
#. ## Now connect the buttons to the functions ###
#. ## clumembd ###
#. ## Load 'clumembd' Speed fields to screen ###
#. ## Load 'clumembd' Stability fields to screen ###
#. strict   = self.clumembd.get("strict")
#. adaptive = self.clumembd.get("adaptive")
#. (label_text, stability_scale_units) = getStabilityLabelAndUnits(strict, adaptive)
#. stability_scale_widget = self.glade_xml.get_widget('clumembd_stability_hscale')
#. stability_scale_widget.connect("value_changed", self.on_stability_value_changed)
#. self.stability_label = self.glade_xml.get_widget('clumembd_stability_text_label')
#. self.stability_label.set_text(label_text)
#. stability_scale_widget.set_value(stability_scale_units)
#. ## Load 'clumembd' remaining fields to screen ###
#. default is TRUE (or yes)
#. default is TRUE (or yes)
#. ## Load 'clupowerd' options to screen ###
#. self.build_optionmenu(self.clupowerd)
#. ## Load 'cluquorumd' options to screen ###
#. ## Figure out how many members have been defined ###
#. ownerDocument = self.cluquorumd.node.ownerDocument
#. members_node = ownerDocument.getElementsByTagName("members")[0]
#. from clusterpkg.members_module import members
#. members_entity = members(members_node)
#. members_list = members_entity.get_list()
#. count_members = len(members_list)
#: src/configure/daemonPropDialog.py:436
msgid "Cluster has 2 members - Network Tiebreaker IP Address is recommended"
msgstr ""
"Klustret har 2 medlemmar - IP-adress för nätverks-tiebreaker rekommenderas"

#: src/configure/daemonPropDialog.py:458
msgid "Cluster has 4 members - Network Tiebreaker IP Address is required"
msgstr "Klustret har 4 medlemmar - IP-adress för nätverks-tiebreaker-IP krävs"

#: src/configure/daemonPropDialog.py:470
#, python-format
msgid ""
"Cluster has %s members:\n"
"Disk Tiebreaker and Network Tiebreaker will not be used."
msgstr ""
"Klustret har %s medlemmar:\n"
"Disk-tiebreaker och nätverks-tiebraker kommer inte att användas."

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected device ###
#. ## parent is a "serviceItem" instance ###
#: src/configure/deviceDialog.py:217
#, python-format
msgid "%s  <device>"
msgstr "%s  <enhet>"

#. ## set up the treeview to do multiple selection ###
#. ## "get" the new values from the Gui widgets ###
#. ## Now connect the buttons to the functions ###
#. ## Populate the screen widgets ###
#. ## find members currently in XML (in memory) ###
#. ## To get current list of members, need to get DOM XML
#. ## ownerDocument(root DOM XML node), so we can then
#. ## find(using getElementsByTagName) the 'members' node.
#. ## need this model.clear ###
#. ## Only load nodes to the list screen that were not
#. ## previously selected.
#. ## parent is failoverdomainnodesListview object ###
#. failoverdomainnode key field is "name"
#. #
#. # I18N
#. #
#. print "failoverdomainnodesListview __init__ TOP:"
#. ## This is a 'List', so use 'ListStore' (not TreeStore) ###
#: src/configure/failoverdomainnodesListview.py:32
msgid "Node"
msgstr "Nod"

#: src/configure/failoverdomainnodesListview.py:78
#, python-format
msgid "Are you sure you want to remove '%s'?"
msgstr "√Ąr du s√§ker p√• att du vill ta bort \"%s\"?"

#. ## iter == None, which means at the top level, adding a 'failoverdomain'
#: src/configure/failoverdomainsListview.py:85
#: src/configure/membersTreeview.py:106 src/configure/servicesTreeview.py:173
#, python-format
msgid "Are you sure you want to remove %s '%s'?"
msgstr "√Ąr du s√§ker p√• att du vill ta bort %s \"%s\"?"

#. ## remove "item" from DOM XML ###
#. ## remove "iter" from Gui ###
#. !/usr/bin/python
#. # memberDialog.py
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. #
#. # I18N
#. #
#. gtk.Dialog):
#. Reset GUI widget values back to what they were - in this dialog
#. one or more widgets could have been set to illegal values, which
#. they would still have if we didn't reset them here.
#. ## "get" the new values from the Gui widgets ###
#. ## Invoke member 'validate' to validate all options
#. print "memberDialog check 'except': in FATAL now!"
#. Don't refresh - leave bad values
#. on screen.
#: src/configure/memberDialog.py:79 src/configure/nfsexportDialog.py:71
#: src/configure/powercontrollerDialog.py:118
#: src/configure/serviceIPAddressDialog.py:79
#, python-format
msgid ""
"%s\n"
"\n"
"Press 'OK' to Continue, or 'Cancel' to Exit."
msgstr ""
"%s\n"
"\n"
"Tryck \"OK\" för att fortsätta eller \"Avbryt\" för att avsluta."

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. ## Validation passed on all fields - now "set" each by calling
#. ## the ClusterEntity "set".
#. for "validate"
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected service ###
#. ## find failover domains currently in XML (in memory) ###
#. ## To get current list of failover domains, need to get DOM XML
#. ## ownerDocument(root DOM XML node), so we can then
#. ## find(using getElementsByTagName) the 'failoverdomains' node.
#. ## parent is "servicesTreeview" instance ###
#: src/configure/serviceDialog.py:191
#, python-format
msgid "%s  <service>"
msgstr "%s  <tjänst>"

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. ## Validation passed - now 'set' DOM XML options ###
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected device ###
#: src/configure/nfsexportDialog.py:123
#, python-format
msgid "%s  <nfsexport>"
msgstr "%s  <nfsexport>"

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. ## Validation passed - now 'set' options ###
#. ## If this was previously a 'Network' powercontroller, then
#. ## remove the old network options.
#. ## Must be network powercontroller ###
#. ## If this was previously a 'Serial' powercontroller, then
#. ## remove the old serial options.
#. ####################################################################
#. get_other_member_name:
#. Given a powercontroller, that is a child of a member, find
#. the name of the *other* member.  This can only be done for
#. serial powercontrollers that are valid only for 2-node
#. clusters.
#. ####################################################################
#. ## 'Serial' selected - 1. unprotect 'Serial' fields ###
#. set Serial Device *Owner* to name of *other* member -
#. *NOT* the name of the member that this powercontroller
#. is a child of.
#. ## 'Serial' selected - 2. protect 'Network' fields ###
#. ## 'Network' selected - 1. unprotect 'Network' fields ###
#. ## 'Network' selected - 2. protect 'Serial' fields ###
#. ## When loading screen for the 1st time, we invoke radio button
#. ## set_active to set one of the radio buttons to "on", which fires
#. ## this function.  When that happens(firsttime) just return.
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected
#. ## powercontroller.
#. ## On "add", if 2 members in cluster, default to 'Serial'
#. set Serial Device *Owner* to name of *other* member -
#. *NOT* the name of the member that this powercontroller
#. is a child of.
#. ## 'add', but count_members >2, so default to 'Network'
#. #######################
#. ## Must be "modify" ###
#. #######################
#. set Serial radiobutton
#. set Serial Type combo box
#. set Serial Device
#. set Serial Port combo box
#. set Serial Device *Owner* to name of *other* member -
#. *NOT* the name of the member that this powercontroller
#. is a child of.
#. set Network options to null
#. User must have chosen "Network" radiobutton
#. set Network Type combo box
#. set Serial options to null
#. ## parent is a 'memberItem'
#: src/configure/powercontrollerDialog.py:385
#, python-format
msgid "%s: device=%s <serial powercontroller>"
msgstr "%s: device=%s <seriellt nätaggregat>"

#: src/configure/powercontrollerDialog.py:391
#, python-format
msgid "%s: ip=%s, port=%s <network powercontroller>"
msgstr "%s: ip=%s, port=%s <nätverksnätaggregat>"

#. ## Want to add an item at the same level as the currently
#. ## selected item.  So call item.add with the iter of the
#. ## current iter's parent, since that parent will also
#. ## be the parent of the item being added.
#. print "servicesTreeview add_child TOP"
#. ## Since the current item will be the parent of the item being
#. ## added, pass the current item's iter to item.add_child.
#: src/configure/servicesTreeview.py:161
#, python-format
msgid "Service '%s' must be disabled before '%s' delete allowed"
msgstr "Tjänsten \"%s\" måste inaktiveras innan borttagning av \"%s\" tillåts"

#. Don't refresh - leave bad values
#. on screen.
#. ## Validation passed - now 'set' options ###
#. ## If sharestate was previously 'sfs', then delete sfs options ###
#. ## If sharestate was previously 'raw', then delete raw options ###
#. ## 'Raw' selected - 1. unprotect 'Raw' fields and load  ###
#. ## 'Raw' selected - 2. protect 'SFS' fields and init to null ###
#. ## 'SFS' selected - 1. unprotect 'SFS' fields and load ###
#. ## 'SFS' selected - 2. protect 'Raw' fields and init to null ###
#. ## When loading screen for the 1st time, we invoke radio button
#. ## set_active to set one of the radio buttons to "on", which fires
#. ## this function.  When that happens(firsttime) just return.
#. !/usr/bin/python
#. # deviceOrServiceIPAddressDialog.py
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. #
#. # I18N
#. #
#. (gtk.Dialog):
#. ## "get" the new values from the Gui widgets ###
#. ## Connect the buttons to the functions ###
#. !/usr/bin/python
#. # serviceIPAddressDialog.py
#. # This program is free software; you can redistribute it and/or modify
#. # it under the terms of the GNU General Public License as published by
#. # the Free Software Foundation; either version 2 of the License, or
#. # (at your option) any later version.
#. # This program 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 General Public License for more details.
#. # You should have received a copy of the GNU General Public License
#. # along with this program; if not, write to the Free Software
#. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#. #
#. # I18N
#. #
#. (gtk.Dialog):
#. ## "get" the new values from the Gui widgets ###
#. ## If user didn't update any fields, then just return.
#. Don't refresh - leave bad values
#. on screen.
#. ## WARNING because IP address gethostbyname(DNS lookup)
#. ## failed.
#: src/configure/serviceIPAddressDialog.py:77
#, python-format
msgid ""
"%s\n"
"\n"
"Press 'OK' to Accept, or 'Cancel' to change it."
msgstr ""
"%s\n"
"\n"
"Tryck \"OK\" för att godtag eller \"Avbryt\" för ändra."

#. Don't refresh - leave bad values
#. on screen.
#. Need to differentiate this
#. 'Cancel' from the main Dialog
#. 'Cancel', so make this rc
#. gtk.RESPONSE_REJECT.
#. print "AAAAAAAAAAAAA - rc =", rc
#. print "   gtk.RESPONSE_OK =", gtk.RESPONSE_OK
#. print "   gtk.RESPONSE_CANCEL =", gtk.RESPONSE_CANCEL
#. print "   gtk.RESPONSE_REJECT =", gtk.RESPONSE_REJECT
#. ## Validation passed - now 'set' DOM XML options ###
#. ## Now connect the buttons to the functions ###
#. ## Load screen widgets with data from XML DOM for selected
#. ## service_ipaddress.
#: src/configure/serviceIPAddressDialog.py:150
#, python-format
msgid "%s  <service ip address>"
msgstr "%s  <tjänste-ip-adress>"

#: src/configure/nfsExportDruid.py:99 src/configure/smbShareDruid.py:83
msgid "Mountpoint"
msgstr "Monteringspunkt"

#. #########################
#. ## Last Page - Finish ###
#. #########################
#. ############################################################
#. ## NOTE: if radiobutton is "connect"ed to a function, then
#. ##       invoking the radiobutton's 'set_active' will fire
#. ##       the function.
#. ############################################################
#. print 'on_svcRadiobuttonChanged TOP'
#. ## 'Existing Service' was selected, so
#. ##   * turn on 'Existing'
#. ##   * turn off 'New'
#. ## 'New Service' was selected, so
#. ##   * turn on 'New'
#. ##   * turn off 'Existing'
#. print "deviceRadiobuttonChanged TOP now!"
#. print "  device existing"
#. ## 'Existing Device' was selected, so
#. ##   * turn on 'Existing'
#. ##   * turn off 'New'
#. print "  device new"
#. ## 'New Device' was selected, so
#. ##   * turn on 'New'
#. ##   * turn off 'Existing'
#. print "on_deviceRadiobuttonChanged TOP now!"
#. print "nfsExportDruid 'cancel' now!"
#. print "nfsExportDruid 'run' now!"
#. don't load service if it doesn't have an ip
#. ## initialize screen fields ###
#: src/configure/nfsExportDruid.py:208
msgid "You must enter a directory name"
msgstr "Du måste ange ett katalognamn"

#: src/configure/nfsExportDruid.py:211
msgid "Directory Name must start with a slash"
msgstr "Katalognamnet måste börja med ett snedstreck"

#. if not os.path.isdir(dirname):
#. errorMessage(_("Name specified is not a directory"))
#. return TRUE
#. ## Verify that directory name isn't a dup of existing ###
#: src/configure/nfsExportDruid.py:243
msgid "NFS Export directory already exists in cluster"
msgstr "NFS-exportkatalogen finns redan i klustret"

#. #################################################################
#. ## NFS Export Directory Page done - now prep for Service Page ###
#. #################################################################
#: src/configure/nfsExportDruid.py:272 src/configure/smbShareDruid.py:203
msgid "Service IP Address already exists in cluster"
msgstr "Tjänste-IP-adressen finns redan i klustret"

#. ## This whole section copied from service_ipaddress_module.py ###
#: src/configure/nfsExportDruid.py:277 src/configure/smbShareDruid.py:208
msgid "Service IP Address not found in DNS"
msgstr "Tjänste-IP-adressen finns inte i DNS"

#: src/configure/nfsExportDruid.py:283 src/configure/smbShareDruid.py:214
msgid "Service IP Address not on same network as this host"
msgstr "Tjänste-IP-adressen finns inte på samma nätverk som denna värd"

#: src/configure/nfsExportDruid.py:287 src/configure/smbShareDruid.py:218
msgid "Service IP Address already in use on network"
msgstr "Tjänste-IP-adressen används redan på nätverket"

#. Passed validation
#. print "on_ServicePage_next TOP now!"
#. ## 'Existing Service' selected ###
#: src/configure/nfsExportDruid.py:303 src/configure/smbShareDruid.py:230
msgid ""
"When 'Existing Service' is selected, you must select one of the existing "
"services"
msgstr ""
"När \"Befintlig tjänst\" är valt måste du välja en av de befintliga "
"tjänsterna"

#. ## Set Device Model before display Device page ###
#. ## Export directory *IS* under the device mountpoint, so
#. ## load this device into 'Existing Device' model
#. ## 'New Service' selected ###
#: src/configure/nfsExportDruid.py:341 src/configure/smbShareDruid.py:266
msgid ""
"When 'New Service' is selected, you must enter a name for the new service"
msgstr "När \"Ny tjänst\" är valt måste du ange ett namn för den nya tjänsten"

#: src/configure/nfsExportDruid.py:344 src/configure/smbShareDruid.py:269
msgid ""
"When 'New Service' is selected, you must enter an ip address for the new "
"service"
msgstr ""
"När \"Ny tjänst\" är valt måste du ange en ip-adress för den nya tjänsten"

#. ## Verify that the new service name does not already exist ###
#: src/configure/nfsExportDruid.py:350 src/configure/smbShareDruid.py:275
msgid "New Service name already exists"
msgstr "Nya tjänstenamnet finns redan"

#. ## Validate IP Address ###
#. return to druid
#. ###################################################
#. ## Service Page done - now prep for Device Page ###
#. ###################################################
#. if self.first_time_device:
#. pass
#. ## Enable choice of existing 'device' from that
#. ## existing service
#. ## Disable existing device - only enable new device ###
#: src/configure/nfsExportDruid.py:381 src/configure/smbShareDruid.py:291
#, python-format
msgid "Existing Service '%s' was selected"
msgstr "Befintliga tjänsten \"%s\" valdes"

#. ## The existing service DOES have devices defined.
#. ## Enable choice of existing 'device' from that existing svc
#. ## The existing service selected has NO devices defined.
#. ## So treat it like the "New" radiobutton was selected.
#. ## User added a new service, so only allow user to
#. ## *add a new* device
#: src/configure/nfsExportDruid.py:384 src/configure/smbShareDruid.py:312
#, python-format
msgid "New Service '%s' was specified"
msgstr "Nya tjänsten \"%s\" angavs"

#. self.existDeviceRadiobutton.set_active(FALSE)
#. ## 'Existing Device' selected ###
#: src/configure/nfsExportDruid.py:398 src/configure/smbShareDruid.py:331
msgid ""
"When 'Existing Device' is selected, you must select one of the existing "
"devices"
msgstr ""
"När \"Befintliga enheter\" är valt måste du välja en av de befintliga "
"enheterna"

#. ## Verify that the export directory is *underneath* the mountpoint
#. ##
#. ## This check shouldn't even be necessary for *existing*
#. ## devices, since an existing device presented in the
#. ## selection list should only be presented in that list
#. ## if the export directory *is* under the device mountpoint.
#: src/configure/nfsExportDruid.py:411 src/configure/nfsExportDruid.py:439
msgid "Export Directory must be underneath device mountpoint"
msgstr "Exportkatalogen måste vara under enhetsmonteringspunkten"

#. ## 'New Device' selected ###
#: src/configure/nfsExportDruid.py:422 src/configure/smbShareDruid.py:348
msgid "Special File name is required for a new device"
msgstr "Specialfilnamn krävs för en ny enhet"

#: src/configure/nfsExportDruid.py:434 src/configure/smbShareDruid.py:360
msgid "Device Mountpoint is required for a new device"
msgstr "Enhetsmonteringspunkt krävs för en ny enhet"

#. if not stat.S_ISDIR(mode):
#. errorMessage(_("Mount Point must be a directory"))
#. return TRUE
#. ## Verify that neither
#. ##   * the new device name, nor
#. ##   * the new device mountpoint
#. ## already exists in the cluster.
#: src/configure/nfsExportDruid.py:464 src/configure/smbShareDruid.py:384
msgid "Device Special File already exists in cluster"
msgstr "Enhetsspecialfilen finns redan i klustret"

#: src/configure/nfsExportDruid.py:469 src/configure/smbShareDruid.py:389
msgid "Device mountpoint already exists in cluster"
msgstr "Enhetsmonteringspunkten finns redan i klustret"

#: src/configure/smbShareDruid.py:337
msgid ""
"Selected Device already contains a Samba Share Name - please select a "
"different device"
msgstr ""
"Vald enhet innehåller redan ett Samba-utdelningsnamn - välj en annan enhet"

#. ## New device, so set sharename to null ###
#: src/configure/smbShareDruid.py:400
msgid "Share Name is required"
msgstr "Utdelningsnamn krävs"

#. return to druid
#: src/configure/smbShareDruid.py:406
msgid "Share Name may not contain spaces"
msgstr "Utdelningsnamn får inte innehålla blanksteg"

#. return to druid
#. ###########################################################
#. ## Done with Share Name Page - Now prep for Finish Page ###
#. ###########################################################
#. ## We know that self.sharename is not null ###
#. ## sharename being added ###
#: src/configure/smbShareDruid.py:433
#, python-format
msgid ""
"\n"
"When you press 'Apply' below, and then\n"
"File => Save on the menu, samba configuration\n"
"file\n"
"\n"
"    %s\n"
"\n"
"will be created ***ON THIS MEMBER ONLY***.\n"
"\n"
"Remember to copy the samba configuration file\n"
"to *ALL* other cluster members.\n"
msgstr ""
"\n"
"När du trycker \"Verkställ\" nedan, och\n"
"sedan Arkiv => Spara i menyn, kommer\n"
"samba-konfigurationsfilen\n"
"\n"
"    %s\n"
"\n"
"att skapas ***ENDAST P√Ö DENNA MEDLEM***.\n"
"\n"
"Kom ihåg att kopiera samba-konfigurationsfilen\n"
"till *ALLA* andra klustermedlemmar.\n"

#. ## sharename being changed ###
#: src/configure/smbShareDruid.py:450
#, python-format
msgid ""
"\n"
"When you press 'Apply' below, and then\n"
"File => Save on the menu, the following\n"
"will occur:\n"
"\n"
"  1. file '%s'\n"
"     will be renamed to '%s'\n"
"\n"
"  2. inside that file, all occurrences of\n"
"     '%s' will be changed to '%s'\n"
"\n"
"These changes will be made ***ON THIS MEMBER ONLY***.\n"
"\n"
"Remember to copy the new samba configuration file\n"
"to, and remove the old samba configuration file from,\n"
" *ALL* other cluster members.\n"
msgstr ""
"\n"
"När du trycker \"Verkställ\" nedan, och\n"
"sedan Arkiv => Spara i menyn, kommer\n"
"följande att ske:\n"
"\n"
"  1. filen \"%s\"\n"
"     kommer att döpas om till \"%s\"\n"
"\n"
"  2. inuti den filen kommer alla\n"
"     förekomster av \"%s\" att ändras\n"
"     till \"%s\"\n"
"\n"
"Dessa ändringar kommer att göras ***ENDAST PÅ DENNA MEDLEM***.\n"
"\n"
"Kom ihåg att kopiera den nya samba-konfigurationsfilen\n"
"till, och ta bort den gamla samba-konfigurationen från,\n"
" *ALLA* andra klustermedlemmar.\n"

#. print "\nSmb Druid Finish now"
#. print "--------------------"
#. print "  Svc name      = [%s]" % self.service_name
#. print "  Svc existing  = [%s]" % self.existing_service
#. print "  Svc new       = [%s]" % self.new_service
#. print
#. print "  Dev name      = [%s]" % self.device_name
#. print "  Dev mount     = [%s]" % self.device_mountpoint
#. print "  Dev sharename = [%s]" % self.sharename
#. for "validate"
#. ## do 'df [smbexport dir]' to get device ###
#. dir_df = cluDF(self.dirname)
#. filesystem = dir_df.get_filesystem()
#. mountpoint = dir_df.get_mountpoint()
#. print "\ndf filesystem=[%s]" % filesystem
#. print "\ndf mountpoint=[%s]" % mountpoint
#. ## Now add the SMB Sharename to the Device ###
#. !/usr/bin/python
#. ## powercontroller types can be UPPER case in old cluster.conf, so
#. ## convert them to lower case here.
#.
#. Single Network Power Switch.
#.
#.
#. Multiple network power switches.
#.
#.
#. added 8/25/2003 HM - convert 'apcplus' to 'apcmaster'
#.
#.
#. The 'login' was used as the /dev/ttyS* device in the old version
#. of RHCM.  Filter out "unused" things...
#.
#.
#. The 'power switch port name' was stored as a member attribute in
#. the old version of RHCM.
#.
#.
#. Use the first member's quorum partition definitions.
#. Complain if the quorum partition definitions do not match.
#.
#: src/convert/cluster-convert.py:107
#, python-format
msgid "Warning: Raw Primary Partition mismatch: %s != %s"
msgstr "Varning: Rå primär partition stämmer inte överens: %s != %s"

#: src/convert/cluster-convert.py:108 src/convert/cluster-convert.py:116
#, python-format
msgid "Warning: Cluster will use %s"
msgstr "Varning: Klustret kommer att använda %s"

#: src/convert/cluster-convert.py:110 src/convert/cluster-convert.py:118
#, python-format
msgid "Warning: Reconfigure member %s to match."
msgstr "Varning: Konfigurera om medlem %s för att stämma överens."

#: src/convert/cluster-convert.py:115
#, python-format
msgid "Warning: Raw Shadow Partition mismatch: %s != %s"
msgstr "Varning: Rå skuggpartition stämmer inte överens: %s != %s"

#. rec="%s\t\t%s/>\n" % (rec,getNFSExportsXML(exports))
#. ####################
#. ## 'cluster' tag ###
#. ####################
#. ## add 'config_viewnumber' option ###
#.
#. Get daemons
#.
#. daemons=["cluquorumd","clurmtabd","clusvcmgrd"]
#. for d in daemons:
#. rec="%s\t<%s%s/>\n" %  (rec,d,buildAttributes(conf.vars[d]))
#. ########################
#. ## 'clumembd' daemon ###
#. ########################
#. ########################
#. ## 'clulockd' daemon ###
#. ########################
#. ##########################
#. ## 'cluquorumd' daemon ###
#. ##########################
#. #########################
#. ## 'clurmtabd' daemon ###
#. #########################
#. ## 'pollinterval' option was not included, so provide one
#. ##########################
#. ## 'clusvcmgrd' daemon ###
#. ##########################
#.
#. Get the member + switch information from the members section.
#.
#.
#. Get the shared state information from the members section.
#.
#.
#. Get the service information from the members section.
#.
#: src/convert/cluster-convert.py:264
msgid ""
"cluster-convert.py - convert old style cluster conf to cluster.xml\n"
"\n"
"Usage: cluster-convert.py inputfile outputfile"
msgstr ""
"cluster-convert.py - konvertera gammaldags cluster-konfigurationsfil till\n"
"                     cluster.xml\n"
"\n"
"Användning: cluster-convert.py indatafil utdatafil"

#~ msgid "Ping Interval"
#~ msgstr "Pingintervall"

#~ msgid "Tiebreaker IP"
#~ msgstr "Tiebreaker-IP"

#~ msgid "Login"
#~ msgstr "Inloggning"

#~ msgid "Mountpoint is required for a new device"
#~ msgstr "Monteringspunkt krävs för en ny enhet"

#~ msgid "Mount Point does not exist"
#~ msgstr "Monteringspunkten finns inte"

#~ msgid "Mount Point must be a directory"
#~ msgstr "Monteringspunkten måste vara en katalog"

#~ msgid ""
#~ "\n"
#~ "%s:"
#~ msgstr ""
#~ "\n"
#~ "%s:"

#~ msgid "  %s = %s"
#~ msgstr "  %s = %s"

#~ msgid "    %s"
#~ msgstr "    %s"

#~ msgid ""
#~ "\n"
#~ "[global]\n"
#~ msgstr ""
#~ "\n"
#~ "[global]\n"

#~ msgid "\t%s = %s\n"
#~ msgstr "\t%s = %s\n"

#~ msgid "\n"
#~ msgstr "\n"

#~ msgid "[%s]\n"
#~ msgstr "[%s]\n"

#~ msgid "%s"
#~ msgstr "%s"

#~ msgid "Down"
#~ msgstr "Ned"

#~ msgid "Up"
#~ msgstr "Upp"

#~ msgid "Last Transition"
#~ msgstr "Senaste övergång"

#~ msgid "Monitor Interval"
#~ msgstr "√Ėvervakningsintervall"

#~ msgid "Error: --del_member requires --member"
#~ msgstr "Fel: --del_member kräver --member"

#~ msgid "Error: --del_powercontroller requires --powercontroller"
#~ msgstr "Fel: --del_powercontroller kräver --powercontroller"

#~ msgid "Error: --del_failoverdomain requires --failoverdomain"
#~ msgstr "Fel: --del_failoverdomain kräver --failoverdomain"

#~ msgid "Error: --del_failoverdomainnode requires --failoverdomainnode"
#~ msgstr "Fel: --del_failoverdomainnode kräver --failoverdomainnode"

#~ msgid "Error: --del_service requires --service"
#~ msgstr "Fel: --del_service kräver --service"

#~ msgid "Error: --del_device requires --device"
#~ msgstr "Fel: --del_device kräver --device"

#~ msgid "Error: --del_nfsexport requires --nfsexport"
#~ msgstr "Fel: --del_nfsexport kräver --nfsexport"

#~ msgid "Error: --del_client requires --client"
#~ msgstr "Fel: --del_client kräver --client"

#~ msgid "Error: --del_service_ipaddress requires --service_ipaddress"
#~ msgstr "Fel: --del_service_ipaddress kräver --service_ipaddress"

#~ msgid "%s <client>"
#~ msgstr "%s <klient>"

#~ msgid "%s <device>"
#~ msgstr "%s <enhet>"

#~ msgid "Cluster Name:"
#~ msgstr "Klusternamn:"

#~ msgid "Members:"
#~ msgstr "Medlemmar:"

#~ msgid "Add Samba Export Druid"
#~ msgstr "Guide för tillägg av Samba-exporter"

#~ msgid "Filesystem Type"
#~ msgstr "Filsystemstyp"

#~ msgid "Raw "
#~ msgstr "Rå "

#~ msgid "Raw"
#~ msgstr "Rå"

#~ msgid " device does not exist"
#~ msgstr " enhet finns inte"

#~ msgid " device is not a character special file"
#~ msgstr " enhet är ingen teckenspecialfil"

#~ msgid "Error: %s requires %s"
#~ msgstr "Fel: %s kräver %s"

#~ msgid "Error: Option %s requires option %s"
#~ msgstr "Fel: Flaggan %s kräver flaggan %s"

#~ msgid "%s <service>"
#~ msgstr "%s <tjänst>"

#~ msgid "%s <nfsexport>"
#~ msgstr "%s <nfsexport>"

#~ msgid "%s <service ip address>"
#~ msgstr "%s <tjänste-ip-adress>"



_______________________________________________
sv mailing list
sv@li.org
http://lists.alt.org/mailman/listinfo/sv

Arkiv genererat av hypermail pre-2.1.8.