AI Translation (TSAITranslateInterface)
AI Translation provides provider-neutral streaming text translation. Partial callbacks carry cumulative text; completion carries the final result or error.
Prerequisites
TSAIContext *context = [TSAIKit sharedInstance].activeContext;
if (![context supportsAIFeatures:TSAIFeatureTextTranslation]) {
return;
}
id<TSAITranslateInterface> translate = context.translate;
Data models
TSAITranslateConfig
| Property | Type | Description |
|---|---|---|
sourceLanguage | TSAILanguage | Source language; TSAILanguageAuto enables detection |
targetLanguage | TSAILanguage | Concrete target language; Auto and Unknown are invalid |
TSAITranslateConfig *config =
[TSAITranslateConfig configWithSourceLanguage:TSAILanguageAuto
targetLanguage:TSAILanguageEnglishUS];
Results
| Model | Properties | Description |
|---|---|---|
TSAITranslatePartialResult | taskId, text, detectedSourceLanguage, isFinal | Cumulative partial translation |
TSAITranslateResult | taskId, sourceText, translatedText, detectedSourceLanguage | Final translation |
Callback types
| Callback | Description |
|---|---|
TSAITranslatePartialBlock | Invoked zero or more times; text only grows |
TSAITranslateCompletionBlock | Invoked once on success, failure, or cancellation |
Translate text
- (NSString *)translateText:(NSString *)text
config:(TSAITranslateConfig *)config
onPartialResult:(nullable TSAITranslatePartialBlock)onPartialResult
completion:(nullable TSAITranslateCompletionBlock)completion;
NSString *taskId = [translate translateText:@"今天天气很好"
config:config
onPartialResult:^(TSAITranslatePartialResult *partial) {
TSLog(@"Translation: %@", partial.text);
}
completion:^(TSAITranslateResult *result, NSError *error) {
if (error) {
TSLog(@"Translation failed: %@", error.localizedDescription);
return;
}
TSLog(@"Final translation: %@", result.translatedText);
}];
Cancel translation
- (void)cancelTranslationWithTaskId:(NSString *)taskId;
Cancellation completes the original task with a cancellation error. Completed and unknown task IDs are no-ops.
[translate cancelTranslationWithTaskId:taskId];
Language-code mapping
All AI modules share TSAILanguage. Convert to or from BCP-47 when integrating with application configuration or services:
NSString *code = [TSAILanguageMapper bcp47CodeForLanguage:TSAILanguageEnglishUS];
TSAILanguage language = [TSAILanguageMapper languageForBcp47Code:@"en-US"];
See Common Types and Errors for the language list and Auto rules.
Important notes
- Completion is the authoritative terminal signal, including error and cancellation paths.
- The trailing partial may have
isFinal = YES; still wait for completion. TSAILanguageAutois valid only as a source language.- Unsupported languages return
TSAIErrorCodeNotSupported; the SDK does not silently substitute a default.