文字列をローカライズしようとすると、以前の値が返されます。 this postに、実際にキャッシュを無効にする必要があることがわかりました。SwiftのNSBundleからキャッシュを無効にする方法
これは多かれ少なかれ私が試したコードです。 localizableStringsPath
の中には、実際にはinetからダウンロードした翻訳が実際に表示されますが、bundleは前の値を返します。私は、アプリケーションを閉じて、その後、localizableStringsPath
から以前の値を返すしなければならない。
func translateFromInet(key: String) -> String {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first ?? ""
let localizableStringsPath = documentsPath + "/Localizable.strings" // This file is downloaded from the inet with custom translations
let bundle = Bundle(path: documentsPath)
return bundle!.localizedString(forKey: key, value: nil, table: nil)
}
、あなたは何をすべきか「それは前の値を返す」という意味ですか?あなたがリンクした質問は、そのポスターの非常に珍しい要件であり、あなたに当てはまる可能性は低いです。より具体的に何をしようとしているのか、何が起こるのか、実際に何が起こっているのかを指定できますか?いくつかのコードを教えてください。 –
リモートローカライズされた文字列を含むファイルをダウンロードして、アプリケーションに適用する必要があります。アプリケーションが起動すると、ファイルをダウンロードし、documentsDictoryに追加してから、前のパスのバンドルを作成して翻訳を取得します。しかし、私はそれらの値がキャッシュされているので、実際のデータを取得するために、アプリケーションを閉じて再起動する必要があります。投稿したリンクを読んでください。 – Godfather
さて、私は問題を理解していると思います。これまでに試したコードを提供できますか? NSLocalizedStringFromTableInBundleを使用していますか? –