[PHP] setlocale: taal toevoegen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Een klant wil zijn website in 3 talen: Nederlands, Engels en Duits.
We hebben de website gebouwd met gettext en lokaal werkt alles prima.
Uiteraard hebben we eerst getest of gettext op de webserver ook draait en dat is het geval.

Nu we de website willen testen blijkt alleen Nederlands en Engels te werken.
Na wat onderzoek komen we erachter dat talen ondersteund moeten worden op de server, gettext alleen is dus niet voldoende. We hebben een scriptje gemaakt wat de talen weergeeft en wat voor naam ze hebben op de server. Helaas wordt Duits dus niet ondersteund. Het schijnt dat het vrij eenvoudig is om een taal toe te voegen en apache te herstarten. Dit verzoek hebben we neergelegd bij de hostingprovider, maar die hebben hier geen zin in.

Zij melden (meerdere malen) dat je zelf een taal kan toevoegen met setlocale. Dit is nieuw voor mij en lijkt me een beetje sterk, maargoed er zijn veel dingen die ik niet weet. Uiteraard heb ik zelf onderzocht of dit mogelijk is en hoe dit eventueel in zijn werk gaat. Echter kan ik hier niks over vinden.

Dus mijn 2 vragen:
- Is het mogelijk om zelf een taal toe te voegen?
- Zo ja, kan iemand mij een link geven waar hier meer over staat (op de PHP pagina vind ik alleen info waarbij ik PHP of Apache moet herstarten)

[ Voor 6% gewijzigd door Verwijderd op 29-10-2009 09:47 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Van http://www.php.net/manual/en/function.setlocale.php#86246
If you add some languages afterwards, you have to recompile php ;)
Lijkt me dus onmogelijk zonder dat je hostingpartij meewerkt.

[ Voor 23% gewijzigd door Verwijderd op 29-10-2009 09:46 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, inderdaad. Dit soort berichten lees ik alleen maar.
Dit heb ik ook gemeld, maar ik krijg het volgende antwoord terug van de helpdesk:
U kunt via php met setlocale wel uw eigen talen toevoegen. Wij kunnen helaas
geen individuele locales toevoegen.
En voor ik in een welles/nietes verhaal beland, wil ik graag wat back-up van ervaren mensen.
Of ik weet iets niet wat ze bij de provider wel weten en hoop dat iemand hier me kan helpen ;)

Overigens heb ik ook gevraagd of ze me kunnen helpen met wat ik moet doen of waar ik moet kijken, maar hier geven ze geen antwoord op.

[ Voor 23% gewijzigd door Verwijderd op 29-10-2009 09:51 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:22

MueR

Admin Tweakers Discord

is niet lief

Locales zullen inderdaad door de host geinstalleerd moeten worden op de server. Het staat letterlijk in de PHP manual. Lijkt me dat die het beter weet dan je webhost.

[ Voor 16% gewijzigd door MueR op 29-10-2009 10:06 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

MueR schreef op donderdag 29 oktober 2009 @ 10:06:
Locales zullen inderdaad door de host geinstalleerd moeten worden op de server. Het staat letterlijk in de PHP manual. Lijkt me dat die het beter weet dan je webhost.
Ik vraag me af waarom een webhoster standaard niet gewoon alle locales installeert?

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

De helpdesk lult uit haar nek als ze zegt dat je met setlocale een locale kan toevoegen; setlocale stelt alleen een al geïnstalleerde locale in als default voor bepaalde/alle locale-relevante functies. Als je een nieuwe locale wil zullen zij die dus moeten installeren (en eventueel PHP recompilen) of je zal een nieuwe host moeten zoeken die wél netjes meerdere talen ondersteunt. Alleen Nederlands en Engels ondersteunen is echt niet van deze tijd.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Niemand_Anders schreef op donderdag 29 oktober 2009 @ 10:56:
[...]

Ik vraag me af waarom een webhoster standaard niet gewoon alle locales installeert?
Standaard worden op een Linux nooit alle locales geinstalleerd, maar slechts een klein aantal. Puur omdat alle locales nog wat ruimte innemen. Maar ja, wat is ruimte tegenwoordig op een server ;)

Setlocale is inderdaad om binnen php de locale (die al bestaat) te setten. Niet om op je systeem een niet bestaande toe te voegen. Helaas dus, maar je hoster zal toch even een pakketje moeten installeren. Het is eigenlijk vrij simpel: één pakket installeren voor alle locales en een apache reload (restart hoeft afaik niet eens).

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 07:08
Het lijkt mij overigens niet meer dan redelijk als een hoster naast NL ook EN, DE, FR heeft geïnstalleerd. (misschien zelfs Spaans/ Portugees) Een hoster in Nederland vangt dan de meest voorkomende talen in deze regionen af en zal niet zo snel met zo'n probleem geconfronteerd worden.

Eigenlijk vind ik ook dat de betreffende hoster die taal best kan installeren, natuurlijk moeten ze wel oppassen: Als ze dit voor jou doen kan een ander verwachten dat ze dat ook voor hem doen, en dan is het einde al snel zoek. Maar een (veelvoorkomende) taal installeren is:
a) niet veel werk
b) handig met het oog op de toekomst
c) klantvriendelijk

En wat mithras ook aangeeft: één pakketje installeren voor alle (ik ga voor meerdere :P) locales en ze zijn vrij snel klaar.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

jbdeiman schreef op donderdag 29 oktober 2009 @ 11:59:
Eigenlijk vind ik ook dat de betreffende hoster die taal best kan installeren, natuurlijk moeten ze wel oppassen: Als ze dit voor jou doen kan een ander verwachten dat ze dat ook voor hem doen, en dan is het einde al snel zoek.
Niet echt, want als ze een taal installeren is die meteen ook voor alle andere klanten op die server beschikbaar. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Is gettext al threadsafe dan? Of maakt de TS gebruik van Zend_Translate_Adapter_Gettext? In het laatste geval kun je het prima gebruiken omdat die wel threadsafe is.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Cartman! schreef op donderdag 29 oktober 2009 @ 12:04:
Is gettext al threadsafe dan? Of maakt de TS gebruik van Zend_Translate_Adapter_Gettext? In het laatste geval kun je het prima gebruiken omdat die wel threadsafe is.
Op Windows Apache-servers is setlocale e.d. inderdaad niet thread safe (in PHP 6 overigens wel). Overigens begrijp ik niet echt hoe dat hier relevant is? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 07:08
NMe schreef op donderdag 29 oktober 2009 @ 12:00:
[...]

Niet echt, want als ze een taal installeren is die meteen ook voor alle andere klanten op die server beschikbaar. :P
Lol, aan je tongetje te zien begreep je wel wat ik bedoelde, maar om het te verduidelijken:

Als je 1 keer wat voor een klant regelt, willen andere klanten misschien ook wel wat geregeld hebben. Met het idee "Maar voor hem kon je ook wat regelen"...

Zo beter NMe? :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Precies wat ik al dacht, bedankt voor alle reacties!

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
NMe schreef op donderdag 29 oktober 2009 @ 12:18:
[...]

Op Windows Apache-servers is setlocale e.d. inderdaad niet thread safe (in PHP 6 overigens wel). Overigens begrijp ik niet echt hoe dat hier relevant is? :)
Om wellicht de TS te behoeden voor problemen met het gebruik van gettext :)
Pagina: 1