その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

英単語の単数形/複数形変換をメソッド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回 の一部を焼き直したものです。
(長めの記事の最後の方にチラッと出しただけなので、そこまで読んでない人が多いと思い、こちらに再掲しました)