Debian::L10n::Db(3pm)

πŸ“¦ version 3.00, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– Debian::L10n::Db πŸ’–

okay bestie, so this is Debian::L10n::Db(3pm) β€” a Perl module from the User Contributed Perl Documentation section of the manual. She's a whole interface to the l10n database files, and honestly? She ate. πŸŽ€


✨ NAME ✨

Debian::L10n::Db β€” handle database of debian l10n stuff


🌸 SYNOPSIS 🌸

use Debian::L10n::Db;
my $l10n_db = Debian::L10n::Db->new();
$l10n_db->read("../data/unstable");
foreach ($l10n_db->list_packages()) {
        print "Package $_ ".$l10n_db->version($_)."\n";
}

πŸ¦‹ DESCRIPTION πŸ¦‹

So this module is literally the interface to the database files that get used in several places across the debian localisation infrastructure β€” like, for example, the webpages hanging out under "webwml/<language>/internaltional/l10n/". That's the vibe. 🫢


πŸ’… METHODS πŸ’…

  • new β€” this is the constructor, and she is lowkey chill: all she does is a lil bit of initialization. That's it. That's the whole job.
my $l10n_db = Debian::L10n::Db->new();
  • read β€” read the database from a given file. Returns 1 on success and otherwise 0. No cap.
$l10n_db->read("foo");
  • write β€” write the database into a file. Bestie is committing. πŸ’Ύ
$l10n_db->write("foo");
  • list_packages β€” returns an array with the list of package names.
  • clear_pkg β€” reset the info for a given package. Fresh start energy. ✨
$l10n_db->clear_pkg("foo");
  • set_status β€” change the status for the category specified as the second argument.
  • del_status β€” if a reference to a statusline is provided, it removes the first one found. It should remove the right line (pkg, type, and file) from the DB, and empty the package if nothing else is left.
  • get_header β€” returns the value of the specified header.
  • set_header β€” sets the specified header to the specified value.
  • get_date β€” returns the date of generation.
  • set_date β€” sets the date of generation.
  • clean-db β€” clean_db cleans the database by removing data for a document whose status is 'done' for more than three days. Spring cleaning, but make it data. 🧹

🌈 DATA MANIPULATION 🌈

Data about packages can be classified within scalar values ("package", "version", "section", "priority", "maintainer", "pooldir", "type", "upstream"), arrays ("errors", "catgets", "gettext"), and arrays of arrays ("nls", "po", "po4a", "templates", "podebconf", "man", "menu" and "desktop"). Each field has a method with the same name to get and set it, e.g.

$section = $l10n_db->section($pkg);
$l10n_db->section($pkg, "libs");

The first line gets the section associated with the package in $pkg, whereas the second sets it to "libs". See how easy that is? πŸ‘‘

Two other methods are also defined to access those data, by prefixing the field name by "has_" and "add_". The former is used to ask whether this field is defined in the database, and the latter appends values for arrays or arrays of arrays.

if ($l10n_db->has_templates($pkg)) {
        print "Package $pkg has Debconf templates\n";
}
$l10n_db->add_po($pkg, 'po/fr.po', 'fr', '42t0f0u', 'po/adduser_3.42_po_fr.po');

πŸ‘‘ AUTHOR πŸ‘‘

Copyright (C) 2001-2004 Denis Barbier <barbier@debian.org> Copyright (C) 2004 Martin Quinson <enough@spam>

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.


πŸ’€ heads up bestie: that's the GNU General Public License, version 2 or (at your option) any later version. Read the license, respect the license, periodt.

okay that's the whole page, and no I will not be normal about it πŸ’– this was Debian::L10n::Db(3pm) from perl v5.32.0, dated 2021-01-05, brought to you by User Contributed Perl Documentation. mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from