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

View File

@ -3,8 +3,8 @@ package gearth.ui;
import gearth.protocol.connection.proxy.ProxyProviderFactory;
import gearth.protocol.connection.proxy.SocksConfiguration;
import gearth.ui.subforms.logger.loggerdisplays.PacketLoggerFactory;
import gearth.ui.translations.TranslatableString;
import javafx.scene.control.*;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;
import gearth.protocol.HConnection;
import gearth.ui.subforms.connection.ConnectionController;
@ -21,7 +21,7 @@ import java.util.List;
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;
private Stage stage = null;
private volatile HConnection hConnection;
@ -67,6 +67,10 @@ public class GEarthController {
trySetController();
}
if (PacketLoggerFactory.usesUIlogger()) {
tabBar.getTabs().remove(tab_Logger);
}
List<Tab> uiTabs = tabBar.getTabs();
for (int i = 0; i < uiTabs.size(); i++) {
Tab tab = uiTabs.get(i);
@ -79,11 +83,7 @@ public class GEarthController {
});
}
if (PacketLoggerFactory.usesUIlogger()) {
tabBar.getTabs().remove(tab_Logger);
}
initLanguageBinding();
}
public void setStage(Stage stage) {
@ -120,4 +120,13 @@ public class GEarthController {
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.proxy.ProxyProviderFactory;
import gearth.services.Constants;
import gearth.ui.translations.TranslatableString;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
@ -29,7 +30,7 @@ public class ConnectionController extends SubForm {
public ComboBox<String> inpPort;
public ComboBox<String> inpHost;
public Button btnConnect;
public Label lblState;
public Label lblInpPort, lblInpHost, lblPort, lblHost, lblHotelVersion, lblClient, lblStateHead, lblState;
public TextField outHost;
public TextField outPort;
public CheckBox cbx_autodetect;
@ -131,6 +132,8 @@ public class ConnectionController extends SubForm {
synchronized (this) {
tryMaybeConnectOnInit();
}
initLanguageBinding();
}
@ -176,20 +179,20 @@ public class ConnectionController extends SubForm {
getHConnection().getStateObservable().addListener((oldState, newState) -> Platform.runLater(() -> {
updateInputUI();
if (newState == HState.NOT_CONNECTED) {
lblState.setText(GEarth.translation.getString("tab.connection.state.notconnected"));
btnConnect.setText(GEarth.translation.getString("tab.connection.connect"));
lblState.textProperty().bind(ConnectionState.NOTCONNECTED.value);
btnConnect.textProperty().bind(ConnectButton.CONNECT.value);
outHost.setText("");
outPort.setText("");
}
else if (oldState == HState.NOT_CONNECTED) {
btnConnect.setText(GEarth.translation.getString("tab.connection.abort"));
btnConnect.textProperty().bind(ConnectButton.ABORT.value);
}
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) {
lblState.setText(GEarth.translation.getString("tab.connection.state.waiting"));
lblState.textProperty().bind(ConnectionState.WAITING.value);
}
if (newState == HState.CONNECTED && useFlash()) {
@ -314,4 +317,45 @@ public class ConnectionController extends SubForm {
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.protocol.HMessage;
import gearth.protocol.connection.HState;
import gearth.ui.translations.TranslatableString;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
@ -27,7 +28,7 @@ public class InjectionController extends SubForm {
private static final int historylimit = 69;
public TextArea inputPacket;
public Text lbl_corrruption;
public Text lbl_corruption;
public Text lbl_pcktInfo;
public Button btn_sendToServer;
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);
if (rawHistory != null) {
@ -104,33 +106,33 @@ public class InjectionController extends SubForm {
private void updateUI() {
boolean dirty = false;
lbl_corrruption.setText(GEarth.translation.getString("tab.injection.corrupted.false"));
lbl_corrruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("not-corrupted-label");
lbl_corruption.setText(GEarth.translation.getString("tab.injection.corrupted.false"));
lbl_corruption.getStyleClass().clear();
lbl_corruption.getStyleClass().add("not-corrupted-label");
HPacket[] packets = parsePackets(inputPacket.getText());
if (packets.length == 0) {
dirty = true;
lbl_corrruption.setFill(Paint.valueOf("#ee0404b2"));
lbl_corrruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("corrupted-label");
lbl_corruption.setFill(Paint.valueOf("#ee0404b2"));
lbl_corruption.getStyleClass().clear();
lbl_corruption.getStyleClass().add("corrupted-label");
}
for (int i = 0; i < packets.length; i++) {
if (packets[i].isCorrupted()) {
if (!dirty) {
lbl_corrruption.setText(String.format("%s -> %d", GEarth.translation.getString("tab.injection.corrupted.true"), i));
lbl_corrruption.getStyleClass().clear();
lbl_corrruption.getStyleClass().add("corrupted-label");
lbl_corruption.setText(String.format("%s -> %d", GEarth.translation.getString("tab.injection.corrupted.true"), i));
lbl_corruption.getStyleClass().clear();
lbl_corruption.getStyleClass().add("corrupted-label");
dirty = true;
} else
lbl_corrruption.setText(lbl_corrruption.getText() + ", " + i);
lbl_corruption.setText(lbl_corruption.getText() + ", " + i);
}
}
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) {

View File

@ -2,16 +2,18 @@ package gearth.ui.titlebar;
import gearth.GEarth;
import gearth.ui.themes.ThemeFactory;
import gearth.ui.translations.Language;
import gearth.ui.translations.LanguageBundle;
import javafx.application.Platform;
import javafx.beans.InvalidationListener;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Label;
import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.ContextMenuEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
@ -19,6 +21,7 @@ import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.WindowEvent;
import java.io.IOException;
import java.util.Optional;
@ -30,6 +33,7 @@ public class TitleBarController {
public ImageView titleIcon;
public ImageView themeBtn;
public ImageView minimizeBtn;
public MenuButton languagePicker;
private Stage stage;
private TitleBarConfig config;
@ -83,6 +87,9 @@ public class TitleBarController {
stage.titleProperty().addListener((i) -> 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());
controller.updateIcon();
@ -96,11 +103,16 @@ public class TitleBarController {
if (!config.displayThemePicker()) {
((GridPane) controller.themeBtn.getParent()).getChildren().remove(controller.themeBtn);
((GridPane) controller.languagePicker.getParent()).getChildren().remove(controller.languagePicker);
}
});
return controller;
}
private static void initLanguagePicker() {
}
public void updateIcon() {
Platform.runLater(() -> titleIcon.setImage(stage.getIcons().size() > 0 ? stage.getIcons().get(0) :
new Image(GEarth.class.getResourceAsStream(
@ -158,5 +170,4 @@ public class TitleBarController {
}
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.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>
<MenuBar BorderPane.alignment="CENTER">
<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">
<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" />
</Tab>
<Tab fx:id="tab_Logger" text="Logger">
<fx:include fx:id="logger" source="subforms/logger/Logger.fxml" />
</Tab>
<Tab text="%tab.injection">
<Tab fx:id="tab_Injection" text="Injection">
<fx:include fx:id="injection" source="subforms/injection/Injection.fxml" />
</Tab>
<Tab text="%tab.tools">
<Tab fx:id="tab_Tools" text="Tools">
<fx:include fx:id="tools" source="subforms/tools/Tools.fxml" />
</Tab>
<Tab text="%tab.scheduler">
<Tab fx:id="tab_Scheduler" text="Scheduler">
<fx:include fx:id="scheduler" source="subforms/scheduler/Scheduler.fxml" />
</Tab>
<Tab text="%tab.extensions">
<Tab fx:id="tab_Extensions" text="Extensions">
<fx:include fx:id="extensions" source="subforms/extensions/Extensions.fxml" />
</Tab>
<Tab text="%tab.extra">
<Tab fx:id="tab_Extra" text="Extra">
<fx:include fx:id="extra" source="subforms/extra/Extra.fxml" />
</Tab>
<Tab text="Info">
<Tab fx:id="tab_Info" text="Info">
<fx:include fx:id="info" source="subforms/info/Info.fxml" />
</Tab>
</TabPane>

View File

@ -5,7 +5,7 @@
<?import javafx.scene.layout.*?>
<?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 hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
@ -45,7 +45,7 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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">
<GridPane.margin>
<Insets right="15.0" />
@ -60,7 +60,7 @@
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</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">
<GridPane.margin>
<Insets right="15.0" />
@ -78,7 +78,7 @@
<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>
<Insets left="-5.0" />
</GridPane.margin>
@ -86,7 +86,7 @@
<Font size="12.0" />
</font>
</CheckBox>
<Button fx:id="btnConnect" alignment="CENTER" maxWidth="1.7976931348623157E308" onAction="#btnConnect_clicked" text="%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>
<Insets left="15.0" right="15.0" />
</GridPane.margin>
@ -114,7 +114,7 @@
<RowConstraints maxHeight="86.0" minHeight="10.0" prefHeight="40.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="%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">
<opaqueInsets>
<Insets />
@ -140,7 +140,7 @@
<RowConstraints minHeight="20.0" prefHeight="34.0" vgrow="SOMETIMES" />
</rowConstraints>
<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>
<Insets left="8.0" />
</padding>
@ -148,7 +148,7 @@
<Insets right="-20.0" />
</GridPane.margin>
</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 fx:id="tgl_clientMode" />
</toggleGroup>
@ -156,12 +156,12 @@
<Insets />
</GridPane.margin>
</RadioButton>
<RadioButton fx:id="rd_flash" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="35.0" prefWidth="111.0" selected="true" text="%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>
<Insets />
</GridPane.margin>
</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>
<Insets />
</GridPane.margin>
@ -199,7 +199,7 @@
<GridPane.margin>
<Insets bottom="14.0" left="20.0" right="20.0" />
</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>
<Insets bottom="5.0" left="2.0" />
</GridPane.margin>
@ -207,7 +207,7 @@
<Font size="12.0" />
</font>
</Label>
<Label fx:id="lblState" alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-border-color: #888888; -fx-border-radius: 5px;" text="%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>
<Insets />
</GridPane.margin>
@ -228,12 +228,12 @@
<padding>
<Insets bottom="7.0" top="7.0" />
</padding>
<Label text="%tab.connection.host" textFill="#000000cc">
<Label fx:id="lblHost" text="Host:" textFill="#000000cc">
<GridPane.margin>
<Insets left="10.0" />
</GridPane.margin>
</Label>
<Label text="%tab.connection.port" textFill="#000000cc" GridPane.rowIndex="1">
<Label fx:id="lblPort" text="Port:" textFill="#000000cc" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="10.0" />
</GridPane.margin>

View File

@ -37,7 +37,7 @@
<GridPane.margin>
<Insets left="13.0" right="13.0" top="4.0" />
</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 name="System Italic" size="11.0" />
</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

@ -1007,3 +1007,71 @@ VBox > .split-menu-button.last > .arrow-button {
.scroll-pane {
-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

@ -1113,3 +1113,71 @@ VBox > .split-menu-button.last > .arrow-button {
-fx-border-radius: 10;
-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

@ -1006,3 +1006,71 @@ VBox > .split-menu-button.last > .arrow-button {
.scroll-pane {
-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,7 +5,7 @@
<?import javafx.scene.image.*?>
<?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 hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
@ -15,7 +15,7 @@
<RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" vgrow="SOMETIMES" />
</rowConstraints>
<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 url="@files/minimizeButton.png" />
</image>
@ -31,6 +31,7 @@
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" />
<ColumnConstraints hgrow="ALWAYS" />
<ColumnConstraints maxWidth="-Infinity" />
<ColumnConstraints maxWidth="-Infinity" />
<ColumnConstraints maxWidth="7.0" minWidth="7.0" prefWidth="7.0" />
</columnConstraints>
<rowConstraints>
@ -47,7 +48,11 @@
<Insets left="2.0" />
</padding>
</Label>
<ImageView fx:id="themeBtn" id="theme-button" fitHeight="20.0" fitWidth="38.0" onMouseClicked="#toggleTheme" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="3">
<MenuButton id="language-picker" fx:id="languagePicker" alignment="CENTER" contentDisplay="CENTER" graphicTextGap="0.0" mnemonicParsing="false" translateX="-5.0" GridPane.columnIndex="3">
<items>
</items>
</MenuButton>
<ImageView id="theme-button" fx:id="themeBtn" fitHeight="20.0" fitWidth="38.0" onMouseClicked="#toggleTheme" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="4">
<image>
<Image url="@../themes/G-Earth/themeButton.png" />
</image>

View File

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

View File

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

View File

@ -17,8 +17,8 @@ tab.connection.state.connected=Conectado
tab.connection.state.waiting=Esperando para la conexión
tab.connection.port=Puerto:
tab.connection.host=Host:
tab.connection.connect=Conectar
tab.connection.abort=Abortar
tab.connection.button.connect=Conectar
tab.connection.button.abort=Abortar
tab.connection.autodetect=Detección automática
### Tab - Injection
@ -126,9 +126,8 @@ alert.confirmation.button.donotaskagain=No me preguntes de nuevo
alert.confirmation.button.remember=Recordar mi elección
### Alert - AdminValidator
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\
estás usando Unity
alert.adminvalidator.content=G-Earth necesita permisos de administrador para funcionar en flash,\n\
por favor reinicie G-Earth con los permisos si no estás usando Unity
### Alert - Outdated
alert.outdated.title=¡G-Earth está desactualizado!
@ -141,31 +140,31 @@ alert.invalidconnection.content=Has introducida una conexi
### Alert - Nitro root certificate
alert.rootcertificate.title=Instalar Certificado Root
alert.rootcertificate.remember=Recordar mi elecció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\
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\
G-Earth te pedirá permisos de administrador para instalarlo.
### Alert - Already connected
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\
\\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\
\n\
Puedes saltarte esto usando un proxy SOCKS [Extra -> Avanzado -> SOCKS]
### Alert - Something went wrong
alert.somethingwentwrong.title=¡Algo ha salido mal!
alert.somethingwentwrong.content=¡Algo ha salido mal!\\n\
\\n\
alert.somethingwentwrong.content=¡Algo ha salido mal!\n\
\n\
Ve a nuestra página de ayuda para solucionar el problema:
### 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?
### Alert - G-Python error
alert.gpythonerror.title=G-Python error
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\
\\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\
\n\
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.releases=Versiones
ext.store.extension.warning.requirement=Atención: el framework necesita la instalación de --url:additional installations-
ext.store.extension.warning.requirement=Atención: el framework requiere --url:instalaciones adicionales-
! 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!

View File

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

View File

@ -20,8 +20,8 @@ tab.connection.state.connected=Connect
tab.connection.state.waiting=En attente de connexion
tab.connection.port=Port:
tab.connection.host=Host:
tab.connection.connect=Connecter
tab.connection.abort=Annuler
tab.connection.button.connect=Connecter
tab.connection.button.abort=Annuler
tab.connection.autodetect=Détection auto
### Tab - Injection
@ -129,9 +129,8 @@ alert.confirmation.button.donotaskagain=Ne pas demander
alert.confirmation.button.remember=Se souvenir de mon choix
### Alert - AdminValidator
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\
si tu utilises Unity
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 si tu utilises Unity
### Alert - Outdated
alert.outdated.title=G-Earth est obsolète!
@ -144,32 +143,32 @@ alert.invalidconnection.content=Tu as entr
### Alert - Nitro root certificate
alert.rootcertificate.title=Installation du certificat root
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\
Il est nécessaire pour que Nitro fonctionne, veux-tu continuer?\\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\
G-Earth va te demander les permissions administrateurs si tu le souhaites.
### Alert - Already connected
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\
en mode ""Raw IP"" (127.0.0.1) sur Windows.\\n\
\\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\
en mode ""Raw IP"" (127.0.0.1) sur Windows.\n\
\n\
Tu peux passer outre en utilisant un SOCKS proxy [Extra -> Avancer -> SOCKS]
### Alert - Something went wrong
alert.somethingwentwrong.title=Quelque chose s''est mal passé!
alert.somethingwentwrong.content=Quelque chose s''est mal passé!\\n\
\\n\
alert.somethingwentwrong.content=Quelque chose s''est mal passé!\n\
\n\
Rendez-vous sur notre page de dépannage pour résoudre le problème:
### 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?
### Alert - G-Python error
alert.gpythonerror.title=G-Python erreur
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\
\\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\
\n\
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.releases=Versions
ext.store.extension.warning.requirement=Attention: ce framework a besoin d''installation supplémentaires --url:additional installations-
ext.store.extension.warning.requirement=Attention: ce framework a besoin --url:des installations supplémentaires-
! 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!

View File

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

View File

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

View File

@ -5,36 +5,36 @@
## Tabs
### Tab - Connection
tab.connection=Conexão
tab.connection=Conexão
tab.connection.client=Tipo do cliente:
tab.connection.client.flash=Flash / Air
tab.connection.client.unity=Unity
tab.connection.client.nitro=Nitro
tab.connection.version=Versão do Hotel:
tab.connection.state=Estado da conexão:
tab.connection.state.notconnected=Não conectadoS
tab.connection.version=Versão do Hotel:
tab.connection.state=Estado da conexão:
tab.connection.state.notconnected=Não conectadoS
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.host=Host:
tab.connection.connect=Conectar
tab.connection.abort=Abortar
tab.connection.button.connect=Conectar
tab.connection.button.abort=Abortar
tab.connection.autodetect=Autodetectar
### Tab - Injection
tab.injection=Injeção
tab.injection=Injeção
tab.injection.corrupted.true=estaCorrompido: Verdadeiro
tab.injection.corrupted.false=estaCorrompido: Falso
tab.injection.description=cabeçalho (id:NULL, comprimento:0)
tab.injection.description.header=cabeçalho
tab.injection.description=cabeçalho (id:NULL, comprimento:0)
tab.injection.description.header=cabeçalho
tab.injection.description.packets=pacotes
tab.injection.description.id=id
tab.injection.description.length=comprimento
tab.injection.send.toserver=Enviar para o servidor
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.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 - Tools
@ -44,11 +44,11 @@ tab.tools.button.decode=Decodificar
tab.tools.type.integer=Inteiro:
tab.tools.type.ushort=Ushort:
tab.tools.encodingdecoding=Codificando/decodificando
tab.tools.packettoexpression=Pacote <-> expressão
tab.tools.packettoexpression=Pacote <-> expressão
### Tab - Scheduler
tab.scheduler=Agendador
tab.scheduler.table.index=Índice
tab.scheduler.table.index=Índice
tab.scheduler.table.packet=Pacote
tab.scheduler.table.interval=Intervalo
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 - Extensions
tab.extensions=Extensões
tab.extensions.table.title=Título
tab.extensions.table.description=Descrição
tab.extensions=Extensões
tab.extensions.table.title=Título
tab.extensions.table.description=Descrição
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.delete.tooltip=Fechar conexão com 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.confirmation=Você tem certeza que deseja desinstalar 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.uninstall.tooltip=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.button.pythonshell=Terminal G-Python
tab.extensions.button.pythonshell.windowtitle=Terminal Scripting
tab.extensions.button.install=Instalar
tab.extensions.button.install.windowtitle=Instalar extensão
tab.extensions.button.install.filetype=Extensões G-Earth
tab.extensions.button.install.windowtitle=Instalar extensão
tab.extensions.button.install.filetype=Extensões G-Earth
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=Extra
tab.extra.notepad=Anotações:
tab.extra.troubleshooting=Resolução de problemas
tab.extra.notepad=Anotações:
tab.extra.troubleshooting=Resolução de problemas
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.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.moreinformation=Mais informações aqui:
tab.extra.options.advanced=Avançado
tab.extra.options.pythonscripting.alert.moreinformation=Mais informações aqui:
tab.extra.options.advanced=Avançado
tab.extra.options.advanced.socks=Usar proxy SOCKS
tab.extra.options.advanced.proxy.ip=IP 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.donate=Doar BTC
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.links=Links:
tab.info.contributors=Contribuidores:
@ -121,52 +121,52 @@ tab.info.contributors=Contribuidores:
## Alert
### Alert - Confirmation
alert.confirmation.windowtitle=Aviso de confirmação
alert.confirmation.button.donotaskagain=Não pergunte novamente
alert.confirmation.windowtitle=Aviso de confirmação
alert.confirmation.button.donotaskagain=Não pergunte novamente
alert.confirmation.button.remember=Lembrar minha escolha
### Alert - AdminValidator
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\
você esteja usando Unity
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\
você esteja usando Unity
### Alert - Outdated
alert.outdated.title=G-Earth está desatualizado!
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.title=G-Earth está desatualizado!
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 - 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.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.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\
G-Earth vai te pedir pela permissão de Administrador se você fizer isso.
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\
G-Earth vai te pedir pela permissão de Administrador se você fizer isso.
### Alert - Already connected
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\
\\n\
Você pode contornar isso utilizando um proxy SOCKS [Extra -> Avançado -> SOCKS]
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\
\n\
Você pode contornar isso utilizando um proxy SOCKS [Extra -> Avançado -> SOCKS]
### Alert - Something went wrong
alert.somethingwentwrong.title=Algo inesperado aconteceu!
alert.somethingwentwrong.content=Algo inesperado aconteceu!\\n\
\\n\
para nossa página de Solução de problemas para resolver o ocorrido:
alert.somethingwentwrong.content=Algo inesperado aconteceu!\n\
\n\
para nossa página de Solução de problemas para resolver o ocorrido:
### Alert - Allow extension connection
alert.extconnection.content=Exntesão "%s" tentou se conectar mas é desconcida pelo G-Earth,\\n\
aceitar essa conexão?
alert.extconnection.content=Exntesão "%s" tentou se conectar mas é desconcida pelo G-Earth,\n\
aceitar essa conexão?
### Alert - G-Python error
alert.gpythonerror.title=Erro G-Python
alert.gpythonerror.content=Algo inesperado aconteceu executando o terminal G-Python,\\n\
você tem certeza que seguiu o guia de instalação corretamente?\\n\
\\n\
Mais informações aqui:
alert.gpythonerror.content=Algo inesperado aconteceu executando o terminal G-Python,\n\
você tem certeza que seguiu o guia de instalação corretamente?\n\
\n\
Mais informações aqui:
## Internal extension
@ -182,48 +182,48 @@ ext.store.elapsedtime.day.single=dia
ext.store.elapsedtime.day.multiple=dias
ext.store.elapsedtime.week.single=semana
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.year.single=ano
ext.store.elapsedtime.year.multiple=anos
ext.store.extension.version=Versão
ext.store.extension.rating=Avaliação
ext.store.extension.version=Versão
ext.store.extension.rating=Avaliação
ext.store.extension.madeby=Por %s
ext.store.extension.lastupdated=última atualização %s atrás
ext.store.extension.notinstore=Não encontrado na G-ExtensionStore
ext.store.extension.details.description=Descrição
ext.store.extension.lastupdated=última atualização %s atrás
ext.store.extension.notinstore=Não encontrado na G-ExtensionStore
ext.store.extension.details.description=Descrição
ext.store.extension.details.authors=Autor(es)
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.releases=Lançamentos
ext.store.extension.details.releases=Lançamentos
ext.store.extension.details.language=Linguagem
ext.store.extension.details.source=Origem
ext.store.extension.details.framework=Framework
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.author.reputation=reputação
ext.store.extension.author.releases=lançamentos
ext.store.extension.author.reputation=reputação
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
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.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.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.message=Instalação da extensão completa com sussesso
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.error.install=Instalação falhou
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.message=Atualização falhou com a seguinte mensagem
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.update=Atualizar extensão
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.message=Instalação da extensão completa com sussesso
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.error.install=Instalação falhou
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.message=Atualização falhou com a seguinte mensagem
ext.store.button.search=Buscar
ext.store.button.install=Instalar
@ -231,34 +231,34 @@ ext.store.button.installed=Instalado
ext.store.button.update=Atualizar
ext.store.search.title=Buscar
ext.store.search.description=Encontre a extensão que se adequa às suas necessidades
ext.store.search.contenttitle=Buscar extensões
ext.store.search.description=Encontre a extensão que se adequa às suas necessidades
ext.store.search.contenttitle=Buscar extensões
ext.store.search.bykeyword=Buscar por palavra-chave
ext.store.search.results=Resultados da busca
ext.store.search.ordering=Ordenação das extensões
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.contenttitle=Novos lançamentos
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.contenttitle=Extensões populares
ext.store.search.ordering=Ordenação das extensões
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.contenttitle=Novos lançamentos
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.contenttitle=Extensões populares
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.filter.clients=Clientes
ext.store.search.filter.categories=Categorias
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.overview.title=Extensões instaladas
ext.store.overview.description=Extensões que já estão instaladas no G-Earth
ext.store.overview.contenttitle=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.contenttitle=Extensões instaladas
ext.store.overview.folder=Abrir pasta
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

View File

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