ICanBoogie/CLDR 1.9.x
  • Namespace
  • Class

Namespaces

  • ICanBoogie
    • CLDR
      • Plurals
      • Units

Classes

  • AbstractCollection
  • AbstractSectionCollection
  • Calendar
  • CalendarCollection
  • ContextTransforms
  • Currency
  • CurrencyCollection
  • CurrencyFormatter
  • DateFormatter
  • DateTimeAccessor
  • DateTimeFormatter
  • FileProvider
  • ListFormatter
  • Locale
  • LocaleCollection
  • LocalizedCurrency
  • LocalizedCurrencyFormatter
  • LocalizedDateTime
  • LocalizedListFormatter
  • LocalizedLocale
  • LocalizedNumberFormatter
  • LocalizedObject
  • LocalizedObjectWithFormatter
  • LocalizedTerritory
  • Number
  • NumberFormatter
  • NumberPattern
  • NumberPatternParser
  • Numbers
  • Plurals
  • ProviderCollection
  • RedisProvider
  • Repository
  • RunTimeProvider
  • Supplemental
  • Territory
  • TerritoryCollection
  • TimeFormatter
  • Units
  • WebProvider

Interfaces

  • Exception
  • Formatter
  • LocalizeAwareInterface
  • Provider

Traits

  • CodePropertyTrait
  • CollectionTrait
  • LocalePropertyTrait
  • LocalizeTrait
  • ProviderStorageBinding
  • RepositoryPropertyTrait

Exceptions

  • ResourceNotFound
  • TerritoryNotDefined
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 
<?php

/*
 * This file is part of the ICanBoogie package.
 *
 * (c) Olivier Laviale <olivier.laviale@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace ICanBoogie\CLDR;

/**
 * Localized currency.
 *
 * @property-read Currency $target
 * @property-read string $name The localized name of the currency.
 * @property-read string $symbol The localized symbol of the currency.
 * @property-read LocalizedCurrencyFormatter $formatter
 */
class LocalizedCurrency extends LocalizedObjectWithFormatter
{
    /**
     * @deprecated
     */
    const PATTERN_STANDARD = LocalizedCurrencyFormatter::PATTERN_STANDARD;

    /**
     * @deprecated
     */
    const PATTERN_ACCOUNTING = LocalizedCurrencyFormatter::PATTERN_ACCOUNTING;

    /**
     * Returns the formatter to use to format the target object.
     *
     * @return LocalizedCurrencyFormatter
     */
    protected function lazy_get_formatter()
    {
        return new LocalizedCurrencyFormatter(new CurrencyFormatter($this->locale->repository), $this->locale);
    }

    /**
     * Returns the localized name of the currency.
     *
     * @param int|null $count Used for pluralization.
     *
     * @return string
     */
    public function get_name($count = null)
    {
        $offset = 'displayName';

        if ($count == 1)
        {
            $offset .= '-count-one';
        }
        else if ($count)
        {
            $offset .= '-count-other';
        }

        return $this->locale['currencies'][$this->target->code][$offset];
    }

    /**
     * @var string
     */
    private $symbol;

    /**
     * Returns the localized symbol of the currency.
     *
     * @return string
     */
    protected function get_symbol()
    {
        $symbol = &$this->symbol;

        return $symbol ?: $symbol = $this->locale['currencies'][$this->target->code]['symbol'];
    }

    /**
     * Formats currency using localized conventions.
     *
     * @param number $number
     * @param string $pattern
     * @param array $symbols
     *
     * @return string
     */
    public function format($number, $pattern = LocalizedCurrencyFormatter::PATTERN_STANDARD, array $symbols = [])
    {
        return $this->formatter->format($number, $this->target, $pattern, $symbols);
    }
}
ICanBoogie/CLDR 1.9.x API documentation generated by ApiGen