Only an outline so far but most of this code already exists in Emdebian SVN.
- C/C++ application: langupdate using libapt-pkg and libglib2.0-0
- Reads supported locales and silently installs only the supported translations for all installed packages, with fallback support where configured.
- Silently removes all translations for all unsupported locales.
- First run in langupdate postinst
- Removes package translations on the next run after package removal.
- Separate /etc/langupdate/tdeb.sources.list and /var/cache/langupdate/lists/ to keep apt cache size down. Manual changes will be overwritten so maybe it ought to live in /var/ or /usr/share/.
- One source for each locale root, main_en, main_fr, main_pt etc. All sources maintained by langupdate directly, according to the list of supported locales.
- Each source contains all translations for locales within scope: en_GB in en, pt_BR in pt etc. to support fallback correctly.
- XS-Package-Type: tdeb with a file suffix of .deb (not .tdeb) to reduce the number of patches needed for a working implementation.
- Server-side perl script: langmigrate that parses the .changes file:
- Removes tdebs from existing repository.
- Moves incoming tdebs into new layout.
- No descriptions, no dependencies. All tdebs are Priority: extra and Architecture:all. Possible support for a tdeb1 version suffix for updates that are not yet in Debian. (Allows for translation updates without package uploads.)
- Plan to remove (or support an alternative package) dependency on libglib2.0-0 but OK for Emdebian at the moment due to targetting of GPE.
- langupdate itself Priority: optional and not part of the default emsandbox
- langupdate is a native package, uploaded to and maintained in Emdebian. Migrate into Debian once infrastructure is ready.
- langupdate has little or no output, only a help option and possibly support for --clean but everything else automated.
This is built on the emlocale method (from emdebian-tools) and emlocale will be modified to fit this plan in 0.5.4.
langupdate (and langmigrate) cannot be part of emdebian-tools themselves, so will be separate packages.
(and yes, it is 4am, I'm not sleeping well due to a viral infection.)