Neuanfang mit französischem Modul
This commit is contained in:
@@ -327,7 +327,7 @@ const __patchStyleSheet = () => {
|
||||
/************************************************************************************/
|
||||
const __add_actors_translation = () => {
|
||||
const lang = game.settings.get('core', 'language');
|
||||
if (lang == "fr") {
|
||||
if (lang == "de") {
|
||||
let pack_array = [];
|
||||
for (let metadata of game.packs) {
|
||||
if (!game.babele.isTranslated(metadata) &&
|
||||
@@ -391,7 +391,9 @@ Hooks.on('ready', () => {
|
||||
if (game.user.isGM) {
|
||||
game.wfrp4e.warnDialog = new Dialog({
|
||||
title: "Chargement de la traduction FR - Merci d'attendre",
|
||||
content: `<img src="modules/wh4-fr-translation/images/warhammer-v1-logo.webp"><p class="wfrp4-fr-message">Les moines de l'ordre de l'Enclume, associés aux légistes de Talabaheim, préparent la traduction Bretonnienne de ce monde...</h3><p class="wfrp4-fr-message">Merci d'attendre la disparition de ce message pour vaquer dans l'Empire.</p> <p class="wfrp4-fr-message">Si une bénédiction de Shallya apparait dans le tchat, c'est que tout s'est bien passé.</p>`,
|
||||
content: `<img src="modules/wh4-fr-translation/images/warhammer-v1-logo.webp"><p class="wfrp4-fr-message">
|
||||
Die Diener Sigmars der Risikogruppe bereiten zusammen mit den bretonischen Rattenfängern die Übersetzung dieser Welt vor...</h3> <p class="wfrp4-fr-message">Bitte warte , bis diese Nachricht verschwunden ist, bevor du dich im Reich bewegst.</p><p class="wfrp4-fr-message">Wenn ein Segen von Shallya im Chat erscheint, ist alles gut gelaufen.</p>
|
||||
Les moines de l'ordre de l'Enclume, associés aux légistes de Talabaheim, préparent la traduction Bretonnienne de ce monde...<p >Merci d'attendre la disparition de ce message pour vaquer dans l'Empire.</p> <p>Si une bénédiction de Shallya apparait dans le tchat, c'est que tout s'est bien passé.</p>`,
|
||||
buttons: {
|
||||
}
|
||||
})
|
||||
|
||||
+17
-23
@@ -32,7 +32,7 @@ const __SELECT_BONUS_PREFIX_D = {
|
||||
|
||||
/************************************************************************************/
|
||||
export class WFRP4FrTranslation {
|
||||
|
||||
|
||||
static parseSpellContent(spell) {
|
||||
if (spell.system.range?.value) {
|
||||
spell.system.range.value = this.processSpellContent(spell.system.range.value)
|
||||
@@ -55,7 +55,7 @@ export class WFRP4FrTranslation {
|
||||
//console.log("Spell duration/range/damage/target :", value);
|
||||
if (value == "") return ""; // Hop !
|
||||
if (value == "Touch") return "Contact"; // Hop !
|
||||
if (value == "You") return "Vous"; // Hop !
|
||||
if (value == "You") return "Vous"; // Hop !
|
||||
if (value == "Instant") return "Instantané"; // Hop !
|
||||
let translw = value;
|
||||
let re = /(.*)\s+[Bb]onus\s*(\w*)/i;
|
||||
@@ -63,7 +63,7 @@ export class WFRP4FrTranslation {
|
||||
//console.log("RES1:", res);
|
||||
let unit = "";
|
||||
if (res) { // Test "<charac> Bonus <unit>" pattern
|
||||
if (res[1]) { // We have char name, then convert it
|
||||
if (res[1]) { // We have char name, then convert it
|
||||
translw = game.i18n.localize(res[1].trim());
|
||||
let bonusPrefix = (translw.toLowerCase() in __SELECT_BONUS_PREFIX_D) ? "Bonus d'" : "Bonus de ";
|
||||
translw = bonusPrefix + translw
|
||||
@@ -75,7 +75,7 @@ export class WFRP4FrTranslation {
|
||||
if (res) { // Test : "<number> <unit>" pattern
|
||||
translw = res[1];
|
||||
unit = res[2];
|
||||
} else { // Test
|
||||
} else { // Test
|
||||
re = /(\w+) (\w+)/i;
|
||||
res = re.exec(value);
|
||||
if (res) { // Test : "<charac> <unit>" pattern
|
||||
@@ -102,7 +102,7 @@ export class WFRP4FrTranslation {
|
||||
/************************************************************************************/
|
||||
Hooks.once('init', () => {
|
||||
|
||||
// Check various settings in the installation
|
||||
// Check various settings in the installation
|
||||
game.modules.forEach((module, id) => {
|
||||
if (id == "wfrp4e-core" && module.active) {
|
||||
compmod = "wfrp4e-core";
|
||||
@@ -116,7 +116,7 @@ Hooks.once('init', () => {
|
||||
game.wfrp4e.apps.StatBlockParser.parseStatBlock = async function (statString, type = "npc") {
|
||||
return statParserFR(statString, type);
|
||||
}
|
||||
|
||||
|
||||
console.log("WFRP4E-FR | Loading Babele translation module ...");
|
||||
loadScripts();
|
||||
|
||||
@@ -222,9 +222,10 @@ Hooks.once('init', () => {
|
||||
|
||||
game.babele.register({
|
||||
module: 'wh4-fr-translation',
|
||||
lang: 'fr',
|
||||
lang: 'de',
|
||||
dir: 'compendium'
|
||||
})
|
||||
},
|
||||
)
|
||||
|
||||
game.babele.registerConverters({
|
||||
|
||||
@@ -289,7 +290,7 @@ Hooks.once('init', () => {
|
||||
if (script?.label) {
|
||||
// Quand le label du script est strictement identique au nom de l'item concerné
|
||||
if ( script.label.toLowerCase() == origName.toLowerCase() ) {
|
||||
script.label = e.name
|
||||
script.label = e.name
|
||||
} else if (script.label.toLowerCase().includes("tests to affect")) {
|
||||
script.label = script.label.replace("Tests to affect", "Tests relatifs à ")
|
||||
} else if (script.label.toLowerCase().includes("using torn muscle")) {
|
||||
@@ -325,7 +326,7 @@ Hooks.once('init', () => {
|
||||
for (let data of results) {
|
||||
let career = data.text.match(/{(.*)}/)
|
||||
//console.log(">>>>>", career)
|
||||
if (career?.[1]) {
|
||||
if (career && career[1]) {
|
||||
let careerFR = game.babele.converters.career_careergroup(career[1])
|
||||
data.text = data.text.replace(career[1], careerFR)
|
||||
}
|
||||
@@ -338,6 +339,7 @@ Hooks.once('init', () => {
|
||||
},
|
||||
|
||||
"npc_details": (details) => {
|
||||
//console.log("DETAILS: ", details);
|
||||
let newDetails = foundry.utils.duplicate(details);
|
||||
if (details.species?.value)
|
||||
newDetails.species.value = game.i18n.localize(details.species.value);
|
||||
@@ -358,12 +360,9 @@ Hooks.once('init', () => {
|
||||
for (let compData of validCompendiums) {
|
||||
let translItem = game.babele.translate(compData.metadata.id, { name: talents_list[i] }, true);
|
||||
// Specific case management
|
||||
if (talents_list[i] === "Trapper") {
|
||||
if (talents_list[i] === "Trapper") {
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: "a7v422EZcOUUC20X" }, true);
|
||||
}
|
||||
if (talents_list[i] === "Inspiring") {
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: "WCXnFSV4WOSmzzc4" }, true);
|
||||
}
|
||||
//console.log("Search talent name:", compData.metadata.id, talents_list[i], translItem);
|
||||
let transl = translItem?.name || undefined
|
||||
if (!transl) transl = talents_list[i]
|
||||
@@ -374,6 +373,7 @@ Hooks.once('init', () => {
|
||||
let s1 = res[1].trim(); // No () in talents table
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: s1 }, true)
|
||||
let translw = translItem?.name || undefined
|
||||
//console.log("Search talent name:", compData.metadata.id, s1, translw);
|
||||
if (translw && translw != s1) {
|
||||
transl = translw + " (" + subword + ")";
|
||||
}
|
||||
@@ -390,7 +390,7 @@ Hooks.once('init', () => {
|
||||
"npc_characteristics": (chars) => { // Auto-convert char names in the sheet
|
||||
for (let key in chars) {
|
||||
let char = chars[key];
|
||||
//console.log("Was here !", key, char );
|
||||
//console.log("Was here !", key, char );
|
||||
let abrev = char["abrev"];
|
||||
let toTransl = "CHAR." + abrev;
|
||||
if (game.i18n.localize(toTransl) != toTransl) { // Manages unknown language
|
||||
@@ -437,7 +437,7 @@ Hooks.once('init', () => {
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
if (trait_en.system?.specification && isNaN(trait_en.system.specification.value)) { // This is a string, so translate it
|
||||
//console.log("Translating : ", trait_en.system.specification.value);
|
||||
//console.log("Translating : ", trait_en.system.specification.value);
|
||||
trait_en.system.specification.value = game.i18n.localize(trait_en.system.specification.value.trim());
|
||||
}
|
||||
break // Translation has been found, skip other compendiums
|
||||
@@ -480,7 +480,7 @@ Hooks.once('init', () => {
|
||||
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) {
|
||||
if (trait_fr?.system) {
|
||||
//DEBUG : console.log(">>>>> Spell ?", name_en, special, trait_fr);
|
||||
WFRP4FrTranslation.parseSpellContent(trait_en)
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
@@ -500,12 +500,6 @@ Hooks.once('init', () => {
|
||||
}
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("talent")
|
||||
for (let compData of validCompendiums) {
|
||||
if (name_en === "Trapper") {
|
||||
name_en = "a7v422EZcOUUC20X"
|
||||
}
|
||||
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_fr.name = trait_fr.name || name_en // Security since babele v10
|
||||
|
||||
+43
-43
@@ -105,9 +105,9 @@ export class WH4FRPatchConfig {
|
||||
for ( let key in row) {
|
||||
if (key != "range") {
|
||||
if ( row[key].name == 'Slayer' ) {
|
||||
row[key].name = "Slayer";
|
||||
row[key].name = "Tueur Nains";
|
||||
} else if ( row[key].name == 'Duelist' ) {
|
||||
row[key].name = "Duellant";
|
||||
row[key].name = "Duelliste";
|
||||
//console.log(">>>>> Career ?", key, row[key].name, career_fr.name );
|
||||
} else {
|
||||
let career_fr = game.babele.translate( compendiumName, {name: row[key].name}, true );
|
||||
@@ -124,8 +124,8 @@ export class WH4FRPatchConfig {
|
||||
|
||||
if (game.user.isGM) {
|
||||
let coreC7 = game.modules.find(mod => mod.id == "wfrp4e-core")
|
||||
if (!coreC7 || !coreC7.active) {
|
||||
ui.notifications.warn("Sie haben das CoreC7-Modul nicht aktiviert! Die Übersetzung wird daher unvollständig und unwirksam sein.")
|
||||
if (!coreC7 || !coreC7.active) {
|
||||
ui.notifications.warn("Vous n'avez pas activé le module CoreC7 ! La traduction sera donc incomplète et inopérante.")
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -135,52 +135,52 @@ export class WH4FRPatchConfig {
|
||||
game.wfrp4e.config.qualityDescriptions["distract"] = game.i18n.localize("WFRP4E.Properties.Distract"); // Patch missing quality
|
||||
|
||||
game.wfrp4e.config.talentBonuses = {
|
||||
"gerissenheit": "int",
|
||||
"einnehmendes wesen": "fel",
|
||||
"meisterschütze": "bs",
|
||||
"sehr stark": "s",
|
||||
"aufgeweckt": "i",
|
||||
"blitzschnelle reflexe": "ag",
|
||||
"kühler kopf": "wp",
|
||||
"unverwüstlich": "t",
|
||||
"geschickte finger": "dex",
|
||||
"geborener krieger": "ws"
|
||||
"perspicace": "int",
|
||||
"affable": "fel",
|
||||
"tireur de précision": "bs",
|
||||
"très fort": "s",
|
||||
"vivacité": "i",
|
||||
"reflexes foudroyants": "ag",
|
||||
"imperturbable": "wp",
|
||||
"très résistant": "t",
|
||||
"doigts de fée": "dex",
|
||||
"guerrier né": "ws"
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.loreEffects) {
|
||||
game.wfrp4e.config.loreEffects["beasts"].label = "Lehre der Bestien";
|
||||
game.wfrp4e.config.loreEffects["death"].label = "Lehre des Todes";
|
||||
game.wfrp4e.config.loreEffects["fire"].label = "Lehre des Feuers";
|
||||
game.wfrp4e.config.loreEffects["metal"].label = "Lehre des Metalls";
|
||||
game.wfrp4e.config.loreEffects["heavens"].label = "Lehre des Himmels";
|
||||
game.wfrp4e.config.loreEffects["life"].label = "Lehre des Lebens";
|
||||
game.wfrp4e.config.loreEffects["light"].label = "Lehre des Lichts";
|
||||
game.wfrp4e.config.loreEffects["shadow"].label = "Lehre der Schatten";
|
||||
game.wfrp4e.config.loreEffects["hedgecraft"].label = "Lehre der Heckenzauberei";
|
||||
game.wfrp4e.config.loreEffects["hedgecraft"].label = "Lehre der Hexerei";
|
||||
game.wfrp4e.config.loreEffects["beasts"].label = "Domaine des Bêtes"
|
||||
game.wfrp4e.config.loreEffects["death"].label = "Domaine de la Mort"
|
||||
game.wfrp4e.config.loreEffects["fire"].label = "Domaine du Feu"
|
||||
game.wfrp4e.config.loreEffects["metal"].label = "Domaine du Métal"
|
||||
game.wfrp4e.config.loreEffects["heavens"].label = "Domaine des Cieux"
|
||||
game.wfrp4e.config.loreEffects["life"].label = "Domaine de la Vie"
|
||||
game.wfrp4e.config.loreEffects["light"].label = "Domaine de la Lumière"
|
||||
game.wfrp4e.config.loreEffects["shadow"].label = "Domaine des Ombres"
|
||||
game.wfrp4e.config.loreEffects["hedgecraft"].label = "Domaine de la Magie de Village"
|
||||
game.wfrp4e.config.loreEffects["hedgecraft"].label = "Domaine de la Sorcellerie"
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.species) {
|
||||
game.wfrp4e.config.species["human"] = "Mensch";
|
||||
game.wfrp4e.config.species["dwarf"] = "Zwerg";
|
||||
game.wfrp4e.config.species["halfling"] = "Halbling";
|
||||
game.wfrp4e.config.species["helf"] = "Hochelf";
|
||||
game.wfrp4e.config.species["welf"] = "Waldelf";
|
||||
game.wfrp4e.config.species["human"] = "Humain";
|
||||
game.wfrp4e.config.species["dwarf"] = "Nain";
|
||||
game.wfrp4e.config.species["halfling"] = "Halfling";
|
||||
game.wfrp4e.config.species["helf"] = "Haut Elfe";
|
||||
game.wfrp4e.config.species["welf"] = "Elfe Sylvain";
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.charastericticsBonus) {
|
||||
game.wfrp4e.config.charastericticsBonus =
|
||||
{
|
||||
"ws": "Kampfgeschickbonus",
|
||||
"bs": "Ballistische Fertigkeits Bonus",
|
||||
"s": "Stärkebonus",
|
||||
"t": "Widerstandsbonus",
|
||||
"i": "Initiativebonus",
|
||||
"ag": "Gewandheitsbonus",
|
||||
"dex": "Geschicklichkeitsbonus",
|
||||
"int": "Intelligenzbonus",
|
||||
"wp": "Willenskraftbonus",
|
||||
"fel": "Charismabonus"
|
||||
"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é"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -996,7 +996,7 @@ export class WH4FRPatchConfig {
|
||||
|
||||
game.wfrp4e.config.symptomEffects = {
|
||||
"blight": {
|
||||
label: "Gift",
|
||||
label: "Toxine",
|
||||
icon: "modules/wfrp4e-core/icons/diseases/disease.png",
|
||||
transfer: true,
|
||||
flags: {
|
||||
@@ -1006,9 +1006,9 @@ export class WH4FRPatchConfig {
|
||||
"symptom": true,
|
||||
"script": `
|
||||
let difficulty = ""
|
||||
if (this.effect.label.includes("moderat"))
|
||||
if (this.effect.label.includes("Modéré"))
|
||||
difficulty = "easy"
|
||||
else if (this.effect.label.includes("schwerwiegend"))
|
||||
else if (this.effect.label.includes("Sévère"))
|
||||
difficulty = "average"
|
||||
else
|
||||
difficulty = "veasy"
|
||||
@@ -1027,7 +1027,7 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
},
|
||||
"buboes": {
|
||||
label: "Blasen",
|
||||
label: "Bubons",
|
||||
icon: "modules/wfrp4e-core/icons/diseases/disease.png",
|
||||
transfer: true,
|
||||
flags: {
|
||||
|
||||
Reference in New Issue
Block a user