address reviewer comments
|Deletions are marked like this.||Additions are marked like this.|
|Line 48:||Line 48:|
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/ue-language-packs
Contributors: JaneWeideman, Colin Watson
Packages affected: ubuntu-express
Language Pack handling in the Ubuntu Express installer.
Our current installer installs language packs and language support packages, usually from the network. Ubuntu Express needs to do the same, since not all language packs will already be unpacked into the live filesystem.
In our current installer, if the install CD does not contain some required language support packages, the user is asked whether to download language support from the network. This can help avoid flooding slow network connections. We want to preserve this ability, but a simple checkbox may not be the right interface; see below.
In breezy, the size of language packs ranges from almost nothing to around 5 MB; the largest language support package is around 28 MB.
- A user selects Spanish as their language for installation, and wants Spanish messages for the base system and GNOME and Spanish language support to be installed by default.
- A Kubuntu user selects French as their language for installation, and wants French messages for the base system and KDE and French language support to be installed by default.
- A Chinese user with a slow metered network connection cannot afford to download 28 megabytes of language support packages, so wishes to skip that step.
This specification considers only the component of UbuntuExpress that installs language packs, and the associated user interface issues.
The language selection near the start of Ubuntu Express will be fed into the debconf database, and retrieved later by the backend in order to select the set of language packs and language support packages to install. The mechanism will be similar to that used in base-config at present.
Language packs and language support packages will be installed after [:UbuntuExpress/CopyFileSystem:copying the live filesystem], and will occupy a segment of the overall UbuntuExpress progress bar depending on stopwatch measurements. The progress bar segment will be driven by the same code used to [:InstallerStage2Progress:display a progress bar in the second stage of the traditional installer] (which already arranges to show the remaining size and time, thanks to apt's status FD support).
The current installer asks whether to download language support packages (and language packs, if they aren't on the CD), on the basis that for some languages they are very large and cause problems for users on slow and/or metered connections. Instead of asking this question, we will display and support a cancel button on the progress bar while downloading language packs and language support packages.
Support for derivatives and customisation
To support the different sets of language packs used by derivatives (for example, Kubuntu requires language-pack-kde-$LL and kde-i18n-$LL instead of language-pack-gnome-$LL) without major changes to the CD image build infrastructure, and to support customisers who are used to working with the Ubuntu and Kubuntu 5.04 and 5.10 live CDs, we will need something like the current debconf preseeding facilities. In fact, we can easily support exactly the same mechanism despite the changes specified by SimplifiedLiveCD, by installing a preseed hook in casper's post.d directory which feeds any preseed file through debconf-set-selections in the live filesystem.
ubuntu-express.deb (or some other component of UbuntuExpress) will include a debconf template to control which language packs are installed, matching the current template provided by base-config.
If the user cancels the language support download, queue the packages for installation by update-manager at the next opportunity, or perhaps get update-manager to try to download language support packages matching your locale (Windows Update does something like this).