Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
В Qt с числительными проблема согласования решается тремя формами, которые можно задать при переводе (например, "%n слот", "%n слота", "%n слотов"), а правила выбора соответствующей числу формы зависят от языка.
Но вот можно придумать еще нюанс:
"С 99 лет"
"Со 100 лет"
не забывайте склонять
трассировка того, что я написал
с 0 let
с 1 goda
с 2 let
с 3 let
с 4 let
с 5 let
с 6 let
с 7 let
с 8 let
с 9 let
с 10 let
с 11 let
с 12 let
с 13 let
с 14 let
с 15 let
с 16 let
с 17 let
с 18 let
с 19 let
с 20 let
с 21 goda
с 22 let
с 23 let
......
Ну по смыслу кода, раз склонение в 10-15 идет по последнему числу, претензий нет.
А вот конструкции с двумя тернарниками в одном выражении мое сознание автоматически помечает как говно. Особенно в ПХП, с его кривой связностью в тернарниках, на которую вы, кстати, и нарвались написав это выражение, которое работает по счастливой случайности, и эквивалентно вот такому коду:
ветка началась с того что любое решение с помощью substr будет не что иное как говнокод, закончилась тем, что не понравились тернарики, тоесть ушли от темы 🙂 ок, можно переписать в более привычные if , но думаю не стоит. Тут все ясно...
P.S. Как грит яндекс, офигенно будет setlocale + ngettext.
Но вот можно придумать еще нюанс:
"С 99 лет"
"Со 100 лет"
Это для того чтобы найти последнюю цифру числа?
Отдельным постом, пожалуйста.
при детальном исследовании массива оказалось, что периодически там есть не просто "число", а вот например такое: "10-15"
substr($txt,-2)=='11'?'...':substr($txt,-1)!='1' ? 'let' : 'goda' ;
и что тут не так? тянет на отдельный пост?
трассировка того, что я написал
с 0 let
с 1 goda
с 2 let
с 3 let
с 4 let
с 5 let
с 6 let
с 7 let
с 8 let
с 9 let
с 10 let
с 11 let
с 12 let
с 13 let
с 14 let
с 15 let
с 16 let
с 17 let
с 18 let
с 19 let
с 20 let
с 21 goda
с 22 let
с 23 let
......
А вот конструкции с двумя тернарниками в одном выражении мое сознание автоматически помечает как говно. Особенно в ПХП, с его кривой связностью в тернарниках, на которую вы, кстати, и нарвались написав это выражение, которое работает по счастливой случайности, и эквивалентно вот такому коду:Поэтому эта ваша строчка заслуживает почетное место в архиве говнокода.
P.S. Более-менее кошерный вариант с substr:
p.s. согласен что ваш вариант более кошерный...