Jump to content Jump to page navigation: previous page [access key p]/next page [access key n]
AppStream
AppStream › Upstream Metadata › Localization
AppStream › Upstream Metadata › Localization
Top
←→

## 2.14 Localization #

### 2.14.1 Localization #

The `localization` component type describes language packs for individual software components or groups of software components. A language pack includes anything necessary to localize a software component for a specific language and/or country. This is usually translations, but may also be translated media content, currency information and other things. A `localization` component `extends` one or multiple other components and defines the languages it provides via its `languages` tag.

Language packs can ship one or more metainfo files as `/usr/share/metainfo/%{id}.metainfo.xml`.

Do not confuse language packs with the catalog metadata <languages/> tag, used to identify bundled translations.

### 2.14.2 Example file #

A localization metainfo file can look like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <component type="localization">
      <id>org.kde.l10n.de</id>
      <name>KDE German Language</name>
      <summary>German localization for the KDE desktop and apps</summary>

      <extends>org.kde.plasmashell</extends>
      <extends>org.kde.gwenview.desktop</extends>
      <extends>org.kde.dolphin.desktop</extends>
      ...

      <url type="homepage">http://i18n.kde.org/team-infos.php?teamcode=de</url>
      <metadata_license>FSFAP</metadata_license>

      <developer id="kde">
        <name>The KDE German L10N team</name>
      </developer>

      <languages>
        <lang>de_DE</lang>
        <lang percentage="96">de_AT</lang>
        <lang percentage="100">de</lang>
        ...
      </languages>
    </component>

### 2.14.3 File specification #

Note that the XML root must have the `type` property set to `localization`. This clearly identifies this metainfo document as describing a language pack.

<id/> #

  For localizations, the value of the `<id/>` tag must follow the reverse-DNS scheme as described for generic components. Ideally, the name of the component this language pack is for should be suffixed with `.l10n.%{lang}`, where `%{lang}` is the language code of the language pack.

  For example, if your applications component-id is `org.gimp.gimp` the ID of the German language pack for GIMP should be `org.gimp.gimp.l10n.de`.

<extends/> #

  The `extends` tags contain all the components this language pack can be used with.

<languages/> #

  This tag gives information about the locale a localization component provides support for.

  The tag is allowed to only occur once per component, and contains multiple `<lang/>` child nodes, which have a language code (https://www.gnu.org/software/gettext/manual/html_node/Language-Codes.html) as value. Each `<lang/>` node may have a `percentage` property, which describes the percentage value to which a component has been translated.

  Tag example:

      <languages>
        <lang>de_DE</lang>
        <lang percentage="94">de_AT</lang>
      </languages>

For a component of type `localization`, the following tags are required and must be present for a valid document: <id/>, <name/>, <summary/>, <metadata_license/>, <extends/>, <languages/>.