Align with v9.3.0
This commit is contained in:
5
fr.json
5
fr.json
@@ -433,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",
|
||||
@@ -1024,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:",
|
||||
@@ -1189,6 +1191,7 @@
|
||||
"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",
|
||||
@@ -2704,6 +2707,7 @@
|
||||
"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":{
|
||||
@@ -2724,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"
|
||||
}
|
||||
|
||||
@@ -2,29 +2,37 @@
|
||||
export class WH4FRPatchConfig {
|
||||
|
||||
/************************************************************************************/
|
||||
static translateSkillList( skillList) {
|
||||
static translateSkillList(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;
|
||||
let baseName = compName
|
||||
if ( compName.includes("(") && compName.includes(")") ) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec( 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
|
||||
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);
|
||||
@@ -33,27 +41,27 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static translateTalentList( talentList) {
|
||||
static translateTalentList(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;
|
||||
}
|
||||
@@ -67,15 +75,15 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static patch_subspecies( ) {
|
||||
for ( let speciesName in game.wfrp4e.config.subspecies) {
|
||||
static patch_subspecies() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -83,20 +91,20 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static patch_species_skills( ) {
|
||||
static patch_species_skills() {
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,16 +112,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;
|
||||
}
|
||||
}
|
||||
@@ -130,7 +138,7 @@ export class WH4FRPatchConfig {
|
||||
for (let result of newResults) {
|
||||
result.name = game.i18n.localize(result.name);
|
||||
}
|
||||
speciesTable.update({results: newResults } )
|
||||
speciesTable.update({ results: newResults })
|
||||
console.log("Species table patched to use 'Humain' instead of 'Human'", speciesTable);
|
||||
}
|
||||
|
||||
@@ -146,7 +154,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
|
||||
|
||||
@@ -188,22 +196,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];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user