Smartling (платформа управления переводами) выпустила библиотеку с открытым исходным кодом для управления множественными числами в iOS.Разобравшись со множеством клиентов, у которых проблемы с множеством iOS и не нашли решения, которое бы работало так, как нам и нашим клиентам, мы решили создать свой собственный.
Библиотека берет ключи для строк множественного числа и расширяет ихсодержать форму множественного числа, основанную на правилах множественного числа CLDR.Библиотека предоставляет альтернативную функцию NSLocalizedString, которая называется SLPluralizedString, для поиска.
Исходный файл на английском языке будет выглядеть следующим образом:
"%d Items Processed##{one}" = "1 Item Processed";
"%d Items Processed##{other}" = "%d Items Processed";
И вы будете использовать функцию SLPluralizedString для поискастрока:
SLPluralizedString(@”%d Items Processed”, numItems, @”Number of items processed”);
В переведенном русском файле будет соответствующее количество ключей / значений для языка:
"%d Items Processed##{one}" = "%d элемент обработан";
"%d Items Processed##{few}" = "%d элемента обработано";
"%d Items Processed##{many}" = "%d элементов обработано";
"%d Items Processed##{other}" = "%d элемента обработано";
Фактический код не нужно менять в зависимости от языка,Одна функция работает на всех языках и возвращает соответствующую переведенную строку.
Не стесняйтесь делиться комментариями, улучшениями и т. Д.