Translate phase 1

This commit is contained in:
2025-09-21 17:01:12 +02:00
parent 0808266887
commit 6d8a8476b4
30 changed files with 2763 additions and 749 deletions

View File

@@ -4,6 +4,7 @@ using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Interface.Utility;
using Dalamud.Interface.Utility.Raii;
using Dalamud.Plugin.Services;
using MareSynchronos.Localization;
using MareSynchronos.MareConfiguration;
using MareSynchronos.Services;
using MareSynchronos.PlayerData.Pairs;
@@ -24,6 +25,10 @@ public class AutoDetectUi : WindowMediatorSubscriberBase
private readonly PairManager _pairManager;
private List<Services.Mediator.NearbyEntry> _entries = new();
private static string L(string key, string fallback, params object[] args)
=> LocalizationService.Instance?.GetString(key, fallback, args)
?? string.Format(CultureInfo.CurrentCulture, fallback, args);
public AutoDetectUi(ILogger<AutoDetectUi> logger, MareMediator mediator,
MareConfigService configService, DalamudUtilService dalamudUtilService, IObjectTable objectTable,
Services.AutoDetect.AutoDetectRequestService requestService, PairManager pairManager,
@@ -55,13 +60,13 @@ public class AutoDetectUi : WindowMediatorSubscriberBase
if (!_configService.Current.EnableAutoDetectDiscovery)
{
UiSharedService.ColorTextWrapped("Nearby detection is disabled. Enable it in Settings to start detecting nearby Umbra users.", ImGuiColors.DalamudYellow);
UiSharedService.ColorTextWrapped(L("AutoDetect.Disabled", "Nearby detection is disabled. Enable it in Settings to start detecting nearby Umbra users."), ImGuiColors.DalamudYellow);
ImGuiHelpers.ScaledDummy(6);
}
int maxDist = Math.Clamp(_configService.Current.AutoDetectMaxDistanceMeters, 5, 100);
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted("Max distance (m)");
ImGui.TextUnformatted(L("AutoDetect.MaxDistance", "Max distance (m)"));
ImGui.SameLine();
ImGui.SetNextItemWidth(120 * ImGuiHelpers.GlobalScale);
if (ImGui.SliderInt("##autodetect-dist", ref maxDist, 5, 100))
@@ -75,11 +80,11 @@ public class AutoDetectUi : WindowMediatorSubscriberBase
// Table header
if (ImGui.BeginTable("autodetect-nearby", 5, ImGuiTableFlags.SizingStretchProp))
{
ImGui.TableSetupColumn("Name");
ImGui.TableSetupColumn("World");
ImGui.TableSetupColumn("Distance");
ImGui.TableSetupColumn("Status");
ImGui.TableSetupColumn("Action");
ImGui.TableSetupColumn(L("AutoDetect.Table.Name", "Name"));
ImGui.TableSetupColumn(L("AutoDetect.Table.World", "World"));
ImGui.TableSetupColumn(L("AutoDetect.Table.Distance", "Distance"));
ImGui.TableSetupColumn(L("AutoDetect.Table.Status", "Status"));
ImGui.TableSetupColumn(L("AutoDetect.Table.Action", "Action"));
ImGui.TableHeadersRow();
var data = _entries.Count > 0 ? _entries.Where(e => e.IsMatch).ToList() : new List<Services.Mediator.NearbyEntry>();
@@ -88,25 +93,31 @@ public class AutoDetectUi : WindowMediatorSubscriberBase
ImGui.TableNextColumn();
ImGui.TextUnformatted(e.Name);
ImGui.TableNextColumn();
ImGui.TextUnformatted(e.WorldId == 0 ? "-" : (_dalamud.WorldData.Value.TryGetValue(e.WorldId, out var w) ? w : e.WorldId.ToString()));
ImGui.TextUnformatted(e.WorldId == 0 ? L("AutoDetect.World.Unknown", "-") : (_dalamud.WorldData.Value.TryGetValue(e.WorldId, out var w) ? w : e.WorldId.ToString()));
ImGui.TableNextColumn();
ImGui.TextUnformatted(float.IsNaN(e.Distance) ? "-" : $"{e.Distance:0.0} m");
ImGui.TextUnformatted(float.IsNaN(e.Distance)
? L("AutoDetect.Distance.Unknown", "-")
: string.Format(CultureInfo.CurrentCulture, L("AutoDetect.Distance.Format", "{0:0.0} m"), e.Distance));
ImGui.TableNextColumn();
bool alreadyPaired = IsAlreadyPairedByUidOrAlias(e);
string status = alreadyPaired ? "Paired" : (string.IsNullOrEmpty(e.Token) ? "Requests disabled" : "On Umbra");
string status = alreadyPaired
? L("AutoDetect.Status.Paired", "Paired")
: (string.IsNullOrEmpty(e.Token)
? L("AutoDetect.Status.RequestsDisabled", "Requests disabled")
: L("AutoDetect.Status.OnUmbra", "On Umbra"));
ImGui.TextUnformatted(status);
ImGui.TableNextColumn();
using (ImRaii.Disabled(alreadyPaired || string.IsNullOrEmpty(e.Token)))
{
if (alreadyPaired)
{
ImGui.Button($"Already sync##{e.Name}");
ImGui.Button(L("AutoDetect.Action.AlreadySynced", "Already sync") + "##" + e.Name);
}
else if (string.IsNullOrEmpty(e.Token))
{
ImGui.Button($"Requests disabled##{e.Name}");
ImGui.Button(L("AutoDetect.Action.RequestsDisabled", "Requests disabled") + "##" + e.Name);
}
else if (ImGui.Button($"Send request##{e.Name}"))
else if (ImGui.Button(L("AutoDetect.Action.SendRequest", "Send request") + "##" + e.Name))
{
_ = _requestService.SendRequestAsync(e.Token!);
}