summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--po/nl.po309
1 files changed, 309 insertions, 0 deletions
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..1613c42
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,309 @@
+# Dutch translation
+# Copyright (C) YEAR Daniel Napora <napcok@gmail.com>
+# This file is distributed under the same license as the mageiawelcome package.
+# Marja van Waes <marja@mageia.org>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mageiawelcome\n"
+"Report-Msgid-Bugs-To: http://bugs.mageia.org\n"
+"POT-Creation-Date: 2013-11-09 14:34+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Marja van Waes <marja@mageia.org>\n"
+"Language-Team: Dutch <i18n-nl@ml.mageia.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:65
+msgid "Welcome to Mageia!"
+msgstr "Welkom bij Mageia!"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:66
+msgid "Show this window at startup"
+msgstr "Laat dit venster zien bij het opstarten"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:67
+msgid "Close"
+msgstr "Sluiten"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:70
+msgid "kernel:"
+msgstr "kernel:"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:72
+msgid "arch:"
+msgstr "arch:"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:74
+msgid "Desktop:"
+msgstr "Werkomgeving:"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:76
+msgid "Welcome"
+msgstr "Welkom"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:78
+msgid ""
+"<p>Thank you for choosing Mageia!</p><p>We have put in a lot of effort to "
+"provide you with the best possible system. We hope you will have a good "
+"experience with Mageia. If you feel that our project is a good idea, we "
+"would also appreciate any contribution you can make to it for next versions."
+"</p><p>To find out how you can help <a class='weblink' href='http://www."
+"mageia.org/en/contribute/'>click here</a>.</p><p>Don't forget to tell your "
+"friends about Mageia.</p>"
+msgstr ""
+"<p>Dank u, dat u Mageia gekozen hebt!</p><p>We hebben flink geïnversteerd om "
+"u het best mogelijke systeem te geven. We hopen dat Mageia u goed zal "
+"bevallen. Als u vindt dat ons project de moeite waard is, stellen we elke "
+"bijdrage op prijs voor de volgende versies.</p><p><a class='weblink' href='"
+"http://www.mageia.org/en/contribute/'>Klik hier</a> om te zien hoe u kunt "
+"helpen.</p><p>Vergeet niet uw vrienden over Mageia te vertellen.</p>"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:79
+msgid "Mageia Control Center"
+msgstr "Mageia Configuratiecentrum"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:80
+msgid "Configure media sources and update system"
+msgstr "Configureer mediabronnen en werk u systeem bij"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:81
+msgid "Install and remove software"
+msgstr "Installeer en verwijder software"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:82
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:83
+msgid "New Features"
+msgstr "Nieuwe Mogelijkheden"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:84
+msgid "Release Notes"
+msgstr "Uitgave-opmerkingen"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:85
+msgid "Errata"
+msgstr "Errata"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:86
+msgid "Newcomers Howto"
+msgstr "Nieuwelingen Howto"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:87
+msgid "Support"
+msgstr "Ondersteuning"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:88
+msgid "Forums"
+msgstr "Forums"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:89
+msgid "Wiki"
+msgstr "Wiki"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:90
+msgid "Chat Room"
+msgstr "Chatruimte"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:91
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:92
+msgid "Community"
+msgstr "Gemeenschap"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:93
+msgid "Community Center"
+msgstr "Gemeenschapscentrale"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:94
+msgid "Contribute"
+msgstr "Draag bij"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:95
+msgid "Donations"
+msgstr "Donaties"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:96
+msgid "Join us!"
+msgstr "Sluit u bij ons aan!"
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:97
+msgid ""
+"Mageia Control Center (aka drakconf) is a set of tools to help you configure "
+"your system"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:98
+msgid "Software Management"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:99
+msgid "Online administration"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:100
+msgid "Hardware"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:101
+msgid "Network & Internet"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:102
+#: ../usr/share/mageiawelcome/mageiawelcome.py:131
+msgid "System"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:103
+msgid "Network Sharing"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:104
+msgid "Local Disks"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:105
+msgid "Security"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:106
+msgid "Boot"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:107
+msgid "Administrator password is needed"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:108
+msgid "User password is needed"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:109
+msgid "Configure media sources ..."
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:110
+msgid "Mageia official repositories contain:"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:111
+msgid ""
+"<span class='label green'>core</span> - the free-open-source packages, i.e. "
+"software licensed under a free-open-source license"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:112
+msgid ""
+"<span class='label red'>non-free</span> - some programs which are not free, "
+"or closed source. For example this repository includes Nvidia and ATI "
+"graphics card proprietary drivers, firmware for various WiFi cards, etc"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:113
+msgid ""
+"<span class='label red'>tainted</span> - includes packages released under a "
+"free license. However, they may infringe on patents and copyright laws in "
+"some countries, e.g. multimedia codecs needed to play various audio/video "
+"files; packages needed to play commercial video DVD, etc. "
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:114
+msgid "<strong>Note!</strong> non-free and tainted are not enabled by default."
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:115
+msgid "Edit software sources"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:116
+msgid "... and update system"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:117
+msgid "Check system updates"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:118
+msgid "GUI - RPMDrake"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:119
+msgid ""
+"<span class='label green'>Rpmdrake</span> is a program for installing, "
+"uninstalling and updating packages. It is the graphical user interface of "
+"<span class='label green'>urpmi</span>"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:120
+msgid "read more (wiki)"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:121
+msgid "RPMdrake"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:122
+msgid "URPMI - from command line"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:123
+msgid "Terminal"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:124
+msgid "This is just small selection of popular packages, for more run"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:125
+msgid "Featured"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:126
+msgid "Games"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:127
+msgid "Internet"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:128
+msgid "Video"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:129
+msgid "Audio"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:130
+msgid "Graphics"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:132
+msgid "Programming"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:133
+msgid "Selected packages:"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:134
+msgid "Install selected"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:135
+msgid "You can always launch MageiaWelcome from menu"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:137
+msgid "Applications"
+msgstr ""
+
+#: ../usr/share/mageiawelcome/mageiawelcome.py:151
+msgid "About"
+msgstr ""
minwidth) = (400, 50, 5); my ($all_hds, $in, $do_force_reload, $current_kind, $current_entry, $update_all); my ($w, @notebook, $done_button); =begin =head1 SYNOPSYS struct { string name # which is displayed in tab of the notebook bool no_auto # wether the kind can disappear after creation string type # one of { 'hd', 'raid', 'lvm', 'loopback', 'removable', 'nfs', 'smb' } hd | hd_lvm | part_raid[] | part_loopback[] | raw_hd[] val # widget main_box widget display_box widget action_box widget info_box } current_kind part current_entry notebook current_kind[] =cut sub main { ($in, $all_hds, $do_force_reload) = @_; @notebook = (); local $in->{grab} = 1; $w = ugtk2->new(N("Partitioning"), icon => 'banner-part'); $::main_window = $w->{real_window} if !$::isEmbedded && !$::isInstall; my $rc = "/usr/share/libDrakX/diskdrake.rc"; -r $rc or $rc = dirname(__FILE__) . "/../diskdrake.rc"; -r $rc or $rc = dirname(__FILE__) . "/../share/diskdrake.rc"; Gtk2::Rc->parse($rc); # TODO # is_empty_array_ref($all_hds->{raids}) or raid::stopAll; # updateLoopback(); gtkadd($w->{window}, gtkpack_(Gtk2::VBox->new(0,7), 0, filesystems_button_box(), 1, (my $notebook_widget = Gtk2::Notebook->new), 0, (my $per_kind_action_box = Gtk2::HBox->new(0,0)), 0, (my $general_action_box = Gtk2::HBox->new(0,0)), ), ); my $lock; $update_all = sub { $lock and return; $lock = 1; partition_table::assign_device_numbers($_) foreach fs::get::hds($all_hds); create_automatic_notebooks($notebook_widget); general_action_box($general_action_box); per_kind_action_box($per_kind_action_box, $current_kind); current_kind_changed($in, $current_kind); current_entry_changed($current_kind, $current_entry); $lock = 0; }; create_automatic_notebooks($notebook_widget); $notebook_widget->signal_connect(switch_page => sub { $current_kind = $notebook[$_[2]]; $current_entry = ''; $update_all->(); }); $w->sync; $done_button->grab_focus; $in->ask_from_list_(N("Read carefully!"), N("Please make a backup of your data first"), [ N_("Exit"), N_("Continue") ], N_("Continue")) eq N_("Continue") or return if $::isStandalone; $in->ask_warn('', N("If you plan to use aboot, be careful to leave a free space (2048 sectors is enough) at the beginning of the disk")) if arch() eq 'alpha' && !$::isEmbedded; $w->main; } sub try { my ($name, @args) = @_; my $f = $diskdrake::interactive::{$name} or die "unknown function $name"; try_($name, \&$f, @args); } sub try_ { my ($name, $f, @args) = @_; diskdrake::interactive::undo_prepare($all_hds) if $name ne 'Undo'; my $v = eval { $f->($in, @args, $all_hds) }; if (my $err = $@) { $in->ask_warn(N("Error"), formatError($err)); } if ($v eq 'force_reload') { $all_hds = $do_force_reload->(); } $current_entry = '' if !diskdrake::interactive::is_part_existing($current_entry, $all_hds); $update_all->(); Gtk2->main_quit if $v && member($name, 'Done'); } ################################################################################ # generic: helpers ################################################################################ sub add_kind2notebook { my ($notebook_widget, $kind) = @_; die if $kind->{main_box}; $kind->{display_box} = gtkset_size_request(Gtk2::HBox->new(0,0), $width, $height); $kind->{action_box} = gtkset_size_request(Gtk2::VBox->new(0,0), $::isStandalone ? 165 : 150, $::isEmbedded ? 150 : 180); $kind->{info_box} = Gtk2::VBox->new(0,0); $kind->{main_box} = gtkpack_(Gtk2::VBox->new(0,7), 0, $kind->{display_box}, 1, gtkpack_(Gtk2::HBox->new(0,7), 0, $kind->{action_box}, 1, $kind->{info_box})); ugtk2::add2notebook($notebook_widget, $kind->{name}, $kind->{main_box}); push @notebook, $kind; $kind; } sub interactive_help() { if ($::isInstall) { $in->interactive_help_sub_display_id('partition_with_diskdrake'); } else { require run_program; run_program::raw({ detach => 1 }, 'drakhelp', '--id', 'diskdrake'); } } sub general_action_box { my ($box) = @_; $_->destroy foreach $box->get_children; gtkadd($box, gtksignal_connect(Gtk2::Button->new(N("Help")), clicked => \&interactive_help)); my @actions = ( diskdrake::interactive::general_possible_actions($in, $all_hds), N_("Done")); foreach my $s (@actions) { my $button = Gtk2::Button->new(translate($s)); $done_button = $button if $s eq 'Done'; gtkadd($box, gtksignal_connect($button, clicked => sub { try($s) })); } } sub per_kind_action_box { my ($box, $kind) = @_; $_->destroy foreach $box->get_children; $kind->{type} =~ /hd|lvm/ or return; foreach my $s (diskdrake::interactive::hd_possible_actions($in, kind2hd($kind), $all_hds)) { gtkadd($box, gtksignal_connect(Gtk2::Button->new(translate($s)), clicked => sub { try($s, kind2hd($kind)) })); } } sub per_entry_action_box { my ($box, $kind, $entry) = @_; $_->destroy foreach $box->get_children; if ($entry) { my @buttons = map { my $s = $_; my $w = Gtk2::Button->new(translate($s)); $w->signal_connect(clicked => sub { try($s, kind2hd($kind), $entry) }); $w; } diskdrake::interactive::part_possible_actions($in, kind2hd($kind), $entry, $all_hds); gtkadd($box, gtkadd(Gtk2::Frame->new(N("Choose action")), create_scrolled_window(gtkpack__(Gtk2::VBox->new(0,0), @buttons)))) if @buttons; } else { my $txt = !$::isStandalone && fsedit::is_one_big_fat_or_NT($all_hds->{hds}) ? N("You have one big Microsoft Windows partition. I suggest you first resize that partition (click on it, then click on \"Resize\")") : N("Please click on a partition"); gtkpack($box, gtktext_insert(Gtk2::TextView->new, $txt)); } } sub per_entry_info_box { my ($box, $kind, $entry) = @_; $_->destroy foreach $box->get_children; my $info; if ($entry) { $info = diskdrake::interactive::format_part_info(kind2hd($kind), $entry); } elsif ($kind->{type} =~ /hd|lvm/) { $info = diskdrake::interactive::format_hd_info($kind->{val}); } gtkpack($box, gtkadd(gtkcreate_frame(N("Details")), gtknew('HBox', border_width => 5, children_loose => [ gtkset_alignment(gtkset_justify(Gtk2::Label->new($info), 'left'), 0, 0) ]))); } sub current_kind_changed { my ($_in, $kind) = @_; $_->destroy foreach $kind->{display_box}->get_children; my $v = $kind->{val}; my @parts = $kind->{type} eq 'raid' ? grep { $_ } @$v : $kind->{type} eq 'loopback' ? @$v : fs::get::hds_fstab_and_holes($v); my $totalsectors = $kind->{type} =~ /raid|loopback/ ? sum(map { $_->{size} } @parts) : $v->{totalsectors}; create_buttons4partitions($kind, $totalsectors, @parts); } sub current_entry_changed { my ($kind, $entry) = @_; $current_entry = $entry; if ($kind) { per_entry_action_box($kind->{action_box}, $kind, $entry); per_entry_info_box($kind->{info_box}, $kind, $entry); } } sub create_automatic_notebooks { my ($notebook_widget) = @_; $_->{marked} = 0 foreach @notebook; my $may_add = sub { my ($kind) = @_; my @l = grep { $kind->{val} == $_->{val} } @notebook; @l > 1 and log::l("weird: create_automatic_notebooks"); $kind = $l[0] || add_kind2notebook($notebook_widget, $kind); $kind->{marked} = 1; }; $may_add->(hd2kind($_)) foreach @{$all_hds->{hds}}; $may_add->(lvm2kind($_)) foreach @{$all_hds->{lvms}}; $may_add->(raid2kind()) if @{$all_hds->{raids}}; $may_add->(loopback2kind()) if @{$all_hds->{loopbacks}}; @notebook = grep_index { my $b = $_->{marked} or $notebook_widget->remove_page($::i); $b; } @notebook; @notebook or die N("No hard drives found"); } ################################################################################ # parts: helpers ################################################################################ sub create_buttons4partitions { my ($kind, $totalsectors, @parts) = @_; $width = max($width, 0.9 * second($w->{window}->window->get_size)) if $w->{window}->window; my $ratio = $totalsectors ? ($width - @parts * $minwidth) / $totalsectors : 1; while (1) { my $totalwidth = sum(map { $_->{size} * $ratio + $minwidth } @parts); $totalwidth <= $width and last; $ratio /= $totalwidth / $width * 1.1; } my $current_button; my $set_current_button = sub { my ($w) = @_; $current_button->set_active(0) if $current_button; ($current_button = $w)->set_active(1); }; foreach my $entry (@parts) { my $info = $entry->{mntpoint}; $info .= "\n" . ($entry->{size} ? formatXiB($entry->{size}, 512) : N("Unknown")) if $info; my $w = Gtk2::ToggleButton->new_with_label($info) or internal_error('new_with_label'); $w->signal_connect(clicked => sub { $current_button != $w or return; current_entry_changed($kind, $entry); $set_current_button->($w); }); $w->signal_connect(key_press_event => sub { my (undef, $event) = @_; member('control-mask', @{$event->state}) && $w == $current_button or return; my $c = chr $event->keyval; foreach my $s (diskdrake::interactive::part_possible_actions($in, kind2hd($kind), $entry, $all_hds)) { ${{ Create => 'c', Delete => 'd', Format => 'f', Loopback => 'l', Resize => 'r', Type => 't', Mount => 'M', Unmount => 'u', 'Mount point' => 'm', 'Add to LVM' => 'L', 'Remove from LVM' => 'L', 'Add to RAID' => 'R', 'Remove from RAID' => 'R', }}{$s} eq $c or next; try($s, kind2hd($kind), $entry); last; } }); my @colorized_fs_types = qw(ext3 xfs swap vfat ntfs ntfs-3g); $w->set_name("PART_" . (isEmpty($entry) ? 'empty' : $entry->{fs_type} && member($entry->{fs_type}, @colorized_fs_types) ? $entry->{fs_type} : 'other')); $w->set_size_request($entry->{size} * $ratio + $minwidth, 0); gtkpack__($kind->{display_box}, $w); if ($current_entry && fsedit::are_same_partitions($current_entry, $entry)) { $set_current_button->($w); $w->grab_focus; } } } ################################################################################ # disks: helpers ################################################################################ sub current_hd() { $current_kind->{type} eq 'hd' or die 'current_hd called but $current_kind is not an hd'; $current_kind->{val}; } sub current_part() { current_hd(); $current_entry; } sub kind2hd { my ($kind) = @_; $kind->{type} =~ /hd|lvm/ ? $kind->{val} : bless({}, 'partition_table::raw'); } sub hd2kind { my ($hd) = @_; { type => 'hd', name => $hd->{device}, val => $hd }; } sub filesystems_button_box() { my @types = (N_("Ext3"), N_("XFS"), N_("Swap"), arch() =~ /sparc/ ? N_("SunOS") : arch() eq "ppc" ? N_("HFS") : N_("Windows"), N_("Other"), N_("Empty")); my %name2fs_type = (Ext3 => 'ext3', 'XFS' => 'xfs', Swap => 'swap', Other => 'other', "Windows" => 'vfat', HFS => 'hfs'); gtkpack(Gtk2::HBox->new(0,0), N("Filesystem types:"), map { my $w = Gtk2::Button->new(translate($_)); my $t = $name2fs_type{$_}; $w->signal_connect(clicked => sub { try_('', \&createOrChangeType, $t, current_hd(), current_part()) }); $w->can_focus(0); $w->set_name('PART_' . ($t || 'empty')); $w; } @types); } sub createOrChangeType { my ($in, $fs_type, $hd, $part, $all_hds) = @_; $part ||= !fs::get::hds_fstab($hd) && { pt_type => 0, start => 1, size => $hd->{totalsectors} - 1 }; $part or return; if ($fs_type eq 'other') { if (isEmpty($part)) { try('Create', $hd, $part); } else { try('Type', $hd, $part); } } elsif (!$fs_type) { if (isEmpty($part)) { $in->ask_warn(N("Warning"), N("This partition is already empty")); } else { try('Delete', $hd, $part); } } elsif (isEmpty($part)) { fs::type::set_fs_type($part, $fs_type); diskdrake::interactive::Create($in, $hd, $part, $all_hds); } else { return if $fs_type eq $part->{fs_type}; $in->ask_warn('', isBusy($part) ? N("Use ``Unmount'' first") : N("Use ``%s'' instead", N("Type"))); } } ################################################################################ # lvms: helpers ################################################################################ sub lvm2kind { my ($lvm) = @_; { type => 'lvm', name => $lvm->{VG_name}, val => $lvm }; } ################################################################################ # raids: helpers ################################################################################ sub raid2kind() { { type => 'raid', name => 'raid', val => $all_hds->{raids} }; } ################################################################################ # loopbacks: helpers ################################################################################ sub loopback2kind() { { type => 'loopback', name => 'loopback', val => $all_hds->{loopbacks} }; } 1;