Skip to content

Commit

Permalink
Merge pull request #4 from nikitos-mv/master
Browse files Browse the repository at this point in the history
New languages & some fixes
  • Loading branch information
hdodov committed Jun 10, 2022
2 parents 0c00d17 + 34060c7 commit 725665e
Show file tree
Hide file tree
Showing 79 changed files with 2,035 additions and 73 deletions.
185 changes: 112 additions & 73 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,77 +10,116 @@
const OTHER = 5;

const LANGUAGES = [
'af' => AfrikaansLanguage::class,
'ar' => ArabicLanguage::class,
'hy' => ArmenianLanguage::class,
'az' => AzerbaijaniLanguage::class,
'bm' => BambaraLanguage::class,
'eu' => BasqueLanguage::class,
'bg' => BulgarianLanguage::class,
'my' => BurmeseLanguage::class,
'yue' => CantoneseLanguage::class,
'zh' => ChineseLanguage::class,
'hr' => CroatianLanguage::class,
'cs' => CzechLanguage::class,
'da' => DanishLanguage::class,
'dz' => DzongkhaLanguage::class,
'en' => EnglishLanguage::class,
'eo' => EsperantoLanguage::class,
'es' => EstonianLanguage::class,
'pt_PT' => EuropeanPortugueseLanguage::class,
'fi' => FinnishLanguage::class,
'fr' => FrenchLanguage::class,
'ka' => GeorgianLanguage::class,
'de' => GermanLanguage::class,
'el' => GreekLanguage::class,
'hi' => HindiLanguage::class,
'hu' => Hungarian::class,
'ig' => IgboLanguage::class,
'id' => IndonesianLanguage::class,
'in' => IndonesianLanguage::class,
'it' => ItalianLanguage::class,
'ja' => JapaneseLanguage::class,
'jv' => JavaneseLanguage::class,
'jw' => JavaneseLanguage::class,
'kea' => KabuverdianuLanguage::class,
'km' => KhmerLanguage::class,
'ko' => KoreanLanguage::class,
'ses' => KoyraboroSenniLanguage::class,
'ky' => KyrgyzLanguage::class,
'lkt' => LakotaLanguage::class,
'lo' => LaoLanguage::class,
'lv' => LatvianLanguage::class,
'lt' => LithuanianLanguage::class,
'jbo' => LojbanLanguage::class,
'mk' => MacedonianLanguage::class,
'kde' => MakondeLanguage::class,
'ms' => MalayLanguage::class,
'ml' => MalayalamLanguage::class,
'mn' => MongolianLanguage::class,
'no' => NorwegianLanguage::class,
'nb' => NorwegianBokmalLanguage::class,
'nn' => NorwegianNynorskLanguage::class,
'nqo' => NKoLanguage::class,
'fa' => PersianLanguage::class,
'pl' => PolishLanguage::class,
'pt' => PortugueseLanguage::class,
'rm' => RomanshLanguage::class,
'ru' => RussianLanguage::class,
'sah' => SakhaLanguage::class,
'sg' => SangoLanguage::class,
'sr' => SerbianLanguage::class,
'sv' => SwedishLanguage::class,
'ii' => SichuanYiLanguage::class,
'es' => SpanishLanguage::class,
'te' => TeluguLanguage::class,
'th' => ThaiLanguage::class,
'bo' => TibetanLanguage::class,
'to' => TonganLanguage::class,
'tr' => TurkishLanguage::class,
'uk' => UkrainianLanguage::class,
'uz' => UzbekLanguage::class,
'vi' => VietnameseLanguage::class,
'cy' => WelshLanguage::class,
'wo' => WolofLanguage::class,
'yo' => YorubaLanguage::class,
'af' => AfrikaansLanguage::class,
'sq' => AlbanianLanguage::class,
'am' => AmharicLanguage::class,
'ar' => ArabicLanguage::class,
'hy' => ArmenianLanguage::class,
'az' => AzerbaijaniLanguage::class,
'bm' => BambaraLanguage::class,
'eu' => BasqueLanguage::class,
'be' => BelarusianLanguage::class,
'bn' => BengaliLanguage::class,
'bs' => BosnianLanguage::class,
'bg' => BulgarianLanguage::class,
'my' => BurmeseLanguage::class,
'ca' => CatalanLanguage::class,
'yue' => CantoneseLanguage::class,
'chr' => CherokeeLanguage::class,
'zh' => ChineseLanguage::class,
'hr' => CroatianLanguage::class,
'cs' => CzechLanguage::class,
'da' => DanishLanguage::class,
'nl' => DutchLanguage::class,
'dz' => DzongkhaLanguage::class,
'en' => EnglishLanguage::class,
'eo' => EsperantoLanguage::class,
'et' => EstonianLanguage::class,
'pt_PT' => EuropeanPortugueseLanguage::class,
'fo' => FaroeseLanguage::class,
'fil' => FilipinoLanguage::class,
'fi' => FinnishLanguage::class,
'fr' => FrenchLanguage::class,
'ff' => FulahLanguage::class,
'gl' => GalicianLanguage::class,
'ka' => GeorgianLanguage::class,
'de' => GermanLanguage::class,
'el' => GreekLanguage::class,
'gu' => GujaratiLanguage::class,
'ha' => HausaLanguage::class,
'he' => HebrewLanguage::class,
'hi' => HindiLanguage::class,
'hu' => HungarianLanguage::class,
'is' => IcelandicLanguage::class,
'ig' => IgboLanguage::class,
'id' => IndonesianLanguage::class,
'in' => IndonesianLanguage::class,
'ga' => IrishLanguage::class,
'it' => ItalianLanguage::class,
'ja' => JapaneseLanguage::class,
'jv' => JavaneseLanguage::class,
'jw' => JavaneseLanguage::class,
'kea' => KabuverdianuLanguage::class,
'kn' => KannadaLanguage::class,
'kk' => KazakhLanguage::class,
'km' => KhmerLanguage::class,
'ko' => KoreanLanguage::class,
'ses' => KoyraboroSenniLanguage::class,
'ku' => KurdishLanguage::class,
'ky' => KyrgyzLanguage::class,
'lkt' => LakotaLanguage::class,
'lo' => LaoLanguage::class,
'lv' => LatvianLanguage::class,
'lt' => LithuanianLanguage::class,
'jbo' => LojbanLanguage::class,
'mk' => MacedonianLanguage::class,
'kde' => MakondeLanguage::class,
'mg' => MalagasyLanguage::class,
'ms' => MalayLanguage::class,
'ml' => MalayalamLanguage::class,
'mt' => MalteseLanguage::class,
'mr' => MarathiLanguage::class,
'mn' => MongolianLanguage::class,
'ne' => NepaliLanguage::class,
'no' => NorwegianLanguage::class,
'nb' => NorwegianBokmalLanguage::class,
'nn' => NorwegianNynorskLanguage::class,
'nqo' => NKoLanguage::class,
'or' => OriyaLanguage::class,
'ps' => PashtoLanguage::class,
'fa' => PersianLanguage::class,
'pl' => PolishLanguage::class,
'pt' => PortugueseLanguage::class,
'pa' => PunjabiLanguage::class,
'ro' => RomanianLanguage::class,
'rm' => RomanshLanguage::class,
'ru' => RussianLanguage::class,
'sah' => SakhaLanguage::class,
'sg' => SangoLanguage::class,
'sr' => SerbianLanguage::class,
'si' => SinhalaLanguage::class,
'sk' => SlovakLanguage::class,
'sl' => SlovenianLanguage::class,
'so' => SomaliLanguage::class,
'sv' => SwedishLanguage::class,
'ii' => SichuanYiLanguage::class,
'es' => SpanishLanguage::class,
'sw' => SwahiliLanguage::class,
'syr' => SyriacLanguage::class,
'ta' => TamilLanguage::class,
'te' => TeluguLanguage::class,
'th' => ThaiLanguage::class,
'bo' => TibetanLanguage::class,
'to' => TonganLanguage::class,
'tr' => TurkishLanguage::class,
'uk' => UkrainianLanguage::class,
'ur' => UrduLanguage::class,
'uz' => UzbekLanguage::class,
'vi' => VietnameseLanguage::class,
'cy' => WelshLanguage::class,
'wo' => WolofLanguage::class,
'xh' => XhosaLanguage::class,
'yi' => YiddishLanguage::class,
'yo' => YorubaLanguage::class,
'zu' => ZuluLanguage::class
];
33 changes: 33 additions & 0 deletions src/AlbanianLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace Oblik\Pluralization;

class AlbanianLanguage extends Language
{
static function cardinal(float $n)
{
if ($n == 1) {
return ONE;
}
return OTHER;
}

static function ordinal(int $n)
{
if ($n == 1)
{
return ONE;
}
elseif ($n % 10 == 4 && $n % 100 != 14)
{
return MANY;
}
return OTHER;
}

const RANGE = [
ONE . OTHER => OTHER,
OTHER . ONE => ONE,
OTHER . OTHER => OTHER
];
}
25 changes: 25 additions & 0 deletions src/AmharicLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace Oblik\Pluralization;

class AmharicLanguage extends Language
{
static function cardinal(float $n)
{
if ($n == 0 || $n == 1) {
return ONE;
}
return OTHER;
}

static function ordinal()
{
return OTHER;
}

const RANGE = [
ONE . ONE => ONE,
ONE . OTHER => OTHER,
OTHER . OTHER => OTHER,
];
}
6 changes: 6 additions & 0 deletions src/BelarusianLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

namespace Oblik\Pluralization;

class BelarusianLanguage extends RussianLanguage
{}
37 changes: 37 additions & 0 deletions src/BengaliLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Oblik\Pluralization;

class BengaliLanguage extends Language
{
static function cardinal(float $n, int $i)
{
if ($i == 0 || $n == 1) {
return ONE;
}
return OTHER;
}

static function ordinal(int $n)
{
if ($n == 1 || $n == 5 || ($n >= 7 && $n <= 10)) {
return ONE;
}
elseif ($n == 2 || $n == 3) {
return TWO;
}
elseif ($n == 4) {
return FEW;
}
elseif ($n == 6) {
return MANY;
}
return OTHER;
}

const RANGE = [
ONE . ONE => ONE,
ONE . OTHER => OTHER,
OTHER . OTHER => OTHER,
];
}
45 changes: 45 additions & 0 deletions src/BosnianLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?php

namespace Oblik\Pluralization;

class BosnianLanguage extends Language
{
static function cardinal(float $n, int $i, int $v, int $w, int $f)
{
$imod10 = $i % 10;
$imod100 = $i % 100;
$fmod10 = $f % 10;
$fmod100 = $f % 100;

if (
($v == 0 && $imod10 == 1 && $imod100 != 11)
|| ($fmod10 == 1 && $fmod100 != 11)
) {
return ONE;
}
elseif (
($v == 0 && self::inRange($imod10, [2, 4]) && !self::inRange($imod100, [12, 14]))
|| (self::inRange($fmod10, [2, 4]) && !self::inRange($fmod100, [12, 14]))
) {
return FEW;
}
return OTHER;
}

static function ordinal(int $n)
{
return OTHER;
}

const RANGE = [
ONE . ONE => ONE,
ONE . FEW => FEW,
ONE . OTHER => OTHER,
FEW . ONE => ONE,
FEW . FEW => FEW,
FEW . OTHER => OTHER,
OTHER . ONE => ONE,
OTHER . FEW => FEW,
OTHER . OTHER => OTHER,
];
}
37 changes: 37 additions & 0 deletions src/CatalanLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Oblik\Pluralization;

class CatalanLanguage extends Language
{
static function cardinal(float $n, int $i, int $v)
{
if ($i == 1 && $v == 0) {
return ONE;
}
return OTHER;
}

static function ordinal(int $n)
{
if ($n == 1 || $n == 3)
{
return ONE;
}
elseif ($n == 2)
{
return TWO;
}
elseif ($n == 4)
{
return FEW;
}
return OTHER;
}

const RANGE = [
ONE . OTHER => OTHER,
OTHER . ONE => OTHER,
OTHER . OTHER => OTHER
];
}
Loading

0 comments on commit 725665e

Please sign in to comment.