Then you will have an algorithm that knows to translate based on some rules - like the ICU messages format - https://unicode-org.github.io/icu/userguide/format_parse/mes...
In the link there's an example of how such rules look like (they'll be different for each language)
it can largely be turned into six categories of behavior, with tons of languages choosing different boundaries for those categories. ios/osx and android have tools for this, and probably others (I'm just personally familiar with these).
and even English isn't even that simple in the way many treat it - you don't pluralize sentences, parts of sentences change in contrast to each other (a car drives vs cars drive). so e.g. widely used APIs like https://apidock.com/rails/v7.1.3.4/String/pluralize are blatantly misleading merely by existing, and it leads to mistakes in many (most?) languages, and also English, even though the authors of the API speak English.
The right thing to do it:
add_one = "Add one thing" add_multiple = "Add {n} things"
Then you'll provide the full sentence for each language. Of course some languages will need more cases, like slavic language where it's 1, 2-4, 5+, so depending on the languages you need to support you need to put more than 2 strings.
1 osoba
2, 3, 4 osoby
5, 6, 15, 21 osób
22 osoby
25 osób
101, 112 osób