Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Locale, PHP, funkce setlocale - HH 8.04 [vyřešeno]  (Přečteno 8467 krát)

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Locale, PHP, funkce setlocale - HH 8.04 [vyřešeno]
« kdy: 30 Června 2008, 17:47:51 »
Třeba bude někdo vědět.
Prosím které balíčky musím nainstalovat na Ubuntu server, aby korektně chodila funkce setlocale(LC_ALL,"cs_CZ") v PHP.
Nějaká locales mám nainstalovaná, dokonce snad i česká, ale v PHP se to nijak neprojeví a místo pondělí mi to vypisuje Monday, datum a čas je neustále v EN formátu.

Kdyby jste někdo náhodou věděl korektní parametry pro setlocale nebo co kde doinstalovat, aby to fungovalo. Kódování mám UTF-8.

Moc díky, zatím to řeším tak podivně přes pole, nahrazování apod. :/

« Poslední změna: 01 Července 2008, 19:00:38 od Petr 'Merlin' Vaněček »

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Locale, PHP, funkce setlocale
« Odpověď #1 kdy: 30 Června 2008, 18:58:11 »
Je potřeba locales zavést i do systému, co vypíše
Kód: [Vybrat]
sudo locale-gen
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale
« Odpověď #2 kdy: 01 Července 2008, 09:02:24 »
Vypsalo to:
Kód: [Vybrat]
Generating locales...
  cs_CZ.UTF-8... up-to-date
  en_US.UTF-8... up-to-date
Generation complete.

Takže jestli to chápu dobře, tak použít to "cs_CZ.UTF-8"?

A lze přidat i jiná kódování?
Třeba Win1250? Asi ne co? :)

Pavel Půlpán

Re: Locale, PHP, funkce setlocale
« Odpověď #3 kdy: 01 Července 2008, 09:35:17 »
Jde. Přesněji je potřeba locales přidat do souboru /etc/locale.gen. Po úpravě si je musíš znovu vygenerovat pomocí locale-gen. ;)

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale
« Odpověď #4 kdy: 01 Července 2008, 10:11:44 »
Ten soubor tam neexistuje, i po vytvoření to stále hlásí původní dvě Locales.
Konfigurace bude jinde. :/

Vytvořil jsem locale-gen:
Kód: [Vybrat]
cs_CZ.UTF-8 UTF-8
cs_CZ ISO-8859-2

en_US.UTF-8 UTF-8
en_US ISO-8859-1

Ale i tak alespoň UTF-8 funguje, takže se s tím už dá něco dělat.


Pavel Půlpán

Re: Locale, PHP, funkce setlocale
« Odpověď #5 kdy: 01 Července 2008, 11:02:36 »
Soubor má být /etc/locale.gen, nikoliv /etc/locale-gen!

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale
« Odpověď #6 kdy: 01 Července 2008, 11:05:49 »
Samozřejmě to byl jen překlep. Opravdu tam nic takového není. Je to divný.

Pavel Půlpán

Re: Locale, PHP, funkce setlocale
« Odpověď #7 kdy: 01 Července 2008, 11:13:34 »
A co přesně vyhodil locale-gen? Nezdá se mi, že by zrovna toto bylo v Ubuntu jinak než v Debianu.

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale
« Odpověď #8 kdy: 01 Července 2008, 11:36:09 »
Vyhodí to samý co jsem posílal nahoře, jakoby ten /etc/locale.gen soubor vůbec neviděl a divný na tom je, že tam původně vůbec nebyl.
Práva jsou tam root/root - 100644.

Kód: [Vybrat]
root@s-vya-ubuntu:/etc# locale-gen
Generating locales...
  cs_CZ.UTF-8... up-to-date
  en_US.UTF-8... up-to-date
Generation complete.
root@s-vya-ubuntu:/etc#

Pavel Půlpán

Re: Locale, PHP, funkce setlocale
« Odpověď #9 kdy: 01 Července 2008, 11:46:08 »
No tak ještě mrkni jestli náhodou není někde jinde, o čemž pochybuju:
Kód: [Vybrat]
find /etc -name "locale.gen" -print

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale
« Odpověď #10 kdy: 01 Července 2008, 11:52:12 »
Kód: [Vybrat]
root@s-vya-ubuntu:/etc# find /etc -name "locale.gen" -print
/etc/locale.gen
root@s-vya-ubuntu:/etc#

Je to asi zakletý... :)

Kód: [Vybrat]
root@s-vya-ubuntu:/etc# find / -name "locale.gen" -print
/etc/locale.gen
root@s-vya-ubuntu:/etc#
« Poslední změna: 01 Července 2008, 11:53:51 od cybgate »

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Locale, PHP, funkce setlocale
« Odpověď #11 kdy: 01 Července 2008, 15:53:53 »
Na ubuntu se to dělá malinko jinak :)
Vypište si seznam všech dostupných locales na vašem pc pomocí:
Kód: [Vybrat]
cat /usr/share/i18n/SUPPORTED

A vyberte si přesně ten, který chcete, do systému ho pak přidáte pomocí locale-gen tj. například pro přidání cs_CZ ISO-8859-2
uděláte:

Kód: [Vybrat]
sudo locale-gen "cs_CZ ISO-8859-2"

[edit]
Tak ne :) Na 8.04 už je to asi zase jinak :(
[/edit]

Upravte soubor /var/lib/locales/supported.d/local a pak spusťte sudo locale-gen
« Poslední změna: 01 Července 2008, 15:56:39 od Petr 'Merlin' Vaněček »
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

cybgate

  • Aktivní člen
  • *
  • Příspěvků: 134
    • CybGate World
Re: Locale, PHP, funkce setlocale - HH 8.04 [VYŘEŠENO]
« Odpověď #12 kdy: 01 Července 2008, 16:41:29 »
Upravte soubor /var/lib/locales/supported.d/local a pak spusťte sudo locale-gen

Díky tohle zabralo, akorát v supported není WIN1250, ale to jsem tak nějak očekával.
Moc díky, tímto je záhada s locale vyřešena a funguje mi i ISO-8859-2. :)

Edit:
Tak nakonec snad i to 1250 - CP1250.
Výsledek - local:
Kód: [Vybrat]
cs_CZ.UTF-8 UTF-8
cs_CZ.CP1250 CP1250
cs_CZ ISO-8859-2
en_US.UTF-8 UTF-8

a

Kód: [Vybrat]
root@s-vya-ubuntu:/var/lib/locales/supported.d# locale-gen
Generating locales...
  cs_CZ.CP1250... done
  cs_CZ.ISO-8859-2... up-to-date
  cs_CZ.UTF-8... up-to-date
  en_US.UTF-8... up-to-date
Generation complete.
« Poslední změna: 01 Července 2008, 17:36:24 od cybgate »

 

Provoz zaštiťuje spolek OpenAlt.