PDA

Pogčedajte punu verziju : setlocale()


Ilija Studen
10. 03. 2006., 21:52
Do sad nisam radio sa promenom okruženja za rešavanje lokalizacije. Međutim, sad bih da iskoristim sve prednosti strftime() funkcije i formatiranja vremena, ali zakucam jer nigde nisam našao listu kodova. Npr, eng_US radi savršeno kod mene u lokalu, ali na serveru zeza. Probam varijacije sa en_US i en_us. Ništa.

Kako da dođem do liste podržanih kodova? Na Winu i/ili Linuxu?

Prednosti, mane i saveti u vezi sa ovim?

dinke
11. 03. 2006., 00:06
en_US.UTF-8

hint: Kucaj k-du locale u Linuxu.

Ili jos bolje locale -a |grep en_US

Ilija Studen
11. 03. 2006., 02:33
To je to. Hvala!

Može li se znati loji je kod za srpski (ćirilica i latinica)?

dinke
11. 03. 2006., 09:58
sr_YU.UTF-8

aleck
02. 06. 2006., 23:46
A kako sve to radi na Windowsu? Da li je uopšte moguće na WinXP-u dobiti ispis vremena putem strftime funkcije?

Pokušaji korišćenja setlocale su prilično bezuspešni. Kada ispišem samo setlocale(LC_ALL, '') onda mi izbaci: English_United States.1252
Ovo radi: setlocale(LC_ALL, 'French.France.1252'), tj. nakon ovoga strftime ispiše datum na francuskom. Pokušaj sa Serbian.Latin.1252 ne radi.

Ono što me muči je da li je to uopšte moguće? Sve mi više deluje da mi je lakše da napišem brute-force fuinkciju koja će vraćati šta treba zavisno od rednog broja meseca. :(

robi-bobi
04. 06. 2006., 20:09
sa php.net/setlocale:

Tip: Windows users will find useful information about locale strings at Microsoft's MSDNwebsite. Supported language strings can be found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp and supported country/region strings at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows systems support the three letter codes for country/region specified by ISO 3166-Alpha-3, which can be found at this Unicode website .


edit:
samo da napomenem da sam setlocale koristio u jednom projektu koji je imao 10-tak jezika, nije bilo nikakwih problema (unix environment)

aleck
08. 06. 2006., 15:31
Gledao sam te linkove, ali nisu nešto korisni. Ako im je verovati, ispada da je samo mali podskup jezika moguće setovati korišćenjem setlocale().

Bedak.

robi-bobi
09. 06. 2006., 18:08
da, ali ovo vazi samo za Win
ionako su PHP hostovi na linuxu (bar 99%)

petrovicivan
04. 08. 2006., 12:24
sr_YU.UTF-8

ovo je bila cirilica u 90% slicajeva, a ovaj skript autor tvrdi da radi mada meni nije na 2 hostinga, ali svejedno vide se najcesce koriscene vrednosti
<?php
/* Provera koji local settings je podržan na hosting serveru */
/* Snimiti u datoteku sa ekstencijom .php (npr: datum.php */
/* uplioadovati na serer i startovati (npr: http://www.mojdomen.com/datum.php */
/* rezltat upisati u admin joomle (Global configuration/Locale/Country locale */

$loc_sr = setlocale (LC_ALL, 'sr_YU.ISO8859-5', 'sr_YU.ISO8859-2', 'sr_YU@cyrillic.UTF-8', 'sr', 'sr_CS', 'sr_CS.UTF-8', 'sr_YU.UTF-8');
echo 'Preporucena lokalzacija na ovom serveru je' info () ;

?>

Ilija Studen
04. 08. 2006., 12:31
Šta se dešava kad ne možeš da se osloniš na određenu tehnologiju? Izmišljaš rupu u saksiji po x-ti put. Na lang fajlove bar uvek možeš da se osloniš.

bluesman
07. 04. 2007., 02:08
Sada upravo bunarim po serveru, da li je moguće da nemamo latinični sr locale?

Ćirilica radi super, ali meni treba latinica koju ne mogu nikako da dobijem osim sa 'hr_HR', ali onda imam "Nedjelja, Ponedjeljak..." što mi ne treba.

sa SR sam našao sledeće:

sr_CS
sr_CS.iso88595
sr_CS.utf8

I sva 3 su ćirilice sa različitim kodnim rasporedima.

Pri čemu sam još u /usr/share/locale/ našao još i:

sr@ije
sr@Latn

koji su očigledno nekompletni. Za prvi piše:

Last-Translator: Bojan Suzic
Language-Team: Serbian (sr)
PO-Revision-Date: 2004-04-17 19:11+0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Za drugi stoji:
Last-Translator: Danilo Ĺ egan
Language-Team: Serbian (sr)

Kod nekih piše
Last-Translator: Filip Miletic
Language-Team: Serbian

^ ovoga znamo :)

Očigledno se neko igrao, ali nije odigrao do kraja.

Da li je moguće da postoji za sve svetske jezike (koje govori više od 20 ljudi) osim za srpski? O čemu mi pričamo onda ovde? Kakav IT community?

JovanT
07. 04. 2007., 13:23
Па, уколико постоји ћирилица, не видим проблем да се конвертује на латиницу. Било би другачије да је обрнуто.

bluesman
07. 04. 2007., 18:10
Pa ukoliko ti stvarno ne vidiš problem tu, onda neka ostane ovako.

filmil
09. 04. 2007., 23:08
Očigledno se neko igrao, ali nije odigrao do kraja.

Da li je moguće da postoji za sve svetske jezike (koje govori više od 20 ljudi) osim za srpski? O čemu mi pričamo onda ovde? Kakav IT community?

Кад је „овај“ већ ту, да га пустимо да објасни неколико ствари.

Да би се извлачили закључци о локализацији на српски добра је идеја да се зна како цела ствар ради.

Најважније је да се зна да не постоји нешто што се зове „потпун“ локалитет, ни за један језик, јер се локализација ради за сваки пакет појединачно.

Пакет чија локализација одређује како се исписују датуми јесте „либц“ (libc) ког одржава Улрих Дрепер (Ulrich Drepper).

Гдин Дрепер лично не жели да прихвати чињеницу да се српски језик (дефакто) записује са два писма, те зато не укључује двописмен локалитет у званичну дистрибуцију либца. Другим речима, ко год има примедбе на недостатак латиничног издања српског локалитета за либц треба да се жали Дреперу.

Проблем са тиме је да је поменути господин веома својеглав, не само према нама већ и према многим другим који би радо приложили ствари за либц, тако да унапред могу да кажем да сумњам да ћете жалбом ишта да постигнете. Али увек можете да пробате. Са стране преводилаца гледано, за либц и за друге пакете редовно се праве оба издања, и латинично и ћирилично.

Дреперов приступ одржавању либц библиотеке довео је до појаве „алтернативних“ пакета са локалитетима, који садрже и варијације које Дрепер не жели да укључи у званичну дистрибуцију. На жалост, у практичне сврхе алтернативни локалитети су неупотребљиви ако немате контролу над машином која вам је сервер. А обично немате, ако је машина рецимо власништво провајдера.

Последица свега је да је званично подржана само екавска ћирилица, односно локалитет sr_CS.UTF-8, пошто је то званично писмо и стандардан језик у Србији. Сви остали локалитети које сте помињали су застарели и не треба их користити ако не желите проблеме на дуже стазе. То што их у неким дистрибуцијама и даље има је последица инерције дистрибутера који их из разних разлога нису уклонили. Додатно, ускоро ће име локалитета да буде усклађено са новим двословним кодом државе и постаће коначно sr_RS.UTF-8.

Што се тиче ознака локалитета који имају наставке @Latn, @ije и слично, у питању су локалитети који садрже датотеке за програме који немају везе са либцом, као нпр. програми за окружења Гном (GNOME) и КДЕ (KDE). За Гном и за КДЕ програме постоје двописмени локалитети просто зато што људи који на њима раде имају слуха за све финесе наше локализације, помажу гдегод је потребно и укључују све измене онако како им их преводиоци испоруче.

У оба случаја, @Latn локалитети садрже преводе за одговарајуће програме, и оба @Latn локалитета садрже све датотеке које постоје и у изворном ћириличном. Мислим да је из досадашњег објашњења постало јасно, али да ипак поновим, да ови локалитети не садрже либц (испис датума) из већ поменутих разлога и са њиме немају никакве везе.

@ije је локалитет за српски језик ијекавицом, кога је почео да ради Бојан Сузић. Колико је мени познато, тај локалитет није довршен и није зрео за употребу.

ф

filmil
09. 04. 2007., 23:09
Pa ukoliko ti stvarno ne vidiš problem tu, onda neka ostane ovako.

Ако имаш неки проблем са локалитетима, згодно би било и да напишеш шта те тачно мучи, да ми остали не бисмо морали да погађамо о чему је реч.

ф

bluesman
10. 04. 2007., 00:50
Ne znam šta treba da pogađaš, lepo sam napisao da mi treba srpska latinica. I ćirlica i latinica su srpsko pismo, za sada postoji samo ćirlica, latinica nedostaje. Hajde pogađaj sada o čemu je reč :)

filmil
10. 04. 2007., 01:36
lepo sam napisao da mi treba srpska latinica.

Ако ти нешто у вези са локализацијом није по вољи, све што треба јесте да то кажеш јасно и гласно. Као ово изнад на пример.

И ево рекао си да ти треба латиница, а ја верујем да сам одговорио зашто латинице нема, као и откуд долази недостатак латинице.

Више података:
http://sources.redhat.com/ml/libc-alpha/2005-02/msg00124.html
(Прихватање Даниловог ћириличног локалитета)
http://belocs.alioth.debian.org/ (незванични локалитети који садрже и латиницу)

Надам се да помаже.

ф

bluesman
10. 04. 2007., 13:18
Sada upravo bunarim po serveru, da li je moguće da nemamo latinični sr locale?

Ja napisah u prvoj rečenici svog prvog posta šta me muči :) Glasno nije ali mislim da je jasno :)

kodi
19. 05. 2007., 13:37
situacija na hebenom SUSEu (10.1)



# locale -a | grep sh_
sh_YU
sh_YU.utf8


odakle ovo SH to mi nikad nece biti jasno :1041:
znaci ubio sam se dok sam nasao latin, sve vreme grepujem sa sr_

JovanT
20. 05. 2007., 14:27
Sh ваљда означава српско-хрватски. Јел у питању екавска или ијекавска варијанта?