Should a sentence without numbers be added to stringsdict?

In the Stringsdict File Format appendix of the Internationalization Guide it states:

Avoid using a .stringsdict file with a string that does not include a number, because a language might define generic singular and plural forms in ways that don’t work well with the one and other categories.

By “does not include a number”, does that mean if a digit is not present in the string it shouldn’t be added to the .stringsdict?

For example: would a string like “Where is your dog?” be a bad candidate because it doesn’t contain a number even though it could be pluralized to “Where are your dogs?“ If so, what is the correct way to localize that example string?

Replies

That's true, your example should not use a Stringsdict.

The documentation you quoted means Stringsdict doesn't support a 1/plural rule.
1 in the sense count == 1.
That's different than the existing rule one. In Russian, one is applied for count == 1, 21, 31, 41, 51, 61…

Then, the way to do this currently is to check == 1 literally in code.



However, what's supported from Stringsdict is to remove numbers for specific cases, per language.
For instance:
  • Close %#@numberOfTabs@

    • one (1):    This Tab

    • other (*):  All %d Tabs

In Russian would be localized as:
  • Закрыть %#@numberOfTabs@

    • one (1, 21, 31…):            %d вкладку

    • few (2, 3, 4, 22, 23…):  %d вкладки

    • many (5, 6, 7…):            %d вкладок



To be complete here, if you want a “Close Both Tabs” you cannot use the case two.
First, it wouldn't work in English because it only knows rules one/other. Then, some language like Slovenian have two to describe 2, 102, 202…
So here you'd want a check in code for == 2 as well.