Switch branches/tags
v1.0 shira-closed nightly-closed m4-demo-candidate-1 m2.5 bubble-tea-closed B2G_2_5_20160125_MERGEDAY B2G_2_5_20151214_MERGEDAY B2G_2_2_20151214_MERGEDAY B2G_2_2_20151029_MERGEDAY B2G_2_2_20150921_MERGEDAY B2G_2_2_20150810_MERGEDAY B2G_2_2_20150629_MERGEDAY B2G_2_2_20150511_MERGEDAY B2G_2_2_20150330_MERGEDAY B2G_2_2_20150223_MERGEDAY B2G_2_2r_20151214_MERGEDAY B2G_2_2r_20151029_MERGEDAY B2G_2_2r_20150921_MERGEDAY B2G_2_2r_20150810_MERGEDAY B2G_2_1_20150629_MERGEDAY B2G_2_1_20150511_MERGEDAY B2G_2_1_20150330_MERGEDAY B2G_2_1_20150223_MERGEDAY B2G_2_1_20150112_MERGEDAY B2G_2_1_20141013_MERGEDAY B2G_2_1_20140902_MERGEDAY B2G_2_1s_20150810_MERGEDAY B2G_2_1s_20150629_MERGEDAY B2G_2_1s_20150511_MERGEDAY B2G_2_1s_20150330_MERGEDAY B2G_2_1s_20150223_MERGEDAY B2G_2_1s_20150112_MERGEDAY B2G_2_0_20150629_MERGEDAY B2G_2_0_20150511_MERGEDAY B2G_2_0_20150330_MERGEDAY B2G_2_0_20150223_MERGEDAY B2G_2_0_20150112_MERGEDAY B2G_2_0_20141013_MERGEDAY B2G_2_0_20140902_MERGEDAY B2G_2_0_20140721_MERGEDAY B2G_2_0_20140609_MERGEDAY B2G_1_4_20150511_MERGEDAY B2G_1_4_20150330_MERGEDAY B2G_1_4_20150223_MERGEDAY B2G_1_4_20150112_MERGEDAY B2G_1_4_20141013_MERGEDAY B2G_1_4_20140902_MERGEDAY B2G_1_4_20140721_MERGEDAY B2G_1_4_20140609_MERGEDAY B2G_1_4_20140428_MERGEDAY B2G_1_4_20140317_MERGEDAY B2G_1_3_20140902_MERGEDAY B2G_1_3_20140721_MERGEDAY B2G_1_3_20140609_MERGEDAY B2G_1_3_20140428_MERGEDAY B2G_1_3_20140317_MERGEDAY B2G_1_3_20140203_MERGEDAY B2G_1_3T_20141013_MERGEDAY B2G_1_3T_20140902_MERGEDAY B2G_1_3T_20140721_MERGEDAY B2G_1_3T_20140609_MERGEDAY B2G_1_3T_20140428_MERGEDAY B2G_1_2_20140428_MERGEDAY B2G_1_2_20140317_MERGEDAY B2G_1_2_20140203_MERGEDAY B2G_1_1_20140428_MERGEDAY B2G_1_1_20140317_MERGEDAY B2G_1_1_20140203_MERGEDAY B2G_1_1_0_hd_20140428_MERGEDAY B2G_1_1_0_hd_20130530182315 B2G_1_1_0_hd_20130530182315_BASE B2G_1_0_1_20130217163900 B2G_1_0_1_20130213094222 B2G_1_0_1_20130213094222_BASE B2G_1_0_0_20130125190500 B2G_1_0_0_20130115070201
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
36 lines (27 sloc) 1.6 KB
The keyboard app uses large dictionary files for auto correction and
word suggestions. If we include all the dictionaries we have, our
builds become too large. So the keyboard is configured at build time to
include only the IMEs, layouts, and dictionaries we need for a
particular build.
Dictionaries files currently only apply for the latin IME and live in
js/imes/latin/dictionaries, along with the source files (in XML) in
Android format. There is a Makefile present to convert the source files
into Firefox OS dictionaries.
At build time we only package the IMEs and dictionaries required by the
specified keyboard layouts.
We also configure the manifest.webapp file at build time, to add entry
points for each layout.
Configuration is done with the GAIA_KEYBOARD_LAYOUTS environment
variable, and there is a default value defined in the Makefile.
All dictionaries associated to layouts included in GAIA_KEYBOARD_LAYOUTS
will be preloaded into the build. Additional layouts will not be made available
in the build unless you set these layouts in GAIA_KEYBOARD_DOWNLOADABLE_LAYOUTS
variable. Layout set in that variable will be offered as downloadable layouts
in Settings > Built-in Keyboards.
GAIA_KEYBOARD_DOWNLOADABLE_LAYOUTS is default to "noPreloadDictRequired", which
is the special keyword match all the layout that can be downloaded, layout with
no dictionary required. The other keyword is "*", which simply packages all of
the layouts.
The build happens in gaia/build_stage.
The actual configuration code is in build/layout_configurator.js.
The build tests can offer some clue on configuration and the resulting build.