Put remaining screen/log messages into translations, refactor translation formatting

This commit is contained in:
FlorianMichael 2024-07-16 21:31:25 +02:00
parent d7e59af1e3
commit 3562ad0116
No known key found for this signature in database
GPG Key ID: C2FB87E71C425126
18 changed files with 108 additions and 75 deletions

View File

@ -78,7 +78,7 @@ public abstract class MixinAddServerScreen extends Screen {
viaFabricPlus$addressField = null;
}
ButtonWidget.Builder buttonBuilder = ButtonWidget.builder(forcedVersion == null ? Text.translatable("base.viafabricplus.set_version") : Text.literal(forcedVersion.getName()), button -> {
ButtonWidget.Builder buttonBuilder = ButtonWidget.builder(forcedVersion == null ? Text.translatable("base.viafabricplus.set_version") : Text.of(forcedVersion.getName()), button -> {
// Store current input in case the user cancels the version selection
viaFabricPlus$nameField = serverNameField.getText();
viaFabricPlus$addressField = addressField.getText();

View File

@ -43,7 +43,7 @@ public abstract class MixinDirectConnectScreen extends Screen {
if (buttonPosition == 0) { // Off
return;
}
ButtonWidget.Builder builder = ButtonWidget.builder(Text.literal("ViaFabricPlus"), button -> ProtocolSelectionScreen.INSTANCE.open(this)).size(98, 20);
ButtonWidget.Builder builder = ButtonWidget.builder(Text.of("ViaFabricPlus"), button -> ProtocolSelectionScreen.INSTANCE.open(this)).size(98, 20);
// Set the button's position according to the configured orientation and add the button to the screen
this.addDrawableChild(GeneralSettings.withOrientation(builder, buttonPosition, width, height).build());

View File

@ -50,7 +50,7 @@ public abstract class MixinMultiplayerScreen extends Screen {
if (buttonPosition == 0) { // Off
return;
}
ButtonWidget.Builder builder = ButtonWidget.builder(Text.literal("ViaFabricPlus"), button -> ProtocolSelectionScreen.INSTANCE.open(this)).size(98, 20);
ButtonWidget.Builder builder = ButtonWidget.builder(Text.of("ViaFabricPlus"), button -> ProtocolSelectionScreen.INSTANCE.open(this)).size(98, 20);
// Set the button's position according to the configured orientation and add the button to the screen
this.addDrawableChild(GeneralSettings.withOrientation(builder, buttonPosition, width, height).build());

View File

@ -61,7 +61,7 @@ public abstract class MixinClientConfigurationNetworkHandler extends ClientCommo
@Inject(method = "onFeatures", at = @At(value = "HEAD"))
private void notifyAboutFeatures(FeaturesS2CPacket packet, CallbackInfo ci) {
if (ProtocolTranslator.getTargetVersion().olderThan(ProtocolVersion.v1_20) && packet.features().contains(Identifier.of("update_1_20"))) {
ChatUtil.sendPrefixedMessage(Text.literal("This server has the update_1_20 features enabled. This is not fully supported and may cause issues.").formatted(Formatting.RED));
ChatUtil.sendPrefixedMessage(Text.translatable("translation.viafabricplus.updates_1_20").formatted(Formatting.RED));
}
}

View File

@ -45,10 +45,10 @@ public class ViaFabricPlusViaDecoder extends ViaDecoder {
super.channelRead(ctx, msg);
} catch (Throwable t) {
// Mode 2: Just log the error
ViaFabricPlus.global().getLogger().error("Error occurred while decoding packet in ViaDecoder", t);
ViaFabricPlus.global().getLogger().error("Error occurred while decoding packet in ViaFabricPlus decoder", t);
if (mode == 1) {
// Mode 1: Send a message to the player that an error occurred and log the error
ChatUtil.sendPrefixedMessage(Text.literal("An error occurred while translating a packet! See more details in the logs!").formatted(Formatting.RED));
ChatUtil.sendPrefixedMessage(Text.translatable("translation.viafabricplus.packet_error").formatted(Formatting.RED));
}
}
}

View File

@ -53,7 +53,11 @@ public class VFPScreen extends Screen {
private PressableTextWidget subtitleWidget;
public VFPScreen(final String title, final boolean backButton) {
super(Text.of(title));
this(Text.of(title), backButton);
}
public VFPScreen(final Text title, final boolean backButton) {
super(title);
this.backButton = backButton;
}
@ -119,7 +123,7 @@ public class VFPScreen extends Screen {
@Override
protected void init() {
if (backButton) {
this.addDrawableChild(ButtonWidget.builder(Text.literal("<-"), button -> this.close()).position(5, 5).size(20, 20).build());
this.addDrawableChild(ButtonWidget.builder(Text.of("<-"), button -> this.close()).position(5, 5).size(20, 20).build());
}
}
@ -173,11 +177,11 @@ public class VFPScreen extends Screen {
* @param throwable The throwable which should be thrown
* @param next The screen which should be opened after the error screen is closed
*/
public static void showErrorScreen(final String title, final Throwable throwable, final Screen next) {
public static void showErrorScreen(final Text title, final Throwable throwable, final Screen next) {
ViaFabricPlus.global().getLogger().error("Something went wrong!", throwable);
final MinecraftClient client = MinecraftClient.getInstance();
client.execute(() -> client.setScreen(new NoticeScreen(() -> client.setScreen(next), Text.of(title), Text.translatable("base.viafabricplus.something_went_wrong").append("\n" + throwable.getMessage()), Text.translatable("base.viafabricplus.cancel"), false)));
client.execute(() -> client.setScreen(new NoticeScreen(() -> client.setScreen(next), title, Text.translatable("base.viafabricplus.something_went_wrong").append("\n" + throwable.getMessage()), Text.translatable("base.viafabricplus.cancel"), false)));
}
}

View File

@ -39,12 +39,12 @@ public class PerServerVersionScreen extends VFPScreen {
private final Consumer<ProtocolVersion> selectionConsumer;
public PerServerVersionScreen(final Screen prevScreen, final Consumer<ProtocolVersion> selectionConsumer) {
super("Force version", false);
super(Text.translatable("screen.viafabricplus.force_version"), false);
this.prevScreen = prevScreen;
this.selectionConsumer = selectionConsumer;
this.setupSubtitle(Text.translatable("base.viafabricplus.force_version_title"));
this.setupSubtitle(Text.translatable("force_version.viafabricplus.title"));
}
@Override
@ -110,7 +110,7 @@ public class PerServerVersionScreen extends VFPScreen {
@Override
public Text getNarration() {
return Text.literal(this.protocolVersion.getName());
return Text.of(this.protocolVersion.getName());
}
@Override

View File

@ -84,7 +84,7 @@ public class ProtocolSelectionScreen extends VFPScreen {
@Override
public Text getNarration() {
return Text.literal(this.protocolVersion.getName());
return Text.of(this.protocolVersion.getName());
}
@Override

View File

@ -42,31 +42,31 @@ public class ReportIssuesScreen extends VFPScreen {
private long delay = -1;
public ReportIssuesScreen() {
super("Report issues", true);
super(Text.translatable("screen.viafabricplus.report_issues"), true);
if (!actions.isEmpty()) {
return;
}
actions.put("report.viafabricplus.bug_report", () -> {
Util.getOperatingSystem().open(URI.create("https://github.com/ViaVersion/ViaFabricPlus/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml"));
this.setupSubtitle(Text.of("Opened GitHub issue page!"));
this.setupSubtitle(Text.translatable("report.viafabricplus.bug_report.response"));
});
actions.put("report.viafabricplus.feature_request", () -> {
Util.getOperatingSystem().open(URI.create("https://github.com/ViaVersion/ViaFabricPlus/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.yml"));
this.setupSubtitle(Text.of("Opened GitHub issue page!"));
this.setupSubtitle(Text.translatable("report.viafabricplus.feature_request.response"));
});
actions.put("report.viafabricplus.create_via_dump", () -> DumpUtil.postDump(client.getSession().getUuidOrNull()).whenComplete((s, throwable) -> {
if (throwable != null) {
this.setupSubtitle(Text.of("Failed to create a dump! See logs for more information."));
this.setupSubtitle(Text.translatable("report.viafabricplus.create_via_dump.failed"));
ViaFabricPlus.global().getLogger().error("Failed to create a dump", throwable);
return;
}
this.setupSubtitle(Text.of("Dump created and copied to clipboard!"));
this.setupSubtitle(Text.translatable("report.viafabricplus.create_via_dump.success"));
client.keyboard.setClipboard(s);
}));
actions.put("report.viafabricplus.open_logs", () -> {
Util.getOperatingSystem().open(new File(client.runDirectory, "logs") /* there is no constant for this in the game */);
this.setupSubtitle(Text.of("Logs folder opened!"));
this.setupSubtitle(Text.translatable("report.viafabricplus.open_logs.response"));
});
}

View File

@ -37,7 +37,7 @@ public class ServerListScreen extends VFPScreen {
private ButtonWidget betaCraftButton;
public ServerListScreen() {
super("Server lists", true);
super(Text.translatable("screen.viafabricplus.server_list"), true);
}
@Override
@ -68,7 +68,7 @@ public class ServerListScreen extends VFPScreen {
BetaCraftScreen.SERVER_LIST = serverList;
BetaCraftScreen.INSTANCE.open(this);
}, throwable -> showErrorScreen(BetaCraftScreen.INSTANCE.getTitle().getString(), throwable, this));
}, throwable -> showErrorScreen(BetaCraftScreen.INSTANCE.getTitle(), throwable, this));
} else {
BetaCraftScreen.INSTANCE.open(this);
@ -82,7 +82,9 @@ public class ServerListScreen extends VFPScreen {
@Override
public void tick() {
if (betaCraftButton != null) betaCraftButton.setMessage(Text.of("Loading..."));
if (betaCraftButton != null) {
betaCraftButton.setMessage(Text.translatable("betacraft.viafabricplus.loading"));
}
}
@Override

View File

@ -81,7 +81,7 @@ public class BetaCraftScreen extends VFPScreen {
for (BCVersionCategory value : BCVersionCategory.values()) {
final List<BCServerInfoSpec> servers = SERVER_LIST.serversOfVersionCategory(value);
if (servers.isEmpty()) continue;
addEntry(new TitleRenderer(Text.literal(value.name())));
addEntry(new TitleRenderer(Text.of(value.name())));
for (BCServerInfoSpec server : servers) {
addEntry(new ServerSlot(server));
}
@ -108,7 +108,7 @@ public class BetaCraftScreen extends VFPScreen {
@Override
public Text getNarration() {
return Text.literal(server.name());
return Text.of(server.name());
}
@Override

View File

@ -29,7 +29,6 @@ import de.florianmichael.viafabricplus.save.impl.AccountsSave;
import de.florianmichael.viafabricplus.screen.VFPScreen;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.ConfirmLinkScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.text.Text;
@ -39,7 +38,7 @@ public class ClassiCubeLoginScreen extends VFPScreen {
public static final ClassiCubeLoginScreen INSTANCE = new ClassiCubeLoginScreen();
public ClassiCubeLoginScreen() {
super("ClassiCube Login", true);
super(Text.translatable("screen.viafabricplus.classicube_login"), true);
}
private TextFieldWidget nameField;
@ -52,10 +51,10 @@ public class ClassiCubeLoginScreen extends VFPScreen {
this.addDrawableChild(nameField = new TextFieldWidget(textRenderer, width / 2 - 150, 70 + 10, 300, 20, Text.empty()));
this.addDrawableChild(passwordField = new TextFieldWidget(textRenderer, width / 2 - 150, nameField.getY() + 20 + 5, 300, 20, Text.empty()));
passwordField.setRenderTextProvider((s, integer) -> Text.literal("*".repeat(s.length())).asOrderedText());
passwordField.setRenderTextProvider((s, integer) -> Text.of("*".repeat(s.length())).asOrderedText());
nameField.setPlaceholder(Text.literal("Name"));
passwordField.setPlaceholder(Text.literal("Password"));
nameField.setPlaceholder(Text.translatable("base.viafabricplus.name"));
passwordField.setPlaceholder(Text.translatable("base.viafabricplus.password"));
nameField.setMaxLength(Integer.MAX_VALUE);
passwordField.setMaxLength(Integer.MAX_VALUE);
@ -69,7 +68,7 @@ public class ClassiCubeLoginScreen extends VFPScreen {
passwordField.setText(accountsSave.getClassicubeAccount().username());
}
this.addDrawableChild(ButtonWidget.builder(Text.literal("Login"), button -> {
this.addDrawableChild(ButtonWidget.builder(Text.of("Login"), button -> {
accountsSave.setClassicubeAccount(new CCAccount(nameField.getText(), passwordField.getText()));
this.setupSubtitle(Text.translatable("classicube.viafabricplus.loading"));
@ -88,7 +87,7 @@ public class ClassiCubeLoginScreen extends VFPScreen {
@Override
public void handleException(Throwable throwable) {
ViaFabricPlus.global().getLogger().error("Error while logging in to ClassiCube!", throwable);
setupSubtitle(Text.literal(throwable.getMessage()));
setupSubtitle(Text.of(throwable.getMessage()));
}
});
}).position(width / 2 - 75, passwordField.getY() + (20 * 4) + 5).size(150, 20).build());

View File

@ -27,7 +27,6 @@ import de.florianmichael.viafabricplus.ViaFabricPlus;
import de.florianmichael.viafabricplus.screen.VFPScreen;
import de.florianmichael.viafabricplus.screen.base.ProtocolSelectionScreen;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.text.Text;
@ -37,7 +36,7 @@ public class ClassiCubeMFAScreen extends VFPScreen {
public static final ClassiCubeMFAScreen INSTANCE = new ClassiCubeMFAScreen();
public ClassiCubeMFAScreen() {
super("ClassiCube MFA", false);
super(Text.translatable("screen.viafabricplus.classicube_mfa"), false);
}
private TextFieldWidget mfaField;
@ -49,9 +48,9 @@ public class ClassiCubeMFAScreen extends VFPScreen {
this.addDrawableChild(mfaField = new TextFieldWidget(textRenderer, width / 2 - 150, 70 + 10, 300, 20, Text.empty()));
mfaField.setPlaceholder(Text.literal("MFA"));
mfaField.setPlaceholder(Text.of("MFA"));
this.addDrawableChild(ButtonWidget.builder(Text.literal("Login"), button -> {
this.addDrawableChild(ButtonWidget.builder(Text.of("Login"), button -> {
this.setupSubtitle(Text.translatable("classicube.viafabricplus.loading"));
final CCAccount account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount();
@ -68,7 +67,7 @@ public class ClassiCubeMFAScreen extends VFPScreen {
@Override
public void handleException(Throwable throwable) {
setupSubtitle(Text.literal(throwable.getMessage()));
setupSubtitle(Text.of(throwable.getMessage()));
}
});
}).position(width / 2 - 75, mfaField.getY() + (20 * 4) + 5).size(150, 20).build());

View File

@ -91,7 +91,7 @@ public class ClassiCubeServerListScreen extends VFPScreen {
final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount();
if (account != null) {
context.drawTextWithShadow(textRenderer, Text.of("ClassiCube Profile:"), 32, 6, -1);
context.drawTextWithShadow(textRenderer, Text.translatable("classicube.viafabricplus.profile"), 32, 6, -1);
context.drawTextWithShadow(textRenderer, Text.of(account.username()), 32, 16, -1);
}
}
@ -125,7 +125,7 @@ public class ClassiCubeServerListScreen extends VFPScreen {
@Override
public Text getNarration() {
return Text.literal(classiCubeServerInfo.name());
return Text.of(classiCubeServerInfo.name());
}
@Override

View File

@ -35,21 +35,17 @@ import net.minecraft.text.Text;
import net.minecraft.util.Util;
import net.raphimc.minecraftauth.MinecraftAuth;
import net.raphimc.minecraftauth.step.AbstractStep;
import net.raphimc.minecraftauth.step.bedrock.StepMCChain;
import net.raphimc.minecraftauth.step.bedrock.StepPlayFabToken;
import net.raphimc.minecraftauth.step.msa.StepMsaDeviceCode;
import net.raphimc.minecraftauth.step.msa.StepMsaDeviceCodeMsaCode;
import net.raphimc.minecraftauth.step.xbl.StepXblDeviceToken;
import net.raphimc.minecraftauth.step.xbl.StepXblSisuAuthentication;
import net.raphimc.minecraftauth.step.xbl.StepXblXstsToken;
import net.raphimc.minecraftauth.util.logging.ConsoleLogger;
import net.raphimc.minecraftauth.util.logging.ILogger;
import java.util.Locale;
import java.util.concurrent.CompletableFuture;
public class BedrockSettings extends SettingGroup {
private static final Text TITLE = Text.literal("Microsoft Bedrock login");
private static final Text TITLE = Text.of("Microsoft Bedrock login");
private static final BedrockSettings INSTANCE = new BedrockSettings();
@ -59,7 +55,7 @@ public class BedrockSettings extends SettingGroup {
public MutableText displayValue() {
final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getBedrockAccount();
if (account != null) {
return Text.literal("Bedrock account: " + account.getMcChain().getDisplayName());
return Text.translatable("click_to_set_bedrock_account.viafabricplus.display", account.getMcChain().getDisplayName());
} else {
return super.displayValue();
}
@ -76,7 +72,7 @@ public class BedrockSettings extends SettingGroup {
}
MinecraftClient.getInstance().execute(() -> {
if (MinecraftClient.getInstance().currentScreen instanceof ConfirmScreen confirmScreen) {
((IConfirmScreen) confirmScreen).viaFabricPlus$setMessage(Text.translatable(translationKey(step)));
((IConfirmScreen) confirmScreen).viaFabricPlus$setMessage(Text.translatable("minecraftauth_library.viafabricplus." + step.name.toLowerCase(Locale.ROOT)));
}
});
}
@ -100,28 +96,17 @@ public class BedrockSettings extends SettingGroup {
client.setScreen(prevScreen);
Thread.currentThread().interrupt();
}
}, TITLE, Text.translatable("bedrock_settings.viafabricplus.click_to_set_bedrock_account.notice"), Text.translatable("base.viafabricplus.copy_link"), Text.translatable("base.viafabricplus.cancel"))));
}, TITLE, Text.translatable("click_to_set_bedrock_account.viafabricplus.notice"), Text.translatable("base.viafabricplus.copy_link"), Text.translatable("base.viafabricplus.cancel"))));
Util.getOperatingSystem().open(msaDeviceCode.getDirectVerificationUri());
})));
RenderSystem.recordRenderCall(() -> client.setScreen(prevScreen));
} catch (Throwable e) {
Thread.currentThread().interrupt();
VFPScreen.showErrorScreen("Microsoft Bedrock Login", e, prevScreen);
VFPScreen.showErrorScreen(TITLE, e, prevScreen);
}
}
private String translationKey(final AbstractStep<?, ?> step) {
return "minecraftauth_library.viafabricplus." + switch (step) {
case StepXblDeviceToken stepXblDeviceToken -> "authenticate_xbox_live";
case StepXblSisuAuthentication stepXblSisuAuthentication -> "authenticate_sisu";
case StepMCChain stepMCChain -> "authenticate_minecraft";
case StepXblXstsToken stepXblXstsToken -> "requesting_xsts_token";
case StepPlayFabToken stepPlayFabToken -> "authenticate_playfab";
case null, default -> throw new IllegalArgumentException("Unknown step: " + step);
};
}
public static BedrockSettings global() {
return INSTANCE;
}

View File

@ -39,7 +39,7 @@ public class ChatUtil {
* @return The prefixed message
*/
public static Text prefixText(final String message) {
return prefixText(Text.literal(message));
return prefixText(Text.of(message));
}
/**

View File

@ -22,10 +22,12 @@
"base.viafabricplus.vanilla_only": "Nur Vanilla",
"base.viafabricplus.kick": "Kick",
"base.viafabricplus.cancel_and_notify": "Abbrechen und Benachrichtigen",
"base.viafabricplus.force_version_title": "Version festlegen, mit der der Server gepingt/verbunden werden soll",
"base.viafabricplus.detecting_server_version": "Serverversion wird erkannt...",
"base.viafabricplus.this_will_require_a_restart": "Dies erfordert einen Neustart!",
"base.viafabricplus.none": "Keine",
"base.viafabricplus.name": "Name",
"base.viafabricplus.password": "Password",
"base.viafabricplus.login": "Login",
"setting_group_name.viafabricplus.authentication": "Authentifizierung",
"setting_group_name.viafabricplus.visual": "Visuell",
@ -33,6 +35,12 @@
"setting_group_name.viafabricplus.general": "Allgemein",
"setting_group_name.viafabricplus.bedrock": "Bedrock",
"screen.viafabricplus.force_version": "Version setzen",
"screen.viafabricplus.report_issues": "Fehler melden",
"screen.viafabricplus.server_list": "Server-Listen",
"screen.viafabricplus.classicube_login": "Classicube Login",
"screen.viafabricplus.classicube_mfa": "Classicube MFA",
"general_settings.viafabricplus.save_selected_protocol_version": "Ausgewählte Protokollversion speichern",
"general_settings.viafabricplus.extra_information_in_debug_hud": "Zusätzliche Informationen im Debug-HUD anzeigen",
"general_settings.viafabricplus.show_classic_loading_progress": "Ladevorgang für klassische Versionen beim Verbinden mit Servern anzeigen",
@ -46,7 +54,6 @@
"general_settings.viafabricplus.emulate_inventory_actions_in_alpha_versions": "Inventaraktionen in Alpha-Versionen emulieren",
"bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Klicke, um den Account für die Bedrock-Edition einzustellen",
"bedrock_settings.viafabricplus.click_to_set_bedrock_account.notice": "Dein Browser sollte sich geöffnet haben.\nDas Schließen dieses Bildschirms unterbricht den Vorgang!",
"bedrock_settings.viafabricplus.replace_default_port": "Standardport in der Serverliste ersetzen",
"debug_settings.viafabricplus.queue_config_packets": "Konfigurationspakete in Warteschlange einreihen",
@ -91,28 +98,43 @@
"visual_settings.viafabricplus.hide_crafting_recipe_book": "Bastelrezeptbuch verstecken",
"visual_settings.viafabricplus.hide_modern_jigsaw_screen_features": "Moderne Puzzle-Funktionen ausblenden",
"force_version.viafabricplus.title": "Version festlegen, mit der der Server gepingt/verbunden werden soll",
"click_to_set_bedrock_account.viafabricplus.notice": "Dein Browser sollte sich geöffnet haben.\nDas Schließen dieses Bildschirms unterbricht den Vorgang!",
"click_to_set_bedrock_account.viafabricplus.display": "Bedrock account: %s",
"report.viafabricplus.button": "Probleme melden",
"report.viafabricplus.bug_report": "Fehler auf GitHub melden",
"report.viafabricplus.feature_request": "Funktion auf GitHub vorschlagen",
"report.viafabricplus.create_via_dump": "ViaVersion-Dump erstellen",
"report.viafabricplus.open_logs": "Log-Ordner öffnen",
"report.viafabricplus.bug_report.response": "GitHub-Problemseite geöffnet!",
"report.viafabricplus.feature_request.response": "GitHub-Problemseite geöffnet!",
"report.viafabricplus.create_via_dump.failed": "Es konnte kein Dump erstellt werden! Siehe Protokolle für weitere Informationen.",
"report.viafabricplus.create_via_dump.success": "Dump erstellt und in die Zwischenablage kopiert!",
"report.viafabricplus.open_logs.response": "Logs-Ordner geöffnet!",
"classicube.viafabricplus.account": "Du kannst hier einen Account erstellen: https://www.classicube.net/",
"classicube.viafabricplus.loading": "Lade Profilinformationen und Serverliste...",
"classicube.viafabricplus.profile": "ClassiCube Profile:",
"classicube.viafabricplus.warning": "Diese Funktion sendet API-Anfragen an die ClassiCube-API.",
"betacraft.viafabricplus.failed_to_verify_session": "ViaFabricPlus konnte deine Sitzung nicht verifizieren! Bitte logge dich in einen Account ein oder deaktiviere die BetaCraft-Authentifizierung in den ViaFabricPlus-Einstellungen.",
"betacraft.viafabricplus.loading": "Laden...",
"betacraft.viafabricplus.warning": "Durch Drücken dieser Schaltfläche werden API-Anfragen an \"betacraft.uk/serverlist\" gesendet.",
"translation.viafabricplus.updates_1_20": "Auf diesem Server ist die Funktion update_1_20 aktiviert. Dies wird nicht vollständig unterstützt und kann zu Problemen führen.",
"translation.viafabricplus.packet_error": "Beim Übersetzen eines Pakets ist ein Fehler aufgetreten! Siehe mehr Details in den Protokollen!",
"classic4j_library.viafabricplus.error.token": "Inkorrektes Token. Ist ViaFabricPlus veraltet?",
"classic4j_library.viafabricplus.error.username": "Ungültiger Benutzername.",
"classic4j_library.viafabricplus.error.password": "Ungültiges Passwort.",
"classic4j_library.viafabricplus.error.verification": "Benutzer hat seine E-Mail-Adresse noch nicht verifiziert.",
"classic4j_library.viafabricplus.error.logincode": "Mehrstufige Authentifizierung angefordert. Bitte überprüfe deine E-Mails.",
"minecraftauth_library.viafabricplus.authenticate_xbox_live": "Gerät mit Xbox Live authentifizieren...",
"minecraftauth_library.viafabricplus.authenticate_sisu": "Authentifizierung mit Xbox Live über SISU...",
"minecraftauth_library.viafabricplus.authenticate_minecraft": "Authentifizierung mit den Minecraft-Diensten...",
"minecraftauth_library.viafabricplus.requesting_xsts_token": "Anfordern des XSTS-Tokens...",
"minecraftauth_library.viafabricplus.authenticate_playfab": "Authentifizierung mit PlayFab..."
"minecraftauth_library.viafabricplus.xbldevicetoken": "Gerät mit Xbox Live authentifizieren...",
"minecraftauth_library.viafabricplus.xblsisuauthentication": "Authentifizierung mit Xbox Live über SISU...",
"minecraftauth_library.viafabricplus.mcchain": "Authentifizierung mit den Minecraft-Diensten...",
"minecraftauth_library.viafabricplus.xblxststoken": "Anfordern des XSTS-Tokens...",
"minecraftauth_library.viafabricplus.playfabtoken": "Authentifizierung mit PlayFab..."
}

View File

@ -22,10 +22,12 @@
"base.viafabricplus.vanilla_only": "Vanilla only",
"base.viafabricplus.kick": "Kick",
"base.viafabricplus.cancel_and_notify": "Cancel and notify",
"base.viafabricplus.force_version_title": "Please select the version with which the server should be pinged/connected",
"base.viafabricplus.detecting_server_version": "Detecting server version...",
"base.viafabricplus.this_will_require_a_restart": "This will require a restart!",
"base.viafabricplus.none": "None",
"base.viafabricplus.name": "Name",
"base.viafabricplus.password": "Password",
"base.viafabricplus.login": "Login",
"setting_group_name.viafabricplus.authentication": "Authentication",
"setting_group_name.viafabricplus.visual": "Visual",
@ -33,6 +35,12 @@
"setting_group_name.viafabricplus.general": "General",
"setting_group_name.viafabricplus.bedrock": "Bedrock",
"screen.viafabricplus.force_version": "Force Version",
"screen.viafabricplus.report_issues": "Report issues",
"screen.viafabricplus.server_list": "Server Lists",
"screen.viafabricplus.classicube_login": "Classicube Login",
"screen.viafabricplus.classicube_mfa": "Classicube MFA",
"general_settings.viafabricplus.save_selected_protocol_version": "Save selected protocol version",
"general_settings.viafabricplus.extra_information_in_debug_hud": "Show extra information in Debug HUD",
"general_settings.viafabricplus.show_classic_loading_progress": "Show classic loading progress in connect screen",
@ -46,7 +54,6 @@
"general_settings.viafabricplus.emulate_inventory_actions_in_alpha_versions": "Emulate inventory actions in alpha versions",
"bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click to set account for Bedrock Edition",
"bedrock_settings.viafabricplus.click_to_set_bedrock_account.notice": "Your browser should have opened.\nClosing this screen will cancel the process!",
"bedrock_settings.viafabricplus.replace_default_port": "Replace default port in server list",
"debug_settings.viafabricplus.queue_config_packets": "Queue config packets",
@ -92,28 +99,43 @@
"visual_settings.viafabricplus.hide_crafting_recipe_book": "Hide crafting recipe book",
"visual_settings.viafabricplus.hide_modern_jigsaw_screen_features": "Hide modern Jigsaw screen features",
"force_version.viafabricplus.title": "Please select the version with which the server should be pinged/connected",
"click_to_set_bedrock_account.viafabricplus.notice": "Your browser should have opened.\nClosing this screen will cancel the process!",
"click_to_set_bedrock_account.viafabricplus.display": "Bedrock account: %s",
"report.viafabricplus.button": "Report issues",
"report.viafabricplus.bug_report": "Report a bug on GitHub",
"report.viafabricplus.feature_request": "Request a feature on GitHub",
"report.viafabricplus.create_via_dump": "Create a ViaVersion dump",
"report.viafabricplus.open_logs": "Open the logs folder",
"report.viafabricplus.bug_report.response": "Opened GitHub issue page!",
"report.viafabricplus.feature_request.response": "Opened GitHub issue page!",
"report.viafabricplus.create_via_dump.failed": "Failed to create a dump! See logs for more information.",
"report.viafabricplus.create_via_dump.success": "Dump created and copied to clipboard!",
"report.viafabricplus.open_logs.response": "Logs folder opened!",
"classicube.viafabricplus.account": "You can create an account here: https://www.classicube.net/",
"classicube.viafabricplus.loading": "Loading profile information and server list...",
"classicube.viafabricplus.profile": "ClassiCube Profile:",
"classicube.viafabricplus.warning": "This feature will send API requests to the ClassiCube API.",
"betacraft.viafabricplus.failed_to_verify_session": "ViaFabricPlus couldn't verify your session! Please log in to an account or disable the BetaCraft authentication in the ViaFabricPlus Settings",
"betacraft.viafabricplus.loading": "Loading...",
"betacraft.viafabricplus.warning": "Pressing this button will send API requests to \"betacraft.uk/serverlist\".",
"translation.viafabricplus.updates_1_20": "This server has the update_1_20 features enabled. This is not fully supported and may cause issues.",
"translation.viafabricplus.packet_error": "An error occurred while translating a packet! See more details in the logs!",
"classic4j_library.viafabricplus.error.token": "Incorrect token. Is your ViaFabricPlus out of date?",
"classic4j_library.viafabricplus.error.username": "Invalid username.",
"classic4j_library.viafabricplus.error.password": "Invalid password.",
"classic4j_library.viafabricplus.error.verification": "User hasn't verified their email address yet.",
"classic4j_library.viafabricplus.error.logincode": "Multi-factor authentication requested. Please check your email.",
"minecraftauth_library.viafabricplus.authenticate_xbox_live": "Authenticating device with Xbox Live...",
"minecraftauth_library.viafabricplus.authenticate_sisu": "Authenticating with Xbox Live using SISU...",
"minecraftauth_library.viafabricplus.authenticate_minecraft": "Authenticating with Minecraft Services...",
"minecraftauth_library.viafabricplus.requesting_xsts_token": "Requesting XSTS Token...",
"minecraftauth_library.viafabricplus.authenticate_playfab": "Authenticating with PlayFab..."
"minecraftauth_library.viafabricplus.xbldevicetoken": "Authenticating device with Xbox Live...",
"minecraftauth_library.viafabricplus.xblsisuauthentication": "Authenticating with Xbox Live using SISU...",
"minecraftauth_library.viafabricplus.mcchain": "Authenticating with Minecraft Services...",
"minecraftauth_library.viafabricplus.xblxststoken": "Requesting XSTS Token...",
"minecraftauth_library.viafabricplus.playfabtoken": "Authenticating with PlayFab..."
}