Ludeon Forums

Ludeon Forums

  • June 27, 2019, 04:41:00 AM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

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.

Topics - Elevator

Pages: [1] 2
1
Translations / Gender-separate namer rulepacks
« on: 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
« on: 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()

3
Translations / Whitespaces in "gender ?" operands
« on: October 10, 2018, 06:37:26 AM »
It would also be great if conditional expressions worked with whitespaces.

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

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

I know that I can write like:
Code: [Select]
{PAWN_gender ? ваш : ваша} {PAWN_gender ? бывший : бывшая } {PAWN_gender ? поселенец : поселенка}, but it doesn't seem convenient at all.

4
Translations / "gender ?" operator in ThoughtDef
« on: 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:
Code: [Select]
<DivorcedMe.stages.divorced_me.label>{0_gender ? развёлся : развелась} со мной</DivorcedMe.stages.divorced_me.label>instead of:
Code: [Select]
<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
« on: 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.

6
Translations / Bad format of message "Psychic drone (<gender>)"
« on: August 02, 2018, 05:13:36 PM »
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?

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:
Code: [Select]
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)

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
Suggestions / Add more text file references to Global RulePack
« on: April 28, 2018, 05:43:07 PM »
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:
Code: [Select]
  <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):

Code: [Select]
<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:
Code: [Select]
 
        <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
Suggestions / Descriptions for diseases
« on: 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
« on: 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:
Code: [Select]
age 80 (153) yearsFurthermore, in some languages the "years" entry is necessary:
Code: [Select]
мужчина, 80 (153) года
Technically, localized values for "year" and "years" are already given in keyed values in localizations: "Period1Year", "PeriodYears"
The code lloks like that:
Code: [Select]
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
Bugs / Tooltip and main description template strings are not localizable
« on: December 22, 2017, 06:26:57 PM »
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:

Code: [Select]
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
« on: 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
Suggestions / Custom word files in DefInjections for rule packs
« on: 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:

Code: [Select]
        <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:
Code: [Select]
  <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:

Code: [Select]
<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!

Pages: [1] 2