// ignore_for_file: constant_identifier_names import 'dart:developer'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; /// Used on morph constructs String? getGrammarCopy({ required String category, /// This is the tag / feature required String lemma, required BuildContext context, }) { if (category.toLowerCase() == 'other') { return null; } final String key = 'grammarCopy${category.replaceAll(RegExp(r'[,\[\]]'), '').toUpperCase()}${lemma.replaceAll(RegExp(r'[,\[\]]'), '').toLowerCase()}'; switch (key) { case 'grammarCopyPOSsconj': return L10n.of(context).grammarCopyPOSsconj; case 'grammarCopyPOSnum': return L10n.of(context).grammarCopyPOSnum; case 'grammarCopyPOSverb': return L10n.of(context).grammarCopyPOSverb; case 'grammarCopyPOSaffix': return L10n.of(context).grammarCopyPOSaffix; case 'grammarCopyPOSpart': return L10n.of(context).grammarCopyPOSpart; case 'grammarCopyPOSadj': return L10n.of(context).grammarCopyPOSadj; case 'grammarCopyPOScconj': return L10n.of(context).grammarCopyPOScconj; case 'grammarCopyPOSpunct': return L10n.of(context).grammarCopyPOSpunct; case 'grammarCopyPOSadv': return L10n.of(context).grammarCopyPOSadv; case 'grammarCopyPOSaux': return L10n.of(context).grammarCopyPOSaux; case 'grammarCopyPOSspace': return L10n.of(context).grammarCopyPOSspace; case 'grammarCopyPOSsym': return L10n.of(context).grammarCopyPOSsym; case 'grammarCopyPOSdet': return L10n.of(context).grammarCopyPOSdet; case 'grammarCopyPOSpron': return L10n.of(context).grammarCopyPOSpron; case 'grammarCopyPOSadp': return L10n.of(context).grammarCopyPOSadp; case 'grammarCopyPOSpropn': return L10n.of(context).grammarCopyPOSpropn; case 'grammarCopyPOSnoun': return L10n.of(context).grammarCopyPOSnoun; case 'grammarCopyPOSintj': return L10n.of(context).grammarCopyPOSintj; case 'grammarCopyPOSx': return L10n.of(context).grammarCopyPOSx; case 'grammarCopyGENDERfem': return L10n.of(context).grammarCopyGENDERfem; case 'grammarCopyPERSON2': return L10n.of(context).grammarCopyPERSON2; case 'grammarCopyMOODimp': return L10n.of(context).grammarCopyMOODimp; case 'grammarCopyPUNCTTYPEqest': return L10n.of(context).grammarCopyPUNCTTYPEqest; case 'grammarCopyASPECTperf': return L10n.of(context).grammarCopyASPECTperf; case 'grammarCopyCASEaccnom': return L10n.of(context).grammarCopyCASEaccnom; case 'grammarCopyCASEobl': return L10n.of(context).grammarCopyCASEobl; case 'grammarCopyVOICEact': return L10n.of(context).grammarCopyVOICEact; case 'grammarCopyPUNCTTYPEbrck': return L10n.of(context).grammarCopyPUNCTTYPEbrck; case 'grammarCopyNOUNTYPEart': return L10n.of(context).grammarCopyNOUNTYPEart; case 'grammarCopyNUMBERPSORsing': return L10n.of(context).grammarCopyNUMBERPSORsing; case 'grammarCopyNUMBERPSORplur': return L10n.of(context).grammarCopyNUMBERPSORplur; case 'grammarCopyNUMBERPSORdual': return L10n.of(context).grammarCopyNUMBERPSORdual; case 'grammarCopyNUMBERsing': return L10n.of(context).grammarCopyNUMBERsing; case 'grammarCopyGENDERmasc': return L10n.of(context).grammarCopyGENDERmasc; case 'grammarCopyVERBTYPEmod': return L10n.of(context).grammarCopyVERBTYPEmod; case 'grammarCopyADVTYPEadverbial': return L10n.of(context).grammarCopyADVTYPEadverbial; case 'grammarCopyTENSEperi': return L10n.of(context).grammarCopyTENSEperi; case 'grammarCopyNUMFORMdigit': return L10n.of(context).grammarCopyNUMFORMdigit; case 'grammarCopyNOUNTYPEnot_proper': return L10n.of(context).grammarCopyNOUNTYPEnot_proper; case 'grammarCopyNUMTYPEcard': return L10n.of(context).grammarCopyNUMTYPEcard; case 'grammarCopyNOUNTYPEprop': return L10n.of(context).grammarCopyNOUNTYPEprop; case 'grammarCopyPUNCTTYPEdash': return L10n.of(context).grammarCopyPUNCTTYPEdash; case 'grammarCopyPUNCTTYPEyes': return L10n.of(context).grammarCopyPUNCTTYPEyes; case 'grammarCopyPUNCTTYPEsemi': return L10n.of(context).grammarCopyPUNCTTYPEsemi; case 'grammarCopyPUNCTTYPEcomm': return L10n.of(context).grammarCopyPUNCTTYPEcomm; case 'grammarCopyMOODcnd': return L10n.of(context).grammarCopyMOODcnd; case 'grammarCopyCASEacc': return L10n.of(context).grammarCopyCASEacc; case 'grammarCopyPARTTYPEpart': return L10n.of(context).grammarCopyPARTTYPEpart; case 'grammarCopyTENSEpast': return L10n.of(context).grammarCopyTENSEpast; case 'grammarCopyDEGREEsup': return L10n.of(context).grammarCopyDEGREEsup; case 'grammarCopyPUNCTTYPEcolo': return L10n.of(context).grammarCopyPUNCTTYPEcolo; case 'grammarCopyPERSON3': return L10n.of(context).grammarCopyPERSON3; case 'grammarCopyNUMBERplur': return L10n.of(context).grammarCopyNUMBERplur; case 'grammarCopyPRONTYPEnpr': return L10n.of(context).grammarCopyPRONTYPEnpr; case 'grammarCopyPRONTYPEprs': return L10n.of(context).grammarCopyPRONTYPEprs; case 'grammarCopyPRONTYPEind': return L10n.of(context).grammarCopyPRONTYPEind; case 'grammarCopyPRONTYPEinterrogative': return L10n.of(context).grammarCopyPRONTYPEinterrogative; case 'grammarCopyPRONTYPEart': return L10n.of(context).grammarCopyPRONTYPEart; case 'grammarCopyPRONTYPEtot': return L10n.of(context).grammarCopyPRONTYPEtot; case 'grammarCopyPRONTYPEneg': return L10n.of(context).grammarCopyPRONTYPEneg; case 'grammarCopyPOLITEinfm': return L10n.of(context).grammarCopyPOLITEinfm; case 'grammarCopyADVTYPEtim': return L10n.of(context).grammarCopyADVTYPEtim; case 'grammarCopyPOLARITYneg': return L10n.of(context).grammarCopyPOLARITYneg; case 'grammarCopyNUMTYPEtot': return L10n.of(context).grammarCopyNUMTYPEtot; case 'grammarCopyADVTYPEadnomial': return L10n.of(context).grammarCopyADVTYPEadnomial; case 'grammarCopyASPECTprog': return L10n.of(context).grammarCopyASPECTprog; case 'grammarCopyMOODsub': return L10n.of(context).grammarCopyMOODsub; case 'grammarCopyVERBFORMcomplementive': return L10n.of(context).grammarCopyVERBFORMcomplementive; case 'grammarCopyCASEnom': return L10n.of(context).grammarCopyCASEnom; case 'grammarCopyTENSEfut': return L10n.of(context).grammarCopyTENSEfut; case 'grammarCopyCASEdat': return L10n.of(context).grammarCopyCASEdat; case 'grammarCopyTENSEpres': return L10n.of(context).grammarCopyTENSEpres; case 'grammarCopyGENDERneut': return L10n.of(context).grammarCopyGENDERneut; case 'grammarCopyPRONTYPErel': return L10n.of(context).grammarCopyPRONTYPErel; case 'grammarCopyVERBFORMfinalEnding': return L10n.of(context).grammarCopyVERBFORMfinalEnding; case 'grammarCopyPRONTYPEdem': return L10n.of(context).grammarCopyPRONTYPEdem; case 'grammarCopyPREPCASEpre': return L10n.of(context).grammarCopyPREPCASEpre; case 'grammarCopyPREPCASEnpr': return L10n.of(context).grammarCopyPREPCASEnpr; case 'grammarCopyVERBFORMfin': return L10n.of(context).grammarCopyVERBFORMfin; case 'grammarCopyDEGREEpos': return L10n.of(context).grammarCopyDEGREEpos; case 'grammarCopyPUNCTTYPEquot': return L10n.of(context).grammarCopyPUNCTTYPEquot; case 'grammarCopyVERBFORMger': return L10n.of(context).grammarCopyVERBFORMger; case 'grammarCopyVOICEpass': return L10n.of(context).grammarCopyVOICEpass; case 'grammarCopyCASEgen': return L10n.of(context).grammarCopyCASEgen; case 'grammarCopyTENSEprs': return L10n.of(context).grammarCopyTENSEprs; case 'grammarCopyDEFINITEdef': return L10n.of(context).grammarCopyDEFINITEdef; case 'grammarCopyDEFINITEind': return L10n.of(context).grammarCopyDEFINITEind; case 'grammarCopyNUMTYPEord': return L10n.of(context).grammarCopyNUMTYPEord; case 'grammarCopyCASEins': return L10n.of(context).grammarCopyCASEins; case 'grammarCopyVERBFORMinf': return L10n.of(context).grammarCopyVERBFORMinf; case 'grammarCopyNUMFORMlong': return L10n.of(context).grammarCopyNUMFORMlong; case 'grammarCopyCASEloc': return L10n.of(context).grammarCopyCASEloc; case 'grammarCopyMOODind': return L10n.of(context).grammarCopyMOODind; case 'grammarCopyDEGREEcmp': return L10n.of(context).grammarCopyDEGREEcmp; case 'grammarCopyCASErelativeCase': return L10n.of(context).grammarCopyCASErelativeCase; case 'grammarCopyPUNCTTYPEexcl': return L10n.of(context).grammarCopyPUNCTTYPEexcl; case 'grammarCopyPUNCTTYPEperi': return L10n.of(context).grammarCopyPUNCTTYPEperi; case 'grammarCopyPERSON1': return L10n.of(context).grammarCopyPERSON1; case 'grammarCopyPUNCTSIDEini': return L10n.of(context).grammarCopyPUNCTSIDEini; case 'grammarCopyPUNCTSIDEfin': return L10n.of(context).grammarCopyPUNCTSIDEfin; case 'grammarCopyGENDERperson': return L10n.of(context).grammarCopyGENDERperson; case 'grammarCopyFOREIGNyes': return L10n.of(context).grammarCopyFOREIGNyes; case 'grammarCopyVOICEvoice': return L10n.of(context).grammarCopyVOICEvoice; case 'grammarCopyVERBTYPEverbType': return L10n.of(context).grammarCopyVERBTYPEverbType; case 'grammarCopyPOSSpass': return L10n.of(context).grammarCopyPOSSpass; case 'grammarCopyPOSSyes': return L10n.of(context).grammarCopyPOSSyes; case 'grammarCopyPREPCASEprepCase': return L10n.of(context).grammarCopyPREPCASEprepCase; case 'grammarCopyNUMTYPEnumType': return L10n.of(context).grammarCopyNUMTYPEnumType; case 'grammarCopyNOUNTYPEnounType': return L10n.of(context).grammarCopyNOUNTYPEnounType; case 'grammarCopyREFLEXreflex': return L10n.of(context).grammarCopyREFLEXreflex; case 'grammarCopyPRONTYPEpronType': return L10n.of(context).grammarCopyPRONTYPEpronType; case 'grammarCopyPUNCTSIDEpunctSide': return L10n.of(context).grammarCopyPUNCTSIDEpunctSide; case 'grammarCopyVERBFORMverbForm': return L10n.of(context).grammarCopyVERBFORMverbForm; case 'grammarCopyGENDERgender': return L10n.of(context).grammarCopyGENDERgender; case 'grammarCopyMOODmood': return L10n.of(context).grammarCopyMOODmood; case 'grammarCopyASPECTaspect': return L10n.of(context).grammarCopyASPECTaspect; case 'grammarCopyPUNCTTYPEpunctType': return L10n.of(context).grammarCopyPUNCTTYPEpunctType; case 'grammarCopyTENSEtense': return L10n.of(context).grammarCopyTENSEtense; case 'grammarCopyDEGREEdegree': return L10n.of(context).grammarCopyDEGREEdegree; case 'grammarCopyPOLITEpolite': return L10n.of(context).grammarCopyPOLITEpolite; case 'grammarCopyADVTYPEadvType': return L10n.of(context).grammarCopyADVTYPEadvType; case 'grammarCopyNUMFORMnumber': return L10n.of(context).grammarCopyNUMFORMnumber; case 'grammarCopyCONJTYPEconjType': return L10n.of(context).grammarCopyCONJTYPEconjType; case 'grammarCopyPOLARITYpolarity': return L10n.of(context).grammarCopyPOLARITYpolarity; case 'grammarCopyCASEcase': return L10n.of(context).grammarCopyCASEcase; case 'grammarCopyDEFINITEdefinite': return L10n.of(context).grammarCopyDEFINITEdefinite; case 'grammarCopyNUMFORMnumForm': return L10n.of(context).grammarCopyNUMFORMnumForm; case 'grammarCopyPRONTYPEadn': return L10n.of(context).grammarCopyPRONTYPEadn; case 'grammarCopyVOCvoc': return L10n.of(context).grammarCopyVOCvoc; case 'grammarCopyCMPLcmpl': return L10n.of(context).grammarCopyCMPLcmpl; case 'grammarCopyADVadv': return L10n.of(context).grammarCopyADVadv; case 'grammarCopyMOODjus': return L10n.of(context).grammarCopyMOODjus; case 'grammarCopyGENDERcom': return L10n.of(context).grammarCopyGENDERcom; case 'grammarCopyREFLEXrflx': return L10n.of(context).grammarCopyREFLEXrflx; case 'grammarCopyREFLEXyes': return L10n.of(context).grammarCopyREFLEXyes; case 'grammarCopyPARTTYPEpar': return L10n.of(context).grammarCopyPARTTYPEpar; case 'grammarCopySPCspc': return L10n.of(context).grammarCopySPCspc; case 'grammarCopyTENSEpqp': return L10n.of(context).grammarCopyTENSEpqp; case 'grammarCopyREFLEXref': return L10n.of(context).grammarCopyREFLEXref; case 'grammarCopyPUNCTTYPEnshrt': return L10n.of(context).grammarCopyPUNCTTYPEnshrt; case 'grammarCopyNUMBERdual': return L10n.of(context).grammarCopyNUMBERdual; case 'grammarCopyNUMFORMlng': return L10n.of(context).grammarCopyNUMFORMlng; case 'grammarCopyVOICEmid': return L10n.of(context).grammarCopyVOICEmid; case 'grammarCopyINTRELintRel': return L10n.of(context).grammarCopyINTRELintRel; case 'grammarCopyINTint': return L10n.of(context).grammarCopyINTint; case 'grammarCopyVOICEcaus': return L10n.of(context).grammarCopyVOICEcaus; case 'grammarCopyUNKNOWNunknown': return L10n.of(context).grammarCopyUnknown; case 'grammarCopyEVIDENTevident': return L10n.of(context).grammarCopyEVIDENTevident; case 'grammarCopyNUMFORMnumberPsor': return L10n.of(context).grammarCopyNUMFORMnumberPsor; case 'grammarCopyASPECThab': return L10n.of(context).grammarCopyASPECThab; case 'grammarCopyCASEabl': return L10n.of(context).grammarCopyCASEabl; case 'grammarCopyCASEall': return L10n.of(context).grammarCopyCASEall; case 'grammarCopyCASEess': return L10n.of(context).grammarCopyCASEess; case 'grammarCopyCASEtra': return L10n.of(context).grammarCopyCASEtra; case 'grammarCopyCASEequ': return L10n.of(context).grammarCopyCASEequ; case 'grammarCopyCASEdis': return L10n.of(context).grammarCopyCASEdis; case 'grammarCopyCASEabs': return L10n.of(context).grammarCopyCASEabs; case 'grammarCopyCASEerg': return L10n.of(context).grammarCopyCASEerg; case 'grammarCopyCASEcau': return L10n.of(context).grammarCopyCASEcau; case 'grammarCopyCASEben': return L10n.of(context).grammarCopyCASEben; case 'grammarCopyCASEtem': return L10n.of(context).grammarCopyCASEtem; case 'grammarCopyCONJTYPEcoord': return L10n.of(context).grammarCopyCONJTYPEcoord; case 'grammarCopyDEFINITEcons': return L10n.of(context).grammarCopyDEFINITEcons; case 'grammarCopyDEGREEabs': return L10n.of(context).grammarCopyDEGREEabs; case 'grammarCopyEVIDENTfh': return L10n.of(context).grammarCopyEVIDENTfh; case 'grammarCopyEVIDENTnfh': return L10n.of(context).grammarCopyEVIDENTnfh; case 'grammarCopyMOODopt': return L10n.of(context).grammarCopyMOODopt; case 'grammarCopyMOODadm': return L10n.of(context).grammarCopyMOODadm; case 'grammarCopyMOODdes': return L10n.of(context).grammarCopyMOODdes; case 'grammarCopyMOODnec': return L10n.of(context).grammarCopyMOODnec; case 'grammarCopyMOODpot': return L10n.of(context).grammarCopyMOODpot; case 'grammarCopyMOODprp': return L10n.of(context).grammarCopyMOODprp; case 'grammarCopyMOODqot': return L10n.of(context).grammarCopyMOODqot; case 'grammarCopyNUMFORMword': return L10n.of(context).grammarCopyNUMFORMword; case 'grammarCopyNUMFORMroman': return L10n.of(context).grammarCopyNUMFORMroman; case 'grammarCopyNUMFORMletter': return L10n.of(context).grammarCopyNUMFORMletter; case 'grammarCopyNUMTYPEmult': return L10n.of(context).grammarCopyNUMTYPEmult; case 'grammarCopyNUMTYPEfrac': return L10n.of(context).grammarCopyNUMTYPEfrac; case 'grammarCopyNUMTYPEsets': return L10n.of(context).grammarCopyNUMTYPEsets; case 'grammarCopyNUMTYPErange': return L10n.of(context).grammarCopyNUMTYPErange; case 'grammarCopyNUMTYPEdist': return L10n.of(context).grammarCopyNUMTYPEdist; case 'grammarCopyNUMBERtri': return L10n.of(context).grammarCopyNUMBERtri; case 'grammarCopyNUMBERpauc': return L10n.of(context).grammarCopyNUMBERpauc; case 'grammarCopyNUMBERgrpa': return L10n.of(context).grammarCopyNUMBERgrpa; case 'grammarCopyNUMBERgrpl': return L10n.of(context).grammarCopyNUMBERgrpl; case 'grammarCopyNUMBERinv': return L10n.of(context).grammarCopyNUMBERinv; case 'grammarCopyPERSON0': return L10n.of(context).grammarCopyPERSON0; case 'grammarCopyPERSON4': return L10n.of(context).grammarCopyPERSON4; case 'grammarCopyPOLITEform': return L10n.of(context).grammarCopyPOLITEform; case 'grammarCopyPOLITEelev': return L10n.of(context).grammarCopyPOLITEelev; case 'grammarCopyPOLITEhumb': return L10n.of(context).grammarCopyPOLITEhumb; case 'grammarCopyPRONTYPEemp': return L10n.of(context).grammarCopyPRONTYPEemp; case 'grammarCopyPRONTYPEexc': return L10n.of(context).grammarCopyPRONTYPEexc; case 'grammarCopyPRONTYPErcp': return L10n.of(context).grammarCopyPRONTYPErcp; case 'grammarCopyPRONTYPEint': return L10n.of(context).grammarCopyPRONTYPEint; case 'grammarCopyPRONTYPEintrel': return L10n.of(context).grammarCopyPRONTYPEintrel; case 'grammarCopyPRONTYPEintRelPronType': return L10n.of(context).grammarCopyPRONTYPEintRelPronType; case 'grammarCopyTENSEaor': return L10n.of(context).grammarCopyTENSEaor; case 'grammarCopyTENSEeps': return L10n.of(context).grammarCopyTENSEeps; case 'grammarCopyTENSEprosp': return L10n.of(context).grammarCopyTENSEprosp; case 'grammarCopyTENSEimp': return L10n.of(context).grammarCopyTENSEimp; case 'grammarCopyVERBFORMpart': return L10n.of(context).grammarCopyVERBFORMpart; case 'grammarCopyVERBFORMconv': return L10n.of(context).grammarCopyVERBFORMconv; case 'grammarCopyVERBFORMvnoun': return L10n.of(context).grammarCopyVERBFORMvnoun; case 'grammarCopyVOICEantip': return L10n.of(context).grammarCopyVOICEantip; case 'grammarCopyVOICEcauVoice': return L10n.of(context).grammarCopyVOICEcauVoice; case 'grammarCopyVOICedir': return L10n.of(context).grammarCopyVOICedir; case 'grammarCopyVOICEinvVoice': return L10n.of(context).grammarCopyVOICEinvVoice; case 'grammarCopyVOICErcpVoice': return L10n.of(context).grammarCopyVOICErcpVoice; case "grammarCopyCASEaccdat": return L10n.of(context).grammarCopyCASEaccdat; // Handle empty tag case '': ErrorHandler.logError( e: Exception('Empty tag'), m: 'Empty tag in getGrammarCopy', data: { 'context': context, }, ); return L10n.of(context).grammarCopyUnknown; default: debugger(when: kDebugMode); ErrorHandler.logError( e: 'Need to add copy to intl_en.arb', data: { 'tag': key, 'context': context, }, ); return lemma; // Fallback to the lemma itself if no match is found } }