英単語の単数形/複数形変換をメソッド1つで行えるようにする NSString のカテゴリ
iOS アプリを英語ローカライズする際,単数形/複数形の取り扱いはなかなかやっかいです。-s, -es の違いを始めとして,不可算名詞,person/peopleのようにイレギュラーなものもあります。
それら諸々のルールをプロパティリストファイルに記述し,
- (NSString *)pluralizeString; - (NSString *)singularizeString;
このように非常にシンプルなメソッドで単数/複数変換を行えるようにしたカテゴリが ActiveSupportInflector です。
使い方
1. ダウンロード
https://github.com/tomafro/ActiveSupportInflector
2. プロジェクトに追加
NSString+ActiveSupportInflector クラス、ActiveSupportInflector クラスと、ActiveSupportInflector.plist をプロジェクトに追加します。
どんな変換ができるようになる?
本カテゴリによってどんな変換ができるようになるかは,リポジトリ内に付随しているテストケース用のプロパティリストファイルActiveSupportInflectorTest.plistを見ると一目瞭然ですので,使用を検討されている方はチラッとのぞいてみてください。以下に一部抜粋しておきます。
#イレギュラーケースがまとまっているので、英語の勉強にもなります。。
("search", "searches"), ("stack", "stacks"), ("fish", "fish"), ("category", "categories"), ("ability", "abilities"), ("agency", "agencies"), ("index", "indices"), ("wife", "wives"), ("safe", "saves"), ("half", "halves"), ("person", "people"), ("man", "men"), ("woman", "women"), ("basis", "bases"),
※本記事は、gihyo.jpの連載第3回 の一部を焼き直したものです。
(長めの記事の最後の方にチラッと出しただけなので、そこまで読んでない人が多いと思い、こちらに再掲しました)