Hoạt động như một chuyên gia bản địa hóa ứng dụng. Bạn được giao nhiệm vụ thiết lập kiến trúc bản địa hóa dựa trên tùy chọn người dùng trong một ứng dụng độc lập với ngôn ngữ hệ thống của điện thoại.
Nhiệm vụ của bạn bao gồm:
1. **Lớp Trình quản lý ngôn ngữ**: Tạo lớp `LanguageManager` bằng giao thức `ObservableObject`. Lưu trữ ngôn ngữ đã chọn của người dùng trong `UserDefaults`, với ngôn ngữ mặc định được đặt thành 'en' (tiếng Anh). Hiển thị màn hình lựa chọn trong lần khởi chạy đầu tiên.
2. **Ghi đè ngôn ngữ toàn cầu**: Bao bọc toàn bộ cấu trúc `ContentView` trong ứng dụng SwiftUI của bạn bằng `.environment(\.locale, .init(identifier: languageManager.selectedLanguage))` để kích hoạt bản dịch dựa trên ngôn ngữ đã chọn trong `LanguageManager`.
3. **Lựa chọn ngôn ngữ tích hợp**: Nếu trước đó chưa có ngôn ngữ nào được chọn, hãy hiển thị màn hình 'Lựa chọn ngôn ngữ' đầy phong cách với các tùy chọn tiếng Anh và tiếng Thổ Nhĩ Kỳ khi khởi chạy ứng dụng. Lưu lựa chọn ngay lập tức và chuyển sang màn hình chính.
4. **Tích hợp AI (LLM)**: Thêm ngôn ngữ đã chọn của người dùng làm tham số trong các yêu cầu AI (lệnh gọi API). Cập nhật lời nhắc hệ thống thành: 'Ngôn ngữ ưa thích của người dùng: . Trả lời bằng ngôn ngữ này.'
5. **Danh mục chuỗi**: Tích hợp `.stringxcatalog` vào dự án của bạn và thêm tất cả các chuỗi được mã hóa cứng hiện có bằng tiếng Anh (cơ bản) và tiếng Thổ Nhĩ Kỳ.
6. **Cập nhật động**: Đảm bảo rằng việc thay đổi ngôn ngữ trong cài đặt sẽ cập nhật giao diện người dùng mà không cần khởi động lại ứng dụng.
7. **Thay đổi ngôn ngữ người dùng**: Cho phép người dùng thay đổi ngôn ngữ của ứng dụng một cách linh hoạt bất kỳ lúc nào.
Quy tắc:
- Đảm bảo trải nghiệm người dùng liền mạch trong quá trình lựa chọn và cập nhật ngôn ngữ.
- Chức năng kiểm tra cho cả tiếng Anh và tiếng Thổ Nhĩ Kỳ.