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 8a6b025

Browse filesBrowse files
committed
minor #11443 Documented the new Intl classes (javiereguiluz)
This PR was squashed before being merged into the master branch (closes #11443). Discussion ---------- Documented the new Intl classes Fixes #11221. Commits ------- 5325b15 Documented the new Intl classes
2 parents 2c7998b + 5325b15 commit 8a6b025
Copy full SHA for 8a6b025

File tree

Expand file treeCollapse file tree

1 file changed

+73
-45
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+73
-45
lines changed

‎components/intl.rst

Copy file name to clipboardExpand all lines: components/intl.rst
+73-45Lines changed: 73 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -209,125 +209,152 @@ locale will be merged. In order to suppress this behavior, the last parameter
209209
Accessing ICU Data
210210
------------------
211211

212-
The ICU data is located in several "resource bundles". You can access a PHP
213-
wrapper of these bundles through the static
214-
:class:`Symfony\\Component\\Intl\\Intl` class. At the moment, the following
215-
data is supported:
212+
This component provides the following ICU data:
216213

217214
* `Language and Script Names`_
218-
* `Country Names`_
215+
* `Country and Region Names`_
219216
* `Locales`_
220217
* `Currencies`_
221218

222219
Language and Script Names
223220
~~~~~~~~~~~~~~~~~~~~~~~~~
224221

225-
The translations of language and script names can be found in the language
226-
bundle::
222+
The ``Languages`` class provides access to the name of all languages::
227223

228-
use Symfony\Component\Intl\Intl;
224+
use Symfony\Component\Intl\Languages;
229225

230226
\Locale::setDefault('en');
231227

232-
$languages = Intl::getLanguageBundle()->getLanguageNames();
228+
$languages = Languages::getNames();
233229
// => ['ab' => 'Abkhazian', ...]
234230

235-
$language = Intl::getLanguageBundle()->getLanguageName('de');
231+
$language = Languages::getName('de');
236232
// => 'German'
237233

238-
$language = Intl::getLanguageBundle()->getLanguageName('de', 'AT');
234+
$language = Languages::getName('de', 'AT');
239235
// => 'Austrian German'
240236

241-
$scripts = Intl::getLanguageBundle()->getScriptNames();
237+
All methods accept the translation locale as the last, optional parameter,
238+
which defaults to the current default locale::
239+
240+
$languages = Languages::getNames('de');
241+
// => ['ab' => 'Abchasisch', ...]
242+
243+
.. versionadded:: 4.3
244+
245+
The ``Languages`` class was introduced in Symfony 4.3.
246+
247+
The ``Scripts`` class provides access to the optional four-letter script code
248+
that can follow the language code according to the `Unicode ISO 15924 Registry`_
249+
(e.g. ``HANS`` in ``zh_HANS`` for simplified Chinese and ``HANT`` in ``zh_HANT``
250+
for traditional Chinese)::
251+
252+
use Symfony\Component\Intl\Scripts;
253+
254+
\Locale::setDefault('en');
255+
256+
$scripts = Scripts::getNames();
242257
// => ['Arab' => 'Arabic', ...]
243258

244-
$script = Intl::getLanguageBundle()->getScriptName('Hans');
259+
$script = Scripts::getName('Hans');
245260
// => 'Simplified'
246261

247-
All methods accept the translation locale as the last, optional parameter,
248-
which defaults to the current default locale::
262+
.. versionadded:: 4.3
249263

250-
$languages = Intl::getLanguageBundle()->getLanguageNames('de');
251-
// => ['ab' => 'Abchasisch', ...]
264+
The ``Scrcipts`` class was introduced in Symfony 4.3.
265+
266+
.. _country-names:
252267

253-
Country Names
254-
~~~~~~~~~~~~~
268+
Country and Region Names
269+
~~~~~~~~~~~~~~~~~~~~~~~~
255270

256-
The translations of country names can be found in the region bundle::
271+
In the world there are some territorial disputes that make it hard to define
272+
what a country is. That's why the Intl component provides a ``Regions`` class
273+
instead of a ``Countries`` class::
257274

258-
use Symfony\Component\Intl\Intl;
275+
use Symfony\Component\Intl\Regions;
259276

260277
\Locale::setDefault('en');
261278

262-
$countries = Intl::getRegionBundle()->getCountryNames();
279+
$countries = Regions::getNames();
263280
// => ['AF' => 'Afghanistan', ...]
264281

265-
$country = Intl::getRegionBundle()->getCountryName('GB');
282+
$country = Regions::getName('GB');
266283
// => 'United Kingdom'
267284

268285
All methods accept the translation locale as the last, optional parameter,
269286
which defaults to the current default locale::
270287

271-
$countries = Intl::getRegionBundle()->getCountryNames('de');
288+
$countries = Regions::getNames('de');
272289
// => ['AF' => 'Afghanistan', ...]
273290

291+
.. versionadded:: 4.3
292+
293+
The ``Regions`` class was introduced in Symfony 4.3.
294+
274295
Locales
275296
~~~~~~~
276297

277-
The translations of locale names can be found in the locale bundle::
298+
A locale is the combination of a language and a region. For example, "Chinese"
299+
is the language and ``zh_Hans_MO`` is the locale for "Chinese" (language) +
300+
"Simplified" (script) + "Macau SAR China" (region). The ``Locales`` class
301+
provides access to the name of all locales::
278302

279-
use Symfony\Component\Intl\Intl;
303+
use Symfony\Component\Intl\Locales;
280304

281305
\Locale::setDefault('en');
282306

283-
$locales = Intl::getLocaleBundle()->getLocaleNames();
307+
$locales = Locales::getNames();
284308
// => ['af' => 'Afrikaans', ...]
285309

286-
$locale = Intl::getLocaleBundle()->getLocaleName('zh_Hans_MO');
310+
$locale = Locales::getName('zh_Hans_MO');
287311
// => 'Chinese (Simplified, Macau SAR China)'
288312

289313
All methods accept the translation locale as the last, optional parameter,
290314
which defaults to the current default locale::
291315

292-
$locales = Intl::getLocaleBundle()->getLocaleNames('de');
316+
$locales = Locales::getNames('de');
293317
// => ['af' => 'Afrikaans', ...]
294318

319+
.. versionadded:: 4.3
320+
321+
The ``Locales`` class was introduced in Symfony 4.3.
322+
295323
Currencies
296324
~~~~~~~~~~
297325

298-
The translations of currency names and other currency-related information can
299-
be found in the currency bundle::
326+
The ``Currencies`` class provides access to the name of all currencies as well
327+
as some of their information (symbol, fraction digits, etc.)::
300328

301-
use Symfony\Component\Intl\Intl;
329+
use Symfony\Component\Intl\Currencies;
302330

303331
\Locale::setDefault('en');
304332

305-
$currencies = Intl::getCurrencyBundle()->getCurrencyNames();
333+
$currencies = Currencies::getNames();
306334
// => ['AFN' => 'Afghan Afghani', ...]
307335

308-
$currency = Intl::getCurrencyBundle()->getCurrencyName('INR');
336+
$currency = Currencies::getName('INR');
309337
// => 'Indian Rupee'
310338

311-
$symbol = Intl::getCurrencyBundle()->getCurrencySymbol('INR');
339+
$symbol = Currencies::getSymbol('INR');
312340
// => '₹'
313341

314-
$fractionDigits = Intl::getCurrencyBundle()->getFractionDigits('INR');
342+
$fractionDigits = Currencies::getFractionDigits('INR');
315343
// => 2
316344

317-
$roundingIncrement = Intl::getCurrencyBundle()->getRoundingIncrement('INR');
345+
$roundingIncrement = Currencies::getRoundingIncrement('INR');
318346
// => 0
319347

320-
All methods (except for
321-
:method:`Symfony\\Component\\Intl\\ResourceBundle\\CurrencyBundleInterface::getFractionDigits`
322-
and
323-
:method:`Symfony\\Component\\Intl\\ResourceBundle\\CurrencyBundleInterface::getRoundingIncrement`)
324-
accept the translation locale as the last, optional parameter, which defaults
325-
to the current default locale::
348+
All methods (except for ``getFractionDigits()`` and ``getRoundingIncrement()``)
349+
accept the translation locale as the last, optional parameter, which defaults to
350+
the current default locale::
326351

327-
$currencies = Intl::getCurrencyBundle()->getCurrencyNames('de');
352+
$currencies = Currencies::getNames('de');
328353
// => ['AFN' => 'Afghanische Afghani', ...]
329354

330-
That's all you need to know for now. Have fun coding!
355+
.. versionadded:: 4.3
356+
357+
The ``Currencies`` class was introduced in Symfony 4.3.
331358

332359
Learn more
333360
----------
@@ -346,3 +373,4 @@ Learn more
346373
.. _intl extension: https://php.net/manual/en/book.intl.php
347374
.. _install the intl extension: https://php.net/manual/en/intl.setup.php
348375
.. _ICU library: http://site.icu-project.org/
376+
.. _`Unicode ISO 15924 Registry`: https://www.unicode.org/iso15924/iso15924-codes.html

0 commit comments

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