8889841cPK[{]KK README.mdnu[# PHP Number to words converter [![Travis](https://travis-ci.org/kwn/number-to-words.svg?branch=master)](https://travis-ci.org/kwn/number-to-words) [![Code Climate](https://codeclimate.com/github/kwn/number-to-words/badges/gpa.svg)](https://codeclimate.com/github/kwn/number-to-words) [![Test Coverage](https://codeclimate.com/github/kwn/number-to-words/badges/coverage.svg)](https://codeclimate.com/github/kwn/number-to-words/coverage) [![Latest Stable Version](https://poser.pugx.org/kwn/number-to-words/v/stable)](https://packagist.org/packages/kwn/number-to-words) This library allows you to convert a number to words. ## Installation Add package to your composer.json by running: ``` $ composer require kwn/number-to-words ``` ## Usage This library currently has two types of number-to-words transformations: number and currency. In order to use a specific transformer for certain language you need to create an instance of `NumberToWords` class and then call a method which creates a new instance of a transformer; ### Number Transformer Before using a transformer, it must be created: ```php use NumberToWords\NumberToWords; // create the number to words "manager" class $numberToWords = new NumberToWords(); // build a new number transformer using the RFC 3066 language identifier $numberTransformer = $numberToWords->getNumberTransformer('en'); ``` Then it can be used passing in numeric values to the `toWords()` method: ```php $numberTransformer->toWords(5120); // outputs "five thousand one hundred twenty" ``` ### Currency Transformer Creating a currency transformer works just like a number transformer. ```php use NumberToWords\NumberToWords; // create the number to words "manager" class $numberToWords = new NumberToWords(); // build a new currency transformer using the RFC 3066 language identifier $currencyTransformer = $numberToWords->getCurrencyTransformer('en'); ``` Then it can be used passing in numeric values for amount and ISO 4217 currency identifier to the `toWords()` method: ```php $currencyTransformer->toWords(5099, 'USD'); // outputs "fifty dollars ninety nine cents" ``` Bare in mind, the currency transformer accepts integers as the amount to transform. It means that if you store amounts as floats (e.g. 4.99) you need to multiply them by 100 and pass the integer (499) as an argument. ## Available locale Language | Identifier | Number | Currency | ---------------------|------------|--------|----------| Albanian | al | + | - | Belgian French | fr_BE | + | - | Brazilian Portuguese | pt_BR | + | + | Bulgarian | bg | + | - | Czech | cs | + | - | Danish | dk | + | + | Dutch | nl | + | - | English | en | + | + | Estonian | et | + | - | Georgian | ka | + | + | German | de | + | + | French | fr | + | + | Hungarian | hu | + | + | Indonesian | id | + | - | Italian | it | + | - | Lithuanian | lt | + | + | Latvian | lv | + | + | Malay | ms | + | - | Persian | fa | + | - | Polish | pl | + | + | Romanian | ro | + | + | Slovak | sk | + | - | Spanish | es | + | + | Russian | ru | + | + | Swedish | sv | + | - | Turkish | tr | + | + | Turkmen | tk | + | + | Ukrainian | ua | + | + | Yoruba | yo | + | + | ## Contributors Most of the transformers were ported from `pear/Numbers_Words` library. Some of them were slightly refactored. Some of them were created by other [contributors](https://github.com/kwn/number-to-words/graphs/contributors) who were helping me with the initial version of that library. This library is still under a heavy refactoring so the legacy code should ultimately disappear. ## Questions and answers **Q: Why the code looks like a crap? Why it gets so low rank on code climate?** A: Most of the code was just migrated from `pear/Numbers_Words`. That library still remembers the ages of PHP4. I constantly refactor it, so it's getting better. I'm also porting some mechanisms from other languages so sooner or later it will look quite good. **Q: There's an error!** A: Please report an issue, or even better - create a pull request. I don't speak most of those languages so your help is much appreciated. Thanks! **Q: Why there are some transformers which cannot be used (they live under `UntestedLocale` namespace)?** A: Simply, because there are no test cases for them. You're more than welcome to create some test cases for them, so we'll be able to include them in a list of available languages. PK[0;;.codeclimate.ymlnu[exclude_paths: - "tests/" ratings: paths: - "src/" PK["++ .travis.ymlnu[language: php dist: xenial php: - 5.6 - 7.1 - 7.2 - 7.3 - 7.4 install: - composer self-update - composer install before_script: - GIT_COMMIT_SHA=$TRAVIS_PULL_REQUEST_SHA - GIT_BRANCH=$TRAVIS_PULL_REQUEST_BRANCH - phpenv config-add xdebug.ini - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ~/cc-test-reporter - chmod a+x ~/cc-test-reporter - ~/cc-test-reporter before-build script: - make build after_script: - ~/cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT PK[MJ  xdebug.ininu[xdebug.mode=coverage PK[iphpunit.xml.distnu[ tests/ src/ PK[f 5src/CurrencyTransformer/SlovakCurrencyTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); $decimal = (int) ($amount / 100); $fraction = $amount % 100; if ($fraction === 0) { $fraction = null; } $currency = strtoupper($currency); if (!array_key_exists($currency, SlovakDictionary::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = SlovakDictionary::$currencyNames[$currency]; $words = []; $words[] = $numberTransformer->toWords($decimal); $words[] = $nounGenderInflector->inflectNounByNumber( $decimal, $currencyNames[0][0], $currencyNames[0][1], $currencyNames[0][2] ); if (null !== $fraction) { $words[] = $numberTransformer->toWords($fraction); $words[] = $nounGenderInflector->inflectNounByNumber( $fraction, $currencyNames[1][0], $currencyNames[1][1], $currencyNames[1][2] ); } return implode(' ', $words); } } PK[7src/CurrencyTransformer/RomanianCurrencyTransformer.phpnu[transformToCurrency($amount, 'ro', $currency); } } PK[}(6src/CurrencyTransformer/SpanishCurrencyTransformer.phpnu[transformToCurrency($amount, 'es', $currency); } } PK[6Պ 6src/CurrencyTransformer/EnglishCurrencyTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->useRegularExponents($exponentInflector) ->build(); $decimal = (int) ($amount / 100); $fraction = abs($amount % 100); if ($fraction === 0) { $fraction = null; } $currency = strtoupper($currency); if (!array_key_exists($currency, EnglishDictionary::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = EnglishDictionary::$currencyNames[$currency]; $return = trim($numberTransformer->toWords($decimal)); $level = ($decimal === 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[0]) > 1) { $return .= ' ' . $currencyNames[0][$level]; } else { $return .= ' ' . $currencyNames[0][0] . 's'; } } else { $return .= ' ' . $currencyNames[0][0]; } if (null !== $fraction) { $return .= ' ' . trim($numberTransformer->toWords($fraction)); $level = $fraction === 1 ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $return .= ' ' . $currencyNames[1][$level]; } else { $return .= ' ' . $currencyNames[1][0] . 's'; } } else { $return .= ' ' . $currencyNames[1][0]; } } return $return; } } PK[)68src/CurrencyTransformer/HungarianCurrencyTransformer.phpnu[transformToCurrency($amount, 'hu', $currency); } } PK[^5src/CurrencyTransformer/DanishCurrencyTransformer.phpnu[transformToCurrency($amount, 'dk', $currency); } } PK[H/src/CurrencyTransformer/CurrencyTransformer.phpnu[transformToCurrency($amount, 'fr', $currency); } } PK[R1 1 6src/CurrencyTransformer/LatvianCurrencyTransformer.phpnu[toWords($decimal)); $level = $this->getLevel($decimal); $return .= ' ' . $currencyNames[0][$level]; if (!is_null($fraction)) { $return .= ' ' . $dictionary->getAnd() . ' ' . trim($numberTransformer->toWords($fraction)); $level = $this->getLevel($fraction); $return .= ' ' . $currencyNames[1][$level]; } else { $level = 1; $return .= ' ' . $dictionary->getAnd() . ' ' . $dictionary->getZero() . ' ' . $currencyNames[1][$level]; } return $return; } /** * @param $number * @return int */ public function getLevel($number) { $lastTwoDigits = $number % 100; $lastDigit = $number % 10; $isUnit = log($number) === 1; if ($number === 0) { return 1; } if (!$isUnit && $lastDigit === 0) { return 1; } if (10 <= $lastTwoDigits && $lastTwoDigits <= 20) { return 1; } if ($number === 1) { return 0; } if (!$isUnit && $lastDigit === 1) { return 0; } return 2; } } PK[Y8src/CurrencyTransformer/UkrainianCurrencyTransformer.phpnu[transformToCurrency($amount, 'ua', $currency); } } PK[(ED D 9src/CurrencyTransformer/LithuanianCurrencyTransformer.phpnu[toWords($decimal)); $level = $this->getLevel($decimal); $return .= ' ' . $currencyNames[0][$level]; if (!is_null($fraction)) { $return .= ' ' . $dictionary->getAnd() . ' ' . trim($numberTransformer->toWords($fraction)); $level = $this->getLevel($fraction); $return .= ' ' . $currencyNames[1][$level]; } else { $level = 1; $return .= ' ' . $dictionary->getAnd() . ' ' . $dictionary->getZero() . ' ' . $currencyNames[1][$level]; } return $return; } /** * @param $number * @return int */ public function getLevel($number) { $lastTwoDigits = $number % 100; $lastDigit = $number % 10; $isUnit = log($number) === 1; if ($number === 0) { return 1; } if (!$isUnit && $lastDigit === 0) { return 1; } if (10 <= $lastTwoDigits && $lastTwoDigits <= 20) { return 1; } if ($number === 1) { return 0; } if (!$isUnit && $lastDigit === 1) { return 0; } return 2; } } PK[I* 5src/CurrencyTransformer/GermanCurrencyTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoPowerAwareTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); $decimal = (int) ($amount / 100); $fraction = abs($amount % 100); if ($fraction === 0) { $fraction = null; } $currency = strtoupper($currency); if (!array_key_exists($currency, GermanDictionary::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = GermanDictionary::$currencyNames[$currency]; $return = trim($numberTransformer->toWords($decimal)); $level = ($decimal === 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[0]) > 1) { $return .= ' ' . $currencyNames[0][$level]; } else { $return .= ' ' . $currencyNames[0][0]; } } else { $return .= ' ' . $currencyNames[0][0]; } if (null !== $fraction) { $return .= ' '.$dictionary::$and.' '; $return .= trim($numberTransformer->toWords($fraction)); $level = $fraction === 1 ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $return .= ' ' . $currencyNames[1][$level]; } else { $return .= ' ' . $currencyNames[1][0]; } } else { $return .= ' ' . $currencyNames[1][0]; } } return $return; } } PK[Y=5src/CurrencyTransformer/YorubaCurrencyTransformer.phpnu[transformToCurrency($amount, 'yo', $currency); } } PK[΅6src/CurrencyTransformer/RussianCurrencyTransformer.phpnu[transformToCurrency($amount, 'ru', $currency); } } PK[r6 7src/CurrencyTransformer/AlbanianCurrencyTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->useRegularExponents($exponentInflector) ->build(); $decimal = (int) ($amount / 100); $fraction = abs($amount % 100); if ($fraction === 0) { $fraction = null; } $currency = strtoupper($currency); if (!array_key_exists($currency, AlbanianDictionary::$currencyNames)) { throw new NumberToWordsException( sprintf('Paraja "%s" për gjuhën "%s" nuk është në dispozicion', $currency, get_class($this)) ); } $currencyNames = AlbanianDictionary::$currencyNames[$currency]; $return = trim($numberTransformer->toWords($decimal)); $level = ($decimal === 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[0]) > 1) { $return .= ' ' . $currencyNames[0][$level]; } else { $return .= ' ' . $currencyNames[0][0] . 's'; } } else { $return .= ' ' . $currencyNames[0][0]; } if (null !== $fraction) { $return .= ' ' . trim($numberTransformer->toWords($fraction)); $level = $fraction === 1 ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $return .= ' ' . $currencyNames[1][$level]; } else { $return .= ' ' . $currencyNames[1][0] . 's'; } } else { $return .= ' ' . $currencyNames[1][0]; } } return $return; } } PK[*b6src/CurrencyTransformer/TurkmenCurrencyTransformer.phpnu[transformToCurrency($amount, 'tk', $currency); } } PK[8/7src/CurrencyTransformer/GeorgianCurrencyTransformer.phpnu[transformToCurrency($amount, 'ka', $currency); } } PK[l|с6src/CurrencyTransformer/TurkishCurrencyTransformer.phpnu[transformToCurrency($amount, 'tr', $currency); } } PK[t 5src/CurrencyTransformer/PolishCurrencyTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); $decimal = (int) ($amount / 100); $fraction = abs($amount % 100); if ($fraction === 0) { $fraction = null; } $currency = strtoupper($currency); if (!array_key_exists($currency, PolishDictionary::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = PolishDictionary::$currencyNames[$currency]; $words = []; $words[] = $numberTransformer->toWords($decimal); $words[] = $nounGenderInflector->inflectNounByNumber( $decimal, $currencyNames[0][0], $currencyNames[0][1], $currencyNames[0][2] ); if (null !== $fraction) { $words[] = $numberTransformer->toWords($fraction); $words[] = $nounGenderInflector->inflectNounByNumber( $fraction, $currencyNames[1][0], $currencyNames[1][1], $currencyNames[1][2] ); } return implode(' ', $words); } } PK[ܧBsrc/CurrencyTransformer/PortugueseBrazilianCurrencyTransformer.phpnu[transformToCurrency($amount, 'pt_BR', $currency); } } PK[15src/TransformerOptions/CurrencyTransformerOptions.phpnu[convertFraction; } /** * @param bool $convertFraction * * @return self */ public function setConvertFraction($convertFraction) { $this->convertFraction = $convertFraction; return $this; } /** * @return bool */ public function isConvertFractionIfZero() { return $this->convertFractionIfZero; } /** * @param bool $convertFractionIfZero * * @return self */ public function setConvertFractionIfZero($convertFractionIfZero) { $this->convertFractionIfZero = $convertFractionIfZero; return $this; } /** * @return bool */ public function isShowDecimalIfZero() { return $this->showDecimalIfZero; } /** * @param bool $showDecimalIfZero * * @return self */ public function setShowDecimalIfZero($showDecimalIfZero) { $this->showDecimalIfZero = $showDecimalIfZero; return $this; } /** * @return bool */ public function isShowFractionIfZero() { return $this->showFractionIfZero; } /** * @param bool $showFractionIfZero * * @return self */ public function setShowFractionIfZero($showFractionIfZero) { $this->showFractionIfZero = $showFractionIfZero; return $this; } } PK[̢|)src/Service/NumberToTripletsConverter.phpnu[ 0) { $triplets[] = $number % 1000; $number = (int) ($number / 1000); } return array_reverse($triplets); } } PK[ f-ٛsrc/NumberToWords.phpnu[ AlbanianNumberTransformer::class, 'bg' => BulgarianNumberTransformer::class, 'cs' => CzechNumberTransformer::class, 'de' => GermanNumberTransformer::class, 'dk' => DanishNumberTransformer::class, 'en' => EnglishNumberTransformer::class, 'es' => SpanishNumberTransformer::class, 'et' => EstonianNumberTransformer::class, 'fa' => PersianNumberTransformer::class, 'fr' => FrenchNumberTransformer::class, 'fr_BE' => FrenchBelgianNumberTransformer::class, 'hu' => HungarianNumberTransformer::class, 'id' => IndonesianNumberTransformer::class, 'it' => ItalianNumberTransformer::class, 'ka' => GeorgianNumberTransformer::class, 'lt' => LithuanianNumberTransformer::class, 'lv' => LatvianNumberTransformer::class, 'ms' => MalayNumberTransformer::class, 'nl' => DutchNumberTransformer::class, 'pl' => PolishNumberTransformer::class, 'pt_BR' => PortugueseBrazilianNumberTransformer::class, 'ro' => RomanianNumberTransformer::class, 'ru' => RussianNumberTransformer::class, 'sk' => SlovakNumberTransformer::class, 'sv' => SwedishNumberTransformer::class, 'tk' => TurkmenNumberTransformer::class, 'tr' => TurkishNumberTransformer::class, 'ua' => UkrainianNumberTransformer::class, 'yo' => YorubaNumberTransformer::class, ]; private $currencyTransformers = [ 'al' => AlbanianCurrencyTransformer::class, 'de' => GermanCurrencyTransformer::class, 'dk' => DanishCurrencyTransformer::class, 'en' => EnglishCurrencyTransformer::class, 'es' => SpanishCurrencyTransformer::class, 'fr' => FrenchCurrencyTransformer::class, 'hu' => HungarianCurrencyTransformer::class, 'ka' => GeorgianCurrencyTransformer::class, 'lt' => LithuanianCurrencyTransformer::class, 'lv' => LatvianCurrencyTransformer::class, 'pl' => PolishCurrencyTransformer::class, 'pt_BR' => PortugueseBrazilianCurrencyTransformer::class, 'ro' => RomanianCurrencyTransformer::class, 'ru' => RussianCurrencyTransformer::class, 'sk' => SlovakCurrencyTransformer::class, 'tk' => TurkmenCurrencyTransformer::class, 'tr' => TurkishCurrencyTransformer::class, 'ua' => UkrainianCurrencyTransformer::class, 'yo' => YorubaCurrencyTransformer::class ]; /** * @param string $language * * @throws \InvalidArgumentException * @return NumberTransformer */ public function getNumberTransformer($language) { if (!array_key_exists($language, $this->numberTransformers)) { throw new \InvalidArgumentException(sprintf( 'Number transformer for "%s" language is not implemented.', $language )); } return new $this->numberTransformers[$language]; } /** * @param string $language * * @throws \InvalidArgumentException * @return CurrencyTransformer */ public function getCurrencyTransformer($language) { if (!array_key_exists($language, $this->currencyTransformers)) { throw new \InvalidArgumentException(sprintf( 'Currency transformer for "%s" language is not implemented.', $language )); } return new $this->currencyTransformers[$language]; } } PK[g 6**2src/NumberTransformer/LatvianNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[Ff||1src/NumberTransformer/SlovakNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[MM0src/NumberTransformer/CzechNumberTransformer.phpnu[transformToWords($number, 'cs'); } } PK[NDOO2src/NumberTransformer/ItalianNumberTransformer.phpnu[transformToWords($number, 'it'); } } PK[kQQ4src/NumberTransformer/UkrainianNumberTransformer.phpnu[transformToWords($number, 'ua'); } } PK[DI2src/NumberTransformer/EnglishNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->useRegularExponents($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[k2 2 2src/NumberTransformer/NumberTransformerBuilder.phpnu[numberTransformer = new GenericNumberTransformer(); } /** * @param Dictionary $dictionary * * @return $this */ public function withDictionary(Dictionary $dictionary) { $this->numberTransformer->setDictionary($dictionary); return $this; } /** * @param string $separator * * @return $this */ public function withWordsSeparatedBy($separator) { $this->numberTransformer->setWordsSeparator($separator); return $this; } /** * @param string $separator * * @return $this */ public function withExponentsSeparatedBy($separator) { $this->numberTransformer->setExponentsSeparator($separator); return $this; } /** * @param NumberToTripletsConverter $numberToTripletsConverter * @param TripletTransformer $tripletTransformer * * @return $this */ public function transformNumbersBySplittingIntoTriplets( NumberToTripletsConverter $numberToTripletsConverter, TripletTransformer $tripletTransformer ) { $this->numberTransformer->setNumberToTripletsConverter($numberToTripletsConverter); $this->numberTransformer->setTripletTransformer($tripletTransformer); return $this; } /** * @param NumberToTripletsConverter $numberToTripletsConverter * @param PowerAwareTripletTransformer $powerAwareTripletTransformer * * @return $this */ public function transformNumbersBySplittingIntoPowerAwareTriplets( NumberToTripletsConverter $numberToTripletsConverter, PowerAwareTripletTransformer $powerAwareTripletTransformer ) { $this->numberTransformer->setNumberToTripletsConverter($numberToTripletsConverter); $this->numberTransformer->setPowerAwareTripletTransformer($powerAwareTripletTransformer); return $this; } /** * @param ExponentInflector $exponentInflector * * @return $this */ public function inflectExponentByNumbers(ExponentInflector $exponentInflector) { $this->numberTransformer->setExponentInflector($exponentInflector); return $this; } /** * @param ExponentGetter $exponentGetter * * @return $this */ public function useRegularExponents(ExponentGetter $exponentGetter) { $this->numberTransformer->setExponentGetter($exponentGetter); return $this; } /** * @return NumberTransformer */ public function build() { return $this->numberTransformer; } } PK[pxRR5src/NumberTransformer/IndonesianNumberTransformer.phpnu[transformToWords($number, 'id'); } } PK[- PP3src/NumberTransformer/RomanianNumberTransformer.phpnu[transformToWords($number, 'ro'); } } PK[)D2src/NumberTransformer/PersianNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->useRegularExponents($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[œ^^>src/NumberTransformer/PortugueseBrazilianNumberTransformer.phpnu[transformToWords($number, 'pt_BR'); } } PK[-||1src/NumberTransformer/PolishNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[-cNN1src/NumberTransformer/YorubaNumberTransformer.phpnu[transformToWords($number, 'yo'); } } PK[)JOO2src/NumberTransformer/SwedishNumberTransformer.phpnu[transformToWords($number, 'sv'); } } PK[9o$OO2src/NumberTransformer/SpanishNumberTransformer.phpnu[transformToWords($number, 'es'); } } PK[u NN1src/NumberTransformer/DanishNumberTransformer.phpnu[transformToWords($number, 'dk'); } } PK[S IOO2src/NumberTransformer/RussianNumberTransformer.phpnu[transformToWords($number, 'ru'); } } PK[+NN1src/NumberTransformer/FrenchNumberTransformer.phpnu[transformToWords($number, 'fr'); } } PK[߻OO2src/NumberTransformer/TurkishNumberTransformer.phpnu[transformToWords($number, 'tr'); } } PK[FCRR5src/NumberTransformer/LithuanianNumberTransformer.phpnu[transformToWords($number, 'lt'); } } PK[,OO2src/NumberTransformer/TurkmenNumberTransformer.phpnu[transformToWords($number, 'tk'); } } PK[[91))1src/NumberTransformer/GermanNumberTransformer.phpnu[withDictionary($dictionary) ->withWordsSeparatedBy('') ->transformNumbersBySplittingIntoPowerAwareTriplets($numberToTripletsConverter, $tripletTransformer) ->inflectExponentByNumbers($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[XX8src/NumberTransformer/FrenchBelgianNumberTransformer.phpnu[transformToWords($number, 'fr_BE'); } } PK[LQQ4src/NumberTransformer/HungarianNumberTransformer.phpnu[transformToWords($number, 'hu'); } } PK[:UU3src/NumberTransformer/AlbanianNumberTransformer.phpnu[withDictionary($dictionary) ->withExponentsSeparatedBy('e') ->withWordsSeparatedBy(' ') ->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer) ->useRegularExponents($exponentInflector) ->build(); return $numberTransformer->toWords($number); } } PK[QQ4src/NumberTransformer/BulgarianNumberTransformer.phpnu[transformToWords($number, 'bg'); } } PK[S_k882src/NumberTransformer/GenericNumberTransformer.phpnu[dictionary->getZero(); } $words = []; if ($number < 0) { $words[] = $this->dictionary->getMinus(); $number *= -1; } if (null !== $this->tripletTransformer || null !== $this->powerAwareTripletTransformer) { $words = array_merge($words, $this->getWordsBySplittingIntoTriplets($number)); } return trim(implode($this->wordsSeparator, $words)); } /** * @param int $number * * @return array */ private function getWordsBySplittingIntoTriplets($number) { $words = []; $triplets = $this->numberToTripletsConverter->convertToTriplets($number); foreach ($triplets as $i => $triplet) { if ($triplet > 0) { if (null !== $this->tripletTransformer) { $words[] = $this->tripletTransformer->transformToWords($triplet); } if (null !== $this->powerAwareTripletTransformer) { $words[] = $this->powerAwareTripletTransformer->transformToWords( $triplet, count($triplets) - $i - 1 ); } if (null !== $this->exponentInflector) { $words[] = $this->exponentInflector->inflectExponent($triplet, count($triplets) - $i - 1); } if (null !== $this->exponentGetter) { $words[] = $this->exponentGetter->getExponent(count($triplets) - $i - 1); } } } if (null !== $this->exponentSeparator && count($words) > 2) { for ($i = 2; $i <= count($words) - 2; $i+=2) { array_splice($words, $i++, 0, $this->exponentSeparator); } } return $words; } /** * @param Dictionary $dictionary */ public function setDictionary(Dictionary $dictionary) { $this->dictionary = $dictionary; } /** * @param TripletTransformer $tripletTransformer */ public function setTripletTransformer(TripletTransformer $tripletTransformer) { $this->tripletTransformer = $tripletTransformer; $this->powerAwareTripletTransformer = null; } /** * @param PowerAwareTripletTransformer $powerAwareTripletTransformer */ public function setPowerAwareTripletTransformer(PowerAwareTripletTransformer $powerAwareTripletTransformer) { $this->powerAwareTripletTransformer = $powerAwareTripletTransformer; $this->tripletTransformer = null; } /** * @param string $wordsSeparator */ public function setWordsSeparator($wordsSeparator) { $this->wordsSeparator = $wordsSeparator; } /** * @param NumberToTripletsConverter $numberToTripletsConverter */ public function setNumberToTripletsConverter(NumberToTripletsConverter $numberToTripletsConverter) { $this->numberToTripletsConverter = $numberToTripletsConverter; } /** * @param ExponentInflector $exponentInflector */ public function setExponentInflector(ExponentInflector $exponentInflector) { $this->exponentInflector = $exponentInflector; $this->exponentGetter = null; } /** * @param ExponentGetter $exponentGetter */ public function setExponentGetter(ExponentGetter $exponentGetter) { $this->exponentGetter = $exponentGetter; $this->exponentInflector = null; } /** * @param string $exponentSeparator */ public function setExponentsSeparator($exponentSeparator) { $this->exponentSeparator = $exponentSeparator; } } PK[u,,3src/NumberTransformer/GeorgianNumberTransformer.phpnu[transformToWords($number, 'ka'); } } PK[֕MM0src/NumberTransformer/MalayNumberTransformer.phpnu[transformToWords($number, 'ms'); } } PK[EMM0src/NumberTransformer/DutchNumberTransformer.phpnu[transformToWords($number, 'nl'); } } PK[~BPP3src/NumberTransformer/EstonianNumberTransformer.phpnu[transformToWords($number, 'et'); } } PK[Ml+src/NumberTransformer/NumberTransformer.phpnu[ 'десет', // "ten" 'edinadeset' => 'единадесет', // "eleven" 'na' => 'на', // liaison particle for 12 to 19 'sto' => 'сто', // "hundred" 'sta' => 'ста', // suffix for 2 and 3 hundred 'stotin' => 'стотин', // suffix for 4 to 9 hundred 'hiliadi' => 'хиляди' // plural form of "thousand" ]; /** * The words for digits (except zero). Note that, there are three genders for them (neuter, masculine and feminine). * The words for 3 to 9 (masculine) and for 2 to 9 (feminine) are the same as neuter, so they're filled * in the _initDigits() method, which is invoked from the constructor. */ private static $digits = [ 0 => [1 => "едно", "две", "три", "четири", "пет", "шест", "седем", "осем", "девет"], // neuter 1 => [1 => 'един', 'два'], // masculine -1 => [1 => 'една'] // feminine ]; private static $digitsInitialized = false; /** * A flag, that determines if the "and" word is placed already before the last non-empty group of digits. */ private $lastAnd = false; private $zero = 'нула'; private $and = 'и'; private $wordSeparator = ' '; private $minus = 'минус'; private $pluralSuffix = 'а'; private static $exponent = [ 0 => '', 3 => 'хиляда', 6 => 'милион', 9 => 'милиард', 12 => 'трилион', 15 => 'квадрилион', 18 => 'квинтилион', 21 => 'секстилион', 24 => 'септилион', 27 => 'октилион', 30 => 'ноналион', 33 => 'декалион', 36 => 'ундекалион', 39 => 'дуодекалион', 42 => 'тредекалион', 45 => 'кватордекалион', 48 => 'квинтдекалион', 51 => 'сексдекалион', 54 => 'септдекалион', 57 => 'октодекалион', 60 => 'новемдекалион', 63 => 'вигинтилион', 66 => 'унвигинтилион', 69 => 'дуовигинтилион', 72 => 'тревигинтилион', 75 => 'кваторвигинтилион', 78 => 'квинвигинтилион', 81 => 'сексвигинтилион', 84 => 'септенвигинтилион', 87 => 'октовигинтилион', 90 => 'новемвигинтилион', 93 => 'тригинтилион', 96 => 'унтригинтилион', 99 => 'дуотригинтилион', 102 => 'третригинтилион', 105 => 'кватортригинтилион', 108 => 'квинтригинтилион', 111 => 'секстригинтилион', 114 => 'септентригинтилион', 117 => 'октотригинтилион', 120 => 'новемтригинтилион', 123 => 'квадрагинтилион', 126 => 'унквадрагинтилион', 129 => 'дуоквадрагинтилион', 132 => 'треквадрагинтилион', 135 => 'кваторквадрагинтилион', 138 => 'квинквадрагинтилион', 141 => 'сексквадрагинтилион', 144 => 'септенквадрагинтилион', 147 => 'октоквадрагинтилион', 150 => 'новемквадрагинтилион', 153 => 'квинквагинтилион', 156 => 'унквинкагинтилион', 159 => 'дуоквинкагинтилион', 162 => 'треквинкагинтилион', 165 => 'кваторквинкагинтилион', 168 => 'квинквинкагинтилион', 171 => 'сексквинкагинтилион', 174 => 'септенквинкагинтилион', 177 => 'октоквинкагинтилион', 180 => 'новемквинкагинтилион', 183 => 'сексагинтилион', 186 => 'унсексагинтилион', 189 => 'дуосексагинтилион', 192 => 'тресексагинтилион', 195 => 'кваторсексагинтилион', 198 => 'квинсексагинтилион', 201 => 'секссексагинтилион', 204 => 'септенсексагинтилион', 207 => 'октосексагинтилион', 210 => 'новемсексагинтилион', 213 => 'септагинтилион', 216 => 'унсептагинтилион', 219 => 'дуосептагинтилион', 222 => 'тресептагинтилион', 225 => 'кваторсептагинтилион', 228 => 'квинсептагинтилион', 231 => 'секссептагинтилион', 234 => 'септенсептагинтилион', 237 => 'октосептагинтилион', 240 => 'новемсептагинтилион', 243 => 'октогинтилион', 246 => 'уноктогинтилион', 249 => 'дуооктогинтилион', 252 => 'треоктогинтилион', 255 => 'кватороктогинтилион', 258 => 'квиноктогинтилион', 261 => 'сексоктогинтилион', 264 => 'септоктогинтилион', 267 => 'октооктогинтилион', 270 => 'новемоктогинтилион', 273 => 'нонагинтилион', 276 => 'уннонагинтилион', 279 => 'дуононагинтилион', 282 => 'тренонагинтилион', 285 => 'кваторнонагинтилион', 288 => 'квиннонагинтилион', 291 => 'секснонагинтилион', 294 => 'септеннонагинтилион', 297 => 'октононагинтилион', 300 => 'новемнонагинтилион', 303 => 'центилион' ]; public function __construct() { $this->initDigits(); } private function initDigits() { if (!self::$digitsInitialized) { for ($i = 3; $i <= 9; $i++) { self::$digits[1][$i] =& self::$digits[0][$i]; } for ($i = 2; $i <= 9; $i++) { self::$digits[-1][$i] =& self::$digits[0][$i]; } self::$digitsInitialized = true; } } /** * @param int $num * * @return array */ private function splitNumber($num) { if (is_string($num)) { $ret = array(); $strlen = strlen($num); $first = substr($num, 0, $strlen%3); preg_match_all('/\d{3}/', substr($num, $strlen%3, $strlen), $m); $ret =& $m[0]; if ($first) { array_unshift($ret, $first); } return $ret; } return explode(' ', number_format($num, 0, '', ' ')); // a faster version for integers } /** * @param int $num * @param int $gender * @param bool $last * * @return string */ private function showDigitsGroup($num, $gender = 0, $last = false) { /* A storage array for the return string. Positions 1, 3, 5 are intended for digit words and everything else (0, 2, 4) for "and" words. Both of the above types are optional, so the size of the array may vary. */ $ret = []; // extract the value of each digit from the three-digit number $e = $num % 10; // ones $d = ($num - $e) % 100 / 10; // tens $s = ($num - $d * 10 - $e) % 1000 / 100; // hundreds // process the "hundreds" digit. if ($s) { switch ($s) { case 1: $ret[1] = self::$miscStrings['sto']; break; case 2: case 3: $ret[1] = self::$digits[0][$s] . self::$miscStrings['sta']; break; default: $ret[1] = self::$digits[0][$s] . self::$miscStrings['stotin']; } } // process the "tens" digit, and optionally the "ones" digit. if ($d) { // in the case of 1, the "ones" digit also must be processed if ($d == 1) { if (!$e) { $ret[3] = self::$miscStrings['deset']; // ten } else { if ($e == 1) { $ret[3] = self::$miscStrings['edinadeset']; // eleven } else { $ret[3] = self::$digits[1][$e] . self::$miscStrings['na'] . self::$miscStrings['deset']; // twelve - nineteen } // the "ones" digit is alredy processed, so skip a second processment $e = 0; } } else { $ret[3] = self::$digits[1][$d] . self::$miscStrings['deset']; // twenty - ninety } } // process the "ones" digit if ($e) { $ret[5] = self::$digits[$gender][$e]; } // put "and" where needed if (count($ret) > 1) { if ($e) { $ret[4] = $this->and; } else { $ret[2] = $this->and; } } // put "and" optionally in the case this is the last non-empty group if ($last) { if (!$s || count($ret) == 1) { $ret[0] = $this->and; } $this->lastAnd = true; } // sort the return array so that "and" constructs go to theirs appropriate places ksort($ret); return implode($this->wordSeparator, $ret); } /** * @param int $num * * @return string */ protected function toWords($num = 0) { $ret = []; $ret_minus = ''; // check if $num is a valid non-zero number if (!$num || preg_match('/^-?0+$/', $num) || !preg_match('/^-?\d+$/', $num)) { return $this->zero; } // add a minus sign if (substr($num, 0, 1) == '-') { $ret_minus = $this->minus . $this->wordSeparator; $num = substr($num, 1); } // strip excessive zero signs $num = ltrim($num, '0'); // split $num to groups of three-digit numbers $num_groups = $this->splitNumber($num); $sizeof_numgroups = count($num_groups); // go through the groups in reverse order, so that the last group could be determined for ($i = $sizeof_numgroups - 1, $j = 1; $i >= 0; $i--, $j++) { if (!isset($ret[$j])) { $ret[$j] = ''; } // what is the corresponding exponent for the current group $pow = $sizeof_numgroups - $i; // skip processment for empty groups if ($num_groups[$i] != '000') { if ($num_groups[$i] > 1) { if ($pow == 1) { $ret[$j] .= $this->showDigitsGroup( $num_groups[$i], 0, !$this->lastAnd && $i ) . $this->wordSeparator; $ret[$j] .= self::$exponent[($pow - 1) * 3]; } elseif ($pow == 2) { $ret[$j] .= $this->showDigitsGroup( $num_groups[$i], -1, !$this->lastAnd && $i ) . $this->wordSeparator; $ret[$j] .= self::$miscStrings['hiliadi'] . $this->wordSeparator; } else { $ret[$j] .= $this->showDigitsGroup( $num_groups[$i], 1, !$this->lastAnd && $i ) . $this->wordSeparator; $ret[$j] .= self::$exponent[($pow - 1) * 3] . $this->pluralSuffix . $this->wordSeparator; } } else { if ($pow == 1) { $ret[$j] .= $this->showDigitsGroup( $num_groups[$i], 0, !$this->lastAnd && $i ) . $this->wordSeparator; } elseif ($pow == 2) { $ret[$j] .= self::$exponent[($pow - 1) * 3] . $this->wordSeparator; } else { $ret[$j] .= self::$digits[1][1] . $this->wordSeparator . self::$exponent[($pow - 1) * 3] . $this->wordSeparator; } } } } return $ret_minus . rtrim(implode('', array_reverse($ret)), $this->wordSeparator); } } PK[v&src/Legacy/Numbers/Words/Locale/Sv.phpnu[ [''], 3 => ['tusen', 'tusen'], 6 => ['miljon', 'miljoner'], 9 => ['miljard', 'miljarder'], 12 => ['biljon', 'biljoner'], 15 => ['biljard', 'biljarder'], 18 => ['triljon', 'triljoner'], 21 => ['triljard', 'triljarder'], 24 => ['kvadriljon', 'kvadriljoner'], 27 => ['kvadriljard', 'kvadriljarder'], 30 => ['kvintiljon', 'kvintiljoner'], 33 => ['kvintiljard', 'kvintiljarder'], 36 => ['sextiljon', 'sextiljoner'], 39 => ['sextiljard', 'sextiljarder'], 42 => ['septiljon', 'septiljoner'], 45 => ['septiljard', 'septiljarder'], 48 => ['oktiljon', 'oktiljoner'], 51 => ['oktiljard', 'oktiljarder'], 54 => ['noniljon', 'noniljoner'], 57 => ['noniljard', 'noniljarder'], 60 => ['dekiljon', 'dekiljoner'], 63 => ['dekiljard', 'dekiljarder'], ]; private static $digits = [ 'noll', 'en', 'två', 'tre', 'fyra', 'fem', 'sex', 'sju', 'åtta', 'nio' ]; private $wordSeparator = ' '; private $exponentWordSeparator = '-'; /** * @param int $num * @param int $power * @param string $powsuffix * * @return string */ protected function toWords($num, $power = 0, $powsuffix = '') { $ret = ''; // add a minus sign if (substr($num, 0, 1) == '-') { $ret = $this->wordSeparator . $this->minus; $num = substr($num, 1); } // strip excessive zero signs and spaces $num = trim($num); $num = preg_replace('/^0+/', '', $num); if (strlen($num) > 3) { $maxp = strlen($num) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($num, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; if ($powsuffix != '') { $cursuffix .= $this->wordSeparator . $powsuffix; } $ret .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $num = substr($num, $maxp - $curp, $curp - $p + 1); if ($num == 0) { return $ret; } } elseif ($num == 0 || $num == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($num)) { case 3: $h = (int) substr($num, -3, 1); case 2: $t = (int) substr($num, -2, 1); case 1: $d = (int) substr($num, -1, 1); break; case 0: return; break; } if ($h) { $ret .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'hundra'; } // ten, twenty etc. switch ($t) { case 5: case 6: case 7: $ret .= $this->wordSeparator . self::$digits[$t] . 'tio'; break; case 9: $ret .= $this->wordSeparator . 'nittio'; break; case 8: $ret .= $this->wordSeparator . 'åttio'; break; case 4: $ret .= $this->wordSeparator . 'fyrtio'; break; case 3: $ret .= $this->wordSeparator . 'trettio'; break; case 2: $ret .= $this->wordSeparator . 'tjugo'; break; case 1: switch ($d) { case 0: $ret .= $this->wordSeparator . 'tio'; break; case 1: $ret .= $this->wordSeparator . 'elva'; break; case 2: $ret .= $this->wordSeparator . 'tolv'; break; case 3: $ret .= $this->wordSeparator . 'tretton'; break; case 4: $ret .= $this->wordSeparator . 'fjorton'; break; case 5: case 6: $ret .= $this->wordSeparator . self::$digits[$d] . 'ton'; break; case 7: $ret .= $this->wordSeparator . 'sjutton'; break; case 8: $ret .= $this->wordSeparator . 'arton'; break; case 9: $ret .= $this->wordSeparator . 'nitton'; } break; } if ($t != 1 && $d > 0) { // add digits only in <0>,<1,9> and <21,inf> // add minus sign between [2-9] and digit $ret .= $this->wordSeparator . self::$digits[$d]; } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } $ret .= $this->wordSeparator . $lev[0]; } if ($powsuffix != '') { $ret .= $this->wordSeparator . $powsuffix; } return $ret; } } PK[r~$$&src/Legacy/Numbers/Words/Locale/Ms.phpnu[ [''], 3 => ['ribu'], 6 => ['juta'], 9 => ['bilion'], 12 => ['trilion'], 24 => ['quadrillion'], 30 => ['quintillion'], 36 => ['sextillion'], 42 => ['septillion'], 48 => ['octillion'], 54 => ['nonillion'], 60 => ['decillion'], 66 => ['undecillion'], ]; private static $digits = [ 'kosong', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'lapan', 'sembilan' ]; private $wordSeparator = ' '; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $return = ''; if ($number < 0) { $return .= $this->minus; $number *= -1; } if (strlen($number) > 4) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; $return .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return $return; } } elseif ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = $th = 0; switch (strlen($number)) { case 4: $th = (int) substr($number, -4, 1); case 3: $h = (int) substr($number, -3, 1); case 2: $t = (int) substr($number, -2, 1); case 1: $d = (int) substr($number, -1, 1); break; case 0: return; break; } if ($th) { if ($th == 1) { $return .= $this->wordSeparator . 'seribu'; } else { $return .= $this->wordSeparator . self::$digits[$th] . $this->wordSeparator . 'ribu'; } } if ($h) { if ($h == 1) { $return .= $this->wordSeparator . 'seratus'; } else { $return .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'ratus'; } } // ten, twenty etc. switch ($t) { case 9: case 8: case 7: case 6: case 5: case 4: case 3: case 2: $return .= $this->wordSeparator . self::$digits[$t] . ' puluh'; break; case 1: switch ($d) { case 0: $return .= $this->wordSeparator . 'sepuluh'; break; case 1: $return .= $this->wordSeparator . 'sebelas'; break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $return .= $this->wordSeparator . self::$digits[$d] . ' belas'; break; } break; } if ($t != 1 && $d > 0) { // add digits only in <0>,<1,9> and <21,inf> // add minus sign between [2-9] and digit if ($t > 1) { $return .= ' ' . self::$digits[$d]; } else { $return .= $this->wordSeparator . self::$digits[$d]; } } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } $return .= $this->wordSeparator . $lev[0]; } return $return; } } PK[D!F#F#&src/Legacy/Numbers/Words/Locale/Ua.phpnu[ 'двадцять', 'тридцять', 'сорок', 'п\'ятдесят', 'шістдесят', 'сімдесят', 'вісімдесят', 'дев\'яносто', ]; protected static $hundred = [ '', 'сто', 'двісті', 'триста', 'чотириста', 'п\'ятсот', 'шістсот', 'сімсот', 'вісімсот', 'дев\'ятсот', ]; protected static $mega = [ [3 => self::FEMALE], [3 => self::MALE], ['тисяча', 'тисячі', 'тисяч', self::FEMALE], ['мільйон', 'мільйони', 'мільйонів', self::MALE], ['мільярд', 'мільярди', 'мільярдів', self::MALE], ['трильйон', 'трильйони', 'трильйонів', self::MALE], ['квадрильйон', 'квадрильйони', 'квадрильйонів', self::MALE], ['секстильйон', 'секстильйони', 'секстильйонів', self::MALE], ]; protected static $currencyNames = [ 'ALL' => [ [1, 'лек', 'лека', 'леков'], [2, 'киндарка', 'киндарки', 'киндарок'], ], 'AUD' => [ [1, 'австралийский доллар', 'австралийских доллара', 'австралийских долларов'], [1, 'цент', 'цента', 'центов'], ], 'BGN' => [ [1, 'лев', 'лева', 'левов'], [2, 'стотинка', 'стотинки', 'стотинок'], ], 'BRL' => [ [1, 'бразильский реал', 'бразильских реала', 'бразильских реалов'], [1, 'сентаво', 'сентаво', 'сентаво'], ], 'BYR' => [ [1, 'белорусский рубль', 'белорусских рубля', 'белорусских рублей'], [2, 'копейка', 'копейки', 'копеек'], ], 'CAD' => [ [1, 'канадский доллар', 'канадских доллара', 'канадских долларов'], [1, 'цент', 'цента', 'центов'], ], 'CHF' => [ [1, 'швейцарский франк', 'швейцарских франка', 'швейцарских франков'], [1, 'сантим', 'сантима', 'сантимов'], ], 'CYP' => [ [1, 'кипрский фунт', 'кипрских фунта', 'кипрских фунтов'], [1, 'цент', 'цента', 'центов'], ], 'CZK' => [ [2, 'чешская крона', 'чешских кроны', 'чешских крон'], [1, 'галирж', 'галиржа', 'галиржей'], ], 'DKK' => [ [2, 'датская крона', 'датских кроны', 'датских крон'], [1, 'эре', 'эре', 'эре'], ], 'EEK' => [ [2, 'эстонская крона', 'эстонских кроны', 'эстонских крон'], [1, 'сенти', 'сенти', 'сенти'], ], 'EUR' => [ [1, 'евро', 'евро', 'евро'], [1, 'евроцент', 'евроцента', 'евроцентов'], ], 'GBP' => [ [1, 'фунт стерлингов', 'фунта стерлингов', 'фунтов стерлингов'], [1, 'пенс', 'пенса', 'пенсов'], ], 'HKD' => [ [1, 'гонконгский доллар', 'гонконгских доллара', 'гонконгских долларов'], [1, 'цент', 'цента', 'центов'], ], 'HRK' => [ [2, 'хорватская куна', 'хорватских куны', 'хорватских кун'], [2, 'липа', 'липы', 'лип'], ], 'HUF' => [ [1, 'венгерский форинт', 'венгерских форинта', 'венгерских форинтов'], [1, 'филлер', 'филлера', 'филлеров'], ], 'ISK' => [ [2, 'исландская крона', 'исландских кроны', 'исландских крон'], [1, 'эре', 'эре', 'эре'], ], 'JPY' => [ [2, 'иена', 'иены', 'иен'], [2, 'сена', 'сены', 'сен'], ], 'LTL' => [ [1, 'лит', 'лита', 'литов'], [1, 'цент', 'цента', 'центов'], ], 'LVL' => [ [1, 'лат', 'лата', 'латов'], [1, 'сентим', 'сентима', 'сентимов'], ], 'MKD' => [ [1, 'македонский динар', 'македонских динара', 'македонских динаров'], [1, 'дени', 'дени', 'дени'], ], 'MTL' => [ [2, 'мальтийская лира', 'мальтийских лиры', 'мальтийских лир'], [1, 'сентим', 'сентима', 'сентимов'], ], 'NOK' => [ [2, 'норвежская крона', 'норвежских кроны', 'норвежских крон'], [0, 'эре', 'эре', 'эре'], ], 'PLN' => [ [1, 'злотый', 'злотых', 'злотых'], [1, 'грош', 'гроша', 'грошей'], ], 'ROL' => [ [1, 'румынский лей', 'румынских лей', 'румынских лей'], [1, 'бани', 'бани', 'бани'], ], // both RUR and RUR are used, Some users use RUB for shorter form 'RUB' => [ [1, 'рубль', 'рубля', 'рублей'], [2, 'копейка', 'копейки', 'копеек'], ], 'RUR' => [ [1, 'российский рубль', 'российских рубля', 'российских рублей'], [2, 'копейка', 'копейки', 'копеек'], ], 'SEK' => [ [2, 'шведская крона', 'шведских кроны', 'шведских крон'], [1, 'эре', 'эре', 'эре'], ], 'SIT' => [ [1, 'словенский толар', 'словенских толара', 'словенских толаров'], [2, 'стотина', 'стотины', 'стотин'], ], 'SKK' => [ [2, 'словацкая крона', 'словацких кроны', 'словацких крон'], [0, '', '', ''], ], 'TRL' => [ [2, 'турецкая лира', 'турецких лиры', 'турецких лир'], [1, 'пиастр', 'пиастра', 'пиастров'], ], 'UAH' => [ [2, 'гривня', 'гривні', 'гривень'], [2, 'копійка', 'копійки', 'копійок'], ], 'USD' => [ [1, 'доллар США', 'доллара США', 'долларов США'], [1, 'цент', 'цента', 'центов'], ], 'YUM' => [ [1, 'югославский динар', 'югославских динара', 'югославских динаров'], [1, 'пара', 'пара', 'пара'], ], 'ZAR' => [ [1, 'ранд', 'ранда', 'рандов'], [1, 'цент', 'цента', 'центов'], ] ]; } PK[VKQQ&src/Legacy/Numbers/Words/Locale/Ro.phpnu[numberToTripletsConverter = new NumberToTripletsConverter(); } /** * @param mixed $numberAtom * @param array $noun * @param bool $asNoun * * @return string */ private function getNumberInflectionForGender($numberAtom, $noun, $asNoun = false) { $numberNames = $numberAtom; if (!is_array($numberAtom)) { $numberNames = [ $numberAtom, $numberAtom, $numberAtom, $numberAtom, ]; } elseif (count($numberAtom) === 2) { $numberNames = [ $numberAtom[0], $numberAtom[1], $numberAtom[1], $numberAtom[0], ]; } $numberName = $numberNames[$noun[2]]; if (!is_array($numberName)) { return $numberName; } return $numberName[(int) $asNoun]; } /** * @param string $pluralRule * @param array $noun * * @return string */ private function getNounDeclensionForNumber($pluralRule, $noun) { // Nothing for abstract count if ($noun[2] === Gender::GENDER_ABSTRACT) { return ''; } // One if ($pluralRule === 'o') { return $noun[0]; } // Few if ($pluralRule === 'f') { return $noun[1]; } // Many return Dictionary::$manyPart . Dictionary::$wordSeparator . $noun[1]; } /** * @param int $number * * @return string */ private function getPluralRule($number) { // One if ($number === Dictionary::$thresholdFew) { return 'o'; } // Zero, which behaves like few if ($number === 0) { return 'f'; } $uz = $number % 100; // Hundreds behave like many if ($uz === 0) { return 'm'; } // Many if ($uz > Dictionary::$thresholdMany) { return 'm'; } // Below the many threshold, so few return 'f'; } /** * @param int $number * @param array $noun * @param bool $forceNoun * @param bool $forcePlural * * @return string */ private function showDigitsGroup($number, $noun, $forceNoun = false, $forcePlural = false) { $ret = ''; $units = $number % 10; $tensAndUnits = $number % 100; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; if ($hundreds) { $ret .= $this->showDigitsGroup($hundreds, Dictionary::$exponent[2]); if ($tensAndUnits) { $ret .= Dictionary::$wordSeparator; } } if ($tensAndUnits) { if (isset(Dictionary::$numbers[$tensAndUnits])) { $ret .= $this->getNumberInflectionForGender(Dictionary::$numbers[$tensAndUnits], $noun, !$forceNoun); } else { if ($tens) { $ret .= Dictionary::$numbers[$tens * 10]; // no accord needed for tens if ($units) { $ret .= Dictionary::$wordSeparator . Dictionary::$and . Dictionary::$wordSeparator; } } if ($units) { $ret .= $this->getNumberInflectionForGender(Dictionary::$numbers[$units], $noun, !$forceNoun); } } } if ($noun[2] === Gender::GENDER_ABSTRACT) { return $ret; } $pluralRule = $this->getPluralRule($number); if ($pluralRule === 'o' && $forcePlural) { $pluralRule = 'f'; } return $ret . Dictionary::$wordSeparator . $this->getNounDeclensionForNumber($pluralRule, $noun); } /** * @param int $num * @param array $noun * * @return string */ protected function toWords($num = 0, $noun = []) { if (empty($noun)) { $noun = [null, null, Gender::GENDER_ABSTRACT]; } $ret = ''; if ($num === 0) { return Dictionary::$numbers[0]; } if ($num < 0) { $ret = Dictionary::$minus . Dictionary::$wordSeparator; $num *= -1; } // One is a special case if ($num === 1) { $ret = $this->getNumberInflectionForGender(Dictionary::$numbers[1], $noun); if ($noun[2] !== Gender::GENDER_ABSTRACT) { $ret .= Dictionary::$wordSeparator . $this->getNounDeclensionForNumber('o', $noun); } return $ret; } $numberGroups = $this->numberToTripletsConverter->convertToTriplets($num); $sizeOfNumberGroups = count($numberGroups); $showedNoun = false; foreach ($numberGroups as $i => $number) { $power = $sizeOfNumberGroups - $i; if ($number === 0) { continue; } if ($i) { $ret .= Dictionary::$wordSeparator; } if ($power - 1) { $ret .= $this->showDigitsGroup($number, Dictionary::$exponent[($power - 1) * 3]); } else { $showedNoun = true; $ret .= $this->showDigitsGroup($number, $noun, false, $num !== 1); } } if (!$showedNoun) { $ret .= Dictionary::$wordSeparator . $this->getNounDeclensionForNumber('m', $noun); // ALWAYS many } return trim($ret, Dictionary::$wordSeparator); } /** * @param string $currency * @param int $decimal * @param int $fraction * * @throws NumberToWordsException * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!isset(Dictionary::$currencyNames[$currency])) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $words = []; $currencyNouns = Dictionary::$currencyNames[$currency]; $words[] = $this->toWords($decimal, $currencyNouns[0]); if ($fraction !== null) { $words[] = Dictionary::$and; $words[] = $this->toWords($fraction, $currencyNouns[1]); } return implode(' ', $words); } } PK[p9>| | &src/Legacy/Numbers/Words/Locale/Hu.phpnu[ [''], 3 => ['ezer'], 6 => ['millió'], 9 => ['milliárd'], 12 => ['billió'], 15 => ['billiárd'], 18 => ['trillió'], 21 => ['trilliárd'], 24 => ['kvadrillió'], 27 => ['kvadrilliárd'], 30 => ['kvintillió'], 33 => ['kvintilliárd'], 36 => ['szextillió'], 39 => ['szextilliárd'], 42 => ['szeptillió'], 45 => ['szeptilliárd'], 48 => ['oktillió'], 51 => ['oktilliárd'], 54 => ['nonillió'], 57 => ['nonilliárd'], 60 => ['decillió'], 63 => ['decilliárd'], ]; private static $digits = [ 'nulla', 'egy', 'kettő', 'három', 'négy', 'öt', 'hat', 'hét', 'nyolc', 'kilenc' ]; private $wordSeparator = ''; private $thousandSeparator = '-'; private static $currencyNames = [ 'ALL' => [['lek'], ['qindarke']], 'AUD' => [['ausztrál dollár'], ['cent']], 'BAM' => [['konvertibilis márka'], ['pfening']], 'BGN' => [['leva'], ['sztotinka']], 'BRL' => [['real'], ['centavo']], 'BYR' => [['belarusz rubel'], ['kopejka']], 'BYN' => [['belarusz rubel'], ['kopejka']], 'CAD' => [['kanadai dollár'], ['cent']], 'CHF' => [['svájci frank'], ['rappen']], 'CYP' => [['ciprusi font'], ['cent']], 'CZK' => [['cseh korona'], ['halér']], 'DKK' => [['dán korona'], ['őre']], 'EEK' => [['észt korona'], ['sent']], 'EUR' => [['euró'], ['cent']], 'GBP' => [['font'], ['penny']], 'HKD' => [['hongkongi dollár'], ['cent']], 'HRK' => [['kuna'], ['lipa']], 'HUF' => [['forint'], ['fillér']], 'ILS' => [['sékel'], ['agora']], 'ISK' => [['izlandi korona'], ['aurar']], 'JPY' => [['jen'], ['szen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['santim']], 'MKD' => [['macedón dénár'], ['deni']], 'MTL' => [['máltai líra'], ['cent']], 'NOK' => [['norvég korona'], ['őre']], 'PLN' => [['zloty'], ['grosz']], 'ROL' => [['lej'], ['bani']], 'RUB' => [['orosz rubel'], ['kopejka']], 'SEK' => [['svéd korona'], ['őre']], 'SIT' => [['tolár'], ['sztotin']], 'TRL' => [['lira'], ['kuruþ']], 'UAH' => [['hrivnya'], ['kopejka']], 'USD' => [['dollár'], ['cent']], 'ZAR' => [['rand'], ['cent']] ]; /** * @param int $number * @param int $power * * @return null|string */ protected function toWords($number, $power = 0) { $return = ''; if ($number < 0) { $return = $this->minus . ' '; $number = (int) abs($number); } if ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $gt2000 = $number > 2000; if (strlen($number) > 3) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $return .= $this->toWords($snum, $p); if ($gt2000) { $return .= $this->thousandSeparator; } } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return rtrim($return, $this->thousandSeparator); } } $d = $number % 10; $t = (int) ($number / 10) % 10; $h = (int) ($number / 100) % 10; if ($h) { $return .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'száz'; } // ten, twenty etc. switch ($t) { case 9: case 5: $return .= $this->wordSeparator . self::$digits[$t] . 'ven'; break; case 8: case 6: $return .= $this->wordSeparator . self::$digits[$t] . 'van'; break; case 7: $return .= $this->wordSeparator . 'hetven'; break; case 3: $return .= $this->wordSeparator . 'harminc'; break; case 4: $return .= $this->wordSeparator . 'negyven'; break; case 2: switch ($d) { case 0: $return .= $this->wordSeparator . 'húsz'; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $return .= $this->wordSeparator . 'huszon'; break; } break; case 1: switch ($d) { case 0: $return .= $this->wordSeparator . 'tíz'; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $return .= $this->wordSeparator . 'tizen'; break; } break; } if ($d > 0) { $return .= $this->wordSeparator . self::$digits[$d]; } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } $return .= $this->wordSeparator . $lev[0]; } return $return; } /** * @param string $currency * @param int $decimal * @param int $fraction * * @return string * @throws NumberToWordsException */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, self::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = self::$currencyNames[$currency]; $return = trim($this->toWords($decimal)); $level = $decimal == 1 ? 0 : 1; if ($level > 0) { if (count($currencyNames[0]) > 1) { $return .= ' ' . $currencyNames[0][$level]; } else { $return .= ' ' . $currencyNames[0][0]; } } else { $return .= ' ' . $currencyNames[0][0]; } if ($fraction !== null) { $return .= ' ' . trim($this->toWords($fraction)); $level = ($fraction == 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $return .= ' ' . $currencyNames[1][$level]; } else { $return .= ' ' . $currencyNames[1][0]; } } else { $return .= ' ' . $currencyNames[1][0]; } } return $return; } } PK[8!!&src/Legacy/Numbers/Words/Locale/Fr.phpnu[ 'dix', 11 => 'onze', 12 => 'douze', 13 => 'treize', 14 => 'quatorze', 15 => 'quinze', 16 => 'seize', 20 => 'vingt', 30 => 'trente', 40 => 'quarante', 50 => 'cinquante', 60 => 'soixante', 100 => 'cent' ]; private static $digits = [ 1 => 'un', 2 => 'deux', 3 => 'trois', 4 => 'quatre', 5 => 'cinq', 6 => 'six', 7 => 'sept', 8 => 'huit', 9 => 'neuf' ]; private $zero = 'zéro'; private $and = 'et'; private $wordSeparator = ' '; private $subunitSeparator = 'et'; private $dash = '-'; private $minus = 'moins'; private $pluralSuffix = 's'; private static $exponent = [ 0 => '', 3 => 'mille', 6 => 'million', 9 => 'milliard', 12 => 'billion', // was 'trillion', 15 => 'quadrillion', 18 => 'quintillion', 21 => 'sextillion', 24 => 'septillion', 27 => 'octillion', 30 => 'nonillion', 33 => 'decillion', 36 => 'undecillion', 39 => 'duodecillion', 42 => 'tredecillion', 45 => 'quattuordecillion', 48 => 'quindecillion', 51 => 'sexdecillion', 54 => 'septendecillion', 57 => 'octodecillion', 60 => 'novemdecillion', 63 => 'vigintillion', 66 => 'unvigintillion', 69 => 'duovigintillion', 72 => 'trevigintillion', 75 => 'quattuorvigintillion', 78 => 'quinvigintillion', 81 => 'sexvigintillion', 84 => 'septenvigintillion', 87 => 'octovigintillion', 90 => 'novemvigintillion', 93 => 'trigintillion', 96 => 'untrigintillion', 99 => 'duotrigintillion', ]; private static $currencyNames = [ 'AUD' => [['dollar australien', 'dollars australiens'], ['cent']], 'CAD' => [['dollar canadien', 'dollars canadiens'], ['cent']], 'CHF' => [['franc suisse', 'francs suisses'], ['centime']], 'CNY' => [['yuan'], ['fen']], 'DZD' => [['dinar'], ['centime']], 'EUR' => [['euro'], ['centime']], 'JPY' => [['yen', ['sen']]], 'LYD' => [['dinar'], ['centime']], 'MAD' => [['dirham'], ['centime']], 'MRO' => [['ouguiya'], ['khoums']], 'MXN' => [['peso mexicain', 'pesos mexicains'], ['centavo']], 'TND' => [['dinar'], ['centime']], 'USD' => [['dollar américain', 'dollars américains'], ['cent']], 'XAF' => [['franc CFA', 'francs CFA'], ['centime']], 'XOF' => [['franc CFA', 'francs CFA'], ['centime']], 'XPF' => [['franc CFP', 'francs CFP'], ['centime']], ]; /** * @param int $number * * @return array */ private function splitNumber($number) { return array_map('intval', explode(' ', number_format($number, 0, '', ' '))); } /** * @param int $num * @param bool $last * * @return string */ private function showDigitsGroup($num, $last = false) { $return = ''; $ones = $num % 10; $tens = (int) ($num % 100 / 10); $hundreds = (int) ($num % 1000 / 100); if ($hundreds) { if ($hundreds > 1) { $return .= self::$digits[$hundreds] . $this->wordSeparator . self::$miscNumbers[100]; if ($last && !$ones && !$tens) { $return .= $this->pluralSuffix; } } else { $return .= self::$miscNumbers[100]; } $return .= $this->wordSeparator; } if ($tens) { if ($tens === 1) { if ($ones <= 6) { $return .= self::$miscNumbers[10 + $ones]; } else { $return .= self::$miscNumbers[10] . '-' . self::$digits[$ones]; } $ones = 0; } elseif ($tens > 5) { if ($tens < 8) { $return .= self::$miscNumbers[60]; $resto = $tens * 10 + $ones - 60; if ($ones === 1) { $return .= $this->wordSeparator . $this->and . $this->wordSeparator; } elseif ($resto) { $return .= $this->dash; } if ($resto) { $return .= $this->showDigitsGroup($resto); } $ones = 0; } else { $return .= self::$digits[4] . $this->dash . self::$miscNumbers[20]; $resto = $tens * 10 + $ones - 80; if ($resto) { $return .= $this->dash; $return .= $this->showDigitsGroup($resto); $ones = 0; } else { $return .= $this->pluralSuffix; } } } else { $return .= self::$miscNumbers[$tens * 10]; } } if ($ones) { if ($tens) { if ($ones === 1) { $return .= $this->wordSeparator . $this->and . $this->wordSeparator; } else { $return .= $this->dash; } } $return .= self::$digits[$ones]; } return rtrim($return, $this->wordSeparator); } /** * @param int $number * * @return string */ protected function toWords($number) { $ret = ''; if ($number === 0) { return $this->zero; } if ($number < 0) { $ret = $this->minus . $this->wordSeparator; } $numberGroups = $this->splitNumber(abs($number)); $sizeOfNumberGroups = count($numberGroups); foreach ($numberGroups as $i => $numb) { $power = $sizeOfNumberGroups - $i; if ($numb !== 0) { if ($numb !== 1 || $power !== 2) { $ret .= $this->showDigitsGroup( $numb, $i + 1 === $sizeOfNumberGroups || $power > 2 ) . $this->wordSeparator; } $ret .= self::$exponent[($power - 1) * 3]; if ($power > 2 && $numb > 1) { $ret .= $this->pluralSuffix; } $ret .= $this->wordSeparator; } } return rtrim($ret, $this->wordSeparator); } /** * @param string $currency * @param int $decimal * @param int $fraction * * @throws NumberToWordsException * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = static::$currencyNames[$currency]; $return = trim($this->toWords($decimal)) . $this->wordSeparator; $level = ($decimal === 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[0]) > 1) { $return .= $currencyNames[0][$level]; } else { $return .= $currencyNames[0][0] . 's'; } } else { $return .= $currencyNames[0][0]; } if (null !== $fraction) { $return .= sprintf('%1$s%2$s%1$s%3$s%1$s', $this->wordSeparator, $this->subunitSeparator, trim($this->toWords($fraction))); $level = $fraction === 1 ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $return .= $currencyNames[1][$level]; } else { $return .= $currencyNames[1][0] . 's'; } } else { $return .= $currencyNames[1][0]; } } return $return; } } PK[&src/Legacy/Numbers/Words/Locale/Lt.phpnu[ [''], 3 => ['tūkstantis', 'tūkstančiai', 'tūkstančių'], 6 => ['milijonas', 'milijonai', 'milijonų'], 9 => ['bilijonas', 'bilijonai', 'bilijonų'], 12 => ['trilijonas', 'trilijonai', 'trilijonų'], 15 => ['kvadrilijonas', 'kvadrilijonai', 'kvadrilijonų'], 18 => ['kvintilijonas', 'kvintilijonai', 'kvintilijonų'] ]; private static $digits = [ 'nulis', 'vienas', 'du', 'trys', 'keturi', 'penki', 'šeši', 'septyni', 'aštuoni', 'devyni' ]; private $wordSeparator = ' '; /** * @param int $number * @param int $power * @param string $powsuffix * * @return string */ protected function toWords($number, $power = 0, $powsuffix = '') { $return = ''; // add a minus sign if (substr($number, 0, 1) == '-') { $return = $this->wordSeparator . $this->minus; $number = substr($number, 1); } // strip excessive zero signs and spaces $number = trim($number); $number = preg_replace('/^0+/', '', $number); if (strlen($number) > 3) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; if ($powsuffix != '') { $cursuffix .= $this->wordSeparator . $powsuffix; } $return .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return $return; } } elseif ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($number)) { case 3: $h = (int) substr($number, -3, 1); case 2: $t = (int) substr($number, -2, 1); case 1: $d = (int) substr($number, -1, 1); break; case 0: return; break; } if ($h > 1) { $return .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'šimtai'; } elseif ($h) { $return .= $this->wordSeparator . 'šimtas'; } // ten, twenty etc. switch ($t) { case 9: $return .= $this->wordSeparator . 'devyniasdešimt'; break; case 8: $return .= $this->wordSeparator . 'aštuoniasdešimt'; break; case 7: $return .= $this->wordSeparator . 'septyniasdešimt'; break; case 6: $return .= $this->wordSeparator . 'šešiasdešimt'; break; case 5: $return .= $this->wordSeparator . 'penkiasdešimt'; break; case 4: $return .= $this->wordSeparator . 'keturiasdešimt'; break; case 3: $return .= $this->wordSeparator . 'trisdešimt'; break; case 2: $return .= $this->wordSeparator . 'dvidešimt'; break; case 1: switch ($d) { case 0: $return .= $this->wordSeparator . 'dešimt'; break; case 1: $return .= $this->wordSeparator . 'vienuolika'; break; case 2: $return .= $this->wordSeparator . 'dvylika'; break; case 3: $return .= $this->wordSeparator . 'trylika'; break; case 4: $return .= $this->wordSeparator . 'keturiolika'; break; case 5: $return .= $this->wordSeparator . 'penkiolika'; break; case 6: $return .= $this->wordSeparator . 'šešiolika'; break; case 7: $return .= $this->wordSeparator . 'septyniolika'; break; case 8: $return .= $this->wordSeparator . 'aštuoniolika'; break; case 9: $return .= $this->wordSeparator . 'devyniolika'; break; } break; } // add digits only in <0>,<1,9> and <21,inf> if ($t != 1 && $d > 0) { if ($d > 1 || !$power || $t) { $return .= $this->wordSeparator . self::$digits[$d]; } } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } //echo " $t $d
"; if ($t == 1 || ($t > 0 && $d == 0)) { $return .= $this->wordSeparator . $lev[2]; } elseif ($d > 1) { $return .= $this->wordSeparator . $lev[1]; } else { $return .= $this->wordSeparator . $lev[0]; } } if ($powsuffix != '') { $return .= $this->wordSeparator . $powsuffix; } return $return; } } PK[(FI##&src/Legacy/Numbers/Words/Locale/It.phpnu[ ['', ''], 3 => ['mille', 'mila'], 6 => ['milione', 'milioni'], 12 => ['miliardo', 'miliardi'], 18 => ['trillone', 'trilloni'], 24 => ['quadrilione', 'quadrilioni'], ]; private static $digits = [ 'zero', 'uno', 'due', 'tre', 'quattro', 'cinque', 'sei', 'sette', 'otto', 'nove' ]; private $wordSeparator = ''; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $ret = ''; if ($number < 0) { $ret .= $this->minus; $number *= -1; } if (strlen($number) > 6) { $current_power = 6; // check for highest power if (isset(self::$exponent[$power])) { // convert the number above the first 6 digits // with it's corresponding $power. $snum = substr($number, 0, -6); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $ret .= $this->toWords($snum, $power + 6); } } $number = substr($number, -6); if ($number == 0) { return $ret; } } elseif ($number == 0 || $number == '') { return (' ' . self::$digits[0] . ' '); $current_power = strlen($number); } else { $current_power = strlen($number); } $thousands = (int) ($number / 1000); if ($thousands == 1) { $ret .= $this->wordSeparator . 'mille' . $this->wordSeparator; } elseif ($thousands > 1) { $ret .= $this->toWords($thousands, 3) . $this->wordSeparator; } $hundreds = (int) ($number / 100 % 10); $tens = (int) ($number / 10 % 10); $units = (int) ($number % 10); // centinaia: duecento, trecento, etc... switch ($hundreds) { case 1: if ($units === 0 && $tens === 0) { // is it's '100' use 'cien' $ret .= $this->wordSeparator . 'cento'; } else { $ret .= $this->wordSeparator . 'cento'; } break; case 2: case 3: case 4: case 6: case 8: $ret .= $this->wordSeparator . self::$digits[$hundreds] . 'cento'; break; case 5: $ret .= $this->wordSeparator . 'cinquecento'; break; case 7: $ret .= $this->wordSeparator . 'settecento'; break; case 9: $ret .= $this->wordSeparator . 'novecento'; break; } // decine: venti trenta, etc... switch ($tens) { case 9: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'novant'; break; default: $ret .= $this->wordSeparator . 'novanta'; break; } break; case 8: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'ottant'; break; default: $ret .= $this->wordSeparator . 'ottanta'; break; } break; case 7: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'settant'; break; default: $ret .= $this->wordSeparator . 'settanta'; break; } break; case 6: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'sessant'; break; default: $ret .= $this->wordSeparator . 'sessanta'; break; } break; case 5: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'cinquant'; break; default: $ret .= $this->wordSeparator . 'cinquanta'; break; } break; case 4: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'quarant'; break; default: $ret .= $this->wordSeparator . 'quaranta'; break; } break; case 3: switch ($units) { case 1: case 8: $ret .= $this->wordSeparator . 'trent'; break; default: $ret .= $this->wordSeparator . 'trenta'; break; } break; case 2: switch ($units) { case 0: $ret .= $this->wordSeparator . 'venti'; break; case 1: case 8: $ret .= $this->wordSeparator . 'vent' . self::$digits[$units]; break; default: $ret .= $this->wordSeparator . 'venti' . self::$digits[$units]; break; } break; case 1: switch ($units) { case 0: $ret .= $this->wordSeparator . 'dieci'; break; case 1: $ret .= $this->wordSeparator . 'undici'; break; case 2: $ret .= $this->wordSeparator . 'dodici'; break; case 3: $ret .= $this->wordSeparator . 'tredici'; break; case 4: $ret .= $this->wordSeparator . 'quattordici'; break; case 5: $ret .= $this->wordSeparator . 'quindici'; break; case 6: $ret .= $this->wordSeparator . 'sedici'; break; case 7: $ret .= $this->wordSeparator . 'diciassette'; break; case 8: $ret .= $this->wordSeparator . 'diciotto'; break; case 9: $ret .= $this->wordSeparator . 'diciannove'; break; } break; } // add digits only if it is a multiple of 10 and not 1x or 2x if (($tens != 1) and ($tens != 2) and ($units > 0)) { // don'tens add 'e' for numbers below 10 if ($tens != 0) { // use 'un' instead of 'uno' when there is a suffix ('mila', 'milloni', etc...) if (($power > 0) and ($units == 1)) { $ret .= $this->wordSeparator . ' e un'; } else { $ret .= $this->wordSeparator . '' . self::$digits[$units]; } } else { if (($power > 0) and ($units == 1)) { $ret .= $this->wordSeparator . 'un '; } else { $ret .= $this->wordSeparator . self::$digits[$units]; } } } if ($power > 0) { if (!array_key_exists($power, self::$exponent)) { return null; } $lev = self::$exponent[$power]; if ($units === 1 && $tens === 0 && $hundreds === 0) { $suffix = $lev[0]; } else { $suffix = $lev[1]; } if ($power >= 6) { $suffix = ' ' . $suffix . ' '; } if ($number !== 0) { $ret .= $this->wordSeparator . $suffix; } } return $ret; } } PK[Ӧ &src/Legacy/Numbers/Words/Locale/Tk.phpnu[ 'on', 'ýigrimi', 'otuz', 'kyrk', 'elli', 'altmyş', 'ýetmiş', 'segsen', 'togsan', ]; protected static $mega = [ '', '', 'müň', 'million', 'milliard', 'trillion', 'kwadrillion', ]; protected static $currencyNames = [ 'USD' => [ 'dollar', 'sent' ], 'TMT' => [ 'manat', 'teňňe' ], ]; private $wordSeparator = ' '; /** * @param $number * @return string * @internal param int $num * @internal param int $power * */ protected function toWords($number) { if ($number === 0) { return $this->zero; } $out = []; if ($number < 0) { $out[] = $this->minus; $number *= -1; } $megaSize = count(static::$mega); $signs = $megaSize * 3; // $signs equal quantity of zeros of the biggest number in self::$mega // + 3 additional sign (point and two zero) list ($unit, $subunit) = explode('.', sprintf("%{$signs}.2f", (float) $number)); // return sprintf("%{1}.2f", (float) $number); foreach (str_split($unit, 3) as $megaKey => $value) { if (!(int) $value) { continue; } $megaKey = $megaSize - $megaKey - 1; // $gender = static::$mega[$megaKey][3]; list ($i1, $i2, $i3) = array_map('intval', str_split($value, 1)); // mega-logic if ($i1 > 0) { $out[] = static::$ten[$i1] . ' ýüz'; # 1xx-9xx } // tens if ($i2 > 0) { $out[] = static::$tens[$i2]; } // ones if ($i3 > 0) { $out[] = static::$ten[$i3]; } if ($megaKey > 1) { $out[] = static::$mega[$megaKey]; } } return trim(preg_replace('/\s+/', ' ', implode(' ', $out))); } /** * @param $currency * @param $decimal * @param null $fraction * @return string * @throws NumberToWordsException */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = static::$currencyNames[$currency]; $return = $this->toWords($decimal) . ' ' . $currencyNames[0]; if (null !== $fraction) { $return .= ' ' . $this->toWords($fraction) . ' ' . $currencyNames[1]; } return $return; } } PK[YOX=X=&src/Legacy/Numbers/Words/Locale/Ru.phpnu[ 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто', ]; protected static $hundred = [ '', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот', ]; protected static $mega = [ [3 => self::FEMALE], [3 => self::MALE], ['тысяча', 'тысячи', 'тысяч', self::FEMALE], ['миллион', 'миллиона', 'миллионов', self::MALE], ['миллиард', 'милиарда', 'миллиардов', self::MALE], ['триллион', 'триллиона', 'триллионов', self::MALE], ['квадриллион', 'квадриллиона', 'квадриллионов', self::MALE], ['секстиллион', 'секстиллиона', 'секстиллионов', self::MALE], ]; protected static $currencyNames = [ 'ALL' => [ [1, 'лек', 'лека', 'леков'], [2, 'киндарка', 'киндарки', 'киндарок'] ], 'AUD' => [ [1, 'австралийский доллар', 'австралийских доллара', 'австралийских долларов'], [1, 'цент', 'цента', 'центов'] ], 'BGN' => [ [1, 'лев', 'лева', 'левов'], [2, 'стотинка', 'стотинки', 'стотинок'] ], 'BRL' => [ [1, 'бразильский реал', 'бразильских реала', 'бразильских реалов'], [1, 'сентаво', 'сентаво', 'сентаво'] ], 'BYN' => [ [1, 'белорусский рубль', 'белорусских рубля', 'белорусских рублей'], [2, 'копейка', 'копейки', 'копеек'] ], 'BYR' => [ [1, 'белорусский рубль', 'белорусских рубля', 'белорусских рублей'], [2, 'копейка', 'копейки', 'копеек'] ], 'CAD' => [ [1, 'канадский доллар', 'канадских доллара', 'канадских долларов'], [1, 'цент', 'цента', 'центов'] ], 'CHF' => [ [1, 'швейцарский франк', 'швейцарских франка', 'швейцарских франков'], [1, 'сантим', 'сантима', 'сантимов'] ], 'CNY' => [ [1, 'китайский юань', 'китайских юаня', 'китайских юаней'], [1, 'фынь', 'фыня', 'фыней'] ], 'CYP' => [ [1, 'кипрский фунт', 'кипрских фунта', 'кипрских фунтов'], [1, 'цент', 'цента', 'центов'] ], 'CZK' => [ [2, 'чешская крона', 'чешских кроны', 'чешских крон'], [1, 'галирж', 'галиржа', 'галиржей'] ], 'DKK' => [ [2, 'датская крона', 'датских кроны', 'датских крон'], [1, 'эре', 'эре', 'эре'] ], 'EEK' => [ [2, 'эстонская крона', 'эстонских кроны', 'эстонских крон'], [1, 'сенти', 'сенти', 'сенти'] ], 'EUR' => [ [1, 'евро', 'евро', 'евро'], [1, 'цент', 'цента', 'центов'] ], 'GBP' => [ [1, 'фунт стерлингов', 'фунта стерлингов', 'фунтов стерлингов'], [1, 'пенс', 'пенса', 'пенсов'] ], 'HKD' => [ [1, 'гонконгский доллар', 'гонконгских доллара', 'гонконгских долларов'], [1, 'цент', 'цента', 'центов'] ], 'HRK' => [ [2, 'хорватская куна', 'хорватских куны', 'хорватских кун'], [2, 'липа', 'липы', 'лип'] ], 'HUF' => [ [1, 'венгерский форинт', 'венгерских форинта', 'венгерских форинтов'], [1, 'филлер', 'филлера', 'филлеров'] ], 'IRR' => [ [1, 'иранский риал', 'иранских риала', 'иранских риалов'], [1, 'динар', 'динара', 'динаров'] ], 'ISK' => [ [2, 'исландская крона', 'исландских кроны', 'исландских крон'], [1, 'эре', 'эре', 'эре'] ], 'JPY' => [ [2, 'иена', 'иены', 'иен'], [2, 'сена', 'сены', 'сен'] ], 'KGS' => [ [1, 'киргизский сом', 'киргизских сома', 'киргизских сомов'], [1, 'тыйын', 'тыйына', 'тыйынов'] ], 'KZT' => [ [0, 'казахский тенге', 'казахских тенге', 'казахских тенге'], [1, 'тиын', 'тиына', 'тиынов'] ], 'KWD' => [ [1, 'кувейтский динар', 'кувейтских динара', 'кувейтских динаров'], [1, 'филс', 'филса', 'филсов'] ], 'LTL' => [ [1, 'лит', 'лита', 'литов'], [1, 'цент', 'цента', 'центов'] ], 'LVL' => [ [1, 'лат', 'лата', 'латов'], [1, 'сентим', 'сентима', 'сентимов'] ], 'MDL' => [ [1, 'молдавский лей', 'молдавских лея', 'молдавских леев'], [1, 'бань', 'баня', 'баней'] ], 'MKD' => [ [1, 'македонский динар', 'македонских динара', 'македонских динаров'], [1, 'дени', 'дени', 'дени'] ], 'MTL' => [ [2, 'мальтийская лира', 'мальтийских лиры', 'мальтийских лир'], [1, 'сентим', 'сентима', 'сентимов'] ], 'NOK' => [ [2, 'норвежская крона', 'норвежских кроны', 'норвежских крон'], [0, 'эре', 'эре', 'эре'] ], 'NZD' => [ [1, 'новозеландский доллар', 'новозеландских доллара', 'новозеландских долларов'], [1, 'цент', 'цента', 'центов'] ], 'PLN' => [ [1, 'злотый', 'злотых', 'злотых'], [1, 'грош', 'гроша', 'грошей'] ], 'ROL' => [ [1, 'румынский лей', 'румынских лей', 'румынских лей'], [1, 'бани', 'бани', 'бани'] ], 'RUB' => [ [1, 'рубль', 'рубля', 'рублей'], [2, 'копейка', 'копейки', 'копеек'] ], 'RUR' => [ [1, 'российский рубль', 'российских рубля', 'российских рублей'], [2, 'копейка', 'копейки', 'копеек'] ], 'SEK' => [ [2, 'шведская крона', 'шведских кроны', 'шведских крон'], [1, 'эре', 'эре', 'эре'] ], 'SGD' => [ [1, 'сингапурский доллар', 'сингапурских доллара', 'сингапурских долларов'], [1, 'цент', 'цента', 'центов'] ], 'SIT' => [ [1, 'словенский толар', 'словенских толара', 'словенских толаров'], [2, 'стотина', 'стотины', 'стотин'] ], 'SKK' => [ [2, 'словацкая крона', 'словацких кроны', 'словацких крон'], [0, '', '', ''] ], 'TRL' => [ [2, 'турецкая лира', 'турецких лиры', 'турецких лир'], [1, 'пиастр', 'пиастра', 'пиастров'] ], 'TRY' => [ [2, 'турецкая лира', 'турецкие лиры', 'турецких лир'], [1, 'куруш', 'куруша', 'курушей'] ], 'TMT' => [ [1, 'манат', 'маната', 'манатов'], [1, 'тенге', 'тенге', 'тенге'] ], 'UAH' => [ [2, 'гривна', 'гривны', 'гривен'], [2, 'копейка', 'копейки', 'копеек'], ], 'USD' => [ [1, 'доллар США', 'доллара США', 'долларов США'], [1, 'цент', 'цента', 'центов'] ], 'UZS' => [ [1, 'сум', 'сума', 'сумов'], [1, 'тийин', 'тийина', 'тийинов'], ], 'YUM' => [ [1, 'югославский динар', 'югославских динара', 'югославских динаров'], [1, 'пара', 'пара', 'пара'] ], 'ZAR' => [ [1, 'ранд', 'ранда', 'рандов'], [1, 'цент', 'цента', 'центов'] ] ]; /** * @param int $n * @param string $f1 * @param string $f2 * @param string $f5 * * @return string */ public function morph($n, $f1, $f2, $f5) { $n = abs((int) $n) % 100; if ($n > 10 && $n < 20) { return $f5; } $n = $n % 10; if ($n > 1 && $n < 5) { return $f2; } if ($n == 1) { return $f1; } return $f5; } /** * @param int $number * @param int $currencyGender * * @return string */ protected function toWords($number, $currencyGender = -1) { if ($number === 0) { return $this->zero; } $out = []; if ($number < 0) { $out[] = static::MINUS; $number *= -1; } $megaSize = count(static::$mega); $signs = $megaSize * 3; // $signs equal quantity of zeros of the biggest number in self::$mega // + 3 additional sign (point and two zero) list ($unit, $subunit) = explode('.', sprintf("%{$signs}.2F", (float) $number)); foreach (str_split($unit, 3) as $megaKey => $value) { if (!(int) $value) { continue; } $megaKey = $megaSize - $megaKey - 1; $gender = $megaKey === 1 && $currencyGender !== -1 ? $currencyGender : static::$mega[$megaKey][3]; list ($i1, $i2, $i3) = array_map('intval', str_split($value, 1)); // mega-logic $out[] = static::$hundred[$i1]; # 1xx-9xx if ($i2 > 1) { # 20-99 $out[] = static::$tens[$i2] . ' ' . static::$ten[$gender][$i3]; } else { # 10-19 | 1-9 $out[] = ($i2 > 0) ? static::$teens[$i3] : static::$ten[$gender][$i3]; } if ($megaKey > 1) { $out[] = $this->morph($value, static::$mega[$megaKey][0], static::$mega[$megaKey][1], static::$mega[$megaKey][2]); } } return trim(preg_replace('/\s+/', ' ', implode(' ', $out))); } /** * @param string $currency * @param int $decimal * @param int $fraction * * @throws NumberToWordsException * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = static::$currencyNames[$currency]; $return = ''; if ($decimal === 0 && !$fraction) { $return .= $this->toWords($decimal) .' '. $this->morph($decimal, $currencyNames[0][1], $currencyNames[0][2], $currencyNames[0][3]); return $return; } if ($decimal || (0 === $decimal && $this->options->isShowDecimalIfZero())) { $return .= $this->toWords($decimal, $currencyNames[0][0] - 1) .' '. $this->morph($decimal, $currencyNames[0][1], $currencyNames[0][2], $currencyNames[0][3]); } if (null !== $fraction) { if ($this->options->isConvertFraction()) { $return .= ' ' . $this->toWords($fraction, $currencyNames[1][0] - 1) . ' ' . $this->morph($fraction, $currencyNames[1][1], $currencyNames[1][2], $currencyNames[1][3]); } else { $return .= ' ' . $fraction . ' ' . $this->morph($fraction, $currencyNames[1][1], $currencyNames[1][2], $currencyNames[1][3]); } } if (null === $fraction && $this->options->isShowFractionIfZero()) { if ($this->options->isConvertFractionIfZero()) { $return .= ' ' . $this->zero . ' ' . $this->morph($fraction, $currencyNames[1][1], $currencyNames[1][2], $currencyNames[1][3]); } else { $return .= ' 00 ' . $this->morph($fraction, $currencyNames[1][1], $currencyNames[1][2], $currencyNames[1][3]); } } return $return; } } PK[oadd&src/Legacy/Numbers/Words/Locale/Yo.phpnu[ '', 1 => 'ọkan', 2 => 'meji', 3 => 'mẹta', 4 => 'mẹrin', 5 => 'marun', 6 => 'mẹfa', 7 => 'meje', 8 => 'mẹjọ', 9 => 'mẹsan' ]; protected static $teens = [ 10 => 'mẹwa', 11 => 'mọkanla', 12 => 'mejila', 13 => 'mẹtala', 14 => 'mẹrinla', 15 => 'mẹẹdogun', 16 => 'mẹrindilogun', 17 => 'mẹtala', 18 => 'mejidilogun', 19 => 'mọkandinlogun', ]; protected static $tens = [ 20 => 'ogun', 30 => 'ọgbọn', 40 => 'ogoji', 50 => 'aadọta', 60 => 'Ogota', 70 => 'aadọrin', 80 => 'ọgọrin', 90 => 'aadọrun', ]; protected static $hundred = [ 0 => '', 100 => 'ọgọrun', 200 => 'igba', 300 => 'ọ̀ọ́dúrún', 400 => 'irinwó', 500 => 'ẹdẹgbẹta', 600 => 'ẹgbẹta', 700 => 'ẹẹdẹgbẹrin', 800 => 'ẹgbẹ̀rin', 900 => 'ẹ̀ẹ́dẹ́gbẹ̀rún', ]; protected static $mega = [ 1 => 'ẹgbẹrun', 2 => 'miliọnu', 3 => 'biliọnu', 4 => 'miliọnu miliọnu', 5 => 'biliọnu miliọnu', 6 => 'biliọnu biliọnu', 7 => 'aimoye miliọnu', ]; public static $currencyNames = [ 'ALL' => [['lek'], ['qindarka']], 'AUD' => [['Australian dollar'], ['cent']], 'BAM' => [['convertible marka'], ['fenig']], 'BGN' => [['lev'], ['stotinka']], 'BRL' => [['real'], ['centavos']], 'BYR' => [['Belarussian rouble'], ['kopiejka']], 'CAD' => [['Canadian dollar'], ['cent']], 'CHF' => [['Swiss franc'], ['rapp']], 'CYP' => [['Cypriot pound'], ['cent']], 'CZK' => [['Czech koruna'], ['halerz']], 'DKK' => [['Danish krone'], ['ore']], 'DZD' => [['dinar'], ['cent']], 'EEK' => [['kroon'], ['senti']], 'EUR' => [['euro'], ['euro-cent']], 'GBP' => [['pound', 'pounds'], ['pence', 'pence']], 'HKD' => [['Hong Kong dollar'], ['cent']], 'HRK' => [['Croatian kuna'], ['lipa']], 'HUF' => [['forint'], ['filler']], 'ILS' => [['new sheqel', 'new sheqels'], ['agora', 'agorot']], 'ISK' => [['Icelandic króna'], ['aurar']], 'JPY' => [['yen'], ['sen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['sentim']], 'LYD' => [['dinar'], ['cent']], 'MAD' => [['dirham'], ['cent']], 'MKD' => [['Macedonian dinar'], ['deni']], 'MRO' => [['ouguiya'], ['khoums']], 'MTL' => [['Maltese lira'], ['centym']], 'NGN' => [['Naira'], ['kobo']], 'NOK' => [['Norwegian krone'], ['oere']], 'PHP' => [['peso'], ['centavo']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'ROL' => [['Romanian leu'], ['bani']], 'RUB' => [['Russian Federation rouble'], ['kopiejka']], 'SEK' => [['Swedish krona'], ['oere']], 'SIT' => [['Tolar'], ['stotinia']], 'SKK' => [['Slovak koruna'], []], 'TMT' => [['manat'], ['tenge']], 'TND' => [['dinar'], ['cent']], 'TRL' => [['lira'], ['kuruş']], 'UAH' => [['hryvna'], ['cent']], 'USD' => [['dollar'], ['cent']], 'XAF' => [['CFA franc'], ['cent']], 'XOF' => [['CFA franc'], ['cent']], 'XPF' => [['CFP franc'], ['centime']], 'YUM' => [['dinar'], ['para']], 'ZAR' => [['rand'], ['cent']], ]; /** * @param $num * @return string */ protected function toWords($num) { $word = ""; $num = preg_replace('/[\W]/', '', $num); $formatted = number_format((int)$num, 2); $leftNumber = explode(".", $formatted); $split = explode(",", $leftNumber[0]); foreach ($split as $key => $number) { if(!$number) { continue; } $suffix = $this->_suffix($number); //2 $prefix = $this->_prefix(count($split) - 1); //million $combined = trim($prefix.' '.$suffix); $word .= ((count($split) == 1 && !empty($word) ? " " . self::$conjunction . " " : !empty($word)) ? ", " : "") . $combined; unset($split[$key]); } return preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $word); } private function _prefix($num) { switch ($num) { case 0: return ''; case 1: case 2: case 3: case 4: case 5: case 6: return self::$mega[$num]; default: return self::$mega[7]; } } private function _suffix($num) { $word = ""; $num = (int) $num; if (strlen($num) == 3) { $hundred = $num - ($num % 100); $word .= self::$hundred[$hundred]; $num = (int) substr($num, 1); } if (strlen($num) == 2 && $num > 19) { $ten = $num - ($num % 10); $word .= ($word && !empty(self::$tens[$ten]) ? " " . self::$conjunction . " " : '') . self::$tens[$ten]; $num = (int) substr($num, 1); } if (strlen($num) == 2 && $num <= 19) { $word .= ($word && !empty(self::$teens[$num]) ? " " . self::$conjunction . " " : '') . self::$teens[$num]; $num = str_replace($num, "", $num); } if (strlen($num) == 1) { $word .= ($word && !empty(self::$unit[$num]) ? " " . self::$conjunction . " " : '') . self::$unit[$num]; } return $word; } /** * @param string $currency * @param int $decimal * @param int $fraction * * @return string * @throws NumberToWordsException */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf( 'Currency "%s" is not available for "%s" language', $currency, get_class($this) ) ); } $actual = $this->toWords($decimal); $word = $actual . " " . self::$currencyNames[$currency][0][0]; if ($fraction) { $decimal = $this->toWords($fraction); $word .= " ".self::$separator . " "; $word .= self::$currencyNames[$currency][1][0]. " ".$decimal; } return $word; } } PK[~((&src/Legacy/Numbers/Words/Locale/Id.phpnu[ [''], 3 => ['ribu'], 6 => ['juta'], 9 => ['milyar'], 12 => ['trilyun'], 24 => ['quadrillion'], 30 => ['quintillion'], 36 => ['sextillion'], 42 => ['septillion'], 48 => ['octillion'], 54 => ['nonillion'], 60 => ['decillion'], 66 => ['undecillion'], ]; private static $digits = [ 'nol', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan' ]; private $wordSeparator = ' '; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $return = ''; if ($number < 0) { $return .= $this->minus; $number *= -1; } if (strlen($number) > 4) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; $return .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return $return; } } elseif ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = $th = 0; switch (strlen($number)) { case 4: $th = (int) substr($number, -4, 1); case 3: $h = (int) substr($number, -3, 1); case 2: $t = (int) substr($number, -2, 1); case 1: $d = (int) substr($number, -1, 1); break; case 0: return; break; } if ($th) { if ($th == 1) { $return .= $this->wordSeparator . 'seribu'; } else { $return .= $this->wordSeparator . self::$digits[$th] . $this->wordSeparator . 'ribu'; } } if ($h) { if ($h == 1) { $return .= $this->wordSeparator . 'seratus'; } else { $return .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'ratus'; } } // ten, twenty etc. switch ($t) { case 9: case 8: case 7: case 6: case 5: case 4: case 3: case 2: $return .= $this->wordSeparator . self::$digits[$t] . ' puluh'; break; case 1: switch ($d) { case 0: $return .= $this->wordSeparator . 'sepuluh'; break; case 1: $return .= $this->wordSeparator . 'sebelas'; break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $return .= $this->wordSeparator . self::$digits[$d] . ' belas'; break; } break; } if ($t != 1 && $d > 0) { // add digits only in <0>,<1,9> and <21,inf> // add minus sign between [2-9] and digit if ($t > 1) { $return .= ' ' . self::$digits[$d]; } else { $return .= $this->wordSeparator . self::$digits[$d]; } } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } $return .= $this->wordSeparator . $lev[0]; } return $return; } } PK[_/$&src/Legacy/Numbers/Words/Locale/Cs.phpnu[ [''], 3 => ['tisíc', 'tisíce', 'tisíc'], 6 => ['milión', 'milióny', 'miliónů'], 9 => ['miliarda', 'miliardy', 'miliard'], 12 => ['bilion', 'biliony', 'bilionů'], 15 => ['biliarda', 'biliardy', 'biliard'], 18 => ['trilion', 'triliony', 'trilionů'], 21 => ['triliarda', 'triliardy', 'triliard'], 24 => ['kvadrilion', 'kvadriliony', 'kvadrilionů'], 30 => ['kvintilion', 'kvintiliony', 'kvintilionů'], 36 => ['sextilion', 'sextiliony', 'sextilionů'], 42 => ['septilion', 'septiliony', 'septilionů'], 48 => ['oktilion', 'oktiliony', 'oktilionů'], 54 => ['nonilion', 'noniliony', 'nonilionů'], 60 => ['decilion', 'deciliony', 'decilionů'], 66 => ['undecilion', 'undeciliony', 'undecilionů'], 72 => ['duodecilion', 'duodeciliony', 'duodecilionů'], 78 => ['tredecilion', 'tredeciliony', 'tredecilionů'], 84 => ['kvatrodecilion', 'kvatrodeciliony', 'kvatrodecilionů'], 90 => ['kvindecilion', 'kvindeciliony', 'kvindecilionů'], 96 => ['sexdecilion', 'sexdeciliony', 'sexdecilionů'], 102 => ['septendecilion', 'septendeciliony', 'septendecilionů'], 108 => ['oktodecilion', 'oktodeciliony', 'oktodecilionů'], ]; private static $hundreds = [ 'sto', 'stě', 'sta', 'set' ]; private static $digits = [ 'nula', 'jedna', 'dva', 'tři', 'čtyři', 'pět', 'šest', 'sedm', 'osm', 'devět' ]; private $wordSeparator = ' '; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $ret = ''; if ($number < 0) { $ret .= $this->minus; $number *= -1; } if (strlen($number) > 3) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; $ret .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return $ret; } } elseif ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($number)) { case 3: $h = (int) substr($number, -3, 1); case 2: $t = (int) substr($number, -2, 1); case 1: $d = (int) substr($number, -1, 1); break; case 0: return; break; } if ($h) { // inflection of the word "hundred" if ($h == 1) { $ret .= $this->wordSeparator . self::$hundreds[0]; } elseif ($h == 2) { $ret .= $this->wordSeparator . "dvě" . $this->wordSeparator . self::$hundreds[1]; } elseif (($h > 1) && ($h < 5)) { $ret .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . self::$hundreds[2]; } else { //if ($h >= 5) $ret .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . self::$hundreds[3]; } // in English only - add ' and' for [1-9]01..[1-9]99 // (also for 1001..1099, 10001..10099 but it is harder) // for now it is switched off, maybe some language purists // can force me to enable it, or to remove it completely // if (($t + $d) > 0) // $ret .= $this->wordSeparator . 'and'; } // ten, twenty etc. switch ($t) { case 2: case 3: case 4: $ret .= $this->wordSeparator . self::$digits[$t] . 'cet'; break; case 5: $ret .= $this->wordSeparator . 'padesát'; break; case 6: $ret .= $this->wordSeparator . 'šedesát'; break; case 7: $ret .= $this->wordSeparator . 'sedmdesát'; break; case 8: $ret .= $this->wordSeparator . 'osmdesát'; break; case 9: $ret .= $this->wordSeparator . 'devadesát'; break; case 1: switch ($d) { case 0: $ret .= $this->wordSeparator . 'deset'; break; case 1: $ret .= $this->wordSeparator . 'jedenáct'; break; case 4: $ret .= $this->wordSeparator . 'čtrnáct'; break; case 5: $ret .= $this->wordSeparator . 'patnáct'; break; case 9: $ret .= $this->wordSeparator . 'devatenáct'; break; case 2: case 3: case 6: case 7: case 8: $ret .= $this->wordSeparator . self::$digits[$d] . 'náct'; break; } break; } if (($t != 1) && ($d > 0) && (($power == 0) || ($number > 1))) { $ret .= $this->wordSeparator . self::$digits[$d]; } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } // inflection of exponental words if ($number == 1) { $idx = 0; } elseif ((($number > 1) && ($number < 5)) || ((intval("$t$d") > 1) && (intval("$t$d") < 5))) { $idx = 1; } else { $idx = 2; } $ret .= $this->wordSeparator . $lev[$idx]; } return $ret; } } PK[,,&src/Legacy/Numbers/Words/Locale/Es.phpnu[ ['', ''], 3 => ['mil', 'mil'], 6 => ['millón', 'millones'], 12 => ['billón', 'billones'], 18 => ['trilón', 'trillones'], 24 => ['cuatrillón', 'cuatrillones'], 30 => ['quintillón', 'quintillones'], 36 => ['sextillón', 'sextillones'], 42 => ['septillón', 'septillones'], 48 => ['octallón', 'octallones'], 54 => ['nonallón', 'nonallones'], 60 => ['decallón', 'decallones'], ]; private static $digits = [ 'cero', 'uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve' ]; private $wordSeparator = ' '; private static $currencyNames = [ 'PEN' => [['sol', 'soles'], ['centavo']], 'ALL' => [['lek'], ['qindarka']], 'AUD' => [['dólar australiano', 'dólares australianos'], ['centavo']], 'ARS' => [['peso'], ['centavo']], 'BAM' => [['convertible marka'], ['fenig']], 'BGN' => [['lev'], ['stotinka']], 'BRL' => [['real', 'reales'], ['centavo']], 'BYR' => [['rublo bielorruso', 'rublos bielorrusos'], ['kopek', 'kopeks']], 'CAD' => [['dólar canadiense', 'dólares canadienses'], ['centavo']], 'CHF' => [['swiss franc'], ['rapp']], 'CYP' => [['cypriot pound'], ['cent']], 'CZK' => [['czech koruna'], ['halerz']], 'CRC' => [['colón', 'colones'], ['centavo']], 'DZD' => [['dinar', 'dinares'], ['céntimo']], 'DKK' => [['danish krone'], ['ore']], 'DOP' => [['peso dominicano', 'pesos dominicanos'], ['centavo', 'centavos']], 'EEK' => [['kroon'], ['senti']], 'EUR' => [['euro'], ['centavo']], 'GBP' => [['libra'], ['peñique']], 'HKD' => [['dólar de hong kong', 'dólares de hong kong'], ['centavo']], 'HRK' => [['croatian kuna'], ['lipa']], 'HUF' => [['forint'], ['filler']], 'ILS' => [['new sheqel', 'new sheqels'], ['agora', 'agorot']], 'ISK' => [['icelandic króna'], ['aurar']], 'JPY' => [['yen', 'yenes'], ['sen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['sentim']], 'LYD' => [['dinar', 'dinares'], ['céntimo']], 'MAD' => [['dírham'], ['céntimo']], 'MKD' => [['denar macedonio', 'denares macedonios'], ['deni']], 'MRO' => [['ouguiya'], ['khoums']], 'MTL' => [['lira maltesa'], ['céntimo']], 'MXN' => [['peso'], ['centavo']], 'NOK' => [['norwegian krone'], ['oere']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'ROL' => [['romanian leu'], ['bani']], 'RUB' => [['rublo ruso', 'rublos rusos'], ['kopek']], 'SEK' => [['Swedish krona'], ['oere']], 'SIT' => [['tolar'], ['stotinia']], 'SKK' => [['slovak koruna'], []], 'TND' => [['dinar', 'dinares'], ['céntimo']], 'TRL' => [['lira'], ['kuruþ']], 'UAH' => [['hryvna'], ['cent']], 'USD' => [['dólar', 'dólares'], ['centavo']], 'UYU' => [['peso uruguayo', 'pesos uruguayos'], ['centavo']], 'VEB' => [['bolívar', 'bolívares'], ['céntimo']], 'XAF' => [['franco CFA', 'francos CFA'], ['céntimo']], 'XOF' => [['franco CFA', 'francos CFA'], ['céntimo']], 'YUM' => [['dinar', 'dinares'], ['para']], 'ZAR' => [['rand'], ['cent']] ]; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $ret = ''; if ($number === 0) { return self::$digits[0]; } if ($number < 0) { $ret = $this->minus; $number *= -1; } if (strlen($number) > 6) { // check for highest power if (isset(self::$exponent[$power])) { // convert the number above the first 6 digits // with it's corresponding $power. $snum = substr($number, 0, -6); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $ret .= $this->toWords($snum, $power + 6); } } $number = substr($number, -6); } // See if we need "thousands" $thousands = floor($number / 1000); if ($thousands == 1) { $ret .= $this->wordSeparator . 'mil'; } elseif ($thousands > 1) { $ret .= $this->toWords($thousands, 3); } $d = $number % 10; $t = (int) ($number / 10) % 10; $h = (int) ($number / 100) % 10; // cientos: doscientos, trescientos, etc... switch ($h) { case 1: if (($d == 0) and ($t == 0)) { // is it's '100' use 'cien' $ret .= $this->wordSeparator . 'cien'; } else { $ret .= $this->wordSeparator . 'ciento'; } break; case 2: case 3: case 4: case 6: case 8: $ret .= $this->wordSeparator . self::$digits[$h] . 'cientos'; break; case 5: $ret .= $this->wordSeparator . 'quinientos'; break; case 7: $ret .= $this->wordSeparator . 'setecientos'; break; case 9: $ret .= $this->wordSeparator . 'novecientos'; break; } // decenas: veinte, treinta, etc... switch ($t) { case 9: $ret .= $this->wordSeparator . 'noventa'; break; case 8: $ret .= $this->wordSeparator . 'ochenta'; break; case 7: $ret .= $this->wordSeparator . 'setenta'; break; case 6: $ret .= $this->wordSeparator . 'sesenta'; break; case 5: $ret .= $this->wordSeparator . 'cincuenta'; break; case 4: $ret .= $this->wordSeparator . 'cuarenta'; break; case 3: $ret .= $this->wordSeparator . 'treinta'; break; case 2: if ($d == 0) { $ret .= $this->wordSeparator . 'veinte'; } else { if (($power > 0) and ($d == 1)) { $ret .= $this->wordSeparator . 'veintiún'; } else { $ret .= $this->wordSeparator . 'veinti' . self::$digits[$d]; } } break; case 1: switch ($d) { case 0: $ret .= $this->wordSeparator . 'diez'; break; case 1: $ret .= $this->wordSeparator . 'once'; break; case 2: $ret .= $this->wordSeparator . 'doce'; break; case 3: $ret .= $this->wordSeparator . 'trece'; break; case 4: $ret .= $this->wordSeparator . 'catorce'; break; case 5: $ret .= $this->wordSeparator . 'quince'; break; case 6: case 7: case 9: case 8: $ret .= $this->wordSeparator . 'dieci' . self::$digits[$d]; break; } break; } // add digits only if it is a multiple of 10 and not 1x or 2x if (($t != 1) and ($t != 2) and ($d > 0)) { // don't add 'y' for numbers below 10 if ($t != 0) { // use 'un' instead of 'uno' when there is a suffix ('mil', 'millones', etc...) if (($power > 0) and ($d == 1)) { $ret .= $this->wordSeparator . ' y un'; } else { $ret .= $this->wordSeparator . 'y ' . self::$digits[$d]; } } else { if (($power > 0) and ($d == 1)) { $ret .= $this->wordSeparator . 'un'; } else { $ret .= $this->wordSeparator . self::$digits[$d]; } } } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } // if it's only one use the singular suffix if ($d == 1 && $t == 0 && $h == 0) { $suffix = $lev[0]; } else { $suffix = $lev[1]; } if ($number != 0) { $ret .= $this->wordSeparator . $suffix; } } return $ret; } /** * @param int $currency * @param int $decimal * @param null $fraction * * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } //change digit "one" to the short version self::$digits[1] = 'un'; $currencyNames = static::$currencyNames[$currency]; $level = ($decimal == 1) ? 0 : 1; if ($level > 0) { $currencyNames = self::$currencyNames[$currency]; if (count($currencyNames[0]) > 1) { $ret = $currencyNames[0][$level]; } else { $ret = $currencyNames[0][0] . 's'; } } else { $ret = $currencyNames[0][0]; } $ret = $this->wordSeparator . trim($this->toWords($decimal) . ' ' . $ret); if (null !== $fraction) { $ret .= $this->wordSeparator . 'con' . $this->wordSeparator . trim($this->toWords($fraction)); $level = ($fraction == 1) ? 0 : 1; if ($level > 0) { if (count($currencyNames[1]) > 1) { $ret .= $this->wordSeparator . $currencyNames[1][$level]; } else { $ret .= $this->wordSeparator . $currencyNames[1][0] . 's'; } } else { $ret .= $this->wordSeparator . $currencyNames[1][0]; } } //Go back digit "one" self::$digits[1] = 'uno'; return $ret; } } PK[d%d%)src/Legacy/Numbers/Words/Locale/Pt/Br.phpnu[ [['real', 'reais'], ['centavo', 'centavos']], 'USD' => [['dólar', 'dólares'], ['centavo', 'centavos']], 'EUR' => [['euro', 'euros'], ['centavo', 'centavos']], 'GBP' => [['libra esterlina', 'libras esterlinas'], ['centavo', 'centavos']], 'JPY' => [['iene', 'ienes'], ['centavo', 'centavos']], 'ARS' => [['peso argentino', 'pesos argentinos'], ['centavo', 'centavos']], 'MXN' => [['peso mexicano', 'pesos mexicanos'], ['centavo', 'centavos']], 'UYU' => [['peso uruguaio', 'pesos uruguaios'], ['centavo', 'centavos']], 'PYG' => [['guarani', 'guaranis'], ['centavo', 'centavos']], 'BOB' => [['boliviano', 'bolivianos'], ['centavo', 'centavos']], 'CLP' => [['peso chileno', 'pesos chilenos'], ['centavo', 'centavos']], 'COP' => [['peso colombiano', 'pesos colombianos'], ['centavo', 'centavos']], 'CUP' => [['peso cubano', 'pesos cubanos'], ['centavo', 'centavos']], ]; /** * @param int $num * * @return string * @throws NumberToWordsException */ protected function toWords($num) { $neg = 0; $ret = []; /** * Negative ? */ if ($num < 0) { $ret[] = $this->minus; $num = -$num; $neg = 1; } /** * Removes leading zeros, spaces, decimals etc. * Adds thousands separator. */ $num = number_format($num, 0, '.', '.'); /** * Testing Zero */ if ($num == 0) { return 'zero'; } /** * Breaks into chunks of 3 digits. * Reversing array to process from right to left. */ $chunks = array_reverse(explode(".", $num)); /** * Looping through the chunks */ foreach ($chunks as $index => $chunk) { /** * Testing Range */ if (!array_key_exists($index, self::$exponent)) { throw new NumberToWordsException('Number out of range.'); } /** * Testing Zero */ if ($chunk == 0) { continue; } /** * Testing plural of exponent */ if ($chunk > 1) { $exponent = str_replace('ão', 'ões', self::$exponent[$index]); } else { $exponent = self::$exponent[$index]; } /** * Adding exponent */ $ret[] = $exponent; /** * Actual Number */ $word = array_filter($this->parseChunk($chunk)); $ret[] = implode($this->separator, $word); } /** * In Brazilian Portuguese the last chunck must be separated under * special conditions. */ if ((count($ret) > 2 + $neg) && $this->mustSeparate($chunks) ) { $ret[1 + $neg] = trim($this->separator . $ret[1 + $neg]); } $ret = array_reverse(array_filter($ret)); return implode(' ', $ret); } /** * @param string $chunk * * @return array */ private function parseChunk($chunk) { /** * Base Case */ if (!$chunk) { return []; } /** * 100 is a special case */ if ($chunk == 100) { return ['cem']; } /** * Testing contractions (11~19) */ if (($chunk < 20) && ($chunk > 10)) { return [self::$contractions[$chunk % 10]]; } $i = strlen($chunk) - 1; $n = (int) $chunk[0]; $word = self::$words[$i][$n]; return array_merge([$word], $this->parseChunk(substr($chunk, 1))); } /** * @param array $chunks * * @return bool */ private function mustSeparate($chunks) { $found = null; foreach ($chunks as $chunk) { if ($chunk !== '000') { break; } } if ($chunk < 100 || !($chunk % 100)) { return true; } return false; } /** * @param string $currency * @param int $decimal * @param int $fraction * * @return string * @throws NumberToWordsException */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $negative = 0; $ret = []; $noDecimals = false; /** * Negative ? * We can lose the '-' sign if we do the * check after number_format() call (i.e. -0.01) */ if (substr($decimal, 0, 1) == '-') { $decimal = -$decimal; $negative = 1; } /** * Removes leading zeros, spaces, decimals etc. * Adds thousands separator. */ $num = number_format($decimal, 0, '', ''); /** * Checking if given currency exists in driver. * If not, use default currency */ $currency = strtoupper($currency); if (!isset(self::$currencyNames[$currency])) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } /** * Currency names and plural */ $currencyNames = self::$currencyNames[$currency]; if ($num > 0) { /** * Word representation of decimal */ $ret[] = $this->toWords($num); /** * Special case. */ if (substr($num, -6) == '000000') { $ret[] = trim($this->currencySeparator); } /** * Testing plural. Adding currency name */ if ($num > 1) { $ret[] = $currencyNames[0][1]; } else { $ret[] = $currencyNames[0][0]; } } /** * Test if fraction was given and != 0 */ $fraction = (int) $fraction; if ($fraction) { /** * Removes leading zeros, spaces, decimals etc. * Adds thousands separator. */ $num = number_format($fraction, 0, '.', '.'); if ($num < 0 || $num > 99) { throw new NumberToWordsException('Fraction out of range.'); } if (count($ret)) { $ret[] = trim($this->separator); } else { $noDecimals = true; } $ret[] = $this->toWords($num); if ($num > 1) { $ret[] = $currencyNames[1][1]; } else { $ret[] = $currencyNames[1][0]; } if ($noDecimals) { $ret[] = trim($this->currencySeparator); $ret[] = $currencyNames[0][0]; } } if ($negative) { $ret[] = $this->minus; } return implode(' ', $ret); } } PK[8B&src/Legacy/Numbers/Words/Locale/Tr.phpnu[ [['Arnavut leki'], ['qindarka']], 'AUD' => [['Avusturalya doları'], ['sent']], 'BAM' => [['Bosna-Hersek değiştirilebilir markı'], ['fenig']], 'BGN' => [['Bulgar levası'], ['stotinka']], 'BRL' => [['Brezilya reali'], ['centavos']], 'BWP' => [['Botswana pulası'], ['thebe']], 'BYR' => [['Belarus rublesi'], ['kopiejka']], 'CAD' => [['Kanada doları'], ['sent']], 'CHF' => [['İsveç frankı'], ['rapp']], 'CNY' => [['Çin yuanı'], ['fen']], 'CYP' => [['Kıbrıs poundu'], ['sent']], 'CZK' => [['Çek kronu'], ['halerz']], 'DKK' => [['Danimarka kronu'], ['ore']], 'EEK' => [['Estonya kronu'], ['senti']], 'EUR' => [['avro'], ['sent']], 'GBP' => [['pound'], ['pence']], 'HKD' => [['Hong Kong doları'], ['sent']], 'HRK' => [['Hırvatistan kunası'], ['lipa']], 'HUF' => [['Macar forinti'], ['filler']], 'ILS' => [['İsrail şekeli'], ['agora']], 'ISK' => [['Izlanda kronu'], ['aurar']], 'JPY' => [['Japon yeni'], ['sen']], 'LTL' => [['Litvanya litası'], ['sent']], 'LVL' => [['Letonya latı'], ['sentim']], 'MKD' => [['Makedonya dinarı'], ['deni']], 'MTL' => [['Malta lirası'], ['centym']], 'NOK' => [['Norveç kronu'], ['oere']], 'PLN' => [['Polonya zlotisi'], ['grosz']], 'ROL' => [['Roman leyi'], ['bani']], 'RUB' => [['Rus rublesi'], ['kopiejka']], 'SEK' => [['İsveç kronu'], ['oere']], 'SIT' => [['Slovenya toları'], ['stotinia']], 'SKK' => [['Slovakya kronu'], ['']], 'TRY' => [['Türk lirası'], ['kuruş']], 'UAH' => [['Ukrayna hryvnyası'], ['kopiyka']], 'USD' => [['ABD doları'], ['sent']], 'YUM' => [['Yugoslav dinarı'], ['para']], 'ZAR' => [['Güney Afrika randı'], ['sent']] ]; /** * @param int $num * * @return string */ protected function toWords($num) { $ret = ''; $num = strval($num); if ((int)$num === 0) { return self::$digits[0]; } if (substr($num, 0, 1) == '-') { $ret = $this->minus . $this->wordSeparator; $num = substr($num, 1); } $num = preg_replace('/^0+/', '', $num); $num_length = strlen($num); if ($num_length % 3 !== 0) { $num = str_pad($num, $num_length + (3-($num_length%3)), '0', STR_PAD_LEFT); } $groups = str_split($num, 3); $g_index = count($groups) - 1; foreach ($groups as $i => $g) { if ((int)$g[0] > 1) $ret .= self::$digits[$g[0]] . $this->wordSeparator; if ((int)$g[0] > 0) $ret .= "yüz" . $this->wordSeparator; if ((int)$g[1] > 0) $ret .= self::$digits_second[$g[1]] . $this->wordSeparator; if ((int)$g[2] > 0 && (($num_length === 4 && $i === 0 && (int)$g[2] <= 1) === false)) $ret .= self::$digits[$g[2]] . $this->wordSeparator; if ((int)$g > 0) $ret .= self::$exponent[$g_index] . $this->wordSeparator; $g_index--; } return $ret; } /** * @param string $currency * @param int $decimal * @param int $fraction * * @throws NumberToWordsException * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, self::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $curr_names = self::$currencyNames[$currency]; $ret = trim($this->toWords($decimal)); $lev = ($decimal == 1) ? 0 : 1; if ($lev > 0) { if (count($curr_names[0]) > 1) { $ret .= $this->wordSeparator . $curr_names[0][$lev]; } else { $ret .= $this->wordSeparator . $curr_names[0][0]; } } else { $ret .= $this->wordSeparator . $curr_names[0][0]; } if ($fraction !== null) { if ($this->options->isConvertFraction()) { $ret .= $this->wordSeparator . trim($this->toWords($fraction)); } else { $ret .= $this->wordSeparator . $fraction; } $lev = ($fraction == 1) ? 0 : 1; if ($lev > 0) { if (count($curr_names[1]) > 1) { $ret .= $this->wordSeparator . $curr_names[1][$lev]; } else { $ret .= $this->wordSeparator . $curr_names[1][0]; } } else { $ret .= $this->wordSeparator . $curr_names[1][0]; } } return $ret; } } PK[-##&src/Legacy/Numbers/Words/Locale/Nl.phpnu[ [''], 3 => ['duizend', 'duizend'], 6 => ['miljoen', 'miljoen'], 9 => ['miljard', 'miljard'], 12 => ['biljoen', 'biljoen'], 15 => ['biljard', 'biljard'], 18 => ['triljoen', 'triljoen'], 21 => ['triljard', 'triljard'], 24 => ['quadriljoen', 'quadriljoen'], 27 => ['quadriljard', 'quadriljard'], 30 => ['quintiljoen', 'quintiljoen'], 33 => ['quintiljard', 'quintiljard'], 36 => ['sextiljoen', 'sextiljoen'], 39 => ['sextiljard', 'sextiljard'], 42 => ['septiljoen', 'septiljoen'], 45 => ['septiljard', 'septiljard'], 48 => ['octiljoen', 'octiljoen'], 51 => ['octiljard', 'octiljard'], 54 => ['noniljoen', 'noniljoen'], 57 => ['noniljard', 'noniljard'], 60 => ['deciljoen', 'deciljoen'], 63 => ['deciljard', 'deciljard'], 66 => ['Undeciljoen', 'Undeciljoen'], 69 => ['Undeciljard', 'Undeciljard'], 72 => ['duodeciljoen', 'duodeciljoen'], 75 => ['duodeciljard', 'duodeciljard'], 78 => ['tredeciljoen', 'tredeciljoen'], 81 => ['tredeciljard', 'tredeciljard'], 120 => ['vigintiljoen', 'vigintiljoen'], 123 => ['vigintiljard', 'vigintiljard'], 600 => ['zentiljoen', 'zentiljoen'], // oder Centillion 603 => ['zentiljardn', 'zentiljard'] ]; private static $digits = [ 'nul', 'één', 'twee', 'drie', 'vier', 'vijf', 'zes', 'zeven', 'acht', 'negen' ]; private $wordSeparator = ''; private static $exponentWordSeparator = ' '; private static $currencyNames = [ 'ALL' => [['lek'], ['qindarka']], 'AUD' => [['Australian dollar'], ['cent']], 'BAM' => [['convertible marka'], ['fenig']], 'BGN' => [['lev'], ['stotinka']], 'BRL' => [['real'], ['centavos']], 'BYR' => [['Belarussian rouble'], ['kopiejka']], 'CAD' => [['Canadian dollar'], ['cent']], 'CHF' => [['Swiss franc'], ['rapp']], 'CYP' => [['Cypriot pound'], ['cent']], 'CZK' => [['Czech koruna'], ['halerz']], 'DKK' => [['Danish krone'], ['ore']], 'EEK' => [['kroon'], ['senti']], 'EUR' => [['euro'], ['euro-cent']], 'GBP' => [['pound', 'pounds'], ['pence', 'pence']], 'HKD' => [['Hong Kong dollar'], ['cent']], 'HRK' => [['Croatian kuna'], ['lipa']], 'HUF' => [['forint'], ['filler']], 'ILS' => [['new sheqel', 'new sheqels'], ['agora', 'agorot']], 'ISK' => [['Icelandic kr\F3na'], ['aurar']], 'JPY' => [['yen'], ['sen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['sentim']], 'MKD' => [['Macedonian dinar'], ['deni']], 'MTL' => [['Maltese lira'], ['centym']], 'NOK' => [['Norwegian krone'], ['oere']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'ROL' => [['Romanian leu'], ['bani']], 'RUB' => [['Russian Federation rouble'], ['kopiejka']], 'SEK' => [['Swedish krona'], ['oere']], 'SIT' => [['Tolar'], ['stotinia']], 'SKK' => [['Slovak koruna'], []], 'TRL' => [['lira'], ['kuru\FE']], 'UAH' => [['hryvna'], ['cent']], 'USD' => [['dollar'], ['cent']], 'YUM' => [['dinars'], ['para']], 'ZAR' => [['rand'], ['cent']] ]; /** * @param int $num * @param int $power * @param string $powsuffix * * @return string */ protected function toWords($num, $power = 0, $powsuffix = '') { $ret = ''; $hasPower =false;; // add a minus sign if (substr($num, 0, 1) == '-') { $ret = $this->wordSeparator . $this->minus; $num = substr($num, 1); } // strip excessive zero signs and spaces $num = trim($num); $num = preg_replace('/^0+/', '', $num); if (strlen($num) > 3) { $maxp = strlen($num) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($num, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; if ($powsuffix != '') { $cursuffix .= $this->wordSeparator . $powsuffix; } $hasPower = true; $ret .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $num = substr($num, $maxp - $curp, $curp - $p + 1); if ($num == 0) { return $ret; } } elseif ($num == 0 || $num == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($num)) { case 3: $h = (int) substr($num, -3, 1); case 2: $t = (int) substr($num, -2, 1); case 1: $d = (int) substr($num, -1, 1); break; case 0: return; break; } if ($h) { $ret .= $this->wordSeparator . ($h==1?'':self::$digits[$h]) . $this->wordSeparator . 'honderd'; } // an number under 12 with wants en if it is substituted if ($hasPower && $num <= 12 && $num > 0) { $ret .= 'en '; } // add digits only in <0>,<1,9> and <21,inf> if ( $d > 0) { if ($t != 1 && $t > 0) { $ret .= self::$digits[$d] . 'en'; } else { // 100 en 9 of 100 en 12 maar honderddertien if ( $h > 0 && ($t == 0 || ($t== 1 && ($d==1 || $d==2)))) { $ret .= ' en '; } if($t != 1 && !($d ==1 && $power == 3 )){ $ret .= self::$digits[$d]; } } } // ten, twenty etc. switch ($t) { case 8: $ret .= $this->wordSeparator . 't'.self::$digits[$t] . 'ig'; break; case 9: case 7: case 6: case 5: $ret .= $this->wordSeparator . self::$digits[$t] . 'tig'; break; case 4: $ret .= $this->wordSeparator . 'veertig'; break; case 3: $ret .= $this->wordSeparator . 'dertig'; break; case 2: $ret .= $this->wordSeparator . 'twintig'; break; case 1: switch ($d) { case 0: $ret .= $this->wordSeparator . 'tien'; break; case 1: $ret .= $this->wordSeparator . 'elf'; break; case 2: $ret .= $this->wordSeparator . 'twaalf'; break; case 3: $ret .= $this->wordSeparator . 'dertien'; break; case 4: $ret .= $this->wordSeparator . 'veertien'; break; case 5: case 6: case 7: case 8: case 9: $ret .= $this->wordSeparator . self::$digits[$d] . 'tien'; break; } break; } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } if ($power == 3) { $ret .= $this->wordSeparator . $lev[0] . self::$exponentWordSeparator; } elseif ($d == 1 && ($t + $h) == 0) { $ret .= self::$exponentWordSeparator . $lev[0] . self::$exponentWordSeparator; } else { $ret .= self::$exponentWordSeparator . $lev[1] . self::$exponentWordSeparator; } } if ($powsuffix != '') { $ret .= $this->wordSeparator . $powsuffix; } return $ret; } } PK[,B")src/Legacy/Numbers/Words/Locale/Fr/Be.phpnu[numberToTripletsConverter = new NumberToTripletsConverter(); } /** * @param int $number * @param bool $last * * @return string */ private function showDigitsGroup($number, $last = false) { $ret = ''; $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; if ($hundreds) { if ($hundreds > 1) { $ret .= BelgianDictionary::$digits[$hundreds] . BelgianDictionary::$wordSeparator . BelgianDictionary::$miscNumbers[100]; if ($last && !$units && !$tens) { $ret .= BelgianDictionary::$pluralSuffix; } } else { $ret .= BelgianDictionary::$miscNumbers[100]; } $ret .= BelgianDictionary::$wordSeparator; } if ($tens) { if ($tens === 1) { if ($units <= 6) { $ret .= BelgianDictionary::$miscNumbers[10 + $units]; } else { $ret .= BelgianDictionary::$miscNumbers[10] . '-' . BelgianDictionary::$digits[$units]; } $units = 0; } elseif ($tens === 8) { $ret .= BelgianDictionary::$digits[4] . BelgianDictionary::$dash . BelgianDictionary::$miscNumbers[20]; $resto = $tens * 10 + $units - 80; if ($resto) { $ret .= BelgianDictionary::$dash; $ret .= $this->showDigitsGroup($resto); $units = 0; } else { $ret .= BelgianDictionary::$pluralSuffix; } } else { $ret .= BelgianDictionary::$miscNumbers[$tens * 10]; } } if ($units) { if ($tens) { if ($units === 1) { $ret .= BelgianDictionary::$wordSeparator . BelgianDictionary::$and . BelgianDictionary::$wordSeparator; } else { $ret .= BelgianDictionary::$dash; } } $ret .= BelgianDictionary::$digits[$units]; } return rtrim($ret, BelgianDictionary::$wordSeparator); } /** * @param int $num * * @return string */ protected function toWords($num) { $return = ''; if ($num === 0) { return BelgianDictionary::$zero; } if ($num < 0) { $return = BelgianDictionary::$minus . BelgianDictionary::$wordSeparator; $num *= -1; } $numberGroups = $this->numberToTripletsConverter->convertToTriplets($num); $sizeOfNumberGroups = count($numberGroups); foreach ($numberGroups as $i => $number) { // what is the corresponding exponent for the current group $pow = $sizeOfNumberGroups - $i; // skip processment for empty groups if ($number != '000') { if ($number != 1 || $pow != 2) { $return .= $this->showDigitsGroup( $number, $i + 1 == $sizeOfNumberGroups || $pow > 2 ) . BelgianDictionary::$wordSeparator; } $return .= BelgianDictionary::$exponent[($pow - 1) * 3]; if ($pow > 2 && $number > 1) { $return .= BelgianDictionary::$pluralSuffix; } $return .= BelgianDictionary::$wordSeparator; } } return rtrim($return, BelgianDictionary::$wordSeparator); } } PK[P!!&src/Legacy/Numbers/Words/Locale/Et.phpnu[ [''], 3 => ['tuhat'], 6 => ['miljon'], 9 => ['miljard'], 12 => ['triljon'], 15 => ['kvadriljon'], 18 => ['kvintiljon'], 21 => ['sekstiljon'], 24 => ['septiljon'], 27 => ['oktiljon'], 30 => ['noniljon'], 33 => ['dekiljon'], 36 => ['undekiljon'], 39 => ['duodekiljon'], 42 => ['tredekiljon'], 45 => ['kvattuordekiljon'], 48 => ['kvindekiljon'], 51 => ['seksdekiljon'], 54 => ['septendekiljon'], 57 => ['oktodekiljon'], 60 => ['novemdekiljon'], 63 => ['vigintiljon'], 66 => ['unvigintiljon'], 69 => ['duovigintiljon'], 72 => ['trevigintiljon'], 75 => ['kvattuorvigintiljon'], 78 => ['kvinvigintiljon'], 81 => ['seksvigintiljon'], 84 => ['septenvigintiljon'], 87 => ['oktovigintiljon'], 90 => ['novemvigintiljon'], 93 => ['trigintiljon'], 96 => ['untrigintiljon'], 99 => ['duotrigintiljon'], 102 => ['trestrigintiljon'], 105 => ['kvattuortrigintiljon'], 108 => ['kvintrigintiljon'], 111 => ['sekstrigintiljon'], 114 => ['septentrigintiljon'], 117 => ['oktotrigintiljon'], 120 => ['novemtrigintiljon'], 123 => ['kvadragintiljon'], 126 => ['unkvadragintiljon'], 129 => ['duokvadragintiljon'], 132 => ['trekvadragintiljon'], 135 => ['kvattuorkvadragintiljon'], 138 => ['kvinkvadragintiljon'], 141 => ['sekskvadragintiljon'], 144 => ['septenkvadragintiljon'], 147 => ['oktokvadragintiljon'], 150 => ['novemkvadragintiljon'], 153 => ['kvinkvagintiljon'], 156 => ['unkvinkvagintiljon'], 159 => ['duokvinkvagintiljon'], 162 => ['trekvinkvagintiljon'], 165 => ['kvattuorkvinkvagintiljon'], 168 => ['kvinkvinkvagintiljon'], 171 => ['sekskvinkvagintiljon'], 174 => ['septenkvinkvagintiljon'], 177 => ['oktokvinkvagintiljon'], 180 => ['novemkvinkvagintiljon'], 183 => ['seksagintiljon'], 186 => ['unseksagintiljon'], 189 => ['duoseksagintiljon'], 192 => ['treseksagintiljon'], 195 => ['kvattuorseksagintiljon'], 198 => ['kvinseksagintiljon'], 201 => ['seksseksagintiljon'], 204 => ['septenseksagintiljon'], 207 => ['oktoseksagintiljon'], 210 => ['novemseksagintiljon'], 213 => ['septuagintiljon'], 216 => ['unseptuagintiljon'], 219 => ['duoseptuagintiljon'], 222 => ['treseptuagintiljon'], 225 => ['kvattuorseptuagintiljon'], 228 => ['kvinseptuagintiljon'], 231 => ['seksseptuagintiljon'], 234 => ['septenseptuagintiljon'], 237 => ['oktoseptuagintiljon'], 240 => ['novemseptuagintiljon'], 243 => ['oktogintiljon'], 246 => ['unoktogintiljon'], 249 => ['duooktogintiljon'], 252 => ['treoktogintiljon'], 255 => ['kvattuoroktogintiljon'], 258 => ['kvinoktogintiljon'], 261 => ['seksoktogintiljon'], 264 => ['septoktogintiljon'], 267 => ['oktooktogintiljon'], 270 => ['novemoktogintiljon'], 273 => ['nonagintiljon'], 276 => ['unnonagintiljon'], 279 => ['duononagintiljon'], 282 => ['trenonagintiljon'], 285 => ['kvattuornonagintiljon'], 288 => ['kvinnonagintiljon'], 291 => ['seksnonagintiljon'], 294 => ['septennonagintiljon'], 297 => ['oktononagintiljon'], 300 => ['novemnonagintiljon'], 303 => ['kentiljon'], 309 => ['duokentiljon'], 312 => ['trekentiljon'], 366 => ['primo-vigesimo-kentiljon'], 402 => ['trestrigintakentiljon'], 603 => ['dukentiljon'], 624 => ['septendukentiljon'], 2421 => ['seksoktingentiljon'], 3003 => ['milliljon'], 3000003 => ['milli-milliljon'] ]; private static $digits = [ 'null', 'üks', 'kaks', 'kolm', 'neli', 'viis', 'kuus', 'seitse', 'kaheksa', 'üheksa' ]; private $wordSeparator = ' '; /** * @param int $num * @param int $power * @param string $powsuffix * * @return string */ protected function toWords($num, $power = 0, $powsuffix = '') { $ret = ''; if (substr($num, 0, 1) == '-') { $ret = $this->wordSeparator . $this->minus; $num = substr($num, 1); } $num = trim($num); $num = preg_replace('/^0+/', '', $num); if (strlen($num) > 3) { $maxp = strlen($num) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power if (isset(self::$exponent[$p])) { $snum = substr($num, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power])-1]; if ($powsuffix != '') { $cursuffix .= $this->wordSeparator . $powsuffix; } $ret .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $num = substr($num, $maxp - $curp, $curp - $p + 1); if ($num == 0) { return $ret; } } elseif ($num == 0 || $num == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($num)) { case 3: $h = (int)substr($num, -3, 1); case 2: $t = (int)substr($num, -2, 1); case 1: $d = (int)substr($num, -1, 1); break; case 0: return; break; } if ($h) { $ret .= $this->wordSeparator . self::$digits[$h] . 'sada'; } switch ($t) { case 9: case 8: case 7: case 6: case 5: case 4: case 3: case 2: $ret .= $this->wordSeparator . self::$digits[$t] . 'kümmend'; break; case 1: switch ($d) { case 0: $ret .= $this->wordSeparator . 'kümme'; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $ret .= $this->wordSeparator . self::$digits[$d] . 'teist'; break; } break; } if ($t != 1 && $d > 0) { if ($t > 1) { $ret .= ' ' . self::$digits[$d]; } else { $ret .= $this->wordSeparator . self::$digits[$d]; } } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } $ret .= $this->wordSeparator . $lev[0].($num != 1 && $power!= 3 ? 'it' : ''); } if ($powsuffix != '') { $ret .= $this->wordSeparator . $powsuffix; } return $ret; } } PK[hb&src/Legacy/Numbers/Words/Locale/Ka.phpnu[ 'ნულ', 1 => 'ერთ', 2 => 'ორ', 3 => 'სამ', 4 => 'ოთხ', 5 => 'ხუთ', 6 => 'ექვს', 7 => 'შვიდ', 8 => 'რვა', 9 => 'ცხრა', 10 => 'ათ', 11 => 'თერთმეტ', 12 => 'თორმეტ', 13 => 'ცამეტ', 14 => 'თოთხმეტ', 15 => 'თხუთმეტ', 16 => 'თექვსმეტ', 17 => 'ჩვიდმეტ', 18 => 'თვრამეტ', 19 => 'ცხრამეტ', 20 => 'ოც', 40 => 'ორმოც', 60 => 'სამოც', 80 => 'ოთხმოც', 100 => 'ას', 1000 => 'ათას', 1000000 => 'მილიონ', 1000000000 => 'მილიარდ', 1000000000000 => 'ტრილიონ', 1000000000000000 => 'კვადრილიონ', 1000000000000000000 => 'კვინტილიონ', ); private static $currencyNames = [ 'GEL' => [['ლარი'], ['თეთრი']], 'CHF' => [['ფრანკი'], ['სენტიმი']], 'CNY' => [['იუანი'], ['ფინი']], 'DZD' => [['დინარი'], ['სენტიმი']], 'EUR' => [['ევრო'], ['სენტიმი']], 'JPY' => [['იენი', ['სენი']]], 'LYD' => [['დინარი'], ['სენტიმი']], 'MAD' => [['დირჰამი'], ['სენტიმი']], 'MXN' => [['მექსიკური პესო'], ['სენტავო']], 'TND' => [['დინარი'], ['სენტიმი']], 'USD' => [['დოლარი'], ['ცენტი']], 'TRY' => [['ლირა'], ['ყურუში']], 'AMD' => [['დრამი'], ['ლუმა']], 'PLN' => [['ზლოტი'], ['გროში']], 'GBP' => [['ფუნტი'], ['პენი']] ]; public function toCurrencyWords($currency, $decimal, $fraction = null) { $currency = strtoupper($currency); if (!array_key_exists($currency, static::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = static::$currencyNames[$currency]; $majorName = $currencyNames[0][0]; $minorName = $currencyNames[1][0]; $result = ''; if ($decimal != 0) { $result = $this->toWords($decimal) . ' ' . $majorName; } if ($fraction) { if($decimal != 0){ $result = $result . ' ' . self::CONJUNCTION; } $result = $result. ' ' . $this->toWords($fraction) . ' ' . $minorName; } return $result; } protected function toWords($number, $use_suffix = true, $use_spaces = true) { $space = $use_spaces ? ' ' : ''; if (!is_numeric($number)) { return false; } if ($number > PHP_INT_MAX or $number < -PHP_INT_MAX) { // overflow throw new NumberToWordsException( sprintf('out of range') ); return false; } if ($number < 0) { return self::MINUS . $this->toWords(abs($number)); } $string = $fraction = null; if (strpos($number, '.') !== false) { list($number, $fraction) = explode('.', $number); } switch (true) { case $number == 0: $string = self::$dictionary[0]; break; case $number < 21: $string = self::$dictionary[$number]; break; case $number < 100: $twenties = ((int)($number / 20)) * 20; $units = $number % 20; $string = self::$dictionary[$twenties]; if ($units) { $string .= self::CONJUNCTION . self::$dictionary[$units]; } break; case $number < 1000: $hundreds = $number / 100; $remainder = $number % 100; $hundredsStr = $hundreds < 2 ? '' : self::$dictionary[$hundreds]; $string = $hundredsStr . self::$dictionary[100]; if ($remainder) { $string .= $space . $this->toWords($remainder, false); } break; default: $baseUnit = pow(1000, floor(log($number, 1000))); $numBaseUnits = (int)($number / $baseUnit); $remainder = $number % $baseUnit; if ($numBaseUnits < 2) { $string = self::$dictionary[$baseUnit]; } else { $string = $this->toWords($numBaseUnits); $string .= $space . self::$dictionary[$baseUnit]; } if ($remainder) { $string .= $space . $this->toWords($remainder, false); } break; } // no suffix for 8 and 9 if ($use_suffix and !in_array($number % 20, array(8, 9))) { $string .= self::SUFFIX; } if (null !== $fraction and is_numeric($fraction)) { $string .= self::DECIMAL; $string .= $this->toWords($fraction); $string .= self::FRACTION_PREFIX; $string .= $this->toWords(pow(10, floor(log($fraction, 10)) + 1), false, false); $string .= self::FRACTION_SUFFIX; } return $string; } }PK[t 9$9$&src/Legacy/Numbers/Words/Locale/Dk.phpnu[ [''], 3 => ['tusind', 'tusinde'], 6 => ['million', 'millioner'], 9 => ['milliard', 'milliarder'], 12 => ['billion', 'billioner'], 15 => ['billiard', 'billiarder'], 18 => ['trillion', 'trillioner'], 21 => ['trilliard', 'trilliarder'], 24 => ['quadrillion', 'quadrillioner'], 30 => ['quintillion', 'quintillioner'], 36 => ['sextillion', 'sextillioner'], 42 => ['septillion', 'septillioner'], 48 => ['octillion', 'octillioner'], 54 => ['nonillion', 'nonillioner'], 60 => ['decillion', 'decillioner'], ]; private static $digits = [ 'nul', 'en', 'to', 'tre', 'fire', 'fem', 'seks', 'syv', 'otte', 'ni' ]; private $wordSeparator = ' '; private static $currencyNames = [ 'AUD' => [['australsk dollar', 'australske dollars'], ['cent']], 'CAD' => [['canadisk dollar', 'canadisk dollars'], ['cent']], 'CHF' => [['schweitzer franc'], ['rappen']], 'CYP' => [['cypriotisk pund', 'cypriotiske pund'], ['cent']], 'CZK' => [['tjekkisk koruna'], ['halerz']], 'DKK' => [['krone', 'kroner'], ['øre']], 'EUR' => [['euro'], ['euro-cent']], 'GBP' => [['pund'], ['pence']], 'HKD' => [['Hong Kong dollar', 'Hong Kong dollars'], ['cent']], 'JPY' => [['yen'], ['sen']], 'NOK' => [['norsk krone', 'norske kroner'], ['øre']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'SEK' => [['svensk krone', 'svenske kroner'], ['öre']], 'USD' => [['dollar', 'dollars'], ['cent']] ]; /** * @param int $number * @param int $power * * @return string */ protected function toWords($number, $power = 0) { $return = ''; if ($number < 0) { $return .= $this->minus; $number *= -1; } if (strlen($number) > 3) { $maxp = strlen($number) - 1; $curp = $maxp; for ($p = $maxp; $p > 0; --$p) { // power // check for highest power if (isset(self::$exponent[$p])) { // send substr from $curp to $p $snum = substr($number, $maxp - $curp, $curp - $p + 1); $snum = preg_replace('/^0+/', '', $snum); if ($snum !== '') { $cursuffix = self::$exponent[$power][count(self::$exponent[$power]) - 1]; $return .= $this->toWords($snum, $p, $cursuffix); } $curp = $p - 1; continue; } } $number = substr($number, $maxp - $curp, $curp - $p + 1); if ($number == 0) { return $return; } } elseif ($number == 0 || $number == '') { return $this->wordSeparator . self::$digits[0]; } $h = $t = $d = 0; switch (strlen($number)) { case 3: $h = (int) substr($number, -3, 1); case 2: $t = (int) substr($number, -2, 1); case 1: $d = (int) substr($number, -1, 1); break; case 0: return; break; } if ($h) { if ($h == 1) { $return .= $this->wordSeparator . 'et' . $this->wordSeparator . 'hundrede'; } else { $return .= $this->wordSeparator . self::$digits[$h] . $this->wordSeparator . 'hundrede'; } //if (($t + $d) > 0) // $ret .= $this->wordSeparator . 'og'; } elseif ((isset($maxp)) && ($maxp > 3)) { // add 'og' in the case where there are preceding thousands but not hundreds or tens, // so fx. 80001 becomes 'firs tusinde og en' instead of 'firs tusinde en' $return .= $this->wordSeparator . 'og'; } if ($t != 1 && $d > 0) { $return .= $this->wordSeparator . (($d == 1 & $power == 3 && $t == 0 && $h == 0) ? "et" : self::$digits[$d]) . ($t > 1 ? $this->wordSeparator . "og" : ""); } // ten, twenty etc. switch ($t) { case 9: $return .= $this->wordSeparator . 'halvfems'; break; case 8: $return .= $this->wordSeparator . 'firs'; break; case 7: $return .= $this->wordSeparator . 'halvfjerds'; break; case 6: $return .= $this->wordSeparator . 'tres'; break; case 5: $return .= $this->wordSeparator . 'halvtreds'; break; case 4: $return .= $this->wordSeparator . 'fyrre'; break; case 3: $return .= $this->wordSeparator . 'tredive'; break; case 2: $return .= $this->wordSeparator . 'tyve'; break; case 1: switch ($d) { case 0: $return .= $this->wordSeparator . 'ti'; break; case 1: $return .= $this->wordSeparator . 'elleve'; break; case 2: $return .= $this->wordSeparator . 'tolv'; break; case 3: $return .= $this->wordSeparator . 'tretten'; break; case 4: $return .= $this->wordSeparator . 'fjorten'; break; case 5: $return .= $this->wordSeparator . 'femten'; break; case 6: $return .= $this->wordSeparator . 'seksten'; break; case 7: $return .= $this->wordSeparator . 'sytten'; break; case 8: $return .= $this->wordSeparator . 'atten'; break; case 9: $return .= $this->wordSeparator . 'nitten'; break; } break; } if ($power > 0) { if (isset(self::$exponent[$power])) { $lev = self::$exponent[$power]; } if (!isset($lev) || !is_array($lev)) { return null; } if ($d == 1 && ($t + $h) == 0) { $return .= $this->wordSeparator . $lev[0]; } else { $return .= $this->wordSeparator . $lev[1]; } } return $return; } /** * @param string $currency * @param int $decimal * @param int $fraction * * @throws NumberToWordsException * @return string */ public function toCurrencyWords($currency, $decimal, $fraction = null) { $return = ''; $currency = strtoupper($currency); if (!array_key_exists($currency, self::$currencyNames)) { throw new NumberToWordsException( sprintf('Currency "%s" is not available for "%s" language', $currency, get_class($this)) ); } $currencyNames = self::$currencyNames[$currency]; if ($decimal != '' && $decimal != 0) { $return = trim($this->toWords($decimal)); $lev = ($decimal == 1) ? 0 : 1; if ($lev > 0) { if (count($currencyNames[0]) > 1) { $return .= $this->wordSeparator . $currencyNames[0][$lev]; } else { $return .= $this->wordSeparator . $currencyNames[0][0]; } } else { $return .= $this->wordSeparator . $currencyNames[0][0]; } if (null !== $fraction) { $return .= $this->wordSeparator . 'og'; } } if (null !== $fraction) { $return .= $this->wordSeparator . trim($this->toWords($fraction)); $lev = ($fraction == 1) ? 0 : 1; if ($lev > 0) { if (count($currencyNames[1]) > 1) { $return .= $this->wordSeparator . $currencyNames[1][$lev]; } else { $return .= $this->wordSeparator . $currencyNames[1][0]; } } else { $return .= $this->wordSeparator . $currencyNames[1][0]; } } return $return; } } PK[DlXMMsrc/Legacy/Numbers/Words.phpnu[options = new CurrencyTransformerOptions(); } else { $this->options = $options; } } /** * @param int $number * @param string $locale * * @throws NumberToWordsException * @return string */ public function transformToWords($number, $locale) { $localeClassName = $this->resolveLocaleClassName($locale); $transformer = new $localeClassName(); return trim($transformer->toWords($number)); } /** * @param int $amount * @param string $locale * @param string $currency * * @throws NumberToWordsException * @return string */ public function transformToCurrency($amount, $locale, $currency) { $localeClassName = $this->resolveLocaleClassName($locale); $transformer = new $localeClassName($this->options); $decimalPart = (int) ($amount / 100); $fractionalPart = abs($amount % 100); if (0 === $fractionalPart) { return trim($transformer->toCurrencyWords($currency, $decimalPart)); } return trim($transformer->toCurrencyWords($currency, $decimalPart, $fractionalPart)); } /** * @param string $locale * * @throws NumberToWordsException * @return string */ private function resolveLocaleClassName($locale) { $locale = implode('\\', array_map(function ($element) { return ucfirst(strtolower($element)); }, explode('_', $locale))); $class = 'NumberToWords\\Legacy\\Numbers\\Words\\Locale\\' . $locale; if (!class_exists($class)) { throw new NumberToWordsException(sprintf('Unable to load locale class %s', $class)); } return $class; } } PK[c__(src/Exception/NumberToWordsException.phpnu[numberTransformer = $numberTransformer; return $this; } /** * @param Dictionary $dictionary * * @return $this */ public function withDictionary(Dictionary $dictionary) { $this->dictionary = $dictionary; return $this; } public function toWords($currency, $decimal, $fraction) { } } PK[cܵsrc/Grammar/Gender.phpnu[ */ private static $units = [ 0 => 'nulis', 1 => 'vienas', 2 => 'du', 3 => 'trys', 4 => 'keturi', 5 => 'penki', 6 => 'šeši', 7 => 'septyni', 8 => 'aštuoni', 9 => 'devyni' ]; /** @var array */ private static $tens = [ 0 => 'dešimt', 1 => 'vienuolika', 2 => 'dvylika', 3 => 'trylika', 4 => 'keturiolika', 5 => 'penkiolika', 6 => 'šešiolika', 7 => 'septyniolika', 8 => 'aštuoniolika', 9 => 'devyniolika' ]; /** @var array */ private static $teens = [ 0 => '', 1 => 'dešimt', 2 => 'dvidešimt', 3 => 'trisdešimt', 4 => 'keturiasdešimt', 5 => 'penkiasdešimt', 6 => 'šešiasdešimt', 7 => 'septyniasdešimt', 8 => 'aštuoniasdešimt', 9 => 'devyniasdešimt' ]; /** @var array */ private static $hundreds = [ 0 => 'šimtas', 2 => 'šimtai', ]; /** @var array> */ public static $exponent = [ ['', ''], ['tūkstantis', 'tūkstančių', 'tūkstančiai'], ['milijonas', 'milijonų', 'milijonai'], ['bilijonas', 'bilijonų', 'bilijonai'], ['trilijonas', 'trilijonų', 'trilijardai'], ['kvadrilijonas', 'kvadrilijonų', 'kvadrilijonai'], ['kvintilijonas', 'kvintilijonų', 'kvintilijonai'], ['sikstilijonas', 'sikstilijonų', 'sikstilijonai'], ['septilijonas', 'septilijonų', 'septilijonai'], ['oktilijonas', 'oktilijonų', 'oktilijonai'], ['nonilijonas', 'nonilijonų', 'nonilijonai'], ['gugolas', 'gugolų', 'gugolai'], ['gugolplexas', 'gugolplexų', 'gugolplexai'] ]; /** @var array> */ public static $currencyNames = [ 'EUR' => [['euras', 'eurų', 'eurai'], ['euro centas', 'euro centų', 'euro centai']], 'LT' => [['litas', 'litų', 'litai'], ['lito centas', 'lito centų', 'lito centai']], ]; /** * @return string */ public function getAnd() { return 'ir'; } /** * @return string */ public function getMinus() { return 'minus'; } /** * @return string */ public function getZero() { return 'nulis'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { if ($hundred === 1) { return static::$hundreds[0]; } return self::$units[$hundred] . ' ' . static::$hundreds[1]; } } PK[g&)src/Language/French/BelgianDictionary.phpnu[ 'dix', 11 => 'onze', 12 => 'douze', 13 => 'treize', 14 => 'quatorze', 15 => 'quinze', 16 => 'seize', 20 => 'vingt', 30 => 'trente', 40 => 'quarante', 50 => 'cinquante', 60 => 'soixante', 70 => 'septante', 90 => 'nonante', 100 => 'cent' ]; public static $digits = [ 1 => 'un', 2 => 'deux', 3 => 'trois', 4 => 'quatre', 5 => 'cinq', 6 => 'six', 7 => 'sept', 8 => 'huit', 9 => 'neuf' ]; public static $zero = 'zéro'; public static $and = 'et'; public static $wordSeparator = ' '; public static $dash = '-'; public static $minus = 'moins'; public static $pluralSuffix = 's'; public static $exponent = [ 0 => '', 3 => 'mille', 6 => 'million', 9 => 'milliard', 12 => 'trillion', 15 => 'quadrillion', 18 => 'quintillion', 21 => 'sextillion', 24 => 'septillion', 27 => 'octillion', 30 => 'nonillion', 33 => 'decillion', 36 => 'undecillion', 39 => 'duodecillion', 42 => 'tredecillion', 45 => 'quattuordecillion', 48 => 'quindecillion', 51 => 'sexdecillion', 54 => 'septendecillion', 57 => 'octodecillion', 60 => 'novemdecillion', 63 => 'vigintillion', 66 => 'unvigintillion', 69 => 'duovigintillion', 72 => 'trevigintillion', 75 => 'quattuorvigintillion', 78 => 'quinvigintillion', 81 => 'sexvigintillion', 84 => 'septenvigintillion', 87 => 'octovigintillion', 90 => 'novemvigintillion', ]; } PK[y4src/Language/Albanian/AlbanianTripletTransformer.phpnu[dictionary = $dictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->dictionary->getCorrespondingHundred($hundreds); } if ($tens !== 0 || $units !== 0) { $words[] = $this->getSubHundred($tens, $units); } return implode(' e ', $words); } /** * @param int $tens * @param int $units * * @return string */ private function getSubHundred($tens, $units) { $words = []; if ($tens === 1) { $words[] = $this->dictionary->getCorrespondingTeen($units); } else { if ($tens > 0) { $words[] = $this->dictionary->getCorrespondingTen($tens); } if ($units > 0) { $words[] = $this->dictionary->getCorrespondingUnit($units); } } return implode(' e ', $words); } } PK[gBDD0src/Language/Albanian/AlbanianExponentGetter.phpnu[ [['lek'], ['qindarka']], 'AUD' => [['Australian dollar'], ['cent']], 'BAM' => [['convertible marka'], ['fenig']], 'BGN' => [['lev'], ['stotinka']], 'BRL' => [['real'], ['centavos']], 'BYR' => [['Belarussian rouble'], ['kopiejka']], 'CAD' => [['Canadian dollar'], ['cent']], 'CHF' => [['Swiss franc'], ['rapp']], 'CYP' => [['Cypriot pound'], ['cent']], 'CZK' => [['Czech koruna'], ['halerz']], 'DKK' => [['Danish krone'], ['ore']], 'DZD' => [['dinar'], ['cent']], 'EEK' => [['kroon'], ['senti']], 'EUR' => [['euro'], ['euro-cent']], 'GBP' => [['pound', 'pounds'], ['pence', 'pence']], 'HKD' => [['Hong Kong dollar'], ['cent']], 'HRK' => [['Croatian kuna'], ['lipa']], 'HUF' => [['forint'], ['filler']], 'ILS' => [['new sheqel', 'new sheqels'], ['agora', 'agorot']], 'ISK' => [['Icelandic króna'], ['aurar']], 'JPY' => [['yen'], ['sen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['sentim']], 'LYD' => [['dinar'], ['cent']], 'MAD' => [['dirham'], ['cent']], 'MKD' => [['Macedonian dinar'], ['deni']], 'MRO' => [['ouguiya'], ['khoums']], 'MTL' => [['Maltese lira'], ['centym']], 'NGN' => [['Naira'], ['kobo']], 'NOK' => [['Norwegian krone'], ['oere']], 'PHP' => [['peso'], ['centavo']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'ROL' => [['Romanian leu'], ['bani']], 'RUB' => [['Russian Federation rouble'], ['kopiejka']], 'SEK' => [['Swedish krona'], ['oere']], 'SIT' => [['Tolar'], ['stotinia']], 'SKK' => [['Slovak koruna'], []], 'TMT' => [['manat'], ['tenge']], 'TND' => [['dinar'], ['cent']], 'TRL' => [['lira'], ['kuruş']], 'UAH' => [['hryvna'], ['cent']], 'USD' => [['dollar'], ['cent']], 'XAF' => [['CFA franc'], ['cent']], 'XOF' => [['CFA franc'], ['cent']], 'XPF' => [['CFP franc'], ['centime']], 'YUM' => [['dinar'], ['para']], 'ZAR' => [['rand'], ['cent']], ]; /** * @return string */ public function getZero() { return 'zero'; } /** * @return string */ public function getMinus() { return 'minus'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$units[$hundred] . self::$hundred; } } PK[-src/Language/PowerAwareTripletTransformer.phpnu[ 'treizeci', // 30 40 => 'patruzeci', // 40 50 => 'cincizeci', // 50 60 => 'șaizeci', // 60 70 => 'șaptezeci', // 70 80 => 'optzeci', // 80 90 => 'nouăzeci', // 90 ]; public static $infinity = 'infinit'; public static $and = 'și'; public static $wordSeparator = ' '; public static $currencyNames = [ 'AUD' => [ ['dolar australian', 'dolari australieni', Gender::GENDER_MASCULINE], ['cent', 'cenți', Gender::GENDER_MASCULINE], ], 'CAD' => [ ['dolar canadian', 'dolari canadieni', Gender::GENDER_MASCULINE], ['cent', 'cenți', Gender::GENDER_MASCULINE], ], 'CHF' => [ ['franc elvețian', 'franci elvețieni', Gender::GENDER_MASCULINE], ['cent', 'cenți', Gender::GENDER_MASCULINE], ], 'CZK' => [ ['coroană cehă', 'coroane cehe', Gender::GENDER_FEMININE], ['haler', 'haleri', Gender::GENDER_MASCULINE], ], 'EUR' => [ ['euro', 'euro', Gender::GENDER_MASCULINE], ['cent', 'cenți', Gender::GENDER_MASCULINE], ], 'GBP' => [ ['liră sterlină', 'lire sterline', Gender::GENDER_FEMININE], ['penny', 'penny', Gender::GENDER_MASCULINE], ], 'HUF' => [ ['forint', 'forinți', Gender::GENDER_MASCULINE], ['filer', 'fileri', Gender::GENDER_MASCULINE], ], 'JPY' => [ ['yen', 'yeni', Gender::GENDER_MASCULINE], ['sen', 'seni', Gender::GENDER_MASCULINE], ], 'PLN' => [ ['zlot', 'zloți', Gender::GENDER_MASCULINE], ['gros', 'grosi', Gender::GENDER_MASCULINE], ], 'ROL' => [ ['leu', 'lei', Gender::GENDER_MASCULINE], ['ban', 'bani', Gender::GENDER_MASCULINE], ], 'RON' => [ ['leu', 'lei', Gender::GENDER_MASCULINE], ['ban', 'bani', Gender::GENDER_MASCULINE], ], 'RUB' => [ ['rublă', 'ruble', Gender::GENDER_FEMININE], ['copeică', 'copeici', Gender::GENDER_FEMININE], ], 'SKK' => [ ['coroană slovacă', 'coroane slovace', Gender::GENDER_FEMININE], ['haler', 'haleri', Gender::GENDER_MASCULINE], ], 'TRL' => [ ['liră turcească', 'lire turcești', Gender::GENDER_FEMININE], ['kuruș', 'kuruși', Gender::GENDER_MASCULINE], ], 'USD' => [ ['dolar american', 'dolari americani', Gender::GENDER_MASCULINE], ['cent', 'cenți', Gender::GENDER_MASCULINE], ], ]; public static $manyPart = 'de'; public static $minus = 'minus'; public static $exponent = [ 0 => '', 2 => ['sută', 'sute', Gender::GENDER_FEMININE], 3 => ['mie', 'mii', Gender::GENDER_FEMININE], 6 => ['milion', 'milioane', Gender::GENDER_NEUTER], 9 => ['miliard', 'miliarde', Gender::GENDER_NEUTER], 12 => ['trilion', 'trilioane', Gender::GENDER_NEUTER], 15 => ['cvadrilion', 'cvadrilioane', Gender::GENDER_NEUTER], 18 => ['cvintilion', 'cvintilioane', Gender::GENDER_NEUTER], 21 => ['sextilion', 'sextilioane', Gender::GENDER_NEUTER], 24 => ['septilion', 'septilioane', Gender::GENDER_NEUTER], 27 => ['octilion', 'octilioane', Gender::GENDER_NEUTER], 30 => ['nonilion', 'nonilioane', Gender::GENDER_NEUTER], 33 => ['decilion', 'decilioane', Gender::GENDER_NEUTER], 36 => ['undecilion', 'undecilioane', Gender::GENDER_NEUTER], 39 => ['dodecilion', 'dodecilioane', Gender::GENDER_NEUTER], 42 => ['tredecilion', 'tredecilioane', Gender::GENDER_NEUTER], 45 => ['cvadrodecilion', 'cvadrodecilioane', Gender::GENDER_NEUTER], 48 => ['cvindecilion', 'cvindecilioane', Gender::GENDER_NEUTER], 51 => ['sexdecilion', 'sexdecilioane', Gender::GENDER_NEUTER], 54 => ['septdecilion', 'septdecilioane', Gender::GENDER_NEUTER], 57 => ['octodecilion', 'octodecilioane', Gender::GENDER_NEUTER], 60 => ['novemdecilion', 'novemdecilioane', Gender::GENDER_NEUTER], 63 => ['vigintilion', 'vigintilioane', Gender::GENDER_NEUTER], 66 => ['unvigintilion', 'unvigintilioane', Gender::GENDER_NEUTER], 69 => ['dovigintilion', 'dovigintilioane', Gender::GENDER_NEUTER], 72 => ['trevigintilion', 'trevigintilioane', Gender::GENDER_NEUTER], 75 => ['cvadrovigintilion', 'cvadrovigintilioane', Gender::GENDER_NEUTER], 78 => ['cvinvigintilion', 'cvinvigintilioane', Gender::GENDER_NEUTER], 81 => ['sexvigintilion', 'sexvigintilioane', Gender::GENDER_NEUTER], 84 => ['septvigintilion', 'septvigintilioane', Gender::GENDER_NEUTER], 87 => ['octvigintilion', 'octvigintilioane', Gender::GENDER_NEUTER], 90 => ['novemvigintilion', 'novemvigintilioane', Gender::GENDER_NEUTER], 93 => ['trigintilion', 'trigintilioane', Gender::GENDER_NEUTER], 96 => ['untrigintilion', 'untrigintilioane', Gender::GENDER_NEUTER], 99 => ['dotrigintilion', 'dotrigintilioane', Gender::GENDER_NEUTER], 102 => ['trestrigintilion', 'trestrigintilioane', Gender::GENDER_NEUTER], 105 => ['cvadrotrigintilion', 'cvadrotrigintilioane', Gender::GENDER_NEUTER], 108 => ['cvintrigintilion', 'cvintrigintilioane', Gender::GENDER_NEUTER], 111 => ['sextrigintilion', 'sextrigintilioane', Gender::GENDER_NEUTER], 114 => ['septentrigintilion', 'septentrigintilioane', Gender::GENDER_NEUTER], 117 => ['octotrigintilion', 'octotrigintilioane', Gender::GENDER_NEUTER], 120 => ['novemtrigintilion', 'novemtrigintilioane', Gender::GENDER_NEUTER], 123 => ['cvadragintilion', 'cvadragintilioane', Gender::GENDER_NEUTER], 126 => ['uncvadragintilion', 'uncvadragintilioane', Gender::GENDER_NEUTER], 129 => ['docvadragintilion', 'docvadragintilioane', Gender::GENDER_NEUTER], 132 => ['trecvadragintilion', 'trecvadragintilioane', Gender::GENDER_NEUTER], 135 => ['cvadrocvadragintilion', 'cvadrocvadragintilioane', Gender::GENDER_NEUTER], 138 => ['cvincvadragintilion', 'cvincvadragintilioane', Gender::GENDER_NEUTER], 141 => ['sexcvadragintilion', 'sexcvadragintilioane', Gender::GENDER_NEUTER], 144 => ['septencvadragintilion', 'septencvadragintilioane', Gender::GENDER_NEUTER], 147 => ['octocvadragintilion', 'octocvadragintilioane', Gender::GENDER_NEUTER], 150 => ['novemcvadragintilion', 'novemcvadragintilioane', Gender::GENDER_NEUTER], ]; } PK[-csrc/Language/Dictionary.phpnu[dictionary = $latvianDictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->dictionary->getCorrespondingHundred($hundreds); } if ($tens === 1) { $words[] = $this->dictionary->getCorrespondingTeen($units); } if ($tens > 1) { $words[] = $this->dictionary->getCorrespondingTen($tens); } if ($units > 0 && $tens !== 1) { $words[] = $this->dictionary->getCorrespondingUnit($units); } return implode(' ', $words); } } PK[t9 *src/Language/Latvian/LatvianDictionary.phpnu[ '', 1 => 'viens', 2 => 'divi', 3 => 'trīs', 4 => 'četri', 5 => 'pieci', 6 => 'seši', 7 => 'septiņi', 8 => 'astoņi', 9 => 'deviņi' ]; private static $teens = [ 0 => 'desmit', 1 => 'vienpadsmit', 2 => 'divpadsmit', 3 => 'trīspadsmit', 4 => 'četrpadsmit', 5 => 'piecpadsmit', 6 => 'sešpadsmit', 7 => 'septiņpadsmit', 8 => 'astoņpadsmit', 9 => 'deviņpadsmit' ]; private static $tens = [ 0 => '', 1 => 'desmit', 2 => 'divdesmit', 3 => 'trīsdesmit', 4 => 'četrdesmit', 5 => 'piecdesmit', 6 => 'sešdesmit', 7 => 'septiņdesmit', 8 => 'astoņdesmit', 9 => 'deviņdesmit' ]; /** @var array> */ public static $currencyNames = [ 'EUR' => [['eiro', 'eiro', 'eiro'], ['eiro cents', 'eiro centi', 'eiro centi']], 'USD' => [['dolārs', 'dolāri', 'dolāri'], ['cents', 'centi', 'centi']], ]; /** * @return string */ public function getAnd() { return 'un'; } /** * @return string */ public function getZero() { return 'nulle'; } /** * @return string */ public function getMinus() { return 'minus'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { if ($hundred === 1) { return 'simts'; } return self::$units[$hundred] . ' simti'; } } PK[wLI1src/Language/Latvian/LatvianExponentInflector.phpnu[ 0 && $units === 0)) { return $level[2]; } elseif ($units > 1) { return $level[1]; } else { return $level[0]; } } } PK[K."src/Language/ExponentInflector.phpnu[inflector = $inflector; } /** * @param int $number * @param int $power * * @return string */ public function inflectExponent($number, $power) { return $this->inflector->inflectNounByNumber( $number, self::$exponent[$power][0], self::$exponent[$power][1], self::$exponent[$power][2] ); } } PK[ 0src/Language/Polish/PolishTripletTransformer.phpnu[polishDictionary = $polishDictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->polishDictionary->getCorrespondingHundred($hundreds); } if ($tens === 1) { $words[] = $this->polishDictionary->getCorrespondingTeen($units); } if ($tens > 1) { $words[] = $this->polishDictionary->getCorrespondingTen($tens); } if ($units > 0 && $tens !== 1) { $words[] = $this->polishDictionary->getCorrespondingUnit($units); } return implode(' ', $words); } } PK["!N(1src/Language/Polish/PolishNounGenderInflector.phpnu[ 1) { return $genitivePlural; } if ($units >= 2 && $units <= 4) { return $plural; } return $genitivePlural; } } PK[}&(src/Language/Polish/PolishDictionary.phpnu[ '', 1 => 'jeden', 2 => 'dwa', 3 => 'trzy', 4 => 'cztery', 5 => 'pięć', 6 => 'sześć', 7 => 'siedem', 8 => 'osiem', 9 => 'dziewięć' ]; private static $teens = [ 0 => 'dziesięć', 1 => 'jedenaście', 2 => 'dwanaście', 3 => 'trzynaście', 4 => 'czternaście', 5 => 'piętnaście', 6 => 'szesnaście', 7 => 'siedemnaście', 8 => 'osiemnaście', 9 => 'dziewiętnaście' ]; private static $tens = [ 0 => '', 1 => 'dziesięć', 2 => 'dwadzieścia', 3 => 'trzydzieści', 4 => 'czterdzieści', 5 => 'pięćdziesiąt', 6 => 'sześćdziesiąt', 7 => 'siedemdziesiąt', 8 => 'osiemdziesiąt', 9 => 'dziewięćdziesiąt' ]; private static $hundreds = [ 0 => '', 1 => 'sto', 2 => 'dwieście', 3 => 'trzysta', 4 => 'czterysta', 5 => 'pięćset', 6 => 'sześćset', 7 => 'siedemset', 8 => 'osiemset', 9 => 'dziewięćset' ]; public static $currencyNames = [ 'ALL' => [['lek', 'leki', 'leków'], ['quindarka', 'quindarki', 'quindarek']], 'AUD' => [ ['dolar australijski', 'dolary australijskie', 'dolarów australijskich'], ['cent', 'centy', 'centów'] ], 'BAM' => [['marka', 'marki', 'marek'], ['fenig', 'fenigi', 'fenigów']], 'BGN' => [['lew', 'lewy', 'lew'], ['stotinka', 'stotinki', 'stotinek']], 'BRL' => [['real', 'reale', 'realów'], ['centavos', 'centavos', 'centavos']], 'BYR' => [['rubel', 'ruble', 'rubli'], ['kopiejka', 'kopiejki', 'kopiejek']], 'CAD' => [['dolar kanadyjski', 'dolary kanadyjskie', 'dolarów kanadyjskich'], ['cent', 'centy', 'centów']], 'CHF' => [['frank szwajcarski', 'franki szwajcarskie', 'franków szwajcarskich'], ['rapp', 'rappy', 'rappów']], 'CYP' => [['funt cypryjski', 'funty cypryjskie', 'funtów cypryjskich'], ['cent', 'centy', 'centów']], 'CZK' => [['korona czeska', 'korony czeskie', 'koron czeskich'], ['halerz', 'halerze', 'halerzy']], 'DKK' => [['korona duńska', 'korony duńskie', 'koron duńskich'], ['ore', 'ore', 'ore']], 'EEK' => [['korona estońska', 'korony estońskie', 'koron estońskich'], ['senti', 'senti', 'senti']], 'EUR' => [['euro', 'euro', 'euro'], ['eurocent', 'eurocenty', 'eurocentów']], 'GBP' => [['funt szterling', 'funty szterlingi', 'funtów szterlingów'], ['pens', 'pensy', 'pensów']], 'HKD' => [['dolar Hongkongu', 'dolary Hongkongu', 'dolarów Hongkongu'], ['cent', 'centy', 'centów']], 'HRK' => [['kuna', 'kuny', 'kun'], ['lipa', 'lipy', 'lip']], 'HUF' => [['forint', 'forinty', 'forintów'], ['filler', 'fillery', 'fillerów']], 'ILS' => [['nowy szekel', 'nowe szekele', 'nowych szekeli'], ['agora', 'agory', 'agorot']], 'ISK' => [['korona islandzka', 'korony islandzkie', 'koron islandzkich'], ['aurar', 'aurar', 'aurar']], 'JPY' => [['jen', 'jeny', 'jenów'], ['sen', 'seny', 'senów']], 'LTL' => [['lit', 'lity', 'litów'], ['cent', 'centy', 'centów']], 'LVL' => [['łat', 'łaty', 'łatów'], ['sentim', 'sentimy', 'sentimów']], 'MKD' => [['denar', 'denary', 'denarów'], ['deni', 'deni', 'deni']], 'MTL' => [['lira maltańska', 'liry maltańskie', 'lir maltańskich'], ['centym', 'centymy', 'centymów']], 'NOK' => [['korona norweska', 'korony norweskie', 'koron norweskich'], ['oere', 'oere', 'oere']], 'PLN' => [['złoty', 'złote', 'złotych'], ['grosz', 'grosze', 'groszy']], 'ROL' => [['lej', 'leje', 'lei'], ['bani', 'bani', 'bani']], 'RUB' => [['rubel', 'ruble', 'rubli'], ['kopiejka', 'kopiejki', 'kopiejek']], 'SEK' => [['korona szwedzka', 'korony szwedzkie', 'koron szweckich'], ['oere', 'oere', 'oere']], 'SIT' => [['tolar', 'tolary', 'tolarów'], ['stotinia', 'stotinie', 'stotini']], 'SKK' => [['korona słowacka', 'korony słowackie', 'koron słowackich'], ['halerz', 'halerze', 'halerzy']], 'TRL' => [['lira turecka', 'liry tureckie', 'lir tureckich'], ['kurusza', 'kurysze', 'kuruszy']], 'UAH' => [['hrywna', 'hrywna', 'hrywna'], ['cent', 'centy', 'centów']], 'USD' => [['dolar', 'dolary', 'dolarów'], ['cent', 'centy', 'centów']], 'YUM' => [['dinar', 'dinary', 'dinarów'], ['para', 'para', 'para']], 'ZAR' => [['rand', 'randy', 'randów'], ['cent', 'centy', 'centów']] ]; /** * @return string */ public function getMinus() { return 'minus'; } /** * @return string */ public function getZero() { return 'zero'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$hundreds[$hundred]; } } PK[OT^^(src/Language/Slovak/SlovakDictionary.phpnu[ '', 1 => 'jeden', 2 => 'dva', 3 => 'tri', 4 => 'štyri', 5 => 'päť', 6 => 'šesť', 7 => 'sedem', 8 => 'osem', 9 => 'deväť', ]; private static $teens = [ 0 => 'desať', 1 => 'jedenásť', 2 => 'dvanásť', 3 => 'trinásť', 4 => 'štrnásť', 5 => 'pätnásť', 6 => 'šestnásť', 7 => 'sedemnásť', 8 => 'osemnásť', 9 => 'devätnásť' ]; private static $twenteens = [ 0 => 'dvadsať', 1 => 'dvadsaťjeden', 2 => 'dvadsaťdva', 3 => 'dvadsaťtri', 4 => 'dvadsaťštyri', 5 => 'dvadsaťpäť', 6 => 'dvadsaťšesť', 7 => 'dvadsaťsedem', 8 => 'dvadsaťosem', 9 => 'dvadsaťdeväť' ]; private static $tens = [ 0 => '', 1 => 'desať', 2 => 'dvadsať', 3 => 'tridsať', 4 => 'štyridsať', 5 => 'päťdesiat', 6 => 'šesťdesiat', 7 => 'sedemdesiat', 8 => 'osemdesiat', 9 => 'deväťdesiat' ]; private static $hundreds = [ 0 => '', 1 => 'sto', 2 => 'dvesto', 3 => 'tristo', 4 => 'štyristo', 5 => 'päťsto', 6 => 'šesťsto', 7 => 'sedemsto', 8 => 'osemsto', 9 => 'deväťsto' ]; public static $currencyNames = [ 'ALL' => [['lek', 'leki', 'lekov'], ['quindarka', 'quindarki', 'quindarek']], 'AUD' => [ ['dolar australijski', 'dolary australijskie', 'dolarov australijskich'], ['cent', 'centy', 'centov'] ], 'BAM' => [['marka', 'marki', 'marek'], ['fenig', 'fenigi', 'fenigov']], 'BGN' => [['lew', 'lewy', 'lew'], ['stotinka', 'stotinki', 'stotinek']], 'BRL' => [['real', 'reale', 'realov'], ['centavos', 'centavos', 'centavos']], 'BYR' => [['rubel', 'ruble', 'rubli'], ['kopiejka', 'kopiejki', 'kopiejek']], 'CAD' => [['dolar kanadyjski', 'dolary kanadyjskie', 'dolarov kanadyjskich'], ['cent', 'centy', 'centov']], 'CHF' => [['frank szwajcarski', 'franki szwajcarskie', 'frankov szwajcarskich'], ['rapp', 'rappy', 'rappov']], 'CYP' => [['funt cypryjski', 'funty cypryjskie', 'funtov cypryjskich'], ['cent', 'centy', 'centov']], 'CZK' => [['korona czeska', 'korony czeskie', 'koron czeskich'], ['halerz', 'halerze', 'halerzy']], 'DKK' => [['korona duńska', 'korony duńskie', 'koron duńskich'], ['ore', 'ore', 'ore']], 'EEK' => [['korona estońska', 'korony estońskie', 'koron estońskich'], ['senti', 'senti', 'senti']], 'EUR' => [['euro', 'euro', 'euro'], ['eurocent', 'eurocenty', 'eurocentov']], 'GBP' => [['funt szterling', 'funty szterlingi', 'funtov szterlingov'], ['pens', 'pensy', 'pensov']], 'HKD' => [['dolar Hongkongu', 'dolary Hongkongu', 'dolarov Hongkongu'], ['cent', 'centy', 'centov']], 'HRK' => [['kuna', 'kuny', 'kun'], ['lipa', 'lipy', 'lip']], 'HUF' => [['forint', 'forinty', 'forintov'], ['filler', 'fillery', 'fillerov']], 'ILS' => [['nowy szekel', 'nowe szekele', 'nowych szekeli'], ['agora', 'agory', 'agorot']], 'ISK' => [['korona islandzka', 'korony islandzkie', 'koron islandzkich'], ['aurar', 'aurar', 'aurar']], 'JPY' => [['jen', 'jeny', 'jenov'], ['sen', 'seny', 'senov']], 'LTL' => [['lit', 'lity', 'litov'], ['cent', 'centy', 'centov']], 'LVL' => [['łat', 'łaty', 'łatov'], ['sentim', 'sentimy', 'sentimov']], 'MKD' => [['denar', 'denary', 'denarov'], ['deni', 'deni', 'deni']], 'MTL' => [['lira maltańska', 'liry maltańskie', 'lir maltańskich'], ['centym', 'centymy', 'centymov']], 'NOK' => [['korona norweska', 'korony norweskie', 'koron norweskich'], ['oere', 'oere', 'oere']], 'PLN' => [['złoty', 'złote', 'złotych'], ['grosz', 'grosze', 'groszy']], 'ROL' => [['lej', 'leje', 'lei'], ['bani', 'bani', 'bani']], 'RUB' => [['rubel', 'ruble', 'rubli'], ['kopiejka', 'kopiejki', 'kopiejek']], 'SEK' => [['korona szwedzka', 'korony szwedzkie', 'koron szweckich'], ['oere', 'oere', 'oere']], 'SIT' => [['tolar', 'tolary', 'tolarov'], ['stotinia', 'stotinie', 'stotini']], 'SKK' => [['korona słowacka', 'korony słowackie', 'koron słowackich'], ['halerz', 'halerze', 'halerzy']], 'TRL' => [['lira turecka', 'liry tureckie', 'lir tureckich'], ['kurusza', 'kurysze', 'kuruszy']], 'UAH' => [['hrivny', 'hrivny', 'hrivien'], ['cent', 'centy', 'centov']], 'USD' => [['dolár', 'doláre', 'dolárov'], ['cent', 'centy', 'centov']], 'YUM' => [['dinar', 'dinary', 'dinarov'], ['para', 'para', 'para']], 'ZAR' => [['rand', 'randy', 'randov'], ['cent', 'centy', 'centov']] ]; /** * @return string */ public function getMinus() { return 'mínus'; } /** * @return string */ public function getZero() { return 'nula'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $twenteen * * @return string */ public function getCorrespondingTwenteen($twenteen) { return self::$twenteens[$twenteen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$hundreds[$hundred]; } } PK[H+WSS0src/Language/Slovak/SlovakTripletTransformer.phpnu[slovakDictionary = $slovakDictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->slovakDictionary->getCorrespondingHundred($hundreds); } if ($tens === 1) { $words[] = $this->slovakDictionary->getCorrespondingTeen($units); } if ($tens === 2) { $words[] = $this->slovakDictionary->getCorrespondingTwenteen($units); } if ($tens > 2) { $words[] = $this->slovakDictionary->getCorrespondingTen($tens); } if ($units > 0 && $tens !== 1 && $tens !== 2) { $words[] = $this->slovakDictionary->getCorrespondingUnit($units); } return implode(' ', $words); } } PK[+/src/Language/Slovak/SlovakExponentInflector.phpnu[inflector = $inflector; } /** * @param int $number * @param int $power * * @return string */ public function inflectExponent($number, $power) { return $this->inflector->inflectNounByNumber( $number, self::$exponent[$power][0], self::$exponent[$power][1], self::$exponent[$power][2] ); } } PK[~x1src/Language/Slovak/SlovakNounGenderInflector.phpnu[ 1) { return $genitivePlural; } if ($units >= 2 && $units <= 4) { return $plural; } return $genitivePlural; } } PK[#src/Language/TripletTransformer.phpnu[ 'null', 1 => 'ein', 2 => 'zwei', 3 => 'drei', 4 => 'vier', 5 => 'fünf', 6 => 'sechs', 7 => 'sieben', 8 => 'acht', 9 => 'neun' ]; private static $teens = [ 0 => 'zehn', 1 => 'elf', 2 => 'zwölf', 3 => 'dreizehn', 4 => 'vierzehn', 5 => 'fünfzehn', 6 => 'sechzehn', 7 => 'siebzehn', 8 => 'achtzehn', 9 => 'neunzehn' ]; private static $tens = [ 0 => '', 1 => 'zehn', 2 => 'zwanzig', 3 => 'dreißig', 4 => 'vierzig', 5 => 'fünfzig', 6 => 'sechzig', 7 => 'siebzig', 8 => 'achtzig', 9 => 'neunzig' ]; private static $hundreds = [ 0 => 'nullhundert', 1 => 'einhundert', 2 => 'zweihundert', 3 => 'dreihundert', 4 => 'vierhundert', 5 => 'fünfhundert', 6 => 'sechshundert', 7 => 'siebenhundert', 8 => 'achthundert', 9 => 'neunhundert' ]; public static $exponent = [ ['', ''], ['tausend', 'tausend'], ['Million', 'Millionen'], ['Milliarde', 'Milliarden'], ['Billion', 'Billionen'], ['Billiarde', 'Billiarden'], ['Trillion', 'Trillionen'], ['Trilliarde', 'Trilliarden'], ['Quadrillion', 'Quadrillionen'], ['Quadrilliarde', 'Quadrilliarden'], ['Quintillion', 'Quintillionen'], ['Quintilliarde', 'Quintilliarden'], ['Sextillion', 'Sextillionen'], ['Sextilliarde', 'Sextilliarden'], ['Septillion', 'Septillionen'], ['Septilliarde', 'Septilliarden'], ['Oktillion', 'Oktillionen'], // oder Octillionen ['Oktilliarde', 'Oktilliarden'], ['Nonillion', 'Nonillionen'], ['Nonilliarde', 'Nonilliarden'], ['Dezillion', 'Dezillionen'], ['Dezilliarde', 'Dezilliarden'], ]; public static $currencyNames = [ 'ALL' => [['Lek'], ['Quindarka']], 'AUD' => [['Australischer Dollar'], ['cent']], 'BAM' => [['Konvertible Mark'], ['Fening']], 'BGN' => [['Lew'], ['Stotinki']], 'BRL' => [['Real'], ['centavos']], 'BYR' => [['Weißrussischer Rubel'], ['Kopeke','Kopeken']], 'CAD' => [['Kanadischer Dollar'], ['cent']], 'CHF' => [['Schweizer Franken'], ['Rappen']], 'CZK' => [['Tschechische Krone','Tschechische Kronen'], ['Haleru']], 'DKK' => [['Dänische Krone','Dänische Kronen'], ['Øre']], 'EUR' => [['Euro'], ['cent']], 'GBP' => [['Pfund Sterling'], ['Pence']], 'HKD' => [['Hong Kong Dollar'], ['cent']], 'HRK' => [['Kuna'], ['lipa']], 'HUF' => [['Forint'], ['filler']], 'ILS' => [['Neuer Israel Schekel'], ['agora', 'agorot']], 'ISK' => [['isländische Krone','isländische Kronen'], ['aurar']], 'JPY' => [['Yen'], ['sen']], 'MKD' => [['Mazedonischer Denar'], ['deni']], 'NOK' => [['Norwegische Krone','Norwegische Kronen'], ['Øre']], 'PLN' => [['Złoty'], ['Groschen']], 'RUB' => [['Russischer Rubel'], ['Kopeke','Kopeken']], 'SEK' => [['Schwedische Krone','Schwedische Kronen'], ['Öre']], 'TMT' => [['Manat'], ['tenge']], 'UAH' => [['Hrywna'], ['Kopeke','Kopeken']], 'USD' => [['US Dollar'], ['cent']], 'ZAR' => [['Rand'], ['cent']] ]; public static $and = 'und'; /** * @return string */ public function getMinus() { return 'Minus'; } /** * @return string */ public function getZero() { return 'null'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$hundreds[$hundred]; } } PK[,0src/Language/German/GermanTripletTransformer.phpnu[dictionary = $dictionary; } /** * @param int $number * @param int $power * * @return string */ public function transformToWords($number, $power) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->dictionary->getCorrespondingHundred($hundreds); } if ($tens === 1) { $words[] = $this->dictionary->getCorrespondingTeen($units); } if ($units > 0 && $tens !== 1) { $words[] = $this->dictionary->getCorrespondingUnit($units); if ($tens > 1) { $words[] = 'und'; } elseif ($units === 1) { if ($power === 0) { $words[] = 's'; } elseif ($power !== 1) { $words[] = 'e'; } } } if ($tens > 1) { $words[] = $this->dictionary->getCorrespondingTen($tens); } return implode('', $words); } } PK[h2src/Language/Persian/PersianTripletTransformer.phpnu[dictionary = $dictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->dictionary->getCorrespondingHundred($hundreds); } if ($tens !== 0 || $units !== 0) { $words[] = $this->getSubHundred($tens, $units); } return implode(' ', $words); } /** * @param int $tens * @param int $units * * @return string */ private function getSubHundred($tens, $units) { $words = []; if ($tens === 1) { $words[] = $this->dictionary->getCorrespondingTeen($units); } else { if ($tens > 0) { $words[] = $this->dictionary->getCorrespondingTen($tens); } if ($units > 0) { $words[] = $this->dictionary->getCorrespondingUnit($units); } } return implode('-', $words); } } PK[DXX*src/Language/Persian/PersianDictionary.phpnu[ [['ریال'], ['ریال']], ]; /** * @return string */ public function getZero() { return 'صفر'; } /** * @return string */ public function getMinus() { return 'منفی'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$units[$hundred] . ' ' . self::$hundred; } } PK[ *.src/Language/Persian/PersianExponentGetter.phpnu[ [['lek'], ['qindarka']], 'AUD' => [['Australian dollar'], ['cent']], 'BAM' => [['convertible marka'], ['fenig']], 'BGN' => [['lev'], ['stotinka']], 'BRL' => [['real'], ['centavos']], 'BYR' => [['Belarussian rouble'], ['kopiejka']], 'CAD' => [['Canadian dollar'], ['cent']], 'CHF' => [['Swiss franc'], ['rapp']], 'CYP' => [['Cypriot pound'], ['cent']], 'CZK' => [['Czech koruna'], ['halerz']], 'DKK' => [['Danish krone'], ['ore']], 'DZD' => [['dinar'], ['cent']], 'EEK' => [['kroon'], ['senti']], 'EUR' => [['euro'], ['euro-cent']], 'GBP' => [['pound', 'pounds'], ['pence', 'pence']], 'HKD' => [['Hong Kong dollar'], ['cent']], 'HRK' => [['Croatian kuna'], ['lipa']], 'HUF' => [['forint'], ['filler']], 'ILS' => [['new sheqel', 'new sheqels'], ['agora', 'agorot']], 'ISK' => [['Icelandic króna'], ['aurar']], 'JPY' => [['yen'], ['sen']], 'LTL' => [['litas'], ['cent']], 'LVL' => [['lat'], ['sentim']], 'LYD' => [['dinar'], ['cent']], 'MAD' => [['dirham'], ['cent']], 'MKD' => [['Macedonian dinar'], ['deni']], 'MRO' => [['ouguiya'], ['khoums']], 'MTL' => [['Maltese lira'], ['centym']], 'NGN' => [['Naira'], ['kobo']], 'NOK' => [['Norwegian krone'], ['oere']], 'PHP' => [['peso'], ['centavo']], 'PLN' => [['zloty', 'zlotys'], ['grosz']], 'ROL' => [['Romanian leu'], ['bani']], 'RUB' => [['Russian Federation rouble'], ['kopiejka']], 'SEK' => [['Swedish krona'], ['oere']], 'SIT' => [['Tolar'], ['stotinia']], 'SKK' => [['Slovak koruna'], []], 'TMT' => [['manat'], ['tenge']], 'TND' => [['dinar'], ['cent']], 'TRL' => [['lira'], ['kuruş']], 'UAH' => [['hryvna'], ['cent']], 'USD' => [['dollar'], ['cent']], 'XAF' => [['CFA franc'], ['cent']], 'XOF' => [['CFA franc'], ['cent']], 'XPF' => [['CFP franc'], ['centime']], 'YUM' => [['dinar'], ['para']], 'ZAR' => [['rand'], ['cent']], ]; /** * @return string */ public function getZero() { return 'zero'; } /** * @return string */ public function getMinus() { return 'minus'; } /** * @param int $unit * * @return string */ public function getCorrespondingUnit($unit) { return self::$units[$unit]; } /** * @param int $ten * * @return string */ public function getCorrespondingTen($ten) { return self::$tens[$ten]; } /** * @param int $teen * * @return string */ public function getCorrespondingTeen($teen) { return self::$teens[$teen]; } /** * @param int $hundred * * @return string */ public function getCorrespondingHundred($hundred) { return self::$units[$hundred] . ' ' . self::$hundred; } } PK[3QQ.src/Language/English/EnglishExponentGetter.phpnu[dictionary = $dictionary; } /** * @param int $number * * @return string */ public function transformToWords($number) { $units = $number % 10; $tens = (int) ($number / 10) % 10; $hundreds = (int) ($number / 100) % 10; $words = []; if ($hundreds > 0) { $words[] = $this->dictionary->getCorrespondingHundred($hundreds); } if ($tens !== 0 || $units !== 0) { $words[] = $this->getSubHundred($tens, $units); } return implode(' ', $words); } /** * @param int $tens * @param int $units * * @return string */ private function getSubHundred($tens, $units) { $words = []; if ($tens === 1) { $words[] = $this->dictionary->getCorrespondingTeen($units); } else { if ($tens > 0) { $words[] = $this->dictionary->getCorrespondingTen($tens); } if ($units > 0) { $words[] = $this->dictionary->getCorrespondingUnit($units); } } return implode('-', $words); } } PK[֬00 .gitignorenu[/vendor/ /.idea/ /build/ /composer.lock *.cache PK[υ55>tests/CurrencyTransformer/UkrainianCurrencyTransformerTest.phpnu[currencyTransformer = new UkrainianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'UAH', 'одна гривня'], [200, 'UAH', 'дві гривні'], [500, 'UAH', 'п\'ять гривень'], [34000, 'UAH', 'триста сорок гривень'], [34100, 'UAH', 'триста сорок одна гривня'], [34200, 'RUB', 'триста сорок два рубля'], [34400, 'UAH', 'триста сорок чотири гривні'], [34500, 'UAH', 'триста сорок п\'ять гривень'], [34501, 'UAH', 'триста сорок п\'ять гривень одна копійка'], [34552, 'UAH', 'триста сорок п\'ять гривень п\'ятдесят дві копійки'], [34599, 'UAH', 'триста сорок п\'ять гривень дев\'яносто дев\'ять копійок'], [234200, 'UAH', 'дві тисячі триста сорок дві гривні'], ]; } } PK[##=tests/CurrencyTransformer/GeorgianCurrencyTransformerTest.phpnu[currencyTransformer = new GeorgianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [1, 'GEL', 'ერთი თეთრი'], [11, 'GEL', 'თერთმეტი თეთრი'], [105, 'GEL', 'ერთი ლარი და ხუთი თეთრი'], [115, 'GEL', 'ერთი ლარი და თხუთმეტი თეთრი'], [125, 'TRY', 'ერთი ლირა და ოცდახუთი ყურუში'], [180, 'PLN', 'ერთი ზლოტი და ოთხმოცი გროში'], [1025, 'USD', 'ათი დოლარი და ოცდახუთი ცენტი'], [1050, 'AMD', 'ათი დრამი და ორმოცდაათი ლუმა'], [2001, 'EUR', 'ოცი ევრო და ერთი სენტიმი'], [121084, 'GBP', 'ათას ორას ათი ფუნტი და ოთხმოცდაოთხი პენი'] ]; } } PK[Q;tests/CurrencyTransformer/DanishCurrencyTransformerTest.phpnu[currencyTransformer = new DanishCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'DKK', 'en krone'], [200, 'USD', 'to dollars'], [600, 'EUR', 'seks euro'], [1300, 'CHF', 'tretten schweitzer franc'], ]; } } PK[b <tests/CurrencyTransformer/TurkmenCurrencyTransformerTest.phpnu[currencyTransformer = new TurkmenCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'TMT', 'bir manat'], [200, 'USD', 'iki dollar'], [500, 'TMT', 'bäş manat'], [34000, 'USD', 'üç ýüz kyrk dollar'], [34100, 'TMT', 'üç ýüz kyrk bir manat'], [34200, 'USD', 'üç ýüz kyrk iki dollar'], [34400, 'TMT', 'üç ýüz kyrk dört manat'], [34501, 'TMT', 'üç ýüz kyrk bäş manat bir teňňe'], [34552, 'TMT', 'üç ýüz kyrk bäş manat elli iki teňňe'], [34599, 'USD', 'üç ýüz kyrk bäş dollar togsan dokuz sent'], ]; } } PK[ɶ>tests/CurrencyTransformer/HungarianCurrencyTransformerTest.phpnu[currencyTransformer = new HungarianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [0, 'HUF', 'nulla forint'], [53, 'HUF', 'nulla forint ötvenhárom fillér'], [100, 'HUF', 'egy forint'], [103, 'HUF', 'egy forint három fillér'], [300, 'HUF', 'három forint'], [301, 'HUF', 'három forint egy fillér'], [1000, 'HUF', 'tíz forint'], [1100, 'HUF', 'tizenegy forint'], [1130, 'HUF', 'tizenegy forint harminc fillér'], [110000, 'HUF', 'egyezeregyszáz forint'], [200000, 'HUF', 'kettőezer forint'], [210000, 'HUF', 'kettőezer-egyszáz forint'], [99900, 'EUR', 'kilencszázkilencvenkilenc euró'], [100054, 'EUR', 'egyezer euró ötvennégy cent'], [101000, 'USD', 'egyezertíz dollár'], [111111, 'USD', 'egyezeregyszáztizenegy dollár tizenegy cent'] ]; } } PK[ESܬ{{<tests/CurrencyTransformer/TurkishCurrencyTransformerTest.phpnu[currencyTransformer = new TurkishCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [72900, 'USD', 'yedi yüz yirmi dokuz ABD doları'], [89400, 'USD', 'sekiz yüz doksan dört ABD doları'], [99900, 'USD', 'dokuz yüz doksan dokuz ABD doları'], [100000, 'USD', 'bin ABD doları'], [100100, 'USD', 'bin bir ABD doları'], [109725, 'USD', 'bin doksan yedi ABD doları yirmi beş sent'], [110400, 'USD', 'bin yüz dört ABD doları'], [124380, 'EUR', 'bin iki yüz kırk üç avro seksen sent'], [238500, 'USD', 'iki bin üç yüz seksen beş ABD doları'], [376600, 'USD', 'üç bin yedi yüz altmış altı ABD doları'], [419645, 'TRY', 'dört bin yüz doksan altı Türk lirası kırk beş kuruş'], [584600, 'USD', 'beş bin sekiz yüz kırk altı ABD doları'], [645900, 'USD', 'altı bin dört yüz elli dokuz ABD doları'], [723200, 'USD', 'yedi bin iki yüz otuz iki ABD doları'], [93829100, 'RUB', 'dokuz yüz otuz sekiz bin iki yüz doksan bir Rus rublesi'], ]; } } PK[ 8775tests/CurrencyTransformer/CurrencyTransformerTest.phpnu[currencyTransformer) { self::markTestIncomplete('Please initialize $currencyTransformer property.'); } self::assertEquals($expectedString, $this->currencyTransformer->toWords($amount, $currency)); } abstract public function providerItConvertsMoneyAmountToWords(); } PK[V ;tests/CurrencyTransformer/YorubaCurrencyTransformerTest.phpnu[currencyTransformer = new YorubaCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [51722624, 'NGN', 'ẹgbẹrun ẹdẹgbẹta ati mẹtala, igba ati ogun ati mẹfa Naira pẹlu kobo ogun ati mẹrin'], [40462253, 'NGN', 'ẹgbẹrun irinwó ati mẹrin, ẹgbẹta ati ogun ati meji Naira pẹlu kobo aadọta ati mẹta'], [8109642, 'NGN', 'ẹgbẹrun ọgọrin ati ọkan, aadọrun ati mẹfa Naira pẹlu kobo ogoji ati meji'], [53649209, 'NGN', 'ẹgbẹrun ẹdẹgbẹta ati ọgbọn ati mẹfa, irinwó ati aadọrun ati meji Naira pẹlu kobo mẹsan'], [60006379, 'NGN', 'ẹgbẹrun ẹgbẹta, Ogota ati mẹta Naira pẹlu kobo aadọrin ati mẹsan'], [83142482, 'NGN', 'ẹgbẹrun ẹgbẹ̀rin ati ọgbọn ati ọkan, irinwó ati ogun ati mẹrin Naira pẹlu kobo ọgọrin ati meji'], [80477233, 'NGN', 'ẹgbẹrun ẹgbẹ̀rin ati mẹrin, ẹẹdẹgbẹrin ati aadọrin ati meji Naira pẹlu kobo ọgbọn ati mẹta'], [38329596, 'NGN', 'ẹgbẹrun ọ̀ọ́dúrún ati ọgọrin ati mẹta, igba ati aadọrun ati marun Naira pẹlu kobo aadọrun ati mẹfa'], [78342258, 'NGN', 'ẹgbẹrun ẹẹdẹgbẹrin ati ọgọrin ati mẹta, irinwó ati ogun ati meji Naira pẹlu kobo aadọta ati mẹjọ'], [25488994, 'NGN', 'ẹgbẹrun igba ati aadọta ati mẹrin, ẹgbẹ̀rin ati ọgọrin ati mẹsan Naira pẹlu kobo aadọrun ati mẹrin'], [88170626, 'NGN', 'ẹgbẹrun ẹgbẹ̀rin ati ọgọrin ati ọkan, ẹẹdẹgbẹrin ati mẹfa Naira pẹlu kobo ogun ati mẹfa'], [98042326, 'NGN', 'ẹgbẹrun ẹ̀ẹ́dẹ́gbẹ̀rún ati ọgọrin, irinwó ati ogun ati mẹta Naira pẹlu kobo ogun ati mẹfa'], [63707580, 'NGN', 'ẹgbẹrun ẹgbẹta ati ọgbọn ati meje, aadọrin ati marun Naira pẹlu kobo ọgọrin'], [48259505, 'NGN', 'ẹgbẹrun irinwó ati ọgọrin ati meji, ẹdẹgbẹta ati aadọrun ati marun Naira pẹlu kobo marun'], [63159623, 'NGN', 'ẹgbẹrun ẹgbẹta ati ọgbọn ati ọkan, ẹdẹgbẹta ati aadọrun ati mẹfa Naira pẹlu kobo ogun ati mẹta'], ]; } } PK[2 g >tests/CurrencyTransformer/LithuaniaCurrencyTransformerTest.phpnu[currencyTransformer = new LithuanianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return array_merge([ [0, 'EUR', 'nulis eurų ir nulis euro centų'], [1, 'EUR', 'nulis eurų ir vienas euro centas'], [9, 'EUR', 'nulis eurų ir devyni euro centai'], [10, 'EUR', 'nulis eurų ir dešimt euro centų'], [11, 'EUR', 'nulis eurų ir vienuolika euro centų'], [19, 'EUR', 'nulis eurų ir devyniolika euro centų'], [20, 'EUR', 'nulis eurų ir dvidešimt euro centų'], [21, 'EUR', 'nulis eurų ir dvidešimt vienas euro centas'], [25, 'EUR', 'nulis eurų ir dvidešimt penki euro centai'], [30, 'EUR', 'nulis eurų ir trisdešimt euro centų'], [99, 'EUR', 'nulis eurų ir devyniasdešimt devyni euro centai'], [100, 'EUR', 'vienas euras ir nulis euro centų'], [101, 'EUR', 'vienas euras ir vienas euro centas'], [103, 'EUR', 'vienas euras ir trys euro centai'], [111, 'EUR', 'vienas euras ir vienuolika euro centų'], [120, 'EUR', 'vienas euras ir dvidešimt euro centų'], [121, 'EUR', 'vienas euras ir dvidešimt vienas euro centas'], [726, 'EUR', 'septyni eurai ir dvidešimt šeši euro centai'], [850, 'EUR', 'aštuoni eurai ir penkiasdešimt euro centų'], [900, 'EUR', 'devyni eurai ir nulis euro centų'], [919, 'EUR', 'devyni eurai ir devyniolika euro centų'], [930, 'EUR', 'devyni eurai ir trisdešimt euro centų'], [990, 'EUR', 'devyni eurai ir devyniasdešimt euro centų'], [999, 'EUR', 'devyni eurai ir devyniasdešimt devyni euro centai'], [1000, 'EUR', 'dešimt eurų ir nulis euro centų'], [1001, 'EUR', 'dešimt eurų ir vienas euro centas'], [2000, 'EUR', 'dvidešimt eurų ir nulis euro centų'], [3000, 'EUR', 'trisdešimt eurų ir nulis euro centų'], [3210, 'EUR', 'trisdešimt du eurai ir dešimt euro centų'], [4000, 'EUR', 'keturiasdešimt eurų ir nulis euro centų'], [4011, 'EUR', 'keturiasdešimt eurų ir vienuolika euro centų'], [7000, 'EUR', 'septyniasdešimt eurų ir nulis euro centų'], [11000, 'EUR', 'šimtas dešimt eurų ir nulis euro centų'], [21000, 'EUR', 'du šimtai dešimt eurų ir nulis euro centų'], [999000, 'EUR', 'devyni tūkstančiai devyni šimtai devyniasdešimt eurų ir nulis euro centų'], [999999, 'EUR', 'devyni tūkstančiai devyni šimtai devyniasdešimt devyni eurai ir devyniasdešimt devyni euro centai'], [1000000, 'EUR', 'dešimt tūkstančių eurų ir nulis euro centų'], [2500001, 'EUR', 'dvidešimt penki tūkstančiai eurų ir vienas euro centas'], [1174315110, 'EUR', 'vienuolika milijonų septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir dešimt euro centų'], // or "vienas bilijonas" [1174315119, 'EUR', 'vienuolika milijonų septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir devyniolika euro centų'], // or "vienas bilijonas" [15174315110, 'EUR', 'šimtas penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir dešimt euro centų'], [35174315119, 'EUR', 'trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir devyniolika euro centų'], [935174315119, 'EUR', 'devyni bilijonai trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir devyniolika euro centų'], [222935174315119, 'EUR', 'du trilijonai du šimtai dvidešimt devyni bilijonai trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas euras ir devyniolika euro centų'], ], [ [0, 'LT', 'nulis litų ir nulis lito centų'], [1, 'LT', 'nulis litų ir vienas lito centas'], [9, 'LT', 'nulis litų ir devyni lito centai'], [10, 'LT', 'nulis litų ir dešimt lito centų'], [11, 'LT', 'nulis litų ir vienuolika lito centų'], [19, 'LT', 'nulis litų ir devyniolika lito centų'], [20, 'LT', 'nulis litų ir dvidešimt lito centų'], [21, 'LT', 'nulis litų ir dvidešimt vienas lito centas'], [25, 'LT', 'nulis litų ir dvidešimt penki lito centai'], [30, 'LT', 'nulis litų ir trisdešimt lito centų'], [99, 'LT', 'nulis litų ir devyniasdešimt devyni lito centai'], [100, 'LT', 'vienas litas ir nulis lito centų'], [101, 'LT', 'vienas litas ir vienas lito centas'], [103, 'LT', 'vienas litas ir trys lito centai'], [111, 'LT', 'vienas litas ir vienuolika lito centų'], [120, 'LT', 'vienas litas ir dvidešimt lito centų'], [121, 'LT', 'vienas litas ir dvidešimt vienas lito centas'], [726, 'LT', 'septyni litai ir dvidešimt šeši lito centai'], [850, 'LT', 'aštuoni litai ir penkiasdešimt lito centų'], [900, 'LT', 'devyni litai ir nulis lito centų'], [919, 'LT', 'devyni litai ir devyniolika lito centų'], [930, 'LT', 'devyni litai ir trisdešimt lito centų'], [990, 'LT', 'devyni litai ir devyniasdešimt lito centų'], [999, 'LT', 'devyni litai ir devyniasdešimt devyni lito centai'], [1000, 'LT', 'dešimt litų ir nulis lito centų'], [1001, 'LT', 'dešimt litų ir vienas lito centas'], [2000, 'LT', 'dvidešimt litų ir nulis lito centų'], [3000, 'LT', 'trisdešimt litų ir nulis lito centų'], [3210, 'LT', 'trisdešimt du litai ir dešimt lito centų'], [4000, 'LT', 'keturiasdešimt litų ir nulis lito centų'], [4011, 'LT', 'keturiasdešimt litų ir vienuolika lito centų'], [7000, 'LT', 'septyniasdešimt litų ir nulis lito centų'], [11000, 'LT', 'šimtas dešimt litų ir nulis lito centų'], [21000, 'LT', 'du šimtai dešimt litų ir nulis lito centų'], [999000, 'LT', 'devyni tūkstančiai devyni šimtai devyniasdešimt litų ir nulis lito centų'], [999999, 'LT', 'devyni tūkstančiai devyni šimtai devyniasdešimt devyni litai ir devyniasdešimt devyni lito centai'], [1000000, 'LT', 'dešimt tūkstančių litų ir nulis lito centų'], [2500001, 'LT', 'dvidešimt penki tūkstančiai litų ir vienas lito centas'], [1174315110, 'LT', 'vienuolika milijonų septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir dešimt lito centų'], // or "vienas bilijonas" [1174315119, 'LT', 'vienuolika milijonų septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir devyniolika lito centų'], // or "vienas bilijonas" [15174315110, 'LT', 'šimtas penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir dešimt lito centų'], [35174315119, 'LT', 'trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir devyniolika lito centų'], [935174315119, 'LT', 'devyni bilijonai trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir devyniolika lito centų'], [222935174315119, 'LT', 'du trilijonai du šimtai dvidešimt devyni bilijonai trys šimtai penkiasdešimt vienas milijonas septyni šimtai keturiasdešimt trys tūkstančiai šimtas penkiasdešimt vienas litas ir devyniolika lito centų'], ]); } } PK[_F;tests/CurrencyTransformer/FrenchCurrencyTransformerTest.phpnu[currencyTransformer = new FrenchCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'EUR', 'un euro'], [200, 'EUR', 'deux euros'], [235715, 'EUR', 'deux mille trois cent cinquante-sept euros et quinze centimes'], [1522501, 'EUR', 'quinze mille deux cent vingt-cinq euros et un centime'], [123456789, 'XPF', 'un million deux cent trente-quatre mille cinq cent soixante-sept francs CFP et quatre-vingt-neuf centimes'], [754414599, 'AUD', 'sept millions cinq cent quarante-quatre mille cent quarante-cinq dollars australiens et quatre-vingt-dix-neuf cents'], [754414599, 'CAD', 'sept millions cinq cent quarante-quatre mille cent quarante-cinq dollars canadiens et quatre-vingt-dix-neuf cents'], [754414599, 'USD', 'sept millions cinq cent quarante-quatre mille cent quarante-cinq dollars américains et quatre-vingt-dix-neuf cents'], ]; } } PK[`ٞz  <tests/CurrencyTransformer/LatvianCurrencyTransformerTest.phpnu[currencyTransformer = new LatvianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return array_merge([ [0, 'EUR', 'nulle eiro un nulle eiro centi'], [1, 'EUR', 'nulle eiro un viens eiro cents'], [9, 'EUR', 'nulle eiro un deviņi eiro centi'], [10, 'EUR', 'nulle eiro un desmit eiro centi'], [11, 'EUR', 'nulle eiro un vienpadsmit eiro centi'], [19, 'EUR', 'nulle eiro un deviņpadsmit eiro centi'], [20, 'EUR', 'nulle eiro un divdesmit eiro centi'], [21, 'EUR', 'nulle eiro un divdesmit viens eiro cents'], [25, 'EUR', 'nulle eiro un divdesmit pieci eiro centi'], [30, 'EUR', 'nulle eiro un trīsdesmit eiro centi'], [99, 'EUR', 'nulle eiro un deviņdesmit deviņi eiro centi'], [100, 'EUR', 'viens eiro un nulle eiro centi'], [101, 'EUR', 'viens eiro un viens eiro cents'], [103, 'EUR', 'viens eiro un trīs eiro centi'], [111, 'EUR', 'viens eiro un vienpadsmit eiro centi'], [120, 'EUR', 'viens eiro un divdesmit eiro centi'], [121, 'EUR', 'viens eiro un divdesmit viens eiro cents'], [726, 'EUR', 'septiņi eiro un divdesmit seši eiro centi'], [850, 'EUR', 'astoņi eiro un piecdesmit eiro centi'], [900, 'EUR', 'deviņi eiro un nulle eiro centi'], [919, 'EUR', 'deviņi eiro un deviņpadsmit eiro centi'], [930, 'EUR', 'deviņi eiro un trīsdesmit eiro centi'], [990, 'EUR', 'deviņi eiro un deviņdesmit eiro centi'], [999, 'EUR', 'deviņi eiro un deviņdesmit deviņi eiro centi'], [1000, 'EUR', 'desmit eiro un nulle eiro centi'], [1001, 'EUR', 'desmit eiro un viens eiro cents'], [2000, 'EUR', 'divdesmit eiro un nulle eiro centi'], [3000, 'EUR', 'trīsdesmit eiro un nulle eiro centi'], [3210, 'EUR', 'trīsdesmit divi eiro un desmit eiro centi'], [4000, 'EUR', 'četrdesmit eiro un nulle eiro centi'], [4011, 'EUR', 'četrdesmit eiro un vienpadsmit eiro centi'], [7000, 'EUR', 'septiņdesmit eiro un nulle eiro centi'], [11000, 'EUR', 'simts desmit eiro un nulle eiro centi'], [21000, 'EUR', 'divi simti desmit eiro un nulle eiro centi'], [999000, 'EUR', 'deviņi tūkstoši deviņi simti deviņdesmit eiro un nulle eiro centi'], [999999, 'EUR', 'deviņi tūkstoši deviņi simti deviņdesmit deviņi eiro un deviņdesmit deviņi eiro centi'], [1000000, 'EUR', 'desmit tūkstoši eiro un nulle eiro centi'], [2500001, 'EUR', 'divdesmit pieci tūkstoši eiro un viens eiro cents'], [1174315110, 'EUR', 'vienpadsmit miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un desmit eiro centi'], [1174315119, 'EUR', 'vienpadsmit miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un deviņpadsmit eiro centi'], [15174315110, 'EUR', 'simts piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un desmit eiro centi'], [35174315119, 'EUR', 'trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un deviņpadsmit eiro centi'], [935174315119, 'EUR', 'deviņi miljardi trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un deviņpadsmit eiro centi'], [222935174315119, 'EUR', 'divi triljoni divi simti divdesmit deviņi miljardi trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens eiro un deviņpadsmit eiro centi'], ], [ [0, 'USD', 'nulle dolāri un nulle centi'], [1, 'USD', 'nulle dolāri un viens cents'], [9, 'USD', 'nulle dolāri un deviņi centi'], [10, 'USD', 'nulle dolāri un desmit centi'], [11, 'USD', 'nulle dolāri un vienpadsmit centi'], [19, 'USD', 'nulle dolāri un deviņpadsmit centi'], [20, 'USD', 'nulle dolāri un divdesmit centi'], [21, 'USD', 'nulle dolāri un divdesmit viens cents'], [25, 'USD', 'nulle dolāri un divdesmit pieci centi'], [30, 'USD', 'nulle dolāri un trīsdesmit centi'], [99, 'USD', 'nulle dolāri un deviņdesmit deviņi centi'], [100, 'USD', 'viens dolārs un nulle centi'], [101, 'USD', 'viens dolārs un viens cents'], [103, 'USD', 'viens dolārs un trīs centi'], [111, 'USD', 'viens dolārs un vienpadsmit centi'], [120, 'USD', 'viens dolārs un divdesmit centi'], [121, 'USD', 'viens dolārs un divdesmit viens cents'], [726, 'USD', 'septiņi dolāri un divdesmit seši centi'], [850, 'USD', 'astoņi dolāri un piecdesmit centi'], [900, 'USD', 'deviņi dolāri un nulle centi'], [919, 'USD', 'deviņi dolāri un deviņpadsmit centi'], [930, 'USD', 'deviņi dolāri un trīsdesmit centi'], [990, 'USD', 'deviņi dolāri un deviņdesmit centi'], [999, 'USD', 'deviņi dolāri un deviņdesmit deviņi centi'], [1000, 'USD', 'desmit dolāri un nulle centi'], [1001, 'USD', 'desmit dolāri un viens cents'], [2000, 'USD', 'divdesmit dolāri un nulle centi'], [3000, 'USD', 'trīsdesmit dolāri un nulle centi'], [3210, 'USD', 'trīsdesmit divi dolāri un desmit centi'], [4000, 'USD', 'četrdesmit dolāri un nulle centi'], [4011, 'USD', 'četrdesmit dolāri un vienpadsmit centi'], [7000, 'USD', 'septiņdesmit dolāri un nulle centi'], [11000, 'USD', 'simts desmit dolāri un nulle centi'], [21000, 'USD', 'divi simti desmit dolāri un nulle centi'], [999000, 'USD', 'deviņi tūkstoši deviņi simti deviņdesmit dolāri un nulle centi'], [999999, 'USD', 'deviņi tūkstoši deviņi simti deviņdesmit deviņi dolāri un deviņdesmit deviņi centi'], [1000000, 'USD', 'desmit tūkstoši dolāri un nulle centi'], [2500001, 'USD', 'divdesmit pieci tūkstoši dolāri un viens cents'], [1174315110, 'USD', 'vienpadsmit miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un desmit centi'], [1174315119, 'USD', 'vienpadsmit miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un deviņpadsmit centi'], [15174315110, 'USD', 'simts piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un desmit centi'], [35174315119, 'USD', 'trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un deviņpadsmit centi'], [935174315119, 'USD', 'deviņi miljardi trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un deviņpadsmit centi'], [222935174315119, 'USD', 'divi triljoni divi simti divdesmit deviņi miljardi trīs simti piecdesmit viens miljons septiņi simti četrdesmit trīs tūkstoši simts piecdesmit viens dolārs un deviņpadsmit centi'], ]); } } PK[-^KK=tests/CurrencyTransformer/RomanianCurrencyTransformerTest.phpnu[currencyTransformer = new RomanianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'ROL', 'un leu'], [200, 'ROL', 'doi lei'], [140, 'ROL', 'un leu și patruzeci de bani'], [145, 'ROL', 'un leu și patruzeci și cinci de bani'], [200000, 'ROL', 'două mii de lei'], ]; } } PK[mS<tests/CurrencyTransformer/SpanishCurrencyTransformerTest.phpnu[currencyTransformer = new SpanishCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'PLN', 'un zloty'], [100, 'DOP', 'un peso dominicano'], [200, 'PLN', 'dos zlotys'], [200, 'DOP', 'dos pesos dominicanos'], [500, 'EUR', 'cinco euros'], [10100, 'EUR', 'ciento un euros'], [10100, 'DOP', 'ciento un pesos dominicanos'], [52481, 'CZK', 'quinientos veinticuatro czech korunas con ochenta y un halerzs'], [52481, 'DOP', 'quinientos veinticuatro pesos dominicanos con ochenta y un centavos'], [61500, 'NOK', 'seiscientos quince norwegian krones'], [154552, 'USD', 'mil quinientos cuarenta y cinco dólares con cincuenta y dos centavos'], [304501, 'EUR', 'tres mil cuarenta y cinco euros con un centavo'], [100009633, 'DOP', 'un millón noventa y seis pesos dominicanos con treinta y tres centavos'], [2100000101, 'DOP', 'veintiún millones un pesos dominicanos con un centavo'], [100009633, 'USD', 'un millón noventa y seis dólares con treinta y tres centavos'], [2100000101, 'USD', 'veintiún millones un dólares con un centavo'], ]; } } PK[9s<tests/CurrencyTransformer/EnglishCurrencyTransformerTest.phpnu[currencyTransformer = new EnglishCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [72900, 'USD', 'seven hundred twenty-nine dollars'], [89400, 'USD', 'eight hundred ninety-four dollars'], [99900, 'USD', 'nine hundred ninety-nine dollars'], [100000, 'USD', 'one thousand dollars'], [100100, 'USD', 'one thousand one dollars'], [109725, 'USD', 'one thousand ninety-seven dollars twenty-five cents'], [110400, 'USD', 'one thousand one hundred four dollars'], [124380, 'EUR', 'one thousand two hundred forty-three euros eighty euro-cents'], [238500, 'USD', 'two thousand three hundred eighty-five dollars'], [376600, 'USD', 'three thousand seven hundred sixty-six dollars'], [419645, 'PLN', 'four thousand one hundred ninety-six zlotys forty-five groszs'], [584600, 'USD', 'five thousand eight hundred forty-six dollars'], [645900, 'USD', 'six thousand four hundred fifty-nine dollars'], [723200, 'USD', 'seven thousand two hundred thirty-two dollars'], [123456789, 'XPF', 'one million two hundred thirty-four thousand five hundred sixty-seven CFP francs eighty-nine centimes'], [-72925, 'USD', 'minus seven hundred twenty-nine dollars twenty-five cents'], [-89425, 'USD', 'minus eight hundred ninety-four dollars twenty-five cents'], [-99925, 'USD', 'minus nine hundred ninety-nine dollars twenty-five cents'], ]; } } PK[ov`vv;tests/CurrencyTransformer/GermanCurrencyTransformerTest.phpnu[currencyTransformer = new GermanCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [600, 'EUR', 'sechs Euro'] ]; } } PK[P2RGtests/CurrencyTransformer/PortugeseBrazilianCurrencyTransformerTest.phpnu[currencyTransformer = new PortugueseBrazilianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'BRL', 'um real'], [200, 'USD', 'dois dólares'], [500, 'EUR', 'cinco euros'] ]; } } PK[.O;tests/CurrencyTransformer/PolishCurrencyTransformerTest.phpnu[currencyTransformer = new PolishCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ //[100, 'CZK', 'jedna korona czeska'], [100, 'PLN', 'jeden złoty'], [200, 'PLN', 'dwa złote'], [500, 'PLN', 'pięć złotych'], [52481, 'CZK', 'pięćset dwadzieścia cztery korony czeskie osiemdziesiąt jeden halerzy'], [54000, 'PLN', 'pięćset czterdzieści złotych'], [54100, 'PLN', 'pięćset czterdzieści jeden złotych'], [54200, 'PLN', 'pięćset czterdzieści dwa złote'], [54400, 'PLN', 'pięćset czterdzieści cztery złote'], [54500, 'PLN', 'pięćset czterdzieści pięć złotych'], [54501, 'PLN', 'pięćset czterdzieści pięć złotych jeden grosz'], [54552, 'PLN', 'pięćset czterdzieści pięć złotych pięćdziesiąt dwa grosze'], [54599, 'PLN', 'pięćset czterdzieści pięć złotych dziewięćdziesiąt dziewięć groszy'], [61500, 'NOK', 'sześćset piętnaście koron norweskich'], [154552, 'USD', 'jeden tysiąc pięćset czterdzieści pięć dolarów pięćdziesiąt dwa centy'], [304501, 'EUR', 'trzy tysiące czterdzieści pięć euro jeden eurocent'], ]; } } PK[cc<tests/CurrencyTransformer/RussianCurrencyTransformerTest.phpnu[currencyTransformer = new RussianCurrencyTransformer(); } public function providerItConvertsMoneyAmountToWords() { return [ [100, 'UAH', 'одна гривна'], [200, 'UAH', 'две гривны'], [500, 'UAH', 'пять гривен'], [34000, 'UAH', 'триста сорок гривен'], [34100, 'UAH', 'триста сорок одна гривна'], [34200, 'RUB', 'триста сорок два рубля'], [34400, 'UAH', 'триста сорок четыре гривны'], [34500, 'UAH', 'триста сорок пять гривен'], [34501, 'UAH', 'триста сорок пять гривен одна копейка'], [34552, 'UAH', 'триста сорок пять гривен пятьдесят две копейки'], [34599, 'UAH', 'триста сорок пять гривен девяносто девять копеек'], [234599, 'UAH', 'две тысячи триста сорок пять гривен девяносто девять копеек'], // rubles (RUB) [-2100, 'RUB', 'минус двадцать один рубль'], [-2125, 'RUB', 'минус двадцать один рубль двадцать пять копеек'], [0, 'RUB', 'ноль рублей'], [53, 'RUB', 'пятьдесят три копейки'], [100, 'RUB', 'один рубль'], [103, 'RUB', 'один рубль три копейки'], [300, 'RUB', 'три рубля'], [301, 'RUB', 'три рубля одна копейка'], [800, 'RUB', 'восемь рублей'], [802, 'RUB', 'восемь рублей две копейки'], [900, 'RUB', 'девять рублей'], [992, 'RUB', 'девять рублей девяносто две копейки'], [1000, 'RUB', 'десять рублей'], [1100, 'RUB', 'одиннадцать рублей'], [1116, 'RUB', 'одиннадцать рублей шестнадцать копеек'], [1200, 'RUB', 'двенадцать рублей'], [1900, 'RUB', 'девятнадцать рублей'], [2000, 'RUB', 'двадцать рублей'], [2100, 'RUB', 'двадцать один рубль'], [2500, 'RUB', 'двадцать пять рублей'], [5000, 'RUB', 'пятьдесят рублей'], [5800, 'RUB', 'пятьдесят восемь рублей'], [9000, 'RUB', 'девяносто рублей'], [9900, 'RUB', 'девяносто девять рублей'], [10000, 'RUB', 'сто рублей'], [10100, 'RUB', 'сто один рубль'], [10200, 'RUB', 'сто два рубля'], [11100, 'RUB', 'сто одиннадцать рублей'], [11300, 'RUB', 'сто тринадцать рублей'], [12000, 'RUB', 'сто двадцать рублей'], [12100, 'RUB', 'сто двадцать один рубль'], [22900, 'RUB', 'двести двадцать девять рублей'], [50000, 'RUB', 'пятьсот рублей'], [66000, 'RUB', 'шестьсот шестьдесят рублей'], [66600, 'RUB', 'шестьсот шестьдесят шесть рублей'], [90000, 'RUB', 'девятьсот рублей'], [90900, 'RUB', 'девятьсот девять рублей'], [91900, 'RUB', 'девятьсот девятнадцать рублей'], [99000, 'RUB', 'девятьсот девяносто рублей'], [99900, 'RUB', 'девятьсот девяносто девять рублей'], [100000, 'RUB', 'одна тысяча рублей'], [100100, 'RUB', 'одна тысяча один рубль'], [101000, 'RUB', 'одна тысяча десять рублей'], [101500, 'RUB', 'одна тысяча пятнадцать рублей'], [110000, 'RUB', 'одна тысяча сто рублей'], [111100, 'RUB', 'одна тысяча сто одиннадцать рублей'], [200000, 'RUB', 'две тысячи рублей'], [400000, 'RUB', 'четыре тысячи рублей'], [453800, 'RUB', 'четыре тысячи пятьсот тридцать восемь рублей'], [500000, 'RUB', 'пять тысяч рублей'], [502000, 'RUB', 'пять тысяч двадцать рублей'], [770000, 'RUB', 'семь тысяч семьсот рублей'], [1100000, 'RUB', 'одиннадцать тысяч рублей'], [1100100, 'RUB', 'одиннадцать тысяч один рубль'], [2100000, 'RUB', 'двадцать одна тысяча рублей'], [2151200, 'RUB', 'двадцать одна тысяча пятьсот двенадцать рублей'], [9000000, 'RUB', 'девяносто тысяч рублей'], [9210000, 'RUB', 'девяносто две тысячи сто рублей'], [21211200, 'RUB', 'двести двенадцать тысяч сто двенадцать рублей'], [72001800, 'RUB', 'семьсот двадцать тысяч восемнадцать рублей'], [99900000, 'RUB', 'девятьсот девяносто девять тысяч рублей'], [99999900, 'RUB', 'девятьсот девяносто девять тысяч девятьсот девяносто девять рублей'], [100000000, 'RUB', 'один миллион рублей'], [100100100, 'RUB', 'один миллион одна тысяча один рубль'], [200000000, 'RUB', 'два миллиона рублей'], [324851800, 'RUB', 'три миллиона двести сорок восемь тысяч пятьсот восемнадцать рублей'], [400000000, 'RUB', 'четыре миллиона рублей'], [500000000, 'RUB', 'пять миллионов рублей'], [99900000000, 'RUB', 'девятьсот девяносто девять миллионов рублей'], [99900099900, 'RUB', 'девятьсот девяносто девять миллионов девятьсот девяносто девять рублей'], [99999900000, 'RUB', 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч рублей'], [99999999900, 'RUB', 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять рублей'], [117431511000, 'RUB', 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять рублей'], [117431511900, 'RUB', 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать рублей'], [1517431511000, 'RUB', 'пятнадцать миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять рублей'], [3517431511900, 'RUB', 'тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать рублей'], [93517431511900, 'RUB', 'девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать рублей'], [293517431511900, 'RUB', 'два триллиона девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать рублей'], // russian rubles (RUR) [-2100, 'RUR', 'минус двадцать один российский рубль'], [0, 'RUR', 'ноль российских рублей'], [53, 'RUR', 'пятьдесят три копейки'], [100, 'RUR', 'один российский рубль'], [101, 'RUR', 'один российский рубль одна копейка'], [300, 'RUR', 'три российских рубля'], [303, 'RUR', 'три российских рубля три копейки'], [800, 'RUR', 'восемь российских рублей'], [833, 'RUR', 'восемь российских рублей тридцать три копейки'], [900, 'RUR', 'девять российских рублей'], [999, 'RUR', 'девять российских рублей девяносто девять копеек'], [1000, 'RUR', 'десять российских рублей'], [1057, 'RUR', 'десять российских рублей пятьдесят семь копеек'], [1100, 'RUR', 'одиннадцать российских рублей'], [1200, 'RUR', 'двенадцать российских рублей'], [1900, 'RUR', 'девятнадцать российских рублей'], [2000, 'RUR', 'двадцать российских рублей'], [2100, 'RUR', 'двадцать один российский рубль'], [2500, 'RUR', 'двадцать пять российских рублей'], [5000, 'RUR', 'пятьдесят российских рублей'], [5800, 'RUR', 'пятьдесят восемь российских рублей'], [9000, 'RUR', 'девяносто российских рублей'], [9900, 'RUR', 'девяносто девять российских рублей'], [10000, 'RUR', 'сто российских рублей'], [10100, 'RUR', 'сто один российский рубль'], [10200, 'RUR', 'сто два российских рубля'], [11100, 'RUR', 'сто одиннадцать российских рублей'], [11300, 'RUR', 'сто тринадцать российских рублей'], [12000, 'RUR', 'сто двадцать российских рублей'], [12100, 'RUR', 'сто двадцать один российский рубль'], [22900, 'RUR', 'двести двадцать девять российских рублей'], [50000, 'RUR', 'пятьсот российских рублей'], [66000, 'RUR', 'шестьсот шестьдесят российских рублей'], [66600, 'RUR', 'шестьсот шестьдесят шесть российских рублей'], [90000, 'RUR', 'девятьсот российских рублей'], [90900, 'RUR', 'девятьсот девять российских рублей'], [91900, 'RUR', 'девятьсот девятнадцать российских рублей'], [99000, 'RUR', 'девятьсот девяносто российских рублей'], [99900, 'RUR', 'девятьсот девяносто девять российских рублей'], [100000, 'RUR', 'одна тысяча российских рублей'], [100100, 'RUR', 'одна тысяча один российский рубль'], [101000, 'RUR', 'одна тысяча десять российских рублей'], [101500, 'RUR', 'одна тысяча пятнадцать российских рублей'], [110000, 'RUR', 'одна тысяча сто российских рублей'], [111100, 'RUR', 'одна тысяча сто одиннадцать российских рублей'], [200000, 'RUR', 'две тысячи российских рублей'], [400000, 'RUR', 'четыре тысячи российских рублей'], [453800, 'RUR', 'четыре тысячи пятьсот тридцать восемь российских рублей'], [500000, 'RUR', 'пять тысяч российских рублей'], [502000, 'RUR', 'пять тысяч двадцать российских рублей'], [770000, 'RUR', 'семь тысяч семьсот российских рублей'], [1100000, 'RUR', 'одиннадцать тысяч российских рублей'], [1100100, 'RUR', 'одиннадцать тысяч один российский рубль'], [2100000, 'RUR', 'двадцать одна тысяча российских рублей'], [2151200, 'RUR', 'двадцать одна тысяча пятьсот двенадцать российских рублей'], [9000000, 'RUR', 'девяносто тысяч российских рублей'], [9210000, 'RUR', 'девяносто две тысячи сто российских рублей'], [21211200, 'RUR', 'двести двенадцать тысяч сто двенадцать российских рублей'], [72001800, 'RUR', 'семьсот двадцать тысяч восемнадцать российских рублей'], [99900000, 'RUR', 'девятьсот девяносто девять тысяч российских рублей'], [99999900, 'RUR', 'девятьсот девяносто девять тысяч девятьсот девяносто девять российских рублей'], [100000000, 'RUR', 'один миллион российских рублей'], [100100100, 'RUR', 'один миллион одна тысяча один российский рубль'], [200000000, 'RUR', 'два миллиона российских рублей'], [324851800, 'RUR', 'три миллиона двести сорок восемь тысяч пятьсот восемнадцать российских рублей'], [400000000, 'RUR', 'четыре миллиона российских рублей'], [500000000, 'RUR', 'пять миллионов российских рублей'], [99900000000, 'RUR', 'девятьсот девяносто девять миллионов российских рублей'], [99900099900, 'RUR', 'девятьсот девяносто девять миллионов девятьсот девяносто девять российских рублей'], [99999900000, 'RUR', 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч российских рублей'], [99999999900, 'RUR', 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять российских рублей'], [117431511000, 'RUR', 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять российских рублей'], [117431511900, 'RUR', 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать российских рублей'], [1517431511000, 'RUR', 'пятнадцать миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять российских рублей'], [3517431511900, 'RUR', 'тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать российских рублей'], [93517431511900, 'RUR', 'девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать российских рублей'], [293517431511900, 'RUR', 'два триллиона девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать российских рублей'], [100, 'TRY', 'одна турецкая лира'], [200, 'TRY', 'две турецкие лиры'], [500, 'TRY', 'пять турецких лир'], [34000, 'TRY', 'триста сорок турецких лир'], [34100, 'TRY', 'триста сорок одна турецкая лира'], [34200, 'TRY', 'триста сорок две турецкие лиры'], [34400, 'TRY', 'триста сорок четыре турецкие лиры'], [34500, 'TRY', 'триста сорок пять турецких лир'], [34552, 'TRY', 'триста сорок пять турецких лир пятьдесят два куруша'], [34501, 'TRY', 'триста сорок пять турецких лир один куруш'], [34599, 'TRY', 'триста сорок пять турецких лир девяносто девять курушей'], [100, 'SGD', 'один сингапурский доллар'], [200, 'SGD', 'два сингапурских доллара'], [500, 'SGD', 'пять сингапурских долларов'], [34000, 'SGD', 'триста сорок сингапурских долларов'], [34100, 'SGD', 'триста сорок один сингапурский доллар'], [34200, 'SGD', 'триста сорок два сингапурских доллара'], [34400, 'SGD', 'триста сорок четыре сингапурских доллара'], [34500, 'SGD', 'триста сорок пять сингапурских долларов'], [34552, 'SGD', 'триста сорок пять сингапурских долларов пятьдесят два цента'], [34501, 'SGD', 'триста сорок пять сингапурских долларов один цент'], [34599, 'SGD', 'триста сорок пять сингапурских долларов девяносто девять центов'], [100, 'NZD', 'один новозеландский доллар'], [200, 'NZD', 'два новозеландских доллара'], [500, 'NZD', 'пять новозеландских долларов'], [34000, 'NZD', 'триста сорок новозеландских долларов'], [34100, 'NZD', 'триста сорок один новозеландский доллар'], [34200, 'NZD', 'триста сорок два новозеландских доллара'], [34400, 'NZD', 'триста сорок четыре новозеландских доллара'], [34500, 'NZD', 'триста сорок пять новозеландских долларов'], [34552, 'NZD', 'триста сорок пять новозеландских долларов пятьдесят два цента'], [34501, 'NZD', 'триста сорок пять новозеландских долларов один цент'], [34599, 'NZD', 'триста сорок пять новозеландских долларов девяносто девять центов'], [100, 'MDL', 'один молдавский лей'], [200, 'MDL', 'два молдавских лея'], [500, 'MDL', 'пять молдавских леев'], [34000, 'MDL', 'триста сорок молдавских леев'], [34100, 'MDL', 'триста сорок один молдавский лей'], [34200, 'MDL', 'триста сорок два молдавских лея'], [34400, 'MDL', 'триста сорок четыре молдавских лея'], [34500, 'MDL', 'триста сорок пять молдавских леев'], [34552, 'MDL', 'триста сорок пять молдавских леев пятьдесят два баня'], [34501, 'MDL', 'триста сорок пять молдавских леев один бань'], [34599, 'MDL', 'триста сорок пять молдавских леев девяносто девять баней'], [100, 'CNY', 'один китайский юань'], [200, 'CNY', 'два китайских юаня'], [300, 'CNY', 'три китайских юаня'], [500, 'CNY', 'пять китайских юаней'], [34000, 'CNY', 'триста сорок китайских юаней'], [34100, 'CNY', 'триста сорок один китайский юань'], [34200, 'CNY', 'триста сорок два китайских юаня'], [34400, 'CNY', 'триста сорок четыре китайских юаня'], [34500, 'CNY', 'триста сорок пять китайских юаней'], [34552, 'CNY', 'триста сорок пять китайских юаней пятьдесят два фыня'], [34501, 'CNY', 'триста сорок пять китайских юаней один фынь'], [34599, 'CNY', 'триста сорок пять китайских юаней девяносто девять фыней'], [100, 'SGD', 'один сингапурский доллар'], [200, 'SGD', 'два сингапурских доллара'], [300, 'SGD', 'три сингапурских доллара'], [500, 'SGD', 'пять сингапурских долларов'], [34000, 'SGD', 'триста сорок сингапурских долларов'], [34100, 'SGD', 'триста сорок один сингапурский доллар'], [34200, 'SGD', 'триста сорок два сингапурских доллара'], [34400, 'SGD', 'триста сорок четыре сингапурских доллара'], [34500, 'SGD', 'триста сорок пять сингапурских долларов'], [34552, 'SGD', 'триста сорок пять сингапурских долларов пятьдесят два цента'], [34501, 'SGD', 'триста сорок пять сингапурских долларов один цент'], [34599, 'SGD', 'триста сорок пять сингапурских долларов девяносто девять центов'], [100, 'UZS', 'один сум'], [200, 'UZS', 'два сума'], [300, 'UZS', 'три сума'], [500, 'UZS', 'пять сумов'], [34000, 'UZS', 'триста сорок сумов'], [34100, 'UZS', 'триста сорок один сум'], [34200, 'UZS', 'триста сорок два сума'], [34400, 'UZS', 'триста сорок четыре сума'], [34500, 'UZS', 'триста сорок пять сумов'], [34552, 'UZS', 'триста сорок пять сумов пятьдесят два тийина'], [34501, 'UZS', 'триста сорок пять сумов один тийин'], [34599, 'UZS', 'триста сорок пять сумов девяносто девять тийинов'], ]; } } PK[Y!<<tests/NumberToWordsTest.phpnu[setExpectedException(\InvalidArgumentException::class); $numberToWords = new NumberToWords(); $numberToWords->getNumberTransformer('xx'); } public function testItThrowsExceptionIfCurrencyTransformerDoesNotExist() { $this->setExpectedException(\InvalidArgumentException::class); $numberToWords = new NumberToWords(); $numberToWords->getCurrencyTransformer('xx'); } public function testItReturnsNumberTransformer() { $numberToWords = new NumberToWords(); $numberToWordsTransformer = $numberToWords->getNumberTransformer('en'); Assert::assertInstanceOf(NumberTransformer::class, $numberToWordsTransformer); } public function testItReturnsCurrencyTransformer() { $numberToWords = new NumberToWords(); $numberToWordsTransformer = $numberToWords->getCurrencyTransformer('en'); Assert::assertInstanceOf(CurrencyTransformer::class, $numberToWordsTransformer); } } PK[Y`v/tests/Service/NumberToTripletsConverterTest.phpnu[convertToTriplets($number); self::assertEquals($expectedArray, $triplets); } public function providerItConvertsNumberToTriplets() { return [ [123, [123]], [1234, [1, 234]], [22333, [22, 333]], [1222333, [1, 222, 333]], [111222333444, [111, 222, 333, 444]], ]; } } PK[=Dtests/NumberTransformer/PortugueseBrazilianNumberTransformerTest.phpnu[numberTransformer = new PortugueseBrazilianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'zero'], [1, 'um'], [2, 'dois'], [3, 'três'], [4, 'quatro'], [5, 'cinco'], [6, 'seis'], [7, 'sete'], [8, 'oito'], [9, 'nove'], [10, 'dez'], [11, 'onze'], [12, 'doze'], [16, 'dezesseis'], [19, 'dezenove'], [20, 'vinte'], [21, 'vinte e um'], [26, 'vinte e seis'], [30, 'trinta'], [31, 'trinta e um'], [40, 'quarenta'], [43, 'quarenta e três'], [50, 'cinquenta'], [55, 'cinquenta e cinco'], [60, 'sessenta'], [67, 'sessenta e sete'], [70, 'setenta'], [79, 'setenta e nove'], [80, 'oitenta'], [90, 'noventa'], [99, 'noventa e nove'], [100, 'cem'], [101, 'cento e um'], [111, 'cento e onze'], [120, 'cento e vinte'], [121, 'cento e vinte e um'], [151, 'cento e cinquenta e um'], [199, 'cento e noventa e nove'], [203, 'duzentos e três'], [287, 'duzentos e oitenta e sete'], [300, 'trezentos'], [356, 'trezentos e cinquenta e seis'], [410, 'quatrocentos e dez'], [434, 'quatrocentos e trinta e quatro'], [578, 'quinhentos e setenta e oito'], [689, 'seiscentos e oitenta e nove'], [717, 'setecentos e dezessete'], [729, 'setecentos e vinte e nove'], [800, 'oitocentos'], [894, 'oitocentos e noventa e quatro'], [900, 'novecentos'], [909, 'novecentos e nove'], [919, 'novecentos e dezenove'], [990, 'novecentos e noventa'], [999, 'novecentos e noventa e nove'], [1000, 'um mil'], [1001, 'um mil e um'], [1097, 'um mil e noventa e sete'], [1104, 'um mil cento e quatro'], [1243, 'um mil duzentos e quarenta e três'], [2000, 'dois mil'], [2200, 'dois mil e duzentos'], [2385, 'dois mil trezentos e oitenta e cinco'], [3766, 'três mil setecentos e sessenta e seis'], [4000, 'quatro mil'], [4196, 'quatro mil cento e noventa e seis'], [5000, 'cinco mil'], [5846, 'cinco mil oitocentos e quarenta e seis'], [6459, 'seis mil quatrocentos e cinquenta e nove'], [7232, 'sete mil duzentos e trinta e dois'], [8569, 'oito mil quinhentos e sessenta e nove'], [9539, 'nove mil quinhentos e trinta e nove'], [11000, 'onze mil'], [21000, 'vinte e um mil'], [999000, 'novecentos e noventa e nove mil'], [999999, 'novecentos e noventa e nove mil novecentos e noventa e nove'], [1000000, 'um milhão'], [1000001, 'um milhão e um'], [2000000, 'dois milhões'], [2000025, 'dois milhões e vinte e cinco'], [4000000, 'quatro milhões'], [5000000, 'cinco milhões'], [5015004, 'cinco milhões quinze mil e quatro'], [5100000, 'cinco milhões e cem mil'], [5123000, 'cinco milhões cento e vinte e três mil'], [7100100, 'sete milhões cem mil e cem'], [8000016, 'oito milhões e dezesseis'], [8100345, 'oito milhões cem mil trezentos e quarenta e cinco'], [100000001, 'cem milhões e um'], [345199054, 'trezentos e quarenta e cinco milhões cento e noventa e nove mil e cinquenta e quatro'], [999000000, 'novecentos e noventa e nove milhões'], [999000999, 'novecentos e noventa e nove milhões novecentos e noventa e nove'], [999999000, 'novecentos e noventa e nove milhões novecentos e noventa e nove mil'], [999999999, 'novecentos e noventa e nove milhões novecentos e noventa e nove mil novecentos e noventa e nove'], [1000077000, 'um bilhão e setenta e sete mil'], [1000777000, 'um bilhão setecentos e setenta e sete mil'], [1174315110, 'um bilhão cento e setenta e quatro milhões trezentos e quinze mil cento e dez'], [1174315119, 'um bilhão cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], [15174315119, 'quinze bilhões cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], [35174315119, 'trinta e cinco bilhões cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], [935174315119, 'novecentos e trinta e cinco bilhões cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], [2935174315119, 'dois trilhões novecentos e trinta e cinco bilhões cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], [5492935174315119, 'cinco quatrilhões quatrocentos e noventa e dois trilhões novecentos e trinta e cinco bilhões cento e setenta e quatro milhões trezentos e quinze mil cento e dezenove'], ]; } } PK[Z¼7tests/NumberTransformer/GermanNumberTransformerTest.phpnu[numberTransformer = new GermanNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'null'], [1, 'eins'], [2, 'zwei'], [3, 'drei'], [4, 'vier'], [5, 'fünf'], [6, 'sechs'], [7, 'sieben'], [8, 'acht'], [9, 'neun'], [10, 'zehn'], [11, 'elf'], [11, 'elf'], [12, 'zwölf'], [16, 'sechzehn'], [19, 'neunzehn'], [20, 'zwanzig'], [21, 'einundzwanzig'], [26, 'sechsundzwanzig'], [30, 'dreißig'], [31, 'einunddreißig'], [40, 'vierzig'], [43, 'dreiundvierzig'], [50, 'fünfzig'], [55, 'fünfundfünfzig'], [60, 'sechzig'], [67, 'siebenundsechzig'], [70, 'siebzig'], [79, 'neunundsiebzig'], [80, 'achtzig'], [90, 'neunzig'], [99, 'neunundneunzig'], [100, 'einhundert'], [101, 'einhunderteins'], [111, 'einhundertelf'], [120, 'einhundertzwanzig'], [121, 'einhunderteinundzwanzig'], [199, 'einhundertneunundneunzig'], [203, 'zweihundertdrei'], [287, 'zweihundertsiebenundachtzig'], [300, 'dreihundert'], [356, 'dreihundertsechsundfünfzig'], [410, 'vierhundertzehn'], [434, 'vierhundertvierunddreißig'], [578, 'fünfhundertachtundsiebzig'], [689, 'sechshundertneunundachtzig'], [729, 'siebenhundertneunundzwanzig'], [894, 'achthundertvierundneunzig'], [900, 'neunhundert'], [909, 'neunhundertneun'], [919, 'neunhundertneunzehn'], [990, 'neunhundertneunzig'], [999, 'neunhundertneunundneunzig'], [1000, 'eintausend'], [1001, 'eintausendeins'], [1097, 'eintausendsiebenundneunzig'], [1104, 'eintausendeinhundertvier'], [1243, 'eintausendzweihundertdreiundvierzig'], [2000, 'zweitausend'], [2385, 'zweitausenddreihundertfünfundachtzig'], [3766, 'dreitausendsiebenhundertsechsundsechzig'], [4000, 'viertausend'], [4196, 'viertausendeinhundertsechsundneunzig'], [5000, 'fünftausend'], [5846, 'fünftausendachthundertsechsundvierzig'], [6459, 'sechstausendvierhundertneunundfünfzig'], [7232, 'siebentausendzweihundertzweiunddreißig'], [8569, 'achttausendfünfhundertneunundsechzig'], [9539, 'neuntausendfünfhundertneununddreißig'], [11000, 'elftausend'], [21000, 'einundzwanzigtausend'], [999000, 'neunhundertneunundneunzigtausend'], [999999, 'neunhundertneunundneunzigtausendneunhundertneunundneunzig'], [1000000, 'eine Million'], [2000000, 'zwei Millionen'], [4000000, 'vier Millionen'], [5000000, 'fünf Millionen'], [999000000, 'neunhundertneunundneunzig Millionen'], [999000999, 'neunhundertneunundneunzig Millionen neunhundertneunundneunzig'], [999999000, 'neunhundertneunundneunzig Millionen neunhundertneunundneunzigtausend'], [999999999, 'neunhundertneunundneunzig Millionen neunhundertneunundneunzigtausendneunhundertneunundneunzig'], [1174315110, 'eine Milliarde einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertzehn'], [1174315119, 'eine Milliarde einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertneunzehn'], [15174315119, 'fünfzehn Milliarden einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertneunzehn'], [35174315119, 'fünfunddreißig Milliarden einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertneunzehn'], [935174315119, 'neunhundertfünfunddreißig Milliarden einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertneunzehn'], [2935174315119, 'zwei Billionen neunhundertfünfunddreißig Milliarden einhundertvierundsiebzig Millionen dreihundertfünfzehntausendeinhundertneunzehn'], ]; } } PK[P0 8tests/NumberTransformer/TurkmenNumberTransformerTest.phpnu[numberTransformer = new TurkmenNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-21, 'minus ýigrimi bir'], [-1174315110, 'minus bir milliard bir ýüz ýetmiş dört million üç ýüz on bäş müň bir ýüz on'], [0, 'nol'], [1, 'bir'], [3, 'üç'], [8, 'sekiz'], [9, 'dokuz'], [10, 'on'], [11, 'on bir'], [12, 'on iki'], [19, 'on dokuz'], [20, 'ýigrimi'], [20, 'ýigrimi'], [21, 'ýigrimi bir'], [25, 'ýigrimi bäş'], [50, 'elli'], [58, 'elli sekiz'], [90, 'togsan'], [99, 'togsan dokuz'], [100, 'bir ýüz'], [101, 'bir ýüz bir'], [102, 'bir ýüz iki'], [111, 'bir ýüz on bir'], [113, 'bir ýüz on üç'], [120, 'bir ýüz ýigrimi'], [121, 'bir ýüz ýigrimi bir'], [229, 'iki ýüz ýigrimi dokuz'], [500, 'bäş ýüz'], [660, 'alty ýüz altmyş'], [666, 'alty ýüz altmyş alty'], [900, 'dokuz ýüz'], [909, 'dokuz ýüz dokuz'], [919, 'dokuz ýüz on dokuz'], [990, 'dokuz ýüz togsan'], [999, 'dokuz ýüz togsan dokuz'], [1000, 'bir müň'], [1001, 'bir müň bir'], [1010, 'bir müň on'], [1015, 'bir müň on bäş'], [1100, 'bir müň bir ýüz'], [1111, 'bir müň bir ýüz on bir'], [2000, 'iki müň'], [4000, 'dört müň'], [4538, 'dört müň bäş ýüz otuz sekiz'], [5000, 'bäş müň'], [5020, 'bäş müň ýigrimi'], [11000, 'on bir müň'], [11001, 'on bir müň bir'], [21000, 'ýigrimi bir müň'], [21512, 'ýigrimi bir müň bäş ýüz on iki'], [90000, 'togsan müň'], [92100, 'togsan iki müň bir ýüz'], [212112, 'iki ýüz on iki müň bir ýüz on iki'], [720018, 'ýedi ýüz ýigrimi müň on sekiz'], [999000, 'dokuz ýüz togsan dokuz müň'], [999999, 'dokuz ýüz togsan dokuz müň dokuz ýüz togsan dokuz'], [1000000, 'bir million'], [1001001, 'bir million bir müň bir'], [2000000, 'iki million'], [3248518, 'üç million iki ýüz kyrk sekiz müň bäş ýüz on sekiz'], [4000000, 'dört million'], [5000000, 'bäş million'], [999000000, 'dokuz ýüz togsan dokuz million'], [999000999, 'dokuz ýüz togsan dokuz million dokuz ýüz togsan dokuz'], [999999000, 'dokuz ýüz togsan dokuz million dokuz ýüz togsan dokuz müň'], [999999999, 'dokuz ýüz togsan dokuz million dokuz ýüz togsan dokuz müň dokuz ýüz togsan dokuz'], ]; } } PK[778tests/NumberTransformer/SpanishNumberTransformerTest.phpnu[numberTransformer = new SpanishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-12, 'menos doce'], [0, 'cero'], [1, 'uno'], [2, 'dos'], [3, 'tres'], [4, 'cuatro'], [5, 'cinco'], [6, 'seis'], [7, 'siete'], [8, 'ocho'], [9, 'nueve'], [10, 'diez'], [11, 'once'], [12, 'doce'], [16, 'dieciseis'], // should be dieciséis [19, 'diecinueve'], [20, 'veinte'], [21, 'veintiuno'], [22, 'veintidos'], // should be veintidós [23, 'veintitres'], // should be veintitrés [26, 'veintiseis'], // should be veintiséis [30, 'treinta'], [31, 'treinta y uno'], [40, 'cuarenta'], [43, 'cuarenta y tres'], [50, 'cincuenta'], [55, 'cincuenta y cinco'], [60, 'sesenta'], [67, 'sesenta y siete'], [70, 'setenta'], [79, 'setenta y nueve'], [80, 'ochenta'], [90, 'noventa'], [99, 'noventa y nueve'], [100, 'cien'], [101, 'ciento uno'], [111, 'ciento once'], [120, 'ciento veinte'], [121, 'ciento veintiuno'], [199, 'ciento noventa y nueve'], [203, 'doscientos tres'], [287, 'doscientos ochenta y siete'], [300, 'trescientos'], [356, 'trescientos cincuenta y seis'], [410, 'cuatrocientos diez'], [434, 'cuatrocientos treinta y cuatro'], [578, 'quinientos setenta y ocho'], [689, 'seiscientos ochenta y nueve'], [729, 'setecientos veintinueve'], [894, 'ochocientos noventa y cuatro'], [900, 'novecientos'], [909, 'novecientos nueve'], [919, 'novecientos diecinueve'], [990, 'novecientos noventa'], [999, 'novecientos noventa y nueve'], [1000, 'mil'], [1001, 'mil uno'], [1097, 'mil noventa y siete'], [1104, 'mil ciento cuatro'], [1243, 'mil doscientos cuarenta y tres'], [2000, 'dos mil'], [2385, 'dos mil trescientos ochenta y cinco'], [3766, 'tres mil setecientos sesenta y seis'], [4000, 'cuatro mil'], [4196, 'cuatro mil ciento noventa y seis'], [5000, 'cinco mil'], [5846, 'cinco mil ochocientos cuarenta y seis'], [6459, 'seis mil cuatrocientos cincuenta y nueve'], [7232, 'siete mil doscientos treinta y dos'], [8569, 'ocho mil quinientos sesenta y nueve'], [9539, 'nueve mil quinientos treinta y nueve'], [11000, 'once mil'], [21000, 'veintiún mil'], [21021, 'veintiún mil veintiuno'], [999000, 'novecientos noventa y nueve mil'], [999999, 'novecientos noventa y nueve mil novecientos noventa y nueve'], [1000000, 'un millón'], [2000000, 'dos millones'], [4000000, 'cuatro millones'], [5000000, 'cinco millones'], [999000000, 'novecientos noventa y nueve millones'], [999000999, 'novecientos noventa y nueve millones novecientos noventa y nueve'], [999999000, 'novecientos noventa y nueve millones novecientos noventa y nueve mil'], [999999999, 'novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve'], [1000000000, 'mil millones'], [1174315110, 'mil ciento setenta y cuatro millones trescientos quince mil ciento diez'], [1174315119, 'mil ciento setenta y cuatro millones trescientos quince mil ciento diecinueve'], [15174315119, 'quince mil ciento setenta y cuatro millones trescientos quince mil ciento diecinueve'], [35174315119, 'treinta y cinco mil ciento setenta y cuatro millones trescientos quince mil ciento diecinueve'], [935174315119, 'novecientos treinta y cinco mil ciento setenta y cuatro millones trescientos quince mil ciento diecinueve'], [2935174315119, 'dos billones novecientos treinta y cinco mil ciento setenta y cuatro millones trescientos quince mil ciento diecinueve'], ]; } } PK[&;7tests/NumberTransformer/PolishNumberTransformerTest.phpnu[numberTransformer = new PolishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-5, 'minus pięć'], [-128, 'minus sto dwadzieścia osiem'], [0, 'zero'], [1, 'jeden'], [2, 'dwa'], [3, 'trzy'], [4, 'cztery'], [5, 'pięć'], [6, 'sześć'], [7, 'siedem'], [8, 'osiem'], [9, 'dziewięć'], [10, 'dziesięć'], [11, 'jedenaście'], [12, 'dwanaście'], [14, 'czternaście'], [16, 'szesnaście'], [19, 'dziewiętnaście'], [20, 'dwadzieścia'], [21, 'dwadzieścia jeden'], [25, 'dwadzieścia pięć'], [26, 'dwadzieścia sześć'], [30, 'trzydzieści'], [31, 'trzydzieści jeden'], [40, 'czterdzieści'], [43, 'czterdzieści trzy'], [50, 'pięćdziesiąt'], [55, 'pięćdziesiąt pięć'], [58, 'pięćdziesiąt osiem'], [60, 'sześćdziesiąt'], [67, 'sześćdziesiąt siedem'], [70, 'siedemdziesiąt'], [79, 'siedemdziesiąt dziewięć'], [90, 'dziewięćdziesiąt'], [99, 'dziewięćdziesiąt dziewięć'], [100, 'sto'], [101, 'sto jeden'], [102, 'sto dwa'], [113, 'sto trzynaście'], [199, 'sto dziewięćdziesiąt dziewięć'], [203, 'dwieście trzy'], [229, 'dwieście dwadzieścia dziewięć'], [287, 'dwieście osiemdziesiąt siedem'], [300, 'trzysta'], [356, 'trzysta pięćdziesiąt sześć'], [410, 'czterysta dziesięć'], [434, 'czterysta trzydzieści cztery'], [500, 'pięćset'], [578, 'pięćset siedemdziesiąt osiem'], [660, 'sześćset sześćdziesiąt'], [666, 'sześćset sześćdziesiąt sześć'], [689, 'sześćset osiemdziesiąt dziewięć'], [729, 'siedemset dwadzieścia dziewięć'], [894, 'osiemset dziewięćdziesiąt cztery'], [999, 'dziewięćset dziewięćdziesiąt dziewięć'], [1000, 'jeden tysiąc'], [1001, 'jeden tysiąc jeden'], [1010, 'jeden tysiąc dziesięć'], [1015, 'jeden tysiąc piętnaście'], [1097, 'jeden tysiąc dziewięćdziesiąt siedem'], [1100, 'jeden tysiąc sto'], [1104, 'jeden tysiąc sto cztery'], [1111, 'jeden tysiąc sto jedenaście'], [1243, 'jeden tysiąc dwieście czterdzieści trzy'], [2385, 'dwa tysiące trzysta osiemdziesiąt pięć'], [3766, 'trzy tysiące siedemset sześćdziesiąt sześć'], [4196, 'cztery tysiące sto dziewięćdziesiąt sześć'], [4538, 'cztery tysiące pięćset trzydzieści osiem'], [5020, 'pięć tysięcy dwadzieścia'], [5846, 'pięć tysięcy osiemset czterdzieści sześć'], [6459, 'sześć tysięcy czterysta pięćdziesiąt dziewięć'], [7232, 'siedem tysięcy dwieście trzydzieści dwa'], [8569, 'osiem tysięcy pięćset sześćdziesiąt dziewięć'], [9539, 'dziewięć tysięcy pięćset trzydzieści dziewięć'], [11001, 'jedenaście tysięcy jeden'], [21512, 'dwadzieścia jeden tysięcy pięćset dwanaście'], [90000, 'dziewięćdziesiąt tysięcy'], [92100, 'dziewięćdziesiąt dwa tysiące sto'], [212112, 'dwieście dwanaście tysięcy sto dwanaście'], [720018, 'siedemset dwadzieścia tysięcy osiemnaście'], [1001001, 'jeden milion jeden tysiąc jeden'], [3248518, 'trzy miliony dwieście czterdzieści osiem tysięcy pięćset osiemnaście'], [247000000000, 'dwieście czterdzieści siedem miliardów'], ]; } } PK[H1! 8tests/NumberTransformer/LatvianNumberTransformerTest.phpnu[numberTransformer = new LatvianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'nulle'], [1, 'viens'], [9, 'deviņi'], [10, 'desmit'], [11, 'vienpadsmit'], [19, 'deviņpadsmit'], [20, 'divdesmit'], [21, 'divdesmit viens'], [90, 'deviņdesmit'], [99, 'deviņdesmit deviņi'], [100, 'simts'], [101, 'simts viens'], [111, 'simts vienpadsmit'], [120, 'simts divdesmit'], [121, 'simts divdesmit viens'], [900, 'deviņi simti'], [909, 'deviņi simti deviņi'], [919, 'deviņi simti deviņpadsmit'], [990, 'deviņi simti deviņdesmit'], [999, 'deviņi simti deviņdesmit deviņi'], [1000, 'viens tūkstotis'], [2000, 'divi tūkstoši'], [4000, 'četri tūkstoši'], [5000, 'pieci tūkstoši'], [11000, 'vienpadsmit tūkstoši'], [21000, 'divdesmit viens tūkstotis'], [999000, 'deviņi simti deviņdesmit deviņi tūkstoši'], [999999, 'deviņi simti deviņdesmit deviņi tūkstoši deviņi simti deviņdesmit deviņi'], [1000000, 'viens miljons'], [2000000, 'divi miljoni'], [4000000, 'četri miljoni'], [5000000, 'pieci miljoni'], [999000000, 'deviņi simti deviņdesmit deviņi miljoni'], [999000999, 'deviņi simti deviņdesmit deviņi miljoni deviņi simti deviņdesmit deviņi'], [999999000, 'deviņi simti deviņdesmit deviņi miljoni deviņi simti deviņdesmit deviņi tūkstoši'], [999999999, 'deviņi simti deviņdesmit deviņi miljoni deviņi simti deviņdesmit deviņi tūkstoši deviņi simti deviņdesmit deviņi'], [1174315110, 'viens miljards simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts desmit'], [1174315119, 'viens miljards simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts deviņpadsmit'], [15174315110, 'piecpadsmit miljardi simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts desmit'], [35174315119, 'trīsdesmit pieci miljardi simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts deviņpadsmit'], [935174315119, 'deviņi simti trīsdesmit pieci miljardi simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts deviņpadsmit'], [2935174315119, 'divi triljoni deviņi simti trīsdesmit pieci miljardi simts septiņdesmit četri miljoni trīs simti piecpadsmit tūkstoši simts deviņpadsmit'], ]; } } PK[- 6tests/NumberTransformer/DutchNumberTransformerTest.phpnu[numberTransformer = new DutchNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'nul'], [1, 'één'], [9, 'negen'], [10, 'tien'], [11, 'elf'], [19, 'negentien'], [20, 'twintig'], [21, 'éénentwintig'], [30, 'dertig'], [40, 'veertig'], [50, 'vijftig'], [60, 'zestig'], [62, 'tweeenzestig'], [70, 'zeventig'], [80, 'tachtig'], [90, 'negentig'], [99, 'negenennegentig'], [100, 'honderd'], [101, 'honderd en één'], [111, 'honderd en elf'], [112, 'honderd en twaalf'], [113, 'honderddertien'], [114, 'honderdveertien'], [120, 'honderdtwintig'], [121, 'honderdéénentwintig'], [800, 'achthonderd'], [900, 'negenhonderd'], [909, 'negenhonderd en negen'], [919, 'negenhonderdnegentien'], [990, 'negenhonderdnegentig'], [999, 'negenhonderdnegenennegentig'], [1000, 'duizend'], [1001, 'duizend en één'], [1014, 'duizend veertien'], [2000, 'tweeduizend'], [4000, 'vierduizend'], [5000, 'vijfduizend'], [11000, 'elfduizend'], [11001, 'elfduizend en één'], [11701, 'elfduizend zevenhonderd en één'], [21000, 'éénentwintigduizend'], [999000, 'negenhonderdnegenennegentigduizend'], [999999, 'negenhonderdnegenennegentigduizend negenhonderdnegenennegentig'], [1000000, 'één miljoen'], [2000000, 'twee miljoen'], [4000000, 'vier miljoen'], [5000000, 'vijf miljoen'], [999000000, 'negenhonderdnegenennegentig miljoen'], [999000999, 'negenhonderdnegenennegentig miljoen negenhonderdnegenennegentig'], [999999000, 'negenhonderdnegenennegentig miljoen negenhonderdnegenennegentigduizend'], [999999999, 'negenhonderdnegenennegentig miljoen negenhonderdnegenennegentigduizend negenhonderdnegenennegentig'], [1174315110, 'één miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdtien'], [1174315119, 'één miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdnegentien'], [15174315119, 'vijftien miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdnegentien'], [35174315119, 'vijfendertig miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdnegentien'], [935174315119, 'negenhonderdvijfendertig miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdnegentien'], [2935174315119, 'twee biljoen negenhonderdvijfendertig miljard honderdvierenzeventig miljoen driehonderdvijftienduizend honderdnegentien'], ]; } } PK[/:j  9tests/NumberTransformer/RomanianNumberTransformerTest.phpnu[numberTransformer = new RomanianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-300, 'minus trei sute'], [0, 'zero'], [1, 'unu'], [2, 'doi'], [3, 'trei'], [4, 'patru'], [5, 'cinci'], [6, 'șase'], [7, 'șapte'], [8, 'opt'], [9, 'nouă'], [11, 'unsprezece'], [12, 'doisprezece'], [16, 'șaisprezece'], [19, 'nouăsprezece'], [20, 'douăzeci'], [21, 'douăzeci și unu'], [26, 'douăzeci și șase'], [30, 'treizeci'], [31, 'treizeci și unu'], [40, 'patruzeci'], [43, 'patruzeci și trei'], [50, 'cincizeci'], [55, 'cincizeci și cinci'], [60, 'șaizeci'], [67, 'șaizeci și șapte'], [70, 'șaptezeci'], [79, 'șaptezeci și nouă'], [100, 'una sută'], [101, 'una sută unu'], [199, 'una sută nouăzeci și nouă'], [203, 'două sute trei'], [287, 'două sute optzeci și șapte'], [300, 'trei sute'], [356, 'trei sute cincizeci și șase'], [410, 'patru sute zece'], [434, 'patru sute treizeci și patru'], [578, 'cinci sute șaptezeci și opt'], [689, 'șase sute optzeci și nouă'], [729, 'șapte sute douăzeci și nouă'], [894, 'opt sute nouăzeci și patru'], [999, 'nouă sute nouăzeci și nouă'], [1000, 'una mie'], [1001, 'una mie unu'], [1097, 'una mie nouăzeci și șapte'], [1104, 'una mie una sută patru'], [1243, 'una mie două sute patruzeci și trei'], [2385, 'două mii trei sute optzeci și cinci'], [3766, 'trei mii șapte sute șaizeci și șase'], [4196, 'patru mii una sută nouăzeci și șase'], [5846, 'cinci mii opt sute patruzeci și șase'], [6459, 'șase mii patru sute cincizeci și nouă'], [7232, 'șapte mii două sute treizeci și doi'], [8569, 'opt mii cinci sute șaizeci și nouă'], [9539, 'nouă mii cinci sute treizeci și nouă'], ]; } } PK[4XE}}6tests/NumberTransformer/CzechNumberTransformerTest.phpnu[numberTransformer = new CzechNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-100, 'mínus sto'], [0, 'nula'], [1, 'jedna'], [2, 'dva'], [3, 'tři'], [4, 'čtyři'], [5, 'pět'], [6, 'šest'], [7, 'sedm'], [8, 'osm'], [9, 'devět'], [10, 'deset'], [11, 'jedenáct'], [12, 'dvanáct'], [13, 'třináct'], [14, 'čtrnáct'], [15, 'patnáct'], [16, 'šestnáct'], [17, 'sedmnáct'], [18, 'osmnáct'], [19, 'devatenáct'], [20, 'dvacet'], [21, 'dvacet jedna'], [22, 'dvacet dva'], [23, 'dvacet tři'], [24, 'dvacet čtyři'], [25, 'dvacet pět'], [26, 'dvacet šest'], [27, 'dvacet sedm'], [28, 'dvacet osm'], [29, 'dvacet devět'], [30, 'třicet'], [31, 'třicet jedna'], [32, 'třicet dva'], [33, 'třicet tři'], [34, 'třicet čtyři'], [35, 'třicet pět'], [36, 'třicet šest'], [37, 'třicet sedm'], [38, 'třicet osm'], [39, 'třicet devět'], [40, 'čtyřicet'], [41, 'čtyřicet jedna'], [42, 'čtyřicet dva'], [43, 'čtyřicet tři'], [44, 'čtyřicet čtyři'], [45, 'čtyřicet pět'], [46, 'čtyřicet šest'], [47, 'čtyřicet sedm'], [48, 'čtyřicet osm'], [49, 'čtyřicet devět'], [50, 'padesát'], [51, 'padesát jedna'], [52, 'padesát dva'], [53, 'padesát tři'], [54, 'padesát čtyři'], [55, 'padesát pět'], [56, 'padesát šest'], [57, 'padesát sedm'], [58, 'padesát osm'], [59, 'padesát devět'], [60, 'šedesát'], [61, 'šedesát jedna'], [62, 'šedesát dva'], [63, 'šedesát tři'], [64, 'šedesát čtyři'], [65, 'šedesát pět'], [66, 'šedesát šest'], [67, 'šedesát sedm'], [68, 'šedesát osm'], [69, 'šedesát devět'], [70, 'sedmdesát'], [71, 'sedmdesát jedna'], [72, 'sedmdesát dva'], [73, 'sedmdesát tři'], [74, 'sedmdesát čtyři'], [75, 'sedmdesát pět'], [76, 'sedmdesát šest'], [77, 'sedmdesát sedm'], [78, 'sedmdesát osm'], [79, 'sedmdesát devět'], [80, 'osmdesát'], [81, 'osmdesát jedna'], [82, 'osmdesát dva'], [83, 'osmdesát tři'], [84, 'osmdesát čtyři'], [85, 'osmdesát pět'], [86, 'osmdesát šest'], [87, 'osmdesát sedm'], [88, 'osmdesát osm'], [89, 'osmdesát devět'], [90, 'devadesát'], [91, 'devadesát jedna'], [92, 'devadesát dva'], [93, 'devadesát tři'], [94, 'devadesát čtyři'], [95, 'devadesát pět'], [96, 'devadesát šest'], [97, 'devadesát sedm'], [98, 'devadesát osm'], [99, 'devadesát devět'], [100, 'sto'], [101, 'sto jedna'], [102, 'sto dva'], [110, 'sto deset'], [120, 'sto dvacet'], [200, 'dvě stě'], [201, 'dvě stě jedna'], [300, 'tři sta'], [400, 'čtyři sta'], [500, 'pět set'], [600, 'šest set'], [700, 'sedm set'], [800, 'osm set'], [900, 'devět set'], [1000, 'tisíc'], [1001, 'tisíc jedna'], [2000, 'dva tisíce'], [2007, 'dva tisíce sedm'], [2008, 'dva tisíce osm'], [3000, 'tři tisíce'], [4000, 'čtyři tisíce'], [5000, 'pět tisíc'], [6000, 'šest tisíc'], [7000, 'sedm tisíc'], [8000, 'osm tisíc'], [9000, 'devět tisíc'], [10000, 'deset tisíc'], [11000, 'jedenáct tisíc'], [25000, 'dvacet pět tisíc'], [50000, 'padesát tisíc'], [100000, 'sto tisíc'], [138000, 'sto třicet osm tisíc'], [1000000, 'milión'], [2000000, 'dva milióny'], [5000000, 'pět miliónů'], [6000000, 'šest miliónů'], [7000000, 'sedm miliónů'], [1000000000, 'miliarda'], ]; } } PK[#++8tests/NumberTransformer/RussianNumberTransformerTest.phpnu[numberTransformer = new RussianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-21, 'минус двадцать один'], [0, 'ноль'], [1, 'один'], [3, 'три'], [8, 'восемь'], [9, 'девять'], [10, 'десять'], [11, 'одиннадцать'], [12, 'двенадцать'], [19, 'девятнадцать'], [20, 'двадцать'], [21, 'двадцать один'], [25, 'двадцать пять'], [50, 'пятьдесят'], [58, 'пятьдесят восемь'], [90, 'девяносто'], [99, 'девяносто девять'], [100, 'сто'], [101, 'сто один'], [102, 'сто два'], [111, 'сто одиннадцать'], [113, 'сто тринадцать'], [120, 'сто двадцать'], [121, 'сто двадцать один'], [229, 'двести двадцать девять'], [500, 'пятьсот'], [660, 'шестьсот шестьдесят'], [666, 'шестьсот шестьдесят шесть'], [900, 'девятьсот'], [909, 'девятьсот девять'], [919, 'девятьсот девятнадцать'], [990, 'девятьсот девяносто'], [999, 'девятьсот девяносто девять'], [1000, 'одна тысяча'], [1001, 'одна тысяча один'], [1010, 'одна тысяча десять'], [1015, 'одна тысяча пятнадцать'], [1100, 'одна тысяча сто'], [1111, 'одна тысяча сто одиннадцать'], [2000, 'две тысячи'], [4000, 'четыре тысячи'], [4538, 'четыре тысячи пятьсот тридцать восемь'], [5000, 'пять тысяч'], [5020, 'пять тысяч двадцать'], [7700, 'семь тысяч семьсот'], [11000, 'одиннадцать тысяч'], [11001, 'одиннадцать тысяч один'], [21000, 'двадцать одна тысяча'], [21512, 'двадцать одна тысяча пятьсот двенадцать'], [90000, 'девяносто тысяч'], [92100, 'девяносто две тысячи сто'], [212112, 'двести двенадцать тысяч сто двенадцать'], [720018, 'семьсот двадцать тысяч восемнадцать'], [999000, 'девятьсот девяносто девять тысяч'], [999999, 'девятьсот девяносто девять тысяч девятьсот девяносто девять'], [1000000, 'один миллион'], [1001001, 'один миллион одна тысяча один'], [2000000, 'два миллиона'], [3248518, 'три миллиона двести сорок восемь тысяч пятьсот восемнадцать'], [4000000, 'четыре миллиона'], [5000000, 'пять миллионов'], [999000000, 'девятьсот девяносто девять миллионов'], [999000999, 'девятьсот девяносто девять миллионов девятьсот девяносто девять'], [999999000, 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч'], [999999999, 'девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять'], [1174315110, 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять'], [1174315119, 'один миллиард сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать'], [15174315110, 'пятнадцать миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто десять'], [35174315119, 'тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать'], [935174315119, 'девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать'], [2935174315119, 'два триллиона девятьсот тридцать пять миллиардов сто семьдесят четыре миллиона триста пятнадцать тысяч сто девятнадцать'], ]; } } PK[!uu9tests/NumberTransformer/GeorgianNumberTransformerTest.phpnu[numberTransformer = new GeorgianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0,'ნული'], [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,'ოთხმოცდათვრამეტი'], [99,'ოთხმოცდაცხრამეტი'], [100,'ასი'], [124, 'ას ოცდაოთხი'], [125, 'ას ოცდახუთი'], [145, 'ას ორმოცდახუთი'], [146, 'ას ორმოცდაექვსი'], [511,'ხუთას თერთმეტი'], [222,'ორას ოცდაორი'], [1001,'ათას ერთი'], [1432,'ათას ოთხას ოცდათორმეტი'], [10403,'ათი ათას ოთხას სამი'], [190455576,'ას ოთხმოცდაათი მილიონ ოთხას ორმოცდათხუთმეტი ათას ხუთას სამოცდათექვსმეტი'], [1.5,'ერთი მთელი ხუთი მეათედი'], [2.5,'ორი მთელი ხუთი მეათედი'], [10.5,'ათი მთელი ხუთი მეათედი'], [3.75,'სამი მთელი სამოცდათხუთმეტი მეასედი'], [7.125,'შვიდი მთელი ას ოცდახუთი მეათასედი'], [12.1875,'თორმეტი მთელი ათას რვაას სამოცდათხუთმეტი მეათიათასედი'], [19.78125,'ცხრამეტი მთელი სამოცდათვრამეტი ათას ას ოცდახუთი მეასიათასედი'], ]; } } PK[*C C 8tests/NumberTransformer/SwedishNumberTransformerTest.phpnu[numberTransformer = new SwedishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'noll'], [1, 'en'], [9, 'nio'], [10, 'tio'], [11, 'elva'], [19, 'nitton'], [20, 'tjugo'], //[21, 'tjugo-en'], [80, 'åttio'], [90, 'nittio'], //[99, 'nittio-nio'], [100, 'en hundra'], [101, 'en hundra en'], [111, 'en hundra elva'], [120, 'en hundra tjugo'], //[121, 'en hundra tjugo-en'], [900, 'nio hundra'], [909, 'nio hundra nio'], [919, 'nio hundra nitton'], [990, 'nio hundra nittio'], //[999, 'nio hundra nittio-nio'], [1000, 'en tusen'], [2000, 'två tusen'], [4000, 'fyra tusen'], [5000, 'fem tusen'], [11000, 'elva tusen'], //[21000, 'tjugo-en tusen'], //[999000, 'nio hundra nittio-nio tusen'], //[999999, 'nio hundra nittio-nio tusen nio hundra nittio-nio'], //[1000000, 'en miljoner'], //[2000000, 'två miljoner'], //[4000000, 'fyra miljoner'], //[5000000, 'fem miljoner'], //[999000000, 'nio hundra nittio-nio miljoner'], //[999000999, 'nio hundra nittio-nio miljoner nio hundra nittio-nio'], //[999999000, 'nio hundra nittio-nio miljoner nio hundra nittio-nio tusen'], //[999999999, 'nio hundra nittio-nio miljoner nio hundra nittio-nio tusen nio hundra nittio-nio'], //[1174315110, 'en miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra tio'], //[1174315119, 'en miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra nitton'], //[15174315119, 'femton miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra nitton'], //[35174315119, 'trettio-fem miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra nitton'], //[935174315119, 'nio hundra trettio-fem miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra nitton'], //[2935174315119, 'två biljoner nio hundra trettio-fem miljarder en hundra sjuttio-fyra miljoner tre hundra femton tusen en hundra nitton'], ]; } } PK[  9tests/NumberTransformer/EstonianNumberTransformerTest.phpnu[numberTransformer = new EstonianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'null'], [1, 'üks'], [9, 'üheksa'], [10, 'kümme'], [11, 'üksteist'], [19, 'üheksateist'], [20, 'kakskümmend'], [21, 'kakskümmend üks'], [80, 'kaheksakümmend'], [90, 'üheksakümmend'], [99, 'üheksakümmend üheksa'], [100, 'ükssada'], [101, 'ükssada üks'], [111, 'ükssada üksteist'], [120, 'ükssada kakskümmend'], [121, 'ükssada kakskümmend üks'], [900, 'üheksasada'], [909, 'üheksasada üheksa'], [919, 'üheksasada üheksateist'], [990, 'üheksasada üheksakümmend'], [999, 'üheksasada üheksakümmend üheksa'], [1000, 'üks tuhat'], [1111, 'üks tuhat ükssada üksteist'], [2000, 'kaks tuhat'], [2001, 'kaks tuhat üks'], [2111, 'kaks tuhat ükssada üksteist'], [4000, 'neli tuhat'], [5000, 'viis tuhat'], [11000, 'üksteist tuhat'], [21000, 'kakskümmend üks tuhat'], [999000, 'üheksasada üheksakümmend üheksa tuhat'], [999999, 'üheksasada üheksakümmend üheksa tuhat üheksasada üheksakümmend üheksa'], [1000000, 'üks miljon'], [2000000, 'kaks miljonit'], [4000000, 'neli miljonit'], [5000000, 'viis miljonit'], [999000000, 'üheksasada üheksakümmend üheksa miljonit'], [999000999, 'üheksasada üheksakümmend üheksa miljonit üheksasada üheksakümmend üheksa'], [999999000, 'üheksasada üheksakümmend üheksa miljonit üheksasada üheksakümmend üheksa tuhat'], [999999999, 'üheksasada üheksakümmend üheksa miljonit üheksasada üheksakümmend üheksa tuhat üheksasada üheksakümmend üheksa'], [1174315110, 'üks miljard ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada kümme'], [1174315119, 'üks miljard ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada üheksateist'], [15174315119, 'viisteist miljardit ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada üheksateist'], [35174315119, 'kolmkümmend viis miljardit ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada üheksateist'], [935174315119, 'üheksasada kolmkümmend viis miljardit ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada üheksateist'], [1135174313119, 'üks triljon ükssada kolmkümmend viis miljardit ükssada seitsekümmend neli miljonit kolmsada kolmteist tuhat ükssada üheksateist'], [2935174315119, 'kaks triljonit üheksasada kolmkümmend viis miljardit ükssada seitsekümmend neli miljonit kolmsada viisteist tuhat ükssada üheksateist'], ]; } } PK[-b==7tests/NumberTransformer/SlovakNumberTransformerTest.phpnu[numberTransformer = new SlovakNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-5, 'mínus päť'], [-128, 'mínus sto dvadsaťosem'], [0, 'nula'], [1, 'jeden'], [2, 'dva'], [3, 'tri'], [4, 'štyri'], [5, 'päť'], [6, 'šesť'], [7, 'sedem'], [8, 'osem'], [9, 'deväť'], [10, 'desať'], [11, 'jedenásť'], [12, 'dvanásť'], [14, 'štrnásť'], [16, 'šestnásť'], [19, 'devätnásť'], [20, 'dvadsať'], [21, 'dvadsaťjeden'], [25, 'dvadsaťpäť'], [26, 'dvadsaťšesť'], [30, 'tridsať'], [31, 'tridsať jeden'], [40, 'štyridsať'], ]; } } PK[VDD:tests/NumberTransformer/UkrainianNumberTransformerTest.phpnu[numberTransformer = new UkrainianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'нуль'], [1, 'один'], [9, 'дев\'ять'], [10, 'десять'], [11, 'одинадцять'], [19, 'дев\'ятнадцять'], [20, 'двадцять'], [21, 'двадцять один'], [90, 'дев\'яносто'], [99, 'дев\'яносто дев\'ять'], [100, 'сто'], [101, 'сто один'], [111, 'сто одинадцять'], [120, 'сто двадцять'], [121, 'сто двадцять один'], [900, 'дев\'ятсот'], [909, 'дев\'ятсот дев\'ять'], [919, 'дев\'ятсот дев\'ятнадцять'], [990, 'дев\'ятсот дев\'яносто'], [999, 'дев\'ятсот дев\'яносто дев\'ять'], [1000, 'одна тисяча'], [2000, 'дві тисячі'], [4000, 'чотири тисячі'], [5000, 'п\'ять тисяч'], [11000, 'одинадцять тисяч'], [21000, 'двадцять одна тисяча'], [999000, 'дев\'ятсот дев\'яносто дев\'ять тисяч'], [999999, 'дев\'ятсот дев\'яносто дев\'ять тисяч дев\'ятсот дев\'яносто дев\'ять'], [1000000, 'один мільйон'], [2000000, 'два мільйони'], [4000000, 'чотири мільйони'], [5000000, 'п\'ять мільйонів'], [999000000, 'дев\'ятсот дев\'яносто дев\'ять мільйонів'], [999000999, 'дев\'ятсот дев\'яносто дев\'ять мільйонів дев\'ятсот дев\'яносто дев\'ять'], [999999000, 'дев\'ятсот дев\'яносто дев\'ять мільйонів дев\'ятсот дев\'яносто дев\'ять тисяч'], [999999999, 'дев\'ятсот дев\'яносто дев\'ять мільйонів дев\'ятсот дев\'яносто дев\'ять тисяч дев\'ятсот дев\'яносто дев\'ять'], [1174315110, 'один мільярд сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто десять'], [1174315119, 'один мільярд сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто дев\'ятнадцять'], [15174315110, 'п\'ятнадцять мільярдів сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто десять'], [35174315119, 'тридцять п\'ять мільярдів сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто дев\'ятнадцять'], [935174315119, 'дев\'ятсот тридцять п\'ять мільярдів сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто дев\'ятнадцять'], [2935174315119, 'два трильйони дев\'ятсот тридцять п\'ять мільярдів сто сімдесят чотири мільйони триста п\'ятнадцять тисяч сто дев\'ятнадцять'], ]; } } PK[K+ ;tests/NumberTransformer/LithuanianNumberTransformerTest.phpnu[numberTransformer = new LithuanianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'nulis'], [1, 'vienas'], [9, 'devyni'], [10, 'dešimt'], [11, 'vienuolika'], [19, 'devyniolika'], [20, 'dvidešimt'], [21, 'dvidešimt vienas'], [90, 'devyniasdešimt'], [99, 'devyniasdešimt devyni'], [100, 'šimtas'], [101, 'šimtas vienas'], [111, 'šimtas vienuolika'], [120, 'šimtas dvidešimt'], [121, 'šimtas dvidešimt vienas'], [726, 'septyni šimtai dvidešimt šeši'], [900, 'devyni šimtai'], [909, 'devyni šimtai devyni'], [919, 'devyni šimtai devyniolika'], [990, 'devyni šimtai devyniasdešimt'], [999, 'devyni šimtai devyniasdešimt devyni'], [1000, 'tūkstantis'], [2000, 'du tūkstančiai'], [4000, 'keturi tūkstančiai'], [5000, 'penki tūkstančiai'], [11000, 'vienuolika tūkstančių'], [21000, 'dvidešimt vienas tūkstantis'], [999000, 'devyni šimtai devyniasdešimt devyni tūkstančiai'], [999999, 'devyni šimtai devyniasdešimt devyni tūkstančiai devyni šimtai devyniasdešimt devyni'], [1000000, 'milijonas'], // or "vienas milijonas" [2000000, 'du milijonai'], [4000000, 'keturi milijonai'], [5000000, 'penki milijonai'], [999000000, 'devyni šimtai devyniasdešimt devyni milijonai'], [999000999, 'devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni'], [999999000, 'devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni tūkstančiai'], [999999999, 'devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni tūkstančiai devyni šimtai devyniasdešimt devyni'], [1174315110, 'bilijonas šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas dešimt'], // or "vienas bilijonas" [1174315119, 'bilijonas šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika'], // or "vienas bilijonas" [15174315110, 'penkiolika bilijonų šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas dešimt'], [35174315119, 'trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika'], [935174315119, 'devyni šimtai trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika'], [2935174315119, 'du trilijonai devyni šimtai trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika'], ]; } } PK[;tests/NumberTransformer/IndonesianNumberTransformerTest.phpnu[numberTransformer = new IndonesianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-103, 'minus seratus tiga'], [0, 'nol'], [1, 'satu'], [2, 'dua'], [3, 'tiga'], [4, 'empat'], [5, 'lima'], [6, 'enam'], [7, 'tujuh'], [8, 'delapan'], [9, 'sembilan'], [10, 'sepuluh'], [11, 'sebelas'], [12, 'dua belas'], [13, 'tiga belas'], [14, 'empat belas'], [15, 'lima belas'], [16, 'enam belas'], [17, 'tujuh belas'], [18, 'delapan belas'], [19, 'sembilan belas'], [20, 'dua puluh'], [21, 'dua puluh satu'], [22, 'dua puluh dua'], [23, 'dua puluh tiga'], [24, 'dua puluh empat'], [25, 'dua puluh lima'], [26, 'dua puluh enam'], [27, 'dua puluh tujuh'], [28, 'dua puluh delapan'], [29, 'dua puluh sembilan'], [30, 'tiga puluh'], [31, 'tiga puluh satu'], [32, 'tiga puluh dua'], [33, 'tiga puluh tiga'], [34, 'tiga puluh empat'], [35, 'tiga puluh lima'], [36, 'tiga puluh enam'], [37, 'tiga puluh tujuh'], [38, 'tiga puluh delapan'], [39, 'tiga puluh sembilan'], [40, 'empat puluh'], [41, 'empat puluh satu'], [42, 'empat puluh dua'], [43, 'empat puluh tiga'], [44, 'empat puluh empat'], [45, 'empat puluh lima'], [46, 'empat puluh enam'], [47, 'empat puluh tujuh'], [48, 'empat puluh delapan'], [49, 'empat puluh sembilan'], [50, 'lima puluh'], [51, 'lima puluh satu'], [52, 'lima puluh dua'], [53, 'lima puluh tiga'], [54, 'lima puluh empat'], [55, 'lima puluh lima'], [56, 'lima puluh enam'], [57, 'lima puluh tujuh'], [58, 'lima puluh delapan'], [59, 'lima puluh sembilan'], [60, 'enam puluh'], [61, 'enam puluh satu'], [62, 'enam puluh dua'], [63, 'enam puluh tiga'], [64, 'enam puluh empat'], [65, 'enam puluh lima'], [66, 'enam puluh enam'], [67, 'enam puluh tujuh'], [68, 'enam puluh delapan'], [69, 'enam puluh sembilan'], [70, 'tujuh puluh'], [71, 'tujuh puluh satu'], [72, 'tujuh puluh dua'], [73, 'tujuh puluh tiga'], [74, 'tujuh puluh empat'], [75, 'tujuh puluh lima'], [76, 'tujuh puluh enam'], [77, 'tujuh puluh tujuh'], [78, 'tujuh puluh delapan'], [79, 'tujuh puluh sembilan'], [80, 'delapan puluh'], [81, 'delapan puluh satu'], [82, 'delapan puluh dua'], [83, 'delapan puluh tiga'], [84, 'delapan puluh empat'], [85, 'delapan puluh lima'], [86, 'delapan puluh enam'], [87, 'delapan puluh tujuh'], [88, 'delapan puluh delapan'], [89, 'delapan puluh sembilan'], [90, 'sembilan puluh'], [91, 'sembilan puluh satu'], [92, 'sembilan puluh dua'], [93, 'sembilan puluh tiga'], [94, 'sembilan puluh empat'], [95, 'sembilan puluh lima'], [96, 'sembilan puluh enam'], [97, 'sembilan puluh tujuh'], [98, 'sembilan puluh delapan'], [99, 'sembilan puluh sembilan'], [100, 'seratus'], [101, 'seratus satu'], [102, 'seratus dua'], [103, 'seratus tiga'], [104, 'seratus empat'], [105, 'seratus lima'], [106, 'seratus enam'], [107, 'seratus tujuh'], [108, 'seratus delapan'], [109, 'seratus sembilan'], [110, 'seratus sepuluh'], [123, 'seratus dua puluh tiga'], [200, 'dua ratus'], [300, 'tiga ratus'], [321, 'tiga ratus dua puluh satu'], [400, 'empat ratus'], [500, 'lima ratus'], [600, 'enam ratus'], [700, 'tujuh ratus'], [800, 'delapan ratus'], [900, 'sembilan ratus'], [909, 'sembilan ratus sembilan'], [990, 'sembilan ratus sembilan puluh'], [999, 'sembilan ratus sembilan puluh sembilan'], [1000, 'seribu'], [1001, 'seribu satu'], [1008, 'seribu delapan'], [1234, 'seribu dua ratus tiga puluh empat'], [2000, 'dua ribu'], [3000, 'tiga ribu'], [4000, 'empat ribu'], [4321, 'empat ribu tiga ratus dua puluh satu'], [5000, 'lima ribu'], [6000, 'enam ribu'], [7000, 'tujuh ribu'], [8000, 'delapan ribu'], [9000, 'sembilan ribu'], [10000, 'sepuluh ribu'], [12345, 'dua belas ribu tiga ratus empat puluh lima'], [20000, 'dua puluh ribu'], [30000, 'tiga puluh ribu'], [40000, 'empat puluh ribu'], [50000, 'lima puluh ribu'], [54321, 'lima puluh empat ribu tiga ratus dua puluh satu'], [60000, 'enam puluh ribu'], [70000, 'tujuh puluh ribu'], [80000, 'delapan puluh ribu'], [90000, 'sembilan puluh ribu'], [100000, 'seratus ribu'], [123456, 'seratus dua puluh tiga ribu empat ratus lima puluh enam'], [200000, 'dua ratus ribu'], [300000, 'tiga ratus ribu'], [400000, 'empat ratus ribu'], [500000, 'lima ratus ribu'], [600000, 'enam ratus ribu'], [654321, 'enam ratus lima puluh empat ribu tiga ratus dua puluh satu'], [700000, 'tujuh ratus ribu'], [800000, 'delapan ratus ribu'], [900000, 'sembilan ratus ribu'], [1000000, 'satu juta'], [1000001, 'satu juta satu'], [1234567, 'satu juta dua ratus tiga puluh empat ribu lima ratus enam puluh tujuh'], [2000000, 'dua juta'], [3000000, 'tiga juta'], [4000000, 'empat juta'], [5000000, 'lima juta'], [6000000, 'enam juta'], [7000000, 'tujuh juta'], [7654321, 'tujuh juta enam ratus lima puluh empat ribu tiga ratus dua puluh satu'], [8000000, 'delapan juta'], [9000000, 'sembilan juta'], [1000000000, 'satu milyar'], [1000000001, 'satu milyar satu'], ]; } } PK[n7tests/NumberTransformer/FrenchNumberTransformerTest.phpnu[numberTransformer = new FrenchNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-999, 'moins neuf cent quatre-vingt-dix-neuf'], [0, 'zéro'], [1, 'un'], [2, 'deux'], [3, 'trois'], [4, 'quatre'], [5, 'cinq'], [6, 'six'], [7, 'sept'], [8, 'huit'], [9, 'neuf'], [9, 'neuf'], [10, 'dix'], [11, 'onze'], [12, 'douze'], [16, 'seize'], [19, 'dix-neuf'], [20, 'vingt'], [21, 'vingt et un'], [25, 'vingt-cinq'], [26, 'vingt-six'], [30, 'trente'], [31, 'trente et un'], [40, 'quarante'], [43, 'quarante-trois'], [50, 'cinquante'], [55, 'cinquante-cinq'], [58, 'cinquante-huit'], [60, 'soixante'], [67, 'soixante-sept'], [70, 'soixante-dix'], [71, 'soixante et onze'], [72, 'soixante-douze'], [79, 'soixante-dix-neuf'], [80, 'quatre-vingts'], [81, 'quatre-vingt-un'], [82, 'quatre-vingt-deux'], [90, 'quatre-vingt-dix'], [91, 'quatre-vingt-onze'], [92, 'quatre-vingt-douze'], [99, 'quatre-vingt-dix-neuf'], [100, 'cent'], [101, 'cent un'], [102, 'cent deux'], [111, 'cent onze'], [113, 'cent treize'], [120, 'cent vingt'], [121, 'cent vingt et un'], [199, 'cent quatre-vingt-dix-neuf'], [203, 'deux cent trois'], [229, 'deux cent vingt-neuf'], [287, 'deux cent quatre-vingt-sept'], [300, 'trois cents'], [356, 'trois cent cinquante-six'], [410, 'quatre cent dix'], [434, 'quatre cent trente-quatre'], [500, 'cinq cents'], [578, 'cinq cent soixante-dix-huit'], [660, 'six cent soixante'], [666, 'six cent soixante-six'], [689, 'six cent quatre-vingt-neuf'], [729, 'sept cent vingt-neuf'], [894, 'huit cent quatre-vingt-quatorze'], [900, 'neuf cents'], [909, 'neuf cent neuf'], [919, 'neuf cent dix-neuf'], [990, 'neuf cent quatre-vingt-dix'], [999, 'neuf cent quatre-vingt-dix-neuf'], [1000, 'mille'], [1001, 'mille un'], [1010, 'mille dix'], [1015, 'mille quinze'], [1097, 'mille quatre-vingt-dix-sept'], [1100, 'mille cent'], [1104, 'mille cent quatre'], [1111, 'mille cent onze'], [1243, 'mille deux cent quarante-trois'], [2000, 'deux mille'], [2385, 'deux mille trois cent quatre-vingt-cinq'], [3766, 'trois mille sept cent soixante-six'], [4000, 'quatre mille'], [4196, 'quatre mille cent quatre-vingt-seize'], [4538, 'quatre mille cinq cent trente-huit'], [5000, 'cinq mille'], [5020, 'cinq mille vingt'], [5846, 'cinq mille huit cent quarante-six'], [6459, 'six mille quatre cent cinquante-neuf'], [7232, 'sept mille deux cent trente-deux'], [8569, 'huit mille cinq cent soixante-neuf'], [9539, 'neuf mille cinq cent trente-neuf'], [11000, 'onze mille'], [11001, 'onze mille un'], [21000, 'vingt et un mille'], [21512, 'vingt et un mille cinq cent douze'], [90000, 'quatre-vingt-dix mille'], [92100, 'quatre-vingt-douze mille cent'], [212112, 'deux cent douze mille cent douze'], [720018, 'sept cent vingt mille dix-huit'], [999000, 'neuf cent quatre-vingt-dix-neuf mille'], [999999, 'neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf'], [1000000, 'un million'], [1001001, 'un million mille un'], [2000000, 'deux millions'], [3248518, 'trois millions deux cent quarante-huit mille cinq cent dix-huit'], [4000000, 'quatre millions'], [5000000, 'cinq millions'], [999000000, 'neuf cent quatre-vingt-dix-neuf millions'], [999000999, 'neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf'], [999999000, 'neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille'], [999999999, 'neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf'], [1174315110, 'un milliard cent soixante-quatorze millions trois cent quinze mille cent dix'], [1174315119, 'un milliard cent soixante-quatorze millions trois cent quinze mille cent dix-neuf'], [1800000006, 'un milliard huit cents millions six'], [15174315119, 'quinze milliards cent soixante-quatorze millions trois cent quinze mille cent dix-neuf'], [35174315119, 'trente-cinq milliards cent soixante-quatorze millions trois cent quinze mille cent dix-neuf'], [935174315119, 'neuf cent trente-cinq milliards cent soixante-quatorze millions trois cent quinze mille cent dix-neuf'], [2935174315119, 'deux billions neuf cent trente-cinq milliards cent soixante-quatorze millions trois cent quinze mille cent dix-neuf'], ]; } } PK[%Q:tests/NumberTransformer/HungarianNumberTransformerTest.phpnu[numberTransformer = new HungarianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-2000, 'mínusz kettőezer'], [0, 'nulla'], [1, 'egy'], [2, 'kettő'], [3, 'három'], [4, 'négy'], [5, 'öt'], [6, 'hat'], [7, 'hét'], [8, 'nyolc'], [9, 'kilenc'], [9, 'kilenc'], [10, 'tíz'], [11, 'tizenegy'], [12, 'tizenkettő'], [16, 'tizenhat'], [19, 'tizenkilenc'], [20, 'húsz'], [21, 'huszonegy'], [26, 'huszonhat'], [30, 'harminc'], [31, 'harmincegy'], [40, 'negyven'], [43, 'negyvenhárom'], [50, 'ötven'], [55, 'ötvenöt'], [60, 'hatvan'], [67, 'hatvanhét'], [70, 'hetven'], [79, 'hetvenkilenc'], [80, 'nyolcvan'], [90, 'kilencven'], [99, 'kilencvenkilenc'], [100, 'egyszáz'], [101, 'egyszázegy'], [101, 'egyszázegy'], [111, 'egyszáztizenegy'], [120, 'egyszázhúsz'], [121, 'egyszázhuszonegy'], [199, 'egyszázkilencvenkilenc'], [203, 'kettőszázhárom'], [287, 'kettőszáznyolcvanhét'], [300, 'háromszáz'], [356, 'háromszázötvenhat'], [410, 'négyszáztíz'], [434, 'négyszázharmincnégy'], [578, 'ötszázhetvennyolc'], [689, 'hatszáznyolcvankilenc'], [729, 'hétszázhuszonkilenc'], [894, 'nyolcszázkilencvennégy'], [900, 'kilencszáz'], [909, 'kilencszázkilenc'], [919, 'kilencszáztizenkilenc'], [990, 'kilencszázkilencven'], [999, 'kilencszázkilencvenkilenc'], [1000, 'egyezer'], [1001, 'egyezeregy'], [1097, 'egyezerkilencvenhét'], [1104, 'egyezeregyszáznégy'], [1111, 'egyezeregyszáztizenegy'], [1243, 'egyezerkettőszáznegyvenhárom'], [2000, 'kettőezer'], [2001, 'kettőezer-egy'], [2111, 'kettőezer-egyszáztizenegy'], [2385, 'kettőezer-háromszáznyolcvanöt'], [3766, 'háromezer-hétszázhatvanhat'], [4000, 'négyezer'], [4196, 'négyezer-egyszázkilencvenhat'], [5000, 'ötezer'], [5846, 'ötezer-nyolcszáznegyvenhat'], [6459, 'hatezer-négyszázötvenkilenc'], [7232, 'hétezer-kettőszázharminckettő'], [8569, 'nyolcezer-ötszázhatvankilenc'], [9539, 'kilencezer-ötszázharminckilenc'], [11000, 'tizenegyezer'], [21000, 'huszonegyezer'], [999000, 'kilencszázkilencvenkilencezer'], [999999, 'kilencszázkilencvenkilencezer-kilencszázkilencvenkilenc'], [1000000, 'egymillió'], [1001500, 'egymillió-egyezer-ötszáz'], [2000000, 'kettőmillió'], [2000001, 'kettőmillió-egy'], [4000000, 'négymillió'], [5000000, 'ötmillió'], [8002001, 'nyolcmillió-kettőezer-egy'], [999000000, 'kilencszázkilencvenkilencmillió'], [999000999, 'kilencszázkilencvenkilencmillió-kilencszázkilencvenkilenc'], [999999000, 'kilencszázkilencvenkilencmillió-kilencszázkilencvenkilencezer'], [999999999, 'kilencszázkilencvenkilencmillió-kilencszázkilencvenkilencezer-kilencszázkilencvenkilenc'], [1174315110, 'egymilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztíz'], [1174315119, 'egymilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztizenkilenc'], [2000000000, 'kettőmilliárd'], [15174315119, 'tizenötmilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztizenkilenc'], [35174315119, 'harmincötmilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztizenkilenc'], [935174315119, 'kilencszázharmincötmilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztizenkilenc'], [2935174315119, 'kettőbillió-kilencszázharmincötmilliárd-egyszázhetvennégymillió-háromszáztizenötezer-egyszáztizenkilenc'], ]; } } PK[/g g 7tests/NumberTransformer/YorubaNumberTransformerTest.phpnu[numberTransformer = new YorubaNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [20, 'ogun'], [14, 'mẹrinla'], [1, 'ọkan'], [85, 'ọgọrin ati marun'], [33, 'ọgbọn ati mẹta'], [22, 'ogun ati meji'], [990, 'ẹ̀ẹ́dẹ́gbẹ̀rún ati aadọrun'], [781, 'ẹẹdẹgbẹrin ati ọgọrin ati ọkan'], [681, 'ẹgbẹta ati ọgọrin ati ọkan'], [959684, 'ẹgbẹrun ẹ̀ẹ́dẹ́gbẹ̀rún ati aadọta ati mẹsan, ẹgbẹta ati ọgọrin ati mẹrin'], [592418, 'ẹgbẹrun ẹdẹgbẹta ati aadọrun ati meji, irinwó ati mejidilogun'], [138475, 'ẹgbẹrun ọgọrun ati ọgbọn ati mẹjọ, irinwó ati aadọrin ati marun'], [84040098, 'miliọnu ọgọrin ati mẹrin, ẹgbẹrun ogoji, aadọrun ati mẹjọ'], [38108743, 'miliọnu ọgbọn ati mẹjọ, ẹgbẹrun ọgọrun ati mẹjọ, ẹẹdẹgbẹrin ati ogoji ati mẹta'], [7038811, 'miliọnu meje, ẹgbẹrun ọgbọn ati mẹjọ, ẹgbẹ̀rin ati mọkanla'], [19992231, 'miliọnu mọkandinlogun, ẹgbẹrun ẹ̀ẹ́dẹ́gbẹ̀rún ati aadọrun ati meji, igba ati ọgbọn ati ọkan'], [60467936, 'miliọnu Ogota, ẹgbẹrun irinwó ati Ogota ati meje, ẹ̀ẹ́dẹ́gbẹ̀rún ati ọgbọn ati mẹfa'], [95349193, 'miliọnu aadọrun ati marun, ẹgbẹrun ọ̀ọ́dúrún ati ogoji ati mẹsan, ọgọrun ati aadọrun ati mẹta'], [2965138, 'miliọnu meji, ẹgbẹrun ẹ̀ẹ́dẹ́gbẹ̀rún ati Ogota ati marun, ọgọrun ati ọgbọn ati mẹjọ'], [43906698, 'miliọnu ogoji ati mẹta, ẹgbẹrun ẹ̀ẹ́dẹ́gbẹ̀rún ati mẹfa, ẹgbẹta ati aadọrun ati mẹjọ'], [51295844, 'miliọnu aadọta ati ọkan, ẹgbẹrun igba ati aadọrun ati marun, ẹgbẹ̀rin ati ogoji ati mẹrin'], [43846949, 'miliọnu ogoji ati mẹta, ẹgbẹrun ẹgbẹ̀rin ati ogoji ati mẹfa, ẹ̀ẹ́dẹ́gbẹ̀rún ati ogoji ati mẹsan'], ]; } } PK[Py >tests/NumberTransformer/FrenchBelgianNumberTransformerTest.phpnu[numberTransformer = new FrenchBelgianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-1104, 'moins mille cent quatre'], [0, 'zéro'], [1, 'un'], [2, 'deux'], [3, 'trois'], [4, 'quatre'], [5, 'cinq'], [6, 'six'], [7, 'sept'], [8, 'huit'], [9, 'neuf'], [11, 'onze'], [12, 'douze'], [16, 'seize'], [19, 'dix-neuf'], [20, 'vingt'], [21, 'vingt et un'], [26, 'vingt-six'], [30, 'trente'], [31, 'trente et un'], [40, 'quarante'], [43, 'quarante-trois'], [50, 'cinquante'], [55, 'cinquante-cinq'], [60, 'soixante'], [67, 'soixante-sept'], [70, 'septante'], [71, 'septante et un'], [79, 'septante-neuf'], [80, 'quatre-vingts'], [81, 'quatre-vingt-un'], [91, 'nonante et un'], [100, 'cent'], [101, 'cent un'], [199, 'cent nonante-neuf'], [203, 'deux cent trois'], [287, 'deux cent quatre-vingt-sept'], [300, 'trois cents'], [356, 'trois cent cinquante-six'], [410, 'quatre cent dix'], [434, 'quatre cent trente-quatre'], [578, 'cinq cent septante-huit'], [689, 'six cent quatre-vingt-neuf'], [729, 'sept cent vingt-neuf'], [894, 'huit cent nonante-quatre'], [999, 'neuf cent nonante-neuf'], [1000, 'mille'], [1001, 'mille un'], [1097, 'mille nonante-sept'], [1104, 'mille cent quatre'], [1243, 'mille deux cent quarante-trois'], [2385, 'deux mille trois cent quatre-vingt-cinq'], [3766, 'trois mille sept cent soixante-six'], [4196, 'quatre mille cent nonante-six'], [5846, 'cinq mille huit cent quarante-six'], [6459, 'six mille quatre cent cinquante-neuf'], [7232, 'sept mille deux cent trente-deux'], [8569, 'huit mille cinq cent soixante-neuf'], [9539, 'neuf mille cinq cent trente-neuf'], ]; } } PK[lϩ9tests/NumberTransformer/AlbanianNumberTransformerTest.phpnu[numberTransformer = new AlbanianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-3, 'minus tre'], [0, 'zero'], [1, 'një'], [3, 'tre'], [8, 'tetë'], [9, 'nëntë'], [10, 'dhjetë'], [11, 'njëmbëdhjetë'], [12, 'dymbëdhjetë'], [16, 'gjashtëmbëdhjetë'], [19, 'nëntëmbëdhjetë'], [20, 'njëzet'], [21, 'njëzet e një'], [25, 'njëzet e pesë'], [26, 'njëzet e gjashtë'], [30, 'tridhjetë'], [31, 'tridhjetë e një'], [40, 'katërdhjetë'], [43, 'katërdhjetë e tre'], [50, 'pesëdhjetë'], [55, 'pesëdhjetë e pesë'], [58, 'pesëdhjetë e tetë'], [60, 'gjashtëdhjetë'], [67, 'gjashtëdhjetë e shtatë'], [70, 'shtatëdhjetë'], [79, 'shtatëdhjetë e nëntë'], [80, 'tetëdhjetë'], [90, 'nëntëdhjetë'], [99, 'nëntëdhjetë e nëntë'], [100, 'njëqind'], [101, 'njëqind e një'], [102, 'njëqind e dy'], [111, 'njëqind e njëmbëdhjetë'], [113, 'njëqind e trembëdhjetë'], [120, 'njëqind e njëzet'], [121, 'njëqind e njëzet e një'], [199, 'njëqind e nëntëdhjetë e nëntë'], [203, 'dyqind e tre'], [229, 'dyqind e njëzet e nëntë'], [287, 'dyqind e tetëdhjetë e shtatë'], [300, 'treqind'], [356, 'treqind e pesëdhjetë e gjashtë'], [410, 'katërqind e dhjetë'], [434, 'katërqind e tridhjetë e katër'], [500, 'pesëqind'], [578, 'pesëqind e shtatëdhjetë e tetë'], [660, 'gjashtëqind e gjashtëdhjetë'], [666, 'gjashtëqind e gjashtëdhjetë e gjashtë'], [689, 'gjashtëqind e tetëdhjetë e nëntë'], [729, 'shtatëqind e njëzet e nëntë'], [894, 'tetëqind e nëntëdhjetë e katër'], [900, 'nëntëqind'], [909, 'nëntëqind e nëntë'], [919, 'nëntëqind e nëntëmbëdhjetë'], [990, 'nëntëqind e nëntëdhjetë'], [999, 'nëntëqind e nëntëdhjetë e nëntë'], [1000, 'një mijë'], [1001, 'një mijë e një'], [1010, 'një mijë e dhjetë'], [1015, 'një mijë e pesëmbëdhjetë'], [1097, 'një mijë e nëntëdhjetë e shtatë'], [1100, 'një mijë e njëqind'], [1104, 'një mijë e njëqind e katër'], [1111, 'një mijë e njëqind e njëmbëdhjetë'], [1243, 'një mijë e dyqind e katërdhjetë e tre'], [2000, 'dy mijë'], [2385, 'dy mijë e treqind e tetëdhjetë e pesë'], [3766, 'tre mijë e shtatëqind e gjashtëdhjetë e gjashtë'], [4000, 'katër mijë'], [4196, 'katër mijë e njëqind e nëntëdhjetë e gjashtë'], [4538, 'katër mijë e pesëqind e tridhjetë e tetë'], [5000, 'pesë mijë'], [5020, 'pesë mijë e njëzet'], [5846, 'pesë mijë e tetëqind e katërdhjetë e gjashtë'], [6459, 'gjashtë mijë e katërqind e pesëdhjetë e nëntë'], [7232, 'shtatë mijë e dyqind e tridhjetë e dy'], [8569, 'tetë mijë e pesëqind e gjashtëdhjetë e nëntë'], [9539, 'nëntë mijë e pesëqind e tridhjetë e nëntë'], [11000, 'njëmbëdhjetë mijë'], [11001, 'njëmbëdhjetë mijë e një'], [21000, 'njëzet e një mijë'], [21512, 'njëzet e një mijë e pesëqind e dymbëdhjetë'], [90000, 'nëntëdhjetë mijë'], [92100, 'nëntëdhjetë e dy mijë e njëqind'], [212112, 'dyqind e dymbëdhjetë mijë e njëqind e dymbëdhjetë'], [720018, 'shtatëqind e njëzet mijë e tetëmbëdhjetë'], [999000, 'nëntëqind e nëntëdhjetë e nëntë mijë'], [999999, 'nëntëqind e nëntëdhjetë e nëntë mijë e nëntëqind e nëntëdhjetë e nëntë'], [1000000, 'një milion'], [1001001, 'një milion e një mijë e një'], [2000000, 'dy milion'], [3248518, 'tre milion e dyqind e katërdhjetë e tetë mijë e pesëqind e tetëmbëdhjetë'], [4000000, 'katër milion'], [5000000, 'pesë milion'], [999000000, 'nëntëqind e nëntëdhjetë e nëntë milion'], [999000999, 'nëntëqind e nëntëdhjetë e nëntë milion e nëntëqind e nëntëdhjetë e nëntë'], [999999000, 'nëntëqind e nëntëdhjetë e nëntë milion e nëntëqind e nëntëdhjetë e nëntë mijë'], [999999999, 'nëntëqind e nëntëdhjetë e nëntë milion e nëntëqind e nëntëdhjetë e nëntë mijë e nëntëqind e nëntëdhjetë e nëntë'], [-232129539, 'minus dyqind e tridhjetë e dy milion e njëqind e njëzet e nëntë mijë e pesëqind e tridhjetë e nëntë'], [1174315110, 'një miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e dhjetë'], [1174315119, 'një miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e nëntëmbëdhjetë'], [1800000006, 'një miliard e tetëqind milion e gjashtë'], [15174315119, 'pesëmbëdhjetë miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e nëntëmbëdhjetë'], [35174315119, 'tridhjetë e pesë miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e nëntëmbëdhjetë'], [935174315119, 'nëntëqind e tridhjetë e pesë miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e nëntëmbëdhjetë'], [2935174315119, 'dy bilion e nëntëqind e tridhjetë e pesë miliard e njëqind e shtatëdhjetë e katër milion e treqind e pesëmbëdhjetë mijë e njëqind e nëntëmbëdhjetë'], ]; } } PK[Xt t 8tests/NumberTransformer/TurkishNumberTransformerTest.phpnu[numberTransformer = new TurkishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'sıfır'], [1, 'bir'], [9, 'dokuz'], [10, 'on'], [11, 'on bir'], [19, 'on dokuz'], [20, 'yirmi'], [21, 'yirmi bir'], [80, 'seksen'], [90, 'doksan'], [99, 'doksan dokuz'], [100, 'yüz'], [101, 'yüz bir'], [111, 'yüz on bir'], [120, 'yüz yirmi'], [121, 'yüz yirmi bir'], [900, 'dokuz yüz'], [909, 'dokuz yüz dokuz'], [919, 'dokuz yüz on dokuz'], [990, 'dokuz yüz doksan'], [999, 'dokuz yüz doksan dokuz'], [1000, 'bin'], [1001, 'bin bir'], [1020, 'bin yirmi'], [2000, 'iki bin'], [4000, 'dört bin'], [5000, 'beş bin'], [11000, 'on bir bin'], [21000, 'yirmi bir bin'], [102100, 'yüz iki bin yüz'], [999000, 'dokuz yüz doksan dokuz bin'], [999999, 'dokuz yüz doksan dokuz bin dokuz yüz doksan dokuz'], [1000000, 'bir milyon'], [2000000, 'iki milyon'], [4000000, 'dört milyon'], [5000000, 'beş milyon'], [98320561, 'doksan sekiz milyon üç yüz yirmi bin beş yüz altmış bir'], [999000000, 'dokuz yüz doksan dokuz milyon'], [999000999, 'dokuz yüz doksan dokuz milyon dokuz yüz doksan dokuz'], [999999000, 'dokuz yüz doksan dokuz milyon dokuz yüz doksan dokuz bin'], [999999999, 'dokuz yüz doksan dokuz milyon dokuz yüz doksan dokuz bin dokuz yüz doksan dokuz'], [1174315110, 'bir milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on'], [1174315119, 'bir milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on dokuz'], [15174315119, 'on beş milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on dokuz'], [35174315119, 'otuz beş milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on dokuz'], [935174315119, 'dokuz yüz otuz beş milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on dokuz'], [2935174315119, 'iki trilyon dokuz yüz otuz beş milyar yüz yetmiş dört milyon üç yüz on beş bin yüz on dokuz'], ]; } } PK[[9  8tests/NumberTransformer/EnglishNumberTransformerTest.phpnu[numberTransformer = new EnglishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-3, 'minus three'], [-9539, 'minus nine thousand five hundred thirty-nine'], [0, 'zero'], [1, 'one'], [3, 'three'], [8, 'eight'], [9, 'nine'], [10, 'ten'], [11, 'eleven'], [12, 'twelve'], [16, 'sixteen'], [19, 'nineteen'], [20, 'twenty'], [21, 'twenty-one'], [25, 'twenty-five'], [26, 'twenty-six'], [30, 'thirty'], [31, 'thirty-one'], [40, 'forty'], [43, 'forty-three'], [50, 'fifty'], [55, 'fifty-five'], [58, 'fifty-eight'], [60, 'sixty'], [67, 'sixty-seven'], [70, 'seventy'], [79, 'seventy-nine'], [80, 'eighty'], [90, 'ninety'], [99, 'ninety-nine'], [100, 'one hundred'], [101, 'one hundred one'], [102, 'one hundred two'], [111, 'one hundred eleven'], [113, 'one hundred thirteen'], [120, 'one hundred twenty'], [121, 'one hundred twenty-one'], [199, 'one hundred ninety-nine'], [203, 'two hundred three'], [229, 'two hundred twenty-nine'], [287, 'two hundred eighty-seven'], [300, 'three hundred'], [356, 'three hundred fifty-six'], [410, 'four hundred ten'], [434, 'four hundred thirty-four'], [500, 'five hundred'], [578, 'five hundred seventy-eight'], [660, 'six hundred sixty'], [666, 'six hundred sixty-six'], [689, 'six hundred eighty-nine'], [729, 'seven hundred twenty-nine'], [894, 'eight hundred ninety-four'], [900, 'nine hundred'], [909, 'nine hundred nine'], [919, 'nine hundred nineteen'], [990, 'nine hundred ninety'], [999, 'nine hundred ninety-nine'], [1000, 'one thousand'], [1001, 'one thousand one'], [1010, 'one thousand ten'], [1015, 'one thousand fifteen'], [1097, 'one thousand ninety-seven'], [1100, 'one thousand one hundred'], [1104, 'one thousand one hundred four'], [1111, 'one thousand one hundred eleven'], [1243, 'one thousand two hundred forty-three'], [2000, 'two thousand'], [2385, 'two thousand three hundred eighty-five'], [3766, 'three thousand seven hundred sixty-six'], [4000, 'four thousand'], [4196, 'four thousand one hundred ninety-six'], [4538, 'four thousand five hundred thirty-eight'], [5000, 'five thousand'], [5020, 'five thousand twenty'], [5846, 'five thousand eight hundred forty-six'], [6459, 'six thousand four hundred fifty-nine'], [7232, 'seven thousand two hundred thirty-two'], [8569, 'eight thousand five hundred sixty-nine'], [9539, 'nine thousand five hundred thirty-nine'], [11000, 'eleven thousand'], [11001, 'eleven thousand one'], [21000, 'twenty-one thousand'], [21512, 'twenty-one thousand five hundred twelve'], [90000, 'ninety thousand'], [92100, 'ninety-two thousand one hundred'], [212112, 'two hundred twelve thousand one hundred twelve'], [720018, 'seven hundred twenty thousand eighteen'], [999000, 'nine hundred ninety-nine thousand'], [999999, 'nine hundred ninety-nine thousand nine hundred ninety-nine'], [1000000, 'one million'], [1001001, 'one million one thousand one'], [2000000, 'two million'], [3248518, 'three million two hundred forty-eight thousand five hundred eighteen'], [4000000, 'four million'], [5000000, 'five million'], [999000000, 'nine hundred ninety-nine million'], [999000999, 'nine hundred ninety-nine million nine hundred ninety-nine'], [999999000, 'nine hundred ninety-nine million nine hundred ninety-nine thousand'], [999999999, 'nine hundred ninety-nine million nine hundred ninety-nine thousand nine hundred ninety-nine'], [1174315110, 'one billion one hundred seventy-four million three hundred fifteen thousand one hundred ten'], [1174315119, 'one billion one hundred seventy-four million three hundred fifteen thousand one hundred nineteen'], [1800000006, 'one billion eight hundred million six'], [15174315119, 'fifteen billion one hundred seventy-four million three hundred fifteen thousand one hundred nineteen'], [35174315119, 'thirty-five billion one hundred seventy-four million three hundred fifteen thousand one hundred nineteen'], [935174315119, 'nine hundred thirty-five billion one hundred seventy-four million three hundred fifteen thousand one hundred nineteen'], [2935174315119, 'two trillion nine hundred thirty-five billion one hundred seventy-four million three hundred fifteen thousand one hundred nineteen'], ]; } } PK[\1tests/NumberTransformer/NumberTransformerTest.phpnu[numberTransformer) { self::markTestIncomplete('Please initialize $numberTransformer property.'); } self::assertEquals($expectedString, $this->numberTransformer->toWords($number)); } abstract public function providerItConvertsNumbersToWords(); } PK[Z/ʐ6tests/NumberTransformer/MalayNumberTransformerTest.phpnu[numberTransformer = new MalayNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-103, 'negatif seratus tiga'], [0, 'kosong'], [1, 'satu'], [2, 'dua'], [3, 'tiga'], [4, 'empat'], [5, 'lima'], [6, 'enam'], [7, 'tujuh'], [8, 'lapan'], [9, 'sembilan'], [10, 'sepuluh'], [11, 'sebelas'], [12, 'dua belas'], [13, 'tiga belas'], [14, 'empat belas'], [15, 'lima belas'], [16, 'enam belas'], [17, 'tujuh belas'], [18, 'lapan belas'], [19, 'sembilan belas'], [20, 'dua puluh'], [21, 'dua puluh satu'], [22, 'dua puluh dua'], [23, 'dua puluh tiga'], [24, 'dua puluh empat'], [25, 'dua puluh lima'], [26, 'dua puluh enam'], [27, 'dua puluh tujuh'], [28, 'dua puluh lapan'], [29, 'dua puluh sembilan'], [30, 'tiga puluh'], [31, 'tiga puluh satu'], [32, 'tiga puluh dua'], [33, 'tiga puluh tiga'], [34, 'tiga puluh empat'], [35, 'tiga puluh lima'], [36, 'tiga puluh enam'], [37, 'tiga puluh tujuh'], [38, 'tiga puluh lapan'], [39, 'tiga puluh sembilan'], [40, 'empat puluh'], [41, 'empat puluh satu'], [42, 'empat puluh dua'], [43, 'empat puluh tiga'], [44, 'empat puluh empat'], [45, 'empat puluh lima'], [46, 'empat puluh enam'], [47, 'empat puluh tujuh'], [48, 'empat puluh lapan'], [49, 'empat puluh sembilan'], [50, 'lima puluh'], [51, 'lima puluh satu'], [52, 'lima puluh dua'], [53, 'lima puluh tiga'], [54, 'lima puluh empat'], [55, 'lima puluh lima'], [56, 'lima puluh enam'], [57, 'lima puluh tujuh'], [58, 'lima puluh lapan'], [59, 'lima puluh sembilan'], [60, 'enam puluh'], [61, 'enam puluh satu'], [62, 'enam puluh dua'], [63, 'enam puluh tiga'], [64, 'enam puluh empat'], [65, 'enam puluh lima'], [66, 'enam puluh enam'], [67, 'enam puluh tujuh'], [68, 'enam puluh lapan'], [69, 'enam puluh sembilan'], [70, 'tujuh puluh'], [71, 'tujuh puluh satu'], [72, 'tujuh puluh dua'], [73, 'tujuh puluh tiga'], [74, 'tujuh puluh empat'], [75, 'tujuh puluh lima'], [76, 'tujuh puluh enam'], [77, 'tujuh puluh tujuh'], [78, 'tujuh puluh lapan'], [79, 'tujuh puluh sembilan'], [80, 'lapan puluh'], [81, 'lapan puluh satu'], [82, 'lapan puluh dua'], [83, 'lapan puluh tiga'], [84, 'lapan puluh empat'], [85, 'lapan puluh lima'], [86, 'lapan puluh enam'], [87, 'lapan puluh tujuh'], [88, 'lapan puluh lapan'], [89, 'lapan puluh sembilan'], [90, 'sembilan puluh'], [91, 'sembilan puluh satu'], [92, 'sembilan puluh dua'], [93, 'sembilan puluh tiga'], [94, 'sembilan puluh empat'], [95, 'sembilan puluh lima'], [96, 'sembilan puluh enam'], [97, 'sembilan puluh tujuh'], [98, 'sembilan puluh lapan'], [99, 'sembilan puluh sembilan'], [100, 'seratus'], [101, 'seratus satu'], [102, 'seratus dua'], [103, 'seratus tiga'], [104, 'seratus empat'], [105, 'seratus lima'], [106, 'seratus enam'], [107, 'seratus tujuh'], [108, 'seratus lapan'], [109, 'seratus sembilan'], [110, 'seratus sepuluh'], [123, 'seratus dua puluh tiga'], [200, 'dua ratus'], [300, 'tiga ratus'], [321, 'tiga ratus dua puluh satu'], [400, 'empat ratus'], [500, 'lima ratus'], [600, 'enam ratus'], [700, 'tujuh ratus'], [800, 'lapan ratus'], [900, 'sembilan ratus'], [909, 'sembilan ratus sembilan'], [990, 'sembilan ratus sembilan puluh'], [999, 'sembilan ratus sembilan puluh sembilan'], [1000, 'seribu'], [1001, 'seribu satu'], [1008, 'seribu lapan'], [1234, 'seribu dua ratus tiga puluh empat'], [2000, 'dua ribu'], [3000, 'tiga ribu'], [4000, 'empat ribu'], [4321, 'empat ribu tiga ratus dua puluh satu'], [5000, 'lima ribu'], [6000, 'enam ribu'], [7000, 'tujuh ribu'], [8000, 'lapan ribu'], [9000, 'sembilan ribu'], [10000, 'sepuluh ribu'], [12345, 'dua belas ribu tiga ratus empat puluh lima'], [20000, 'dua puluh ribu'], [30000, 'tiga puluh ribu'], [40000, 'empat puluh ribu'], [50000, 'lima puluh ribu'], [54321, 'lima puluh empat ribu tiga ratus dua puluh satu'], [60000, 'enam puluh ribu'], [70000, 'tujuh puluh ribu'], [80000, 'lapan puluh ribu'], [90000, 'sembilan puluh ribu'], [100000, 'seratus ribu'], [123456, 'seratus dua puluh tiga ribu empat ratus lima puluh enam'], [200000, 'dua ratus ribu'], [300000, 'tiga ratus ribu'], [400000, 'empat ratus ribu'], [500000, 'lima ratus ribu'], [600000, 'enam ratus ribu'], [654321, 'enam ratus lima puluh empat ribu tiga ratus dua puluh satu'], [700000, 'tujuh ratus ribu'], [800000, 'lapan ratus ribu'], [900000, 'sembilan ratus ribu'], [1000000, 'satu juta'], [1000001, 'satu juta satu'], [1234567, 'satu juta dua ratus tiga puluh empat ribu lima ratus enam puluh tujuh'], [2000000, 'dua juta'], [3000000, 'tiga juta'], [4000000, 'empat juta'], [5000000, 'lima juta'], [6000000, 'enam juta'], [7000000, 'tujuh juta'], [7654321, 'tujuh juta enam ratus lima puluh empat ribu tiga ratus dua puluh satu'], [8000000, 'lapan juta'], [9000000, 'sembilan juta'], [1000000000, 'satu bilion'], [1000000001, 'satu bilion satu'], ]; } } PK[~##8tests/NumberTransformer/ItalianNumberTransformerTest.phpnu[numberTransformer = new ItalianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-140, 'meno centoquaranta'], [0, 'zero'], [1, 'uno'], [2, 'due'], [3, 'tre'], [4, 'quattro'], [5, 'cinque'], [6, 'sei'], [7, 'sette'], [8, 'otto'], [9, 'nove'], [10, 'dieci'], [11, 'undici'], [12, 'dodici'], [13, 'tredici'], [14, 'quattordici'], [15, 'quindici'], [16, 'sedici'], [17, 'diciassette'], [18, 'diciotto'], [19, 'diciannove'], [20, 'venti'], [21, 'ventuno'], [22, 'ventidue'], [23, 'ventitre'], [24, 'ventiquattro'], [25, 'venticinque'], [26, 'ventisei'], [27, 'ventisette'], [28, 'ventotto'], [29, 'ventinove'], [30, 'trenta'], [31, 'trentuno'], [32, 'trentadue'], [33, 'trentatre'], [34, 'trentaquattro'], [35, 'trentacinque'], [36, 'trentasei'], [37, 'trentasette'], [38, 'trentotto'], [39, 'trentanove'], [40, 'quaranta'], [41, 'quarantuno'], [42, 'quarantadue'], [43, 'quarantatre'], [44, 'quarantaquattro'], [45, 'quarantacinque'], [46, 'quarantasei'], [47, 'quarantasette'], [48, 'quarantotto'], [49, 'quarantanove'], [50, 'cinquanta'], [51, 'cinquantuno'], [52, 'cinquantadue'], [53, 'cinquantatre'], [54, 'cinquantaquattro'], [55, 'cinquantacinque'], [56, 'cinquantasei'], [57, 'cinquantasette'], [58, 'cinquantotto'], [59, 'cinquantanove'], [60, 'sessanta'], [61, 'sessantuno'], [62, 'sessantadue'], [63, 'sessantatre'], [64, 'sessantaquattro'], [65, 'sessantacinque'], [66, 'sessantasei'], [67, 'sessantasette'], [68, 'sessantotto'], [69, 'sessantanove'], [70, 'settanta'], [71, 'settantuno'], [72, 'settantadue'], [73, 'settantatre'], [74, 'settantaquattro'], [75, 'settantacinque'], [76, 'settantasei'], [77, 'settantasette'], [78, 'settantotto'], [79, 'settantanove'], [80, 'ottanta'], [81, 'ottantuno'], [82, 'ottantadue'], [83, 'ottantatre'], [84, 'ottantaquattro'], [85, 'ottantacinque'], [86, 'ottantasei'], [87, 'ottantasette'], [88, 'ottantotto'], [89, 'ottantanove'], [90, 'novanta'], [91, 'novantuno'], [92, 'novantadue'], [93, 'novantatre'], [94, 'novantaquattro'], [95, 'novantacinque'], [96, 'novantasei'], [97, 'novantasette'], [98, 'novantotto'], [99, 'novantanove'], [100, 'cento'], [101, 'centouno'], [108, 'centootto'], [150, 'centocinquanta'], [180, 'centoottanta'], [188, 'centoottantotto'], [199, 'centonovantanove'], [200, 'duecento'], [203, 'duecentotre'], [208, 'duecentootto'], [280, 'duecentoottanta'], [287, 'duecentoottantasette'], [288, 'duecentoottantotto'], [300, 'trecento'], [356, 'trecentocinquantasei'], [400, 'quattrocento'], [410, 'quattrocentodieci'], [434, 'quattrocentotrentaquattro'], [456, 'quattrocentocinquantasei'], [500, 'cinquecento'], [578, 'cinquecentosettantotto'], [600, 'seicento'], [689, 'seicentoottantanove'], [700, 'settecento'], [729, 'settecentoventinove'], [800, 'ottocento'], [894, 'ottocentonovantaquattro'], [900, 'novecento'], [999, 'novecentonovantanove'], [1000, 'mille'], [1001, 'milleuno'], [1002, 'milledue'], [1097, 'millenovantasette'], [1100, 'millecento'], [1104, 'millecentoquattro'], [1200, 'milleduecento'], [1243, 'milleduecentoquarantatre'], [2000, 'duemila'], [2385, 'duemilatrecentoottantacinque'], [3000, 'tremila'], [3766, 'tremilasettecentosessantasei'], [4196, 'quattromilacentonovantasei'], [5846, 'cinquemilaottocentoquarantasei'], [6459, 'seimilaquattrocentocinquantanove'], [6827, 'seimilaottocentoventisette'], [7232, 'settemiladuecentotrentadue'], [8569, 'ottomilacinquecentosessantanove'], [9539, 'novemilacinquecentotrentanove'], [10000, 'diecimila'], [11000, 'undicimila'], [100000, 'centomila'], [2000000, 'due milioni'], [43152000, 'quarantatre milioni centocinquantaduemila'] ]; } } PK[U}l :tests/NumberTransformer/BulgarianNumberTransformerTest.phpnu[numberTransformer = new BulgarianNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [0, 'нула'], [1, 'едно'], [2, 'две'], [3, 'три'], [4, 'четири'], [5, 'пет'], [6, 'шест'], [7, 'седем'], [8, 'осем'], [9, 'девет'], [11, 'единадесет'], [12, 'дванадесет'], [16, 'шестнадесет'], [19, 'деветнадесет'], [20, 'двадесет'], [21, 'двадесет и едно'], [26, 'двадесет и шест'], [30, 'тридесет'], [31, 'тридесет и едно'], [40, 'четиридесет'], [43, 'четиридесет и три'], [50, 'петдесет'], [55, 'петдесет и пет'], [60, 'шестдесет'], [67, 'шестдесет и седем'], [70, 'седемдесет'], [79, 'седемдесет и девет'], [100, 'сто'], [101, 'сто и едно'], [199, 'сто деветдесет и девет'], [203, 'двеста и три'], [287, 'двеста осемдесет и седем'], [300, 'триста'], [356, 'триста петдесет и шест'], [410, 'четиристотин и десет'], [434, 'четиристотин тридесет и четири'], [578, 'петстотин седемдесет и осем'], [689, 'шестстотин осемдесет и девет'], [729, 'седемстотин двадесет и девет'], [894, 'осемстотин деветдесет и четири'], [999, 'деветстотин деветдесет и девет'], [1000, 'хиляда'], [1001, 'хиляда и едно'], [1097, 'хиляда и деветдесет и седем'], [1104, 'хиляда сто и четири'], [1243, 'хиляда двеста четиридесет и три'], [2385, 'две хиляди триста осемдесет и пет'], [3766, 'три хиляди седемстотин шестдесет и шест'], [4196, 'четири хиляди сто деветдесет и шест'], [5846, 'пет хиляди осемстотин четиридесет и шест'], [6459, 'шест хиляди четиристотин петдесет и девет'], [7232, 'седем хиляди двеста тридесет и две'], [8569, 'осем хиляди петстотин шестдесет и девет'], [9539, 'девет хиляди петстотин тридесет и девет'] ]; } } PK[Err7tests/NumberTransformer/DanishNumberTransformerTest.phpnu[numberTransformer = new DanishNumberTransformer(); } public function providerItConvertsNumbersToWords() { return [ [-13, 'minus tretten'], [0, 'nul'], [1, 'en'], [2, 'to'], [3, 'tre'], [4, 'fire'], [5, 'fem'], [6, 'seks'], [7, 'syv'], [8, 'otte'], [9, 'ni'], [13, 'tretten'], ]; } } PK[k/tests/Grammar/Inflector/PolishInflectorTest.phpnu[inflectNounByNumber($number, self::$nouns[0], self::$nouns[1], self::$nouns[2]); self::assertEquals($expectedNoun, $inflected); } public function providerItInflectsNounsByNumbers() { return [ [1, 'kubek'], [2, 'kubki'], [3, 'kubki'], [4, 'kubki'], [5, 'kubków'], [6, 'kubków'], [10, 'kubków'], [19, 'kubków'], [20, 'kubków'], [21, 'kubków'], [22, 'kubki'], [24, 'kubki'], [25, 'kubków'], [29, 'kubków'], [101, 'kubków'], [102, 'kubki'] ]; } } PK[y SMakefilenu[test: phpunit phpcs build: phpunit-coverage phpcs phpunit: vendor/bin/phpunit --no-coverage phpunit-coverage: vendor/bin/phpunit phpcbf: vendor/bin/phpcbf -p --encoding=utf-8 --standard=PSR2 --ignore=src/Legacy/Numbers/Words/* src phpcs: vendor/bin/phpcs -p --encoding=utf-8 --standard=PSR2 --ignore=src/Legacy/Numbers/Words/* src phpmd: vendor/bin/phpmd src text cleancode,codesize,controversial,design,naming,unusedcode PK[Τ" composer.jsonnu[{ "name": "kwn/number-to-words", "description": "Multi language standalone PHP number to words converter. Fully tested, open for extensions and new languages.", "type": "library", "license": "MIT", "keywords": ["number", "numbers", "to", "words", "string", "money", "currency"], "authors": [ { "name": "Karol Wnuk", "email": "k.wnuk@ascetic.pl" } ], "require": { "php": ">=5.6|>=7.1" }, "require-dev": { "phpunit/phpunit": "^5.7.9", "squizlabs/php_codesniffer": "^3.3.0" }, "autoload": { "psr-4": { "NumberToWords\\": "src" } }, "autoload-dev": { "psr-4": { "NumberToWords\\": "tests" } } } PK[<[KD55LICENSEnu[The MIT License (MIT) Copyright (c) 2016 Karol Wnuk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK[{]KK README.mdnu[PK[0;;.codeclimate.ymlnu[PK["++ .travis.ymlnu[PK[MJ  exdebug.ininu[PK[iphpunit.xml.distnu[PK[f 5src/CurrencyTransformer/SlovakCurrencyTransformer.phpnu[PK[7%src/CurrencyTransformer/RomanianCurrencyTransformer.phpnu[PK[}(6'src/CurrencyTransformer/SpanishCurrencyTransformer.phpnu[PK[6Պ 6)src/CurrencyTransformer/EnglishCurrencyTransformer.phpnu[PK[)684src/CurrencyTransformer/HungarianCurrencyTransformer.phpnu[PK[^56src/CurrencyTransformer/DanishCurrencyTransformer.phpnu[PK[H/8src/CurrencyTransformer/CurrencyTransformer.phpnu[PK[NF5:src/CurrencyTransformer/FrenchCurrencyTransformer.phpnu[PK[R1 1 6~<src/CurrencyTransformer/LatvianCurrencyTransformer.phpnu[PK[Y8Gsrc/CurrencyTransformer/UkrainianCurrencyTransformer.phpnu[PK[(ED D 9Isrc/CurrencyTransformer/LithuanianCurrencyTransformer.phpnu[PK[I* 5Ssrc/CurrencyTransformer/GermanCurrencyTransformer.phpnu[PK[Y=5_src/CurrencyTransformer/YorubaCurrencyTransformer.phpnu[PK[΅6`src/CurrencyTransformer/RussianCurrencyTransformer.phpnu[PK[r6 7bsrc/CurrencyTransformer/AlbanianCurrencyTransformer.phpnu[PK[*b6msrc/CurrencyTransformer/TurkmenCurrencyTransformer.phpnu[PK[8/7osrc/CurrencyTransformer/GeorgianCurrencyTransformer.phpnu[PK[l|с6qsrc/CurrencyTransformer/TurkishCurrencyTransformer.phpnu[PK[t 5ssrc/CurrencyTransformer/PolishCurrencyTransformer.phpnu[PK[ܧB~src/CurrencyTransformer/PortugueseBrazilianCurrencyTransformer.phpnu[PK[15 src/TransformerOptions/CurrencyTransformerOptions.phpnu[PK[̢|)Psrc/Service/NumberToTripletsConverter.phpnu[PK[ f-ٛ:src/NumberToWords.phpnu[PK[g 6**2src/NumberTransformer/LatvianNumberTransformer.phpnu[PK[Ff||1src/NumberTransformer/SlovakNumberTransformer.phpnu[PK[MM0src/NumberTransformer/CzechNumberTransformer.phpnu[PK[NDOO20src/NumberTransformer/ItalianNumberTransformer.phpnu[PK[kQQ4src/NumberTransformer/UkrainianNumberTransformer.phpnu[PK[DI2src/NumberTransformer/EnglishNumberTransformer.phpnu[PK[k2 2 2src/NumberTransformer/NumberTransformerBuilder.phpnu[PK[pxRR5src/NumberTransformer/IndonesianNumberTransformer.phpnu[PK[- PP3bsrc/NumberTransformer/RomanianNumberTransformer.phpnu[PK[)D2src/NumberTransformer/PersianNumberTransformer.phpnu[PK[œ^^>src/NumberTransformer/PortugueseBrazilianNumberTransformer.phpnu[PK[-||1bsrc/NumberTransformer/PolishNumberTransformer.phpnu[PK[-cNN1?src/NumberTransformer/YorubaNumberTransformer.phpnu[PK[)JOO2src/NumberTransformer/SwedishNumberTransformer.phpnu[PK[9o$OO2src/NumberTransformer/SpanishNumberTransformer.phpnu[PK[u NN1Psrc/NumberTransformer/DanishNumberTransformer.phpnu[PK[S IOO2src/NumberTransformer/RussianNumberTransformer.phpnu[PK[+NN1src/NumberTransformer/FrenchNumberTransformer.phpnu[PK[߻OO2_src/NumberTransformer/TurkishNumberTransformer.phpnu[PK[FCRR5src/NumberTransformer/LithuanianNumberTransformer.phpnu[PK[,OO2src/NumberTransformer/TurkmenNumberTransformer.phpnu[PK[[91))1xsrc/NumberTransformer/GermanNumberTransformer.phpnu[PK[XX8src/NumberTransformer/FrenchBelgianNumberTransformer.phpnu[PK[LQQ4src/NumberTransformer/HungarianNumberTransformer.phpnu[PK[:UU3wsrc/NumberTransformer/AlbanianNumberTransformer.phpnu[PK[QQ4/src/NumberTransformer/BulgarianNumberTransformer.phpnu[PK[S_k882src/NumberTransformer/GenericNumberTransformer.phpnu[PK[u,,3~src/NumberTransformer/GeorgianNumberTransformer.phpnu[PK[֕MM0 src/NumberTransformer/MalayNumberTransformer.phpnu[PK[EMM0src/NumberTransformer/DutchNumberTransformer.phpnu[PK[~BPP3gsrc/NumberTransformer/EstonianNumberTransformer.phpnu[PK[Ml+ src/NumberTransformer/NumberTransformer.phpnu[PK[jF66&5 src/Legacy/Numbers/Words/Locale/Bg.phpnu[PK[v&4Bsrc/Legacy/Numbers/Words/Locale/Sv.phpnu[PK[r~$$&![src/Legacy/Numbers/Words/Locale/Ms.phpnu[PK[D!F#F#&nsrc/Legacy/Numbers/Words/Locale/Ua.phpnu[PK[VKQQ&7src/Legacy/Numbers/Words/Locale/Ro.phpnu[PK[p9>| | &ޭsrc/Legacy/Numbers/Words/Locale/Hu.phpnu[PK[8!!&src/Legacy/Numbers/Words/Locale/Fr.phpnu[PK[&src/Legacy/Numbers/Words/Locale/Lt.phpnu[PK[(FI##& src/Legacy/Numbers/Words/Locale/It.phpnu[PK[Ӧ &Q/src/Legacy/Numbers/Words/Locale/Tk.phpnu[PK[YOX=X=&6=src/Legacy/Numbers/Words/Locale/Ru.phpnu[PK[oadd&zsrc/Legacy/Numbers/Words/Locale/Yo.phpnu[PK[~((&src/Legacy/Numbers/Words/Locale/Id.phpnu[PK[_/$&src/Legacy/Numbers/Words/Locale/Cs.phpnu[PK[,,&ysrc/Legacy/Numbers/Words/Locale/Es.phpnu[PK[d%d%)Qsrc/Legacy/Numbers/Words/Locale/Pt/Br.phpnu[PK[8B&src/Legacy/Numbers/Words/Locale/Tr.phpnu[PK[-##&:2src/Legacy/Numbers/Words/Locale/Nl.phpnu[PK[,B")CVsrc/Legacy/Numbers/Words/Locale/Fr/Be.phpnu[PK[P!!&hfsrc/Legacy/Numbers/Words/Locale/Et.phpnu[PK[hb&tsrc/Legacy/Numbers/Words/Locale/Ka.phpnu[PK[t 9$9$&ɡsrc/Legacy/Numbers/Words/Locale/Dk.phpnu[PK[DlXMMXsrc/Legacy/Numbers/Words.phpnu[PK[c__(src/Exception/NumberToWordsException.phpnu[PK[@Rvvsrc/Grammar/Form.phpnu[PK[h?Z*bsrc/Grammar/CurrencyTransformerBuilder.phpnu[PK[cܵ@src/Grammar/Gender.phpnu[PK[9~ί .;src/Language/Lithuania/LithuaniaDictionary.phpnu[PK[g&)Hsrc/Language/French/BelgianDictionary.phpnu[PK[y4src/Language/Albanian/AlbanianTripletTransformer.phpnu[PK[gBDD0 src/Language/Albanian/AlbanianExponentGetter.phpnu[PK[9J,src/Language/Albanian/AlbanianDictionary.phpnu[PK[-src/Language/PowerAwareTripletTransformer.phpnu[PK[ Lsrc/Language/ExponentGetter.phpnu[PK[~_&$Q src/Language/Romanian/Dictionary.phpnu[PK[-c)src/Language/Dictionary.phpnu[PK[2},src/Language/Latvian/LatvianTripletTransformer.phpnu[PK[t9 *1src/Language/Latvian/LatvianDictionary.phpnu[PK[wLI1;src/Language/Latvian/LatvianExponentInflector.phpnu[PK[K."?src/Language/ExponentInflector.phpnu[PK[5/Asrc/Language/Polish/PolishExponentInflector.phpnu[PK[ 0Isrc/Language/Polish/PolishTripletTransformer.phpnu[PK["!N(14Nsrc/Language/Polish/PolishNounGenderInflector.phpnu[PK[}&(SQsrc/Language/Polish/PolishDictionary.phpnu[PK[OT^^(ehsrc/Language/Slovak/SlovakDictionary.phpnu[PK[H+WSS0src/Language/Slovak/SlovakTripletTransformer.phpnu[PK[+/Άsrc/Language/Slovak/SlovakExponentInflector.phpnu[PK[~x1src/Language/Slovak/SlovakNounGenderInflector.phpnu[PK[#src/Language/TripletTransformer.phpnu[PK[Pr88/src/Language/German/GermanExponentInflector.phpnu[PK[GRRR(src/Language/German/GermanDictionary.phpnu[PK[,0Usrc/Language/German/GermanTripletTransformer.phpnu[PK[h2src/Language/Persian/PersianTripletTransformer.phpnu[PK[DXX*src/Language/Persian/PersianDictionary.phpnu[PK[ *.żsrc/Language/Persian/PersianExponentGetter.phpnu[PK[s{{*src/Language/English/EnglishDictionary.phpnu[PK[3QQ.src/Language/English/EnglishExponentGetter.phpnu[PK[y2src/Language/English/EnglishTripletTransformer.phpnu[PK[֬00 .gitignorenu[PK[υ55>_tests/CurrencyTransformer/UkrainianCurrencyTransformerTest.phpnu[PK[##=tests/CurrencyTransformer/GeorgianCurrencyTransformerTest.phpnu[PK[Q;tests/CurrencyTransformer/DanishCurrencyTransformerTest.phpnu[PK[b <tests/CurrencyTransformer/TurkmenCurrencyTransformerTest.phpnu[PK[ɶ>tests/CurrencyTransformer/HungarianCurrencyTransformerTest.phpnu[PK[ESܬ{{<tests/CurrencyTransformer/TurkishCurrencyTransformerTest.phpnu[PK[ 8775tests/CurrencyTransformer/CurrencyTransformerTest.phpnu[PK[V ;tests/CurrencyTransformer/YorubaCurrencyTransformerTest.phpnu[PK[2 g >tests/CurrencyTransformer/LithuaniaCurrencyTransformerTest.phpnu[PK[_F;%tests/CurrencyTransformer/FrenchCurrencyTransformerTest.phpnu[PK[`ٞz  <*tests/CurrencyTransformer/LatvianCurrencyTransformerTest.phpnu[PK[-^KK=iItests/CurrencyTransformer/RomanianCurrencyTransformerTest.phpnu[PK[mS<!Ltests/CurrencyTransformer/SpanishCurrencyTransformerTest.phpnu[PK[9s<URtests/CurrencyTransformer/EnglishCurrencyTransformerTest.phpnu[PK[ov`vv;Ytests/CurrencyTransformer/GermanCurrencyTransformerTest.phpnu[PK[P2RG[tests/CurrencyTransformer/PortugeseBrazilianCurrencyTransformerTest.phpnu[PK[.O;]tests/CurrencyTransformer/PolishCurrencyTransformerTest.phpnu[PK[cc<Gdtests/CurrencyTransformer/RussianCurrencyTransformerTest.phpnu[PK[Y!<<htests/NumberToWordsTest.phpnu[PK[Y`v/tests/Service/NumberToTripletsConverterTest.phpnu[PK[=DTtests/NumberTransformer/PortugueseBrazilianNumberTransformerTest.phpnu[PK[Z¼7tests/NumberTransformer/GermanNumberTransformerTest.phpnu[PK[P0 8tests/NumberTransformer/TurkmenNumberTransformerTest.phpnu[PK[778tests/NumberTransformer/SpanishNumberTransformerTest.phpnu[PK[&;7tests/NumberTransformer/PolishNumberTransformerTest.phpnu[PK[H1! 8*tests/NumberTransformer/LatvianNumberTransformerTest.phpnu[PK[- 66tests/NumberTransformer/DutchNumberTransformerTest.phpnu[PK[/:j  9Ctests/NumberTransformer/RomanianNumberTransformerTest.phpnu[PK[4XE}}6INtests/NumberTransformer/CzechNumberTransformerTest.phpnu[PK[#++8,ctests/NumberTransformer/RussianNumberTransformerTest.phpnu[PK[!uu9ytests/NumberTransformer/GeorgianNumberTransformerTest.phpnu[PK[*C C 8tests/NumberTransformer/SwedishNumberTransformerTest.phpnu[PK[  9Htests/NumberTransformer/EstonianNumberTransformerTest.phpnu[PK[-b==7tests/NumberTransformer/SlovakNumberTransformerTest.phpnu[PK[VDD:+tests/NumberTransformer/UkrainianNumberTransformerTest.phpnu[PK[K+ ;tests/NumberTransformer/LithuanianNumberTransformerTest.phpnu[PK[; tests/NumberTransformer/IndonesianNumberTransformerTest.phpnu[PK[n7@tests/NumberTransformer/FrenchNumberTransformerTest.phpnu[PK[%Q:Xtests/NumberTransformer/HungarianNumberTransformerTest.phpnu[PK[/g g 7Etests/NumberTransformer/YorubaNumberTransformerTest.phpnu[PK[Py > tests/NumberTransformer/FrenchBelgianNumberTransformerTest.phpnu[PK[lϩ9q*tests/NumberTransformer/AlbanianNumberTransformerTest.phpnu[PK[Xt t 8Dtests/NumberTransformer/TurkishNumberTransformerTest.phpnu[PK[[9  8_Otests/NumberTransformer/EnglishNumberTransformerTest.phpnu[PK[\1etests/NumberTransformer/NumberTransformerTest.phpnu[PK[Z/ʐ6itests/NumberTransformer/MalayNumberTransformerTest.phpnu[PK[~##8tests/NumberTransformer/ItalianNumberTransformerTest.phpnu[PK[U}l :tests/NumberTransformer/BulgarianNumberTransformerTest.phpnu[PK[Err7tests/NumberTransformer/DanishNumberTransformerTest.phpnu[PK[k/իtests/Grammar/Inflector/PolishInflectorTest.phpnu[PK[y SհMakefilenu[PK[Τ" composer.jsonnu[PK[<[KD55LICENSEnu[PKJj