美文网首页iOS进阶+实战
iOS开发之Translation API

iOS开发之Translation API

作者: YungFan | 来源:发表于2024-11-19 12:15 被阅读0次

介绍

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

API

translationPresentation

  • iOS 17.4 之后新增的翻译修饰符,可以弹出翻译叠加层实现应用内翻译。
  • 需要导入Translation模块。

案例

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

  • iOS 18 之后新增的翻译修饰符,根据翻译要求执行翻译任务,而无需借助系统的弹出层。
  • 需要导入Translation模块。

案例

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

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

相关文章

网友评论

    本文标题:iOS开发之Translation API

    本文链接:https://www.haomeiwen.com/subject/wwvvjjtx.html