Feature: Russian language support & Vehicle Requests improvements
- Add Russian language support (title_ru, subtitle_ru) for hero banners - Add fuel/transmission translations for Mongolian (경유→Дизель, 오토→Автомат) - Improve Vehicle Requests admin page: - Display real request ID and user email - Show detailed request info (maker, grade, year, fuel, mileage) - Replace modal search with Cars page integration - Add "Add to Request" flow in Cars page for vehicle recommendations - Fix image URL handling in FilmStripSlider and car detail page 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,23 +23,24 @@ ALLOWED_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".webp"}
|
||||
|
||||
|
||||
def get_localized_field(obj, field: str, lang: str) -> Optional[str]:
|
||||
"""Get localized field value with fallback to Korean then English"""
|
||||
"""Get localized field value with fallback to English"""
|
||||
# 1. 선택된 언어의 필드
|
||||
localized = getattr(obj, f"{field}_{lang}", None)
|
||||
if localized:
|
||||
return localized
|
||||
# Fallback to Korean
|
||||
ko_value = getattr(obj, f"{field}_ko", None)
|
||||
if ko_value:
|
||||
return ko_value
|
||||
# Fallback to English
|
||||
return getattr(obj, f"{field}_en", None)
|
||||
# 2. 영어 폴백
|
||||
en_value = getattr(obj, f"{field}_en", None)
|
||||
if en_value:
|
||||
return en_value
|
||||
# 3. 한국어 폴백 (마지막 수단)
|
||||
return getattr(obj, f"{field}_ko", None)
|
||||
|
||||
|
||||
# ==================== Public Endpoints ====================
|
||||
|
||||
@router.get("/", response_model=List[HeroBannerLocalizedResponse])
|
||||
def get_hero_banners(
|
||||
lang: str = Query("ko", regex="^(ko|en|mn)$"),
|
||||
lang: str = Query("ko", regex="^(ko|en|mn|ru)$"),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""활성 히어로 배너 목록 조회 (Public)"""
|
||||
|
||||
Reference in New Issue
Block a user