UNPKG

@memory-bank/mcp

Version:

Memory-enabled Co-Pilot (MCP) server for managing project documentation and context

78 lines 2.39 kB
import { logger } from '../../shared/utils/logger.js'; /** * I18nServiceAdapter * II18nProvider インターフェースを実装し、I18nService をアダプトするクラス */ export class I18nServiceAdapter { i18nService; componentLogger = logger.withContext({ component: 'I18nServiceAdapter' }); supportedLanguages = ['en', 'ja', 'zh']; defaultLanguage = 'en'; /** * コンストラクタ * * @param i18nService アダプトする I18nService のインスタンス */ constructor(i18nService) { this.i18nService = i18nService; } /** * II18nProvider.translate の実装 * * @param params 翻訳パラメータ * @returns 翻訳されたテキスト */ translate(params) { try { // 非同期メソッドを同期的に実行できないため、キャッシュを使用する前提 return this.i18nService.translate(params.key, params.language); } catch (error) { this.componentLogger.warn(`Translation failed for key ${params.key}`, { error }); return `?${params.key}`; } } /** * II18nProvider.loadTranslations の実装 * * @param language 言語コード * @returns Promise resolving to true if successful */ async loadTranslations(language) { try { // すべての翻訳をロード await this.i18nService.loadAllTranslations(); return true; } catch (error) { this.componentLogger.error(`Failed to load translations for ${language}`, { error }); return false; } } /** * II18nProvider.isLanguageSupported の実装 * * @param language 言語コード * @returns サポートされているかどうか */ isLanguageSupported(language) { return this.supportedLanguages.includes(language); } /** * II18nProvider.getSupportedLanguages の実装 * * @returns サポートされている言語の配列 */ getSupportedLanguages() { return [...this.supportedLanguages]; } /** * II18nProvider.getDefaultLanguage の実装 * * @returns デフォルト言語 */ getDefaultLanguage() { return this.defaultLanguage; } } //# sourceMappingURL=I18nServiceAdapter.js.map