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.
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>
Note that the XML root must have the type
property set to localization
.
This clearly identifies this metainfo document as describing a language pack.
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
.
The extends
tags contain all the components this language pack can be used with.
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/>.