Swift で NSLocalizedString に tableName を渡して初期化すると "Argument is not a literal string." エラー
Swift でアプリ制作を行っており、多言語対応のため、 NSLocalizedString
メソッドを使用しております。
そこで、下記のようなコードを設定しました。(例は ViewController.swift
ファイルの27行目に記入)
let textString: String = NSLocalizedString(
"keyString",
tableName: "tableNameString",
comment: "commentString")
ターミナルで genstrings *.swift
を行うと、下記のメッセージが表示され、.strings
ファイルが生成されません。
Bad entry in file ViewController.swift (line = 27): Argument is not a literal string.
そこで、tableName:
を削除し、下記のように変更すると、
let textString: String = NSLocalizedString(
"keyString",
comment: "commentString")
localizable.strings
がきちんと生成されます。
ドキュメント等を読むと、 tableName
を設定するとファイルを分けられるようなので、そのようにしたいのですが、どうすればよいのでしょうか?
Objective-C では、 NSLocalizedString
とは別に NSLocalizedStringFromTable
を使うような説明があるのですが、 Swift では、そのような説明は見つかりませんでした。
よろしくお願いいたします。