Ответы пользователя по тегу WordPress
  • Как управлять порядком слов в предложении при переводе?

    OxCom
    @OxCom
    Я бы посоветовал посмотреть как реализован перевод в других системах. Например в Symfony + Twig.

    Идея проста: использовать placeholder'ы. Например:
    1) Есть строка 'Пройдено %user_lessons%' из %total_lessons% %lessons%'.
    2) Определяем язык и ищем соответствие этой строке в других языках. Если нет, то fallback на исходную строку. Допустим для английского будет '%user_lessons% of %total_lessons% %lessons% completed.'.
    3) Дальше можно использовать strtr() вот примерно в таком виде:

    <?php
            
    $str = '%user_lessons% of %total_lessons% %lessons% completed.';
    $trans = strtr($str, [
        '%user_lessons%' => 3,
        '%total_lessons%' => 10,
        '%lessons%' => 'lessons'
    ]);
    
    echo $trans;


    4) Доработать напильником, чтобы работало в проекте.
    Ответ написан