Removed unused wording keys

This commit is contained in:
DrMint 2023-05-16 12:47:09 +02:00
parent ef7b3faeca
commit f12d5b0525
8 changed files with 330 additions and 172 deletions

209
package-lock.json generated
View File

@ -58,6 +58,7 @@
"@types/ua-parser-js": "^0.7.36",
"@typescript-eslint/eslint-plugin": "^5.59.5",
"@typescript-eslint/parser": "^5.59.5",
"chalk": "^5.2.0",
"dotenv": "^16.0.3",
"eslint": "^8.40.0",
"eslint-config-next": "13.4.2",
@ -141,6 +142,22 @@
"graphql": "*"
}
},
"node_modules/@ardatan/relay-compiler/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@ardatan/sync-fetch": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz",
@ -1724,6 +1741,22 @@
"web-streams-polyfill": "^3.2.1"
}
},
"node_modules/@graphql-codegen/cli/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@graphql-codegen/cli/node_modules/change-case-all": {
"version": "1.0.15",
"resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz",
@ -3013,6 +3046,22 @@
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
"node_modules/@graphql-tools/prisma-loader/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@graphql-tools/prisma-loader/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
@ -4641,15 +4690,12 @@
"dev": true
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
"integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
"dev": true,
"engines": {
"node": ">=10"
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
@ -5862,6 +5908,22 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
@ -8465,6 +8527,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ora/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/ora/node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@ -8634,6 +8712,21 @@
"npm": ">5"
}
},
"node_modules/patch-package/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/patch-package/node_modules/open": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
@ -10137,6 +10230,22 @@
}
}
},
"node_modules/ts-unused-exports/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/tsconfig-paths": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
@ -10849,6 +10958,18 @@
"relay-runtime": "12.0.0",
"signedsource": "^1.0.0",
"yargs": "^15.3.1"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
}
}
},
"@ardatan/sync-fetch": {
@ -11920,6 +12041,16 @@
"web-streams-polyfill": "^3.2.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"change-case-all": {
"version": "1.0.15",
"resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz",
@ -13053,6 +13184,16 @@
"tslib": "^2.4.0"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
@ -14264,13 +14405,10 @@
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
"integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
"dev": true
},
"change-case": {
"version": "4.1.2",
@ -14983,6 +15121,16 @@
"text-table": "^0.2.0"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"eslint-scope": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
@ -17123,6 +17271,16 @@
"wcwidth": "^1.0.1"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@ -17255,6 +17413,15 @@
"yaml": "^2.2.2"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"open": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
@ -18315,6 +18482,18 @@
"requires": {
"chalk": "^4.0.0",
"tsconfig-paths": "^3.9.0"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
}
}
},
"tsconfig-paths": {

View File

@ -4,7 +4,8 @@
"scripts": {
"postinstall": "patch-package",
"dev": "next dev -p 12499",
"precommit": "npm run fetch-local-data && npm run icu-to-ts && npm run unused-exports && npm run prettier && npm run eslint && npm run tsc && echo ALL PRECOMMIT CHECKS PASSED SUCCESSFULLY, LET\\'S FUCKING GO!",
"precommit": "npm run fetch-local-data && npm run icu-to-ts && npm run unused-wording-keys && npm run unused-exports && npm run prettier && npm run eslint && npm run tsc && echo ALL PRECOMMIT CHECKS PASSED SUCCESSFULLY, LET\\'S FUCKING GO!",
"unused-wording-keys": "esrun --send-code-mode=temporaryFile src/graphql/unusedWordingKeys.ts --uwk",
"unused-exports": "ts-unused-exports ./tsconfig.json --excludePathsFromReport='src/pages;tailwind.config.ts;src/graphql/generated.ts;src/shared/meilisearch-graphql-typings/generated.ts'",
"fetch-local-data": "npm run generate && esrun --send-code-mode=temporaryFile src/graphql/fetchLocalData.ts --esrun",
"icu-to-ts": "esrun --send-code-mode=temporaryFile src/graphql/icuToTypescript.ts --icu",
@ -16,7 +17,7 @@
"eslint": "npx eslint .",
"generate": "graphql-codegen --config graphql-codegen.config.js",
"tsc": "tsc",
"prettier": "prettier --end-of-line auto --write .",
"prettier": "prettier --list-different --end-of-line auto --write .",
"upgrade": "ncu"
},
"dependencies": {
@ -71,6 +72,7 @@
"@types/ua-parser-js": "^0.7.36",
"@typescript-eslint/eslint-plugin": "^5.59.5",
"@typescript-eslint/parser": "^5.59.5",
"chalk": "^5.2.0",
"dotenv": "^16.0.3",
"eslint": "^8.40.0",
"eslint-config-next": "13.4.2",
@ -83,11 +85,5 @@
"tailwindcss": "^3.3.2",
"ts-unused-exports": "^9.0.4",
"typescript": "^5.0.4"
},
"overrides": {
"react-zoom-pan-pinch": {
"react": "$react",
"react-dom": "$react-dom"
}
}
}

View File

@ -23,7 +23,6 @@
"category": "{ count, plural, =0 {No categories} one {Category} other {Categories} }",
"size": "Size",
"release_date": "Release date",
"release_year": "Release year",
"details": "Details",
"price": "Price",
"width": "Width",
@ -46,13 +45,9 @@
"front_matter": "Front matter",
"back_matter": "Back matter",
"open_content": "Open content",
"read_content": "Read content",
"watch_content": "Watch content",
"listen_content": "Listen to content",
"view_scans": "View scans",
"paperback": "Paperback",
"hardcover": "Hardcover",
"select_language": "Select a language",
"language": "{ count, plural, =0 {No languages} one {Language} other {Languages} }",
"library_description": "A comprehensive list of all Yokoverses side materials (books, novellas, artbooks, stage plays, manga, drama CDs, and comics). For each, we provide photos, scans, and transcript of the content, information about what it is, when and how it was released, size, initial price…",
"wiki_description": "An encyclopedia for everything related to DrakeNieR. Right now, we only have the Chronology but a lot more pages are planned to be released!",
@ -67,7 +62,6 @@
"show_primary_items": "Show primary items",
"show_secondary_items": "Show secondary items",
"order_by": "Order by",
"group_by": "Group by",
"select_option_sidebar": "Select one of the options in the sidebar",
"group": "Group",
"settings": "Settings",
@ -89,17 +83,12 @@
"review": "Review",
"done": "Done",
"status": "Status",
"transcribers": "Transcribers",
"translators": "Translators",
"proofreaders": "Proofreaders",
"transcript_notice": "This content is a transcript",
"translation_notice": "This content is a fan-translation",
"source_language": "Source language",
"pronouns": "Pronouns",
"item": "{ count, plural, =0 {No items} one {Item} other {Items} }",
"content": "Content",
"open_settings": "Open settings",
"change_language": "Change language",
"open_search": "Open search",
"chronology": "Chronology",
"accords_handbook": "Accord's Handbook",
@ -117,7 +106,6 @@
"item_not_available": "This item is not for sale or is no longer available",
"primary_language": "Primary language",
"secondary_language": "Secondary languages",
"combine_related_contents": "Combine related contents",
"previous_content": "{ count, plural, =0 {No previous content} one {Previous content} other {Previous contents} }",
"followup_content": "{ count, plural, =0 {No follow-up content} one {Follow-up content} other {Follow-up contents} }",
"videos": "Videos",
@ -126,7 +114,6 @@
"subscribers": "Subscribers",
"description": "Description",
"available_at": "Available at",
"search_title": "Search title...",
"want_it": "I want it!",
"have_it": "I have it!",
"source": "Source",
@ -134,7 +121,6 @@
"only_display_items_i_have": "Only display items marked as “I have”",
"only_display_items_i_want": "Only display items marked as “I want”",
"only_display_unmarked_items": "Only display unmarked items",
"display_all_items": "Display all items",
"table_of_contents": "Table of Contents",
"no_results_message": "No results. You can try changing or resetting the search parameters.",
"all": "All",
@ -145,7 +131,6 @@
"cleaners": "Cleaners",
"typesetters": "Typesetters",
"notes": "Notes",
"cover": "Cover",
"tags": "Tags",
"no_source_warning": "No source!",
"copy_anchor_link": "Click to copy the archor link",
@ -154,7 +139,6 @@
"empty_folder_message": "This folder is empty",
"switch_to_grid_view": "Switch to grid view",
"switch_to_folder_view": "Switch to folder view",
"content_is_not_available": "This content is not available",
"paper_texture": "Paper texture",
"book_fold": "Book fold",
"lighting": "Lighting",
@ -179,7 +163,6 @@
"x_results": "{ x, plural, =0 {No results} one {# result} other {# results} }",
"definition_x": "Definition {x}",
"subitem_of_x": "Subitem of {x}",
"variant_of_x": "Variant of {x}",
"dark_mode_extension_warning": "This website offers a light and dark theme. If you are using a \"dark mode\" browser extension, make sure to disable it for an optimal experience.",
"weapon": "{ count, plural, =0 {No weapons} one {Weapon} other {Weapons} }",
"weapons_description": "A list of all the weapons across all of the games. All distinguished weapons come with an “account.” Its a document with various details like how the weapon was forged and how its been used in the past.",
@ -189,7 +172,13 @@
"download_scans": "Download scans",
"search_placeholder": "Search...",
"performance_mode": "Performance mode",
"performance_mode_tooltip": "This option improves performances by reducing certain visual effects (blurry backgrounds, shadows...). This mode is enabled by default on Linux, iOS, and Safari. This mode cannot be disabled on iOS or Safari as the experience would be too poor."
"performance_mode_tooltip": "This option improves performances by reducing certain visual effects (blurry backgrounds, shadows...). This mode is enabled by default on Linux, iOS, and Safari. This mode cannot be disabled on iOS or Safari as the experience would be too poor.",
"transcriber": "{ count, plural, =0 {No transcriber} one {Transcriber} other {Transcribers} }",
"translator": "{ count, plural, =0 {No translator} one {Translator} other {Translators} }",
"proofreader": "{ count, plural, =0 {No proofreader} one {Proofreader} other {Proofreaders} }",
"dubber": "{ count, plural, =0 {No dubber} one {Dubber} other {Dubbers} }",
"subber": "{ count, plural, =0 {No subber} one {Subber} other {Subbers} }",
"author": "{ count, plural, =0 {No author} one {Author} other {Authors} }"
}
},
{
@ -214,7 +203,6 @@
"category": "{ count, plural, =0 {Pas de catégorie} one {Catégorie} other {Catégories} }",
"size": "Dimension",
"release_date": "Date de sortie",
"release_year": "Année de sortie",
"details": "Détails",
"price": "Prix",
"width": "Largeur",
@ -237,13 +225,9 @@
"front_matter": "Avant propos",
"back_matter": "Après propos",
"open_content": "Parcourir le contenu",
"read_content": "Lire le contenu",
"watch_content": "Regarder le contenu",
"listen_content": "Écouter le contenu",
"view_scans": "Voir les scans",
"paperback": "Broché",
"hardcover": "Relié",
"select_language": "Séléctionner la langue",
"language": "{ count, plural, =0 {Aucune langue} one {Langue} other {Langues} }",
"library_description": "Une liste complète de tous les médias annexes du Yokoverse (livres, romans, artbooks, pièces de théâtre, mangas, CD de théâtre et bandes dessinées). Pour chacun, nous fournissons des photos, des scans et une transcription du contenu, des informations sur sa nature, quand il est sorti, sa taille, son prix initial...",
"wiki_description": "Une encyclopédie pour tout ce qui concerne DrakeNieR. Pour l'instant, nous n'avons que la Chronologie mais beaucoup plus de pages sont prévues !",
@ -258,7 +242,6 @@
"show_primary_items": "Afficher les items primaires",
"show_secondary_items": "Afficher les items secondaires",
"order_by": "Ordonné par",
"group_by": "Groupé par",
"select_option_sidebar": "Sélectionner l'une des options de la barre latérale",
"group": "Groupe",
"settings": "Paramètres",
@ -280,17 +263,12 @@
"review": "Pour vérification",
"done": "Terminé",
"status": "Statut",
"transcribers": "Transcripteurs",
"translators": "Traducteurs",
"proofreaders": "Correcteurs",
"transcript_notice": "Ceci est une transcription",
"translation_notice": "Ceci est une traduction",
"source_language": "Langue source",
"pronouns": "Pronoms",
"item": "{ count, plural, =0 {Aucun item} one {Item} other {Items} }",
"content": "Content",
"open_settings": "Ouvrir les paramètres",
"change_language": "Changer de langue",
"open_search": "Ouvrir le menu de recherche",
"chronology": "Chronologie",
"accords_handbook": "Le manuel de Accord",
@ -308,7 +286,6 @@
"item_not_available": "Cet article n'est pas à vendre ou n'est plus disponible.",
"primary_language": "Langue principale",
"secondary_language": "Langues secondaires",
"combine_related_contents": "Combiner les contenus connexes",
"previous_content": "Contenu précédent",
"followup_content": "Contenu suivant",
"videos": "Videos",
@ -317,7 +294,6 @@
"subscribers": "Abonnés",
"description": "Description",
"available_at": "Disponible sur",
"search_title": "Rechercher un titre...",
"want_it": "Je le veux !",
"have_it": "Je l'ai !",
"source": "Source",
@ -325,7 +301,6 @@
"only_display_items_i_have": "Seulement afficher les items marqués avec \"je le veux\"",
"only_display_items_i_want": "Seulement afficher les items marqués avec \"je l'ai\"",
"only_display_unmarked_items": "Seulement afficher les items non-marqués",
"display_all_items": "Afficher tous les items",
"table_of_contents": "Sommaire",
"no_results_message": "Aucun résultat. Vous pouvez essayer de modifier ou de réinitialiser les paramètres de recherche.",
"all": "Tous",
@ -336,7 +311,6 @@
"cleaners": "Nettoyeurs",
"typesetters": "Lettreurs",
"notes": "Notes",
"cover": "Couverture",
"tags": "Tags",
"no_source_warning": "Pas de source !",
"copy_anchor_link": "Cliquez pour copier le permalien",
@ -345,7 +319,6 @@
"empty_folder_message": "Ce dossier est vide",
"switch_to_grid_view": "Vue en grille",
"switch_to_folder_view": "Vue par dossier",
"content_is_not_available": "Ce contenu n'est pas disponible",
"paper_texture": "Texture de papier",
"book_fold": "Pliure du livre",
"lighting": "Effet de lumière",
@ -370,7 +343,6 @@
"x_results": "{ x, plural, =0 {Pas de résultat} one {# résultat} other {# résultats} }",
"definition_x": "Définition {x}",
"subitem_of_x": "Sous-item de {x}",
"variant_of_x": "Variante de {x}",
"dark_mode_extension_warning": "Ce site web propose un thème clair et un thème sombre. Si vous utilisez une extension de navigateur qui simule un thème sombre, veillez à la désactiver pour une expérience optimale.",
"weapon": "{ count, plural, =0 {Pas d'arme} one {Arme} other {Armes} }",
"weapons_description": "Une liste de toutes les armes présentes dans tous les jeux. Toutes les armes distinguées sont accompagnées d'un \"compte\". Il s'agit d'un document contenant divers détails tels que la façon dont l'arme a été forgée et comment elle a été utilisée dans le passé.",
@ -380,7 +352,13 @@
"download_scans": "Télécharger les scans",
"search_placeholder": "Rechercher ...",
"performance_mode": "Mode performance",
"performance_mode_tooltip": "Cette option permet d'améliorer les performances en réduisant certains effets visuels (flous, ombres...). Ce mode est activé par défaut sur Linux, iOS et Safari. Ce mode ne peut pas être désactivé sur iOS ou Safari car l'expérience serait trop mauvaise."
"performance_mode_tooltip": "Cette option permet d'améliorer les performances en réduisant certains effets visuels (flous, ombres...). Ce mode est activé par défaut sur Linux, iOS et Safari. Ce mode ne peut pas être désactivé sur iOS ou Safari car l'expérience serait trop mauvaise.",
"transcriber": "{ count, plural, =0 {Pas de transcripteur} one {Transcripteur} other {Transcripteurs} }",
"translator": "{ count, plural, =0 {Pas de traducteur} one {Traducteur} other {Traducteurs} }",
"proofreader": "{ count, plural, =0 {Pas de correcteur} one {Correcteur} other {Correcteurs} }",
"dubber": "{ count, plural, =0 {Pas de doubleur} one {Doubleur} other {Doubleurs} }",
"subber": "{ count, plural, =0 {Pas de sous-titreur} one {Sous-titreur} other {Sous-titreurs} }",
"author": "{ count, plural, =0 {Pas d'auteur} one {Auteur} other {Auteurs} }"
}
},
{
@ -405,7 +383,6 @@
"category": "カテゴリー",
"size": "サイズ",
"release_date": "発売日",
"release_year": "発売年",
"details": "詳細",
"price": "価格",
"width": "幅",
@ -428,13 +405,9 @@
"front_matter": "フロントマター",
"back_matter": "バックナンバー",
"open_content": "コンテンツを開放",
"read_content": "コンテンツを読む",
"watch_content": "コンテンツを見る",
"listen_content": "コンテンツを聴く",
"view_scans": "スキャンを開放",
"paperback": "ペーパーバック",
"hardcover": "ハードカバー",
"select_language": "言語を選択する",
"language": "言語",
"library_description": "ヨコベースの副教材書籍、小説、画集、舞台劇、漫画、ドラマCD、コミックを網羅したリストです。それぞれについて、写真、スキャン、内容の書き起こし、どんなものなのか、いつ、どのように発売されたのか、サイズ、初回価格...などの情報を掲載しています。",
"wiki_description": "DrakeNieRに関連するすべての百科事典です。現在は年表のみですが、今後多くのページを公開予定です",
@ -449,7 +422,6 @@
"show_primary_items": "一次のイテムをみせる",
"show_secondary_items": "二次のイテムをみせる",
"order_by": "注文する",
"group_by": "グループ化する",
"select_option_sidebar": "サイドバーのオプションを選択します",
"group": "グループ",
"settings": "設定",
@ -471,17 +443,12 @@
"review": "レビュー",
"done": "完了",
"status": "状況",
"transcribers": "トランスクライバー",
"translators": "翻訳者",
"proofreaders": "校正者",
"transcript_notice": "このコンテンツは転写です",
"translation_notice": "このコンテンツはファンによる翻訳です",
"source_language": "ソース言語",
"pronouns": "代名詞",
"item": "項目",
"content": "コンテンツ",
"open_settings": "オープン設定",
"change_language": "言語を変更する",
"open_search": "オープンサーチ",
"chronology": "年表",
"accords_handbook": "アコードの手引き",
@ -499,7 +466,6 @@
"item_not_available": "この商品は非売品です",
"primary_language": "主要言語",
"secondary_language": "二次言語",
"combine_related_contents": "関連するコンテンツを組み合わせる",
"previous_content": "前のコンテンツ",
"followup_content": "フォローアップコンテンツ",
"videos": "動画",
@ -508,7 +474,6 @@
"subscribers": "サブスクライバー",
"description": "説明",
"available_at": "でご覧いただけます。",
"search_title": "検索タイトル...",
"want_it": "欲しいです!",
"have_it": "持ってます!",
"source": "出典",
@ -516,7 +481,6 @@
"only_display_items_i_have": "\"持ってる \"と表示されているもののみ表示",
"only_display_items_i_want": "\"欲しい \"とマークされたものだけを表示する",
"only_display_unmarked_items": "無印のアイテムのみ表示",
"display_all_items": "すべての項目を表示する",
"table_of_contents": "目次",
"no_results_message": "結果が出ません。検索条件を変更またはリセットしてみてください。",
"all": "すべて",
@ -527,7 +491,6 @@
"cleaners": null,
"typesetters": null,
"notes": null,
"cover": null,
"tags": null,
"no_source_warning": null,
"copy_anchor_link": null,
@ -536,7 +499,6 @@
"empty_folder_message": null,
"switch_to_grid_view": null,
"switch_to_folder_view": null,
"content_is_not_available": null,
"paper_texture": null,
"book_fold": null,
"lighting": null,
@ -561,7 +523,6 @@
"x_results": null,
"definition_x": null,
"subitem_of_x": null,
"variant_of_x": null,
"dark_mode_extension_warning": null,
"weapon": null,
"weapons_description": null,
@ -571,7 +532,13 @@
"download_scans": null,
"search_placeholder": null,
"performance_mode": null,
"performance_mode_tooltip": null
"performance_mode_tooltip": null,
"transcriber": null,
"translator": null,
"proofreader": null,
"dubber": null,
"subber": null,
"author": null
}
},
{
@ -596,7 +563,6 @@
"category": "Categoría",
"size": "Tamaño",
"release_date": "Fecha de lanzamiento",
"release_year": "Año de lanzamiento",
"details": "Detalles",
"price": "Precio",
"width": "Ancho",
@ -619,13 +585,9 @@
"front_matter": "Anteportada",
"back_matter": "Portada anterior",
"open_content": "Abrir contenido",
"read_content": "Leer contenido",
"watch_content": "Ver contenido",
"listen_content": "Escuchar contenido",
"view_scans": "Ver escaneos",
"paperback": "Tapa blanda",
"hardcover": "Tapa dura",
"select_language": "Seleccionar idioma",
"language": "Idioma",
"library_description": "Una lista completa de todos los materiales complementarios de Yokoverse (libros, novelas, libros de arte, obras de teatro, manga, CDs novelizados y cómics). Para cada uno, proporcionamos fotos, escaneos y transcripciones del contenido, información sobre qué es, cuándo y cómo se ha publicado, tamaño, precio inicial...",
"wiki_description": "Una enciclopedia para todo lo relacionado con DrakeNieR. En este momento, solo tenemos la Cronología, ¡pero muchas más páginas están planeadas para ser publicadas!",
@ -640,7 +602,6 @@
"show_primary_items": "Mostrar items principales",
"show_secondary_items": "Mostrar items secundarios",
"order_by": "Ordenar por",
"group_by": "Agrupar por",
"select_option_sidebar": "Selecciona una de las opciones en la barra lateral",
"group": "Grupo",
"settings": "Ajustes",
@ -662,17 +623,12 @@
"review": "Revisado",
"done": "Completado",
"status": "Estado",
"transcribers": "Transcriptores/as",
"translators": "Traductores/as",
"proofreaders": "Correctores/as",
"transcript_notice": "Este contenido es una transcripción",
"translation_notice": "Este contenido es una traducción de fans",
"source_language": "Idioma original",
"pronouns": "Pronombres",
"item": "Ítem",
"content": "Contenido",
"open_settings": "Abrir ajustes",
"change_language": "Cambiar idioma",
"open_search": "Abrir búsqueda",
"chronology": "Cronología",
"accords_handbook": "Manual de Accord",
@ -690,7 +646,6 @@
"item_not_available": "Ítem no disponible",
"primary_language": "Idioma primario",
"secondary_language": "Idioma secundario",
"combine_related_contents": "Combinar contenido relacionado",
"previous_content": "Contenido anterior",
"followup_content": "Contenido siguiente",
"videos": "Vídeos",
@ -699,7 +654,6 @@
"subscribers": "Suscriptores",
"description": "Descripción",
"available_at": "Disponible en",
"search_title": "Buscar título",
"want_it": "Lo quiero!",
"have_it": "Lo tengo!",
"source": "Fuente",
@ -707,7 +661,6 @@
"only_display_items_i_have": "Sólo mostrar lo que ya tengo",
"only_display_items_i_want": "Sólo mostrar lo que quiero",
"only_display_unmarked_items": "Sólo mostrar ítems sin marcación",
"display_all_items": "Mostar todos los ítems",
"table_of_contents": "Tabla de contenido",
"no_results_message": "No hay resultados",
"all": "Todos",
@ -718,7 +671,6 @@
"cleaners": "Limpiadores",
"typesetters": "Maquetadores",
"notes": "Notas",
"cover": "Portada",
"tags": "Etiquetas",
"no_source_warning": "No hay fuente",
"copy_anchor_link": "Copiar enlace de anclaje",
@ -727,7 +679,6 @@
"empty_folder_message": "Carpeta vacía",
"switch_to_grid_view": "Cambiar a vista de retícula",
"switch_to_folder_view": "Cambiar a vista de carpeta",
"content_is_not_available": "Contenido no disponible",
"paper_texture": "Papel texturizado",
"book_fold": "Tapa dura",
"lighting": "Iluminación",
@ -752,7 +703,6 @@
"x_results": null,
"definition_x": null,
"subitem_of_x": null,
"variant_of_x": null,
"dark_mode_extension_warning": null,
"weapon": null,
"weapons_description": null,
@ -762,7 +712,13 @@
"download_scans": null,
"search_placeholder": null,
"performance_mode": null,
"performance_mode_tooltip": null
"performance_mode_tooltip": null,
"transcriber": null,
"translator": null,
"proofreader": null,
"dubber": null,
"subber": null,
"author": null
}
},
{
@ -787,7 +743,6 @@
"category": "Categoria",
"size": "Tamanho",
"release_date": "Dia de lançamento",
"release_year": "Ano de lançamento",
"details": "Detalhes",
"price": "Preço",
"width": "Largura",
@ -810,13 +765,9 @@
"front_matter": "Pré textual",
"back_matter": "Pós textual",
"open_content": "Abrir conteúdo",
"read_content": "Ler o conteúdo",
"watch_content": "Assistir o conteúdo",
"listen_content": "Ouvir o conteúdo",
"view_scans": "Ver scans",
"paperback": "Brochura",
"hardcover": "Capa dura",
"select_language": "Selecionar língua",
"language": "Língua",
"library_description": "",
"wiki_description": null,
@ -831,7 +782,6 @@
"show_primary_items": "Mostrar itens primários",
"show_secondary_items": "Mostrar itens secundários",
"order_by": "Ordenar por",
"group_by": "Agrupar por",
"select_option_sidebar": "Selecione uma opção na aba lateral",
"group": "Grupo",
"settings": "Configurações",
@ -853,17 +803,12 @@
"review": "Review",
"done": "Concluido",
"status": "Status",
"transcribers": "Transcritores",
"translators": "Tradutores",
"proofreaders": "Revisores",
"transcript_notice": "Este conteúdo foi transcrito.",
"translation_notice": "Este conteúdo é uma tradução de fã.",
"source_language": "Língua original",
"pronouns": "Pronomes",
"item": "Item",
"content": "Conteúdo",
"open_settings": "Abrir configurações",
"change_language": "Mudar língua",
"open_search": "Abrir pesquisa",
"chronology": "Cronologia",
"accords_handbook": "Livro de mão da Accord",
@ -881,7 +826,6 @@
"item_not_available": "Item indisponível",
"primary_language": "Língua primaria",
"secondary_language": "Línguas secundárias",
"combine_related_contents": "Combinar relacionados",
"previous_content": "Conteúdo anterior:",
"followup_content": "Próximo conteúdo:",
"videos": "Videos:",
@ -890,7 +834,6 @@
"subscribers": "Inscritos",
"description": "Descrição",
"available_at": "Disponível no:",
"search_title": "Pesquisar",
"want_it": null,
"have_it": null,
"source": null,
@ -898,7 +841,6 @@
"only_display_items_i_have": null,
"only_display_items_i_want": null,
"only_display_unmarked_items": null,
"display_all_items": null,
"table_of_contents": null,
"no_results_message": null,
"all": null,
@ -909,7 +851,6 @@
"cleaners": null,
"typesetters": null,
"notes": null,
"cover": null,
"tags": null,
"no_source_warning": null,
"copy_anchor_link": null,
@ -918,7 +859,6 @@
"empty_folder_message": null,
"switch_to_grid_view": null,
"switch_to_folder_view": null,
"content_is_not_available": null,
"paper_texture": null,
"book_fold": null,
"lighting": null,
@ -943,7 +883,6 @@
"x_results": null,
"definition_x": null,
"subitem_of_x": null,
"variant_of_x": null,
"dark_mode_extension_warning": null,
"weapon": null,
"weapons_description": null,
@ -953,7 +892,13 @@
"download_scans": null,
"search_placeholder": null,
"performance_mode": null,
"performance_mode_tooltip": null
"performance_mode_tooltip": null,
"transcriber": null,
"translator": null,
"proofreader": null,
"dubber": null,
"subber": null,
"author": null
}
}
]

View File

@ -18,7 +18,6 @@ export interface ICUParams {
category: { count: number };
size: never;
release_date: never;
release_year: never;
details: never;
price: never;
width: never;
@ -41,13 +40,9 @@ export interface ICUParams {
front_matter: never;
back_matter: never;
open_content: never;
read_content: never;
watch_content: never;
listen_content: never;
view_scans: never;
paperback: never;
hardcover: never;
select_language: never;
language: { count: number };
library_description: never;
wiki_description: never;
@ -62,7 +57,6 @@ export interface ICUParams {
show_primary_items: never;
show_secondary_items: never;
order_by: never;
group_by: never;
select_option_sidebar: never;
group: never;
settings: never;
@ -84,17 +78,12 @@ export interface ICUParams {
review: never;
done: never;
status: never;
transcribers: never;
translators: never;
proofreaders: never;
transcript_notice: never;
translation_notice: never;
source_language: never;
pronouns: never;
item: { count: number };
content: never;
open_settings: never;
change_language: never;
open_search: never;
chronology: never;
accords_handbook: never;
@ -112,7 +101,6 @@ export interface ICUParams {
item_not_available: never;
primary_language: never;
secondary_language: never;
combine_related_contents: never;
previous_content: { count: number };
followup_content: { count: number };
videos: never;
@ -121,7 +109,6 @@ export interface ICUParams {
subscribers: never;
description: never;
available_at: never;
search_title: never;
want_it: never;
have_it: never;
source: never;
@ -129,7 +116,6 @@ export interface ICUParams {
only_display_items_i_have: never;
only_display_items_i_want: never;
only_display_unmarked_items: never;
display_all_items: never;
table_of_contents: never;
no_results_message: never;
all: never;
@ -140,7 +126,6 @@ export interface ICUParams {
cleaners: never;
typesetters: never;
notes: never;
cover: never;
tags: never;
no_source_warning: never;
copy_anchor_link: never;
@ -149,7 +134,6 @@ export interface ICUParams {
empty_folder_message: never;
switch_to_grid_view: never;
switch_to_folder_view: never;
content_is_not_available: never;
paper_texture: never;
book_fold: never;
lighting: never;
@ -177,7 +161,6 @@ export interface ICUParams {
x_results: { x: number };
definition_x: { x: Date | boolean | number | string };
subitem_of_x: { x: Date | boolean | number | string };
variant_of_x: { x: Date | boolean | number | string };
dark_mode_extension_warning: never;
weapon: { count: number };
weapons_description: never;
@ -188,4 +171,10 @@ export interface ICUParams {
search_placeholder: never;
performance_mode: never;
performance_mode_tooltip: never;
transcriber: { count: number };
translator: { count: number };
proofreader: { count: number };
dubber: { count: number };
subber: { count: number };
author: { count: number };
}

View File

@ -28,7 +28,6 @@ query localDataGetWebsiteInterfaces {
category
size
release_date
release_year
details
price
width
@ -51,13 +50,9 @@ query localDataGetWebsiteInterfaces {
front_matter
back_matter
open_content
read_content
watch_content
listen_content
view_scans
paperback
hardcover
select_language
language
library_description
wiki_description
@ -72,7 +67,6 @@ query localDataGetWebsiteInterfaces {
show_primary_items
show_secondary_items
order_by
group_by
select_option_sidebar
group
settings
@ -94,17 +88,12 @@ query localDataGetWebsiteInterfaces {
review
done
status
transcribers
translators
proofreaders
transcript_notice
translation_notice
source_language
pronouns
item
content
open_settings
change_language
open_search
chronology
accords_handbook
@ -122,7 +111,6 @@ query localDataGetWebsiteInterfaces {
item_not_available
primary_language
secondary_language
combine_related_contents
previous_content
followup_content
videos
@ -131,7 +119,6 @@ query localDataGetWebsiteInterfaces {
subscribers
description
available_at
search_title
want_it
have_it
source
@ -139,7 +126,6 @@ query localDataGetWebsiteInterfaces {
only_display_items_i_have
only_display_items_i_want
only_display_unmarked_items
display_all_items
table_of_contents
no_results_message
all
@ -150,7 +136,6 @@ query localDataGetWebsiteInterfaces {
cleaners
typesetters
notes
cover
tags
no_source_warning
copy_anchor_link
@ -159,7 +144,6 @@ query localDataGetWebsiteInterfaces {
empty_folder_message
switch_to_grid_view
switch_to_folder_view
content_is_not_available
paper_texture
book_fold
lighting
@ -184,7 +168,6 @@ query localDataGetWebsiteInterfaces {
x_results
definition_x
subitem_of_x
variant_of_x
dark_mode_extension_warning
weapon
weapons_description
@ -195,6 +178,12 @@ query localDataGetWebsiteInterfaces {
search_placeholder
performance_mode
performance_mode_tooltip
transcriber
translator
proofreader
dubber
subber
author
}
}
}

View File

@ -0,0 +1,36 @@
/* eslint-disable import/no-nodejs-modules */
import { exit } from "process";
import { execSync } from "child_process";
import chalk from "chalk";
import { getLangui } from "./fetchLocalData";
import { getLogger } from "helpers/logger";
const logger = getLogger("💽 [Unused wording keys]", "server");
const unusedWordingKeys = () => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { ui_language, ...langui } = getLangui("en");
const results = Object.keys(langui).map((oKey) => {
const buffer = execSync(`grep -r "format(\\"${oKey}\\"" -o src | wc -l`).toString();
const result = parseInt(buffer.trim(), 10);
if (result === 0) {
logger.error(`"${oKey}" was not found in the codebase`);
}
return result;
});
const foundUnusedCount = results.filter((result) => result === 0).length;
if (foundUnusedCount > 0) {
console.log();
console.error(chalk.red(`${chalk.bold(foundUnusedCount)} wording keys are unused`));
exit(1);
} else {
console.log(`${chalk.bold(foundUnusedCount)} wording key are unused`);
exit(0);
}
};
if (process.argv[2] === "--uwk") {
unusedWordingKeys();
}

View File

@ -13,6 +13,15 @@ type WordingKey = keyof ICUParams;
type LibraryItemType = Exclude<LibraryItemMetadataDynamicZone["__typename"], undefined>;
export type ContentStatus = "Done" | "Draft" | "Incomplete" | "Review";
/*
* Whitelisting wording keys from being detected as unused
* - format("audio")
* - format("textual")
* - format("game")
* - format("group")
* - format("video")
* - format("other")
*/
const componentMetadataToWording: Record<LibraryItemType, WordingKey> = {
ComponentMetadataAudio: "audio",
ComponentMetadataBooks: "textual",
@ -23,6 +32,17 @@ const componentMetadataToWording: Record<LibraryItemType, WordingKey> = {
Error: "item",
};
/*
* Whitelisting wording keys from being detected as unused
* - format("draft")
* - format("incomplete")
* - format("review")
* - format("done")
* - format("status_draft")
* - format("status_incomplete")
* - format("status_review")
* - format("status_done")
*/
const componentSetsTextsetStatusToWording: Record<
ContentStatus,
{ label: WordingKey; description: WordingKey }

View File

@ -1,4 +1,4 @@
import { Fragment, useCallback } from "react";
import { Fragment, useCallback, useMemo } from "react";
import { GetStaticPaths, GetStaticPathsResult, GetStaticProps } from "next";
import { useRouter } from "next/router";
import { useBoolean } from "usehooks-ts";
@ -145,7 +145,11 @@ const LibrarySlug = ({ item, itemId, ...otherProps }: Props): JSX.Element => {
{item.subitems && item.subitems.data.length > 0 && (
<NavOption
title={format(isVariantSet ? "variant" : "subitem", { count: Infinity })}
title={
isVariantSet
? format("variant", { count: Infinity })
: format("subitem", { count: Infinity })
}
url={`#${intersectionIds[3]}`}
border
active={currentIntersection === 3}
@ -705,21 +709,31 @@ const ContentItem = ({
),
});
if (displayType === "card") {
return (
<div className="grid w-full gap-3 rounded-xl bg-light p-8 shadow-sm shadow-shade">
<div className="grid grid-cols-[auto_1fr_auto] items-center gap-3">
<h3 className="text-lg">
{selectedTranslation
? prettyInlineTitle(
const title = useMemo(() => {
if (selectedTranslation) {
return prettyInlineTitle(
selectedTranslation.pre_title,
selectedTranslation.title,
selectedTranslation.subtitle
)
: content
? prettySlug(content.slug, parentSlug)
: prettySlug(slug, parentSlug)}
</h3>
);
}
if (isDefined(content)) {
return prettySlug(content.slug, parentSlug);
}
if (slug.endsWith("front-matter")) {
return format("front_matter");
}
if (slug.endsWith("back-matter")) {
return format("back_matter");
}
return prettySlug(slug, parentSlug);
}, [content, format, parentSlug, selectedTranslation, slug]);
if (displayType === "card") {
return (
<div className="grid w-full gap-3 rounded-xl bg-highlight p-4 shadow-sm shadow-shade">
<div className="grid grid-cols-[auto_1fr_auto] items-center gap-3">
<h3 className="text-lg">{title}</h3>
<p className="h-4 w-full border-b-2 border-dotted border-mid" />
<p className="text-right">{rangeStart}</p>
</div>
@ -771,17 +785,7 @@ const ContentItem = ({
return (
<>
<div className="grid grid-cols-[auto_auto_1fr_auto] items-center gap-3">
<h3>
{selectedTranslation
? prettyInlineTitle(
selectedTranslation.pre_title,
selectedTranslation.title,
selectedTranslation.subtitle
)
: content
? prettySlug(content.slug, parentSlug)
: prettySlug(slug, parentSlug)}
</h3>
<h3>{title}</h3>
<div className="flex flex-wrap place-content-center gap-1">
{content?.categories?.map((category, index) => (
<Chip key={index} text={category} />