mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-05-03 19:30:31 +00:00
Add custom service open action
This commit is contained in:
@@ -96,7 +96,7 @@ public abstract class AbstractServiceStoreProvider implements SingletonSessionSt
|
||||
() -> {
|
||||
var desc = formatService(s);
|
||||
var type = s.getServiceProtocolType() != null
|
||||
&& !(s.getServiceProtocolType() instanceof ServiceProtocolType.None)
|
||||
&& !(s.getServiceProtocolType() instanceof ServiceProtocolType.Undefined)
|
||||
? AppI18n.get(s.getServiceProtocolType().getTranslationKey())
|
||||
: null;
|
||||
var state = !s.requiresTunnel()
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ import javafx.beans.value.ObservableValue;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
public class ServiceCopyUrlAction implements ActionProvider {
|
||||
public class ServiceCopyAddressAction implements ActionProvider {
|
||||
|
||||
@Override
|
||||
public LeafDataStoreCallSite<?> getLeafDataStoreCallSite() {
|
||||
@@ -37,7 +37,7 @@ public class ServiceCopyUrlAction implements ActionProvider {
|
||||
|
||||
@Override
|
||||
public ObservableValue<String> getName(DataStoreEntryRef<AbstractServiceStore> store) {
|
||||
return AppI18n.observable("copyUrl");
|
||||
return AppI18n.observable("copyAddress");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,7 +59,7 @@ public class ServiceCopyUrlAction implements ActionProvider {
|
||||
? serviceStore.getSession().getLocalPort()
|
||||
: serviceStore.getRemotePort();
|
||||
var base = "localhost:" + l;
|
||||
var full = serviceStore.getServiceProtocolType().formatUrl(base);
|
||||
var full = serviceStore.getServiceProtocolType().formatAddress(base);
|
||||
ClipboardHelper.copyUrl(full);
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public class ServiceOpenAction implements ActionProvider {
|
||||
? serviceStore.getSession().getLocalPort()
|
||||
: serviceStore.getRemotePort();
|
||||
var base = "localhost:" + l;
|
||||
var full = serviceStore.getServiceProtocolType().formatUrl(base);
|
||||
var full = serviceStore.getServiceProtocolType().formatAddress(base);
|
||||
serviceStore.getServiceProtocolType().open(full);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,35 @@
|
||||
package io.xpipe.ext.base.service;
|
||||
|
||||
import io.xpipe.app.issue.ErrorEvent;
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.app.prefs.ExternalApplicationHelper;
|
||||
import io.xpipe.app.util.CommandSupport;
|
||||
import io.xpipe.app.util.Hyperlinks;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import io.xpipe.app.util.LocalShell;
|
||||
import io.xpipe.core.process.CommandBuilder;
|
||||
import io.xpipe.core.process.OsType;
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
import lombok.extern.jackson.Jacksonized;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.None.class),
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.Undefined.class),
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.Http.class),
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.Https.class)
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.Https.class),
|
||||
@JsonSubTypes.Type(value = ServiceProtocolType.Custom.class)
|
||||
})
|
||||
public interface ServiceProtocolType {
|
||||
|
||||
String formatUrl(String base);
|
||||
String formatAddress(String base);
|
||||
|
||||
void open(String url);
|
||||
void open(String url) throws Exception;
|
||||
|
||||
String getTranslationKey();
|
||||
|
||||
@@ -27,10 +37,10 @@ public interface ServiceProtocolType {
|
||||
@Value
|
||||
@Jacksonized
|
||||
@Builder
|
||||
class None implements ServiceProtocolType {
|
||||
class Undefined implements ServiceProtocolType {
|
||||
|
||||
@Override
|
||||
public String formatUrl(String base) {
|
||||
public String formatAddress(String base) {
|
||||
return base;
|
||||
}
|
||||
|
||||
@@ -39,7 +49,7 @@ public interface ServiceProtocolType {
|
||||
|
||||
@Override
|
||||
public String getTranslationKey() {
|
||||
return "none";
|
||||
return "undefined";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +62,7 @@ public interface ServiceProtocolType {
|
||||
String path;
|
||||
|
||||
@Override
|
||||
public String formatUrl(String base) {
|
||||
public String formatAddress(String base) {
|
||||
var url = "http://" + base;
|
||||
if (path != null && !path.isEmpty()) {
|
||||
url += (!path.startsWith("/") ? "/" : "") + path;
|
||||
@@ -80,7 +90,7 @@ public interface ServiceProtocolType {
|
||||
String path;
|
||||
|
||||
@Override
|
||||
public String formatUrl(String base) {
|
||||
public String formatAddress(String base) {
|
||||
var url = "https://" + base;
|
||||
if (path != null && !path.isEmpty()) {
|
||||
url += (!path.startsWith("/") ? "/" : "") + path;
|
||||
@@ -98,4 +108,40 @@ public interface ServiceProtocolType {
|
||||
return "https";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@JsonTypeName("custom")
|
||||
@Value
|
||||
@Jacksonized
|
||||
@Builder
|
||||
class Custom implements ServiceProtocolType {
|
||||
|
||||
String commandTemplate;
|
||||
|
||||
@Override
|
||||
public String formatAddress(String base) {
|
||||
return base;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void open(String url) throws Exception {
|
||||
if (commandTemplate == null || commandTemplate.isBlank()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var format = commandTemplate.toLowerCase(Locale.ROOT).contains("$address") ? commandTemplate : commandTemplate + " $ADDRESS";
|
||||
try (var pc = LocalShell.getShell().start()) {
|
||||
var toExecute = ExternalApplicationHelper.replaceFileArgument(format, "ADDRESS", url);
|
||||
var command = CommandBuilder.of().add(toExecute);
|
||||
// We can't be sure whether the command is blocking or not, so always make it not blocking
|
||||
command = pc.getShellDialect().launchAsnyc(command);
|
||||
pc.command(command).execute();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTranslationKey() {
|
||||
return "custom";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,41 @@
|
||||
package io.xpipe.ext.base.service;
|
||||
|
||||
import io.xpipe.app.comp.Comp;
|
||||
import io.xpipe.app.comp.CompStructure;
|
||||
import io.xpipe.app.comp.base.TextFieldComp;
|
||||
import io.xpipe.app.core.AppI18n;
|
||||
import io.xpipe.app.util.OptionsBuilder;
|
||||
|
||||
import javafx.beans.property.Property;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.property.*;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.scene.control.TextField;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
public class ServiceProtocolTypeHelper {
|
||||
|
||||
private static OptionsBuilder custom(Property<ServiceProtocolType.Custom> p) {
|
||||
var firstFocus = new SimpleBooleanProperty(false);
|
||||
var path = new SimpleStringProperty(p.getValue() != null ? p.getValue().getCommandTemplate() : null);
|
||||
var comp = new TextFieldComp(path).apply(struc -> {
|
||||
struc.get().focusedProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (!firstFocus.get()) {
|
||||
struc.get().getParent().requestFocus();
|
||||
firstFocus.set(true);
|
||||
}
|
||||
});
|
||||
struc.get().setPromptText("mycommand open $ADDRESS");
|
||||
});
|
||||
return new OptionsBuilder()
|
||||
.nameAndDescription("serviceCommand")
|
||||
.addComp(comp, path)
|
||||
.bind(
|
||||
() -> {
|
||||
return new ServiceProtocolType.Custom(path.get());
|
||||
},
|
||||
p);
|
||||
}
|
||||
|
||||
private static OptionsBuilder http(Property<ServiceProtocolType.Http> p) {
|
||||
var path = new SimpleStringProperty(p.getValue() != null ? p.getValue().getPath() : null);
|
||||
return new OptionsBuilder()
|
||||
@@ -41,25 +64,29 @@ public class ServiceProtocolTypeHelper {
|
||||
var ex = serviceProtocolType.getValue();
|
||||
var http = new SimpleObjectProperty<>(ex instanceof ServiceProtocolType.Http h ? h : null);
|
||||
var https = new SimpleObjectProperty<>(ex instanceof ServiceProtocolType.Https h ? h : null);
|
||||
var custom = new SimpleObjectProperty<>(ex instanceof ServiceProtocolType.Custom c ? c : null);
|
||||
var selected = new SimpleIntegerProperty(
|
||||
ex instanceof ServiceProtocolType.None
|
||||
ex instanceof ServiceProtocolType.Undefined
|
||||
? 0
|
||||
: ex instanceof ServiceProtocolType.Http
|
||||
? 1
|
||||
: ex instanceof ServiceProtocolType.Https ? 2 : -1);
|
||||
: ex instanceof ServiceProtocolType.Https ? 2 :
|
||||
ex instanceof ServiceProtocolType.Custom ? 3 : -1);
|
||||
var available = new LinkedHashMap<ObservableValue<String>, OptionsBuilder>();
|
||||
available.put(AppI18n.observable("none"), new OptionsBuilder());
|
||||
available.put(AppI18n.observable("undefined"), new OptionsBuilder());
|
||||
available.put(AppI18n.observable("http"), http(http));
|
||||
available.put(AppI18n.observable("https"), https(https));
|
||||
available.put(AppI18n.observable("custom"), custom(custom));
|
||||
return new OptionsBuilder()
|
||||
.nameAndDescription("serviceProtocolType")
|
||||
.choice(selected, available)
|
||||
.bindChoice(
|
||||
() -> {
|
||||
return switch (selected.get()) {
|
||||
case 0 -> new SimpleObjectProperty<>(new ServiceProtocolType.None());
|
||||
case 0 -> new SimpleObjectProperty<>(new ServiceProtocolType.Undefined());
|
||||
case 1 -> http;
|
||||
case 2 -> https;
|
||||
case 3 -> custom;
|
||||
default -> new SimpleObjectProperty<>();
|
||||
};
|
||||
},
|
||||
|
||||
@@ -81,7 +81,7 @@ open module io.xpipe.ext.base {
|
||||
StorePauseAction,
|
||||
StoreRestartAction,
|
||||
ServiceOpenAction,
|
||||
ServiceCopyUrlAction,
|
||||
ServiceCopyAddressAction,
|
||||
CloneStoreAction,
|
||||
RefreshChildrenStoreAction,
|
||||
RunScriptActionMenu,
|
||||
|
||||
@@ -1263,7 +1263,9 @@ updateNagTitle=Påmindelse om opdatering
|
||||
updateNagButton=Se udgivelser
|
||||
refreshServices=Opdater tjenester
|
||||
serviceProtocolType=Type serviceprotokol
|
||||
serviceProtocolTypeDescription=Den protokol, der skal bruges til at åbne tjenesten
|
||||
serviceProtocolTypeDescription=Kontrollerer, hvordan man åbner tjenesten
|
||||
serviceCommand=Den kommando, der skal køres, når tjenesten er aktiv
|
||||
serviceCommandDescription=Pladsholderen $ADDRESS vil blive erstattet med den faktiske tunnelerede adresse
|
||||
value=Værdi
|
||||
showAdvancedOptions=Vis avancerede indstillinger
|
||||
sshAdditionalConfigOptions=Yderligere konfigurationsmuligheder
|
||||
@@ -1272,3 +1274,5 @@ clearUserData=Sletning af brugerdata
|
||||
clearUserDataDescription=Slet alle brugerkonfigurationsdata, herunder forbindelser
|
||||
clearUserDataTitle=Sletning af brugerdata
|
||||
clearUserDataContent=Dette vil slette alle lokale brugerdata for xpipe og genstarte. Hvis du er interesseret i dine forbindelser, skal du sørge for at synkronisere dem først med et git-repository.
|
||||
undefined=Udefineret
|
||||
copyAddress=Kopier adresse
|
||||
|
||||
@@ -1245,7 +1245,9 @@ updateNagTitle=Update-Erinnerung
|
||||
updateNagButton=Siehe Veröffentlichungen
|
||||
refreshServices=Dienste aktualisieren
|
||||
serviceProtocolType=Dienstprotokolltyp
|
||||
serviceProtocolTypeDescription=Das Protokoll, das zum Öffnen des Dienstes verwendet wird
|
||||
serviceProtocolTypeDescription=Steuern, wie der Dienst geöffnet werden soll
|
||||
serviceCommand=Der Befehl, der ausgeführt wird, sobald der Dienst aktiv ist
|
||||
serviceCommandDescription=Der Platzhalter $ADDRESS wird durch die tatsächliche getunnelte Adresse ersetzt
|
||||
value=Wert
|
||||
showAdvancedOptions=Erweiterte Optionen anzeigen
|
||||
sshAdditionalConfigOptions=Zusätzliche Konfigurationsoptionen
|
||||
@@ -1254,3 +1256,5 @@ clearUserData=Benutzerdaten löschen
|
||||
clearUserDataDescription=Löschen aller Benutzerkonfigurationsdaten, einschließlich der Verbindungen
|
||||
clearUserDataTitle=Löschung von Benutzerdaten
|
||||
clearUserDataContent=Dadurch werden alle lokalen Benutzerdaten für xpipe gelöscht und neu gestartet. Wenn du dich um deine Verbindungen sorgst, solltest du sie vorher mit einem Git-Repository synchronisieren.
|
||||
undefined=Undefiniert
|
||||
copyAddress=Adresse kopieren
|
||||
|
||||
@@ -1266,7 +1266,9 @@ updateNagTitle=Update reminder
|
||||
updateNagButton=See releases
|
||||
refreshServices=Refresh services
|
||||
serviceProtocolType=Service protocol type
|
||||
serviceProtocolTypeDescription=The protocol to use to open the service
|
||||
serviceProtocolTypeDescription=Control how to open the service
|
||||
serviceCommand=The command to run once the service is active
|
||||
serviceCommandDescription=The placeholder $ADDRESS will be replaced with the actual tunneled address
|
||||
value=Value
|
||||
showAdvancedOptions=Show advanced options
|
||||
sshAdditionalConfigOptions=Additional config options
|
||||
@@ -1275,3 +1277,5 @@ clearUserData=Delete user data
|
||||
clearUserDataDescription=Delete all user configuration data, including connections
|
||||
clearUserDataTitle=User data deletion
|
||||
clearUserDataContent=This will delete all local user data for xpipe and restart. If you care about your connections, make sure to synchronize them first with a git repository.
|
||||
undefined=Undefined
|
||||
copyAddress=Copy address
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Recordatorio de actualización
|
||||
updateNagButton=Ver liberaciones
|
||||
refreshServices=Actualizar servicios
|
||||
serviceProtocolType=Tipo de protocolo de servicio
|
||||
serviceProtocolTypeDescription=El protocolo a utilizar para abrir el servicio
|
||||
serviceProtocolTypeDescription=Controla cómo abrir el servicio
|
||||
serviceCommand=El comando a ejecutar una vez que el servicio esté activo
|
||||
serviceCommandDescription=El marcador de posición $ADDRESS se sustituirá por la dirección real del túnel
|
||||
value=Valor
|
||||
showAdvancedOptions=Mostrar opciones avanzadas
|
||||
sshAdditionalConfigOptions=Opciones de configuración adicionales
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Borrar datos de usuario
|
||||
clearUserDataDescription=Borrar todos los datos de configuración del usuario, incluidas las conexiones
|
||||
clearUserDataTitle=Eliminación de datos de usuario
|
||||
clearUserDataContent=Esto borrará todos los datos de usuario locales de xpipe y se reiniciará. Si te preocupan tus conexiones, asegúrate de sincronizarlas primero con un repositorio git.
|
||||
undefined=Sin definir
|
||||
copyAddress=Copiar dirección
|
||||
|
||||
@@ -1251,7 +1251,9 @@ updateNagTitle=Rappel de mise à jour
|
||||
updateNagButton=Voir les communiqués
|
||||
refreshServices=Services de rafraîchissement
|
||||
serviceProtocolType=Type de protocole de service
|
||||
serviceProtocolTypeDescription=Le protocole à utiliser pour ouvrir le service
|
||||
serviceProtocolTypeDescription=Contrôle la façon d'ouvrir le service
|
||||
serviceCommand=La commande à exécuter une fois que le service est actif
|
||||
serviceCommandDescription=L'espace réservé $ADDRESS sera remplacé par l'adresse réelle du tunnel
|
||||
value=Valeur
|
||||
showAdvancedOptions=Afficher les options avancées
|
||||
sshAdditionalConfigOptions=Options de configuration supplémentaires
|
||||
@@ -1260,3 +1262,5 @@ clearUserData=Effacer les données de l'utilisateur
|
||||
clearUserDataDescription=Supprimer toutes les données de configuration de l'utilisateur, y compris les connexions
|
||||
clearUserDataTitle=Suppression des données de l'utilisateur
|
||||
clearUserDataContent=Cela supprimera toutes les données utilisateur locales pour xpipe et redémarrera. Si tu tiens à tes connexions, assure-toi de les synchroniser d'abord avec un dépôt git.
|
||||
undefined=Non défini
|
||||
copyAddress=Adresse de copie
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Pengingat pembaruan
|
||||
updateNagButton=Lihat rilis
|
||||
refreshServices=Menyegarkan layanan
|
||||
serviceProtocolType=Jenis protokol layanan
|
||||
serviceProtocolTypeDescription=Protokol yang digunakan untuk membuka layanan
|
||||
serviceProtocolTypeDescription=Mengontrol cara membuka layanan
|
||||
serviceCommand=Perintah untuk dijalankan setelah layanan aktif
|
||||
serviceCommandDescription=Penampung $ADDRESS akan diganti dengan alamat yang sebenarnya
|
||||
value=Nilai
|
||||
showAdvancedOptions=Menampilkan opsi lanjutan
|
||||
sshAdditionalConfigOptions=Opsi konfigurasi tambahan
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Menghapus data pengguna
|
||||
clearUserDataDescription=Menghapus semua data konfigurasi pengguna, termasuk koneksi
|
||||
clearUserDataTitle=Penghapusan data pengguna
|
||||
clearUserDataContent=Ini akan menghapus semua data pengguna lokal untuk xpipe dan memulai ulang. Jika Anda peduli dengan koneksi Anda, pastikan untuk menyinkronkannya terlebih dahulu dengan repositori git.
|
||||
undefined=Tidak terdefinisi
|
||||
copyAddress=Alamat salinan
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Promemoria di aggiornamento
|
||||
updateNagButton=Vedere i comunicati
|
||||
refreshServices=Aggiorna i servizi
|
||||
serviceProtocolType=Tipo di protocollo di servizio
|
||||
serviceProtocolTypeDescription=Il protocollo da utilizzare per aprire il servizio
|
||||
serviceProtocolTypeDescription=Controlla come aprire il servizio
|
||||
serviceCommand=Il comando da eseguire una volta che il servizio è attivo
|
||||
serviceCommandDescription=Il segnaposto $ADDRESS sarà sostituito dall'indirizzo effettivo del tunnel
|
||||
value=Valore
|
||||
showAdvancedOptions=Mostra opzioni avanzate
|
||||
sshAdditionalConfigOptions=Opzioni di configurazione aggiuntive
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Cancellare i dati dell'utente
|
||||
clearUserDataDescription=Elimina tutti i dati di configurazione dell'utente, comprese le connessioni
|
||||
clearUserDataTitle=Cancellazione dei dati dell'utente
|
||||
clearUserDataContent=In questo modo verranno cancellati tutti i dati degli utenti locali di xpipe e verrà riavviato. Se tieni alle tue connessioni, assicurati di sincronizzarle prima con un repository git.
|
||||
undefined=Non definito
|
||||
copyAddress=Indirizzo di copia
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=更新リマインダー
|
||||
updateNagButton=リリースを見る
|
||||
refreshServices=リフレッシュ・サービス
|
||||
serviceProtocolType=サービスプロトコルタイプ
|
||||
serviceProtocolTypeDescription=サービスを開くために使用するプロトコル
|
||||
serviceProtocolTypeDescription=サービスを開く方法を制御する
|
||||
serviceCommand=サービスがアクティブになったら実行するコマンド
|
||||
serviceCommandDescription=プレースホルダー$ADDRESSは実際のトンネルアドレスに置き換えられる
|
||||
value=価値
|
||||
showAdvancedOptions=詳細オプションを表示する
|
||||
sshAdditionalConfigOptions=追加設定オプション
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=ユーザーデータを削除する
|
||||
clearUserDataDescription=接続を含むすべてのユーザー設定データを削除する
|
||||
clearUserDataTitle=ユーザーデータの削除
|
||||
clearUserDataContent=これでxpipeのローカルユーザーデータがすべて削除され、再起動する。接続が気になるなら、まずgitリポジトリと同期させること。
|
||||
undefined=未定義
|
||||
copyAddress=コピーアドレス
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Herinnering bijwerken
|
||||
updateNagButton=Bekijk uitgaven
|
||||
refreshServices=Diensten verversen
|
||||
serviceProtocolType=Type serviceprotocol
|
||||
serviceProtocolTypeDescription=Het te gebruiken protocol om de service te openen
|
||||
serviceProtocolTypeDescription=Bepalen hoe de service moet worden geopend
|
||||
serviceCommand=Het commando dat wordt uitgevoerd zodra de service actief is
|
||||
serviceCommandDescription=De placeholder $ADDRESS wordt vervangen door het werkelijke getunnelde adres
|
||||
value=Waarde
|
||||
showAdvancedOptions=Geavanceerde opties weergeven
|
||||
sshAdditionalConfigOptions=Extra configuratie-opties
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Gebruikersgegevens verwijderen
|
||||
clearUserDataDescription=Alle configuratiegegevens van gebruikers verwijderen, inclusief verbindingen
|
||||
clearUserDataTitle=Verwijderen van gebruikersgegevens
|
||||
clearUserDataContent=Hierdoor worden alle lokale gebruikersgegevens voor xpipe verwijderd en opnieuw opgestart. Als je om je verbindingen geeft, zorg er dan voor dat je ze eerst synchroniseert met een git repository.
|
||||
undefined=Ongedefinieerd
|
||||
copyAddress=Adres kopiëren
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Przypomnienie o aktualizacji
|
||||
updateNagButton=Zobacz wydania
|
||||
refreshServices=Usługi odświeżania
|
||||
serviceProtocolType=Typ protokołu usługi
|
||||
serviceProtocolTypeDescription=Protokół używany do otwarcia usługi
|
||||
serviceProtocolTypeDescription=Kontroluj sposób otwierania usługi
|
||||
serviceCommand=Polecenie do uruchomienia, gdy usługa jest aktywna
|
||||
serviceCommandDescription=Symbol zastępczy $ADDRESS zostanie zastąpiony rzeczywistym adresem tunelowanym
|
||||
value=Wartość
|
||||
showAdvancedOptions=Pokaż opcje zaawansowane
|
||||
sshAdditionalConfigOptions=Dodatkowe opcje konfiguracji
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Usuń dane użytkownika
|
||||
clearUserDataDescription=Usuń wszystkie dane konfiguracyjne użytkownika, w tym połączenia
|
||||
clearUserDataTitle=Usuwanie danych użytkownika
|
||||
clearUserDataContent=Spowoduje to usunięcie wszystkich lokalnych danych użytkownika dla xpipe i ponowne uruchomienie. Jeśli zależy ci na połączeniach, zsynchronizuj je najpierw z repozytorium git.
|
||||
undefined=Niezdefiniowany
|
||||
copyAddress=Kopiuj adres
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Lembrete de atualização
|
||||
updateNagButton=Ver lançamentos
|
||||
refreshServices=Atualizar serviços
|
||||
serviceProtocolType=Tipo de protocolo de serviço
|
||||
serviceProtocolTypeDescription=O protocolo a utilizar para abrir o serviço
|
||||
serviceProtocolTypeDescription=Controla a forma de abrir o serviço
|
||||
serviceCommand=O comando a executar quando o serviço estiver ativo
|
||||
serviceCommandDescription=O espaço reservado $ADDRESS será substituído pelo endereço real do túnel
|
||||
value=Valoriza
|
||||
showAdvancedOptions=Mostra opções avançadas
|
||||
sshAdditionalConfigOptions=Opções de configuração adicionais
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Eliminar dados do utilizador
|
||||
clearUserDataDescription=Elimina todos os dados de configuração do utilizador, incluindo as ligações
|
||||
clearUserDataTitle=Eliminação de dados do utilizador
|
||||
clearUserDataContent=Isto irá apagar todos os dados do utilizador local para o xpipe e reiniciar. Se te preocupas com as tuas ligações, certifica-te que as sincronizas primeiro com um repositório git.
|
||||
undefined=Não definido
|
||||
copyAddress=Copia o endereço
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Напоминание об обновлении
|
||||
updateNagButton=Смотри релизы
|
||||
refreshServices=Обновление сервисов
|
||||
serviceProtocolType=Тип протокола обслуживания
|
||||
serviceProtocolTypeDescription=Протокол, который нужно использовать для открытия сервиса
|
||||
serviceProtocolTypeDescription=Управление тем, как открыть сервис
|
||||
serviceCommand=Команда, которую нужно выполнить, как только служба станет активной
|
||||
serviceCommandDescription=Заполнитель $ADDRESS будет заменен на реальный туннелируемый адрес
|
||||
value=Значение
|
||||
showAdvancedOptions=Показать дополнительные опции
|
||||
sshAdditionalConfigOptions=Дополнительные параметры конфигурации
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Удаление пользовательских данных
|
||||
clearUserDataDescription=Удалить все данные о конфигурации пользователя, включая соединения
|
||||
clearUserDataTitle=Удаление пользовательских данных
|
||||
clearUserDataContent=Это приведет к удалению всех локальных пользовательских данных для xpipe и перезапуску. Если ты заботишься о своих подключениях, не забудь сначала синхронизировать их с git-репозиторием.
|
||||
undefined=Неопределенный
|
||||
copyAddress=Адрес копирования
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Påminnelse om uppdatering
|
||||
updateNagButton=Se releaser
|
||||
refreshServices=Uppdatera tjänster
|
||||
serviceProtocolType=Typ av serviceprotokoll
|
||||
serviceProtocolTypeDescription=Protokollet som ska användas för att öppna tjänsten
|
||||
serviceProtocolTypeDescription=Styr hur tjänsten ska öppnas
|
||||
serviceCommand=Kommandot som ska köras när tjänsten är aktiv
|
||||
serviceCommandDescription=Platshållaren $ADDRESS kommer att ersättas med den faktiska tunnlade adressen
|
||||
value=Värde
|
||||
showAdvancedOptions=Visa avancerade alternativ
|
||||
sshAdditionalConfigOptions=Ytterligare konfigurationsalternativ
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Ta bort användardata
|
||||
clearUserDataDescription=Ta bort alla användarkonfigurationsdata, inklusive anslutningar
|
||||
clearUserDataTitle=Radering av användardata
|
||||
clearUserDataContent=Detta kommer att radera alla lokala användardata för xpipe och starta om. Om du bryr dig om dina anslutningar, se till att synkronisera dem först med ett git-arkiv.
|
||||
undefined=Odefinierad
|
||||
copyAddress=Kopiera adress
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=Güncelleme hatırlatması
|
||||
updateNagButton=Yayınlara bakın
|
||||
refreshServices=Yenileme hizmetleri
|
||||
serviceProtocolType=Hizmet protokolü türü
|
||||
serviceProtocolTypeDescription=Hizmeti açmak için kullanılacak protokol
|
||||
serviceProtocolTypeDescription=Hizmetin nasıl açılacağını kontrol edin
|
||||
serviceCommand=Hizmet etkin olduğunda çalıştırılacak komut
|
||||
serviceCommandDescription=ADDRESS yer tutucusu gerçek tünellenmiş adres ile değiştirilecektir
|
||||
value=Değer
|
||||
showAdvancedOptions=Gelişmiş seçenekleri göster
|
||||
sshAdditionalConfigOptions=Ek yapılandırma seçenekleri
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=Kullanıcı verilerini silme
|
||||
clearUserDataDescription=Bağlantılar da dahil olmak üzere tüm kullanıcı yapılandırma verilerini silme
|
||||
clearUserDataTitle=Kullanıcı verilerinin silinmesi
|
||||
clearUserDataContent=Bu, xpipe için tüm yerel kullanıcı verilerini silecek ve yeniden başlatacaktır. Bağlantılarınızı önemsiyorsanız, önce bir git deposu ile senkronize ettiğinizden emin olun.
|
||||
undefined=Tanımsız
|
||||
copyAddress=Adres kopyalayın
|
||||
|
||||
@@ -1216,7 +1216,9 @@ updateNagTitle=更新提醒
|
||||
updateNagButton=参见发布
|
||||
refreshServices=刷新服务
|
||||
serviceProtocolType=服务协议类型
|
||||
serviceProtocolTypeDescription=用于打开服务的协议
|
||||
serviceProtocolTypeDescription=控制如何打开服务
|
||||
serviceCommand=服务激活后运行的命令
|
||||
serviceCommandDescription=占位符 $ADDRESS 将被替换为实际的隧道地址
|
||||
value=价值
|
||||
showAdvancedOptions=显示高级选项
|
||||
sshAdditionalConfigOptions=附加配置选项
|
||||
@@ -1225,3 +1227,5 @@ clearUserData=删除用户数据
|
||||
clearUserDataDescription=删除所有用户配置数据,包括连接
|
||||
clearUserDataTitle=用户数据删除
|
||||
clearUserDataContent=这将删除 xpipe 的所有本地用户数据并重新启动。如果你关心你的连接,请确保先用 git 仓库同步它们。
|
||||
undefined=未定义
|
||||
copyAddress=复制地址
|
||||
|
||||
Reference in New Issue
Block a user