MakeFile created.
This commit is contained in:
59
src/services/userLanguageService.ts
Normal file
59
src/services/userLanguageService.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { query } from '../database/connection';
|
||||
|
||||
export class UserLanguageService {
|
||||
// Получить язык пользователя
|
||||
async getUserLanguage(telegramId: string): Promise<string> {
|
||||
try {
|
||||
const result = await query(
|
||||
'SELECT language FROM users WHERE telegram_id = $1',
|
||||
[telegramId]
|
||||
);
|
||||
|
||||
if (result.rows.length > 0) {
|
||||
return result.rows[0].language || 'ru';
|
||||
}
|
||||
|
||||
return 'ru'; // Язык по умолчанию
|
||||
} catch (error) {
|
||||
console.error('Error getting user language:', error);
|
||||
return 'ru';
|
||||
}
|
||||
}
|
||||
|
||||
// Установить язык пользователя
|
||||
async setUserLanguage(telegramId: string, language: string): Promise<boolean> {
|
||||
try {
|
||||
await query(
|
||||
'UPDATE users SET language = $1 WHERE telegram_id = $2',
|
||||
[language, telegramId]
|
||||
);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Error setting user language:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Получить поддерживаемые языки
|
||||
getSupportedLanguages(): { [key: string]: string } {
|
||||
return {
|
||||
'ru': '🇷🇺 Русский',
|
||||
'en': '🇺🇸 English',
|
||||
'es': '🇪🇸 Español',
|
||||
'fr': '🇫🇷 Français',
|
||||
'de': '🇩🇪 Deutsch',
|
||||
'it': '🇮🇹 Italiano',
|
||||
'pt': '🇵🇹 Português',
|
||||
'zh': '🇨🇳 中文',
|
||||
'ja': '🇯🇵 日本語',
|
||||
'ko': '🇰🇷 한국어',
|
||||
'uz': '🇺🇿 O\'zbekcha',
|
||||
'kk': '🇰🇿 Қазақша'
|
||||
};
|
||||
}
|
||||
|
||||
// Проверить, поддерживается ли язык
|
||||
isLanguageSupported(language: string): boolean {
|
||||
return Object.keys(this.getSupportedLanguages()).includes(language);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user