---
title: "init(installedSource:target:preferredStrategy:)"
framework: translation
role: symbol
role_heading: Initializer
path: "translation/translationsession/init(installedsource:target:preferredstrategy:)"
---

# init(installedSource:target:preferredStrategy:)

Creates a translation session to translate between a given source and target language already installed on device.

## Declaration

```swift
convenience init(installedSource source: Locale.Language, target: Locale.Language?, preferredStrategy: TranslationSession.Strategy)
```

## Parameters

- `preferredStrategy`: The translation approach to use. doc://com.apple.Translation/documentation/Translation/TranslationSession/Strategy/highFidelity uses Apple Intelligence models when available on device, or falls back to doc://com.apple.Translation/documentation/Translation/TranslationSession/Strategy/lowLatency when those models aren’t available. The lowLatency strategy uses traditional models for translation.

## Discussion

Discussion If one or both languages aren’t installed on the device, attempting to translate will throw errors. To get the person’s permission to download languages that aren’t already installed, translate using a TranslationSession provided by translationTask(_:action:) or translationTask(source:target:action:) . note: If you created TranslationSession using init(installedSource:target:), you don’t need a .translationTask(); however, you will need a sourceLanguage .

## See Also

### Initalizing a translation session

- [init(installedSource:target:)](translation/translationsession/init(installedsource:target:).md)
