Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Trong project này em xin phép dùng 1 vài đoạn code của người trước. Vì em muốn tạo ra 1 project tốt nhất (đối với em) nên cái nào tốt thì em tận dụng. Em đã theo dự án này từ trước, và em chỉ muốn góp sức hoàn thiện dự án này. Nếu có may mắn lắm được merge, thì về năng lực, em vẫn không bằng những người khác, nên với em, việc được merge và việc hợp tác với chị Suesi là 2 chuyện khác nhau.
Front-end:
Em thấy ý tưởng của anh kido-luci rất tốt nên đã dựa theo về collection “languages”, nhưng có thay đổi 1 chút cho phù hợp với việc "nhập ngôn ngữ" thay vì “chọn ngôn ngữ từ danh sách”:
So sánh “danh sách ngôn ngữ” và “nhập ngôn ngữ”:
Back-end:
Em cũng dựa theo kido-luci, bao gồm việc lấy danh sách ngôn ngữ từ Firestore về cho Gemini dịch.
Ở phía user, duyệt danh sách bản dịch của trường "translations", nếu trường "language_names" của nó chứa 1 trong số những ngôn ngữ user chọn, thì lấy bản dịch đó.
Hạn chế:
Gemini có thể phản hồi chậm hơn do nó không chỉ dịch mà còn có nhiệm vụ khác (như trong prompt đã nói).
Khi fetch bản dịch về phải tốn 1 ít thời gian tìm kiếm để lấy ra những ngôn ngữ mà user đã chọn thay vì gọi trực tiếp "translated[selectedCode]" nếu dùng "danh sách ngôn ngữ" (vì có sẵn mã ngôn ngữ), nhưng độ phức tạp của vòng lặp là O(n) nên không đáng kể.
Gemini không ổn định có thể phản hồi sai.
VD:
Giải pháp:
Thiết lập stream cho Gemini. Cái này e sẽ update dần.
Video demo:
https://github.com/user-attachments/assets/a8ef38f7-9da2-49bb-ac3b-d29d369cce17