translate scripts

I would like to know if there is a way to translate scripts text into French without being a developer?


  • edited June 2019
    The scripts are all in the the scripts folder, so they are easily accessible, also for non-coders. Just be careful to not change anything for the texts text (usually they are inside of "" or [[]] )
    As those texts are usually scattered across the script, it helps to use a code editor, like geany for example. As those have syntax highlighting, you will find text strings easier.
    And only translate whole sentences for the start, not single terms, as those might be pre-defined arguments in functions, (Examples: player.old_emp_max = player:getWeaponStorageMax("EMP") , setFaction("Human Navy"))
    And last, keep in mind EmptyEpsilon don't use unicode, so might want to avoid non-english letters for the start. There is some way to use them, but it is a bit fragile. If you are interested I could point you in the according direction.
  • edited June 2019
    If I translate the text for these scenarios for the version 21-05-2019, should I do it again each time the software will change version or can I keep the same scenario translated from one version to another?

    Yes it's just to translate the script and help the Relay post and enjoy the game even more.

    EDIT : Tested and ok ( I just have to open the .lua scenario with Geany (Notepad ++ is valid too?), Modify the desired text and save (compile) with the same software?)

    Thanks a lot BlueShadow
  • In most cases you probably won't need to translate it again. You can check here when the latest change of a scenario was. You can hover over the text like "... months ago" to see the exact date.
    If it wasn't changed since the previous release, you don't have to re-translate it.

    yeah, Notepad++ is fine, just don't use the regular windows notepad, as syntax highliting is really helpful to find the text messages.
  • Great !
    Thanks a lot BlueShadow, It will be more immersive and nice !
  • Note, scenario scripts are only "run" on the server, so only the server needs the translated version.
  • ok thanks Daid
  • If it interests someone, I started to translate some scenarios into French.

    I also produced help sheets in French for the different stations.

  • That's cool. Let me know if you translate Borderline Fever, Defender Hunter, Allies and Enemies, Birth of the Atlantis, Escape, Delta Quadrant Patrol Duty, What the Dickens and/or Shoreline

  • edited January 2020

    I started with the basic scenarios, factioninfo, comms_ship, comms_station, science_db and some not too long scenario: 00 to 10.

    The other scenarios are very long to translate because the files are large. especially all those you cite.

    I finish 04_GFTP and I start 51_Ambassador and 53_escape.

    I'll keep you informed.

    ps: I am doing an EE evening on Saturday with 1 beginner crew. Including me, I played very little. What are the most visual scenarios / scripts? Planets, nebulae, moving objects ...? Thank you

  • edited February 2020


    I'm translating and playing 53_Escape.

    I would like to report a bug to you. On the Science console, randomly, at the start of the mission in the Boris JunkYard, when I scan ships or debris, it causes the client to crash and sometimes the server too. It is random but very common. Whether with the original unmodified version (15012020) or with my translated version, so this is not an error on my part.

    To be more precise, the bug is that I want to scan a 1st or 2nd time by clicking on the button and it is at this moment that it freezes the screen and that it crashes.

    Regarding the translation, I can't understand where some texts appear in the Relay console which communicates with JunkYard ships: "Your bloodline will end here" Execute self destruct "One zero one" etc. I find them in all your other scenarios 49,50,54,56,57,58,59 but not in 53_escape or in any other script file?

  • edited February 2020

    I need to know if I can translate in 53_escape : per exemple : Done in playerRepulse.reactorFix = "Done" to "C'est fait"

    And per exemple "medicine" if I translate all of alone them (under 141 occurences) in "Medicaments"?

    1. <I'm translating and playing 53_Escape.>

    I finished the translation: I'm just waiting for you to tell me if it's possible to translate all the words "" gold "," nickel "," platinum "," sensor "etc

    2 <Regarding the translation, I can't understand where some texts appear in the Relay console which communicates with JunkYard ships: "Your bloodline will end here" Execute self destruct "One zero one" etc. I find them in all your other scenarios 49,50,54,56,57,58,59 but not in 53_escape or in any other script file?>

    I hadn't looked well, it's in comms_ship.lua

  • edited February 2020

    I have not seen the science console crash you mention. I'll see if I can recreate it

    The specific example, playerRepulse.reactorFix can be translated. In cases like this, the default value for uninitialized variables is nil. I gave it a word ("done" in this case) to indicate that the action has been completed. Any value other than nil will work since I am just checking whether it is nil or not. The word "done" or "C'est fait" never appears on a user's screen. It's only used internally in the code.

    Probably the most visual scenario script is Borderline Fever. Defender Hunter has some moving objects. My apologies if this information is not timely enough for your Saturday game.

    For question 1:

    I see no problem with translating the cargo types (like "gold", "nickel", "platinum", etc.). Make sure you get each instance because there are places where the code does string comparison.

    For question 2:

    I usually override the ship communications (which normally goes to an external script, comms_ship.lua) with an internal function. However, I did not do that with scenario_53_escape.lua because there's not very much interaction with other ships. Also, I just had not gotten around to adding that feature to the scenario.

  • edited February 2020

    about 2.: those texts are originally in comms_ship.lua, though the ones in the script you are mentioning are modified, with more options. Seems like @Xansta decided to copy and modify them, instead of modifying comms_ship.lua directly

  • Right. In addition to the text changes, I wanted to add features that might not be compatible with other scripts, so I made the changes inside the script I was working on to prevent problems with other scripts

  • Thank you very much for all these clear answers.

    53_Escape is completely translated into French.

    I really liked this mission.

    SPOIL : With lots of references, stress shots at the start and the pressure to be pursued while being weak. By cons I find it unfortunate that the barter of goods is useless to complete the mission. By being chased, we go to the simplest, namely to follow the directives of the crew. And even with several parts of the game, I do not see the interest of bartering when it is a great idea at the origin of having to barter to get out of it. SPOIL

    Thank you very much for this scenario @Xansta.

  • Bartering is a holdover from a previous script. It was my intent to integrate it into the plot, but I have not gotten back around to doing that. I also intend to add more combat based on some player feedback.

  • Okay, if you change your opinion I'll find it very good. Especially because 80% of the text concerns stations and barter. I don't personally want more fighting. It is really the "escape spirit" which makes the interest of this scenario.

    I started translating in French "51_deliverAmbassador" at the same time as I play it so as not to spoil myself. I'm almost done translating it, including the sounds (it's really more immersive with sounds, I like it.). I believe you are the author Xansta?

    I noticed a few "bugs" with the sounds.

    Looking at the script (I don't know anything about code at all) I saw an error on line 261: player: removeCustomer -> player: removeCustom By removing the "er" it works.

    Then it's not a bug but when the sounds run automatically, there is still the button that appears, and if we do not press it, it does not disappear. And if the Relay presses it when it is broadcast automatically, we no longer understand anything. That's why I deleted lines 329, 416 and 517: playSoundFile ("... wav")

    I have a question concerning the beginning of the scenario: As soon as we arrive near the 1st planet, the ambassador is teleported directly on board the ship. It's normal? Shouldn't we first dock at Balindor Prime station?

    Thanks for reading

  • Thanks for finding the bug.

    I added the buttons to play the sounds to give the relay officer a chance to choose when to play them rather than having them play automatically. I'll look into either removing the button or adding a "delete without playing" option or a timeout.

    Yes, the ambassador being transported aboard automatically in intentional. He's in a perilous situation and must get away as soon as possible without waiting to dock at Balindor Prime. At least that was my thinking at the time I wrote this (which was a long time ago)

  • edited February 2020


    So I specified it in the text and the sound.

    I finished translating this scenario : scenario_51_deliverAmbassador.lua with all the sounds. If someone wants these scenarios in French, you just have to ask.

    Daid, I also modified the vocal_self_destruction sound to make it a little nicer. Is there a scenario where self-destruction is necessary before teleporting, for example to a nearby planet or to another ship? It would be nice. Or is it just a gadget?

    And for me, I just renamed scenarios 02, 03, 04, 08 to 22, 23, 24, 28 just to group Basics scenarios and Mission scenarios together, for more clarity in the scenario selection panel

  • I finished translating the script but I have a problem to play it. I can't find any artifacts near the 3 stations Pangora (around cap 135), Nakor (around cap 315) and Science-37 (around cap zero). They do not appear anywhere, either on radars or visually. Everything works so far but then I can't find anything. I'm in easy mode. I don't understand.

  • I don't understand, in fact I found 1 artifact near Goltin. I scanned it and I saw a 2nd one right next to the 1st one that I couldn't target. Then it made me win (in easy mode) In the text, the artifacts are near the other stations and not near Goltin? Example: "Heard of any artifacts near Nakor?" or "Additional Orders: Research artifacts. Some artifacts reported near Pangora, Nakor and Science-37."

  • edited February 2020


    I once updated your 51_deliverambassador script file. I have added the 3 lines 329, 416 and 517: playSoundFile ("... wav") that I had deleted. So I have a Version 3 file. I retested, still in easy mode. Adding the start timer is nice. However, it does not disappear when Gremus is teleported on board. It continues and when it reaches zero, it sends the message from the Balindor embassy.

    Regarding sounds:

    For the 4 sounds that launch automatically (except the last one: Geltin7) the button remains a certain time for some and indefinitely for others. There shouldn't be the button when it's played automatically.

    For the artifacts, I saw my error, they are very far from the stations. The one next to Geltin is actually that of Pangora.

    Is it normal that on the 3 artefacts, that of Nakor, when we scan it, the results are not displayed and we cannot take it. That of Science37 when we scan it the results are not displayed but we can take it. And that of Pangora when we scan it, we have the results but we can't take it.

    It may be I who made a mistake in translating it, I'm going to look EDIT :I just compared and I didn't make a mistake. So it's not clear what to do with it: find them? scan them? take them? then go to Geltin7 to win?

    Last thing: In the stations menus, when you click on the questions "information about the artifacts" or "Where is station..." sometimes the question disappears from the menu and sometimes it stays. It's normal?

    Here is my return hoping that it can help you.

  • ***** SPOILER ALERT *****

    This post contains details on the Deliver Ambassador Gremus scenario that if you intend to be surprised by the scenario and thus obtain full enjoyment, you should stop reading now and go play the scenario.

    ***** ON WITH THE SPOILERS *****

    Thanks for the details, Muerte. In terms of mission goals, the ambassador just needs information, not the artifacts themselves. Whether or not the artifact can be picked up or not is immaterial. If I were feeling particularly evil, I might have the artifact that gets picked up either damage or destroy the player ship. I don't think I went that far in this scenario because the players have already invested quite a bit of time in the scenario and there is not much more to it after the artifacts are investigated.

    The term "near" on a cosmic scale is purposefully vague. The questioning and searching for the artifact(s) "near" particular locations was exactly what I was intending. In this case, you question the script author. In the scenario universe, the players should be questioning the definition of "near" coming from whoever is telling them where to search for these artifacts. Politicians and ambassadors and their staff are often not scientists. Hyperbole is their stock in trade.

    When the timer runs out, you're supposed to get one of two messages: either the ambassador was picked up and the sentry on Balindor Prime is reporting the actions of the crazed mob after the fact or the ambassador was not picked up and the sentry is reporting the ambassador's death from an angry mob. You describe the intended behavior of the timer.

    The state of the mission determines what information is available from a station. Not all information is available all the time. Also, it is likely that once the information has been given, it will not be given again. It is up to the Relay officer to pay attention. At the time I wrote this scenario, I did not realize there is an upper limit to how far back the Relay officer can scroll in the ship's log. This makes it even more important for the Relay officer to be awake. Having the information buttons unavailable sometimes is intentional.

    Yes, a more consistent handling of audio buttons compared to audio already played is desirable. However, I am not sure when I might go back and revisit this scenario to address this inconsistency. You (or anyone else) is more than welcome to refine this scenario further.

    Once again, I appreciate your input on the scenario. It is very valuable to hear how people interact with the scenario and what they perceive as they are going through the story line.

    I suggest you publish your French translation on the Empty Epsilon repository. Just change the first line to this:

    -- Name: Deliver Ambassador Gremus (French)

  • edited February 2020

    Thanks for answered.

    ***** SPOILER ALERT *****

    A. "In terms of mission goals, the ambassador just needs information, not the artifacts themselves."

    There is a problem with the results of the artifact scan. I tried again with the original script. Only that of Pangora displays the results well. This is normal when looking at the script around line 700, only the paragraph of Pangora is "filled" Can you just look?

    >>if nPangora:isScannedBy(player) then

    >>if nNakor:isScannedBy(player) then

    >>if nScience37:isScannedBy(player) then

    B. I have no idea what it is for but I think you forgot a line in your update: playMsgGremus4Button = nil

    Because you added it for other sounds that work with a button but not this one. Under :

    >>function playMsgGremus4 ()

    >>playSoundFile ( "sa_51_Gremus4.wav")

    >>player: removeCustom (playMsgGremus4Button) 

    C. "Yes, a more consistent handling of audio buttons compared to audio already played is desirable."

    It's very simple, I tested and it works very well. For the sounds you want to launch automatically (Gremus2.ogg, Protocol.ogg, Fordina.ogg) you just have to delete the paragraph so that the button does not appear:

    --- function playMsgGremus2()

    --- playSoundFile("sa_51_Gremus2.wav")

    --- player:removeCustom(playMsgGremus2Button)

    --- playMsgGremus2Button = nil

    --- end

    D. "When the timer runs out.......You describe the intended behavior of the timer."

    Yes, it's true. I just find that if the timer could stop showing (but still continue) as soon as Gremus is recovered, it would be more consistent. Otherwise as a player, you wonder why the timer continues when you have saved Gremus. It will continue to operate without seeing it and then trigger the sound of the sentry on Balindor Prime who is reporting the actions of the crazed mob after the fact.

    Is it possible to hide timer after rescue Gremus? Sorry, I hope not to annoy you. I spent a lot of time translating and understanding, and now I would really like your script to be really consistent in the story.

    E. "I suggest you publish your French translation on the Empty Epsilon repository. "

    ok I will see how to post this. I could post the others too if you want.

  • ***** SPOILER *****

    If you intend to play the Deliver Ambassador Gremus scenario, you will want to stop reading here since this gives away part of the scenario plot.

    A. The code for the Pangora related artifact differs from the other artifacts on purpose. The others should not have any special additional code where you indicate.

    B. I included the line to set the variable to nil after removing the button. I'll eventually publish that change (unless someone does it before I can).

    C. I have not gone back to divide up sounds into categories of auto-play and button-trigger-play. Once I do that, I'll remove the buttons for auto-play using your identified method.

    D. I'll consider hiding the time if the ambassador escapes

    E. Please post the others, too. I don't speak French myself, but I'm sure other French speakers will greatly appreciate the translated missions. Did you do audio voices in French for your translated missions, too?

  • edited February 2020

    E. I translated Escape with the audio voices. I'm finishing Defenser-Hunter who also has voices.Otherwise except the tutorials and about 10 scenarios, I translated all the .lua files of the game. Isn't it better to propose a rar file with all the translated files and the sounds? Where do you want me to put the files? Here: Do I need to create a special account to post files?

    ***** SPOILER ALERT *****

    F. I really like the update of Escape, with the timer. In difficult mode, 3 minutes is really short because even knowing everything, nebulous clouds often hide the desired vessel and sometimes it's too late. In easy mode I did not see the timer. It would be nice if it was also there for the immersive side (even with an exaggeratedly easy 15mn timer for example)

    E. I have had time in recent days, I will have much less for the coming weeks. I almost translated Defenser-Hunter. I'm testing it. It is quite difficult for a single ship driven by 1 single player even in easy.

    I noticed 3 things:

    1. Some communication menus close communication without being expected and others allow you to return to the menu (not previous) but to the initial menu. And as there are many menus in Defenser-Hunter; it forces us to reopen communications and waste time. I have already seen this in some scenarios. Is this normal?

    2. Despite variation, the text and sound describing the initial objectives are not suitable. By not stating that it is timed per exemple. This is a detail as the objectives will have been read just before in Variation but it will always allow a better immersion in the game.

    3. I think there is a problem with the display of results for the bottom row :


  • Hello muerte,

    I'd be really interested to get any french translated stuff you have for EE. All my players (including me) are french and unfortunetaly we're not all comfortable with english, so it could really improve our games !

    Thank you in advance !

  • F. I omitted the timer in easy mode purposefully. Even 15 minutes might not be enough for novice players.

    E1. Communication handling is inconsistent, I agree. I have not revisited Defender Hunter with that refactoring in mind. In rare cases (usially based on a particular mission criteria or situation), the automatic closing of the communication channel is intentional, but in other cases, it is not intentional.

    E2. It's only timed if the timed variation is chosen. I did not make multiple versions of the audio to handle the variation permutations. Better textual description would be good, I agree. Again, I have not revisited Defender Hunter with this refactoring in mind (yet).

    E3. This is the first scenario where I tried to include some end of game statistics. Since I did not start writing the scenario with this goal in mind, the implementation suffers. This is a known bug that I have not gone back to address. Daid mentioned that the global message box was never intended to display multiple lines of text.

    When I add scenario scripts, I fork the repository, add the script to the forked repository, then create a pull request and compare across forks, selecting my forked repository as the one to compare against. I am uncertain whether just adding the file would suffice. I think you need a github account (free) to fork the repository.

  • edited March 2020

    Hi there,

    I also started translating scripts in French.

    I intend to regroup them into a "scripts/french" directory and push everything up to the official github as a pull request.

    It will allow everybody to download them from there.

    @daid : Would that be ok with you ?

    I intend to translate all scripts (so if you already have some done, I'd be happy to integrate them).

    Then I wanna try to trnaslate the GUI texts, but we'll see that later ;)

    See you,


Sign In or Register to comment.