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 - Ragnar-F

#1
Bugs / Translation File Cleaner: No EOF Newline
August 03, 2020, 05:20:53 AM
It would be useful if the translation file cleaner would add a newline at the end of each file it generates to comply with GitHub's "policy" that an EOF newline is recommended and sometimes enforced.

Each time a user edits a file directly through GitHub's internal editor, or if their editor is set up to do so, a newline is automatically appended at the end of that file. When running the translation file cleaner afterwards, this newline will disappear. This causes unnecessary noise and bloat in the commit history.
#2
Bugs / [1.1.2638 rev924] (*Name)XXX(/Name) issues
May 19, 2020, 09:04:22 AM
The new inline syntax "(*Name)" and "(/Name)" are removed from the Keyed translations each time the translation cleanup tool is launched.

Affected files:
- Core/Keyed/Incidents.xml (EscapeShipFound, EscapeShipFoundPeaceful, EscapeShipLost)
- Core/Keyed/Letters.xml (LetterHibernateComplete)
- Core/Keyed/Misc_Gameplay.xml (HibernateWarning, HibernateWarningPacifist)
#3
It would be nice if "Terrain building in progress." is directly translatable. Currently, it is only indirectly translatable via ImpliedDefs.xml, unnecessarily wasting system resources as it needs to be translated for each floor type. Edit: Does not need to be translated. The string will be displayed in ImpliedDefs.xml, but in the end the game will display the normal description of each floor when under construction.

You can find this string in ThingDefGenerator_Buildings.cs. I would suggest either handling it the same way as with meat descriptions which can be found in Data\Core\Languages\English\Keyed\Misc.xml under MeatDesc, or just remove the string since it doesn't really provide any value.
#4
In the text of the Hospitality_Joiners quest, there is a blank line missing between the reward list and the paragraph that says that you can control the person like your own colonist. This could be easily fixed by replacing all occurrences of "[commonDescEnding] [" with "[commonDescEnding]\n\n[" in Data\Royalty\Defs\QuestScriptDefs\Hospitality\Script_Hospitality_Root_Joiners.xml.
#5
I'm not sure if this is on purpose, but the "standardname" placeholder in Data\Core\Defs\RulePackDefs\RulePacks_Namers_WorldFeatures.xml currently serves no purpose, which leads to some area names on the planet being generated without adjectives or other extra words. Theoretically, this could be easily fixed by replacing "standardname" with "r_name".
#6
Only occurs in non-English clients (tested with German and French). This issue refers to names generated via RulePackDef (for example <li>WordImperial(p=4)->[SylB][SylB]</li> in Core\DefInjected\RulePackDef\RulePacks_Namers_People.xml).

For example, instead of 'Galo Elanekan', the name 'Galo elanekan' is generated for a pawn (the debug inspector shows <last>elanekan</last>).
#7
I guess that the following element in Royalty\DefInjected\QuestScriptDef\Script_Hospitality_Worker.xml does not want to be translated:
<!-- EN: $(floor($shuttleDelayTicks / $raidIntervalTicks))  -->
<Hospitality_Util_Worker.root.nodes.Equal-0.node.nodes.Sequence-1.nodes.Set-2.value.slateRef>TODO</Hospitality_Util_Worker.root.nodes.Equal-0.node.nodes.Sequence-1.nodes.Set-2.value.slateRef>
#8
If I want to generate Hospitality_Prisoners quests via debug actions menu, I receive the following error for each difficulty level (35 ... 4000):

Failed to find RimWorld.QuestScriptDef named Hospitality_Util_DecideRandomLodgerCountHuman. There are 65 defs of this type loaded.
Verse.Log:Error(String, Boolean)
Verse.DefDatabase`1:GetNamed(String, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.GenGeneric:InvokeStaticMethodOnGenericType(Type, Type, String, Object[])
Verse.GenDefDatabase:GetDef(Type, String, Boolean)
Verse.ConvertHelper:Convert(Object, Type, Object)
Verse.ConvertHelper:Convert(Object)
RimWorld.QuestGen.SlateRef`1:TryGetConvertedValue(Slate, QuestScriptDef&)
RimWorld.QuestGen.SlateRef`1:TryGetValue(Slate, QuestScriptDef&)
RimWorld.QuestGen.SlateRef`1:GetValue(Slate)
RimWorld.QuestGen.QuestNode_SubScript:TestRunInt(Slate)
RimWorld.QuestGen.QuestNode:TestRun(Slate)
RimWorld.QuestGen.QuestNode_Sequence:TestRunInt(Slate)
RimWorld.QuestGen.QuestNode:TestRun(Slate)
RimWorld.QuestScriptDef:CanRun(Slate)
Verse.<>c__DisplayClass3_0:<GenerateQuests>b__0(QuestScriptDef)
Verse.<>c__DisplayClass3_3:<GenerateQuests>b__5()
Verse.Dialog_DebugOptionLister:DebugAction(String, Action)
Verse.Dialog_DebugOptionListLister:DoListingItems()
Verse.Dialog_OptionLister:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Exception test running QuestNode_SubScript: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.QuestGen.QuestNode_SubScript.TestRunInt (RimWorld.QuestGen.Slate slate) [0x00043] in <05d1130b28cf417b9e274c18484a9ec8>:0
  at RimWorld.QuestGen.QuestNode.TestRun (RimWorld.QuestGen.Slate slate) [0x0001b] in <05d1130b28cf417b9e274c18484a9ec8>:0

Slate vars:
allowViolentQuests=True
askerIsNull=true
challengeRating=1
lodgersArePrisoners=true
map=Map-0-PlayerHome
points=35
pointsFactor=1
Verse.Log:Error(String, Boolean)
RimWorld.QuestGen.QuestNode:TestRun(Slate)
RimWorld.QuestGen.QuestNode_Sequence:TestRunInt(Slate)
RimWorld.QuestGen.QuestNode:TestRun(Slate)
RimWorld.QuestScriptDef:CanRun(Slate)
Verse.<>c__DisplayClass3_0:<GenerateQuests>b__0(QuestScriptDef)
Verse.<>c__DisplayClass3_3:<GenerateQuests>b__5()
Verse.Dialog_DebugOptionLister:DebugAction(String, Action)
Verse.Dialog_DebugOptionListLister:DoListingItems()
Verse.Dialog_OptionLister:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)
#9
Bugs / [1.1.2597 rev776] pawnsLabelDef unresolvable
April 08, 2020, 05:09:48 PM
When receiving the quest Endgame_RoyalAscent, the following error message appears (shortened to the essential):

1    root → The shuttle sent to drop off [pawnsLabelDef] has been destroyed. You have failed the quest '[resolvedQuestName]'.\n\nYour relations with [asker_faction_name] have changed by [goodwillChangeOnShuttleDestroyed].
       pawnsLabelDef → UNRESOLVABLE
2      resolvedQuestName → Royal Victory
2      asker_faction_name → <color=#00BFFFFF>Das Gefallene Land</color>
2      goodwillChangeOnShuttleDestroyed → -50
     root → UNRESOLVABLE


Similar to [1.1.2586 rev1244] lodgersLabelSingOrPluralDef unresolvable
#10
No big deal, but I've been noticing it for a while ;)

The button appears, for example, when you need to confirm the loss of unsaved progress upon quitting the game session or when using the translation cleanup tool.
#11
For example, <Biocoded>{0_gender ? biokodierter : biokodierte : biokodiertes} {0}</Biocoded>.

It is always the standard variant (male -> biokodierter). I assume that when comparing the words with the gender lists in Core/WordInfo/Gender/, the full name of the item is always used, e.g. 'Uranium gladius (normal 98%)', which is not available in the lists as such.

It would be nice if '0_gender' or any other placeholder would only refer to the name without suffix or prefix (e.g. Gladius).
#12
I would recommend to check all instances with '.Translate().ToLower()' in the code. This will cause words whose specific letters are intentionally or linguistically uppercase to always be lowercase. For example 'Reduzierte Arbeitsgeschwindigkeit: Im freien' (Work speed penalty: Outdoors), where freien needs to be Freien.

One way of doing this would be to manually uncapitalize all affected texts, remove .ToLower() and use .CapitalizeFirst() where necessary.

As far as I know, the affected texts are: On, Off, Outdoors, BadTemperature, NoPower, Infinite, Day, UntendedInjury, NoneCapable, Quality, DisabledLower, ContentNotInstalled
#13
When receiving the quest Endgame_RoyalAscent, the following error message appears (shortened to the essential):

1    root → The shuttle sent to drop off [lodgersLabelSingOrPluralDef] has been destroyed. [failLetterEndingCommon]
       lodgersLabelSingOrPluralDef → UNRESOLVABLE
2      failLetterEndingCommon → You have failed the quest '[resolvedQuestName]'.\n\nYour relations with [asker_faction_name] have decreased by [goodwillPenalty].
3        resolvedQuestName → Royal Ascendance
3        asker_faction_name → <color=#00BFFFFF>Das Gefallene Land</color>
3        goodwillPenalty → 5
     root → UNRESOLVABLE

#14
The following element in Royalty\DefInjected\QuestScriptDef\Script_EndGame_RoyalAscent.xml:


  • <EndGame_RoyalAscent.root.nodes.askerDestroyed.node.nodes.Letter.text.slateRef>{SUBJECT_definite}, für {SUBJECT_gender ? dessen : deren} Schutz du eigentlich zuständig warst, ist gestorben. [failLetterEndingCommon]</EndGame_RoyalAscent.root.nodes.askerDestroyed.node.nodes.Letter.text.slateRef>

Generates the following text:


  • Mozis, für Dessen Schutz du eigentlich zuständig warst, ist gestorben. Die Quest 'Königlicher Gast' ist fehlgeschlagen.

    Deine Beziehung zur Fraktion 'Das Gefallene Land' hat sich um 5 Rufpunkte verschlechtert.

As you can see, the first letter is upper case, but it should be lower case. This issue also exists for other similar elements such as Hospitality_Util_Worker.root.nodes.lodgersDestroyed.node.nodes.Letter.text.slateRef.
#15

  • Start game
  • Switch to German (or another up-to-date language)
  • Load game / Create new colony
  • Generate quests x10 -> Hospitality_Animals
  • 3 of 10 quests throwing errors, showing 'Could Not Resolve Any Root: Quest Description'; see attachment

This seems unrelated to the translation itself, as other languages have the same issue. Other quest types are also affected, not just Hospitality_Animals. The number of erroneous quests varies for every 10 quests. May be related to https://ludeon.com/forums/index.php?topic=51185.0
#16
This refers to the quest 'ThreatReward_MechPods_MiscReward', more specifically to its quest description.

When RimWorld pluralizes the threat list there, it uses labelPlural, if available, only for PawnDefs like centipede or lancer, because labelPlural only works with PawnDefs. It would be nice if we could also specify labelPlural for ThingDefs like auto charge turret or auto mortar to ensure correct translation.

For example, if I add the element '<Turret_AutoChargeBlaster.labelPlural>Auto-Energie-Turm</Turret_AutoChargeBlaster.labelPlural>' into Buildings_Mech_Turrets.xml I get the error message Field labelPlural does not exist in type Verse.ThingDef via TranslationReport.txt.

The German LanguageWorker offers only rudimentary functionality in terms of automatic pluralization, and will probably remain so, since pluralization in the German language is very variable and therefore complicated to code.
#17
Currently, as far as I know, there are only two ways to separate a long label consisting of several words: space and \n.

In English, a label consisting of several words is separated by spaces, whereas in German (or possibly other languages) the words are usually directly concatenated. For example "tool cabinet" vs. "Werkzeugschrank". While the English label fits nicely in a Misc tab's box, the German label is erroneously separated between "Werkzeugschr" and "ank". The correct separation would be "Werkzeug" and "schrank". Currently, our translators are trying to separate such words with spaces where reasonable. This may be sufficient for such boxes, but in other places, such as headlines in item descriptions, these labels simply look crappy and wrong.

\n is out anyway, since it would make headlines mentioned above multiline.

It would be nice if there could be other ways to separate labels. For example there are the following:

  • Soft hyphen (&shy;). In general, it would make sense to allow all HTML entities if possible; some seem to work already, like &lt;, others produce an XML error. See Wikipedia page.
  • Zero-width space. See Wikipedia page.
  • <wbr>. See Wikipedia page.