1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-13 07:47:14 +03:00

Merge branch 'develop' into python3

This commit is contained in:
Athanasius 2020-07-05 19:41:07 +01:00
commit 1a18c2be9b
10 changed files with 617 additions and 22 deletions

View File

@ -1,6 +1,23 @@
This is the master changelog for Elite Dangerous Market Connector. Entries are in reverse chronological order (latest first).
---
Pre-Release 3.99.1.0
===
Consider this as 'beta1' for the following full '4.0.0.0' release.
* Actually include the new translations in the install: Serbian (Latin, Bosnia and Herzegovina) (175/175), Slovenian (Slovenia) (144/175).
* Fix a bug where if you copied a Journal file to the live location, resulting in a "Journal.YYMMDDHHMMss.XX - Copy.log" file,
the application would pick it up as 'new' and potentially re-send duplicate data to all of EDDN, EDSM and Inara.
Now the only files the application will take note of must:
1. Start with `Journal.` or `JournalBeta.`.
1. Have the 12-digit date/timestamp, followed by a `.`
1. Have the 2 digit serial number, followed by a `.`
1. Nothing else before the trailing `log`.
* Fix the 'Release Note' URL in the 'About' popup to use the correct format.
* Fix the location of Registry keys for the update checker, WinSparkle, to be under `EDMarketConnector` instead
of `EDMarketConnector.py`.
Pre-Release 3.99.0.0
===
Consider this as 'beta0' for the following full '4.0.0.0' release.

View File

@ -80,7 +80,7 @@ try:
# Get state from latest Journal file
try:
logdir = config.get('journaldir') or config.default_journal_dir
logfiles = sorted([x for x in os.listdir(logdir) if x.startswith('Journal') and x.endswith('.log')],
logfiles = sorted([x for x in os.listdir(logdir) if re.search('^Journal(Beta)?\.[0-9]{12}\.[0-9]{2}\.log$', x)],
key=lambda x: x.split('.')[1:])
logfile = join(logdir, logfiles[-1])
with open(logfile, 'r') as loghandle:

View File

@ -18,8 +18,8 @@
Description="$(var.PRODUCTLONGNAME) installer"
InstallerVersion="300" Compressed="yes"
Platform="x86"
Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,6170,1060,0" />
<!-- en cs, de es fi fr hu it ja nl pl pt-BR ru uk lv zh-CN pt-PT sr-Latn sr-Latn-BA sl neutral -->
Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,6170,1060,1053,0" />
<!-- en cs, de es fi fr hu it ja nl pl pt-BR ru uk lv zh-CN pt-PT sr-Latn sr-Latn-BA sl sv-SE neutral -->
<!-- https://msdn.microsoft.com/en-gb/goglobal/bb964664.aspx -->
<!-- Always reinstall since patching is problematic -->
@ -261,9 +261,18 @@
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\ru.strings" />
</Component>
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\sl.strings" />
</Component>
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\sr-Latn.strings" />
</Component>
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\sr-Latn-BA.strings" />
</Component>
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\sv-SE.strings" />
</Component>
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\uk.strings" />
</Component>
@ -561,11 +570,14 @@
<ComponentRef Id="ru.strings" />
<ComponentRef Id="select.pyd" />
<ComponentRef Id="ships.p" />
<ComponentRef Id="sl.strings" />
<ComponentRef Id="sr_Latn.strings" />
<ComponentRef Id="sr_Latn_BA.strings" />
<ComponentRef Id="snd_good.wav" />
<ComponentRef Id="snd_bad.wav" />
<ComponentRef Id="sqlite3.dll" />
<ComponentRef Id="stations.p" />
<ComponentRef Id="sv_SE.strings" />
<ComponentRef Id="systems.p" />
<ComponentRef Id="tcl86t.dll" />
<ComponentRef Id="tk86t.dll" />

525
L10n/sv-SE.strings Normal file
View File

@ -0,0 +1,525 @@
/* Language name */
"!Language" = "Svenska";
/* App menu entry on OSX. [EDMarketConnector.py] */
"About {APP}" = "Om {APP}";
/* Federation rank. [stats.py] */
"Admiral" = "Admiral";
/* Explorer rank. [stats.py] */
"Aimless" = "Aimless";
/* Appearance setting. [EDMarketConnector.py] */
"Always on top" = "Alltid överst";
/* CQC rank. [stats.py] */
"Amateur" = "Amatör";
/* EDSM setting. [edsm.py] */
"API Key" = "API Nyckel";
/* Tab heading in settings. [prefs.py] */
"Appearance" = "Utseende";
/* Successfully authenticated with the Frontier website. [EDMarketConnector.py] */
"Authentication successful" = "Autentisering lyckad";
/* Output setting. [prefs.py] */
"Automatically update on docking" = "Automatisk uppdatering vid dockning";
/* Cmdr stats. [stats.py] */
"Balance" = "Balance";
/* Empire rank. [stats.py] */
"Baron" = "Baron";
/* Trade rank. [stats.py] */
"Broker" = "Broker";
/* Folder selection button on Windows. [prefs.py] */
"Browse..." = "Bläddra...";
/* Federation rank. [stats.py] */
"Cadet" = "Cadet";
/* CQC rank. [stats.py] */
"Champion" = "Champion";
/* Folder selection button on OSX. [prefs.py] */
"Change..." = "Ändra...";
/* Menu item. [EDMarketConnector.py] */
"Check for Updates..." = "Sök efter uppdateringar...";
/* Federation rank. [stats.py] */
"Chief Petty Officer" = "Chief Petty Officer";
/* Main window. [EDMarketConnector.py] */
"Cmdr" = "Cmdr";
/* Ranking. [stats.py] */
"Combat" = "Combat";
/* EDSM setting. [edsm.py] */
"Commander Name" = "CMDR namn";
/* Combat rank. [stats.py] */
"Competent" = "Competent";
/* Tab heading in settings. [prefs.py] */
"Configuration" = "Konfiguration";
/* Update button in main window. [EDMarketConnector.py] */
"cooldown {SS}s" = "Vänta {SS}s";
/* As in Copy and Paste. [EDMarketConnector.py] */
"Copy" = "Kopiera";
/* Empire rank. [stats.py] */
"Count" = "Count";
/* Ranking. [stats.py] */
"CQC" = "CQC";
/* Combat rank. [stats.py] */
"Dangerous" = "Dangerous";
/* Appearance theme setting. [prefs.py] */
"Dark" = "Mörk";
/* Combat rank. [stats.py] */
"Deadly" = "Deadly";
/* Trade rank. [stats.py] */
"Dealer" = "Dealer";
/* Appearance theme and language setting. [l10n.py] */
"Default" = "Standard";
/* Output setting under 'Send system and scan data to the Elite Dangerous Data Network' new in E:D 2.2. [eddn.py] */
"Delay sending until docked" = "Sänd bara uppdatering när du är dockad";
/* Option to disabled Automatic Check For Updates whilst in-game [prefs.py] */
"Disable Automatic Application Updates Check when in-game" = "Leta inte efter programuppdateringar när spelet körs";
/* List of plugins in settings. [prefs.py] */
"Disabled Plugins" = "Avaktiverade plugins";
/* Help menu item. [EDMarketConnector.py] */
"Documentation" = "Dokumentation";
/* Empire rank. [stats.py] */
"Duke" = "Duke";
/* Location of the new Journal file in E:D 2.2. [EDMarketConnector.py] */
"E:D journal file location" = "E:D journal-fil sökväg";
/* Empire rank. [stats.py] */
"Earl" = "Earl";
/* Menu title. [EDMarketConnector.py] */
"Edit" = "Ändra";
/* Top rank. [stats.py] */
"Elite" = "Elite";
/* Section heading in settings. [edsm.py] */
"Elite Dangerous Star Map credentials" = "Elite Dangerous Star Map användaruppgifter";
/* Ranking. [stats.py] */
"Empire" = "Empire";
/* List of plugins in settings. [prefs.py] */
"Enabled Plugins" = "Aktiverade plugins";
/* Federation rank. [stats.py] */
"Ensign" = "Ensign";
/* Trade rank. [stats.py] */
"Entrepreneur" = "Entrepreneur";
/* [eddn.py] */
"Error: Can't connect to EDDN" = "Fel: Kan inte ansluta till EDDN";
/* [edsm.py] */
"Error: Can't connect to EDSM" = "Fel: Kan inte ansluta till EDSM";
/* [inara.py] */
"Error: Can't connect to Inara" = "Fel: Kan inte ansluta till Inara";
/* [edsm.py] */
"Error: EDSM {MSG}" = "Fel: EDSM {MSG}";
/* Raised when cannot contact the Companion API server. [companion.py] */
"Error: Frontier server is down" = "Fel: Frontier server okontaktbar";
/* Raised when Companion API server is returning old data, e.g. when the servers are too busy. [companion.py] */
"Error: Frontier server is lagging" = "Fel: Frontier lag på server";
/* Raised when the Companion API server thinks that the user has not purchased E:D. i.e. doesn't have the correct 'SKU'. [companion.py] */
"Error: Frontier server SKU problem" = "Fel: Frontier server SKU problem (licensnyckel)";
/* [inara.py] */
"Error: Inara {MSG}" = "Fel: Inara {MSG}";
/* [companion.py] */
"Error: Invalid Credentials" = "Fel: ogiltligt användarnamn eller lösenord";
/* Raised when the user has multiple accounts and the username/password setting is not for the account they're currently playing OR the user has reset their Cmdr and the Companion API server is still returning data for the old Cmdr. [companion.py] */
"Error: Wrong Cmdr" = "Fel: Fel användare. Har du flera konton eller en gammal API-nyckel från ett nollställt konto?";
/* Item in the File menu on Windows. [EDMarketConnector.py] */
"Exit" = "Avsluta";
/* Combat rank. [stats.py] */
"Expert" = "Expert";
/* Ranking. [stats.py] */
"Explorer" = "Explorer";
/* Ranking. [stats.py] */
"Federation" = "Federation";
/* [EDMarketConnector.py] */
"Fetching data..." = "Hämtar data...";
/* Multicrew role. [EDMarketConnector.py] */
"Fighter" = "Fighter";
/* Menu title. [EDMarketConnector.py] */
"File" = "Fil";
/* Section heading in settings. [prefs.py] */
"File location" = "Filsökväg";
/* CQC rank. [stats.py] */
"Gladiator" = "Gladiator";
/* Multicrew role. [EDMarketConnector.py] */
"Gunner" = "Gunner";
/* Combat rank. [stats.py] */
"Harmless" = "Harmless";
/* Multicrew role. [EDMarketConnector.py] */
"Helm" = "Helm";
/* Menu title. [EDMarketConnector.py] */
"Help" = "Hjälp";
/* CQC rank. [stats.py] */
"Helpless" = "Helpless";
/* CQC rank. [stats.py] */
"Hero" = "Hero";
/* Dark theme color setting. [prefs.py] */
"Highlighted text" = "Markerad text";
/* Hotkey/Shortcut settings prompt on Windows. [prefs.py] */
"Hotkey" = "Snabbkommando";
/* Section heading in settings. [inara.py] */
"Inara credentials" = "Inara autentiseringsuppgifter";
/* Hotkey/Shortcut settings prompt on OSX. [prefs.py] */
"Keyboard shortcut" = "Genväg, tangentbord";
/* Empire rank. [stats.py] */
"King" = "King";
/* Empire rank. [stats.py] */
"Knight" = "Knight";
/* Appearance setting prompt. [prefs.py] */
"Language" = "Språk";
/* [EDMarketConnector.py] */
"Last updated at {HH}:{MM}:{SS}" = "Senaste uppdatering: {HH}:{MM}:{SS}";
/* Federation rank. [stats.py] */
"Lieutenant" = "Lieutenant";
/* Federation rank. [stats.py] */
"Lieutenant Commander" = "Lieutenant Commander";
/* Cmdr stats. [stats.py] */
"Loan" = "Lån";
/* [EDMarketConnector.py] */
"Logging in..." = "Loggar in...";
/* Empire rank. [stats.py] */
"Lord" = "Lord";
/* [prefs.py] */
"Market data in CSV format file" = "Marknadsdata i CSV-formaterad fil";
/* [prefs.py] */
"Market data in Trade Dangerous format file" = "Marknadsdata i Trade Dangerous-formatterad fil";
/* Empire rank. [stats.py] */
"Marquis" = "Marquis";
/* Combat rank. [stats.py] */
"Master" = "Master";
/* Trade rank. [stats.py] */
"Merchant" = "Merchant";
/* Federation rank. [stats.py] */
"Midshipman" = "Midshipman";
/* Explorer rank. [stats.py] */
"Mostly Aimless" = "Mostly Aimless";
/* Combat rank. [stats.py] */
"Mostly Harmless" = "Mostly Harmless";
/* CQC rank. [stats.py] */
"Mostly Helpless" = "Mostly Helpless";
/* Trade rank. [stats.py] */
"Mostly Penniless" = "Mostly Penniless";
/* No hotkey/shortcut currently defined. [prefs.py] */
"None" = "Ingen";
/* Dark theme color setting. [prefs.py] */
"Normal text" = "Normal text";
/* Combat rank. [stats.py] */
"Novice" = "Novice";
/* [prefs.py] */
"OK" = "OK";
/* Hotkey/Shortcut setting. [prefs.py] */
"Only when Elite: Dangerous is the active app" = "Bara när: Elite Dangerous är det aktiva programmet";
/* Button that opens a folder in Explorer/Finder. [prefs.py] */
"Open" = "Öppna";
/* Shortcut settings button on OSX. [prefs.py] */
"Open System Preferences" = "Öppna systeminställningar";
/* Tab heading in settings. [prefs.py] */
"Output" = "Output";
/* Empire rank. [stats.py] */
"Outsider" = "Outsider";
/* Explorer rank. [stats.py] */
"Pathfinder" = "Pathfinder";
/* Trade rank. [stats.py] */
"Peddler" = "Peddler";
/* Trade rank. [stats.py] */
"Penniless" = "Penniless";
/* Federation rank. [stats.py] */
"Petty Officer" = "Petty Officer";
/* Explorer rank. [stats.py] */
"Pioneer" = "Pioneer";
/* Hotkey/Shortcut setting. [prefs.py] */
"Play sound" = "Spela ljud";
/* [prefs.py] */
"Please choose what data to save" = "Välj vilket data som skall lagras";
/* Tab heading in settings. [prefs.py] */
"Plugins" = "Plugins";
/* Section heading in settings. [prefs.py] */
"Plugins folder" = "Mapp för plugins";
/* Popup title: Warning about plugins without Python 3.x support [EDMarketConnector.py] */
"EDMC: Plugins Without Python 3.x Support" = "EDMC: Plugins utan stöd för Python 3.x";
/* Popup body: Warning about plugins without Python 3.x support [EDMarketConnector.py] */
"One or more of your enabled plugins do not yet have support for Python 3.x. Please see the list on the '{PLUGINS}' tab of '{FILE}' > '{SETTINGS}'. You should check if there is an updated version available, else alert the developer that they need to update the code for Python 3.x.\r\n\r\nYou can disable a plugin by renaming its folder to have '{DISABLED}' on the end of the name." = "En eller flera aktiverade plugins har inte stöd för Python 3.x. Var vänlig kontrollera listan med plugins under fliken '{PLUGINS}' under '{FILE}' > '{SETTINGS}'. Kontrollera om det finns en nyare version tillgänglig eller informera utvecklaren.\n\nDu kan också avaktivera din plugin genom att ändra slutet av namnet på mappen till '{DISABLED}'";
/* Settings>Plugins>Plugins without Python 3.x support [prefs.py] */
"Plugins Without Python 3.x Support" = "Plugins utan stöd för Python 3.x";
/* Settings>Plugins>Information on migrating plugins [prefs.py] */
"Information on migrating plugins" = "Information om migrering av plugins";
/* Federation rank. [stats.py] */
"Post Captain" = "Post Captain";
/* Federation rank. [stats.py] */
"Post Commander" = "Post Commander";
/* Ranking. [stats.py] */
"Powerplay" = "Powerplay";
/* [prefs.py] */
"Preferences" = "Inställningar";
/* Settings prompt for preferred ship loadout, system and station info websites. [prefs.py] */
"Preferred websites" = "Föredragna webbsidor";
/* Empire rank. [stats.py] */
"Prince" = "Prince";
/* Help menu item. [EDMarketConnector.py] */
"Privacy Policy" = "Privacy Policy";
/* CQC rank. [stats.py] */
"Professional" = "Professional";
/* Explorer rank. [stats.py] */
"Ranger" = "Ranger";
/* Power rank. [stats.py] */
"Rating 1" = "Rating 1";
/* Power rank. [stats.py] */
"Rating 2" = "Rating 2";
/* Power rank. [stats.py] */
"Rating 3" = "Rating 3";
/* Power rank. [stats.py] */
"Rating 4" = "Rating 4";
/* Power rank. [stats.py] */
"Rating 5" = "Rating 5";
/* Shortcut settings prompt on OSX. [prefs.py] */
"Re-start {APP} to use shortcuts" = "Starta om {APP} för att använda genvägar";
/* Federation rank. [stats.py] */
"Rear Admiral" = "Rear Admiral";
/* Federation rank. [stats.py] */
"Recruit" = "Recruit";
/* Help menu item. [EDMarketConnector.py] */
"Release Notes" = "Release Notes";
/* Multicrew role label in main window. [EDMarketConnector.py] */
"Role" = "Roll";
/* Menu item. [EDMarketConnector.py] */
"Save Raw Data..." = "Lagra rådata...";
/* Explorer rank. [stats.py] */
"Scout" = "Scout";
/* CQC rank. [stats.py] */
"Semi Professional" = "Semi Professional";
/* [edsm.py] */
"Send flight log and Cmdr status to EDSM" = "Sänd flight log-data och Cmdr-status till EDSM";
/* [inara.py] */
"Send flight log and Cmdr status to Inara" = "Sänd flight log-data och Cmdr-status till Inara";
/* Output setting. [eddn.py] */
"Send station data to the Elite Dangerous Data Network" = "Sänd stationsdata till Elite Dangerous Data Network";
/* Output setting new in E:D 2.2. [eddn.py] */
"Send system and scan data to the Elite Dangerous Data Network" = "Sänd system och scan-data till Elite Dangerous Data Network";
/* [eddn.py] */
"Sending data to EDDN..." = "Sänder data till EDDN...";
/* Empire rank. [stats.py] */
"Serf" = "Serf";
/* Item in the File menu on Windows. [EDMarketConnector.py] */
"Settings" = "Inställningar";
/* Main window. [EDMarketConnector.py] */
"Ship" = "Skepp";
/* Output setting. [prefs.py] */
"Ship loadout" = "Översikt av skepp";
/* Status dialog title. [stats.py] */
"Ships" = "Skepp";
/* Setting to decide which ship outfitting website to link to - either E:D Shipyard or Coriolis. [prefs.py] */
"Shipyard" = "Webbsida för översikt av skepp";
/* Empire rank. [stats.py] */
"Squire" = "Squire";
/* Main window. [EDMarketConnector.py] */
"Station" = "Station";
/* [EDMarketConnector.py] */
"Station doesn't have a market!" = "Stationen har ingen marknad!";
/* [EDMarketConnector.py] */
"Station doesn't have anything!" = "Stationen är tom!";
/* Menu item. [EDMarketConnector.py] */
"Status" = "Status";
/* Explorer rank. [stats.py] */
"Surveyor" = "Surveyor";
/* Main window. [EDMarketConnector.py] */
"System" = "System";
/* Appearance setting. [prefs.py] */
"Theme" = "Tema";
/* Help text in settings. [prefs.py] */
"Tip: You can disable a plugin by{CR}adding '{EXT}' to its folder name" = "Tips: du kan avaktivera en plugin genom{CR}att lägga till '{EXT}' på slutet av mappens namn";
/* Ranking. [stats.py] */
"Trade" = "Trade";
/* Explorer rank. [stats.py] */
"Trailblazer" = "Trailblazer";
/* Appearance theme setting. [prefs.py] */
"Transparent" = "Transparent";
/* Trade rank. [stats.py] */
"Tycoon" = "Tycoon";
/* Update button in main window. [EDMarketConnector.py] */
"Update" = "Uppdatera";
/* Status dialog subtitle - CR value of ship. [stats.py] */
"Value" = "Värde";
/* Federation rank. [stats.py] */
"Vice Admiral" = "Vice Admiral";
/* Menu title on OSX. [EDMarketConnector.py] */
"View" = "View";
/* Empire rank. [stats.py] */
"Viscount" = "Viscount";
/* Federation rank. [stats.py] */
"Warrant Officer" = "Warrant Officer";
/* Shouldn't happen. [EDMarketConnector.py] */
"What are you flying?!" = "Okänt skepp? (felmeddelande)";
/* Shouldn't happen. [EDMarketConnector.py] */
"Where are you?!" = "Vart är du? (felmeddelande)";
/* Shouldn't happen. [EDMarketConnector.py] */
"Who are you?!" = "Vem är du? (felmeddelande)";
/* Menu title on OSX. [EDMarketConnector.py] */
"Window" = "Fönster";
/* [EDMarketConnector.py] */
"You're not docked at a station!" = "Du är inte dockad vid en station!";
/* Shortcut settings prompt on OSX. [prefs.py] */
"{APP} needs permission to use shortcuts" = "{APP} behöver rättigheter för att använda genvägar";

View File

@ -8,7 +8,7 @@ from sys import platform
appname = 'EDMarketConnector'
applongname = 'E:D Market Connector'
appcmdname = 'EDMC'
appversion = '3.99.0.0'
appversion = '3.99.1.0'
copyright = u'© 2015-2019 Jonathan Harris, 2020 EDCD'
update_feed = 'https://raw.githubusercontent.com/EDCD/EDMarketConnector/releases/edmarketconnector.xml'
@ -200,13 +200,17 @@ class Config(object):
raise Exception()
# set WinSparkle defaults - https://github.com/vslavik/winsparkle/wiki/Registry-Settings
edcdhkey = HKEY()
if RegCreateKeyEx(HKEY_CURRENT_USER, r'Software\EDCD\EDMarketConnector', 0, None, 0, KEY_ALL_ACCESS, None, ctypes.byref(edcdhkey), ctypes.byref(disposition)):
raise Exception()
sparklekey = HKEY()
if not RegCreateKeyEx(self.hkey, 'WinSparkle', 0, None, 0, KEY_ALL_ACCESS, None, ctypes.byref(sparklekey), ctypes.byref(disposition)):
if not RegCreateKeyEx(edcdhkey, 'WinSparkle', 0, None, 0, KEY_ALL_ACCESS, None, ctypes.byref(sparklekey), ctypes.byref(disposition)):
if disposition.value == REG_CREATED_NEW_KEY:
buf = ctypes.create_unicode_buffer('1')
RegSetValueEx(sparklekey, 'CheckForUpdates', 0, 1, buf, len(buf)*2)
buf = ctypes.create_unicode_buffer(str(update_interval))
RegSetValueEx(sparklekey, 'UpdateInterval', 0, 1, buf, len(buf)*2)
buf = ctypes.create_unicode_buffer(str(update_interval))
RegSetValueEx(sparklekey, 'UpdateInterval', 0, 1, buf, len(buf)*2)
RegCloseKey(sparklekey)
if not self.get('outdir') or not isdir(self.get('outdir')):

View File

@ -53,6 +53,17 @@ There are other things that you should probably change, but can get away with le
1. appversion: The current version, e.g. '3.5.0.0'
1. update_feed: The URL where the application looks for current latest version information. This URL should be hosting a renamed (so the full URL doesn't change over application versions) version of the appcast_win_<version>.xml file. The original upstream value is `https://marginal.org.uk/edmarketconnector.xml`
Pre-Packaging Steps
===
Before you create a new install each time you should:
1. Ensure the data sourced from coriolis.io is up to date and works:
1. Update the `coriolis-data` repo.
1. Run `coriolis.py` to update `modules.p` and `ships.p`
1. XXX: Test ?
1. Ensure translations are up to date, see [Translations.md](Translations.md).
1. Increase `appversion` in `config.py` to reflect the changes. See ['Version conventions' in Contributing.md](https://github.com/EDCD/EDMarketConnector/blob/develop/Contributing.md#version-conventions).
Packaging & Installer Generation
---
You'll want to do the .exe and .msi generation in a `cmd.exe` window, not e.g. a 'Git bash' window.

View File

@ -73,19 +73,43 @@ Adding a New Language
===
To add a new language to the app:
1. open [EDMarketConnector - Miscellaneous Manage Languages](https://marginal.oneskyapp.com/admin/project/languages/project/52710)
1. Search for the language.
1. Ensure you have the correct one if there are variants.
1. Click the `+` on the right hand side to add the language.
1. Add it to the OneSkyApp project:
1. open [EDMarketConnector - Miscellaneous Manage Languages](https://marginal.oneskyapp.com/admin/project/languages/project/52710)
1. Search for the language.
1. Ensure you have the correct one if there are variants.
1. Click the `+` on the right hand side to add the language.
1. Be sure to go through and Finalize any phrases that shouldn't be translated. See [Translations]() in the Wiki.
Remember that until there are translations all strings will default to the English version (actually the key, which is always specified in English).
Remember that until there are translations all strings will default to the English version (actually the key, which is always specified in English).
You will also want to add it to the installer. This is simple enough, only requiring you add a number to an array in `EDMarketConnector.wxs`.
1. You need to get the new `.string` file added to the files the installer will install:
1. Edit `EDMarketConnector.wxs` to add an appropriate section to the:
`<Directory Id="L10n" Name="L10n">`
section, e.g.:
<Component Guid="*">
<File KeyPath="yes" Source="SourceDir\L10n\sr-Latn-BA.strings" />
</Component>`
1. You also need to add a line in the:
<Feature Id='Complete' Level='1'>
section, e.g.:
<ComponentRef Id="sr_Latn_BA.strings" />
Note how the `-` characters have been changed to `_`. If needs be run the build process once and look out for
lines like:
\EDMarketConnector\EDMarketConnector.wxs(264) : error LGHT0204 : ICE21: Component: 'sr_Latn_BA.strings' does not belong to any Feature.
to see what the applicable string is.
1. In `EDMarketConnector.wxs` find the line beginning `Languages="1033,`, e.g.
1. You will also want to add it to the installer's languages. This is simple enough, only requiring you add a number to an array in `EDMarketConnector.wxs`.
Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,6170,0" />
1. Now you'll need to consult the latest [[MS-LCID]: Windows Language Code Identifier (LCID) Reference](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f) for the correct numerical code to add to the list.
1. Convert the hexadecimal Language ID to the equivalent in decimal.
1. Add the new decimal value as the last but one value in the list, keeping the `,0` at the end.
1. Update the comment on the next line to reflect what you added.
1. In `EDMarketConnector.wxs` find the line beginning `Languages="1033,`, e.g.
Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,6170,0" />
1. Now you'll need to consult the latest [[MS-LCID]: Windows Language Code Identifier (LCID) Reference](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f) for the correct numerical code to add to the list.
1. Convert the hexadecimal Language ID to the equivalent in decimal.
1. Add the new decimal value as the last but one value in the list, keeping the `,0` at the end.
1. Update the comment on the next line to reflect what you added.

BIN
modules.p

Binary file not shown.

View File

@ -129,7 +129,7 @@ class EDLogs(FileSystemEventHandler):
# Latest pre-existing logfile - e.g. if E:D is already running. Assumes logs sort alphabetically.
# Do this before setting up the observer in case the journal directory has gone away
try:
logfiles = sorted([x for x in listdir(self.currentdir) if x.startswith('Journal') and x.endswith('.log')],
logfiles = sorted([x for x in listdir(self.currentdir) if re.search('^Journal(Beta)?\.[0-9]{12}\.[0-9]{2}\.log$', x)],
key=lambda x: x.split('.')[1:])
self.logfile = logfiles and join(self.currentdir, logfiles[-1]) or None
except:
@ -188,7 +188,7 @@ class EDLogs(FileSystemEventHandler):
def on_created(self, event):
# watchdog callback, e.g. client (re)started.
if not event.is_directory and basename(event.src_path).startswith('Journal') and basename(event.src_path).endswith('.log'):
if not event.is_directory and re.search('^Journal(Beta)?\.[0-9]{12}\.[0-9]{2}\.log$', basename(event.src_path)):
self.logfile = event.src_path
def worker(self):
@ -248,7 +248,7 @@ class EDLogs(FileSystemEventHandler):
else:
# Poll
try:
logfiles = sorted([x for x in listdir(self.currentdir) if x.startswith('Journal') and x.endswith('.log')],
logfiles = sorted([x for x in listdir(self.currentdir) if re.search('^Journal(Beta)?\.[0-9]{12}\.[0-9]{2}\.log$', x)],
key=lambda x: x.split('.')[1:])
newlogfile = logfiles and join(self.currentdir, logfiles[-1]) or None
except:

View File

@ -85,6 +85,8 @@ elif platform == 'linux':
XQueryTree.argtypes = [POINTER(Display), Window, POINTER(Window), POINTER(Window), POINTER(Window), POINTER(c_uint)]
XQueryTree.restype = c_int
dpy = xlib.XOpenDisplay(None)
if not dpy:
raise Exception("Can't find your display, can't continue")
motif_wm_hints_property = XInternAtom(dpy, b'_MOTIF_WM_HINTS', False)
motif_wm_hints_normal = MotifWmHints(MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS,
MWM_FUNC_RESIZE | MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE | MWM_FUNC_CLOSE,