Regional Configuration¶
Like most operating systems, CrOS supports user-selectable region settings, including keyboard layouts, languages, and time zones. In order to support an ideal out-of-box experience (OOBE), each device must be shipped with regional configuration suitable for its intended users. These settings are controlled by a value stored in the RO VPD (read-only vital product data) region field, and a database cros-regions.json.
This document describes how regional configurations are managed in the factory SDK.
Regions and region codes¶
A region is a market in which shipped devices share a particular configuration of keyboard layout, language, and time zone.
Each region is identified with a region code such as us
. A region
may be any of the following:
A single country, such as the United States. The region code is the two-letter ISO 3166-1 alpha-2 code, e.g.,
us
. Note that the alpha-2 code for the UK isgb
, notuk
.A non-country entity, such as Hong Kong, that has an ISO 3166-1 alpha-2 code assigned. The region code is the two-letter ISO 3166-1 alpha-2 code, e.g.,
hk
.A collection of countries or entities that share a regional configuration, such as Hispanophone Latin American countries (including Mexico, Colombia, Argentina, Peru, etc.) or Nordic countries. The region code is a unique identifier (>3 characters to avoid conflict with ISO alpha codes), e.g.,
latam-es-419
ornordic
.Part of a country or entity that has a specific regional configuration, e.g., Francophone Canada. The region code is one of the region codes described above, plus a period (
.
), plus an identifier describing the variant. For example, Francophone Canada’s region code isca.fr
.
Note that the concepts of regions and region codes, in the sense they are used in this document, are specific to the factory SDK. There is no single accepted worldwide standard for setting region configurations.
Currently, the region code is used by CrOS to derive regional data, for example locales or Wi-Fi regulatory domain. The regional data can be updated, but the region code itself is locked in VPD RO area.
The cros.factory.test.l10n.regions.Region
1 class
encapsulates a single regional configuration.
Available regions¶
Following is a table of known regions. If you need a new region, please first check the “Unconfirmed regions” section below.
Warning
Concrete VPD values (keyboard, time zone, language, etc.) in this table are provided for reference only; they are not intended to be copied-and-pasted from this table into shop floor servers. Rather, shop floor servers should provide only the region code for the device. See Language codes.
Description |
Region Code |
Keyboard |
Time Zone |
Lang. |
Layout |
Notes |
---|---|---|---|---|---|---|
Argentina |
ar |
xkb:latam::spa |
America/Argentina/Buenos_Aires |
es-AR |
ISO |
|
Australia |
au |
xkb:us::eng |
Australia/Sydney |
en-AU |
ANSI |
|
Austria |
at |
xkb:de::ger, xkb:de:neo:ger |
Europe/Vienna |
de, en-GB |
ISO |
|
Belgium |
be |
xkb:be::nld |
Europe/Brussels |
en-GB |
ISO |
|
Brazil (ABNT) |
br.abnt |
xkb:br::por |
America/Sao_Paulo |
pt-BR |
ISO |
|
Brazil (ABNT2) |
br |
xkb:br::por |
America/Sao_Paulo |
pt-BR |
ABNT2 |
|
Brazil (US Intl) |
br.usintl |
xkb:us:intl:eng |
America/Sao_Paulo |
pt-BR |
ANSI |
|
Bulgaria |
bg |
xkb:bg::bul, xkb:bg:phonetic:bul |
Europe/Sofia |
bg, tr, en-US |
ANSI |
|
Canada (French keyboard) |
ca.fr |
xkb:ca::fra |
America/Toronto |
fr-CA |
ISO |
|
Canada (US keyboard) |
ca.ansi |
xkb:us::eng |
America/Toronto |
en-CA |
ANSI |
|
Canada (hybrid ANSI) |
ca.hybridansi |
xkb:ca:eng:eng |
America/Toronto |
en-CA |
ANSI |
|
Canada (hybrid ISO) |
ca.hybrid |
xkb:ca:eng:eng |
America/Toronto |
en-CA |
ISO |
|
Canada (multilingual) |
ca.multix |
xkb:ca:multix:fra |
America/Toronto |
fr-CA |
ISO |
|
Chile |
cl |
xkb:latam::spa |
America/Santiago |
es-419 |
ANSI |
|
Colombia |
co |
xkb:latam::spa |
America/Bogota |
es-CO |
ANSI |
|
Croatia |
hr |
xkb:hr::scr |
Europe/Zagreb |
hr, en-GB |
ISO |
|
Czech Republic |
cz |
xkb:cz::cze, xkb:cz:qwerty:cze |
Europe/Prague |
cs, en-GB |
ISO |
|
Estonia |
ee |
xkb:ee::est |
Europe/Tallinn |
et, ru, en-GB |
ISO |
|
Finland |
fi |
xkb:fi::fin |
Europe/Helsinki |
fi |
ISO |
|
France |
fr |
xkb:fr::fra |
Europe/Paris |
fr |
ISO |
|
Germany |
de |
xkb:de::ger |
Europe/Berlin |
de |
ISO |
|
Greece |
gr |
xkb:us::eng, xkb:gr::gre, t13n:el |
Europe/Athens |
el, en-GB |
ANSI |
|
Gulf Cooperation Council (GCC) |
gcc |
xkb:us::eng, m17n:ar, t13n:ar |
Asia/Riyadh |
ar, en-GB |
ANSI |
|
Hispanophone Latin America |
latam-es-419 |
xkb:latam::spa |
America/Mexico_City |
es-419 |
ISO |
|
Hong Kong |
hk |
xkb:us::eng, ime:zh-t:cangjie, ime:zh-t:quick, ime:zh-t:array, ime:zh-t:dayi, ime:zh-t:zhuyin, ime:zh-t:pinyin |
Asia/Hong_Kong |
zh-TW, en-GB, zh-CN |
ANSI |
|
Iceland |
is |
xkb:is::ice |
Atlantic/Reykjavik |
is, en-GB |
ISO |
|
India |
in |
xkb:us::eng |
Asia/Calcutta |
en-US |
ANSI |
|
India with Indian keyboard |
in.hybrid |
xkb:in::eng, xkb:us::eng |
Asia/Calcutta |
en-IN, en-US |
ANSI |
|
Indonesia |
id |
xkb:us::ind |
Asia/Jakarta |
id, en-GB |
ANSI |
|
Ireland |
ie |
xkb:gb:extd:eng |
Europe/Dublin |
en-GB |
ISO |
|
Israel |
il |
xkb:us::eng, xkb:il::heb, t13n:he |
Asia/Jerusalem |
he, en-US, ar |
ANSI |
|
Italy |
it |
xkb:it::ita |
Europe/Rome |
it |
ISO |
|
Japan |
jp |
xkb:jp::jpn, ime:jp:mozc_jp |
Asia/Tokyo |
ja |
JIS |
|
Japan with US keyboard |
jp.us |
xkb:us::eng, ime:jp:mozc_us |
Asia/Tokyo |
ja |
ANSI |
|
Kazakhstan |
kz |
xkb:us::eng, xkb:kz::kaz, xkb:ru::rus |
Asia/Almaty |
kk, ru |
ANSI |
|
Kuwait |
kw |
xkb:us::eng, m17n:ar, t13n:ar |
Asia/Kuwait |
ar, en |
ANSI |
|
Malaysia |
my |
xkb:us::eng |
Asia/Kuala_Lumpur |
ms |
ANSI |
|
Mexico |
mx |
xkb:latam::spa |
America/Mexico_City |
es-MX |
ANSI |
|
Netherlands |
nl |
xkb:us:intl:eng |
Europe/Amsterdam |
nl |
ANSI |
|
New Zealand |
nz |
xkb:us::eng |
Pacific/Auckland |
en-NZ |
ANSI |
|
Nigeria |
ng |
xkb:us:intl:eng |
Africa/Lagos |
en-GB |
ANSI |
|
Nordics |
nordic |
xkb:se::swe |
Europe/Stockholm |
en-US |
ISO |
|
Peru |
pe |
xkb:latam::spa |
America/Lima |
es-419 |
ANSI |
|
Philippines |
ph |
xkb:us::eng |
Asia/Manila |
en-US |
ANSI |
|
Poland |
pl |
xkb:pl::pol |
Europe/Warsaw |
pl, en-GB |
ANSI |
|
Portugal |
pt |
xkb:pt::por |
Europe/Lisbon |
pt-PT, en-GB |
ISO |
|
Romania |
ro |
xkb:us::eng, xkb:ro::rum |
Europe/Bucharest |
ro, hu, de, en-GB |
ISO |
|
Romania with US International keyboard layout |
ro.usintl |
xkb:us:intl:eng |
Europe/Bucharest |
ro, hu, de, en-GB |
ANSI |
|
Romania with US keyboard |
ro.us |
xkb:us::eng, xkb:ro::rum |
Europe/Bucharest |
ro, hu, de, en-GB |
ANSI |
|
Russia |
ru |
xkb:us::eng, xkb:ru::rus |
Europe/Moscow |
ru |
ANSI |
|
Saudi Arabia |
sa |
xkb:us::eng |
Asia/Riyadh |
ar, en |
ANSI |
|
Singapore |
sg |
xkb:us::eng |
Asia/Singapore |
en-GB |
ANSI |
|
Slovakia |
sk |
xkb:us::eng, xkb:sk::slo |
Europe/Bratislava |
sk, hu, cs, en-GB |
ISO |
|
South Africa |
za |
xkb:za:gb:eng |
Africa/Johannesburg |
en-ZA |
ISO |
|
South Africa |
za.us |
xkb:us::eng |
Africa/Johannesburg |
en-ZA |
ANSI |
|
South Korea |
kr |
xkb:us::eng, ime:ko:hangul |
Asia/Seoul |
ko, en-US |
ANSI |
|
Spain |
es |
xkb:es::spa |
Europe/Madrid |
es |
ISO |
|
Sweden |
se |
xkb:se::swe |
Europe/Stockholm |
sv |
ISO |
|
Switzerland |
ch |
xkb:ch::ger |
Europe/Zurich |
de-CH |
ISO |
|
Switzerland (US Intl) |
ch.usintl |
xkb:us:intl:eng |
Europe/Zurich |
en-US |
ANSI |
|
Taiwan |
tw |
xkb:us::eng, ime:zh-t:zhuyin, ime:zh-t:array, ime:zh-t:dayi, ime:zh-t:cangjie, ime:zh-t:quick, ime:zh-t:pinyin |
Asia/Taipei |
zh-TW, en-US |
ANSI |
|
Thailand |
th |
xkb:us::eng, m17n:th, m17n:th_pattajoti, m17n:th_tis |
Asia/Bangkok |
th, en-GB |
ANSI |
|
Turkey |
tr |
xkb:tr::tur, xkb:tr:f:tur |
Europe/Istanbul |
tr, en-GB |
ISO |
|
UAE |
ae |
xkb:us::eng |
Asia/Dubai |
ar |
ANSI |
|
UK |
gb |
xkb:gb:extd:eng |
Europe/London |
en-GB |
ISO |
|
UK (US extended keyboard) |
gb.usext |
xkb:us:altgr-intl:eng |
Europe/London |
en-GB |
ISO |
|
US (English Intl) |
us.intl |
xkb:us:intl:eng |
America/Los_Angeles |
en-US |
ANSI |
|
Ukraine |
ua |
xkb:us::eng, xkb:ua::ukr |
Europe/Kiev |
uk, en-US |
ANSI |
|
United States |
us |
xkb:us::eng |
America/Los_Angeles |
en-US |
ANSI |
|
Uruguay |
uy |
xkb:latam::spa |
America/Montevideo |
es-419 |
ANSI |
|
Vietnam |
vn |
xkb:us::eng, m17n:vi_telex, m17n:vi_vni, m17n:vi_viqr, m17n:vi_tcvn |
Asia/Ho_Chi_Minh |
vi, en-GB, en-US, fr, zh-TW |
ANSI |
Unconfirmed regions¶
Following is a table of unconfirmed regions (not ready for use in shipping products). If you need to use one of these please see http://goto/vpdsettings and src/platform2/regions/README for how to proceed.
For more information on how to choose field values, see Selecting values for new regions.
Description |
Region Code |
Keyboard |
Time Zone |
Lang. |
Layout |
Notes |
---|---|---|---|---|---|---|
Afghanistan |
af |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Aland Islands |
ax |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Albania |
al |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Algeria |
dz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
American Samoa |
as |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Andorra |
ad |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Angola |
ao |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Anguilla |
ai |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Antigua and Barbuda |
ag |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Armenia |
am |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Aruba |
aw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Azerbaijan |
az |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bahamas |
bs |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bahrain |
bh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bangladesh |
bd |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Barbados |
bb |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Belarus |
by |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Belize |
bz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Benin |
bj |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bermuda |
bm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bhutan |
bt |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bolivia |
bo |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Bonaire, Saint Eustatius and Saba |
bq |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Bosnia and Herzegovina |
ba |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Botswana |
bw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
British Indian Ocean Territory |
io |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
British Virgin Islands |
vg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Brunei |
bn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Burkina Faso |
bf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Burundi |
bi |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cambodia |
kh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cameroon |
cm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cape Verde |
cv |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cayman Islands |
ky |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Central African Republic |
cf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Chad |
td |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
China |
cn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Christmas Island |
cx |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cocos Islands |
cc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Comoros |
km |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cook Islands |
ck |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Costa Rica |
cr |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Cuba |
cu |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Curacao |
cw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Cyprus |
cy |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Democratic Republic of the Congo |
cd |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Denmark |
dk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Djibouti |
dj |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Dominica |
dm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Dominican Republic |
do |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
East Timor |
tl |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Ecuador |
ec |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Egypt |
eg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
El Salvador |
sv |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Equatorial Guinea |
gq |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Eritrea |
er |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Ethiopia |
et |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Falkland Islands |
fk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Faroe Islands |
fo |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Fiji |
fj |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
French Guiana |
gf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
French Polynesia |
pf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
French Southern Territories |
tf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Gabon |
ga |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Gambia |
gm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Georgia |
ge |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Ghana |
gh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Gibraltar |
gi |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Greenland |
gl |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Grenada |
gd |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guadeloupe |
gp |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guam |
gu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guatemala |
gt |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Guernsey |
gg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guinea |
gn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guinea-Bissau |
gw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Guyana |
gy |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Haiti |
ht |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Honduras |
hn |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Hungary |
hu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Iran |
ir |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Iraq |
iq |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Isle of Man |
im |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Ivory Coast |
ci |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Jamaica |
jm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Jersey |
je |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Jordan |
jo |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Kenya |
ke |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Kiribati |
ki |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Kyrgyzstan |
kg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Laos |
la |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Latvia |
lv |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Lebanon |
lb |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Lesotho |
ls |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Liberia |
lr |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Libya |
ly |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Liechtenstein |
li |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Lithuania |
lt |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Luxembourg |
lu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Macao |
mo |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Macedonia |
mk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Madagascar |
mg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Malawi |
mw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Maldives |
mv |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mali |
ml |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Malta |
mt |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Marshall Islands |
mh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Martinique |
mq |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mauritania |
mr |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mauritius |
mu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mayotte |
yt |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Micronesia |
fm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Moldova |
md |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Monaco |
mc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mongolia |
mn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Montenegro |
me |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Montserrat |
ms |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Morocco |
ma |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Mozambique |
mz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Myanmar |
mm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Namibia |
na |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Nauru |
nr |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Nepal |
np |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
New Caledonia |
nc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Nicaragua |
ni |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Niger |
ne |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Niue |
nu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Norfolk Island |
nf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
North Korea |
kp |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Northern Mariana Islands |
mp |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Norway |
no |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Oman |
om |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Pakistan |
pk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Palau |
pw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Palestinian Territory |
ps |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Panama |
pa |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Papua New Guinea |
pg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Paraguay |
py |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Pitcairn |
pn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Puerto Rico |
pr |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Qatar |
qa |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Republic of the Congo |
cg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Reunion |
re |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Rwanda |
rw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Barthelemy |
bl |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Helena |
sh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Kitts and Nevis |
kn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Lucia |
lc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Martin |
mf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Pierre and Miquelon |
pm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Saint Vincent and the Grenadines |
vc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Samoa |
ws |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
San Marino |
sm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Sao Tome and Principe |
st |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Senegal |
sn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Serbia |
rs |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Seychelles |
sc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Sierra Leone |
sl |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Sint Maarten |
sx |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Slovenia |
si |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Solomon Islands |
sb |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Somalia |
so |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
South Georgia and the South Sandwich Islands |
gs |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
South Sudan |
ss |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Sri Lanka |
lk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Sudan |
sd |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Suriname |
sr |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Svalbard and Jan Mayen |
sj |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Swaziland |
sz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Syria |
sy |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tajikistan |
tj |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tanzania |
tz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Togo |
tg |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tokelau |
tk |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tonga |
to |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Trinidad and Tobago |
tt |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tunisia |
tn |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Turkmenistan |
tm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Turks and Caicos Islands |
tc |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Tuvalu |
tv |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
U.S. Virgin Islands |
vi |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Uganda |
ug |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
United States Minor Outlying Islands |
um |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Uzbekistan |
uz |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Vanuatu |
vu |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Vatican |
va |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Venezuela |
ve |
xkb:latam::spa |
To be reviewed |
es-419 |
To be reviewed |
|
Wallis and Futuna |
wf |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Western Sahara |
eh |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Yemen |
ye |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Zambia |
zm |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
|
Zimbabwe |
zw |
To be reviewed |
To be reviewed |
To be reviewed |
To be reviewed |
How VPD values affect the CrOS user experience¶
Selecting values for new regions¶
When adding a new region, you must choose the appropriate values for each field. This section describes how to choose these values.
Note that two fields (keyboards
and language_codes
) are lists,
while the others are strings. When declaring regions with multiple
keyboards or language codes, make sure to use a Python list (e.g.,
['en', 'fr']
) for those fields and not a comma-separated string (e.g.,
'en,fr'
). The values are ultimately encoded as a comma-separated
string in the VPD, but in the regions database they are represented as
Python lists.
The exact set of values supported by CrOS, naturally, depends on the
CrOS image that will be installed. For instance, multiple keyboards
and language codes are supported only in M34+, and input methods other
than xkb:...
are supported only in M38+. Always test your
region settings to make sure they work as you expect on the CrOS image
that will be used (see Testing region settings).
Region code¶
See Regions and region codes for information about region codes.
This field is stored in the VPD but is not currently used by CrOS.
Keyboard layouts (input methods)¶
The keyboards
field is a list of input method IDs. The first one is the
default. In general these should correspond to the languages chosen;
when a language is selected, only keyboards that represent a valid
choice for that language are shown.
Each identifier must start with either xkb:
or m17n:
or
ime:
. As of M38, valid keyboard layout identifiers are:
xkb:...
: XKB input methods listed in any file in JSON files in the Chromium src/chrome/browser/resources/chromeos/input_method directory. (Look for theid
attributes of eachinput_components
list entry.) For example, you will findxkb:us::eng
in google_xkb_manifest.json.ime:...
: (M38+ only) Any hard-coded strings listed inkEngineIdMigrationMap
in Chromium’s input_method_util.cc. Currently this is:ime:zh-t:quick
ime:zh-t:pinyin
(not yet supported as of this writing, but should be added in M38)ime:ko:hangul
ime:ko:hangul_2set
m17n:...
: (M38+ only) Strings with a prefix inkEngineIdMigrationMap
. The prefix is rewritten according to the map, and there must be a corresponding input method ID in some file in theinput_method
directory. For instance,m17n:ar
will be rewritten tovkd_ar
according to the map.vkd_ar
is present ingoogle_input_tools_manifest.js
.
Since a Latin keyboard is required for login, the first entry in this
list should be a Latin layout corresponding to the first language in
the language_codes
field. If that language has a non-Latin
keyboard, then xkb:us::eng
should be used as the first entry.
See Where regions are defined for information on where to add the new region to the codebase.
Time zone¶
The time_zone
field specifies a single time zone that will be used as the
default timezone. M35+ supports automatic time zone detection based on
geolocation, but it is still worthwhile to choose a reasonable default
time zone default.
This must be a tz database time zone
identifier (e.g., America/Los_Angeles
). See timezone_settings.cc for supported time zones.
There is no hard-and-fast rule for selecting the time zone, but as a rule of thumb, you can choose the city representing the time zone in the region with the largest population.
Language codes¶
The language_codes
field is a list of language codes. See the
kAcceptLanguageList
array in l10n_util.cc
for supported languages.
Keyboard mechanical layout¶
This describes the shape of keys. It is used only to display an appropriate keyboard onscreen during the keyboard test; it is not stored in the VPD or used by Chrome OS. This may be one of:
ANSI
for ANSI (US-like) keyboard layouts with a horizontal Enter key.ISO
for ISO (UK-like) keyboard layouts with a vertical Enter key.JIS
for the JIS (Japan-specific) keyboard layout.ABNT2
for the Brazilian ABNT2 keyboard layout, which is like the ISO layout but has 12 keys between the shift keys (the ISO layout has 11).
Description¶
This is simply a brief, human-readable name of the region (e.g.,
Canada (French keyboard)
. It is used only in documentation.
Notes¶
This optional field may contain any notes necessary to describe the region and any rationale for its settings. It is used only in documentation.
Testing region settings¶
When adding a new region, you should test your chosen values to make sure that the values are valid, and the user experience in OOBE is as you expect.
First, you should run unit tests making sure that your region settings
are valid. To test values in the public repo, use
py/test/l10n/regions_unittest.py
. To test values in a private or board
overlay, use make overlay-board &&
overlay-board/py/test/l10n/regions_unittest.py
, where board
is
either the name of your board or the string private
.
To check the OOBE user experience, you can use the
py/experimental/oobe/region/run_region_oobe.py
script. This script ssh’es
into a CrOS device, sets its VPD fields according to a region specified on the
command line, and runs the OOBE flow. The device should be running a test
image, and the factory toolkit should not be enabled.
Note that region configurations from your local client are used.
For example, to ssh into a device called crosdev
and test a new
region named xx
that you have added to the public overlay:
cd ~/trunk/src/platform/factory
py/experimental/oobe/region/run_region_oobe.py crosdev xx
Or if the region is in the private overlay:
cd ~/trunk/src/platform/factory
make overlay-private
overlay-private/py/experimental/oobe/region/run_region_oobe.py crosdev xx
How regions are set in the factory flow¶
In general, the test list should contain an invocation of the
shopfloor_service
test with the GetDeviceInfo
method to
obtain the device-specific data, including region code in VPD.
For instance:
{
"pytest_name": "shopfloor_service",
"args": {
"method": "GetDeviceInfo"
}
}
The returned data from remote Shopfloor Service should return a dictionary to be stored in factory state data shelve (DeviceData) with region for VPD as:
{'ro.vpd.region': 'us'}
The write_device_data_to_vpd
test can then be used to read the
ro.vpd.region
entry from the device data dictionary and provision into
firmware VPD RO region.
For example:
{
"pytest_name": "write_device_data_to_vpd"
}
Region API¶
- class cros.factory.test.l10n.regions.Region(region_code, keyboards, time_zone, language_codes, keyboard_mechanical_layout, description=None, notes=None)¶
Comprehensive, standard locale configuration per country/region.
See Selecting values for new regions for detailed information on how to set these values.
- FIELDS = ['region_code', 'keyboards', 'time_zone', 'language_codes', 'keyboard_mechanical_layout']¶
Names of fields that define the region.
- region_code = None¶
A unique identifier for the region. This may be a lower-case ISO 3166-1 alpha-2 code (e.g.,
us
), a variant within an alpha-2 entity (e.g.,ca.fr
), or an identifier for a collection of countries or entities (e.g.,latam-es-419
ornordic
). See Regions and region codes.Note that
uk
is not a valid identifier;gb
is used as it is the real alpha-2 code for the UK.
- keyboards = None¶
A list of logical keyboard layout identifiers (e.g.,
xkb:us:intl:eng
orm17n:ar
).This was used for legacy VPD
keyboard_layouts
value.
- time_zone = None¶
A tz database time zone identifier (e.g.,
America/Los_Angeles
). See timezone_settings.cc for supported time zones.This was used for legacy VPD
initial_timezone
value.
- language_codes = None¶
A list of default language codes (e.g.,
en-US
); see l10n_util.cc for supported languages.This was used for legacy VPD
initial_locale
value.
- keyboard_mechanical_layout = None¶
The keyboard’s mechanical layout (
ANSI
[US-like],ISO
[UK-like],JIS
[Japanese],ABNT2
[Brazilian] orKS
[Korean]).
- description = None¶
A human-readable description of the region. This defaults to
region_code
if not set.
- notes = None¶
Notes about the region. This may be None.
- GetFieldsDict()¶
Returns a dict of all substantive fields.
notes and description are excluded.
The cros.factory.test.l10n.regions.BuildRegionsDict()
method is
used to obtain a list of all confirmed regions. In general, code
should not invoke this directly but rather use
cros.factory.test.l10n.regions.REGIONS
.
- cros.factory.test.l10n.regions.BuildRegionsDict(include_all=False)¶
Builds a dictionary mapping region code to
py.l10n.regions.Region
object.The regions include:
cros.factory.l10n.regions.REGIONS_LIST
Only if
include_all
is true:cros.factory.l10n.regions.UNCONFIRMED_REGIONS_LIST
A region may only appear in one of the above lists, or this function will (deliberately) fail.
Where regions are defined¶
The complete set of confirmed regions (regions available for use in
shipping products) is specified by
cros.factory.test.l10n.regions.REGIONS_LIST
.
In addition, there is a module-level attributes used to accumulate
region configuration settings that are thought to be correct but have
not been completely verified yet:
cros.factory.test.l10n.regions.REGIONS_LIST
.
If you cannot add a region to the public factory repository, you may add it to the private repository that overrides the REGION_LIST.
There is a reference list of “private” regions, shared by private board
overlays, in the chromeos-partner-overlay
repository.
Footnotes
- 1
“l10n” is a common abbreviation for “localization”: “l”, plus 10 letters “ocalizatio”, plus “n”.)