apple_native_translate 0.1.2
apple_native_translate: ^0.1.2 copied to clipboard
On-device text translation using Apple's Translation framework on iOS 18 and later, exposed to Flutter with a simple batch API and a safe fallback.
0.1.2 #
- 翻訳のたびに Apple の確認画面が一瞬だけ出ることがある問題を直しました。 原因は、翻訳のたびに見えない SwiftUI のビューを貼って剥がしていたことです。 貼った瞬間にシステム側の翻訳 UI が立ち上がり始め、訳が速ければ見える前に 剥がされ、少し遅いと一瞬だけ見えていました。規則性が無いように見えたのは この競争のためです。
- ビューは最初の1回だけ貼り、以後は剥がしません。翻訳のたびに
TranslationSession.Configurationを差し替える/invalidate()して.translationTaskを動かします。 - 依頼は1件ずつ順番に流します。同時に走らせるとどの結果がどの依頼のものか 分からなくなるためです。
0.1.1 #
- すでに端末に入っている言語で、Apple の取り込み画面が一瞬だけ出てしまう
問題を直しました。呼び出しの前に取り込み状況を調べ、入っているときは
prepareTranslation()を呼びません。 - 取り込みだけを頼んだ(
prepare)ときにすでに入っていれば、 画面を貼らずにそのまま返します。 - 対応していない言語の組み合わせは、その場で失敗を返すようになりました。
0.1.0 #
- 初版。iOS 18 以降で Apple の Translation framework を使って端末内で翻訳します。
isAvailable/status/prepare/translateの4つを用意しました。- iOS 18 未満と iOS 以外では、呼んでも安全に失敗します(例外は投げません)。