Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5044b35

Browse filesBrowse files
Add documentation about alpha3 methods
1 parent fa30af7 commit 5044b35
Copy full SHA for 5044b35

File tree

1 file changed

+51
-3
lines changed
Filter options

1 file changed

+51
-3
lines changed

‎components/intl.rst

Copy file name to clipboardExpand all lines: components/intl.rst
+51-3Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,20 @@ The ``Languages`` class provides access to the name of all languages::
7979
$language = Languages::getName('fr');
8080
// => 'French'
8181

82+
If you want to you can also use the ISO 639-2 three-letter language codes instead of
83+
the ISO 639-1 two-letter codes. (They are here called alpha3 codes.)
84+
85+
use Symfony\Component\Intl\Languages;
86+
87+
\Locale::setDefault('en');
88+
89+
$languages = Languages::getAlpha3Names();
90+
// ('languageCode' => 'languageName')
91+
// => ['abk' => 'Abkhazian', 'ace' => 'Achinese', ...]
92+
93+
$language = Languages::getAlpha3Name('fra');
94+
// => 'French'
95+
8296
All methods accept the translation locale as the last, optional parameter,
8397
which defaults to the current default locale::
8498

@@ -94,6 +108,16 @@ to catching the exception, you can also check if a given language code is valid:
94108

95109
$isValidLanguage = Languages::exists($languageCode);
96110

111+
Or if you have a three-letter language code you want to check:
112+
113+
$isValidLanguage = Languages::alpha3CodeExists($alpha3Code);
114+
115+
You may convert codes between two-letter ISO 639-1 (alpha2) and three-letter ISO 639-2 (alpha3) codes:
116+
117+
$alpha3Code = Languages::getAlpha3Code($alpha2Code);
118+
119+
$alpha2Code = Languages::getAlpha2Code($alpha3Code);
120+
97121
.. versionadded:: 4.3
98122

99123
The ``Languages`` class was introduced in Symfony 4.3.
@@ -137,34 +161,57 @@ Country Names
137161
~~~~~~~~~~~~~
138162

139163
The ``Countries`` class provides access to the name of all countries according
140-
to the `ISO 3166-1 alpha-2`_ list of officially recognized countries and
141-
territories::
164+
to the `ISO 3166-1 alpha-2`_ list and the `ISO 3166-1 alpha-3`_ list
165+
of officially recognized countries and territories::
142166

143167
use Symfony\Component\Intl\Countries;
144168

145169
\Locale::setDefault('en');
146170

171+
// Indexed with alpha-2
147172
$countries = Countries::getNames();
148173
// ('countryCode' => 'countryName')
149174
// => ['AF' => 'Afghanistan', 'AX' => 'Åland Islands', ...]
150175

176+
// Indexed with alhpa-3
177+
$countries = Countries::getAlpha3Names();
178+
// ('countryCode' => 'countryName')
179+
// => ['AFG' => 'Afghanistan', 'ALA' => 'Åland Islands', ...]
180+
151181
$country = Countries::getName('GB');
152182
// => 'United Kingdom'
153183

184+
$country = Countries::getAlpha3Name('NOR');
185+
// => 'Norway'
186+
154187
All methods accept the translation locale as the last, optional parameter,
155188
which defaults to the current default locale::
156189

157190
$countries = Countries::getNames('de');
158191
// => ['AF' => 'Afghanistan', 'EG' => 'Ägypten', ...]
159192

193+
$countries = Countries::getAlpha3Names('de');
194+
// => ['AFG' => 'Afghanistan', 'EGY' => 'Ägypten', ...]
195+
160196
$country = Countries::getName('GB', 'de');
161197
// => 'Vereinigtes Königreich'
162198

199+
$country = Countries::getName('GBR', 'de');
200+
// => 'Vereinigtes Königreich'
201+
163202
If the given country code doesn't exist, the methods trigger a
164203
:class:`Symfony\\Component\\Intl\\Exception\\MissingResourceException`. In addition
165204
to catching the exception, you can also check if a given country code is valid::
166205

167-
$isValidCountry = Countries::exists($countryCode);
206+
$isValidCountry = Countries::exists($alpha2Code);
207+
208+
$isValidCountry = Countries::alpha3CodeExists($alpha2Code);
209+
210+
You may convert codes between two-letter alpha2 and three-letter alpha3 codes:
211+
212+
$alpha3Code = Countries::getAlpha3Code($alpha2Code);
213+
214+
$alpha2Code = Countries::getAlpha2Code($alpha3Code);
168215

169216
.. versionadded:: 4.3
170217

@@ -356,5 +403,6 @@ Learn more
356403
.. _ICU library: http://site.icu-project.org/
357404
.. _`Unicode ISO 15924 Registry`: https://www.unicode.org/iso15924/iso15924-codes.html
358405
.. _`ISO 3166-1 alpha-2`: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
406+
.. _`ISO 3166-1 alpha-3`: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
359407
.. _`UTC/GMT time offsets`: https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
360408
.. _`daylight saving time (DST)`: https://en.wikipedia.org/wiki/Daylight_saving_time

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.