// 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 } }