Международная библиотека плюрализации для Objective-C?

Я интернационализирую свое приложение и ищу решение, как работать с множественными формами. Я наткнулся на проект Mozilla PluralForm , который по существу абстрагирует проблему множественного числа для интернационализации. Вот как это работает:

  1. Существует ряд «правил множественного числа», которым могут следовать языки. Каждый язык соответствует одному и только одному из множества правил множественного числа (в документации Mozilla есть 15 потенциальных правил множественного числа). Например, в языках с правилом 0 (таких как китайский) нет форм множественного числа, и поэтому есть только одна необходимая словоформа. В языках с правилом 1 (таких как немецкий) каждое слово имеет две различные формы множественного числа. И так далее, в зависимости от того, как совпадают правила.

  2. Когда вы программируете интернационализированную строку, вы не только передаете строку, которая будет интернационализирована, но и число, которое вы хотите использовать во множественном числе существительного:

    print ( "У вас есть" + num + "" + PluralForm.get (num, downloads) + ".");

    В Objective-C это было бы несколько иначе:

    NSString * str = [NSString stringWithFormat: NSLocalizedStringFromTable (@ "% d Items"), myNumber];

    Конечно, приведенный выше пример Objective-C не решает проблему множественного числа.

  3. Когда функция PluralForm.get получает вызов, в зависимости от языка, который используется в настоящее время, он применяет множественное число и извлекает правильную интернационализированную строку из файла строк в зависимости от того, какому конкретному подправилу он должен следовать.

Преимущество PluralForm очевидно (по крайней мере, для меня ). Он абстрагирует фактические языковые правила от кодировщика, так что их не нужно дублировать во всех местах, где вам приходится иметь дело с множественным числом.

Я бы хотел использовать такую ​​систему, как при программировании моего iPhone Программы. Есть ли проект или код, который переносит PluralForm из Mozilla на objective-c?

14
задан Dan Rosenstark 16 January 2012 в 16:09
поделиться