Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - b606

#1
Releases / [1.1] Optimized French Translation
May 06, 2020, 04:04:20 PM
LanguageWorker_French Mod and the French translation of EdB Prepare Carefully are released on Steam and also available from GitHub.

LanguageWorker_French Mod

Optimisation de la traduction française dans RimWorld.  clip intro
Textes plus agréables à lire : élisions, majuscules, genres, pluriels, les exceptions grammaticales.
Correctifs du générateur de texte : RulesForPawn, RulesForDef, RulesForBodyParts.

Les modifications faites par ce mod concernent essentiellement la qualité de la traduction, qui sont impossibles à faire sans modifier le code C# du jeu. Ce mod est donc un complément du travail des traducteurs de Ludeon/RimWorld-fr.

Le mod est focalisé sur les accords de mots, les règles de grammaire ou de typographie etc. Si vous avez l'œil averti, vous apprecierez les changements par-ci par-là. Des captures d'écran les illustrent dans le Wiki du mod. N'hésitez pas à remonter les suggestions, les problèmes ou bugs sur ce site.

Merci à :
Elevator89 pour le code initial, à Adirelle pour les premiers Regex, Pardeike pour libHarmony, et kiliak pour les tests.

Téléchargement
GitHub, Steam

EdB Prepare Carefully [Français]

GitHub, Steam
Dépendance : EdBPrepareCarefully (Auteur original : edbmods)
edbmods GitHub, edbmods Steam

Pour m'encourager
- une petite pouce approbatrice
- j'adore aussi le kofi

#2
[English] One gets
2      resolvedQuestName → ERR: The [AdjectiveBadass] [beast]
or Quest name: ERR: [Joiner_nameDef]'s [animalKind_label]

The origin might be here:

Exception running QuestNode_ManhunterPack: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.ManhunterPackIncidentUtility.GetAnimalsCount (Verse.PawnKindDef animalKind, System.Single points) [0x00000] in <5e36103b131b4943929535cdcbda3260>:0
  at RimWorld.QuestGen.QuestNode_ManhunterPack.RunInt () [0x00140] in <5e36103b131b4943929535cdcbda3260>:0
  at RimWorld.QuestGen.QuestNode.Run () [0x00015] in <5e36103b131b4943929535cdcbda3260>:0
#3
Translations / [1.1.2579] Need help to debug this
March 22, 2020, 05:27:29 PM
Step to reproduce

1. Choose french language
2. Generate new colony with seed "ruisseau"
3. One should get red error log

Excerpt of rimworld_log

Root level exception in Update(): System.NullReferenceException: Object reference not set to an instance of an object
  at TMPro.TMP_MaterialManager.GetFallbackMaterial (UnityEngine.Material sourceMaterial, UnityEngine.Material targetMaterial) [0x00013] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.SetArraySizes (TMPro.TMP_Text+UnicodeChar[] chars) [0x00a51] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TMP_Text.ParseInputText () [0x0004c] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.OnPreRenderObject () [0x00066] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.ForceMeshUpdate () [0x00007] in <97c8500af9fc436a9c72f7143766546d>:0
  at RimWorld.Planet.WorldFeatureTextMesh_TextMeshPro.WrapAroundPlanetSurface () [0x00000] in <9773342d293a4bf1b00442f05ee59271>:0
  at RimWorld.Planet.WorldFeatures.CreateTextsAndSetPosition () [0x00114] in <9773342d293a4bf1b00442f05ee59271>:0
  at RimWorld.Planet.WorldFeatures.UpdateFeatures () [0x0000f] in <9773342d293a4bf1b00442f05ee59271>:0
  at RimWorld.Planet.World.WorldUpdate () [0x0002d] in <9773342d293a4bf1b00442f05ee59271>:0
  at Verse.Root_Entry.Update () [0x0002e] in <9773342d293a4bf1b00442f05ee59271>:0

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

NullReferenceException: Object reference not set to an instance of an object
  at TMPro.TextMeshPro.GenerateTextMesh () [0x00de7] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.OnPreRenderObject () [0x000e2] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.Rebuild (UnityEngine.UI.CanvasUpdate update) [0x00035] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TMP_UpdateManager.DoRebuilds () [0x00083] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TMP_UpdateManager.OnCameraPreCull (UnityEngine.Camera cam) [0x00000] in <97c8500af9fc436a9c72f7143766546d>:0
  at UnityEngine.Camera.FireOnPreCull (UnityEngine.Camera cam) [0x0000b] in <1580092fcc9a4cc19685cc4eaf066b05>:0

(Filename: <97c8500af9fc436a9c72f7143766546d> Line: 0)

NullReferenceException: Object reference not set to an instance of an object
  at TMPro.TextMeshPro.UpdateSDFScale (System.Single scaleDelta) [0x00057] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TextMeshPro.InternalUpdate () [0x00045] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TMP_UpdateManager.DoRebuilds () [0x00010] in <97c8500af9fc436a9c72f7143766546d>:0
  at TMPro.TMP_UpdateManager.OnCameraPreCull (UnityEngine.Camera cam) [0x00000] in <97c8500af9fc436a9c72f7143766546d>:0
  at UnityEngine.Camera.FireOnPreCull (UnityEngine.Camera cam) [0x0000b] in <1580092fcc9a4cc19685cc4eaf066b05>:0

(Filename: <97c8500af9fc436a9c72f7143766546d> Line: 0)
#4
Since yesterday, the two QuestScripts below are constantly changing, almost every minutes. When I use the ingame translation tool, sometimes I get Diff 1, next time I get Diff 2 for Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml and Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml. Which is the correct one ?

Diff 1: Wants to replace already translated texts with TODO (???)

diff --git a/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml b/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
index 336fd41b..7cf9b8b4 100644
--- a/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
+++ b/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
@@ -32,7 +32,7 @@
   <!-- EN: [letterSubject], who you were charged to protect, is gone. [remainingWillNowLeave][failLetterEndingCommon] -->
   <Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.text.slateRef>[letterSubject], que vous étiez chargé de protéger, a disparu. [remainingWillNowLeave][failLetterEndingCommon]</Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.text.slateRef>
   <!-- EN: Guest lost: {SUBJECT_definite} -->
-  <Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>Invité perdu : {SUBJECT_definite}</Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>
+  <Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>TODO</Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>
   <!-- EN: [letterSubject], who you were charged to protect, has joined another faction. [remainingWillNowLeave][failLetterEndingCommon] -->
   <Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.text.slateRef>[letterSubject], que vous avez été chargé de protéger, a rejoint une autre faction. [remainingWillNowLeave][failLetterEndingCommon]</Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.text.slateRef>
   <!-- EN: Shuttle destroyed -->
diff --git a/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml b/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
index a71b155b..32e7a75b 100644
--- a/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
+++ b/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
@@ -134,7 +134,7 @@
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_pronoun] was supposed to marry the child of [enemyFaction_leader_nameFull], leader of [enemyFaction_name]. [joiner_pronoun] became drunk before the ceremony and vomited on the altar - a flagrant insult towards [enemyFaction_leader_nameDef]'s whole family.\n    \n[enemyFaction_leader_nameDef] swore to seek revenge on [joiner_nameDef] and all those associated with [joiner_objective], and sent [enemyFaction_pawnsPlural] to carry out the task.\n    \n{BASETEXT} -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_pronoun] était supposé(e) se marier avec l'enfant de [enemyFaction_leader_nameFull], leader de [enemyFaction_name]. [joiner_pronoun] s'est saoulé(e) avant la cérémonie et a vomi sur l'autel, une insulte flagrante envers toute la famille de [enemyFaction_leader_nameDef].\n    \n[enemyFaction_leader_nameDef] a juré de se venger de [joiner_nameDef] et de tous ceux avec [joiner_objective], et a envoyé des [enemyFaction_pawnsPlural] pour cela.\n    \n{BASETEXT}</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-1.value.slateRef>
   <!-- EN: {BASELABEL}: Chasing [joiner_nameDef] -->
-  <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>{BASELABEL} : pourchassant [joiner_nameDef]</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>
+  <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>TODO</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_nameDef], greedy for the pleasures and money insect jelly can bring, intended to destroy a massive insect hive using poison. [joiner_pronoun] failed, but was doused in insect threat pheromones. Insects have been hunting [joiner_objective] ever since. Now they've launched their final attack.\n    \n{BASETEXT} -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_nameDef], avide du plaisir et de l'argent que les gelées d'insectes procurent, voulait détruire une énorme ruche d'insectes avec du poison. [joiner_pronoun] a échoué, mais a été imbibé(e) de phéromones de menace par les insectes. Depuis, [joiner_pronoun] est pourchassé(e) par ces insectes qui maintenant, vont lancer leur assaut final.\n    \n{BASETEXT}</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-1.value.slateRef>
   <!-- EN: Site appeared to harass [joiner_nameDef]: [site_label] -->
@@ -163,7 +163,7 @@
   <!-- EN: {BASETEXT}\n                  \nThe [enemyFaction_pawnsPlural] are coming for [../joiner_nameFull]. -->
   <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>{BASETEXT}\n                  \nLes [enemyFaction_pawnsPlural] sont venus pour [../joiner_nameFull].</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>
   <!-- EN: {BASELABEL} chasing [../joiner_nameDef] -->
-  <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>{BASELABEL} : pourchassant [../joiner_nameDef]</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>
+  <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>TODO</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>
   <!-- EN: {BASETEXT}\n                        \nThe [enemyFaction_pawnsPlural] are coming for [../joiner_nameFull]. -->
   <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>{BASETEXT}\n                        \nLes [enemyFaction_pawnsPlural] sont venus pour [../joiner_nameFull].</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>


Diff 2: Wants to delete rules, move 1 rule from Sequence-1.nodes.Set-0 to Sequence-3.nodes.Set-0

diff --git a/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml b/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
index 336fd41b..c65e6db5 100644
--- a/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
+++ b/Royalty/DefInjected/QuestScriptDef/Script_Hospitality_Worker.xml
@@ -31,8 +31,6 @@
   <Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.label.slateRef>Invité perdu : {SUBJECT_definite}</Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.label.slateRef>
   <!-- EN: [letterSubject], who you were charged to protect, is gone. [remainingWillNowLeave][failLetterEndingCommon] -->
   <Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.text.slateRef>[letterSubject], que vous étiez chargé de protéger, a disparu. [remainingWillNowLeave][failLetterEndingCommon]</Hospitality_Util_Worker.root.nodes.lodgersLeftMap.node.nodes.Letter.text.slateRef>
-  <!-- EN: Guest lost: {SUBJECT_definite} -->
-  <Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>Invité perdu : {SUBJECT_definite}</Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.label.slateRef>
   <!-- EN: [letterSubject], who you were charged to protect, has joined another faction. [remainingWillNowLeave][failLetterEndingCommon] -->
   <Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.text.slateRef>[letterSubject], que vous avez été chargé de protéger, a rejoint une autre faction. [remainingWillNowLeave][failLetterEndingCommon]</Hospitality_Util_Worker.root.nodes.AnySignal.node.node.nodes.Letter.text.slateRef>
   <!-- EN: Shuttle destroyed -->
diff --git a/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml b/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
index a71b155b..614a956f 100644
--- a/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
+++ b/Royalty/DefInjected/QuestScriptDef/Scripts_JoinerThreat.xml
@@ -133,14 +133,14 @@
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-0.value.slateRef>{BASELABEL} : pourchassant [joiner_nameDef]</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-0.value.slateRef>
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_pronoun] was supposed to marry the child of [enemyFaction_leader_nameFull], leader of [enemyFaction_name]. [joiner_pronoun] became drunk before the ceremony and vomited on the altar - a flagrant insult towards [enemyFaction_leader_nameDef]'s whole family.\n    \n[enemyFaction_leader_nameDef] swore to seek revenge on [joiner_nameDef] and all those associated with [joiner_objective], and sent [enemyFaction_pawnsPlural] to carry out the task.\n    \n{BASETEXT} -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_pronoun] était supposé(e) se marier avec l'enfant de [enemyFaction_leader_nameFull], leader de [enemyFaction_name]. [joiner_pronoun] s'est saoulé(e) avant la cérémonie et a vomi sur l'autel, une insulte flagrante envers toute la famille de [enemyFaction_leader_nameDef].\n    \n[enemyFaction_leader_nameDef] a juré de se venger de [joiner_nameDef] et de tous ceux avec [joiner_objective], et a envoyé des [enemyFaction_pawnsPlural] pour cela.\n    \n{BASETEXT}</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-0.nodes.Set-1.value.slateRef>
-  <!-- EN: {BASELABEL}: Chasing [joiner_nameDef] -->
-  <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>{BASELABEL} : pourchassant [joiner_nameDef]</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-0.value.slateRef>
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_nameDef], greedy for the pleasures and money insect jelly can bring, intended to destroy a massive insect hive using poison. [joiner_pronoun] failed, but was doused in insect threat pheromones. Insects have been hunting [joiner_objective] ever since. Now they've launched their final attack.\n    \n{BASETEXT} -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_nameDef], avide du plaisir et de l'argent que les gelées d'insectes procurent, voulait détruire une énorme ruche d'insectes avec du poison. [joiner_pronoun] a échoué, mais a été imbibé(e) de phéromones de menace par les insectes. Depuis, [joiner_pronoun] est pourchassé(e) par ces insectes qui maintenant, vont lancer leur assaut final.\n    \n{BASETEXT}</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-1.nodes.Set-1.value.slateRef>
   <!-- EN: Site appeared to harass [joiner_nameDef]: [site_label] -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-2.nodes.Set-0.value.slateRef>Un site semble harceler [joiner_nameDef] : [site_label]</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-2.nodes.Set-0.value.slateRef>
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_nameDef] was traveling when [joiner_pronoun] happened upon [enemyFaction_leader_nameFull], leader of [enemyFaction_name], sick on the side of the road. [joiner_nameDef] insulted [enemyFaction_leader_nameDef] by comparing [enemyFaction_leader_objective] to a [Animal].\n    \nNow [enemyFaction_leader_nameDef]'s [enemyFaction_pawnsPlural] are activating a site nearby to harass you.\n    \n[allSitePartsDescriptions] -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-2.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_nameDef] était en voyage quand [joiner_pronoun] est tombé(e) sur [enemyFaction_leader_nameFull], leader de [enemyFaction_name], malade sur le bord de la route. [joiner_nameDef] a insulté [enemyFaction_leader_nameDef] en le/la comparant à [AnimalAny_indef].\n    \nMaintenant, les [enemyFaction_pawnsPlural] de [enemyFaction_leader_nameDef] s'installeront sur un site à proximité pour vous harceler.\n    \n[allSitePartsDescriptions]</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-2.nodes.Set-1.value.slateRef>
+  <!-- EN: {BASELABEL}: Chasing [joiner_nameDef] -->
+  <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-3.nodes.Set-0.value.slateRef>TODO</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-3.nodes.Set-0.value.slateRef>
   <!-- EN: [joiner_nameDef] has admitted what [joiner_pronoun] was fleeing from.\n    \n[joiner_nameDef] was traveling when [joiner_pronoun] came upon a lost group of [animalKind_labelPlural]. [joiner_pronoun], in a bad mood, goaded the [animalKind_labelPlural]. Unexpectedly, they attacked [joiner_objective]. And they have followed [joiner_objective] a long distance.\n    \n{BASETEXT} -->
   <ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-3.nodes.Set-1.value.slateRef>[joiner_nameDef] a révélé pour quoi [joiner_pronoun] s'enfuit.\n    \n[joiner_nameDef] était en voyage quand [joiner_pronoun] est tombé(e) sur un groupe perdu de [animalKind_labelPlural]. De mauvaise humeur, [joiner_pronoun] a provoqué les [animalKind_labelPlural]. Ils l'attaquèrent à l'improviste et l'ont poursuivi(e) sur une longue distance.\n    \n{BASETEXT}</ThreatReward_MysteryThreat_Joiner.root.nodes.Delay.node.nodes.RandomNode.nodes.Sequence-3.nodes.Set-1.value.slateRef>
   
@@ -162,8 +162,6 @@
   <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>{BASELABEL} : pourchassant [../joiner_nameDef]</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>
   <!-- EN: {BASETEXT}\n                  \nThe [enemyFaction_pawnsPlural] are coming for [../joiner_nameFull]. -->
   <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>{BASETEXT}\n                  \nLes [enemyFaction_pawnsPlural] sont venus pour [../joiner_nameFull].</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>
-  <!-- EN: {BASELABEL} chasing [../joiner_nameDef] -->
-  <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>{BASELABEL} : pourchassant [../joiner_nameDef]</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterLabel.value.slateRef>
   <!-- EN: {BASETEXT}\n                        \nThe [enemyFaction_pawnsPlural] are coming for [../joiner_nameFull]. -->
   <ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>{BASETEXT}\n                        \nLes [enemyFaction_pawnsPlural] sont venus pour [../joiner_nameFull].</ThreatReward_RaidMultiFaction_Joiner.root.nodes.Delay.node.nodes.Delay.node.nodes.Util_Raid.parms.customLetterText.value.slateRef>
#5
In the french translation, female characters in the QuestScripts do not get the correct articles ("une" for X_titleIndef and "la" for X_titleDef)

It looks like the LanguageWorker does not receive the correct gender information in order to process the definite/indefinite article correctly.

Storing all <titleFemale> and <titleShortFemale> from the Backstories.xml into WordInfo/Gender/Female.txt will not solve the problem for unisex titles, such as "ranger", "pilote", "marine" etc. In the example below, it should be   "asker_titleIndef->une gosse de riche" and "asker_titleDef->la gosse de riche"


  asker_pronoun->elle
  asker_possessive->sa
  asker_objective->elle
  asker_factionName-><color=#00BFFFFF>L'Empire De Kocas</color>
  asker_kind->soldate
  asker_title->gosse de riche
  asker_titleIndef->un gosse de riche
  asker_titleDef->le gosse de riche

see more examples -> https://github.com/Ludeon/RimWorld-fr/issues/289
#6
The plant to harvest should be cotton plant in order to get cloth.
Instead, we have in the quest description "You may need to plant and grow the cloth first".


Custom rules:
  questName->décret de récolte pour des plants de [plantToHarvest_label]
  plantToHarvest_label->tissu
  plantToHarvest_labelPlural->tissus
  plantToHarvest_description->Tissu réalisé à partir de fibres organiques.
  plantToHarvest_definite->le tissu
  plantToHarvest_indefinite->un tissu
  plantToHarvest_possessive->son/sa

Constants:
  plantToHarvest: Cloth
#7
Bugs / Wrong name/pronoun used in social text
August 21, 2018, 12:36:02 PM
There is a bug in DefInjected/InteractionDef/Interactions_Romance.xml on handling the [OTHER_nameDef] variable. This results in inconsistent names in the logentry:

In the attached screenshots the game context is that Jar ([INITIATOR_nameDef]) wooed Sephara ([OTHER_nameDef]). From Jar logentry, that is what happened ("Jar a flirté avec Sephara"). From Sephara logentry, Jar wooed Jar ("Jar a flirté avec Jar")...

The last part of the sentence is the same on the two screenshots, where Sephara is correctly identified as the [RECIPIENT_nameDef] ("Sephara rejected/a ignoré etc."). This last part is from another file DefInjected/RulePackDef/Interactions_Romance.xml

It looks like [OTHER_nameDef] should be [RECIPIENT_nameDef] in order to avoid switching names in this case.




[attachment deleted due to age]
#8
Bugs / [0.19.1987] Pawns cannot bite with body part
August 10, 2018, 03:30:56 AM
Test : using debug mode "Flavorful Combat Test" Bite(random)

The generated texts are incorrect (same for ToxicBite). TOOL_label is assigned with "body part" instead of "teeth". See log (too big, had to strip half of it) full of "Getting random element from empty collection." error messages.


[attachment deleted due to age]
#9
In the tag <Combat_WoundIncludes.rulePack.rulesStrings> in the file DefInjected/RulePackDef/RulePacks_Combat.xml, the rulepack lines (suggested by the translation tool for language mods)
<li>destroyed_targets->[RECIPIENT_part_destroyed0_label], [RECIPIENT_part_destroyed1_label], [RECIPIENT_part_destroyed2_label], and [RECIPIENT_part_destroyed3_label]</li>
or
    <li>damaged_targets->[RECIPIENT_part_damaged0_label], [RECIPIENT_part_damaged1_label], [RECIPIENT_part_damaged2_label], and [RECIPIENT_part_damaged3_label]</li>

are triggered even when the parameters recipient_part_{damaged,destroyed}_count==0 (no parts damaged or destroyed).

This generates a bunch of errors in the logfile when testing for example in debug mode with "log Grammar Resolution" activated, and generating texts with "Flavorful Combat Test".

Rules with errors seem to be ignored but isn't there a performance issue here?

Best regards.

File: every where appear rules with [destroyed_targets] or [damaged_targets], without test on recipient_part_{damaged,destroyed}_count>=1, such as
DefInjected/RulePackDef/RulePacks_Combat.xml
DefInjected/RulePackDef/RulePacks_DamageEvent.xml