---
name: "Debian::L10n::Db"
section: "3pm"
platform: "linux"
package: "dl10n"
version: "3.00+nmu1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/Debian::L10n::Db"
---

# Debian::L10n::Db(3pm)

handle database of debian l10n stuff

## 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

This module is an interface to the database files used in several places of the debian localisation infrastructure, such as the webpages under `"webwml/<language>/internaltional/l10n/"`.

## METHODS

- new

  This is the constructor, it only performs some initialization.

  ```
     my $l10n_db = Debian::L10n::Db->new();
  ```

- read

  Read database from a given file.  Returns 1 on success and otherwise 0.

  ```
     $l10n_db->read("foo");
  ```

- write

  Write database into file.

  ```
     $l10n_db->write("foo");
  ```

- list\_packages

  Returns an array with the list of package names

- clear\_pkg

  Reset info for a given package

  ```
     $l10n_db->clear_pkg("foo");
  ```

- set\_status

  Change the status for the category specified as second argument.

- del\_status

  If a reference to a statusline is provided, it removes the first 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 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.

### 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 get the section associated with the package in `$pkg`, whereas the second set it to `"libs"`.

Two other methods are also defined to access those data, by prefixing field name by `"has_"` and `"add_"`.  The former is used to ask whether this field is defined in 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.
