Auto commit by GitHub Actions Workflow

This commit is contained in:
MooseBotter
2026-02-26 14:47:10 +00:00
parent 2ba3a27732
commit e65918e5d2
22 changed files with 1204 additions and 796 deletions
+334 -16
View File
@@ -1609,7 +1609,10 @@ Create a late-activated single infantry unit as template in the mission editor a
mycsar.SRSport = 5002 -- and SRS Server port
mycsar.SRSCulture = "en-GB" -- SRS voice culture
mycsar.SRSVoice = nil -- SRS voice for downed pilot, relevant for Google TTS
mycsar.SRSGPathToCredentials = nil -- Path to your Google credentials json file, set this if you want to use Google TTS
mycsar.SRSGPathToCredentials = nil -- Path to your Google credentials json file, set this if you want to use Google TTS as provider
mycsar.SRSBackend = MSRS.Backend.SRSEXE -- default backend is windows
mycsar.SRSProvider = MSRS.Provider.WINDOWS -- default TTS provider is windows
mycsar.SRSSpeed = 1.0 -- default speech speed - does not work with all providers
mycsar.SRSVolume = 1 -- Volume, between 0 and 1
mycsar.SRSGender = "male" -- male or female voice
mycsar.CSARVoice = MSRS.Voices.Google.Standard.en_US_Standard_A -- SRS voice for CSAR Controller, relevant for Google TTS
@@ -1713,6 +1716,60 @@ There is a risk involved in doing that; if you do not know what that means, this
<p> <strong>Caveat:</strong>
Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<h2>6. Message localization</h2>
<p>Use the following option to use one of the build-in translations,"en" is the default one:</p>
<pre><code> mycsar.locale = "fr" -- available are "en", "de" and "fr" (English, German, French)
</code></pre>
<p>To add your own text, you can do this by adding your locale and translations for these texts before calling <code>CSAR:New()</code>:
(NOTE - the lua placeholders like %s, %d must remain the same in type and number!)</p>
<p> CSAR.Messages.EN = {</p>
<pre><code> HEARYOULONG = "%s: %s. I hear you! Finally, that is music in my ears!\nI'll pop a smoke when you are %s away.\nLand or hover by the smoke.",
HEARYOUSHORT = "%s: %s. I hear you! Finally, that is music in my ears!\nRequest a flare or smoke if you need.",
WEARECRAMMED = "%s, %s. We\'re already crammed with %d guys! Sorry!",
IAMINHELO = "%s: %s I\'m in! Get to the MASH ASAP! ",
YOUARECLOSE = "%s: %s. You\'re close now! Land or hover at the smoke.",
YOUARECLOSELONG = "%s: %s. You\'re close now! Land in a safe place, I will go there ",
WAITMORE = "Wait till %s gets in. \nETA %d more seconds.",
OPENTHEDOORIN = "Open the door to let me in!",
HOVERABOVE = "Hovering above %s. \n\nHold hover for %d seconds to winch them up. \n\nIf the countdown stops you\'re too far away!",
TOOHIGHWINCH = "Too high to winch %s \nReduce height and hover for 10 seconds!",
OPENTHEDOOROUT = "Open the door to let me out!",
TAKECLINIC = "%s: The %d pilot(s) have been taken to the\nmedical clinic. Good job!",
KILOMETERS = " kilometer",
NAUTMILES = " nautical miles",
FIRINGFLARE = "%s - Firing signal flare at your %s o\'clock. Distance %s",
NOPILOTSINRANGE = "No Pilots within %s",
IRSTROBE = "%s - IR Strobe active at your %s o\'clock. Distance %s",
POPPINGSMOKE = "%s - Popping smoke at your %s o\'clock. Distance %s",
POPPINGSMOKEMASH = "%s - Popping smoke at the closest rescue point: %s",
NORESCUEPOINTWITHIN = "No rescue point within %s",
NOPILOTSONBOARD = "No Rescued Pilots onboard",
MENUTOP = "CSAR",
MENUACTIVE = "List Active CSAR",
MENUCHECK = "Check Onboard",
MENUFLARE = "Request Signal Flare",
MENUSMOKE = "Request Smoke",
MENUSTROBE = "Request IR Strobe",
MENUMASH = "Smoke Closest MASH",
BOARDED = "Onboard - RTB to FARP/Airfield or MASH: ",
</code></pre>
<p> },</p>
<p>e.g. for Spanish:</p>
<pre><code> CSAR.Messages.ES = {
HEARYOULONG = "%s: %s. ¡Te escucho! ¡Por fin, eso es música para mis oídos!\nLanzaré una señal de humo cuando estés a %s de distancia.\nAterrice o quédese en vuelo estacionario junto al humo.",
HEARYOUSHORT = "%s: %s. ¡Te escucho! ¡Por fin, eso es música para mis oídos!\nSolicite una bengala o humo si lo necesita.",
WEARECRAMMED = "%s, %s. ¡Ya estamos abarrotados con %d personas! ¡Lo siento!",
IAMINHELO = "%s: %s ¡Estoy dentro! ¡Dirígete al MASH lo antes posible!",
...
}
</code></pre>
</div>
@@ -1806,6 +1863,12 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).Load">CSAR:Load()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Triggers the FSM event "Save".</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).Messages">CSAR.Messages</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
@@ -1878,6 +1941,12 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).PlayerTaskQueue">CSAR.PlayerTaskQueue</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).SRSBackend">CSAR.SRSBackend</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
@@ -1908,12 +1977,24 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).SRSPath">CSAR.SRSPath</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).SRSProvider">CSAR.SRSProvider</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).SRSQueue">CSAR.SRSQueue</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).SRSSpeed">CSAR.SRSSpeed</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
@@ -2142,6 +2223,12 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR)._GetSARHeli">CSAR:_GetSARHeli(_unitname, _unitName)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>(Internal) Check and return Wrappe.Unit#UNIT based on the name if alive.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR)._InitLocalization">CSAR:_InitLocalization()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>[Internal] Init localization</p>
</td>
</tr>
<tr class="w3-border">
@@ -2460,6 +2547,12 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).filepath">CSAR.filepath</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).gettext">CSAR.gettext</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
@@ -2538,6 +2631,12 @@ Dropped troop noMessage and forcedesc parameters aren't saved.</p>
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).loadtimemax">CSAR.loadtimemax</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CSAR).locale">CSAR.locale</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
@@ -4044,6 +4143,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).Messages" ><strong>CSAR.Messages</strong></a>
</div>
</div>
@@ -4069,6 +4179,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSBackend" ><strong>CSAR.SRSBackend</strong></a>
</div>
</div>
@@ -4122,6 +4243,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
<p> adjust your own path in your server(!)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSProvider" ><strong>CSAR.SRSProvider</strong></a>
</div>
</div>
@@ -4133,6 +4265,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(CSAR).SRSSpeed" ><strong>CSAR.SRSSpeed</strong></a>
</div>
</div>
@@ -4396,7 +4539,7 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<a id="#(CSAR).coordinate" ><strong>CSAR.coordinate</strong></a>
@@ -4485,14 +4628,11 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).csarUnits" ><strong>CSAR.csarUnits</strong></a>
<p> table of CSAR unit names</p>
</div>
</div>
@@ -4571,6 +4711,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.TextAndSound.html##(TEXTANDSOUND)">Core.TextAndSound#TEXTANDSOUND</a>
<a id="#(CSAR).gettext" ><strong>CSAR.gettext</strong></a>
</div>
</div>
@@ -4738,6 +4889,17 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
<p> seconds</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(CSAR).locale" ><strong>CSAR.locale</strong></a>
</div>
</div>
@@ -7846,6 +8008,36 @@ callsigns from playername or group name.</p>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(CSAR)._InitLocalization" ><strong>CSAR:_InitLocalization()</strong></a></h2>
</div>
<p>[Internal] Init localization</p>
<div id= "#Functions##_InitLocalization" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>CSAR</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="##(CSAR)">#CSAR</a>:</p>
</div>
<div class="w3-half">
<p>self</p>
</div>
</div>
</div>
</div>
</div>
@@ -10392,6 +10584,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).Messages" ><strong>CSAR.Messages</strong></a>
</div>
</div>
@@ -10417,6 +10620,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSBackend" ><strong>CSAR.SRSBackend</strong></a>
</div>
</div>
@@ -10470,6 +10684,17 @@ callsigns from playername or group name.</p>
<p> adjust your own path in your server(!)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSProvider" ><strong>CSAR.SRSProvider</strong></a>
</div>
</div>
@@ -10481,6 +10706,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(CSAR).SRSSpeed" ><strong>CSAR.SRSSpeed</strong></a>
</div>
</div>
@@ -10744,7 +10980,7 @@ callsigns from playername or group name.</p>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<a id="#(CSAR).coordinate" ><strong>CSAR.coordinate</strong></a>
@@ -10833,14 +11069,11 @@ callsigns from playername or group name.</p>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).csarUnits" ><strong>CSAR.csarUnits</strong></a>
<p> table of CSAR unit names</p>
</div>
</div>
@@ -10919,6 +11152,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.TextAndSound.html##(TEXTANDSOUND)">Core.TextAndSound#TEXTANDSOUND</a>
<a id="#(CSAR).gettext" ><strong>CSAR.gettext</strong></a>
</div>
</div>
@@ -11086,6 +11330,17 @@ callsigns from playername or group name.</p>
<p> seconds</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(CSAR).locale" ><strong>CSAR.locale</strong></a>
</div>
</div>
@@ -12944,6 +13199,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).Messages" ><strong>CSAR.Messages</strong></a>
</div>
</div>
@@ -12969,6 +13235,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSBackend" ><strong>CSAR.SRSBackend</strong></a>
</div>
</div>
@@ -13022,6 +13299,17 @@ callsigns from playername or group name.</p>
<p> adjust your own path in your server(!)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a id="#(CSAR).SRSProvider" ><strong>CSAR.SRSProvider</strong></a>
</div>
</div>
@@ -13033,6 +13321,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(CSAR).SRSSpeed" ><strong>CSAR.SRSSpeed</strong></a>
</div>
</div>
@@ -13296,7 +13595,7 @@ callsigns from playername or group name.</p>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<a id="#(CSAR).coordinate" ><strong>CSAR.coordinate</strong></a>
@@ -13385,14 +13684,11 @@ callsigns from playername or group name.</p>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CSAR).csarUnits" ><strong>CSAR.csarUnits</strong></a>
<p> table of CSAR unit names</p>
</div>
</div>
@@ -13471,6 +13767,17 @@ callsigns from playername or group name.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="Core.TextAndSound.html##(TEXTANDSOUND)">Core.TextAndSound#TEXTANDSOUND</a>
<a id="#(CSAR).gettext" ><strong>CSAR.gettext</strong></a>
</div>
</div>
@@ -13638,6 +13945,17 @@ callsigns from playername or group name.</p>
<p> seconds</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(CSAR).locale" ><strong>CSAR.locale</strong></a>
</div>
</div>