<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 15.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Translation",
  "identifier" : "/documentation/Translation/LanguageAvailability",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Translation"
    ],
    "preciseIdentifier" : "s:11Translation20LanguageAvailabilityC"
  },
  "title" : "LanguageAvailability"
}
-->

# LanguageAvailability

A check for language support and status.

```
class LanguageAvailability
```

## Overview

Use this class to check and see whether the framework supports the language or language pairing
you want to offer as a translation. For example, to check if someone’s device supports a translation
you can do the following:

```
func translationIsSupported(from source: Locale.Language, to target: Locale.Language) async -> Bool {
    let availability = LanguageAvailability()
    let status = await availability.status(from: source, to: target)
    switch status {
    case .installed, .supported:
        return true
    case .unsupported
        return false
    }
}
```

## Topics

### Creating a language availability

[`init()`](/documentation/Translation/LanguageAvailability/init())

Creates an instance to check what languages are available.

[`init(preferredStrategy:)`](/documentation/Translation/LanguageAvailability/init(preferredStrategy:))

Creates an instance for checking language availability with a preferred translation strategy.

### Configuring language availability

[`preferredStrategy`](/documentation/Translation/LanguageAvailability/preferredStrategy)

The preferred strategy of translation to check availability for.

### Getting supported languages

[`supportedLanguages`](/documentation/Translation/LanguageAvailability/supportedLanguages)

A list of translation languages the framework supports.

### Checking language availability

[`status(from:to:)`](/documentation/Translation/LanguageAvailability/status(from:to:))

Checks for the installation of a specific language pairing and whether it’s ready for translation.

[`status(for:to:)`](/documentation/Translation/LanguageAvailability/status(for:to:))

Checks to see if the framework supports the language pairing based off a string of sample text.

[`Status`](/documentation/Translation/LanguageAvailability/Status)

The availability status for a language or language pairing.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)