mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 06:35:42 +00:00
851bd9c42b
======== https://hg.mozilla.org/integration/gaia-central/rev/9621115bda40 Author: Fabien Cazenave <fabien@cazenave.cc> Desc: Merge pull request #10709 from fabi1cazenave/l10nOptim-bug853933 Bug 853933 - Don't inline all locales as JSON in the HTML, r=ochameau ======== https://hg.mozilla.org/integration/gaia-central/rev/cf0c69f54763 Author: Fabien Cazenave <fabien@cazenave.cc> Desc: Bug 853933 - Don't inline all locales as JSON in the HTML Currently, in order to ensure that apps are translated before first paint, all l10n resources are included as one multi-locales JSON dictionary, which is serialized in an inline `<script>` element for each HTML document. This works fine when shipping few locales, but it can increase the document size quite badly for 60+ locales, thus delaying the startup time very significantly. This patch allows to support 60+ locales more easily by having: * one minimal JSON dictionary per locale in each HTML file; * one extensive JSON dictionary per locale in each webapp. The inline JSON dictionary is split on a per-locale basis (= one `<script>` node per supported locale) and only contains the l10n strings that are required to translate the HTML document: the "startup cost" of each locale becomes neglectable, and it removes the risk of high RAM consumption when parsing a giant multi-locale JSON at startup. All l10n resources that are not declared in the HTML document are concatenated in a single JSON dictionary per locale: this reduces the number of disk I/O to load l10n resources and does not increase the total disk size of each webapp. To enable this, this patch implements a `{{locale}}` quasi-litteral in the HTML markup that is used to declare l10n resources: <link rel="prefetch" type="application/l10n" href="/{{locale}}.json" /> where `{{locale}}` is replaced by the value of `navigator.language`. Note that this latter optimization is only interesting for apps that wait for the `localized` event to start. With the inline JSON dictionary for the declarative content and the `mozL10n.localize()` method, most apps could probably stop waiting for this `localized` event now. |
||
---|---|---|
.. | ||
app | ||
branding | ||
chrome | ||
components | ||
config | ||
gaia | ||
installer | ||
locales | ||
test | ||
app.mozbuild | ||
build.mk | ||
confvars.sh | ||
LICENSE | ||
Makefile.in | ||
moz.build |