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 - Elevator

#1
Translations / Gender-separate namer rulepacks
November 02, 2018, 09:30:46 AM
There is only one name generation rulepack ror tribals: "NamerPersonTribal".
It would be much better to have separate rulepacks for male and female colonists, just like how it works with animals: "NamerAnimalGenericFemale", "NamerAnimalGenericMale".
#2
Bugs / [1.0] Unlocalizable "Cause:" string
October 18, 2018, 05:25:48 PM
There is a message in Health card that describes the reason of an injury. "Cause:" sting there is not localizable, because it is hard-coded in the game. See RimWorld.HealthCardUtility.GetTooltip()

[attachment deleted due to age]
#3
Translations / Whitespaces in "gender ?" operands
October 10, 2018, 06:37:26 AM
It would also be great if conditional expressions worked with whitespaces.

Currently
{PAWN_gender ? ваш бывший поселенец : ваша бывшая поселенка}
transfroms to "вашбывшийпоселенец", which doesn't look good.

One of possible solutions could be using quotation marks like this:
{PAWN_gender ? "ваш бывший поселенец" : "ваша бывшая поселенка"}
so that anaylyzer will treat text between qoutation marks as a solid string.

I know that I can write like:
{PAWN_gender ? ваш : ваша} {PAWN_gender ? бывший : бывшая } {PAWN_gender ? поселенец : поселенка}
, but it doesn't seem convenient at all.
#4
Translations / "gender ?" operator in ThoughtDef
October 10, 2018, 06:36:14 AM
It would be great if conditional formatting worked with ThoughtDef objects. In this case translators can write like that:
<DivorcedMe.stages.divorced_me.label>{0_gender ? развёлся : развелась} со мной</DivorcedMe.stages.divorced_me.label>
instead of:
<DivorcedMe.stages.divorced_me.label>развелся(ась) со мной</DivorcedMe.stages.divorced_me.label>
This will provide cleaner thought messages and help to improve translations to different languages.
#5
Bugs / Confusing "Forbid" and "Unforbid" order icons
September 15, 2018, 01:51:57 PM
In "Orders" menu icons for "Forbid" and "Unforbid" are a bit confusing. It is expected that striked out hand should mean "forbid". But in the game it has the opposite meaning. See screenshot.

[attachment deleted due to age]
#6
When the "Psychic drone" event happens, the message "Psychic drone (male)" (or female) occurs.
"Male" and "female" entries are taken from <Male> and <Female> tags from file Keyed\Menus_Main.xml. These entries are used in meanings "man" and "woman" correspondingly in many different contexts.

The problem is that for many languages the usage of same entries in this particular "Psychic drone" message is incorrect and looks very confusing (like "Psychic drone (woman)" in English).

Could you please add specific entries for genders for this particular "Psychic drone" case?

[attachment deleted due to age]
#7
It would be great if it were possible to add new or customize existing links in main menu, that are connected with translation projects.
A player (who wants e.g. to report a translation problem) might be interested in direct contact with translators, so links to the Github project or social media community might be more helpful than a link to the official forum topic.
#8
The issue https://ludeon.com/forums/index.php?topic=37049.0 is not fixed

Way to reproduce:

  • Choose any language except English, for example Russian
  • Go to Mods\Core\Languages\Russian\DefInjected\RulePackDef folder
  • Replace file RulePacks_Namers_WorldFeatures.xml with RulePacks_Namers_WorldFeatures_Cyrillic.xml (see attachments)
  • Start new game and create the world map
Actual result: no geographical names are shown (see first image). Multiple errors are displayed (see second image).
Expected result: geographical names are shown properly (see third image). For similar file RulePacks_Namers_WorldFeatures_Latin.xml (see attachments) everything works fine. No errors displayed. These files differ only in language, they have no references to any other rulepack.

Error text:
Root level exception in Update(): System.IndexOutOfRangeException: Array index is out of range.
  at RimWorld.Planet.WorldFeatureTextMesh_TextMeshPro.WrapAroundPlanetSurface () [0x000c7] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Features\WorldFeatureTextMesh\WorldFeatureTextMesh_TextMeshPro.cs:105
  at RimWorld.Planet.WorldFeatures.UpdateAlpha (RimWorld.Planet.WorldFeatureTextMesh text, RimWorld.Planet.WorldFeature feature) [0x0003f] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Features\WorldFeatures.cs:96
  at RimWorld.Planet.WorldFeatures.UpdateFeatures () [0x000a9] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Features\WorldFeatures.cs:75
  at RimWorld.Planet.World.WorldUpdate () [0x00071] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\World.cs:238
  at Verse.Root_Entry.Update () [0x0003c] in C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Entry.cs:48
Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Root_Entry:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Entry.cs:55)


[attachment deleted due to age]
#9
If the player chooses "Lost tribe" scenario, while choosing a place for the first settlement, the game says "Select landing site".
The problem is that a neolithic tribe initially cannot "land" anywhere as it doesn't have anything to fly on.
The UI should be corrected for this page.
#10
In-game story generators take some words from textfiles. References to these text files are given in Defs\RulePackDefs\RulePacks_Global.xml.
The rules look like this:
  <RulePackDef>
    <defName>GlobalUtility</defName>
    <rulePack>
      <rulesStrings>
      ...
      </rulesStrings>
      <rulesRaw>
        ...
        <li Class="Rule_File">
          <keyword>color</keyword>
          <path>Words/Nouns/Colors</path>
        </li>
        <li Class="Rule_File">
          <keyword>animal</keyword>
          <path>Words/Nouns/Animals</path>
        </li>
        <li Class="Rule_File">
          <keyword>animalgroup</keyword>
          <path>Words/Nouns/AnimalGroups</path>
        </li>
        <li Class="Rule_File">
          <keyword>weapon</keyword>
          <path>Words/Nouns/Weapons</path>
        </li>
        ...
    </rulesRaw>
  </rulePack>
</RulePackDef>


However, some languages require more than one form of such words. E.g. animal words are used in different contexts in several cases (nominative, genitive, accusative) in both plural and singular forms.
Luckily, these text file references are allowed to be overriden in localizations (via DefInjections):


<GlobalUtility.rulePack.rulesRaw.7.keyword>animal</GlobalUtility.rulePack.rulesRaw.7.keyword>
<GlobalUtility.rulePack.rulesRaw.7.path>Words/Nouns/Animals</GlobalUtility.rulePack.rulesRaw.7.path>

<GlobalUtility.rulePack.rulesRaw.8.keyword>animal_accusative</GlobalUtility.rulePack.rulesRaw.8.keyword>
<GlobalUtility.rulePack.rulesRaw.8.path>Words/Nouns/Animals_accusative</GlobalUtility.rulePack.rulesRaw.8.path>

<GlobalUtility.rulePack.rulesRaw.9.keyword>animal_plural</GlobalUtility.rulePack.rulesRaw.9.keyword>
<GlobalUtility.rulePack.rulesRaw.9.path>Words/Nouns/Animals_plural</GlobalUtility.rulePack.rulesRaw.9.path>


We use this technique widely! It gives a lot of flexibility and make generated stories expressive and rich! Without it generated text were poor, incoherent and unreadable.
Unfotunately this technique has a major drawback: the number of overridable keywords is very limited and insufficient. I work on the Russian localization and we really need more file-ref-rules to override.

I believe that's easy to implement by just adding to RulePacks_Global.xml lines like:
 
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
        <li Class="Rule_File">
          <keyword>dummy</keyword>
          <path>Words/Empty_file</path>
        </li>
 

It will be a convenient and easy way to improve quality of translations for all languages! Thank you in advance!
#11
Ideas / Descriptions for diseases
February 27, 2018, 06:40:48 AM
It would be great if some in-game descriptions for diseases were added.
This information may appear, for instance, in the "health" tab as part of the tooltip for a hediff.
The description may cover such points as:

  • does this disease kill patient or not
  • how long it may last
  • how it should be treated
I believe this information will help new players very much.
Thank you in advance.
#12
Translations / Pawns' age is not properly formatted
December 23, 2017, 08:36:09 AM
At the description frame and in the Health tab pawn's age in years is given (see the screenshot below).
The better solution would be to place localized values of "year" or "years" after the number. In this case it will look like:
age 80 (153) years
Furthermore, in some languages the "years" entry is necessary:
мужчина, 80 (153) года

Technically, localized values for "year" and "years" are already given in keyed values in localizations: "Period1Year", "PeriodYears"
The code lloks like that:
int num = (int)(yearsFloat * 3600000f);
num = Mathf.Min(num, 3599999);
int num2;
int num3;
int num4;
float num5;
num.TicksToPeriod(out num2, out num3, out num4, out num5);
if (num2 > 0)
{
if (num2 == 1)
{
return "Period1Year".Translate();
}
return "PeriodYears".Translate(new object[]
{
num2
});
}

So there shouldn't be a problem to implement the suggested solution.

[attachment deleted by admin: too old]
#13
A lot of strings are hard-composed in the game code, which is not convenient for localization to other languages. For example, here is the code for tooltip generation:


StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(this.LabelCap);
string text = string.Empty;
if (this.gender != Gender.None)
{
text = this.gender.GetLabel();
}
if (!this.LabelCap.EqualsIgnoreCase(this.KindLabel))
{
if (text != string.Empty)
{
text += " ";
}
text += this.KindLabel;
}
if (text != string.Empty)
{
stringBuilder.Append(" (" + text + ")");
}
stringBuilder.AppendLine();
if (this.equipment != null && this.equipment.Primary != null)
{
stringBuilder.AppendLine(this.equipment.Primary.LabelCap);
}


The order of words is fixed, and nobody except developers can change it.
If there was a possibility to use template lines from localization, all the entries could be translated accurately.
#14
Bugs / "Male"/"Female" entries are not localizable
December 22, 2017, 06:07:13 PM
"Male"/"female" values are taken from "Keyed/Menus_Main.xml" file. These values are used in many contexts and meanings:

  • as noun
  • as adjective
  • for singular form
  • for plural form
  • for people
  • for animals
The same word ("male" or "female") can be used in such a number of cases only in English language. This makes proper localization almost impossible.
#15
Ideas / Custom word files in DefInjections for rule packs
November 26, 2017, 03:17:46 PM
A lot of languages have different forms of the same word: plural/singular, gender-specific, etc.
RulePackDefs in current implementation only allow to use one single form for each word, which is often not appropriate for different contexts.
For example, in English version NamerFactionPirate rule pack contains lines:

        <li>name->The [badassadjective] [groupname]</li>
        <li>name->The [badassadjective] [badassanimal]s</li>
        <li>name->The [badassadjective] [badassperson]s</li>

These rules generate faction names in plural form just by adding "s" to the end. This trick is only actual for English, but not for many other languages. Moreover, some languages, for example Russian, require using plural form of [badassadjective] (because the adjective is connected to the plural noun). This is really annoying thing that leads to poor quality of translation.

There is a way to get rid of this problem by adding extra <rulesRaw> in Def files:
  <RulePackDef>
    <defName>NamerFactionPirate</defName>
    <rulePack>
      <rulesStrings>
      ...
      </rulesStrings>
      <li Class="Rule_File">
        <keyword>badassanimal</keyword>
        <path>Words/Nouns/Animals_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassadjective</keyword>
        <path>Words/Adjectives/Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassperson</keyword>
        <path>Words/Nouns/People_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassconcept</keyword>
        <path>Words/Nouns/Concepts_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>groupname</keyword>
        <path>Words/Nouns/GroupNames</path>
      </li>
      <li Class="Rule_File">
        <keyword>badasscolor</keyword>
        <path>Words/Nouns/Colors_Badass</path>
      </li>
      <!--EXTRA FILES-->
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
    </rulesRaw>
  </rulePack>
</RulePackDef>


This allows translators to add custom files with custom keywords, which could be used in DefInjections for rulesStrings:

<NamerFactionPirate.rulePack.rulesRaw.7.keyword>badassadjective_plural</NamerFactionPirate.rulePack.rulesRaw.7.keyword>
<NamerFactionPirate.rulePack.rulesRaw.7.path>Words/Adjectives/Badass_plural</NamerFactionPirate.rulePack.rulesRaw.7.path>
<NamerFactionPirate.rulePack.rulesRaw.8.keyword>badassperson_plural</NamerFactionPirate.rulePack.rulesRaw.8.keyword>
<NamerFactionPirate.rulePack.rulesRaw.8.path>Words/Nouns/People_Badass_plural</NamerFactionPirate.rulePack.rulesRaw.8.path>


If you add extra rulesRaws to RulePackDef files it will be a convenient and easy way to improve quality of translations for all languages!
#16
Way to reproduce:

  • Choose any language except English, for example Russian
  • Go to Mods\Core\Languages\Russian\DefInjected\RulePackDef folder
  • Replace or add file RulePacks_NameMakers_WorldFeatures.xml with RulePacks_NameMakers_WorldFeatures_Cyrillic.xml (see attachments)
  • Start new game and create the world map
Result: no geographical names are shown (see first image in attachments).

If you replace this file with RulePacks_NameMakers_WorldFeatures_Latin.xml (from attachments) and restart the game, all names will be shown properly. These files differ only in language, they have no references to any external rulepack.

[attachment deleted by admin: too old]
#17
Translations / Custom word files in rule packs
August 30, 2017, 06:28:41 PM
A lot of languages have different forms of the same word: plural/singular, gender-specific, etc.
RulePackDefs in current implementation only allow to use one single form for each word, which is often not appropriate for different contexts.
For example, in English version NamerFactionPirate rule pack contains lines:

        <li>name->The [badassadjective] [groupname]</li>
        <li>name->The [badassadjective] [badassanimal]s</li>
        <li>name->The [badassadjective] [badassperson]s</li>

These rules generate faction names in plural form just by adding "s" to the end. This trick is only actual for English, but not for many other languages. Moreover, some languages, for example Russian, require using plural form of [badassadjective] (because the adjective is connected to the plural noun). This is really annoying thing that leads to poor quality of translation.

There is a way to get rid of this problem by adding extra <rulesRaw> in Def files:
  <RulePackDef>
    <defName>NamerFactionPirate</defName>
    <rulePack>
      <rulesStrings>
      ...
      </rulesStrings>
      <li Class="Rule_File">
        <keyword>badassanimal</keyword>
        <path>Words/Nouns/Animals_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassadjective</keyword>
        <path>Words/Adjectives/Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassperson</keyword>
        <path>Words/Nouns/People_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>badassconcept</keyword>
        <path>Words/Nouns/Concepts_Badass</path>
      </li>
      <li Class="Rule_File">
        <keyword>groupname</keyword>
        <path>Words/Nouns/GroupNames</path>
      </li>
      <li Class="Rule_File">
        <keyword>badasscolor</keyword>
        <path>Words/Nouns/Colors_Badass</path>
      </li>
      <!--EXTRA FILES-->
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
      <li Class="Rule_File">
        <keyword>extra</keyword>
        <path>Some_Empty_File</path>
      </li>
    </rulesRaw>
  </rulePack>
</RulePackDef>


This allows translators to add custom files with custom keywords, which could be used in rulesStrings:

<NamerFactionPirate.rulePack.rulesRaw.7.keyword>badassadjective_plural</NamerFactionPirate.rulePack.rulesRaw.7.keyword>
<NamerFactionPirate.rulePack.rulesRaw.7.path>Words/Adjectives/Badass_plural</NamerFactionPirate.rulePack.rulesRaw.7.path>
<NamerFactionPirate.rulePack.rulesRaw.8.keyword>badassperson_plural</NamerFactionPirate.rulePack.rulesRaw.8.keyword>
<NamerFactionPirate.rulePack.rulesRaw.8.path>Words/Nouns/People_Badass_plural</NamerFactionPirate.rulePack.rulesRaw.8.path>


Please add extra rulesRaws to RulePackDef files! We really want to make translation better and easier for players to read!
#18
Translations / Backstories' translation guideline?
March 09, 2017, 06:17:58 PM
During translatiion of backstories we found different types of them:

  • Name and gender neutral. These ones contain "NAME", "HE", "HIS" entries. The game replaces these entries by character name and gender specific pronouns.
  • Gender specific. These ones contain only "NAME" entries. Hardcoded gender pronouns ("his", "him" ) are scattered in the description. Stories of this type: FallenProdigy22, MadScientist28, FarmKid40, CivilEngineer41 and many others.
  • Name and gender specific. These ones are full-hardcoded. No "NAME" or "HE" keywords. Stories with the same name seem follow in pairs: (FarmerBoy63, ArmyCook51),  (UrbworldCriminal64, UrbworldPolitican16), (OptimisticChild43, GraphicDesigner99) and others.

According to the message of ZorbaTHut there are many backstories that are linked to the specific backer-created character:
https://ludeon.com/forums/index.php?topic=30936.msg317305#msg317305

How these types of backstories should be translated?
Will types 2 and 3 be ever made generic in future? Or they are connected to a specific gender or name forever?

Will any guidelines be provided?
#19
MadScientist28 backstory description is not gender neutral:
"Continuing his research with nothing left to lose, he made minions to carry out the tasks that bored him."
"HIS", "HE", "HIM" should be used there instead of "his", "he" and "him".
#20
In the resource files there are some template strings that have argument on the first place:

  <SomeonesRoom>{0}'s {1}</SomeonesRoom>
  <DiseaseGrowthModeChanged_Growing>{0}'s {1} is now growing.</DiseaseGrowthModeChanged_Growing>


As we know, each sentense should start with a capital letter. So, if the first argument is a name
"Ray's bedroom",
the phrase is correct for English language. In contrast, some other languages use the different word order. For example, the same phrase in Rissian is:
"cпальня Ray" (analog in English: "bedroom for Ray")
In the game this phrase starts with lower-case letter which is not correct (see the attached screenshot).

The other example:
"Ray's carcinoma is now growing"
It's ok, but Russian language requires a different word order:
"карцинома Ray прогрессирует"
The message starts with non-capital letter which is wrong.

Someone may say that translators may find different workarounds for problems like this. But I don't think that distorting natural phrases is a good approach to the translation. It significantly spoils the feeling from the game.

We need your help! Please make such kind of messages force-capitalized.

[attachment deleted by admin due to age]