import { NativeModules } from 'react-native'; import { LocalizationObject } from './types'; import defaultLanguage from '../Assets/language.json'; class Localize { private assets: LocalizationObject; private readonly currentLanguage: 'en' | 'vi'; constructor(assets: LocalizationObject) { this.assets = { vi: { ...defaultLanguage.vi, ...assets?.vi }, en: { ...defaultLanguage.en, ...assets?.en }, }; this.currentLanguage = 'vi'; if (NativeModules?.RNResource?.getResourceSync('language') === 'en') { this.currentLanguage = 'en'; } } get getCurrentLanguage() { return this.currentLanguage; } get getAssets() { return this.assets; } translate(key: string) { return this.assets[this.currentLanguage]?.[key] || key; } translateData(data: { vi: string; en: string }) { return data[this.currentLanguage] ?? JSON.stringify(data); } addTranslations(translations: LocalizationObject) { this.assets = { vi: { ...translations?.vi, ...this.assets.vi }, en: { ...translations?.en, ...this.assets.en }, }; } } export default Localize;