UNPKG

@publidata/utils-translation

Version:
644 lines (627 loc) 19.7 kB
import { toSnakeCase, toPascalCase } from "@publidata/utils-core"; const registry = {}; /** Return french translation fo the specified model * @ Type : String * @ Return : french word for model * * [dict] : Array of object OPTIONAL * { * "case": "input", * "translated": "output" * } */ export const translateModel = (type, dict) => { if (dict) { const index = dict.findIndex(w => { return w.case === type; }); if (index !== -1) { return dict[index].translated; } } switch (type) { case "news": return "Actualité"; case "nonprofit": return "Association"; case "newz": return "Actualités"; case "facility": return "Équipement"; case "facilities": return "Équipements"; case "etablissementpublic": return "Établissement publique"; case "etablissementpublics": return "Établissements publiques"; case "communauteagglomeration": return "Agglomération"; case "communauteagglomerations": return "Agglomérations"; case "city": return "Ville"; case "cities": return "Villes"; case "department": return "Départment"; case "departments": return "Départements"; case "elect": return "Élu"; case "elects": return "Élus"; case "region": return "Région"; case "regions": return "Régions"; case "event": return "Événement"; case "events": return "Événements"; case "eventgroup": case "event_group": return "Groupe d'événements"; case "eventgroups": case "event_groups": return "Groupes d'événements"; case "project": return "Projet"; case "projects": return "Projets"; case "skill": return "Compétence"; case "skills": return "Compétences"; case "page": return "Page"; case "pages": return "Pages"; case "company": return "Entreprise"; case "companies": return "Entreprises"; case "non_profit": return "Association"; case "non_profits": return "Associations"; case "service": return "Démarche"; default: return type; } }; registry.model = translateModel; /** Returns a rewritten name for collect widget of Tours * @ Type : String * @ Return : rewritten Name * */ export const collectNameTranslation = (type, garbageTypes, names = {}) => { if (garbageTypes && garbageTypes.length > 1) { return "Collecte itinérante"; } else if (type === "WasteCollection" || type === "Facility") { switch (garbageTypes[0]) { case "enc": return names.enc ? names.enc : "Encombrants"; case "text": return names.text ? names.text : "Textile"; case "emb": return names.emb ? names.emb : "Emballages"; case "dv": return names.dv ? names.dv : "Déchets verts"; case "omr": return names.omr ? names.omr : "Ordures ménagères"; case "verre": return names.verre ? names.verre : "Verre"; case "bio": return names.bio ? names.bio : "Biodéchets"; case "jrm": return names.bio ? names.bio : "Journaux - Magazines"; default: return "Coming soon"; } } return "Coming soon"; }; /** Returns a rewritten icon for collect widget of Tours * @ Type : String * @ Return : rewritten Icon * */ export const collectIconTranslation = collectionMode => { switch (collectionMode) { case "truck": return "fas fa-truck"; case "booking": return "fas fa-calendar-check"; case "recycling_center": return "fas fa-building"; case "mobile": return "fas fa-route"; case "recycling_bin": return "fas fa-person-carry"; case "at_home": return "fas fa-home"; case "reuse": return "fas fa-hands-helping"; default: { return "fas fa-truck"; } } }; /** Returns a rewritten collection mode for collect widget of Tours * @ Type : String * @ Return : rewritten Collection Mode * */ export const collectionModeTranslation = collectionMode => { switch (collectionMode) { case "truck": return "Collecte à domicile"; case "request_by_phone": return "Collecte sur appel"; case "recycling_center": return "Collecte en déchèterie"; case "mobile": return "Collecte itinérante"; case "recycling_bin": return "Point d'apport volontaire"; case "booking": return "Sur réservation"; case "pneumatic": return "Collecte pneumatique"; default: { return "Mode de collecte non définit"; } } }; /** Returns a rewritten color for collect widget of Tours * @ Type : String * @ Return : rewritten Color * */ export const poiColorTranslation = (facilityType, defaultValue = "A0A0A0") => { switch (facilityType) { case "Déchetterie": return "var(--facility)"; case "Point d'apport volontaire textile": return "var(--text)"; case "Point d'apport volontaire textile itinérant": return "var(--mobile-text)"; case "Point d'apport volontaire emballages": case "Point d'apport volontaire emballages plastiques": case "Borne pneumatique emballages": return "var(--emb)"; case "Point d'apport volontaire végétaux": case "Aire de dépôt de végétaux": return "var(--dv)"; case "Point d'apport volontaire ordures ménagères": case "Borne pneumatique ordures ménagères": return "var(--omr)"; case "Point d'apport volontaire verre": return "var(--verre)"; case "Point d'apport volontaire sapin": return "var(--sapin)"; case "Point d'apport volontaire biodéchet": return "var(--bio)"; case "Point d'apport volontaire carton": return "var(--carton)"; case "Point d'apport volontaire itinérant": return "var(--mobile)"; case "Point d'apport volontaire papiers-journaux-magazines": return "var(--jrm)"; case "Canisite": case "Crottinette": case "Distributeur de sacs pour déjection canine": case "Point d'apport volontaire pour déjection canine": return "var(--canin)"; case "Composteur de quartier": case "Composteur collectif": case "Composteur": return "var(--compost)"; case "Point d'apport volontaire itinérant de collecte des déchets dangereux des ménages": case "Point d'apport volontaire de collecte des déchets dangereux des ménages": return "var(--ddm)"; case "Point d'apport volontaire emballages métalliques": return "var(--embm)"; case "Point d'apport volontaire de collecte des déchets électriques et électroniques": return "var(--deee)"; case "Boîte à livres": return "var(--livre)"; case "Boîte à vaisselle": return "var(--vaisselle)"; case "Atelier de co-réparation": return "var(--co_repair_workbench)"; case "Zone de gratuité": return "var(--toll_free_area)"; case "Ressourcerie": return "var(--resource_center)"; case "Recyclerie": return "var(--recyclerie)"; case "Zone de dépôt exceptionnel": return "var(--free_dump_area)"; case "Centre d'enfouissement": return "var(--landfill_center)"; case "Plateforme de compostage": return "var(--compost_center)"; case "Centre de tri": return "var(--storage_center)"; case "Borne à masques": return "var(--masque)"; case "Borne à piles": return "var(--pile)"; case "Pharmacie": return "var(--mnu)"; case "Point d'apport volontaire ampoules": return "var(--light_bulb)"; case "Point d'apport volontaire textile sanitaire": return "var(--textsan)"; case "Magasin de bricolage": return "var(--dds)"; case "Magasin de vélos d'occasion": return "var(--bike)"; case "Point d'apport volontaire de déchets automobiles": case "Garage de réparation automobile": return "var(--dauto)"; case "Point d'apport volontaire gravats": return "var(--grav)"; case "Point d'apport volontaire pour déchets alimentaires": return "var(--alim)"; case "Point d'apport volontaire néons": return "var(--neon)"; case "Point d'apport volontaire chaussures": return "var(--shoes)"; case "Point d'apport volontaire bouchons en liège": return "var(--cork)"; case "Point d'apport volontaire capsules de café": return "var(--coffee_capsule)"; case "Opticien": return "var(--eyeglasses)"; case "Point d'apport volontaire CD et DVD": return "var(--cd)"; case "Point d'apport volontaire téléphones portables": return "var(--mobile_phone)"; case "Point d'apport volontaire ordinateurs": return "var(--computer)"; case "Point d'apport volontaire jeux et jouets": return "var(--toy)"; case "Point d'apport volontaire maroquinerie": return "var(--leather_good)"; case "Point d'apport volontaire bouchons en plastique": return "var(--plastic_cap)"; case "Point de regroupement verre": return "var(--verre)"; case "Point de regroupement ordures ménagères": return "var(--omr)"; case "Point de regroupement emballages": return "var(--emb)"; case "Borne mégots": return "var(--butt)"; case "Zone de réemploi": return "var(--zone-de-reemploi)"; case "Point de distribution de sacs": return "var(--point-de-distribution-de-sacs)"; case "Point de distribution événementiel de sacs": return "var(--point-de-distribution-evenementiel-de-sacs)"; case "Point de distribution événementiel de sacs pour les professionnels": return "var(--point-de-distribution-evenementiel-de-sacs-pour-les-professionnels)"; case "Point de distribution de sacs pour les professionnels": return "var(--point-de-distribution-de-sacs-pour-les-professionnels)"; case "Magasin de vêtements de seconde main": return "var(--magasin-de-vetements-de-seconde-main)"; case "Librairie de livres d'occasion": return "var(--librairie-de-livres-d-occasion)"; case "Point de distribution d'autocollants": return "var(--point-de-distribution-d-autocollants)"; case "Permanence compostage": return "var(--permanence-compostage)"; case "Point d'apport volontaire papiers": return "var(--point-d-apport-volontaire-papiers)"; case "Point d'apport volontaire journaux": return "var(--point-d-apport-volontaire-journaux)"; case "Point d'apport volontaire d'équipements sportifs": return "var(--point-d-apport-volontaire-d-equipements-sportifs)"; case "Point d'apport volontaire pour déchets alimentaires": return "var(--point-d-apport-volontaire-pour-dechets-alimentaires)"; case "Permanence compostage événementielle": return "var(--permanence-compostage-evenementielle)"; case "Permanence de distribution d'équipements déchets alimentaires": return "var(--permanence-de-distribution-d-equipement-dechets-alimentaires)"; case "Magasin de materiaux de construction": return "var(--magasin-de-materiaux-de-construction)"; case "Magasin d'électronique et électroménager": return "var(--magasin-delectronique-et-electromenager)"; case "Magasin de vente de produits consignés": return "var(--magasin-de-vente-de-produits-consignes)"; case "Matériauthèque": return "var(--materiautheque)"; case "Magasin de vente de vrac": return "var(--magasin-de-vente-de-vrac)"; case "Réparation / vente de matériel et service informatique": return "var(--reparation-vente-de-materiel-et-service-informatique)"; case "Automate de déconsigne du verre": return "var(--automate-de-deconsigne-du-verre)"; case "Automate de déconsigne d'emballages recyclables": return "var(--automate-de-deconsigne-demballages-recyclables)"; default: { return defaultValue; } } }; export const poiIconTranslation = facilityType => { switch (facilityType) { case "Déchetterie": return "fas fa-building"; case "Point d'apport volontaire textile": return "fas fa-tshirt"; case "Composteur collectif": case "Composteur de quartier": return "fas fa-apple-core"; case "Point d'apport volontaire emballages": case "Borne pneumatique emballages": return "fas fa-box-open"; case "Point d'apport volontaire végétaux": return "fas fa-leaf"; case "Point d'apport volontaire ordures ménagères": case "Borne pneumatique ordures ménagères": return "fas fa-trash-alt"; case "Point d'apport volontaire verre": return "fas fa-wine-bottle"; case "Point d'apport volontaire biodéchets": return "fas fa-apple-alt"; case "Point d'apport volontaire papiers-journaux-magazines": return "fas fa-newspaper"; case "Boîte à livres": return "fas fa-book"; case "Magasin de vêtements de seconde main": return "fas fa-tshirt"; case "Librairie de livres d'occasion": return "fas fa-book"; case "Point de distribution d'autocollants": return "fas fa-mailbox"; case "Permanence compostage": return "fas fa-leaf"; case "Point d'apport volontaire papiers": return "fas fa-memo"; case "Point d'apport volontaire journaux": return "fas fa-newspaper"; case "Point d'apport volontaire d'équipements sportifs": return "fas fa-volleyball"; case "Point d'apport volontaire pour déchets alimentaires": return "fas fa-apple-core"; case "Permanence compostage événementielle": return "fas fa-carrot"; case "Équipement déchets alimentaires": return "fas fa-carrot"; case "magasin-de-materiaux-de-construction": return "fak fa-mag-materiaux"; case "automate-de-deconsigne-du-verre": return "fak fa-automate-verre"; case "magasin-delectronique-et-electromenager": return "fak fa-mag-deee"; case "automate-de-deconsigne-demballages-recyclables": return "fak fa-automate-emb-recyclables"; case "magasin-de-vente-de-produits-consignes": return "fak fa-mag-produits-consignes"; case "materiautheque": return "fak fa-materiautheque"; case "magasin-de-vente-de-vrac": return "fak fa-mag-vrac"; case "reparation-vente-de-materiel-et-service-informatique": return "fak fa-mag-informatique"; default: { return "fas fa-trash"; } } }; export const facilityIconTranslation = id => { switch (id) { case 71: return "recycling_center"; case 79: return "dasri"; case 85: case 814: return "text"; case 86: return "verre"; case 87: case 730: return "omr"; case 89: return "livre"; case 88: case 607: case 731: return "emb"; case 91: return "mobile"; case 413: return "bio"; case 459: case 600: return "dv"; case 458: return "sapin"; case 496: return "jrm"; case 556: return "eyeglasses"; case 559: case 560: return "compost"; case 561: return "crottinette"; case 562: return "canisite"; case 563: return "distributeur-de-sacs-pour-dejection-canine"; case 566: return "ddm"; case 605: return "point-d-apport-volontaire-pour-dechets-alimentaires"; case 606: return "embm"; case 497: return "carton"; case 794: case 640: return "dauto"; case 697: return "magasin-de-materiaux-de-construction"; case 700: return "dds"; case 714: return "friperie"; case 724: return "librairie-d-occasion"; case 726: return "bike"; case 768: return "deee"; case 772: return "vaisselle"; case 773: return "toll_free_area"; case 776: return "co_repair_workbench"; case 777: return "resource_center"; case 778: return "recyclerie"; case 779: return "reuse"; case 780: return "storage_center"; case 781: return "compost_center"; case 782: return "landfill_center"; case 783: return "free_dump_area"; case 784: return "masque"; case 785: return "pile"; case 787: return "omr"; case 788: return "emb"; case 789: return "verre"; case 792: return "textsan"; case 795: return "neon"; case 797: return "magasin-delectronique-et-electromenager"; case 798: return "cd"; case 799: return "mobile_phone"; case 800: return "plastic_cap"; case 801: return "toy"; case 802: return "coffee_capsule"; case 803: return "computer"; case 804: return "leather_good"; case 805: return "shoes"; case 806: return "cork"; case 807: return "grav"; case 808: return "butt"; case 811: return "multi"; case 815: return "point-de-distribution-de-sacs"; case 852: return "point-de-distribution-evenementiel-de-sacs"; case 853: return "point-de-distribution-de-sacs-pour-les-professionnels"; case 854: return "point-de-distribution-evenementiel-de-sacs-pour-les-professionnels"; case 905: return "point-de-distribution-d-autocollants"; case 928: return "permanence-compostage"; case 961: return "point-d-apport-volontaire-papiers"; case 962: return "point-d-apport-volontaire-journaux"; case 963: return "point-d-apport-volontaire-d-equipements-sportifs"; case 964: return "permanence-compostage-evenementielle"; case 965: return "permanence-de-distribution-d-equipement-dechets-alimentaires"; case 999: return "automate-de-deconsigne-demballages-recyclables"; case 1000: return "magasin-de-vente-de-produits-consignes"; case 1001: return "materiautheque"; case 1002: return "magasin-de-vente-de-vrac"; case 1003: return "reparation-vente-de-materiel-et-service-informatique"; case 1004: return "automate-de-deconsigne-du-verre"; default: return "fas fa-trash"; } }; export const getSingularFromModel = (model, pascalCase = true) => { let singularModel = ""; if (!model) return model; // eslint-disable-next-line no-param-reassign if (pascalCase) model = toSnakeCase(model); switch (model) { case "facilities": singularModel = "facility"; break; case "companies": singularModel = "company"; break; default: singularModel = model.slice(0, -1); break; } if (pascalCase) return toPascalCase(singularModel); return singularModel; }; export const getPluralFromModel = (model = "", pascalCase = true) => { let pluralModel = ""; if (!model) return model; // eslint-disable-next-line no-param-reassign if (pascalCase) model = toSnakeCase(model); switch (model) { case "facility": pluralModel = "facilities"; break; case "company": pluralModel = "companies"; break; default: pluralModel = `${model}s`; break; } if (pascalCase) return toPascalCase(pluralModel); return pluralModel; }; export const removeAccents = string => string.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); export default { registry, collectNameTranslation, collectIconTranslation, collectionModeTranslation, poiColorTranslation, poiIconTranslation, facilityIconTranslation, removeAccents, getPluralFromModel, getSingularFromModel };