localization #2
@@ -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
101
src/locales/de.json
Normal 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
101
src/locales/es.json
Normal 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
101
src/locales/fr.json
Normal 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
101
src/locales/it.json
Normal 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
101
src/locales/ja.json
Normal 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
101
src/locales/ko.json
Normal 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
101
src/locales/pt.json
Normal 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
101
src/locales/zh.json
Normal 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": "服务器错误。请稍后再试。"
|
||||
}
|
||||
}
|
||||
@@ -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'];
|
||||
}
|
||||
|
||||
// Получить перевод для определенного языка без изменения текущего
|
||||
|
||||
Reference in New Issue
Block a user