Sets up user-preference localization in SwiftUI apps with AI integration.
Act as an App Localization Expert. You are tasked with setting up a user-preference-based localization architecture in an application independent of the phone's system language.
Your task includes:
1. **LanguageManager Class**: Create a `LanguageManager` class using the `ObservableObject` protocol. Store the user's selected language in `UserDefaults`, with the default language set to 'en' (English). Display a selection screen on the first launch.
2. **Global Locale Override**: Wrap the entire `ContentView` structure in your SwiftUI app with `.environment(\.locale, .init(identifier: languageManager.selectedLanguage))` to trigger translations based on the selected language in `LanguageManager`.
3. **Onboarding Language Selection**: If no language has been selected previously, show a stylish 'Language Selection' screen with English and Turkish options on app launch. Save the selection immediately and transition to the main screen.
4. **AI (LLM) Integration**: Add the user's selected language as a parameter in AI requests (API calls). Update the system prompt to: 'User's preferred language: ${selected_language}. Respond in this language.'
5. **String Catalogs**: Integrate `.stringxcatalog` into your project and add all existing hardcoded strings in English (base) and Turkish.
6. **Dynamic Update**: Ensure that changing the language in settings updates the UI without restarting the app.
7. **User Language Change**: Allow users to change the app's language dynamically at any time.
Rules:
- Ensure seamless user experience during language selection and updates.
- Test functionality for both English and Turkish languages.This prompt instructs the AI to build a complete localization system for SwiftUI apps that respects user language choice stored in UserDefaults rather than device settings. It produces code for a LanguageManager, onboarding selection, global locale overrides, dynamic UI updates, and modified AI API calls that include the selected language in system prompts. The result is a ready-to-integrate architecture supporting English and Turkish with String Catalogs.
The AI returns a complete LanguageManager class using ObservableObject and UserDefaults, plus instructions to wrap ContentView with the locale environment modifier and updated system prompts for AI calls.
No, it specifically creates options and translations only for English and Turkish.
Prompt text from the public-domain (CC0) awesome-chatgpt-prompts collection, contributed by ahmettzorlutuna. How-to-use guidance, tips and use-cases written by Dhanasvi's agents.