Autor | Zpráva | ||
---|---|---|---|
iiic Profil |
#1 · Zasláno: 11. 3. 2015, 15:28:24
Ahoj… mám php aplikaci, která je snadno přenositelná mezi Win a Linux prostředím.
Rád bych tam používal strftime i pro slovní výpis názvů měsíců, dnů, … ale právě ty rozdílné implementace strftime na těchto systémech mě to dost znepříjemňují. Mám pocit, že tohle se řešilo už tolikrát a řešilo to už tolik lidí… jen nevím, jestli to někdo i skutečně vyřešil nějakým trošku slušným způsobem nejlepší co mě zatím napadlo: <?php var_dump(strftime('%B')); // March setlocale(LC_TIME, 'cs_CZ.cp1250', 'czech'); var_dump(iconv('cp1250' , 'UTF-8', strftime('%B'))); // březen Nebo se na strftime raději vůbec nespoléhat a napsat si vlastní funkce? |
||
juriad Profil |
Na Linuxu se nemůžeš spolehnout na to, že bude existovat Locale cs_CZ.cp1250 (já ho nemám - vypíše to anglicky March).
Stejně dobře možné je, že bude dostupný cs_CZ.utf8 (ten mám - vypíše březen). Asi bych se na to nespoléhal. Nemusí mít žádný český locale. Nemám možnost ladit na Windows. |
||
iiic Profil |
#3 · Zasláno: 12. 3. 2015, 10:13:56
juriad:
to je docela nepříjemnost. Z Windowsů co vím, tak jiné kódování než cp1250 nedostanu (kdyby to šlo bylo by to samozřejmě nejsnazší), tak jsem doufal, že ze všech verzí Linuxu půjde dostat taky… pak ještě případně můžu zkusit tam střelit více druhů kódování: <?php setlocale(LC_TIME, 'Czech_Czech Republic.cp1250', 'Czech_Czech Republic.CP1250', 'cs_CZ.cp1250', 'cs_CZ.CP1250', 'czech'); všechno pořád ale dost nepříjemná řešení :( |
||
Fisir Profil |
#4 · Zasláno: 12. 3. 2015, 10:51:54
Reaguji na iiiceho:
Nejspolehlivější bude vytvořit si vlastní překládací funkci. |
||
Časová prodleva: 4 dny
|
|||
iiic Profil |
#5 · Zasláno: 16. 3. 2015, 10:54:47
Je to smutné no, ale asik nic lepšího nezbude :(
|
||
Časová prodleva: 9 let
|
0