Internationalization

This commit is contained in:
WiredSpast 2022-08-06 00:56:27 +02:00
parent 630c43b07a
commit ddb37d5fad
51 changed files with 2539 additions and 209 deletions

View File

@ -22,6 +22,8 @@ import javafx.stage.Stage;
import javafx.stage.StageStyle;
import sun.misc.Cache;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.function.Consumer;
public class GEarth extends Application {
@ -30,6 +32,7 @@ public class GEarth extends Application {
public static String version = "1.5.2";
public static String gitApi = "https://api.github.com/repos/sirjonasxx/G-Earth/releases/latest";
public static ObservableObject<Theme> observableTheme;
public static ResourceBundle translation;
private Stage stage;
private GEarthController controller;
@ -47,7 +50,9 @@ public class GEarth extends Application {
main = this;
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();
controller = loader.getController();
controller.setStage(primaryStage);

View File

@ -1,5 +1,6 @@
package gearth.misc;
import gearth.GEarth;
import gearth.ui.titlebar.TitleBarController;
import javafx.application.Platform;
import javafx.scene.control.Alert;
@ -47,7 +48,7 @@ public class AdminValidator {
if (!AdminValidator.isAdmin()) {
Platform.runLater(() -> {
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 {
TitleBarController.create(alert).showAlert();
} catch (IOException e) {

View File

@ -37,10 +37,10 @@ public class UpdateChecker {
String body = (String)object.get("body");
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();
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");
fp.getChildren().addAll( lbl, link);
link.setOnAction(event -> {
@ -51,7 +51,7 @@ public class UpdateChecker {
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);
alert.setResizable(false);

View File

@ -108,9 +108,7 @@ public class ProxyProviderFactory {
Platform.runLater(() -> {
Alert alert = new Alert(Alert.AlertType.ERROR, "", ButtonType.OK);
alert.getDialogPane().getChildren().add(new Label("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.getDialogPane().getChildren().add(new Label(GEarth.translation.getString("alert.alreadyconnected.content").replaceAll("\\\\n", System.lineSeparator())));
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
alert.setResizable(false);
try {

View File

@ -126,7 +126,7 @@ public abstract class FlashProxyProvider implements ProxyProvider {
protected void showInvalidConnectionError() {
Platform.runLater(() -> {
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.setResizable(false);
try {

View File

@ -53,14 +53,12 @@ public class NitroHttpProxy {
Platform.runLater(() -> {
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, ADMIN_WARNING_KEY,
"Root certificate installation", null,
"", "Remember my choice",
GEarth.translation.getString("alert.rootcertificate.title"), null,
"", GEarth.translation.getString("alert.rootcertificate.remember"),
ButtonType.YES, ButtonType.NO
);
alert.getDialogPane().setContent(new Label("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.getDialogPane().setContent(new Label(GEarth.translation.getString("alert.rootcertificate.content").replaceAll("\\\\n", System.lineSeparator())));
try {
shouldInstall.set(TitleBarController.create(alert).showAlertAndWait()

View File

@ -72,10 +72,10 @@ public class Rc4Obtainer {
System.err.println("COULD NOT FIND RC4 TABLE");
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();
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");
fp.getChildren().addAll(lbl, link);
link.setOnAction(event -> {

View File

@ -1,5 +1,6 @@
package gearth.services.extension_handler.extensions.implementations.network.authentication;
import gearth.GEarth;
import gearth.misc.ConfirmationDialog;
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtension;
import gearth.ui.titlebar.TitleBarController;
@ -68,13 +69,12 @@ public class Authenticator {
boolean[] done = {false};
Platform.runLater(() -> {
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.WARNING, connectExtensionKey
,"Confirmation Dialog", null,
"", "Remember my choice",
, GEarth.translation.getString("alert.confirmation.windowtitle"), null,
"", GEarth.translation.getString("alert.confirmation.button.remember"),
ButtonType.YES, ButtonType.NO
);
alert.getDialogPane().setContent(new Label("Extension \""+extension.getTitle()+"\" tries to connect but isn't known to G-Earth,\n" +
"accept this connection?"));
alert.getDialogPane().setContent(new Label(String.format(GEarth.translation.getString("alert.extconnection.content"), extension.getTitle()).replaceAll("\\\\n", System.lineSeparator())));
try {
if (!(TitleBarController.create(alert).showAlertAndWait()

View File

@ -170,13 +170,11 @@ public class GPythonShell {
private void showError() {
Platform.runLater(() -> {
Alert alert = new Alert(Alert.AlertType.ERROR, "G-Python error", ButtonType.OK);
alert.setTitle("G-Python error");
Alert alert = new Alert(Alert.AlertType.ERROR, GEarth.translation.getString("alert.gpythonerror.title"), ButtonType.OK);
alert.setTitle(GEarth.translation.getString("alert.gpythonerror.title"));
FlowPane fp = new FlowPane();
Label lbl = new Label("Something went wrong launching the G-Python shell," +
System.lineSeparator() + "are you sure you followed the installation guide correctly?" +
System.lineSeparator() + System.lineSeparator() + "More information here:");
Label lbl = new Label(GEarth.translation.getString("alert.gpythonerror.content").replaceAll("\\\\n", System.lineSeparator()));
Hyperlink link = new Hyperlink(ExtraController.INFO_URL_GPYTHON);
fp.getChildren().addAll(lbl, link);
link.setOnAction(event -> {

View File

@ -107,6 +107,7 @@ public class GExtensionStoreController implements Initializable {
});
webView.getEngine().load(GExtensionStoreController.class.getResource("webview/index.html").toString());
}

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application;
import gearth.GEarth;
import org.w3c.dom.Element;
import java.time.LocalDateTime;
@ -43,19 +44,19 @@ public class WebUtils {
}
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;
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;
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;
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;
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;
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;
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) {

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities;
import gearth.GEarth;
import gearth.protocol.HMessage;
import gearth.protocol.HPacket;
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
@ -56,12 +57,12 @@ public class StoreExtensionItem implements ContentItem {
.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 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 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_bottom\">").append("Rating: ").append(storeExtension.getRating()).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(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>")

View File

@ -1,5 +1,6 @@
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.application.GExtensionStoreController;
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
@ -58,7 +59,7 @@ public class CategoryItem implements ContentItem {
.append("</div>")
.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>")

View File

@ -1,5 +1,6 @@
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.application.entities.ContentItem;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -57,17 +58,17 @@ public class CategoryOverview extends HOverview {
@Override
public String title() {
return "Categories";
return GEarth.translation.getString("ext.store.categories.title");
}
@Override
public String description() {
return "Explore the different kinds of extensions G-Earth has to offer";
return GEarth.translation.getString("ext.store.categories.description");
}
@Override
public String contentTitle() {
return "Categories";
return GEarth.translation.getString("ext.store.categories.contenttitle");
}
};
}

View File

@ -1,5 +1,6 @@
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.application.GExtensionStoreController;
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
@ -45,32 +46,32 @@ public class StoreExtensionDetailsItem implements ContentItem {
contentBuilder
.append(String.format("*%s*", storeExtension.getTitle())).append(" - v").append(storeExtension.getVersion()).append("\n\n")
.append("*Description*\n").append(descriptionQuoted).append("\n \n")
.append("*Author(s):* ").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.description")).append(":*\n").append(descriptionQuoted).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("*").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)
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")
.append("> Source: --url:Click Here-").append(storeExtension.getSource()).append("\n")
.append("> Framework: ").append(storeExtension.getFramework().getFramework().getName()).append(" - v").append(storeExtension.getFramework().getVersion()).append("\n")
.append("> Systems: ").append(String.join(", ", storeExtension.getCompatibility().getSystems())).append("\n \n");
contentBuilder.append("> ").append(GEarth.translation.getString("ext.store.extension.details.language")).append(": ").append(storeExtension.getLanguage()).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("> ").append(GEarth.translation.getString("ext.store.extension.details.framework")).append(": ").append(storeExtension.getFramework().getFramework().getName()).append(" - v").append(storeExtension.getFramework().getVersion()).append("\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()) {
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");
}
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--")
.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(" --enddiv--");
@ -151,8 +152,8 @@ public class StoreExtensionDetailsItem implements ContentItem {
.append("<div class=\"comment_body comment_open\">")
.append("<div class=\"cb_author\">")
.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.getExtensionsCount()).append(" releases</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(" ").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>")
.append("<div class=\"cb_content\">").append(contentsInHtml()).append("</div>")

View File

@ -1,5 +1,6 @@
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.executer.NormalExtensionRunner;
import gearth.services.internal_extensions.extensionstore.GExtensionStore;
@ -62,7 +63,7 @@ public class StoreExtensionDetailsOverview extends HOverview {
public String buttonText() {
int mode = mode();
// 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
@ -91,23 +92,23 @@ public class StoreExtensionDetailsOverview extends HOverview {
private void awaitPopup(String mode) {
popup(Alert.AlertType.WARNING,
String.format("%s extension", mode),
String.format("%s extension [%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", mode)),
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.start.%s", mode)), extension.getTitle()),
GEarth.translation.getString(String.format("ext.store.extension.status.start.%s.message", mode)));
}
private void successPopup(String mode) {
popup(Alert.AlertType.INFORMATION,
String.format("%s completed", mode),
String.format("%s completed [%s]", mode, extension.getTitle()),
String.format("Extension %s completed successfully", mode.toLowerCase()));
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)),
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)), extension.getTitle()),
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s.message", mode)));
}
private void errorPopup(String mode, String error) {
popup(Alert.AlertType.ERROR,
String.format("%s failed", mode),
String.format("%s failed [%s]", mode, extension.getTitle()),
String.format("%s failed with the following message: %s", mode, error));
GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)),
String.format("%s [%s]", GEarth.translation.getString(String.format("ext.store.extension.status.success.%s", mode)), extension.getTitle()),
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) {
@ -128,7 +129,7 @@ public class StoreExtensionDetailsOverview extends HOverview {
int mode = mode();
if (mode == 1) return;
String modeString = mode() == 0 ? "Install" : "Update";
String modeString = mode() == 0 ? "install" : "update";
HOverview selff = this;
StoreExtensionTools.InstallExtListener listener = new StoreExtensionTools.InstallExtListener() {

View File

@ -1,5 +1,6 @@
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.application.entities.ContentItem;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -30,7 +31,7 @@ public class InstalledOverview extends HOverview {
@Override
public String buttonText() {
return "Open folder";
return GEarth.translation.getString("ext.store.overview.folder");
}
@Override
@ -75,17 +76,17 @@ public class InstalledOverview extends HOverview {
@Override
public String title() {
return "Installed Extensions";
return GEarth.translation.getString("ext.store.overview.title");
}
@Override
public String description() {
return "Extensions that are already installed into G-Earth";
return GEarth.translation.getString("ext.store.overview.description");
}
@Override
public String contentTitle() {
return "Installed extensions";
return GEarth.translation.getString("ext.store.overview.contenttitle");
}
};
}

View File

@ -1,5 +1,6 @@
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.application.GExtensionStoreController;
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=\"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 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>")

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
import gearth.GEarth;
import gearth.misc.OSValidator;
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -32,17 +33,17 @@ public class ByDateOverview extends QueriedExtensionOverview {
@Override
public String title() {
return "New Releases";
return GEarth.translation.getString("ext.store.search.ordering.bydate.title");
}
@Override
public String description() {
return "Extensions that were recently added to the G-ExtensionStore";
return GEarth.translation.getString("ext.store.search.ordering.bydate.description");
}
@Override
public String contentTitle() {
return "New Releases";
return GEarth.translation.getString("ext.store.search.ordering.bydate.contenttitle");
}
};
}

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
import gearth.GEarth;
import gearth.misc.OSValidator;
import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -32,17 +33,17 @@ public class ByRatingOverview extends QueriedExtensionOverview {
@Override
public String title() {
return "Popular Extensions";
return GEarth.translation.getString("ext.store.search.ordering.byrating.title");
}
@Override
public String description() {
return "Extensions sorted by rating";
return GEarth.translation.getString("ext.store.search.ordering.byrating.description");
}
@Override
public String contentTitle() {
return "Popular Extensions";
return GEarth.translation.getString("ext.store.search.ordering.byrating.contenttitle");
}
};
}

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
import gearth.GEarth;
import gearth.misc.OSValidator;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
@ -31,17 +32,17 @@ public class ByUpdateOverview extends QueriedExtensionOverview {
@Override
public String title() {
return "Recently Updated";
return GEarth.translation.getString("ext.store.search.ordering.byupdate.title");
}
@Override
public String description() {
return "Extensions that were recently updated";
return GEarth.translation.getString("ext.store.search.ordering.byupdate.description");
}
@Override
public String contentTitle() {
return "Recently Updated";
return GEarth.translation.getString("ext.store.search.ordering.byupdate.contenttitle");
}
};
}

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
import gearth.GEarth;
import gearth.misc.OSValidator;
import gearth.services.internal_extensions.extensionstore.application.WebUtils;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -47,7 +48,7 @@ public class CategorizedOverview extends QueriedExtensionOverview {
@Override
public String contentTitle() {
return "Category: " + category.getName();
return GEarth.translation.getString("ext.store.category") + ": " + category.getName();
}
};
}

View File

@ -1,5 +1,6 @@
package gearth.services.internal_extensions.extensionstore.application.entities.queriedoverviews;
import gearth.GEarth;
import gearth.misc.OSValidator;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
import gearth.services.internal_extensions.extensionstore.repository.StoreRepository;
@ -48,17 +49,17 @@ public class SearchedQueryOverview extends QueriedExtensionOverview {
@Override
public String title() {
return "Search";
return GEarth.translation.getString("ext.store.search.title");
}
@Override
public String description() {
return "Find the extension that fits your needs";
return GEarth.translation.getString("ext.store.search.description");
}
@Override
public String contentTitle() {
return "Search results";
return GEarth.translation.getString("ext.store.search.results");
}
};
}

View File

@ -1,5 +1,6 @@
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.application.GExtensionStoreController;
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=\"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\" " +
"oninput=\"%s.setSearchKeyword(this.value);\">", searchKeyword, id))
.append("</div>")
.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
htmlBuilder.append(String.format("<select class=\"inputBox\" name=\"ordering\" id=\"ordering\" " +
@ -119,13 +120,13 @@ public class SearchComponent implements ContentItem {
.append("<div class=\"filterStuff\">");
addFilterBoxHtml(htmlBuilder, "Client", "Clients:", clients, id);
addFilterBoxHtml(htmlBuilder, "Category", "Categories:", categories, id);
addFilterBoxHtml(htmlBuilder, "Framework", "Frameworks:", frameworks, id);
addFilterBoxHtml(htmlBuilder, "Client", GEarth.translation.getString("ext.store.search.filter.clients") + ":", clients, id);
addFilterBoxHtml(htmlBuilder, "Category", GEarth.translation.getString("ext.store.search.filter.categories") + ":", categories, id);
addFilterBoxHtml(htmlBuilder, "Framework", GEarth.translation.getString("ext.store.search.filter.frameworks") + ":", frameworks, id);
htmlBuilder
.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>");

View File

@ -1,5 +1,6 @@
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.application.entities.ContentItem;
import gearth.services.internal_extensions.extensionstore.application.entities.HOverview;
@ -27,7 +28,7 @@ public class SearchOverview extends HOverview {
@Override
public String buttonText() {
return "Search";
return GEarth.translation.getString("ext.store.button.search");
}
@Override
@ -74,17 +75,17 @@ public class SearchOverview extends HOverview {
@Override
public String title() {
return "Search";
return GEarth.translation.getString("ext.store.search.title");
}
@Override
public String description() {
return "Find the extension that fits your needs";
return GEarth.translation.getString("ext.store.search.description");
}
@Override
public String contentTitle() {
return "Search extensions";
return GEarth.translation.getString("ext.store.search.contenttitle");
}
};
}

View File

@ -176,20 +176,20 @@ public class ConnectionController extends SubForm {
getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> {
updateInputUI();
if (newState == HState.NOT_CONNECTED) {
lblState.setText("Not connected");
btnConnect.setText("Connect");
lblState.setText(GEarth.translation.getString("tab.connection.state.notconnected"));
btnConnect.setText(GEarth.translation.getString("tab.connection.connect"));
outHost.setText("");
outPort.setText("");
}
else if (oldState == HState.NOT_CONNECTED) {
btnConnect.setText("Abort");
btnConnect.setText(GEarth.translation.getString("tab.connection.abort"));
}
if (newState == HState.CONNECTED) {
lblState.setText("Connected");
lblState.setText(GEarth.translation.getString("tab.connection.state.connected"));
}
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()) {

View File

@ -1,5 +1,6 @@
package gearth.ui.subforms.extensions;
import gearth.GEarth;
import gearth.services.extension_handler.extensions.ExtensionType;
import gearth.services.extension_handler.extensions.GEarthExtension;
import gearth.ui.titlebar.TitleBarController;
@ -80,7 +81,7 @@ public class ExtensionItemContainer extends GridPane {
add(versionLabel, 3, 0);
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);
exitButton.show();
clickButton = new SimpleClickButton();
@ -89,7 +90,7 @@ public class ExtensionItemContainer extends GridPane {
buttonsBox = new HBox(clickButton, exitButton);
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);
reloadButton.show();
reloadButton.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
@ -99,7 +100,7 @@ public class ExtensionItemContainer extends GridPane {
});
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);
deleteButton.show();
GridPane this2 = this;
@ -110,8 +111,8 @@ public class ExtensionItemContainer extends GridPane {
if (ConfirmationDialog.showDialog(uninstallKey)) {
Alert alert = ConfirmationDialog.createAlertWithOptOut(Alert.AlertType.CONFIRMATION, uninstallKey
,"Confirmation Dialog", null,
"Are you sure want to uninstall this extension?", "Do not ask again",
, GEarth.translation.getString("alert.confirmation.windowtitle"), null,
GEarth.translation.getString("tab.extensions.table.edit.uninstall.confirmation"), GEarth.translation.getString("alert.confirmation.button.donotaskagain"),
ButtonType.YES, ButtonType.NO
);

View File

@ -1,5 +1,6 @@
package gearth.ui.subforms.extensions;
import gearth.GEarth;
import gearth.services.extension_handler.ExtensionHandler;
import gearth.services.extension_handler.extensions.ExtensionListener;
import gearth.services.extension_handler.extensions.implementations.network.NetworkExtensionsProducer;
@ -80,9 +81,9 @@ public class ExtensionsController extends SubForm {
public void installBtnClicked(ActionEvent actionEvent) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Install extension");
fileChooser.setTitle(GEarth.translation.getString("tab.extensions.button.install.windowtitle"));
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());
if (selectedFile != null) {
extensionRunner.installAndRunExtension(selectedFile.getPath(), networkExtensionsProducer.getPort());
@ -116,7 +117,7 @@ public class ExtensionsController extends SubForm {
pythonShellLaunching = true;
Platform.runLater(() -> btn_gpython.setDisable(true));
GPythonShell shell = new GPythonShell(
"Scripting shell " + gpytonShellCounter++,
String.format("%s %d", GEarth.translation.getString("tab.extensions.button.pythonshell.windowtitle"),gpytonShellCounter++),
networkExtensionsProducer.getPort(),
Authenticator.generatePermanentCookie()
);

View File

@ -38,7 +38,7 @@ public class ExtensionLogger {
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.setAlwaysOnTop(true);
stage.setMinHeight(235);

View File

@ -177,12 +177,13 @@ public class ExtraController extends SubForm implements SocksConfiguration {
});
if (!GPythonVersionUtils.validInstallation()) {
Platform.runLater(() -> {
Alert alert = new Alert(Alert.AlertType.ERROR, "G-Python installation", ButtonType.OK);
alert.setTitle("G-Python installation");
Alert alert = new Alert(Alert.AlertType.ERROR, GEarth.translation.getString("tab.extra.options.pythonscripting.alert.title"), ButtonType.OK);
alert.setTitle(GEarth.translation.getString("tab.extra.options.pythonscripting.alert.title"));
FlowPane fp = new FlowPane();
Label lbl = new Label("Before using G-Python, install the right packages using pip!" +
System.lineSeparator() + System.lineSeparator() + "More information here:");
Label lbl = new Label(GEarth.translation.getString("tab.extra.options.pythonscripting.alert.content") +
System.lineSeparator() + System.lineSeparator() +
GEarth.translation.getString("tab.extra.options.pythonscripting.alert.moreinformation"));
Hyperlink link = new Hyperlink(INFO_URL_GPYTHON);
fp.getChildren().addAll( lbl, link);
link.setOnAction(event -> {

View File

@ -54,11 +54,11 @@ public class InfoController extends SubForm {
public void donate(ActionEvent actionEvent) {
String pubkey = "1GEarthEV9Ua3RcixsKTcuc1PPZd9hqri3";
Alert alert = new Alert(Alert.AlertType.INFORMATION, "Donate Bitcoins", ButtonType.OK);
alert.setHeaderText("Donate Bitcoins");
Alert alert = new Alert(Alert.AlertType.INFORMATION, GEarth.translation.getString("tab.info.donate.alert.title"), ButtonType.OK);
alert.setHeaderText(GEarth.translation.getString("tab.info.donate.alert.title"));
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);
pubText.setPrefHeight(28);
pubText.setMaxWidth(250);

View File

@ -1,5 +1,6 @@
package gearth.ui.subforms.injection;
import gearth.GEarth;
import gearth.misc.StringifyAble;
import gearth.protocol.HMessage;
import gearth.protocol.HPacket;
@ -19,7 +20,7 @@ public class InjectedPackets implements StringifyAble {
public InjectedPackets(String packetsAsString, int amountPackets, PacketInfoManager packetInfoManager, HMessage.Direction direction) {
String description;
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
HPacket packet = new HPacket(packetsAsString);
@ -40,7 +41,7 @@ public class InjectedPackets implements StringifyAble {
description = String.format("%s", identifier);
}
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());
}
}

View File

@ -1,5 +1,6 @@
package gearth.ui.subforms.injection;
import gearth.GEarth;
import gearth.misc.Cacher;
import gearth.services.packet_info.PacketInfoManager;
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);
if (rawHistory != null) {
@ -103,7 +104,7 @@ public class InjectionController extends SubForm {
private void updateUI() {
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().add("not-corrupted-label");
@ -119,7 +120,7 @@ public class InjectionController extends SubForm {
for (int i = 0; i < packets.length; i++) {
if (packets[i].isCorrupted()) {
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().add("corrupted-label");
dirty = true;
@ -129,7 +130,7 @@ public class InjectionController extends SubForm {
}
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) {
@ -147,15 +148,23 @@ public class InjectionController extends SubForm {
btn_sendToClient.setDisable(!canSendToClient || getHConnection().getState() != HState.CONNECTED);
btn_sendToServer.setDisable(!canSendToServer || getHConnection().getState() != HState.CONNECTED);
if (packets.length == 1) {
lbl_pcktInfo.setText("header (id:" + packets[0].headerId() + ", length:" +
packets[0].length() + ")");
lbl_pcktInfo.setText(String.format("%s (%s: %d, %s: %d)",
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 {
lbl_pcktInfo.setText("");
}
} else {
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 {
lbl_pcktInfo.setText("");
@ -171,7 +180,7 @@ public class InjectionController extends SubForm {
HPacket[] packets = parsePackets(inputPacket.getText());
for (HPacket packet : packets) {
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);
@ -181,7 +190,7 @@ public class InjectionController extends SubForm {
HPacket[] packets = parsePackets(inputPacket.getText());
for (HPacket packet : packets) {
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);

View File

@ -1,6 +1,7 @@
package gearth.ui.subforms.scheduler;
import com.tulskiy.keymaster.common.Provider;
import gearth.GEarth;
import gearth.services.scheduler.Interval;
import gearth.services.scheduler.Scheduler;
import javafx.application.Platform;
@ -56,9 +57,9 @@ public class SchedulerController extends SubForm {
txt_packet.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_save.setTooltip(new Tooltip("Save to file"));
btn_load.setTooltip(new Tooltip("Load from file"));
btn_clear.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.clear.tooltip")));
btn_save.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.save.tooltip")));
btn_load.setTooltip(new Tooltip(GEarth.translation.getString("tab.scheduler.button.load.tooltip")));
updateUI();
@ -157,7 +158,7 @@ public class SchedulerController extends SubForm {
rb_outgoing.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOSERVER);
isBeingEdited = newItem;
btn_addoredit.setText("Edit");
btn_addoredit.setText(GEarth.translation.getString("tab.scheduler.button.edit"));
updateUI();
newItem.onIsBeingUpdatedTrigger();
}
@ -175,7 +176,7 @@ public class SchedulerController extends SubForm {
rb_incoming.setSelected(true);
rb_outgoing.setSelected(false);
btn_addoredit.setText("Add");
btn_addoredit.setText(GEarth.translation.getString("tab.scheduler.button.add"));
updateUI();
}
@ -203,9 +204,9 @@ public class SchedulerController extends SubForm {
//Set extension filter
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.setTitle("Save Schedule File");
fileChooser.setTitle(GEarth.translation.getString("tab.scheduler.button.save.windowtitle"));
//Show save file dialog
File file = fileChooser.showSaveDialog(parentController.getStage());
@ -234,9 +235,9 @@ public class SchedulerController extends SubForm {
List<InteractableScheduleItem> list = new ArrayList<>();
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Load Schedule File");
fileChooser.setTitle(GEarth.translation.getString("tab.scheduler.button.load.windowtitle"));
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());
if (selectedFile != null) {

View File

@ -5,27 +5,27 @@
<!--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">
<Tab text="Connection">
<Tab text="%tab.connection">
<fx:include fx:id="connection" source="subforms/connection/Connection.fxml" />
</Tab>
<Tab fx:id="tab_Logger" text="Logger">
<fx:include fx:id="logger" source="subforms/logger/Logger.fxml" />
</Tab>
<Tab text="Injection">
<Tab text="%tab.injection">
<fx:include fx:id="injection" source="subforms/injection/Injection.fxml" />
</Tab>
<Tab text="Tools">
<Tab text="%tab.tools">
<fx:include fx:id="tools" source="subforms/tools/Tools.fxml" />
</Tab>
<Tab text="Scheduler">
<Tab text="%tab.scheduler">
<fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" />
</Tab>
<Tab text="Extensions">
<Tab text="%tab.extensions">
<fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" />
</Tab>
<Tab text="Extra">
<Tab text="%tab.extra">
<fx:include fx:id="extra" source="subforms/extra/Extra.fxml" />
</Tab>
<Tab text="Info">

View File

@ -45,7 +45,7 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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">
<GridPane.margin>
<Insets right="15.0" />
@ -60,7 +60,7 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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">
<GridPane.margin>
<Insets right="15.0" />
@ -78,7 +78,7 @@
<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>
<Insets left="-5.0" />
</GridPane.margin>
@ -86,7 +86,7 @@
<Font size="12.0" />
</font>
</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>
<Insets left="15.0" right="15.0" />
</GridPane.margin>
@ -114,7 +114,7 @@
<RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" />
</rowConstraints>
<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">
<opaqueInsets>
<Insets />
@ -140,12 +140,12 @@
<RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" />
</rowConstraints>
<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>
<Insets left="12.0" />
</padding>
</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 fx:id="tgl_clientMode" />
</toggleGroup>
@ -153,12 +153,12 @@
<Insets />
</GridPane.margin>
</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>
<Insets />
</GridPane.margin>
</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>
<Insets />
</GridPane.margin>
@ -196,7 +196,7 @@
<GridPane.margin>
<Insets bottom="14.0" left="20.0" right="20.0" />
</GridPane.margin>
<Label text="Connection state:" textFill="#000000ba" GridPane.valignment="BOTTOM">
<Label text="%tab.connection.state" textFill="#000000ba" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets bottom="5.0" left="2.0" />
</GridPane.margin>
@ -204,7 +204,7 @@
<Font size="12.0" />
</font>
</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>
<Insets />
</GridPane.margin>
@ -225,12 +225,12 @@
<padding>
<Insets bottom="7.0" top="7.0" />
</padding>
<Label text="Game host:" textFill="#000000cc">
<Label text="%tab.connection.host" textFill="#000000cc">
<GridPane.margin>
<Insets left="10.0" />
</GridPane.margin>
</Label>
<Label text="Port:" textFill="#000000cc" GridPane.rowIndex="1">
<Label text="%tab.connection.port" textFill="#000000cc" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="10.0" />
</GridPane.margin>

View File

@ -31,11 +31,11 @@
<VBox.margin>
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
</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="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="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.title" />
<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="%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="%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="%tab.extensions.table.edit" GridPane.columnIndex="4" />
</GridPane>
</VBox>
</ScrollPane>
@ -61,19 +61,19 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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">
<GridPane.margin>
<Insets left="-7.0" />
</GridPane.margin>
</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>
<Insets left="3.0" />
</GridPane.margin>
</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_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_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="%tab.extensions.button.logs" GridPane.columnIndex="4" />
</GridPane>
</GridPane>
</GridPane>

View File

@ -15,9 +15,9 @@
<children>
<AnchorPane prefHeight="262.0" prefWidth="318.0">
<children>
<CheckBox fx:id="cbx_alwaysOnTop" layoutX="14.0" layoutY="232.0" mnemonicParsing="false" text="Always on top" />
<Hyperlink fx:id="url_troubleshooting" layoutX="223.0" layoutY="232.0" text="Troubleshooting" />
<Label layoutX="14.0" layoutY="8.0" text="Notepad:" textFill="#000000bd" />
<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="%tab.extra.troubleshooting" />
<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" />
</children>
</AnchorPane>
@ -50,9 +50,9 @@
<Insets left="7.0" top="3.0" />
</padding>
<children>
<CheckBox fx:id="cbx_useSocks" mnemonicParsing="false" text="Use SOCKS proxy" />
<CheckBox fx:id="cbx_disableDecryption" mnemonicParsing="false" text="Disable decryption" GridPane.rowIndex="2" />
<CheckBox fx:id="cbx_debug" mnemonicParsing="false" text="Debug to stdout" GridPane.rowIndex="3" />
<CheckBox fx:id="cbx_useSocks" mnemonicParsing="false" text="%tab.extra.options.advanced.socks" />
<CheckBox fx:id="cbx_disableDecryption" mnemonicParsing="false" text="%tab.extra.options.advanced.disabledecryption" GridPane.rowIndex="2" />
<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">
<columnConstraints>
<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>
<children>
<Label text="Proxy IP:" />
<Label text="Proxy port:" GridPane.rowIndex="1" />
<Label text="%tab.extra.options.advanced.proxy.ip" />
<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">
<opaqueInsets>
<Insets />
@ -104,7 +104,7 @@
</GridPane>
</children>
</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>
<Insets left="10.0" top="2.0" />
</GridPane.margin>
@ -112,12 +112,12 @@
<Insets top="2.0" />
</padding>
</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>
<Insets left="10.0" top="2.0" />
</GridPane.margin>
</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>
<Insets left="10.0" top="2.0" />
</GridPane.margin>

View File

@ -20,12 +20,12 @@
<Font size="18.0" />
</font>
</Label>
<Label layoutX="260.0" layoutY="57.0" text="Habbo packet manipulator for Linux, Windows &amp; Mac" textFill="#000000b2">
<Label layoutX="260.0" layoutY="57.0" text="%tab.info.description" textFill="#000000b2">
<font>
<Font size="14.0" />
</font>
</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 name="System Bold" size="14.0" />
</font>
@ -35,7 +35,7 @@
<Font size="14.0" />
</font>
</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 name="System Bold" size="14.0" />
</font>
@ -75,7 +75,7 @@
<Font size="14.0" />
</font>
</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 name="System Bold" size="14.0" />
</font>
@ -85,7 +85,7 @@
<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_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_d_bonnie" layoutX="400.0" layoutY="221.0" text="Discord - BonnieScripting (pt/br)" />-->
</children>

View File

@ -5,7 +5,7 @@
<?import javafx.scene.layout.*?>
<?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 hgrow="SOMETIMES" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="180.0" minWidth="180.0" prefWidth="180.0" />
@ -37,12 +37,12 @@
<GridPane.margin>
<Insets left="13.0" right="13.0" top="4.0" />
</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 name="System Italic" size="11.0" />
</font>
</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 name="System Italic" size="11.0" />
</font>
@ -61,12 +61,12 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</GridPane.margin>
</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>
<Insets bottom="5.0" left="10.0" right="10.0" top="5.0" />
</GridPane.margin>
@ -92,11 +92,11 @@
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<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>
<Insets right="6.0" />
</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>
<Insets />
</GridPane.margin>

View File

@ -31,11 +31,11 @@
<VBox.margin>
<Insets bottom="-2.0" left="-2.0" right="-2.0" top="-2.0" />
</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="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="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.index" />
<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="%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="%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="%tab.scheduler.table.edit" GridPane.columnIndex="4" />
</GridPane>
</VBox>
</ScrollPane>
@ -67,14 +67,14 @@
<Insets left="-7.0" />
</GridPane.margin>
</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>
<Insets left="3.0" />
</GridPane.margin>
</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_save" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#saveBtnClicked" text="S" 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_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="%tab.scheduler.button.save" GridPane.columnIndex="4" />
<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 prefHeight="33.0" prefWidth="502.0" GridPane.rowIndex="1">
<columnConstraints>
@ -96,17 +96,17 @@
<Insets right="5.0" />
</GridPane.margin>
</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>
<Insets left="3.0" />
</GridPane.margin>
</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>
<Insets bottom="2.0" left="5.0" top="2.0" />
</GridPane.margin>
</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>
<Insets left="5.0" />
</GridPane.margin>
@ -114,12 +114,12 @@
<ToggleGroup fx:id="scheduler_dest" />
</toggleGroup>
</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>
<Insets left="5.0" />
</GridPane.margin>
</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>
<Insets left="32.0" />
</GridPane.margin>

View File

@ -46,7 +46,7 @@
<GridPane.margin>
<Insets/>
</GridPane.margin>
<Label alignment="CENTER" text="Integer:">
<Label alignment="CENTER" text="%tab.tools.type.integer">
<GridPane.margin>
<Insets left="10.0"/>
</GridPane.margin>
@ -59,7 +59,7 @@
</TextField>
<Button fx:id="btnEncodeInt" disable="true" maxHeight="1.7976931348623157E308"
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.margin>
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
@ -67,7 +67,7 @@
</Button>
<Button fx:id="btnDecodeInt" disable="true" maxHeight="1.7976931348623157E308"
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.margin>
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
@ -80,7 +80,7 @@
</GridPane.margin>
</TextField>
<Label alignment="CENTER" text="Ushort:" GridPane.rowIndex="1">
<Label alignment="CENTER" text="%tab.tools.type.ushort" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="10.0"/>
</GridPane.margin>
@ -94,7 +94,7 @@
</TextField>
<Button fx:id="btnEncodeUShort" disable="true" maxHeight="1.7976931348623157E308"
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.margin>
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
@ -102,7 +102,7 @@
</Button>
<Button fx:id="btnDecodeUshort" disable="true" maxHeight="1.7976931348623157E308"
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.margin>
<Insets bottom="7.0" left="5.0" right="5.0" top="7.0"/>
@ -116,7 +116,7 @@
</TextField>
</GridPane>
<Label text="Encoding/decoding" textFill="#000000cc">
<Label text="%tab.tools.encodingdecoding" textFill="#000000cc">
<GridPane.margin>
<Insets left="6.0" top="5.0"/>
</GridPane.margin>
@ -179,7 +179,7 @@
</GridPane.margin>
</TextArea>
</GridPane>
<Label text="Packet &lt;-&gt; expression" textFill="#000000cc">
<Label text="%tab.tools.packettoexpression" textFill="#000000cc">
<GridPane.margin>
<Insets left="6.0" top="2.0"/>
</GridPane.margin>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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