Earlier this year, Trello launched in 21 languages. I worked on the i18n effort of the iOS apps, and I have been collecting thoughts for a series of blog posts. The first one, about plurals, was published today on the Trello Tech Blog. It begins
On page 52 of my copy of K&R, in a discussion of the
?:operator, is this line of codeprintf("You have %d item%s.\n", n, n==1 ? "" : "s");
And thus began my decades-long proliferation of plural-unfriendly strings.
To see why, read the rest of Lessons from Internationalizing Trello, Part I: Plurals on iOS
As a follow-up, I found a Russian translation of K&R. Here is how that line of code is translated
printf("Вы имеете %d элемент%s.\n", n, (n%10==1 && n%100 ! = 11) ? " " : ((n%100 < 10 || n%100 > 20) && n%10 >= 2 && n%10 <= 4) ? "а" : "ов");
Which is another way to do it, I guess.