We have a p2-based installer that needs
to know the languages supported by any given NL fragment to minimize the
footprint of installed artifacts. But, the Babel NL fragments do not specify
the languages supported, it is upto the consumer to figure this out based
on the names which is really ad-hoc. We would like this information persisted
in the NL fragment or container feature and in the p2 metadata to help
our installer figure this out automatically and to also support specific
languages for installation.
One option we investigated was to use
osgi.nl in the Eclipse-PlatformFilter or specify nl attributes in
feature.xml. but osgi.nl is not stored in the org.eclipse.equinox.p2.environments
property of the p2 profiles. This makes the p2 installer throw errors
like "Cannot complete the install
because one or more required items could not be found.
Missing requirement: 1256076700280
0.0.0.1256076700280 requires 'feauture.nls1.feature.group [220.127.116.11910201348]'
" if osgi.nl is used with the NL features/fragments - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=284899.
I tried adding osgi.nl=fr to org.eclipse.equinox.p2.environments
in the p2 profile and that allowed features with osgi.nl=fr to be installed
and threw errors while installing features with other language filters.
On these lines, maybe, relaxing the org.eclipse.equinox.p2.environments
to take in simple _expression_ like osgi.nl=en,fr,de,pt_BR or osgi.nl=* will
help. We could also get the p2 installer to filter out the features/plugins
based on the osgi.nl environment similar to what is being done with osgi.os,etc.
but with the added support to parse expressions for osgi.nl.
I will debug the code dealing with the
profile property org.eclipse.equinox.p2.environments and see what I come
up with. Meanwhile, I welcome any ideas and suggestions, it is imperative
that p2 support osgi.nl in some way.