| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Intl; |
|
|
| use Piwik\Plugins\LanguagesManager\LanguagesManager; |
| use Piwik\Translation\Translator; |
|
|
| |
| |
| |
| class DateTimeFormatProvider extends \Piwik\Intl\Data\Provider\DateTimeFormatProvider |
| { |
| protected $use12HourClock; |
|
|
| |
| |
| |
| protected $translator; |
|
|
| public function __construct(Translator $translator) |
| { |
| $this->translator = $translator; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getFormatPattern($format) |
| { |
|
|
| switch ($format) { |
| case self::DATETIME_FORMAT_LONG: |
| $pattern = $this->translator->translate('Intl_Format_DateTime_Long'); |
| break; |
|
|
| case self::DATETIME_FORMAT_SHORT: |
| $pattern = $this->translator->translate('Intl_Format_DateTime_Short'); |
| break; |
|
|
| case self::DATE_FORMAT_LONG: |
| $pattern = $this->translator->translate('Intl_Format_Date_Long'); |
| break; |
|
|
| case self::DATE_FORMAT_DAY_MONTH: |
| $pattern = $this->translator->translate('Intl_Format_Date_Day_Month'); |
| break; |
|
|
| case self::DATE_FORMAT_SHORT: |
| $pattern = $this->translator->translate('Intl_Format_Date_Short'); |
| break; |
|
|
| case self::DATE_FORMAT_MONTH_SHORT: |
| $pattern = $this->translator->translate('Intl_Format_Month_Short'); |
| break; |
|
|
| case self::DATE_FORMAT_MONTH_LONG: |
| $pattern = $this->translator->translate('Intl_Format_Month_Long'); |
| break; |
|
|
| case self::DATE_FORMAT_YEAR: |
| $pattern = $this->translator->translate('Intl_Format_Year'); |
| break; |
|
|
| case self::TIME_FORMAT: |
| $pattern = $this->translator->translate('Intl_Format_Time'); |
| break; |
|
|
| default: |
| $pattern = $format; |
| } |
|
|
| if (strpos($pattern, '{time}') !== false) { |
| $pattern = str_replace('{time}', $this->getTimeFormat(), $pattern); |
| } |
|
|
| return $pattern; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function getRangeFormatPattern($short = false, $maxDifference = 'Y') |
| { |
| return $this->translator->translate( |
| sprintf( |
| 'Intl_Format_Interval_%s_%s', |
| $short ? 'Short' : 'Long', |
| $maxDifference |
| ) |
| ); |
| } |
|
|
| protected function getTimeFormat() |
| { |
| $timeFormat = 'Intl_Format_Time_24'; |
|
|
| if ($this->uses12HourClock()) { |
| $timeFormat = 'Intl_Format_Time_12'; |
| } |
|
|
| $template = $this->translator->translate($timeFormat); |
|
|
| return $template; |
| } |
|
|
| |
| |
| |
| |
| |
| public function uses12HourClock() |
| { |
| if (is_null($this->use12HourClock)) { |
| $this->use12HourClock = LanguagesManager::uses12HourClockForCurrentUser(); |
| } |
|
|
| return $this->use12HourClock; |
| } |
|
|
| |
| |
| |
| |
| |
| public function forceTimeFormat($use12HourClock = false) |
| { |
| $this->use12HourClock = $use12HourClock; |
| } |
| } |
|
|