Compare commits
14 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| c8119601d8 | |||
| d1da169fa3 | |||
| 07928acb48 | |||
| 9860535f5f | |||
| fc560ddee7 | |||
| 47454b30f1 | |||
| 4ee45273b3 | |||
| 94ca8cb6ea | |||
| 6af8d03d22 | |||
| 7afcadfb6f | |||
| 5801a5270f | |||
| f8908617a1 | |||
| 4b36c52bb1 | |||
| 7685409a92 |
@@ -2421,6 +2421,18 @@
|
||||
"name": "Sens aiguisé",
|
||||
"tests": "Perception (Sens)"
|
||||
},
|
||||
{
|
||||
"description": "<p>L’un de vos cinq sens principaux est particulièrement développé, vous permettant de repérer ce qui échappe à d’autres. 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 d’une souris immobile dans un mur, percevoir une lettre effacée dans une gravure, ou déceler que deux bières d’un 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>L’un de vos cinq sens principaux est particulièrement développé, vous permettant de repérer ce qui échappe à d’autres. 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 d’une souris immobile dans un mur, percevoir une lettre effacée dans une gravure, ou déceler que deux bières d’un 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 d’Incantation Imparfaite si vous obtenez un double à un Test de Focalisation réussi.</p>",
|
||||
"id": "Aethyric Attunement",
|
||||
@@ -2829,6 +2841,12 @@
|
||||
"name": "Combattant au contact",
|
||||
"tests": "Corps à corps quand vous combattez au contact ou que vous allez au contact"
|
||||
},
|
||||
{
|
||||
"description": "<p>Vous êtes entraîné à vous placer très près d’un adversaire. Vous ne subissez aucune pénalité pour vous battre contre un adversaire avec une arme plus longue que la vôtre. De plus, si vous utilisez les règles optionnelles de Combat au contact (voir page 297), gagnez un bonus de +10 pour toucher votre adversaire.</p>",
|
||||
"id": "In–fighter",
|
||||
"name": "Combattant au contact",
|
||||
"tests": "Corps à corps quand vous combattez au contact ou que vous allez au contact"
|
||||
},
|
||||
{
|
||||
"description": "<p>Vos appels exaltants peuvent renverser le cours d'une bataille. Référez-vous au tableau suivant pour voir combien de personnes vous pouvez à présent influencer avec votre Compétence @Compendium[wfrp4e-core.items.oMaJZ5cvCJeOUq9H] lors d'une guerre.</p>\n<p> </p>\n<div>\n<table title=\"\" border=\"1\" summary=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<p>Talent pris</p>\n</td>\n<td>\n<p>Nombre de soldats influencés</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>1</p>\n</td>\n<td>\n<p>Normal × 5</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>2</p>\n</td>\n<td>\n<p>Normal × 10</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>3</p>\n</td>\n<td>\n<p> Normal × 20</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>4</p>\n</td>\n<td>\n<p> Normal × 50</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>5</p>\n</td>\n<td>\n<p> Normal × 100</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>6</p>\n</td>\n<td>\n<p> Normal × 200</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>7</p>\n</td>\n<td>\n<p> Normal × 500</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>8</p>\n</td>\n<td>\n<p> Normal × 1000</p>\n</td>\n</tr>\n<tr>\n<td>\n<p>9</p>\n</td>\n<td>\n<p> Tous ceux qui peuvent entendre votre voix inspirante</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Exemple</strong> : <em>Le monastère de l’abbesse Brigitte van der Hoogenband est pris d’assaut par les peaux-vertes, et les choses vont mal. De fait, elle décide de renforcer l’esprit de ses soldats avec un Test de Commandement, leur octroyant +10 à tous les Tests de Psychologie. Elle obtient 3 DR à son Test de Commandement. Étant donné qu’elle possède un Bonus de Sociabilité de 6, et qu’elle peut influencer un nombre de soldats, égal à son Bonus de Sociabilité + DR en utilisant Commandement, elle renforce 9 soldats. Cependant, comme elle possède Exaltant 3, ce nombre est multiplié par 20, ce qui signifie que 180 de ses soldats sont inspirés par ses cris d’encouragement « MAINTENEZ LES RANGS ! »</em>",
|
||||
"id": "WCXnFSV4WOSmzzc4",
|
||||
@@ -5973,6 +5991,11 @@
|
||||
"id": "Lore (Tilea)",
|
||||
"name": "Savoir (Tilée)"
|
||||
},
|
||||
{
|
||||
"description": "<p>Posséder une Compétence Savoir signifie que vous avez officiellement étudié, ou avez appris d’une façon ou d’une autre, une branche de connaissances avancées. Vous possédez des données approfondies dans une spécialisation et n’avez donc pas besoin d’effectuer de Test pour que le MJ vous donne les éléments d’information utiles. Si vous recherchez des informations spécifiques moins connues, vous aurez besoin d’effectuer un Test de Savoir, modifié selon la nature obscure de l’information, 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 l’accord 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é d’un 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 d’Avantages, égal à votre Bonus d’Intelligence.</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>",
|
||||
"id": "Melee",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
44
fr.json
44
fr.json
@@ -314,6 +314,10 @@
|
||||
"SHEET.NPCSheetNoTheme":"Fiche de PNJ (sans thème)",
|
||||
"SHEET.VehicleSheet":"Fiche de véhicule",
|
||||
"SHEET.VehicleSheetNoTheme":"Fiche de véhicule (sans thème)",
|
||||
"SHEET.Append":"Ajouter après",
|
||||
"SHEET.Prepend":"Ajouter avant",
|
||||
"SHEET.SkillName":"Nom de la compétence",
|
||||
"SHEET.TalentName":"Nom du Talent",
|
||||
|
||||
"SHEETS.Actor.vehicle":"Fiche de Véhicule",
|
||||
"SHEETS.Item.ammunition":"Fiche de Munitions",
|
||||
@@ -429,6 +433,7 @@
|
||||
"ITEM.Roles":"Roles",
|
||||
"ITEM.VitalRoles":"Roles vitaux",
|
||||
"ITEM.LearningXP":"XP d'Apprentissage",
|
||||
"ITEM.Custom":"Personnalisé",
|
||||
|
||||
"TOKEN.MOVEMENT.Status.immobile":"Immobile",
|
||||
"TOKEN.MOVEMENT.Status.restricted":"Restreint",
|
||||
@@ -645,6 +650,7 @@
|
||||
"Hide": "Cacher",
|
||||
"Targets": "Cibles",
|
||||
"Melee": "Corps à corps",
|
||||
"Swim":" Natation",
|
||||
"Cost": "Prix",
|
||||
"Length": "Longueur",
|
||||
"Cargo": "Cargaison",
|
||||
@@ -737,7 +743,6 @@
|
||||
"Stat Block Parser":"Parser de fiches de PNJ",
|
||||
"Submit":"Soumettre",
|
||||
"SuccessLevels":"DR",
|
||||
"Swim":"Nager",
|
||||
"TBRed":"BE",
|
||||
"TookDamage":"Encaisse {damage} dommages",
|
||||
"ToughnessDesc":"Endurance",
|
||||
@@ -756,6 +761,22 @@
|
||||
"Wood Elf":"Elfe Sylvain",
|
||||
"XP":"XP",
|
||||
"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.Key":"Clé de la Table",
|
||||
@@ -1004,6 +1025,7 @@
|
||||
"DIALOG.LinkCareerContent":"Relier {new} avec {old}? Les compétences de {old} seront ajoutées à {new}, tout en préservant toutes les spécialisations effectuées avec la carrière précédente.",
|
||||
"DIALOG.ChoosePassenger":"Choisissez un passager",
|
||||
"DIALOG.PostQuantityContent":"Combien de fois cet item peut être récupéré? Laissez vide pour illimité.",
|
||||
"DIALOG.ChooseArmour":"Choisissez une armure à endommager",
|
||||
|
||||
"CHAT.CareerChoose" : "Choisissez votre carrière",
|
||||
"CHAT.DamageError" : "Erreur de calcul des dégâts:",
|
||||
@@ -1168,6 +1190,8 @@
|
||||
"CHAT.Vital":"Vital",
|
||||
"CHAT.DiseaseRollError":"Une erreur s'est produite lors du jet d'incubation ou de durée de la maladie.",
|
||||
"CHAT.ExpReceivedNoReason":"Vous avez reçu <b>{amount}</b> points d'expérience",
|
||||
"CHAT.CriticalDeflection":"Déviation de Critique",
|
||||
"CHAT.DamageToArmour":"1 Dommages appliqués à {item} ({type})",
|
||||
|
||||
"Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
|
||||
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
|
||||
@@ -1481,6 +1505,19 @@
|
||||
"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.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.ApplyError" : "Vous ne pouvez pas appliquer d'états à cet acteur",
|
||||
|
||||
@@ -2667,6 +2704,10 @@
|
||||
"major":"Majeur",
|
||||
"minor":"Mineur",
|
||||
"moderate":"Modéré",
|
||||
"DurationPlaceholder":"Texte concernant a durée",
|
||||
"ErrorArmourDamagePermission":"Vous n'avez pas les droits pour endommager l'armure de cet acteur.",
|
||||
"IncubationPlaceholder":"Texte concernant l'incubation",
|
||||
"Required Trappings":"Equipement requis",
|
||||
|
||||
"WH":{
|
||||
"TransferType":{
|
||||
@@ -2687,5 +2728,6 @@
|
||||
"SHEET.ExperienceLog":"Journal d'Expérince",
|
||||
"SHEET.Attacker":"Attaquant",
|
||||
"SHEET.Randomize":"Aléatoire",
|
||||
"SHEET.RequiredTrappingsError":"Impossible de lancer les revenus sans avoir tous les équipements requis dans cette carrière !",
|
||||
"Sheet.RollIncome":"Revenu"
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||
"version": "9.1.0",
|
||||
"version": "9.3.3",
|
||||
"esmodules": [
|
||||
"modules/babele-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",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-1-0.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-2.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
@@ -320,6 +320,7 @@ const __add_actors_translation = () => {
|
||||
const lang = game.settings.get('core', 'language');
|
||||
if (lang == "fr") {
|
||||
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) &&
|
||||
metadata.collection != "wfrp4e-core.actors" &&
|
||||
metadata.collection != "wfrp4e-core.bestiary" &&
|
||||
|
||||
@@ -420,8 +420,8 @@ Hooks.once('init', () => {
|
||||
}
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("trait")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
|
||||
if (trait_fr?.name && trait_fr?.name != name_en) {
|
||||
trait_fr.name = trait_fr.name || trait_en.name
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
@@ -441,8 +441,9 @@ Hooks.once('init', () => {
|
||||
}
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
|
||||
//console.log(">>>>> Skill FR ?", trait_fr, name_en, special)
|
||||
if (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.system.description.value = trait_fr.system.description.value;
|
||||
@@ -452,8 +453,8 @@ Hooks.once('init', () => {
|
||||
} else if (trait_en.type == "prayer") {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("prayer")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
|
||||
if (trait_fr?.name && trait_fr?.name != name_en) {
|
||||
WFRP4FrTranslation.parseSpellContent(trait_en)
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
trait_en.name = trait_fr.name + special;
|
||||
@@ -466,8 +467,8 @@ Hooks.once('init', () => {
|
||||
} else if (trait_en.type == "spell") {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("spell")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true)
|
||||
if (trait_fr?.name && trait_fr?.name != name_en) {
|
||||
WFRP4FrTranslation.parseSpellContent(trait_en)
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
trait_en.name = trait_fr.name + special;
|
||||
@@ -492,12 +493,16 @@ Hooks.once('init', () => {
|
||||
if (name_en === "Inspiring") {
|
||||
name_en = "WCXnFSV4WOSmzzc4"
|
||||
}
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
trait_en.name = name_en // Reset the name to the original one
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, trait_en, true)
|
||||
if (trait_fr?.name && trait_fr?.name != name_en) {
|
||||
trait_fr.name = trait_fr.name || name_en // Security since babele v10
|
||||
//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!
|
||||
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 ???
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
}
|
||||
@@ -508,8 +513,8 @@ Hooks.once('init', () => {
|
||||
} else if (trait_en.type == "career") {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career")
|
||||
for (let compData of validCompendiums) {
|
||||
let career_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
|
||||
if (career_fr?.system) {
|
||||
let career_fr = game.babele.translate(compData.metadata.id, trait_en, true);
|
||||
if (career_fr?.name && career_fr?.name != name_en) {
|
||||
trait_en.name = career_fr.name || trait_en.name
|
||||
// DEBG: console.log(">>>>> Career ?", career_fr.name );
|
||||
trait_en.system = foundry.utils.duplicate(career_fr.system);
|
||||
@@ -520,7 +525,7 @@ Hooks.once('init', () => {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("vehicleRole")
|
||||
for (let compData of validCompendiums) {
|
||||
let role_fr = game.babele.translate(compData.metadata.id, trait_en, true);
|
||||
if (role_fr?.system) {
|
||||
if (role_fr?.name && role_fr?.name != name_en) {
|
||||
trait_en.name = role_fr.name || trait_en.name
|
||||
// DEBG: console.log(">>>>> Role ?", role_fr.name );
|
||||
trait_en.system = foundry.utils.duplicate(role_fr.system);
|
||||
@@ -530,8 +535,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") {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag(["trapping"], ["weapon", "armour", "container", "money"])
|
||||
for (let compData of validCompendiums) {
|
||||
let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
|
||||
if (trapping_fr?.system) {
|
||||
let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en, system:{description:{value: trait_en.system.description.value}} }, true);
|
||||
if (trapping_fr?.name && trapping_fr?.name != name_en) {
|
||||
trait_en.name = trapping_fr.name || trait_en.name
|
||||
if (trapping_fr.system?.description?.value) {
|
||||
trait_en.system.description.value = trapping_fr.system.description.value
|
||||
|
||||
@@ -2,51 +2,72 @@
|
||||
export class WH4FRPatchConfig {
|
||||
|
||||
/************************************************************************************/
|
||||
static translateSkillList( skillList) {
|
||||
static translateSkillList(skillList) {
|
||||
|
||||
if (!skillList || skillList.length == 0) {
|
||||
return skillList;
|
||||
}
|
||||
let compendiumName = 'wfrp4e-core.items'
|
||||
|
||||
let newList = [];
|
||||
for( let compName of skillList) {
|
||||
for (let compName of skillList) {
|
||||
if (!compName) {
|
||||
newList.push(compName);
|
||||
continue;
|
||||
}
|
||||
if (!isNaN(compName)) { // If numeric, keep as is (for skill levels)
|
||||
newList.push(compName);
|
||||
continue;
|
||||
}
|
||||
// Trim compName
|
||||
compName = compName.trim();
|
||||
let special = "";
|
||||
let newName = compName;
|
||||
if ( compName.includes("(") && compName.includes(")") ) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec( compName );
|
||||
let baseName = compName
|
||||
if (compName.includes("(") && compName.includes(")")) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec(compName);
|
||||
compName = res[1].trim(); // Get the root skill name
|
||||
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
|
||||
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
|
||||
}
|
||||
let compNameFR = game.babele.translate( compendiumName, { name: compName }, true );
|
||||
let compNameFR = game.babele.translate(compendiumName, { name: compName }, true);
|
||||
if (compNameFR.name != compName) { // Translation OK
|
||||
newName = compNameFR.name + special;
|
||||
}
|
||||
// DEBUG console.log("Translating skill ", compName, baseName, " to ", newName, special);
|
||||
if (!newName || newName == "" || newName === undefined || newName === "undefined") { // If no translation, keep the original name
|
||||
newName = baseName; // If no translation, keep the original name
|
||||
}
|
||||
newList.push(newName);
|
||||
}
|
||||
return newList;
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static translateTalentList( talentList) {
|
||||
static translateTalentList(talentList) {
|
||||
|
||||
if (!talentList || talentList.length == 0) {
|
||||
return talentList;
|
||||
}
|
||||
let compendiumName = 'wfrp4e-core.items'
|
||||
|
||||
let newList = [];
|
||||
for( let talentLine of talentList) {
|
||||
for (let talentLine of talentList) {
|
||||
let special = "";
|
||||
let newName = talentLine;
|
||||
if ( isNaN(talentLine) ) {
|
||||
if (isNaN(talentLine)) {
|
||||
let subList = talentLine.split(',');
|
||||
let newSubList = [];
|
||||
for (let talentName of subList ) {
|
||||
for (let talentName of subList) {
|
||||
talentName = talentName.trim();
|
||||
let newName2 = talentName;
|
||||
if ( talentName.includes("(") && talentName.includes(")") ) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec( talentName );
|
||||
if (talentName.includes("(") && talentName.includes(")")) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec(talentName);
|
||||
talentName = res[1].trim(); // Get the root skill name
|
||||
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
|
||||
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
|
||||
}
|
||||
let talentNameFR = game.babele.translate( compendiumName, { name: talentName }, true );
|
||||
let talentNameFR = game.babele.translate(compendiumName, { name: talentName }, true);
|
||||
if (talentNameFR.name != talentName) { // Translation OK
|
||||
newName2 = talentNameFR.name + special;
|
||||
}
|
||||
@@ -60,15 +81,18 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static patch_subspecies( ) {
|
||||
for ( let speciesName in game.wfrp4e.config.subspecies) {
|
||||
static patch_subspecies() {
|
||||
if (!game.wfrp4e?.config?.subspecies) {
|
||||
return
|
||||
}
|
||||
for (let speciesName in game.wfrp4e.config.subspecies) {
|
||||
let subspeciesList = game.wfrp4e.config.subspecies[speciesName];
|
||||
for ( let subspeciesName in subspeciesList) {
|
||||
for (let subspeciesName in subspeciesList) {
|
||||
let subspecies = subspeciesList[subspeciesName];
|
||||
if ( subspecies.skills) {
|
||||
if (subspecies.skills) {
|
||||
subspecies.skills = this.translateSkillList(subspecies.skills);
|
||||
}
|
||||
if ( subspecies.talents) {
|
||||
if (subspecies.talents) {
|
||||
subspecies.talents = this.translateTalentList(subspecies.talents);
|
||||
}
|
||||
}
|
||||
@@ -76,20 +100,26 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static patch_species_skills( ) {
|
||||
static patch_species_skills() {
|
||||
if (!game.wfrp4e?.config?.speciesSkills) {
|
||||
return
|
||||
}
|
||||
console.log("Patching species skills....");
|
||||
for (let speciesName in game.wfrp4e.config.speciesSkills) {
|
||||
let speciesComp = game.wfrp4e.config.speciesSkills[speciesName];
|
||||
console.log("SpeciesName", speciesName, speciesComp);
|
||||
game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList( speciesComp )
|
||||
game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList(speciesComp)
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static patch_species_talents( ) {
|
||||
static patch_species_talents() {
|
||||
if (!game.wfrp4e?.config?.speciesTalents) {
|
||||
return
|
||||
}
|
||||
for (let speciesName in game.wfrp4e.config.speciesTalents) {
|
||||
let speciesTalents = game.wfrp4e.config.speciesTalents[speciesName];
|
||||
game.wfrp4e.config.speciesTalents[speciesName] = this.translateTalentList( speciesTalents);
|
||||
game.wfrp4e.config.speciesTalents[speciesName] = this.translateTalentList(speciesTalents);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,16 +127,16 @@ export class WH4FRPatchConfig {
|
||||
static patch_career() {
|
||||
let compendiumName = 'wfrp4e-core.items'
|
||||
|
||||
if ( game.wfrp4e.tables.career) {
|
||||
for( let row of game.wfrp4e.tables.career.rows) {
|
||||
for ( let key in row) {
|
||||
if (game.wfrp4e?.tables?.career) {
|
||||
for (let row of game.wfrp4e.tables.career.rows) {
|
||||
for (let key in row) {
|
||||
if (key != "range") {
|
||||
if ( row[key].name == 'Slayer' ) {
|
||||
if (row[key].name == 'Slayer') {
|
||||
row[key].name = "Tueur Nains";
|
||||
} else if ( row[key].name == 'Duelist' ) {
|
||||
} else if (row[key].name == 'Duelist') {
|
||||
row[key].name = "Duelliste";
|
||||
} else {
|
||||
let career_fr = game.babele.translate( compendiumName, {name: row[key].name}, true );
|
||||
let career_fr = game.babele.translate(compendiumName, { name: row[key].name }, true);
|
||||
row[key].name = career_fr.name;
|
||||
}
|
||||
}
|
||||
@@ -118,10 +148,15 @@ export class WH4FRPatchConfig {
|
||||
/************************************************************************************/
|
||||
static fixSpeciesTable() {
|
||||
|
||||
let speciesTable = game.wfrp4e.tables.findTable("species");
|
||||
for (let result of speciesTable.results) {
|
||||
let speciesTable = game.wfrp4e?.tables?.findTable("species");
|
||||
if (!speciesTable?.results) {
|
||||
return
|
||||
}
|
||||
let newResults = foundry.utils.duplicate(speciesTable.results);
|
||||
for (let result of newResults) {
|
||||
result.name = game.i18n.localize(result.name);
|
||||
}
|
||||
speciesTable.update({ results: newResults })
|
||||
console.log("Species table patched to use 'Humain' instead of 'Human'", speciesTable);
|
||||
}
|
||||
|
||||
@@ -137,7 +172,7 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
// Detect and patch as necessary
|
||||
if (game.wfrp4e.config?.talentBonuses ) {
|
||||
if (game.wfrp4e.config?.talentBonuses) {
|
||||
|
||||
this.fixSpeciesTable() // Force 'name' field replacement
|
||||
|
||||
@@ -179,22 +214,22 @@ export class WH4FRPatchConfig {
|
||||
|
||||
if (game.wfrp4e.config.characteristicsBonus) {
|
||||
game.wfrp4e.config.characteristicsBonus =
|
||||
{
|
||||
"ws": "Bonus de Capacité de Combat",
|
||||
"bs": "Bonus de Capacité de Tir",
|
||||
"s": "Bonus de Force",
|
||||
"t": "Bonus d'Endurance",
|
||||
"i": "Bonus d'Initiative",
|
||||
"ag": "Bonus d'Agilité",
|
||||
"dex": "Bonus de Dexterité",
|
||||
"int": "Bonus d'Intelligence",
|
||||
"wp": "Bonus de Force Mentale",
|
||||
"fel": "Bonus de Sociabilité"
|
||||
{
|
||||
"ws": "Bonus de Capacité de Combat",
|
||||
"bs": "Bonus de Capacité de Tir",
|
||||
"s": "Bonus de Force",
|
||||
"t": "Bonus d'Endurance",
|
||||
"i": "Bonus d'Initiative",
|
||||
"ag": "Bonus d'Agilité",
|
||||
"dex": "Bonus de Dexterité",
|
||||
"int": "Bonus d'Intelligence",
|
||||
"wp": "Bonus de Force Mentale",
|
||||
"fel": "Bonus de Sociabilité"
|
||||
}
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.classTrappings) {
|
||||
for(const c of Object.keys(game.wfrp4e.config.classTrappings)) {
|
||||
for (const c of Object.keys(game.wfrp4e.config.classTrappings)) {
|
||||
game.wfrp4e.config.classTrappings[game.i18n.localize(c)] = game.wfrp4e.config.classTrappings[c];
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
MANIFEST-001102
|
||||
MANIFEST-001231
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.826014 7f53e5dfa6c0 Recovering log #1100
|
||||
2025/05/28-21:18:37.836604 7f53e5dfa6c0 Delete type=3 #1098
|
||||
2025/05/28-21:18:37.836673 7f53e5dfa6c0 Delete type=0 #1100
|
||||
2025/05/28-21:28:51.892598 7f53df3ff6c0 Level-0 table #1105: started
|
||||
2025/05/28-21:28:51.892649 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
|
||||
2025/05/28-21:28:51.899980 7f53df3ff6c0 Delete type=0 #1103
|
||||
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)
|
||||
2026/01/05-17:20:14.396780 7f93eb7fe6c0 Recovering log #1229
|
||||
2026/01/05-17:20:14.456467 7f93eb7fe6c0 Delete type=3 #1227
|
||||
2026/01/05-17:20:14.456537 7f93eb7fe6c0 Delete type=0 #1229
|
||||
2026/01/05-17:22:12.851160 7f93e9ffb6c0 Level-0 table #1234: started
|
||||
2026/01/05-17:22:12.851180 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
|
||||
2026/01/05-17:22:12.857087 7f93e9ffb6c0 Delete type=0 #1232
|
||||
2026/01/05-17:22:12.870416 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.312047 7f53e55f96c0 Recovering log #1096
|
||||
2025/05/28-21:03:44.322437 7f53e55f96c0 Delete type=3 #1094
|
||||
2025/05/28-21:03:44.322507 7f53e55f96c0 Delete type=0 #1096
|
||||
2025/05/28-21:11:25.680666 7f53df3ff6c0 Level-0 table #1101: started
|
||||
2025/05/28-21:11:25.680709 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
|
||||
2025/05/28-21:11:25.703756 7f53df3ff6c0 Delete type=0 #1099
|
||||
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)
|
||||
2026/01/04-22:01:24.254078 7f93eaffd6c0 Recovering log #1224
|
||||
2026/01/04-22:01:24.350065 7f93eaffd6c0 Delete type=3 #1222
|
||||
2026/01/04-22:01:24.350146 7f93eaffd6c0 Delete type=0 #1224
|
||||
2026/01/04-22:02:13.377643 7f93e9ffb6c0 Level-0 table #1230: started
|
||||
2026/01/04-22:02:13.377670 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
|
||||
2026/01/04-22:02:13.384805 7f93e9ffb6c0 Delete type=0 #1228
|
||||
2026/01/04-22:02:13.385131 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/aides-de-jeu-fr/MANIFEST-001231
Normal file
BIN
packs/aides-de-jeu-fr/MANIFEST-001231
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001104
|
||||
MANIFEST-001233
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.839615 7f53e55f96c0 Recovering log #1102
|
||||
2025/05/28-21:18:37.851230 7f53e55f96c0 Delete type=3 #1100
|
||||
2025/05/28-21:18:37.851367 7f53e55f96c0 Delete type=0 #1102
|
||||
2025/05/28-21:28:51.906375 7f53df3ff6c0 Level-0 table #1107: started
|
||||
2025/05/28-21:28:51.906404 7f53df3ff6c0 Level-0 table #1107: 0 bytes OK
|
||||
2025/05/28-21:28:51.913702 7f53df3ff6c0 Delete type=0 #1105
|
||||
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)
|
||||
2026/01/05-17:20:14.458755 7f93eb7fe6c0 Recovering log #1231
|
||||
2026/01/05-17:20:14.498635 7f93eb7fe6c0 Delete type=3 #1229
|
||||
2026/01/05-17:20:14.498701 7f93eb7fe6c0 Delete type=0 #1231
|
||||
2026/01/05-17:22:12.845184 7f93e9ffb6c0 Level-0 table #1236: started
|
||||
2026/01/05-17:22:12.845214 7f93e9ffb6c0 Level-0 table #1236: 0 bytes OK
|
||||
2026/01/05-17:22:12.851070 7f93e9ffb6c0 Delete type=0 #1234
|
||||
2026/01/05-17:22:12.870407 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.326284 7f53e4df86c0 Recovering log #1098
|
||||
2025/05/28-21:03:44.336533 7f53e4df86c0 Delete type=3 #1096
|
||||
2025/05/28-21:03:44.336600 7f53e4df86c0 Delete type=0 #1098
|
||||
2025/05/28-21:11:25.653977 7f53df3ff6c0 Level-0 table #1103: started
|
||||
2025/05/28-21:11:25.654005 7f53df3ff6c0 Level-0 table #1103: 0 bytes OK
|
||||
2025/05/28-21:11:25.680479 7f53df3ff6c0 Delete type=0 #1101
|
||||
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)
|
||||
2026/01/04-22:01:24.357771 7f93ebfff6c0 Recovering log #1226
|
||||
2026/01/04-22:01:24.468440 7f93ebfff6c0 Delete type=3 #1224
|
||||
2026/01/04-22:01:24.468504 7f93ebfff6c0 Delete type=0 #1226
|
||||
2026/01/04-22:02:13.391738 7f93e9ffb6c0 Level-0 table #1232: started
|
||||
2026/01/04-22:02:13.391763 7f93e9ffb6c0 Level-0 table #1232: 0 bytes OK
|
||||
2026/01/04-22:02:13.397715 7f93e9ffb6c0 Delete type=0 #1230
|
||||
2026/01/04-22:02:13.410782 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/antidotes-and-remedes/MANIFEST-001233
Normal file
BIN
packs/antidotes-and-remedes/MANIFEST-001233
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001102
|
||||
MANIFEST-001231
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.866780 7f53dffff6c0 Recovering log #1100
|
||||
2025/05/28-21:18:37.877487 7f53dffff6c0 Delete type=3 #1098
|
||||
2025/05/28-21:18:37.877575 7f53dffff6c0 Delete type=0 #1100
|
||||
2025/05/28-21:28:51.928101 7f53df3ff6c0 Level-0 table #1105: started
|
||||
2025/05/28-21:28:51.928158 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
|
||||
2025/05/28-21:28:51.935136 7f53df3ff6c0 Delete type=0 #1103
|
||||
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)
|
||||
2026/01/05-17:20:14.575428 7f93ea7fc6c0 Recovering log #1229
|
||||
2026/01/05-17:20:14.619638 7f93ea7fc6c0 Delete type=3 #1227
|
||||
2026/01/05-17:20:14.619716 7f93ea7fc6c0 Delete type=0 #1229
|
||||
2026/01/05-17:22:12.876750 7f93e9ffb6c0 Level-0 table #1234: started
|
||||
2026/01/05-17:22:12.876780 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
|
||||
2026/01/05-17:22:12.884154 7f93e9ffb6c0 Delete type=0 #1232
|
||||
2026/01/05-17:22:12.900968 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.352825 7f53e55f96c0 Recovering log #1096
|
||||
2025/05/28-21:03:44.363415 7f53e55f96c0 Delete type=3 #1094
|
||||
2025/05/28-21:03:44.363484 7f53e55f96c0 Delete type=0 #1096
|
||||
2025/05/28-21:11:25.704076 7f53df3ff6c0 Level-0 table #1101: started
|
||||
2025/05/28-21:11:25.704112 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
|
||||
2025/05/28-21:11:25.729480 7f53df3ff6c0 Delete type=0 #1099
|
||||
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)
|
||||
2026/01/04-22:01:24.562817 7f93eb7fe6c0 Recovering log #1224
|
||||
2026/01/04-22:01:24.662382 7f93eb7fe6c0 Delete type=3 #1222
|
||||
2026/01/04-22:01:24.662455 7f93eb7fe6c0 Delete type=0 #1224
|
||||
2026/01/04-22:02:13.397968 7f93e9ffb6c0 Level-0 table #1230: started
|
||||
2026/01/04-22:02:13.398010 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
|
||||
2026/01/04-22:02:13.404471 7f93e9ffb6c0 Delete type=0 #1228
|
||||
2026/01/04-22:02:13.410790 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/apothicarium/MANIFEST-001231
Normal file
BIN
packs/apothicarium/MANIFEST-001231
Normal file
Binary file not shown.
0
packs/dons-de-rhya/001233.log
Normal file
0
packs/dons-de-rhya/001233.log
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-001102
|
||||
MANIFEST-001231
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.812928 7f53e4df86c0 Recovering log #1100
|
||||
2025/05/28-21:18:37.823073 7f53e4df86c0 Delete type=3 #1098
|
||||
2025/05/28-21:18:37.823147 7f53e4df86c0 Delete type=0 #1100
|
||||
2025/05/28-21:28:51.900122 7f53df3ff6c0 Level-0 table #1105: started
|
||||
2025/05/28-21:28:51.900150 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
|
||||
2025/05/28-21:28:51.906260 7f53df3ff6c0 Delete type=0 #1103
|
||||
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)
|
||||
2026/01/05-17:20:14.340612 7f93eb7fe6c0 Recovering log #1229
|
||||
2026/01/05-17:20:14.394663 7f93eb7fe6c0 Delete type=3 #1227
|
||||
2026/01/05-17:20:14.394743 7f93eb7fe6c0 Delete type=0 #1229
|
||||
2026/01/05-17:22:12.857180 7f93e9ffb6c0 Level-0 table #1234: started
|
||||
2026/01/05-17:22:12.857204 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
|
||||
2026/01/05-17:22:12.863647 7f93e9ffb6c0 Delete type=0 #1232
|
||||
2026/01/05-17:22:12.870424 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.298365 7f53e5dfa6c0 Recovering log #1096
|
||||
2025/05/28-21:03:44.308425 7f53e5dfa6c0 Delete type=3 #1094
|
||||
2025/05/28-21:03:44.308489 7f53e5dfa6c0 Delete type=0 #1096
|
||||
2025/05/28-21:11:25.595569 7f53df3ff6c0 Level-0 table #1101: started
|
||||
2025/05/28-21:11:25.595655 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
|
||||
2025/05/28-21:11:25.624793 7f53df3ff6c0 Delete type=0 #1099
|
||||
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)
|
||||
2026/01/04-22:01:24.160908 7f93ea7fc6c0 Recovering log #1224
|
||||
2026/01/04-22:01:24.250354 7f93ea7fc6c0 Delete type=3 #1222
|
||||
2026/01/04-22:01:24.250444 7f93ea7fc6c0 Delete type=0 #1224
|
||||
2026/01/04-22:02:13.371437 7f93e9ffb6c0 Level-0 table #1230: started
|
||||
2026/01/04-22:02:13.371468 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
|
||||
2026/01/04-22:02:13.377536 7f93e9ffb6c0 Delete type=0 #1228
|
||||
2026/01/04-22:02:13.385115 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/dons-de-rhya/MANIFEST-001231
Normal file
BIN
packs/dons-de-rhya/MANIFEST-001231
Normal file
Binary file not shown.
0
packs/dons-de-rhya/lost/001220.log
Normal file
0
packs/dons-de-rhya/lost/001220.log
Normal file
0
packs/plats-dauberges/001233.log
Normal file
0
packs/plats-dauberges/001233.log
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-001102
|
||||
MANIFEST-001231
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.797820 7f53e5dfa6c0 Recovering log #1100
|
||||
2025/05/28-21:18:37.809064 7f53e5dfa6c0 Delete type=3 #1098
|
||||
2025/05/28-21:18:37.809141 7f53e5dfa6c0 Delete type=0 #1100
|
||||
2025/05/28-21:28:51.885497 7f53df3ff6c0 Level-0 table #1105: started
|
||||
2025/05/28-21:28:51.885605 7f53df3ff6c0 Level-0 table #1105: 0 bytes OK
|
||||
2025/05/28-21:28:51.892302 7f53df3ff6c0 Delete type=0 #1103
|
||||
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)
|
||||
2026/01/05-17:20:14.280921 7f93ea7fc6c0 Recovering log #1229
|
||||
2026/01/05-17:20:14.337958 7f93ea7fc6c0 Delete type=3 #1227
|
||||
2026/01/05-17:20:14.338043 7f93ea7fc6c0 Delete type=0 #1229
|
||||
2026/01/05-17:22:12.838440 7f93e9ffb6c0 Level-0 table #1234: started
|
||||
2026/01/05-17:22:12.838473 7f93e9ffb6c0 Level-0 table #1234: 0 bytes OK
|
||||
2026/01/05-17:22:12.844706 7f93e9ffb6c0 Delete type=0 #1232
|
||||
2026/01/05-17:22:12.844991 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.283375 7f53e55f96c0 Recovering log #1096
|
||||
2025/05/28-21:03:44.294020 7f53e55f96c0 Delete type=3 #1094
|
||||
2025/05/28-21:03:44.294093 7f53e55f96c0 Delete type=0 #1096
|
||||
2025/05/28-21:11:25.625053 7f53df3ff6c0 Level-0 table #1101: started
|
||||
2025/05/28-21:11:25.625118 7f53df3ff6c0 Level-0 table #1101: 0 bytes OK
|
||||
2025/05/28-21:11:25.653818 7f53df3ff6c0 Delete type=0 #1099
|
||||
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)
|
||||
2026/01/04-22:01:24.060098 7f93ebfff6c0 Recovering log #1224
|
||||
2026/01/04-22:01:24.158104 7f93ebfff6c0 Delete type=3 #1222
|
||||
2026/01/04-22:01:24.158187 7f93ebfff6c0 Delete type=0 #1224
|
||||
2026/01/04-22:02:13.363838 7f93e9ffb6c0 Level-0 table #1230: started
|
||||
2026/01/04-22:02:13.363872 7f93e9ffb6c0 Level-0 table #1230: 0 bytes OK
|
||||
2026/01/04-22:02:13.371335 7f93e9ffb6c0 Delete type=0 #1228
|
||||
2026/01/04-22:02:13.385100 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/plats-dauberges/MANIFEST-001231
Normal file
BIN
packs/plats-dauberges/MANIFEST-001231
Normal file
Binary file not shown.
0
packs/plats-dauberges/lost/001220.log
Normal file
0
packs/plats-dauberges/lost/001220.log
Normal file
0
packs/tables-des-traductions/000876.log
Normal file
0
packs/tables-des-traductions/000876.log
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000745
|
||||
MANIFEST-000874
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:18:37.854215 7f53e5dfa6c0 Recovering log #743
|
||||
2025/05/28-21:18:37.864349 7f53e5dfa6c0 Delete type=3 #741
|
||||
2025/05/28-21:18:37.864418 7f53e5dfa6c0 Delete type=0 #743
|
||||
2025/05/28-21:28:51.920436 7f53df3ff6c0 Level-0 table #748: started
|
||||
2025/05/28-21:28:51.920500 7f53df3ff6c0 Level-0 table #748: 0 bytes OK
|
||||
2025/05/28-21:28:51.927922 7f53df3ff6c0 Delete type=0 #746
|
||||
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)
|
||||
2026/01/05-17:20:14.509126 7f93ea7fc6c0 Recovering log #872
|
||||
2026/01/05-17:20:14.568971 7f93ea7fc6c0 Delete type=3 #870
|
||||
2026/01/05-17:20:14.569021 7f93ea7fc6c0 Delete type=0 #872
|
||||
2026/01/05-17:22:12.863773 7f93e9ffb6c0 Level-0 table #877: started
|
||||
2026/01/05-17:22:12.863802 7f93e9ffb6c0 Level-0 table #877: 0 bytes OK
|
||||
2026/01/05-17:22:12.870319 7f93e9ffb6c0 Delete type=0 #875
|
||||
2026/01/05-17:22:12.870431 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/05/28-21:03:44.339388 7f53e5dfa6c0 Recovering log #739
|
||||
2025/05/28-21:03:44.350115 7f53e5dfa6c0 Delete type=3 #737
|
||||
2025/05/28-21:03:44.350180 7f53e5dfa6c0 Delete type=0 #739
|
||||
2025/05/28-21:11:25.729707 7f53df3ff6c0 Level-0 table #744: started
|
||||
2025/05/28-21:11:25.729741 7f53df3ff6c0 Level-0 table #744: 0 bytes OK
|
||||
2025/05/28-21:11:25.761507 7f53df3ff6c0 Delete type=0 #742
|
||||
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)
|
||||
2026/01/04-22:01:24.471625 7f93eaffd6c0 Recovering log #867
|
||||
2026/01/04-22:01:24.559238 7f93eaffd6c0 Delete type=3 #865
|
||||
2026/01/04-22:01:24.559306 7f93eaffd6c0 Delete type=0 #867
|
||||
2026/01/04-22:02:13.404597 7f93e9ffb6c0 Level-0 table #873: started
|
||||
2026/01/04-22:02:13.404646 7f93e9ffb6c0 Level-0 table #873: 0 bytes OK
|
||||
2026/01/04-22:02:13.410707 7f93e9ffb6c0 Delete type=0 #871
|
||||
2026/01/04-22:02:13.410796 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/tables-des-traductions/MANIFEST-000874
Normal file
BIN
packs/tables-des-traductions/MANIFEST-000874
Normal file
Binary file not shown.
0
packs/tables-des-traductions/lost/000863.log
Normal file
0
packs/tables-des-traductions/lost/000863.log
Normal file
@@ -1,12 +1,13 @@
|
||||
package.path = package.path .. ";luajson/?.lua"
|
||||
local JSON = require"json"
|
||||
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-dotr/lang/en.json"
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-middenheim/lang/en.json"
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-eis/lang/en.json"
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-rnhd/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-dotr/lang/en.json"
|
||||
--local enjsonf = "/home/morr/foundry/foundrydata-v13/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-v13/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-v13/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 frjsonf = "../fr.json"
|
||||
|
||||
@@ -20,13 +21,13 @@ fp:close()
|
||||
|
||||
local todisplay = {}
|
||||
for tag, value in pairs(entags) do
|
||||
if not frtags[tag] then
|
||||
if not frtags[tag] then
|
||||
todisplay[#todisplay+1] = { tag=tag, value=value }
|
||||
end
|
||||
end
|
||||
|
||||
table.sort(todisplay, function (a, b)
|
||||
return a.tag < b.tag
|
||||
table.sort(todisplay, function (a, b)
|
||||
return a.tag < b.tag
|
||||
end
|
||||
)
|
||||
|
||||
@@ -49,5 +50,3 @@ for _, tagDef in pairs(todisplay) do
|
||||
print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user