Fix missing translations

This commit is contained in:
Yohann D'ANELLO 2021-10-26 15:16:00 +02:00
parent ae0d1a080e
commit 4928b555b7
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 272 additions and 243 deletions

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-23 18:27+0200\n" "POT-Creation-Date: 2021-10-26 15:14+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,20 +13,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: admin.py:33 admin.py:88 admin.py:99 models.py:29 models.py:65 models.py:130 #: admin.py:46 admin.py:102 admin.py:114 models.py:30 models.py:77
#: models.py:192 models.py:243 models.py:274 #: models.py:149 models.py:221 models.py:290 models.py:348 models.py:394
msgid "authors" msgid "authors"
msgstr "auteurs" msgstr "auteurs"
#: admin.py:43 #: admin.py:56
msgid "external url" msgid "external url"
msgstr "URL externe" msgstr "URL externe"
#: admin.py:126 #: admin.py:142
msgid "Turn back" msgid "Turn back"
msgstr "Rendre" msgstr "Rendre"
#: admin.py:129 models.py:407 #: admin.py:145 models.py:574
msgid "given back to" msgid "given back to"
msgstr "rendu à" msgstr "rendu à"
@ -38,220 +38,249 @@ msgstr "ISBN-10 ou ISBN-13"
msgid "This ISBN is not found." msgid "This ISBN is not found."
msgstr "L'ISBN n'a pas été trouvé." msgstr "L'ISBN n'a pas été trouvé."
#: models.py:16 models.py:431 #: management/commands/migrate_to_new_format.py:52 models.py:408 models.py:415
msgid "name"
msgstr "nom"
#: models.py:21
msgid "note"
msgstr "note"
#: models.py:28
msgid "author"
msgstr "auteur"
#: models.py:35 models.py:100 models.py:162 models.py:345
msgid "ISBN"
msgstr "ISBN"
#: models.py:36 models.py:101 models.py:163 models.py:346
msgid "You may be able to scan it from a bar code."
msgstr "Peut souvent être scanné à partir du code barre."
#: models.py:43 models.py:108 models.py:170 models.py:224 models.py:263
#: models.py:294
msgid "title"
msgstr "titre"
#: models.py:48 models.py:113 models.py:175
msgid "subtitle"
msgstr "sous-titre"
#: models.py:54 models.py:119 models.py:181
msgid "external URL"
msgstr "URL externe"
#: models.py:59 models.py:124 models.py:186 models.py:229 models.py:268
msgid "side identifier"
msgstr "côte"
#: models.py:69 models.py:134 models.py:196
msgid "number of pages"
msgstr "nombre de pages"
#: models.py:75 models.py:140 models.py:202
msgid "publish date"
msgstr "date de publication"
#: models.py:81 models.py:146 models.py:208 models.py:247 models.py:278
#: models.py:329 models.py:363
msgid "present"
msgstr "présent"
#: models.py:82 models.py:147 models.py:209 models.py:248 models.py:279
#: models.py:330 models.py:364
msgid "Tell that the medium is present in the Mediatek."
msgstr "Indique que le medium est présent à la Mediatek."
#: models.py:93 models.py:355
msgid "comic"
msgstr "BD"
#: models.py:94
msgid "comics"
msgstr "BDs"
#: models.py:155
msgid "manga"
msgstr "manga"
#: models.py:156
msgid "mangas"
msgstr "mangas"
#: models.py:217
msgid "novel"
msgstr "roman"
#: models.py:218
msgid "novels"
msgstr "romans"
#: models.py:234
msgid "rounds per minute"
msgstr "tours par minute"
#: models.py:236
msgid "33 RPM"
msgstr "33 TPM"
#: models.py:237
msgid "45 RPM"
msgstr "45 TPM"
#: models.py:256
msgid "vinyl"
msgstr "vinyle"
#: models.py:257
msgid "vinyls"
msgstr "vinyles"
#: models.py:287
msgid "CD"
msgstr "CD"
#: models.py:288
msgid "CDs" msgid "CDs"
msgstr "CDs" msgstr "CDs"
#: models.py:299 #: management/commands/migrate_to_new_format.py:52 models.py:407 models.py:414
msgid "number" msgid "CD"
msgstr "nombre" msgstr "CD"
#: models.py:303 #: management/commands/migrate_to_new_format.py:68 models.py:362 models.py:377
msgid "year" msgid "vinyls"
msgstr "année" msgstr "vinyles"
#: models.py:310 #: management/commands/migrate_to_new_format.py:68 models.py:361 models.py:376
msgid "month" msgid "vinyl"
msgstr "mois" msgstr "vinyle"
#: models.py:317 #: management/commands/migrate_to_new_format.py:86 models.py:466 models.py:506
msgid "day"
msgstr "jour"
#: models.py:324
msgid "double"
msgstr "double"
#: models.py:338
msgid "review"
msgstr "revue"
#: models.py:339
msgid "reviews" msgid "reviews"
msgstr "revues" msgstr "revues"
#: models.py:353 #: management/commands/migrate_to_new_format.py:86 models.py:465 models.py:505
msgid "type" msgid "review"
msgstr "type" msgstr "revue"
#: models.py:356 #: management/commands/migrate_to_new_format.py:106 models.py:629 models.py:670
msgid "Manga" msgid "games"
msgstr "Manga" msgstr "jeux"
#: models.py:357 #: management/commands/migrate_to_new_format.py:106 models.py:628 models.py:669
msgid "Roman"
msgstr "Roman"
#: models.py:369
msgid "future medium"
msgstr "medium à importer"
#: models.py:370
msgid "future media"
msgstr "medias à importer"
#: models.py:384
msgid "borrower"
msgstr "emprunteur"
#: models.py:387
msgid "borrowed on"
msgstr "emprunté le"
#: models.py:392
msgid "given back on"
msgstr "rendu le"
#: models.py:398
msgid "borrowed with"
msgstr "emprunté avec"
#: models.py:399
msgid "The keyholder that registered this borrowed item."
msgstr "Le permanencier qui enregistre cet emprunt."
#: models.py:408
msgid "The keyholder to whom this item was given back."
msgstr "Le permanencier à qui l'emprunt a été rendu."
#: models.py:415
msgid "borrowed item"
msgstr "emprunt"
#: models.py:416
msgid "borrowed items"
msgstr "emprunts"
#: models.py:436
msgid "owner"
msgstr "propriétaire"
#: models.py:441
msgid "duration"
msgstr "durée"
#: models.py:445
msgid "minimum number of players"
msgstr "nombre minimum de joueurs"
#: models.py:449
msgid "maximum number of players"
msgstr "nombre maximum de joueurs"
#: models.py:454
msgid "comment"
msgstr "commentaire"
#: models.py:461
msgid "game" msgid "game"
msgstr "jeu" msgstr "jeu"
#: models.py:462 #: models.py:17 models.py:598
msgid "games" msgid "name"
msgstr "jeux" msgstr "nom"
#: models.py:22
msgid "note"
msgstr "note"
#: models.py:29
msgid "author"
msgstr "auteur"
#: models.py:37 models.py:127 models.py:199 models.py:268 models.py:329
#: models.py:383 models.py:421
msgid "title"
msgstr "titre"
#: models.py:41 models.py:165 models.py:237 models.py:306 models.py:352
#: models.py:398 models.py:456 models.py:530
msgid "present"
msgstr "présent"
#: models.py:42 models.py:166 models.py:238 models.py:307 models.py:353
#: models.py:399 models.py:457 models.py:531
msgid "Tell that the medium is present in the Mediatek."
msgstr "Indique que le medium est présent à la Mediatek."
#: models.py:60
msgid "borrowable"
msgstr "empruntable"
#: models.py:61
msgid "borrowables"
msgstr "empruntables"
#: models.py:66 models.py:138 models.py:210 models.py:279
msgid "external URL"
msgstr "URL externe"
#: models.py:71 models.py:143 models.py:215 models.py:284 models.py:334
#: models.py:388
msgid "side identifier"
msgstr "côte"
#: models.py:81
msgid "medium"
msgstr "medium"
#: models.py:82
msgid "media"
msgstr "media"
#: models.py:87 models.py:119 models.py:191 models.py:260 models.py:512
msgid "ISBN"
msgstr "ISBN"
#: models.py:88 models.py:120 models.py:192 models.py:261 models.py:513
msgid "You may be able to scan it from a bar code."
msgstr "Peut souvent être scanné à partir du code barre."
#: models.py:95 models.py:132 models.py:204 models.py:273
msgid "subtitle"
msgstr "sous-titre"
#: models.py:101 models.py:153 models.py:225 models.py:294
msgid "number of pages"
msgstr "nombre de pages"
#: models.py:107 models.py:159 models.py:231 models.py:300
msgid "publish date"
msgstr "date de publication"
#: models.py:113
msgid "book"
msgstr "livre"
#: models.py:114
msgid "books"
msgstr "livres"
#: models.py:177 models.py:184
msgid "comic"
msgstr "BD"
#: models.py:178 models.py:185
msgid "comics"
msgstr "BDs"
#: models.py:246 models.py:253
msgid "manga"
msgstr "manga"
#: models.py:247 models.py:254
msgid "mangas"
msgstr "mangas"
#: models.py:315 models.py:322
msgid "novel"
msgstr "roman"
#: models.py:316 models.py:323
msgid "novels"
msgstr "romans"
#: models.py:339 models.py:368
msgid "rounds per minute"
msgstr "tours par minute"
#: models.py:341 models.py:370
msgid "33 RPM"
msgstr "33 TPM"
#: models.py:342 models.py:371
msgid "45 RPM"
msgstr "45 TPM"
#: models.py:426 models.py:472
msgid "number"
msgstr "nombre"
#: models.py:430 models.py:476
msgid "year"
msgstr "année"
#: models.py:437 models.py:483
msgid "month"
msgstr "mois"
#: models.py:444 models.py:490
msgid "day"
msgstr "jour"
#: models.py:451 models.py:497
msgid "double"
msgstr "double"
#: models.py:520
msgid "type"
msgstr "type"
#: models.py:522
msgid "Comic"
msgstr "BD"
#: models.py:523
msgid "Manga"
msgstr "Manga"
#: models.py:524
msgid "Roman"
msgstr "Roman"
#: models.py:536
msgid "future medium"
msgstr "medium à importer"
#: models.py:537
msgid "future media"
msgstr "medias à importer"
#: models.py:551
msgid "borrower"
msgstr "emprunteur"
#: models.py:554
msgid "borrowed on"
msgstr "emprunté le"
#: models.py:559
msgid "given back on"
msgstr "rendu le"
#: models.py:565
msgid "borrowed with"
msgstr "emprunté avec"
#: models.py:566
msgid "The keyholder that registered this borrowed item."
msgstr "Le permanencier qui enregistre cet emprunt."
#: models.py:575
msgid "The keyholder to whom this item was given back."
msgstr "Le permanencier à qui l'emprunt a été rendu."
#: models.py:582
msgid "borrowed item"
msgstr "emprunt"
#: models.py:583
msgid "borrowed items"
msgstr "emprunts"
#: models.py:603 models.py:644
msgid "owner"
msgstr "propriétaire"
#: models.py:608 models.py:649
msgid "duration"
msgstr "durée"
#: models.py:612 models.py:653
msgid "minimum number of players"
msgstr "nombre minimum de joueurs"
#: models.py:616 models.py:657
msgid "maximum number of players"
msgstr "nombre maximum de joueurs"
#: models.py:621 models.py:662
msgid "comment"
msgstr "commentaire"
#: templates/media/generate_side_identifier.html:3 #: templates/media/generate_side_identifier.html:3
msgid "Generate side identifier" msgid "Generate side identifier"
@ -277,6 +306,6 @@ msgstr "ISBN invalide : mauvaise longueur"
msgid "Invalid ISBN: Only upper case allowed" msgid "Invalid ISBN: Only upper case allowed"
msgstr "ISBN invalide : seulement les majuscules sont autorisées" msgstr "ISBN invalide : seulement les majuscules sont autorisées"
#: views.py:51 #: views.py:47
msgid "Welcome to the Mediatek database" msgid "Welcome to the Mediatek database"
msgstr "Bienvenue sur la base de données de la Mediatek" msgstr "Bienvenue sur la base de données de la Mediatek"

View File

@ -36,22 +36,22 @@
document.getElementById("isbn").focus(); document.getElementById("isbn").focus();
let bd_request = new XMLHttpRequest(); let bd_request = new XMLHttpRequest();
bd_request.open('GET', '/api/media/bd/?search=' + isbn, true); bd_request.open('GET', '/api/media/comic/?search=' + isbn, true);
bd_request.onload = function () { bd_request.onload = function () {
let data = JSON.parse(this.response); let data = JSON.parse(this.response);
data.results.forEach(bd => { data.results.forEach(comic => {
let present = bd.present; let present = comic.present;
if (markAsPresent && isbn === bd.isbn) { if (markAsPresent && isbn === comic.isbn) {
present = true; present = true;
let presentRequest = new XMLHttpRequest(); let presentRequest = new XMLHttpRequest();
presentRequest.open("GET", "/media/mark-as-present/bd/" + bd.id + "/", true); presentRequest.open("GET", "/media/mark-as-present/bd/" + comic.id + "/", true);
presentRequest.send(); presentRequest.send();
} }
result_div.innerHTML += "<li id='bd_" + bd.id + "'>" + result_div.innerHTML += "<li id='comic_" + comic.id + "'>" +
"<a href='/database/media/bd/" + bd.id + "/change/'>BD : " "<a href='/database/media/comic/" + comic.id + "/change/'>BD : "
+ bd.title + (bd.subtitle ? " - " + bd.subtitle : "") + "</a>" + comic.title + (comic.subtitle ? " - " + comic.subtitle : "") + "</a>"
+ (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('bd', " + bd.id + ", false)\">marquer comme absent</a>)" + (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('bd', " + comic.id + ", false)\">marquer comme absent</a>)"
: " (absent, <a class='present' href='#' onclick=\"markAsPresent('bd', " + bd.id + ")\">marquer comme présent</a>)") + "</li>"; : " (absent, <a class='present' href='#' onclick=\"markAsPresent('bd', " + comic.id + ")\">marquer comme présent</a>)") + "</li>";
}); });
} }
bd_request.send(); bd_request.send();
@ -92,35 +92,35 @@
cd_request.send(); cd_request.send();
let vinyle_request = new XMLHttpRequest(); let vinyle_request = new XMLHttpRequest();
vinyle_request.open('GET', '/api/media/vinyle/?search=' + isbn, true); vinyle_request.open('GET', '/api/media/vinyl/?search=' + isbn, true);
vinyle_request.onload = function () { vinyle_request.onload = function () {
let data = JSON.parse(this.response); let data = JSON.parse(this.response);
data.results.forEach(vinyle => { data.results.forEach(vinyl => {
let present = markAsPresent || vinyle.present; let present = markAsPresent || vinyl.present;
result_div.innerHTML += "<li id='vinyle_" + vinyle.id + "'>" + result_div.innerHTML += "<li id='vinyl_" + vinyl.id + "'>" +
"<a href='/database/media/vinyle/" + vinyle.id + "/change/'>Vinyle : " + vinyle.title + "</a>" "<a href='/database/media/vinyl/" + vinyl.id + "/change/'>Vinyle : " + vinyl.title + "</a>"
+ (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('vinyle', " + vinyle.id + ", false)\">marquer comme absent</a>)" + (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('vinyl', " + vinyl.id + ", false)\">marquer comme absent</a>)"
: " (absent, <a class='present' href='#' onclick=\"markAsPresent('vinyle', " + vinyle.id + ")\">marquer comme présent</a>)") + "</li>"; : " (absent, <a class='present' href='#' onclick=\"markAsPresent('vinyl', " + vinyl.id + ")\">marquer comme présent</a>)") + "</li>";
}); });
} }
vinyle_request.send(); vinyle_request.send();
let roman_request = new XMLHttpRequest(); let roman_request = new XMLHttpRequest();
roman_request.open('GET', '/api/media/roman/?search=' + isbn, true); roman_request.open('GET', '/api/media/novel/?search=' + isbn, true);
roman_request.onload = function () { roman_request.onload = function () {
let data = JSON.parse(this.response); let data = JSON.parse(this.response);
data.results.forEach(roman => { data.results.forEach(novel => {
let present = roman.present; let present = novel.present;
if (markAsPresent && isbn === roman.isbn) { if (markAsPresent && isbn === novel.isbn) {
present = true; present = true;
let presentRequest = new XMLHttpRequest(); let presentRequest = new XMLHttpRequest();
presentRequest.open("GET", "/media/mark-as-present/roman/" + roman.id + "/", true); presentRequest.open("GET", "/media/mark-as-present/novel/" + novel.id + "/", true);
presentRequest.send(); presentRequest.send();
} }
result_div.innerHTML += "<li id='roman_" + roman.id + "'>" + result_div.innerHTML += "<li id='roman_" + novel.id + "'>" +
"<a href='/database/media/roman/" + roman.id + "/change/'>Roman : " + roman.title + "</a>" "<a href='/database/media/roman/" + novel.id + "/change/'>Roman : " + novel.title + "</a>"
+ (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('roman', " + roman.id + ", false)\">marquer comme absent</a>)" + (present ? " (<a class='absent' href='#' onclick=\"markAsPresent('novel', " + novel.id + ", false)\">marquer comme absent</a>)"
: " (absent, <a class='present' href='#' onclick=\"markAsPresent('roman', " + roman.id + ")\">marquer comme présent</a>)") + "</li>"; : " (absent, <a class='present' href='#' onclick=\"markAsPresent('novel', " + novel.id + ")\">marquer comme présent</a>)") + "</li>";
}); });
} }
roman_request.send(); roman_request.send();

View File

@ -12,7 +12,7 @@ urlpatterns = [
url(r'^retour_emprunt/(?P<empruntid>[0-9]+)$', views.retour_emprunt, url(r'^retour_emprunt/(?P<empruntid>[0-9]+)$', views.retour_emprunt,
name='retour-emprunt'), name='retour-emprunt'),
path('find/', views.FindMediumView.as_view(), name="find"), path('find/', views.FindMediumView.as_view(), name="find"),
path('mark-as-present/bd/<int:pk>/', path('mark-as-present/comic/<int:pk>/',
views.MarkComicAsPresent.as_view(), views.MarkComicAsPresent.as_view(),
name="mark_comic_as_present"), name="mark_comic_as_present"),
path('mark-as-present/manga/<int:pk>/', path('mark-as-present/manga/<int:pk>/',
@ -21,15 +21,15 @@ urlpatterns = [
path('mark-as-present/cd/<int:pk>/', path('mark-as-present/cd/<int:pk>/',
views.MarkCDAsPresent.as_view(), views.MarkCDAsPresent.as_view(),
name="mark_cd_as_present"), name="mark_cd_as_present"),
path('mark-as-present/vinyle/<int:pk>/', path('mark-as-present/vinyl/<int:pk>/',
views.MarkVinylAsPresent.as_view(), views.MarkVinylAsPresent.as_view(),
name="mark_vinyle_as_present"), name="mark_vinyle_as_present"),
path('mark-as-present/roman/<int:pk>/', path('mark-as-present/novel/<int:pk>/',
views.MarkRomanAsPresent.as_view(), views.MarkNovelAsPresent.as_view(),
name="mark_roman_as_present"), name="mark_novel_as_present"),
path('mark-as-present/revue/<int:pk>/', path('mark-as-present/review/<int:pk>/',
views.MarkRevueAsPresent.as_view(), views.MarkReviewAsPresent.as_view(),
name="mark_revue_as_present"), name="mark_review_as_present"),
path('mark-as-present/future/<int:pk>/', path('mark-as-present/future/<int:pk>/',
views.MarkFutureAsPresent.as_view(), views.MarkFutureAsPresent.as_view(),
name="mark_future_as_present"), name="mark_future_as_present"),

View File

@ -81,11 +81,11 @@ class MarkVinylAsPresent(MarkMediumAsPresent):
model = Vinyl model = Vinyl
class MarkRomanAsPresent(MarkMediumAsPresent): class MarkNovelAsPresent(MarkMediumAsPresent):
model = Novel model = Novel
class MarkRevueAsPresent(MarkMediumAsPresent): class MarkReviewAsPresent(MarkMediumAsPresent):
model = Review model = Review