Kielipaketit

"Langpackien" ideana on erottaa käännökset tai kielikohtainen sisältö alipaketteihin siinä tapauksessa, että tiedostojen koko on valtava tai paketti on osa ydinlevykuvaa, jonka pitäisi olla minimaalinen.

Alapaketit, jotka ovat olemassa vain lisäkielten käännöksiä tai lisäsisältöä varten, on nimettävä muodossa -langpack-, jossa on sen paketin nimi, johon langpackit kuuluvat ja joka on kelvollinen kielikoodi tiedostosta /usr/share/xml/iso- codes/iso_639_3.xml tai osoitteesta /usr/share/i18n/locales/. Tarkemmin sanottuna paketin nimessä käytetyn langcode-arvon on oltava yhtäpitävä käännös- tai kielitiedostojen ylävirran hakemistopolussa käytetyn langcode-tunnisteen kanssa.

Langpack-ekosysteemi ei tarvitse mitään prosessilogiikkaa lisäosien muodossa. Sen sijaan se hyödyntää RPM:n tarjoamia heikkoja ja runsaita riippuvuusominaisuuksia. Paketinhallinta (DNF tai PackageKit) laskee tarvittavat riippuvuudet, joten on välttämätöntä sisällyttää seuraava Supplements: -tunnisterelaatio langpack-paketin määrittelyyn spec-tiedostossa:

Supplements: (%{name} = %{version}-%{release} and langpacks-<locale>)

Esimerkki

Oletetaan, että sinulla on paketti, jossa on seuraava spesifikaatiotiedosto:

Name: php-horde-Horde-Perms + ... + %files -f Horde_Perms.lang + /usr/share/pear-data/Horde_Perms/locale/ + ...

Jotta voit luoda langpackeja jokaiselle kielelle (/usr/share/pear-data/Horde_Perms/locale//LC_MESSAGES/Horde_Perms.mo translations), sinun on määritettävä uusi alipaketti jokaiselle paketille. Alla oleva katkelma näyttää makron langpackien määrittelyn automatisoimiseksi sekä langpackien määritelmän bs- ja cs-kielille. Tämä korvaisi yllä näkyvät rivit. Huomaa, että tämä makromäärittely koskee esimerkkipakettia; sinun on muokattava sitä pakettillesi sopivaksi.

Name: php-horde-Horde-Perms
...

%define lang_subpkg() \
%package langpack-%{1}\
Summary:       %{2} language data for %{name}\
BuildArch:     noarch\
Requires:      %{name} = %{version}-%{release}\
Supplements:   (%{name} = %{version}-%{release} and langpacks-%{1})\
\
%description langpack-%{1}\
%{2} language data for %{name}.\
\
%files langpack-%{1}\
%{_datadir}/pear-data/Horde_Perms/locale/%{1}/
+ %lang_subpkg bs Bosnian+
%lang_subpkg cs Czech
...

%files
...