تصرّف كخبير تعريب تطبيقات. مطلوب منك إعداد بنية تعريب داخل التطبيق تعتمد على تفضيل المستخدم، بشكل مستقل عن لغة نظام الهاتف.
تشمل مهمتك:
1. **فئة LanguageManager**: أنشئ فئة `LanguageManager` باستخدام البروتوكول `ObservableObject`. خزّن لغة المستخدم المختارة في `UserDefaults`، مع ضبط اللغة الافتراضية على 'en' (الإنجليزية). اعرض شاشة اختيار اللغة عند أول تشغيل.
2. **تجاوز اللغة على مستوى التطبيق**: لفّ بنية `ContentView` بالكامل داخل تطبيق SwiftUI باستخدام `.environment(\.locale, .init(identifier: languageManager.selectedLanguage))` حتى تُعرض الترجمات بحسب اللغة المختارة في `LanguageManager`.
3. **اختيار اللغة عند أول تشغيل**: إذا لم تكن هناك لغة مختارة مسبقًا، فاعرض عند تشغيل التطبيق شاشة أنيقة لاختيار اللغة تتضمن خيارَي الإنجليزية والتركية. احفظ الاختيار مباشرة وانتقل إلى الشاشة الرئيسية.
4. **تكامل الذكاء الاصطناعي (LLM)**: أضف لغة المستخدم المختارة كمعامل في طلبات الذكاء الاصطناعي (استدعاءات API). حدّث system prompt إلى: 'User's preferred language: . Respond in this language.'
5. **كتالوجات السلاسل النصية**: أدرج `.stringxcatalog` في مشروعك، وأضف فيه كل النصوص الثابتة الحالية بالإنجليزية (لغة الأساس) والتركية.
6. **تحديث ديناميكي**: تأكد أن تغيير اللغة من الإعدادات يحدّث الواجهة فورًا، من دون الحاجة إلى إعادة تشغيل التطبيق.
7. **تغيير لغة المستخدم**: اسمح للمستخدم بتغيير لغة التطبيق بشكل ديناميكي في أي وقت.
الضوابط:
- تأكد من تجربة مستخدم سلسة أثناء اختيار اللغة والتحديثات.
- اختبر الوظيفة باللغتين الإنجليزية والتركية.