Limych / GeniBase

2 stars 2 forks source link

Немецкая локализация системы #55

Open Limych opened 9 years ago

a-KaDeMi-k commented 9 years ago

Подготавливаю транскрибцию для немецкого языка, но столкнулся с противоречием, которое почему-то не получается отработать. Берём, для примера, Behling → Белинг Правила такие: b → б e → е (после согласных или i, y, eu, äu) h → (между гласной и согласной не передаётся) l → л (перед гласными) i → и (в начале слова и после согласных) n → н g → г

Завожу регулярки

'/(?<=[aäeioöuüy])h(?=[bcdfghjklmnpqrsßtvwxze])/uS' => ''
'/l(?=[aäeioöuüy])/uS' => 'л'
'/(?<=[bcdfghjklmnpqrsßtvwxziy])e/uS' => 'е'
'/(?<=[bcdfghjklmnpqrsßtvwxz])i/uS' => 'и'

Если ставлю их в массиве в таком порядке, то в результате получаю Белiнг, если l опускаю ниже i - Беlинг. Т.е. я так понимаю, что анализируется пара букв и, несмотря на то, что в результат идёт только одна из шаблона, вторая в дальнейшем анализе уже не участвует. Можешь что-нибудь подсказать?