mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-28 12:10:47 +00:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d32970917 | ||
|
|
dd4541ff73 | ||
|
|
9e52d3fb78 | ||
|
|
631cd2d2aa | ||
|
|
151e59cf41 | ||
|
|
100c56fb7e | ||
|
|
024931027f | ||
|
|
d455b3704d | ||
|
|
5b87b605f6 | ||
|
|
a2ee2b792d | ||
|
|
ac65f40f18 | ||
|
|
9b2380fdf9 | ||
|
|
7864a86324 | ||
|
|
f2552950a8 | ||
|
|
aa43b311c5 | ||
|
|
6ca331b74f | ||
|
|
20cca18805 | ||
|
|
30ad9fb8da |
56
.travis.yml
56
.travis.yml
@@ -1,18 +1,7 @@
|
||||
# ASF is a C# project with solution named ArchiSteamFarm.sln
|
||||
language: csharp
|
||||
solution: ArchiSteamFarm.sln
|
||||
|
||||
# We're fine building ASF in container-based environment
|
||||
# Explicitly state that sudo is not needed, even if it's default option
|
||||
sudo: false
|
||||
|
||||
# Default Travis container-based environment is currently Ubuntu 12.04
|
||||
# It'd be best to build ASF on latest Linux OS available, but that's not possible
|
||||
# Therefore, we build ASF on latest available OS, currently: Ubuntu 14.04
|
||||
# Please bump me as new OSes arrive!
|
||||
# https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
|
||||
# TODO: Temporarily disabled, as it's not 100% stable yet.
|
||||
#dist: trusty
|
||||
|
||||
# Save bandwidth by limiting git clone to only last 10 commits
|
||||
git:
|
||||
depth: 10
|
||||
@@ -21,27 +10,38 @@ git:
|
||||
# Sadly Travis doesn't support AppVeyor's "skip_branch_with_pr"
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- master
|
||||
|
||||
# We test ASF on latest stable and nightly versions of Mono
|
||||
mono:
|
||||
- weekly
|
||||
# - alpha
|
||||
# - beta
|
||||
- latest
|
||||
|
||||
# Mono is often broken, we might need to enable/disable allowing failures on as-needed basis
|
||||
# Currently we allow all Mono builds to fail, sadly it's the only way to not get crazy over various random SIGABRTs
|
||||
# Ref: https://travis-ci.org/JustArchi/ArchiSteamFarm/jobs/192428388#L2007-L2009
|
||||
# This is our main build matrix
|
||||
matrix:
|
||||
# We can use fast finish, as we don't need to wait for all builds to mark it as failed/passed
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- mono: weekly
|
||||
# - mono: alpha
|
||||
# - mono: beta
|
||||
- mono: latest
|
||||
# Mono is often broken, we might need to enable/disable allowing failures on as-needed basis
|
||||
# Currently we allow all Mono builds to fail, as it has serious problems, such as random SIGABRTs
|
||||
# This is decent because it allows us to track Mono builds and fix ASF if needed, while not going crazy over false alarms
|
||||
# Ref: https://travis-ci.org/JustArchi/ArchiSteamFarm/jobs/192428388#L2007-L2009
|
||||
- os: linux
|
||||
- os: osx
|
||||
include:
|
||||
# We're building ASF with Mono on latest versions of Linux and OS X
|
||||
# Ref: https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
|
||||
- os: linux
|
||||
dist: trusty
|
||||
sudo: false
|
||||
mono: weekly
|
||||
- os: linux
|
||||
dist: trusty
|
||||
sudo: false
|
||||
mono: latest
|
||||
- os: osx
|
||||
osx_image: xcode8.2
|
||||
mono: weekly
|
||||
- os: osx
|
||||
osx_image: xcode8.2
|
||||
mono: latest
|
||||
|
||||
# Initialize our envsetup before building
|
||||
# Initialize our envsetup before building, we're adding some extra environment properties there
|
||||
before_script:
|
||||
- source mono_envsetup.sh
|
||||
|
||||
|
||||
@@ -208,6 +208,7 @@
|
||||
<EmbeddedResource Include="Localization\Strings.el-GR.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.es-ES.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.fi-FI.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.fr-CH.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.fr-FR.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.he-IL.resx" />
|
||||
<EmbeddedResource Include="Localization\Strings.hi-IN.resx" />
|
||||
|
||||
@@ -63,8 +63,6 @@ namespace ArchiSteamFarm {
|
||||
private readonly SemaphoreSlim SteamApiKeySemaphore = new SemaphoreSlim(1);
|
||||
private readonly WebBrowser WebBrowser;
|
||||
|
||||
internal bool Ready { get; private set; }
|
||||
|
||||
private bool? CachedPublicInventory;
|
||||
private string CachedSteamApiKey;
|
||||
private DateTime LastSessionRefreshCheck = DateTime.MinValue;
|
||||
@@ -92,7 +90,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -120,7 +118,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -148,7 +146,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -181,19 +179,21 @@ namespace ArchiSteamFarm {
|
||||
|
||||
KeyValue response = null;
|
||||
for (byte i = 0; (i < WebBrowser.MaxRetries) && (response == null); i++) {
|
||||
using (dynamic iEconService = WebAPI.GetInterface(IEconService, steamApiKey)) {
|
||||
iEconService.Timeout = Timeout;
|
||||
await Task.Run(() => {
|
||||
using (dynamic iEconService = WebAPI.GetInterface(IEconService, steamApiKey)) {
|
||||
iEconService.Timeout = Timeout;
|
||||
|
||||
try {
|
||||
response = iEconService.DeclineTradeOffer(
|
||||
tradeofferid: tradeID.ToString(),
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
try {
|
||||
response = iEconService.DeclineTradeOffer(
|
||||
tradeofferid: tradeID.ToString(),
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (response == null) {
|
||||
@@ -203,7 +203,7 @@ namespace ArchiSteamFarm {
|
||||
|
||||
/*
|
||||
internal async Task<HashSet<uint>> GenerateNewDiscoveryQueue() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -232,20 +232,22 @@ namespace ArchiSteamFarm {
|
||||
|
||||
KeyValue response = null;
|
||||
for (byte i = 0; (i < WebBrowser.MaxRetries) && (response == null); i++) {
|
||||
using (dynamic iEconService = WebAPI.GetInterface(IEconService, steamApiKey)) {
|
||||
iEconService.Timeout = Timeout;
|
||||
await Task.Run(() => {
|
||||
using (dynamic iEconService = WebAPI.GetInterface(IEconService, steamApiKey)) {
|
||||
iEconService.Timeout = Timeout;
|
||||
|
||||
try {
|
||||
response = iEconService.GetTradeOffers(
|
||||
get_received_offers: 1,
|
||||
active_only: 1,
|
||||
get_descriptions: 1,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
try {
|
||||
response = iEconService.GetTradeOffers(
|
||||
get_received_offers: 1,
|
||||
active_only: 1,
|
||||
get_descriptions: 1,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (response == null) {
|
||||
@@ -340,7 +342,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -354,7 +356,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -375,7 +377,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -385,7 +387,7 @@ namespace ArchiSteamFarm {
|
||||
|
||||
/*
|
||||
internal async Task<HtmlDocument> GetDiscoveryQueuePage() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -395,7 +397,7 @@ namespace ArchiSteamFarm {
|
||||
*/
|
||||
|
||||
internal async Task<HashSet<ulong>> GetFamilySharingSteamIDs() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -434,7 +436,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -443,7 +445,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
internal async Task<Dictionary<uint, string>> GetMyOwnedGames() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -488,7 +490,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -620,19 +622,21 @@ namespace ArchiSteamFarm {
|
||||
|
||||
KeyValue response = null;
|
||||
for (byte i = 0; (i < WebBrowser.MaxRetries) && (response == null); i++) {
|
||||
using (dynamic iPlayerService = WebAPI.GetInterface(IPlayerService, steamApiKey)) {
|
||||
iPlayerService.Timeout = Timeout;
|
||||
await Task.Run(() => {
|
||||
using (dynamic iPlayerService = WebAPI.GetInterface(IPlayerService, steamApiKey)) {
|
||||
iPlayerService.Timeout = Timeout;
|
||||
|
||||
try {
|
||||
response = iPlayerService.GetOwnedGames(
|
||||
steamid: steamID,
|
||||
include_appinfo: 1,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
try {
|
||||
response = iPlayerService.GetOwnedGames(
|
||||
steamid: steamID,
|
||||
include_appinfo: 1,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (response == null) {
|
||||
@@ -654,21 +658,23 @@ namespace ArchiSteamFarm {
|
||||
return result;
|
||||
}
|
||||
|
||||
internal uint GetServerTime() {
|
||||
internal async Task<uint> GetServerTime() {
|
||||
KeyValue response = null;
|
||||
for (byte i = 0; (i < WebBrowser.MaxRetries) && (response == null); i++) {
|
||||
using (dynamic iTwoFactorService = WebAPI.GetInterface(ITwoFactorService)) {
|
||||
iTwoFactorService.Timeout = Timeout;
|
||||
await Task.Run(() => {
|
||||
using (dynamic iTwoFactorService = WebAPI.GetInterface(ITwoFactorService)) {
|
||||
iTwoFactorService.Timeout = Timeout;
|
||||
|
||||
try {
|
||||
response = iTwoFactorService.QueryTime(
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
try {
|
||||
response = iTwoFactorService.QueryTime(
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (response != null) {
|
||||
@@ -681,7 +687,7 @@ namespace ArchiSteamFarm {
|
||||
|
||||
/*
|
||||
internal async Task<HtmlDocument> GetSteamAwardsPage() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -696,7 +702,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -747,7 +753,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -763,7 +769,7 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -845,26 +851,26 @@ namespace ArchiSteamFarm {
|
||||
// Do the magic
|
||||
Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.LoggingIn, ISteamUserAuth));
|
||||
|
||||
KeyValue authResult;
|
||||
using (dynamic iSteamUserAuth = WebAPI.GetInterface(ISteamUserAuth)) {
|
||||
iSteamUserAuth.Timeout = Timeout;
|
||||
KeyValue authResult = null;
|
||||
await Task.Run(() => {
|
||||
using (dynamic iSteamUserAuth = WebAPI.GetInterface(ISteamUserAuth)) {
|
||||
iSteamUserAuth.Timeout = Timeout;
|
||||
|
||||
try {
|
||||
authResult = iSteamUserAuth.AuthenticateUser(
|
||||
steamid: steamID,
|
||||
sessionkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(cryptedSessionKey, 0, cryptedSessionKey.Length)),
|
||||
encrypted_loginkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(cryptedLoginKey, 0, cryptedLoginKey.Length)),
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
return false;
|
||||
try {
|
||||
authResult = iSteamUserAuth.AuthenticateUser(
|
||||
steamid: steamID,
|
||||
sessionkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(cryptedSessionKey, 0, cryptedSessionKey.Length)),
|
||||
encrypted_loginkey: Encoding.ASCII.GetString(WebUtility.UrlEncodeToBytes(cryptedLoginKey, 0, cryptedLoginKey.Length)),
|
||||
method: WebRequestMethods.Http.Post,
|
||||
secure: true
|
||||
);
|
||||
} catch (Exception e) {
|
||||
Bot.ArchiLogger.LogGenericWarningException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
|
||||
if (authResult == null) {
|
||||
Bot.ArchiLogger.LogNullError(nameof(authResult));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -898,7 +904,6 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
}
|
||||
|
||||
Ready = true;
|
||||
LastSessionRefreshCheck = DateTime.UtcNow;
|
||||
return true;
|
||||
}
|
||||
@@ -909,7 +914,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -929,7 +934,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
internal async Task<bool> MarkInventory() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -937,7 +942,7 @@ namespace ArchiSteamFarm {
|
||||
return await WebBrowser.UrlHeadRetry(request).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
internal void OnDisconnected() => Ready = false;
|
||||
internal void OnDisconnected() => SteamID = 0;
|
||||
|
||||
internal async Task<EPurchaseResultDetail> RedeemWalletKey(string key) {
|
||||
if (string.IsNullOrEmpty(key)) {
|
||||
@@ -945,7 +950,7 @@ namespace ArchiSteamFarm {
|
||||
return EPurchaseResultDetail.Timeout;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return EPurchaseResultDetail.Timeout;
|
||||
}
|
||||
|
||||
@@ -964,7 +969,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1075,7 +1080,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private async Task<Tuple<ESteamApiKeyState, string>> GetApiKeyState() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1147,7 +1152,7 @@ namespace ArchiSteamFarm {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1212,7 +1217,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private async Task<bool?> IsInventoryPublic() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1287,6 +1292,16 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private async Task<bool> RefreshSessionIfNeeded() {
|
||||
if (SteamID == 0) {
|
||||
for (byte i = 0; (i < Program.GlobalConfig.ConnectionTimeout) && (SteamID == 0); i++) {
|
||||
await Task.Delay(1000).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (SteamID == 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow.Subtract(LastSessionRefreshCheck).TotalSeconds < MinSessionTTL) {
|
||||
return true;
|
||||
}
|
||||
@@ -1312,7 +1327,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
private async Task<bool> RegisterApiKey() {
|
||||
if (!Ready || !await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
if (!await RefreshSessionIfNeeded().ConfigureAwait(false)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -313,9 +313,14 @@ namespace ArchiSteamFarm {
|
||||
return null;
|
||||
}
|
||||
|
||||
internal static string GetAPIStatus() {
|
||||
internal static string GetAPIStatus(IDictionary<string, Bot> bots) {
|
||||
if (bots == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(bots));
|
||||
return null;
|
||||
}
|
||||
|
||||
var response = new {
|
||||
Bots
|
||||
Bots = bots
|
||||
};
|
||||
|
||||
try {
|
||||
@@ -627,6 +632,8 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
return await ResponseAddLicense(steamID, args[1]).ConfigureAwait(false);
|
||||
case "!API":
|
||||
return ResponseAPI(steamID, args[1]);
|
||||
case "!FARM":
|
||||
return await ResponseFarm(steamID, args[1]).ConfigureAwait(false);
|
||||
case "!INPUT":
|
||||
@@ -1424,16 +1431,6 @@ namespace ArchiSteamFarm {
|
||||
|
||||
await Task.Delay(1000).ConfigureAwait(false); // Wait a second for eventual PlayingSessionStateCallback or SharedLibraryLockStatusCallback
|
||||
|
||||
if (!ArchiWebHandler.Ready) {
|
||||
for (byte i = 0; (i < Program.GlobalConfig.ConnectionTimeout) && !ArchiWebHandler.Ready; i++) {
|
||||
await Task.Delay(1000).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (!ArchiWebHandler.Ready) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Normally we ResetGamesPlayed() in OnFarmingStopped() but there is no farming event if CardsFarmer module is disabled
|
||||
// Therefore, trigger extra ResetGamesPlayed(), but only in this specific case
|
||||
if (CardsFarmer.Paused) {
|
||||
@@ -1998,13 +1995,27 @@ namespace ArchiSteamFarm {
|
||||
|
||||
private static string ResponseAPI(ulong steamID) {
|
||||
if (steamID != 0) {
|
||||
return IsOwner(steamID) ? FormatStaticResponse(GetAPIStatus()) : null;
|
||||
return IsOwner(steamID) ? FormatStaticResponse(GetAPIStatus(Bots)) : null;
|
||||
}
|
||||
|
||||
ASF.ArchiLogger.LogNullError(nameof(steamID));
|
||||
return null;
|
||||
}
|
||||
|
||||
private static string ResponseAPI(ulong steamID, string botNames) {
|
||||
if ((steamID == 0) || string.IsNullOrEmpty(botNames)) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(steamID) + " || " + nameof(botNames));
|
||||
return null;
|
||||
}
|
||||
|
||||
HashSet<Bot> bots = GetBots(botNames);
|
||||
if ((bots == null) || (bots.Count == 0)) {
|
||||
return IsOwner(steamID) ? FormatStaticResponse(string.Format(Strings.BotNotFound, botNames)) : null;
|
||||
}
|
||||
|
||||
return GetAPIStatus(Bots.Where(kv => bots.Contains(kv.Value)).ToDictionary(kv => kv.Key, kv => kv.Value));
|
||||
}
|
||||
|
||||
private static string ResponseExit(ulong steamID) {
|
||||
if (steamID == 0) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(steamID));
|
||||
@@ -2894,7 +2905,7 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
|
||||
if (!IsConnectedAndLoggedOn) {
|
||||
return FormatBotResponse(KeepRunning ? Strings.BotStatusNotConnected : Strings.BotStatusNotRunning);
|
||||
return FormatBotResponse(KeepRunning ? Strings.BotStatusConnecting : Strings.BotStatusNotRunning);
|
||||
}
|
||||
|
||||
if (PlayingBlocked) {
|
||||
|
||||
380
ArchiSteamFarm/Localization/Strings.Designer.cs
generated
380
ArchiSteamFarm/Localization/Strings.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -608,9 +608,7 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot je limitovaný a nemůže získávat karty pomocí farmení.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot není připojený.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot není spuštěný.</value>
|
||||
</data>
|
||||
|
||||
@@ -152,7 +152,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>Allgemeine Konfiguration konnte nicht geladen werden. Stelle sicher, dass {0} existiert und gültig ist! Folge dem 'Setting Up' Anleitung im Wiki, wenn du verwirrt bist.</value>
|
||||
<value>Allgemeine Konfiguration konnte nicht geladen werden. Stelle sicher, dass {0} existiert und gültig ist! Folge der Anleitung 'Setting Up' im Wiki, falls du verwirrt sein solltest.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" xml:space="preserve">
|
||||
@@ -174,7 +174,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>Konnte alte ASF Binärdatei nicht löschen. Bitte entferne {0} manuell, damit die Updatefunktion funktionieren kann!</value>
|
||||
<value>Konnte alte ASF-Binärdatei nicht löschen. Bitte entferne {0} manuell, damit die Updatefunktion funktionieren kann!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
@@ -311,7 +311,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Bitte gib den Steam Guard Authentifikator-Code ein, der dir per E-Mail geschickt wurde: </value>
|
||||
<value>Bitte gib den Steam Guard Authentifikator-Code ein, der dir per E-Mail zugeschickt wurde: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
@@ -319,7 +319,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamParentalPIN" xml:space="preserve">
|
||||
<value>Bitte geben deinen Steam-Familienansicht-PIN ein: </value>
|
||||
<value>Bitte geben die PIN deiner Steam-Familienansicht ein: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamPassword" xml:space="preserve">
|
||||
@@ -376,7 +376,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by bot's name query (string)</comment>
|
||||
</data>
|
||||
<data name="BotStatusOverview" xml:space="preserve">
|
||||
<value>Es laufen gerade {0}/{1} Bots, mit insgesamt {2} Spielen ({3} Karten) übrig zum Sammlen.</value>
|
||||
<value>Es arbeiten derzeit {0}/{1} Bots, mit insgesamt {2} Spielen ({3} Karten) übrig zum Sammlen.</value>
|
||||
<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">
|
||||
@@ -401,7 +401,7 @@ StackTrace:
|
||||
<value>Erledigt!</value>
|
||||
</data>
|
||||
<data name="GamesToIdle" xml:space="preserve">
|
||||
<value>Wir haben noch insgesamt bei {0} Spiel(e) ({1} Karte(n)) zu sammeln (~{2} verbleibend)...</value>
|
||||
<value>Wir haben noch insgesamt bei {0} Spiel(en) ({1} Karte[n]) etwas zu sammeln (~{2} verbleibend)...</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">
|
||||
@@ -416,14 +416,14 @@ StackTrace:
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="IdlingStatusForGame" xml:space="preserve">
|
||||
<value>Status zum Idlen von {0} ({1}): {2} Karten verbleibend</value>
|
||||
<value>Status zum Sammeln von {0} ({1}): {2} Karte(en) verbleibend</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle</comment>
|
||||
</data>
|
||||
<data name="IdlingStopped" xml:space="preserve">
|
||||
<value>Idlen gestoppt!</value>
|
||||
</data>
|
||||
<data name="IgnoredStickyPauseEnabled" xml:space="preserve">
|
||||
<value>Ignoriere diese Anfrage, da die "Anhaltende Pause" aktiviert ist!</value>
|
||||
<value>Ignoriere diese Anfrage, da die Anhaltende Pause aktiviert ist!</value>
|
||||
</data>
|
||||
<data name="NothingToIdle" xml:space="preserve">
|
||||
<value>Wir haben auf diesem Benutzerkonto nichts zum Sammeln!</value>
|
||||
@@ -526,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>Roboterexemplar nicht gestartet, weil es in der Konfigurations-Datei deaktiviert ist!</value>
|
||||
<value>Bot-Instanz nicht gestartet, da es in der Konfigurations-Datei deaktiviert ist!</value>
|
||||
</data>
|
||||
<data name="BotInvalidAuthenticatorDuringLogin" xml:space="preserve">
|
||||
<value>ZweiFaktorCodeDiskrepanz Fehlercode {0} Mal hintereinander erhalten, dies weist meist auf ungültige ASF 2FA Anmeldedaten hin. Abbruch!</value>
|
||||
<value>Der Fehler "TwoFactorCodeMismatch" ist {0} Mal in Folge aufgetreten. Dies weißt fast immer auf ungültige ASF 2FA Anmeldedaten hin. Vorgang wird abgebrochen!</value>
|
||||
<comment>{0} will be replaced by maximum allowed number of failed 2FA attempts</comment>
|
||||
</data>
|
||||
<data name="BotLoggedOff" xml:space="preserve">
|
||||
@@ -540,10 +540,10 @@ StackTrace:
|
||||
<value>Erfolgreich angemeldet!</value>
|
||||
</data>
|
||||
<data name="BotLoggingIn" xml:space="preserve">
|
||||
<value>Anmelden...</value>
|
||||
<value>Melde an...</value>
|
||||
</data>
|
||||
<data name="BotLogonSessionReplaced" xml:space="preserve">
|
||||
<value>Dieses Benutzerkonto scheint bereits von einer anderen ASF-Instanz verwendet zu werden, welches ein undefiniertes Verhalten ist, verweigere es weiter laufen zu lassen!</value>
|
||||
<value>Dieses Benutzerkonto scheint bereits von einer anderen ASF-Instanz verwendet zu werden, welches ein undefiniertes Verhalten ist. Verweigere, es weiter laufen zu lassen!</value>
|
||||
</data>
|
||||
<data name="BotLootingFailed" xml:space="preserve">
|
||||
<value>Senden des Handelsangebots fehlgeschlagen!</value>
|
||||
@@ -596,21 +596,19 @@ StackTrace:
|
||||
<comment>{0} will be replaced by cd-key (string), {1} will be replaced by status string</comment>
|
||||
</data>
|
||||
<data name="BotRedeemWithItems" xml:space="preserve">
|
||||
<value>Key: {0} | Status: {1} | Einzelheiten: {2}</value>
|
||||
<value>Key: {0} | Status: {1} | Gegenstände: {2}</value>
|
||||
<comment>{0} will be replaced by cd-key (string), {1} will be replaced by status string, {2} will be replaced by list of key-value pairs, separated by a comma</comment>
|
||||
</data>
|
||||
<data name="BotRemovedExpiredLoginKey" xml:space="preserve">
|
||||
<value>Abgelaufenen Anmelde-Schlüssel entfernt!</value>
|
||||
</data>
|
||||
<data name="BotStatusNotIdling" xml:space="preserve">
|
||||
<value>Bot sammelt überhaupt nichts.</value>
|
||||
<value>Bot sammelt nichts.</value>
|
||||
</data>
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot ist eingeschränkt und erhält keine Karten durch's Sammeln.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot ist nicht verbunden.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot läuft nicht.</value>
|
||||
</data>
|
||||
|
||||
@@ -607,9 +607,7 @@ Trazo de pila:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>El bot esta limitado y no puede conseguir ningún cromo a través de la recolección.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>El bot no está conectado.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>El Bot no se está ejecutando.</value>
|
||||
</data>
|
||||
|
||||
715
ArchiSteamFarm/Localization/Strings.fr-CH.resx
Normal file
715
ArchiSteamFarm/Localization/Strings.fr-CH.resx
Normal file
@@ -0,0 +1,715 @@
|
||||
<?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>
|
||||
<data name="AcceptingTrade" xml:space="preserve">
|
||||
<value>Échange accepté : {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="AutoUpdateCheckInfo" xml:space="preserve">
|
||||
<value>ASF recherchera automatiquement de nouvelles mises à jour toutes les {0} heures.</value>
|
||||
<comment>{0} will be replaced by number of hours</comment>
|
||||
</data>
|
||||
<data name="Content" xml:space="preserve">
|
||||
<value>Contenu :
|
||||
{0}</value>
|
||||
<comment>{0} will be replaced by content string. Please note that this string should include newline for formatting.</comment>
|
||||
</data>
|
||||
<data name="ErrorConfigPropertyInvalid" xml:space="preserve">
|
||||
<value>Propriété {0} configuré n’est pas valide : {1}</value>
|
||||
<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} a rencontré une exception fatale avant même que le module de base de journalisation ait le temps de s'initialiser !</value>
|
||||
<comment>{0} will be replaced by version number</comment>
|
||||
</data>
|
||||
<data name="ErrorEarlyFatalExceptionPrint" xml:space="preserve">
|
||||
<value>Exception : {0}() {1}
|
||||
StackTrace :
|
||||
{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>Arret avec un code d’erreur non nul !</value>
|
||||
</data>
|
||||
<data name="ErrorFailingRequest" xml:space="preserve">
|
||||
<value>Échec de la requête : {0}</value>
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>La configuration globale n'a pu être chargée. Merci de vérifier que {0} existe et est valide ! Suivez le guide de configuration sur le wiki en cas de doute.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" xml:space="preserve">
|
||||
<value>{0} est invalide!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorMobileAuthenticatorInvalidDeviceID" xml:space="preserve">
|
||||
<value>Refus d’exécution de cette fonction en raison d'un DeviceID invalide dans ASF 2FA !</value>
|
||||
</data>
|
||||
<data name="ErrorNoBotsDefined" xml:space="preserve">
|
||||
<value>Aucun bot défini, avez-vous omis de configurer ASF?</value>
|
||||
</data>
|
||||
<data name="ErrorObjectIsNull" xml:space="preserve">
|
||||
<value>{0} est invalide !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorParsingObject" xml:space="preserve">
|
||||
<value>L’analyse de {0} a échoué !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>Impossible de supprimer l'ancien binaire d'ASF, merci de supprimer {0} manuellement afin que la fonction de mise à jour puisse fonctionner !</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
<value>La requête a échoué après {0} tentatives !</value>
|
||||
<comment>{0} will be replaced by maximum number of tries</comment>
|
||||
</data>
|
||||
<data name="ErrorUpdateCheckFailed" xml:space="preserve">
|
||||
<value>Impossible de vérifier la dernière version !</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateNoAssetForThisBinary" xml:space="preserve">
|
||||
<value>Impossible de procéder à la mise à jour car il n’y a aucune correspondance au binaire en cours d’exécution ! Veuillez vous assurer que votre binaire ASF est nommé de manière appropriée !</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateNoAssets" xml:space="preserve">
|
||||
<value>Impossible de procéder à une mise à jour parce que cette version ne contient aucun fichier !</value>
|
||||
</data>
|
||||
<data name="ErrorUserInputRunningInHeadlessMode" xml:space="preserve">
|
||||
<value>Réception d'une demande d'entrée utilisateur, mais le processus en cours tourne en mode non-interactif!</value>
|
||||
</data>
|
||||
<data name="ErrorWCFAccessDenied" xml:space="preserve">
|
||||
<value>Refus de traiter la requête car le paramètre SteamOwnerID n’est pas défini !</value>
|
||||
<comment>SteamOwnerID is name of bot config property, it should not be translated</comment>
|
||||
</data>
|
||||
<data name="Exiting" xml:space="preserve">
|
||||
<value>Fermeture...</value>
|
||||
</data>
|
||||
<data name="WarningFailed" xml:space="preserve">
|
||||
<value>Échec!</value>
|
||||
</data>
|
||||
<data name="GlobalConfigChanged" xml:space="preserve">
|
||||
<value>Le fichier de configuration général a été modifié!</value>
|
||||
</data>
|
||||
<data name="ErrorGlobalConfigRemoved" xml:space="preserve">
|
||||
<value>Le fichier de configuration générale a été supprimé!</value>
|
||||
</data>
|
||||
<data name="IgnoringTrade" xml:space="preserve">
|
||||
<value>Offre ignorée : {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="LoggingIn" xml:space="preserve">
|
||||
<value>Connexion à {0}...</value>
|
||||
<comment>{0} will be replaced by service's name</comment>
|
||||
</data>
|
||||
<data name="NoBotsAreRunning" xml:space="preserve">
|
||||
<value>Aucun bot en fonctionnement, fermeture en cours...</value>
|
||||
</data>
|
||||
<data name="RefreshingOurSession" xml:space="preserve">
|
||||
<value>Rafraîchissement de notre session !</value>
|
||||
</data>
|
||||
<data name="RejectingTrade" xml:space="preserve">
|
||||
<value>Offre rejetée : {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="Restarting" xml:space="preserve">
|
||||
<value>Redémarrage...</value>
|
||||
</data>
|
||||
<data name="WarningRuntimeUnsupported" xml:space="preserve">
|
||||
<value>ASF a détecté un environnement d'exécution en cours non pris en charge, le programme pourrait NE PAS fonctionner. Vous le lancez à vos propres risques et périls, et sans aide !</value>
|
||||
</data>
|
||||
<data name="RuntimeVersionComparison" xml:space="preserve">
|
||||
<value>Version requise : {0} | Version trouvée : {1}</value>
|
||||
<comment>{0} will be replaced by required version, {1} will be replaced by current version</comment>
|
||||
</data>
|
||||
<data name="RuntimeVersionOK" xml:space="preserve">
|
||||
<value>La version {0} de votre environnement d'exécution est OK.</value>
|
||||
<comment>{0} will be replaced by runtime name (e.g. "Mono")</comment>
|
||||
</data>
|
||||
<data name="WarningRuntimeVersionTooOld" xml:space="preserve">
|
||||
<value>La version {0} de votre environnement d'exécution est trop ancienne!</value>
|
||||
<comment>{0} will be replaced by runtime name (e.g. "Mono")</comment>
|
||||
</data>
|
||||
<data name="Starting" xml:space="preserve">
|
||||
<value>Démarrage...</value>
|
||||
</data>
|
||||
<data name="StatusCode" xml:space="preserve">
|
||||
<value>Statut du code : {0}</value>
|
||||
<comment>{0} will be replaced by status code number/name</comment>
|
||||
</data>
|
||||
<data name="Success" xml:space="preserve">
|
||||
<value>Succès !</value>
|
||||
</data>
|
||||
<data name="TimeSpanDay" xml:space="preserve">
|
||||
<value>1 jour</value>
|
||||
</data>
|
||||
<data name="TimeSpanDays" xml:space="preserve">
|
||||
<value>{0} jours</value>
|
||||
<comment>{0} will be replaced by number of days</comment>
|
||||
</data>
|
||||
<data name="TimeSpanHour" xml:space="preserve">
|
||||
<value>1 heure</value>
|
||||
</data>
|
||||
<data name="TimeSpanHours" xml:space="preserve">
|
||||
<value>{0} heures</value>
|
||||
<comment>{0} will be replaced by number of hours</comment>
|
||||
</data>
|
||||
<data name="TimeSpanMinute" xml:space="preserve">
|
||||
<value>1 minute</value>
|
||||
</data>
|
||||
<data name="TimeSpanMinutes" xml:space="preserve">
|
||||
<value>{0} minutes</value>
|
||||
<comment>{0} will be replaced by number of minutes</comment>
|
||||
</data>
|
||||
<data name="TimeSpanSecond" xml:space="preserve">
|
||||
<value>1 seconde</value>
|
||||
</data>
|
||||
<data name="TimeSpanSeconds" xml:space="preserve">
|
||||
<value>{0} secondes</value>
|
||||
<comment>{0} will be replaced by number of seconds</comment>
|
||||
</data>
|
||||
<data name="UnlockingParentalAccount" xml:space="preserve">
|
||||
<value>Déverrouillage du compte parental...</value>
|
||||
</data>
|
||||
<data name="UpdateCheckingNewVersion" xml:space="preserve">
|
||||
<value>Recherche d'une nouvelle version...</value>
|
||||
</data>
|
||||
<data name="UpdateDownloadingNewVersion" xml:space="preserve">
|
||||
<value>Téléchargement de la nouvelle version en cours... En attendant, vous pouvez faire un don si vous appréciez le travail effectué ! :)</value>
|
||||
</data>
|
||||
<data name="UpdateFinished" xml:space="preserve">
|
||||
<value>Mise à jour terminée !</value>
|
||||
</data>
|
||||
<data name="UpdateNewVersionAvailable" xml:space="preserve">
|
||||
<value>Une nouvelle version d'ASF est disponible ! Envisagez de la mettre à jour !</value>
|
||||
</data>
|
||||
<data name="UpdateVersionInfo" xml:space="preserve">
|
||||
<value>Version locale : {0} | Version à distance : {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>Veuillez entrer l'ID de votre périphérique mobile d'authentification (« android : » inclus) : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteam2FA" xml:space="preserve">
|
||||
<value>Veuillez entrer votre code 2FA généré par votre application d'authentification de Steam: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Veuillez entrer le code d’authentification SteamGuard qui a été envoyé sur votre e-mail : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
<value>Veuillez entrer votre nom d’utilisateur Steam : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamParentalPIN" xml:space="preserve">
|
||||
<value>Veuillez entrer le code du mode famille: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamPassword" xml:space="preserve">
|
||||
<value>Veuillez entrer votre mot de passe Steam : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputUnknown" xml:space="preserve">
|
||||
<value>Veuillez entrer la valeur non documentée de {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>Veuillez entrer votre hôte WCF : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="WarningUnknownValuePleaseReport" xml:space="preserve">
|
||||
<value>{0} a reçu une valeur inconnue, veuillez le signaler : {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>Jouer à plus de {0} jeux en même temps n’est pas actuelllement possible, seules les {0} premières entrées de {1} seront utilisées !</value>
|
||||
<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>Commande WCF ignorée car --client n’a pas été spécifié : {0}</value>
|
||||
<comment>{0} will be replaced by WCF command</comment>
|
||||
</data>
|
||||
<data name="ErrorWCFAddressAccessDeniedException" xml:space="preserve">
|
||||
<value>Le service WCF n’a pas pu être démarré en raison d'un refus d'accès AddressAccessDeniedException ! Si vous souhaitez utiliser le service WCF fourni par ASF, envisagez de lancer ASF en tant qu’administrateur ou en donnant des autorisations adéquates !</value>
|
||||
</data>
|
||||
<data name="WCFAnswered" xml:space="preserve">
|
||||
<value>Réponse à la commande WCF : {0} avec : {1}</value>
|
||||
<comment>{0} will be replaced by WCF command, {1} will be replaced by WCF answer</comment>
|
||||
</data>
|
||||
<data name="WCFReady" xml:space="preserve">
|
||||
<value>Serveur WCF prêt !</value>
|
||||
</data>
|
||||
<data name="WCFResponseReceived" xml:space="preserve">
|
||||
<value>Réponse WCF reçue : {0}</value>
|
||||
<comment>{0} will be replaced by WCF response</comment>
|
||||
</data>
|
||||
<data name="WCFSendingCommand" xml:space="preserve">
|
||||
<value>Envoi de la commande : {0} au serveur WCF sur {1}...</value>
|
||||
<comment>{0} will be replaced by WCF command, {1} will be replaced by WCF hostname</comment>
|
||||
</data>
|
||||
<data name="WCFStarting" xml:space="preserve">
|
||||
<value>Démarrage du serveur WCF sur {0}...</value>
|
||||
<comment>{0} will be replaced by WCF hostname</comment>
|
||||
</data>
|
||||
<data name="BotAlreadyStopped" xml:space="preserve">
|
||||
<value>Ce bot est déjà arrêté !</value>
|
||||
</data>
|
||||
<data name="BotNotFound" xml:space="preserve">
|
||||
<value>Aucun bot nommé {0} n'a été trouvé!</value>
|
||||
<comment>{0} will be replaced by bot's name query (string)</comment>
|
||||
</data>
|
||||
<data name="BotStatusOverview" xml:space="preserve">
|
||||
<value>Il y a {0}/{1} bots en cours d’exécution, avec un total de {2} jeux ({3} cartes) restants à collecter.</value>
|
||||
<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>Le bot collecte les cartes du jeu : {0} ({1}, {2} cartes restantes à obtenir) sur un total de {3} jeux ({4} cartes) à collecter (~{5} restantes).</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle, {3} will be replaced by total number of games to idle, {4} will be replaced by total number of cards to idle, {5} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="BotStatusIdlingList" xml:space="preserve">
|
||||
<value>Le bot collecte les cartes des jeux : {0} sur un total de {1} jeux ({2} cartes) restants à traiter (~{3} restantes).</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), {1} will be replaced by total number of games to idle, {2} will be replaced by total number of cards to idle, {3} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="CheckingFirstBadgePage" xml:space="preserve">
|
||||
<value>Vérification de la première page des badges...</value>
|
||||
</data>
|
||||
<data name="CheckingOtherBadgePages" xml:space="preserve">
|
||||
<value>Vérification des autres pages de badges...</value>
|
||||
</data>
|
||||
<data name="ChosenFarmingAlgorithm" xml:space="preserve">
|
||||
<value>Algorithme de collecte choisi : {0}</value>
|
||||
<comment>{0} will be replaced by the name of chosen idling algorithm</comment>
|
||||
</data>
|
||||
<data name="Done" xml:space="preserve">
|
||||
<value>Accompli !</value>
|
||||
</data>
|
||||
<data name="GamesToIdle" xml:space="preserve">
|
||||
<value>Nous avons un total de {0} jeux ({1} cartes) restants à collecter (~{2} restantes)...</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">
|
||||
<value>Collecte terminée !</value>
|
||||
</data>
|
||||
<data name="IdlingFinishedForGame" xml:space="preserve">
|
||||
<value>Collecte terminée : {0} ({1}) après {2} de temps de jeu !</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="IdlingFinishedForGames" xml:space="preserve">
|
||||
<value>Collecte terminée des jeux : {0}</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="IdlingStatusForGame" xml:space="preserve">
|
||||
<value>Progression de la collecte pour {0} ({1}) : {2} cartes restantes</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle</comment>
|
||||
</data>
|
||||
<data name="IdlingStopped" xml:space="preserve">
|
||||
<value>Collecte interrompue !</value>
|
||||
</data>
|
||||
<data name="IgnoredStickyPauseEnabled" xml:space="preserve">
|
||||
<value>Requête ignorée car la pause permanente est active !</value>
|
||||
</data>
|
||||
<data name="NothingToIdle" xml:space="preserve">
|
||||
<value>Nous n’avons rien à collecter sur ce compte !</value>
|
||||
</data>
|
||||
<data name="NowIdling" xml:space="preserve">
|
||||
<value>Collecte en cours : {0} ({1})</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="NowIdlingList" xml:space="preserve">
|
||||
<value>Collecte en cours : {0}</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="PlayingNotAvailable" xml:space="preserve">
|
||||
<value>Le jeu est actuellement indisponible, nous réessayerons plus tard !</value>
|
||||
</data>
|
||||
<data name="StillIdling" xml:space="preserve">
|
||||
<value>Collecte toujours en cours : {0} ({1})</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="StillIdlingList" xml:space="preserve">
|
||||
<value>Collecte toujours en cours : {0}</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="StoppedIdling" xml:space="preserve">
|
||||
<value>Collecte arrêtée : {0} ({1})</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="StoppedIdlingList" xml:space="preserve">
|
||||
<value>Collecte arrêtée : {0}</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="UnknownCommand" xml:space="preserve">
|
||||
<value>Commande inconnue !</value>
|
||||
</data>
|
||||
<data name="WarningCouldNotCheckBadges" xml:space="preserve">
|
||||
<value>Impossible d'obtenir les informations des badges, nous réessayerons plus tard!</value>
|
||||
</data>
|
||||
<data name="WarningCouldNotCheckCardsStatus" xml:space="preserve">
|
||||
<value>Impossible de vérifier les cartes restantes pour : {0} ({1}), nous réessayerons plus tard !</value>
|
||||
<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>Acceptation du cadeau : {0}...</value>
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
<data name="BotAccountLimited" xml:space="preserve">
|
||||
<value>Ce compte est limité, le processus de collecte est impossible tant que la restriction n'a pas été levée !</value>
|
||||
</data>
|
||||
<data name="BotAddLicense" xml:space="preserve">
|
||||
<value>ID : {0} | Statut : {1}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by status string</comment>
|
||||
</data>
|
||||
<data name="BotAddLicenseWithItems" xml:space="preserve">
|
||||
<value>ID : {0} | Statut : {1} | Items : {2}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by status string, {2} will be replaced by list of granted IDs (numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="BotAlreadyRunning" xml:space="preserve">
|
||||
<value>Ce bot est déjà lancé !</value>
|
||||
</data>
|
||||
<data name="BotAuthenticatorConverting" xml:space="preserve">
|
||||
<value>Conversion de .maFile au format ASF...</value>
|
||||
</data>
|
||||
<data name="BotAuthenticatorImportFinished" xml:space="preserve">
|
||||
<value>Importation de l'authentificateur mobile effectuée avec succès!</value>
|
||||
</data>
|
||||
<data name="BotAuthenticatorInvalidDeviceID" xml:space="preserve">
|
||||
<value>Votre DeviceID est incorrect ou n’existe pas !</value>
|
||||
</data>
|
||||
<data name="BotAuthenticatorToken" xml:space="preserve">
|
||||
<value>Code 2FA : {0}</value>
|
||||
<comment>{0} will be replaced by generated 2FA token (string)</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowPaused" xml:space="preserve">
|
||||
<value>La collecte automatique est maintenant suspendue !</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowResumed" xml:space="preserve">
|
||||
<value>La collecte automatique a maintenant repris !</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedAlready" xml:space="preserve">
|
||||
<value>La collecte automatique est déjà en pause !</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedWithCountdown" xml:space="preserve">
|
||||
<value>La collecte automatique est maintenant en pause ! Vous avez {0} minutes pour démarrer un jeu.</value>
|
||||
<comment>{0} will be replaced by number of minutes</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingResumedAlready" xml:space="preserve">
|
||||
<value>La collecte automatique a déjà repris !</value>
|
||||
</data>
|
||||
<data name="BotConnected" xml:space="preserve">
|
||||
<value>Connecté à Steam !</value>
|
||||
</data>
|
||||
<data name="BotDisconnected" xml:space="preserve">
|
||||
<value>Déconnecté de Steam !</value>
|
||||
</data>
|
||||
<data name="BotDisconnecting" xml:space="preserve">
|
||||
<value>Déconnexion...</value>
|
||||
</data>
|
||||
<data name="BotEncryptedPassword" xml:space="preserve">
|
||||
<value>[{0}] mot de passe : {1}</value>
|
||||
<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>Ce bot n'a pas été lancé car l'option de démarrage est désactivée dans son fichier de configuration !</value>
|
||||
</data>
|
||||
<data name="BotInvalidAuthenticatorDuringLogin" xml:space="preserve">
|
||||
<value>Réception du code d'erreur TwoFactorCodeMismatch {0} fois d’affilée, cela indique presque toujours des données d'authentification ASF 2FA invalides, abandon !</value>
|
||||
<comment>{0} will be replaced by maximum allowed number of failed 2FA attempts</comment>
|
||||
</data>
|
||||
<data name="BotLoggedOff" xml:space="preserve">
|
||||
<value>Déconnecté de Steam : {0}</value>
|
||||
<comment>{0} will be replaced by logging off reason (string)</comment>
|
||||
</data>
|
||||
<data name="BotLoggedOn" xml:space="preserve">
|
||||
<value>Connexion réussie !</value>
|
||||
</data>
|
||||
<data name="BotLoggingIn" xml:space="preserve">
|
||||
<value>Connexion en cours...</value>
|
||||
</data>
|
||||
<data name="BotLogonSessionReplaced" xml:space="preserve">
|
||||
<value>Ce compte semble être utilisé dans une autre instance ASF, ce qui peut entraîner un comportement indéfini, fonctionnement interrompu !</value>
|
||||
</data>
|
||||
<data name="BotLootingFailed" xml:space="preserve">
|
||||
<value>L'offre d'échange a échoué!</value>
|
||||
</data>
|
||||
<data name="BotLootingMasterNotDefined" xml:space="preserve">
|
||||
<value>L'offre n'a pu être envoyée car le paramètre SteamMasterID n’est pas défini !</value>
|
||||
<comment>SteamMasterID is name of bot config property, it should not be translated</comment>
|
||||
</data>
|
||||
<data name="BotLootingNoLootableTypes" xml:space="preserve">
|
||||
<value>Vous n'avez aucun type d'objets à récupérer de configuré !</value>
|
||||
</data>
|
||||
<data name="BotLootingNowDisabled" xml:space="preserve">
|
||||
<value>La récupération des cartes est maintenant désactivée !</value>
|
||||
</data>
|
||||
<data name="BotLootingNowEnabled" xml:space="preserve">
|
||||
<value>La récupération des cartes est maintenant activée !</value>
|
||||
</data>
|
||||
<data name="BotLootingSuccess" xml:space="preserve">
|
||||
<value>Offre d'échange envoyée avec succès !</value>
|
||||
</data>
|
||||
<data name="BotLootingTemporarilyDisabled" xml:space="preserve">
|
||||
<value>La récupération des cartes est temporairement désactivée !</value>
|
||||
</data>
|
||||
<data name="BotLootingYourself" xml:space="preserve">
|
||||
<value>Vous ne pouvez pas lancer la récupération des cartes sur vous-même !</value>
|
||||
</data>
|
||||
<data name="BotNoASFAuthenticator" xml:space="preserve">
|
||||
<value>Ce bot n’a pas ASF 2FA d'activé ! Avez-vous oublié d’importer votre authentificateur en tant que ASF 2FA ?</value>
|
||||
</data>
|
||||
<data name="BotNotConnected" xml:space="preserve">
|
||||
<value>Ce bot n’est pas connecté !</value>
|
||||
</data>
|
||||
<data name="BotNotOwnedYet" xml:space="preserve">
|
||||
<value>Non possédé : {0}</value>
|
||||
<comment>{0} will be replaced by query (string)</comment>
|
||||
</data>
|
||||
<data name="BotOwnedAlreadyWithName" xml:space="preserve">
|
||||
<value>Possède déjà : {0} | {1}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="BotRateLimitExceeded" xml:space="preserve">
|
||||
<value>Fréquence limite dépassée, nouvelle tentative après {0} minutes d'attente...</value>
|
||||
<comment>{0} will be replaced by number of minutes</comment>
|
||||
</data>
|
||||
<data name="BotReconnecting" xml:space="preserve">
|
||||
<value>Reconnexion...</value>
|
||||
</data>
|
||||
<data name="BotRedeem" xml:space="preserve">
|
||||
<value>Clé : {0} | Statut : {1}</value>
|
||||
<comment>{0} will be replaced by cd-key (string), {1} will be replaced by status string</comment>
|
||||
</data>
|
||||
<data name="BotRedeemWithItems" xml:space="preserve">
|
||||
<value>Clé : {0} | Statut : {1} | Items : {2}</value>
|
||||
<comment>{0} will be replaced by cd-key (string), {1} will be replaced by status string, {2} will be replaced by list of key-value pairs, separated by a comma</comment>
|
||||
</data>
|
||||
<data name="BotRemovedExpiredLoginKey" xml:space="preserve">
|
||||
<value>La clé de connexion expirée a été supprimée!</value>
|
||||
</data>
|
||||
<data name="BotStatusNotIdling" xml:space="preserve">
|
||||
<value>Le bot n'est pas en cours de collecte.</value>
|
||||
</data>
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Le bot est limité et ne permet pas la collecte de carte.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Le bot n’est pas en cours d’exécution.</value>
|
||||
</data>
|
||||
<data name="BotStatusPaused" xml:space="preserve">
|
||||
<value>Le bot est en pause ou en cours d’exécution en mode manuel.</value>
|
||||
</data>
|
||||
<data name="BotStatusPlayingNotAvailable" xml:space="preserve">
|
||||
<value>Le bot est actuellement utilisé.</value>
|
||||
</data>
|
||||
<data name="BotUnableToConnect" xml:space="preserve">
|
||||
<value>Impossible de se connecter à Steam : {0}</value>
|
||||
<comment>{0} will be replaced by failure reason (string)</comment>
|
||||
</data>
|
||||
<data name="BotUnableToLogin" xml:space="preserve">
|
||||
<value>Impossible de se connecter à Steam : {0}/{1}</value>
|
||||
<comment>{0} will be replaced by failure reason (string), {1} will be replaced by extended failure reason (string)</comment>
|
||||
</data>
|
||||
<data name="ErrorIsEmpty" xml:space="preserve">
|
||||
<value>{0} est vide !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="UnusedKeys" xml:space="preserve">
|
||||
<value>Clés non utilisées : {0}</value>
|
||||
<comment>{0} will be replaced by list of cd-keys (strings), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="WarningFailedWithError" xml:space="preserve">
|
||||
<value>Échec dû à une erreur : {0}</value>
|
||||
<comment>{0} will be replaced by failure reason (string)</comment>
|
||||
</data>
|
||||
<data name="BotConnectionLost" xml:space="preserve">
|
||||
<value>Connexion au réseau Steam perdue. Reconnexion...</value>
|
||||
</data>
|
||||
<data name="BotAccountFree" xml:space="preserve">
|
||||
<value>Le compte n'est plus occupé : reprise du processus de collecte!</value>
|
||||
</data>
|
||||
<data name="BotAccountOccupied" xml:space="preserve">
|
||||
<value>Ce compte est actuellement utilisé : ASF reprendra la collecte quand celui-ci sera libre...</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPauseTimeout" xml:space="preserve">
|
||||
<value>La bibliothèque partagée n'a pas été lancée dans le temps imparti, reprise du processus de collecte !</value>
|
||||
</data>
|
||||
<data name="BotConnecting" xml:space="preserve">
|
||||
<value>Connexion...</value>
|
||||
</data>
|
||||
<data name="BotHeartBeatFailed" xml:space="preserve">
|
||||
<value>Impossible de déconnecter le client. Abandon de cette instance de bot !</value>
|
||||
</data>
|
||||
<data name="BotSteamDirectoryInitializationFailed" xml:space="preserve">
|
||||
<value>Impossible d'initialiser SteamDirectory : la connexion au réseau Steam pourrait prendre beaucoup plus longtemps que d’habitude !</value>
|
||||
</data>
|
||||
<data name="BotStopping" xml:space="preserve">
|
||||
<value>Arrêt...</value>
|
||||
</data>
|
||||
<data name="ErrorBotConfigInvalid" xml:space="preserve">
|
||||
<value>La configuration de votre bot n’est pas valide. Veuillez vérifier le contenu de {0} et réessayez !</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorDatabaseInvalid" xml:space="preserve">
|
||||
<value>La base de données persistante n'a pu être chargée, si le problème persiste, merci de supprimer {0} afin de la recréer!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="Initializing" xml:space="preserve">
|
||||
<value>Initialisation de {0}...</value>
|
||||
<comment>{0} will be replaced by service name that is being initialized</comment>
|
||||
</data>
|
||||
<data name="WarningPrivacyPolicy" xml:space="preserve">
|
||||
<value>Veuillez consulter sur le wiki notre section politique de confidentialité, si vous vous souciez de ce que fait ASF !</value>
|
||||
</data>
|
||||
<data name="Welcome" xml:space="preserve">
|
||||
<value>Il semble que c'est la première fois que vous lancez le programme, bienvenue!</value>
|
||||
</data>
|
||||
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
|
||||
<value>Votre paramètre CurrentCulture indiqué n’est pas valide, ASF continuera à fonctionner avec celui par défaut !</value>
|
||||
</data>
|
||||
<data name="TranslationIncomplete" xml:space="preserve">
|
||||
<value>ASF va tenter d’utiliser votre langage préféré {0}, mais la traduction dans ce langage est achevée seulement à {1}. Peut-être vous pourriez nous aider à améliorer la traduction d'ASF pour votre langue ?</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>
|
||||
<data name="IdlingGameNotPossible" xml:space="preserve">
|
||||
<value>La collecte de {0} ({1}) est désactivée temporairement, car ASF est incapable de lancer ce jeu actuellement.</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 a détecté une erreur dans l'appID courant {0} ({1}) et utilisera donc l'appID {2} à la place.</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>
|
||||
</data>
|
||||
<data name="BotAccountLocked" xml:space="preserve">
|
||||
<value>Ce compte est verrouillé, le processus de collecte est définitivement indisponible !</value>
|
||||
</data>
|
||||
<data name="BotStatusLocked" xml:space="preserve">
|
||||
<value>Le bot est verrouillé et ne permet pas la collecte de carte.</value>
|
||||
</data>
|
||||
<data name="ErrorFunctionOnlyInHeadlessMode" xml:space="preserve">
|
||||
<value>Cette fonction est disponible uniquement en mode non interactif !</value>
|
||||
</data>
|
||||
<data name="BotOwnedAlready" xml:space="preserve">
|
||||
<value>Déjà possédé : {0}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -608,9 +608,7 @@ StackTrace :
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Le bot est limité et ne permet pas la collecte de carte.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Le bot n’est pas connecté.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Le bot n’est pas en cours d’exécution.</value>
|
||||
</data>
|
||||
|
||||
@@ -606,9 +606,7 @@ StackTrace: {2}</value>
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>A bot korlátolt, ezért nem tud farmolással kártyát kiszedni.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>A bot nem kapcsolódik.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>A bot nem fut.</value>
|
||||
</data>
|
||||
|
||||
@@ -142,12 +142,17 @@
|
||||
<value>Pengecualian: {0}() {1} StackTrace:{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>Keluar dengan kode kesalahan bukan nol!</value>
|
||||
</data>
|
||||
<data name="ErrorFailingRequest" xml:space="preserve">
|
||||
<value>Permintaan gagal: {0}</value>
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>Global config tidak dapat dimuat, pastikan bahwa {0} ada dan berlaku! Ikuti Panduan penyetelan pada wiki jika Anda bingung.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" xml:space="preserve">
|
||||
<value>{0} tidak valid!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
@@ -155,7 +160,9 @@
|
||||
<data name="ErrorMobileAuthenticatorInvalidDeviceID" xml:space="preserve">
|
||||
<value>Menolak untuk melaksanakan fungsi ini karena DeviceID di ASF 2FA tidak valid!</value>
|
||||
</data>
|
||||
|
||||
<data name="ErrorNoBotsDefined" xml:space="preserve">
|
||||
<value>Bot tidak didefinisikan, Apakah Anda lupa untuk mengkonfigurasi ASF Anda?</value>
|
||||
</data>
|
||||
<data name="ErrorObjectIsNull" xml:space="preserve">
|
||||
<value>{0} masih kosong!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
@@ -164,8 +171,14 @@
|
||||
<value>Parsing {0} gagal!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>Tidak dapat menghapus file biner ASF lama, silakan hapus {0} secara manual agar fungsi update bekerja!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
<value>Permintaan gagal setelah {0} kali upaya!</value>
|
||||
<comment>{0} will be replaced by maximum number of tries</comment>
|
||||
</data>
|
||||
<data name="ErrorUpdateCheckFailed" xml:space="preserve">
|
||||
<value>Tidak dapat memeriksa versi terbaru!</value>
|
||||
</data>
|
||||
@@ -287,14 +300,38 @@
|
||||
<value>Versi lokal: {0} | Versi remote: {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>Masukkan nomor perangkat mobile authenticator (termasuk "android:"): </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteam2FA" xml:space="preserve">
|
||||
<value>Silakan masukkan kode 2FA dari aplikasi authenticator Steam Anda: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Silakan masukkan kode otentikasi SteamGuard yang dikirim ke e-mail Anda: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
<value>Masukkan login Steam Anda: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamParentalPIN" xml:space="preserve">
|
||||
<value>Masukkan PIN Parental Steam: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamPassword" xml:space="preserve">
|
||||
<value>Silakan masukkan sandi Steam anda: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputUnknown" xml:space="preserve">
|
||||
<value>Masukkan suatu nilai yang tidak terdokumentasi {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>Masukkan host WCF Anda: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="WarningUnknownValuePleaseReport" xml:space="preserve">
|
||||
<value>Menerima nilai yang tidak diketahui untuk {0}, laporkan hal ini: {1}</value>
|
||||
<comment>{0} will be replaced by object's name, {1} will be replaced by value for that object</comment>
|
||||
@@ -329,12 +366,17 @@
|
||||
<value>Memulai server WCF di {0}...</value>
|
||||
<comment>{0} will be replaced by WCF hostname</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotAlreadyStopped" xml:space="preserve">
|
||||
<value>Bot ini sudah berhenti!</value>
|
||||
</data>
|
||||
<data name="BotNotFound" xml:space="preserve">
|
||||
<value>Tidak dapat menemukan bot apapun yang bernama {0}!</value>
|
||||
<comment>{0} will be replaced by bot's name query (string)</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusOverview" xml:space="preserve">
|
||||
<value>Ada {0}/{1} bot berjalan, dengan total {2} game ({3} kartu) untuk di-idle.</value>
|
||||
<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="CheckingFirstBadgePage" xml:space="preserve">
|
||||
@@ -417,7 +459,9 @@
|
||||
<value>Menerima hadiah: {0}...</value>
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotAccountLimited" xml:space="preserve">
|
||||
<value>Account ini terbatas, proses Idle tidak tersedia sampai pembatasan hilang!</value>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -606,9 +606,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Il Bot è un account limitato e non può ottenere carte tramite idling.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot non è connesso.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot non è in esecuzione.</value>
|
||||
</data>
|
||||
|
||||
@@ -605,9 +605,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Botは制限中のため、アイドリングでカードをドロップできません。</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Botは接続されていません。</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Botは実行されていません。</value>
|
||||
</data>
|
||||
|
||||
@@ -610,9 +610,7 @@ ASF 실행 파일의 이름이 적절한지 확인하시기 바랍니다!</value
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>봇이 제한된 계정입니다. 농사로 카드를 얻을 수 없습니다.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>봇이 연결되지 않았습니다.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>봇이 실행 중이 아닙니다.</value>
|
||||
</data>
|
||||
|
||||
@@ -605,9 +605,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Botas yra ribotas ir negali gauti jokių kortelių iš rinkimo.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Botas nėra prijungtas.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Botas nėra įjungtas.</value>
|
||||
</data>
|
||||
|
||||
@@ -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>Ruilaanbieding {0} wordt geaccepteerd</value>
|
||||
<value>Ruilaanbod wordt geaccepteerd: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="AutoUpdateCheckInfo" xml:space="preserve">
|
||||
@@ -151,7 +151,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>Globale configuratie kon niet worden geladen. Controleer of het bestand {0} bestaat en of het geldig is! Raadpleeg de 'setting up' sectie van de wiki als je niet weet je wat je moet doen.</value>
|
||||
<value>Globale configuratie kon niet worden geladen. Controleer of {0} bestaat en geldig is! Raadpleeg de 'setting up' sectie van de wiki als je niet weet je wat je moet doen.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" 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>Het oude ASF-bestand kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<value>Het oude ASF-bestand kon niet worden verwijderd. Verwijder {0} handmatig, zodat de update uitgevoerd kan worden!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
@@ -193,7 +193,7 @@ StackTrace:
|
||||
<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>
|
||||
<value>Het verzoek wordt niet in behandeling genomen omdat het 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>Globaal configuratiebestand is verwijderd!</value>
|
||||
</data>
|
||||
<data name="IgnoringTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt genegeerd</value>
|
||||
<value>Ruilaanbod wordt genegeerd: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="LoggingIn" xml:space="preserve">
|
||||
@@ -223,7 +223,7 @@ StackTrace:
|
||||
<value>Sessie wordt ververst!</value>
|
||||
</data>
|
||||
<data name="RejectingTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt afgewezen.</value>
|
||||
<value>Ruilaanbod wordt afgewezen: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="Restarting" xml:space="preserve">
|
||||
@@ -311,7 +311,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Voer de SteamGuard authenticator-code in die naar jouw e-mail is verzonden: </value>
|
||||
<value>Voer de SteamGuard authenticator-code in die naar je e-mail is verzonden: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
@@ -347,7 +347,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by WCF command</comment>
|
||||
</data>
|
||||
<data name="ErrorWCFAddressAccessDeniedException" xml:space="preserve">
|
||||
<value>WCF service kan niet worden gestart vanwege de AddressAccessDeniedException! Als je zelf gebruik wilt maken van de WCF service van ASF, overweeg om ASF te starten als administrator of geef de juiste machtigingen!</value>
|
||||
<value>WCF service kan niet worden gestart vanwege de AddressAccessDeniedException! Als je gebruik wilt maken van de WCF service van ASF, overweeg dan om ASF te starten als administrator of geef de juiste machtigingen!</value>
|
||||
</data>
|
||||
<data name="WCFAnswered" xml:space="preserve">
|
||||
<value>Beantwoordt aan WCF opdracht: {0} met: {1}</value>
|
||||
@@ -376,15 +376,15 @@ StackTrace:
|
||||
<comment>{0} will be replaced by bot's name query (string)</comment>
|
||||
</data>
|
||||
<data name="BotStatusOverview" xml:space="preserve">
|
||||
<value>Er zijn {0}/{1} bots actief, met een totaal van {2} spel(len) en {3} kaart(en) resterend om te farmen.</value>
|
||||
<value>Er zijn {0}/{1} bots actief, met een totaal van {2} spel(len) te spelen en {3} kaart(en) resterend om te verzamelen.</value>
|
||||
<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 farmt spel: {0} ({1}, ({2} kaart(en) resterend). Totaal nog {3} spel(len) en {4} kaart(en) resterend om te farmen (~{5} resterend).</value>
|
||||
<value>Bot speelt: {0} ({1}, {2} kaart(en) resterend). Totaal nog {3} spel(len) te spelen en {4} kaart(en) resterend om te verzamelen (~{5} resterend).</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle, {3} will be replaced by total number of games to idle, {4} will be replaced by total number of cards to idle, {5} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="BotStatusIdlingList" xml:space="preserve">
|
||||
<value>Bot farmt spellen: {0}. Totaal nog {1} spel(len) en {2} kaart(en) resterend om te farmen (~{3} resterend).</value>
|
||||
<value>Bot speelt de spellen: {0}. Totaal nog {1} spel(len) te spelen en {2} kaart(en) resterend om te verzamelen (~{3} resterend).</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), {1} will be replaced by total number of games to idle, {2} will be replaced by total number of cards to idle, {3} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="CheckingFirstBadgePage" xml:space="preserve">
|
||||
@@ -394,14 +394,14 @@ StackTrace:
|
||||
<value>Andere badge pagina's controleren...</value>
|
||||
</data>
|
||||
<data name="ChosenFarmingAlgorithm" xml:space="preserve">
|
||||
<value>Gekozen idling algoritme: {0}</value>
|
||||
<value>Gekozen farming algoritme: {0}</value>
|
||||
<comment>{0} will be replaced by the name of chosen idling algorithm</comment>
|
||||
</data>
|
||||
<data name="Done" xml:space="preserve">
|
||||
<value>Gereed!</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} spel(len) en nog {1} kaart(en) te verzamelen (~{2} resterend)...</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">
|
||||
@@ -470,7 +470,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
<data name="BotAccountLimited" xml:space="preserve">
|
||||
<value>Dit account is gelimiteerd, idle proces is niet beschikbaar totdat de beperking is opgeheven!</value>
|
||||
<value>Dit account is gelimiteerd, farming proces is niet beschikbaar totdat de beperking is opgeheven!</value>
|
||||
</data>
|
||||
<data name="BotAddLicense" xml:space="preserve">
|
||||
<value>ID: {0} | Status: {1}</value>
|
||||
@@ -497,20 +497,20 @@ StackTrace:
|
||||
<comment>{0} will be replaced by generated 2FA token (string)</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowPaused" xml:space="preserve">
|
||||
<value>Automatisch idlen is gepauzeerd!</value>
|
||||
<value>Automatisch farmen is gepauzeerd!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowResumed" xml:space="preserve">
|
||||
<value>Automatisch idlen is hervat!</value>
|
||||
<value>Automatisch farmen is hervat!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedAlready" xml:space="preserve">
|
||||
<value>Automatisch idling is al gepauzeerd!</value>
|
||||
<value>Automatisch farmen is al gepauzeerd!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedWithCountdown" xml:space="preserve">
|
||||
<value>Automatisch idling is nu gepauzeerd! Je hebt {0} minuten om een spel te starten.</value>
|
||||
<value>Automatisch farmen is nu gepauzeerd! Je hebt {0} minuten om een spel te starten.</value>
|
||||
<comment>{0} will be replaced by number of minutes</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingResumedAlready" xml:space="preserve">
|
||||
<value>Automatisch idling is al hervat!</value>
|
||||
<value>Automatisch farmen is al hervat!</value>
|
||||
</data>
|
||||
<data name="BotConnected" xml:space="preserve">
|
||||
<value>Verbonden met Steam!</value>
|
||||
@@ -549,7 +549,7 @@ StackTrace:
|
||||
<value>Handelsvoorstel mislukt!</value>
|
||||
</data>
|
||||
<data name="BotLootingMasterNotDefined" xml:space="preserve">
|
||||
<value>Ruilaanbieding kon niet verzonden worden omdat SteamMasterID niet is ingesteld!</value>
|
||||
<value>Ruilaanbod 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">
|
||||
@@ -574,7 +574,7 @@ StackTrace:
|
||||
<value>Deze bot heeft ASF 2FA nog niet ingeschakeld! Ben je vergeten om je authenticator te importeren als ASF 2FA?</value>
|
||||
</data>
|
||||
<data name="BotNotConnected" xml:space="preserve">
|
||||
<value>Deze bot instatie is niet verbonden!</value>
|
||||
<value>Deze bot is niet verbonden!</value>
|
||||
</data>
|
||||
<data name="BotNotOwnedYet" xml:space="preserve">
|
||||
<value>Nog niet in bezit: {0}</value>
|
||||
@@ -603,13 +603,13 @@ StackTrace:
|
||||
<value>Verlopen inlogcode verwijderd!</value>
|
||||
</data>
|
||||
<data name="BotStatusNotIdling" xml:space="preserve">
|
||||
<value>Bot is niets aan het farmen.</value>
|
||||
<value>Bot is niet aan het farmen.</value>
|
||||
</data>
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot is gelimiteerd en kan geen kaarten farmen.</value>
|
||||
<value>Bot is gelimiteerd en kan geen kaarten verzamelen.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot is niet verbonden.</value>
|
||||
<data name="BotStatusConnecting" xml:space="preserve">
|
||||
<value>Bot is aan het verbinden met het Steam netwerk.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot is niet actief.</value>
|
||||
@@ -644,13 +644,13 @@ StackTrace:
|
||||
<value>Verbinding met Steam netwerk verbroken. Opnieuw verbinden...</value>
|
||||
</data>
|
||||
<data name="BotAccountFree" xml:space="preserve">
|
||||
<value>Account is niet meer bezet: idling proces hervat!</value>
|
||||
<value>Account is niet meer bezet: farming proces hervat!</value>
|
||||
</data>
|
||||
<data name="BotAccountOccupied" xml:space="preserve">
|
||||
<value>Account is momenteel in gebruik: ASF zal het farmen hervatten wanneer het account weer beschikbaar is...</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPauseTimeout" xml:space="preserve">
|
||||
<value>Gedeelde bibliotheek is niet opgestart in de gegeven tijdsperiode. Idle proces hervat!</value>
|
||||
<value>Gedeelde bibliotheek is niet opgestart in de gegeven tijdsperiode. Farming proces wordt hervat!</value>
|
||||
</data>
|
||||
<data name="BotConnecting" xml:space="preserve">
|
||||
<value>Verbinden...</value>
|
||||
@@ -665,7 +665,7 @@ StackTrace:
|
||||
<value>Stoppen...</value>
|
||||
</data>
|
||||
<data name="ErrorBotConfigInvalid" xml:space="preserve">
|
||||
<value>Jouw bot configuratie is ongeldig, controleer de inhoud van {0} en probeer het opnieuw!</value>
|
||||
<value>Je bot configuratie is ongeldig. Controleer de inhoud van {0} en probeer het opnieuw!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorDatabaseInvalid" xml:space="preserve">
|
||||
@@ -683,7 +683,7 @@ StackTrace:
|
||||
<value>Het lijkt erop dat je het programma voor het eerst opstart, welkom!</value>
|
||||
</data>
|
||||
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
|
||||
<value>De door jouw ingevoerde CurrentCulture is ongeldig. ASF zal de standaardtaal blijven gebruiken!</value>
|
||||
<value>De door jou ingevoerde CurrentCulture is ongeldig. ASF zal de standaardtaal blijven gebruiken!</value>
|
||||
</data>
|
||||
<data name="TranslationIncomplete" xml:space="preserve">
|
||||
<value>ASF probeert de {0} taalmodule te gebruiken, maar het vertalen in deze taal is slechts {1} compleet. Misschien kan je ons helpen om ASF te vertalen in jouw taal?</value>
|
||||
@@ -705,7 +705,7 @@ StackTrace:
|
||||
<value>Dit account is vergrendeld. Farming is permanent niet beschikbaar!</value>
|
||||
</data>
|
||||
<data name="BotStatusLocked" xml:space="preserve">
|
||||
<value>Bot is vergrendeld en kan geen kaarten farmen.</value>
|
||||
<value>Bot is vergrendeld en kan geen kaarten verzamelen.</value>
|
||||
</data>
|
||||
<data name="ErrorFunctionOnlyInHeadlessMode" xml:space="preserve">
|
||||
<value>Deze functie is alleen beschikbaar in de headless mode!</value>
|
||||
|
||||
@@ -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>Ruilaanbieding {0} wordt geaccepteerd</value>
|
||||
<value>Ruilaanbod wordt geaccepteerd: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="AutoUpdateCheckInfo" xml:space="preserve">
|
||||
@@ -151,7 +151,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>Globale configuratie kon niet worden geladen. Controleer of het bestand {0} bestaat en of het geldig is! Raadpleeg de 'setting up' sectie van de wiki als je niet weet je wat je moet doen.</value>
|
||||
<value>Globale configuratie kon niet worden geladen. Controleer of {0} bestaat en geldig is! Raadpleeg de 'setting up' sectie van de wiki als je niet weet je wat je moet doen.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" 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>Het oude ASF-bestand kon niet worden verwijderd. Verwijder {0} handmatig om de updatefunctie werkend te krijgen!</value>
|
||||
<value>Het oude ASF-bestand kon niet worden verwijderd. Verwijder {0} handmatig, zodat de update uitgevoerd kan worden!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
@@ -193,7 +193,7 @@ StackTrace:
|
||||
<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>
|
||||
<value>Het verzoek wordt niet in behandeling genomen omdat het 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>Globaal configuratiebestand is verwijderd!</value>
|
||||
</data>
|
||||
<data name="IgnoringTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt genegeerd</value>
|
||||
<value>Ruilaanbod wordt genegeerd: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="LoggingIn" xml:space="preserve">
|
||||
@@ -223,7 +223,7 @@ StackTrace:
|
||||
<value>Sessie wordt ververst!</value>
|
||||
</data>
|
||||
<data name="RejectingTrade" xml:space="preserve">
|
||||
<value>Ruilaanbieding {0} wordt afgewezen.</value>
|
||||
<value>Ruilaanbod wordt afgewezen: {0}</value>
|
||||
<comment>{0} will be replaced by trade number</comment>
|
||||
</data>
|
||||
<data name="Restarting" xml:space="preserve">
|
||||
@@ -311,7 +311,7 @@ StackTrace:
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamGuard" xml:space="preserve">
|
||||
<value>Voer de SteamGuard authenticator-code in die naar jouw e-mail is verzonden: </value>
|
||||
<value>Voer de SteamGuard authenticator-code in die naar je e-mail is verzonden: </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="UserInputSteamLogin" xml:space="preserve">
|
||||
@@ -347,7 +347,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by WCF command</comment>
|
||||
</data>
|
||||
<data name="ErrorWCFAddressAccessDeniedException" xml:space="preserve">
|
||||
<value>WCF service kan niet worden gestart vanwege de AddressAccessDeniedException! Als je zelf gebruik wilt maken van de WCF service van ASF, overweeg om ASF te starten als administrator of geef de juiste machtigingen!</value>
|
||||
<value>WCF service kan niet worden gestart vanwege de AddressAccessDeniedException! Als je gebruik wilt maken van de WCF service van ASF, overweeg dan om ASF te starten als administrator of geef de juiste machtigingen!</value>
|
||||
</data>
|
||||
<data name="WCFAnswered" xml:space="preserve">
|
||||
<value>Beantwoordt aan WCF opdracht: {0} met: {1}</value>
|
||||
@@ -376,15 +376,15 @@ StackTrace:
|
||||
<comment>{0} will be replaced by bot's name query (string)</comment>
|
||||
</data>
|
||||
<data name="BotStatusOverview" xml:space="preserve">
|
||||
<value>Er zijn {0}/{1} bots actief, met een totaal van {2} spel(len) en {3} kaart(en) resterend om te farmen.</value>
|
||||
<value>Er zijn {0}/{1} bots actief, met een totaal van {2} spel(len) te spelen en {3} kaart(en) resterend om te verzamelen.</value>
|
||||
<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 farmt spel: {0} ({1}, ({2} kaart(en) resterend). Totaal nog {3} spel(len) en {4} kaart(en) resterend om te farmen (~{5} resterend).</value>
|
||||
<value>Bot speelt: {0} ({1}, {2} kaart(en) resterend). Totaal nog {3} spel(len) te spelen en {4} kaart(en) resterend om te verzamelen (~{5} resterend).</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle, {3} will be replaced by total number of games to idle, {4} will be replaced by total number of cards to idle, {5} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="BotStatusIdlingList" xml:space="preserve">
|
||||
<value>Bot farmt spellen: {0}. Totaal nog {1} spel(len) en {2} kaart(en) resterend om te farmen (~{3} resterend).</value>
|
||||
<value>Bot speelt de spellen: {0}. Totaal nog {1} spel(len) te spelen en {2} kaart(en) resterend om te verzamelen (~{3} resterend).</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), {1} will be replaced by total number of games to idle, {2} will be replaced by total number of cards to idle, {3} will be replaced by translated TimeSpan string built from TimeSpan* translation parts</comment>
|
||||
</data>
|
||||
<data name="CheckingFirstBadgePage" xml:space="preserve">
|
||||
@@ -394,14 +394,14 @@ StackTrace:
|
||||
<value>Andere badge pagina's controleren...</value>
|
||||
</data>
|
||||
<data name="ChosenFarmingAlgorithm" xml:space="preserve">
|
||||
<value>Gekozen idling algoritme: {0}</value>
|
||||
<value>Gekozen farming algoritme: {0}</value>
|
||||
<comment>{0} will be replaced by the name of chosen idling algorithm</comment>
|
||||
</data>
|
||||
<data name="Done" xml:space="preserve">
|
||||
<value>Gereed!</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} spel(len) en nog {1} kaart(en) te verzamelen (~{2} resterend)...</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">
|
||||
@@ -420,7 +420,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name, {2} will be replaced by number of cards left to idle</comment>
|
||||
</data>
|
||||
<data name="IdlingStopped" xml:space="preserve">
|
||||
<value>Het idlen is gestopt!</value>
|
||||
<value>Het farmen is gestopt!</value>
|
||||
</data>
|
||||
<data name="IgnoredStickyPauseEnabled" xml:space="preserve">
|
||||
<value>Dit verzoek wordt genegeerd. Permanente pauze staat aan!</value>
|
||||
@@ -440,11 +440,11 @@ StackTrace:
|
||||
<value>Spelen is op dit moment niet mogelijk, we proberen het later nog een keer!</value>
|
||||
</data>
|
||||
<data name="StillIdling" xml:space="preserve">
|
||||
<value>Nog steeds aan het idlen: {0} ({1})</value>
|
||||
<value>Nog steeds aan het farmen: {0} ({1})</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="StillIdlingList" xml:space="preserve">
|
||||
<value>Nog steeds aan het idlen: {0}</value>
|
||||
<value>Nog steeds aan het farmen: {0}</value>
|
||||
<comment>{0} will be replaced by list of the games (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="StoppedIdling" xml:space="preserve">
|
||||
@@ -470,7 +470,7 @@ StackTrace:
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
<data name="BotAccountLimited" xml:space="preserve">
|
||||
<value>Dit account is gelimiteerd, idle proces is niet beschikbaar totdat de beperking is opgeheven!</value>
|
||||
<value>Dit account is gelimiteerd, farming proces is niet beschikbaar totdat de beperking is opgeheven!</value>
|
||||
</data>
|
||||
<data name="BotAddLicense" xml:space="preserve">
|
||||
<value>ID: {0} | Status: {1}</value>
|
||||
@@ -497,20 +497,20 @@ StackTrace:
|
||||
<comment>{0} will be replaced by generated 2FA token (string)</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowPaused" xml:space="preserve">
|
||||
<value>Automatisch idlen is gepauzeerd!</value>
|
||||
<value>Automatisch farmen is gepauzeerd!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingNowResumed" xml:space="preserve">
|
||||
<value>Automatisch idlen is hervat!</value>
|
||||
<value>Automatisch farmen is hervat!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedAlready" xml:space="preserve">
|
||||
<value>Automatisch idling is al gepauzeerd!</value>
|
||||
<value>Automatisch farmen is al gepauzeerd!</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPausedWithCountdown" xml:space="preserve">
|
||||
<value>Automatisch idling is nu gepauzeerd! Je hebt {0} minuten om een spel te starten.</value>
|
||||
<value>Automatisch farmen is nu gepauzeerd! Je hebt {0} minuten om een spel te starten.</value>
|
||||
<comment>{0} will be replaced by number of minutes</comment>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingResumedAlready" xml:space="preserve">
|
||||
<value>Automatisch idling is al hervat!</value>
|
||||
<value>Automatisch farmen is al hervat!</value>
|
||||
</data>
|
||||
<data name="BotConnected" xml:space="preserve">
|
||||
<value>Verbonden met Steam!</value>
|
||||
@@ -546,10 +546,10 @@ StackTrace:
|
||||
<value>Het lijkt erop dat dit account wordt gebruikt in een ander ASF instantie, met onbepaald gedrag, weigeren om het draaiende te houden!</value>
|
||||
</data>
|
||||
<data name="BotLootingFailed" xml:space="preserve">
|
||||
<value>Ruilvoorstel mislukt!</value>
|
||||
<value>Ruilaanbod mislukt!</value>
|
||||
</data>
|
||||
<data name="BotLootingMasterNotDefined" xml:space="preserve">
|
||||
<value>Ruilaanbieding kon niet verzonden worden omdat SteamMasterID niet is ingesteld!</value>
|
||||
<value>Ruilaanbod 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">
|
||||
@@ -562,7 +562,7 @@ StackTrace:
|
||||
<value>Looting is nu ingeschakeld!</value>
|
||||
</data>
|
||||
<data name="BotLootingSuccess" xml:space="preserve">
|
||||
<value>Ruilverzoek verzonden!</value>
|
||||
<value>Ruilaanbod verzonden!</value>
|
||||
</data>
|
||||
<data name="BotLootingTemporarilyDisabled" xml:space="preserve">
|
||||
<value>Looting is tijdelijk uitgeschakeld!</value>
|
||||
@@ -574,7 +574,7 @@ StackTrace:
|
||||
<value>Deze bot heeft ASF 2FA nog niet ingeschakeld! Ben je vergeten om je authenticator te importeren als ASF 2FA?</value>
|
||||
</data>
|
||||
<data name="BotNotConnected" xml:space="preserve">
|
||||
<value>Deze bot instatie is niet verbonden!</value>
|
||||
<value>Deze bot is niet verbonden!</value>
|
||||
</data>
|
||||
<data name="BotNotOwnedYet" xml:space="preserve">
|
||||
<value>Nog niet in bezit: {0}</value>
|
||||
@@ -603,13 +603,13 @@ StackTrace:
|
||||
<value>Verlopen inlogcode verwijderd!</value>
|
||||
</data>
|
||||
<data name="BotStatusNotIdling" xml:space="preserve">
|
||||
<value>Bot is niets aan het farmen.</value>
|
||||
<value>Bot is niet aan het farmen.</value>
|
||||
</data>
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot is gelimiteerd en kan geen kaarten farmen.</value>
|
||||
<value>Bot is gelimiteerd en kan geen kaarten verzamelen.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot is niet verbonden.</value>
|
||||
<data name="BotStatusConnecting" xml:space="preserve">
|
||||
<value>Bot is aan het verbinden met het Steam netwerk.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot is niet actief.</value>
|
||||
@@ -644,13 +644,13 @@ StackTrace:
|
||||
<value>Verbinding met Steam netwerk verbroken. Opnieuw verbinden...</value>
|
||||
</data>
|
||||
<data name="BotAccountFree" xml:space="preserve">
|
||||
<value>Account is niet meer bezet: idling proces hervat!</value>
|
||||
<value>Account is niet meer bezet: farming proces hervat!</value>
|
||||
</data>
|
||||
<data name="BotAccountOccupied" xml:space="preserve">
|
||||
<value>Account is momenteel in gebruik: ASF zal het farmen hervatten wanneer het account weer beschikbaar is...</value>
|
||||
</data>
|
||||
<data name="BotAutomaticIdlingPauseTimeout" xml:space="preserve">
|
||||
<value>Gedeelde bibliotheek is niet opgestart in de gegeven tijdsperiode. Idle proces hervat!</value>
|
||||
<value>Gedeelde bibliotheek is niet opgestart in de gegeven tijdsperiode. Farming proces wordt hervat!</value>
|
||||
</data>
|
||||
<data name="BotConnecting" xml:space="preserve">
|
||||
<value>Verbinden...</value>
|
||||
@@ -665,11 +665,11 @@ StackTrace:
|
||||
<value>Stoppen...</value>
|
||||
</data>
|
||||
<data name="ErrorBotConfigInvalid" xml:space="preserve">
|
||||
<value>Jouw bot configuratie is ongeldig, controleer de inhoud van {0} en probeer het opnieuw!</value>
|
||||
<value>Je bot configuratie is ongeldig. Controleer de inhoud van {0} en probeer het opnieuw!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorDatabaseInvalid" xml:space="preserve">
|
||||
<value>Huidige database kon niet worden geladen, als het probleem aanhoudt, verwijder dan {0} om de database opnieuw aan te maken!</value>
|
||||
<value>Database kon niet worden geladen. Als het probleem aanhoudt, verwijder dan {0} om de database opnieuw aan te maken!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="Initializing" xml:space="preserve">
|
||||
@@ -683,7 +683,7 @@ StackTrace:
|
||||
<value>Het lijkt erop dat je het programma voor het eerst start, welkom!</value>
|
||||
</data>
|
||||
<data name="ErrorInvalidCurrentCulture" xml:space="preserve">
|
||||
<value>De door jouw ingevoerde CurrentCulture is ongeldig. ASF zal de standaardtaal blijven gebruiken!</value>
|
||||
<value>De door jou ingevoerde CurrentCulture is ongeldig. ASF zal de standaardtaal blijven gebruiken!</value>
|
||||
</data>
|
||||
<data name="TranslationIncomplete" xml:space="preserve">
|
||||
<value>ASF probeert de {0} taalmodule te gebruiken, maar het vertalen in deze taal is slechts {1} compleet. Misschien kan je ons helpen om ASF te vertalen in jouw taal?</value>
|
||||
@@ -705,7 +705,7 @@ StackTrace:
|
||||
<value>Dit account is vergrendeld. Farming is permanent niet beschikbaar!</value>
|
||||
</data>
|
||||
<data name="BotStatusLocked" xml:space="preserve">
|
||||
<value>Bot is vergrendeld en kan geen kaarten farmen.</value>
|
||||
<value>Bot is vergrendeld en kan geen kaarten verzamelen.</value>
|
||||
</data>
|
||||
<data name="ErrorFunctionOnlyInHeadlessMode" xml:space="preserve">
|
||||
<value>Deze functie is alleen beschikbaar in de headless mode!</value>
|
||||
|
||||
@@ -608,8 +608,8 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot jest ograniczony i nie może otrzymać żadnych kart poprzez farmienie.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot nie jest połączony.</value>
|
||||
<data name="BotStatusConnecting" xml:space="preserve">
|
||||
<value>Bot łączy się z siecią Steam.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot nie jest uruchomiony.</value>
|
||||
|
||||
@@ -608,9 +608,7 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot é limitado e não pode receber nenhuma carta através da coleta.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot não está conectado.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot não está em execução.</value>
|
||||
</data>
|
||||
|
||||
@@ -144,12 +144,17 @@ StackTrace:
|
||||
{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>Saindo com erro diferente de zero!</value>
|
||||
</data>
|
||||
<data name="ErrorFailingRequest" xml:space="preserve">
|
||||
<value>Pedido falhou em: {0}</value>
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
</data>
|
||||
|
||||
<data name="ErrorGlobalConfigNotLoaded" xml:space="preserve">
|
||||
<value>Configuração global não pôde ser carregada, por favor certefique-se que {0} existe e é válido! Siga os passos na wiki se tiver dúvidas.</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorIsInvalid" xml:space="preserve">
|
||||
<value>{0} é inválido!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
@@ -157,7 +162,9 @@ StackTrace:
|
||||
<data name="ErrorMobileAuthenticatorInvalidDeviceID" xml:space="preserve">
|
||||
<value>Recusando a executação desta função devido ao ID de dispositivo ser inválido no ASF 2FA!</value>
|
||||
</data>
|
||||
|
||||
<data name="ErrorNoBotsDefined" xml:space="preserve">
|
||||
<value>Sem bots definidos, esqueceste-te de configurar o teu ASF?</value>
|
||||
</data>
|
||||
<data name="ErrorObjectIsNull" xml:space="preserve">
|
||||
<value>{0} é nulo!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
@@ -166,8 +173,14 @@ StackTrace:
|
||||
<value>Falha ao analisar {0}!</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="ErrorRemovingOldBinary" xml:space="preserve">
|
||||
<value>Não foi possível remover o velho ASF, por favor remova {0} manualmente para a função de atualização funcionar!</value>
|
||||
<comment>{0} will be replaced by file's path</comment>
|
||||
</data>
|
||||
<data name="ErrorRequestFailedTooManyTimes" xml:space="preserve">
|
||||
<value>O pedido falhou após {0} tentativas!</value>
|
||||
<comment>{0} will be replaced by maximum number of tries</comment>
|
||||
</data>
|
||||
<data name="ErrorUpdateCheckFailed" xml:space="preserve">
|
||||
<value>Não foi possível verificar a ultima versão!</value>
|
||||
</data>
|
||||
@@ -289,7 +302,10 @@ StackTrace:
|
||||
<value>Versão local: {0} | Versão remota: {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>Por favor digita o ID do teu dispositivo autenticador móvel (incluindo "android:"): </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
@@ -417,9 +433,17 @@ StackTrace:
|
||||
<comment>{0} will be replaced by giftID (number)</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
<data name="BotAddLicense" xml:space="preserve">
|
||||
<value>ID: {0} | Estado: {1}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by status string</comment>
|
||||
</data>
|
||||
<data name="BotAddLicenseWithItems" xml:space="preserve">
|
||||
<value>ID: {0} | Estado: {1} | Items: {2}</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by status string, {2} will be replaced by list of granted IDs (numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="BotAlreadyRunning" xml:space="preserve">
|
||||
<value>Este bot já está em funcionamento!</value>
|
||||
</data>
|
||||
<data name="BotAuthenticatorConverting" xml:space="preserve">
|
||||
<value>A converter ficheiro .maFile em formato ASF...</value>
|
||||
</data>
|
||||
@@ -576,8 +600,13 @@ inválidas, abortando!</value>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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>
|
||||
</data>
|
||||
<data name="BotAccountLocked" xml:space="preserve">
|
||||
<value>Esta conta está bloqueada, está permanentemente indisponível o processo de farmar!</value>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -608,8 +608,8 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot is limited and can't drop any cards through idling.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot is not connected.</value>
|
||||
<data name="BotStatusConnecting" xml:space="preserve">
|
||||
<value>Bot is connecting to Steam network.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot is not running.</value>
|
||||
|
||||
@@ -608,9 +608,7 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot-ul este limitat și nu poate pica cartonașe prin farmare.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot-ul nu este conectat.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot-ul nu rulează.</value>
|
||||
</data>
|
||||
|
||||
@@ -608,9 +608,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Бот имеет ограничения и не может фармить карты.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Бот не подключён.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Бот не запущен.</value>
|
||||
</data>
|
||||
|
||||
@@ -574,9 +574,7 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Botten är begrensad och kan inte få några kort via farmning.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot är inte ansluten.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot körs inte.</value>
|
||||
</data>
|
||||
|
||||
@@ -608,9 +608,7 @@ Hata bilgileri:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot kısıtlı durumda ve çalışarak kart düşüremez.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot bağlı değil.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot çalışmıyor.</value>
|
||||
</data>
|
||||
|
||||
@@ -608,9 +608,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Бот обмежений і не може отримувати карти.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Бот не підключений.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Бот не запущений.</value>
|
||||
</data>
|
||||
|
||||
@@ -525,9 +525,7 @@ StackTrace:
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>Bot bị hạn chế và không thể rớt bất kỳ thẻ thông qua chạy không.</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>Bot không kết nối.</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>Bot không chạy.</value>
|
||||
</data>
|
||||
|
||||
@@ -605,8 +605,8 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>帐号是受限制的,不会掉落任何卡牌。</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>帐号未连接。</value>
|
||||
<data name="BotStatusConnecting" xml:space="preserve">
|
||||
<value>账号正在连接到Steam网络。</value>
|
||||
</data>
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>帐号没有在运行。</value>
|
||||
|
||||
@@ -605,9 +605,7 @@
|
||||
<data name="BotStatusLimited" xml:space="preserve">
|
||||
<value>BOT 的帳號是受限制的,所以無法通過掛卡得到卡片。</value>
|
||||
</data>
|
||||
<data name="BotStatusNotConnected" xml:space="preserve">
|
||||
<value>BOT 未連線。</value>
|
||||
</data>
|
||||
|
||||
<data name="BotStatusNotRunning" xml:space="preserve">
|
||||
<value>BOT 未運行。</value>
|
||||
</data>
|
||||
|
||||
@@ -183,7 +183,7 @@ namespace ArchiSteamFarm {
|
||||
string description = descriptionNode.InnerText;
|
||||
if (description.StartsWith("Sell - ", StringComparison.Ordinal)) {
|
||||
type = Steam.ConfirmationDetails.EType.Market;
|
||||
} else if (description.StartsWith("Trade with ", StringComparison.Ordinal)) {
|
||||
} else if (description.StartsWith("Trade with ", StringComparison.Ordinal) || description.Equals("Error loading trade details")) {
|
||||
type = Steam.ConfirmationDetails.EType.Trade;
|
||||
} else {
|
||||
Bot.ArchiLogger.LogGenericWarning(string.Format(Strings.WarningUnknownValuePleaseReport, nameof(description), description));
|
||||
@@ -366,7 +366,7 @@ namespace ArchiSteamFarm {
|
||||
return (uint) (Utilities.GetUnixTime() + SteamTimeDifference.Value);
|
||||
}
|
||||
|
||||
uint serverTime = Bot.ArchiWebHandler.GetServerTime();
|
||||
uint serverTime = await Bot.ArchiWebHandler.GetServerTime().ConfigureAwait(false);
|
||||
if (serverTime == 0) {
|
||||
return Utilities.GetUnixTime();
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
@@ -235,36 +236,45 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
}
|
||||
|
||||
ushort defaultResourceSetCount = 0;
|
||||
ResourceSet defaultResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.GetCultureInfo("en-US"), true, true);
|
||||
if (defaultResourceSet != null) {
|
||||
defaultResourceSetCount = (ushort) defaultResourceSet.Cast<object>().Count();
|
||||
}
|
||||
|
||||
if (defaultResourceSetCount == 0) {
|
||||
if (CultureInfo.CurrentCulture.TwoLetterISOLanguageName.Equals("en")) {
|
||||
return;
|
||||
}
|
||||
|
||||
ushort currentResourceSetCount = 0;
|
||||
ResourceSet currentResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, false);
|
||||
if (currentResourceSet != null) {
|
||||
currentResourceSetCount = (ushort) currentResourceSet.Cast<object>().Count();
|
||||
ResourceSet defaultResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.GetCultureInfo("en-US"), true, true);
|
||||
if (defaultResourceSet == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(defaultResourceSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentResourceSetCount < defaultResourceSetCount) {
|
||||
// We don't want to report "en-AU" as 0.00% only because we don't have it as a dialect, if "en" is available and translated
|
||||
// This typically will work only for English, as e.g. "nl-BE" doesn't fallback to "nl-NL", but "nl", and "nl" will be empty
|
||||
ushort neutralResourceSetCount = 0;
|
||||
ResourceSet neutralResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture.Parent, true, false);
|
||||
if (neutralResourceSet != null) {
|
||||
neutralResourceSetCount = (ushort) neutralResourceSet.Cast<object>().Count();
|
||||
}
|
||||
HashSet<DictionaryEntry> defaultStringObjects = new HashSet<DictionaryEntry>(defaultResourceSet.Cast<DictionaryEntry>());
|
||||
if (defaultStringObjects.Count == 0) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(defaultStringObjects));
|
||||
return;
|
||||
}
|
||||
|
||||
if (neutralResourceSetCount < defaultResourceSetCount) {
|
||||
float translationCompleteness = currentResourceSetCount / (float) defaultResourceSetCount;
|
||||
ASF.ArchiLogger.LogGenericInfo(string.Format(Strings.TranslationIncomplete, CultureInfo.CurrentCulture.Name, translationCompleteness.ToString("P1")));
|
||||
ResourceSet currentResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, true);
|
||||
if (currentResourceSet == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(currentResourceSet));
|
||||
return;
|
||||
}
|
||||
|
||||
HashSet<DictionaryEntry> currentStringObjects = new HashSet<DictionaryEntry>(currentResourceSet.Cast<DictionaryEntry>());
|
||||
if (currentStringObjects.Count >= defaultStringObjects.Count) {
|
||||
// Either we have 100% finished translation, or we're missing it entirely and using en-US
|
||||
HashSet<DictionaryEntry> testStringObjects = new HashSet<DictionaryEntry>(currentStringObjects);
|
||||
testStringObjects.ExceptWith(defaultStringObjects);
|
||||
|
||||
// If we got 0 as final result, this is the missing language
|
||||
// Otherwise it's just a small amount of strings that happen to be the same
|
||||
if (testStringObjects.Count == 0) {
|
||||
currentStringObjects = testStringObjects;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentStringObjects.Count < defaultStringObjects.Count) {
|
||||
float translationCompleteness = currentStringObjects.Count / (float) defaultStringObjects.Count;
|
||||
ASF.ArchiLogger.LogGenericInfo(string.Format(Strings.TranslationIncomplete, CultureInfo.CurrentCulture.Name, translationCompleteness.ToString("P1")));
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task InitGlobalDatabaseAndServices() {
|
||||
|
||||
@@ -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.7";
|
||||
internal const string VersionNumber = "2.2.3.8";
|
||||
|
||||
internal static readonly Version Version = Assembly.GetEntryAssembly().GetName().Version;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace ArchiSteamFarm {
|
||||
StopServer();
|
||||
}
|
||||
|
||||
public string GetStatus() => Program.GlobalConfig.SteamOwnerID == 0 ? "{}" : Bot.GetAPIStatus();
|
||||
public string GetStatus() => Program.GlobalConfig.SteamOwnerID == 0 ? "{}" : Bot.GetAPIStatus(Bot.Bots);
|
||||
|
||||
public string HandleCommand(string input) {
|
||||
if (string.IsNullOrEmpty(input)) {
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
<EmbeddedResource Include="Localization\CGStrings.el-GR.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.es-ES.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.fi-FI.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.fr-CH.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.fr-FR.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.he-IL.resx" />
|
||||
<EmbeddedResource Include="Localization\CGStrings.hi-IN.resx" />
|
||||
|
||||
241
ConfigGenerator/Localization/CGStrings.fr-CH.resx
Normal file
241
ConfigGenerator/Localization/CGStrings.fr-CH.resx
Normal file
@@ -0,0 +1,241 @@
|
||||
<?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>
|
||||
<data name="CategoryAccess" xml:space="preserve">
|
||||
<value>Accès</value>
|
||||
</data>
|
||||
<data name="CategoryAdvanced" xml:space="preserve">
|
||||
<value>Configuration avancée</value>
|
||||
</data>
|
||||
<data name="CategoryCore" xml:space="preserve">
|
||||
<value>Configuration minimale</value>
|
||||
</data>
|
||||
<data name="CategoryDebugging" xml:space="preserve">
|
||||
<value>Débogage</value>
|
||||
</data>
|
||||
<data name="CategoryPerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
</data>
|
||||
<data name="CategoryUpdates" xml:space="preserve">
|
||||
<value>Mises à jour</value>
|
||||
</data>
|
||||
<data name="ConfirmRemoval" xml:space="preserve">
|
||||
<value>Voulez-vous vraiment supprimer cette configuration ?</value>
|
||||
</data>
|
||||
<data name="ErrorBotNameEmpty" xml:space="preserve">
|
||||
<value>Le nom de votre bot est vide !</value>
|
||||
</data>
|
||||
<data name="ErrorCantRemoveGlobalConfig" xml:space="preserve">
|
||||
<value>Vous ne pouvez pas supprimer la configuration globale !</value>
|
||||
</data>
|
||||
<data name="ErrorCantRenameGlobalConfig" xml:space="preserve">
|
||||
<value>Vous ne pouvez pas renommer la configuration globale !</value>
|
||||
</data>
|
||||
<data name="ErrorConfigDirectoryNotFound" xml:space="preserve">
|
||||
<value>Le répertoire de configuration est introuvable !</value>
|
||||
</data>
|
||||
<data name="ErrorConfigPropertyInvalid" xml:space="preserve">
|
||||
<value>Propriété {0} configuré n’est pas valide : {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>Votre CurrentCulture fourni n’est pas valide, ConfigGenerator continuera à fonctionner avec celui par défaut !</value>
|
||||
</data>
|
||||
<data name="ErrorNameAlreadyUsed" xml:space="preserve">
|
||||
<value>Ce nom est déjà utilisé !</value>
|
||||
<comment>This happens e.g. when user wants to create a bot with name that exists already</comment>
|
||||
</data>
|
||||
<data name="ErrorNameReserved" xml:space="preserve">
|
||||
<value>Ce nom est réservé !</value>
|
||||
<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} est invalide !</value>
|
||||
<comment>{0} will be replaced by object's name</comment>
|
||||
</data>
|
||||
<data name="ErrorVersionMismatch" xml:space="preserve">
|
||||
<value>Vous tentez d'utiliser une version de ConfigGenerator différente d'ASF !
|
||||
|
||||
ASF : {0} | ConfigGenerator : {1}
|
||||
|
||||
Veuillez utiliser une version de ConfigGenerator correspondant à celle d'ASF. Vous allez être redirigé vers la version correcte...</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>Nouveau</value>
|
||||
<comment>This is used as MessageBox title</comment>
|
||||
</data>
|
||||
<data name="Removal" xml:space="preserve">
|
||||
<value>Suppression</value>
|
||||
<comment>This is used as MessageBox title</comment>
|
||||
</data>
|
||||
<data name="Rename" xml:space="preserve">
|
||||
<value>Renommer</value>
|
||||
<comment>This is used as MessageBox title</comment>
|
||||
</data>
|
||||
<data name="TutorialBotFormEnabled" xml:space="preserve">
|
||||
<value>Excellent ! Votre bot est maintenant activé. En fait, c’est tout ce que vous avez à faire pour pouvoir l'utiliser dans ASF, mais vous allez devoir configurer au moins 2 paramètres supplémentaires : {0} et {1}. Si vous voulez continuer le tutoriel, veuillez le faire maintenant. N’oubliez pas de consulter le wiki si vous ne savez pas comment un paramètre doit être configuré, ou si vous avez besoin d’aide supplémentaire.</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>Votre programme ASF est maintenant prêt ! Lancez simplement l'exécutable ASF.exe et si vous avez tout entré correctement, vous devriez remarquer que ASF se connecte et démarre la collecte des cartes. Si vous avez SteamGuard ou l'authentification mobile à deux facteurs activée, ASF vous demandera ces informations de connexion au démarrage.</value>
|
||||
</data>
|
||||
<data name="TutorialFinished" xml:space="preserve">
|
||||
<value>Félicitations ! Vous avez fait tout ce qui est nécessaire afin de rendre ASF utilisable, cela termine également le tutoriel que nous avions préparé pour vous. Il est fortement recommandé de lire, en entier, la section à propos des réglages sur le wiki , puisqu'ASF offre des fonctionnalités très utiles que vous pouvez configurer, comme collecter en hors-ligne ou régler ASF pour utiliser l’algorithme le plus efficace pour votre compte. Tout cela est facultatif, vous êtes libre de fermer notre configurateur quand vous le souhaitez. Nous espérons que vous apprécierez le logiciel que nous avons codé pour vous !</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormBotsManagementButtons" xml:space="preserve">
|
||||
<value>En haut de la fenêtre vous pouvez voir les noms des bots créés, et 3 autres boutons pour enlever [-], renommer [~] et ajouter de nouvelles configurations [+].</value>
|
||||
<comment>If possible, try to keep visual representation of buttons: [-], [~] and [+]</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWiki" xml:space="preserve">
|
||||
<value>Veuillez noter que toutes les informations sur les paramètres de configuration disponibles, y compris leurs descriptions, rôles et valeurs acceptées, sont disponibles sur notre wiki de GitHub. Utilisez-le comme référence.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormConfigurationWindow" xml:space="preserve">
|
||||
<value>Au milieu de la fenêtre, vous pouvez configurer toutes les propriétés disponibles pour la config en cours de sélection.</value>
|
||||
</data>
|
||||
<data name="TutorialMainFormFinished" xml:space="preserve">
|
||||
<value>Très bien, commençons la configuration d'ASF. Cliquez sur le bouton [+] pour ajouter votre premier compte Steam !</value>
|
||||
<comment>If possible, try to keep visual representation of [+] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormHelpButton" xml:space="preserve">
|
||||
<value>Dans le coin supérieur droit, vous pouvez trouver le bouton aide [?], qui vous redirigera vers le wiki d'ASF pour plus d’informations.</value>
|
||||
<comment>If possible, try to keep visual representation of [?] button</comment>
|
||||
</data>
|
||||
<data name="TutorialMainFormShown" xml:space="preserve">
|
||||
<value>Il s'agit de l'écran principal du ConfigGenerator d'ASF, il est très simple d'utilisation !</value>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormFinished" xml:space="preserve">
|
||||
<value>Comme vous pouvez le voir, votre bot est maintenant prêt pour être configuré ! La première chose à faire est de changer la propriété {0} de false à true, essayez !</value>
|
||||
<comment>{0} will be replaced by name of the configuration property ("Enabled")</comment>
|
||||
</data>
|
||||
<data name="TutorialNewBotFormShown" xml:space="preserve">
|
||||
<value>Bon travail ! Vous allez devoir trouver un nom pour votre bot. Un bon exemple de nom serait d'utiliser celui de votre compte Steam, ou tout autre nom de votre choix qui sera facile à associer avec cette instance de bot.</value>
|
||||
</data>
|
||||
<data name="TutorialStart" xml:space="preserve">
|
||||
<value>Bienvenue ! J’ai remarqué que vous utilisez ConfigGenerator ASF pour la première fois, alors laissez-moi vous aider un peu.</value>
|
||||
</data>
|
||||
<data name="UserInputBotName" xml:space="preserve">
|
||||
<value>Veuillez entrer le nom du bot : </value>
|
||||
<comment>Please note that this translation should end with space</comment>
|
||||
</data>
|
||||
<data name="WarningConfigPropertyModified" xml:space="preserve">
|
||||
<value>{0} a pris la valeur : {1}</value>
|
||||
<comment>{0} will be replaced by name of the configuration property, {1} will be replaced by new value</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -233,6 +233,9 @@
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.fi-FI.resx">
|
||||
<Link>Localization\Strings.fi-FI.resx</Link>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.fr-CH.resx">
|
||||
<Link>Localization\Strings.fr-CH.resx</Link>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="..\ArchiSteamFarm\Localization\Strings.fr-FR.resx">
|
||||
<Link>Localization\Strings.fr-FR.resx</Link>
|
||||
</EmbeddedResource>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
@@ -141,36 +142,45 @@ namespace ArchiSteamFarm {
|
||||
}
|
||||
}
|
||||
|
||||
ushort defaultResourceSetCount = 0;
|
||||
ResourceSet defaultResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.GetCultureInfo("en-US"), true, true);
|
||||
if (defaultResourceSet != null) {
|
||||
defaultResourceSetCount = (ushort) defaultResourceSet.Cast<object>().Count();
|
||||
}
|
||||
|
||||
if (defaultResourceSetCount == 0) {
|
||||
if (CultureInfo.CurrentCulture.TwoLetterISOLanguageName.Equals("en")) {
|
||||
return;
|
||||
}
|
||||
|
||||
ushort currentResourceSetCount = 0;
|
||||
ResourceSet currentResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, false);
|
||||
if (currentResourceSet != null) {
|
||||
currentResourceSetCount = (ushort) currentResourceSet.Cast<object>().Count();
|
||||
ResourceSet defaultResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.GetCultureInfo("en-US"), true, true);
|
||||
if (defaultResourceSet == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(defaultResourceSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentResourceSetCount < defaultResourceSetCount) {
|
||||
// We don't want to report "en-AU" as 0.00% only because we don't have it as a dialect, if "en" is available and translated
|
||||
// This typically will work only for English, as e.g. "nl-BE" doesn't fallback to "nl-NL", but "nl", and "nl" will be empty
|
||||
ushort neutralResourceSetCount = 0;
|
||||
ResourceSet neutralResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture.Parent, true, false);
|
||||
if (neutralResourceSet != null) {
|
||||
neutralResourceSetCount = (ushort) neutralResourceSet.Cast<object>().Count();
|
||||
}
|
||||
HashSet<DictionaryEntry> defaultStringObjects = new HashSet<DictionaryEntry>(defaultResourceSet.Cast<DictionaryEntry>());
|
||||
if (defaultStringObjects.Count == 0) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(defaultStringObjects));
|
||||
return;
|
||||
}
|
||||
|
||||
if (neutralResourceSetCount < defaultResourceSetCount) {
|
||||
float translationCompleteness = currentResourceSetCount / (float) defaultResourceSetCount;
|
||||
ASF.ArchiLogger.LogGenericInfo(string.Format(Strings.TranslationIncomplete, CultureInfo.CurrentCulture.Name, translationCompleteness.ToString("P1")));
|
||||
ResourceSet currentResourceSet = Strings.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, true);
|
||||
if (currentResourceSet == null) {
|
||||
ASF.ArchiLogger.LogNullError(nameof(currentResourceSet));
|
||||
return;
|
||||
}
|
||||
|
||||
HashSet<DictionaryEntry> currentStringObjects = new HashSet<DictionaryEntry>(currentResourceSet.Cast<DictionaryEntry>());
|
||||
if (currentStringObjects.Count >= defaultStringObjects.Count) {
|
||||
// Either we have 100% finished translation, or we're missing it entirely and using en-US
|
||||
HashSet<DictionaryEntry> testStringObjects = new HashSet<DictionaryEntry>(currentStringObjects);
|
||||
testStringObjects.ExceptWith(defaultStringObjects);
|
||||
|
||||
// If we got 0 as final result, this is the missing language
|
||||
// Otherwise it's just a small amount of strings that happen to be the same
|
||||
if (testStringObjects.Count == 0) {
|
||||
currentStringObjects = testStringObjects;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentStringObjects.Count < defaultStringObjects.Count) {
|
||||
float translationCompleteness = currentStringObjects.Count / (float) defaultStringObjects.Count;
|
||||
ASF.ArchiLogger.LogGenericInfo(string.Format(Strings.TranslationIncomplete, CultureInfo.CurrentCulture.Name, translationCompleteness.ToString("P1")));
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task InitGlobalDatabaseAndServices() {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
ArchiSteamFarm
|
||||
===================
|
||||
|
||||
[](https://ci.appveyor.com/project/JustArchi/ArchiSteamFarm)
|
||||
[](https://travis-ci.org/JustArchi/ArchiSteamFarm)
|
||||
[](https://ci.appveyor.com/project/JustArchi/ArchiSteamFarm)
|
||||
[](https://travis-ci.org/JustArchi/ArchiSteamFarm)
|
||||
[](./LICENSE-2.0.txt)
|
||||
[](https://github.com/JustArchi/ArchiSteamFarm/releases/latest)
|
||||
[](https://github.com/JustArchi/ArchiSteamFarm/releases/latest)
|
||||
@@ -13,7 +13,7 @@ ArchiSteamFarm
|
||||
[](https://blockchain.info/address/1Archi6M1r5b41Rvn1SY2FfJAzsrEUT7aT)
|
||||
[](https://steamcommunity.com/tradeoffer/new/?partner=46697991&token=0ix2Ruv_)
|
||||
|
||||
[](https://gitter.im/JustArchi/ArchiSteamFarm)
|
||||
[](https://gitter.im/JustArchi/ArchiSteamFarm)
|
||||
[](https://steamcommunity.com/groups/ascfarm)
|
||||
[](https://discord.gg/HStsVSB)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ branches:
|
||||
only:
|
||||
- master
|
||||
skip_branch_with_pr: true
|
||||
image: Visual Studio 2015
|
||||
image: Visual Studio 2017
|
||||
configuration: Release
|
||||
platform: Any CPU
|
||||
clone_depth: 10
|
||||
|
||||
@@ -52,7 +52,7 @@ VERSION_LESS_EQUAL_THAN() {
|
||||
echo "INFO: Mono environment setup executed!"
|
||||
|
||||
MINIMUM_MONO_VERSION="4.6.0" # Bump as needed
|
||||
CURRENT_MONO_VERSION="$(mono -V | head -n 1 | cut -d ' ' -f 5)"
|
||||
CURRENT_MONO_VERSION="$(mono -V | head -n 1 | cut -d ' ' -f 5 | cut -d '.' -f '1-3')" # We take only first three version numbers, this is needed for facades path in OS X
|
||||
|
||||
echo "INFO: Mono version: $CURRENT_MONO_VERSION | Required: ${MINIMUM_MONO_VERSION}+"
|
||||
|
||||
@@ -71,9 +71,10 @@ else
|
||||
echo "INFO: Skipping setting of MONO_ENV_OPTIONS as it's already declared with value: $MONO_ENV_OPTIONS"
|
||||
fi
|
||||
|
||||
MONO_FACADES=""
|
||||
if [ -d "/usr/lib/mono/4.5/Facades" ]; then
|
||||
export MONO_FACADES="/usr/lib/mono/4.5/Facades"
|
||||
elif [ -d "/Library/Frameworks/Mono.framework/Versions/${CURRENT_MONO_VERSION}/lib/mono/4.5/Facades" ]; then
|
||||
export MONO_FACADES="/Library/Frameworks/Mono.framework/Versions/${CURRENT_MONO_VERSION}/lib/mono/4.5/Facades"
|
||||
else
|
||||
echo "WARN: Could not find Mono facades!"
|
||||
fi
|
||||
|
||||
Binary file not shown.
@@ -1,2 +1,2 @@
|
||||
@echo off
|
||||
IF "%CROWDIN_HOME%"=="" (ECHO crowdin is NOT defined) ELSE (java -jar %CROWDIN_HOME%\crowdin-cli.jar %*)
|
||||
IF "%CROWDIN_HOME%"=="" (ECHO crowdin is NOT defined) ELSE (java -jar "%CROWDIN_HOME%\crowdin-cli.jar" %*)
|
||||
|
||||
Reference in New Issue
Block a user