Baseによるローカライズ
まとめ
Cocoa Study #57
2013/1/26
Masayuki Nii
nii@msyk.net
1
Agenda

✴

Baseによるローカライズとは

✴

問題点と解決策

2
過去のローカライズ

言語ごとにリソースを用意
利点

•

言語ととにユーザインタフェースなどを定義できる

欠点

•

1つのファイルで行った変更を別のファイルにも行わないと同じ動
作をしない

解決策

•
•

nibtool/ibt...
Baseを利用したローカライズ
Baseファイル+言語ごとのstringsファイル

•
•
•

NIB、Storyboardは、Baseとしてのみ存在
Baseの中の文字列を言語ごとに置き換えるstringsファイルを用意
すると、実行時に...
5
問題点1 - iOS 5は非対応
iOS 6以降のみ

•

iOS 5では、ストーリーボードがないと言われる

6
問題点2 - Baseが作られないことがある

プロジェクトの状態によってはBaseは作られない

•
•
•

Single View Applicationなら作られるが
Emptyなら作られない
Emptyにストーリーボードを加えてもやっ...
問題3 - 作業手順がいまいち分からん
Localizationに言語一覧が見えている場合

•
•

特に何も考えなくてもいいだろう
Single View Applicationのテンプレートだとそうなる

Empty Applicatio...
問題4 - 変更点がstringsに反映されない

Baseにオブジェクトを追加してもstringsはそのまま

•

stringsにないオブジェクトはそのまま表示される

解決策はある

•
•

一度、言語のStoryboard/NIBを...
まとめ

Baseの方が合理的だが、iOS 5で使えないのが難点
操作方法がいまいち不安定だが、結果を見ながら臨機応
変に作業する
Appleのドキュメント

•
•

Internationalize Your App
https://dev...
Upcoming SlideShare
Loading in …5
×

Cocoa勉強会#57-Baseによるローカライズまとめ

628 views
550 views

Published on

Cocoa勉強会#57
2013/1/26
Baseによるローカライズまとめ
新居雅行

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
628
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cocoa勉強会#57-Baseによるローカライズまとめ

  1. 1. Baseによるローカライズ まとめ Cocoa Study #57 2013/1/26 Masayuki Nii nii@msyk.net 1
  2. 2. Agenda ✴ Baseによるローカライズとは ✴ 問題点と解決策 2
  3. 3. 過去のローカライズ 言語ごとにリソースを用意 利点 • 言語ととにユーザインタフェースなどを定義できる 欠点 • 1つのファイルで行った変更を別のファイルにも行わないと同じ動 作をしない 解決策 • • nibtool/ibtoolコマンドで、文字列要素を抜き出しローカライズ 英語リソース+日本語文字列定義より、日本語のリソースを作成 3
  4. 4. Baseを利用したローカライズ Baseファイル+言語ごとのstringsファイル • • • NIB、Storyboardは、Baseとしてのみ存在 Baseの中の文字列を言語ごとに置き換えるstringsファイルを用意 すると、実行時に合成される ビルドしたアプリケーションにも、Base.lproj+English.lprojのい ずれもが存在する すなわち • • デザインをBaseファイルに対して行う 文字列定義をstringsファイルに対して行う しかし… • いくつか問題点がある 4
  5. 5. 5
  6. 6. 問題点1 - iOS 5は非対応 iOS 6以降のみ • iOS 5では、ストーリーボードがないと言われる 6
  7. 7. 問題点2 - Baseが作られないことがある プロジェクトの状態によってはBaseは作られない • • • Single View Applicationなら作られるが Emptyなら作られない Emptyにストーリーボードを加えてもやっぱり作られない 次の問題点と併せてDemo 7
  8. 8. 問題3 - 作業手順がいまいち分からん Localizationに言語一覧が見えている場合 • • 特に何も考えなくてもいいだろう Single View Applicationのテンプレートだとそうなる Empty Applicationから作ったプロジェクト • • 言語を追加してから、Baseを作る それぞれのファイルでMake Localizedボタンをクリック 8
  9. 9. 問題4 - 変更点がstringsに反映されない Baseにオブジェクトを追加してもstringsはそのまま • stringsにないオブジェクトはそのまま表示される 解決策はある • • 一度、言語のStoryboard/NIBを合成して、その後にstringsに分離 する方法 Object IDを参照して、自分でstringsファイルにエントリーを作成 する方法 9
  10. 10. まとめ Baseの方が合理的だが、iOS 5で使えないのが難点 操作方法がいまいち不安定だが、結果を見ながら臨機応 変に作業する Appleのドキュメント • • Internationalize Your App https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/ InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html 10

×