Pacotes de idiomas
A ideia por trás dos "langpacks" é separar as traduções ou o conteúdo específico do idioma em subpacotes no caso de o tamanho dos arquivos ser enorme ou o pacote fazer parte de uma imagem central que deveria ser mínima.
Os subpacotes que existem apenas para conter traduções ou conteúdo de idiomas adicionais devem ser nomeados no formato -langpack-, onde é o nome do pacote ao qual os langpacks pertencem e é um código de idioma válido de /usr/share/xml/iso- codes/iso_639_3.xml ou de /usr/share/i18n/locales/. Especificamente, o valor langcode usado no nome do pacote deve concordar com o identificador langcode usado no caminho do diretório pelo upstream para os arquivos de tradução ou idioma.
O ecossistema de langpack não precisa de nenhuma lógica procedimental na forma de plug-ins. Em vez disso, aproveita os recursos de dependência fracos e ricos fornecidos pelo RPM. As dependências necessárias são calculadas pelo gerenciador de pacotes (DNF ou PackageKit), portanto, é essencial incluir os seguintes Supplements:
relação de tag na definição do pacote langpack no arquivo spec:
Supplements: (%{name} = %{version}-%{release} and langpacks-<locale>)
Exemplo
Suponha que você tenha um pacote com o seguinte arquivo spec:
Name: php-horde-Horde-Perms
+ ...
+ %files -f Horde_Perms.lang
+ /usr/share/pear-data/Horde_Perms/locale/
+ ...
Para criar langpacks para cada idioma (traduções /usr/share/pear-data/Horde_Perms/locale//LC_MESSAGES/Horde_Perms.mo), você precisa definir um novo subpacote para cada pacote. O snippet abaixo mostra uma macro para automatizar a definição de langpacks, junto com a definição de langpacks para os idiomas bs e cs. Isso substituiria as linhas mostradas acima. Observe que esta definição de macro é específica para o pacote de exemplo; você precisará modificá-lo conforme apropriado para o seu pacote.
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
...
Want to help? Learn how to contribute to Fedora Docs ›