diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a0a12e1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "rules"] + path = rules + url = https://github.com/petrovich/petrovich-rules.git diff --git a/Petrovich.php b/Petrovich.php index b2b245a..920cf88 100644 --- a/Petrovich.php +++ b/Petrovich.php @@ -23,7 +23,7 @@ class Petrovich { */ function __construct($gender = Petrovich::GENDER_ANDROGYNOUS, $rules_dir = __DIR__) { - $rules_path = $rules_dir.'/rules.json'; + $rules_path = $rules_dir.'/rules/rules.json'; $rules_resourse = fopen($rules_path, 'r'); if($rules_resourse == false) diff --git a/rules b/rules new file mode 160000 index 0000000..f0a0d76 --- /dev/null +++ b/rules @@ -0,0 +1 @@ +Subproject commit f0a0d760d8d58ef3f663328183cd2f11bb261456 diff --git a/rules.json b/rules.json deleted file mode 100644 index 438267a..0000000 --- a/rules.json +++ /dev/null @@ -1,999 +0,0 @@ -{ - "lastname": { - "exceptions": [ - { - "gender": "androgynous", - "test": [ - "бонч", - "абдул", - "белиц", - "гасан", - "дюссар", - "дюмон", - "книппер", - "корвин", - "ван", - "шолом", - "тер", - "призван", - "мелик", - "вар", - "фон" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ], - "tags": [ - "first_word" - ] - }, - { - "gender": "androgynous", - "test": [ - "дюма", - "тома", - "дега", - "люка", - "ферма", - "гамарра", - "петипа", - "шандра", - "скаля" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "гусь", - "ремень", - "камень", - "онук", - "богода", - "нечипас", - "долгопалец", - "маненок", - "рева", - "кива" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "вий", - "сой", - "цой", - "хой" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "я" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - } - ], - "suffixes": [ - { - "gender": "female", - "test": [ - "б", - "в", - "г", - "д", - "ж", - "з", - "й", - "к", - "л", - "м", - "н", - "п", - "р", - "с", - "т", - "ф", - "х", - "ц", - "ч", - "ш", - "щ", - "ъ", - "ь" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "гава", - "орота" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "female", - "test": [ - "ска", - "цка" - ], - "mods": [ - "-ой", - "-ой", - "-ую", - "-ой", - "-ой" - ] - }, - { - "gender": "female", - "test": [ - "ая" - ], - "mods": [ - "--ой", - "--ой", - "--ую", - "--ой", - "--ой" - ] - }, - { - "gender": "androgynous", - "test": [ - "ская" - ], - "mods": [ - "--ой", - "--ой", - "--ую", - "--ой", - "--ой" - ] - }, - { - "gender": "female", - "test": [ - "на" - ], - "mods": [ - "-ой", - "-ой", - "-у", - "-ой", - "-ой" - ] - }, - { - "gender": "androgynous", - "test": [ - "иной" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "уй" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ца" - ], - "mods": [ - "-ы", - "-е", - "-у", - "-ей", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "рих" - ], - "mods": [ - "а", - "у", - "а", - "ом", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ия" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "иа", - "аа", - "оа", - "уа", - "ыа", - "еа", - "юа", - "эа" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "их", - "ых" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "о", - "е", - "э", - "и", - "ы", - "у", - "ю" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "androgynous", - "test": [ - "ова", - "ева" - ], - "mods": [ - "-ой", - "-ой", - "-у", - "-ой", - "-ой" - ] - }, - { - "gender": "androgynous", - "test": [ - "га", - "ка", - "ха", - "ча", - "ща", - "жа" - ], - "mods": [ - "-и", - "-е", - "-у", - "-ой", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ца" - ], - "mods": [ - "-и", - "-е", - "-у", - "-ей", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "а" - ], - "mods": [ - "-ы", - "-е", - "-у", - "-ой", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ь" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ия" - ], - "mods": [ - "-и", - "-и", - "-ю", - "-ей", - "-и" - ] - }, - { - "gender": "androgynous", - "test": [ - "я" - ], - "mods": [ - "-и", - "-е", - "-ю", - "-ей", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ей" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ян", - "ан", - "йн" - ], - "mods": [ - "а", - "у", - "а", - "ом", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ынец", - "обец" - ], - "mods": [ - "--ца", - "--цу", - "--ца", - "--цем", - "--це" - ] - }, - { - "gender": "androgynous", - "test": [ - "онец", - "овец" - ], - "mods": [ - "--ца", - "--цу", - "--ца", - "--цом", - "--це" - ] - }, - { - "gender": "androgynous", - "test": [ - "ай" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "гой", - "кой" - ], - "mods": [ - "-го", - "-му", - "-го", - "--им", - "-м" - ] - }, - { - "gender": "androgynous", - "test": [ - "ой" - ], - "mods": [ - "-го", - "-му", - "-го", - "--ым", - "-м" - ] - }, - { - "gender": "androgynous", - "test": [ - "ах", - "ив" - ], - "mods": [ - "а", - "у", - "а", - "ом", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ший", - "щий", - "жий", - "ний" - ], - "mods": [ - "--его", - "--ему", - "--его", - "-м", - "--ем" - ] - }, - { - "gender": "androgynous", - "test": [ - "кий", - "ый" - ], - "mods": [ - "--ого", - "--ому", - "--ого", - "-м", - "--ом" - ] - }, - { - "gender": "androgynous", - "test": [ - "ий" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-и" - ] - }, - { - "gender": "androgynous", - "test": [ - "ок" - ], - "mods": [ - "--ка", - "--ку", - "--ка", - "--ком", - "--ке" - ] - }, - { - "gender": "androgynous", - "test": [ - "ец" - ], - "mods": [ - "--ца", - "--цу", - "--ца", - "--цом", - "--це" - ] - }, - { - "gender": "androgynous", - "test": [ - "ц", - "ч", - "ш", - "щ" - ], - "mods": [ - "а", - "у", - "а", - "ем", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "в", - "н" - ], - "mods": [ - "а", - "у", - "а", - "ым", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "б", - "г", - "д", - "ж", - "з", - "к", - "л", - "м", - "п", - "р", - "с", - "т", - "ф", - "х" - ], - "mods": [ - "а", - "у", - "а", - "ом", - "е" - ] - } - ] - }, - "firstname": { - "exceptions": [ - { - "gender": "androgynous", - "test": [ - "лев" - ], - "mods": [ - "--ьва", - "--ьву", - "--ьва", - "--ьвом", - "--ьве" - ] - }, - { - "gender": "androgynous", - "test": [ - "пётр" - ], - "mods": [ - "---етра", - "---етру", - "---етра", - "---етром", - "---етре" - ] - }, - { - "gender": "androgynous", - "test": [ - "павел" - ], - "mods": [ - "--ла", - "--лу", - "--ла", - "--лом", - "--ле" - ] - }, - { - "gender": "male", - "test": [ - "яша" - ], - "mods": [ - "-и", - "-е", - "-у", - "-ей", - "-е" - ] - }, - { - "gender": "male", - "test": [ - "шота" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "female", - "test": [ - "рашель", - "нинель", - "николь", - "габриэль", - "даниэль" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - } - ], - "suffixes": [ - { - "gender": "androgynous", - "test": [ - "е", - "ё", - "и", - "о", - "у", - "ы", - "э", - "ю" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "female", - "test": [ - "б", - "в", - "г", - "д", - "ж", - "з", - "й", - "к", - "л", - "м", - "н", - "п", - "р", - "с", - "т", - "ф", - "х", - "ц", - "ч", - "ш", - "щ", - "ъ" - ], - "mods": [ - ".", - ".", - ".", - ".", - "." - ] - }, - { - "gender": "female", - "test": [ - "ь" - ], - "mods": [ - "-и", - "-и", - ".", - "ю", - "-и" - ] - }, - { - "gender": "male", - "test": [ - "ь" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "га", - "ка", - "ха", - "ча", - "ща", - "жа" - ], - "mods": [ - "-и", - "-е", - "-у", - "-ой", - "-е" - ] - }, - { - "gender": "female", - "test": [ - "ша" - ], - "mods": [ - "-и", - "-е", - "-у", - "-ей", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "а" - ], - "mods": [ - "-ы", - "-е", - "-у", - "-ой", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ия" - ], - "mods": [ - "-и", - "-и", - "-ю", - "-ей", - "-и" - ] - }, - { - "gender": "androgynous", - "test": [ - "я" - ], - "mods": [ - "-и", - "-е", - "-ю", - "-ей", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ей" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "ий" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-и" - ] - }, - { - "gender": "androgynous", - "test": [ - "й" - ], - "mods": [ - "-я", - "-ю", - "-я", - "-ем", - "-е" - ] - }, - { - "gender": "androgynous", - "test": [ - "б", - "в", - "г", - "д", - "ж", - "з", - "к", - "л", - "м", - "н", - "п", - "р", - "с", - "т", - "ф", - "х", - "ц", - "ч" - ], - "mods": [ - "а", - "у", - "а", - "ом", - "е" - ] - } - ] - }, - "middlename": { - "suffixes": [ - { - "gender": "androgynous", - "test": [ - "ич" - ], - "mods": [ - "а", - "у", - "а", - "ем", - "е" - ] - }, - { - "gender": "androgynous", - "test": [ - "на" - ], - "mods": [ - "-ы", - "-е", - "-у", - "-ой", - "-е" - ] - } - ] - } -}