mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-26 18:30:52 +01:00
Internationalization
This commit is contained in:
parent
630c43b07a
commit
ddb37d5fad
@ -22,6 +22,8 @@ import javafx.stage.Stage;
|
|||||||
import javafx.stage.StageStyle;
|
import javafx.stage.StageStyle;
|
||||||
import sun.misc.Cache;
|
import sun.misc.Cache;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class GEarth extends Application {
|
public class GEarth extends Application {
|
||||||
@ -30,6 +32,7 @@ public class GEarth extends Application {
|
|||||||
public static String version = "1.5.2";
|
public static String version = "1.5.2";
|
||||||
public static String gitApi = "https://api.github.com/repos/sirjonasxx/G-Earth/releases/latest";
|
public static String gitApi = "https://api.github.com/repos/sirjonasxx/G-Earth/releases/latest";
|
||||||
public static ObservableObject<Theme> observableTheme;
|
public static ObservableObject<Theme> observableTheme;
|
||||||
|
public static ResourceBundle translation;
|
||||||
|
|
||||||
private Stage stage;
|
private Stage stage;
|
||||||
private GEarthController controller;
|
private GEarthController controller;
|
||||||
@ -47,7 +50,9 @@ public class GEarth extends Application {
|
|||||||
main = this;
|
main = this;
|
||||||
stage = primaryStage;
|
stage = primaryStage;
|
||||||
|
|
||||||
FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/G-Earth.fxml"));
|
translation = ResourceBundle.getBundle("gearth.ui.translations.messages", new Locale("nl"));
|
||||||
|
|
||||||
|
FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/G-Earth.fxml"), translation);
|
||||||
Parent root = loader.load();
|
Parent root = loader.load();
|
||||||
controller = loader.getController();
|
controller = loader.getController();
|
||||||
controller.setStage(primaryStage);
|
controller.setStage(primaryStage);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.misc;
|
package gearth.misc;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.ui.titlebar.TitleBarController;
|
import gearth.ui.titlebar.TitleBarController;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.scene.control.Alert;
|
import javafx.scene.control.Alert;
|
||||||
@ -47,7 +48,7 @@ public class AdminValidator {
|
|||||||
if (!AdminValidator.isAdmin()) {
|
if (!AdminValidator.isAdmin()) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.WARNING, "", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.WARNING, "", ButtonType.OK);
|
||||||
alert.getDialogPane().setContent(new Label("G-Earth needs admin privileges in order to work on Flash,\nplease restart G-Earth with admin permissions unless\nyou're using Unity"));
|
alert.getDialogPane().setContent(new Label(GEarth.translation.getString("alert.adminvalidator.content").replaceAll("\\\\n", System.lineSeparator())));
|
||||||
try {
|
try {
|
||||||
TitleBarController.create(alert).showAlert();
|
TitleBarController.create(alert).showAlert();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -37,10 +37,10 @@ public class UpdateChecker {
|
|||||||
String body = (String)object.get("body");
|
String body = (String)object.get("body");
|
||||||
boolean isForcedUpdate = body.contains("(!)");
|
boolean isForcedUpdate = body.contains("(!)");
|
||||||
|
|
||||||
Alert alert = new Alert(isForcedUpdate ? Alert.AlertType.ERROR : Alert.AlertType.INFORMATION, "G-Earth is outdated!", ButtonType.OK);
|
Alert alert = new Alert(isForcedUpdate ? Alert.AlertType.ERROR : Alert.AlertType.INFORMATION, GEarth.translation.getString("alert.outdated.title"), ButtonType.OK);
|
||||||
|
|
||||||
FlowPane fp = new FlowPane();
|
FlowPane fp = new FlowPane();
|
||||||
Label lbl = new Label("A new version of G-Earth has been found ("+gitv+")" + System.lineSeparator()+ System.lineSeparator() + "Update to the latest version:");
|
Label lbl = new Label(GEarth.translation.getString("alert.outdated.content.newversion") + " ("+gitv+")" + System.lineSeparator()+ System.lineSeparator() + GEarth.translation.getString("alert.outdated.content.update") + ":");
|
||||||
Hyperlink link = new Hyperlink("https://github.com/sirjonasxx/G-Earth/releases");
|
Hyperlink link = new Hyperlink("https://github.com/sirjonasxx/G-Earth/releases");
|
||||||
fp.getChildren().addAll( lbl, link);
|
fp.getChildren().addAll( lbl, link);
|
||||||
link.setOnAction(event -> {
|
link.setOnAction(event -> {
|
||||||
@ -51,7 +51,7 @@ public class UpdateChecker {
|
|||||||
|
|
||||||
|
|
||||||
WebView webView = new WebView();
|
WebView webView = new WebView();
|
||||||
webView.getEngine().loadContent("<html>A new version of G-Earth has been found ("+gitv+")<br><br>Update to the latest version:<br><a href=\"https://github.com/sirjonasxx/G-Earth/releases\">https://github.com/sirjonasxx/G-Earth/releases</a></html>");
|
webView.getEngine().loadContent(String.format("<html>%s (%s)<br><br>%s:<br><a href=\"https://github.com/sirjonasxx/G-Earth/releases\">https://github.com/sirjonasxx/G-Earth/releases</a></html>", GEarth.translation.getString("alert.outdated.content.newversion"), gitv, GEarth.translation.getString("alert.outdated.content.update")));
|
||||||
webView.setPrefSize(500, 200);
|
webView.setPrefSize(500, 200);
|
||||||
|
|
||||||
alert.setResizable(false);
|
alert.setResizable(false);
|
||||||
|
@ -108,9 +108,7 @@ public class ProxyProviderFactory {
|
|||||||
|
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR, "", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.ERROR, "", ButtonType.OK);
|
||||||
alert.getDialogPane().getChildren().add(new Label("G-Earth is already connected to this hotel.\n" +
|
alert.getDialogPane().getChildren().add(new Label(GEarth.translation.getString("alert.alreadyconnected.content").replaceAll("\\\\n", System.lineSeparator())));
|
||||||
"Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\n" +
|
|
||||||
"You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]"));
|
|
||||||
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
|
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
|
||||||
alert.setResizable(false);
|
alert.setResizable(false);
|
||||||
try {
|
try {
|
||||||
|
@ -126,7 +126,7 @@ public abstract class FlashProxyProvider implements ProxyProvider {
|
|||||||
protected void showInvalidConnectionError() {
|
protected void showInvalidConnectionError() {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR, "", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.ERROR, "", ButtonType.OK);
|
||||||
alert.getDialogPane().getChildren().add(new Label("You entered invalid connection information, G-Earth could not connect"));
|
alert.getDialogPane().getChildren().add(new Label(GEarth.translation.getString("alert.invalidconnection.content")));
|
||||||
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
|
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
|
||||||
alert.setResizable(false);
|
alert.setResizable(false);
|
||||||
try {
|
try {
|
||||||
|
@ -53,14 +53,12 @@ public class NitroHttpProxy {
|
|||||||
|
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, ADMIN_WARNING_KEY,
|
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, ADMIN_WARNING_KEY,
|
||||||
"Root certificate installation", null,
|
GEarth.translation.getString("alert.rootcertificate.title"), null,
|
||||||
"", "Remember my choice",
|
"", GEarth.translation.getString("alert.rootcertificate.remember"),
|
||||||
ButtonType.YES, ButtonType.NO
|
ButtonType.YES, ButtonType.NO
|
||||||
);
|
);
|
||||||
|
|
||||||
alert.getDialogPane().setContent(new Label("G-Earth detected that you do not have the root certificate authority installed.\n" +
|
alert.getDialogPane().setContent(new Label(GEarth.translation.getString("alert.rootcertificate.content").replaceAll("\\\\n", System.lineSeparator())));
|
||||||
"This is required for Nitro to work, do you want to continue?\n" +
|
|
||||||
"G-Earth will ask you for Administrator permission if you do so."));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
shouldInstall.set(TitleBarController.create(alert).showAlertAndWait()
|
shouldInstall.set(TitleBarController.create(alert).showAlertAndWait()
|
||||||
|
@ -72,10 +72,10 @@ public class Rc4Obtainer {
|
|||||||
System.err.println("COULD NOT FIND RC4 TABLE");
|
System.err.println("COULD NOT FIND RC4 TABLE");
|
||||||
|
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.WARNING, "Something went wrong!", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.WARNING, GEarth.translation.getString("alert.somethingwentwrong.title"), ButtonType.OK);
|
||||||
|
|
||||||
FlowPane fp = new FlowPane();
|
FlowPane fp = new FlowPane();
|
||||||
Label lbl = new Label("G-Earth has experienced an issue" + System.lineSeparator() + System.lineSeparator() + "Head over to our Troubleshooting page to solve the problem:");
|
Label lbl = new Label(GEarth.translation.getString("alert.somethingwentwrong.content").replaceAll("\\\\n", System.lineSeparator()));
|
||||||
Hyperlink link = new Hyperlink("https://github.com/sirjonasxx/G-Earth/wiki/Troubleshooting");
|
Hyperlink link = new Hyperlink("https://github.com/sirjonasxx/G-Earth/wiki/Troubleshooting");
|
||||||
fp.getChildren().addAll(lbl, link);
|
fp.getChildren().addAll(lbl, link);
|
||||||
link.setOnAction(event -> {
|
link.setOnAction(event -> {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.extension_handler.extensions.implementations.network.authentication;
|
package gearth.services.extension_handler.extensions.implementations.network.authentication;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.ConfirmationDialog;
|
import gearth.misc.ConfirmationDialog;
|
||||||
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtension;
|
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtension;
|
||||||
import gearth.ui.titlebar.TitleBarController;
|
import gearth.ui.titlebar.TitleBarController;
|
||||||
@ -68,13 +69,12 @@ public class Authenticator {
|
|||||||
boolean[] done = {false};
|
boolean[] done = {false};
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, connectExtensionKey
|
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, connectExtensionKey
|
||||||
,"Confirmation Dialog", null,
|
, GEarth.translation.getString("alert.confirmation.windowtitle"), null,
|
||||||
"", "Remember my choice",
|
"", GEarth.translation.getString("alert.confirmation.button.remember"),
|
||||||
ButtonType.YES, ButtonType.NO
|
ButtonType.YES, ButtonType.NO
|
||||||
);
|
);
|
||||||
|
|
||||||
alert.getDialogPane().setContent(new Label("Extension \""+extension.getTitle()+"\" tries to connect but isn't known to G-Earth,\n" +
|
alert.getDialogPane().setContent(new Label(String.format(GEarth.translation.getString("alert.extconnection.content"), extension.getTitle()).replaceAll("\\\\n", System.lineSeparator())));
|
||||||
"accept this connection?"));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!(TitleBarController.create(alert).showAlertAndWait()
|
if (!(TitleBarController.create(alert).showAlertAndWait()
|
||||||
|
@ -170,13 +170,11 @@ public class GPythonShell {
|
|||||||
|
|
||||||
private void showError() {
|
private void showError() {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR, "G-Python error", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.ERROR, GEarth.translation.getString("alert.gpythonerror.title"), ButtonType.OK);
|
||||||
alert.setTitle("G-Python error");
|
alert.setTitle(GEarth.translation.getString("alert.gpythonerror.title"));
|
||||||
|
|
||||||
FlowPane fp = new FlowPane();
|
FlowPane fp = new FlowPane();
|
||||||
Label lbl = new Label("Something went wrong launching the G-Python shell," +
|
Label lbl = new Label(GEarth.translation.getString("alert.gpythonerror.content").replaceAll("\\\\n", System.lineSeparator()));
|
||||||
System.lineSeparator() + "are you sure you followed the installation guide correctly?" +
|
|
||||||
System.lineSeparator() + System.lineSeparator() + "More information here:");
|
|
||||||
Hyperlink link = new Hyperlink(ExtraController.INFO_URL_GPYTHON);
|
Hyperlink link = new Hyperlink(ExtraController.INFO_URL_GPYTHON);
|
||||||
fp.getChildren().addAll(lbl, link);
|
fp.getChildren().addAll(lbl, link);
|
||||||
link.setOnAction(event -> {
|
link.setOnAction(event -> {
|
||||||
|
@ -107,6 +107,7 @@ public class GExtensionStoreController implements Initializable {
|
|||||||
});
|
});
|
||||||
|
|
||||||
webView.getEngine().load(GExtensionStoreController.class.getResource("webview/index.html").toString());
|
webView.getEngine().load(GExtensionStoreController.class.getResource("webview/index.html").toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application;
|
package gearth.services.internal_extensions.extensionstore.application;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -43,19 +44,19 @@ public class WebUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String elapsedTime(long time) {
|
public static String elapsedTime(long time) {
|
||||||
if (time < 60) return time + (time == 1 ? " second" : " seconds");
|
if (time < 60) return time + " " + GEarth.translation.getString("ext.store.elapsedtime.second." + (time == 1 ? "single": "multiple"));
|
||||||
time = time/60;
|
time = time/60;
|
||||||
if (time < 60) return time + (time == 1 ? " minute" : " minutes");
|
if (time < 60) return time + " " + GEarth.translation.getString("ext.store.elapsedtime.minute." + (time == 1 ? "single": "multiple"));
|
||||||
time = time/60;
|
time = time/60;
|
||||||
if (time < 24) return time + (time == 1 ? " hour" : " hours");
|
if (time < 24) return time + " " + GEarth.translation.getString("ext.store.elapsedtime.hour." + (time == 1 ? "single": "multiple"));
|
||||||
long days = time/24;
|
long days = time/24;
|
||||||
if (days < 7) return days + (days == 1 ? " day" : " days");
|
if (days < 7) return days + " " + GEarth.translation.getString("ext.store.elapsedtime.day." + (days == 1 ? "single": "multiple"));
|
||||||
long weeks = days/7;
|
long weeks = days/7;
|
||||||
if (weeks < 6) return weeks + (weeks == 1 ? " week" : " weeks");
|
if (weeks < 6) return weeks + " " + GEarth.translation.getString("ext.store.elapsedtime.week." + (weeks == 1 ? "single": "multiple"));
|
||||||
long months = days/31;
|
long months = days/31;
|
||||||
if (months < 12) return months + (months == 1 ? " month" : " months");
|
if (months < 12) return months + " " + GEarth.translation.getString("ext.store.elapsedtime.month." + (months == 1 ? "single": "multiple"));
|
||||||
long years = days/365;
|
long years = days/365;
|
||||||
return years + (years == 1 ? " year" : " years");
|
return years + " " + GEarth.translation.getString("ext.store.elapsedtime.year." + (years == 1 ? "single": "multiple"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String escapeMessage(String text) {
|
public static String escapeMessage(String text) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities;
|
package gearth.services.internal_extensions.extensionstore.application.entities;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.protocol.HMessage;
|
import gearth.protocol.HMessage;
|
||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
@ -56,12 +57,12 @@ public class StoreExtensionItem implements ContentItem {
|
|||||||
|
|
||||||
.append("<div class=\"overview_item_info\">")
|
.append("<div class=\"overview_item_info\">")
|
||||||
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"oii_name clickable\">").append(WebUtils.escapeMessage(storeExtension.getTitle())).append("</div>")
|
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"oii_name clickable\">").append(WebUtils.escapeMessage(storeExtension.getTitle())).append("</div>")
|
||||||
.append("<div class=\"oii_desc\">By ").append(storeExtension.getAuthors().get(0).getName()).append(", last updated ").append(WebUtils.elapsedSince(storeExtension.getUpdateDate())).append(" ago</div>")
|
.append("<div class=\"oii_desc\">").append(String.format(GEarth.translation.getString("ext.store.extension.madeby"), storeExtension.getAuthors().get(0).getName())).append(", ").append(String.format(GEarth.translation.getString("ext.store.extension.lastupdated"), WebUtils.elapsedSince(storeExtension.getUpdateDate()))).append("</div>")
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"overview_item_msgs clickable\">")
|
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"overview_item_msgs clickable\">")
|
||||||
.append("<div class=\"oim_top\">").append("Version: ").append(displayVersion()).append("</div>")
|
.append("<div class=\"oim_top\">").append(GEarth.translation.getString("ext.store.extension.version")).append(": ").append(displayVersion()).append("</div>")
|
||||||
.append("<div class=\"oim_bottom\">").append("Rating: ").append(storeExtension.getRating()).append("</div>")
|
.append("<div class=\"oim_bottom\">").append(GEarth.translation.getString("ext.store.extension.rating")).append(": ").append(storeExtension.getRating()).append("</div>")
|
||||||
// .append("<div class=\"oim_bottom\">").append(storeExtension.getFramework().getFramework().getName().replace("Native", "")).append(" </div>")
|
// .append("<div class=\"oim_bottom\">").append(storeExtension.getFramework().getFramework().getName().replace("Native", "")).append(" </div>")
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.categories;
|
package gearth.services.internal_extensions.extensionstore.application.entities.categories;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
||||||
@ -58,7 +59,7 @@ public class CategoryItem implements ContentItem {
|
|||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"overview_item_msgs clickable\">")
|
.append("<div onclick=\"").append(id).append(".onClick()\" class=\"overview_item_msgs clickable\">")
|
||||||
.append("<div class=\"oim_top\">").append(releasesCount).append(" releases").append("</div>")
|
.append("<div class=\"oim_top\">").append(releasesCount).append(" ").append(GEarth.translation.getString("ext.store.extension.author.releases")).append("</div>")
|
||||||
// .append("<div class=\"oim_bottom\">").append(storeExtension.getFramework().getFramework().getName().replace("Native", "")).append(" </div>")
|
// .append("<div class=\"oim_bottom\">").append(storeExtension.getFramework().getFramework().getName().replace("Native", "")).append(" </div>")
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.categories;
|
package gearth.services.internal_extensions.extensionstore.application.entities.categories;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -57,17 +58,17 @@ public class CategoryOverview extends HOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Categories";
|
return GEarth.translation.getString("ext.store.categories.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Explore the different kinds of extensions G-Earth has to offer";
|
return GEarth.translation.getString("ext.store.categories.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Categories";
|
return GEarth.translation.getString("ext.store.categories.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.extensiondetails;
|
package gearth.services.internal_extensions.extensionstore.application.entities.extensiondetails;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
||||||
@ -45,32 +46,32 @@ public class StoreExtensionDetailsItem implements ContentItem {
|
|||||||
|
|
||||||
contentBuilder
|
contentBuilder
|
||||||
.append(String.format("*%s*", storeExtension.getTitle())).append(" - v").append(storeExtension.getVersion()).append("\n\n")
|
.append(String.format("*%s*", storeExtension.getTitle())).append(" - v").append(storeExtension.getVersion()).append("\n\n")
|
||||||
.append("*Description*\n").append(descriptionQuoted).append("\n \n")
|
.append("*").append(GEarth.translation.getString("ext.store.extension.details.description")).append(":*\n").append(descriptionQuoted).append("\n \n")
|
||||||
.append("*Author(s):* ").append(storeExtension.getAuthors().stream().map(StoreExtension.Author::getName).collect(Collectors.joining(", "))).append("\n\n")
|
.append("*").append(GEarth.translation.getString("ext.store.extension.details.authors")).append(":* ").append(storeExtension.getAuthors().stream().map(StoreExtension.Author::getName).collect(Collectors.joining(", "))).append("\n\n")
|
||||||
.append("*Categories:* ").append(storeExtension.getCategories().stream().map(ExtCategory::getName).collect(Collectors.joining(", "))).append("\n\n");
|
.append("*").append(GEarth.translation.getString("ext.store.extension.details.categories")).append(":* ").append(storeExtension.getCategories().stream().map(ExtCategory::getName).collect(Collectors.joining(", "))).append("\n\n");
|
||||||
|
|
||||||
contentBuilder.append("*Technical information*").append("\n");
|
contentBuilder.append("*").append(GEarth.translation.getString("ext.store.extension.details.technical_information")).append("*").append("\n");
|
||||||
|
|
||||||
if(storeExtension.getReleases() != null)
|
if(storeExtension.getReleases() != null)
|
||||||
contentBuilder.append("> Releases: --url:Click Here-").append(storeExtension.getReleases()).append("\n");
|
contentBuilder.append("> ").append(GEarth.translation.getString("ext.store.extension.details.releases")).append(": --url:").append(GEarth.translation.getString("ext.store.extension.details.click_here")).append("-").append(storeExtension.getReleases()).append("\n");
|
||||||
|
|
||||||
contentBuilder.append("> Language: ").append(storeExtension.getLanguage()).append("\n")
|
contentBuilder.append("> ").append(GEarth.translation.getString("ext.store.extension.details.language")).append(": ").append(storeExtension.getLanguage()).append("\n")
|
||||||
.append("> Source: --url:Click Here-").append(storeExtension.getSource()).append("\n")
|
.append("> ").append(GEarth.translation.getString("ext.store.extension.details.source")).append(": --url:").append(GEarth.translation.getString("ext.store.extension.details.click_here")).append("-").append(storeExtension.getSource()).append("\n")
|
||||||
.append("> Framework: ").append(storeExtension.getFramework().getFramework().getName()).append(" - v").append(storeExtension.getFramework().getVersion()).append("\n")
|
.append("> ").append(GEarth.translation.getString("ext.store.extension.details.framework")).append(": ").append(storeExtension.getFramework().getFramework().getName()).append(" - v").append(storeExtension.getFramework().getVersion()).append("\n")
|
||||||
.append("> Systems: ").append(String.join(", ", storeExtension.getCompatibility().getSystems())).append("\n \n");
|
.append("> ").append(GEarth.translation.getString("ext.store.extension.details.systems")).append(": ").append(String.join(", ", storeExtension.getCompatibility().getSystems())).append("\n \n");
|
||||||
|
|
||||||
contentBuilder.append("*Compatible clients:* ").append(String.join(", ", storeExtension.getCompatibility().getClients())).append("\n\n");
|
contentBuilder.append("*").append(GEarth.translation.getString("ext.store.extension.details.clients")).append(":* ").append(String.join(", ", storeExtension.getCompatibility().getClients())).append("\n\n");
|
||||||
|
|
||||||
if (storeExtension.getFramework().getFramework().isInstallationRequired()) {
|
if (storeExtension.getFramework().getFramework().isInstallationRequired()) {
|
||||||
contentBuilder.append("Warning: the framework requires --url:additional installations-")
|
contentBuilder.append(GEarth.translation.getString("ext.store.extension.warning.requirement"))
|
||||||
.append(storeExtension.getFramework().getFramework().getInstallationInstructions()).append(" !\n\n");
|
.append(storeExtension.getFramework().getFramework().getInstallationInstructions()).append(" !\n\n");
|
||||||
}
|
}
|
||||||
if (!storeExtension.isStable()) {
|
if (!storeExtension.isStable()) {
|
||||||
contentBuilder.append("Warning: this extension has been marked unstable!\n\n");
|
contentBuilder.append(GEarth.translation.getString("ext.store.extension.warning.unstable")).append("\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
contentBuilder.append("--startdiv--")
|
contentBuilder.append("--startdiv--")
|
||||||
.append("\n*Screenshot: *").append("\n")
|
.append("\n*").append(GEarth.translation.getString("ext.store.extension.details.screenshot")).append(": *").append("\n")
|
||||||
.append("--img:").append(gExtensionStore.getRepository().getResourceUrl("store", "extensions", storeExtension.getTitle(), "screenshot.png"))
|
.append("--img:").append(gExtensionStore.getRepository().getResourceUrl("store", "extensions", storeExtension.getTitle(), "screenshot.png"))
|
||||||
.append(" --enddiv--");
|
.append(" --enddiv--");
|
||||||
|
|
||||||
@ -151,8 +152,8 @@ public class StoreExtensionDetailsItem implements ContentItem {
|
|||||||
.append("<div class=\"comment_body comment_open\">")
|
.append("<div class=\"comment_body comment_open\">")
|
||||||
.append("<div class=\"cb_author\">")
|
.append("<div class=\"cb_author\">")
|
||||||
.append("<div class=\"cba_name\">").append(WebUtils.escapeMessage(mainAuthor.getName())).append("</div>")
|
.append("<div class=\"cba_name\">").append(WebUtils.escapeMessage(mainAuthor.getName())).append("</div>")
|
||||||
.append("<div class=\"cba_text\">").append(mainAuthor.getReputation()).append(" reputation</div>")
|
.append("<div class=\"cba_text\">").append(mainAuthor.getReputation()).append(" ").append(GEarth.translation.getString("ext.store.extension.author.reputation")).append("</div>")
|
||||||
.append("<div class=\"cba_text\">").append(mainAuthor.getExtensionsCount()).append(" releases</div>")
|
.append("<div class=\"cba_text\">").append(mainAuthor.getExtensionsCount()).append(" ").append(GEarth.translation.getString("ext.store.extension.author.releases")).append("</div>")
|
||||||
.append("<div class=\"cba_look\"><img src=\"").append(avatarLook).append("\" alt=\"\"></div>") // todo look
|
.append("<div class=\"cba_look\"><img src=\"").append(avatarLook).append("\" alt=\"\"></div>") // todo look
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
.append("<div class=\"cb_content\">").append(contentsInHtml()).append("</div>")
|
.append("<div class=\"cb_content\">").append(contentsInHtml()).append("</div>")
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.extensiondetails;
|
package gearth.services.internal_extensions.extensionstore.application.entities.extensiondetails;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtensionsProducer;
|
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtensionsProducer;
|
||||||
import gearth.services.extension_handler.extensions.implementations.network.executer.NormalExtensionRunner;
|
import gearth.services.extension_handler.extensions.implementations.network.executer.NormalExtensionRunner;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
@ -62,7 +63,7 @@ public class StoreExtensionDetailsOverview extends HOverview {
|
|||||||
public String buttonText() {
|
public String buttonText() {
|
||||||
int mode = mode();
|
int mode = mode();
|
||||||
// return mode == 2 ? "Update" : "Install";
|
// return mode == 2 ? "Update" : "Install";
|
||||||
return mode == 0 ? "Install" : (mode == 1 ? "Installed" : "Update");
|
return GEarth.translation.getString("ext.store.button." + (mode == 0 ? "install" : (mode == 1 ? "installed" : "update")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -91,23 +92,23 @@ public class StoreExtensionDetailsOverview extends HOverview {
|
|||||||
|
|
||||||
private void awaitPopup(String mode) {
|
private void awaitPopup(String mode) {
|
||||||
popup(Alert.AlertType.WARNING,
|
popup(Alert.AlertType.WARNING,
|
||||||
String.format("%s extension", mode),
|
GEarth.translation.getString(String.format("ext.store.extension.status.start.%s", mode)),
|
||||||
String.format("%s extension [%s]", mode, extension.getTitle()),
|
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.start.%s", mode)), extension.getTitle()),
|
||||||
String.format("Press \"OK\" and wait while the extension is being %sed", mode.toLowerCase()));
|
GEarth.translation.getString(String.format("ext.store.extension.status.start.%s.message", mode)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void successPopup(String mode) {
|
private void successPopup(String mode) {
|
||||||
popup(Alert.AlertType.INFORMATION,
|
popup(Alert.AlertType.INFORMATION,
|
||||||
String.format("%s completed", mode),
|
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)),
|
||||||
String.format("%s completed [%s]", mode, extension.getTitle()),
|
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)), extension.getTitle()),
|
||||||
String.format("Extension %s completed successfully", mode.toLowerCase()));
|
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s.message", mode)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void errorPopup(String mode, String error) {
|
private void errorPopup(String mode, String error) {
|
||||||
popup(Alert.AlertType.ERROR,
|
popup(Alert.AlertType.ERROR,
|
||||||
String.format("%s failed", mode),
|
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)),
|
||||||
String.format("%s failed [%s]", mode, extension.getTitle()),
|
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)), extension.getTitle()),
|
||||||
String.format("%s failed with the following message: %s", mode, error));
|
String.format("%s: %s", GEarth.translation.getString(String.format("ext.store.extension.status.success.%s.message", mode)), error));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void popup(Alert.AlertType alertType, String title, String header, String context) {
|
private void popup(Alert.AlertType alertType, String title, String header, String context) {
|
||||||
@ -128,7 +129,7 @@ public class StoreExtensionDetailsOverview extends HOverview {
|
|||||||
int mode = mode();
|
int mode = mode();
|
||||||
if (mode == 1) return;
|
if (mode == 1) return;
|
||||||
|
|
||||||
String modeString = mode() == 0 ? "Install" : "Update";
|
String modeString = mode() == 0 ? "install" : "update";
|
||||||
HOverview selff = this;
|
HOverview selff = this;
|
||||||
|
|
||||||
StoreExtensionTools.InstallExtListener listener = new StoreExtensionTools.InstallExtListener() {
|
StoreExtensionTools.InstallExtListener listener = new StoreExtensionTools.InstallExtListener() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.installed;
|
package gearth.services.internal_extensions.extensionstore.application.entities.installed;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -30,7 +31,7 @@ public class InstalledOverview extends HOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String buttonText() {
|
public String buttonText() {
|
||||||
return "Open folder";
|
return GEarth.translation.getString("ext.store.overview.folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -75,17 +76,17 @@ public class InstalledOverview extends HOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Installed Extensions";
|
return GEarth.translation.getString("ext.store.overview.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Extensions that are already installed into G-Earth";
|
return GEarth.translation.getString("ext.store.overview.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Installed extensions";
|
return GEarth.translation.getString("ext.store.overview.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.installed;
|
package gearth.services.internal_extensions.extensionstore.application.entities.installed;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
||||||
@ -55,11 +56,11 @@ public class StoreExtensionInstalledItem extends StoreExtensionItem {
|
|||||||
|
|
||||||
.append("<div class=\"overview_item_info\">")
|
.append("<div class=\"overview_item_info\">")
|
||||||
.append("<div class=\"oii_name\">").append(WebUtils.escapeMessage(installedExtension.getName())).append("</div>")
|
.append("<div class=\"oii_name\">").append(WebUtils.escapeMessage(installedExtension.getName())).append("</div>")
|
||||||
.append("<div class=\"oii_desc\">Not found in G-ExtensionStore</div>")
|
.append("<div class=\"oii_desc\">").append(GEarth.translation.getString("ext.store.extension.notinstore")).append("</div>")
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
.append("<div class=\"overview_item_msgs\">")
|
.append("<div class=\"overview_item_msgs\">")
|
||||||
.append("<div class=\"oim_top\">").append("Version: ").append(displayVersion()).append("</div>")
|
.append("<div class=\"oim_top\">").append(GEarth.translation.getString("ext.store.extension.version")).append(": ").append(displayVersion()).append("</div>")
|
||||||
.append("<div class=\"oim_bottom\"></div>")
|
.append("<div class=\"oim_bottom\"></div>")
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.OSValidator;
|
import gearth.misc.OSValidator;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -32,17 +33,17 @@ public class ByDateOverview extends QueriedExtensionOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "New Releases";
|
return GEarth.translation.getString("ext.store.search.ordering.bydate.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Extensions that were recently added to the G-ExtensionStore";
|
return GEarth.translation.getString("ext.store.search.ordering.bydate.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "New Releases";
|
return GEarth.translation.getString("ext.store.search.ordering.bydate.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.OSValidator;
|
import gearth.misc.OSValidator;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -32,17 +33,17 @@ public class ByRatingOverview extends QueriedExtensionOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Popular Extensions";
|
return GEarth.translation.getString("ext.store.search.ordering.byrating.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Extensions sorted by rating";
|
return GEarth.translation.getString("ext.store.search.ordering.byrating.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Popular Extensions";
|
return GEarth.translation.getString("ext.store.search.ordering.byrating.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.OSValidator;
|
import gearth.misc.OSValidator;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
|
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
|
||||||
@ -31,17 +32,17 @@ public class ByUpdateOverview extends QueriedExtensionOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Recently Updated";
|
return GEarth.translation.getString("ext.store.search.ordering.byupdate.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Extensions that were recently updated";
|
return GEarth.translation.getString("ext.store.search.ordering.byupdate.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Recently Updated";
|
return GEarth.translation.getString("ext.store.search.ordering.byupdate.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.OSValidator;
|
import gearth.misc.OSValidator;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -47,7 +48,7 @@ public class CategorizedOverview extends QueriedExtensionOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Category: " + category.getName();
|
return GEarth.translation.getString("ext.store.category") + ": " + category.getName();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.OSValidator;
|
import gearth.misc.OSValidator;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
|
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
|
||||||
@ -48,17 +49,17 @@ public class SearchedQueryOverview extends QueriedExtensionOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Search";
|
return GEarth.translation.getString("ext.store.search.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Find the extension that fits your needs";
|
return GEarth.translation.getString("ext.store.search.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Search results";
|
return GEarth.translation.getString("ext.store.search.results");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.search;
|
package gearth.services.internal_extensions.extensionstore.application.entities.search;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
||||||
@ -92,13 +93,13 @@ public class SearchComponent implements ContentItem {
|
|||||||
.append("<div class=\"searchInnerContainer\">")
|
.append("<div class=\"searchInnerContainer\">")
|
||||||
|
|
||||||
.append("<div class=\"centeredFlex\">")
|
.append("<div class=\"centeredFlex\">")
|
||||||
.append("<label for=\"keyword\">Search by keyword:</label>")
|
.append("<label for=\"keyword\">").append(GEarth.translation.getString("ext.store.search.bykeyword")).append(":</label>")
|
||||||
.append(String.format("<input id=\"keyword\" value=\"%s\" name=\"keyword\" class=\"inputBox\" type=\"text\" " +
|
.append(String.format("<input id=\"keyword\" value=\"%s\" name=\"keyword\" class=\"inputBox\" type=\"text\" " +
|
||||||
"oninput=\"%s.setSearchKeyword(this.value);\">", searchKeyword, id))
|
"oninput=\"%s.setSearchKeyword(this.value);\">", searchKeyword, id))
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
|
|
||||||
.append("<div class=\"centeredFlex\">")
|
.append("<div class=\"centeredFlex\">")
|
||||||
.append("<label for=\"ordering\">Extensions ordering:</label>");
|
.append("<label for=\"ordering\">").append(GEarth.translation.getString("ext.store.search.ordering")).append("</label>");
|
||||||
|
|
||||||
// add ordering stuff
|
// add ordering stuff
|
||||||
htmlBuilder.append(String.format("<select class=\"inputBox\" name=\"ordering\" id=\"ordering\" " +
|
htmlBuilder.append(String.format("<select class=\"inputBox\" name=\"ordering\" id=\"ordering\" " +
|
||||||
@ -119,13 +120,13 @@ public class SearchComponent implements ContentItem {
|
|||||||
|
|
||||||
.append("<div class=\"filterStuff\">");
|
.append("<div class=\"filterStuff\">");
|
||||||
|
|
||||||
addFilterBoxHtml(htmlBuilder, "Client", "Clients:", clients, id);
|
addFilterBoxHtml(htmlBuilder, "Client", GEarth.translation.getString("ext.store.search.filter.clients") + ":", clients, id);
|
||||||
addFilterBoxHtml(htmlBuilder, "Category", "Categories:", categories, id);
|
addFilterBoxHtml(htmlBuilder, "Category", GEarth.translation.getString("ext.store.search.filter.categories") + ":", categories, id);
|
||||||
addFilterBoxHtml(htmlBuilder, "Framework", "Frameworks:", frameworks, id);
|
addFilterBoxHtml(htmlBuilder, "Framework", GEarth.translation.getString("ext.store.search.filter.frameworks") + ":", frameworks, id);
|
||||||
|
|
||||||
htmlBuilder
|
htmlBuilder
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
.append("<br><p>Info: you are automatically filtering on the OS you use</p>")
|
.append("<br><p>").append(GEarth.translation.getString("ext.store.search.info.automaticosfiltering")).append("</p>")
|
||||||
|
|
||||||
.append("</div>")
|
.append("</div>")
|
||||||
.append("</div>");
|
.append("</div>");
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.services.internal_extensions.extensionstore.application.entities.search;
|
package gearth.services.internal_extensions.extensionstore.application.entities.search;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
import gearth.services.internal_extensions.extensionstore.application.entities.ContentItem;
|
||||||
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
|
||||||
@ -27,7 +28,7 @@ public class SearchOverview extends HOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String buttonText() {
|
public String buttonText() {
|
||||||
return "Search";
|
return GEarth.translation.getString("ext.store.button.search");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -74,17 +75,17 @@ public class SearchOverview extends HOverview {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String title() {
|
public String title() {
|
||||||
return "Search";
|
return GEarth.translation.getString("ext.store.search.title");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
return "Find the extension that fits your needs";
|
return GEarth.translation.getString("ext.store.search.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String contentTitle() {
|
public String contentTitle() {
|
||||||
return "Search extensions";
|
return GEarth.translation.getString("ext.store.search.contenttitle");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -176,20 +176,20 @@ public class ConnectionController extends SubForm {
|
|||||||
getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> {
|
getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> {
|
||||||
updateInputUI();
|
updateInputUI();
|
||||||
if (newState == HState.NOT_CONNECTED) {
|
if (newState == HState.NOT_CONNECTED) {
|
||||||
lblState.setText("Not connected");
|
lblState.setText(GEarth.translation.getString("tab.connection.state.notconnected"));
|
||||||
btnConnect.setText("Connect");
|
btnConnect.setText(GEarth.translation.getString("tab.connection.connect"));
|
||||||
outHost.setText("");
|
outHost.setText("");
|
||||||
outPort.setText("");
|
outPort.setText("");
|
||||||
}
|
}
|
||||||
else if (oldState == HState.NOT_CONNECTED) {
|
else if (oldState == HState.NOT_CONNECTED) {
|
||||||
btnConnect.setText("Abort");
|
btnConnect.setText(GEarth.translation.getString("tab.connection.abort"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newState == HState.CONNECTED) {
|
if (newState == HState.CONNECTED) {
|
||||||
lblState.setText("Connected");
|
lblState.setText(GEarth.translation.getString("tab.connection.state.connected"));
|
||||||
}
|
}
|
||||||
if (newState == HState.WAITING_FOR_CLIENT) {
|
if (newState == HState.WAITING_FOR_CLIENT) {
|
||||||
lblState.setText("Waiting for connection");
|
lblState.setText(GEarth.translation.getString("tab.connection.state.waiting"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newState == HState.CONNECTED && useFlash()) {
|
if (newState == HState.CONNECTED && useFlash()) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.ui.subforms.extensions;
|
package gearth.ui.subforms.extensions;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.extension_handler.extensions.ExtensionType;
|
import gearth.services.extension_handler.extensions.ExtensionType;
|
||||||
import gearth.services.extension_handler.extensions.GEarthExtension;
|
import gearth.services.extension_handler.extensions.GEarthExtension;
|
||||||
import gearth.ui.titlebar.TitleBarController;
|
import gearth.ui.titlebar.TitleBarController;
|
||||||
@ -80,7 +81,7 @@ public class ExtensionItemContainer extends GridPane {
|
|||||||
add(versionLabel, 3, 0);
|
add(versionLabel, 3, 0);
|
||||||
|
|
||||||
exitButton = new ExitButton();
|
exitButton = new ExitButton();
|
||||||
Tooltip delete = new Tooltip("Close connection with this extension");
|
Tooltip delete = new Tooltip(GEarth.translation.getString("tab.extensions.table.edit.delete.tooltip"));
|
||||||
Tooltip.install(exitButton,delete);
|
Tooltip.install(exitButton,delete);
|
||||||
exitButton.show();
|
exitButton.show();
|
||||||
clickButton = new SimpleClickButton();
|
clickButton = new SimpleClickButton();
|
||||||
@ -89,7 +90,7 @@ public class ExtensionItemContainer extends GridPane {
|
|||||||
buttonsBox = new HBox(clickButton, exitButton);
|
buttonsBox = new HBox(clickButton, exitButton);
|
||||||
|
|
||||||
reloadButton = new ReloadButton();
|
reloadButton = new ReloadButton();
|
||||||
Tooltip reload = new Tooltip("Restart this extension");
|
Tooltip reload = new Tooltip(GEarth.translation.getString("tab.extensions.table.edit.restart.tooltip"));
|
||||||
Tooltip.install(reloadButton, reload);
|
Tooltip.install(reloadButton, reload);
|
||||||
reloadButton.show();
|
reloadButton.show();
|
||||||
reloadButton.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
|
reloadButton.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
|
||||||
@ -99,7 +100,7 @@ public class ExtensionItemContainer extends GridPane {
|
|||||||
});
|
});
|
||||||
|
|
||||||
DeleteButton deleteButton = new DeleteButton();
|
DeleteButton deleteButton = new DeleteButton();
|
||||||
Tooltip uninstall = new Tooltip("Uninstall this extension");
|
Tooltip uninstall = new Tooltip(GEarth.translation.getString("tab.extensions.table.edit.uninstall.tooltip"));
|
||||||
Tooltip.install(deleteButton, uninstall);
|
Tooltip.install(deleteButton, uninstall);
|
||||||
deleteButton.show();
|
deleteButton.show();
|
||||||
GridPane this2 = this;
|
GridPane this2 = this;
|
||||||
@ -110,8 +111,8 @@ public class ExtensionItemContainer extends GridPane {
|
|||||||
|
|
||||||
if (ConfirmationDialog.showDialog(uninstallKey)) {
|
if (ConfirmationDialog.showDialog(uninstallKey)) {
|
||||||
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.CONFIRMATION, uninstallKey
|
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.CONFIRMATION, uninstallKey
|
||||||
,"Confirmation Dialog", null,
|
, GEarth.translation.getString("alert.confirmation.windowtitle"), null,
|
||||||
"Are you sure want to uninstall this extension?", "Do not ask again",
|
GEarth.translation.getString("tab.extensions.table.edit.uninstall.confirmation"), GEarth.translation.getString("alert.confirmation.button.donotaskagain"),
|
||||||
ButtonType.YES, ButtonType.NO
|
ButtonType.YES, ButtonType.NO
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.ui.subforms.extensions;
|
package gearth.ui.subforms.extensions;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.extension_handler.ExtensionHandler;
|
import gearth.services.extension_handler.ExtensionHandler;
|
||||||
import gearth.services.extension_handler.extensions.ExtensionListener;
|
import gearth.services.extension_handler.extensions.ExtensionListener;
|
||||||
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtensionsProducer;
|
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtensionsProducer;
|
||||||
@ -80,9 +81,9 @@ public class ExtensionsController extends SubForm {
|
|||||||
|
|
||||||
public void installBtnClicked(ActionEvent actionEvent) {
|
public void installBtnClicked(ActionEvent actionEvent) {
|
||||||
FileChooser fileChooser = new FileChooser();
|
FileChooser fileChooser = new FileChooser();
|
||||||
fileChooser.setTitle("Install extension");
|
fileChooser.setTitle(GEarth.translation.getString("tab.extensions.button.install.windowtitle"));
|
||||||
fileChooser.getExtensionFilters().addAll(
|
fileChooser.getExtensionFilters().addAll(
|
||||||
new FileChooser.ExtensionFilter("G-Earth extensions", ExecutionInfo.ALLOWEDEXTENSIONTYPES));
|
new FileChooser.ExtensionFilter(GEarth.translation.getString("tab.extensions.button.install.filetype"), ExecutionInfo.ALLOWEDEXTENSIONTYPES));
|
||||||
File selectedFile = fileChooser.showOpenDialog(parentController.getStage());
|
File selectedFile = fileChooser.showOpenDialog(parentController.getStage());
|
||||||
if (selectedFile != null) {
|
if (selectedFile != null) {
|
||||||
extensionRunner.installAndRunExtension(selectedFile.getPath(), networkExtensionsProducer.getPort());
|
extensionRunner.installAndRunExtension(selectedFile.getPath(), networkExtensionsProducer.getPort());
|
||||||
@ -116,7 +117,7 @@ public class ExtensionsController extends SubForm {
|
|||||||
pythonShellLaunching = true;
|
pythonShellLaunching = true;
|
||||||
Platform.runLater(() -> btn_gpython.setDisable(true));
|
Platform.runLater(() -> btn_gpython.setDisable(true));
|
||||||
GPythonShell shell = new GPythonShell(
|
GPythonShell shell = new GPythonShell(
|
||||||
"Scripting shell " + gpytonShellCounter++,
|
String.format("%s %d", GEarth.translation.getString("tab.extensions.button.pythonshell.windowtitle"),gpytonShellCounter++),
|
||||||
networkExtensionsProducer.getPort(),
|
networkExtensionsProducer.getPort(),
|
||||||
Authenticator.generatePermanentCookie()
|
Authenticator.generatePermanentCookie()
|
||||||
);
|
);
|
||||||
|
@ -38,7 +38,7 @@ public class ExtensionLogger {
|
|||||||
|
|
||||||
|
|
||||||
stage = new Stage();
|
stage = new Stage();
|
||||||
stage.setTitle("G-Earth | Extension Console");
|
stage.setTitle(String.format("G-Earth | %s", GEarth.translation.getString("tab.extensions.button.logs.windowtitle")));
|
||||||
stage.initModality(Modality.NONE);
|
stage.initModality(Modality.NONE);
|
||||||
stage.setAlwaysOnTop(true);
|
stage.setAlwaysOnTop(true);
|
||||||
stage.setMinHeight(235);
|
stage.setMinHeight(235);
|
||||||
|
@ -177,12 +177,13 @@ public class ExtraController extends SubForm implements SocksConfiguration {
|
|||||||
});
|
});
|
||||||
if (!GPythonVersionUtils.validInstallation()) {
|
if (!GPythonVersionUtils.validInstallation()) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR, "G-Python installation", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.ERROR, GEarth.translation.getString("tab.extra.options.pythonscripting.alert.title"), ButtonType.OK);
|
||||||
alert.setTitle("G-Python installation");
|
alert.setTitle(GEarth.translation.getString("tab.extra.options.pythonscripting.alert.title"));
|
||||||
|
|
||||||
FlowPane fp = new FlowPane();
|
FlowPane fp = new FlowPane();
|
||||||
Label lbl = new Label("Before using G-Python, install the right packages using pip!" +
|
Label lbl = new Label(GEarth.translation.getString("tab.extra.options.pythonscripting.alert.content") +
|
||||||
System.lineSeparator() + System.lineSeparator() + "More information here:");
|
System.lineSeparator() + System.lineSeparator() +
|
||||||
|
GEarth.translation.getString("tab.extra.options.pythonscripting.alert.moreinformation"));
|
||||||
Hyperlink link = new Hyperlink(INFO_URL_GPYTHON);
|
Hyperlink link = new Hyperlink(INFO_URL_GPYTHON);
|
||||||
fp.getChildren().addAll( lbl, link);
|
fp.getChildren().addAll( lbl, link);
|
||||||
link.setOnAction(event -> {
|
link.setOnAction(event -> {
|
||||||
|
@ -54,11 +54,11 @@ public class InfoController extends SubForm {
|
|||||||
public void donate(ActionEvent actionEvent) {
|
public void donate(ActionEvent actionEvent) {
|
||||||
String pubkey = "1GEarthEV9Ua3RcixsKTcuc1PPZd9hqri3";
|
String pubkey = "1GEarthEV9Ua3RcixsKTcuc1PPZd9hqri3";
|
||||||
|
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION, "Donate Bitcoins", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION, GEarth.translation.getString("tab.info.donate.alert.title"), ButtonType.OK);
|
||||||
alert.setHeaderText("Donate Bitcoins");
|
alert.setHeaderText(GEarth.translation.getString("tab.info.donate.alert.title"));
|
||||||
|
|
||||||
VBox test = new VBox();
|
VBox test = new VBox();
|
||||||
test.getChildren().add(new Label("Bitcoin public address:"));
|
test.getChildren().add(new Label(GEarth.translation.getString("tab.info.donate.alert.content")));
|
||||||
TextArea pubText = new TextArea(pubkey);
|
TextArea pubText = new TextArea(pubkey);
|
||||||
pubText.setPrefHeight(28);
|
pubText.setPrefHeight(28);
|
||||||
pubText.setMaxWidth(250);
|
pubText.setMaxWidth(250);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.ui.subforms.injection;
|
package gearth.ui.subforms.injection;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.StringifyAble;
|
import gearth.misc.StringifyAble;
|
||||||
import gearth.protocol.HMessage;
|
import gearth.protocol.HMessage;
|
||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
@ -19,7 +20,7 @@ public class InjectedPackets implements StringifyAble {
|
|||||||
public InjectedPackets(String packetsAsString, int amountPackets, PacketInfoManager packetInfoManager, HMessage.Direction direction) {
|
public InjectedPackets(String packetsAsString, int amountPackets, PacketInfoManager packetInfoManager, HMessage.Direction direction) {
|
||||||
String description;
|
String description;
|
||||||
if (amountPackets > 1) {
|
if (amountPackets > 1) {
|
||||||
description = String.format("(packets: %d, length: %d)", amountPackets, packetsAsString.length());
|
description = String.format("(%s: %d, %s: %d)", GEarth.translation.getString("tab.injection.description.packets"), amountPackets, GEarth.translation.getString("tab.injection.description.length"), packetsAsString.length());
|
||||||
}
|
}
|
||||||
else { // assume 1 packet
|
else { // assume 1 packet
|
||||||
HPacket packet = new HPacket(packetsAsString);
|
HPacket packet = new HPacket(packetsAsString);
|
||||||
@ -40,7 +41,7 @@ public class InjectedPackets implements StringifyAble {
|
|||||||
description = String.format("%s", identifier);
|
description = String.format("%s", identifier);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
description = String.format("(id: %d, length: %d)", packet.headerId(), packet.length());
|
description = String.format("(%s: %d, %s: %d)", GEarth.translation.getString("tab.injection.description.id"), packet.headerId(), GEarth.translation.getString("tab.injection.description.length"), packet.length());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.ui.subforms.injection;
|
package gearth.ui.subforms.injection;
|
||||||
|
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.misc.Cacher;
|
import gearth.misc.Cacher;
|
||||||
import gearth.services.packet_info.PacketInfoManager;
|
import gearth.services.packet_info.PacketInfoManager;
|
||||||
import gearth.protocol.HMessage;
|
import gearth.protocol.HMessage;
|
||||||
@ -52,7 +53,7 @@ public class InjectionController extends SubForm {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
lblHistory.setTooltip(new Tooltip("Double click a packet to restore it"));
|
lblHistory.setTooltip(new Tooltip(GEarth.translation.getString("tab.injection.history.tooltip")));
|
||||||
|
|
||||||
List<Object> rawHistory = Cacher.getList(HISTORY_CACHE_KEY);
|
List<Object> rawHistory = Cacher.getList(HISTORY_CACHE_KEY);
|
||||||
if (rawHistory != null) {
|
if (rawHistory != null) {
|
||||||
@ -103,7 +104,7 @@ public class InjectionController extends SubForm {
|
|||||||
private void updateUI() {
|
private void updateUI() {
|
||||||
boolean dirty = false;
|
boolean dirty = false;
|
||||||
|
|
||||||
lbl_corrruption.setText("isCorrupted: False");
|
lbl_corrruption.setText(GEarth.translation.getString("tab.injection.corrupted.false"));
|
||||||
lbl_corrruption.getStyleClass().clear();
|
lbl_corrruption.getStyleClass().clear();
|
||||||
lbl_corrruption.getStyleClass().add("not-corrupted-label");
|
lbl_corrruption.getStyleClass().add("not-corrupted-label");
|
||||||
|
|
||||||
@ -119,7 +120,7 @@ public class InjectionController extends SubForm {
|
|||||||
for (int i = 0; i < packets.length; i++) {
|
for (int i = 0; i < packets.length; i++) {
|
||||||
if (packets[i].isCorrupted()) {
|
if (packets[i].isCorrupted()) {
|
||||||
if (!dirty) {
|
if (!dirty) {
|
||||||
lbl_corrruption.setText("isCorrupted: True -> " + i);
|
lbl_corrruption.setText(String.format("%s -> %d", GEarth.translation.getString("tab.injection.corrupted.true"), i));
|
||||||
lbl_corrruption.getStyleClass().clear();
|
lbl_corrruption.getStyleClass().clear();
|
||||||
lbl_corrruption.getStyleClass().add("corrupted-label");
|
lbl_corrruption.getStyleClass().add("corrupted-label");
|
||||||
dirty = true;
|
dirty = true;
|
||||||
@ -129,7 +130,7 @@ public class InjectionController extends SubForm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dirty && packets.length == 1) {
|
if (dirty && packets.length == 1) {
|
||||||
lbl_corrruption.setText("isCorrupted: True"); // no index needed
|
lbl_corrruption.setText(GEarth.translation.getString("tab.injection.corrupted.true")); // no index needed
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dirty) {
|
if (!dirty) {
|
||||||
@ -147,15 +148,23 @@ public class InjectionController extends SubForm {
|
|||||||
btn_sendToClient.setDisable(!canSendToClient || getHConnection().getState() != HState.CONNECTED);
|
btn_sendToClient.setDisable(!canSendToClient || getHConnection().getState() != HState.CONNECTED);
|
||||||
btn_sendToServer.setDisable(!canSendToServer || getHConnection().getState() != HState.CONNECTED);
|
btn_sendToServer.setDisable(!canSendToServer || getHConnection().getState() != HState.CONNECTED);
|
||||||
if (packets.length == 1) {
|
if (packets.length == 1) {
|
||||||
lbl_pcktInfo.setText("header (id:" + packets[0].headerId() + ", length:" +
|
lbl_pcktInfo.setText(String.format("%s (%s: %d, %s: %d)",
|
||||||
packets[0].length() + ")");
|
GEarth.translation.getString("tab.injection.description.header"),
|
||||||
|
GEarth.translation.getString("tab.injection.description.id"),
|
||||||
|
packets[0].headerId(),
|
||||||
|
GEarth.translation.getString("tab.injection.description.length"),
|
||||||
|
packets[0].length()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lbl_pcktInfo.setText("");
|
lbl_pcktInfo.setText("");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (packets.length == 1) {
|
if (packets.length == 1) {
|
||||||
lbl_pcktInfo.setText("header (id:NULL, length:" + packets[0].getBytesLength()+")");
|
lbl_pcktInfo.setText(String.format("%s (%s:NULL, %s: %d)",
|
||||||
|
GEarth.translation.getString("tab.injection.description.header"),
|
||||||
|
GEarth.translation.getString("tab.injection.description.id"),
|
||||||
|
GEarth.translation.getString("tab.injection.description.length"),
|
||||||
|
packets[0].getBytesLength()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lbl_pcktInfo.setText("");
|
lbl_pcktInfo.setText("");
|
||||||
@ -171,7 +180,7 @@ public class InjectionController extends SubForm {
|
|||||||
HPacket[] packets = parsePackets(inputPacket.getText());
|
HPacket[] packets = parsePackets(inputPacket.getText());
|
||||||
for (HPacket packet : packets) {
|
for (HPacket packet : packets) {
|
||||||
getHConnection().sendToServer(packet);
|
getHConnection().sendToServer(packet);
|
||||||
writeToLog(Color.BLUE, "SS -> packet with id: " + packet.headerId());
|
writeToLog(Color.BLUE, String.format("SS -> %s: %d", GEarth.translation.getString("tab.injection.log.packetwithid"), packet.headerId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
addToHistory(packets, inputPacket.getText(), HMessage.Direction.TOSERVER);
|
addToHistory(packets, inputPacket.getText(), HMessage.Direction.TOSERVER);
|
||||||
@ -181,7 +190,7 @@ public class InjectionController extends SubForm {
|
|||||||
HPacket[] packets = parsePackets(inputPacket.getText());
|
HPacket[] packets = parsePackets(inputPacket.getText());
|
||||||
for (HPacket packet : packets) {
|
for (HPacket packet : packets) {
|
||||||
getHConnection().sendToClient(packet);
|
getHConnection().sendToClient(packet);
|
||||||
writeToLog(Color.RED, "CS -> packet with id: " + packet.headerId());
|
writeToLog(Color.RED, String.format("CS -> %s: %d", GEarth.translation.getString("tab.injection.log.packetwithid"), packet.headerId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
addToHistory(packets, inputPacket.getText(), HMessage.Direction.TOCLIENT);
|
addToHistory(packets, inputPacket.getText(), HMessage.Direction.TOCLIENT);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package gearth.ui.subforms.scheduler;
|
package gearth.ui.subforms.scheduler;
|
||||||
|
|
||||||
import com.tulskiy.keymaster.common.Provider;
|
import com.tulskiy.keymaster.common.Provider;
|
||||||
|
import gearth.GEarth;
|
||||||
import gearth.services.scheduler.Interval;
|
import gearth.services.scheduler.Interval;
|
||||||
import gearth.services.scheduler.Scheduler;
|
import gearth.services.scheduler.Scheduler;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
@ -56,9 +57,9 @@ public class SchedulerController extends SubForm {
|
|||||||
txt_packet.textProperty().addListener(event -> Platform.runLater(this::updateUI));
|
txt_packet.textProperty().addListener(event -> Platform.runLater(this::updateUI));
|
||||||
txt_delay.textProperty().addListener(event -> Platform.runLater(this::updateUI));
|
txt_delay.textProperty().addListener(event -> Platform.runLater(this::updateUI));
|
||||||
|
|
||||||
btn_clear.setTooltip(new Tooltip("Clear all items"));
|
btn_clear.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.clear.tooltip")));
|
||||||
btn_save.setTooltip(new Tooltip("Save to file"));
|
btn_save.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.save.tooltip")));
|
||||||
btn_load.setTooltip(new Tooltip("Load from file"));
|
btn_load.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.load.tooltip")));
|
||||||
|
|
||||||
updateUI();
|
updateUI();
|
||||||
|
|
||||||
@ -157,7 +158,7 @@ public class SchedulerController extends SubForm {
|
|||||||
rb_outgoing.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOSERVER);
|
rb_outgoing.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOSERVER);
|
||||||
|
|
||||||
isBeingEdited = newItem;
|
isBeingEdited = newItem;
|
||||||
btn_addoredit.setText("Edit");
|
btn_addoredit.setText(GEarth.translation.getString("tab.scheduler.button.edit"));
|
||||||
updateUI();
|
updateUI();
|
||||||
newItem.onIsBeingUpdatedTrigger();
|
newItem.onIsBeingUpdatedTrigger();
|
||||||
}
|
}
|
||||||
@ -175,7 +176,7 @@ public class SchedulerController extends SubForm {
|
|||||||
rb_incoming.setSelected(true);
|
rb_incoming.setSelected(true);
|
||||||
rb_outgoing.setSelected(false);
|
rb_outgoing.setSelected(false);
|
||||||
|
|
||||||
btn_addoredit.setText("Add");
|
btn_addoredit.setText(GEarth.translation.getString("tab.scheduler.button.add"));
|
||||||
updateUI();
|
updateUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,9 +204,9 @@ public class SchedulerController extends SubForm {
|
|||||||
|
|
||||||
//Set extension filter
|
//Set extension filter
|
||||||
FileChooser.ExtensionFilter extFilter =
|
FileChooser.ExtensionFilter extFilter =
|
||||||
new FileChooser.ExtensionFilter("SCHED files (*.sched)", "*.sched");
|
new FileChooser.ExtensionFilter(GEarth.translation.getString("tab.scheduler.filetype"), "*.sched");
|
||||||
fileChooser.getExtensionFilters().add(extFilter);
|
fileChooser.getExtensionFilters().add(extFilter);
|
||||||
fileChooser.setTitle("Save Schedule File");
|
fileChooser.setTitle(GEarth.translation.getString("tab.scheduler.button.save.windowtitle"));
|
||||||
|
|
||||||
//Show save file dialog
|
//Show save file dialog
|
||||||
File file = fileChooser.showSaveDialog(parentController.getStage());
|
File file = fileChooser.showSaveDialog(parentController.getStage());
|
||||||
@ -234,9 +235,9 @@ public class SchedulerController extends SubForm {
|
|||||||
List<InteractableScheduleItem> list = new ArrayList<>();
|
List<InteractableScheduleItem> list = new ArrayList<>();
|
||||||
|
|
||||||
FileChooser fileChooser = new FileChooser();
|
FileChooser fileChooser = new FileChooser();
|
||||||
fileChooser.setTitle("Load Schedule File");
|
fileChooser.setTitle(GEarth.translation.getString("tab.scheduler.button.load.windowtitle"));
|
||||||
fileChooser.getExtensionFilters().addAll(
|
fileChooser.getExtensionFilters().addAll(
|
||||||
new FileChooser.ExtensionFilter("Schedule Files", "*.sched"));
|
new FileChooser.ExtensionFilter(GEarth.translation.getString("tab.scheduler.filetype"), "*.sched"));
|
||||||
File selectedFile = fileChooser.showOpenDialog(parentController.getStage());
|
File selectedFile = fileChooser.showOpenDialog(parentController.getStage());
|
||||||
if (selectedFile != null) {
|
if (selectedFile != null) {
|
||||||
|
|
||||||
|
@ -5,27 +5,27 @@
|
|||||||
|
|
||||||
<!--maxHeight="19.0" minHeight="19.0"-->
|
<!--maxHeight="19.0" minHeight="19.0"-->
|
||||||
|
|
||||||
<VBox prefWidth="650.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.GEarthController">
|
<VBox prefWidth="650.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.GEarthController">
|
||||||
<TabPane id="main-tab-pane" fx:id="tabBar" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="295.0" prefWidth="650.0" tabClosingPolicy="UNAVAILABLE">
|
<TabPane id="main-tab-pane" fx:id="tabBar" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="295.0" prefWidth="650.0" tabClosingPolicy="UNAVAILABLE">
|
||||||
<Tab text="Connection">
|
<Tab text="%tab.connection">
|
||||||
<fx:include fx:id="connection" source="subforms/connection/Connection.fxml" />
|
<fx:include fx:id="connection" source="subforms/connection/Connection.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab fx:id="tab_Logger" text="Logger">
|
<Tab fx:id="tab_Logger" text="Logger">
|
||||||
<fx:include fx:id="logger" source="subforms/logger/Logger.fxml" />
|
<fx:include fx:id="logger" source="subforms/logger/Logger.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Injection">
|
<Tab text="%tab.injection">
|
||||||
<fx:include fx:id="injection" source="subforms/injection/Injection.fxml" />
|
<fx:include fx:id="injection" source="subforms/injection/Injection.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Tools">
|
<Tab text="%tab.tools">
|
||||||
<fx:include fx:id="tools" source="subforms/tools/Tools.fxml" />
|
<fx:include fx:id="tools" source="subforms/tools/Tools.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Scheduler">
|
<Tab text="%tab.scheduler">
|
||||||
<fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" />
|
<fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Extensions">
|
<Tab text="%tab.extensions">
|
||||||
<fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" />
|
<fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Extra">
|
<Tab text="%tab.extra">
|
||||||
<fx:include fx:id="extra" source="subforms/extra/Extra.fxml" />
|
<fx:include fx:id="extra" source="subforms/extra/Extra.fxml" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab text="Info">
|
<Tab text="Info">
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<Label text="Port:" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
<Label text="%tab.connection.port" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
||||||
<ComboBox fx:id="inpPort" disable="true" editable="true" prefWidth="183.0" GridPane.columnIndex="1">
|
<ComboBox fx:id="inpPort" disable="true" editable="true" prefWidth="183.0" GridPane.columnIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets right="15.0" />
|
<Insets right="15.0" />
|
||||||
@ -60,7 +60,7 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<Label text="Host:" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
<Label text="%tab.connection.host" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
||||||
<ComboBox fx:id="inpHost" disable="true" editable="true" GridPane.columnIndex="1">
|
<ComboBox fx:id="inpHost" disable="true" editable="true" GridPane.columnIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets right="15.0" />
|
<Insets right="15.0" />
|
||||||
@ -78,7 +78,7 @@
|
|||||||
<RowConstraints />
|
<RowConstraints />
|
||||||
<RowConstraints />
|
<RowConstraints />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<CheckBox fx:id="cbx_autodetect" mnemonicParsing="false" selected="true" text="Auto-detect" textFill="#000000a9" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
<CheckBox fx:id="cbx_autodetect" mnemonicParsing="false" selected="true" text="%tab.connection.autodetect" textFill="#000000a9" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="-5.0" />
|
<Insets left="-5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -86,7 +86,7 @@
|
|||||||
<Font size="12.0" />
|
<Font size="12.0" />
|
||||||
</font>
|
</font>
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<Button fx:id="btnConnect" alignment="CENTER" maxWidth="1.7976931348623157E308" onAction="#btnConnect_clicked" text="Connect" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER">
|
<Button fx:id="btnConnect" alignment="CENTER" maxWidth="1.7976931348623157E308" onAction="#btnConnect_clicked" text="%tab.connection.connect" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="15.0" right="15.0" />
|
<Insets left="15.0" right="15.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -114,7 +114,7 @@
|
|||||||
<RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Label text="Hotel version:" textFill="#000000cc" />
|
<Label text="%tab.connection.version" textFill="#000000cc" />
|
||||||
<TextField fx:id="txtfield_hotelversion" editable="false" prefHeight="17.0" prefWidth="285.0" GridPane.rowIndex="1">
|
<TextField fx:id="txtfield_hotelversion" editable="false" prefHeight="17.0" prefWidth="285.0" GridPane.rowIndex="1">
|
||||||
<opaqueInsets>
|
<opaqueInsets>
|
||||||
<Insets />
|
<Insets />
|
||||||
@ -140,12 +140,12 @@
|
|||||||
<RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Client type:" textFill="#000000cd">
|
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="%tab.connection.client" textFill="#000000cd">
|
||||||
<padding>
|
<padding>
|
||||||
<Insets left="12.0" />
|
<Insets left="12.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
<RadioButton fx:id="rd_unity" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Unity" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
|
<RadioButton fx:id="rd_unity" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="%tab.connection.client.unity" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
|
||||||
<toggleGroup>
|
<toggleGroup>
|
||||||
<ToggleGroup fx:id="tgl_clientMode" />
|
<ToggleGroup fx:id="tgl_clientMode" />
|
||||||
</toggleGroup>
|
</toggleGroup>
|
||||||
@ -153,12 +153,12 @@
|
|||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</RadioButton>
|
</RadioButton>
|
||||||
<RadioButton fx:id="rd_flash" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="35.0" prefWidth="111.0" selected="true" text="Flash / Air" toggleGroup="$tgl_clientMode" GridPane.columnIndex="2">
|
<RadioButton fx:id="rd_flash" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="35.0" prefWidth="111.0" selected="true" text="%tab.connection.client.flash" toggleGroup="$tgl_clientMode" GridPane.columnIndex="2">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</RadioButton>
|
</RadioButton>
|
||||||
<RadioButton fx:id="rd_nitro" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="22.0" prefWidth="54.0" text="Nitro" toggleGroup="$tgl_clientMode" GridPane.columnIndex="4">
|
<RadioButton fx:id="rd_nitro" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="22.0" prefWidth="54.0" text="%tab.connection.client.nitro" toggleGroup="$tgl_clientMode" GridPane.columnIndex="4">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -196,7 +196,7 @@
|
|||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="14.0" left="20.0" right="20.0" />
|
<Insets bottom="14.0" left="20.0" right="20.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
<Label text="Connection state:" textFill="#000000ba" GridPane.valignment="BOTTOM">
|
<Label text="%tab.connection.state" textFill="#000000ba" GridPane.valignment="BOTTOM">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="5.0" left="2.0" />
|
<Insets bottom="5.0" left="2.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -204,7 +204,7 @@
|
|||||||
<Font size="12.0" />
|
<Font size="12.0" />
|
||||||
</font>
|
</font>
|
||||||
</Label>
|
</Label>
|
||||||
<Label fx:id="lblState" alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-border-color: #888888; -fx-border-radius: 5px;" text="Not connected" textAlignment="CENTER" textFill="#000000d1" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.valignment="CENTER" GridPane.vgrow="ALWAYS">
|
<Label fx:id="lblState" alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-border-color: #888888; -fx-border-radius: 5px;" text="%tab.connection.state.notconnected" textAlignment="CENTER" textFill="#000000d1" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.valignment="CENTER" GridPane.vgrow="ALWAYS">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -225,12 +225,12 @@
|
|||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="7.0" top="7.0" />
|
<Insets bottom="7.0" top="7.0" />
|
||||||
</padding>
|
</padding>
|
||||||
<Label text="Game host:" textFill="#000000cc">
|
<Label text="%tab.connection.host" textFill="#000000cc">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0" />
|
<Insets left="10.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
<Label text="Port:" textFill="#000000cc" GridPane.rowIndex="1">
|
<Label text="%tab.connection.port" textFill="#000000cc" GridPane.rowIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0" />
|
<Insets left="10.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
|
@ -31,11 +31,11 @@
|
|||||||
<VBox.margin>
|
<VBox.margin>
|
||||||
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
|
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
|
||||||
</VBox.margin>
|
</VBox.margin>
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Title" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.extensions.table.title" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Description" GridPane.columnIndex="1" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.extensions.table.description" GridPane.columnIndex="1" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Author" GridPane.columnIndex="2" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.extensions.table.author" GridPane.columnIndex="2" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Version" GridPane.columnIndex="3" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.extensions.table.version" GridPane.columnIndex="3" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Edit" GridPane.columnIndex="4" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.extensions.table.edit" GridPane.columnIndex="4" />
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</VBox>
|
</VBox>
|
||||||
</ScrollPane>
|
</ScrollPane>
|
||||||
@ -61,19 +61,19 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<Button fx:id="btn_gpython" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#gpythonBtnClicked" text="G-Python shell" GridPane.columnIndex="3" />
|
<Button fx:id="btn_gpython" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#gpythonBtnClicked" text="%tab.extensions.button.pythonshell" GridPane.columnIndex="3" />
|
||||||
<TextField fx:id="ext_port" editable="false" prefHeight="26.0" prefWidth="157.0" GridPane.columnIndex="1">
|
<TextField fx:id="ext_port" editable="false" prefHeight="26.0" prefWidth="157.0" GridPane.columnIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="-7.0" />
|
<Insets left="-7.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</TextField>
|
</TextField>
|
||||||
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Port:" textFill="#000000bb">
|
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="%tab.extensions.port" textFill="#000000bb">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="3.0" />
|
<Insets left="3.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
<Button fx:id="btn_install" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#installBtnClicked" text="Install" GridPane.columnIndex="5" />
|
<Button fx:id="btn_install" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#installBtnClicked" text="%tab.extensions.button.install" GridPane.columnIndex="5" />
|
||||||
<Button fx:id="btn_viewExtensionConsole" layoutX="401.0" layoutY="10.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#extConsoleBtnClicked" text="View logs" GridPane.columnIndex="4" />
|
<Button fx:id="btn_viewExtensionConsole" layoutX="401.0" layoutY="10.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#extConsoleBtnClicked" text="%tab.extensions.button.logs" GridPane.columnIndex="4" />
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
<children>
|
<children>
|
||||||
<AnchorPane prefHeight="262.0" prefWidth="318.0">
|
<AnchorPane prefHeight="262.0" prefWidth="318.0">
|
||||||
<children>
|
<children>
|
||||||
<CheckBox fx:id="cbx_alwaysOnTop" layoutX="14.0" layoutY="232.0" mnemonicParsing="false" text="Always on top" />
|
<CheckBox fx:id="cbx_alwaysOnTop" layoutX="14.0" layoutY="232.0" mnemonicParsing="false" text="%tab.extra.options.alwaysontop" />
|
||||||
<Hyperlink fx:id="url_troubleshooting" layoutX="223.0" layoutY="232.0" text="Troubleshooting" />
|
<Hyperlink fx:id="url_troubleshooting" layoutX="223.0" layoutY="232.0" text="%tab.extra.troubleshooting" />
|
||||||
<Label layoutX="14.0" layoutY="8.0" text="Notepad:" textFill="#000000bd" />
|
<Label layoutX="14.0" layoutY="8.0" text="%tab.extra.notepad" textFill="#000000bd" />
|
||||||
<TextArea fx:id="txtarea_notepad" layoutX="11.0" layoutY="31.0" prefHeight="197.0" prefWidth="312.0" />
|
<TextArea fx:id="txtarea_notepad" layoutX="11.0" layoutY="31.0" prefHeight="197.0" prefWidth="312.0" />
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
@ -50,9 +50,9 @@
|
|||||||
<Insets left="7.0" top="3.0" />
|
<Insets left="7.0" top="3.0" />
|
||||||
</padding>
|
</padding>
|
||||||
<children>
|
<children>
|
||||||
<CheckBox fx:id="cbx_useSocks" mnemonicParsing="false" text="Use SOCKS proxy" />
|
<CheckBox fx:id="cbx_useSocks" mnemonicParsing="false" text="%tab.extra.options.advanced.socks" />
|
||||||
<CheckBox fx:id="cbx_disableDecryption" mnemonicParsing="false" text="Disable decryption" GridPane.rowIndex="2" />
|
<CheckBox fx:id="cbx_disableDecryption" mnemonicParsing="false" text="%tab.extra.options.advanced.disabledecryption" GridPane.rowIndex="2" />
|
||||||
<CheckBox fx:id="cbx_debug" mnemonicParsing="false" text="Debug to stdout" GridPane.rowIndex="3" />
|
<CheckBox fx:id="cbx_debug" mnemonicParsing="false" text="%tab.extra.options.advanced.debugstdout" GridPane.rowIndex="3" />
|
||||||
<GridPane fx:id="grd_socksInfo" disable="true" prefHeight="54.0" prefWidth="81.0" GridPane.rowIndex="1">
|
<GridPane fx:id="grd_socksInfo" disable="true" prefHeight="54.0" prefWidth="81.0" GridPane.rowIndex="1">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
@ -77,8 +77,8 @@
|
|||||||
<RowConstraints maxHeight="29.0" minHeight="29.0" prefHeight="29.0" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="29.0" minHeight="29.0" prefHeight="29.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Label text="Proxy IP:" />
|
<Label text="%tab.extra.options.advanced.proxy.ip" />
|
||||||
<Label text="Proxy port:" GridPane.rowIndex="1" />
|
<Label text="%tab.extra.options.advanced.proxy.port" GridPane.rowIndex="1" />
|
||||||
<TextField fx:id="txt_socksPort" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
<TextField fx:id="txt_socksPort" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||||
<opaqueInsets>
|
<opaqueInsets>
|
||||||
<Insets />
|
<Insets />
|
||||||
@ -104,7 +104,7 @@
|
|||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<CheckBox fx:id="cbx_advanced" mnemonicParsing="false" text="Advanced" textFill="#000000ba" GridPane.rowIndex="3">
|
<CheckBox fx:id="cbx_advanced" mnemonicParsing="false" text="%tab.extra.options.advanced" textFill="#000000ba" GridPane.rowIndex="3">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0" top="2.0" />
|
<Insets left="10.0" top="2.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -112,12 +112,12 @@
|
|||||||
<Insets top="2.0" />
|
<Insets top="2.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<CheckBox fx:id="cbx_gpython" mnemonicParsing="false" onAction="#gpythonCbxClick" text="G-Python scripting" textFill="#000000ba" GridPane.rowIndex="2">
|
<CheckBox fx:id="cbx_gpython" mnemonicParsing="false" onAction="#gpythonCbxClick" text="%tab.extra.options.pythonscripting" textFill="#000000ba" GridPane.rowIndex="2">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0" top="2.0" />
|
<Insets left="10.0" top="2.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<CheckBox fx:id="cbx_admin" layoutX="20.0" layoutY="25.0" mnemonicParsing="false" onAction="#adminCbxClick" selected="true" text="Client-side staff permissions" textFill="#000000ba" GridPane.rowIndex="1">
|
<CheckBox fx:id="cbx_admin" layoutX="20.0" layoutY="25.0" mnemonicParsing="false" onAction="#adminCbxClick" selected="true" text="%tab.extra.options.staffpermissions" textFill="#000000ba" GridPane.rowIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0" top="2.0" />
|
<Insets left="10.0" top="2.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
|
@ -20,12 +20,12 @@
|
|||||||
<Font size="18.0" />
|
<Font size="18.0" />
|
||||||
</font>
|
</font>
|
||||||
</Label>
|
</Label>
|
||||||
<Label layoutX="260.0" layoutY="57.0" text="Habbo packet manipulator for Linux, Windows & Mac" textFill="#000000b2">
|
<Label layoutX="260.0" layoutY="57.0" text="%tab.info.description" textFill="#000000b2">
|
||||||
<font>
|
<font>
|
||||||
<Font size="14.0" />
|
<Font size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
</Label>
|
</Label>
|
||||||
<Label layoutX="260.0" layoutY="92.0" text="Created by:" textFill="#000000b2">
|
<Label layoutX="260.0" layoutY="92.0" text="%tab.info.createdby" textFill="#000000b2">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="14.0" />
|
<Font name="System Bold" size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<Font size="14.0" />
|
<Font size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
</Label>
|
</Label>
|
||||||
<Label layoutX="260.0" layoutY="124.0" text="Contributors:" textFill="#000000b2">
|
<Label layoutX="260.0" layoutY="124.0" text="%tab.info.contributors" textFill="#000000b2">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="14.0" />
|
<Font name="System Bold" size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<Font size="14.0" />
|
<Font size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
</Label>
|
</Label>
|
||||||
<Label layoutX="491.0" layoutY="92.0" text="Links:" textFill="#000000b2">
|
<Label layoutX="491.0" layoutY="92.0" text="%tab.info.links" textFill="#000000b2">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="14.0" />
|
<Font name="System Bold" size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
@ -85,7 +85,7 @@
|
|||||||
<Hyperlink fx:id="link_g_tanji" layoutX="487.0" layoutY="152.0" text="Github - Tanji" />
|
<Hyperlink fx:id="link_g_tanji" layoutX="487.0" layoutY="152.0" text="Github - Tanji" />
|
||||||
<Hyperlink fx:id="link_d_gearth" layoutX="487.0" layoutY="172.0" text="Discord - G-Earth" />
|
<Hyperlink fx:id="link_d_gearth" layoutX="487.0" layoutY="172.0" text="Discord - G-Earth" />
|
||||||
<Hyperlink fx:id="link_g_store" layoutX="487.0" layoutY="212.0" text="G-ExtensionStore" />
|
<Hyperlink fx:id="link_g_store" layoutX="487.0" layoutY="212.0" text="G-ExtensionStore" />
|
||||||
<Button layoutX="537.0" layoutY="14.0" mnemonicParsing="false" onAction="#donate" prefHeight="20.0" prefWidth="100.0" text="Donate BTC" />
|
<Button layoutX="537.0" layoutY="14.0" mnemonicParsing="false" onAction="#donate" prefHeight="20.0" prefWidth="100.0" text="%tab.info.donate" />
|
||||||
<Hyperlink fx:id="link_t_gearth" layoutX="487.0" layoutY="192.0" text="Twitter - G-Earth" />
|
<Hyperlink fx:id="link_t_gearth" layoutX="487.0" layoutY="192.0" text="Twitter - G-Earth" />
|
||||||
<!--<Hyperlink fx:id="link_d_bonnie" layoutX="400.0" layoutY="221.0" text="Discord - BonnieScripting (pt/br)" />-->
|
<!--<Hyperlink fx:id="link_d_bonnie" layoutX="400.0" layoutY="221.0" text="Discord - BonnieScripting (pt/br)" />-->
|
||||||
</children>
|
</children>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
<?import javafx.scene.text.*?>
|
<?import javafx.scene.text.*?>
|
||||||
|
|
||||||
<GridPane prefHeight="258.0" prefWidth="650.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.subforms.injection.InjectionController">
|
<GridPane prefHeight="258.0" prefWidth="650.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.subforms.injection.InjectionController">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="180.0" minWidth="180.0" prefWidth="180.0" />
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="180.0" minWidth="180.0" prefWidth="180.0" />
|
||||||
@ -37,12 +37,12 @@
|
|||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="13.0" right="13.0" top="4.0" />
|
<Insets left="13.0" right="13.0" top="4.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
<Text fx:id="lbl_corrruption" styleClass="corrupted-label" strokeType="OUTSIDE" strokeWidth="0.0" text="isCorrupted: True">
|
<Text fx:id="lbl_corrruption" strokeType="OUTSIDE" strokeWidth="0.0" styleClass="corrupted-label" text="%tab.injection.corrupted.true">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Italic" size="11.0" />
|
<Font name="System Italic" size="11.0" />
|
||||||
</font>
|
</font>
|
||||||
</Text>
|
</Text>
|
||||||
<Text fx:id="lbl_pcktInfo" fill="#000000b2" styleClass="pckt-info" nodeOrientation="LEFT_TO_RIGHT" strokeType="OUTSIDE" strokeWidth="0.0" text="header (id:NULL, length:0)" GridPane.columnIndex="1" GridPane.halignment="RIGHT">
|
<Text fx:id="lbl_pcktInfo" fill="#000000b2" nodeOrientation="LEFT_TO_RIGHT" strokeType="OUTSIDE" strokeWidth="0.0" styleClass="pckt-info" text="%tab.injection.description" GridPane.columnIndex="1" GridPane.halignment="RIGHT">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Italic" size="11.0" />
|
<Font name="System Italic" size="11.0" />
|
||||||
</font>
|
</font>
|
||||||
@ -61,12 +61,12 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<Button fx:id="btn_sendToServer" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#sendToServer_clicked" text="Send to server" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
<Button fx:id="btn_sendToServer" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#sendToServer_clicked" text="%tab.injection.send.toserver" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
|
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Button>
|
</Button>
|
||||||
<Button fx:id="btn_sendToClient" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#sendToClient_clicked" text="Send to client" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
<Button fx:id="btn_sendToClient" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#sendToClient_clicked" text="%tab.injection.send.toclient" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
|
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -92,11 +92,11 @@
|
|||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Hyperlink alignment="CENTER_RIGHT" onAction="#clearHistoryClick" text="Clear" GridPane.columnIndex="1">
|
<Hyperlink alignment="CENTER_RIGHT" onAction="#clearHistoryClick" text="%tab.injection.history.clear" GridPane.columnIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets right="6.0" />
|
<Insets right="6.0" />
|
||||||
</GridPane.margin></Hyperlink>
|
</GridPane.margin></Hyperlink>
|
||||||
<Label fx:id="lblHistory" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="History:" textFill="#000000cc">
|
<Label fx:id="lblHistory" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="%tab.injection.history" textFill="#000000cc">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
|
@ -31,11 +31,11 @@
|
|||||||
<VBox.margin>
|
<VBox.margin>
|
||||||
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
|
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
|
||||||
</VBox.margin>
|
</VBox.margin>
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Index" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.scheduler.table.index" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Packet" GridPane.columnIndex="1" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.scheduler.table.packet" GridPane.columnIndex="1" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Interval" GridPane.columnIndex="2" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.scheduler.table.interval" GridPane.columnIndex="2" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Destination" GridPane.columnIndex="3" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.scheduler.table.destination" GridPane.columnIndex="3" />
|
||||||
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="Edit" GridPane.columnIndex="4" />
|
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-text-fill: #666666; -fx-background-color: #F7F7F7;" text="%tab.scheduler.table.edit" GridPane.columnIndex="4" />
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</VBox>
|
</VBox>
|
||||||
</ScrollPane>
|
</ScrollPane>
|
||||||
@ -67,14 +67,14 @@
|
|||||||
<Insets left="-7.0" />
|
<Insets left="-7.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</TextField>
|
</TextField>
|
||||||
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Packet:" textFill="#000000bb">
|
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="%tab.scheduler.setup.packet" textFill="#000000bb">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="3.0" />
|
<Insets left="3.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
<Button fx:id="btn_clear" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#clearBtnClicked" text="Clear" GridPane.columnIndex="3" />
|
<Button fx:id="btn_clear" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#clearBtnClicked" text="%tab.scheduler.button.clear" GridPane.columnIndex="3" />
|
||||||
<Button fx:id="btn_save" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#saveBtnClicked" text="S" GridPane.columnIndex="4" />
|
<Button fx:id="btn_save" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#saveBtnClicked" text="%tab.scheduler.button.save" GridPane.columnIndex="4" />
|
||||||
<Button fx:id="btn_load" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#loadBtnClicked" text="L" GridPane.columnIndex="5" />
|
<Button fx:id="btn_load" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#loadBtnClicked" text="%tab.scheduler.button.load" GridPane.columnIndex="5" />
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane prefHeight="33.0" prefWidth="502.0" GridPane.rowIndex="1">
|
<GridPane prefHeight="33.0" prefWidth="502.0" GridPane.rowIndex="1">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
@ -96,17 +96,17 @@
|
|||||||
<Insets right="5.0" />
|
<Insets right="5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</TextField>
|
</TextField>
|
||||||
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Interval:" textFill="#000000bb">
|
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="%tab.scheduler.setup.interval" textFill="#000000bb">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="3.0" />
|
<Insets left="3.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
<Button fx:id="btn_addoredit" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#scheduleBtnClicked" text="Add" GridPane.columnIndex="4">
|
<Button fx:id="btn_addoredit" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#scheduleBtnClicked" text="%tab.scheduler.button.add" GridPane.columnIndex="4">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="2.0" left="5.0" top="2.0" />
|
<Insets bottom="2.0" left="5.0" top="2.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Button>
|
</Button>
|
||||||
<RadioButton fx:id="rb_incoming" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="In" GridPane.columnIndex="2">
|
<RadioButton fx:id="rb_incoming" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="%tab.scheduler.direction.in" GridPane.columnIndex="2">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="5.0" />
|
<Insets left="5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -114,12 +114,12 @@
|
|||||||
<ToggleGroup fx:id="scheduler_dest" />
|
<ToggleGroup fx:id="scheduler_dest" />
|
||||||
</toggleGroup>
|
</toggleGroup>
|
||||||
</RadioButton>
|
</RadioButton>
|
||||||
<RadioButton fx:id="rb_outgoing" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Out" toggleGroup="$scheduler_dest" GridPane.columnIndex="3">
|
<RadioButton fx:id="rb_outgoing" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="%tab.scheduler.direction.out" toggleGroup="$scheduler_dest" GridPane.columnIndex="3">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="5.0" />
|
<Insets left="5.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</RadioButton>
|
</RadioButton>
|
||||||
<CheckBox fx:id="cbx_hotkeys" mnemonicParsing="false" text="Enable hotkeys (Ctrl+Shift+Index)" textFill="#4d4d4d" GridPane.columnIndex="5">
|
<CheckBox fx:id="cbx_hotkeys" mnemonicParsing="false" text="%tab.scheduler.hotkeys" textFill="#4d4d4d" GridPane.columnIndex="5">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="32.0" />
|
<Insets left="32.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets/>
|
<Insets/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
<Label alignment="CENTER" text="Integer:">
|
<Label alignment="CENTER" text="%tab.tools.type.integer">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0"/>
|
<Insets left="10.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
</TextField>
|
</TextField>
|
||||||
<Button fx:id="btnEncodeInt" disable="true" maxHeight="1.7976931348623157E308"
|
<Button fx:id="btnEncodeInt" disable="true" maxHeight="1.7976931348623157E308"
|
||||||
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
||||||
onAction="#btnEncodeInt_clicked" text="Encode" GridPane.columnIndex="2"
|
onAction="#btnEncodeInt_clicked" text="%tab.tools.button.encode" GridPane.columnIndex="2"
|
||||||
GridPane.halignment="CENTER">
|
GridPane.halignment="CENTER">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<Button fx:id="btnDecodeInt" disable="true" maxHeight="1.7976931348623157E308"
|
<Button fx:id="btnDecodeInt" disable="true" maxHeight="1.7976931348623157E308"
|
||||||
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
||||||
onAction="#btnDecodeInt_clicked" text="Decode" GridPane.columnIndex="3"
|
onAction="#btnDecodeInt_clicked" text="%tab.tools.button.decode" GridPane.columnIndex="3"
|
||||||
GridPane.halignment="CENTER">
|
GridPane.halignment="CENTER">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</TextField>
|
</TextField>
|
||||||
|
|
||||||
<Label alignment="CENTER" text="Ushort:" GridPane.rowIndex="1">
|
<Label alignment="CENTER" text="%tab.tools.type.ushort" GridPane.rowIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="10.0"/>
|
<Insets left="10.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -94,7 +94,7 @@
|
|||||||
</TextField>
|
</TextField>
|
||||||
<Button fx:id="btnEncodeUShort" disable="true" maxHeight="1.7976931348623157E308"
|
<Button fx:id="btnEncodeUShort" disable="true" maxHeight="1.7976931348623157E308"
|
||||||
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
||||||
onAction="#btnEncodeUShort_clicked" text="Encode" GridPane.columnIndex="2"
|
onAction="#btnEncodeUShort_clicked" text="%tab.tools.button.encode" GridPane.columnIndex="2"
|
||||||
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
||||||
@ -102,7 +102,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<Button fx:id="btnDecodeUshort" disable="true" maxHeight="1.7976931348623157E308"
|
<Button fx:id="btnDecodeUshort" disable="true" maxHeight="1.7976931348623157E308"
|
||||||
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
maxWidth="1.7976931348623157E308" mnemonicParsing="false"
|
||||||
onAction="#btnDecodeUshort_clicked" text="Decode" GridPane.columnIndex="3"
|
onAction="#btnDecodeUshort_clicked" text="%tab.tools.button.decode" GridPane.columnIndex="3"
|
||||||
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
|
||||||
@ -116,7 +116,7 @@
|
|||||||
</TextField>
|
</TextField>
|
||||||
|
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<Label text="Encoding/decoding" textFill="#000000cc">
|
<Label text="%tab.tools.encodingdecoding" textFill="#000000cc">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="6.0" top="5.0"/>
|
<Insets left="6.0" top="5.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@ -179,7 +179,7 @@
|
|||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</TextArea>
|
</TextArea>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<Label text="Packet <-> expression" textFill="#000000cc">
|
<Label text="%tab.tools.packettoexpression" textFill="#000000cc">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets left="6.0" top="2.0"/>
|
<Insets left="6.0" top="2.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
|
@ -0,0 +1,254 @@
|
|||||||
|
# English (Original)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# German (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to German)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# Spanish (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to Spanish)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# Finnish (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to Finnish)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# French (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to French)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# Italian (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to Italian)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,254 @@
|
|||||||
|
# Dutch (Translated by WiredSpast)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Verbinding
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel versie:
|
||||||
|
tab.connection.state=Verbindings status:
|
||||||
|
tab.connection.state.notconnected=Niet verbonden
|
||||||
|
tab.connection.state.connected=Verbonden
|
||||||
|
tab.connection.state.waiting=Wachten op verbinding
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Verbind
|
||||||
|
tab.connection.abort=Stop
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injectie
|
||||||
|
tab.injection.corrupted.true=isCorrupt: True
|
||||||
|
tab.injection.corrupted.false=isCorrupt: False
|
||||||
|
tab.injection.description=header (id:NULL, lengte:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=lengte
|
||||||
|
tab.injection.send.toserver=Stuur naar server
|
||||||
|
tab.injection.send.toclient=Stuur naar client
|
||||||
|
tab.injection.history=Geschiedenis:
|
||||||
|
tab.injection.history.clear=Wis
|
||||||
|
tab.injection.history.tooltip=Dubbelklik op een packet om deze op te vragen
|
||||||
|
tab.injection.log.packetwithid=Packet met id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Codeer
|
||||||
|
tab.tools.button.decode=Decodeer
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Codering/Decodering
|
||||||
|
tab.tools.packettoexpression=Packet <-> expressie
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Planner
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Bestemming
|
||||||
|
tab.scheduler.table.edit=Bewerk
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Wis
|
||||||
|
tab.scheduler.button.clear.tooltip=Wis alle items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Bewaar naar een bestand
|
||||||
|
tab.scheduler.button.save.windowtitle=Bewaar Schedule Bestand
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Laad vanuit een bestand
|
||||||
|
tab.scheduler.button.load.windowtitle=Laad Schedule Bestand
|
||||||
|
tab.scheduler.button.add=Voeg toe
|
||||||
|
tab.scheduler.button.edit=Bewerk
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Uit
|
||||||
|
tab.scheduler.hotkeys=Sneltoetsen (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Bestanden (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensies
|
||||||
|
tab.extensions.table.title=Titel
|
||||||
|
tab.extensions.table.description=Beschrijving
|
||||||
|
tab.extensions.table.author=Auteur
|
||||||
|
tab.extensions.table.version=Versie
|
||||||
|
tab.extensions.table.edit=Bewerk
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Verbreek verbinding met deze extensie
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Herstart deze extensie
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Verwijder deze extensie
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Ben je zeker dat je deze extensie wil verwijderen?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Installeer
|
||||||
|
tab.extensions.button.install.windowtitle=Installeer extensie
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensies
|
||||||
|
tab.extensions.button.logs=Bekijk logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extensie Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Kladblok:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Altijd bovenop
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff machtigingen
|
||||||
|
tab.extra.options.pythonscripting=G-Python-scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installatie
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Voordat je G-Python kan gebruiken moet je de juiste packages installeren!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=Meer informatie hier:
|
||||||
|
tab.extra.options.advanced=Geavanceerd
|
||||||
|
tab.extra.options.advanced.socks=Gebruik SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Schakel decryptie uit
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug naar stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator voor Linux, Windows & Mac
|
||||||
|
tab.info.donate=Doneer BTC
|
||||||
|
tab.info.donate.alert.title=Doneer Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin publiek address:
|
||||||
|
tab.info.createdby=Gemaakt door:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Bijdragers:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Bevestigings Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Vraag het me niet nog eens
|
||||||
|
alert.confirmation.button.remember=Onthoud mijn keuze
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth heeft beheerdersrechten nodig om op Flash te kunnen werken,\\n\
|
||||||
|
herstart G-Earth met beheerdersrechten tenzij je Unity gebruikt.
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is verouderd!
|
||||||
|
alert.outdated.content.newversion=Er is een nieuwe versie van G-Earth gevonden
|
||||||
|
alert.outdated.content.update=Update naar de nieuwste versie
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=Je hebt ongeldige connectie informatie opgegeven, G-Earth kon niet verbinden
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Basiscertificaat installatie
|
||||||
|
alert.rootcertificate.remember=Onthoud mijn keuze
|
||||||
|
alert.rootcertificate.content=G-Earth kan geen geïnstalleerd basiscertificaat vinden.\\n\
|
||||||
|
Dit is nodig om met Nitro te verbinden, wil je verder gaan?\\n\
|
||||||
|
G-Earth zal je voor beheerdersrechten vragen indien je verder gaat.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is reeds verbonden met dit hotel.\\n\
|
||||||
|
Vanwege de huidige limieten kan je maar met één sessie per hotel verbinden in Ruwe IP-modus op Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
Je kan dit omzeilen door een SOCKS proxy te gebruiken [Extra -> Geavanceerd -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Er ging iets mis!
|
||||||
|
alert.somethingwentwrong.content=Er ging iets mis!\\n\
|
||||||
|
\\n\
|
||||||
|
Ga naar de Troubleshooting pagina om het probleem op te lossen:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=De extension "%s" probeert te verbinden, maar is onbekend voor G-Earth,\\n\
|
||||||
|
accepteer je deze verbinding?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Er ging iets mis bij het openen van de G-Python shell,\\n\
|
||||||
|
ben je zeker dat je de installatie gids correct gevolgd hebt?\\n\
|
||||||
|
\\n\
|
||||||
|
Meer informatie hier:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=seconde
|
||||||
|
ext.store.elapsedtime.second.multiple=seconden
|
||||||
|
ext.store.elapsedtime.minute.single=minuut
|
||||||
|
ext.store.elapsedtime.minute.multiple=minuten
|
||||||
|
ext.store.elapsedtime.hour.single=uur
|
||||||
|
ext.store.elapsedtime.hour.multiple=uren
|
||||||
|
ext.store.elapsedtime.day.single=dag
|
||||||
|
ext.store.elapsedtime.day.multiple=dagen
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weken
|
||||||
|
ext.store.elapsedtime.month.single=maand
|
||||||
|
ext.store.elapsedtime.month.multiple=maanden
|
||||||
|
ext.store.elapsedtime.year.single=jaar
|
||||||
|
ext.store.elapsedtime.year.multiple=jaaren
|
||||||
|
ext.store.extension.version=Versie
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=Door %s
|
||||||
|
ext.store.extension.lastupdated=laatst geupdate %s geleden
|
||||||
|
ext.store.extension.notinstore=Niet gevonden in de G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Beschrijving
|
||||||
|
ext.store.extension.details.authors=Auteur(s)
|
||||||
|
ext.store.extension.details.categories=Categorieën
|
||||||
|
ext.store.extension.details.technical_information=Technische informatie
|
||||||
|
ext.store.extension.details.click_here=Klik hier
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Taal
|
||||||
|
ext.store.extension.details.source=Bron
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systemen
|
||||||
|
ext.store.extension.details.clients=Compatibele clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputatie
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Waarschuwing: het framework heeft --url:aanvullende installaties nodig-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Waarschuwing: Deze extensie is als onstabiel aangegeven!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Installeer extensie
|
||||||
|
ext.store.extension.status.await.install.message=Klik op "OK" en wacht terwijl de extensie geïnstalleerd wordt
|
||||||
|
ext.store.extension.status.await.update=Update extensie
|
||||||
|
ext.store.extension.status.await.update.message=Klik op "OK" en wacht terwijl de extensie geupdate wordt
|
||||||
|
ext.store.extension.status.success.install=Installatie klaar
|
||||||
|
ext.store.extension.status.success.install.message=Extensie installatie succesvol afgerond
|
||||||
|
ext.store.extension.status.success.update=Update klaar
|
||||||
|
ext.store.extension.status.success.update.message=Extensie update succesvol afgerond
|
||||||
|
ext.store.extension.status.error.install=Installatie misgelopen
|
||||||
|
ext.store.extension.status.error.install.message=Installatie is misgelopen met de volgende melding:
|
||||||
|
ext.store.extension.status.error.update=Update misgelopen
|
||||||
|
ext.store.extension.status.error.update.message=Update is misgelopen met de volgende melding:
|
||||||
|
|
||||||
|
ext.store.button.search=Zoek
|
||||||
|
ext.store.button.install=Installeer
|
||||||
|
ext.store.button.installed=Geïnstalleerd
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Zoek
|
||||||
|
ext.store.search.description=Vind de extensie die je nodig hebt
|
||||||
|
ext.store.search.contenttitle=Zoek extensies
|
||||||
|
ext.store.search.bykeyword=Zoek met sleutelwoord
|
||||||
|
ext.store.search.results=Zoekresultaten
|
||||||
|
ext.store.search.ordering=Extensie ordening
|
||||||
|
ext.store.search.ordering.bydate.title=Nieuwe releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensies die recent aan de G-ExtensionStore zijn toegevoegd
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=Nieuwe Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Populaire Extensies
|
||||||
|
ext.store.search.ordering.byrating.description=Extensies gesorteerd op rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Populaire Extensies
|
||||||
|
ext.store.search.ordering.byupdate.title=Recent Geupdate
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensies die recent geupdate zijn
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recent Geupdate
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categorieën
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: er wordt automatisch gefilterd op je besturingssysteem
|
||||||
|
ext.store.category=Categorie
|
||||||
|
|
||||||
|
ext.store.overview.title=Geïnstalleerde Extensies
|
||||||
|
ext.store.overview.description=Extensies die reeds in G-Earth geïnstalleerd zijn
|
||||||
|
ext.store.overview.contenttitle=Geïnstalleerde extensies
|
||||||
|
ext.store.overview.folder=Open map
|
||||||
|
|
||||||
|
ext.store.categories.title=Categorieën
|
||||||
|
ext.store.categories.description=Doorzoek de verschillende soorten extensies die G-Earth aan te bieden heeft
|
||||||
|
ext.store.categories.contenttitle=Categorieën
|
@ -0,0 +1,256 @@
|
|||||||
|
# Portuguese (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to Portuguese)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
@ -0,0 +1,256 @@
|
|||||||
|
# Turkish (Translated by ???)
|
||||||
|
|
||||||
|
! (English messages provided below, require translation to Turkish)
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
|
||||||
|
### Tab - Connection
|
||||||
|
tab.connection=Connection
|
||||||
|
tab.connection.client=Client type:
|
||||||
|
tab.connection.client.flash=Flash / Air
|
||||||
|
tab.connection.client.unity=Unity
|
||||||
|
tab.connection.client.nitro=Nitro
|
||||||
|
tab.connection.version=Hotel version:
|
||||||
|
tab.connection.state=Connection state:
|
||||||
|
tab.connection.state.notconnected=Not connected
|
||||||
|
tab.connection.state.connected=Connected
|
||||||
|
tab.connection.state.waiting=Waiting for connection
|
||||||
|
tab.connection.port=Port:
|
||||||
|
tab.connection.host=Host:
|
||||||
|
tab.connection.connect=Connect
|
||||||
|
tab.connection.abort=Abort
|
||||||
|
tab.connection.autodetect=Auto-detect
|
||||||
|
|
||||||
|
### Tab - Injection
|
||||||
|
tab.injection=Injection
|
||||||
|
tab.injection.corrupted.true=isCorrupted: True
|
||||||
|
tab.injection.corrupted.false=isCorrupted: False
|
||||||
|
tab.injection.description=header (id:NULL, length:0)
|
||||||
|
tab.injection.description.header=header
|
||||||
|
tab.injection.description.packets=packets
|
||||||
|
tab.injection.description.id=id
|
||||||
|
tab.injection.description.length=length
|
||||||
|
tab.injection.send.toserver=Send to server
|
||||||
|
tab.injection.send.toclient=Send to client
|
||||||
|
tab.injection.history=History:
|
||||||
|
tab.injection.history.clear=Clear
|
||||||
|
tab.injection.history.tooltip=Double click a packet to restore it
|
||||||
|
tab.injection.log.packetwithid=Packet with id
|
||||||
|
|
||||||
|
### Tab - Tools
|
||||||
|
tab.tools=Tools
|
||||||
|
tab.tools.button.encode=Encode
|
||||||
|
tab.tools.button.decode=Decode
|
||||||
|
tab.tools.type.integer=Integer:
|
||||||
|
tab.tools.type.ushort=Ushort:
|
||||||
|
tab.tools.encodingdecoding=Encoding/decoding
|
||||||
|
tab.tools.packettoexpression=Packet <-> expression
|
||||||
|
|
||||||
|
### Tab - Scheduler
|
||||||
|
tab.scheduler=Scheduler
|
||||||
|
tab.scheduler.table.index=Index
|
||||||
|
tab.scheduler.table.packet=Packet
|
||||||
|
tab.scheduler.table.interval=Interval
|
||||||
|
tab.scheduler.table.destination=Destination
|
||||||
|
tab.scheduler.table.edit=Edit
|
||||||
|
tab.scheduler.setup.packet=Packet:
|
||||||
|
tab.scheduler.setup.interval=Interval:
|
||||||
|
tab.scheduler.button.clear=Clear
|
||||||
|
tab.scheduler.button.clear.tooltip=Clear all items
|
||||||
|
tab.scheduler.button.save=S
|
||||||
|
tab.scheduler.button.save.tooltip=Save to file
|
||||||
|
tab.scheduler.button.save.windowtitle=Save Schedule File
|
||||||
|
tab.scheduler.button.load=L
|
||||||
|
tab.scheduler.button.load.tooltip=Load from file
|
||||||
|
tab.scheduler.button.load.windowtitle=Load Schedule File
|
||||||
|
tab.scheduler.button.add=Add
|
||||||
|
tab.scheduler.button.edit=Edit
|
||||||
|
tab.scheduler.direction.in=In
|
||||||
|
tab.scheduler.direction.out=Out
|
||||||
|
tab.scheduler.hotkeys=Enable hotkeys (Ctrl+Shift+Index)
|
||||||
|
tab.scheduler.filetype=Schedule Files (*.sched)
|
||||||
|
|
||||||
|
### Tab - Extensions
|
||||||
|
tab.extensions=Extensions
|
||||||
|
tab.extensions.table.title=Title
|
||||||
|
tab.extensions.table.description=Description
|
||||||
|
tab.extensions.table.author=Author
|
||||||
|
tab.extensions.table.version=Version
|
||||||
|
tab.extensions.table.edit=Edit
|
||||||
|
tab.extensions.table.edit.delete.tooltip=Close connection with this extension
|
||||||
|
tab.extensions.table.edit.restart.tooltip=Restart this extension
|
||||||
|
tab.extensions.table.edit.uninstall.tooltip=Uninstall this extension
|
||||||
|
tab.extensions.table.edit.uninstall.confirmation=Are you sure want to uninstall this extension?
|
||||||
|
tab.extensions.port=Port:
|
||||||
|
tab.extensions.button.pythonshell=G-Python shell
|
||||||
|
tab.extensions.button.pythonshell.windowtitle=Scripting shell
|
||||||
|
tab.extensions.button.install=Install
|
||||||
|
tab.extensions.button.install.windowtitle=Install extension
|
||||||
|
tab.extensions.button.install.filetype=G-Earth extensions
|
||||||
|
tab.extensions.button.logs=View logs
|
||||||
|
tab.extensions.button.logs.windowtitle=Extension Console
|
||||||
|
|
||||||
|
### Tab - Extra
|
||||||
|
tab.extra=Extra
|
||||||
|
tab.extra.notepad=Notepad:
|
||||||
|
tab.extra.troubleshooting=Troubleshooting
|
||||||
|
tab.extra.options.alwaysontop=Always on top
|
||||||
|
tab.extra.options.staffpermissions=Client-side staff permissions
|
||||||
|
tab.extra.options.pythonscripting=G-Python scripting
|
||||||
|
tab.extra.options.pythonscripting.alert.title=G-Python installation
|
||||||
|
tab.extra.options.pythonscripting.alert.content=Before using G-Python, install the right packages using pip!
|
||||||
|
tab.extra.options.pythonscripting.alert.moreinformation=More information here:
|
||||||
|
tab.extra.options.advanced=Advanced
|
||||||
|
tab.extra.options.advanced.socks=Use SOCKS proxy
|
||||||
|
tab.extra.options.advanced.proxy.ip=Proxy IP:
|
||||||
|
tab.extra.options.advanced.proxy.port=Proxy port:
|
||||||
|
tab.extra.options.advanced.disabledecryption=Disable decryption
|
||||||
|
tab.extra.options.advanced.debugstdout=Debug to stdout
|
||||||
|
|
||||||
|
### Tab - Info
|
||||||
|
tab.info=Info
|
||||||
|
tab.info.description=Habbo packet manipulator for Linux, Windows & Mac
|
||||||
|
tab.info.donate=Donate BTC
|
||||||
|
tab.info.donate.alert.title=Donate Bitcoins
|
||||||
|
tab.info.donate.alert.content=Bitcoin public address:
|
||||||
|
tab.info.createdby=Created by:
|
||||||
|
tab.info.links=Links:
|
||||||
|
tab.info.contributors=Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
### Alert - Confirmation
|
||||||
|
alert.confirmation.windowtitle=Confirmation Dialog
|
||||||
|
alert.confirmation.button.donotaskagain=Do not ask again
|
||||||
|
alert.confirmation.button.remember=Remember my choice
|
||||||
|
|
||||||
|
### Alert - AdminValidator
|
||||||
|
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\
|
||||||
|
please restart G-Earth with admin permissions unless\\n\
|
||||||
|
you're using Unity
|
||||||
|
|
||||||
|
### Alert - Outdated
|
||||||
|
alert.outdated.title=G-Earth is outdated!
|
||||||
|
alert.outdated.content.newversion=A new version of G-Earth has been found
|
||||||
|
alert.outdated.content.update=Update to the latest version
|
||||||
|
|
||||||
|
### Alert - Invalid connection
|
||||||
|
alert.invalidconnection.content=You entered invalid connection information, G-Earth could not connect
|
||||||
|
|
||||||
|
### Alert - Nitro root certificate
|
||||||
|
alert.rootcertificate.title=Root certificate installation
|
||||||
|
alert.rootcertificate.remember=Remember my choice
|
||||||
|
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\
|
||||||
|
This is required for Nitro to work, do you want to continue?\\n\
|
||||||
|
G-Earth will ask you for Administrator permission if you do so.
|
||||||
|
|
||||||
|
### Alert - Already connected
|
||||||
|
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\
|
||||||
|
Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\\n\
|
||||||
|
\\n\
|
||||||
|
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
|
||||||
|
|
||||||
|
### Alert - Something went wrong
|
||||||
|
alert.somethingwentwrong.title=Something went wrong!
|
||||||
|
alert.somethingwentwrong.content=Something went wrong!\\n\
|
||||||
|
\\n\
|
||||||
|
Head over to our Troubleshooting page to solve the problem:
|
||||||
|
|
||||||
|
### Alert - Allow extension connection
|
||||||
|
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\
|
||||||
|
accept this connection?
|
||||||
|
|
||||||
|
### Alert - G-Python error
|
||||||
|
alert.gpythonerror.title=G-Python error
|
||||||
|
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\
|
||||||
|
are you sure you followed the installation guide correctly?\\n\
|
||||||
|
\\n\
|
||||||
|
More information here:
|
||||||
|
|
||||||
|
|
||||||
|
## Internal extension
|
||||||
|
|
||||||
|
### Internal extension - G-ExtensionStore
|
||||||
|
ext.store.elapsedtime.second.single=second
|
||||||
|
ext.store.elapsedtime.second.multiple=seconds
|
||||||
|
ext.store.elapsedtime.minute.single=minute
|
||||||
|
ext.store.elapsedtime.minute.multiple=minutes
|
||||||
|
ext.store.elapsedtime.hour.single=hour
|
||||||
|
ext.store.elapsedtime.hour.multiple=hours
|
||||||
|
ext.store.elapsedtime.day.single=day
|
||||||
|
ext.store.elapsedtime.day.multiple=days
|
||||||
|
ext.store.elapsedtime.week.single=week
|
||||||
|
ext.store.elapsedtime.week.multiple=weeks
|
||||||
|
ext.store.elapsedtime.month.single=month
|
||||||
|
ext.store.elapsedtime.month.multiple=months
|
||||||
|
ext.store.elapsedtime.year.single=year
|
||||||
|
ext.store.elapsedtime.year.multiple=years
|
||||||
|
ext.store.extension.version=Version
|
||||||
|
ext.store.extension.rating=Rating
|
||||||
|
ext.store.extension.madeby=By %s
|
||||||
|
ext.store.extension.lastupdated=last updated %s ago
|
||||||
|
ext.store.extension.notinstore=Not found in G-ExtensionStore
|
||||||
|
ext.store.extension.details.description=Description
|
||||||
|
ext.store.extension.details.authors=Author(s)
|
||||||
|
ext.store.extension.details.categories=Categories
|
||||||
|
ext.store.extension.details.technical_information=Technical information
|
||||||
|
ext.store.extension.details.click_here=Click here
|
||||||
|
ext.store.extension.details.releases=Releases
|
||||||
|
ext.store.extension.details.language=Language
|
||||||
|
ext.store.extension.details.source=Source
|
||||||
|
ext.store.extension.details.framework=Framework
|
||||||
|
ext.store.extension.details.systems=Systems
|
||||||
|
ext.store.extension.details.clients=Compatible clients
|
||||||
|
ext.store.extension.details.screenshot=Screenshot
|
||||||
|
ext.store.extension.author.reputation=reputation
|
||||||
|
ext.store.extension.author.releases=releases
|
||||||
|
ext.store.extension.warning.requirement=Warning: the framework requires --url:additional installations-
|
||||||
|
! IMPORTANT: the previous line has to end with the --url component like the english version
|
||||||
|
ext.store.extension.warning.unstable=Warning: this extension has been marked unstable!
|
||||||
|
|
||||||
|
ext.store.extension.status.await.install=Install extension
|
||||||
|
ext.store.extension.status.await.install.message=Press "OK" and wait while the extension is begin installed
|
||||||
|
ext.store.extension.status.await.update=Update extension
|
||||||
|
ext.store.extension.status.await.update.message=Press "OK" and wait while the extension is begin updated
|
||||||
|
ext.store.extension.status.success.install=Install completed
|
||||||
|
ext.store.extension.status.success.install.message=Extension installation completed successfully
|
||||||
|
ext.store.extension.status.success.update=Update completed
|
||||||
|
ext.store.extension.status.success.update.message=Extension update completed successfully
|
||||||
|
ext.store.extension.status.error.install=Install failed
|
||||||
|
ext.store.extension.status.error.install.message=Installation failed with the following message
|
||||||
|
ext.store.extension.status.error.update=Update failed
|
||||||
|
ext.store.extension.status.error.update.message=Update failed with the following message
|
||||||
|
|
||||||
|
ext.store.button.search=Search
|
||||||
|
ext.store.button.install=Install
|
||||||
|
ext.store.button.installed=Installed
|
||||||
|
ext.store.button.update=Update
|
||||||
|
ext.store.search.title=Search
|
||||||
|
ext.store.search.description=Find the extension that fits your needs
|
||||||
|
ext.store.search.contenttitle=Search extensions
|
||||||
|
ext.store.search.bykeyword=Search by keyword
|
||||||
|
ext.store.search.results=Search results
|
||||||
|
ext.store.search.ordering=Extensions ordering
|
||||||
|
ext.store.search.ordering.bydate.title=New Releases
|
||||||
|
ext.store.search.ordering.bydate.description=Extensions that were recently added to the G-ExtensionStore
|
||||||
|
ext.store.search.ordering.bydate.contenttitle=New Releases
|
||||||
|
ext.store.search.ordering.byrating.title=Popular Extensions
|
||||||
|
ext.store.search.ordering.byrating.description=Extensions sorted by rating
|
||||||
|
ext.store.search.ordering.byrating.contenttitle=Popular Extensions
|
||||||
|
ext.store.search.ordering.byupdate.title=Recently Updated
|
||||||
|
ext.store.search.ordering.byupdate.description=Extensions that were recently updated
|
||||||
|
ext.store.search.ordering.byupdate.contenttitle=Recently Updated
|
||||||
|
ext.store.search.filter.clients=Clients
|
||||||
|
ext.store.search.filter.categories=Categories
|
||||||
|
ext.store.search.filter.frameworks=Frameworks
|
||||||
|
ext.store.search.info.automaticosfiltering=Info: you are automatically filtering on the OS you use
|
||||||
|
ext.store.category=Category
|
||||||
|
ext.store.overview.title=Installed Extensions
|
||||||
|
ext.store.overview.description=Extensions that are already installed into G-Earth
|
||||||
|
ext.store.overview.contenttitle=Installed extensions
|
||||||
|
ext.store.overview.folder=Open folder
|
||||||
|
|
||||||
|
ext.store.categories.title=Categories
|
||||||
|
ext.store.categories.description=Explore the different kinds of extensions G-Earth has to offer
|
||||||
|
ext.store.categories.contenttitle=Categories
|
Loading…
Reference in New Issue
Block a user