(
I did have a fuller answer written on Wednesday, but bloody Internet Explorer ate it. I'll try to remember the main points, but apologise if I put things somewhat briefly).
I have translated a couple of missions from Russian for my own use. The following is roughly what I have learned and how I work.
1. Make English the default language - put it first in the stringtable.
Language,English,German
2. Similarly for briefings and overviews (overviews are less important in campaigns)
briefing.html <--- in English
briefing.German.html <--- in German
3. The mission name can only be in ONE language - you cannot use your own stringtable.
4. Entries in the stringtable do not need quotes either side of them, unless they include commas. To make speech-marks appear, use them in pairs.
STR_S03r04,"YES SIR, WE'RE ON THE MOVE.","JAWOHL, SIR, WIR SIND UNTERWEGS."
STR_P6,"ZSU-23-4 (""Shilka"")","ZSU-23-4 (""Shilka"")"
(Edit: forgot about number 5)
5. You need to pbo the mission to make sure the stringtable will work fully. Depending on which folder you installed the mission in, you may not be able to access the stringtable contents when you re-load / retry. See
Mikero's post for more details.
How I workUse only a text editor such as Windows Notepad. Create the
stringtable.csv file and keep it open. Open the file to work on and simply cut-and-paste the necessary lines into the stringtable. Then re-write the line appropriately to make use of the stringtable:
Language,English,German
STR_Mkr1,Beerhall,Bierkeller
STR_SENSOR5,"Thunder and lightning!","Donner und Blitzen!"
STR_MITTEL,"How does one say Mittelschmerz?","Was ist das Wort fur Mittelschmerz?"
STR_INTRO,Knucklehead,Dummkopf
STR_S03,"My father is a firework!","Mein Vater ist ein Feuerwerk!"
Mission.sqm class Markers
{
items=22;
class Item0
{
position[]={2083.668945,40.745003,249.969482};
name="zsupos1";
text="Bierkeller";
type="Destroy";
};
becomes
text="@STR_Mkr1";
class Sensors
{
items=18;
class Item0
{
position[]={11647.478516,238.348633,11746.619141};
a=500.000000;
b=500.000000;
activationBy="GUER";
activationType="EAST D";
age="UNKNOWN";
class Effects
{
titleType="TEXT";
title="Donner und Blitzen!";
};
synchronizations[]={0};
};
becomes
title="@STR_SENSOR5";
ScriptsaP sidechat "Was ist das Wort fur Mittelschmerz?"
becomes
aP sidechat localize "STR_MITTEL"
titletext ["Dummkopf","plain"]
becomes
titletext [localize "STR_INTRO","plain"]
Description.extclass CfgRadio
{
sounds[] = {};
class S03r01
{
name = "S03r01";
sound[] = {"S03r01.ogg", db-40, 1.0};
title = "Mein Vater ist ein Feuerwerk!";
};
};
becomes
title = $STR_S03;