 
     
    Ben Scholzen
Архітэктар праграмнага забеспячэння і кансультант
 
      Ben Scholzen is …
de-CH.utf-8 (old style: de_CH.utf-8)
nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4
      
      
return array(
    '' => array(
        'plural_forms' => 'nplurals=2; plural=n!=1'
    ),
    'bacon' => 'speck',
    '%d house' => array(
        'Ein Haus',
        '%d Häuser'
    )
);
      
    
use Zend\I18n\Translator\Translator;
$translator = new Translator::factory(array(
    'locale' => 'de_DE',
    'files' => array(
        array(
            'type' => 'phparray',
            'filename' => 'languages/de-DE.php'
        )
    )
));
      
    Simple string:
echo $translator->translate('bacon'); // speck
      
      String with plural form:
$houses = 5;
printf(
    $translator->translatePlural('%d house', '%d houses', $houses),
    $houses
); // 5 Häuser
      
    
<?php echo $this->translate('bacon'); ?>
      
      
<?php printf(
    $this->translatePlural('%d house', '%d houses', $number),
    $number
); ?>
      
    Switch text domain for a single call
<?php echo $this->translate('bacon', 'module-b'); ?>
      
      Switch text domain for all following calls
<?php $this->plugin('translate')->setTranslatorTextDomain('module-b'); ?>
      
    
<?php echo $this->translate('bacon', null, 'fr-FR'); ?>
      
    
use Zend\I18n\Translator\Translator;
$translator = new Translator::factory(array(
    'locale' => 'de_DE',
    'patterns' => array(
        array(
            'type'     => 'phparray',
            'base_dir' => 'translations',
            'pattern'  => '%s.php'
        )
    )
));
      
     
    
$view->plugin('dateFormat')->setLocale('en-US');
      
    
$view->plugin('dateFormat')->setTimezone('Europe/Berlin');
      
    
<?php echo $this->dateFormat(
    $date,
    $dateType, // Optional, default: NONE
    $timeType, // Optional, default: NONE
    $locale    // Optional
); ?>
      
    
$formatter = new \IntlDateFormatter(
    $locale,
    $dateType,
    $timeType
    /*, $timezone*/
);
$formattedDate = $formatter->format($date);
      
    
$formatter = new \IntlDateFormatter(/* … */);
$timestamp = $formatter->parse($formattedDate);
$date      = new \DateTime('@' . $timestamp);
      
    
$view->plugin('numberFormat')->setLocale('en-US');
$view->plugin('currencyFormat')->setLocale('en-US');
      
    
<?php echo $this->numberFormat(
    $number,
    $formatStyle, // Optional, default: DECIMAL
    $formatType,  // Optional, default: TYPE_DEFAULT
    $locale       // Optional
); ?>
      
      
<?php echo $this->currencyFormat(
    $number,
    $currencyCode, // Optional, default: not set
    $showDecimals, // Optional, default: true
    $locale        // Optional
); ?>
      
    
$view->plugin('numberFormat')->setFormatStyle($formatStyle);
$view->plugin('numberFormat')->setFormatType($formatType);
      
    
$view->plugin('currencyFormat')->setCurrencyCode($currencyCode);
$view->plugin('currencyFormat')->setShouldShowDecimals($boolean);
      
    
$formatter = new \NumberFormatter(
    $locale,
    $style
);
$formattedNumber = $formatter->format($number);
      
    
$formatter = new \NumberFormatter(/* … */);
$number    = $formatter->parse($formattedNumber);
      
      
$filter = new \Zend\I18n\Filter\NumberFormat($locale, $type, $style);
$number = $filter->filter($formattedNumber);
      
    Rate this talk on joind.in: https://joind.in/7020
