pbordescnil commited on
Commit
04cfd15
·
1 Parent(s): a73c34a

Stabilize layout across modern browsers

Browse files
application_neo4j/static/css/style.css CHANGED
@@ -2,13 +2,79 @@
2
  * STYLE GLOBAL & GRAPHIQUE SIGMA
3
  * =================================================================== */
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  #sigma-container {
6
  width: 100%;
7
  height: 600px; /* Un peu plus de hauteur pour un meilleur confort */
8
- border: 1px solid var(--bs-border-color); /* Variable Bootstrap */
 
 
 
9
  margin-top: 1rem;
10
- border-radius: var(--bs-border-radius); /* Variable Bootstrap */
11
- background-color: var(--bs-light-bg-subtle); /* Fond légèrement teinté */
 
 
 
 
 
 
12
  }
13
 
14
  /* ===================================================================
@@ -32,35 +98,62 @@
32
  /* ===================================================================
33
  * STYLE DES TABLES (DATATABLES)
34
  * =================================================================== */
35
- /* Permet au texte de revenir à la ligne naturellement */
 
36
  #descendance-table th, #descendance-table td,
37
- #ascendance-table th, #ascendance-table td {
38
- white-space: normal; /* <-- La correction clé ! */
39
- word-wrap: break-word; /* Force le retour à la ligne des mots longs */
40
- vertical-align: middle; /* Garde le centrage vertical */
 
41
  }
42
 
43
- /* On peut donner une largeur minimale aux colonnes pour garder une bonne structure */
44
- #descendance-table th, #ascendance-table th {
45
- min-width: 120px; /* Ajustez cette valeur selon vos besoins */
 
46
  }
47
 
48
- /* Cas spécifique pour les colonnes potentiellement longues comme le nom du modèle */
49
- #descendance-table th:first-child, #ascendance-table th:first-child {
 
 
50
  min-width: 200px;
 
 
 
51
  }
52
 
53
- /* Empêche le texte de se couper dans les cellules, force le défilement horizontal */
54
- #descendance-table th, #descendance-table td,
55
- #ascendance-table th, #ascendance-table td {
56
- white-space: nowrap;
57
- vertical-align: middle; /* Centrage vertical pour un look plus propre */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  }
59
 
60
  /* Personnalisation de l'input de recherche de DataTables pour qu'il ressemble à un champ Bootstrap */
61
  div.dataTables_wrapper div.dataTables_filter input {
62
- border: 1px solid var(--bs-border-color);
63
- border-radius: var(--bs-border-radius);
 
 
 
64
  padding: 0.375rem 0.75rem;
65
  margin-left: 0.5em;
66
  }
@@ -100,8 +193,12 @@ div.dataTables_wrapper .table thead th.sorting_desc::after {
100
  /* Ce style est pour si vous utilisez une <ul> simple.
101
  Si vous avez bien une <ul class="list-group">, vous pouvez supprimer ce bloc. */
102
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
103
- border-radius: var(--bs-border-radius);
104
- background-color: var(--bs-light);
 
 
 
 
105
  }
106
  #suggestions-list li:hover {
107
  background-color: #94bfeb; ;
@@ -198,11 +295,22 @@ div.dataTables_wrapper .table thead th.sorting_desc::after {
198
  }
199
 
200
  /* Change la couleur de fond des cases à cocher lorsqu'elles sont cochées */
201
- .btn {
202
  background-color: #6a11cb;
203
  border-color:#6a11cb;
204
  }
205
 
 
 
 
 
 
 
 
 
 
 
 
206
  .stretched-link{
207
  color: #6a11cb;
208
  }
@@ -268,4 +376,31 @@ main {
268
  .btn-modern:hover {
269
  background: linear-gradient(135deg, #5a0fbf, #1d63e1);
270
  transform: translateY(-3px);
271
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  * STYLE GLOBAL & GRAPHIQUE SIGMA
3
  * =================================================================== */
4
 
5
+ /* Explicit sizing and minimum widths avoid engine-specific flexbox
6
+ * expansion differences (notably between Blink and Gecko). */
7
+ html {
8
+ -webkit-text-size-adjust: 100%;
9
+ text-size-adjust: 100%;
10
+ }
11
+
12
+ body {
13
+ min-width: 320px;
14
+ }
15
+
16
+ .legacy-browser-warning {
17
+ display: none;
18
+ margin: 0;
19
+ padding: 0.75rem 1rem;
20
+ color: #664d03;
21
+ background: #fff3cd;
22
+ border-bottom: 1px solid #ffecb5;
23
+ font-weight: 600;
24
+ text-align: center;
25
+ }
26
+
27
+ img,
28
+ svg {
29
+ max-width: 100%;
30
+ height: auto;
31
+ }
32
+
33
+ .row > *,
34
+ .card,
35
+ .card-body,
36
+ .flex-grow-1 {
37
+ min-width: 0;
38
+ }
39
+
40
+ .navbar .container {
41
+ column-gap: 1rem;
42
+ row-gap: 0.75rem;
43
+ }
44
+
45
+ .navbar-brand {
46
+ min-width: 0;
47
+ max-width: 100%;
48
+ white-space: normal;
49
+ }
50
+
51
+ .navbar-brand small,
52
+ #suggestions-list li {
53
+ overflow-wrap: anywhere;
54
+ word-break: break-word;
55
+ }
56
+
57
+ .navbar-actions {
58
+ min-width: 0;
59
+ margin-left: auto;
60
+ }
61
+
62
  #sigma-container {
63
  width: 100%;
64
  height: 600px; /* Un peu plus de hauteur pour un meilleur confort */
65
+ position: relative;
66
+ overflow: hidden;
67
+ border: 1px solid #dee2e6;
68
+ border: 1px solid var(--bs-border-color, #dee2e6); /* Variable Bootstrap */
69
  margin-top: 1rem;
70
+ border-radius: 0.375rem;
71
+ border-radius: var(--bs-border-radius, 0.375rem); /* Variable Bootstrap */
72
+ background-color: #f8f9fa;
73
+ background-color: var(--bs-light-bg-subtle, #f8f9fa); /* Fond légèrement teinté */
74
+ }
75
+
76
+ #floating-legend {
77
+ max-width: calc(100% - 1rem);
78
  }
79
 
80
  /* ===================================================================
 
98
  /* ===================================================================
99
  * STYLE DES TABLES (DATATABLES)
100
  * =================================================================== */
101
+ /* A single, deterministic wrapping policy replaces the previous contradictory
102
+ * normal/nowrap declarations. */
103
  #descendance-table th, #descendance-table td,
104
+ #ascendance-table th, #ascendance-table td,
105
+ #train-table th, #train-table td,
106
+ #graph-models-table th, #graph-models-table td {
107
+ white-space: nowrap;
108
+ vertical-align: middle;
109
  }
110
 
111
+ #descendance-table th,
112
+ #ascendance-table th,
113
+ #train-table th {
114
+ min-width: 120px;
115
  }
116
 
117
+ #descendance-table th:first-child, #descendance-table td:first-child,
118
+ #ascendance-table th:first-child, #ascendance-table td:first-child,
119
+ #train-table th:first-child, #train-table td:first-child,
120
+ #graph-models-table th:first-child, #graph-models-table td:first-child {
121
  min-width: 200px;
122
+ white-space: normal;
123
+ overflow-wrap: anywhere;
124
+ word-break: break-word;
125
  }
126
 
127
+ .table-responsive,
128
+ div.dataTables_wrapper,
129
+ div.dataTables_wrapper div.dataTables_scroll {
130
+ width: 100%;
131
+ max-width: 100%;
132
+ }
133
+
134
+ .table-responsive,
135
+ div.dataTables_wrapper div.dataTables_scrollBody {
136
+ overflow-x: auto !important;
137
+ -webkit-overflow-scrolling: touch;
138
+ }
139
+
140
+ div.dataTables_wrapper div.dataTables_scrollHeadInner {
141
+ min-width: 100%;
142
+ }
143
+
144
+ div.dataTables_wrapper table.dataTable {
145
+ margin-left: 0 !important;
146
+ margin-right: 0 !important;
147
+ table-layout: auto;
148
  }
149
 
150
  /* Personnalisation de l'input de recherche de DataTables pour qu'il ressemble à un champ Bootstrap */
151
  div.dataTables_wrapper div.dataTables_filter input {
152
+ max-width: 100%;
153
+ border: 1px solid #dee2e6;
154
+ border: 1px solid var(--bs-border-color, #dee2e6);
155
+ border-radius: 0.375rem;
156
+ border-radius: var(--bs-border-radius, 0.375rem);
157
  padding: 0.375rem 0.75rem;
158
  margin-left: 0.5em;
159
  }
 
193
  /* Ce style est pour si vous utilisez une <ul> simple.
194
  Si vous avez bien une <ul class="list-group">, vous pouvez supprimer ce bloc. */
195
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
196
+ max-width: 100%;
197
+ overflow-x: hidden;
198
+ border-radius: 0.375rem;
199
+ border-radius: var(--bs-border-radius, 0.375rem);
200
+ background-color: #f8f9fa;
201
+ background-color: var(--bs-light, #f8f9fa);
202
  }
203
  #suggestions-list li:hover {
204
  background-color: #94bfeb; ;
 
295
  }
296
 
297
  /* Change la couleur de fond des cases à cocher lorsqu'elles sont cochées */
298
+ .btn-primary {
299
  background-color: #6a11cb;
300
  border-color:#6a11cb;
301
  }
302
 
303
+ .btn-outline-primary {
304
+ color: #6a11cb;
305
+ border-color: #6a11cb;
306
+ }
307
+
308
+ .btn-outline-primary:hover {
309
+ color: #fff;
310
+ background-color: #6a11cb;
311
+ border-color: #6a11cb;
312
+ }
313
+
314
  .stretched-link{
315
  color: #6a11cb;
316
  }
 
376
  .btn-modern:hover {
377
  background: linear-gradient(135deg, #5a0fbf, #1d63e1);
378
  transform: translateY(-3px);
379
+ }
380
+
381
+ @media (max-width: 575.98px) {
382
+ .navbar-brand,
383
+ .navbar-actions {
384
+ flex: 1 1 100%;
385
+ margin-right: 0;
386
+ }
387
+
388
+ .navbar-actions {
389
+ justify-content: flex-start !important;
390
+ }
391
+
392
+ #sigma-container {
393
+ height: 70vh;
394
+ min-height: 420px;
395
+ }
396
+
397
+ div.dataTables_wrapper div.dataTables_filter label {
398
+ display: block;
399
+ width: 100%;
400
+ }
401
+
402
+ div.dataTables_wrapper div.dataTables_filter input {
403
+ width: 100%;
404
+ margin: 0.375rem 0 0;
405
+ }
406
+ }
application_neo4j/static/js/browser_compatibility.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function () {
2
+ "use strict";
3
+
4
+ // `document.documentMode` is exposed by Internet Explorer only. The rest of
5
+ // the application deliberately targets maintained browsers supported by
6
+ // Bootstrap 5.
7
+ if (document.documentMode) {
8
+ var warning = document.getElementById("legacy-browser-warning");
9
+ if (warning) {
10
+ warning.style.display = "block";
11
+ }
12
+ }
13
+ }());
application_neo4j/static/js/script.js CHANGED
@@ -193,7 +193,8 @@ document.addEventListener("DOMContentLoaded", () => {
193
  const common_dt_options = {
194
  "language": { "url": datatablesLangUrl },
195
  "pageLength": 10,
196
- "responsive": true,"scrollX": true , "scrollY":true,
 
197
  // Afficher en premier les modèles les plus téléchargés.
198
  "order": [[2, "desc"]],
199
  "columnDefs": [
 
193
  const common_dt_options = {
194
  "language": { "url": datatablesLangUrl },
195
  "pageLength": 10,
196
+ "responsive": true,
197
+ "scrollX": true,
198
  // Afficher en premier les modèles les plus téléchargés.
199
  "order": [[2, "desc"]],
200
  "columnDefs": [
application_neo4j/static/js/script_dataset.js CHANGED
@@ -209,7 +209,8 @@ document.addEventListener("DOMContentLoaded", () => {
209
  const common_dt_options = {
210
  "language": { "url": datatablesLangUrl },
211
  "pageLength": 10,
212
- "responsive": true,"scrollX": true , "scrollY":true,
 
213
  "columnDefs": [
214
  {
215
  // Appliquer notre plugin 'numeric-string' aux colonnes cibles
 
209
  const common_dt_options = {
210
  "language": { "url": datatablesLangUrl },
211
  "pageLength": 10,
212
+ "responsive": true,
213
+ "scrollX": true,
214
  "columnDefs": [
215
  {
216
  // Appliquer notre plugin 'numeric-string' aux colonnes cibles
application_neo4j/templates/expert.html CHANGED
@@ -18,13 +18,15 @@
18
  </head>
19
 
20
  <body class="d-flex flex-column min-vh-100">
 
 
21
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
22
  <div class="container">
23
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
24
  <span class="fw-bold">{{ t('site.nav_brand_model_expert') }}</span>
25
  <small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
26
  </a>
27
- <div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
28
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
29
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
30
  </a>
 
18
  </head>
19
 
20
  <body class="d-flex flex-column min-vh-100">
21
+ <div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
22
+ <script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
23
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
24
  <div class="container">
25
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
26
  <span class="fw-bold">{{ t('site.nav_brand_model_expert') }}</span>
27
  <small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
28
  </a>
29
+ <div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
30
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
31
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
32
  </a>
application_neo4j/templates/index.html CHANGED
@@ -5,7 +5,7 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>{{ t('site.title_home') }}</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
8
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
9
 
10
  <style>/* Style simple pour la page d'accueil */
11
  body {
@@ -116,11 +116,30 @@
116
  background: #3498db;
117
  color: #fff;
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  </style>
121
  </head>
122
 
123
  <body>
 
 
124
  <!-- Language selector -->
125
  <div class="lang-switch">
126
  <a href="{{ url_for('set_language_route', lang='fr') }}" class="{{ 'active' if current_lang == 'fr' else '' }}">{{ t('lang.fr') }}</a>
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>{{ t('site.title_home') }}</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
8
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
9
 
10
  <style>/* Style simple pour la page d'accueil */
11
  body {
 
116
  background: #3498db;
117
  color: #fff;
118
  }
119
+
120
+ @media (max-width: 575.98px) {
121
+ .lang-switch {
122
+ position: static;
123
+ justify-content: flex-end;
124
+ padding: 12px 15px 0;
125
+ }
126
+
127
+ .welcome-container {
128
+ padding-top: 24px;
129
+ }
130
+
131
+ .content-card {
132
+ padding: 22px;
133
+ text-align: left;
134
+ }
135
+ }
136
 
137
  </style>
138
  </head>
139
 
140
  <body>
141
+ <div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
142
+ <script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
143
  <!-- Language selector -->
144
  <div class="lang-switch">
145
  <a href="{{ url_for('set_language_route', lang='fr') }}" class="{{ 'active' if current_lang == 'fr' else '' }}">{{ t('lang.fr') }}</a>
application_neo4j/templates/infos.html CHANGED
@@ -7,6 +7,7 @@
7
  <style>
8
  body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }
9
  body { display: flex; flex-direction: column; font-family: sans-serif; }
 
10
  .toolbar {
11
  display: flex;
12
  align-items: center;
@@ -24,11 +25,13 @@
24
  font-weight: 600;
25
  }
26
  .home-button:hover { color: #fff; background: #424649; }
27
- .pdf-container { width: 100%; flex: 1; min-height: 0; }
28
- .pdf-container iframe { border: none; width: 100%; height: 100%; }
29
  </style>
30
  </head>
31
  <body>
 
 
32
  <nav class="toolbar" aria-label="{{ t('site.home_button') }}">
33
  <a class="home-button" href="{{ url_for('home', lang=current_lang) }}">⌂ {{ t('site.home_button') }}</a>
34
  </nav>
 
7
  <style>
8
  body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }
9
  body { display: flex; flex-direction: column; font-family: sans-serif; }
10
+ .legacy-browser-warning { display: none; padding: 0.75rem 1rem; color: #664d03; background: #fff3cd; border-bottom: 1px solid #ffecb5; font-weight: 600; text-align: center; }
11
  .toolbar {
12
  display: flex;
13
  align-items: center;
 
25
  font-weight: 600;
26
  }
27
  .home-button:hover { color: #fff; background: #424649; }
28
+ .pdf-container { width: 100%; height: calc(100% - 52px); flex: 1; min-height: 0; }
29
+ .pdf-container iframe { display: block; border: none; width: 100%; height: 100%; }
30
  </style>
31
  </head>
32
  <body>
33
+ <div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
34
+ <script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
35
  <nav class="toolbar" aria-label="{{ t('site.home_button') }}">
36
  <a class="home-button" href="{{ url_for('home', lang=current_lang) }}">⌂ {{ t('site.home_button') }}</a>
37
  </nav>
application_neo4j/templates/search.html CHANGED
@@ -33,13 +33,15 @@
33
  </head>
34
 
35
  <body class="d-flex flex-column min-vh-100">
 
 
36
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
37
  <div class="container">
38
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
39
  <span class="fw-bold">{{ t('site.nav_brand') }}</span>
40
  <small class="d-block text-muted">{{ t('site.nav_subtitle_full') }}</small>
41
  </a>
42
- <div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
43
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
44
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
45
  </a>
 
33
  </head>
34
 
35
  <body class="d-flex flex-column min-vh-100">
36
+ <div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
37
+ <script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
38
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
39
  <div class="container">
40
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
41
  <span class="fw-bold">{{ t('site.nav_brand') }}</span>
42
  <small class="d-block text-muted">{{ t('site.nav_subtitle_full') }}</small>
43
  </a>
44
+ <div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
45
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
46
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
47
  </a>
application_neo4j/templates/search_dataset.html CHANGED
@@ -33,13 +33,15 @@
33
  </head>
34
 
35
  <body class="d-flex flex-column min-vh-100">
 
 
36
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
37
  <div class="container">
38
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
39
  <span class="fw-bold">{{ t('site.nav_brand') }}</span>
40
  <small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
41
  </a>
42
- <div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
43
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
44
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
45
  </a>
 
33
  </head>
34
 
35
  <body class="d-flex flex-column min-vh-100">
36
+ <div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
37
+ <script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
38
  <header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
39
  <div class="container">
40
  <a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
41
  <span class="fw-bold">{{ t('site.nav_brand') }}</span>
42
  <small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
43
  </a>
44
+ <div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
45
  <a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
46
  <i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
47
  </a>
application_neo4j/translations.py CHANGED
@@ -46,6 +46,7 @@ TRANSLATIONS = {
46
  "site.nav_subtitle": "Exploration des relations entre modèles et datasets",
47
  "site.nav_subtitle_full": "Exploration des relations entre modèles et datasets (base de données actualisée le {date})",
48
  "site.home_button": "Accueil",
 
49
  "site.footer": "Application de recherche et visualisation des relations entre modèles et jeux de données publiés sur la plateforme HuggingFace. © 2025",
50
  "site.footer_expert": "Application de recherche et visualisation... © 2025",
51
 
@@ -284,6 +285,7 @@ TRANSLATIONS = {
284
  "site.nav_subtitle": "Exploration of relations between models and datasets",
285
  "site.nav_subtitle_full": "Exploration of relations between models and datasets (database updated on {date})",
286
  "site.home_button": "Home",
 
287
  "site.footer": "Application for searching and visualizing relations between models and datasets published on the HuggingFace platform. © 2025",
288
  "site.footer_expert": "Application for searching and visualizing... © 2025",
289
 
 
46
  "site.nav_subtitle": "Exploration des relations entre modèles et datasets",
47
  "site.nav_subtitle_full": "Exploration des relations entre modèles et datasets (base de données actualisée le {date})",
48
  "site.home_button": "Accueil",
49
+ "site.legacy_browser_warning": "Ce navigateur n’est plus pris en charge. Pour un affichage stable, utilisez une version récente de Firefox, Chrome, Edge ou Safari.",
50
  "site.footer": "Application de recherche et visualisation des relations entre modèles et jeux de données publiés sur la plateforme HuggingFace. © 2025",
51
  "site.footer_expert": "Application de recherche et visualisation... © 2025",
52
 
 
285
  "site.nav_subtitle": "Exploration of relations between models and datasets",
286
  "site.nav_subtitle_full": "Exploration of relations between models and datasets (database updated on {date})",
287
  "site.home_button": "Home",
288
+ "site.legacy_browser_warning": "This browser is no longer supported. For a stable display, use a recent version of Firefox, Chrome, Edge or Safari.",
289
  "site.footer": "Application for searching and visualizing relations between models and datasets published on the HuggingFace platform. © 2025",
290
  "site.footer_expert": "Application for searching and visualizing... © 2025",
291