Dev:SDK/Guide to translating

From Slavemaker Wiki
Jump to: navigation, search
<<first <prev SDK/Guide to translating next> last>>

SlaveMaker 3 Translating Guide

The game uses the xml files for some (eventually all) text in the game. The files are named for their language (eg French.xml)

The default is English.xml

When the game starts it first loads English.xml and then the language selected in Options. This means strings can be ommitted from a language and in that case you will just get the english words.

Each xml file must be saved using either UTF-8 or UTF-16 character encoding

Note Word Pad in Windows can save as Unicode (UTF-16). Most other editors can also. Notepad cannot.


The files are organised by categories

Buttons - the labels of button in the game
Statistics - the statistics used by slaves and slave makers
Introduction - text shown during the introduction screens
Planning - text shown on the planning screens. There is a sub-section
Acts - the name of all acts/chores/schools. Note gender variants and

special training variants

Shopping - when visiting shops
EndGame - shown in the end game screens
Equipment - items in the game
Places - places you walk to
Hints - hints and tutorial text
SlaveMaker - text specific to slave maker screens
Talents - text for Slave Make talents
Diary - entries in the diary or on the screen
Faith - religion text
Options - options screens
Rules - rules screens
Morning - morning screens
Contest - text during contests
Other - general text of a miscellaneous type
Events - event text
Assistants - Messages and spoken text by your assistant

General Translating[edit]

To translate replace the contents of the tags, DO NOT rename the tags


<Charisma>Charisma :</Charisma>
<Sensibility>Sensibility :</Sensibility>

In French

<Charisma>Charisme :</Charisma>
<Sensibility>Sensibilité :</Sensibility>

Note you will see line breaks in some strings. When shown in the game these will generally be seen as a line break and a blank line. If you only want a line break you will have to embed a <br> tag (see below)

Some have punctuation like : at the end. Please try to retain if valid in your language.

There are some comments for some strings. There is no need to translate the comments, they are given as guides for translation eg

                <!-- The following has Master or your Slave Maker's name preceeding


Master, while Ranma is training under my supervision, what would you like
to do?
                <SlaveMakerTraining>, while #slaveis training under my supervision, what
would you like to do?</SlaveMakerTraining>


There are some special attributes that can be used

fontsize - changes the point size of the font used for the text. It is a

relative value, so -2 is 2 points smaller. Use this if your text overflows the available area

<Complete fontsize='-2'>Fin du Dressage</Complete>
spacing - changes the spacing between characters the font used for the

text. use values -1, -2 or -0.5. This compresses the text a little but keeps the point size. Note some fields already have a spacing set (most are 0 or -1)

Note: generally use fontsize, just use spacing for stats and similar

where you have many similar text fields and it would look odd to change the font size

Other notes[edit]


<CombatSkillLevels>you have a bonus of

The text is html encoded and is some places you can use tags like <b> etc. These tags must be encoded using ampersand syntax required by xml and html.


&lt; is a <
&gt; is a >
&amp; is an &



<FirstContest>Today is the first of a series of competitions #slaveheshe
can enter, competing against other slaves and other people.
These contests occur every 8 days from the first day of the
<LaterContests>#slave can compete in a contest again.</LaterContests>

There are macros for inserting special text into the string

  • #slave - will be replaced by the slaves name,
eg Ranma
  • #assistant - will be replaced by your servants name,
eg Shampoo
  • #slavesee - slavename sees or slavename see, depending

on if they are one person or twins

Ranma sees
Mara & Nara see
  • #slaveheshe - he/she/they based on gender of your slave
  • #slavehimher- him/her/them based on gender of your slave
  • #slavehisher - his/her/them based on gender of your slave
  • #slaveis - SlaveName is, or SlaveName are for twins
Ranma is
Mara & Nara are
  • #slavehas - slave has, or slavename have for twins
Ranma has
  • #slaveA - SlaveA, usually this is the slave's name. For

twins it is one of the slaves picked at random

  • #slaveB - SlaveB, the other twin than SlaveA (or

SlaveName for non-twins)

  • #assistantA - ServantA, as above but for your assistant
  • #assistantB - ServantB, ditto
  • #assistantheshe - he/she/they based on gender of your


  • #assistanthimher - him/her/them based on gender of your


  • #assistanthisher - his/her/them based on gender of your


  • #assistantis - Servantname is
Mugi is
  • #assistanthas - Servantname has
Mugi has
  • #super - the name of the person supervising, either

'you' or your assistants name

Remember there are set by the core game.

In some cases you will also see

  • #value - this is used for cases where a value like a

number is to be inserted into the string. eg

<CombatSkillLevels>you have a bonus of #value.</CombatSkillLevels>

You can delete these macros if needed for your translation and replace as needed, but be aware of gender issues, for instance for

male slaves
female slaves

DO NOT remove any #value references

Slave Details[edit]

The descriptions of the slaves that appear in the slave market screen can also be translated. In the folder


there are files



To translate

1) copy these files and rename to




2) edit the file and translate the text after girldesc=


girlname=Shampoo&girldesc=Une fille que vous avez rencontré sur le chemin de la Capitale. Vous l'obsédez au point qu'elle s'est vendue pour devenir votre assistante.&image=Slave-Shampoo.png&gamefile=Slave-Shampoo.swf&mode=easy

You may translate the slave's name (ie Shampoo above) if you want, particularly for languages using a different alphabet like Russian etc. This is a matter of preference.

Do not translate any other parts like the mode=easy.

3) Save the file using UTF-8/UTF-16 character encoding.

4) repeat for the remaining files

<<first <prev SDK/Guide to translating next> last>>