Preposition in IntlDateFormatter

  101143
November 19, 2017 21:55 markus.fasselt@gmail.com (Markus Fasselt)
Hello internals,

I just noticed an issue with PHP's DateFormatter and some locales.

Consider this example code:

> foreach (['en', 'de', 'da', 'pt', 'fr', 'cs'] as $locale) { > $df = new IntlDateFormatter($locale, IntlDateFormatter::LONG, IntlDateFormatter::SHORT); > var_dump($locale . ': ' . $df->format(new DateTime())); > }
which will output the following:
> string(33) "en: November 19, 2017 at 10:28 PM" > string(30) "de: 19. November 2017 um 22:28" > string(31) "da: 19. november 2017 kl. 22.28" > string(32) "pt: 19 de novembro de 2017 22:28" > string(29) "fr: 19 novembre 2017 à 22:28" > string(28) "cs: 19. listopadu 2017 22:28"
As you can see, the first examples all have a preposition before the time. But there is none for the Czech language - there should be a "v". Some other languages are missing their prepositions as well, e.g. pl and se (and probably more). Is this a bug? I am no native speaker in these languages, but got a bug report from a user and did some research. In my opinion, the prepositions are missing. Thanks, Markus
  101145
November 20, 2017 10:03 derick@php.net (Derick Rethans)
On Sun, 19 Nov 2017, Markus Fasselt wrote:

> I just noticed an issue with PHP's DateFormatter and some locales. >=20 > Consider this example code: >=20 > > foreach (['en', 'de', 'da', 'pt', 'fr', 'cs'] as $locale) { > > $df =3D new IntlDateFormatter($locale, IntlDateFormatter::LONG, > > IntlDateFormatter::SHORT); > > var_dump($locale . ': ' . $df->format(new DateTime())); > > } >=20 > which will output the following: >=20 > > string(33) "en: November 19, 2017 at 10:28 PM" > > string(30) "de: 19. November 2017 um 22:28" > > string(31) "da: 19. november 2017 kl. 22.28" > > string(32) "pt: 19 de novembro de 2017 22:28" > > string(29) "fr: 19 novembre 2017 =C3=A0 22:28" > > string(28) "cs: 19. listopadu 2017 22:28" >=20 > As you can see, the first examples all have a preposition before the time= =2E But
> there is none for the Czech language - there should be a "v". >=20 > Some other languages are missing their prepositions as well, e.g. pl and = se
> (and probably more). >=20 > Is this a bug? I am no native speaker in these languages, but got a bug r= eport
> from a user and did some research. In my opinion, the prepositions are > missing.
The information used for this is not part of the PHP source or code, but=20 comes out of ICU, which uses CLDR for its localisation information. CLDR doesn't include the "v" for Cs. From=20common/main/cs.xml: {1} {0} From=20common/main/de.xml: {1} 'um' {0} CLDR can be downloaded at http://cldr.unicode.org/index/downloads, and=20 bugs can be file at http://cldr.unicode.org/index/bug-reports cheers, Derick --=20 https://derickrethans.nl | https://xdebug.org | https://dram.io Like Xdebug? Consider a donation: https://xdebug.org/donate.php twitter: @derickr and @xdebug
  101147
November 22, 2017 21:29 markus.fasselt@gmail.com (Markus Fasselt)
Thank you Derick,

I will report it there.

Regards,

Markus


On 20.11.2017 11:03, Derick Rethans wrote:
> On Sun, 19 Nov 2017, Markus Fasselt wrote: > >> I just noticed an issue with PHP's DateFormatter and some locales. >> >> Consider this example code: >> >>> foreach (['en', 'de', 'da', 'pt', 'fr', 'cs'] as $locale) { >>> $df = new IntlDateFormatter($locale, IntlDateFormatter::LONG, >>> IntlDateFormatter::SHORT); >>> var_dump($locale . ': ' . $df->format(new DateTime())); >>> } >> >> which will output the following: >> >>> string(33) "en: November 19, 2017 at 10:28 PM" >>> string(30) "de: 19. November 2017 um 22:28" >>> string(31) "da: 19. november 2017 kl. 22.28" >>> string(32) "pt: 19 de novembro de 2017 22:28" >>> string(29) "fr: 19 novembre 2017 à 22:28" >>> string(28) "cs: 19. listopadu 2017 22:28" >> >> As you can see, the first examples all have a preposition before the time. But >> there is none for the Czech language - there should be a "v". >> >> Some other languages are missing their prepositions as well, e.g. pl and se >> (and probably more). >> >> Is this a bug? I am no native speaker in these languages, but got a bug report >> from a user and did some research. In my opinion, the prepositions are >> missing. > > The information used for this is not part of the PHP source or code, but > comes out of ICU, which uses CLDR for its localisation information. > > CLDR doesn't include the "v" for Cs. > > From common/main/cs.xml: > > > > > {1} {0} > > From common/main/de.xml: > > > > > {1} 'um' {0} > > CLDR can be downloaded at http://cldr.unicode.org/index/downloads, and > bugs can be file at http://cldr.unicode.org/index/bug-reports > > cheers, > Derick >