diff --git a/src/fr/devinsy/statoolinfos/core/Categories.java b/src/fr/devinsy/statoolinfos/core/Categories.java index 39b2e9e..83e2059 100644 --- a/src/fr/devinsy/statoolinfos/core/Categories.java +++ b/src/fr/devinsy/statoolinfos/core/Categories.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-022 Christian Pierre MOMON + * Copyright (C) 2020-2024 Christian Pierre MOMON * * This file is part of StatoolInfos, simple service statistics tool. * @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; +import org.apache.commons.lang3.StringUtils; + import fr.devinsy.strings.StringList; /** @@ -64,6 +66,43 @@ public class Categories extends ArrayList return result; } + /** + * Gets the by technical name. + * + * @param technicalName + * the technical name + * @return the by technical name + */ + public Category getByTechnicalName(final String technicalName) + { + Category result; + + Iterator iterator = this.iterator(); + boolean ended = false; + result = null; + while (!ended) + { + if (iterator.hasNext()) + { + Category category = iterator.next(); + + if (StringUtils.equals(category.getTechnicalName(), technicalName)) + { + ended = true; + result = category; + } + } + else + { + ended = true; + result = null; + } + } + + // + return result; + } + /** * Matches. * diff --git a/src/fr/devinsy/statoolinfos/core/Category.java b/src/fr/devinsy/statoolinfos/core/Category.java index aec2fe2..4b44552 100644 --- a/src/fr/devinsy/statoolinfos/core/Category.java +++ b/src/fr/devinsy/statoolinfos/core/Category.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2022 Christian Pierre MOMON + * Copyright (C) 2020-2024 Christian Pierre MOMON * * This file is part of StatoolInfos, simple service statistics tool. * @@ -32,6 +32,7 @@ public class Category public static final String DEFAULT_LOGO_PATH = "categories/default.svg"; private String name; + private String technicalName; private String description; private StringList softwares; private String logoPath; @@ -41,10 +42,7 @@ public class Category */ public Category(final String name, final String description) { - this.name = name; - this.description = description; - this.softwares = new StringList(); - this.logoPath = DEFAULT_LOGO_PATH; + this(name, description, null); } /** @@ -60,6 +58,7 @@ public class Category public Category(final String name, final String description, final StringList softwares) { this.name = name; + this.technicalName = StatoolInfosUtils.toTechnicalName(getName()); this.description = description; this.softwares = new StringList(softwares); this.logoPath = DEFAULT_LOGO_PATH; @@ -111,7 +110,7 @@ public class Category { String result; - result = StatoolInfosUtils.toTechnicalName(getName()); + result = this.technicalName; // return result; diff --git a/src/fr/devinsy/statoolinfos/core/categories.properties b/src/fr/devinsy/statoolinfos/core/categories.properties new file mode 100644 index 0000000..efd5f5a --- /dev/null +++ b/src/fr/devinsy/statoolinfos/core/categories.properties @@ -0,0 +1,438 @@ +# Warning: UTF-8 file. +# History: +# 2021-2023 CHATONS stats workgroup with Angie from Framasoft, MrFlo and Cpm. +# 2024 Cpm. + +# [Categories] + +# Outils de communication + +## Courrier électronique / mail (alternative à Gmail, Hotmail, YahooMail, etc.) +categories.mail.name=Courrier électronique +categories.mail.description= +categories.mail.logo=mail.svg +categories.mail.softwares=BlueMind, Rainloop, Roundcube, SOgo, Mailman, Dovecot, Postfix, Snappymail + +## Carnet d'adresse (alternative à Google Contacts) +categories.adressbook.name=Carnet d'adresses +categories.adressbook.description= +categories.adressbook.logo=adressbook.svg +categories.adressbook.softwares=Radicale, SOgo, Nextcloud Contact, Nextcloud, Davical, InfCloud + +## Liste de diffusion (alternative à Google Groupes) +categories.mailinglist.name=Liste de diffusion +categories.mailinglist.description= +categories.mailinglist.logo=mailinglist.svg +categories.mailinglist.softwares=Sympa + +## Lettres d'information (alternative à MailChimp) +categories.newsletter.name=Lettres d'informations +categories.newsletter.description=Générateur de lettres d'information +categories.newsletter.logo=newsletter.svg +categories.newsletter.softwares=PHPList, wassup + +## Audioconférence (alternative à Discord) +categories.audioconf.name=Audio-conférence +categories.audioconf.description= +categories.audioconf.logo=audioconf.svg +categories.audioconf.softwares=Mumble, MumbleWeb, Mumble Web, Wire + +## Visioconférence (alternative à Skype, Hangouts, etc.) +categories.videoconf.name=Visio-conférence +categories.videoconf.description=Pour faire des visio-conférences. +categories.videoconf.logo=videoconf.svg +categories.videoconf.softwares=Jitsi, Jitsi Meet, BigBlueButton, OpenMeetings, Jami, Nextcloud Talk, Galène + +## Messagerie instantanée (alternative à Slack) +categories.im.name=Messagerie instantanée +categories.im.description= +categories.im.logo=im.svg +categories.im.softwares=Mattermost, RocketChat, MongooseIM, Tracim, Twake, BitlBee + +## Chat IRC ou Jabber (alternative à MSN) +categories.chat.name=Chat +categories.chat.description= +categories.chat.logo=chat.svg +categories.chat.softwares=IRC, Jabber, ejabberd, Synapse, Metronome, Matrix, Element, Element Web, Riot, Prosody, MyCryptoChat, Converse, Glowing bear, BitlBee + +## Forum (alternative à Discord) +categories.forum.name=Forum +categories.forum.description= +categories.forum.logo=forum.svg +categories.forum.softwares=Discourse, Flarum + +## Réseau social (alternative à Facebook) +categories.socialnetwork.name=Réseau social +categories.socialnetwork.description= +categories.socialnetwork.logo=socialnetwork.svg +categories.socialnetwork.softwares=Diaspora*, Movim + +## Microblogging (alternative à Twitter) +categories.microblogging.name=Microblogging +categories.microblogging.description= +categories.microblogging.logo=microblogging.svg +categories.microblogging.softwares=Mastodon, Pleroma + +## Organisation d'évènements (alternative aux évènements Facebook, MeetUp, EventBrite) +categories.events.name=Organisation d'évènements +categories.events.description= +categories.events.logo=events.svg +categories.events.softwares=Mobilizon + +## Gestion de groupes (alternative aux groupes Facebook) +categories.groups.name=Gestion de groupes +categories.groups.description= +categories.groups.logo=groups.svg +categories.groups.softwares=Mobilizon, Agorakit + +## Gestionnaire de notifications +categories.notifications.name=Gestionnaire de notifications +categories.notifications.description= +categories.notifications.logo=notifications.svg +categories.notifications.softwares=ntfy + +# Outils Internet + +## Moteur de recherche (alternative à Google Search) +categories.search.name=Moteur de recherche +categories.search.description= +categories.search.logo=search.svg +categories.search.softwares=SearX + +## Serveurs de jeux vidéo +categories.videogames.name=Serveurs de jeux vidéo +categories.videogames.description= +categories.videogames.logo=videogames.svg +categories.videogames.softwares=Minetest, Trivabble, Codenames Green, Terraforming Mars + +## Cartographie (alternative à Google Maps, Mappy, etc.) +categories.maps.name=Cartographie +categories.maps.description= +categories.maps.logo=maps.svg +categories.maps.softwares=OpenStreetMap, GoGoCarto, uMap + +## Outils de sondage (alternative à SurveyMonkey) +categories.survey.name=Sondage +categories.survey.description= +categories.survey.logo=survey.svg +categories.survey.softwares=LimeSurvey + +## Outils de traduction +categories.translator.name=Outils de traduction +categories.translator.description= +categories.translator.logo=translator.svg +categories.translator.softwares=LibreTranslate, Weblate, Zanata + +## Générateur de code-barres +categories.barcode.name=Générateur de code-barres +categories.barcode.description= +categories.barcode.logo=qrcode.svg +categories.barcode.softwares=LibreQR + +## Raccourcisseur d'URL (alternative à Bit.ly, tinyurl, etc.) +categories.urlshrinker.name=Raccourcisseur d'URL +categories.urlshrinker.description=Pour partager des URL raccourcies. +categories.urlshrinker.logo=urlshrinker.svg +categories.urlshrinker.softwares=Yourls, LSTU, Rs-Short, Polr + +## Transfert de messages ou de bouts de textes (alternative à PasteBin) +categories.bin.name=Transfert de messages ou de bouts de texte +categories.bin.description= +categories.bin.logo=bin.svg +categories.bin.softwares=PrivateBin, 0bin.net, Paste + +## Gestionnaire de marques-pages / favoris (alternative à Del.icio.us, Diigo, Pearltrees, etc.) +categories.bookmarks.name=Gestionnaire de marques-pages +categories.bookmarks.description= +categories.bookmarks.logo=bookmarks.svg +categories.bookmarks.softwares=Shaarli + +## Générateur de flux RSS +categories.rssgen.name=Générateur de flux RSS +categories.rssgen.description= +categories.rssgen.logo=rssgen.svg +categories.rssgen.softwares=RSS Bridge + +## Agrégateur de flux RSS (alternative à Netvibes, Feedly, InoReader, etc.) +categories.rss.name=Agrégateur de flux RSS +categories.rss.description= +categories.rss.logo=rss.svg +categories.rss.softwares=Cyca, FreshRSS, Tiny Tiny RSS + +## Sauvegarde de contenus web (alternative à Pocket, Instapaper, etc.) +categories.saveforlater.name=Sauvegarde de contenus web +categories.saveforlater.description= +categories.saveforlater.logo=saveforlater.svg +categories.saveforlater.softwares=Wallabag + +## Gestionnaire de mots de passe (alternative à LastPass, Dashlane, etc.) +categories.password.name=Gestionnaire de mots de passe +categories.password.description= +categories.password.logo=password.svg +categories.password.softwares=Bitwarden, Vaultwarden, Nextcloud Passman + +## Forge logicielle (alternative à Github) +categories.git.name=Forge logicielle +categories.git.description=Pour partager des dépôts versionnés +categories.git.logo=git.svg +categories.git.softwares=GitLab, GitLab CE,GitLabCE,Gogs,Gitea,Gitolite, Forgejo + +## Mesure de statistiques (alternative à Google Analytics) +categories.metrics.name=Mesure de statistiques +categories.metrics.description= +categories.metrics.logo=metrics.svg +categories.metrics.softwares=Matomo, Open Web Analytics, Dolomon + +## Proxy - Intermédiaire de relais et/ou d'anonymisation +categories.proxy.name=Proxy +categories.proxy.description= +categories.proxy.logo=proxy.svg +categories.proxy.softwares=Squid, Nitter,Invidious, Bibliogram, PeerJS Server, PeerServer, Coturn + +## VPN - Réseau privé virtuel +categories.vpn.name=VPN +categories.vpn.description= +categories.vpn.logo=vpn.svg +categories.vpn.softwares=OpenVPN, tinc + +# Outils de travail + +## Agenda partagé (alternative à Google Agenda) +categories.calendar.name=Agenda +categories.calendar.description= +categories.calendar.logo=calendar.svg +categories.calendar.softwares=Radicale, SOgo, Nextcloud Calendar, Nextcloud, Tracim, Baïkal, Davical, InfCloud + +## Rédaction collaborative (alternative à Google Docs) +categories.pad.name=Traitement de texte collaboratif +categories.pad.description= +categories.pad.logo=pad.svg +categories.pad.softwares=Etherpad, Etherpad-lite, CodiMD, Cryptpad, HedgeDoc, MyPads, Nextcloud OnlyOffice, Nextcloud Collabora Online, OnlyOffice, Collabora Online, Tracim Collabora Online, Libreto + +## Tableur collaboratif (alternative à Google Sheets) +categories.calc.name=Tableur collaboratif +categories.calc.description= +categories.calc.logo=calc.svg +categories.calc.softwares=Ethercalc, Cryptpad, Nextcloud OnlyOffice, Nextcloud Collabora Online, OnlyOffice, Collabora Online + +## Tableau blanc collaboratif (alternative à Stoodle) +categories.board.name=Tableau blanc collaboratif +categories.board.description= +categories.board.logo=board.svg +categories.board.softwares=Scrumblr, Whiteboard + +## Présentation collaborative (alternative à Google Drive) +categories.slide.name=Présentation en ligne +categories.slide.description= +categories.slide.logo=slide.svg +categories.slide.softwares=Strut, Nextcloud OnlyOffice, Nextcloud Collabora Online, OnlyOffice, Collabora Online + +## Questionnaire en ligne (alternative à Google Forms) +categories.form.name=Questionnaire en ligne +categories.form.description= +categories.form.logo=form.svg +categories.form.softwares=Yakforms + +## Aide à la prise de rendez-vous (alternative à Doodle) +categories.date.name=Aide à la prise de rendez-vous +categories.date.description= +categories.date.logo=date.svg +categories.date.softwares=Framadate, OpenSondage + +## Création de schémas et diagrammes (alternative à Visio) +categories.diagram.name=Création de schémas et diagrammes +categories.diagram.description= +categories.diagram.logo=diagram.svg +categories.diagram.softwares=Drawio + +## Carte heuristique / mentale (alternative à Mindmeister) +categories.mindmap.name=Carte heuristique +categories.mindmap.description= +categories.mindmap.logo=mindmap.svg +categories.mindmap.softwares=WiseMapping, MyMind, My Mind + +## Gestionnaire de tâches (alternative à Google Tasks) +categories.tasks.name=Gestionnaire de tâches +categories.tasks.description= +categories.tasks.logo=tasks.svg +categories.tasks.softwares= Taskwarrior + +## Prise de note (alternative à Evernote, OneNote, etc.) +categories.notes.name=Prise de note +categories.notes.description= +categories.notes.logo=notes.svg +categories.notes.softwares=Turtl, Tracim + +## Tableau Kanban (alternative à Trello, Asana, etc.) +categories.kanbanboard.name=Tableau Kanban +categories.kanbanboard.description= +categories.kanbanboard.logo=kanban.svg +categories.kanbanboard.softwares=Kanboard, Wekan, Nullboard + +## Outils de prise de décision (alternative à Klaxoon) +categories.decision.name=Outils de prise de décision +categories.decision.description= +categories.decision.logo=decision.svg +categories.decision.softwares=Loomio, VotAR + +## Gestionnaire de signature électronique +categories.electronicsignature.name=Gestionnaire de signature électronique +categories.electronicsignature.description= +categories.electronicsignature.logo=esignature.svg +categories.electronicsignature.softwares=Signature PDF + +## Plateforme de formation / LMS +categories.lms.name=Plateforme de formation / LMS (Learning Management System) +categories.lms.description= +categories.lms.logo=lms.svg +categories.lms.softwares=Moodle, Scenarii, YesWiki, Open edX + +# Services de partage de fichiers + +## Stockage / partage de documents (alternative à Dropbox, Google Drive, OneDrive, etc.) +categories.cloud.name=Stockage/ partage de documents +categories.cloud.description= +categories.cloud.logo=cloud.svg +categories.cloud.softwares=Nextcloud, Owncloud, Seafile, Tracim, Minio, ProFTPD + +## Partage temporaire de fichiers (alternative à WeTransfer, DropSend) +categories.temporaryfilesharing.name=Partage temporaire de fichiers +categories.temporaryfilesharing.description=Pour partager des fichiers de façon temporaire. +categories.temporaryfilesharing.logo=temporaryfilesharing.svg +categories.temporaryfilesharing.softwares=Firefox Send,FirefoxSend, Lufi, FileToLink, File2Link, Plik + +## Stockage/partage d'images (alternative à Img.ur) +categories.pic.name= Stockage et partage d'images +categories.pic.description= +categories.pic.logo=pic.svg +categories.pic.softwares=Lutim, Pixelfed + +## Stockage/partage d'albums de photos (alternative à Google Photos, Flickr, etc.) +categories.gallery.name= Stockage et partage d'albums photos +categories.gallery.description= +categories.gallery.logo=gallery.svg +categories.gallery.softwares=Piwigo, Mediagoblin + +## Diffusion de fichiers vidéos (alternative à YouTube, DailyMotion, Viméo, etc.) +categories.tube.name= Diffusion de fichiers vidéo +categories.tube.description= +categories.tube.logo=tube.svg +categories.tube.softwares=PeerTube, Mediagoblin + +## Diffusion de fichiers audio (alternative à Soundcloud) +categories.podcast.name= Diffusion de fichiers audio +categories.podcast.description= +categories.podcast.logo=podcast.svg +categories.podcast.softwares=Funkwhale, Mediagoblin + +## Diffusion en direct de flux audio et vidéo +categories.streaming.name= Diffusion en direct de flux audio et vidéo +categories.streaming.description= +categories.streaming.logo=streaming.svg +categories.streaming.softwares=PeerTube, Icecast + +## Hébergement de sites web / blogs / capsules +categories.website.name= Hébergement de sites web / blogs / capsules +categories.website.description= +categories.website.logo=website.svg +categories.website.softwares=Wordpress, Joomla!, Plume, SPIP, Grav, PrettyNoemie CMS, Write Freely, Vger, ISPconfig, Garage, Apache Httpd, Nginx, Twins + +## Hébergement d'une plateforme de commentaires (alternative à Disqus) +categories.commenting.name=Hébergement d'une plateforme de commentaires +categories.commenting.description= +categories.commenting.logo=commenting.svg +categories.commenting.softwares=Commento + +## Hébergement de wikis +categories.wiki.name=Wiki +categories.wiki.description=Modification collaborative de texte +categories.wiki.logo=wiki.svg +categories.wiki.softwares=Dokuwiki, Mediawiki + +## Hébergement d'une ferme de wikis +categories.wikifarm.name= Hébergement d'une ferme de wikis +categories.wikifarm.description= +categories.wikifarm.logo=wikifarm.svg +categories.wikifarm.softwares=YesWiki, Bookstack + +# Services de gestion + +## Gestionnaire de finances personnelles +categories.finance.name=Gestionnaire de finances personnelles +categories.finance.description= +categories.finance.logo=finance.svg +categories.finance.softwares=Kresus, IHateMoney + +## Gestionnaire de facturation / paiement +categories.billing.name=Gestionnaire de facturation / paiement +categories.billing.description= +categories.billing.logo=billing.svg +categories.billing.softwares= + +## Progiciel de Gestion Intégré (PGI, ERP en anglais) +categories.erp.name=Progiciel de Gestion Intégré +categories.erp.description= +categories.erp.logo=erp.svg +categories.erp.softwares=Dolibarr, Odoo, Diacamma + +## Progiciel de Gestion associative +categories.asso.name=Progiciel de Gestion associative +categories.asso.description= +categories.asso.logo=association.svg +categories.asso.softwares=Bénévalibre, Galette, Structura, Garradin, Paheko + +## Gestionnaire de tickets pour le support technique +categories.ticketing.name=Gestionnaire de tickets pour le support technique +categories.ticketing.description= +categories.ticketing.logo=ticketing.svg +categories.ticketing.softwares=Mantis, MantisBT, Redmine, Gitlab, Gitea, RT, Request Tracker, OSTicket, Freescout + +# Outils d'administration système + +## Outils de monitoring +categories.monitoring.name=Outils de monitoring +categories.monitoring.description= +categories.monitoring.logo=monitoring.svg +categories.monitoring.softwares=Healthchecks, Monitorix, Gotify, naemon + +## Outils d'automatisation +categories.automated.name=Outils d'automatisation +categories.automated.description= +categories.automated.logo=automated.svg +categories.automated.softwares=CyberChef, Buildbot + +## Administration de machines virtuelles +categories.vps.name=Administration de machines virtuelles +categories.vps.description= +categories.vps.logo=vps.svg +categories.vps.softwares=Ganeti + +## Fournisseur de machines physiques ou virtuelles +categories.server.name= Fournisseur de comptes Shell, machines physiques ou virtuelles +categories.server.description= +categories.server.logo=server.svg +categories.server.softwares=OpenSSH, Docker, KVM, QEMU, libvirt, VirtualBox, Proxmox + +## Fournisseur de stockage (accès à un support de stockage, sans faire tourner des applications) +categories.storage.name= Fournisseur de stockage +categories.storage.description= +categories.storage.logo=storage.svg +categories.storage.softwares=MinIO, BorgBackup, borgmatic, Garage, ProFTPD, rsync + +## Fournisseur de bases de données +categories.database.name= Fournisseur de bases de données +categories.database.description= +categories.database.logo=database.svg +categories.database.softwares=MariaDB, PostgreSQL, MongoDB, SQLite, Redis, CouchDb, Cassandra + +## Résilience - Outils de réplication et de back up +categories.resilience.name=Outils de réplication et de back up +categories.resilience.description= +categories.resilience.logo=resilience.svg +categories.resilience.softwares=MariaDB, PostgreSQL, rsync + +## Outils de DNS +categories.dns.name=Outils de DNS +categories.dns.description= +categories.dns.logo=dns.svg +categories.dns.softwares=bind9