How to Determine the Current Device Language on iOS

How to Determine the Current Device Language on iOS

28 February 2025 Stephan Petzl Leave a comment Xcode

Understanding how to accurately retrieve the current language setting of an iOS device can be essential for developers looking to provide a localized experience. In this guide, we will explore a method to obtain the device’s current language, ensuring your app can adapt to user preferences effectively.

Retrieving the Device Language

To determine the language currently set on an iOS device, you can utilize the NSLocale class. This approach provides a straightforward method to access the preferred language code. Here’s a simple implementation in Objective-C:

NSString *language = [[NSLocale preferredLanguages] firstObject];

This line of code will return a two-letter language code, such as “en” for English or “es” for Spanish. To convert these codes into full language names, you can create a mapping within your application.

Using Swift for Language Detection

For developers using Swift, the process is equally straightforward:

let language = Locale.preferredLanguages.first ?? "en"

This code snippet will provide the current language code, defaulting to “en” if no language is set. This method ensures compatibility with iOS 9 and later versions.

Practical Application

Once you have obtained the language code, you can implement logic within your app to display content in the user’s preferred language. This is particularly useful for apps that offer multiple language localizations, enhancing user experience by aligning with the device’s settings.

Enhancing Localization with Repeato

For developers aiming to automate testing of their app’s localization features, Repeato offers a robust solution. As a no-code test automation tool, Repeato allows you to efficiently create, run, and maintain tests across iOS, Android, and web applications. Its use of computer vision and AI ensures accurate language validation, while data-driven testing supports comprehensive localization checks. By leveraging Repeato, developers can streamline the testing process, ensuring a seamless experience across different language settings.

For more detailed information on using virtual test devices and running test batches, visit our documentation.

Like this article? there’s more where that came from!