<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.retro-exo.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timber</id>
	<title>eXo Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.retro-exo.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timber"/>
	<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php/Special:Contributions/Timber"/>
	<updated>2026-04-13T11:47:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Texts.txt&amp;diff=639</id>
		<title>Texts.txt</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Texts.txt&amp;diff=639"/>
		<updated>2022-04-11T07:19:03Z</updated>

		<summary type="html">&lt;p&gt;Timber: bugfix (line0020 and line0023)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''eXo/util/Launch.bat'''&lt;br /&gt;
[[File:Launch.bat (1).png|thumb|386x386px]]&lt;br /&gt;
line0001=Game has not been installed&lt;br /&gt;
&lt;br /&gt;
line0002=Would you like to install the game?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/util/install.bat'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0003=Uninstall?&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (2).png|thumb|462x462px]]&lt;br /&gt;
line0004=Your current global config settings are:&lt;br /&gt;
&lt;br /&gt;
line0005=Would you like to change any of these?&lt;br /&gt;
&lt;br /&gt;
line0006=YN&lt;br /&gt;
&lt;br /&gt;
line0007=[Y]es or [N]o?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (3).png|thumb|456x456px]]&lt;br /&gt;
line0008=Would you like to change your graphics filter?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (4).png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0009=Press&lt;br /&gt;
&lt;br /&gt;
line0010=for no scaler&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/emulators/dosbox/config.bat'''&lt;br /&gt;
[[File:Config.bat (0).png|thumb|464x464px]]&lt;br /&gt;
line0011=FW&lt;br /&gt;
&lt;br /&gt;
line0012=Would you like [F]ullscreen or [W]indowed mode to be the default setting?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Config.bat (1).png|thumb|428x428px]]&lt;br /&gt;
line0013=What is your primary desktop resolution?&lt;br /&gt;
&lt;br /&gt;
line0014=[L]arge (4k)&lt;br /&gt;
&lt;br /&gt;
line0015=[M]edium (1080)&lt;br /&gt;
&lt;br /&gt;
line0016=[S]mall (less than 1080)&lt;br /&gt;
&lt;br /&gt;
line0017=LMS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Config.bat (2).png|thumb|727x727px]]&lt;br /&gt;
line0018=Would you like to enable Aspect Correction for all games?&lt;br /&gt;
&lt;br /&gt;
line0019=Choosing Yes will attempt to preserve the game's original format. In fullscreen&lt;br /&gt;
&lt;br /&gt;
line0020=mode this will introduce black bars on the sides.&lt;br /&gt;
&lt;br /&gt;
line0021=Choosing No will stretch the image to fit your monitor.&lt;br /&gt;
&lt;br /&gt;
line0022=Choosing 'Yes' is useful for widescreen monitors which cause stretching&lt;br /&gt;
&lt;br /&gt;
line0023=or distortion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/eXoDOS/!dos/&amp;lt;gamefolder&amp;gt;/Extras/Alternate Launcher.bat'''&lt;br /&gt;
[[File:Alternate Launcher (1).png|thumb|607x607px]]&lt;br /&gt;
line0024=to Quit&lt;br /&gt;
&lt;br /&gt;
line0025=Please note, all of the above options are experimental and&lt;br /&gt;
&lt;br /&gt;
line0026=use non-optimized versions of DOSBox.&lt;br /&gt;
&lt;br /&gt;
line0027=Pixel Perfect attempts to properly emulate pixel ratio&lt;br /&gt;
&lt;br /&gt;
line0028=Curved CRT emulates the effects of a CRT monitor&lt;br /&gt;
&lt;br /&gt;
line0029=No Scan Line Mode removes scan lines from select FMV games&lt;br /&gt;
&lt;br /&gt;
line0030=Please Choose:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Alternate Launcher (2).png|thumb|589x589px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0031=You have selected to play with Pixel Perfect mode.&lt;br /&gt;
&lt;br /&gt;
line0032=This warning\explanation will only appears once.&lt;br /&gt;
&lt;br /&gt;
line0033=Further info can be found in the read me file.&lt;br /&gt;
&lt;br /&gt;
line0034=Pixel Perfect mode emulates the pixel ratio&lt;br /&gt;
&lt;br /&gt;
line0035=of DOS Games as accurately as can be managed&lt;br /&gt;
&lt;br /&gt;
line0036=with DOSBox, however it is not compatible with&lt;br /&gt;
&lt;br /&gt;
line0037=all games and may cause issues - in some cases&lt;br /&gt;
&lt;br /&gt;
line0038=making the game unplayable. If this happens&lt;br /&gt;
&lt;br /&gt;
line0039=restart the game using the standard launch method.&lt;br /&gt;
&lt;br /&gt;
line0040=Other potential benefits of choosing this&lt;br /&gt;
&lt;br /&gt;
line0041=mode is that in some cases DOSBox will be&lt;br /&gt;
&lt;br /&gt;
line0042=using a more accurate OPL Audio emulation&lt;br /&gt;
&lt;br /&gt;
line0043=[nuked OPL] and have more accurate PC Speaker&lt;br /&gt;
&lt;br /&gt;
line0044=emulation.&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Texts.txt&amp;diff=638</id>
		<title>Texts.txt</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Texts.txt&amp;diff=638"/>
		<updated>2022-04-05T20:50:23Z</updated>

		<summary type="html">&lt;p&gt;Timber: creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''eXo/util/Launch.bat'''&lt;br /&gt;
[[File:Launch.bat (1).png|thumb|386x386px]]&lt;br /&gt;
line0001=Game has not been installed&lt;br /&gt;
&lt;br /&gt;
line0002=Would you like to install the game?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/util/install.bat'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0003=Uninstall?&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (2).png|thumb|462x462px]]&lt;br /&gt;
line0004=Your current global config settings are:&lt;br /&gt;
&lt;br /&gt;
line0005=Would you like to change any of these?&lt;br /&gt;
&lt;br /&gt;
line0006=YN&lt;br /&gt;
&lt;br /&gt;
line0007=[Y]es or [N]o?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (3).png|thumb|456x456px]]&lt;br /&gt;
line0008=Would you like to change your graphics filter?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Install.bat (4).png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0009=Press&lt;br /&gt;
&lt;br /&gt;
line0010=for no scaler&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/emulators/dosbox/config.bat'''&lt;br /&gt;
[[File:Config.bat (0).png|thumb|464x464px]]&lt;br /&gt;
line0011=FW&lt;br /&gt;
&lt;br /&gt;
line0012=Would you like [F]ullscreen or [W]indowed mode to be the default setting?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Config.bat (1).png|thumb|428x428px]]&lt;br /&gt;
line0013=What is your primary desktop resolution?&lt;br /&gt;
&lt;br /&gt;
line0014=[L]arge (4k)&lt;br /&gt;
&lt;br /&gt;
line0015=[M]edium (1080)&lt;br /&gt;
&lt;br /&gt;
line0016=[S]mall (less than 1080)&lt;br /&gt;
&lt;br /&gt;
line0017=LMS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Config.bat (2).png|thumb|727x727px]]&lt;br /&gt;
line0018=Would you like to enable Aspect Correction for all games?&lt;br /&gt;
&lt;br /&gt;
line0019=Choosing Yes will attempt to preserve the game's original format. In fullscreen&lt;br /&gt;
&lt;br /&gt;
line0020=mode this will introduce black bars on the sides..&lt;br /&gt;
&lt;br /&gt;
line0021=Choosing No will stretch the image to fit your monitor.&lt;br /&gt;
&lt;br /&gt;
line0022=Choosing 'Yes' is useful for widescreen monitors which cause stretching or distortion.&lt;br /&gt;
&lt;br /&gt;
line0023=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''eXo/eXoDOS/!dos/&amp;lt;gamefolder&amp;gt;/Extras/Alternate Launcher.bat'''&lt;br /&gt;
[[File:Alternate Launcher (1).png|thumb|607x607px]]&lt;br /&gt;
line0024=to Quit&lt;br /&gt;
&lt;br /&gt;
line0025=Please note, all of the above options are experimental and&lt;br /&gt;
&lt;br /&gt;
line0026=use non-optimized versions of DOSBox.&lt;br /&gt;
&lt;br /&gt;
line0027=Pixel Perfect attempts to properly emulate pixel ratio&lt;br /&gt;
&lt;br /&gt;
line0028=Curved CRT emulates the effects of a CRT monitor&lt;br /&gt;
&lt;br /&gt;
line0029=No Scan Line Mode removes scan lines from select FMV games&lt;br /&gt;
&lt;br /&gt;
line0030=Please Choose:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Alternate Launcher (2).png|thumb|589x589px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
line0031=You have selected to play with Pixel Perfect mode.&lt;br /&gt;
&lt;br /&gt;
line0032=This warning\explanation will only appears once.&lt;br /&gt;
&lt;br /&gt;
line0033=Further info can be found in the read me file.&lt;br /&gt;
&lt;br /&gt;
line0034=Pixel Perfect mode emulates the pixel ratio&lt;br /&gt;
&lt;br /&gt;
line0035=of DOS Games as accurately as can be managed&lt;br /&gt;
&lt;br /&gt;
line0036=with DOSBox, however it is not compatible with&lt;br /&gt;
&lt;br /&gt;
line0037=all games and may cause issues - in some cases&lt;br /&gt;
&lt;br /&gt;
line0038=making the game unplayable. If this happens&lt;br /&gt;
&lt;br /&gt;
line0039=restart the game using the standard launch method.&lt;br /&gt;
&lt;br /&gt;
line0040=Other potential benefits of choosing this&lt;br /&gt;
&lt;br /&gt;
line0041=mode is that in some cases DOSBox will be&lt;br /&gt;
&lt;br /&gt;
line0042=using a more accurate OPL Audio emulation&lt;br /&gt;
&lt;br /&gt;
line0043=[nuked OPL] and have more accurate PC Speaker&lt;br /&gt;
&lt;br /&gt;
line0044=emulation.&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Install.bat_(4).png&amp;diff=637</id>
		<title>File:Install.bat (4).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Install.bat_(4).png&amp;diff=637"/>
		<updated>2022-04-05T20:49:57Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;install.bat (4)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Install.bat_(3).png&amp;diff=636</id>
		<title>File:Install.bat (3).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Install.bat_(3).png&amp;diff=636"/>
		<updated>2022-04-05T20:48:56Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;install.bat (3)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Install.bat_(2).png&amp;diff=635</id>
		<title>File:Install.bat (2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Install.bat_(2).png&amp;diff=635"/>
		<updated>2022-04-05T20:48:13Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;install.bat (2)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Launch.bat_(1).png&amp;diff=634</id>
		<title>File:Launch.bat (1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Launch.bat_(1).png&amp;diff=634"/>
		<updated>2022-04-05T20:44:14Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Launch.bat (1)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Config.bat_(0).png&amp;diff=633</id>
		<title>File:Config.bat (0).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Config.bat_(0).png&amp;diff=633"/>
		<updated>2022-04-05T20:42:19Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;config.bat (0)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Config.bat_(2).png&amp;diff=632</id>
		<title>File:Config.bat (2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Config.bat_(2).png&amp;diff=632"/>
		<updated>2022-04-05T20:40:14Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;config.bat (2)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Config.bat_(1).png&amp;diff=631</id>
		<title>File:Config.bat (1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Config.bat_(1).png&amp;diff=631"/>
		<updated>2022-04-05T20:39:23Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;config.bat (1)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Alternate_Launcher_(2).png&amp;diff=630</id>
		<title>File:Alternate Launcher (2).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Alternate_Launcher_(2).png&amp;diff=630"/>
		<updated>2022-04-05T20:37:55Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alternate Launcher (2)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Alternate_Launcher_(1).png&amp;diff=629</id>
		<title>File:Alternate Launcher (1).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Alternate_Launcher_(1).png&amp;diff=629"/>
		<updated>2022-04-05T20:36:25Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alternate Launcher (1)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=628</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=628"/>
		<updated>2022-04-05T20:18:56Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* eXo\util\!french */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized &lt;br /&gt;
**[[Install.bat (language pack)|install.bat]]&lt;br /&gt;
**game name (YEAR).bat &lt;br /&gt;
**dosbox.conf &lt;br /&gt;
**exception.bat (optional) &lt;br /&gt;
&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
**[[texts.txt]] (language text lines)&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
**IP.bat (the batch that sets the IP txt files if the game supports multiplayer)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* [[Install.bat (language pack)|Install.bat]] (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat_(language_pack)&amp;diff=618</id>
		<title>Install.bat (language pack)</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat_(language_pack)&amp;diff=618"/>
		<updated>2021-11-12T23:25:15Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eXo created a special install.bat for the language packs&lt;br /&gt;
&lt;br /&gt;
Eulisker and Timber translated the text-strings in this file for the [[German Language Pack|German Language Pack (GLP)]]&lt;br /&gt;
===Special info about the file:===&lt;br /&gt;
To allow the language pack to use the original eXoDOS-Base pack files if the game is already as a multilingual version in eXoDOS, we added some lines to the install.bat.&lt;br /&gt;
&lt;br /&gt;
we added between&lt;br /&gt;
 cd ..&lt;br /&gt;
and&lt;br /&gt;
 IF EXIST &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot; GOTO dele&lt;br /&gt;
this:&lt;br /&gt;
 for /F &amp;quot;delims=&amp;quot; %%a in ('findstr /C:&amp;quot;%GameName%&amp;quot; .\util\!german\multilanguage.txt') do (set mla=yes)&lt;br /&gt;
and between&lt;br /&gt;
 :unzip&lt;br /&gt;
and&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%LangDir%\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
this:&lt;br /&gt;
 if not defined %mla goto nomla&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
 copy &amp;quot;.\eXoDOS\%GameName%.zip&amp;quot; &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
 :nomla&lt;br /&gt;
It is needed to let the install.bat check the &amp;quot;multilanguage.txt&amp;quot; file, if the &amp;quot;Gamename (YEAR)&amp;quot; is listed inside the file.&lt;br /&gt;
&lt;br /&gt;
If so, it copies the Gamename (YEAR).zip from the eXoDOS base package to the language pack folder&lt;br /&gt;
&lt;br /&gt;
If not, it simply skips this steps and continues with the next step to unzip the Gamename (YEAR).zip&lt;br /&gt;
&lt;br /&gt;
And between&lt;br /&gt;
 rd /q /s &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot;&lt;br /&gt;
and&lt;br /&gt;
 :end&lt;br /&gt;
we added this:&lt;br /&gt;
 if not defined %mla goto end&lt;br /&gt;
 del &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
This is needed to delete the Gamename (YEAR).zip we've copied in the first step&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat_(language_pack)&amp;diff=589</id>
		<title>Install.bat (language pack)</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat_(language_pack)&amp;diff=589"/>
		<updated>2021-11-12T17:44:29Z</updated>

		<summary type="html">&lt;p&gt;Timber: Created page with &amp;quot;eXo created a special install.bat for the language packs  Eulisker and Timber translated the text-strings in this file ===Special info about the file:=== To allow the language...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eXo created a special install.bat for the language packs&lt;br /&gt;
&lt;br /&gt;
Eulisker and Timber translated the text-strings in this file&lt;br /&gt;
===Special info about the file:===&lt;br /&gt;
To allow the language pack to use the original eXoDOS-Base pack files if the game is already as a multilingual version in eXoDOS, we added some lines to the install.bat.&lt;br /&gt;
&lt;br /&gt;
we added between&lt;br /&gt;
 cd ..&lt;br /&gt;
and&lt;br /&gt;
 IF EXIST &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot; GOTO dele&lt;br /&gt;
this:&lt;br /&gt;
 for /F &amp;quot;delims=&amp;quot; %%a in ('findstr /C:&amp;quot;%GameName%&amp;quot; .\util\!german\multilanguage.txt') do (set mla=yes)&lt;br /&gt;
and between&lt;br /&gt;
 :unzip&lt;br /&gt;
and&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%LangDir%\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
this:&lt;br /&gt;
 if not defined %mla goto nomla&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
 copy &amp;quot;.\eXoDOS\%GameName%.zip&amp;quot; &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
 :nomla&lt;br /&gt;
It is needed to let the install.bat check the &amp;quot;multilanguage.txt&amp;quot; file, if the &amp;quot;Gamename (YEAR)&amp;quot; is listed inside the file.&lt;br /&gt;
&lt;br /&gt;
If so, it copies the Gamename (YEAR).zip from the eXoDOS base package to the language pack folder&lt;br /&gt;
&lt;br /&gt;
If not, it simply skips this steps and continues with the next step to unzip the Gamename (YEAR).zip&lt;br /&gt;
&lt;br /&gt;
And between&lt;br /&gt;
 rd /q /s &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot;&lt;br /&gt;
and&lt;br /&gt;
 :end&lt;br /&gt;
we added this:&lt;br /&gt;
 if not defined %mla goto end&lt;br /&gt;
 del &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
This is needed to delete the Gamename (YEAR).zip we've copied in the first step&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=588</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=588"/>
		<updated>2021-11-12T17:44:12Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* eXo\eXoDOS\!dos\!french */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized &lt;br /&gt;
**[[Install.bat (language pack)|install.bat]]&lt;br /&gt;
**game name (YEAR).bat &lt;br /&gt;
**dosbox.conf &lt;br /&gt;
**exception.bat (optional) &lt;br /&gt;
&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
**IP.bat (the batch that sets the IP txt files if the game supports multiplayer)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* [[Install.bat (language pack)|Install.bat]] (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=587</id>
		<title>Install.bat</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=587"/>
		<updated>2021-11-12T17:43:16Z</updated>

		<summary type="html">&lt;p&gt;Timber: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=586</id>
		<title>Install.bat</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=586"/>
		<updated>2021-11-12T17:32:02Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Special info about the file: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eXo created a special install.bat for the language packs&lt;br /&gt;
&lt;br /&gt;
Eulisker and Timber translated the text-strings in this file&lt;br /&gt;
&lt;br /&gt;
=== Special info about the file: ===&lt;br /&gt;
To allow the language pack to use the original eXoDOS-Base pack files if the game is already as a multilingual version in eXoDOS, we added some lines to the install.bat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we added between &lt;br /&gt;
 cd ..&lt;br /&gt;
and &lt;br /&gt;
 IF EXIST &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot; GOTO dele&lt;br /&gt;
this: &lt;br /&gt;
 for /F &amp;quot;delims=&amp;quot; %%a in ('findstr /C:&amp;quot;%GameName%&amp;quot; .\util\!german\multilanguage.txt') do (set mla=yes)&lt;br /&gt;
and between&lt;br /&gt;
 :unzip&lt;br /&gt;
and &lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%LangDir%\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
this:&lt;br /&gt;
 if not defined %mla goto nomla&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
 copy &amp;quot;.\eXoDOS\%GameName%.zip&amp;quot; &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
 :nomla&lt;br /&gt;
It is needed to let the install.bat check the &amp;quot;multilanguage.txt&amp;quot; file, if the &amp;quot;Gamename (YEAR)&amp;quot; is listed inside the file.&lt;br /&gt;
&lt;br /&gt;
If so, it copies the Gamename (YEAR).zip from the eXoDOS base package to the language pack folder&lt;br /&gt;
&lt;br /&gt;
If not, it simply skips this steps and continues with the next step to unzip the Gamename (YEAR).zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And between&lt;br /&gt;
 rd /q /s &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot;&lt;br /&gt;
and&lt;br /&gt;
 :end&lt;br /&gt;
we added this:&lt;br /&gt;
 if not defined %mla goto end&lt;br /&gt;
 del &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
This is needed to delete the Gamename (YEAR).zip we've copied in the first step&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=585</id>
		<title>Install.bat</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=585"/>
		<updated>2021-11-12T17:30:01Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Special info about the file: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eXo created a special install.bat for the language packs&lt;br /&gt;
&lt;br /&gt;
Eulisker and Timber translated the text-strings in this file&lt;br /&gt;
&lt;br /&gt;
=== Special info about the file: ===&lt;br /&gt;
To allow the language pack to use the original eXoDOS-Base pack files if the game is already as a multilingual version in eXoDOS, we added some lines to the install.bat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we added between &lt;br /&gt;
 cd ..&lt;br /&gt;
and &lt;br /&gt;
 IF EXIST &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot; GOTO dele&lt;br /&gt;
this: &lt;br /&gt;
 for /F &amp;quot;delims=&amp;quot; %%a in ('findstr /C:&amp;quot;%GameName%&amp;quot; .\util\!german\multilanguage.txt') do (set mla=yes)&lt;br /&gt;
and between&lt;br /&gt;
 :unzip&lt;br /&gt;
and &lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%LangDir%\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
this:&lt;br /&gt;
 if not defined %mla goto nomla&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
 copy &amp;quot;.\eXoDOS\%GameName%.zip&amp;quot; &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
 :nomla&lt;br /&gt;
It is needed to let the install.bat check the &amp;quot;multilanguage.txt&amp;quot; file, if the &amp;quot;Gamename (YEAR)&amp;quot; is listed inside the file.&lt;br /&gt;
&lt;br /&gt;
If so, it copies the Gamename (YEAR).zip from the eXoDOS base package to the language pack folder&lt;br /&gt;
&lt;br /&gt;
If not, it simply skips this steps and continues with the next step to unzip the Gamename (YEAR).zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And between&lt;br /&gt;
 rd /q /s &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot;&lt;br /&gt;
and&lt;br /&gt;
 :end&lt;br /&gt;
we added this:&lt;br /&gt;
 if not defined %mla goto end&lt;br /&gt;
 del .\eXoDOS\%LangDir%\%GameName%.zip&lt;br /&gt;
This is needed to delete the Gamename (YEAR).zip we've copied in the first step&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=584</id>
		<title>Install.bat</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Install.bat&amp;diff=584"/>
		<updated>2021-11-12T17:25:36Z</updated>

		<summary type="html">&lt;p&gt;Timber: Created page with &amp;quot;eXo created a special install.bat for the language packs  Eulisker and Timber translated the text-strings in this file  === Special info about the file: === To allow the langu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eXo created a special install.bat for the language packs&lt;br /&gt;
&lt;br /&gt;
Eulisker and Timber translated the text-strings in this file&lt;br /&gt;
&lt;br /&gt;
=== Special info about the file: ===&lt;br /&gt;
To allow the language pack to use the original eXoDOS-Base pack files if the game is already as a multilingual version in eXoDOS, we added some lines to the install.bat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we added between &lt;br /&gt;
 :unzip&lt;br /&gt;
and &lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%LangDir%\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
this:&lt;br /&gt;
 for /F &amp;quot;delims=&amp;quot; %%a in ('findstr /C:&amp;quot;%GameName%&amp;quot; .\util\!german\multilanguage.txt') do (set mla=yes)&lt;br /&gt;
 if not defined %mla goto nomla&lt;br /&gt;
 IF NOT EXIST &amp;quot;exodos\%GameName%.zip&amp;quot; goto exit&lt;br /&gt;
 copy &amp;quot;.\eXoDOS\%GameName%.zip&amp;quot; &amp;quot;.\eXoDOS\%LangDir%\%GameName%.zip&amp;quot;&lt;br /&gt;
 :nomla&lt;br /&gt;
It is needed to let the install.bat check the &amp;quot;multilanguage.txt&amp;quot; file, if the &amp;quot;Gamename (YEAR)&amp;quot; is listed inside the file.&lt;br /&gt;
&lt;br /&gt;
If so, it copies the Gamename (YEAR).zip from the eXoDOS base package to the language pack folder&lt;br /&gt;
&lt;br /&gt;
If not, it simply skips this steps and continues with the next step to unzip the Gamename (YEAR).zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And between&lt;br /&gt;
 rd /q /s &amp;quot;.\eXoDOS\%LangDir%\%GameDir%\&amp;quot;&lt;br /&gt;
and&lt;br /&gt;
 :end&lt;br /&gt;
we added this:&lt;br /&gt;
 if not defined %mla goto end&lt;br /&gt;
 del .\eXoDOS\%LangDir%\%GameName%.zip&lt;br /&gt;
This is needed to delete the Gamename (YEAR).zip we've copied in the first step&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=583</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=583"/>
		<updated>2021-11-12T17:11:24Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* eXo\eXoDOS\!dos\!french */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized &lt;br /&gt;
**[[install.bat]] &lt;br /&gt;
**game name (YEAR).bat &lt;br /&gt;
**dosbox.conf &lt;br /&gt;
**exception.bat (optional) &lt;br /&gt;
&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
**IP.bat (the batch that sets the IP txt files if the game supports multiplayer)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* [[Install.bat]] (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=500</id>
		<title>Interactive Code Wheels</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=500"/>
		<updated>2021-11-11T17:56:57Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of the included and missing code wheels : https://github.com/exoscoriae/eXoDOS/issues/1660&lt;br /&gt;
&lt;br /&gt;
== Pictures of the wheels ==&lt;br /&gt;
First you have to have the pictures of the wheels of course. These must be adjusted to a 800x800 pixel image with a transparent background, example from photoshop:&lt;br /&gt;
[[File:Codewheels1.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[File:Codewheels2.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
Save them as *.png.&lt;br /&gt;
== Convert to base64 ==&lt;br /&gt;
Convert the pictures to base64, for example using this [https://www.browserling.com/tools/image-to-base64 online tool]. Save the base64-code results for later use.&lt;br /&gt;
&lt;br /&gt;
== HTML edit ==&lt;br /&gt;
Copy a [https://github.com/Beylie/WikiTest/files/5113856/codewheeltemplates.zip template] and rename it &lt;br /&gt;
&lt;br /&gt;
either&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-2wheels.HTM (for code wheel with 2 wheels)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-3wheels.HTM (for code wheel with 3 wheels)&lt;br /&gt;
&lt;br /&gt;
Edit the HTM file with any HTML editor (Notepad++ works fine)&lt;br /&gt;
2-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 520, 521&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 385&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 393&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;br /&gt;
3-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 527, 528&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 384&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 392&lt;br /&gt;
** copy the base64-code from (2) for the   middle-wheel and replace the current base64 code&lt;br /&gt;
* Line 400&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=499</id>
		<title>Interactive Code Wheels</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=499"/>
		<updated>2021-11-11T17:56:12Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of the included and missing code wheels : https://github.com/exoscoriae/eXoDOS/issues/1660&lt;br /&gt;
&lt;br /&gt;
== Pictures of the wheels ==&lt;br /&gt;
First you have to have the pictures of the wheels of course. These must be adjusted to a 800x800 pixel image with a transparent background, example from photoshop:&lt;br /&gt;
[[File:Codewheels1.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
[[File:Codewheels2.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
Save them as *.png.&lt;br /&gt;
== Convert to base64 ==&lt;br /&gt;
Convert the pictures to base64, for example using this [https://www.browserling.com/tools/image-to-base64 online tool]. Save the base64-code results for later use.&lt;br /&gt;
&lt;br /&gt;
== HTML edit ==&lt;br /&gt;
Copy a [https://github.com/Beylie/WikiTest/files/5113856/codewheeltemplates.zip template] and rename it &lt;br /&gt;
&lt;br /&gt;
either&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-2wheels.HTM (for code wheel with 2 wheels)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-3wheels.HTM (for code wheel with 3 wheels)&lt;br /&gt;
&lt;br /&gt;
Edit the HTM file with any HTML editor (Notepad++ works fine)&lt;br /&gt;
2-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 520, 521&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 385&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 393&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;br /&gt;
3-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 527, 528&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 384&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 392&lt;br /&gt;
** copy the base64-code from (2) for the   middle-wheel and replace the current base64 code&lt;br /&gt;
* Line 400&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=498</id>
		<title>Interactive Code Wheels</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Interactive_Code_Wheels&amp;diff=498"/>
		<updated>2021-11-11T17:53:17Z</updated>

		<summary type="html">&lt;p&gt;Timber: Created page with &amp;quot;List of the included and missing code wheels : https://github.com/exoscoriae/eXoDOS/issues/1660  == Pictures of the wheels == First you have to have the pictures of the wheels...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of the included and missing code wheels : https://github.com/exoscoriae/eXoDOS/issues/1660&lt;br /&gt;
&lt;br /&gt;
== Pictures of the wheels ==&lt;br /&gt;
First you have to have the pictures of the wheels of course. These must be adjusted to a 800x800 pixel image with a transparent background, example from photoshop:&lt;br /&gt;
[[File:Codewheels1.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Codewheels2.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save them as *.png.&lt;br /&gt;
&lt;br /&gt;
== Convert to base64 ==&lt;br /&gt;
Convert the pictures to base64, for example using this [https://www.browserling.com/tools/image-to-base64 online tool]. Save the base64-code results for later use.&lt;br /&gt;
&lt;br /&gt;
== HTML edit ==&lt;br /&gt;
Copy a [https://github.com/Beylie/WikiTest/files/5113856/codewheeltemplates.zip template] and rename it &lt;br /&gt;
&lt;br /&gt;
either&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-2wheels.HTM (for code wheel with 2 wheels)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
template_code-wheel-3wheels.HTM (for code wheel with 3 wheels)&lt;br /&gt;
&lt;br /&gt;
Edit the HTM file with any HTML editor (Notepad++ works fine)&lt;br /&gt;
2-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 520, 521&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 385&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 393&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;br /&gt;
3-wheel:&lt;br /&gt;
&lt;br /&gt;
* Lines 5, 6, 7, 527, 528&lt;br /&gt;
** change title and name of the game&lt;br /&gt;
* Line 384&lt;br /&gt;
** copy the base64-code from (2) for the background-wheel and replace the current base64 code&lt;br /&gt;
* Line 392&lt;br /&gt;
** copy the base64-code from (2) for the   middle-wheel and replace the current base64 code&lt;br /&gt;
* Line 400&lt;br /&gt;
** copy the base64-code from (2) for the top-wheel and replace the current base64 code&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Codewheels2.png&amp;diff=497</id>
		<title>File:Codewheels2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Codewheels2.png&amp;diff=497"/>
		<updated>2021-11-11T17:49:04Z</updated>

		<summary type="html">&lt;p&gt;Timber: Interactive code wheels creation 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interactive code wheels creation 2&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=File:Codewheels1.png&amp;diff=496</id>
		<title>File:Codewheels1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=File:Codewheels1.png&amp;diff=496"/>
		<updated>2021-11-11T17:48:19Z</updated>

		<summary type="html">&lt;p&gt;Timber: Interactive code wheels creation 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interactive code wheels creation 1&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=Main_Page&amp;diff=495</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=Main_Page&amp;diff=495"/>
		<updated>2021-11-11T17:44:41Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Metadata */ added Interactive Code Wheels link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;[[File:RetroeXo Logo.png]]&amp;lt;br&amp;gt;'''Retro eXo'''&amp;lt;/div&amp;gt; =&lt;br /&gt;
&amp;lt;strong&amp;gt;Project Goal&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The eXo projects' goal is preservation through playability.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Project Resources&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''[http://www.retro-exo.com www.retro-exo.com]''': Project Homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[https://www.youtube.com/c/eXoRetro YouTube Channel]''': Various videos about the project and how to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[https://discord.gg/37FYaUZ Discord]''': Project discussion, chat, &amp;amp; community.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[https://github.com/exoscoriae/ Github]''': Bugs, submissions, and enhancements are tracked here.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
=== Current ===&lt;br /&gt;
==== [[EXODOS]] ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: eXoDOS v5&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: October 31st, 2020&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: 7,200&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: eXoDOS v6, ETA 2022&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== [[EXOWin3x]] ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: eXoWin3x v2&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: February 14th, 2021&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: 1,138&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: eXoWin3x v3, ETA 2022&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== [[EXOScummVM]] ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: eXoScummVM r2.2.0&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: June 20th, 2021&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: 387 unique titles, multiple variations of each&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: TBD&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== [[EXORLP]] ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: eXo's Retro Learning Pack&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: April 1st, 2020&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: 667 titles, compiled from eXoDOS and eXoWin3x&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: None. RLP Was a one time release. Upon merging eXoDOS and eXoWin3x however, a playlist appears that allows you to select all games that were originally included in the RLP&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Future ===&lt;br /&gt;
==== EXOWin9x ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: None&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: ?&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: ?&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: ETA Unknown. Depends on progress in emulation&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Secret ====&lt;br /&gt;
&amp;lt;small&amp;gt;Current Version: None&amp;lt;br&amp;gt;&lt;br /&gt;
Release Date: ?&amp;lt;br&amp;gt;&lt;br /&gt;
Number of Games: ?&amp;lt;br&amp;gt;&lt;br /&gt;
Upcoming Version: ETA 2022&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
The eXo projects originated from wanting to sit down and play MS-DOS games without spending hours trying to get them running. Games such as DiscWorld were notoriously difficult and had a fair number of forum posts and websites dedicated to attempts to get them running. However websites centered on the topic of DOSBox, the primary MS-DOS emulator, were generally less than welcoming. eXo's original goal was to get his collection of MS-DOS Adventure games setup in a front end and easily accessible. Posts regarding this project began to appear on Underground Gamer &amp;amp; Pleasuredome in 2007, eventually leading to the release of eXoDOS Vol. I: Adventure in early 2008. This first release had around 650 titles in it, with plans to continue on to a second volume dedicated to role-playing games after excitement was expressed by fellow members on Underground Gamer. It was during this time that eXo became concerned that the nature of DOS emulation was leading towards a scenario in which the number of people who had the technical knowledge to set games up on their own was dwindling. Meanwhile, only a handful of highly popular commercial games for the era were available on any store front. eXo decided to continue tackling volumes of games with the impossible goal of preserving all MS-DOS games. Fundamental changes to the structure of the project were made leading to the release of eXoDOS Version 2. Vol. I-II were re-released along with eXoDOS Vol. III: Strategy (2009). Some of these primary changes included moving the games conf files out of their archive and into the same folder as the launcher. This allowed the conf file to be modified without the need to repack the entire game. eXoDOS Vol. IV: Sim\Sports\Racing\Educational (2011) and eXoDOS Vol. V: Action (2012) were released using the same structure. Releases were originally split into volumes due to bandwidth and storage concerns, however it also helped to focus work on specific packs.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Work on the first 2 versions of eXoDOS was primarily manual. Games were originally identified by hand typing metadata from [https://www.mobygames.com/ MobyGames] into a database. Each game's launcher, conf file, and install file was copied from a base template and then modified to fit that game, with information like folder names, game name, and other variables hard coded. Soon after the release of eXoDOS Version 2, eXo began to work on a Windows 3x project. This was a very slow process due to the rocky documentation and emulation of Windows 3x. Several improvements were made to the structure of the project during this time however, leading the the release of eXoDOS Version 3. The Windows 3x project was dubbed Win3xO, and released in 2015 with just over 1,000 games in it. eXoDOS versions 1-3 and Win3xO were powered by the [https://sites.google.com/site/meagrefrontend/ MEAGRE] front end, which was also originally posted as a member project on the UG forums.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The release of Win3xO led to serious burnout, which resulted in a year long break in the project that coincided with the abrupt deletion of Underground Gamer's website, tracker, and forums. Eventually eXo began work on locating new games for the DOS project while addressing bug fixes within the Windows 3x project. Work continued alone during this time, however with the downfall of UG, discussion at this point was primarily limited to occasional posts on the Pleasuredome forums. During this time the author of MEAGRE, Donarumo, decided to cease development on the front end. He moved his personal collections over to [https://www.launchbox-app.com/ LaunchBox] and encouraged eXo to consider it for his projects as well. After a positive discussion with the author of LaunchBox, permission was granted to include it with the forthcoming eXoDOS Version 4 release. Changing to a new front end was a massive task however, as it meant that all metadata (release information, manuals, game images, etc...) had to be imported on a game by game basis. This time was used to begin scrubbing the project of all images that had watermarks, and replacing them with original screen shots and clean box scans.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In response to the decline of participation of forums, a [https://discord.com/ Discord] server was started for the project on June 7th, 2018. The community quickly grew with various people who had been following the project for years. The ability to communicate in real time allowed others to find ways to contribute, which quickly led to the formation of the &amp;quot;eXoSquad&amp;quot;. This led to a flood of improvements for eXoDOS Version 4, with one of the primary new features being the ability to select advanced sound card options. Since then, a steady flow of new features and improved modules have been created for each upcoming release.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In March of 2020, in response the quarantine protocols and school closings, the RLP (Retro Learning Pack) was released. This pack of 667 games from the MS-DOS and Windows 3.x era was designed to give parents of children stuck at home a way to entertain and educate their children during lockdown. [https://kotaku.com/loads-of-awesome-old-pc-games-will-keep-your-damn-kids-1842632937 Coverage] of the pack extended into the media on sites like [https://kotaku.com/ Kotaku].&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
&lt;br /&gt;
The project and/or creator have been featured in the following articles:&lt;br /&gt;
&lt;br /&gt;
[https://blog.archive.org/2019/10/13/2500-more-ms-dos-games-playable-at-the-archive/ ''2,500 More MS-DOS Games Playable at the Archive.'' Scott, J. (2019, Oct. 13). Internet Archive Blog]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://kotaku.com/one-mans-quest-to-collect-every-classic-pc-game-in-exis-1839432488 ''One Man's Quest To Collect Every Classic PC Game In Existence.'' Plunkett, L. (2019, Dec. 16). Kotaku.]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://kotaku.com/loads-of-awesome-old-pc-games-will-keep-your-damn-kids-1842632937 ''Loads Of Awesome Old PC Games Will Keep Your Damn Kids Busy'' Plunkett, L. (2020, Apr. 4). Kotaku]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
&lt;br /&gt;
=== Emulated Hardware ===&lt;br /&gt;
[[3Dfx]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Sound Cards]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Video Modes]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Remote Multiplayer]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common Core Systems ===&lt;br /&gt;
&lt;br /&gt;
[[Project Setup]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Installer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Launcher]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[DOSBox Configuration File]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Updater]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Downloader]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[EXO Plugin]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Emulators ====&lt;br /&gt;
[[DOSBox]]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.scummvm.org/index.php?title=Main_Page ScummVM]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Metadata ===&lt;br /&gt;
&lt;br /&gt;
[[Images]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[LaunchBox Platform XML]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Manuals]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Magazines]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Music]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Playlists]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Video Snaps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Interactive Code Wheels]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
[[Master Database]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language Packs ==&lt;br /&gt;
&lt;br /&gt;
[[The Language Pack Concept]]&lt;br /&gt;
&lt;br /&gt;
==== In Progress: ====&lt;br /&gt;
[[French Language Pack]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[German Language Pack]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== On Hold: ====&lt;br /&gt;
Polish Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== In need of a curator ====&lt;br /&gt;
Chinese Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
Italian Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
Korean Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
Russian Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
Spanish Language Pack&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;If you have any interest in assisting with these language packs (or working on an unlisted language pack), please join our [https://discord.gg/37FYaUZ Discord] server.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
For a list of frequently asked questions, please visit the [https://www.retro-exo.com/FAQ.html website FAQ].&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
If you would like to contribute, please contact [[User:EXO|EXO]] for registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Getting started ==&lt;br /&gt;
&amp;lt;!-- * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki] --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=411</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=411"/>
		<updated>2021-11-09T22:23:46Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* eXo\util\!french */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
**IP.bat (the batch that sets the IP txt files if the game supports multiplayer)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=382</id>
		<title>German Language Pack</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=382"/>
		<updated>2021-11-08T11:50:14Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
English:&amp;lt;br&amp;gt;&lt;br /&gt;
The German language pack (short: GLP) is an addon for eXoDOS (beginning with v6).&lt;br /&gt;
It is currently under developement, version 1.0 will be released in 2022.&lt;br /&gt;
&lt;br /&gt;
Admins for the GLP are Timber and Eulisker.&lt;br /&gt;
&lt;br /&gt;
The GLP games list can be found here: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
German:&amp;lt;br&amp;gt;&lt;br /&gt;
Der &amp;quot;German language pack&amp;quot; (kurz: GLP) ist ein Add-on für eXoDOS (ab der Version v6).&lt;br /&gt;
Er befindet sich derzeit noch in der Entwicklung/Zusammenstellung, die Version 1.0 wird voraussichtlich in 2022 zusammen mit eXoDOS Version 6 veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
Admins für den GLP sind Timber und Eulisker&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Spiele-Liste für den GLP findet man hier: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 0: Vorbereitungen abgeschlossen, Framework steht&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 1: 50 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 2: 100 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 3: 200 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* MS 4: 300+ Spiele (angepeilt für Ende 2021), danach interne Testphase&lt;br /&gt;
* MS 5: interne Testphase abgeschlossen, externe beginnt&lt;br /&gt;
* MS 6: externe Testphase abgeschlossen&lt;br /&gt;
* MS 7: Packaging GLP v1&lt;br /&gt;
* MS 8: Release GLP v1 (zeitgleich mit eXoDOS v6)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=381</id>
		<title>German Language Pack</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=381"/>
		<updated>2021-11-08T11:49:08Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
English:&amp;lt;br&amp;gt;&lt;br /&gt;
The German language pack (short: GLP) is an addon for eXoDOS (beginning with v6).&lt;br /&gt;
It is currently under developement, version 1.0 will be released in 2022.&lt;br /&gt;
&lt;br /&gt;
The GLP games list can be found here: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
German:&amp;lt;br&amp;gt;&lt;br /&gt;
Der &amp;quot;German language pack&amp;quot; (kurz: GLP) ist ein Add-on für eXoDOS (ab der Version v6).&lt;br /&gt;
Er befindet sich derzeit noch in der Entwicklung/Zusammenstellung, die Version 1.0 wird voraussichtlich in 2022 zusammen mit eXoDOS Version 6 veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Spiele-Liste für den GLP findet man hier: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 0: Vorbereitungen abgeschlossen, Framework steht&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 1: 50 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 2: 100 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 3: 200 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* MS 4: 300+ Spiele (angepeilt für Ende 2021), danach interne Testphase&lt;br /&gt;
* MS 5: interne Testphase abgeschlossen, externe beginnt&lt;br /&gt;
* MS 6: externe Testphase abgeschlossen&lt;br /&gt;
* MS 7: Packaging GLP v1&lt;br /&gt;
* MS 8: Release GLP v1 (zeitgleich mit eXoDOS v6)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=380</id>
		<title>German Language Pack</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=380"/>
		<updated>2021-11-08T11:48:51Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
English:&lt;br /&gt;
The German language pack (short: GLP) is an addon for eXoDOS (beginning with v6).&lt;br /&gt;
It is currently under developement, version 1.0 will be released in 2022.&lt;br /&gt;
&lt;br /&gt;
The GLP games list can be found here: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
German:&lt;br /&gt;
Der &amp;quot;German language pack&amp;quot; (kurz: GLP) ist ein Add-on für eXoDOS (ab der Version v6).&lt;br /&gt;
Er befindet sich derzeit noch in der Entwicklung/Zusammenstellung, die Version 1.0 wird voraussichtlich in 2022 zusammen mit eXoDOS Version 6 veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Spiele-Liste für den GLP findet man hier: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 0: Vorbereitungen abgeschlossen, Framework steht&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 1: 50 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 2: 100 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 3: 200 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* MS 4: 300+ Spiele (angepeilt für Ende 2021), danach interne Testphase&lt;br /&gt;
* MS 5: interne Testphase abgeschlossen, externe beginnt&lt;br /&gt;
* MS 6: externe Testphase abgeschlossen&lt;br /&gt;
* MS 7: Packaging GLP v1&lt;br /&gt;
* MS 8: Release GLP v1 (zeitgleich mit eXoDOS v6)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=379</id>
		<title>German Language Pack</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=379"/>
		<updated>2021-11-08T11:46:48Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Roadmap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The German language pack (short: GLP) is an addon for eXoDOS (beginning with v6).&lt;br /&gt;
It is currently under developement, version 1.0 will be released in 2022.&lt;br /&gt;
&lt;br /&gt;
The GLP games list can be found here: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 0: Vorbereitungen abgeschlossen, Framework steht&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 1: 50 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 2: 100 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 3: 200 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
* MS 4: 300+ Spiele (angepeilt für Ende 2021), danach interne Testphase&lt;br /&gt;
* MS 5: interne Testphase abgeschlossen, externe beginnt&lt;br /&gt;
* MS 6: externe Testphase abgeschlossen&lt;br /&gt;
* MS 7: Packaging GLP v1&lt;br /&gt;
* MS 8: Release GLP v1 (zeitgleich mit eXoDOS v6)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=378</id>
		<title>German Language Pack</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=German_Language_Pack&amp;diff=378"/>
		<updated>2021-11-08T11:45:54Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The German language pack (short: GLP) is an addon for eXoDOS (beginning with v6).&lt;br /&gt;
It is currently under developement, version 1.0 will be released in 2022.&lt;br /&gt;
&lt;br /&gt;
The GLP games list can be found here: https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 0: Vorbereitungen abgeschlossen, Framework steht&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 1: 50 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 2: 100 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;MS 3: 200 Spiele&amp;lt;/span&amp;gt;&lt;br /&gt;
MS 4: 300+ Spiele (angepeilt für Ende 2021), danach interne Testphase&lt;br /&gt;
MS 5: interne Testphase abgeschlossen, externe beginnt&lt;br /&gt;
MS 6: externe Testphase abgeschlossen&lt;br /&gt;
MS 7: Packaging GLP v1&lt;br /&gt;
MS 8: Release GLP v1 (zeitgleich mit eXoDOS v6)&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=377</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=377"/>
		<updated>2021-11-08T11:15:09Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin-left:40px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=376</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=376"/>
		<updated>2021-11-08T11:14:36Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=375</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=375"/>
		<updated>2021-11-08T11:11:07Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Adding a game to the language pack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== add ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== keep ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlingame ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== mlstartup ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=374</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=374"/>
		<updated>2021-11-08T11:10:16Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;variant&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC (&amp;quot;LB-ID&amp;quot;) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;&lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;not needed atm because we only add an &amp;quot;Additional Application&amp;quot; to open the Extras folder of the game. but should be filled out anyway because maybe this changes someday because of possibility of creating cascading menus in LB for example&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding a game to the language pack ==&lt;br /&gt;
&lt;br /&gt;
===	Procedure ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;image missing&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Variants ===&lt;br /&gt;
&lt;br /&gt;
The variants are set in the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;) on sheet &amp;quot;xLP&amp;quot; in column &amp;quot;T (variant)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== new ====&lt;br /&gt;
&lt;br /&gt;
the game is not in eXoDOS, only in the language pack&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;gamefolder&amp;gt; has to be named (unique)&lt;br /&gt;
* Game Name (XXXX) has to  be set (in most cases mobygames can be uses as source)&lt;br /&gt;
* Manual is placed in /Manuals/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.pdf&lt;br /&gt;
* Music file is placed in /Music/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp3&lt;br /&gt;
* Video is placed in /Videos/MS-DOS/&amp;lt;Launchbox-gamename&amp;gt;.mp4&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;game folder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „new“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* game gets its own new entry in Launchbox (LBID will be set during XML creation)&lt;br /&gt;
* game is added to the German playlist&lt;br /&gt;
* extras will be linked as additional applications to that LB entry like in eXoDOS&lt;br /&gt;
* Manual is automatically set by LB&lt;br /&gt;
* Music is automatically set by LB&lt;br /&gt;
* Video is automatically set by LB&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
==== extras ====&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and only extras (manuals, documents …) will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „extras“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* for German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* German images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== add ===&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS but it’s not in German - so German game version will be added by the language pack&lt;br /&gt;
&lt;br /&gt;
* Game files have to be placed in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Install.bat, Game Name (XXXX).bat and dosbox.conf have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* exception.bat (if needed) has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)&lt;br /&gt;
* Extras and Manual have to be placed in eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „varaiant“ column to „add“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML for the merge&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== keep ===&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it is German language only - so language pack only needs to add the playlist entry&lt;br /&gt;
&lt;br /&gt;
* Extras, Images, Manuals can all be added to the eXoDOS base package&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „keep“&lt;br /&gt;
** IMPORTANT: Set column R = eXoDOS to „Y“ (= the game is only added to the playlist.xml for the language pack)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game will only be added to the German playlist&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== mlingame ===&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice ingame (menu or key combination)&lt;br /&gt;
&lt;br /&gt;
* create Game Name (XXXX).ba1 in /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt;  (create folder if not exists)&lt;br /&gt;
* zip the /eXo/eXoDOS/!german/&amp;lt;gamefolder&amp;gt; and rename the zip to Game Name (XXXX).zip&lt;br /&gt;
* Game Name (XXXX).bat has to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;    (create folder if not exists)   with German info and steps on how to change the language ingame and loop back to the eXoDOS start batch&lt;br /&gt;
* Extras and Manual have to be placed in  /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set &amp;quot;variant&amp;quot; column to „mlingame“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML)&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===	mlstartup ===&lt;br /&gt;
&lt;br /&gt;
the game is already in eXoDOS and it's a multilanguage version with language choice at startup (either in the eXoDOS batch files or at game startup)&lt;br /&gt;
&lt;br /&gt;
* Extras and Manual have to be placed in /eXo/eXoDOS/!dos/!german/&amp;lt;gamefolder&amp;gt;/Extras     (create folder if not exists)&lt;br /&gt;
* Images (at least the types &amp;quot;box – front&amp;quot;, &amp;quot;box – back&amp;quot;, &amp;quot;disc&amp;quot;, &amp;quot;screenshot gametitle&amp;quot; and &amp;quot;screenshot gameplay&amp;quot;) have to be placed in /Images/MS-DOS/&amp;lt;type&amp;gt;/German/&amp;lt;Launchbox-gamename&amp;gt;-xx.&amp;lt;ext&amp;gt; (xx = counter starting with 01, &amp;lt;ext&amp;gt; = file extension of the image file)&lt;br /&gt;
* In German language pack spreadsheet:&lt;br /&gt;
** fill out the columns for the game (or add new row if game is not in yet) -&amp;gt; important: set „variant“ column to „mlstartup“&lt;br /&gt;
** add extras rows in the extras sheet (they will be automatically added to the XML )&lt;br /&gt;
&lt;br /&gt;
overview:&lt;br /&gt;
* Game is added to the German playlist&lt;br /&gt;
* For German extras and manual there will be an additional application to the eXoDOS entry „Deutsche Extras und Dokumente“ opening the German extras folder&lt;br /&gt;
* Images are automatically set by LB&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=373</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=373"/>
		<updated>2021-11-08T10:50:39Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* = xLP sheet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ====&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;added?&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC („LB-ID“) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=372</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=372"/>
		<updated>2021-11-08T10:50:27Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* = *LP sheet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== xLP sheet ===&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;added?&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC („LB-ID“) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=371</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=371"/>
		<updated>2021-11-08T10:50:04Z</updated>

		<summary type="html">&lt;p&gt;Timber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;br /&gt;
&lt;br /&gt;
== Lists and automatism ==&lt;br /&gt;
&lt;br /&gt;
We created scripts to export from our spreadsheet lists to XML files for Launchbox (and to be merged with the eXoDOS base pack XMLs)&lt;br /&gt;
&lt;br /&gt;
=== Google spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;The google spreadsheet (https://docs.google.com/spreadsheets/d/1x19Yw1ZnRYF1vwTXd9PTGxqZBQkkEtPmjiqlUUdq1oY/edit?usp=sharing) contains a sheet for every language. The eXoID column is filled automatically by script from the master sheet.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every language pack has it's own spreadsheet. Here's the one for the German language pack (GLP): https://docs.google.com/spreadsheets/d/1C1nRFVZkBHWodF7tOHm5hWA0YV45svLEQCUMCUl70dA &lt;br /&gt;
It needs a sheet called &amp;quot;*LP&amp;quot; (* for the language-letter, example: &amp;quot;GLP&amp;quot; for the German pack, &amp;quot;FLP&amp;quot; for the French pack, &amp;quot;PLP&amp;quot; for the polish pack ...), a sheet called &amp;quot;extras&amp;quot; and, if magazines shall be included, a sheet called &amp;quot;magazines&amp;quot;&lt;br /&gt;
All other sheets are optional.&lt;br /&gt;
&lt;br /&gt;
==== *LP sheet ===&lt;br /&gt;
&lt;br /&gt;
This sheet contains the games list. From this list the final XML file to be merged with eXoDOS' &amp;quot;MS-DOS.XML&amp;quot; is automatically created.&lt;br /&gt;
Therefor it needs the following columns:&lt;br /&gt;
&lt;br /&gt;
* A (&amp;quot;eXoID&amp;quot;) = cross matching to the eXoDOS master table (if the game is already in eXoDOS)&lt;br /&gt;
* D (&amp;quot;Game&amp;quot;) = it’s the title of the game in eXoDOS&lt;br /&gt;
* E (&amp;quot;LP Name&amp;quot;) = it’s the title of the game in the language pack (= will be set as an alternate title in LaunchBox)&lt;br /&gt;
* G (&amp;quot;batchname&amp;quot;) = it's the name of the game batch (game name (year)), important for the creation of the /eXo/util/!&amp;lt;language&amp;gt;/dosbox.txt&lt;br /&gt;
* H (&amp;quot;Folder&amp;quot;) = it’s the folder of the game in eXoDOS. It must be the same in the language pack for the batch files to work correct. eXo has build a language switch that checks the language-folder (eXo/eXoDOS/!dos/!german) for a game folder and lets the user select the language version to start the game with &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;checkup should be changed to the game name (year) batch file ... see  &amp;quot;Games packaging and localized names&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
* T (&amp;quot;added?&amp;quot;) = that column decides, which variant is used for the game (see chapter 4)&lt;br /&gt;
* W (&amp;quot;dosbox&amp;quot;) = contains the call for the dosbox-version - the eXo/util/!german/dosbox.txt is filled from that column (and the batchname column)&lt;br /&gt;
* AC („LB-ID“) = it’s the ID LaunchBox uses for connecting the game with it’s additional applications, alternate names and playlists in the xml files. The automation-script needs it to create the xml files for the language pack - for games that are already in eXoDOS it has to be the same as in eXoDOS base package (to link the language pack's additionalApplication to the original entry). For language pack exclusive games that aren't in eXoDOS base package, the LB-ID can be created with every UUID v4 generator (like https://www.uuidgenerator.net/version4)&lt;br /&gt;
&lt;br /&gt;
==== extras sheet ==== &lt;br /&gt;
This sheet contains the list of extras for a game.&lt;br /&gt;
The extra files themselves are placed in the folder: /eXo/eXoDOS/!dos/!&amp;lt;language&amp;gt;/&amp;lt;game folder&amp;gt;/Extras&lt;br /&gt;
The rows in this sheet are needed for the automation to create the &amp;quot;Additional Application&amp;quot; entries in the XML files&lt;br /&gt;
&lt;br /&gt;
* A-C (eXoID, LB-ID, game name) = these columns are filled automatically by writing a foldername in column D&lt;br /&gt;
* D (folder) = here the game folder name has to be used. from this the macros will fill columns A to C automatically. It's needed to cross match the entries with the game entries for creating the XML files afterwards&lt;br /&gt;
* E (filename) = the name + extension of the extras file (no folders needed)&lt;br /&gt;
* F (title) = the title or name of the File - it will be used for the Extras entry in the right-click menu of Launchbox&lt;br /&gt;
* G (english) = the title or name in english &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;(not used yet, but maybe we decide to switch the name in Launchbox to this, starting with &amp;quot;(&amp;lt;LANGUAGE&amp;gt;) &amp;quot;?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== magazines sheet ==== &lt;br /&gt;
&lt;br /&gt;
Here all game reviews, previews, hints ... that were found in magazines can be placed to enable direct linking of them to a game in the language pack.&lt;br /&gt;
The automation script will create an AdditionalApplication entry using sumatra pdf to open the magazin on the correct page for the game review (or preview or hints or whatever)&lt;br /&gt;
&lt;br /&gt;
the Magazines are placed in the folder /eXo/Magazines/!german/&amp;lt;Magazine-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== guides sheet ====&lt;br /&gt;
&lt;br /&gt;
same as magazines sheet but for game guides&lt;br /&gt;
&lt;br /&gt;
the guides are placed in the folder /eXo/Guides/!german/&lt;br /&gt;
&lt;br /&gt;
=== Language pack xml creation ===&lt;br /&gt;
The automation script creates the language pack xmls (french.xml and frenchfamily.xml). They contain all the entries that will be added to the MS-DOS.xml when the language pack is installed&lt;br /&gt;
It’s based on the google spreadsheet (see &amp;quot;Google spreadsheet&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;insert script listings here&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=370</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=370"/>
		<updated>2021-11-08T10:21:17Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Language Playlists */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
Every language pack comes with it’s own language games playlist. For example: French_Playlis.xml&lt;br /&gt;
It contains all the games of the language pack, whether they were added by the language pack or they were already in base-eXoDOS&lt;br /&gt;
On how the playlist is created look at the „lists and automatism“ section&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=369</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=369"/>
		<updated>2021-11-08T10:20:57Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* LaunchBox integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know...&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;It’s part of the „Add a game to the language pack“ section&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=368</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=368"/>
		<updated>2021-11-08T10:19:40Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Games packaging and localized names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;currently this works because the eXoDOS batch &amp;quot;searches&amp;quot; for the game folder, so this has to be named the same as in eXoDOS&lt;br /&gt;
But: the current way the games that only have extras but no language specific game in the language pack won't work. Because they also have the game folder (where the extras are in), the eXoDOS batch will find it and let the user choose the language, then tries to start the game name (year).bat, which isn't there...&lt;br /&gt;
So I think it needs to be the same file name as in eXoDOS (as long as the game is already in eXoDOS) and the eXoDOS batch has to be changed to look for the game name (year).bat instead of only the game name folder&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=367</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=367"/>
		<updated>2021-11-08T10:15:32Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Bat files localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: @echo off&lt;br /&gt;
: REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
: @chcp 65001&lt;br /&gt;
: cls&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=366</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=366"/>
		<updated>2021-11-08T10:15:08Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Bat files localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  @echo off&lt;br /&gt;
  REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
  @chcp 65001&lt;br /&gt;
  cls&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=365</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=365"/>
		<updated>2021-11-08T10:14:26Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Bat files localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures? - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
@echo off&lt;br /&gt;
REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
@chcp 65001&lt;br /&gt;
cls&lt;br /&gt;
'''&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=364</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=364"/>
		<updated>2021-11-08T10:14:10Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Bat files localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures?&lt;br /&gt;
 - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
@echo off&lt;br /&gt;
REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
@chcp 65001&lt;br /&gt;
cls&lt;br /&gt;
'''&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=363</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=363"/>
		<updated>2021-11-08T10:13:59Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Bat files localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;I think we should stick with ae/oe/ue and no special characters … &lt;br /&gt;
We need to use special editor-config to edit the batch files. A „normal“ edit with notepad would „destroy“ the file – I think that’s a high risk for failures?&lt;br /&gt;
 - needs to be discussed but maybe every language pack admin can decide himself?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
@echo off&lt;br /&gt;
REM call Codepage 65001 for UTF-8 accents support&lt;br /&gt;
@chcp 65001&lt;br /&gt;
cls&lt;br /&gt;
'''&lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\”-game folder - the file is always the same and can just be copied to every folder) &lt;br /&gt;
* exception.bat (optional in the game folder (&amp;quot;eXo\eXoDOS\!dos\!french\...&amp;quot;), mostly for scummvm games&lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat)&lt;br /&gt;
* Launch.bat (only once in &amp;quot;eXo\util&amp;quot;, moved to &amp;quot;eXo\util\!french&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=362</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=362"/>
		<updated>2021-11-08T10:09:22Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Setup and update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* Extraction of the xml files to the xml folder &lt;br /&gt;
* Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;Extraction of the localized config batch file&amp;lt;/span&amp;gt;&lt;br /&gt;
* Extraction of the localized util-folder files&lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to Data\Platforms as MS-DOS.xml &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes.&lt;br /&gt;
that’s the same with base-eXoDOS, it would overwrite the xml – I think manual changes shouldn‘t be considered&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better &lt;br /&gt;
user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as &lt;br /&gt;
full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs &lt;br /&gt;
to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch &lt;br /&gt;
files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-&lt;br /&gt;
us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat) &lt;br /&gt;
 &lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=361</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=361"/>
		<updated>2021-11-08T10:06:08Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS (examples are for the French language pack)&lt;br /&gt;
 &lt;br /&gt;
==== xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games. Functional equivalent of “ \eXo\eXoDOS” for regular eXoDOS&lt;br /&gt;
 &lt;br /&gt;
==== eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf, exception batch (optional)&lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; text-decoration: line-through;&amp;quot;&amp;gt;After discussion with eXo, this requires a little more work as it is probable LB just loads images based on its “region” settings. Open question is: are multiple regions supported for a single game, and if yes, will it fetch images in all region folders? This is a problem for existing games mainly, as new games (=not existing in eXoDOS) will be added with the proper region.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;I tested the whole image thing in LB. The regions currently set in Launchbox are „North America“ and „United States“ in this order. The Language pack setup has to add the language pack region and set the order to „&amp;lt;language pack language&amp;gt;“, „United States“, „North America“. LB loads the Images in this order then from the folders&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Is this really needed? It would be called in the eXo/util/!german/Launch.bat&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== eXo\util\!french ====&lt;br /&gt;
* Contains all localized util files:&lt;br /&gt;
** dosbox.txt (with the matching table for the games&amp;lt;-&amp;gt;dosbox version&lt;br /&gt;
** multiplayer.txt (with the matching table &amp;quot;game has multiplayer options&amp;quot;)&lt;br /&gt;
** openFolder.bat (the batch file to open the extras folder for the language pack (see &amp;quot;Launchbox integration&amp;quot;)&lt;br /&gt;
** Launch.bat (the batch that launches the games)&lt;br /&gt;
 &lt;br /&gt;
==== eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* §2.1: Extraction of the xml files to the xml folder &lt;br /&gt;
* §2.2: Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* §2.3: Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* §2.4: Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* §2.5: Extraction of the localized config batch file &lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to X:\eXoDOS\Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to X:\eXoDOS\Data\Platforms as MS-DOS.xml &lt;br /&gt;
This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes. &lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better &lt;br /&gt;
user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as &lt;br /&gt;
full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs &lt;br /&gt;
to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch &lt;br /&gt;
files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-&lt;br /&gt;
us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat) &lt;br /&gt;
 &lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
	<entry>
		<id>https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=360</id>
		<title>The Language Pack Concept</title>
		<link rel="alternate" type="text/html" href="https://wiki.retro-exo.com/index.php?title=The_Language_Pack_Concept&amp;diff=360"/>
		<updated>2021-11-08T09:56:26Z</updated>

		<summary type="html">&lt;p&gt;Timber: /* Core concepts overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Technical Specs ==&lt;br /&gt;
 &lt;br /&gt;
=== Core concepts overview ===&lt;br /&gt;
&lt;br /&gt;
Language Packs are “add-ons”. They need eXoDOS full installed. &lt;br /&gt;
Yet they are designed to be as separate as possible to avoid conflicts, overwrites and complicated merges that require parsing and validating existing data, at the cost of some potential data duplication. &lt;br /&gt;
&lt;br /&gt;
* Each language is a separate pack. Users can install several as they do not overlap&lt;br /&gt;
* Each language pack has its own release schedule, asynchronous from eXoDOS or other language packs&lt;br /&gt;
* Each language pack includes its own XML that its installer will merge in eXoDOS’ “MS-DOS.xml” leveraging the existing “merge.bat” util&lt;br /&gt;
* Each language pack includes its own Playlist (xml) with all games included in the language pack and all games, which are already included in eXoDOS and contain beside English among other also this language&lt;br /&gt;
* eXoDOS start scripts (batch files) always check if there are different language versions available and let the user select their prefered language&lt;br /&gt;
* For games that do not exist in base-eXoDOS, a new game entry is appended to MS-DOS.xml &lt;br /&gt;
* Multilanguage games (that may or may not exist in eXoDOS already) where language is set during installation or setup or through a change of files get their own standalone preconfigured entry, which implies duplication of sources&lt;br /&gt;
* Multilanguage games (that exist in eXoDOS already) where language is set during startup or ingame are linked to the base-eXoDOS entry in the language playlist&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
As separate add-ins, language pack files are stored in their own folder structure that plugs to &lt;br /&gt;
eXoDOS. &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\xml\french ====&lt;br /&gt;
* Contains the LB platform XML files (“french.xml” and “frenchfamily.xml”) that will be &lt;br /&gt;
merged into MS-DOS.xml in the same folder by the language pack setup. &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\eXo\eXoDOS\!french ====&lt;br /&gt;
* Contains all localized game zips and is the destination for installed games  &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\eXo\eXoDOS\!dos\!french ====&lt;br /&gt;
* Contains individual game folders that include localized install batch, game launch batch, &lt;br /&gt;
dosbox.conf  &lt;br /&gt;
* Each game folders contain an “Extras” subfolder for localized manual and other documents &lt;br /&gt;
as well as a localized Alternate Launcher.bat &lt;br /&gt;
* Functional equivalent of “X:\eXoDOS\eXo\eXoDOS\!dos” for regular eXoDOS &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\Images\MS-DOS\&amp;lt;image type&amp;gt;\France ====&lt;br /&gt;
* Localized game images should be stored in a regional subfolder for easier packing. &lt;br /&gt;
LaunchBox already has pre-configured folders such as France and Germany. A new folder &lt;br /&gt;
should be created if necessary. &lt;br /&gt;
&lt;br /&gt;
After discussion with eXo, this requires a little more work as it is probable LB just loads &lt;br /&gt;
images based on its “region” settings. Open question is: are multiple regions supported for a &lt;br /&gt;
single game, and if yes, will it fetch images in all region folders? This is a problem for existing &lt;br /&gt;
games mainly, as new games (=not existing in eXoDOS) will be added with the proper region. &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\eXo\dosbox ====&lt;br /&gt;
* Contains a localized config.bat file (renamed to config_FR.bat for French), for global DOSBox &lt;br /&gt;
settings management &lt;br /&gt;
 &lt;br /&gt;
==== X:\eXoDOS\eXo\LanguagePacks\french (YET TO BE DEFINED – Placeholder) ====&lt;br /&gt;
* Contains setup batch + other necessary files for language packs setup and management.  &lt;br /&gt;
 &lt;br /&gt;
My suggestion would be to include localized setup batches in every language pack in their &lt;br /&gt;
own folder, then instruct users to extract the language pack over their existing eXoDOS &lt;br /&gt;
installation, then browse to “LanguagePacks\French” and run setup_FR.bat there, for &lt;br /&gt;
example. This way in the case of several language packs installed, the setup files do not &lt;br /&gt;
overwrite each other in a different language, and we do not have to worry about asking the &lt;br /&gt;
user what languages he wants the setup in. The language of the setup is always in the &lt;br /&gt;
language of the pack it belongs to. Yet if it finds several language XML’s, it installs all of them &lt;br /&gt;
(see §3.2) &lt;br /&gt;
 &lt;br /&gt;
=== Setup and update ===&lt;br /&gt;
The full setup mechanism is still to be precisely defined at this stage. &lt;br /&gt;
&lt;br /&gt;
==== Existing base concepts: ====&lt;br /&gt;
* §2.1: Extraction of the xml files to the xml folder &lt;br /&gt;
* §2.2: Extraction of all localized game zips to the localized game folder &lt;br /&gt;
* §2.3: Extraction of all game files and extras to the localized “!dos” folder &lt;br /&gt;
* §2.4: Extraction of all pictures to the region-specific images folders &lt;br /&gt;
* §2.5: Extraction of the localized config batch file &lt;br /&gt;
 &lt;br /&gt;
==== XML Merging: ====&lt;br /&gt;
* Merge.bat parses all xml files in the xml folder and identifies installed language pack(s) &lt;br /&gt;
* Asks the user if he wants adult games or not to select the proper source XML from the &lt;br /&gt;
language pack(s) and the proper destination XML from the base eXoDOS install &lt;br /&gt;
* Merges the appropriate language pack(s) xml files into the chosen base xml. &lt;br /&gt;
** Adult games included: merges french.xml (+other installed language packs) into base &lt;br /&gt;
MS-DOS.xml, copy to X:\eXoDOS\Data\Platforms &lt;br /&gt;
** Adult games excluded: merges frenchfamily.xml (+other installed language packs) &lt;br /&gt;
into dosfamily.xml and copy to X:\eXoDOS\Data\Platforms as MS-DOS.xml &lt;br /&gt;
This implies every time a language pack is installed (be it for the first time or for an update), &lt;br /&gt;
it creates a new clean MS-DOS.xml, overwriting potential manual changes. &lt;br /&gt;
&lt;br /&gt;
=== Bat files localization ===&lt;br /&gt;
 &lt;br /&gt;
Game install and launch bat files need to have their “echo” instructions localized for a better &lt;br /&gt;
user experience. A template of files is created for each language.  &lt;br /&gt;
The download on demand mechanism is stripped out, as language packs will only be released as &lt;br /&gt;
full packages (no “lite” releases). &lt;br /&gt;
To support foreign languages accents and special characters, the codepage of batch files needs &lt;br /&gt;
to be changed to Unicode (UTF-8). This is done by adding these lines to the beginning of batch &lt;br /&gt;
files to call a codepage change to 65001 (ref: https://docs.microsoft.com/en-&lt;br /&gt;
us/windows/win32/intl/code-page-identifiers) &lt;br /&gt;
 &lt;br /&gt;
The files that need translation are: &lt;br /&gt;
* Install.bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Gamename (year).bat (in every “!dos\!french\” game folder) &lt;br /&gt;
* Alternate Launcher.bat (in every game folder “Extras” subfolder) &lt;br /&gt;
* Config.bat (only once in “eXo\Dosbox”, renamed to config_fr.bat) &lt;br /&gt;
 &lt;br /&gt;
=== Games packaging and localized names ===&lt;br /&gt;
Games are packaged in the same format as other eXoDOS games: GameName (year).zip &lt;br /&gt;
When an official localized name exists for a game, this should be used instead of the English &lt;br /&gt;
name. &lt;br /&gt;
 &lt;br /&gt;
=== LaunchBox integration ===&lt;br /&gt;
Three additional applications need to be merged into existing games, with the language as prefix &lt;br /&gt;
to sort them out properly: &lt;br /&gt;
&lt;br /&gt;
* Standard game &lt;br /&gt;
* Alternate Launcher (pixel perfect &amp;amp; shader options) &lt;br /&gt;
* Open Extras folder (for localized manuals and docs) &lt;br /&gt;
 &lt;br /&gt;
Example for Space Quest IV French: &lt;br /&gt;
 &lt;br /&gt;
“Open Folder.bat” is a simple batch: “explorer.exe .” that opens explorer from the folder the &lt;br /&gt;
batches is run from. &lt;br /&gt;
These new entries should also be localized themselves for consistency. &lt;br /&gt;
How it looks in the contextual menu: &lt;br /&gt;
 &lt;br /&gt;
What about new games that do not exist yet in eXoDOS? We just merge a full game entry in the &lt;br /&gt;
french.xml instead of an additional application? Unlikely scenario – what happens if two language &lt;br /&gt;
packs both insert the same game that doesn’t exist in eXoDOS (ie, a game that would only exist in &lt;br /&gt;
French and German but not English). Borderline, I know... &lt;br /&gt;
 &lt;br /&gt;
=== Language Playlists ===&lt;br /&gt;
To be defined... Timber? :D&lt;/div&gt;</summary>
		<author><name>Timber</name></author>
	</entry>
</feed>