ObjecTips

Swift & Objective-C で iOS とか macOS とか

2016-02-01から1ヶ月間の記事一覧

XLIFF ファイルを使ってローカライズ

現在一番新しいローカライズの方法が XLIFF を使ったプロジェクト全体のローカライズになる。 この方法は Base Internationalization 方式でのローカライズを想定している。 Xcode のプロジェクトナビゲーターでプロジェクトを選択した状態でメニューから Ed…

ibtool を使って incremental にローカライズ

前回 今回は前回の ibtool を使ったローカライズの話の続き ibtool には incremental localization という機能がある。 コマンドの形式 ibtool --previous-file <old_file> --incremental-file <old_translated_file> --localize-incremental --write <new_translated_file> <current_modified_file> --previous-file <old_file> には翻訳元の古いフ</old_file></current_modified_file></new_translated_file></old_translated_file></old_file>…

ibtool を使ってローカライズ

サンプルに使用する Main.storyboard ファイルは ViewController の上に1つ UILabel が載っているだけの状態 storyboard ファイルの中身のXMLは以下

genstrings で Localizable.strings を生成する

genstrings は C や Objective-C のソースコードファイルから .strings ファイルを生成するユーティリティで、以下のマクロと関数を Localizable.strings に書き出してくれる。 NSLocalizedString("key", comment); CFCopyLocalizedString("key", comment); …

Localizable.strings ファイルを plutil で読み込んで変換する

plutil -- property list utility コマンドで Localizable.strings (strings file format) を読み込む事が出来るらしいので試してみる。 元ファイルは以下 /* Localizable.strings Test */ "Yes" = "はい"; "No" = "いいえ"; "Cancel" = "キャンセル"; "Titl…

Localizable.strings ファイルを Cocoa で読み書きする

ローカライズに用いる Localizable.strings ファイルは NSDictionary で簡単に読み書きができる。 例えば以下のような Localizable.strings があった時 /* Localizable.strings Test */ "Yes" = "はい"; "No" = "いいえ"; "Cancel" = "キャンセル"; "Title" …

SSReadingList で出来る事

リーディングリスト周りのAPIを使って何が出来るのか調査。 Framework は SafariServices.framework でリーディングリスト周りのクラスは SSReadingList のみ。 API は以下 イニシャライザ + (nullable SSReadingList *)defaultReadingList; - (instancetype…

watchOS 2.2 API Diffs

前記事の iOS と同じく β3 での変更点に限らず watchOS 2.2 から watchOS 2.3 で今のところ追加予定のものを調査。 (網羅はしてない) 以下ドキュメント watchOS 2.2 API Diffs / watchOS 2.1 to watchOS 2.2 API Differences https://developer.apple.com/…

iOS 9.3 β3 API Diffs

β3 での変更点に限らず iOS 9.2 から iOS 9.3 で今のところ追加予定のものを調査。 (網羅はしてない) ドキュメントは以下2つ iOS 9.3 API Diff / iOS 9.2 to iOS 9.3 API Differences https://developer.apple.com/library/prerelease/ios/releasenotes/Ge…

UITextView で「リッチテキストとしてペースト」pasteAsRichText を実装する その2

前回 前回の結果を踏まえて copy: メソッドもオーバーライドして挙動をカスタマイズする事にする。 簡単なのは copy: メソッドの super の挙動を呼び出してペーストボードの中身を作ってから自前で追加したいものを加える方法。 実装 - (void)copy:(id)sende…

UITextView で「リッチテキストとしてペースト」pasteAsRichText を実装する

OS Xでの挙動 OS Xの NSTextView には - (void)paste:(id)sender; - (void)pasteAsPlainText:(id)sender; - (void)pasteAsRichText:(id)sender; これらのメソッドがあって、システムのペーストの挙動をそのまま使う事もできるしプレーンテキストやリッチテキ…

AppleScript の JavaScript for Automation で plist ファイルを作成する

上記の記事ではJSONファイルの書き出し保存を行った。 iOS でデータを扱う際には JSON より plist の方が読み込みが簡単なので plist 形式でのファイル保存もさらっておく。 plist の書き出しは NSArray or NSDictionary を writeToFile:atomically: で書き…

AppleScript の JavaScript for Automation で Excel から JSON ファイルを作成する その2

前回 前回のコードではエクセルの1行目の colums が固定長で key も固定の値として実装されていた。 これを改良して可変長に対応するよう修正してみた。 シートが何行何列あってもシート全体を一括して JSON に変換できる。 以下の決まり事で実装 シートの1…

NSString が数字のみで構成されているかを判定する その2

以前 NSCharacterSet の decimalDigitCharacterSet メソッドを使って文字列が数字のみを含んでいるかを調べるコードを書いた。 ここに少しコードを追加して文字列がローカライズとフォーマットされた数字表記のみを含んでいるかどうかを調べるコードにする。…

コピー可能な UILabel

編集不可な文字列を UILabel で表示させつつユーザにコピー操作だけはさせたいという事があったので実装を試みてみた。 コピーの方法は UITextView や UITextField でコピー操作を行う時と同様にポップアップのメニューを表示するようにする。 メニューは UI…