Zend Framework 2: Form validation error messages translated

Om mij nog niet geheel duidelijke redenen gebruikt ZF2 voor de vertalingen van validatie errors niet de default locale. Dit is erg spijtig maar is relatief eenvoudig op te lossen. Even de stappen bij elkaar om het helder te houden.

Translator configureren: autoload/global.php

'service_manager' => array(
    'aliases' => array(
        'translator' => 'MvcTranslator',
    ),
),
'translator' => array(
    'locale' => 'nl_NL',
    'translation_file_patterns' => array(
        array(
            'type' => 'phpArray',
            'base_dir' => __DIR__ . '/../../resources/languages',
            'pattern' => '/%s/Zend_Validate.php',
        ),
    ),
),

Hierbij zorgt regel 7 ( ‘locale’ => ‘nl_NL’) ervoor dat de default locale van de gehele applicatie op nl_NL komt te staan. Uiteraard kan dit ook via bijvoorbeeld een call in de bootstrap gedaan worden op basis van taalinstellingen browser, url of wat voor leuks dan ook.

Forceren validation error translation: module.php

Dan de verassing; de vertalingen van de validatie errrors zijn niet vertaald. Om dit te forceren moet je in de bootstrap van de module het volgende toevoegen;

public function onBootstrap($e)
{
    $translator = $e->getApplication()->getServiceManager()->get('translator');
    AbstractValidator::setDefaultTranslator($translator);
}

Met een beetje geluk zijn nu de validatie errors van de forms netjes vertaald naar de Nederlandse versie.

Skydrive synchronisatie problemen

Het kan soms voorkomen dat Microsoft Skydrive stopt met synchronisatie. Hij geeft een minimalistische error zonder een specifiek bestand of map als schuldige te benoemen. Het herstarten van de synchronisatie werkt niet en enige optie lijkt het compleet verwijderen van de gesynchroniseerde map om deze opnieuw aan te maken.

Oplosbare errors

Toch zijn er een paar errors welke nog wel oplosbaar zijn. Sowieso loopt hij eruit bij bestandsnamen die onmogelijke karakters bevatten of te lang zijn – komt voort uit de Sharepoint web-structuur die onderhevig is aan andere technische kaders dan een normaal filesysteem. Zie ook de FAQ hierover op de Microsoft site.

Daarnaast kan het soms voorkomen dat hij een error ondervindt bij het uploaden van een map of bestand wat als gevolg heeft dat de cache defect is. Er is dan geen specifieke plek die fouten geeft maar hij is ook niet meer in staat opnieuw de synchronisatie op te zetten.

Kijk in het overzicht wat de laatste succesvolle synchronisatie was en ga naar
C:\Users\[jouwgebruikersnaam]\AppData\Local\Microsoft\Office\15.0\OfficeFileCache

En verwijder hier de file/files die aangemaakt zijn rondom de tijd van de laatste succesvolle synchronisatie. Met een beetje geluk bespaar je hiermee een complete ontkoppeling en herkoppeling van de synchronisatie.

Skydrive Pro error 0x80040208

SkyDrive Pro is een persoonlijke bibliotheek bestemd voor het opslaan en organiseren van documenten. Als integraal onderdeel van Office 365 (SharePoint Server 2013) kun je met SkyDrive Pro werken binnen de parameters van de organisatie, met functies zoals directe toegang tot het adresboek van uw organisatie enzovoorts.

Probleem met synchronisatie

Skydrive Pro loopt in sommige gevallen vast met een synchronisatie probleem waarbij voor alle bestanden een rood kruis komt te staan in Windows Explorer. Kijk je bij het synchronisatie log dan geeft hij de errorcode 0x80040208.

Error 0x80040208

Deze ontstaat als er één of meer bestanden van meer dan 64 tekens in de gesynchroniseerde folders staan. Lastig is deze te vinden al zijn hier wel tools voor te vinden (zie hier een voorbeeld van een Powershell oplossing op Stackoverflow). Mocht je direct al weten welke bestanden het zijn dan ben je er al bijna. Als alles goed gaat kun je de synchronisatie opnieuw opstarten en werkt alles naar behoren. Mocht hij toch problemen blijven geven / helemaal niets veranderen dan volgt het volgende scenario.

Alle cachefiles vernietigen

Beetje een grove methode (je moet hierna de synchronisaties opnieuw aanmaken etc) maar soms de enige oplossing.

  1. Sluit Skydrive Pro
  2. Ga naar \%userprofile%\AppData\Local\Microsoft\Office\15.0\
    en verwijder OfficeFileCache
  3. Ga naar \%userprofile%\AppData\Local\Microsoft\Office\Spw \
    en verwijder de inhoud

Nu even Skydrive Pro opnieuw starten, de synchronisaties opnieuw starten en klaar.