mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-28 04:00:46 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe8b562dc6 | ||
|
|
a35b5a4d1a | ||
|
|
63df2ba4aa | ||
|
|
9656a2c167 | ||
|
|
50732f2864 | ||
|
|
6bb97b1342 | ||
|
|
fa520b8202 | ||
|
|
1fe3fcdfd4 | ||
|
|
4c6e9113d2 | ||
|
|
a53cb95645 |
@@ -226,6 +226,7 @@
|
||||
<EmbeddedResource Include="Localization\Strings.pt-PT.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.ro-RO.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.ru-RU.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.sk-SK.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.sr-CS.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.sr-SP.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.sv-SE.resx" />
|
||||
|
||||
@@ -42,6 +42,8 @@ using SteamKit2.Internal;
|
||||
|
||||
namespace ArchiSteamFarm {
|
||||
internal sealed class Bot : IDisposable {
|
||||
internal const byte MinPlayingBlockedTTL = 60; // Delay in seconds added when account was occupied during our disconnect, to not disconnect other Steam client session too soon
|
||||
|
||||
private const ushort CallbackSleep = 500; // In miliseconds
|
||||
private const byte FamilySharingInactivityMinutes = 5;
|
||||
private const byte LoginCooldownInMinutes = 25; // Captcha disappears after around 20 minutes, so we make it 25
|
||||
@@ -99,6 +101,8 @@ namespace ArchiSteamFarm {
|
||||
[JsonProperty]
|
||||
internal bool KeepRunning { get; private set; }
|
||||
|
||||
internal bool PlayingWasBlocked { get; private set; }
|
||||
|
||||
[JsonProperty]
|
||||
private EAccountFlags AccountFlags;
|
||||
|
||||
@@ -112,7 +116,7 @@ namespace ArchiSteamFarm {
|
||||
private ulong LibraryLockedBySteamID;
|
||||
private bool LootingAllowed = true;
|
||||
private bool PlayingBlocked;
|
||||
private bool PlayingWasBlocked;
|
||||
private Timer PlayingWasBlockedTimer;
|
||||
private Timer SendItemsTimer;
|
||||
private bool SkipFirstShutdown;
|
||||
private string TwoFactorCode;
|
||||
@@ -584,9 +588,9 @@ namespace ArchiSteamFarm {
|
||||
case "!PASSWORD":
|
||||
return ResponsePassword(steamID);
|
||||
case "!PAUSE":
|
||||
return await ResponsePause(steamID, false).ConfigureAwait(false);
|
||||
case "!PAUSE^":
|
||||
return await ResponsePause(steamID, true).ConfigureAwait(false);
|
||||
case "!PAUSE~":
|
||||
return await ResponsePause(steamID, false).ConfigureAwait(false);
|
||||
case "!REJOINCHAT":
|
||||
return ResponseRejoinChat(steamID);
|
||||
case "!RESUME":
|
||||
@@ -645,9 +649,9 @@ namespace ArchiSteamFarm {
|
||||
case "!PASSWORD":
|
||||
return await ResponsePassword(steamID, args[1]).ConfigureAwait(false);
|
||||
case "!PAUSE":
|
||||
return await ResponsePause(steamID, args[1], false).ConfigureAwait(false);
|
||||
case "!PAUSE^":
|
||||
return await ResponsePause(steamID, args[1], true).ConfigureAwait(false);
|
||||
case "!PAUSE~":
|
||||
return await ResponsePause(steamID, args[1], false).ConfigureAwait(false);
|
||||
case "!PLAY":
|
||||
if (args.Length > 2) {
|
||||
return await ResponsePlay(steamID, args[1], args[2]).ConfigureAwait(false);
|
||||
@@ -729,6 +733,8 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private void CheckOccupationStatus() {
|
||||
StopPlayingWasBlockedTimer();
|
||||
|
||||
if (!IsPlayingPossible) {
|
||||
ArchiLogger.LogGenericInfo(Strings.BotAccountOccupied);
|
||||
PlayingWasBlocked = true;
|
||||
@@ -1247,6 +1253,7 @@ namespace ArchiSteamFarm {
|
||||
LastLogOnResult = EResult.Invalid;
|
||||
HeartBeatFailures = 0;
|
||||
StopConnectionFailureTimer();
|
||||
StopPlayingWasBlockedTimer();
|
||||
|
||||
ArchiLogger.LogGenericInfo(Strings.BotDisconnected);
|
||||
|
||||
@@ -1433,11 +1440,6 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
// We trigger OnNewGameAdded() anyway, as CardsFarmer has other things to handle regardless of being Paused or not
|
||||
if (PlayingWasBlocked) {
|
||||
await Task.Delay(60 * 1000).ConfigureAwait(false);
|
||||
PlayingWasBlocked = false;
|
||||
}
|
||||
|
||||
await CardsFarmer.OnNewGameAdded().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -1501,6 +1503,15 @@ namespace ArchiSteamFarm {
|
||||
LibraryLockedBySteamID = TwoFactorCodeFailures = 0;
|
||||
PlayingBlocked = false;
|
||||
|
||||
if (PlayingWasBlocked && (PlayingWasBlockedTimer == null)) {
|
||||
PlayingWasBlockedTimer = new Timer(
|
||||
e => ResetPlayingWasBlockedWithTimer(),
|
||||
null,
|
||||
TimeSpan.FromSeconds(MinPlayingBlockedTTL), // Delay
|
||||
Timeout.InfiniteTimeSpan // Period
|
||||
);
|
||||
}
|
||||
|
||||
AccountFlags = callback.AccountFlags;
|
||||
|
||||
if (IsAccountLimited) {
|
||||
@@ -1765,6 +1776,11 @@ namespace ArchiSteamFarm {
|
||||
ArchiHandler.PlayGames(BotConfig.GamesPlayedWhileIdle, BotConfig.CustomGamePlayedWhileIdle);
|
||||
}
|
||||
|
||||
private void ResetPlayingWasBlockedWithTimer() {
|
||||
PlayingWasBlocked = false;
|
||||
StopPlayingWasBlockedTimer();
|
||||
}
|
||||
|
||||
private async Task<string> Response2FA(ulong steamID) {
|
||||
if (steamID == 0) {
|
||||
ArchiLogger.LogNullError(nameof(steamID));
|
||||
@@ -2382,8 +2398,10 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!IsMaster(steamID) && !SteamFamilySharingIDs.Contains(steamID)) {
|
||||
return null;
|
||||
if (!IsMaster(steamID)) {
|
||||
if (sticky || !SteamFamilySharingIDs.Contains(steamID)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsConnectedAndLoggedOn) {
|
||||
@@ -3153,6 +3171,15 @@ namespace ArchiSteamFarm {
|
||||
FamilySharingInactivityTimer = null;
|
||||
}
|
||||
|
||||
private void StopPlayingWasBlockedTimer() {
|
||||
if (PlayingWasBlockedTimer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayingWasBlockedTimer.Dispose();
|
||||
PlayingWasBlockedTimer = null;
|
||||
}
|
||||
|
||||
[Flags]
|
||||
private enum ERedeemFlags : byte {
|
||||
None = 0,
|
||||
|
||||
@@ -27,6 +27,7 @@ using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -187,6 +188,15 @@ namespace ArchiSteamFarm {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Bot.PlayingWasBlocked) {
|
||||
await Task.Delay(Bot.MinPlayingBlockedTTL * 1000).ConfigureAwait(false);
|
||||
|
||||
if (!Bot.IsPlayingPossible) {
|
||||
Bot.ArchiLogger.LogGenericInfo(Strings.PlayingNotAvailable);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
KeepFarming = NowFarming = true;
|
||||
} finally {
|
||||
FarmingSemaphore.Release();
|
||||
@@ -477,7 +487,7 @@ namespace ArchiSteamFarm {
|
||||
continue;
|
||||
}
|
||||
|
||||
name = name.Substring(nameStartIndex, nameEndIndex - nameStartIndex);
|
||||
name = WebUtility.HtmlDecode(name.Substring(nameStartIndex, nameEndIndex - nameStartIndex));
|
||||
|
||||
// We have two possible cases here
|
||||
// Either we have decent info about appID, name, hours and cardsRemaining (cardsRemaining > 0)
|
||||
|
||||
@@ -343,7 +343,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by max number of games, {1} will be replaced by name of the configuration property</comment>
|
||||
</data>
|
||||
<data name="WarningWCFIgnoringCommand" xml:space="preserve">
|
||||
<value>WCF příkaz je ignorován, protože – klient nebyl zadán: {0}</value>
|
||||
<value>WCF příkaz je ignorován, protože --client nebyl zadán: {0}</value>
|
||||
<comment>{0} will be replaced by WCF command</comment>
|
||||
</data>
|
||||
<data name="ErrorWCFAddressAccessDeniedException" xml:space="preserve">
|
||||
|
||||
@@ -184,7 +184,7 @@ Trazo de pila:
|
||||
<value>¡No se pudo comprobar la última versión!</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateNoAssetForThisBinary" xml:space="preserve">
|
||||
<value>¡No se puede continuar con la actualización porque no hay ningún recurso que se relacione con el binario que se está ejecutando! ¡Por favor asegúrese que el binario de ASF esté nombrado correctamente!</value>
|
||||
<value>¡No se puede proceder con la actualización porque no hay ningún objeto que se relacione con el binario ejecutándose! ¡Por favor asegúrese que el binario de ASF esté nombrado correctamente!</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateNoAssets" xml:space="preserve">
|
||||
<value>¡No se puede continuar con una actualización porque esa versión no incluye ningún recurso!</value>
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
<comment>{0} will be replaced by name of the configuration property, {1} will be replaced by invalid value</comment>
|
||||
</data>
|
||||
<data name="ErrorEarlyFatalExceptionInfo" xml:space="preserve">
|
||||
<value>ASF V{0} heeft een fatale uitzonderingsfout veroorzaakt voordat het hoofd logboek module in staat was om te initialiseren!</value>
|
||||
<value>ASF V{0} heeft een fatale uitzonderingsfout veroorzaakt voordat het hoofd logboekmodule in staat was om te initialiseren!</value>
|
||||
<comment>{0} will be replaced by version number</comment>
|
||||
</data>
|
||||
<data name="ErrorEarlyFatalExceptionPrint" xml:space="preserve">
|
||||
@@ -173,7 +173,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>De oude ASF binary kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<value>Het oude ASF BIN-bestand kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
@@ -190,7 +190,7 @@ StackTrace:
|
||||
<value>Kon niet verdergaan met de update omdat deze versie niet alle bestanden omvat!</value>
|
||||
</data>
|
||||
<data name="ErrorUserInputRunningInHeadlessMode" xml:space="preserve">
|
||||
<value>Aanvraag voor gebruikersinvoer ontvangen, maar het proces draait in headless mode!</value>
|
||||
<value>Aanvraag voor gebruikersinvoer ontvangen, maar het proces draait in de headless mode!</value>
|
||||
</data>
|
||||
<data name="ErrorWCFAccessDenied" xml:space="preserve">
|
||||
<value>Het verzoek wordt niet in behandeling genomen omdat SteamOwnerID niet is ingesteld!</value>
|
||||
@@ -223,7 +223,7 @@ StackTrace:
|
||||
<value>Sessie wordt ververst!</value>
|
||||
</data>
|
||||
<data name="RejectingTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt afgewezen</value>
|
||||
<value>Ruilaanbieding {0} wordt geweigerd</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="Restarting" xml:space="preserve">
|
||||
@@ -289,7 +289,7 @@ StackTrace:
|
||||
<value>Controleren op nieuwe versie...</value>
|
||||
</data>
|
||||
<data name="UpdateDownloadingNewVersion" xml:space="preserve">
|
||||
<value>Nieuwe versie wordt gedownload... Als je het gedane werk waardeert, overweeg tijdens het wachten om te doneren! :)</value>
|
||||
<value>Nieuwe versie wordt gedownload... Als je het gedane werk waardeert, overweeg dan tijdens het wachten om te doneren! :)</value>
|
||||
</data>
|
||||
<data name="UpdateFinished" xml:space="preserve">
|
||||
<value>Bijwerken afgerond!</value>
|
||||
@@ -307,11 +307,11 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteam2FA" xml:space="preserve">
|
||||
<value>Voer de 2FA code in van jouw Steam authenticator app: </value>
|
||||
<value>Voer de 2FA code in van je Steam authenticator app: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Voer de SteamGuard auth code in die naar jouw e-mail is verzonden: </value>
|
||||
<value>Voer de SteamGuard authenticator-code in die naar jouw e-mail is verzonden: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
@@ -323,7 +323,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamPassword" xml:space="preserve">
|
||||
<value>Voer jouw Steam wachtwoord in: </value>
|
||||
<value>Voer je Steam wachtwoord in: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputUnknown" xml:space="preserve">
|
||||
@@ -615,10 +615,10 @@ StackTrace:
|
||||
<value>Bot is niet actief.</value>
|
||||
</data>
|
||||
<data name="BotStatusPaused" xml:space="preserve">
|
||||
<value>Bot {0} is gepauzeerd of wordt uitgevoerd in de handmatige modus.</value>
|
||||
<value>Bot is gepauzeerd of wordt uitgevoerd in de handmatige modus.</value>
|
||||
</data>
|
||||
<data name="BotStatusPlayingNotAvailable" xml:space="preserve">
|
||||
<value>De bot is momenteel in gebruik.</value>
|
||||
<value>Bot is momenteel in gebruik.</value>
|
||||
</data>
|
||||
<data name="BotUnableToConnect" xml:space="preserve">
|
||||
<value>Kan geen verbinding maken met Steam: {0}</value>
|
||||
@@ -711,7 +711,7 @@ StackTrace:
|
||||
<value>Deze functie is alleen beschikbaar in de headless mode!</value>
|
||||
</data>
|
||||
<data name="BotOwnedAlready" xml:space="preserve">
|
||||
<value>Reeds in bezit: {0}</value>
|
||||
<value>Al in bezit: {0}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
<comment>{0} will be replaced by name of the configuration property, {1} will be replaced by invalid value</comment>
|
||||
</data>
|
||||
<data name="ErrorEarlyFatalExceptionInfo" xml:space="preserve">
|
||||
<value>ASF V{0} heeft een fatale uitzonderingsfout veroorzaakt voordat het hoofd logboek module in staat was om te initialiseren!</value>
|
||||
<value>ASF V{0} heeft een fatale uitzonderingsfout veroorzaakt voordat het hoofd logboekmodule in staat was om te initialiseren!</value>
|
||||
<comment>{0} will be replaced by version number</comment>
|
||||
</data>
|
||||
<data name="ErrorEarlyFatalExceptionPrint" xml:space="preserve">
|
||||
@@ -173,7 +173,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>De oude ASF binary kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<value>Het oude ASF BIN-bestand kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
@@ -190,7 +190,7 @@ StackTrace:
|
||||
<value>Kan niet verdergaan met update omdat deze versie niet alle bestanden omvat!</value>
|
||||
</data>
|
||||
<data name="ErrorUserInputRunningInHeadlessMode" xml:space="preserve">
|
||||
<value>Aanvraag voor gebruikersinvoer ontvangen, maar het proces draait in headless mode!</value>
|
||||
<value>Aanvraag voor gebruikersinvoer ontvangen, maar het proces draait in de headless mode!</value>
|
||||
</data>
|
||||
<data name="ErrorWCFAccessDenied" xml:space="preserve">
|
||||
<value>Het verzoek wordt niet in behandeling genomen omdat SteamOwnerID niet is ingesteld!</value>
|
||||
@@ -223,7 +223,7 @@ StackTrace:
|
||||
<value>Sessie wordt ververst!</value>
|
||||
</data>
|
||||
<data name="RejectingTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt afgewezen</value>
|
||||
<value>Ruilaanbieding {0} wordt geweigerd</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="Restarting" xml:space="preserve">
|
||||
@@ -289,7 +289,7 @@ StackTrace:
|
||||
<value>Controleren op nieuwe versie...</value>
|
||||
</data>
|
||||
<data name="UpdateDownloadingNewVersion" xml:space="preserve">
|
||||
<value>Nieuwe versie wordt gedownload... Als je het gedane werk waardeert, overweeg tijdens het wachten om te doneren! :)</value>
|
||||
<value>Nieuwe versie wordt gedownload... Als je het gedane werk waardeert, overweeg dan tijdens het wachten om te doneren! :)</value>
|
||||
</data>
|
||||
<data name="UpdateFinished" xml:space="preserve">
|
||||
<value>Bijwerken afgerond!</value>
|
||||
@@ -307,11 +307,11 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteam2FA" xml:space="preserve">
|
||||
<value>Voer de 2FA code in van jouw Steam authenticator app: </value>
|
||||
<value>Voer de 2FA code in van je Steam authenticator app: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Voer de SteamGuard auth code in die naar jouw e-mail is verzonden: </value>
|
||||
<value>Voer de SteamGuard authenticator-code in die naar jouw e-mail is verzonden: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
@@ -323,7 +323,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamPassword" xml:space="preserve">
|
||||
<value>Voer jouw Steam wachtwoord in: </value>
|
||||
<value>Voer je Steam wachtwoord in: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputUnknown" xml:space="preserve">
|
||||
@@ -615,10 +615,10 @@ StackTrace:
|
||||
<value>Bot is niet actief.</value>
|
||||
</data>
|
||||
<data name="BotStatusPaused" xml:space="preserve">
|
||||
<value>Bot {0} is gepauzeerd of wordt uitgevoerd in de handmatige modus.</value>
|
||||
<value>Bot is gepauzeerd of wordt uitgevoerd in de handmatige modus.</value>
|
||||
</data>
|
||||
<data name="BotStatusPlayingNotAvailable" xml:space="preserve">
|
||||
<value>De bot is momenteel in gebruik.</value>
|
||||
<value>Bot is momenteel in gebruik.</value>
|
||||
</data>
|
||||
<data name="BotUnableToConnect" xml:space="preserve">
|
||||
<value>Kan geen verbinding maken met Steam: {0}</value>
|
||||
@@ -677,7 +677,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by service name that is being initialized</comment>
|
||||
</data>
|
||||
<data name="WarningPrivacyPolicy" xml:space="preserve">
|
||||
<value>Raadpleeg ons privacybeleid op de ASF Wiki als je bezorgd bent over wat ASF precies doet!</value>
|
||||
<value>Bij twijfel of onduidelijkheid, raadpleeg ons privacybeleid op de ASF Wiki om meer te weten te komen wat ASF precies doet!</value>
|
||||
</data>
|
||||
<data name="Welcome" xml:space="preserve">
|
||||
<value>Het lijkt erop dat je het programma voor het eerst start, welkom!</value>
|
||||
@@ -711,7 +711,7 @@ StackTrace:
|
||||
<value>Deze functie is alleen beschikbaar in de headless mode!</value>
|
||||
</data>
|
||||
<data name="BotOwnedAlready" xml:space="preserve">
|
||||
<value>Reeds in bezit: {0}</value>
|
||||
<value>Al in bezit: {0}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
290
ArchiSteamFarm/Localization/Strings.sk-SK.resx
Normal file
290
ArchiSteamFarm/Localization/Strings.sk-SK.resx
Normal file
@@ -0,0 +1,290 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string"/>
|
||||
<xsd:attribute name="type" type="xsd:string"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string"/>
|
||||
<xsd:attribute name="name" type="xsd:string"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
@@ -118,7 +118,7 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AcceptingTrade" xml:space="preserve">
|
||||
<value>Ухвалення обміну: {0}</value>
|
||||
<value>Прийняття обміну: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="AutoUpdateCheckInfo" xml:space="preserve">
|
||||
@@ -466,7 +466,7 @@
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="BotAcceptingGift" xml:space="preserve">
|
||||
<value>Приймання подарунку: {0}...</value>
|
||||
<value>Прийняття подарунку: {0}...</value>
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
<data name="BotAccountLimited" xml:space="preserve">
|
||||
@@ -513,10 +513,10 @@
|
||||
<value>Автоматичну роботу вже відновлено!</value>
|
||||
</data>
|
||||
<data name="BotConnected" xml:space="preserve">
|
||||
<value>Підключення до Steam!</value>
|
||||
<value>Підключено до Steam!</value>
|
||||
</data>
|
||||
<data name="BotDisconnected" xml:space="preserve">
|
||||
<value>Відключення від Steam!</value>
|
||||
<value>Відключено від Steam!</value>
|
||||
</data>
|
||||
<data name="BotDisconnecting" xml:space="preserve">
|
||||
<value>Відключення...</value>
|
||||
@@ -533,7 +533,7 @@
|
||||
<comment>{0} will be replaced by maximum allowed number of failed 2FA attempts</comment>
|
||||
</data>
|
||||
<data name="BotLoggedOff" xml:space="preserve">
|
||||
<value>Вихід з Steam: {0}</value>
|
||||
<value>Вийшов зі Steam: {0}</value>
|
||||
<comment>{0} will be replaced by logging off reason (string)</comment>
|
||||
</data>
|
||||
<data name="BotLoggedOn" xml:space="preserve">
|
||||
@@ -621,7 +621,7 @@
|
||||
<value>Бот зараз використовується.</value>
|
||||
</data>
|
||||
<data name="BotUnableToConnect" xml:space="preserve">
|
||||
<value>Неможливо з'єднатися з Steam: {0}</value>
|
||||
<value>Неможливо з'єднатися зі Steam: {0}</value>
|
||||
<comment>{0} will be replaced by failure reason (string)</comment>
|
||||
</data>
|
||||
<data name="BotUnableToLogin" xml:space="preserve">
|
||||
|
||||
@@ -141,12 +141,17 @@
|
||||
<value>例外錯誤︰ {0}() {1} 堆疊追蹤:{2}</value>
|
||||
<comment>{0} will be replaced by function name, {1} will be replaced by exception message, {2} will be replaced by entire stack trace. Please note that this string should include newlines for formatting.</comment>
|
||||
</data>
|
||||
|
||||
<data name="ErrorExitingWithNonZeroErrorCode" xml:space="preserve">
|
||||
<value>正在退出並伴隨著非零的shell錯誤代碼!</value>
|
||||
</data>
|
||||
<data name="ErrorFailingRequest" xml:space="preserve">
|
||||
<value>請求失敗︰ {0}</value>
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>全域設置無法載入,請確保 {0} 存在並且是有效路徑!如果仍有疑惑,請參照 wiki 上的設定指南。</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" xml:space="preserve">
|
||||
<value>{0} 無效 !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
@@ -165,8 +170,14 @@
|
||||
<value>分析 {0} 失敗 !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>無法刪除舊的 ASF 檔案,請依序手動刪除 {0} ,使更新功能正常運作!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
<value>嘗試請求 {0} 次後失敗!</value>
|
||||
<comment>{0} will be replaced by maximum number of tries</comment>
|
||||
</data>
|
||||
<data name="ErrorUpdateCheckFailed" xml:space="preserve">
|
||||
<value>無法檢查最新版本!</value>
|
||||
</data>
|
||||
@@ -300,7 +311,10 @@
|
||||
<value>請輸入寄送至您 E-mail 的 Steam Guard 代碼: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
<value>請輸入您的Steam帳號: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamParentalPIN" xml:space="preserve">
|
||||
<value>請輸入 Steam 家庭監護 PIN 碼: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
@@ -309,7 +323,10 @@
|
||||
<value>請輸入您的 Steam 密碼: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
|
||||
<data name="UserInputUnknown" xml:space="preserve">
|
||||
<value>請輸入未記錄的值 {0}: </value>
|
||||
<comment>{0} will be replaced by property name. Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputWCFHost" xml:space="preserve">
|
||||
<value>請輸入您的 WCF 主機: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
@@ -673,7 +690,10 @@
|
||||
<value>{0} ({1}) 的掛卡被禁用,ASF 目前無法掛這個遊戲的卡。</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
|
||||
<data name="WarningIdlingGameMismatch" xml:space="preserve">
|
||||
<value>ASF 檢測到 ID {0} ({1}) 不匹配並且將改為使用 ID {2}。</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by game's ID (number)</comment>
|
||||
</data>
|
||||
<data name="BotVersion" xml:space="preserve">
|
||||
<value>{0} V{1}</value>
|
||||
<comment>{0} will be replaced by program's name (e.g. "ASF"), {1} will be replaced by program's version (e.g. "1.0.0.0"). This string typically has nothing to translate and you should leave it as it is, unless you need to change the format, e.g. in RTL languages.</comment>
|
||||
@@ -684,7 +704,9 @@
|
||||
<data name="BotStatusLocked" xml:space="preserve">
|
||||
<value>BOT 的帳號已被鎖定,無法透過掛卡得到卡片。</value>
|
||||
</data>
|
||||
|
||||
<data name="ErrorFunctionOnlyInHeadlessMode" xml:space="preserve">
|
||||
<value>此功能僅能在無標頭模式下使用!</value>
|
||||
</data>
|
||||
<data name="BotOwnedAlready" xml:space="preserve">
|
||||
<value>已擁有: {0}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace ArchiSteamFarm {
|
||||
case PlatformID.Win32S:
|
||||
case PlatformID.Win32Windows:
|
||||
case PlatformID.WinCE:
|
||||
DisableQuickEditMode();
|
||||
KeepWindowsSystemActive();
|
||||
break;
|
||||
}
|
||||
@@ -44,6 +45,23 @@ namespace ArchiSteamFarm {
|
||||
SystemEvents.TimeChanged += OnTimeChanged;
|
||||
}
|
||||
|
||||
private static void DisableQuickEditMode() {
|
||||
// http://stackoverflow.com/questions/30418886/how-and-why-does-quickedit-mode-in-command-prompt-freeze-applications
|
||||
IntPtr consoleHandle = NativeMethods.GetStdHandle(NativeMethods.StandardInputHandle);
|
||||
|
||||
uint consoleMode;
|
||||
if (!NativeMethods.GetConsoleMode(consoleHandle, out consoleMode)) {
|
||||
ASF.ArchiLogger.LogGenericError(Strings.WarningFailed);
|
||||
return;
|
||||
}
|
||||
|
||||
consoleMode &= ~NativeMethods.EnableQuickEditMode;
|
||||
|
||||
if (!NativeMethods.SetConsoleMode(consoleHandle, consoleMode)) {
|
||||
ASF.ArchiLogger.LogGenericError(Strings.WarningFailed);
|
||||
}
|
||||
}
|
||||
|
||||
private static void KeepWindowsSystemActive() {
|
||||
// This function calls unmanaged API in order to tell Windows OS that it should not enter sleep state while the program is running
|
||||
// If user wishes to enter sleep mode, then he should use ShutdownOnFarmingFinished or manage ASF process with third-party tool or script
|
||||
@@ -59,6 +77,18 @@ namespace ArchiSteamFarm {
|
||||
private static async void OnTimeChanged(object sender, EventArgs e) => await MobileAuthenticator.OnTimeChanged().ConfigureAwait(false);
|
||||
|
||||
private static class NativeMethods {
|
||||
internal const uint EnableQuickEditMode = 0x0040;
|
||||
internal const int StandardInputHandle = -10;
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
||||
internal static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
||||
internal static extern IntPtr GetStdHandle(int nStdHandle);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
||||
internal static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
|
||||
internal static extern EExecutionState SetThreadExecutionState(EExecutionState executionState);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace ArchiSteamFarm {
|
||||
internal const string ServiceDescription = "ASF is an application that allows you to farm steam cards using multiple steam accounts simultaneously.";
|
||||
internal const string ServiceName = "ArchiSteamFarm";
|
||||
internal const string StatisticsServer = "asf.justarchi.net";
|
||||
internal const string VersionNumber = "2.2.3.3";
|
||||
internal const string VersionNumber = "2.2.3.5";
|
||||
|
||||
internal static readonly Version Version = Assembly.GetEntryAssembly().GetName().Version;
|
||||
}
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
<EmbeddedResource Include="Localization\CGStrings.pt-PT.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.ro-RO.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.ru-RU.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.sk-SK.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.sr-CS.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.sr-SP.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.sv-SE.resx" />
|
||||
|
||||
@@ -225,7 +225,7 @@ Bitte benutze eine passende ConfigGenerator Version für dein ASF. Du wirst zur
|
||||
<comment>{0} will be replaced by name of the configuration property ("Enabled")</comment>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormShown" xml:space="preserve">
|
||||
<value>Gute Arbeit! Du wirst nun nach einem Roboter-Namen gefragt. Ein gutes Beispiel wäre der Spitzname deines Steam-Kontos, welches du zur Konfiguration nutzt oder jeder andere Name deiner Wahl, welcher es dir leicht macht dich mit dem Roboter (Bot) Exemplar zu verbinden.</value>
|
||||
<value>Gute Arbeit! Du wirst nun nach einem Bot-Namen gefragt. Ein gutes Beispiel wäre der Spitzname deines Steam-Kontos, welches du zur Konfiguration nutzt oder jeder andere Name deiner Wahl, welcher es dir leicht macht dich mit der Bot-Instanz zu verbinden.</value>
|
||||
</data>
|
||||
<data name="TutorialStart" xml:space="preserve">
|
||||
<value>Herzlich Willkommen! Ich habe festgestellt, dass du den ASF ConfigGenerator zum ersten Mal benutzt, lass' mich dir ein wenig helfen.</value>
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
|
||||
ASF: {0} | ConfigGenerator: {1}
|
||||
|
||||
Gebruik de overeenkomende versie van de ConfigGenerator voor je ASF bestand. Je wordt doorverwezen naar de juiste release...</value>
|
||||
Gebruik dezelfde versie van de ConfigGenerator als de ASF versie. Je wordt nu doorverwezen naar de juiste versie...</value>
|
||||
<comment>{0} will be replaced by ASF version (string), {1} will be replaced by ConfigGenerator version (string). Please note that this string should include newlines for formatting.</comment>
|
||||
</data>
|
||||
<data name="New" xml:space="preserve">
|
||||
@@ -190,39 +190,39 @@ Gebruik de overeenkomende versie van de ConfigGenerator voor je ASF bestand. Je
|
||||
<comment>This is used as MessageBox title</comment>
|
||||
</data>
|
||||
<data name="TutorialBotFormEnabled" xml:space="preserve">
|
||||
<value>Proficiat! Je bot is actief. Dit was alles dat je moest doen om deze bot in ASF te gebruiken, maar je wilt misschien nog 2 andere config waardes instellen: {0} en {1}.
|
||||
Je kan, als je wilt, doorgaan met deze handleiding. Vergeet niet de wiki te gebruiken als je niet zeker weet hoe een waarde moet worden ingesteld, of indien je meer hulp nodig hebt.</value>
|
||||
<value>Proficiat! Je bot is geactiveerd. Dit was alles wat je moest doen om deze bot in ASF te gebruiken. Waarschijnlijk wil je minstens nog 2 andere configuratiewaardes instellen. Je {0} en {1}.
|
||||
Je kan, als je wilt, doorgaan met deze handleiding. Raadpleeg de wiki als je niet zeker weet hoe een waarde moet worden ingesteld of indien je meer hulp nodig hebt.</value>
|
||||
<comment>{0} will be replaced by "SteamLogin" configuration property, {1} will be replaced by "SteamPassword" configuration property</comment>
|
||||
</data>
|
||||
<data name="TutorialBotFormReady" xml:space="preserve">
|
||||
<value>Je ASF is nu klaar voor gebruik! Start nu simpelweg ASF.exe. Als je alles correct hebt ingevuld, zul je zien dat ASF zal inloggen en gaat farmen. Als je SteamGuard twee-factor authenticatie is geactiveerd, kan het zijn dat ASF om deze gegevens vraagt tijdens het starten.</value>
|
||||
<value>Je ASF is nu klaar voor gebruik! Start nu simpelweg het ASF.exe bestand. Als je alles correct hebt ingevuld, zul je zien dat ASF zal inloggen en gaat farmen. Indien SteamGuard of de twee-factor authenticatie is geactiveerd, zal ASF tijdens het starten om deze gegevens vragen.</value>
|
||||
</data>
|
||||
<data name="TutorialFinished" xml:space="preserve">
|
||||
<value>Proficiat! Je hebt alles gedaan dat nodig is om ASF te kunnen gebruiken. Hiermee is deze handleiding dan ook afgerond. Het is aanbevolen om de volledige 'configuration' sectie op de wiki te lezen, aangezien ASF interessante opties heeft die geconfigureerd kunnen worden. Zoals offline farmen of het afstemmen van ASF voor het meest efficiënte farming algoritme voor je account. Dit alles is optioneel en je kan de ConfigGenerator nu afsluiten als je dit wilt. We hopen dat je veel plezier zult hebben van de software die we voor jou hebben gemaakt!</value>
|
||||
<value>Proficiat! Je hebt alles gedaan wat nodig is om ASF te kunnen gebruiken. Hiermee is deze handleiding dan ook afgerond. Het is aanbevolen om de volledige 'configuration' sectie op de wiki te lezen, aangezien ASF interessante opties heeft die geconfigureerd kunnen worden. Zoals offline farmen of het afstemmen van ASF voor het meest efficiënte farming algoritme voor je account. Dit alles is optioneel en je kan de ConfigGenerator nu afsluiten als je wilt. We hopen dat je veel plezier zult hebben van de software die we voor jou hebben gemaakt!</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormBotsManagementButtons" xml:space="preserve">
|
||||
<value>Bovenaan het venster zie je de huidig geladen configuraties en 3 extra knoppen voor verwijderen [-], hernoemen [~] en toevoegen van nieuwe configuraties [+].</value>
|
||||
<comment>If possible, try to keep visual representation of buttons: [-], [~] and [+]</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWiki" xml:space="preserve">
|
||||
<value>Hou er rekening mee dat alle informatie met betrekking tot de beschikbare configuratie eigenschappen, inclusief uitleg, doel en geaccepteerde waardes, beschikbaar is op onze GitHub wiki. Gebruik dit als referentie.</value>
|
||||
<value>Alle informatie met betrekking tot de beschikbare configuratiewaardes, inclusief uitleg, doel en geldige waardes, is beschikbaar op onze GitHub wiki. Gebruik dit als referentie.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWindow" xml:space="preserve">
|
||||
<value>In het midden van het venster kun je alle configuratie eigenschappen die beschikbaar zijn configureren. Dit geldt voor de huidig geselecteerde configuratie.</value>
|
||||
<value>In het midden van het venster kun je alle configuratiewaardes die beschikbaar zijn voor de geselecteerde configuratie instellen.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormFinished" xml:space="preserve">
|
||||
<value>Laten we beginnen met het configureren van ASF. Klik op de plus [+] knop om je eerste Steam account toe te voegen!</value>
|
||||
<comment>If possible, try to keep visual representation of [+] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormHelpButton" xml:space="preserve">
|
||||
<value>In de rechterbovenhoek vind je de help knop [?] die je doorverwijst naar de ASF wiki voor meer informatie.</value>
|
||||
<value>Rechtsboven vind je de help knop [?] die je doorverwijst naar de ASF wiki voor meer informatie.</value>
|
||||
<comment>If possible, try to keep visual representation of [?] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormShown" xml:space="preserve">
|
||||
<value>Dit is het ASF ConfigGenerator hoofdscherm, het is erg makkelijk om te gebruiken!</value>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormFinished" xml:space="preserve">
|
||||
<value>Zoals je ziet is je bot nu gereed voor configuratie! Het eerste wat je doet is de {0} eigenschap veranderen van false naar true. Probeer maar!</value>
|
||||
<value>Zoals je ziet is je bot nu gereed voor configuratie! Het eerste wat je doet is de {0} waarde veranderen van 'false' naar 'true'. Probeer maar!</value>
|
||||
<comment>{0} will be replaced by name of the configuration property ("Enabled")</comment>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormShown" xml:space="preserve">
|
||||
|
||||
@@ -142,16 +142,16 @@
|
||||
<value>Je bot heeft geen naam!</value>
|
||||
</data>
|
||||
<data name="ErrorCantRemoveGlobalConfig" xml:space="preserve">
|
||||
<value>Je kan het globale config bestand niet verwijderen!</value>
|
||||
<value>Je kan het globale configuratiebestand niet verwijderen!</value>
|
||||
</data>
|
||||
<data name="ErrorCantRenameGlobalConfig" xml:space="preserve">
|
||||
<value>Je kan het globale config bestand niet hernoemen!</value>
|
||||
<value>Je kan het globale configuratiebestand niet hernoemen!</value>
|
||||
</data>
|
||||
<data name="ErrorConfigDirectoryNotFound" xml:space="preserve">
|
||||
<value>Configuratiefolder kon niet gevonden worden!</value>
|
||||
<value>Configuratiemap kon niet gevonden worden!</value>
|
||||
</data>
|
||||
<data name="ErrorConfigPropertyInvalid" xml:space="preserve">
|
||||
<value>Geconfigureerde {0} eigenschap is ongeldig: {1}</value>
|
||||
<value>Geconfigureerde {0} waarde is ongeldig: {1}</value>
|
||||
<comment>{0} will be replaced by name of the configuration property, {1} will be replaced by invalid value</comment>
|
||||
</data>
|
||||
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
|
||||
@@ -174,7 +174,7 @@
|
||||
|
||||
ASF: {0} | ConfigGenerator: {1}
|
||||
|
||||
Gebruik de overeenkomende versie van de ConfigGenerator voor je ASF bestand. Je wordt doorverwezen naar de juiste release...</value>
|
||||
Gebruik dezelfde versie van de ConfigGenerator als de ASF versie. Je wordt nu doorverwezen naar de juiste versie...</value>
|
||||
<comment>{0} will be replaced by ASF version (string), {1} will be replaced by ConfigGenerator version (string). Please note that this string should include newlines for formatting.</comment>
|
||||
</data>
|
||||
<data name="New" xml:space="preserve">
|
||||
@@ -190,39 +190,39 @@ Gebruik de overeenkomende versie van de ConfigGenerator voor je ASF bestand. Je
|
||||
<comment>This is used as MessageBox title</comment>
|
||||
</data>
|
||||
<data name="TutorialBotFormEnabled" xml:space="preserve">
|
||||
<value>Proficiat! Je bot is actief. Dit was alles dat je moest doen om deze bot in ASF te gebruiken, maar je wilt misschien nog 2 andere config waardes instellen: {0} en {1}.
|
||||
Je kan, als je wilt, doorgaan met deze handleiding. Vergeet niet de wiki te gebruiken als je niet zeker weet hoe een waarde moet worden ingesteld, of indien je meer hulp nodig hebt.</value>
|
||||
<value>Proficiat! Je bot is geactiveerd. Dit was alles wat je moest doen om deze bot in ASF te gebruiken. Waarschijnlijk wil je minstens nog 2 andere configuratiewaardes instellen. Je {0} en {1}.
|
||||
Je kan, als je wilt, doorgaan met deze handleiding. Raadpleeg de wiki als je niet zeker weet hoe een waarde moet worden ingesteld of indien je meer hulp nodig hebt.</value>
|
||||
<comment>{0} will be replaced by "SteamLogin" configuration property, {1} will be replaced by "SteamPassword" configuration property</comment>
|
||||
</data>
|
||||
<data name="TutorialBotFormReady" xml:space="preserve">
|
||||
<value>Je ASF is nu klaar voor gebruik! Start nu simpelweg ASF.exe. Als je alles correct hebt ingevuld, zul je zien dat ASF zal inloggen en gaat farmen. Als je SteamGuard twee-factor authenticatie is geactiveerd, kan het zijn dat ASF om deze gegevens vraagt tijdens het starten.</value>
|
||||
<value>Je ASF is nu klaar voor gebruik! Start nu simpelweg het ASF.exe bestand. Als je alles correct hebt ingevuld, zul je zien dat ASF zal inloggen en gaat farmen. Indien SteamGuard of de twee-factor authenticatie is geactiveerd, zal ASF tijdens het starten om deze gegevens vragen.</value>
|
||||
</data>
|
||||
<data name="TutorialFinished" xml:space="preserve">
|
||||
<value>Proficiat! Je hebt alles gedaan dat nodig is om ASF te kunnen gebruiken. Hiermee is deze handleiding dan ook afgerond. Het is aanbevolen om de volledige 'configuration' sectie op de wiki te lezen, aangezien ASF interessante opties heeft die geconfigureerd kunnen worden. Zoals offline farmen of het afstemmen van ASF voor het meest efficiënte farming algoritme voor je account. Dit alles is optioneel en je kan de ConfigGenerator nu afsluiten als je dit wilt. We hopen dat je veel plezier zult hebben van de software die we voor jou hebben gemaakt!</value>
|
||||
<value>Proficiat! Je hebt alles gedaan wat nodig is om ASF te kunnen gebruiken. Hiermee is deze handleiding dan ook afgerond. Het is aanbevolen om de volledige 'configuration' sectie op de wiki te lezen, aangezien ASF interessante opties heeft die geconfigureerd kunnen worden. Zoals offline farmen of het afstemmen van ASF voor het meest efficiënte farming algoritme voor je account. Dit alles is optioneel en je kan de ConfigGenerator nu afsluiten als je wilt. We hopen dat je veel plezier zult hebben van de software die we voor jou hebben gemaakt!</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormBotsManagementButtons" xml:space="preserve">
|
||||
<value>Bovenaan het venster zie je de huidig geladen configuraties en 3 extra knoppen voor verwijderen [-], hernoemen [~] en toevoegen van nieuwe configuraties [+].</value>
|
||||
<comment>If possible, try to keep visual representation of buttons: [-], [~] and [+]</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWiki" xml:space="preserve">
|
||||
<value>Hou er rekening mee dat alle informatie met betrekking tot de beschikbare configuratie eigenschappen, inclusief uitleg, doel en geaccepteerde waardes, beschikbaar is op onze GitHub wiki. Gebruik dit als referentie.</value>
|
||||
<value>Alle informatie met betrekking tot de beschikbare configuratiewaardes, inclusief uitleg, doel en geldige waardes, is beschikbaar op onze GitHub wiki. Gebruik dit als referentie.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWindow" xml:space="preserve">
|
||||
<value>In het midden van het venster kun je alle configuratie eigenschappen die beschikbaar zijn configureren. Dit geldt voor de huidig geselecteerde configuratie.</value>
|
||||
<value>In het midden van het venster kun je alle configuratiewaardes die beschikbaar zijn voor de geselecteerde configuratie instellen.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormFinished" xml:space="preserve">
|
||||
<value>Laten we beginnen met het configureren van ASF. Klik op de plus [+] knop om je eerste Steam account toe te voegen!</value>
|
||||
<comment>If possible, try to keep visual representation of [+] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormHelpButton" xml:space="preserve">
|
||||
<value>In de rechterbovenhoek vind je de help knop [?] die je doorverwijst naar de ASF wiki voor meer informatie.</value>
|
||||
<value>Rechtsboven vind je de help knop [?] die je doorverwijst naar de ASF wiki voor meer informatie.</value>
|
||||
<comment>If possible, try to keep visual representation of [?] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormShown" xml:space="preserve">
|
||||
<value>Dit is het ASF ConfigGenerator hoofdscherm, het is erg makkelijk om te gebruiken!</value>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormFinished" xml:space="preserve">
|
||||
<value>Zoals je ziet is je bot nu gereed voor configuratie! Het eerste wat je doet is de {0} eigenschap veranderen van false naar true. Probeer maar!</value>
|
||||
<value>Zoals je ziet is je bot nu gereed voor configuratie! Het eerste wat je doet is de {0} waarde veranderen van 'false' naar 'true'. Probeer maar!</value>
|
||||
<comment>{0} will be replaced by name of the configuration property ("Enabled")</comment>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormShown" xml:space="preserve">
|
||||
|
||||
154
ConfigGenerator/Localization/CGStrings.sk-SK.resx
Normal file
154
ConfigGenerator/Localization/CGStrings.sk-SK.resx
Normal file
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string"/>
|
||||
<xsd:attribute name="type" type="xsd:string"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string"/>
|
||||
<xsd:attribute name="name" type="xsd:string"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
@@ -166,7 +166,7 @@
|
||||
<comment>This happens e.g. when user wants to create a bot with reserved name, such as "ASF"</comment>
|
||||
</data>
|
||||
<data name="ErrorObjectIsNull" xml:space="preserve">
|
||||
<value>{0} нульовий!</value>
|
||||
<value>{0} має значення null!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorVersionMismatch" xml:space="preserve">
|
||||
|
||||
@@ -292,6 +292,9 @@
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.ru-RU.resx">
|
||||
<Link>Localization\Strings.ru-RU.resx</Link>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.sk-SK.resx">
|
||||
<Link>Localization\Strings.sk-SK.resx</Link>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.sr-CS.resx">
|
||||
<Link>Localization\Strings.sr-CS.resx</Link>
|
||||
</EmbeddedResource>
|
||||
|
||||
Reference in New Issue
Block a user