Added language picker

This commit is contained in:
WiredSpast 2022-08-08 18:17:14 +02:00
parent ed35ff996f
commit 67c19fa0ed
52 changed files with 727 additions and 326 deletions

View File

@ -11,6 +11,7 @@ import gearth.ui.themes.Theme;
import gearth.ui.themes.ThemeFactory; import gearth.ui.themes.ThemeFactory;
import gearth.ui.titlebar.TitleBarConfig; import gearth.ui.titlebar.TitleBarConfig;
import gearth.ui.titlebar.TitleBarController; import gearth.ui.titlebar.TitleBarController;
import gearth.ui.translations.LanguageBundle;
import javafx.application.Application; import javafx.application.Application;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
@ -20,11 +21,6 @@ import javafx.scene.control.Alert;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.stage.StageStyle; 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 { public class GEarth extends Application {
@ -32,7 +28,7 @@ public class GEarth extends Application {
public static String version = "1.5.2"; public static String version = "1.5.2";
public static String gitApi = "https://api.github.com/repos/sirjonasxx/G-Earth/releases/latest"; public static String gitApi = "https://api.github.com/repos/sirjonasxx/G-Earth/releases/latest";
public static ObservableObject<Theme> observableTheme; public static ObservableObject<Theme> observableTheme;
public static ResourceBundle translation; public static LanguageBundle translation;
private Stage stage; private Stage stage;
private GEarthController controller; private GEarthController controller;
@ -50,7 +46,7 @@ public class GEarth extends Application {
main = this; main = this;
stage = primaryStage; stage = primaryStage;
translation = ResourceBundle.getBundle("gearth.ui.translations.messages", new Locale("pt")); translation = new LanguageBundle();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/G-Earth.fxml"), translation); FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/G-Earth.fxml"), translation);
Parent root = loader.load(); Parent root = loader.load();

View File

@ -3,8 +3,8 @@ package gearth.ui;
import gearth.protocol.connection.proxy.ProxyProviderFactory; import gearth.protocol.connection.proxy.ProxyProviderFactory;
import gearth.protocol.connection.proxy.SocksConfiguration; import gearth.protocol.connection.proxy.SocksConfiguration;
import gearth.ui.subforms.logger.loggerdisplays.PacketLoggerFactory; import gearth.ui.subforms.logger.loggerdisplays.PacketLoggerFactory;
import gearth.ui.translations.TranslatableString;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage; import javafx.stage.Stage;
import gearth.protocol.HConnection; import gearth.protocol.HConnection;
import gearth.ui.subforms.connection.ConnectionController; import gearth.ui.subforms.connection.ConnectionController;
@ -21,7 +21,7 @@ import java.util.List;
public class GEarthController { public class GEarthController {
public Tab tab_Logger; public Tab tab_Connection, tab_Logger, tab_Injection, tab_Tools, tab_Scheduler, tab_Extensions, tab_Extra, tab_Info;
public TabPane tabBar; public TabPane tabBar;
private Stage stage = null; private Stage stage = null;
private volatile HConnection hConnection; private volatile HConnection hConnection;
@ -67,6 +67,10 @@ public class GEarthController {
trySetController(); trySetController();
} }
if (PacketLoggerFactory.usesUIlogger()) {
tabBar.getTabs().remove(tab_Logger);
}
List<Tab> uiTabs = tabBar.getTabs(); List<Tab> uiTabs = tabBar.getTabs();
for (int i = 0; i < uiTabs.size(); i++) { for (int i = 0; i < uiTabs.size(); i++) {
Tab tab = uiTabs.get(i); Tab tab = uiTabs.get(i);
@ -79,11 +83,7 @@ public class GEarthController {
}); });
} }
if (PacketLoggerFactory.usesUIlogger()) { initLanguageBinding();
tabBar.getTabs().remove(tab_Logger);
}
} }
public void setStage(Stage stage) { public void setStage(Stage stage) {
@ -120,4 +120,13 @@ public class GEarthController {
hConnection.abort(); hConnection.abort();
} }
private void initLanguageBinding() {
tab_Connection.textProperty().bind(new TranslatableString("tab.connection"));
tab_Injection.textProperty().bind(new TranslatableString("tab.injection"));
tab_Tools.textProperty().bind(new TranslatableString("tab.tools"));
tab_Scheduler.textProperty().bind(new TranslatableString("tab.scheduler"));
tab_Extensions.textProperty().bind(new TranslatableString("tab.extensions"));
tab_Extra.textProperty().bind(new TranslatableString("tab.extra"));
tab_Info.textProperty().bind(new TranslatableString("tab.info"));
}
} }

View File

@ -6,6 +6,7 @@ import gearth.protocol.connection.HClient;
import gearth.protocol.connection.HState; import gearth.protocol.connection.HState;
import gearth.protocol.connection.proxy.ProxyProviderFactory; import gearth.protocol.connection.proxy.ProxyProviderFactory;
import gearth.services.Constants; import gearth.services.Constants;
import gearth.ui.translations.TranslatableString;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.scene.control.*; import javafx.scene.control.*;
@ -29,7 +30,7 @@ public class ConnectionController extends SubForm {
public ComboBox<String> inpPort; public ComboBox<String> inpPort;
public ComboBox<String> inpHost; public ComboBox<String> inpHost;
public Button btnConnect; public Button btnConnect;
public Label lblState; public Label lblInpPort, lblInpHost, lblPort, lblHost, lblHotelVersion, lblClient, lblStateHead, lblState;
public TextField outHost; public TextField outHost;
public TextField outPort; public TextField outPort;
public CheckBox cbx_autodetect; public CheckBox cbx_autodetect;
@ -131,6 +132,8 @@ public class ConnectionController extends SubForm {
synchronized (this) { synchronized (this) {
tryMaybeConnectOnInit(); tryMaybeConnectOnInit();
} }
initLanguageBinding();
} }
@ -176,20 +179,20 @@ public class ConnectionController extends SubForm {
getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> { getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> {
updateInputUI(); updateInputUI();
if (newState == HState.NOT_CONNECTED) { if (newState == HState.NOT_CONNECTED) {
lblState.setText(GEarth.translation.getString("tab.connection.state.notconnected")); lblState.textProperty().bind(ConnectionState.NOTCONNECTED.value);
btnConnect.setText(GEarth.translation.getString("tab.connection.connect")); btnConnect.textProperty().bind(ConnectButton.CONNECT.value);
outHost.setText(""); outHost.setText("");
outPort.setText(""); outPort.setText("");
} }
else if (oldState == HState.NOT_CONNECTED) { else if (oldState == HState.NOT_CONNECTED) {
btnConnect.setText(GEarth.translation.getString("tab.connection.abort")); btnConnect.textProperty().bind(ConnectButton.ABORT.value);
} }
if (newState == HState.CONNECTED) { if (newState == HState.CONNECTED) {
lblState.setText(GEarth.translation.getString("tab.connection.state.connected")); lblState.textProperty().bind(ConnectionState.CONNECTED.value);
} }
if (newState == HState.WAITING_FOR_CLIENT) { if (newState == HState.WAITING_FOR_CLIENT) {
lblState.setText(GEarth.translation.getString("tab.connection.state.waiting")); lblState.textProperty().bind(ConnectionState.WAITING.value);
} }
if (newState == HState.CONNECTED && useFlash()) { if (newState == HState.CONNECTED && useFlash()) {
@ -314,4 +317,45 @@ public class ConnectionController extends SubForm {
return false; return false;
} }
private enum ConnectButton {
CONNECT ("tab.connection.button.connect"),
ABORT ("tab.connection.button.abort");
public final TranslatableString value;
ConnectButton(String key) {
this.value = new TranslatableString(key);
}
}
private enum ConnectionState {
CONNECTED ("tab.connection.state.connected"),
NOTCONNECTED ("tab.connection.state.notconnected"),
WAITING ("tab.connection.state.waiting");
public final TranslatableString value;
ConnectionState(String key) {
this.value = new TranslatableString(key);
}
}
private void initLanguageBinding() {
TranslatableString port = new TranslatableString("tab.connection.port");
TranslatableString host = new TranslatableString("tab.connection.host");
lblInpPort.textProperty().bind(port);
lblInpHost.textProperty().bind(host);
lblPort.textProperty().bind(port);
lblHost.textProperty().bind(host);
cbx_autodetect.textProperty().bind(new TranslatableString("tab.connection.autodetect"));
btnConnect.textProperty().bind(ConnectButton.CONNECT.value);
lblHotelVersion.textProperty().bind(new TranslatableString("tab.connection.version"));
lblClient.textProperty().bind(new TranslatableString("tab.connection.client"));
rd_unity.textProperty().bind(new TranslatableString("tab.connection.client.unity"));
rd_flash.textProperty().bind(new TranslatableString("tab.connection.client.flash"));
rd_nitro.textProperty().bind(new TranslatableString("tab.connection.client.nitro"));
lblStateHead.textProperty().bind(new TranslatableString("tab.connection.state"));
lblState.textProperty().bind(ConnectionState.NOTCONNECTED.value);
}
} }

View File

@ -5,6 +5,7 @@ import gearth.misc.Cacher;
import gearth.services.packet_info.PacketInfoManager; import gearth.services.packet_info.PacketInfoManager;
import gearth.protocol.HMessage; import gearth.protocol.HMessage;
import gearth.protocol.connection.HState; import gearth.protocol.connection.HState;
import gearth.ui.translations.TranslatableString;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.scene.control.*; import javafx.scene.control.*;
@ -27,7 +28,7 @@ public class InjectionController extends SubForm {
private static final int historylimit = 69; private static final int historylimit = 69;
public TextArea inputPacket; public TextArea inputPacket;
public Text lbl_corrruption; public Text lbl_corruption;
public Text lbl_pcktInfo; public Text lbl_pcktInfo;
public Button btn_sendToServer; public Button btn_sendToServer;
public Button btn_sendToClient; public Button btn_sendToClient;
@ -53,7 +54,8 @@ public class InjectionController extends SubForm {
} }
}); });
lblHistory.setTooltip(new Tooltip(GEarth.translation.getString("tab.injection.history.tooltip"))); lblHistory.setTooltip(new Tooltip());
lblHistory.getTooltip().textProperty().bind(new TranslatableString("tab.injection.history.tooltip"));
List<Object> rawHistory = Cacher.getList(HISTORY_CACHE_KEY); List<Object> rawHistory = Cacher.getList(HISTORY_CACHE_KEY);
if (rawHistory != null) { if (rawHistory != null) {
@ -104,33 +106,33 @@ public class InjectionController extends SubForm {
private void updateUI() { private void updateUI() {
boolean dirty = false; boolean dirty = false;
lbl_corrruption.setText(GEarth.translation.getString("tab.injection.corrupted.false")); lbl_corruption.setText(GEarth.translation.getString("tab.injection.corrupted.false"));
lbl_corrruption.getStyleClass().clear(); lbl_corruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("not-corrupted-label"); lbl_corruption.getStyleClass().add("not-corrupted-label");
HPacket[] packets = parsePackets(inputPacket.getText()); HPacket[] packets = parsePackets(inputPacket.getText());
if (packets.length == 0) { if (packets.length == 0) {
dirty = true; dirty = true;
lbl_corrruption.setFill(Paint.valueOf("#ee0404b2")); lbl_corruption.setFill(Paint.valueOf("#ee0404b2"));
lbl_corrruption.getStyleClass().clear(); lbl_corruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("corrupted-label"); lbl_corruption.getStyleClass().add("corrupted-label");
} }
for (int i = 0; i < packets.length; i++) { for (int i = 0; i < packets.length; i++) {
if (packets[i].isCorrupted()) { if (packets[i].isCorrupted()) {
if (!dirty) { if (!dirty) {
lbl_corrruption.setText(String.format("%s -> %d", GEarth.translation.getString("tab.injection.corrupted.true"), i)); lbl_corruption.setText(String.format("%s -> %d", GEarth.translation.getString("tab.injection.corrupted.true"), i));
lbl_corrruption.getStyleClass().clear(); lbl_corruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("corrupted-label"); lbl_corruption.getStyleClass().add("corrupted-label");
dirty = true; dirty = true;
} else } else
lbl_corrruption.setText(lbl_corrruption.getText() + ", " + i); lbl_corruption.setText(lbl_corruption.getText() + ", " + i);
} }
} }
if (dirty && packets.length == 1) { if (dirty && packets.length == 1) {
lbl_corrruption.setText(GEarth.translation.getString("tab.injection.corrupted.true")); // no index needed lbl_corruption.setText(GEarth.translation.getString("tab.injection.corrupted.true")); // no index needed
} }
if (!dirty) { if (!dirty) {

View File

@ -2,16 +2,18 @@ package gearth.ui.titlebar;
import gearth.GEarth; import gearth.GEarth;
import gearth.ui.themes.ThemeFactory; import gearth.ui.themes.ThemeFactory;
import gearth.ui.translations.Language;
import gearth.ui.translations.LanguageBundle;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.InvalidationListener; import javafx.beans.InvalidationListener;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Alert; import javafx.scene.control.*;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Label;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.input.ContextMenuEvent;
import javafx.scene.input.MouseEvent; import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane; import javafx.scene.layout.Pane;
@ -19,6 +21,7 @@ import javafx.scene.layout.VBox;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.stage.StageStyle; import javafx.stage.StageStyle;
import javafx.stage.WindowEvent;
import java.io.IOException; import java.io.IOException;
import java.util.Optional; import java.util.Optional;
@ -30,6 +33,7 @@ public class TitleBarController {
public ImageView titleIcon; public ImageView titleIcon;
public ImageView themeBtn; public ImageView themeBtn;
public ImageView minimizeBtn; public ImageView minimizeBtn;
public MenuButton languagePicker;
private Stage stage; private Stage stage;
private TitleBarConfig config; private TitleBarConfig config;
@ -83,6 +87,9 @@ public class TitleBarController {
stage.titleProperty().addListener((i) -> controller.setTitle(stage.getTitle())); stage.titleProperty().addListener((i) -> controller.setTitle(stage.getTitle()));
controller.setTitle(stage.getTitle()); controller.setTitle(stage.getTitle());
controller.languagePicker.getItems().addAll(Language.getMenuItems());
controller.languagePicker.setGraphic(LanguageBundle.getLanguage().getIcon());
stage.getIcons().addListener((InvalidationListener) observable -> controller.updateIcon()); stage.getIcons().addListener((InvalidationListener) observable -> controller.updateIcon());
controller.updateIcon(); controller.updateIcon();
@ -96,11 +103,16 @@ public class TitleBarController {
if (!config.displayThemePicker()) { if (!config.displayThemePicker()) {
((GridPane) controller.themeBtn.getParent()).getChildren().remove(controller.themeBtn); ((GridPane) controller.themeBtn.getParent()).getChildren().remove(controller.themeBtn);
((GridPane) controller.languagePicker.getParent()).getChildren().remove(controller.languagePicker);
} }
}); });
return controller; return controller;
} }
private static void initLanguagePicker() {
}
public void updateIcon() { public void updateIcon() {
Platform.runLater(() -> titleIcon.setImage(stage.getIcons().size() > 0 ? stage.getIcons().get(0) : Platform.runLater(() -> titleIcon.setImage(stage.getIcons().size() > 0 ? stage.getIcons().get(0) :
new Image(GEarth.class.getResourceAsStream( new Image(GEarth.class.getResourceAsStream(
@ -158,5 +170,4 @@ public class TitleBarController {
} }
return Optional.empty(); return Optional.empty();
} }
} }

View File

@ -0,0 +1,57 @@
package gearth.ui.translations;
import javafx.event.ActionEvent;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuButton;
import javafx.scene.control.MenuItem;
import javafx.scene.image.ImageView;
import java.util.Arrays;
import java.util.Locale;
import java.util.ResourceBundle;
public enum Language {
DEFAULT ("en"),
DUTCH ("nl"),
FRENCH ("fr"),
GERMAN ("de"),
SPANISH ("es"),
PORTUGUESE ("pt"),
ITALIAN ("it"),
FINNISH ("fi"),
TURKISH ("tr");
public final ResourceBundle messages;
private final String locale;
Language(String locale) {
this.locale = locale;
messages = ResourceBundle.getBundle("gearth.ui.translations.messages", new Locale(locale));
}
public MenuItem asMenuItem() {
MenuItem menuItem = new MenuItem(null, getIcon());
menuItem.setOnAction(this::onSelect);
return menuItem;
}
private void onSelect(ActionEvent actionEvent) {
ContextMenu ctxMenu = ((MenuItem) actionEvent.getSource()).getParentPopup();
((MenuButton) ctxMenu.getOwnerNode()).setGraphic(getIcon());
LanguageBundle.setLanguage(this);
}
public ImageView getIcon() {
ImageView icon = new ImageView();
icon.getStyleClass().addAll("language-icon", locale);
icon.setFitWidth(18);
icon.setFitHeight(18);
return icon;
}
public static MenuItem[] getMenuItems() {
return Arrays.stream(values())
.map(Language::asMenuItem)
.toArray(MenuItem[]::new);
}
}

View File

@ -0,0 +1,54 @@
package gearth.ui.translations;
import gearth.GEarth;
import gearth.misc.Cacher;
import gearth.ui.themes.Theme;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.ResourceBundle;
import java.util.Set;
public class LanguageBundle extends ResourceBundle {
private static final String LANGUAGE_CACHE_KEY = "language";
private static Language current;
private static final Set<TranslatableString> requireUpdate = new HashSet<>();
static {
try {
current = Language.valueOf((String) Cacher.get(LANGUAGE_CACHE_KEY));
} catch (Exception e) {
current = Language.DEFAULT;
Cacher.put(LANGUAGE_CACHE_KEY, current.toString());
}
}
public static void addTranslatableString(TranslatableString translatableString) {
requireUpdate.add(translatableString);
}
@Override
protected Object handleGetObject(String key) {
return current.messages.getObject(key);
}
@Override
public Enumeration<String> getKeys() {
return current.messages.getKeys();
}
public static void setLanguage(Language lang) {
current = lang;
requireUpdate.forEach(TranslatableString::trigger);
Cacher.put(LANGUAGE_CACHE_KEY, current.toString());
}
public static Language getLanguage() {
return current;
}
public static String get(String key) {
return current.messages.getString(key);
}
}

View File

@ -0,0 +1,22 @@
package gearth.ui.translations;
import javafx.beans.value.ObservableValueBase;
public class TranslatableString extends ObservableValueBase<String> {
private final String key;
public TranslatableString(String key) {
this.key = key;
this.fireValueChangedEvent();
LanguageBundle.addTranslatableString(this);
}
@Override
public String getValue() {
return LanguageBundle.get(key);
}
protected void trigger() {
fireValueChangedEvent();
}
}

View File

@ -5,7 +5,7 @@
<?import javafx.scene.input.*?> <?import javafx.scene.input.*?>
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<BorderPane fx:id="borderPane" prefHeight="560.0" prefWidth="820.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.services.internal_extensions.uilogger.UiLoggerController"> <BorderPane fx:id="borderPane" prefHeight="560.0" prefWidth="820.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.services.internal_extensions.uilogger.UiLoggerController">
<top> <top>
<MenuBar BorderPane.alignment="CENTER"> <MenuBar BorderPane.alignment="CENTER">
<Menu mnemonicParsing="false" text="%ext.logger.menu.window"> <Menu mnemonicParsing="false" text="%ext.logger.menu.window">

View File

@ -7,28 +7,29 @@
<VBox prefWidth="650.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.GEarthController"> <VBox prefWidth="650.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.GEarthController">
<TabPane id="main-tab-pane" fx:id="tabBar" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="295.0" prefWidth="650.0" tabClosingPolicy="UNAVAILABLE"> <TabPane id="main-tab-pane" fx:id="tabBar" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="295.0" prefWidth="650.0" tabClosingPolicy="UNAVAILABLE">
<Tab text="%tab.connection"> <Tab fx:id="tab_Connection" text="Connection">
<text>tab.connection</text>
<fx:include fx:id="connection" source="subforms/connection/Connection.fxml" /> <fx:include fx:id="connection" source="subforms/connection/Connection.fxml" />
</Tab> </Tab>
<Tab fx:id="tab_Logger" text="Logger"> <Tab fx:id="tab_Logger" text="Logger">
<fx:include fx:id="logger" source="subforms/logger/Logger.fxml" /> <fx:include fx:id="logger" source="subforms/logger/Logger.fxml" />
</Tab> </Tab>
<Tab text="%tab.injection"> <Tab fx:id="tab_Injection" text="Injection">
<fx:include fx:id="injection" source="subforms/injection/Injection.fxml" /> <fx:include fx:id="injection" source="subforms/injection/Injection.fxml" />
</Tab> </Tab>
<Tab text="%tab.tools"> <Tab fx:id="tab_Tools" text="Tools">
<fx:include fx:id="tools" source="subforms/tools/Tools.fxml" /> <fx:include fx:id="tools" source="subforms/tools/Tools.fxml" />
</Tab> </Tab>
<Tab text="%tab.scheduler"> <Tab fx:id="tab_Scheduler" text="Scheduler">
<fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" /> <fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" />
</Tab> </Tab>
<Tab text="%tab.extensions"> <Tab fx:id="tab_Extensions" text="Extensions">
<fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" /> <fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" />
</Tab> </Tab>
<Tab text="%tab.extra"> <Tab fx:id="tab_Extra" text="Extra">
<fx:include fx:id="extra" source="subforms/extra/Extra.fxml" /> <fx:include fx:id="extra" source="subforms/extra/Extra.fxml" />
</Tab> </Tab>
<Tab text="Info"> <Tab fx:id="tab_Info" text="Info">
<fx:include fx:id="info" source="subforms/info/Info.fxml" /> <fx:include fx:id="info" source="subforms/info/Info.fxml" />
</Tab> </Tab>
</TabPane> </TabPane>

View File

@ -5,7 +5,7 @@
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?> <?import javafx.scene.text.*?>
<GridPane alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="258.0" prefWidth="650.0" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.subforms.connection.ConnectionController"> <GridPane alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="258.0" prefWidth="650.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.subforms.connection.ConnectionController">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints> </columnConstraints>
@ -45,7 +45,7 @@
<rowConstraints> <rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<Label text="%tab.connection.port" GridPane.halignment="CENTER" GridPane.valignment="CENTER" /> <Label fx:id="lblInpPort" text="Port:" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
<ComboBox fx:id="inpPort" disable="true" editable="true" prefWidth="183.0" GridPane.columnIndex="1"> <ComboBox fx:id="inpPort" disable="true" editable="true" prefWidth="183.0" GridPane.columnIndex="1">
<GridPane.margin> <GridPane.margin>
<Insets right="15.0" /> <Insets right="15.0" />
@ -60,7 +60,7 @@
<rowConstraints> <rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<Label text="%tab.connection.host" GridPane.halignment="CENTER" GridPane.valignment="CENTER" /> <Label fx:id="lblInpHost" text="Host:" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
<ComboBox fx:id="inpHost" disable="true" editable="true" GridPane.columnIndex="1"> <ComboBox fx:id="inpHost" disable="true" editable="true" GridPane.columnIndex="1">
<GridPane.margin> <GridPane.margin>
<Insets right="15.0" /> <Insets right="15.0" />
@ -78,7 +78,7 @@
<RowConstraints /> <RowConstraints />
<RowConstraints /> <RowConstraints />
</rowConstraints> </rowConstraints>
<CheckBox fx:id="cbx_autodetect" mnemonicParsing="false" selected="true" text="%tab.connection.autodetect" textFill="#000000a9" GridPane.columnIndex="1" GridPane.rowIndex="3"> <CheckBox fx:id="cbx_autodetect" mnemonicParsing="false" selected="true" text="Auto-detect" textFill="#000000a9" GridPane.columnIndex="1" GridPane.rowIndex="3">
<GridPane.margin> <GridPane.margin>
<Insets left="-5.0" /> <Insets left="-5.0" />
</GridPane.margin> </GridPane.margin>
@ -86,7 +86,7 @@
<Font size="12.0" /> <Font size="12.0" />
</font> </font>
</CheckBox> </CheckBox>
<Button fx:id="btnConnect" alignment="CENTER" maxWidth="1.7976931348623157E308" onAction="#btnConnect_clicked" text="%tab.connection.connect" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER"> <Button fx:id="btnConnect" alignment="CENTER" maxWidth="1.7976931348623157E308" onAction="#btnConnect_clicked" text="Connect" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER">
<GridPane.margin> <GridPane.margin>
<Insets left="15.0" right="15.0" /> <Insets left="15.0" right="15.0" />
</GridPane.margin> </GridPane.margin>
@ -114,7 +114,7 @@
<RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" /> <RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<Label text="%tab.connection.version" textFill="#000000cc" /> <Label fx:id="lblHotelVersion" text="Hotel version:" textFill="#000000cc" />
<TextField fx:id="txtfield_hotelversion" editable="false" prefHeight="17.0" prefWidth="285.0" GridPane.rowIndex="1"> <TextField fx:id="txtfield_hotelversion" editable="false" prefHeight="17.0" prefWidth="285.0" GridPane.rowIndex="1">
<opaqueInsets> <opaqueInsets>
<Insets /> <Insets />
@ -140,7 +140,7 @@
<RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<Label maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="22.0" prefWidth="94.0" text="%tab.connection.client" textFill="#000000cd"> <Label fx:id="lblClient" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="22.0" prefWidth="94.0" text="Client type:" textFill="#000000cd">
<padding> <padding>
<Insets left="8.0" /> <Insets left="8.0" />
</padding> </padding>
@ -148,7 +148,7 @@
<Insets right="-20.0" /> <Insets right="-20.0" />
</GridPane.margin> </GridPane.margin>
</Label> </Label>
<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"> <RadioButton fx:id="rd_unity" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Unity" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
<toggleGroup> <toggleGroup>
<ToggleGroup fx:id="tgl_clientMode" /> <ToggleGroup fx:id="tgl_clientMode" />
</toggleGroup> </toggleGroup>
@ -156,12 +156,12 @@
<Insets /> <Insets />
</GridPane.margin> </GridPane.margin>
</RadioButton> </RadioButton>
<RadioButton fx:id="rd_flash" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="35.0" prefWidth="111.0" selected="true" text="%tab.connection.client.flash" 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="Flash / Air" toggleGroup="$tgl_clientMode" GridPane.columnIndex="2">
<GridPane.margin> <GridPane.margin>
<Insets /> <Insets />
</GridPane.margin> </GridPane.margin>
</RadioButton> </RadioButton>
<RadioButton fx:id="rd_nitro" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="22.0" prefWidth="54.0" text="%tab.connection.client.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="Nitro" toggleGroup="$tgl_clientMode" GridPane.columnIndex="4">
<GridPane.margin> <GridPane.margin>
<Insets /> <Insets />
</GridPane.margin> </GridPane.margin>
@ -199,7 +199,7 @@
<GridPane.margin> <GridPane.margin>
<Insets bottom="14.0" left="20.0" right="20.0" /> <Insets bottom="14.0" left="20.0" right="20.0" />
</GridPane.margin> </GridPane.margin>
<Label text="%tab.connection.state" textFill="#000000ba" GridPane.valignment="BOTTOM"> <Label fx:id="lblStateHead" text="Connection state:" textFill="#000000ba" GridPane.valignment="BOTTOM">
<GridPane.margin> <GridPane.margin>
<Insets bottom="5.0" left="2.0" /> <Insets bottom="5.0" left="2.0" />
</GridPane.margin> </GridPane.margin>
@ -207,7 +207,7 @@
<Font size="12.0" /> <Font size="12.0" />
</font> </font>
</Label> </Label>
<Label fx:id="lblState" alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-border-color: #888888; -fx-border-radius: 5px;" text="%tab.connection.state.notconnected" 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="Not connected" textAlignment="CENTER" textFill="#000000d1" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.valignment="CENTER" GridPane.vgrow="ALWAYS">
<GridPane.margin> <GridPane.margin>
<Insets /> <Insets />
</GridPane.margin> </GridPane.margin>
@ -228,12 +228,12 @@
<padding> <padding>
<Insets bottom="7.0" top="7.0" /> <Insets bottom="7.0" top="7.0" />
</padding> </padding>
<Label text="%tab.connection.host" textFill="#000000cc"> <Label fx:id="lblHost" text="Host:" textFill="#000000cc">
<GridPane.margin> <GridPane.margin>
<Insets left="10.0" /> <Insets left="10.0" />
</GridPane.margin> </GridPane.margin>
</Label> </Label>
<Label text="%tab.connection.port" textFill="#000000cc" GridPane.rowIndex="1"> <Label fx:id="lblPort" text="Port:" textFill="#000000cc" GridPane.rowIndex="1">
<GridPane.margin> <GridPane.margin>
<Insets left="10.0" /> <Insets left="10.0" />
</GridPane.margin> </GridPane.margin>

View File

@ -37,7 +37,7 @@
<GridPane.margin> <GridPane.margin>
<Insets left="13.0" right="13.0" top="4.0" /> <Insets left="13.0" right="13.0" top="4.0" />
</GridPane.margin> </GridPane.margin>
<Text fx:id="lbl_corrruption" strokeType="OUTSIDE" strokeWidth="0.0" styleClass="corrupted-label" text="%tab.injection.corrupted.true"> <Text fx:id="lbl_corruption" strokeType="OUTSIDE" strokeWidth="0.0" styleClass="corrupted-label" text="%tab.injection.corrupted.true">
<font> <font>
<Font name="System Italic" size="11.0" /> <Font name="System Italic" size="11.0" />
</font> </font>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -1006,4 +1006,72 @@ VBox > .split-menu-button.last > .arrow-button {
.scroll-pane { .scroll-pane {
-fx-background-color: white; -fx-background-color: white;
}
#language-picker {
-fx-background-color: transparent;
-fx-border-color: transparent;
-fx-padding: 0;
}
#language-picker .context-menu {
-fx-padding: 5 0 5 0;
}
#language-picker .context-menu .menu-item {
-fx-padding: 5 0 5 5;
}
#language-picker .label {
-fx-padding: 0 5;
-fx-max-width: 0;
}
#language-picker .arrow,
#language-picker .arrow-button {
-fx-opacity: 0;
-fx-max-width: 0;
-fx-padding: 0;
}
#language-picker .menu-item .label {
-fx-max-width: 0;
-fx-padding: 0;
-fx-label-padding: 0;
}
.language-icon.en {
-fx-image: url("lang/EN.png");
}
.language-icon.nl {
-fx-image: url("lang/NL.png");
}
.language-icon.fr {
-fx-image: url("lang/FR.png");
}
.language-icon.es {
-fx-image: url("lang/ES.png");
}
.language-icon.de {
-fx-image: url("lang/DE.png");
}
.language-icon.tr {
-fx-image: url("lang/TR.png");
}
.language-icon.pt {
-fx-image: url("lang/PT.png");
}
.language-icon.fi {
-fx-image: url("lang/FI.png");
}
.language-icon.it {
-fx-image: url("lang/IT.png");
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1112,4 +1112,72 @@ VBox > .split-menu-button.last > .arrow-button {
-fx-background-color: #222222; -fx-background-color: #222222;
-fx-border-radius: 10; -fx-border-radius: 10;
-fx-border-color: rgba(240, 240, 240, 0.8); -fx-border-color: rgba(240, 240, 240, 0.8);
}
#language-picker {
-fx-background-color: transparent;
-fx-border-color: transparent;
-fx-padding: 0;
}
#language-picker .context-menu {
-fx-padding: 5 0 5 0;
}
#language-picker .context-menu .menu-item {
-fx-padding: 0 0 0 5;
}
#language-picker .label {
-fx-padding: 0;
-fx-max-width: 0;
}
#language-picker .arrow,
#language-picker .arrow-button {
-fx-opacity: 0;
-fx-max-width: 0;
-fx-padding: 0;
}
#language-picker .menu-item .label {
-fx-max-width: 0;
-fx-padding: 0;
-fx-label-padding: 0;
}
.language-icon.en {
-fx-image: url("lang/EN.png");
}
.language-icon.nl {
-fx-image: url("lang/NL.png");
}
.language-icon.fr {
-fx-image: url("lang/FR.png");
}
.language-icon.es {
-fx-image: url("lang/ES.png");
}
.language-icon.de {
-fx-image: url("lang/DE.png");
}
.language-icon.tr {
-fx-image: url("lang/TR.png");
}
.language-icon.pt {
-fx-image: url("lang/PT.png");
}
.language-icon.fi {
-fx-image: url("lang/FI.png");
}
.language-icon.it {
-fx-image: url("lang/IT.png");
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -1005,4 +1005,72 @@ VBox > .split-menu-button.last > .arrow-button {
.scroll-pane { .scroll-pane {
-fx-background-color: white; -fx-background-color: white;
}
#language-picker {
-fx-background-color: transparent;
-fx-border-color: transparent;
-fx-padding: 0;
}
#language-picker .context-menu {
-fx-padding: 5 0 5 0;
}
#language-picker .context-menu .menu-item {
-fx-padding: 0 0 0 5;
}
#language-picker .label {
-fx-padding: 0;
-fx-max-width: 0;
}
#language-picker .arrow,
#language-picker .arrow-button {
-fx-opacity: 0;
-fx-max-width: 0;
-fx-padding: 0;
}
#language-picker .menu-item .label {
-fx-max-width: 0;
-fx-padding: 0;
-fx-label-padding: 0;
}
.language-icon.en {
-fx-image: url("lang/EN.png");
}
.language-icon.nl {
-fx-image: url("lang/NL.png");
}
.language-icon.fr {
-fx-image: url("lang/FR.png");
}
.language-icon.es {
-fx-image: url("lang/ES.png");
}
.language-icon.de {
-fx-image: url("lang/DE.png");
}
.language-icon.tr {
-fx-image: url("lang/TR.png");
}
.language-icon.pt {
-fx-image: url("lang/PT.png");
}
.language-icon.fi {
-fx-image: url("lang/FI.png");
}
.language-icon.it {
-fx-image: url("lang/IT.png");
} }

View File

@ -5,54 +5,59 @@
<?import javafx.scene.image.*?> <?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<GridPane id="title-bar" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.titlebar.TitleBarController"> <GridPane id="title-bar" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.titlebar.TitleBarController">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" /> <ColumnConstraints hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" /> <ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" vgrow="SOMETIMES" /> <RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<ImageView fx:id="minimizeBtn" id="minimize-button" fitHeight="25.0" fitWidth="50.0" onMouseClicked="#handleMinimizeAction" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1"> <ImageView id="minimize-button" fx:id="minimizeBtn" fitHeight="25.0" fitWidth="50.0" onMouseClicked="#handleMinimizeAction" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1">
<image> <image>
<Image url="@files/minimizeButton.png" /> <Image url="@files/minimizeButton.png" />
</image> </image>
</ImageView> </ImageView>
<ImageView id="close-button" fitHeight="25.0" fitWidth="50.0" onMouseClicked="#handleCloseAction" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2"> <ImageView id="close-button" fitHeight="25.0" fitWidth="50.0" onMouseClicked="#handleCloseAction" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2">
<image> <image>
<Image url="@files/closeButton.png" /> <Image url="@files/closeButton.png" />
</image> </image>
</ImageView> </ImageView>
<GridPane maxHeight="25.0" maxWidth="1.7976931348623157E308" minHeight="25.0" minWidth="-Infinity" onMouseDragged="#handleMovementAction" onMousePressed="#handleClickAction" onMouseReleased="#handleClickReleaseAction" prefHeight="25.0"> <GridPane maxHeight="25.0" maxWidth="1.7976931348623157E308" minHeight="25.0" minWidth="-Infinity" onMouseDragged="#handleMovementAction" onMousePressed="#handleClickAction" onMouseReleased="#handleClickReleaseAction" prefHeight="25.0">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="7.0" minWidth="7.0" prefWidth="7.0" /> <ColumnConstraints hgrow="SOMETIMES" maxWidth="7.0" minWidth="7.0" prefWidth="7.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" /> <ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
<ColumnConstraints hgrow="ALWAYS" /> <ColumnConstraints hgrow="ALWAYS" />
<ColumnConstraints maxWidth="-Infinity" /> <ColumnConstraints maxWidth="-Infinity" />
<ColumnConstraints maxWidth="7.0" minWidth="7.0" prefWidth="7.0" /> <ColumnConstraints maxWidth="-Infinity" />
</columnConstraints> <ColumnConstraints maxWidth="7.0" minWidth="7.0" prefWidth="7.0" />
<rowConstraints> </columnConstraints>
<RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" vgrow="SOMETIMES" /> <rowConstraints>
</rowConstraints> <RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" vgrow="SOMETIMES" />
<children> </rowConstraints>
<ImageView id="icon" fx:id="titleIcon" fitHeight="16.0" fitWidth="16.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1"> <children>
<image> <ImageView id="icon" fx:id="titleIcon" fitHeight="16.0" fitWidth="16.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1">
<Image url="@../themes/G-Earth/logoSmall.png" /> <image>
</image> <Image url="@../themes/G-Earth/logoSmall.png" />
</ImageView> </image>
<Label fx:id="titleLabel" text="Placeholder" GridPane.columnIndex="2"> </ImageView>
<padding> <Label fx:id="titleLabel" text="Placeholder" GridPane.columnIndex="2">
<Insets left="2.0" /> <padding>
</padding> <Insets left="2.0" />
</Label> </padding>
<ImageView fx:id="themeBtn" id="theme-button" fitHeight="20.0" fitWidth="38.0" onMouseClicked="#toggleTheme" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="3"> </Label>
<image> <MenuButton id="language-picker" fx:id="languagePicker" alignment="CENTER" contentDisplay="CENTER" graphicTextGap="0.0" mnemonicParsing="false" translateX="-5.0" GridPane.columnIndex="3">
<Image url="@../themes/G-Earth/themeButton.png" /> <items>
</image> </items>
</ImageView> </MenuButton>
</children> <ImageView id="theme-button" fx:id="themeBtn" fitHeight="20.0" fitWidth="38.0" onMouseClicked="#toggleTheme" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="4">
</GridPane> <image>
</children> <Image url="@../themes/G-Earth/themeButton.png" />
</image>
</ImageView>
</children>
</GridPane>
</children>
</GridPane> </GridPane>

View File

@ -15,8 +15,8 @@ tab.connection.state.connected=Connected
tab.connection.state.waiting=Waiting for connection tab.connection.state.waiting=Waiting for connection
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connect tab.connection.button.connect=Connect
tab.connection.abort=Abort tab.connection.button.abort=Abort
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -124,8 +124,8 @@ alert.confirmation.button.donotaskagain=Do not ask again
alert.confirmation.button.remember=Remember my choice alert.confirmation.button.remember=Remember my choice
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\ alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\n\
please restart G-Earth with admin permissions unless\\n\ please restart G-Earth with admin permissions unless\n\
you're using Unity you're using Unity
### Alert - Outdated ### Alert - Outdated
@ -139,31 +139,31 @@ alert.invalidconnection.content=You entered invalid connection information, G-Ea
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Root certificate installation alert.rootcertificate.title=Root certificate installation
alert.rootcertificate.remember=Remember my choice alert.rootcertificate.remember=Remember my choice
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\ 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\ 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. G-Earth will ask you for Administrator permission if you do so.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\ 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\ Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\
\\n\ \n\
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS] You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Something went wrong! alert.somethingwentwrong.title=Something went wrong!
alert.somethingwentwrong.content=Something went wrong!\\n\ alert.somethingwentwrong.content=Something went wrong!\n\
\\n\ \n\
Head over to our Troubleshooting page to solve the problem: Head over to our Troubleshooting page to solve the problem:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\ alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\n\
accept this connection? accept this connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\ alert.gpythonerror.content=Something went wrong launching the G-Python shell,\n\
are you sure you followed the installation guide correctly?\\n\ are you sure you followed the installation guide correctly?\n\
\\n\ \n\
More information here: More information here:

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Connected
tab.connection.state.waiting=Waiting for connection tab.connection.state.waiting=Waiting for connection
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connect tab.connection.button.connect=Connect
tab.connection.abort=Abort tab.connection.button.abort=Abort
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -126,8 +126,8 @@ alert.confirmation.button.donotaskagain=Do not ask again
alert.confirmation.button.remember=Remember my choice alert.confirmation.button.remember=Remember my choice
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\ alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\n\
please restart G-Earth with admin permissions unless\\n\ please restart G-Earth with admin permissions unless\n\
you're using Unity you're using Unity
### Alert - Outdated ### Alert - Outdated
@ -141,31 +141,31 @@ alert.invalidconnection.content=You entered invalid connection information, G-Ea
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Root certificate installation alert.rootcertificate.title=Root certificate installation
alert.rootcertificate.remember=Remember my choice alert.rootcertificate.remember=Remember my choice
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\ 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\ 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. G-Earth will ask you for Administrator permission if you do so.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\ 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\ Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\
\\n\ \n\
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS] You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Something went wrong! alert.somethingwentwrong.title=Something went wrong!
alert.somethingwentwrong.content=Something went wrong!\\n\ alert.somethingwentwrong.content=Something went wrong!\n\
\\n\ \n\
Head over to our Troubleshooting page to solve the problem: Head over to our Troubleshooting page to solve the problem:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\ alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\n\
accept this connection? accept this connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\ alert.gpythonerror.content=Something went wrong launching the G-Python shell,\n\
are you sure you followed the installation guide correctly?\\n\ are you sure you followed the installation guide correctly?\n\
\\n\ \n\
More information here: More information here:

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Conectado
tab.connection.state.waiting=Esperando para la conexión tab.connection.state.waiting=Esperando para la conexión
tab.connection.port=Puerto: tab.connection.port=Puerto:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Conectar tab.connection.button.connect=Conectar
tab.connection.abort=Abortar tab.connection.button.abort=Abortar
tab.connection.autodetect=Detección automática tab.connection.autodetect=Detección automática
### Tab - Injection ### Tab - Injection
@ -126,9 +126,8 @@ alert.confirmation.button.donotaskagain=No me preguntes de nuevo
alert.confirmation.button.remember=Recordar mi elección alert.confirmation.button.remember=Recordar mi elección
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth necesita permisos de administrador para funcionar en flash,\\n\ alert.adminvalidator.content=G-Earth necesita permisos de administrador para funcionar en flash,\n\
por favor reinicie G-Earth con los permisos si no\\n\ por favor reinicie G-Earth con los permisos si no estás usando Unity
estás usando Unity
### Alert - Outdated ### Alert - Outdated
alert.outdated.title=¡G-Earth está desactualizado! alert.outdated.title=¡G-Earth está desactualizado!
@ -141,31 +140,31 @@ alert.invalidconnection.content=Has introducida una conexi
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Instalar Certificado Root alert.rootcertificate.title=Instalar Certificado Root
alert.rootcertificate.remember=Recordar mi elección alert.rootcertificate.remember=Recordar mi elección
alert.rootcertificate.content=G-Earth detectó que no tienes un certificado de autoridad root instalado.\\n\ alert.rootcertificate.content=G-Earth detectó que no tienes un certificado de autoridad root instalado.\n\
Esto es requerido para que Nitro funcione, ¿Quieres continuar?\\n\ Esto es requerido para que Nitro funcione, ¿Quieres continuar?\n\
G-Earth te pedirá permisos de administrador para instalarlo. G-Earth te pedirá permisos de administrador para instalarlo.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth ya está conectado a este hotel.\\n\ alert.alreadyconnected.content=G-Earth ya está conectado a este hotel.\n\
Debido a actuales limitaciones solo puedes conectarte una sesión por hotel a G-Earth en el modo Raw IP.\\n\ Debido a actuales limitaciones solo puedes conectarte una sesión por hotel a G-Earth en el modo Raw IP.\n\
\\n\ \n\
Puedes saltarte esto usando un proxy SOCKS [Extra -> Avanzado -> SOCKS] Puedes saltarte esto usando un proxy SOCKS [Extra -> Avanzado -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=¡Algo ha salido mal! alert.somethingwentwrong.title=¡Algo ha salido mal!
alert.somethingwentwrong.content=¡Algo ha salido mal!\\n\ alert.somethingwentwrong.content=¡Algo ha salido mal!\n\
\\n\ \n\
Ve a nuestra página de ayuda para solucionar el problema: Ve a nuestra página de ayuda para solucionar el problema:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=La extensión "%s" intenta conectarse pero es desconocida para G-Earth,\\n\ alert.extconnection.content=La extensión "%s" intenta conectarse pero es desconocida para G-Earth,\n\
¿Aceptar conexión? ¿Aceptar conexión?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Algo ha salido mal al iniciar la G-Python shell,\\n\ alert.gpythonerror.content=Algo ha salido mal al iniciar la G-Python shell,\n\
¿Estás seguro de que has seguido la guia correctamente?\\n\ ¿Estás seguro de que has seguido la guia correctamente?\n\
\\n\ \n\
Mas información aqui: Mas información aqui:
@ -208,8 +207,7 @@ ext.store.extension.details.screenshot=Capturas de pantalla
ext.store.extension.author.reputation=reputación ext.store.extension.author.reputation=reputación
ext.store.extension.author.releases=Versiones ext.store.extension.author.releases=Versiones
ext.store.extension.warning.requirement=Atención: el framework requiere --url:instalaciones adicionales-
ext.store.extension.warning.requirement=Atención: el framework necesita la instalación de --url:additional installations-
! IMPORTANT: the previous line has to end with the --url component like the english version ! IMPORTANT: the previous line has to end with the --url component like the english version
ext.store.extension.warning.unstable=Atención: ¡Esta extensión está marcada como no estable! ext.store.extension.warning.unstable=Atención: ¡Esta extensión está marcada como no estable!

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Connected
tab.connection.state.waiting=Waiting for connection tab.connection.state.waiting=Waiting for connection
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connect tab.connection.button.connect=Connect
tab.connection.abort=Abort tab.connection.button.abort=Abort
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -126,8 +126,8 @@ alert.confirmation.button.donotaskagain=Do not ask again
alert.confirmation.button.remember=Remember my choice alert.confirmation.button.remember=Remember my choice
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\ alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\n\
please restart G-Earth with admin permissions unless\\n\ please restart G-Earth with admin permissions unless\n\
you're using Unity you're using Unity
### Alert - Outdated ### Alert - Outdated
@ -141,31 +141,31 @@ alert.invalidconnection.content=You entered invalid connection information, G-Ea
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Root certificate installation alert.rootcertificate.title=Root certificate installation
alert.rootcertificate.remember=Remember my choice alert.rootcertificate.remember=Remember my choice
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\ 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\ 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. G-Earth will ask you for Administrator permission if you do so.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\ 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\ Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\
\\n\ \n\
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS] You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Something went wrong! alert.somethingwentwrong.title=Something went wrong!
alert.somethingwentwrong.content=Something went wrong!\\n\ alert.somethingwentwrong.content=Something went wrong!\n\
\\n\ \n\
Head over to our Troubleshooting page to solve the problem: Head over to our Troubleshooting page to solve the problem:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\ alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\n\
accept this connection? accept this connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\ alert.gpythonerror.content=Something went wrong launching the G-Python shell,\n\
are you sure you followed the installation guide correctly?\\n\ are you sure you followed the installation guide correctly?\n\
\\n\ \n\
More information here: More information here:

View File

@ -8,7 +8,7 @@
## Tabs ## Tabs
### Tab - Connection ### Tab - Connection
tab.connection=Connexion tab.connection=Connexion
tab.connection.client=Type de client: tab.connection.client=Type de client:
tab.connection.client.flash=Flash / Air tab.connection.client.flash=Flash / Air
tab.connection.client.unity=Unity tab.connection.client.unity=Unity
@ -20,8 +20,8 @@ tab.connection.state.connected=Connect
tab.connection.state.waiting=En attente de connexion tab.connection.state.waiting=En attente de connexion
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connecter tab.connection.button.connect=Connecter
tab.connection.abort=Annuler tab.connection.button.abort=Annuler
tab.connection.autodetect=Détection auto tab.connection.autodetect=Détection auto
### Tab - Injection ### Tab - Injection
@ -129,9 +129,8 @@ alert.confirmation.button.donotaskagain=Ne pas demander
alert.confirmation.button.remember=Se souvenir de mon choix alert.confirmation.button.remember=Se souvenir de mon choix
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth a besoin des privilèges d''administrateur pour pouvoir fonctionner sur Flash,\\n\ alert.adminvalidator.content=G-Earth a besoin des privilèges d''administrateur pour pouvoir fonctionner sur Flash,\n\
merci de redémarrer G-Earth avec les privilèges d''administrateur sauf\\n\ merci de redémarrer G-Earth avec les privilèges d''administrateur sauf si tu utilises Unity
si tu utilises Unity
### Alert - Outdated ### Alert - Outdated
alert.outdated.title=G-Earth est obsolète! alert.outdated.title=G-Earth est obsolète!
@ -144,32 +143,32 @@ alert.invalidconnection.content=Tu as entr
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Installation du certificat root alert.rootcertificate.title=Installation du certificat root
alert.rootcertificate.remember=Se souvenir de mon choix alert.rootcertificate.remember=Se souvenir de mon choix
alert.rootcertificate.content=G-Earth a détecté que tu n''avais pas le certificat root d''installer.\\n\ alert.rootcertificate.content=G-Earth a détecté que tu n''avais pas le certificat root d''installer.\n\
Il est nécessaire pour que Nitro fonctionne, veux-tu continuer?\\n\ Il est nécessaire pour que Nitro fonctionne, veux-tu continuer?\n\
G-Earth va te demander les permissions administrateurs si tu le souhaites. G-Earth va te demander les permissions administrateurs si tu le souhaites.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth est déjà connecté à cet hôtel.\\n\ alert.alreadyconnected.content=G-Earth est déjà connecté à cet hôtel.\n\
à la restriction actuelle tu peux connecter seulement une session par hôtel à G-Earth\\n\ à la restriction actuelle tu peux connecter seulement une session par hôtel à G-Earth\n\
en mode ""Raw IP"" (127.0.0.1) sur Windows.\\n\ en mode ""Raw IP"" (127.0.0.1) sur Windows.\n\
\\n\ \n\
Tu peux passer outre en utilisant un SOCKS proxy [Extra -> Avancer -> SOCKS] Tu peux passer outre en utilisant un SOCKS proxy [Extra -> Avancer -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Quelque chose s''est mal passé! alert.somethingwentwrong.title=Quelque chose s''est mal passé!
alert.somethingwentwrong.content=Quelque chose s''est mal passé!\\n\ alert.somethingwentwrong.content=Quelque chose s''est mal passé!\n\
\\n\ \n\
Rendez-vous sur notre page de dépannage pour résoudre le problème: Rendez-vous sur notre page de dépannage pour résoudre le problème:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" essaie de se connecter mais n''est pas connu de G-Earth,\\n\ alert.extconnection.content=Extension "%s" essaie de se connecter mais n''est pas connu de G-Earth,\n\
Accepter la connection? Accepter la connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python erreur alert.gpythonerror.title=G-Python erreur
alert.gpythonerror.content=Quelque chose s''est mal passé lors du lancement de G-Python shell,\\n\ alert.gpythonerror.content=Quelque chose s''est mal passé lors du lancement de G-Python shell,\n\
es-tu sûr d''avoir suivi le guide d''installation correctement?\\n\ es-tu sûr d''avoir suivi le guide d''installation correctement?\n\
\\n\ \n\
Plus d''information ici: Plus d''information ici:
@ -212,8 +211,7 @@ ext.store.extension.details.screenshot=Screenshot
ext.store.extension.author.reputation=réputation ext.store.extension.author.reputation=réputation
ext.store.extension.author.releases=Versions ext.store.extension.author.releases=Versions
ext.store.extension.warning.requirement=Attention: ce framework a besoin --url:des installations supplémentaires-
ext.store.extension.warning.requirement=Attention: ce framework a besoin d''installation supplémentaires --url:additional installations-
! IMPORTANT: the previous line has to end with the --url component like the english version ! 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.warning.unstable=Warning: this extension has been marked unstable!

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Connected
tab.connection.state.waiting=Waiting for connection tab.connection.state.waiting=Waiting for connection
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connect tab.connection.button.connect=Connect
tab.connection.abort=Abort tab.connection.button.abort=Abort
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -126,8 +126,8 @@ alert.confirmation.button.donotaskagain=Do not ask again
alert.confirmation.button.remember=Remember my choice alert.confirmation.button.remember=Remember my choice
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\ alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\n\
please restart G-Earth with admin permissions unless\\n\ please restart G-Earth with admin permissions unless\n\
you're using Unity you're using Unity
### Alert - Outdated ### Alert - Outdated
@ -141,31 +141,31 @@ alert.invalidconnection.content=You entered invalid connection information, G-Ea
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Root certificate installation alert.rootcertificate.title=Root certificate installation
alert.rootcertificate.remember=Remember my choice alert.rootcertificate.remember=Remember my choice
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\ 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\ 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. G-Earth will ask you for Administrator permission if you do so.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\ 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\ Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\
\\n\ \n\
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS] You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Something went wrong! alert.somethingwentwrong.title=Something went wrong!
alert.somethingwentwrong.content=Something went wrong!\\n\ alert.somethingwentwrong.content=Something went wrong!\n\
\\n\ \n\
Head over to our Troubleshooting page to solve the problem: Head over to our Troubleshooting page to solve the problem:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\ alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\n\
accept this connection? accept this connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\ alert.gpythonerror.content=Something went wrong launching the G-Python shell,\n\
are you sure you followed the installation guide correctly?\\n\ are you sure you followed the installation guide correctly?\n\
\\n\ \n\
More information here: More information here:

View File

@ -15,8 +15,8 @@ tab.connection.state.connected=Verbonden
tab.connection.state.waiting=Wachten op verbinding tab.connection.state.waiting=Wachten op verbinding
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Verbind tab.connection.button.connect=Verbind
tab.connection.abort=Stop tab.connection.button.abort=Stop
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -124,7 +124,7 @@ alert.confirmation.button.donotaskagain=Vraag het me niet nog eens
alert.confirmation.button.remember=Onthoud mijn keuze alert.confirmation.button.remember=Onthoud mijn keuze
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth heeft beheerdersrechten nodig om op Flash te kunnen werken,\\n\ alert.adminvalidator.content=G-Earth heeft beheerdersrechten nodig om op Flash te kunnen werken,\n\
herstart G-Earth met beheerdersrechten tenzij je Unity gebruikt. herstart G-Earth met beheerdersrechten tenzij je Unity gebruikt.
### Alert - Outdated ### Alert - Outdated
@ -138,31 +138,31 @@ alert.invalidconnection.content=Je hebt ongeldige connectie informatie opgegeven
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Basiscertificaat installatie alert.rootcertificate.title=Basiscertificaat installatie
alert.rootcertificate.remember=Onthoud mijn keuze alert.rootcertificate.remember=Onthoud mijn keuze
alert.rootcertificate.content=G-Earth kan geen geïnstalleerd basiscertificaat vinden.\\n\ 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\ Dit is nodig om met Nitro te verbinden, wil je verder gaan?\n\
G-Earth zal je voor beheerdersrechten vragen indien je verder gaat. G-Earth zal je voor beheerdersrechten vragen indien je verder gaat.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is reeds verbonden met dit hotel.\\n\ 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\ Vanwege de huidige limieten kan je maar met één sessie per hotel verbinden in Ruwe IP-modus op Windows.\n\
\\n\ \n\
Je kan dit omzeilen door een SOCKS proxy te gebruiken [Extra -> Geavanceerd -> SOCKS] Je kan dit omzeilen door een SOCKS proxy te gebruiken [Extra -> Geavanceerd -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Er ging iets mis! alert.somethingwentwrong.title=Er ging iets mis!
alert.somethingwentwrong.content=Er ging iets mis!\\n\ alert.somethingwentwrong.content=Er ging iets mis!\n\
\\n\ \n\
Ga naar de Troubleshooting pagina om het probleem op te lossen: Ga naar de Troubleshooting pagina om het probleem op te lossen:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=De extension "%s" probeert te verbinden, maar is onbekend voor G-Earth,\\n\ alert.extconnection.content=De extension "%s" probeert te verbinden, maar is onbekend voor G-Earth,\n\
accepteer je deze verbinding? accepteer je deze verbinding?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=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\ 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\ ben je zeker dat je de installatie gids correct gevolgd hebt?\n\
\\n\ \n\
Meer informatie hier: Meer informatie hier:

View File

@ -5,36 +5,36 @@
## Tabs ## Tabs
### Tab - Connection ### Tab - Connection
tab.connection=Conexão tab.connection=Conexão
tab.connection.client=Tipo do cliente: tab.connection.client=Tipo do cliente:
tab.connection.client.flash=Flash / Air tab.connection.client.flash=Flash / Air
tab.connection.client.unity=Unity tab.connection.client.unity=Unity
tab.connection.client.nitro=Nitro tab.connection.client.nitro=Nitro
tab.connection.version=Versão do Hotel: tab.connection.version=Versão do Hotel:
tab.connection.state=Estado da conexão: tab.connection.state=Estado da conexão:
tab.connection.state.notconnected=Não conectadoS tab.connection.state.notconnected=Não conectadoS
tab.connection.state.connected=Conectado tab.connection.state.connected=Conectado
tab.connection.state.waiting=Esperando conexão tab.connection.state.waiting=Esperando conexão
tab.connection.port=Porta: tab.connection.port=Porta:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Conectar tab.connection.button.connect=Conectar
tab.connection.abort=Abortar tab.connection.button.abort=Abortar
tab.connection.autodetect=Autodetectar tab.connection.autodetect=Autodetectar
### Tab - Injection ### Tab - Injection
tab.injection=Injeção tab.injection=Injeção
tab.injection.corrupted.true=estaCorrompido: Verdadeiro tab.injection.corrupted.true=estaCorrompido: Verdadeiro
tab.injection.corrupted.false=estaCorrompido: Falso tab.injection.corrupted.false=estaCorrompido: Falso
tab.injection.description=cabeçalho (id:NULL, comprimento:0) tab.injection.description=cabeçalho (id:NULL, comprimento:0)
tab.injection.description.header=cabeçalho tab.injection.description.header=cabeçalho
tab.injection.description.packets=pacotes tab.injection.description.packets=pacotes
tab.injection.description.id=id tab.injection.description.id=id
tab.injection.description.length=comprimento tab.injection.description.length=comprimento
tab.injection.send.toserver=Enviar para o servidor tab.injection.send.toserver=Enviar para o servidor
tab.injection.send.toclient=Enviar para o cliente tab.injection.send.toclient=Enviar para o cliente
tab.injection.history=Histórico: tab.injection.history=Histórico:
tab.injection.history.clear=Limpar tab.injection.history.clear=Limpar
tab.injection.history.tooltip=Clique duas vezes em um pacote para restaurá-lo tab.injection.history.tooltip=Clique duas vezes em um pacote para restaurá-lo
tab.injection.log.packetwithid=Pacote com id tab.injection.log.packetwithid=Pacote com id
### Tab - Tools ### Tab - Tools
@ -44,11 +44,11 @@ tab.tools.button.decode=Decodificar
tab.tools.type.integer=Inteiro: tab.tools.type.integer=Inteiro:
tab.tools.type.ushort=Ushort: tab.tools.type.ushort=Ushort:
tab.tools.encodingdecoding=Codificando/decodificando tab.tools.encodingdecoding=Codificando/decodificando
tab.tools.packettoexpression=Pacote <-> expressão tab.tools.packettoexpression=Pacote <-> expressão
### Tab - Scheduler ### Tab - Scheduler
tab.scheduler=Agendador tab.scheduler=Agendador
tab.scheduler.table.index=Índice tab.scheduler.table.index=Índice
tab.scheduler.table.packet=Pacote tab.scheduler.table.packet=Pacote
tab.scheduler.table.interval=Intervalo tab.scheduler.table.interval=Intervalo
tab.scheduler.table.destination=Destino tab.scheduler.table.destination=Destino
@ -71,36 +71,36 @@ tab.scheduler.hotkeys=Habilitar atalhos (Ctrl+Shift+Index)
tab.scheduler.filetype=Arquivos do Agendador (*.sched) tab.scheduler.filetype=Arquivos do Agendador (*.sched)
### Tab - Extensions ### Tab - Extensions
tab.extensions=Extensões tab.extensions=Extensões
tab.extensions.table.title=Título tab.extensions.table.title=Título
tab.extensions.table.description=Descrição tab.extensions.table.description=Descrição
tab.extensions.table.author=Autor tab.extensions.table.author=Autor
tab.extensions.table.version=Versão tab.extensions.table.version=Versão
tab.extensions.table.edit=Editar tab.extensions.table.edit=Editar
tab.extensions.table.edit.delete.tooltip=Fechar conexão com esta extensão tab.extensions.table.edit.delete.tooltip=Fechar conexão com esta extensão
tab.extensions.table.edit.restart.tooltip=Reiniciar esta extensão tab.extensions.table.edit.restart.tooltip=Reiniciar esta extensão
tab.extensions.table.edit.uninstall.tooltip=Desinstalar esta extensão tab.extensions.table.edit.uninstall.tooltip=Desinstalar esta extensão
tab.extensions.table.edit.uninstall.confirmation=Você tem certeza que deseja desinstalar esta extensão? tab.extensions.table.edit.uninstall.confirmation=Você tem certeza que deseja desinstalar esta extensão?
tab.extensions.port=Porta: tab.extensions.port=Porta:
tab.extensions.button.pythonshell=Terminal G-Python tab.extensions.button.pythonshell=Terminal G-Python
tab.extensions.button.pythonshell.windowtitle=Terminal Scripting tab.extensions.button.pythonshell.windowtitle=Terminal Scripting
tab.extensions.button.install=Instalar tab.extensions.button.install=Instalar
tab.extensions.button.install.windowtitle=Instalar extensão tab.extensions.button.install.windowtitle=Instalar extensão
tab.extensions.button.install.filetype=Extensões G-Earth tab.extensions.button.install.filetype=Extensões G-Earth
tab.extensions.button.logs=Ver registros tab.extensions.button.logs=Ver registros
tab.extensions.button.logs.windowtitle=Console de Extensões tab.extensions.button.logs.windowtitle=Console de Extensões
### Tab - Extra ### Tab - Extra
tab.extra=Extra tab.extra=Extra
tab.extra.notepad=Anotações: tab.extra.notepad=Anotações:
tab.extra.troubleshooting=Resolução de problemas tab.extra.troubleshooting=Resolução de problemas
tab.extra.options.alwaysontop=Manter no topo tab.extra.options.alwaysontop=Manter no topo
tab.extra.options.staffpermissions=Permissões de staff no Cliente tab.extra.options.staffpermissions=Permissões de staff no Cliente
tab.extra.options.pythonscripting=G-Python scripting tab.extra.options.pythonscripting=G-Python scripting
tab.extra.options.pythonscripting.alert.title=Instalação do G-Python tab.extra.options.pythonscripting.alert.title=Instalação do G-Python
tab.extra.options.pythonscripting.alert.content=Antes de usar G-Python, instale os pacotes corretos usando pip! tab.extra.options.pythonscripting.alert.content=Antes de usar G-Python, instale os pacotes corretos usando pip!
tab.extra.options.pythonscripting.alert.moreinformation=Mais informações aqui: tab.extra.options.pythonscripting.alert.moreinformation=Mais informações aqui:
tab.extra.options.advanced=Avançado tab.extra.options.advanced=Avançado
tab.extra.options.advanced.socks=Usar proxy SOCKS tab.extra.options.advanced.socks=Usar proxy SOCKS
tab.extra.options.advanced.proxy.ip=IP do proxy: tab.extra.options.advanced.proxy.ip=IP do proxy:
tab.extra.options.advanced.proxy.port=Porta do proxy: tab.extra.options.advanced.proxy.port=Porta do proxy:
@ -112,7 +112,7 @@ tab.info=Info
tab.info.description=Manipulador de pacotes do Habbo para Linux, Windows e Mac tab.info.description=Manipulador de pacotes do Habbo para Linux, Windows e Mac
tab.info.donate=Doar BTC tab.info.donate=Doar BTC
tab.info.donate.alert.title=Doar Bitcoins tab.info.donate.alert.title=Doar Bitcoins
tab.info.donate.alert.content=Endereço público Bitcoin: tab.info.donate.alert.content=Endereço público Bitcoin:
tab.info.createdby=Criado por: tab.info.createdby=Criado por:
tab.info.links=Links: tab.info.links=Links:
tab.info.contributors=Contribuidores: tab.info.contributors=Contribuidores:
@ -121,52 +121,52 @@ tab.info.contributors=Contribuidores:
## Alert ## Alert
### Alert - Confirmation ### Alert - Confirmation
alert.confirmation.windowtitle=Aviso de confirmação alert.confirmation.windowtitle=Aviso de confirmação
alert.confirmation.button.donotaskagain=Não pergunte novamente alert.confirmation.button.donotaskagain=Não pergunte novamente
alert.confirmation.button.remember=Lembrar minha escolha alert.confirmation.button.remember=Lembrar minha escolha
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth requer privilégios de administrador para funcionar no Flash,\\n\ alert.adminvalidator.content=G-Earth requer privilégios de administrador para funcionar no Flash,\n\
por favor reinicie o G-Earth com permissões de administrador a não ser que\\n\ por favor reinicie o G-Earth com permissões de administrador a não ser que\n\
você esteja usando Unity você esteja usando Unity
### Alert - Outdated ### Alert - Outdated
alert.outdated.title=G-Earth está desatualizado! alert.outdated.title=G-Earth está desatualizado!
alert.outdated.content.newversion=Uma nova versão do G-Earth foi encontrada alert.outdated.content.newversion=Uma nova versão do G-Earth foi encontrada
alert.outdated.content.update=Atualizar para a versão mais recente alert.outdated.content.update=Atualizar para a versão mais recente
### Alert - Invalid connection ### Alert - Invalid connection
alert.invalidconnection.content=Você entrou com inforções de conexão inválidas, o G-Earth não conseguiu se conectar alert.invalidconnection.content=Você entrou com inforções de conexão inválidas, o G-Earth não conseguiu se conectar
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Instalação de certificado do root alert.rootcertificate.title=Instalação de certificado do root
alert.rootcertificate.remember=Lembrar minha escolha alert.rootcertificate.remember=Lembrar minha escolha
alert.rootcertificate.content=G-Earth detectou que você não possui o certificado de autoridade do root instalado.\\n\ alert.rootcertificate.content=G-Earth detectou que você não possui o certificado de autoridade do root instalado.\n\
Isso é necessário para o Nitro funcionar, você deseja continuar?\\n\ Isso é necessário para o Nitro funcionar, você deseja continuar?\n\
G-Earth vai te pedir pela permissão de Administrador se você fizer isso. G-Earth vai te pedir pela permissão de Administrador se você fizer isso.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth já está conectado com este hotel.\\n\ alert.alreadyconnected.content=G-Earth já está conectado com este hotel.\n\
Devido a limitações atuais você só consegue se conectar a uma sessão por hotel no G-Earth em modo IP Bruto no Windows.\\n\ Devido a limitações atuais você só consegue se conectar a uma sessão por hotel no G-Earth em modo IP Bruto no Windows.\n\
\\n\ \n\
Você pode contornar isso utilizando um proxy SOCKS [Extra -> Avançado -> SOCKS] Você pode contornar isso utilizando um proxy SOCKS [Extra -> Avançado -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Algo inesperado aconteceu! alert.somethingwentwrong.title=Algo inesperado aconteceu!
alert.somethingwentwrong.content=Algo inesperado aconteceu!\\n\ alert.somethingwentwrong.content=Algo inesperado aconteceu!\n\
\\n\ \n\
para nossa página de Solução de problemas para resolver o ocorrido: para nossa página de Solução de problemas para resolver o ocorrido:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Exntesão "%s" tentou se conectar mas é desconcida pelo G-Earth,\\n\ alert.extconnection.content=Exntesão "%s" tentou se conectar mas é desconcida pelo G-Earth,\n\
aceitar essa conexão? aceitar essa conexão?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=Erro G-Python alert.gpythonerror.title=Erro G-Python
alert.gpythonerror.content=Algo inesperado aconteceu executando o terminal G-Python,\\n\ alert.gpythonerror.content=Algo inesperado aconteceu executando o terminal G-Python,\n\
você tem certeza que seguiu o guia de instalação corretamente?\\n\ você tem certeza que seguiu o guia de instalação corretamente?\n\
\\n\ \n\
Mais informações aqui: Mais informações aqui:
## Internal extension ## Internal extension
@ -182,48 +182,48 @@ ext.store.elapsedtime.day.single=dia
ext.store.elapsedtime.day.multiple=dias ext.store.elapsedtime.day.multiple=dias
ext.store.elapsedtime.week.single=semana ext.store.elapsedtime.week.single=semana
ext.store.elapsedtime.week.multiple=semanas ext.store.elapsedtime.week.multiple=semanas
ext.store.elapsedtime.month.single=mês ext.store.elapsedtime.month.single=mês
ext.store.elapsedtime.month.multiple=meses ext.store.elapsedtime.month.multiple=meses
ext.store.elapsedtime.year.single=ano ext.store.elapsedtime.year.single=ano
ext.store.elapsedtime.year.multiple=anos ext.store.elapsedtime.year.multiple=anos
ext.store.extension.version=Versão ext.store.extension.version=Versão
ext.store.extension.rating=Avaliação ext.store.extension.rating=Avaliação
ext.store.extension.madeby=Por %s ext.store.extension.madeby=Por %s
ext.store.extension.lastupdated=última atualização %s atrás ext.store.extension.lastupdated=última atualização %s atrás
ext.store.extension.notinstore=Não encontrado na G-ExtensionStore ext.store.extension.notinstore=Não encontrado na G-ExtensionStore
ext.store.extension.details.description=Descrição ext.store.extension.details.description=Descrição
ext.store.extension.details.authors=Autor(es) ext.store.extension.details.authors=Autor(es)
ext.store.extension.details.categories=Categorias ext.store.extension.details.categories=Categorias
ext.store.extension.details.technical_information=Informação técnica ext.store.extension.details.technical_information=Informação técnica
ext.store.extension.details.click_here=Clique aqui ext.store.extension.details.click_here=Clique aqui
ext.store.extension.details.releases=Lançamentos ext.store.extension.details.releases=Lançamentos
ext.store.extension.details.language=Linguagem ext.store.extension.details.language=Linguagem
ext.store.extension.details.source=Origem ext.store.extension.details.source=Origem
ext.store.extension.details.framework=Framework ext.store.extension.details.framework=Framework
ext.store.extension.details.systems=Sistemas ext.store.extension.details.systems=Sistemas
ext.store.extension.details.clients=Clientes compatíveis ext.store.extension.details.clients=Clientes compatíveis
ext.store.extension.details.screenshot=Captura de tela ext.store.extension.details.screenshot=Captura de tela
ext.store.extension.author.reputation=reputação ext.store.extension.author.reputation=reputação
ext.store.extension.author.releases=lançamentos ext.store.extension.author.releases=lançamentos
ext.store.extension.warning.requirement=Aviso: o framework requer --url:additional installations- ext.store.extension.warning.requirement=Aviso: o framework requer --url:instalações adicionais-
! IMPORTANT: the previous line has to end with the --url component like the english version ! IMPORTANT: the previous line has to end with the --url component like the english version
ext.store.extension.warning.unstable=Aviso: esta extensão foi marcada como instável! ext.store.extension.warning.unstable=Aviso: esta extensão foi marcada como instável!
ext.store.extension.status.await.install=Instalar extensão ext.store.extension.status.await.install=Instalar extensão
ext.store.extension.status.await.install.message=Pressione "OK" e espere enquanto a extensão é instalada ext.store.extension.status.await.install.message=Pressione "OK" e espere enquanto a extensão é instalada
ext.store.extension.status.await.update=Atualizar extensão ext.store.extension.status.await.update=Atualizar extensão
ext.store.extension.status.await.update.message=Pressione "OK" e espere enquanto a extensão é atualizada ext.store.extension.status.await.update.message=Pressione "OK" e espere enquanto a extensão é atualizada
ext.store.extension.status.success.install=Instalação completa ext.store.extension.status.success.install=Instalação completa
ext.store.extension.status.success.install.message=Instalação da extensão completa com sussesso ext.store.extension.status.success.install.message=Instalação da extensão completa com sussesso
ext.store.extension.status.success.update=Atualização completa ext.store.extension.status.success.update=Atualização completa
ext.store.extension.status.success.update.message=Instalação da extensão completa com sucesso ext.store.extension.status.success.update.message=Instalação da extensão completa com sucesso
ext.store.extension.status.error.install=Instalação falhou ext.store.extension.status.error.install=Instalação falhou
ext.store.extension.status.error.install.message=Instalação falhou com a seguinte mensagem ext.store.extension.status.error.install.message=Instalação falhou com a seguinte mensagem
ext.store.extension.status.error.update=Atualização falhou ext.store.extension.status.error.update=Atualização falhou
ext.store.extension.status.error.update.message=Atualização falhou com a seguinte mensagem ext.store.extension.status.error.update.message=Atualização falhou com a seguinte mensagem
ext.store.button.search=Buscar ext.store.button.search=Buscar
ext.store.button.install=Instalar ext.store.button.install=Instalar
@ -231,34 +231,34 @@ ext.store.button.installed=Instalado
ext.store.button.update=Atualizar ext.store.button.update=Atualizar
ext.store.search.title=Buscar ext.store.search.title=Buscar
ext.store.search.description=Encontre a extensão que se adequa às suas necessidades ext.store.search.description=Encontre a extensão que se adequa às suas necessidades
ext.store.search.contenttitle=Buscar extensões ext.store.search.contenttitle=Buscar extensões
ext.store.search.bykeyword=Buscar por palavra-chave ext.store.search.bykeyword=Buscar por palavra-chave
ext.store.search.results=Resultados da busca ext.store.search.results=Resultados da busca
ext.store.search.ordering=Ordenação das extensões ext.store.search.ordering=Ordenação das extensões
ext.store.search.ordering.bydate.title=Novos lançamentos ext.store.search.ordering.bydate.title=Novos lançamentos
ext.store.search.ordering.bydate.description=Extensões que foram recentemente adicionadas à G-ExtensionStore ext.store.search.ordering.bydate.description=Extensões que foram recentemente adicionadas à G-ExtensionStore
ext.store.search.ordering.bydate.contenttitle=Novos lançamentos ext.store.search.ordering.bydate.contenttitle=Novos lançamentos
ext.store.search.ordering.byrating.title=Extensões populares ext.store.search.ordering.byrating.title=Extensões populares
ext.store.search.ordering.byrating.description=Extensões ordenadas pela avaliação ext.store.search.ordering.byrating.description=Extensões ordenadas pela avaliação
ext.store.search.ordering.byrating.contenttitle=Extensões populares ext.store.search.ordering.byrating.contenttitle=Extensões populares
ext.store.search.ordering.byupdate.title=Recentemente atualizadas ext.store.search.ordering.byupdate.title=Recentemente atualizadas
ext.store.search.ordering.byupdate.description=Extensões que foram atualizadas recentemente ext.store.search.ordering.byupdate.description=Extensões que foram atualizadas recentemente
ext.store.search.ordering.byupdate.contenttitle=Recentemente atualizadas ext.store.search.ordering.byupdate.contenttitle=Recentemente atualizadas
ext.store.search.filter.clients=Clientes ext.store.search.filter.clients=Clientes
ext.store.search.filter.categories=Categorias ext.store.search.filter.categories=Categorias
ext.store.search.filter.frameworks=Frameworks ext.store.search.filter.frameworks=Frameworks
ext.store.search.info.automaticosfiltering=Info: você é automaticamente filtrado pelo SO que você usa ext.store.search.info.automaticosfiltering=Info: você é automaticamente filtrado pelo SO que você usa
ext.store.category=Categoria ext.store.category=Categoria
ext.store.overview.title=Extensões instaladas ext.store.overview.title=Extensões instaladas
ext.store.overview.description=Extensões que já estão instaladas no G-Earth ext.store.overview.description=Extensões que já estão instaladas no G-Earth
ext.store.overview.contenttitle=Extensões instaladas ext.store.overview.contenttitle=Extensões instaladas
ext.store.overview.folder=Abrir pasta ext.store.overview.folder=Abrir pasta
ext.store.categories.title=Categorias ext.store.categories.title=Categorias
ext.store.categories.description=Explore os diferentes tipos de extensões que o G-Earth tem a oferecer ext.store.categories.description=Explore os diferentes tipos de extensões que o G-Earth tem a oferecer
ext.store.categories.contenttitle=Categorias ext.store.categories.contenttitle=Categorias

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Connected
tab.connection.state.waiting=Waiting for connection tab.connection.state.waiting=Waiting for connection
tab.connection.port=Port: tab.connection.port=Port:
tab.connection.host=Host: tab.connection.host=Host:
tab.connection.connect=Connect tab.connection.button.connect=Connect
tab.connection.abort=Abort tab.connection.button.abort=Abort
tab.connection.autodetect=Auto-detect tab.connection.autodetect=Auto-detect
### Tab - Injection ### Tab - Injection
@ -126,8 +126,8 @@ alert.confirmation.button.donotaskagain=Do not ask again
alert.confirmation.button.remember=Remember my choice alert.confirmation.button.remember=Remember my choice
### Alert - AdminValidator ### Alert - AdminValidator
alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\\n\ alert.adminvalidator.content=G-Earth needs admin privileges in order to work on Flash,\n\
please restart G-Earth with admin permissions unless\\n\ please restart G-Earth with admin permissions unless\n\
you're using Unity you're using Unity
### Alert - Outdated ### Alert - Outdated
@ -141,31 +141,31 @@ alert.invalidconnection.content=You entered invalid connection information, G-Ea
### Alert - Nitro root certificate ### Alert - Nitro root certificate
alert.rootcertificate.title=Root certificate installation alert.rootcertificate.title=Root certificate installation
alert.rootcertificate.remember=Remember my choice alert.rootcertificate.remember=Remember my choice
alert.rootcertificate.content=G-Earth detected that you do not have the root certificate authority installed.\\n\ 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\ 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. G-Earth will ask you for Administrator permission if you do so.
### Alert - Already connected ### Alert - Already connected
alert.alreadyconnected.content=G-Earth is already connected to this hotel.\\n\ 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\ Due to current limitations you can only connect one session per hotel to G-Earth in Raw IP mode on Windows.\n\
\\n\ \n\
You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS] You can bypass this by using a SOCKS proxy [Extra -> Advanced -> SOCKS]
### Alert - Something went wrong ### Alert - Something went wrong
alert.somethingwentwrong.title=Something went wrong! alert.somethingwentwrong.title=Something went wrong!
alert.somethingwentwrong.content=Something went wrong!\\n\ alert.somethingwentwrong.content=Something went wrong!\n\
\\n\ \n\
Head over to our Troubleshooting page to solve the problem: Head over to our Troubleshooting page to solve the problem:
### Alert - Allow extension connection ### Alert - Allow extension connection
alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\\n\ alert.extconnection.content=Extension "%s" tries to connect but isn't known to G-Earth,\n\
accept this connection? accept this connection?
### Alert - G-Python error ### Alert - G-Python error
alert.gpythonerror.title=G-Python error alert.gpythonerror.title=G-Python error
alert.gpythonerror.content=Something went wrong launching the G-Python shell,\\n\ alert.gpythonerror.content=Something went wrong launching the G-Python shell,\n\
are you sure you followed the installation guide correctly?\\n\ are you sure you followed the installation guide correctly?\n\
\\n\ \n\
More information here: More information here: