PHP 8.6.0 Beta 1 is available for testing

Функции интернационализации

Введение

Модуль интернационализации (далее — Intl) — обёртка над библиотекой » ICU. Компоненты модуля Intl открывают PHP-программистам доступ к форматированию, транслитерации, преобразованию кодировок, операциям с календарём, совместимому » с алгоритмом UCA сопоставлению, определению границ текста, работе с идентификаторами локалей, часовыми поясами, графемами и к другим операциям, которые модуль выполняет с учётом языковых и региональных стандартов.

Сходство API модуля Intl и библиотеки ICU помогает применять навык работы с функциями библиотеки в языках C/C++ или Java и при работе с API библиотеки ICU в PHP и делает документацию к библиотеке ICU полезной для понимания закулисной работы функций PHP-модуля.

Каждый компонент PHP-модуля Intl раскрывает API к конкретному модулю библиотеки API:

  • Модуль сопоставления: инструмент сравнения строк с учётом языковых и региональных правил сортировки.
  • Модуль форматирования чисел: форматирует числа с учётом локали, по шаблону или набору правил; разбирает строки с числами.
  • Модуль форматирования сообщений: создаёт сообщение по шаблону и форматирует числа, даты или другие данные в шаблоне по правилам языкового и регионального стандарта; разбирает сообщения для извлечения данных. При формировании сообщения поддерживаются: множественное число, числа с учётом локали, валюты, условные конструкции и другие подстановки.
  • Модуль нормализации: приводит текст к нормализованным формам, которые определяет стандарт Юникод. Проверяет, соответствует ли строка конкретной форме нормализации.
  • Модуль локали: разбирает на подтеги, собирает, находит по приоритету и фильтрует идентификаторы локалей.
  • Модуль календаря: класс, который выполняет операции с календарём с учётом локали: получает сведения о часовом поясе, первом дне недели или текущем режиме летнего времени.
  • Модуль часового пояса: обёртка » над базой данных IANA, которая содержит сведения о часовых поясах мира.
  • Модуль форматирования даты: форматирует дату и время по правилам языкового и регионального стандарта, по шаблону или набору правил; разбирает строки с датой и временем.
  • Модуль транслитерации: преобразовывает строки на национальных, региональных и других языках в латинское представление.
Добавить

Примечания пользователей 1 note

up
0
Anonymous
2 months ago
The intl extension is very useful, but it is quite low-level. In practice, using it directly can become verbose, especially for common localisation tasks that require combining multiple ICU classes and options.

For many applications, it can be helpful to use a higher-level interface on top of ext-intl. An example of such a package is Cosmo:

https://cosmo.miloun.com/?lang=php

It provides a more practical API for common tasks such as formatting numbers, money, percentages, dates, units, plurals, lists, and locale names, while still being based on ICU / intl.
To Top