# Delores: Italian translation

**URL:** <https://forums.thimbleweedpark.com/t/delores-italian-translation/4303>\
**Category:** Delores Engine\
**Created:** [May 27, 2020, 1:57pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303 "2020-05-27T13:57:19Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 27, 2020, 1:57pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/1 "2020-05-27T13:57:19Z")

</div>

Yesterday I played around a bit with the engine and decided to start the Italian translation.

But since I’m a programmer, I didn’t want to just translate the .tsv file and plug it in, so I also tried to make the language selection extensible.

As shown in [Just released adventure games](https://forums.thimbleweedpark.com/t/just-released-adventure-games/1428/684) I could add a new “slider” to the options screen that changes the language value.

 ![image](https://canada1.discourse-cdn.com/flex030/uploads/thimbleweedpark/original/2X/1/1789ad1481c5ef1b4f1620ebf2ac54d7a52fe9cd.png)

First thing I did was creating a setting object in Settings.dinky under player options, which defaults to “en” if not present  
`
SETTING(language) <- getSetting(“language”,“en”)
`

And enabling save in _onRefreshPrefs()_ so you don’t have to change it every time you start the game 😃  
`
setUserPrefs(“language”,SETTING(language))
`

And in Boot.dinky, instead of just uncommenting `useTranslation(“en”)`, I rewrote it as `useTranslation(SETTING(language))`.

The selection was a bit trickier. I used the same sliders Options.dinky has for volume and text speed, hard-binding integers to the languages I had available. I’d like to make it dynamic for more languages, but for now it’s fine. The slider has an integer value where 0 is assigned to a string “en” and 1 to “it”, and circular value reset (if v \< 0 goes back to 1).  
``

`
```
line += 1
makeSlider(point(0, linePos(line)), "", 185, 1.0, 0.0, @(inc_dec){
 local s = SETTING(language)
 local v = 0
 if (s == "en" ) v = 0 else
 if (s == "it" ) v = 1 

 if (inc_dec < 0) v -= 1
 if (inc_dec > 0) v += 1

 if (v < 0) v = 1
 if (v > 1) v = 0

 local p = "en"
 if (v == 0) { p = "en" }
 if (v == 1) { p = "it" }

 SETTING(language) <- p
 useTranslation(p);
 onRefreshPrefs()

 local langname = TR(TEXT(10000,"English"))
 return format(TR(TEXT(12355,"Language: %s")),langname)
})

```
`

Then language turned out to be **Engish** (sic), because there’s a typo in the translation file.

While doing so I also noticed that the text speeds are hardcoded (i.e., untranslatable).  
So I added new text entries to the .tsv values and encapsulated them with TR() calls.

`
`

`if (v == 7) { t = TR(TEXT(12356,“slowest”)); p = 2.0 }
if (v == 6) { t = TR(TEXT(12357,“slower”)); p = 1.5 }
if (v == 5) { t = TR(TEXT(12358,“slow”)); p = 1.25 }
if (v == 4) { t = TR(TEXT(12359,“normal”)); p = 1.0 }
if (v == 3) { t = TR(TEXT(12360,“fast”)); p = 0.75 }
if (v == 2) { t = TR(TEXT(12361,“faster”)); p = 0.5 }
if (v == 1) { t = TR(TEXT(12362,“fastest”)); p = 0.25 }
`

The only thing I didn’t manage was changing the whole UI on the fly when changing language. But if you close the options and turn them on again, or change the text speed, you’ll get that sweet sweet Italian text you’re craving for.

I could also change the spritesheet for the title cards room, creating a new texture for the Italian title text and show it dynamically if the current language is “it”.

 ![image](https://canada1.discourse-cdn.com/flex030/uploads/thimbleweedpark/original/2X/e/e5660d483aeab953faeec10327910958f543b347.png)

I created a new room object, but now that I think of it, I could have extended the pre-existing object adding a new state. I’ll probably change that later. I want to do the same work for all image texts.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 27, 2020, 2:53pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/2 "2020-05-27T14:53:48Z")

</div>

![image](https://canada1.discourse-cdn.com/flex030/uploads/thimbleweedpark/original/2X/f/fda3e7c476f8d55464114c14b78a7121608eb707.jpeg)

A lot of time to change the text on the start page.

And then I noticed I didn’t save the right part. So now I have to change it again 😛 whoa

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 27, 2020, 7:56pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/3 "2020-05-27T19:56:29Z")

</div>

![image](https://canada1.discourse-cdn.com/flex030/uploads/thimbleweedpark/original/2X/b/b34570bb124a40af84be4d99cf8d3e6038510a2f.png)

The Quickie Pal already had the Italian images, so it was easy here. I also found a more elegant way of changing the language dependent objects.

I manually edited the .wimpy files (I find it quicker than understanding Wimpy for such small tasks) to add the frames and added a \_en and \_it suffix to the states:  
``

`
```
{
    name: "on_en"
    frames: [
        "front_signs_neon_text_en"
    ]
}
{
    name: "on_it"
    frames: [
        "front_signs_neon_text_it"
    ]
}

```
`

Then, in the code where it calls `objectState(openSign, “on”)` I changed to `objectState(openSign, “on_”+SETTING(language))`.

But that creates a problem. If I change language while on the room, the flashing sign changes to the current language (which is cool) but the background, unlit sign stays the same. In TWP, the graphics don’t change on the fly, so now I save the language at room enter with `local onState = “on_”+SETTING(language)` and then change the state to _onState_ in the script.

I think this is the last room with translated images. The newspapers in the Nickel News have actual text.

A tip for those who want to translate to other languages: in the debugger, call _openDebugOptions()_ and check the “translation markers”. It adds an asterisk in front of the text that can be translated.

 ![image](https://canada1.discourse-cdn.com/flex030/uploads/thimbleweedpark/original/2X/7/72fc1d47ba300bebc9de4801dae85829ed901a5c.png)

That’s helpful, especially because if you see text that has no asterisk, it means that you have to wrap it in TR() and create a new text entry if you want to translate it.

---

<div class="post-metadata">

**Author:** ![RonGilbert](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/rongilbert/32/7_2.png) [@RonGilbert](https://forums.thimbleweedpark.com/u/RonGilbert)\
**Post date:** [May 27, 2020, 8:03pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/4 "2020-05-27T20:03:11Z")

</div>

The TWP engine would automatically see images with \_en, \_de, etc and use them as the languages changed. All the code is still in there, but I didn’t expose a way to set the language at the system level.

If you changed language in TWP, none of the art would change until you left the room. Also, the language change would not take effect until you left the Options. This is so if someone is skipping through languages, the option text don’t immediately change, leaving them potentially lost with everything in Chinese.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 7:02am UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/5 "2020-05-28T07:02:14Z")

</div>

@ZakPhoenixMcKracken will be helping me in translating the lines. I’ll focus on adapting the script where needed (e.g. we need to add diacritics in the speech font), but if enough people collaborate to the file (@ema? @gffp? @seguso?) we’ll have a full Italian version very soon 😃

---

<div class="post-metadata">

**Author:** ![seguso](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/seguso/32/1232_2.png) [@seguso](https://forums.thimbleweedpark.com/u/seguso)\
**Post date:** [May 28, 2020, 7:55am UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/6 "2020-05-28T07:55:46Z")

</div>

If you explain to me what to do like I’m a monkey, I’ll see what I can do…

---

<div class="post-metadata">

**Author:** ![Someone](https://avatars.discourse-cdn.com/v4/letter/s/b77776/32.png) [@Someone](https://forums.thimbleweedpark.com/u/Someone)\
**Post date:** [May 28, 2020, 8:25am UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/7 "2020-05-28T08:25:55Z")

</div>

> [@seguso](#):
>
> what to do like I’m a monkey

Just stop playing piano, freeze and wait …

btw: Great work @Guga and @ZakPhoenixMcKracken! 😃

---

<div class="post-metadata">

**Author:** ![ZakPhoenixMcKracken](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/zakphoenixmckracken/32/41_2.png) [@ZakPhoenixMcKracken](https://forums.thimbleweedpark.com/u/ZakPhoenixMcKracken)\
**Post date:** [May 28, 2020, 11:06am UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/8 "2020-05-28T11:06:47Z")

</div>

In Delores there are 1/10 of the Thimbleweed Park lines.  
I’m confident we’ll translate the text lines soon, furthermore @Guga will replace the text in the graphics.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 12:05pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/9 "2020-05-28T12:05:23Z")

</div>

If I have time I’ll do an Italian version of other signs, like Willie’s shop.

---

<div class="post-metadata">

**Author:** ![Gffp](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/gffp/32/12183_2.png) [@Gffp](https://forums.thimbleweedpark.com/u/Gffp)\
**Post date:** [May 28, 2020, 2:13pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/10 "2020-05-28T14:13:25Z")

</div>

As soon as I can download the game from GOG, I’ll try to find a way to solve the compatibility issues (maybe on a different machine) and play the game. Then I will be able to help you out with the translation. Otherwise I could misinterpret some dialogue lines 🙂

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 2:26pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/11 "2020-05-28T14:26:30Z")

</div>

We’re already halfway there (woo ooooh livin’ on a prayer 🎵). We’ll probably finish by this weekend if we keep on like that 😛 so take your time.

---

<div class="post-metadata">

**Author:** ![RonGilbert](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/rongilbert/32/7_2.png) [@RonGilbert](https://forums.thimbleweedpark.com/u/RonGilbert)\
**Post date:** [May 28, 2020, 2:40pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/12 "2020-05-28T14:40:11Z")

</div>

If you’re going to translate the graphics and want them to make it into a shipping version of the game you MUST put them into the .psd file and they MUST be named correctly. I am going to release a new build of the engine to properly deals with graphics. For the shipping game all the .png files are automatically exported from the .psd file, so if you have loose .png they will get deleted. More info when I post the new engine build.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 3:43pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/13 "2020-05-28T15:43:08Z")

</div>

> [@RonGilbert](#):
>
> More info when I post the new engine build.

Good, thanks. By now we’ll just work with extra .png files, then we can clean it up for a shippable version once we’re done.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 7:33pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/14 "2020-05-28T19:33:43Z")

</div>

@RonGilbert I think I found something wrong.

File Vista.Dinky, row 114.  
`sayLine(SAY(11691,“It’s nice to see the factory ramping up again to make PillowBears™.”, ONCE(SAY(0,“Looks like Dad is working late again.”))))`

The parentheses are wrong. There should be a closing parenthesis after PillowBears. Instead, ONCE blah blah gets passed as a parameter to the first SAY.

In fact, not only “Looks like Dad” is never said in the DeloresDev (while it is in the Steam version), but the .tsv files have this entry:

`11691 It’s nice to see the factory ramping up again to make PillowBears™.", ONCE(SAY(0,"Looks like Dad is working late again.`

And there’s no text entry/ID for “Looks like Dad” etc etc.

Shall I fix it and send you a pull request, or given that it should create a new text entry and so on you’d rather not have it added by hand? I don’t know how the text stripping works on your toolchain.

---

<div class="post-metadata">

**Author:** ![RonGilbert](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/rongilbert/32/7_2.png) [@RonGilbert](https://forums.thimbleweedpark.com/u/RonGilbert)\
**Post date:** [May 28, 2020, 7:43pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/15 "2020-05-28T19:43:54Z")

</div>

That’s a text wrapping issue. I need to fix it by hand so a new text id is created. Thanks.

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 7:47pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/16 "2020-05-28T19:47:31Z")

</div>

If the ID is going to be 1+the last number of the .tsv, then I can send you my pull, I tested right now and it works

---

<div class="post-metadata">

**Author:** ![RonGilbert](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/rongilbert/32/7_2.png) [@RonGilbert](https://forums.thimbleweedpark.com/u/RonGilbert)\
**Post date:** [May 28, 2020, 7:49pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/17 "2020-05-28T19:49:09Z")

</div>

Already fixed. 🙂

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 7:51pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/18 "2020-05-28T19:51:02Z")

</div>

Aww snap, I wanted to leave my mark on the repo 😛 ok, I can keep on translating then.

---

<div class="post-metadata">

**Author:** ![RonGilbert](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/rongilbert/32/7_2.png) [@RonGilbert](https://forums.thimbleweedpark.com/u/RonGilbert)\
**Post date:** [May 28, 2020, 7:52pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/19 "2020-05-28T19:52:04Z")

</div>

I have no idea how to deal with pull requests, so I probably would have screwed up anyway. ☹

---

<div class="post-metadata">

**Author:** ![Guga](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.thimbleweedpark.com/guga/32/14476_2.png) [@Guga](https://forums.thimbleweedpark.com/u/Guga)\
**Post date:** [May 28, 2020, 7:53pm UTC](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303/20 "2020-05-28T19:53:46Z")

</div>

Well, I was late in creating one because I was googling “difference between fork clone and branch” 😆 I use git for myself but basically never used it in collaborative projects, so… well, I totally understand.

[Next page](https://forums.thimbleweedpark.com/t/delores-italian-translation/4303.md?page=2)
