Storyboardの国際化を自動化する

iOS6以降であれば,国際化したStoryboardを一つにまとめる ことができるそうですが,残念ながらそれ以前では,複数のStoryboardを手動で変更しなければなりません.言語数がn,機能数がmとして,一つの言語を追加するたびm個の機能を翻訳し,一つの機能が変更するたび,n個の言語を変更を加えなくてはなりません.人間のやるべきことではないので,自動するスクリプトを作りました.

そのためのスクリプトこちら

概要としては,1つのStoryboardから事前に用意した辞書を使って書き換えを行います.さらに,Storyboardに変更があればそれに応じて自動的に書き換わるようにします.

やり方

// ruby 1.8.7 (1.9では動かない)
ruby Translation.rb YuorDirectory/ en ja

.xcodeprojのディレクトリでguardを起動します.Storyboardを変更するとTranslation.stringsが生成されるはずなので,編集すればあとは自動的に翻訳してくれます.

まとめ

人間がやるべきでないことは自動化しましょう