Compare commits

..

No commits in common. "v10" and "foundryvtt-wh4-lang-fr-9-1-0" have entirely different histories.

37 changed files with 119 additions and 172 deletions

View File

@ -2421,18 +2421,6 @@
"name": "Sens aiguisé", "name": "Sens aiguisé",
"tests": "Perception (Sens)" "tests": "Perception (Sens)"
}, },
{
"description": "<p>Lun de vos cinq sens principaux est particulièrement développé, vous permettant de repérer ce qui échappe à dautres. Vous pouvez effectuer des Tests de Perception pour détecter des détails normalement imperceptibles grâce au sens associé, déterminés par le MJ. Cela peut être : voir un aigle au-delà du champ visuel de tout le monde, sentir un poison presque inodore, entendre la respiration dune souris immobile dans un mur, percevoir une lettre effacée dans une gravure, ou déceler que deux bières dun même brasseur ont été tirées de deux tonneaux différents.</p>",
"id": "Acute Sense (Taste)",
"name": "Sens aiguisé (Goût)",
"tests": "Perception (Goût)"
},
{
"description": "<p>Lun de vos cinq sens principaux est particulièrement développé, vous permettant de repérer ce qui échappe à dautres. Vous pouvez effectuer des Tests de Perception pour détecter des détails normalement imperceptibles grâce au sens associé, déterminés par le MJ. Cela peut être : voir un aigle au-delà du champ visuel de tout le monde, sentir un poison presque inodore, entendre la respiration dune souris immobile dans un mur, percevoir une lettre effacée dans une gravure, ou déceler que deux bières dun même brasseur ont été tirées de deux tonneaux différents.</p>",
"id": "Acute Sense (Sight)",
"name": "Sens aiguisé (Vue)",
"tests": "Perception (Vue)"
},
{ {
"description": "<p>Votre expérience, Talent ou entraînement vous permet de manipuler de façon plus sûre les Vents de la Magie. Vous ne subissez pas dIncantation Imparfaite si vous obtenez un double à un Test de Focalisation réussi.</p>", "description": "<p>Votre expérience, Talent ou entraînement vous permet de manipuler de façon plus sûre les Vents de la Magie. Vous ne subissez pas dIncantation Imparfaite si vous obtenez un double à un Test de Focalisation réussi.</p>",
"id": "Aethyric Attunement", "id": "Aethyric Attunement",
@ -5985,11 +5973,6 @@
"id": "Lore (Tilea)", "id": "Lore (Tilea)",
"name": "Savoir (Tilée)" "name": "Savoir (Tilée)"
}, },
{
"description": "<p>Posséder une Compétence Savoir signifie que vous avez officiellement étudié, ou avez appris dune façon ou dune autre, une branche de connaissances avancées. Vous possédez des données approfondies dans une spécialisation et navez donc pas besoin deffectuer de Test pour que le MJ vous donne les éléments dinformation utiles. Si vous recherchez des informations spécifiques moins connues, vous aurez besoin deffectuer un Test de Savoir, modifié selon la nature obscure de linformation, où les DR indiqueront de combien de détails vous vous souvenez.<p>En combat, un Test de Savoir réussi peut éventuellement vous accorder +1 Avantage (avec laccord de votre MJ). Par exemple, Savoir (Géologie) peut vous donner un Avantage si vous combattez dans une caverne, ou Savoir (Ingénierie) peut vous aider si vous combattez un ennemi armé dun appareil mécanique complexe. Vous pouvez continuer à renforcer votre Avantage lors des tours ultérieurs, à condition que les circonstances le permettent (déterminé par le MJ) et que vous ne soyez pas interrompu ; de cette façon, vous pouvez gagner un maximum dAvantages, égal à votre Bonus dIntelligence.</p>",
"id": "Lore (Law)",
"name": "Savoir (Loi)"
},
{ {
"description": "<p>La Compétence Corps à corps représente l'entraînement spécifique que vous avez reçu avec un seul type d'armes de combat rapproché. Chaque Spécialisation de Corps à corps indique un entraînement à une classe d'arme spécifique. Si vous n'avez pas la Spécialisation appropriée pour une arme que vous souhaitez utiliser, référez-vous au <strong>Chapitre 11 : Guide de l'équipement </strong>pour consulter les statistiques de l'arme et savoir quelles pénalités vous subirez. Voir <strong>Chapitre 5 : Règles </strong>pour plus d'informations sur les combats et l'utilisation de la Compétence Corps à corps.<p><strong>Exemples de Spécialisations : </strong>Arme d'hast, Arme à deux mains, Bagarre, Base, Cavalerie, Escrime, Fléau, Parade.</p>", "description": "<p>La Compétence Corps à corps représente l'entraînement spécifique que vous avez reçu avec un seul type d'armes de combat rapproché. Chaque Spécialisation de Corps à corps indique un entraînement à une classe d'arme spécifique. Si vous n'avez pas la Spécialisation appropriée pour une arme que vous souhaitez utiliser, référez-vous au <strong>Chapitre 11 : Guide de l'équipement </strong>pour consulter les statistiques de l'arme et savoir quelles pénalités vous subirez. Voir <strong>Chapitre 5 : Règles </strong>pour plus d'informations sur les combats et l'utilisation de la Compétence Corps à corps.<p><strong>Exemples de Spécialisations : </strong>Arme d'hast, Arme à deux mains, Bagarre, Base, Cavalerie, Escrime, Fléau, Parade.</p>",
"id": "Melee", "id": "Melee",

29
fr.json
View File

@ -756,22 +756,6 @@
"Wood Elf":"Elfe Sylvain", "Wood Elf":"Elfe Sylvain",
"XP":"XP", "XP":"XP",
"comma separated":"éparé par des virgules", "comma separated":"éparé par des virgules",
"Overrides" : "Surcharges",
"Casting Skill" : "Comp. d'Incantation",
"Channelling Skill" : "Comp. de Focalisation",
"Ritual" : "Rituel",
"Random Vortex" : "Vortex aléatoire",
"Area of Effect" : "Zone d'Effet",
"Dice": "Dé",
"Extra Overcast Options": "Options Spéciales de Surincantation",
"Force Advancement": "Surcharge d'Avancement",
"Attack Type": "Types d'Attaque",
"Trapping Type": "Type d'Equipement",
"War Machine": "Machine de Guerre",
"XP Cost Modifier": "Modificateur de Coût en XP",
"Add SL": "DR additionnels",
"Prompt Location": "Demander la localisation",
"Dice Roll": "Lancer de Dé",
"TABLE.Column":"Colonne de la Table", "TABLE.Column":"Colonne de la Table",
"TABLE.Key":"Clé de la Table", "TABLE.Key":"Clé de la Table",
@ -1497,19 +1481,6 @@
"WFRP4E.SymptomTreatment.Delirium" : "Certaines autorités traitent le délire comme faisant partie de la fièvre et prescrivent les mêmes remèdes. Ces derniers coûtent de quelques Sous de Cuivre à quelques Pistoles, et 10% d'entre eux sont efficaces.<br><br>Avec le bon médicament, un <b> Test de Guérison Intermédiaire (+0)</b> réussi fait cesser les hallucinations pendant <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> heures.<br><br>Il est également courant de calmer les patients délirants avec des drogues tranquilisantes, comme la Fleur de Lune ou même de la Belladone, pour garder le patient Inconscient jusqu'à ce que la condition soit passée, en l'envoyant dans un sommeil agité jusqu'à ce qu'il récupère ou meure.", "WFRP4E.SymptomTreatment.Delirium" : "Certaines autorités traitent le délire comme faisant partie de la fièvre et prescrivent les mêmes remèdes. Ces derniers coûtent de quelques Sous de Cuivre à quelques Pistoles, et 10% d'entre eux sont efficaces.<br><br>Avec le bon médicament, un <b> Test de Guérison Intermédiaire (+0)</b> réussi fait cesser les hallucinations pendant <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> heures.<br><br>Il est également courant de calmer les patients délirants avec des drogues tranquilisantes, comme la Fleur de Lune ou même de la Belladone, pour garder le patient Inconscient jusqu'à ce que la condition soit passée, en l'envoyant dans un sommeil agité jusqu'à ce qu'il récupère ou meure.",
"WFRP4E.SymptomTreatment.Swelling" : "La plupart des traitements consistent à plonger la partie affectée, ou parfois tout le corps, dans un bain d'eau glacée pour réduire la chaleur qui accompagne les gonflements. Un <b>Test de Guérison Etendu Difficile (-20)</b> requérant +3 DR réduit le gonflement pendant <b><a class = 'chat-roll'>2d10</a></b> heures. Chaque Test prend une heure. Le patient subit une condition Fatigué +1 pour chaque test effectué au cours du processus.<br><br>Certains médecins saignent plutôt le patient avec une lame ou des sangsues. Un <b>Test de Guérison Etendu</b> réussi nécessitant +4 SR et des Outils (Médecin) réduisent le gonflement pendant (<a class = 'chat-roll'>1d10</a> + le Bonus d'Endurance du patient) heures. Chaque Test a une Difficulté <b>Impossible (-50)</b> et nécessite 30mn.", "WFRP4E.SymptomTreatment.Swelling" : "La plupart des traitements consistent à plonger la partie affectée, ou parfois tout le corps, dans un bain d'eau glacée pour réduire la chaleur qui accompagne les gonflements. Un <b>Test de Guérison Etendu Difficile (-20)</b> requérant +3 DR réduit le gonflement pendant <b><a class = 'chat-roll'>2d10</a></b> heures. Chaque Test prend une heure. Le patient subit une condition Fatigué +1 pour chaque test effectué au cours du processus.<br><br>Certains médecins saignent plutôt le patient avec une lame ou des sangsues. Un <b>Test de Guérison Etendu</b> réussi nécessitant +4 SR et des Outils (Médecin) réduisent le gonflement pendant (<a class = 'chat-roll'>1d10</a> + le Bonus d'Endurance du patient) heures. Chaque Test a une Difficulté <b>Impossible (-50)</b> et nécessite 30mn.",
"WFRP4E.Symptom.Blight": "Toxine",
"WFRP4E.Symptom.Buboes": "Bubons",
"WFRP4E.Symptom.Convulsions": "Convulsions",
"WFRP4E.Symptom.CoughsSneezes": "Toux et éternuements",
"WFRP4E.Symptom.Fever": "Fièvre",
"WFRP4E.Symptom.Flux": "Intoxication Alimentaire",
"WFRP4E.Symptom.Gangrene": "Gangrène",
"WFRP4E.Symptom.Lingering": "Persistant",
"WFRP4E.Symptom.Malaise": "Malaise",
"WFRP4E.Symptom.Nausea": "Nausée",
"WFRP4E.Symptom.Pox": "Démangeaisons",
"WFRP4E.Symptom.Wounded": "Blessé",
"CONDITION.Apply" : "Appliquer {condition}", "CONDITION.Apply" : "Appliquer {condition}",
"CONDITION.ApplyError" : "Vous ne pouvez pas appliquer d'états à cet acteur", "CONDITION.ApplyError" : "Vous ne pouvez pas appliquer d'états à cet acteur",

View File

@ -8,7 +8,7 @@
} }
], ],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr", "url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"version": "9.1.3", "version": "9.1.0",
"esmodules": [ "esmodules": [
"modules/babele-register.js", "modules/babele-register.js",
"modules/addon-register.js", "modules/addon-register.js",
@ -119,7 +119,7 @@
} }
], ],
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-1-3.zip", "download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-1-0.zip",
"id": "wh4-fr-translation", "id": "wh4-fr-translation",
"compatibility": { "compatibility": {
"minimum": "13", "minimum": "13",

View File

@ -320,7 +320,6 @@ const __add_actors_translation = () => {
const lang = game.settings.get('core', 'language'); const lang = game.settings.get('core', 'language');
if (lang == "fr") { if (lang == "fr") {
for (let metadata of game.packs) { for (let metadata of game.packs) {
console.log("Checking pack", metadata.collection, metadata.documentName, metadata.metadata.id, game.babele.isTranslated(metadata));
if (!game.babele.isTranslated(metadata) && if (!game.babele.isTranslated(metadata) &&
metadata.collection != "wfrp4e-core.actors" && metadata.collection != "wfrp4e-core.actors" &&
metadata.collection != "wfrp4e-core.bestiary" && metadata.collection != "wfrp4e-core.bestiary" &&

View File

@ -420,8 +420,8 @@ Hooks.once('init', () => {
} }
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("trait") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("trait")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true) let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
if (trait_fr?.name && trait_fr?.name != name_en) { if (trait_fr?.system) {
trait_fr.name = trait_fr.name || trait_en.name trait_fr.name = trait_fr.name || trait_en.name
trait_en.name = nbt + trait_fr.name + special; trait_en.name = nbt + trait_fr.name + special;
trait_en.system.description.value = trait_fr.system.description.value; trait_en.system.description.value = trait_fr.system.description.value;
@ -441,9 +441,8 @@ Hooks.once('init', () => {
} }
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true) let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
//console.log(">>>>> Skill FR ?", trait_fr, name_en, special) if (trait_fr?.system) {
if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || name_en trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special; trait_en.name = trait_fr.name + special;
trait_en.system.description.value = trait_fr.system.description.value; trait_en.system.description.value = trait_fr.system.description.value;
@ -453,8 +452,8 @@ Hooks.once('init', () => {
} else if (trait_en.type == "prayer") { } else if (trait_en.type == "prayer") {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("prayer") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("prayer")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true) let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
if (trait_fr?.name && trait_fr?.name != name_en) { if (trait_fr?.system) {
WFRP4FrTranslation.parseSpellContent(trait_en) WFRP4FrTranslation.parseSpellContent(trait_en)
trait_fr.name = trait_fr.name || name_en trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special; trait_en.name = trait_fr.name + special;
@ -467,8 +466,8 @@ Hooks.once('init', () => {
} else if (trait_en.type == "spell") { } else if (trait_en.type == "spell") {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("spell") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("spell")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true) let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
if (trait_fr?.name && trait_fr?.name != name_en) { if (trait_fr?.system) {
WFRP4FrTranslation.parseSpellContent(trait_en) WFRP4FrTranslation.parseSpellContent(trait_en)
trait_fr.name = trait_fr.name || name_en trait_fr.name = trait_fr.name || name_en
trait_en.name = trait_fr.name + special; trait_en.name = trait_fr.name + special;
@ -493,16 +492,12 @@ Hooks.once('init', () => {
if (name_en === "Inspiring") { if (name_en === "Inspiring") {
name_en = "WCXnFSV4WOSmzzc4" name_en = "WCXnFSV4WOSmzzc4"
} }
trait_en.name = name_en // Reset the name to the original one let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
let trait_fr = game.babele.translate(compData.metadata.id, trait_en, true) if (trait_fr?.system) {
if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || name_en // Security since babele v10 trait_fr.name = trait_fr.name || name_en // Security since babele v10
//console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name); //console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name);
if (trait_fr.name && (trait_fr.name == "Sprinter" || trait_fr.name != name_en)) { // Talent translated! if (trait_fr.name && (trait_fr.name == "Sprinter" || trait_fr.name != name_en)) { // Talent translated!
trait_en.name = trait_fr.name.trim() + special trait_en.name = trait_fr.name.trim() + special
if (trait_fr.system?.tests?.value) { // Why ???
trait_en.system.tests.value = trait_fr.system.tests.value;
}
if (trait_fr.system?.description?.value) { // Why ??? if (trait_fr.system?.description?.value) { // Why ???
trait_en.system.description.value = trait_fr.system.description.value; trait_en.system.description.value = trait_fr.system.description.value;
} }
@ -513,8 +508,8 @@ Hooks.once('init', () => {
} else if (trait_en.type == "career") { } else if (trait_en.type == "career") {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let career_fr = game.babele.translate(compData.metadata.id, trait_en, true); let career_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
if (career_fr?.name && career_fr?.name != name_en) { if (career_fr?.system) {
trait_en.name = career_fr.name || trait_en.name trait_en.name = career_fr.name || trait_en.name
// DEBG: console.log(">>>>> Career ?", career_fr.name ); // DEBG: console.log(">>>>> Career ?", career_fr.name );
trait_en.system = foundry.utils.duplicate(career_fr.system); trait_en.system = foundry.utils.duplicate(career_fr.system);
@ -525,7 +520,7 @@ Hooks.once('init', () => {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("vehicleRole") let validCompendiums = game.wfrp4e.tags.getPacksWithTag("vehicleRole")
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let role_fr = game.babele.translate(compData.metadata.id, trait_en, true); let role_fr = game.babele.translate(compData.metadata.id, trait_en, true);
if (role_fr?.name && role_fr?.name != name_en) { if (role_fr?.system) {
trait_en.name = role_fr.name || trait_en.name trait_en.name = role_fr.name || trait_en.name
// DEBG: console.log(">>>>> Role ?", role_fr.name ); // DEBG: console.log(">>>>> Role ?", role_fr.name );
trait_en.system = foundry.utils.duplicate(role_fr.system); trait_en.system = foundry.utils.duplicate(role_fr.system);
@ -535,8 +530,8 @@ Hooks.once('init', () => {
} else if (trait_en.type == "trapping" || trait_en.type == "weapon" || trait_en.type == "armour" || trait_en.type == "container" || trait_en.type == "money") { } else if (trait_en.type == "trapping" || trait_en.type == "weapon" || trait_en.type == "armour" || trait_en.type == "container" || trait_en.type == "money") {
let validCompendiums = game.wfrp4e.tags.getPacksWithTag(["trapping"], ["weapon", "armour", "container", "money"]) let validCompendiums = game.wfrp4e.tags.getPacksWithTag(["trapping"], ["weapon", "armour", "container", "money"])
for (let compData of validCompendiums) { for (let compData of validCompendiums) {
let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true); let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
if (trapping_fr?.name && trapping_fr?.name != name_en) { if (trapping_fr?.system) {
trait_en.name = trapping_fr.name || trait_en.name trait_en.name = trapping_fr.name || trait_en.name
if (trapping_fr.system?.description?.value) { if (trapping_fr.system?.description?.value) {
trait_en.system.description.value = trapping_fr.system.description.value trait_en.system.description.value = trapping_fr.system.description.value

View File

@ -119,11 +119,9 @@ export class WH4FRPatchConfig {
static fixSpeciesTable() { static fixSpeciesTable() {
let speciesTable = game.wfrp4e.tables.findTable("species"); let speciesTable = game.wfrp4e.tables.findTable("species");
let newResults = foundry.utils.duplicate(speciesTable.results); for (let result of speciesTable.results) {
for (let result of newResults) {
result.name = game.i18n.localize(result.name); result.name = game.i18n.localize(result.name);
} }
speciesTable.update({results: newResults } )
console.log("Species table patched to use 'Humain' instead of 'Human'", speciesTable); console.log("Species table patched to use 'Humain' instead of 'Human'", speciesTable);
} }

View File

@ -1 +1 @@
MANIFEST-001142 MANIFEST-001102

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.538144 7ff25affd6c0 Recovering log #1140 2025/05/28-21:18:37.826014 7f53e5dfa6c0 Recovering log #1100
2025/06/04-19:41:39.549313 7ff25affd6c0 Delete type=3 #1138 2025/05/28-21:18:37.836604 7f53e5dfa6c0 Delete type=3 #1098
2025/06/04-19:41:39.549457 7ff25affd6c0 Delete type=0 #1140 2025/05/28-21:18:37.836673 7f53e5dfa6c0 Delete type=0 #1100
2025/06/04-19:57:50.962467 7ff25a3ff6c0 Level-0 table #1145: started 2025/05/28-21:28:51.892598 7f53df3ff6c0 Level-0 table #1105: started
2025/06/04-19:57:50.962508 7ff25a3ff6c0 Level-0 table #1145: 0 bytes OK 2025/05/28-21:28:51.892649 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
2025/06/04-19:57:50.968762 7ff25a3ff6c0 Delete type=0 #1143 2025/05/28-21:28:51.899980 7f53df3ff6c0 Delete type=0 #1103
2025/06/04-19:57:50.982716 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.913897 7f53df3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.647042 7ff25bfff6c0 Recovering log #1136 2025/05/28-21:03:44.312047 7f53e55f96c0 Recovering log #1096
2025/06/04-19:39:36.657683 7ff25bfff6c0 Delete type=3 #1134 2025/05/28-21:03:44.322437 7f53e55f96c0 Delete type=3 #1094
2025/06/04-19:39:36.657749 7ff25bfff6c0 Delete type=0 #1136 2025/05/28-21:03:44.322507 7f53e55f96c0 Delete type=0 #1096
2025/06/04-19:39:59.536407 7ff25a3ff6c0 Level-0 table #1141: started 2025/05/28-21:11:25.680666 7f53df3ff6c0 Level-0 table #1101: started
2025/06/04-19:39:59.536481 7ff25a3ff6c0 Level-0 table #1141: 0 bytes OK 2025/05/28-21:11:25.680709 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
2025/06/04-19:39:59.543440 7ff25a3ff6c0 Delete type=0 #1139 2025/05/28-21:11:25.703756 7f53df3ff6c0 Delete type=0 #1099
2025/06/04-19:39:59.565026 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.703972 7f53df3ff6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-001144 MANIFEST-001104

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.552657 7ff25bfff6c0 Recovering log #1142 2025/05/28-21:18:37.839615 7f53e55f96c0 Recovering log #1102
2025/06/04-19:41:39.562973 7ff25bfff6c0 Delete type=3 #1140 2025/05/28-21:18:37.851230 7f53e55f96c0 Delete type=3 #1100
2025/06/04-19:41:39.563043 7ff25bfff6c0 Delete type=0 #1142 2025/05/28-21:18:37.851367 7f53e55f96c0 Delete type=0 #1102
2025/06/04-19:57:50.982905 7ff25a3ff6c0 Level-0 table #1147: started 2025/05/28-21:28:51.906375 7f53df3ff6c0 Level-0 table #1107: started
2025/06/04-19:57:50.982939 7ff25a3ff6c0 Level-0 table #1147: 0 bytes OK 2025/05/28-21:28:51.906404 7f53df3ff6c0 Level-0 table #1107: 0 bytes OK
2025/06/04-19:57:50.990059 7ff25a3ff6c0 Delete type=0 #1145 2025/05/28-21:28:51.913702 7f53df3ff6c0 Delete type=0 #1105
2025/06/04-19:57:51.012060 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.913922 7f53df3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.661476 7ff25affd6c0 Recovering log #1138 2025/05/28-21:03:44.326284 7f53e4df86c0 Recovering log #1098
2025/06/04-19:39:36.671782 7ff25affd6c0 Delete type=3 #1136 2025/05/28-21:03:44.336533 7f53e4df86c0 Delete type=3 #1096
2025/06/04-19:39:36.671934 7ff25affd6c0 Delete type=0 #1138 2025/05/28-21:03:44.336600 7f53e4df86c0 Delete type=0 #1098
2025/06/04-19:39:59.550475 7ff25a3ff6c0 Level-0 table #1143: started 2025/05/28-21:11:25.653977 7f53df3ff6c0 Level-0 table #1103: started
2025/06/04-19:39:59.550504 7ff25a3ff6c0 Level-0 table #1143: 0 bytes OK 2025/05/28-21:11:25.654005 7f53df3ff6c0 Level-0 table #1103: 0 bytes OK
2025/06/04-19:39:59.558216 7ff25a3ff6c0 Delete type=0 #1141 2025/05/28-21:11:25.680479 7f53df3ff6c0 Delete type=0 #1101
2025/06/04-19:39:59.565076 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.703960 7f53df3ff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-001142 MANIFEST-001102

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.579753 7ff25b7fe6c0 Recovering log #1140 2025/05/28-21:18:37.866780 7f53dffff6c0 Recovering log #1100
2025/06/04-19:41:39.591676 7ff25b7fe6c0 Delete type=3 #1138 2025/05/28-21:18:37.877487 7f53dffff6c0 Delete type=3 #1098
2025/06/04-19:41:39.591835 7ff25b7fe6c0 Delete type=0 #1140 2025/05/28-21:18:37.877575 7f53dffff6c0 Delete type=0 #1100
2025/06/04-19:57:50.990284 7ff25a3ff6c0 Level-0 table #1145: started 2025/05/28-21:28:51.928101 7f53df3ff6c0 Level-0 table #1105: started
2025/06/04-19:57:50.990348 7ff25a3ff6c0 Level-0 table #1145: 0 bytes OK 2025/05/28-21:28:51.928158 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
2025/06/04-19:57:50.997867 7ff25a3ff6c0 Delete type=0 #1143 2025/05/28-21:28:51.935136 7f53df3ff6c0 Delete type=0 #1103
2025/06/04-19:57:51.012102 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.941551 7f53df3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.690188 7ff25affd6c0 Recovering log #1136 2025/05/28-21:03:44.352825 7f53e55f96c0 Recovering log #1096
2025/06/04-19:39:36.700266 7ff25affd6c0 Delete type=3 #1134 2025/05/28-21:03:44.363415 7f53e55f96c0 Delete type=3 #1094
2025/06/04-19:39:36.700336 7ff25affd6c0 Delete type=0 #1136 2025/05/28-21:03:44.363484 7f53e55f96c0 Delete type=0 #1096
2025/06/04-19:39:59.558368 7ff25a3ff6c0 Level-0 table #1141: started 2025/05/28-21:11:25.704076 7f53df3ff6c0 Level-0 table #1101: started
2025/06/04-19:39:59.558395 7ff25a3ff6c0 Level-0 table #1141: 0 bytes OK 2025/05/28-21:11:25.704112 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
2025/06/04-19:39:59.564814 7ff25a3ff6c0 Delete type=0 #1139 2025/05/28-21:11:25.729480 7f53df3ff6c0 Delete type=0 #1099
2025/06/04-19:39:59.565096 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.819973 7f53df3ff6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-001142 MANIFEST-001102

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.525306 7ff2609fa6c0 Recovering log #1140 2025/05/28-21:18:37.812928 7f53e4df86c0 Recovering log #1100
2025/06/04-19:41:39.534933 7ff2609fa6c0 Delete type=3 #1138 2025/05/28-21:18:37.823073 7f53e4df86c0 Delete type=3 #1098
2025/06/04-19:41:39.535006 7ff2609fa6c0 Delete type=0 #1140 2025/05/28-21:18:37.823147 7f53e4df86c0 Delete type=0 #1100
2025/06/04-19:57:50.975975 7ff25a3ff6c0 Level-0 table #1145: started 2025/05/28-21:28:51.900122 7f53df3ff6c0 Level-0 table #1105: started
2025/06/04-19:57:50.976033 7ff25a3ff6c0 Level-0 table #1145: 0 bytes OK 2025/05/28-21:28:51.900150 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
2025/06/04-19:57:50.982538 7ff25a3ff6c0 Delete type=0 #1143 2025/05/28-21:28:51.906260 7f53df3ff6c0 Delete type=0 #1103
2025/06/04-19:57:50.982740 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.913909 7f53df3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.632014 7ff2609fa6c0 Recovering log #1136 2025/05/28-21:03:44.298365 7f53e5dfa6c0 Recovering log #1096
2025/06/04-19:39:36.643639 7ff2609fa6c0 Delete type=3 #1134 2025/05/28-21:03:44.308425 7f53e5dfa6c0 Delete type=3 #1094
2025/06/04-19:39:36.643779 7ff2609fa6c0 Delete type=0 #1136 2025/05/28-21:03:44.308489 7f53e5dfa6c0 Delete type=0 #1096
2025/06/04-19:39:59.529217 7ff25a3ff6c0 Level-0 table #1141: started 2025/05/28-21:11:25.595569 7f53df3ff6c0 Level-0 table #1101: started
2025/06/04-19:39:59.529246 7ff25a3ff6c0 Level-0 table #1141: 0 bytes OK 2025/05/28-21:11:25.595655 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
2025/06/04-19:39:59.535955 7ff25a3ff6c0 Delete type=0 #1139 2025/05/28-21:11:25.624793 7f53df3ff6c0 Delete type=0 #1099
2025/06/04-19:39:59.536241 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.703933 7f53df3ff6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-001142 MANIFEST-001102

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.510754 7ff25affd6c0 Recovering log #1140 2025/05/28-21:18:37.797820 7f53e5dfa6c0 Recovering log #1100
2025/06/04-19:41:39.521463 7ff25affd6c0 Delete type=3 #1138 2025/05/28-21:18:37.809064 7f53e5dfa6c0 Delete type=3 #1098
2025/06/04-19:41:39.521531 7ff25affd6c0 Delete type=0 #1140 2025/05/28-21:18:37.809141 7f53e5dfa6c0 Delete type=0 #1100
2025/06/04-19:57:50.969079 7ff25a3ff6c0 Level-0 table #1145: started 2025/05/28-21:28:51.885497 7f53df3ff6c0 Level-0 table #1105: started
2025/06/04-19:57:50.969151 7ff25a3ff6c0 Level-0 table #1145: 0 bytes OK 2025/05/28-21:28:51.885605 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
2025/06/04-19:57:50.975744 7ff25a3ff6c0 Delete type=0 #1143 2025/05/28-21:28:51.892302 7f53df3ff6c0 Delete type=0 #1103
2025/06/04-19:57:50.982728 7ff25a3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.913882 7f53df3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.618882 7ff25b7fe6c0 Recovering log #1136 2025/05/28-21:03:44.283375 7f53e55f96c0 Recovering log #1096
2025/06/04-19:39:36.628823 7ff25b7fe6c0 Delete type=3 #1134 2025/05/28-21:03:44.294020 7f53e55f96c0 Delete type=3 #1094
2025/06/04-19:39:36.628913 7ff25b7fe6c0 Delete type=0 #1136 2025/05/28-21:03:44.294093 7f53e55f96c0 Delete type=0 #1096
2025/06/04-19:39:59.522519 7ff25a3ff6c0 Level-0 table #1141: started 2025/05/28-21:11:25.625053 7f53df3ff6c0 Level-0 table #1101: started
2025/06/04-19:39:59.522571 7ff25a3ff6c0 Level-0 table #1141: 0 bytes OK 2025/05/28-21:11:25.625118 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
2025/06/04-19:39:59.529048 7ff25a3ff6c0 Delete type=0 #1139 2025/05/28-21:11:25.653818 7f53df3ff6c0 Delete type=0 #1099
2025/06/04-19:39:59.536218 7ff25a3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.703948 7f53df3ff6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000785 MANIFEST-000745

View File

@ -1,7 +1,7 @@
2025/06/04-19:41:39.566007 7ff25affd6c0 Recovering log #783 2025/05/28-21:18:37.854215 7f53e5dfa6c0 Recovering log #743
2025/06/04-19:41:39.575843 7ff25affd6c0 Delete type=3 #781 2025/05/28-21:18:37.864349 7f53e5dfa6c0 Delete type=3 #741
2025/06/04-19:41:39.575932 7ff25affd6c0 Delete type=0 #783 2025/05/28-21:18:37.864418 7f53e5dfa6c0 Delete type=0 #743
2025/06/04-19:57:51.004365 7ff25a3ff6c0 Level-0 table #788: started 2025/05/28-21:28:51.920436 7f53df3ff6c0 Level-0 table #748: started
2025/06/04-19:57:51.004432 7ff25a3ff6c0 Level-0 table #788: 0 bytes OK 2025/05/28-21:28:51.920500 7f53df3ff6c0 Level-0 table #748: 0 bytes OK
2025/06/04-19:57:51.011786 7ff25a3ff6c0 Delete type=0 #786 2025/05/28-21:28:51.927922 7f53df3ff6c0 Delete type=0 #746
2025/06/04-19:57:51.012158 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2025/05/28-21:28:51.941532 7f53df3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/06/04-19:39:36.675374 7ff25bfff6c0 Recovering log #779 2025/05/28-21:03:44.339388 7f53e5dfa6c0 Recovering log #739
2025/06/04-19:39:36.686819 7ff25bfff6c0 Delete type=3 #777 2025/05/28-21:03:44.350115 7f53e5dfa6c0 Delete type=3 #737
2025/06/04-19:39:36.686965 7ff25bfff6c0 Delete type=0 #779 2025/05/28-21:03:44.350180 7f53e5dfa6c0 Delete type=0 #739
2025/06/04-19:39:59.543592 7ff25a3ff6c0 Level-0 table #784: started 2025/05/28-21:11:25.729707 7f53df3ff6c0 Level-0 table #744: started
2025/06/04-19:39:59.543622 7ff25a3ff6c0 Level-0 table #784: 0 bytes OK 2025/05/28-21:11:25.729741 7f53df3ff6c0 Level-0 table #744: 0 bytes OK
2025/06/04-19:39:59.550325 7ff25a3ff6c0 Delete type=0 #782 2025/05/28-21:11:25.761507 7f53df3ff6c0 Delete type=0 #742
2025/06/04-19:39:59.565053 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2025/05/28-21:11:25.819994 7f53df3ff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@ -1,13 +1,12 @@
package.path = package.path .. ";luajson/?.lua" package.path = package.path .. ";luajson/?.lua"
local JSON = require"json" local JSON = require"json"
local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-dotr/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-dotr/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-core/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-middenheim/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-middenheim/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-eis/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-eis/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-rnhd/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-rnhd/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-up-in-arms/lang/en.json" --local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-up-in-arms/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-v13/Data/modules/wfrp4e-starter-set/lang/en.json"
local enjsonf = "../../WFRP4e-FoundryVTT/static/lang/en.json" local enjsonf = "../../WFRP4e-FoundryVTT/static/lang/en.json"
local frjsonf = "../fr.json" local frjsonf = "../fr.json"
@ -50,3 +49,5 @@ for _, tagDef in pairs(todisplay) do
print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",') print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",')
end end
end end