Я пытаюсь отобразить что-то вроде:
$1 health is very low right now.
Где $ 1 относится к обработанному имени пользователя / слову / строке. Например:
MagicalMage's health is very low right now.
Или:
Susy_Suss' health is very low right now.
Или (другой случай):
IBM's dominance is not as big as it once was.
Проблема в том, что не только она должна обрабатывать простое правило Engli sh о выполнении "s" в конце, за исключением строк, оканчивающихся на "s", как показано выше, но также особых причуд любого другого языка !
Например, в Swedi sh это будет:
MagicalMages hälsa är väldigt låg just nu.
Или:
Susy_Suss hälsa är väldigt låg just nu.
Или (что совпадает с версией Engli sh):
Susy_Suss' hälsa är väldigt låg just nu.
Или (обратите внимание на двоеточие вместо апострофа):
IBM:s dominans är inte så stor som den en gång var.
Я уверен, что есть множество других версий для многих других языков / языков также. Всегда есть такие незначительные различия, потому что каждое место / язык любит быть уникальным.
Чтобы прояснить это, я не ожидаю от PHP до перевода целых предложений для меня. Я просто хочу иметь возможность вводить локаль и строку (в данном случае имя пользователя или название компании) для «генитизации», чтобы она выдавала правильно «обработанную» версию для этого языка / региона.
То есть, если я ввожу строку "IBM", а локаль - "en_US", он возвращает:
IBM's
Если я вместо этого задаю ей локаль "sv_SE", он возвращает:
IBM:s
Ясно как день, нет?