Compare commits

..

132 Commits

Author SHA1 Message Date
Łukasz Domeradzki
c2b47af1cc Merge pull request #442 from JustArchi/l10n
New Crowdin translations
2017-01-30 18:18:41 +01:00
Łukasz Domeradzki
3529c9a6cf Translated 2017-01-30 12:25:55 +01:00
Łukasz Domeradzki
95efc09463 Translated 2017-01-30 00:01:22 +01:00
Łukasz Domeradzki
f37f49e97e New translations 2017-01-29 21:51:06 +01:00
Łukasz Domeradzki
08367648b6 Translated 2017-01-29 21:51:04 +01:00
Łukasz Domeradzki
a3134e841c Translated 2017-01-29 21:51:02 +01:00
Łukasz Domeradzki
f70d15b611 Translated 2017-01-29 21:50:59 +01:00
Łukasz Domeradzki
be530e35da Translated 2017-01-29 21:50:57 +01:00
Łukasz Domeradzki
c2de92857b Translated 2017-01-29 21:50:55 +01:00
Łukasz Domeradzki
e5fe508c0d Translated 2017-01-29 21:50:52 +01:00
Łukasz Domeradzki
b37c1c77f6 New translations 2017-01-29 21:50:50 +01:00
Łukasz Domeradzki
5a4542bbc1 New translations 2017-01-29 21:50:49 +01:00
Łukasz Domeradzki
99bd384b2a New translations 2017-01-29 21:50:47 +01:00
Łukasz Domeradzki
fc1ce23462 New translations 2017-01-29 21:50:46 +01:00
Łukasz Domeradzki
780d46b01b New translations 2017-01-29 21:50:44 +01:00
Łukasz Domeradzki
ce0095f6c4 New translations 2017-01-29 21:35:58 +01:00
Łukasz Domeradzki
747110e48f New translations 2017-01-29 21:35:56 +01:00
Łukasz Domeradzki
15a62af5bc New translations 2017-01-29 21:35:53 +01:00
Łukasz Domeradzki
47de0baa5b New translations 2017-01-29 21:35:50 +01:00
Łukasz Domeradzki
8bc814b8a1 New translations 2017-01-29 21:35:48 +01:00
Łukasz Domeradzki
1873a93726 New translations 2017-01-29 21:35:46 +01:00
Łukasz Domeradzki
e68a0c63e8 New translations 2017-01-29 21:35:43 +01:00
Łukasz Domeradzki
7338361fed New translations 2017-01-29 21:35:42 +01:00
Łukasz Domeradzki
c8ca85387f New translations 2017-01-29 21:23:30 +01:00
Łukasz Domeradzki
4363be199c New translations 2017-01-29 21:23:28 +01:00
Łukasz Domeradzki
78d87395d8 New translations 2017-01-29 21:23:26 +01:00
Łukasz Domeradzki
76b3453eff New translations 2017-01-29 21:23:24 +01:00
Łukasz Domeradzki
bea517d437 New translations 2017-01-29 21:23:21 +01:00
Łukasz Domeradzki
5022d716d5 New translations 2017-01-29 21:23:18 +01:00
Łukasz Domeradzki
e7c80af31e New translations 2017-01-29 21:23:16 +01:00
Łukasz Domeradzki
2422c97a37 New translations 2017-01-29 21:23:14 +01:00
Łukasz Domeradzki
a3f8026beb Translated 2017-01-29 21:23:11 +01:00
Łukasz Domeradzki
07d0d94660 Translated 2017-01-29 21:23:09 +01:00
Łukasz Domeradzki
9a3973cb24 Translated 2017-01-29 21:23:07 +01:00
Łukasz Domeradzki
adbbe0b6d8 Translated 2017-01-29 21:23:05 +01:00
Łukasz Domeradzki
8937295020 Translated 2017-01-29 21:23:02 +01:00
Łukasz Domeradzki
ecd028477f Translated 2017-01-29 21:23:00 +01:00
Łukasz Domeradzki
51a7eeca13 New translations 2017-01-29 21:22:59 +01:00
Łukasz Domeradzki
8fbc49073f New translations 2017-01-29 21:22:57 +01:00
Łukasz Domeradzki
c22740aaab New translations 2017-01-29 21:22:55 +01:00
Łukasz Domeradzki
b169f570dd Translated 2017-01-29 21:22:53 +01:00
Łukasz Domeradzki
fd41cf735f New translations 2017-01-29 21:22:51 +01:00
Łukasz Domeradzki
41460f93ea Translated 2017-01-29 21:22:49 +01:00
Łukasz Domeradzki
66ac79feaa Translated 2017-01-29 21:22:47 +01:00
Łukasz Domeradzki
a1202dc91b Translated 2017-01-29 21:22:45 +01:00
Łukasz Domeradzki
7f455fd334 New translations 2017-01-29 21:22:44 +01:00
Łukasz Domeradzki
6d38000c72 New translations 2017-01-29 21:22:42 +01:00
Łukasz Domeradzki
2b3a9e127b New translations 2017-01-29 21:22:39 +01:00
Łukasz Domeradzki
c101a9c7b1 New translations 2017-01-29 21:22:37 +01:00
Łukasz Domeradzki
13b2e76461 Translated 2017-01-29 21:22:34 +01:00
Łukasz Domeradzki
a8903d0e1b Translated 2017-01-29 21:22:32 +01:00
Łukasz Domeradzki
f39b075f6c Translated 2017-01-29 21:22:31 +01:00
Łukasz Domeradzki
222ffcc84a Translated 2017-01-29 21:22:29 +01:00
Łukasz Domeradzki
9c3b5b4171 Translated 2017-01-29 21:22:26 +01:00
Łukasz Domeradzki
3ded3a6918 Translated 2017-01-29 21:22:25 +01:00
Łukasz Domeradzki
3e158318d5 Translated 2017-01-29 21:22:23 +01:00
Łukasz Domeradzki
c472722dcf Translated 2017-01-29 21:22:21 +01:00
Łukasz Domeradzki
3905ec1663 Translated 2017-01-29 21:22:18 +01:00
Łukasz Domeradzki
3d77559986 Translated 2017-01-29 21:22:16 +01:00
Łukasz Domeradzki
acb33371f7 Translated 2017-01-29 21:22:13 +01:00
Łukasz Domeradzki
a3b6b0df3e Translated 2017-01-29 21:22:11 +01:00
Łukasz Domeradzki
ddf2002b5d Translated 2017-01-29 21:12:29 +01:00
Łukasz Domeradzki
a921ddabf1 Translated 2017-01-29 21:12:27 +01:00
Łukasz Domeradzki
7abd9afc34 Translated 2017-01-29 21:12:25 +01:00
Łukasz Domeradzki
51a200f313 Translated 2017-01-29 21:12:22 +01:00
Łukasz Domeradzki
fdfb204114 Translated 2017-01-29 21:12:20 +01:00
Łukasz Domeradzki
fdb0065fda Translated 2017-01-29 21:02:13 +01:00
Łukasz Domeradzki
807eceeb94 New translations 2017-01-29 21:02:11 +01:00
Łukasz Domeradzki
893667a85f Translated 2017-01-29 21:02:09 +01:00
Łukasz Domeradzki
67bc6331fa Translated 2017-01-29 21:02:06 +01:00
Łukasz Domeradzki
23993c7e5f Translated 2017-01-29 21:02:05 +01:00
Łukasz Domeradzki
d9dda4888b Translated 2017-01-29 21:02:02 +01:00
Łukasz Domeradzki
f2d56ec663 Approved. Step name: Proofread 2017-01-29 21:02:00 +01:00
Łukasz Domeradzki
6f80a884ce Approved. Step name: Proofread 2017-01-29 21:01:59 +01:00
Łukasz Domeradzki
a1b4b4d1b0 Translated 2017-01-29 21:01:56 +01:00
Łukasz Domeradzki
fe959c28f8 Approved. Step name: Proofread 2017-01-29 21:01:55 +01:00
Łukasz Domeradzki
e032e8c65f Translated 2017-01-29 21:01:53 +01:00
Łukasz Domeradzki
7d054fbe47 Translated 2017-01-29 21:01:51 +01:00
Łukasz Domeradzki
c2af8a672c New translations 2017-01-29 21:01:49 +01:00
Łukasz Domeradzki
1419ccabf7 Translated 2017-01-29 21:01:47 +01:00
Łukasz Domeradzki
5dffe115a9 New translations 2017-01-29 21:01:45 +01:00
Łukasz Domeradzki
2bff46dd1d New translations 2017-01-29 20:51:56 +01:00
Łukasz Domeradzki
da70c0a9d3 Translated 2017-01-29 20:51:54 +01:00
Łukasz Domeradzki
bf0a8f34f9 Translated 2017-01-29 20:51:52 +01:00
JustArchi
02409fc66b Fix typo 2017-01-29 20:50:53 +01:00
Łukasz Domeradzki
1a83b95c30 Translated 2017-01-29 20:01:50 +01:00
Łukasz Domeradzki
3dc05d2f55 Translated 2017-01-29 20:01:47 +01:00
Łukasz Domeradzki
cd590872b9 New translations 2017-01-29 19:52:11 +01:00
Łukasz Domeradzki
75e9162bcd Translated 2017-01-29 19:52:08 +01:00
Łukasz Domeradzki
77f532d687 New translations 2017-01-29 19:42:25 +01:00
Łukasz Domeradzki
b228f8f31f New translations 2017-01-29 19:22:27 +01:00
Łukasz Domeradzki
7c394fcebd New translations 2017-01-29 19:12:38 +01:00
Łukasz Domeradzki
77f08760f0 New translations 2017-01-29 19:02:04 +01:00
Łukasz Domeradzki
b3768ea607 New translations 2017-01-29 18:53:16 +01:00
Łukasz Domeradzki
ba7fa4a2a1 New translations 2017-01-29 18:53:12 +01:00
Łukasz Domeradzki
b638e4a38a New translations 2017-01-29 18:42:46 +01:00
Łukasz Domeradzki
d13af74d38 New translations 2017-01-29 18:32:49 +01:00
Łukasz Domeradzki
44f8a04f3c New translations 2017-01-29 18:22:46 +01:00
Łukasz Domeradzki
acd5887b1b New translations 2017-01-29 18:12:21 +01:00
JustArchi
760068fe91 Misc 2017-01-29 02:16:46 +01:00
JustArchi
c48f05f5cc Optimize default HandleCallbacks() loop
By using a LongRunning hint, our callback handler loop will most likely be scheduled to run in it's own thread instead of using threadpool threads.
With low amount of bots it doesn't matter - the amount of tasks is very small, and the amount of available threads provided by the runtime is usually really big, so scheduler is almost always running all the jobs at the same time without starvation whatsoever.
But with crapload of bots executing crapload of tasks at the same time, we might observe low-to-medium thread starvation and context switching, that might put our most important callbacks handling task together with all other tasks, which could render callback loop delays when ASF is under heavy load.
This small change is a hint to scheduler that this task should run on it's own thread and have highest 'priority' over all other normal tasks. This way our loop is never starved, and it also allows better tasks management.
It's purely cosmetic - even without it there is no observable degradation that could create any side-effects, but we know that this task will run for a very long period, and it's important to keep ASF bot responsive to Steam events, so it should have highest priority and it's own thread
2017-01-29 01:55:26 +01:00
Łukasz Domeradzki
ca7707280d Translated 2017-01-28 19:02:14 +01:00
Łukasz Domeradzki
3ca4b2d925 Translated 2017-01-28 18:52:45 +01:00
Łukasz Domeradzki
80b5d54e0b Translated 2017-01-28 18:43:52 +01:00
Łukasz Domeradzki
9c30503b27 Translated 2017-01-28 18:33:52 +01:00
Łukasz Domeradzki
8103e4d6d9 Translated 2017-01-28 18:15:04 +01:00
Łukasz Domeradzki
bd0116aa59 Translated 2017-01-28 17:53:08 +01:00
JustArchi
a3c5e8ab0c Misc 2017-01-28 15:29:38 +01:00
JustArchi
b5e33ec38e Misc 2017-01-28 05:11:38 +01:00
JustArchi
9775f07644 Misc 2017-01-27 21:57:23 +01:00
Łukasz Domeradzki
7ddac87541 Translated 2017-01-27 15:38:42 +01:00
Łukasz Domeradzki
bc66adbf96 Translated 2017-01-27 15:28:14 +01:00
JustArchi
a3da884205 Bump 2017-01-27 06:00:44 +01:00
Łukasz Domeradzki
008362084d Merge pull request #438 from JustArchi/l10n
New Crowdin translations
2017-01-27 05:58:30 +01:00
Łukasz Domeradzki
506496969e New translations 2017-01-26 15:09:18 +01:00
Łukasz Domeradzki
3706e93069 New translations 2017-01-26 15:00:47 +01:00
Łukasz Domeradzki
9761f7ccd8 Translated 2017-01-26 05:52:28 +01:00
JustArchi
001e41124c Fix parsing HtmlDocuments with special chars
ArchiBoT accidentally found that this is unnecessary and actually causes problems with incorrectly used special characters.
Further tests needed, who knows if it doesn't break somewhere else now.
2017-01-26 03:58:34 +01:00
JustArchi
16519e4e1c Log API failures as warnings
Request failures are so common that it doesn't really justify being an error
2017-01-25 23:23:19 +01:00
JustArchi
238fc77958 Fix cd-key regex not working with Turkish 'i' 2017-01-25 05:32:13 +01:00
Łukasz Domeradzki
335d585999 Translated 2017-01-25 02:43:20 +01:00
Łukasz Domeradzki
beba3536bd Translated 2017-01-25 00:03:02 +01:00
Łukasz Domeradzki
84b21ab23a New translations 2017-01-24 14:17:36 +01:00
Łukasz Domeradzki
8670b1031d Translated 2017-01-24 09:35:04 +01:00
Łukasz Domeradzki
ca0b7ca25e Translated 2017-01-24 08:47:25 +01:00
Łukasz Domeradzki
b30b01b7ad Translated 2017-01-24 06:03:39 +01:00
Łukasz Domeradzki
aa87b428c6 Translated 2017-01-24 05:53:25 +01:00
Łukasz Domeradzki
965547f120 Translated 2017-01-24 05:53:23 +01:00
Łukasz Domeradzki
fed16a24e7 Translated 2017-01-24 05:42:58 +01:00
Łukasz Domeradzki
5977819129 Translated 2017-01-24 05:42:55 +01:00
Łukasz Domeradzki
903f809c42 Translated 2017-01-24 05:32:56 +01:00
JustArchi
27d3508e90 Bump 2017-01-24 03:05:47 +01:00
22 changed files with 209 additions and 86 deletions

View File

@@ -159,7 +159,7 @@ namespace ArchiSteamFarm {
return;
}
PlayGames(new List<uint> { gameID }, gameName);
PlayGames(gameID.ToEnumerable(), gameName);
}
internal void PlayGames(IEnumerable<uint> gameIDs, string gameName = null) {
@@ -395,6 +395,7 @@ namespace ArchiSteamFarm {
PurchaseResult = (EPurchaseResult) msg.purchase_result_details;
if (msg.purchase_receipt_info == null) {
Program.ArchiLogger.LogNullError(nameof(msg.purchase_receipt_info));
return;
}
@@ -415,7 +416,8 @@ namespace ArchiSteamFarm {
foreach (KeyValue lineItem in lineItems) {
uint packageID = lineItem["PackageID"].AsUnsignedInteger();
if (packageID == 0) {
// Valid, coupons have PackageID of -1 (don't ask me why)
// Coupons have PackageID of -1 (don't ask me why)
// We'll use ItemAppID in this case
packageID = lineItem["ItemAppID"].AsUnsignedInteger();
if (packageID == 0) {
Program.ArchiLogger.LogNullError(nameof(packageID));
@@ -429,8 +431,9 @@ namespace ArchiSteamFarm {
return;
}
gameName = WebUtility.HtmlDecode(gameName); // Apparently steam expects client to decode sent HTML
Items[packageID] = WebUtility.HtmlDecode(gameName);
// Apparently steam expects client to decode sent HTML
gameName = WebUtility.HtmlDecode(gameName);
Items[packageID] = gameName;
}
}

View File

@@ -131,6 +131,15 @@ namespace ArchiSteamFarm {
Logger.Warn($"{previousMethodName}() {message}");
}
internal void LogGenericWarningException(Exception exception, [CallerMemberName] string previousMethodName = null) {
if (exception == null) {
LogNullError(nameof(exception));
return;
}
Logger.Warn(exception, $"{previousMethodName}()");
}
[SuppressMessage("ReSharper", "ExplicitCallerInfoArgument")]
internal void LogNullError(string nullObjectName, [CallerMemberName] string previousMethodName = null) {
if (string.IsNullOrEmpty(nullObjectName)) {

View File

@@ -188,7 +188,7 @@ namespace ArchiSteamFarm {
secure: true
);
} catch (Exception e) {
Bot.ArchiLogger.LogGenericException(e);
Bot.ArchiLogger.LogGenericWarningException(e);
}
}
}
@@ -240,7 +240,7 @@ namespace ArchiSteamFarm {
secure: true
);
} catch (Exception e) {
Bot.ArchiLogger.LogGenericException(e);
Bot.ArchiLogger.LogGenericWarningException(e);
}
}
}
@@ -627,7 +627,7 @@ namespace ArchiSteamFarm {
secure: true
);
} catch (Exception e) {
Bot.ArchiLogger.LogGenericException(e);
Bot.ArchiLogger.LogGenericWarningException(e);
}
}
}
@@ -663,7 +663,7 @@ namespace ArchiSteamFarm {
secure: true
);
} catch (Exception e) {
Bot.ArchiLogger.LogGenericException(e);
Bot.ArchiLogger.LogGenericWarningException(e);
}
}
}
@@ -830,7 +830,7 @@ namespace ArchiSteamFarm {
secure: true
);
} catch (Exception e) {
Bot.ArchiLogger.LogGenericException(e);
Bot.ArchiLogger.LogGenericWarningException(e);
return false;
}
}

View File

@@ -900,7 +900,7 @@ namespace ArchiSteamFarm {
private static bool IsValidCdKey(string key) {
if (!string.IsNullOrEmpty(key)) {
return Regex.IsMatch(key, @"^[0-9A-Z]{4,7}-[0-9A-Z]{4,7}-[0-9A-Z]{4,7}(?:(?:-[0-9A-Z]{4,7})?(?:-[0-9A-Z]{4,7}))?$", RegexOptions.IgnoreCase);
return Regex.IsMatch(key, @"^[0-9A-Z]{4,7}-[0-9A-Z]{4,7}-[0-9A-Z]{4,7}(?:(?:-[0-9A-Z]{4,7})?(?:-[0-9A-Z]{4,7}))?$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
}
Program.ArchiLogger.LogNullError(nameof(key));
@@ -2595,7 +2595,7 @@ namespace ArchiSteamFarm {
private async Task Start() {
if (!KeepRunning) {
KeepRunning = true;
Task.Run(() => HandleCallbacks()).Forget();
Task.Factory.StartNew(HandleCallbacks, TaskCreationOptions.DenyChildAttach | TaskCreationOptions.LongRunning).Forget();
ArchiLogger.LogGenericInfo(Strings.Starting);
}

View File

@@ -0,0 +1,3 @@
This directory contains ASF strings for display and localization purposes.
All strings used by ASF can be found in main ```Strings.resx``` file, and that's also the only file that should be modified - all other files are managed automatically and should not be touched. Please visit **[localization](https://github.com/JustArchi/ArchiSteamFarm/wiki/Localization)** section on the wiki if you want to improve translation of other files.

View File

@@ -692,5 +692,8 @@ StackTrace:
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
<value>Η παρεχόμενη τιμή CurrentCulture είναι άκυρη, το ConfigGenerator θα συνεχίσει να τρέχει με την προεπιλεγμένη!</value>
</data>
<data name="TranslationIncomplete" xml:space="preserve">
<value>Το ASF θα επιχειρήσει να χρησιμοποιήσει τη γλώσσα {0}, αλλά η μετάφραση σ'αυτή τη γλώσσα έχει συμπληρωθεί μόνο κατά {1}. Ισως θα μπορούσατε να μας βοηθήσετε να βελτιώσουμε τη μετάφραση του ASF για τη γλώσσα σας;</value>
<comment>{0} will be replaced by culture code, such as "en-US", {1} will be replaced by completeness percentage, such as "78.5%"</comment>
</data>
</root>

View File

@@ -122,7 +122,7 @@
<comment>{0} will be replaced by trade number</comment>
</data>
<data name="AutoUpdateCheckInfo" xml:space="preserve">
<value>ASF automáticamente verificará si hay nuevas versiones cada {0} horas.</value>
<value>ASF comprobará automáticamente si hay versiones nuevas cada {0} horas.</value>
<comment>{0} will be replaced by number of hours</comment>
</data>
<data name="Content" xml:space="preserve">
@@ -151,7 +151,7 @@ Trazo de pila:
<comment>{0} will be replaced by URL of the request</comment>
</data>
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
<value>¡No se pudo cargar la configuración global, por favor asegúrese que {0} existe y es válido! Siga la guía de configuración en la wiki si tiene dudas.</value>
<value>¡La configuración global no pudo ser cargada, por favor asegúrese que {0} existe y es válido! Sigue la configuración de la guía en la wiki si tienes dudas.</value>
<comment>{0} will be replaced by file's path</comment>
</data>
<data name="ErrorIsInvalid" xml:space="preserve">
@@ -190,7 +190,7 @@ Trazo de pila:
<value>¡No se puede continuar con una actualización porque esa versión no incluye ningún recurso!</value>
</data>
<data name="ErrorUserInputRunningInHeadlessMode" xml:space="preserve">
<value>Recibida una solicitud de entrada del usuario, !pero el proceso se está ejecutando en modo servidor!</value>
<value>Recibida una solicitud de entrada del usuario, ¡pero el proceso se está ejecutando en modo servidor!</value>
</data>
<data name="ErrorWCFAccessDenied" xml:space="preserve">
<value>¡Solicitud denegada porque SteamOwnerID no esta establecido!</value>
@@ -484,7 +484,7 @@ Trazo de pila:
<value>Convirtiendo .maFile en formato ASF...</value>
</data>
<data name="BotAuthenticatorImportFinished" xml:space="preserve">
<value>¡Se ha finalizado exitosamente la importación del identificador móvil!</value>
<value>Autenticador móvil importado exitosamente.</value>
</data>
<data name="BotAuthenticatorInvalidDeviceID" xml:space="preserve">
<value>¡Su DeviceID es incorrecto o no existe!</value>
@@ -689,5 +689,8 @@ Trazo de pila:
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
<value>El CurrentCulture proporcionado no es válido, ¡ASF seguirá funcionando con el predeterminado!</value>
</data>
<data name="TranslationIncomplete" xml:space="preserve">
<value>ASF intentará utilizar tu idioma {0}, pero la traducción en este idioma está completa sólo en un {1}. ¿Tal vez podrías ayudarnos a mejorar la traducción de ASF para tu idioma?</value>
<comment>{0} will be replaced by culture code, such as "en-US", {1} will be replaced by completeness percentage, such as "78.5%"</comment>
</data>
</root>

View File

@@ -319,7 +319,10 @@ StackTrace:
<value>&lt;{0} &gt;, נא הזינו את משתמש ה- Steam שלכם: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteamParentalPIN" xml:space="preserve">
<value>&lt;{0}&gt; בבקשה הזן את את סיסמת הPIN (סיסמה בעלת 4 ספרות) של הגדרות ההרות של סטים: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputWCFHost" xml:space="preserve">

View File

@@ -471,7 +471,7 @@
<value>Akun ini dalam kondisi limited, proses idling tidak akan tersedia dalam kondisi ini!</value>
</data>
<data name="BotAddLicenseResponse" xml:space="preserve">
<value>&lt;{0}&gt; ID Game: {1} | Status: {2}</value>
<value>&lt;{0}&gt; GameID: {1} | Status: {2}</value>
<comment>{0} will be replaced by bot's name, {1} will be replaced by gameID (number), {2} will be replaced by status string</comment>
</data>
<data name="BotAddLicenseResponseWithItems" xml:space="preserve">

View File

@@ -122,7 +122,7 @@
<comment>{0} will be replaced by trade number</comment>
</data>
<data name="AutoUpdateCheckInfo" xml:space="preserve">
<value>ASF checkt automatisch voor een nieuwe versie elke {0} uur.</value>
<value>ASF controleert automatisch voor een nieuwe versie om de {0} uren.</value>
<comment>{0} will be replaced by number of hours</comment>
</data>
<data name="Content" xml:space="preserve">
@@ -147,7 +147,7 @@ StackTrace:
<value>Afsluiten met een niet-nulzijnde foutcode!</value>
</data>
<data name="ErrorFailingRequest" xml:space="preserve">
<value>Verzoek fout: {0}</value>
<value>Vezoek mislukt: {0}</value>
<comment>{0} will be replaced by URL of the request</comment>
</data>
<data name="ErrorGlobalConfigNotLoaded" 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>Kon de oude ASF binary niet verwijderen, verwijder deze alsjeblieft {0} handmatig zodat de update-functie werkt!</value>
<value>Kan niet de oude ASF binary verwijderen, verwijder alsjeblieft {0} handmatig zodat de update-functie werkt!</value>
<comment>{0} will be replaced by file's path</comment>
</data>
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
@@ -187,13 +187,13 @@ StackTrace:
<value>Kan niet verdergaan met update omdat er geen bezit is dat gerelateerd is aan de momenteel actieve binary! Controleer of de ASF Binary de juiste naam heeft!</value>
</data>
<data name="ErrorUpdateNoAssets" xml:space="preserve">
<value>Kan niet verdergaan met update omdat die versie geen alle bestanden omvat!</value>
<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 gekregen, maar het proces draait momenteel in headless mode!</value>
</data>
<data name="ErrorWCFAccessDenied" xml:space="preserve">
<value>Het verzoek wordt niet in behandeling genomen omdat het SteamOwnerID niet is ingesteld!</value>
<value>Het verzoek wordt niet in behandeling genomen omdat SteamOwnerID niet is ingesteld!</value>
<comment>SteamOwnerID is name of bot config property, it should not be translated</comment>
</data>
<data name="Exiting" xml:space="preserve">
@@ -209,7 +209,7 @@ StackTrace:
<value>Globale configuratie bestand is verwijderd!</value>
</data>
<data name="IgnoringTrade" xml:space="preserve">
<value>Trade negeren: {0}</value>
<value>Trade wordt genegeerd: {0}</value>
<comment>{0} will be replaced by trade number</comment>
</data>
<data name="LoggingIn" xml:space="preserve">
@@ -230,7 +230,7 @@ StackTrace:
<value>Herstarten...</value>
</data>
<data name="WarningRuntimeUnsupported" xml:space="preserve">
<value>ASF heeft een niet ondersteunde runtime versie gedetecteerd, het programma kan NIET correct worden uitgevoerd in de huidige omgeving. Je voert dit met je eigen risico uit zonder ondersteuning!</value>
<value>ASF heeft een niet ondersteunde runtime versie gedetecteerd, het programma kan mogelijk NIET correct worden uitgevoerd in de huidige omgeving. Je voert dit met je eigen risico uit zonder ondersteuning!</value>
</data>
<data name="RuntimeVersionComparison" xml:space="preserve">
<value>Benodigde versie: {0} | Gevonden versie: {1}</value>
@@ -289,40 +289,40 @@ StackTrace:
<value>Controleren op nieuwe versie...</value>
</data>
<data name="UpdateDownloadingNewVersion" xml:space="preserve">
<value>Nieuwe versie wordt gedownload.... Terwijl je aan het wachten bent, wij waarderen het heel veel als je doneert</value>
<value>Nieuwe versie wordt gedownloadt.... Terwijl je aan het wachten bent, het wordt heel veel gewaardeerd als je een donatie geeft</value>
</data>
<data name="UpdateFinished" xml:space="preserve">
<value>Update proces compleet!</value>
<value>Bijwerken afgerond!</value>
</data>
<data name="UpdateNewVersionAvailable" xml:space="preserve">
<value>Nieuwe ASF versie beschikbaar! Overweeg om zelf te updaten!</value>
<value>Nieuwe ASF versie beschikbaar! Overweeg om handmatig bij te werken!</value>
</data>
<data name="UpdateVersionInfo" xml:space="preserve">
<value>Lokale versie: {0} | Externe versie: {1}</value>
<comment>{0} will be replaced by current version, {1} will be replaced by remote version</comment>
</data>
<data name="UserInputDeviceID" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft je Device ID in (inclusief "android:"): </value>
<value>&lt;{0}&gt; Vul je Device ID in (inclusief "android:"): </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteam2FA" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft je 2FA code in van je Steam authenticatie app: </value>
<value>&lt;{0}&gt; Vul je 2FA code in van je Steam authenticatie app: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteamGuard" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft de SteamGuard authenticatiecode in die naar je e-mail gestuurd is: </value>
<value>&lt;{0}&gt; Vul de SteamGuard authenticatiecode in die naar je e-mail gestuurd is: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteamLogin" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft je Steam gebruikersnaam in: </value>
<value>&lt;{0}&gt; Vul je Steam gebruikersnaam in: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteamParentalPIN" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft je Steam ouderlijktoezichtscode in: </value>
<value>&lt;{0}&gt; Vul je Steam ouderlijktoezichtscode in: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputSteamPassword" xml:space="preserve">
<value>&lt;{0}&gt; Vul alsjeblieft je Steam wachtwoord in: </value>
<value>&lt;{0}&gt; Vul je Steam wachtwoord in: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="UserInputUnknown" xml:space="preserve">
@@ -333,7 +333,10 @@ StackTrace:
<value>&lt;{0}&gt; Voer je WCF-host in: </value>
<comment>{0} will be replaced by bot's name. Please note that this translation should end with space</comment>
</data>
<data name="WarningUnknownValuePleaseReport" xml:space="preserve">
<value>Onbekende waarde ontvangen voor {0}, graag dit melden: {1}</value>
<comment>{0} will be replaced by object's name, {1} will be replaced by value for that object</comment>
</data>
<data name="WarningTooManyGamesToPlay" xml:space="preserve">
<value>Het spelen van meer dan {0} games gelijktijdig is niet mogelijk, alleen de eerste {0} games van {1} worden gebruikt!</value>
<comment>{0} will be replaced by max number of games, {1} will be replaced by name of the configuration property</comment>
@@ -365,7 +368,7 @@ StackTrace:
<comment>{0} will be replaced by WCF hostname</comment>
</data>
<data name="BotAlreadyStopped" xml:space="preserve">
<value>Die bot-instantie is al gestopt!</value>
<value>Deze bot-instantie is al gestopt!</value>
</data>
<data name="BotNotFound" xml:space="preserve">
<value>Kan geen bot vinden genaamd {0}!</value>
@@ -376,7 +379,7 @@ StackTrace:
<comment>{0} will be replaced by number of active bots, {1} will be replaced by total number of bots, {2} will be replaced by total number of games left to idle, {3} will be replaced by total number of cards left to idle</comment>
</data>
<data name="BotStatusIdling" xml:space="preserve">
<value>Bot {0} is spel {1} aan het idlen ({2}, {3} kaarten te gaan) van een totaal van {4} spellen ({5} kaarten) nog te idlen (~{6} resterende).</value>
<value>Bot {0} is spel {1} aan het idlen ({2}, {3} kaarten te gaan) van een totaal van {4} spellen ({5} kaarten) nog te verzamelen (~{6} resterende).</value>
<comment>{0} will be replaced by bot's name, {1} will be replaced by game's appID (number), {2} will be replaced by game's name, {3} will be replaced by number of cards left to idle, {4} will be replaced by total number of games to idle, {5} will be replaced by total number of cards to idle, {6} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
</data>
<data name="BotStatusIdlingList" xml:space="preserve">
@@ -397,7 +400,7 @@ StackTrace:
<value>Klaar!</value>
</data>
<data name="GamesToIdle" xml:space="preserve">
<value>We hebben een totaal van {0} spellen ({1} kaarten) nog te idlen (~{2} resterende)...</value>
<value>We hebben een totaal van {0} spellen ({1} kaarten) nog te verzamelen (~{2} resterende)...</value>
<comment>{0} will be replaced by number of games, {1} will be replaced by number of cards, {2} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
</data>
<data name="IdlingFinished" xml:space="preserve">
@@ -418,7 +421,9 @@ StackTrace:
<data name="IdlingStopped" xml:space="preserve">
<value>Het idlen is gestopt!</value>
</data>
<data name="IgnoredStickyPauseEnabled" xml:space="preserve">
<value>Dit verzoek wordt genegeerd. Permanente pauze staat aan!</value>
</data>
<data name="NothingToIdle" xml:space="preserve">
<value>We hebben niks om te idlen op dit account!</value>
</data>
@@ -453,10 +458,10 @@ StackTrace:
<value>Onbekende opdracht!</value>
</data>
<data name="WarningCouldNotCheckBadges" xml:space="preserve">
<value>Kon de badges informatie niet verkrijgen, we zullen het later nog een keer proberen!</value>
<value>Kan de badges informatie niet verkrijgen, we zullen het later nog een keer proberen!</value>
</data>
<data name="WarningCouldNotCheckCardsStatus" xml:space="preserve">
<value>Kaart status kon niet worden gecontroleerd voor {0} ({1}), wij zullen het later nogmaals proberen!</value>
<value>Kaart status kan niet worden gecontroleerd voor {0} ({1}), wij zullen het later nogmaals proberen!</value>
<comment>{0} will be replaced by game's appID (number), {1} will be replaced by game's name</comment>
</data>
<data name="BotAcceptingGift" xml:space="preserve">
@@ -466,8 +471,14 @@ StackTrace:
<data name="BotAccountLimited" xml:space="preserve">
<value>Dit account is beperkt, het idling proces is permanent onbeschikbaar totdat de beperking is verwijderd!</value>
</data>
<data name="BotAddLicenseResponse" xml:space="preserve">
<value>&lt;{0}&gt; SpelID: {1} | Status: {2}</value>
<comment>{0} will be replaced by bot's name, {1} will be replaced by gameID (number), {2} will be replaced by status string</comment>
</data>
<data name="BotAddLicenseResponseWithItems" xml:space="preserve">
<value>&lt;{0}&gt; SpelID: {1} | Status: {2} | Items: {3}</value>
<comment>{0} will be replaced by bot's name, {1} will be replaced by gameID (number), {2} will be replaced by status string, {3} will be replaced by list of granted appIDs (numbers), separated by a comma</comment>
</data>
<data name="BotAlreadyRunning" xml:space="preserve">
<value>Die bot-instantie is al bezig!</value>
<comment>{0} will be replaced by bot's name</comment>
@@ -515,10 +526,10 @@ StackTrace:
<comment>{0} will be replaced by password encryption method (string), {1} will be replaced by encrypted password using that method (string)</comment>
</data>
<data name="BotInstanceNotStartingBecauseDisabled" xml:space="preserve">
<value>Deze bot wordt niet gestart omdat hij uitschakeld is in het configuratie bestand!</value>
<value>Deze bot wordt niet gestart omdat hij uitgeschakeld is in het configuratie bestand!</value>
</data>
<data name="BotInvalidAuthenticatorDuringLogin" xml:space="preserve">
<value>TwoFactoryCodeMisMatch error code {0} ontvangen, dit betekent bijna altijd de verkeerde ASF 2FA login informatie, afbreken!</value>
<value>TwoFactorCodeMisMatch foutmelding {0} ontvangen, dit betekent bijna altijd de verkeerde ASF 2FA login informatie, afbreken!</value>
<comment>{0} will be replaced by maximum allowed number of failed 2FA attempts</comment>
</data>
<data name="BotLoggedOff" xml:space="preserve">
@@ -537,7 +548,10 @@ StackTrace:
<data name="BotLootingFailed" xml:space="preserve">
<value>Handelsvoorstel mislukt!</value>
</data>
<data name="BotLootingMasterNotDefined" xml:space="preserve">
<value>Trade kon niet verzonden worden, omdat SteamMasterID niet is ingesteld!</value>
<comment>SteamMasterID is name of bot config property, it should not be translated</comment>
</data>
<data name="BotLootingNoLootableTypes" xml:space="preserve">
<value>Je hebt geen lootable types ingesteld!</value>
</data>
@@ -678,5 +692,8 @@ StackTrace:
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
<value>De door jou geleverde CurrentCulture is incorrect, ASF zal de standaard blijven gebruiken!</value>
</data>
<data name="TranslationIncomplete" xml:space="preserve">
<value>ASF probeert de {0} taal te gebruiken, maar het vertalen in deze taal was tot {1} compleet. Misschien kan je ons helpen om ASF te vertalen in jouw taal?</value>
<comment>{0} will be replaced by culture code, such as "en-US", {1} will be replaced by completeness percentage, such as "78.5%"</comment>
</data>
</root>

View File

@@ -384,7 +384,7 @@
<comment>{0} will be replaced by bot's name, {1} will be replaced by game's appID (number), {2} will be replaced by game's name, {3} will be replaced by number of cards left to idle, {4} will be replaced by total number of games to idle, {5} will be replaced by total number of cards to idle, {6} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
</data>
<data name="BotStatusIdlingList" xml:space="preserve">
<value>Бот {0} фармит игры: {1}. Всего осталось {2} игр ({3} карт, ~{4} осталось).</value>
<value>Бот {0} фармит игры: {1}. Всего {2} игр ({3} карт) осталось фармить (займет примерно {4}).</value>
<comment>{0} will be replaced by bot's name, {1} will be replaced by list of the games (appIDs, numbers), {2} will be replaced by total number of games to idle, {3} will be replaced by total number of cards to idle, {4} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
</data>
<data name="CheckingFirstBadgePage" xml:space="preserve">
@@ -401,7 +401,7 @@
<value>Готово!</value>
</data>
<data name="GamesToIdle" xml:space="preserve">
<value>Всего осталось {0} игр ({1} карт), это примерно {2}...</value>
<value>Всего {0} игр ({1} карт) осталось фармить (займет примерно {2})...</value>
<comment>{0} will be replaced by number of games, {1} will be replaced by number of cards, {2} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
</data>
<data name="IdlingFinished" xml:space="preserve">
@@ -694,7 +694,7 @@
<value>Выбранный вами CurrentCulture неверный, ASF продолжит работать со значением по умолчанию!</value>
</data>
<data name="TranslationIncomplete" xml:space="preserve">
<value>ASF будет пытаться использовать выбранный язык {0}, но перевод готов только на {1}. Возможно, вы смогли бы помочь улучшить перевод ASF на данный язык.</value>
<value>ASF будет пытаться использовать выбранный язык {0}, но перевод готов только на {1}. Возможно, Вы могли бы помочь улучшить перевод ASF на данный язык?</value>
<comment>{0} will be replaced by culture code, such as "en-US", {1} will be replaced by completeness percentage, such as "78.5%"</comment>
</data>
</root>

View File

@@ -693,5 +693,8 @@ StackTrace:
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
<value>Vaš trenutno naveden CurrentCulture je netačan, ASF će nastaviti da radi sa uobičajenim!</value>
</data>
<data name="TranslationIncomplete" xml:space="preserve">
<value>ASF će pokušati da koristi vašu preferiranu {0} "kulturu", ali prevod u taj jezik je samo {1} gotov. Možda bi ste mogli da nam pomogne u prevodu ASF na vaš jezik?</value>
<comment>{0} will be replaced by culture code, such as "en-US", {1} will be replaced by completeness percentage, such as "78.5%"</comment>
</data>
</root>

View File

@@ -538,7 +538,7 @@
<comment>{0} will be replaced by logging off reason (string)</comment>
</data>
<data name="BotLoggedOn" xml:space="preserve">
<value>Успішний вихід із системи!</value>
<value>Успішний вхід в систему!</value>
</data>
<data name="BotLoggingIn" xml:space="preserve">
<value>Здійснюється вхід...</value>

View File

@@ -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.1.4";
internal const string VersionNumber = "2.2.1.6";
internal static readonly Version Version = Assembly.GetEntryAssembly().GetName().Version;
}

View File

@@ -23,6 +23,7 @@
*/
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
@@ -96,6 +97,10 @@ namespace ArchiSteamFarm {
return true;
}
internal static IEnumerable<T> ToEnumerable<T>(this T item) {
yield return item;
}
internal static string ToHumanReadable(this TimeSpan timeSpan) {
// It's really dirty, I'd appreciate a lot if C# offered nice TimeSpan formatting by default
// Normally I'd use third-party library like Humanizer, but using it only for this bit is not worth it

View File

@@ -269,7 +269,7 @@ namespace ArchiSteamFarm {
}
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(WebUtility.HtmlDecode(content));
htmlDocument.LoadHtml(content);
return htmlDocument;
}
@@ -358,7 +358,7 @@ namespace ArchiSteamFarm {
}
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(WebUtility.HtmlDecode(content));
htmlDocument.LoadHtml(content);
return htmlDocument;
}

View File

@@ -263,7 +263,7 @@ namespace ConfigGenerator.Localization {
}
/// <summary>
/// Looks up a localized string similar to Congratulations! You&apos;ve done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It&apos;s highly recommended to read entire configuraton section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you&apos;re free to close our configurator whenever you wish. We hope that you&apos;ll enjoy the softwa [rest of string was truncated]&quot;;.
/// Looks up a localized string similar to Congratulations! You&apos;ve done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It&apos;s highly recommended to read entire configuration section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you&apos;re free to close our configurator whenever you wish. We hope that you&apos;ll enjoy the softw [rest of string was truncated]&quot;;.
/// </summary>
internal static string TutorialFinished {
get {

View File

@@ -197,7 +197,7 @@ Please use matching ConfigGenerator version for your ASF binary. You'll be redir
<value>Your ASF is now ready! Simply launch ASF.exe binary and if you typed everything properly, you should notice that ASF is logging in and starts idling. If you have SteamGuard or two-factor authentication enabled, ASF might need to ask you for those credentials during runtime.</value>
</data>
<data name="TutorialFinished" xml:space="preserve">
<value>Congratulations! You've done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It's highly recommended to read entire configuraton section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you're free to close our configurator whenever you wish. We hope that you'll enjoy the software that we coded for you!</value>
<value>Congratulations! You've done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It's highly recommended to read entire configuration section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you're free to close our configurator whenever you wish. We hope that you'll enjoy the software that we coded for you!</value>
</data>
<data name="TutorialMainFormBotsManagementButtons" xml:space="preserve">
<value>At the top of the window you can notice currently loaded configs, and 3 extra buttons for removing [-], renaming [~] and adding new ones [+].</value>

View File

@@ -117,24 +117,46 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="CategoryAccess" xml:space="preserve">
<value>Toegang</value>
</data>
<data name="CategoryAdvanced" xml:space="preserve">
<value>Geadvanceerd</value>
</data>
<data name="CategoryCore" xml:space="preserve">
<value>Kern</value>
</data>
<data name="CategoryDebugging" xml:space="preserve">
<value>Debuggen</value>
</data>
<data name="CategoryPerformance" xml:space="preserve">
<value>Prestaties</value>
</data>
<data name="CategoryUpdates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="ConfirmRemoval" xml:space="preserve">
<value>Wil je deze configuratie echt verwijderen?</value>
</data>
<data name="ErrorBotNameEmpty" xml:space="preserve">
<value>Je bot heeft geen naam!</value>
</data>
<data name="ErrorCantRemoveGlobalConfig" xml:space="preserve">
<value>Je kan het globale config bestand niet verwijderen!</value>
</data>
<data name="ErrorCantRenameGlobalConfig" xml:space="preserve">
<value>Je kan het het globale config bestand niet verwijderen!</value>
</data>
<data name="ErrorConfigDirectoryNotFound" xml:space="preserve">
<value>Configuratie folder kon niet gevonden worden!</value>
</data>
<data name="ErrorConfigPropertyInvalid" xml:space="preserve">
<value>Geconfigureerde {0} eigenschap 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">
<value>De opgegeven CurrentCulture is ongeldig, ConfigGenerator blijft draaien met de standaard!</value>
</data>
<data name="ErrorNameAlreadyUsed" xml:space="preserve">
<value>Deze naam is al in gebruik!</value>
<comment>This happens e.g. when user wants to create a bot with name that exists already</comment>
@@ -147,28 +169,74 @@
<value>{0} is nul!</value>
<comment>{0} will be replaced by object's name</comment>
</data>
<data name="ErrorVersionMismatch" xml:space="preserve">
<value>Je hebt geprobeerd om een ongeldige ConfigGenerator versie te gebruiken voor ASF!
ASF: {0} | ConfigGenerator: {1}
Gebruik een zelfde versie ConfigGenerator voor je ASF bestand. Je wordt verwezen naar de juiste release...</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">
<value>Nieuw</value>
<comment>This is used as MessageBox title</comment>
</data>
<data name="Removal" xml:space="preserve">
<value>Verwijderen</value>
<comment>This is used as MessageBox title</comment>
</data>
<data name="Rename" xml:space="preserve">
<value>Hernoemen</value>
<comment>This is used as MessageBox title</comment>
</data>
<data name="TutorialBotFormEnabled" xml:space="preserve">
<value>Proficiat! Je bot instance is actief. Feitelijk was dat 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 tutorial. Vergeet niet de wiki te gebruiken als je niet zeker weet hoe een waarde moet worden ingesteld. Dit geldt ook als 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! Simpelweg ASF.exe starten en als je alles correct hebt ingevuld, zul je merken dat ASF aan het inloggen en begonnen is met idlen. Als je SteamGuard twee factor authenticatie aan hebt staan, kan het zijn dat ASF voor deze gegevens vraagt tijdens het starten.</value>
</data>
<data name="TutorialFinished" xml:space="preserve">
<value>Proficiat! Je hebt alles gedaan dat nodig is om ASF bruikbaar te maken, hiermee is deze tutorial die we hebben klaargezet ook afgerond. Het wordt sterk aanbevolen om de hele 'configuration' sectie op de wiki te lezen, aangezien ASF leuke eigenschappen heeft die geconfigureerd kunnen worden. Zoals offline farmen of afstemmen van ASF voor het meest efficiënte idling algoritme voor je account. Dit alles is optioneel en je kan de ConfigGenerator afsluiten als je dit wilt. We hopen dat je zult genieten van de software die we voor jou hebben geschreven!</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 rekening dat alle informatie met betrekking tot alle beschikbare config eigenschappen, inclusief hun uitleg, doel en geaccepteerde waardes, beschikbaar is op onze GitHub wiki. Graag dit als referentie gebruiken.</value>
</data>
<data name="TutorialMainFormConfigurationWindow" xml:space="preserve">
<value>In het midden van de venster kan alle config eigenschappen die beschikbaar zijn configureren. Dit geldt voor de huidig geselecteerde config.</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 bovenrechter hoek vindt 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 de hoofd ASF ConfigGenerator scherm, het is heel simpel in gebruik!</value>
</data>
<data name="TutorialNewBotFormFinished" xml:space="preserve">
<value>Zoals je ziet, je bot is nu gereed voor configuratie! Het eerste dat je wilt doen is {0} eigenschap schakelen van false naar true, probeer het!</value>
<comment>{0} will be replaced by name of the configuration property ("Enabled")</comment>
</data>
<data name="TutorialNewBotFormShown" xml:space="preserve">
<value>Goed gedaan! Je wordt nu gevraagd voor een naam voor je bot. Een goede voorbeeld is de nickname die je voor je Steam account gebruikt. Of elk ander naam die makkelijk voor jou is om te herinneren om welke bot het gaat.</value>
</data>
<data name="TutorialStart" xml:space="preserve">
<value>Welkom! Ik zie dat dit de eerste keer is dat ASF ConfigGenerator gebruikt, laat me je daar een beetje mee helpen.</value>
</data>
<data name="UserInputBotName" xml:space="preserve">
<value>Voer een nieuwe naam in voor de bot: </value>
<comment>Please note that this translation should end with space</comment>
</data>
<data name="WarningConfigPropertyModified" xml:space="preserve">
<value>{0} staat nu op: {1}</value>
<comment>{0} will be replaced by name of the configuration property, {1} will be replaced by new value</comment>
</data>
</root>

View File

@@ -197,7 +197,7 @@ Please use matching ConfigGenerator version for your ASF binary. You'll be redir
<value>Your ASF is now ready! Simply launch ASF.exe binary and if you typed everything properly, you should notice that ASF is logging in and starts idling. If you have SteamGuard or two-factor authentication enabled, ASF might need to ask you for those credentials during runtime.</value>
</data>
<data name="TutorialFinished" xml:space="preserve">
<value>Congratulations! You've done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It's highly recommended to read entire configuraton section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you're free to close our configurator whenever you wish. We hope that you'll enjoy the software that we coded for you!</value>
<value>Congratulations! You've done everything that is needed in order to make ASF usable, that also finishes the tutorial that we prepared for you. It's highly recommended to read entire configuration section on the wiki now, as ASF offers some really neat features for you to configure, such as offline farming or tuning ASF for using the most efficient idling algorithm for your account. All of that is optional though, and you're free to close our configurator whenever you wish. We hope that you'll enjoy the software that we coded for you!</value>
</data>
<data name="TutorialMainFormBotsManagementButtons" xml:space="preserve">
<value>At the top of the window you can notice currently loaded configs, and 3 extra buttons for removing [-], renaming [~] and adding new ones [+].</value>

View File

@@ -0,0 +1,3 @@
This directory contains ASF strings for display and localization purposes.
All strings used by ASF can be found in main ```CGStrings.resx``` file, and that's also the only file that should be modified - all other files are managed automatically and should not be touched. Please visit **[localization](https://github.com/JustArchi/ArchiSteamFarm/wiki/Localization)** section on the wiki if you want to improve translation of other files.

View File

@@ -0,0 +1,3 @@
This directory contains ASF strings for display and localization purposes.
All strings used by ASF can be found in main ```GUIStrings.resx``` file, and that's also the only file that should be modified - all other files are managed automatically and should not be touched. Please visit **[localization](https://github.com/JustArchi/ArchiSteamFarm/wiki/Localization)** section on the wiki if you want to improve translation of other files.