Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

setlocale NL werkt niet

Ik zie al een tijdje dast de datums (weekdagen en maanden) in het engels staan. Blijkbaar is dit het resultaat van de upgrade van php 5.3 naar 5.6
Althans, als ik dit scriptje test geeft ie me ook engels ipv nederlands:

<?php
/* Set locale to Dutch */
date_default_timezone_set("Europe/Amsterdam");
setlocale(LC_ALL, 'nl_NL');

echo strftime("%A %e %B %Y"); //output: Wednesday 14 October 2015 ipv Woensdag 14 Oktober 2015

?>
Kan me niets anders bedenken dat het een serverinstelling is of zie ik toch iets over het hoofd?
Getagd:

Reacties

  • bewerkt wo 14 okt 2015
    PMPosts: 415
    probeer deze eens

    setlocale( LC_ALL, array( 'nl_NL.UTF-8', 'nld_NLD.UTF-8', 'nld@euro', 'nl@euro', 'dutch', 'Dutch_Netherlands' ) );

    offtopic, ik heb geen zin om uit te zoeken waar de fout zit, maar jouw scriptje werkte bij mij helemaal niet met die %e ... gek genoeg kreeg ik ook geen foutmelding...
  • PMPosts: 879
    nee helaas geeft dit ook geen resultaat. Denk dat het instelling op de server is
  • Dan moet je even kijken of het juiste taalpakket wel is ge??nstalleerd op de server.
    Maar dit werkt niet bij jou?

    <?php
    date_default_timezone_set("Europe/Amsterdam");
    setlocale( LC_ALL, array( 'nl_NL.UTF-8', 'nld_NLD.UTF-8', 'nld@euro', 'nl@euro', 'dutch', 'Dutch_Netherlands' ) );
    echo strftime('%A %d %B %Y', time());
    ?>
  • PMPosts: 879
    Nee dit werkt idd niet. En het is gekomen nadat ik van php 5.3 naar 5.6 heb geupgrade. Zal even de contact opnemen met de host.
  • bewerkt zo 18 okt 2015
    PMPosts: 879
    Ticket geplaatst bij mijn host:

    Mijn vraag:
    Ik ben onlangs php 5.6 ingesteld en heb een probleem met de vertalingen in nederlands:
    Wanneer ik dit script uitvoer krijg ik de datum en tijd in engels ipv nederlands:

    /* Set locale to Dutch */
    date_default_timezone_set("Europe/Amsterdam");
    setlocale(LC_ALL, 'nl_NL');

    echo strftime("%A %e %B %Y"); //output: Wednesday 14 October 2015 ipv Woensdag 14 Oktober 2015

    Reactie helpdeskmedewerker
    Beste,

    ik heb mijn best gedaan, maar krijg dit ook niet voor elkaar. Dit moeten we helaas even escaleren naar het technisch team.

    Ik verwacht dat morgen in de loop van de dag een meer inhoudelijk antwoord hierop gegeven zal worden via dit ticket.

    Intussen, dank voor uw opmerkzaamheid, en ook dank voor uw geduld.

    Met vriendelijke groet,
    Hosting2GO Helpdesk


    Mag ik hieruit concluderen dat zij hun zaakjes niet in orde hebben of verwacht ik nu teveel van mijn hosting? :(



  • PMPosts: 732
    Wat krijg je als je setlocale(LC_ALL, 'nl_NL') or die('nee') ingeeft ?
    If it's not fun, you're not doing it right!
  • PMPosts: 879
    Hmm...nu wordt het nog fraaier: ik test dit scriptje op hoofddomein en op een subdomein en beiden verschillende output:

    <?php
    /* Set locale to Dutch */
    date_default_timezone_set("Europe/Amsterdam");
    setlocale(LC_ALL, 'nl_NL') or die('geen nederlands');

    echo date("l");
    echo '<br /><br />';
    echo strftime("%A %e %B %Y");

    ?>

    webprofis.nl/testlocale.php
    develop.webprofis.nl/testlocale.php
  • Misschien iets in htaccess ?
    nuet
  • bewerkt vr 16 okt 2015
    PMPosts: 879
    @vinTage; je hebt gelijk! Het was idd iets in .htaccess en wel deze regel:
    AddHandler x-httpd-php56 .php
    Uitgeschakeld met # ervoor en staat nu weer in nederlands.
    Behalve in de test links hierboven zie ik dat ie bij

    echo date("l");
    nog steeds Friday als output geeft. Is die date dan Deprecated in 5.6?

    Enfin, maar die htaccessregel heb ik er niet ingezet. Kan me niets anders bedenken dat dit automatisch is gebeurd toen ik versie 5.6 inschakelde
    Ik zal de host eens informeren hierover en kijken wat ze zeggen
  • Mjah, het is een beetje een samenraapsel van "dingetjes".
    Je host doet iets, waarvan jij relatief weinig weet.
    Een communitie pack doet iets waarvan jij relatief weinig weet.
    etc

    Ik denk niet dat date de eerst komende tig jaar depreciated gaat worden (sowieso niet in 7 as you can see on php.net)

    Maar stiekem denk ik dat het niet "die" regel is in je htaccess die het probleem veroorzaakt.
    Met het uit-commenten van die regel denk ik dat je gewoon terug schakelt naar de vorige php versie, terwijl het probleem volgens mij toch ergens anders ligt ( mss wel in htaccess)...maar ergens op een ander level.

    Feit is, is dat als het op een (verse)sub werkt, het overal moet werken!
    Als dit niet het geval is, dan.....staan we waar we nu staan

  • bewerkt vr 16 okt 2015
    PMPosts: 879
    Ja vreemd genoeg doet het probleem zich alleen voor met versie 5.6
    Als ik versie 5.5 instel (AddHandler x-httpd-php55 .php) of lager dan krijg ik een nette output::

    echo 'Current PHP version: ' . phpversion(); // output: Current PHP version: 5.5.18
    Maar als ik versie 5.6 instel (AddHandler x-httpd-php56 .php) krijg ik helemaal geen output op de versie
  • nuet schreef:: krijg ik helemaal geen output op de versie
    Helemaal geen? Haal dan die %e eens even weg om te testen.
  • bewerkt vr 16 okt 2015
    PMPosts: 879
    ik heb nu alleen deze regel staan in testlocale.php

    echo 'Current PHP version: ' . phpversion();
    en nu krijg ik idd wel de versie te zien: http://webprofis.nl/testlocale.php
    Zodra ik deze erbij zet:

    setlocale(LC_ALL, 'nl_NL') or die('geen nederlands');
    vervalt de output van de versie en krijg ik als output: "geen nederlands"
  • PMPosts: 732
    en met erbij bedoel je er onder of boven ?
    en als je locale op us_US kiest ?
    If it's not fun, you're not doing it right!
  • PMPosts: 162
    ja idd , ik heb die setlocale er boven gezet en de current version regel eronder. Die setlocal gaat op die...

    <?php

    echo 'Current PHP version: ' . phpversion();
    echo '<br /><br />';

    setlocale(LC_ALL, 'us_US') or die('geen amerikaans');
    echo '<br /><br />';

    echo 'Current PHP version: ' . phpversion();

    ?>

    Resultaat: http://webprofis.nl/testlocale.php
    De meeste fouten ontstaan tussen de monitor en de rugleuning van je stoel!
Login of Registreer om te reageren.