iOS进阶+实战

iOS开发之Translation API

2024-11-19  本文已影响0人  YungFan

介绍

iOS 中内置了一款非常好用的翻译 App:Translate,支持翻译、相机翻译与对话。在 iOS 17.4 之后,Apple 逐步开发了相关的 SwiftUI API。开发者只需要调用 API 就能在自己的 App 内实现类似 Translate App 的翻译效果。

API

translationPresentation

案例

import SwiftUI
import Translation

struct ContentView: View {
    @State private var showTranslation = false
    @State private var originalText = "Using Translation API in your App after iOS 17.4"

    var body: some View {
        VStack {
            Text(originalText)

            Button("Translate") {
                showTranslation.toggle()
            }
        }
        .padding()
        .translationPresentation(isPresented: $showTranslation, text: originalText) { translatedText in
            print(translatedText)
            originalText = translatedText
        }
    }
}

效果

translationPresentation.gif

translationTask

案例

import SwiftUI
import Translation

struct ContentView: View {
    @State private var article = "iOS 18 之后在应用程序中可以使用翻译 API。"
    // 翻译配置
    @State private var configuration: TranslationSession.Configuration?

    var body: some View {
        NavigationStack {
            Text(article)
                .toolbar {
                    Button {
                        // 汉翻英
                        configuration = TranslationSession.Configuration(source: .init(identifier: "zh-Hans-CN"), target: .init(identifier: "en-US"))
                    } label: {
                        Label("Translate", systemImage: "translate")
                            .labelStyle(.iconOnly)
                    }
                }
                .translationTask(configuration) { session in
                    // 翻译
                    if let response = try? await session.translate(article) {
                        article.append("\n\n" + response.targetText)
                    }
                }
        }
    }
}

效果

translationTask.gif

注意:需要在真机运行测试。

上一篇 下一篇

猜你喜欢

热点阅读