localization #2

Merged
trevor merged 4 commits from localization into main 2025-09-13 06:17:18 +00:00
24 changed files with 2655 additions and 22 deletions
Showing only changes of commit e81725e4d5 - Show all commits

View File

@@ -29,6 +29,14 @@ export class TranslationController {
{ text: '🇩🇪 Deutsch', callback_data: 'set_language_de' },
{ text: '🇮🇹 Italiano', callback_data: 'set_language_it' }
],
[
{ text: '🇵🇹 Português', callback_data: 'set_language_pt' },
{ text: '🇨🇳 中文', callback_data: 'set_language_zh' }
],
[
{ text: '🇯🇵 日本語', callback_data: 'set_language_ja' },
{ text: '🇰🇷 한국어', callback_data: 'set_language_ko' }
],
[{ text: t('buttons.back'), callback_data: 'back_to_settings' }]
]
};
@@ -48,7 +56,11 @@ export class TranslationController {
'es': '🇪🇸 Español',
'fr': '🇫🇷 Français',
'de': '🇩🇪 Deutsch',
'it': '🇮🇹 Italiano'
'it': '🇮🇹 Italiano',
'pt': '🇵🇹 Português',
'zh': '🇨🇳 中文',
'ja': '🇯🇵 日本語',
'ko': '🇰🇷 한국어'
};
return `✅ Язык интерфейса изменен на ${languageNames[languageCode] || languageCode}`;
@@ -163,7 +175,11 @@ export class TranslationController {
'es': '🇪🇸 Español',
'fr': '🇫🇷 Français',
'de': '🇩🇪 Deutsch',
'it': '🇮🇹 Italiano'
'it': '🇮🇹 Italiano',
'pt': '🇵🇹 Português',
'zh': '🇨🇳 中文',
'ja': '🇯🇵 日本語',
'ko': '🇰🇷 한국어'
};
let text = `🌐 ${t('translation.translated')}\n`;

101
src/locales/de.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "Willkommen beim Telegram Tinder Bot! 💕",
"description": "Finde deine Seelenverwandte direkt hier!",
"getStarted": "Loslegen"
},
"profile": {
"create": "Profil Erstellen",
"edit": "Profil Bearbeiten",
"view": "Profil Ansehen",
"name": "Name",
"age": "Alter",
"city": "Stadt",
"bio": "Über mich",
"photos": "Fotos",
"gender": "Geschlecht",
"lookingFor": "Suche nach",
"datingGoal": "Dating-Ziel",
"hobbies": "Hobbys",
"lifestyle": "Lebensstil",
"male": "Männlich",
"female": "Weiblich",
"both": "Beide",
"relationship": "Beziehung",
"friendship": "Freundschaft",
"dating": "Dating",
"hookup": "Abenteuer",
"marriage": "Ehe",
"networking": "Networking",
"travel": "Reisen",
"business": "Geschäft",
"other": "Andere"
},
"search": {
"title": "Profile Durchsuchen",
"noProfiles": "Keine weiteren Profile! Versuche es später erneut.",
"like": "❤️ Gefällt mir",
"dislike": "👎 Überspringen",
"superLike": "⭐ Super Like",
"match": "Es ist ein Match! 🎉"
},
"vip": {
"title": "VIP-Suche",
"premiumRequired": "Diese Funktion ist nur für Premium-Nutzer verfügbar",
"filters": "Filter",
"ageRange": "Altersbereich",
"cityFilter": "Stadt",
"datingGoalFilter": "Dating-Ziel",
"hobbiesFilter": "Hobbys",
"lifestyleFilter": "Lebensstil",
"applyFilters": "Filter Anwenden",
"clearFilters": "Filter Löschen",
"noResults": "Keine Profile mit deinen Filtern gefunden",
"translateProfile": "🌐 Profil Übersetzen"
},
"premium": {
"title": "Premium-Abonnement",
"features": "Premium-Features:",
"vipSearch": "• VIP-Suche mit Filtern",
"profileTranslation": "• Profilübersetzung in deine Sprache",
"unlimitedLikes": "• Unbegrenzte Likes",
"superLikes": "• Zusätzliche Super-Likes",
"price": "Preis: 4,99€/Monat",
"activate": "Premium Aktivieren"
},
"translation": {
"translating": "Profil wird übersetzt...",
"translated": "Profil übersetzt:",
"error": "Übersetzungsfehler. Bitte versuche es später erneut.",
"premiumOnly": "Übersetzung ist nur für Premium-Nutzer verfügbar"
},
"commands": {
"start": "Hauptmenü",
"profile": "Mein Profil",
"search": "Durchsuchen",
"vip": "VIP-Suche",
"matches": "Matches",
"premium": "Premium",
"settings": "Einstellungen",
"help": "Hilfe"
},
"buttons": {
"back": "« Zurück",
"next": "Weiter »",
"save": "Speichern",
"cancel": "Abbrechen",
"confirm": "Bestätigen",
"edit": "Bearbeiten",
"delete": "Löschen",
"yes": "Ja",
"no": "Nein"
},
"errors": {
"profileNotFound": "Profil nicht gefunden",
"profileIncomplete": "Bitte vervollständige dein Profil",
"ageInvalid": "Bitte gib ein gültiges Alter ein (18-100)",
"photoRequired": "Bitte füge mindestens ein Foto hinzu",
"networkError": "Netzwerkfehler. Bitte versuche es später erneut.",
"serverError": "Serverfehler. Bitte versuche es später erneut."
}
}

101
src/locales/es.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "¡Bienvenido al Bot de Tinder en Telegram! 💕",
"description": "¡Encuentra a tu alma gemela aquí mismo!",
"getStarted": "Comenzar"
},
"profile": {
"create": "Crear Perfil",
"edit": "Editar Perfil",
"view": "Ver Perfil",
"name": "Nombre",
"age": "Edad",
"city": "Ciudad",
"bio": "Acerca de",
"photos": "Fotos",
"gender": "Género",
"lookingFor": "Buscando",
"datingGoal": "Objetivo de Cita",
"hobbies": "Aficiones",
"lifestyle": "Estilo de Vida",
"male": "Masculino",
"female": "Femenino",
"both": "Ambos",
"relationship": "Relación",
"friendship": "Amistad",
"dating": "Citas",
"hookup": "Aventura",
"marriage": "Matrimonio",
"networking": "Networking",
"travel": "Viajes",
"business": "Negocios",
"other": "Otro"
},
"search": {
"title": "Explorar Perfiles",
"noProfiles": "¡No hay más perfiles! Inténtalo más tarde.",
"like": "❤️ Me Gusta",
"dislike": "👎 Pasar",
"superLike": "⭐ Super Like",
"match": "¡Es un match! 🎉"
},
"vip": {
"title": "Búsqueda VIP",
"premiumRequired": "Esta función está disponible solo para usuarios premium",
"filters": "Filtros",
"ageRange": "Rango de Edad",
"cityFilter": "Ciudad",
"datingGoalFilter": "Objetivo de Cita",
"hobbiesFilter": "Aficiones",
"lifestyleFilter": "Estilo de Vida",
"applyFilters": "Aplicar Filtros",
"clearFilters": "Limpiar Filtros",
"noResults": "No se encontraron perfiles con tus filtros",
"translateProfile": "🌐 Traducir Perfil"
},
"premium": {
"title": "Suscripción Premium",
"features": "Características premium:",
"vipSearch": "• Búsqueda VIP con filtros",
"profileTranslation": "• Traducción de perfiles a tu idioma",
"unlimitedLikes": "• Me gusta ilimitados",
"superLikes": "• Super likes adicionales",
"price": "Precio: $4.99/mes",
"activate": "Activar Premium"
},
"translation": {
"translating": "Traduciendo perfil...",
"translated": "Perfil traducido:",
"error": "Error de traducción. Por favor, inténtalo más tarde.",
"premiumOnly": "La traducción está disponible solo para usuarios premium"
},
"commands": {
"start": "Menú Principal",
"profile": "Mi Perfil",
"search": "Explorar",
"vip": "Búsqueda VIP",
"matches": "Matches",
"premium": "Premium",
"settings": "Configuración",
"help": "Ayuda"
},
"buttons": {
"back": "« Atrás",
"next": "Siguiente »",
"save": "Guardar",
"cancel": "Cancelar",
"confirm": "Confirmar",
"edit": "Editar",
"delete": "Eliminar",
"yes": "Sí",
"no": "No"
},
"errors": {
"profileNotFound": "Perfil no encontrado",
"profileIncomplete": "Por favor completa tu perfil",
"ageInvalid": "Por favor ingresa una edad válida (18-100)",
"photoRequired": "Por favor agrega al menos una foto",
"networkError": "Error de red. Por favor inténtalo más tarde.",
"serverError": "Error del servidor. Por favor inténtalo más tarde."
}
}

101
src/locales/fr.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "Bienvenue sur le Bot Tinder Telegram ! 💕",
"description": "Trouvez votre âme sœur ici même !",
"getStarted": "Commencer"
},
"profile": {
"create": "Créer un Profil",
"edit": "Modifier le Profil",
"view": "Voir le Profil",
"name": "Nom",
"age": "Âge",
"city": "Ville",
"bio": "À propos",
"photos": "Photos",
"gender": "Genre",
"lookingFor": "Recherche",
"datingGoal": "Objectif de Rencontre",
"hobbies": "Loisirs",
"lifestyle": "Style de Vie",
"male": "Masculin",
"female": "Féminin",
"both": "Les Deux",
"relationship": "Relation",
"friendship": "Amitié",
"dating": "Rendez-vous",
"hookup": "Aventure",
"marriage": "Mariage",
"networking": "Réseautage",
"travel": "Voyage",
"business": "Affaires",
"other": "Autre"
},
"search": {
"title": "Parcourir les Profils",
"noProfiles": "Plus de profils ! Réessayez plus tard.",
"like": "❤️ J'aime",
"dislike": "👎 Passer",
"superLike": "⭐ Super Like",
"match": "C'est un match ! 🎉"
},
"vip": {
"title": "Recherche VIP",
"premiumRequired": "Cette fonction est disponible uniquement pour les utilisateurs premium",
"filters": "Filtres",
"ageRange": "Tranche d'Âge",
"cityFilter": "Ville",
"datingGoalFilter": "Objectif de Rencontre",
"hobbiesFilter": "Loisirs",
"lifestyleFilter": "Style de Vie",
"applyFilters": "Appliquer les Filtres",
"clearFilters": "Effacer les Filtres",
"noResults": "Aucun profil trouvé avec vos filtres",
"translateProfile": "🌐 Traduire le Profil"
},
"premium": {
"title": "Abonnement Premium",
"features": "Fonctionnalités premium :",
"vipSearch": "• Recherche VIP avec filtres",
"profileTranslation": "• Traduction de profils dans votre langue",
"unlimitedLikes": "• J'aime illimités",
"superLikes": "• Super likes supplémentaires",
"price": "Prix : 4,99€/mois",
"activate": "Activer Premium"
},
"translation": {
"translating": "Traduction du profil...",
"translated": "Profil traduit :",
"error": "Erreur de traduction. Veuillez réessayer plus tard.",
"premiumOnly": "La traduction est disponible uniquement pour les utilisateurs premium"
},
"commands": {
"start": "Menu Principal",
"profile": "Mon Profil",
"search": "Parcourir",
"vip": "Recherche VIP",
"matches": "Matches",
"premium": "Premium",
"settings": "Paramètres",
"help": "Aide"
},
"buttons": {
"back": "« Retour",
"next": "Suivant »",
"save": "Sauvegarder",
"cancel": "Annuler",
"confirm": "Confirmer",
"edit": "Modifier",
"delete": "Supprimer",
"yes": "Oui",
"no": "Non"
},
"errors": {
"profileNotFound": "Profil non trouvé",
"profileIncomplete": "Veuillez compléter votre profil",
"ageInvalid": "Veuillez entrer un âge valide (18-100)",
"photoRequired": "Veuillez ajouter au moins une photo",
"networkError": "Erreur réseau. Veuillez réessayer plus tard.",
"serverError": "Erreur serveur. Veuillez réessayer plus tard."
}
}

101
src/locales/it.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "Benvenuto su Telegram Tinder Bot! 💕",
"description": "Trova la tua anima gemella proprio qui!",
"getStarted": "Inizia"
},
"profile": {
"create": "Crea Profilo",
"edit": "Modifica Profilo",
"view": "Visualizza Profilo",
"name": "Nome",
"age": "Età",
"city": "Città",
"bio": "Info",
"photos": "Foto",
"gender": "Genere",
"lookingFor": "Cerco",
"datingGoal": "Obiettivo Appuntamenti",
"hobbies": "Hobby",
"lifestyle": "Stile di Vita",
"male": "Maschio",
"female": "Femmina",
"both": "Entrambi",
"relationship": "Relazione",
"friendship": "Amicizia",
"dating": "Appuntamenti",
"hookup": "Avventura",
"marriage": "Matrimonio",
"networking": "Networking",
"travel": "Viaggi",
"business": "Affari",
"other": "Altro"
},
"search": {
"title": "Sfoglia Profili",
"noProfiles": "Nessun altro profilo! Riprova più tardi.",
"like": "❤️ Mi Piace",
"dislike": "👎 Salta",
"superLike": "⭐ Super Like",
"match": "È un match! 🎉"
},
"vip": {
"title": "Ricerca VIP",
"premiumRequired": "Questa funzione è disponibile solo per utenti premium",
"filters": "Filtri",
"ageRange": "Fascia di Età",
"cityFilter": "Città",
"datingGoalFilter": "Obiettivo Appuntamenti",
"hobbiesFilter": "Hobby",
"lifestyleFilter": "Stile di Vita",
"applyFilters": "Applica Filtri",
"clearFilters": "Cancella Filtri",
"noResults": "Nessun profilo trovato con i tuoi filtri",
"translateProfile": "🌐 Traduci Profilo"
},
"premium": {
"title": "Abbonamento Premium",
"features": "Funzionalità premium:",
"vipSearch": "• Ricerca VIP con filtri",
"profileTranslation": "• Traduzione profili nella tua lingua",
"unlimitedLikes": "• Mi piace illimitati",
"superLikes": "• Super like extra",
"price": "Prezzo: €4,99/mese",
"activate": "Attiva Premium"
},
"translation": {
"translating": "Traduzione profilo...",
"translated": "Profilo tradotto:",
"error": "Errore di traduzione. Riprova più tardi.",
"premiumOnly": "La traduzione è disponibile solo per utenti premium"
},
"commands": {
"start": "Menu Principale",
"profile": "Il Mio Profilo",
"search": "Sfoglia",
"vip": "Ricerca VIP",
"matches": "Match",
"premium": "Premium",
"settings": "Impostazioni",
"help": "Aiuto"
},
"buttons": {
"back": "« Indietro",
"next": "Avanti »",
"save": "Salva",
"cancel": "Annulla",
"confirm": "Conferma",
"edit": "Modifica",
"delete": "Elimina",
"yes": "Sì",
"no": "No"
},
"errors": {
"profileNotFound": "Profilo non trovato",
"profileIncomplete": "Per favore completa il tuo profilo",
"ageInvalid": "Per favore inserisci un'età valida (18-100)",
"photoRequired": "Per favore aggiungi almeno una foto",
"networkError": "Errore di rete. Riprova più tardi.",
"serverError": "Errore del server. Riprova più tardi."
}
}

101
src/locales/ja.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "Telegram Tinder Botへようこそ💕",
"description": "ここであなたの運命の人を見つけましょう!",
"getStarted": "始める"
},
"profile": {
"create": "プロフィール作成",
"edit": "プロフィール編集",
"view": "プロフィール表示",
"name": "名前",
"age": "年齢",
"city": "都市",
"bio": "自己紹介",
"photos": "写真",
"gender": "性別",
"lookingFor": "探している相手",
"datingGoal": "出会いの目的",
"hobbies": "趣味",
"lifestyle": "ライフスタイル",
"male": "男性",
"female": "女性",
"both": "どちらでも",
"relationship": "恋愛関係",
"friendship": "友達",
"dating": "デート",
"hookup": "カジュアル",
"marriage": "結婚",
"networking": "ネットワーキング",
"travel": "旅行",
"business": "ビジネス",
"other": "その他"
},
"search": {
"title": "プロフィール閲覧",
"noProfiles": "これ以上プロフィールがありません!後でもう一度お試しください。",
"like": "❤️ いいね",
"dislike": "👎 スキップ",
"superLike": "⭐ スーパーライク",
"match": "マッチしました!🎉"
},
"vip": {
"title": "VIP検索",
"premiumRequired": "この機能はプレミアムユーザーのみご利用いただけます",
"filters": "フィルター",
"ageRange": "年齢範囲",
"cityFilter": "都市",
"datingGoalFilter": "出会いの目的",
"hobbiesFilter": "趣味",
"lifestyleFilter": "ライフスタイル",
"applyFilters": "フィルター適用",
"clearFilters": "フィルタークリア",
"noResults": "フィルター条件に一致するプロフィールが見つかりません",
"translateProfile": "🌐 プロフィール翻訳"
},
"premium": {
"title": "プレミアム購読",
"features": "プレミアム機能:",
"vipSearch": "• フィルター付きVIP検索",
"profileTranslation": "• プロフィールをあなたの言語に翻訳",
"unlimitedLikes": "• 無制限いいね",
"superLikes": "• 追加スーパーライク",
"price": "価格¥650/月",
"activate": "プレミアム有効化"
},
"translation": {
"translating": "プロフィールを翻訳中...",
"translated": "翻訳されたプロフィール:",
"error": "翻訳エラー。後でもう一度お試しください。",
"premiumOnly": "翻訳機能はプレミアムユーザーのみご利用いただけます"
},
"commands": {
"start": "メインメニュー",
"profile": "マイプロフィール",
"search": "閲覧",
"vip": "VIP検索",
"matches": "マッチ",
"premium": "プレミアム",
"settings": "設定",
"help": "ヘルプ"
},
"buttons": {
"back": "« 戻る",
"next": "次へ »",
"save": "保存",
"cancel": "キャンセル",
"confirm": "確認",
"edit": "編集",
"delete": "削除",
"yes": "はい",
"no": "いいえ"
},
"errors": {
"profileNotFound": "プロフィールが見つかりません",
"profileIncomplete": "プロフィールを完成させてください",
"ageInvalid": "有効な年齢を入力してください18-100",
"photoRequired": "最低1枚の写真を追加してください",
"networkError": "ネットワークエラー。後でもう一度お試しください。",
"serverError": "サーバーエラー。後でもう一度お試しください。"
}
}

101
src/locales/ko.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "텔레그램 틴더 봇에 오신 것을 환영합니다! 💕",
"description": "바로 여기서 당신의 소울메이트를 찾아보세요!",
"getStarted": "시작하기"
},
"profile": {
"create": "프로필 생성",
"edit": "프로필 수정",
"view": "프로필 보기",
"name": "이름",
"age": "나이",
"city": "도시",
"bio": "자기소개",
"photos": "사진",
"gender": "성별",
"lookingFor": "찾는 상대",
"datingGoal": "만남 목적",
"hobbies": "취미",
"lifestyle": "라이프스타일",
"male": "남성",
"female": "여성",
"both": "상관없음",
"relationship": "진지한 관계",
"friendship": "친구",
"dating": "데이트",
"hookup": "가벼운 만남",
"marriage": "결혼",
"networking": "네트워킹",
"travel": "여행",
"business": "비즈니스",
"other": "기타"
},
"search": {
"title": "프로필 둘러보기",
"noProfiles": "더 이상 프로필이 없습니다! 나중에 다시 시도해보세요.",
"like": "❤️ 좋아요",
"dislike": "👎 패스",
"superLike": "⭐ 슈퍼 라이크",
"match": "매치 성공! 🎉"
},
"vip": {
"title": "VIP 검색",
"premiumRequired": "이 기능은 프리미엄 사용자만 이용할 수 있습니다",
"filters": "필터",
"ageRange": "연령대",
"cityFilter": "도시",
"datingGoalFilter": "만남 목적",
"hobbiesFilter": "취미",
"lifestyleFilter": "라이프스타일",
"applyFilters": "필터 적용",
"clearFilters": "필터 초기화",
"noResults": "필터 조건에 맞는 프로필을 찾을 수 없습니다",
"translateProfile": "🌐 프로필 번역"
},
"premium": {
"title": "프리미엄 구독",
"features": "프리미엄 기능:",
"vipSearch": "• 필터가 있는 VIP 검색",
"profileTranslation": "• 프로필을 내 언어로 번역",
"unlimitedLikes": "• 무제한 좋아요",
"superLikes": "• 추가 슈퍼 라이크",
"price": "가격: ₩5,900/월",
"activate": "프리미엄 활성화"
},
"translation": {
"translating": "프로필을 번역하는 중...",
"translated": "번역된 프로필:",
"error": "번역 오류. 나중에 다시 시도해주세요.",
"premiumOnly": "번역은 프리미엄 사용자만 이용할 수 있습니다"
},
"commands": {
"start": "메인 메뉴",
"profile": "내 프로필",
"search": "둘러보기",
"vip": "VIP 검색",
"matches": "매치",
"premium": "프리미엄",
"settings": "설정",
"help": "도움말"
},
"buttons": {
"back": "« 뒤로",
"next": "다음 »",
"save": "저장",
"cancel": "취소",
"confirm": "확인",
"edit": "수정",
"delete": "삭제",
"yes": "예",
"no": "아니오"
},
"errors": {
"profileNotFound": "프로필을 찾을 수 없습니다",
"profileIncomplete": "프로필을 완성해주세요",
"ageInvalid": "올바른 나이를 입력해주세요 (18-100)",
"photoRequired": "최소 한 장의 사진을 추가해주세요",
"networkError": "네트워크 오류. 나중에 다시 시도해주세요.",
"serverError": "서버 오류. 나중에 다시 시도해주세요."
}
}

101
src/locales/pt.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "Bem-vindo ao Bot Tinder do Telegram! 💕",
"description": "Encontre sua alma gêmea bem aqui!",
"getStarted": "Começar"
},
"profile": {
"create": "Criar Perfil",
"edit": "Editar Perfil",
"view": "Ver Perfil",
"name": "Nome",
"age": "Idade",
"city": "Cidade",
"bio": "Sobre",
"photos": "Fotos",
"gender": "Gênero",
"lookingFor": "Procurando",
"datingGoal": "Objetivo do Encontro",
"hobbies": "Hobbies",
"lifestyle": "Estilo de Vida",
"male": "Masculino",
"female": "Feminino",
"both": "Ambos",
"relationship": "Relacionamento",
"friendship": "Amizade",
"dating": "Encontros",
"hookup": "Aventura",
"marriage": "Casamento",
"networking": "Networking",
"travel": "Viagem",
"business": "Negócios",
"other": "Outro"
},
"search": {
"title": "Explorar Perfis",
"noProfiles": "Não há mais perfis! Tente novamente mais tarde.",
"like": "❤️ Curtir",
"dislike": "👎 Pular",
"superLike": "⭐ Super Like",
"match": "É um match! 🎉"
},
"vip": {
"title": "Busca VIP",
"premiumRequired": "Este recurso está disponível apenas para usuários premium",
"filters": "Filtros",
"ageRange": "Faixa Etária",
"cityFilter": "Cidade",
"datingGoalFilter": "Objetivo do Encontro",
"hobbiesFilter": "Hobbies",
"lifestyleFilter": "Estilo de Vida",
"applyFilters": "Aplicar Filtros",
"clearFilters": "Limpar Filtros",
"noResults": "Nenhum perfil encontrado com seus filtros",
"translateProfile": "🌐 Traduzir Perfil"
},
"premium": {
"title": "Assinatura Premium",
"features": "Recursos premium:",
"vipSearch": "• Busca VIP com filtros",
"profileTranslation": "• Tradução de perfis para seu idioma",
"unlimitedLikes": "• Curtidas ilimitadas",
"superLikes": "• Super likes extras",
"price": "Preço: R$ 24,90/mês",
"activate": "Ativar Premium"
},
"translation": {
"translating": "Traduzindo perfil...",
"translated": "Perfil traduzido:",
"error": "Erro de tradução. Tente novamente mais tarde.",
"premiumOnly": "A tradução está disponível apenas para usuários premium"
},
"commands": {
"start": "Menu Principal",
"profile": "Meu Perfil",
"search": "Explorar",
"vip": "Busca VIP",
"matches": "Matches",
"premium": "Premium",
"settings": "Configurações",
"help": "Ajuda"
},
"buttons": {
"back": "« Voltar",
"next": "Próximo »",
"save": "Salvar",
"cancel": "Cancelar",
"confirm": "Confirmar",
"edit": "Editar",
"delete": "Excluir",
"yes": "Sim",
"no": "Não"
},
"errors": {
"profileNotFound": "Perfil não encontrado",
"profileIncomplete": "Por favor, complete seu perfil",
"ageInvalid": "Por favor, insira uma idade válida (18-100)",
"photoRequired": "Por favor, adicione pelo menos uma foto",
"networkError": "Erro de rede. Tente novamente mais tarde.",
"serverError": "Erro do servidor. Tente novamente mais tarde."
}
}

101
src/locales/zh.json Normal file
View File

@@ -0,0 +1,101 @@
{
"welcome": {
"greeting": "欢迎使用Telegram Tinder机器人💕",
"description": "在这里找到你的灵魂伴侣!",
"getStarted": "开始"
},
"profile": {
"create": "创建资料",
"edit": "编辑资料",
"view": "查看资料",
"name": "姓名",
"age": "年龄",
"city": "城市",
"bio": "关于我",
"photos": "照片",
"gender": "性别",
"lookingFor": "寻找",
"datingGoal": "约会目的",
"hobbies": "爱好",
"lifestyle": "生活方式",
"male": "男性",
"female": "女性",
"both": "都可以",
"relationship": "恋爱关系",
"friendship": "友谊",
"dating": "约会",
"hookup": "随意交往",
"marriage": "结婚",
"networking": "社交",
"travel": "旅行",
"business": "商务",
"other": "其他"
},
"search": {
"title": "浏览资料",
"noProfiles": "没有更多资料了!请稍后再试。",
"like": "❤️ 喜欢",
"dislike": "👎 跳过",
"superLike": "⭐ 超级喜欢",
"match": "配对成功!🎉"
},
"vip": {
"title": "VIP搜索",
"premiumRequired": "此功能仅对高级用户开放",
"filters": "筛选器",
"ageRange": "年龄范围",
"cityFilter": "城市",
"datingGoalFilter": "约会目的",
"hobbiesFilter": "爱好",
"lifestyleFilter": "生活方式",
"applyFilters": "应用筛选器",
"clearFilters": "清除筛选器",
"noResults": "没有找到符合您筛选条件的资料",
"translateProfile": "🌐 翻译资料"
},
"premium": {
"title": "高级订阅",
"features": "高级功能:",
"vipSearch": "• 带筛选器的VIP搜索",
"profileTranslation": "• 将资料翻译成您的语言",
"unlimitedLikes": "• 无限点赞",
"superLikes": "• 额外的超级喜欢",
"price": "价格¥35/月",
"activate": "激活高级版"
},
"translation": {
"translating": "正在翻译资料...",
"translated": "已翻译的资料:",
"error": "翻译错误。请稍后再试。",
"premiumOnly": "翻译功能仅对高级用户开放"
},
"commands": {
"start": "主菜单",
"profile": "我的资料",
"search": "浏览",
"vip": "VIP搜索",
"matches": "配对",
"premium": "高级版",
"settings": "设置",
"help": "帮助"
},
"buttons": {
"back": "« 返回",
"next": "下一步 »",
"save": "保存",
"cancel": "取消",
"confirm": "确认",
"edit": "编辑",
"delete": "删除",
"yes": "是",
"no": "否"
},
"errors": {
"profileNotFound": "未找到资料",
"profileIncomplete": "请完善您的资料",
"ageInvalid": "请输入有效年龄18-100",
"photoRequired": "请至少添加一张照片",
"networkError": "网络错误。请稍后再试。",
"serverError": "服务器错误。请稍后再试。"
}
}

View File

@@ -23,6 +23,14 @@ export class LocalizationService {
const localesPath = path.join(__dirname, '..', 'locales');
const ruTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'ru.json'), 'utf8'));
const enTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'en.json'), 'utf8'));
const esTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'es.json'), 'utf8'));
const frTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'fr.json'), 'utf8'));
const deTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'de.json'), 'utf8'));
const itTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'it.json'), 'utf8'));
const ptTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'pt.json'), 'utf8'));
const zhTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'zh.json'), 'utf8'));
const jaTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'ja.json'), 'utf8'));
const koTranslations = JSON.parse(fs.readFileSync(path.join(localesPath, 'ko.json'), 'utf8'));
await i18next.init({
lng: 'ru', // Язык по умолчанию
@@ -34,6 +42,30 @@ export class LocalizationService {
},
en: {
translation: enTranslations
},
es: {
translation: esTranslations
},
fr: {
translation: frTranslations
},
de: {
translation: deTranslations
},
it: {
translation: itTranslations
},
pt: {
translation: ptTranslations
},
zh: {
translation: zhTranslations
},
ja: {
translation: jaTranslations
},
ko: {
translation: koTranslations
}
},
interpolation: {
@@ -62,7 +94,7 @@ export class LocalizationService {
}
public getSupportedLanguages(): string[] {
return ['ru', 'en'];
return ['ru', 'en', 'es', 'fr', 'de', 'it', 'pt', 'zh', 'ja', 'ko'];
}
// Получить перевод для определенного языка без изменения текущего