More rework

This commit is contained in:
crschnick 2024-06-07 16:01:18 +00:00
parent 3fbf184660
commit 5d9e097825
53 changed files with 912 additions and 168 deletions

View file

@ -12,7 +12,6 @@ import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.value.ObservableBooleanValue;
import javafx.beans.value.ObservableValue;
import javafx.scene.layout.Region;
import lombok.AllArgsConstructor;
@ -32,7 +31,7 @@ public class StoreToggleComp extends SimpleComp {
private final Consumer<Boolean> onChange;
@Setter
private ObservableBooleanValue customVisibility = new SimpleBooleanProperty(true);
private ObservableValue<Boolean> customVisibility = new SimpleBooleanProperty(true);
public static <T extends DataStore> StoreToggleComp simpleToggle(
String nameKey, ObservableValue<LabelGraphic> graphic, StoreSection section, Function<T, Boolean> initial, BiConsumer<T, Boolean> setter) {
@ -47,6 +46,26 @@ public class StoreToggleComp extends SimpleComp {
});
}
public static <T extends DataStore> StoreToggleComp enableToggle(
String nameKey, StoreSection section, Function<T, Boolean> initial, BiConsumer<T, Boolean> setter) {
var val = new SimpleBooleanProperty();
ObservableValue<LabelGraphic> g = val.map(aBoolean -> aBoolean ?
new LabelGraphic.IconGraphic("mdi2c-circle-slice-8") : new LabelGraphic.IconGraphic("mdi2p-power"));
var t = new StoreToggleComp(
nameKey,
g,
section,
new SimpleBooleanProperty(
initial.apply(section.getWrapper().getEntry().getStore().asNeeded())),
v -> {
setter.accept(section.getWrapper().getEntry().getStore().asNeeded(), v);
});
t.value.subscribe((newValue) -> {
val.set(newValue);
});
return t;
}
public static <T extends DataStore> StoreToggleComp childrenToggle(
String nameKey, boolean graphic, StoreSection section, Function<T, Boolean> initial, BiConsumer<T, Boolean> setter) {
var val = new SimpleBooleanProperty();
@ -86,7 +105,7 @@ public class StoreToggleComp extends SimpleComp {
var disable = section.getWrapper().getValidity().map(state -> state != DataStoreEntry.Validity.COMPLETE);
var visible = Bindings.createBooleanBinding(
() -> {
if (!this.customVisibility.get()) {
if (!this.customVisibility.getValue()) {
return false;
}

View file

@ -23,6 +23,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
public class OptionsBuilder {
@ -146,6 +147,11 @@ public class OptionsBuilder {
return this;
}
public OptionsBuilder check(Function<Validator, Check> c) {
lastCompHeadReference.apply(s -> c.apply(ownValidator).decorates(s.get()));
return this;
}
public OptionsBuilder check(Check c) {
lastCompHeadReference.apply(s -> c.decorates(s.get()));
return this;

View file

@ -19,11 +19,13 @@ public enum PredefinedScriptStore {
.group(PredefinedScriptGroup.CLINK.getEntry())
.minimumDialect(ShellDialects.CMD)
.commands(file("clink.bat"))
.initScript(true)
.build()),
CLINK_INJECT("Clink Inject", () -> SimpleScriptStore.builder()
.group(PredefinedScriptGroup.CLINK.getEntry())
.minimumDialect(ShellDialects.CMD)
.script(CLINK_SETUP.getEntry())
.initScript(true)
.commands("""
clink inject --quiet
""")
@ -32,27 +34,32 @@ public enum PredefinedScriptStore {
.group(PredefinedScriptGroup.STARSHIP.getEntry())
.minimumDialect(ShellDialects.BASH)
.commands(file("starship_bash.sh"))
.initScript(true)
.build()),
STARSHIP_ZSH("Starship Zsh", () -> SimpleScriptStore.builder()
.group(PredefinedScriptGroup.STARSHIP.getEntry())
.minimumDialect(ShellDialects.ZSH)
.commands(file("starship_zsh.sh"))
.initScript(true)
.build()),
STARSHIP_FISH("Starship Fish", () -> SimpleScriptStore.builder()
.group(PredefinedScriptGroup.STARSHIP.getEntry())
.minimumDialect(ShellDialects.FISH)
.commands(file("starship_fish.fish"))
.initScript(true)
.build()),
STARSHIP_CMD("Starship Cmd", () -> SimpleScriptStore.builder()
.group(PredefinedScriptGroup.STARSHIP.getEntry())
.minimumDialect(ShellDialects.CMD)
.script(CLINK_SETUP.getEntry())
.commands(file(("starship_cmd.bat")))
.initScript(true)
.build()),
STARSHIP_POWERSHELL("Starship Powershell", () -> SimpleScriptStore.builder()
.group(PredefinedScriptGroup.STARSHIP.getEntry())
.minimumDialect(ShellDialects.POWERSHELL)
.commands(file("starship_powershell.ps1"))
.initScript(true)
.build());
private final String name;

View file

@ -1,6 +1,5 @@
package io.xpipe.ext.base.script;
import io.xpipe.app.comp.base.DropdownComp;
import io.xpipe.app.comp.base.StoreToggleComp;
import io.xpipe.app.comp.base.SystemStateComp;
import io.xpipe.app.comp.store.*;
@ -11,12 +10,10 @@ import io.xpipe.app.fxcomps.impl.DataStoreChoiceComp;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.OptionsBuilder;
import io.xpipe.core.store.DataStore;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import lombok.SneakyThrows;
import java.util.List;
@ -29,20 +26,12 @@ public class ScriptGroupStoreProvider implements DataStoreProvider {
return new DenseStoreEntryComp(sec.getWrapper(), true, null);
}
var def = StoreToggleComp.<ScriptGroupStore>simpleToggle(
"base.isDefaultGroup", null, sec, s -> s.getState().isDefault(), (s, aBoolean) -> {
var state = s.getState().toBuilder().isDefault(aBoolean).build();
var enabled = StoreToggleComp.<ScriptGroupStore>enableToggle(
null, sec, s -> s.getState().isEnabled(), (s, aBoolean) -> {
var state = s.getState().toBuilder().enabled(aBoolean).build();
s.setState(state);
});
var bring = StoreToggleComp.<ScriptGroupStore>simpleToggle(
"base.bringToShells", null, sec, s -> s.getState().isBringToShell(), (s, aBoolean) -> {
var state = s.getState().toBuilder().bringToShell(aBoolean).build();
s.setState(state);
});
var dropdown = new DropdownComp(List.of(def, bring));
return new DenseStoreEntryComp(sec.getWrapper(), true, dropdown);
return new DenseStoreEntryComp(sec.getWrapper(), true, enabled);
}
@Override

View file

@ -32,21 +32,20 @@ public abstract class ScriptStore extends JacksonizedValue implements DataStore,
protected final String description;
public static ShellControl controlWithDefaultScripts(ShellControl pc) {
return controlWithScripts(pc, getDefaultInitScripts(), getDefaultBringScripts());
return controlWithScripts(pc, getDefaultEnabledScripts());
}
public static ShellControl controlWithScripts(
ShellControl pc,
List<DataStoreEntryRef<ScriptStore>> initScripts,
List<DataStoreEntryRef<ScriptStore>> bringScripts) {
List<DataStoreEntryRef<ScriptStore>> enabledScripts) {
try {
// Don't copy scripts if we don't want to modify the file system
if (!pc.getEffectiveSecurityPolicy().permitTempScriptCreation()) {
return pc;
}
var initFlattened = flatten(initScripts);
var bringFlattened = flatten(bringScripts);
var initFlattened = flatten(enabledScripts).stream().filter(store -> store.isInitScript()).toList();
var bringFlattened = flatten(enabledScripts).stream().filter(store -> store.isShellScript()).toList();
// Optimize if we have nothing to do
if (initFlattened.isEmpty() && bringFlattened.isEmpty()) {
@ -150,18 +149,10 @@ public abstract class ScriptStore extends JacksonizedValue implements DataStore,
return targetDir;
}
public static List<DataStoreEntryRef<ScriptStore>> getDefaultInitScripts() {
public static List<DataStoreEntryRef<ScriptStore>> getDefaultEnabledScripts() {
return DataStorage.get().getStoreEntries().stream()
.filter(dataStoreEntry -> dataStoreEntry.getStore() instanceof ScriptStore scriptStore
&& scriptStore.getState().isDefault())
.map(DataStoreEntry::<ScriptStore>ref)
.toList();
}
public static List<DataStoreEntryRef<ScriptStore>> getDefaultBringScripts() {
return DataStorage.get().getStoreEntries().stream()
.filter(dataStoreEntry -> dataStoreEntry.getStore() instanceof ScriptStore scriptStore
&& scriptStore.getState().isBringToShell())
&& scriptStore.getState().isEnabled())
.map(DataStoreEntry::<ScriptStore>ref)
.toList();
}
@ -226,7 +217,6 @@ public abstract class ScriptStore extends JacksonizedValue implements DataStore,
@SuperBuilder(toBuilder = true)
@Jacksonized
public static class State extends DataStoreState {
boolean isDefault;
boolean bringToShell;
boolean enabled;
}
}

View file

@ -1,12 +1,14 @@
package io.xpipe.ext.base.script;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ScriptHelper;
import io.xpipe.app.util.Validators;
import io.xpipe.core.process.ShellControl;
import io.xpipe.core.process.ShellDialect;
import io.xpipe.core.process.ShellInitCommand;
import io.xpipe.core.util.ValidationException;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
import lombok.extern.jackson.Jacksonized;
@ -25,6 +27,9 @@ public class SimpleScriptStore extends ScriptStore implements ShellInitCommand.T
private final ShellDialect minimumDialect;
private final String commands;
private final boolean initScript;
private final boolean shellScript;
private final boolean fileScript;
private String assemble(ShellControl shellControl) {
var targetType = shellControl.getOriginalShellDialect();
@ -47,6 +52,9 @@ public class SimpleScriptStore extends ScriptStore implements ShellInitCommand.T
Validators.nonNull(group);
super.checkComplete();
Validators.nonNull(minimumDialect);
if (!initScript && !shellScript && !fileScript) {
throw new ValidationException(AppI18n.get("app.valueMustNotBeEmpty"));
}
}
public void queryFlattenedScripts(LinkedHashSet<SimpleScriptStore> all) {

View file

@ -1,11 +1,9 @@
package io.xpipe.ext.base.script;
import io.xpipe.app.comp.base.DropdownComp;
import io.xpipe.app.comp.base.IntegratedTextAreaComp;
import io.xpipe.app.comp.base.StoreToggleComp;
import io.xpipe.app.comp.base.SystemStateComp;
import io.xpipe.app.comp.base.*;
import io.xpipe.app.comp.store.*;
import io.xpipe.app.core.AppExtensionManager;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.DataStoreProvider;
import io.xpipe.app.ext.GuiDialog;
import io.xpipe.app.fxcomps.Comp;
@ -15,6 +13,7 @@ import io.xpipe.app.fxcomps.util.BindingsHelper;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.MarkdownBuilder;
import io.xpipe.app.util.OptionsBuilder;
import io.xpipe.app.util.Validator;
import io.xpipe.core.process.ShellDialect;
import io.xpipe.core.store.DataStore;
import io.xpipe.core.util.Identifiers;
@ -29,6 +28,7 @@ import lombok.SneakyThrows;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
public class SimpleScriptStoreProvider implements DataStoreProvider {
@ -49,35 +49,22 @@ public class SimpleScriptStoreProvider implements DataStoreProvider {
return new DenseStoreEntryComp(sec.getWrapper(), true, null);
}
var def = StoreToggleComp.<SimpleScriptStore>simpleToggle(
"base.isDefaultGroup", null, sec, s -> s.getState().isDefault(), (s, aBoolean) -> {
var state = s.getState().toBuilder().isDefault(aBoolean).build();
s.setState(state);
});
var bring = StoreToggleComp.<SimpleScriptStore>simpleToggle(
"base.bringToShells", null, sec, s -> s.getState().isBringToShell(), (s, aBoolean) -> {
var state = s.getState().toBuilder().bringToShell(aBoolean).build();
var enabled = StoreToggleComp.<SimpleScriptStore>enableToggle(
null, sec, s -> s.getState().isEnabled(), (s, aBoolean) -> {
var state = s.getState().toBuilder().enabled(aBoolean).build();
s.setState(state);
});
SimpleScriptStore s = sec.getWrapper().getEntry().getStore().asNeeded();
var groupWrapper = StoreViewState.get().getEntryWrapper(s.getGroup().getEntry());
// Disable selection if parent group is already made default
def.disable(BindingsHelper.map(groupWrapper.getPersistentState(), o -> {
// Disable selection if parent group is already made enabled
enabled.setCustomVisibility(BindingsHelper.map(groupWrapper.getPersistentState(), o -> {
ScriptStore.State state = (ScriptStore.State) o;
return state.isDefault();
return !state.isEnabled();
}));
// Disable selection if parent group is already brings
bring.disable(BindingsHelper.map(groupWrapper.getPersistentState(), o -> {
ScriptStore.State state = (ScriptStore.State) o;
return state.isBringToShell();
}));
var dropdown = new DropdownComp(List.of(def, bring));
return new DenseStoreEntryComp(sec.getWrapper(), true, dropdown);
return new DenseStoreEntryComp(sec.getWrapper(), true, enabled);
}
@Override
@ -143,6 +130,39 @@ public class SimpleScriptStoreProvider implements DataStoreProvider {
"io.xpipe.ext.proc.ShellDialectChoiceComp")
.getDeclaredConstructor(Property.class, boolean.class)
.newInstance(dialect, false);
var vals = List.of(0, 1, 2);
var selectedStart = new ArrayList<Integer>();
if (st.isInitScript()) {
selectedStart.add(0);
}
if (st.isShellScript()) {
selectedStart.add(1);
}
if (st.isFileScript()) {
selectedStart.add(2);
}
var name = new Function<Integer, String>() {
@Override
public String apply(Integer integer) {
if (integer == 0) {
return AppI18n.get("initScript");
}
if (integer == 1) {
return AppI18n.get("shellScript");
}
if (integer == 2) {
return AppI18n.get("fileScript");
}
return "?";
}
};
var selectedExecTypes = new SimpleListProperty<>(FXCollections.observableList(selectedStart));
var selectorComp = new ListSelectorComp<>(vals, name, selectedExecTypes, v -> false, false);
return new OptionsBuilder()
.name("snippets")
.description("snippetsDescription")
@ -169,7 +189,10 @@ public class SimpleScriptStoreProvider implements DataStoreProvider {
: "sh";
})),
commandProp)
.name("executionType")
.nameAndDescription("executionType")
.longDescription("base:executionType")
.addComp(selectorComp, selectedExecTypes)
.check(validator -> Validator.nonEmpty(validator, AppI18n.observable("executionType"), selectedExecTypes))
.name("scriptGroup")
.description("scriptGroupDescription")
.addComp(
@ -190,6 +213,9 @@ public class SimpleScriptStoreProvider implements DataStoreProvider {
.scripts(new ArrayList<>(others.get()))
.description(st.getDescription())
.commands(commandProp.getValue())
.initScript(selectedExecTypes.contains(0))
.shellScript(selectedExecTypes.contains(1))
.fileScript(selectedExecTypes.contains(2))
.build();
},
store)

View file

@ -25,6 +25,7 @@ moveTo=Flyt til ...
addDatabase=Database ...
browseInternalStorage=Gennemse internt lager
addTunnel=Tunnel ...
addService=Service ...
addScript=Script ...
addHost=Fjernvært ...
addShell=Shell-miljø ...
@ -460,3 +461,12 @@ addNotes=Tilføj noter
order=Bestille ...
stickToTop=Hold dig på toppen
orderAheadOf=Bestil på forhånd ...
httpServer=HTTP-server
httpServerConfiguration=Konfiguration af HTTP-server
httpServerPort=Port
httpServerPortDescription=Den port, som HTTP-serveren vil lytte på.\n\nBemærk, at hvis du ændrer dette, skal alle andre programmer, der interagerer med serveren, også konfigureres til at bruge den nye port.\n\nKræver en genstart for at gælde.
apiKey=API-nøgle
apiKeyDescription=API-nøglen til godkendelse af XPipe-dæmonens API-anmodninger. Se den generelle API-dokumentation for at få flere oplysninger om, hvordan du godkender.\n\nKræver en genstart for at blive anvendt.
disableApiAuthentication=Deaktiver API-godkendelse
disableApiAuthenticationDescription=Deaktiverer alle nødvendige godkendelsesmetoder, så enhver uautoriseret anmodning vil blive håndteret.\n\nAutentificering bør kun deaktiveres til udviklingsformål.\n\nKræver en genstart for at blive anvendt.
api=API

View file

@ -25,6 +25,7 @@ moveTo=Kategorie ändern ...
addDatabase=Datenbank ...
browseInternalStorage=Internen Speicher durchsuchen
addTunnel=Tunnel ...
addService=Service ...
addScript=Skript ...
#custom
addHost=Remote Host ...
@ -454,3 +455,12 @@ addNotes=Notizen hinzufügen
order=Bestellen ...
stickToTop=Oben bleiben
orderAheadOf=Vorbestellen ...
httpServer=HTTP-Server
httpServerConfiguration=HTTP-Server-Konfiguration
httpServerPort=Port
httpServerPortDescription=Der Port, auf dem der HTTP-Server lauschen wird.\n\nWenn du diesen Wert änderst, müssen alle anderen Anwendungen, die mit dem Server interagieren, so konfiguriert werden, dass sie ebenfalls den neuen Port verwenden.\n\nZur Anwendung ist ein Neustart erforderlich.
apiKey=API-Schlüssel
apiKeyDescription=Der API-Schlüssel zur Authentifizierung von XPipe Daemon API-Anfragen. Weitere Informationen zur Authentifizierung findest du in der allgemeinen API-Dokumentation.\n\nErfordert einen Neustart zur Anwendung.
disableApiAuthentication=API-Authentifizierung deaktivieren
disableApiAuthenticationDescription=Deaktiviert alle erforderlichen Authentifizierungsmethoden, so dass jede nicht authentifizierte Anfrage bearbeitet wird.\n\nDie Authentifizierung sollte nur zu Entwicklungszwecken deaktiviert werden.\n\nErfordert einen Neustart zur Anwendung.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Pasar a ...
addDatabase=Base de datos ...
browseInternalStorage=Explorar el almacenamiento interno
addTunnel=Túnel ...
addService=Servicio ...
addScript=Script ...
addHost=Host remoto ...
addShell=Entorno Shell ...
@ -441,3 +442,12 @@ addNotes=Añadir notas
order=Ordenar ...
stickToTop=Mantener arriba
orderAheadOf=Haz tu pedido antes de ...
httpServer=Servidor HTTP
httpServerConfiguration=Configuración del servidor HTTP
httpServerPort=Puerto
httpServerPortDescription=El puerto en el que escuchará el servidor HTTP.\n\nTen en cuenta que si cambias esto, cualquier otra aplicación que interactúe con el servidor deberá configurarse para utilizar también el nuevo puerto.\n\nRequiere un reinicio para aplicarse.
apiKey=Clave API
apiKeyDescription=La clave API para autenticar las peticiones API del demonio XPipe. Para más información sobre cómo autenticarse, consulta la documentación general de la API.\n\nRequiere un reinicio para aplicarse.
disableApiAuthentication=Desactivar la autenticación de la API
disableApiAuthenticationDescription=Desactiva todos los métodos de autenticación requeridos para que se gestione cualquier solicitud no autenticada.\n\nLa autenticación sólo debe desactivarse con fines de desarrollo.\n\nRequiere un reinicio para aplicarse.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Déplacer vers ...
addDatabase=Base de données ...
browseInternalStorage=Parcourir la mémoire interne
addTunnel=Tunnel ...
addService=Service ...
addScript=Script ...
addHost=Hôte distant ...
addShell=Environnement Shell ...
@ -441,3 +442,12 @@ addNotes=Ajouter des notes
order=Commander...
stickToTop=Garde le dessus
orderAheadOf=Commande en avance...
httpServer=Serveur HTTP
httpServerConfiguration=Configuration du serveur HTTP
httpServerPort=Port
httpServerPortDescription=Le port sur lequel le serveur HTTP écoutera.\n\nNote que si tu modifies ce paramètre, toutes les autres applications qui interagissent avec le serveur doivent être configurées pour utiliser également le nouveau port.\n\nIl faut redémarrer l'ordinateur pour l'appliquer.
apiKey=Clé API
apiKeyDescription=La clé API pour authentifier les demandes API du démon XPipe. Pour plus d'informations sur la manière de s'authentifier, voir la documentation générale de l'API.\n\nNécessite un redémarrage pour être appliquée.
disableApiAuthentication=Désactiver l'authentification de l'API
disableApiAuthenticationDescription=Désactive toutes les méthodes d'authentification requises, de sorte que toute demande non authentifiée sera traitée.\n\nL'authentification ne doit être désactivée qu'à des fins de développement.\n\nNécessite un redémarrage pour être appliqué.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Passare a ...
addDatabase=Database ...
browseInternalStorage=Sfogliare la memoria interna
addTunnel=Tunnel ...
addService=Servizio ...
addScript=Script ...
addHost=Host remoto ...
addShell=Ambiente Shell ...
@ -441,3 +442,12 @@ addNotes=Aggiungi note
order=Ordinare ...
stickToTop=Continua a essere in cima
orderAheadOf=Ordina prima di ...
httpServer=Server HTTP
httpServerConfiguration=Configurazione del server HTTP
httpServerPort=Porta
httpServerPortDescription=La porta su cui il server HTTP si metterà in ascolto.\n\nSe la modifichi, tutte le altre applicazioni che interagiscono con il server devono essere configurate per utilizzare la nuova porta.\n\nRichiede un riavvio per essere applicata.
apiKey=Chiave API
apiKeyDescription=La chiave API per autenticare le richieste API del demone XPipe. Per ulteriori informazioni sulle modalità di autenticazione, consulta la documentazione generale dell'API.\n\nRichiede un riavvio per essere applicata.
disableApiAuthentication=Disabilita l'autenticazione API
disableApiAuthenticationDescription=Disabilita tutti i metodi di autenticazione richiesti in modo che qualsiasi richiesta non autenticata venga gestita.\n\nL'autenticazione dovrebbe essere disabilitata solo per scopi di sviluppo.\n\nRichiede un riavvio per essere applicata.
api=API

View file

@ -24,6 +24,7 @@ moveTo=移動する
addDatabase=データベース ...
browseInternalStorage=内部ストレージをブラウズする
addTunnel=トンネル ...
addService=サービス ...
addScript=スクリプト ...
addHost=リモートホスト ...
addShell=シェル環境 ...
@ -441,3 +442,12 @@ addNotes=メモを追加する
order=注文する
stickToTop=トップをキープする
orderAheadOf=先に注文する
httpServer=HTTPサーバー
httpServerConfiguration=HTTPサーバーの設定
httpServerPort=ポート
httpServerPortDescription=HTTPサーバーがリッスンするポート。\n\nこれを変更すると、サーバーとやりとりする他のアプリケーションも新しいポートを使うように設定する必要があることに注意。\n\n適用するには再起動が必要である。
apiKey=APIキー
apiKeyDescription=XPipeデーモンAPIリクエストを認証するためのAPIキー。認証方法の詳細については、一般的なAPIドキュメントを参照のこと。\n\n適用には再起動が必要。
disableApiAuthentication=API認証を無効にする
disableApiAuthenticationDescription=認証されていないリクエストが処理されるように、必要な認証方法をすべて無効にする。\n\n認証は開発目的でのみ無効にすべきである。\n\n適用するには再起動が必要である。
api=API

View file

@ -24,6 +24,7 @@ moveTo=Naar ...
addDatabase=Databank ...
browseInternalStorage=Bladeren door interne opslag
addTunnel=Tunnel ...
addService=Service ...
addScript=Script ...
addHost=Externe host ...
addShell=Shell-omgeving ...
@ -441,3 +442,12 @@ addNotes=Opmerkingen toevoegen
order=Bestellen ...
stickToTop=Bovenaan houden
orderAheadOf=Vooruitbestellen ...
httpServer=HTTP-server
httpServerConfiguration=HTTP-server configuratie
httpServerPort=Poort
httpServerPortDescription=De poort waarop de HTTP-server zal luisteren.\n\nMerk op dat als je dit verandert, andere applicaties die communiceren met de server ook geconfigureerd moeten worden om de nieuwe poort te gebruiken.\n\nVereist een herstart om toe te passen.
apiKey=API-sleutel
apiKeyDescription=De API sleutel om XPipe daemon API verzoeken te authenticeren. Voor meer informatie over hoe te authenticeren, zie de algemene API documentatie.\n\nVereist een herstart om toe te passen.
disableApiAuthentication=API-authenticatie uitschakelen
disableApiAuthenticationDescription=Schakelt alle vereiste authenticatiemethoden uit, zodat elk niet-geauthenticeerd verzoek wordt afgehandeld.\n\nAuthenticatie zou alleen uitgeschakeld moeten worden voor ontwikkelingsdoeleinden.\n\nVereist een herstart om toe te passen.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Move-te para ...
addDatabase=Base de dados ...
browseInternalStorage=Navega no armazenamento interno
addTunnel=Túnel ...
addService=Serviço ...
addScript=Script ...
addHost=Anfitrião remoto ...
addShell=Ambiente Shell ...
@ -441,3 +442,12 @@ addNotes=Adiciona notas
order=Encomenda ...
stickToTop=Mantém-te no topo
orderAheadOf=Encomenda antes de ...
httpServer=Servidor HTTP
httpServerConfiguration=Configuração do servidor HTTP
httpServerPort=Porta
httpServerPortDescription=A porta em que o servidor HTTP irá escutar.\n\nTem em atenção que, se alterares isto, quaisquer outras aplicações que interajam com o servidor têm de ser configuradas para utilizar também a nova porta.\n\nRequer uma reinicialização para ser aplicado.
apiKey=Chave API
apiKeyDescription=A chave da API para autenticar os pedidos de API do daemon XPipe. Para mais informações sobre como autenticar, vê a documentação geral da API.\n\nRequer um reinício para ser aplicado.
disableApiAuthentication=Desativar a autenticação da API
disableApiAuthenticationDescription=Desactiva todos os métodos de autenticação necessários para que qualquer pedido não autenticado seja tratado.\n\nA autenticação só deve ser desactivada para fins de desenvolvimento.\n\nRequer um reinício para ser aplicado.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Перейти к ...
addDatabase=База данных ...
browseInternalStorage=Просмотр внутреннего хранилища
addTunnel=Туннель ...
addService=Сервис ...
addScript=Скрипт ...
addHost=Удаленный хост ...
addShell=Shell Environment ...
@ -441,3 +442,12 @@ addNotes=Добавляй заметки
order=Заказать ...
stickToTop=Держись на высоте
orderAheadOf=Заказать заранее ...
httpServer=HTTP-сервер
httpServerConfiguration=Конфигурация HTTP-сервера
httpServerPort=Порт
httpServerPortDescription=Порт, на котором будет прослушиваться HTTP-сервер.\n\nОбрати внимание, что если ты изменишь этот параметр, то все остальные приложения, которые взаимодействуют с сервером, тоже должны быть настроены на использование нового порта.\n\nТребуется перезагрузка для применения.
apiKey=Ключ API
apiKeyDescription=API-ключ для аутентификации API-запросов демона XPipe. Подробнее о том, как проходить аутентификацию, читай в общей документации по API.\n\nТребуется перезагрузка для применения.
disableApiAuthentication=Отключить аутентификацию API
disableApiAuthenticationDescription=Отключает все необходимые методы аутентификации, так что любой неаутентифицированный запрос будет обработан.\n\nАутентификацию следует отключать только в целях разработки.\n\nТребуется перезагрузка для применения.
api=API

View file

@ -24,6 +24,7 @@ moveTo=Taşınmak ...
addDatabase=Veritabanı ...
browseInternalStorage=Dahili depolama alanına göz atın
addTunnel=Tünel ...
addService=Hizmet ...
addScript=Senaryo ...
addHost=Uzak Ana Bilgisayar ...
addShell=Shell Çevre ...
@ -442,3 +443,12 @@ addNotes=Notlar ekleyin
order=Sipariş ...
stickToTop=Zirvede kal
orderAheadOf=Önceden sipariş verin ...
httpServer=HTTP sunucusu
httpServerConfiguration=HTTP sunucu yapılandırması
httpServerPort=Liman
httpServerPortDescription=HTTP sunucusunun dinleyeceği bağlantı noktası.\n\nBunu değiştirirseniz, sunucuyla etkileşime giren diğer uygulamaların da yeni bağlantı noktasını kullanacak şekilde yapılandırılması gerektiğini unutmayın.\n\nUygulamak için yeniden başlatma gerekir.
apiKey=API anahtarı
apiKeyDescription=XPipe daemon API isteklerinin kimliğini doğrulamak için API anahtarı. Kimlik doğrulamanın nasıl yapılacağı hakkında daha fazla bilgi için genel API belgelerine bakın.\n\nUygulamak için yeniden başlatma gerekir.
disableApiAuthentication=API kimlik doğrulamasını devre dışı bırakma
disableApiAuthenticationDescription=Gerekli tüm kimlik doğrulama yöntemlerini devre dışı bırakır, böylece kimliği doğrulanmamış herhangi bir istek işlenir.\n\nKimlik doğrulama yalnızca geliştirme amacıyla devre dışı bırakılmalıdır.\n\nUygulamak için yeniden başlatma gerekir.
api=API

View file

@ -24,6 +24,7 @@ moveTo=移动到 ...
addDatabase=数据库 ...
browseInternalStorage=浏览内部存储
addTunnel=隧道 ...
addService=服务 ...
addScript=脚本 ...
addHost=远程主机 ...
addShell=外壳环境 ...
@ -441,3 +442,12 @@ addNotes=添加注释
order=订购 ...
stickToTop=保持在顶部
orderAheadOf=提前订购...
httpServer=HTTP 服务器
httpServerConfiguration=HTTP 服务器配置
httpServerPort=端口
httpServerPortDescription=HTTP 服务器监听的端口。\n\n请注意如果更改端口则与服务器交互的任何其他应用程序也需要配置为使用新端口。\n\n需要重新启动才能应用。
apiKey=应用程序接口密钥
apiKeyDescription=用于验证 XPipe 守护进程 API 请求的 API 密钥。有关如何验证的更多信息,请参阅一般 API 文档。\n\n需要重新启动才能应用。
disableApiAuthentication=禁用 API 身份验证
disableApiAuthenticationDescription=禁用所有必要的身份验证方法,以便处理任何未经身份验证的请求。\n\n只有出于开发目的才可禁用身份验证。\n\n需要重新启动才能应用。
api=应用程序接口

View file

@ -66,7 +66,7 @@ isDefault=Køres på init i alle kompatible shells
bringToShells=Bring til alle kompatible shells
isDefaultGroup=Kør alle gruppescripts på shell init
executionType=Udførelsestype
executionTypeDescription=Hvornår skal dette uddrag køres?
executionTypeDescription=I hvilke sammenhænge kan man bruge dette script
minimumShellDialect=Shell-type
minimumShellDialectDescription=Den påkrævede shell-type for dette script
dumbOnly=Dum
@ -143,3 +143,17 @@ desktopCommand.displayName=Desktop-kommando
desktopCommand.displayDescription=Kør en kommando i et fjernskrivebordsmiljø
desktopCommandScript=Kommandoer
desktopCommandScriptDescription=De kommandoer, der skal køres i miljøet
service.displayName=Service
service.displayDescription=Videresend en fjernservice til din lokale maskine
serviceLocalPort=Eksplicit lokal port
serviceLocalPortDescription=Den lokale port, der skal videresendes til, ellers bruges en tilfældig port
serviceRemotePort=Ekstern port
serviceRemotePortDescription=Den port, som tjenesten kører på
serviceHost=Servicevært
serviceHostDescription=Den vært, som tjenesten kører på
openWebsite=Åben hjemmeside
serviceGroup.displayName=Service-gruppe
serviceGroup.displayDescription=Gruppér flere tjenester i én kategori
initScript=Kører på shell init
shellScript=Gør script tilgængeligt under shell-session
fileScript=Gør det muligt at kalde et script med filargumenter i filbrowseren

View file

@ -61,7 +61,7 @@ isDefault=Wird in allen kompatiblen Shells auf init ausgeführt
bringToShells=Zu allen kompatiblen Shells bringen
isDefaultGroup=Alle Gruppenskripte auf der Shell init ausführen
executionType=Ausführungsart
executionTypeDescription=Wann dieses Snippet ausgeführt werden soll
executionTypeDescription=In welchen Kontexten ist dieses Skript zu verwenden?
minimumShellDialect=Shell-Typ
minimumShellDialectDescription=Der erforderliche Shell-Typ für dieses Skript
dumbOnly=Dumm
@ -134,3 +134,17 @@ desktopCommand.displayName=Desktop-Befehl
desktopCommand.displayDescription=Einen Befehl in einer Remote-Desktop-Umgebung ausführen
desktopCommandScript=Befehle
desktopCommandScriptDescription=Die Befehle, die in der Umgebung ausgeführt werden sollen
service.displayName=Dienst
service.displayDescription=Einen Ferndienst an deinen lokalen Rechner weiterleiten
serviceLocalPort=Expliziter lokaler Port
serviceLocalPortDescription=Der lokale Port, an den weitergeleitet werden soll, andernfalls wird ein zufälliger Port verwendet
serviceRemotePort=Entfernter Anschluss
serviceRemotePortDescription=Der Port, auf dem der Dienst läuft
serviceHost=Diensthost
serviceHostDescription=Der Host, auf dem der Dienst läuft
openWebsite=Website öffnen
serviceGroup.displayName=Dienstgruppe
serviceGroup.displayDescription=Mehrere Dienste in einer Kategorie zusammenfassen
initScript=Auf der Shell init ausführen
shellScript=Skript während der Shell-Sitzung verfügbar machen
fileScript=Skriptaufruf mit Dateiargumenten im Dateibrowser zulassen

View file

@ -60,7 +60,8 @@ isDefault=Run on init in all compatible shells
bringToShells=Bring to all compatible shells
isDefaultGroup=Run all group scripts on shell init
executionType=Execution type
executionTypeDescription=When to run this snippet
#force
executionTypeDescription=In what contexts to use this script
minimumShellDialect=Shell type
minimumShellDialectDescription=The required shell type for this script
dumbOnly=Dumb
@ -143,5 +144,8 @@ serviceHostDescription=The host the service is running on
openWebsite=Open website
serviceGroup.displayName=Service group
serviceGroup.displayDescription=Group multiple services into one category
initScript=Run on shell init
shellScript=Make script available during shell session
fileScript=Allow script to be called with file arguments in the file browser

View file

@ -60,7 +60,7 @@ isDefault=Se ejecuta en init en todos los shells compatibles
bringToShells=Lleva a todas las conchas compatibles
isDefaultGroup=Ejecutar todos los scripts de grupo en shell init
executionType=Tipo de ejecución
executionTypeDescription=Cuándo ejecutar este fragmento
executionTypeDescription=En qué contextos utilizar este script
minimumShellDialect=Tipo de carcasa
minimumShellDialectDescription=El tipo de shell requerido para este script
dumbOnly=Mudo
@ -132,3 +132,17 @@ desktopCommand.displayName=Comando de escritorio
desktopCommand.displayDescription=Ejecutar un comando en un entorno de escritorio remoto
desktopCommandScript=Comandos
desktopCommandScriptDescription=Los comandos a ejecutar en el entorno
service.displayName=Servicio
service.displayDescription=Reenviar un servicio remoto a tu máquina local
serviceLocalPort=Puerto local explícito
serviceLocalPortDescription=El puerto local al que reenviar, de lo contrario se utiliza uno aleatorio
serviceRemotePort=Puerto remoto
serviceRemotePortDescription=El puerto en el que se ejecuta el servicio
serviceHost=Host de servicio
serviceHostDescription=El host en el que se ejecuta el servicio
openWebsite=Abrir sitio web
serviceGroup.displayName=Grupo de servicios
serviceGroup.displayDescription=Agrupa varios servicios en una categoría
initScript=Ejecutar en shell init
shellScript=Hacer que el script esté disponible durante la sesión shell
fileScript=Permitir llamar a un script con argumentos de archivo en el explorador de archivos

View file

@ -60,7 +60,7 @@ isDefault=S'exécute en mode init dans tous les shells compatibles
bringToShells=Apporte à tous les coquillages compatibles
isDefaultGroup=Exécute tous les scripts de groupe au démarrage de l'interpréteur de commandes
executionType=Type d'exécution
executionTypeDescription=Quand exécuter cet extrait
executionTypeDescription=Dans quels contextes utiliser ce script
minimumShellDialect=Type de coquille
minimumShellDialectDescription=Le type d'interpréteur de commandes requis pour ce script
dumbOnly=Muet
@ -132,3 +132,17 @@ desktopCommand.displayName=Commande de bureau
desktopCommand.displayDescription=Exécuter une commande dans un environnement de bureau à distance
desktopCommandScript=Commandes
desktopCommandScriptDescription=Les commandes à exécuter dans l'environnement
service.displayName=Service
service.displayDescription=Transférer un service distant vers ta machine locale
serviceLocalPort=Port local explicite
serviceLocalPortDescription=Le port local vers lequel transférer, sinon un port aléatoire est utilisé
serviceRemotePort=Port distant
serviceRemotePortDescription=Le port sur lequel le service fonctionne
serviceHost=Hôte du service
serviceHostDescription=L'hôte sur lequel le service est exécuté
openWebsite=Ouvrir un site web
serviceGroup.displayName=Groupe de service
serviceGroup.displayDescription=Regrouper plusieurs services dans une même catégorie
initScript=Exécute sur le shell init
shellScript=Rendre le script disponible pendant la session shell
fileScript=Permet d'appeler un script avec des arguments de fichier dans le navigateur de fichiers

View file

@ -60,7 +60,7 @@ isDefault=Eseguito su init in tutte le shell compatibili
bringToShells=Porta a tutte le conchiglie compatibili
isDefaultGroup=Esegui tutti gli script del gruppo all'avvio della shell
executionType=Tipo di esecuzione
executionTypeDescription=Quando eseguire questo snippet
executionTypeDescription=In quali contesti utilizzare questo script
minimumShellDialect=Tipo di shell
minimumShellDialectDescription=Il tipo di shell richiesto per questo script
dumbOnly=Muto
@ -132,3 +132,17 @@ desktopCommand.displayName=Comando sul desktop
desktopCommand.displayDescription=Eseguire un comando in un ambiente desktop remoto
desktopCommandScript=Comandi
desktopCommandScriptDescription=I comandi da eseguire nell'ambiente
service.displayName=Servizio
service.displayDescription=Inoltrare un servizio remoto al computer locale
serviceLocalPort=Porta locale esplicita
serviceLocalPortDescription=La porta locale a cui inoltrare, altrimenti ne viene utilizzata una a caso
serviceRemotePort=Porta remota
serviceRemotePortDescription=La porta su cui è in esecuzione il servizio
serviceHost=Servizio host
serviceHostDescription=L'host su cui è in esecuzione il servizio
openWebsite=Sito web aperto
serviceGroup.displayName=Gruppo di servizio
serviceGroup.displayDescription=Raggruppa più servizi in un'unica categoria
initScript=Eseguire su shell init
shellScript=Rendere disponibile lo script durante la sessione di shell
fileScript=Consente di richiamare uno script con argomenti di file nel browser di file

View file

@ -60,7 +60,7 @@ isDefault=すべての互換シェルでinit時に実行される
bringToShells=すべての互換性のあるシェルに持ち込む
isDefaultGroup=シェル init ですべてのグループスクリプトを実行する
executionType=実行タイプ
executionTypeDescription=このスニペットを実行するタイミング
executionTypeDescription=このスクリプトをどのような文脈で使うか
minimumShellDialect=シェルタイプ
minimumShellDialectDescription=このスクリプトに必要なシェルタイプ
dumbOnly=ダム
@ -132,3 +132,17 @@ desktopCommand.displayName=デスクトップコマンド
desktopCommand.displayDescription=リモートデスクトップ環境でコマンドを実行する
desktopCommandScript=コマンド
desktopCommandScriptDescription=環境で実行するコマンド
service.displayName=サービス
service.displayDescription=リモートサービスをローカルマシンに転送する
serviceLocalPort=明示的なローカルポート
serviceLocalPortDescription=転送先のローカルポート。そうでない場合はランダムなポートが使われる。
serviceRemotePort=リモートポート
serviceRemotePortDescription=サービスが実行されているポート
serviceHost=サービスホスト
serviceHostDescription=サービスが稼働しているホスト
openWebsite=オープンウェブサイト
serviceGroup.displayName=サービスグループ
serviceGroup.displayDescription=複数のサービスを1つのカテゴリーにまとめる
initScript=シェル init で実行する
shellScript=シェルセッション中にスクリプトを利用可能にする
fileScript=ファイルブラウザでファイル引数を指定してスクリプトを呼び出せるようにする

View file

@ -60,7 +60,7 @@ isDefault=Uitvoeren op init in alle compatibele shells
bringToShells=Breng naar alle compatibele shells
isDefaultGroup=Alle groepsscripts uitvoeren op shell init
executionType=Type uitvoering
executionTypeDescription=Wanneer dit knipsel uitvoeren
executionTypeDescription=In welke contexten kun je dit script gebruiken
minimumShellDialect=Type omhulsel
minimumShellDialectDescription=Het vereiste shelltype voor dit script
dumbOnly=Stom
@ -132,3 +132,17 @@ desktopCommand.displayName=Desktop opdracht
desktopCommand.displayDescription=Een opdracht uitvoeren in een externe desktopomgeving
desktopCommandScript=Opdrachten
desktopCommandScriptDescription=De commando's om uit te voeren in de omgeving
service.displayName=Service
service.displayDescription=Een service op afstand doorsturen naar je lokale machine
serviceLocalPort=Expliciete lokale poort
serviceLocalPortDescription=De lokale poort om naar door te sturen, anders wordt een willekeurige poort gebruikt
serviceRemotePort=Externe poort
serviceRemotePortDescription=De poort waarop de service draait
serviceHost=Service host
serviceHostDescription=De host waarop de service draait
openWebsite=Open website
serviceGroup.displayName=Servicegroep
serviceGroup.displayDescription=Groepeer meerdere diensten in één categorie
initScript=Uitvoeren op shell init
shellScript=Script beschikbaar maken tijdens shellsessie
fileScript=Laat toe dat een script wordt aangeroepen met bestandsargumenten in de bestandsbrowser

View file

@ -60,7 +60,7 @@ isDefault=Corre no init em todos os shells compatíveis
bringToShells=Traz para todos os shells compatíveis
isDefaultGroup=Executa todos os scripts de grupo no shell init
executionType=Tipo de execução
executionTypeDescription=Quando deves executar este snippet
executionTypeDescription=Em que contextos podes utilizar este script
minimumShellDialect=Tipo de shell
minimumShellDialectDescription=O tipo de shell necessário para este script
dumbOnly=Estúpido
@ -132,3 +132,17 @@ desktopCommand.displayName=Comando do ambiente de trabalho
desktopCommand.displayDescription=Executa um comando num ambiente de trabalho remoto
desktopCommandScript=Comandos
desktopCommandScriptDescription=Os comandos a executar no ambiente
service.displayName=Serviço
service.displayDescription=Encaminhar um serviço remoto para a tua máquina local
serviceLocalPort=Porta local explícita
serviceLocalPortDescription=A porta local para a qual reencaminhar, caso contrário é utilizada uma porta aleatória
serviceRemotePort=Porta remota
serviceRemotePortDescription=A porta em que o serviço está a ser executado
serviceHost=Anfitrião de serviço
serviceHostDescription=O anfitrião em que o serviço está a ser executado
openWebsite=Abre o sítio Web
serviceGroup.displayName=Grupo de serviços
serviceGroup.displayDescription=Agrupa vários serviços numa categoria
initScript=Corre no shell init
shellScript=Torna o script disponível durante a sessão da shell
fileScript=Permite que o script seja chamado com argumentos de ficheiro no navegador de ficheiros

View file

@ -60,7 +60,7 @@ isDefault=Запускается в init во всех совместимых о
bringToShells=Принесите всем совместимым оболочкам
isDefaultGroup=Запустите все групповые скрипты на shell init
executionType=Тип исполнения
executionTypeDescription=Когда запускать этот сниппет
executionTypeDescription=В каких контекстах использовать этот скрипт
minimumShellDialect=Тип оболочки
minimumShellDialectDescription=Необходимый тип оболочки для этого скрипта
dumbOnly=Тупой
@ -132,3 +132,17 @@ desktopCommand.displayName=Команда рабочего стола
desktopCommand.displayDescription=Выполнить команду в среде удаленного рабочего стола
desktopCommandScript=Команды
desktopCommandScriptDescription=Команды для запуска в среде
service.displayName=Сервис
service.displayDescription=Перенаправить удаленный сервис на локальную машину
serviceLocalPort=Явный локальный порт
serviceLocalPortDescription=Локальный порт для переадресации, в противном случае используется случайный порт
serviceRemotePort=Удаленный порт
serviceRemotePortDescription=Порт, на котором работает служба
serviceHost=Сервисный хост
serviceHostDescription=Хост, на котором запущена служба
openWebsite=Открытый сайт
serviceGroup.displayName=Группа услуг
serviceGroup.displayDescription=Сгруппируйте несколько сервисов в одну категорию
initScript=Запуск на shell init
shellScript=Сделать скрипт доступным во время сеанса оболочки
fileScript=Разрешить вызов скрипта с аргументами в виде файлов в браузере файлов

View file

@ -60,7 +60,7 @@ isDefault=Tüm uyumlu kabuklarda init üzerinde çalıştırın
bringToShells=Tüm uyumlu kabukları getirin
isDefaultGroup=Tüm grup komut dosyalarını kabuk başlangıcında çalıştırın
executionType=Yürütme türü
executionTypeDescription=Bu snippet ne zaman çalıştırılır
executionTypeDescription=Bu komut dosyası hangi bağlamlarda kullanılmalı
minimumShellDialect=Kabuk tipi
minimumShellDialectDescription=Bu betik için gerekli kabuk türü
dumbOnly=Aptal
@ -132,3 +132,17 @@ desktopCommand.displayName=Masaüstü komutu
desktopCommand.displayDescription=Uzak masaüstü ortamında bir komut çalıştırma
desktopCommandScript=Komutlar
desktopCommandScriptDescription=Ortamda çalıştırılacak komutlar
service.displayName=Hizmet
service.displayDescription=Uzak bir hizmeti yerel makinenize iletme
serviceLocalPort=ık yerel bağlantı noktası
serviceLocalPortDescription=Yönlendirilecek yerel bağlantı noktası, aksi takdirde rastgele bir bağlantı noktası kullanılır
serviceRemotePort=Uzak bağlantı noktası
serviceRemotePortDescription=Hizmetin üzerinde çalıştığı bağlantı noktası
serviceHost=Hizmet sunucusu
serviceHostDescription=Hizmetin üzerinde çalıştığı ana bilgisayar
openWebsite=ık web sitesi
serviceGroup.displayName=Hizmet grubu
serviceGroup.displayDescription=Birden fazla hizmeti tek bir kategoride gruplayın
initScript=Kabuk başlangıcında çalıştır
shellScript=Kabuk oturumu sırasında komut dosyasını kullanılabilir hale getirme
fileScript=Kodun dosya tarayıcısında dosya bağımsız değişkenleriyle çağrılmasına izin ver

View file

@ -60,7 +60,7 @@ isDefault=在所有兼容外壳的 init 中运行
bringToShells=带入所有兼容外壳
isDefaultGroup=在 shell 启动时运行所有组脚本
executionType=执行类型
executionTypeDescription=何时运行此片段
executionTypeDescription=在哪些情况下使用此脚本
minimumShellDialect=外壳类型
minimumShellDialectDescription=该脚本所需的 shell 类型
dumbOnly=
@ -132,3 +132,17 @@ desktopCommand.displayName=桌面命令
desktopCommand.displayDescription=在远程桌面环境中运行命令
desktopCommandScript=命令
desktopCommandScriptDescription=在环境中运行的命令
service.displayName=服务
service.displayDescription=将远程服务转发到本地计算机
serviceLocalPort=显式本地端口
serviceLocalPortDescription=要转发到的本地端口,否则使用随机端口
serviceRemotePort=远程端口
serviceRemotePortDescription=服务运行的端口
serviceHost=服务主机
serviceHostDescription=服务运行的主机
openWebsite=打开网站
serviceGroup.displayName=服务组
serviceGroup.displayDescription=将多项服务归为一类
initScript=在 shell init 上运行
shellScript=在 shell 会话中提供脚本
fileScript=允许在文件浏览器中使用文件参数调用脚本

View file

@ -1,15 +1,50 @@
## Udførelsestyper
# Udførelsestyper
Der er to forskellige eksekveringstyper, når XPipe opretter forbindelse til et system.
Du kan bruge et script i flere forskellige scenarier.
### I baggrunden
Når du aktiverer et script, dikterer udførelsestyperne, hvad XPipe vil gøre med scriptet.
Den første forbindelse til et system oprettes i baggrunden i en dumb terminal-session.
## Init-scripts
Blokeringskommandoer, der kræver brugerinput, kan fryse shell-processen, når XPipe starter den op internt i baggrunden. For at undgå dette bør du kun kalde disse blokerende kommandoer i terminaltilstand.
Når et script er angivet som init-script, kan det vælges i shell-miljøer.
Filbrowseren bruger for eksempel udelukkende den dumme baggrundstilstand til at håndtere sine operationer, så hvis du vil have dit scriptmiljø til at gælde for filbrowsersessionen, skal det køre i den dumme tilstand.
Hvis et script er aktiveret, vil det desuden automatisk blive kørt ved init i alle kompatible shells.
Hvis du f.eks. opretter et simpelt init-script som
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
du vil have adgang til disse aliasser i alle kompatible shell-sessioner, hvis scriptet er aktiveret.
## Shell-scripts
Et normalt shell-script er beregnet til at blive kaldt i en shell-session i din terminal.
Når det er aktiveret, bliver scriptet kopieret til målsystemet og lagt ind i PATH i alle kompatible shells.
På den måde kan du kalde scriptet fra hvor som helst i en terminalsession.
Scriptnavnet skrives med små bogstaver, og mellemrum erstattes med understregninger, så du nemt kan kalde scriptet.
Hvis du f.eks. opretter et simpelt shell-script med navnet `apti` som
```
sudo apt install "$1"
```
kan du kalde det på ethvert kompatibelt system med `apti.sh <pkg>`, hvis scriptet er aktiveret.
## Fil-scripts
Endelig kan du også køre brugerdefinerede scripts med filinput fra filbrowser-grænsefladen.
Når et filscript er aktiveret, vises det i filbrowseren, så det kan køres med filinput.
Hvis du f.eks. opretter et simpelt filscript som
```
sudo apt install "$@"
```
kan du køre scriptet på udvalgte filer, hvis scriptet er aktiveret.
## Flere typer
Da eksemplet på fil-scriptet er det samme som eksemplet på shell-scriptet ovenfor,
kan du se, at du også kan sætte kryds i flere bokse for udførelsestyper af et script, hvis de skal bruges i flere scenarier.
### I terminalerne
Når den indledende dumb terminal-forbindelse er lykkedes, vil XPipe åbne en separat forbindelse i den faktiske terminal. Hvis du vil have scriptet til at køre, når du åbner forbindelsen i en terminal, skal du vælge terminaltilstand.

View file

@ -1,15 +1,50 @@
## Ausführungsarten
# Ausführungsarten
Es gibt zwei verschiedene Ausführungsarten, wenn XPipe eine Verbindung zu einem System herstellt.
Du kannst ein Skript in vielen verschiedenen Szenarien verwenden.
### Im Hintergrund
Wenn du ein Skript aktivierst, legen die Ausführungsarten fest, was XPipe mit dem Skript tun soll.
Die erste Verbindung zu einem System wird im Hintergrund in einer stummen Terminalsitzung hergestellt.
## Init-Skripte
Blockierende Befehle, die Benutzereingaben erfordern, können den Shell-Prozess einfrieren, wenn XPipe ihn intern zuerst im Hintergrund startet. Um dies zu vermeiden, solltest du diese blockierenden Befehle nur im Terminalmodus aufrufen.
Wenn ein Skript als Init-Skript gekennzeichnet ist, kann es in Shell-Umgebungen ausgewählt werden.
Der Dateibrowser z. B. verwendet für seine Operationen ausschließlich den dummen Hintergrundmodus. Wenn du also möchtest, dass deine Skriptumgebung für die Dateibrowser-Sitzung gilt, sollte sie im dummen Modus ausgeführt werden.
Wenn ein Skript aktiviert ist, wird es außerdem automatisch bei init in allen kompatiblen Shells ausgeführt.
Wenn du zum Beispiel ein einfaches Init-Skript erstellst wie
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
hast du in allen kompatiblen Shell-Sitzungen Zugang zu diesen Aliasen, wenn das Skript aktiviert ist.
## Shell-Skripte
Ein normales Shell-Skript ist dafür gedacht, in einer Shell-Sitzung in deinem Terminal aufgerufen zu werden.
Wenn es aktiviert ist, wird das Skript auf das Zielsystem kopiert und in den PATH aller kompatiblen Shells aufgenommen.
So kannst du das Skript von überall in einer Terminal-Sitzung aufrufen.
Der Skriptname wird kleingeschrieben und Leerzeichen werden durch Unterstriche ersetzt, damit du das Skript leicht aufrufen kannst.
Wenn du zum Beispiel ein einfaches Shell-Skript mit dem Namen `apti` wie folgt erstellst
```
sudo apt install "$1"
```
kannst du das auf jedem kompatiblen System mit `apti.sh <pkg>` aufrufen, wenn das Skript aktiviert ist.
## Datei-Skripte
Schließlich kannst du auch benutzerdefinierte Skripte mit Dateieingaben über die Dateibrowser-Schnittstelle ausführen.
Wenn ein Dateiskript aktiviert ist, wird es im Dateibrowser angezeigt und kann mit Dateieingaben ausgeführt werden.
Wenn du zum Beispiel ein einfaches Dateiskript erstellst wie
```
sudo apt install "$@"
```
kannst du das Skript für ausgewählte Dateien ausführen, wenn das Skript aktiviert ist.
## Mehrere Typen
Da das Beispielskript für die Datei dasselbe ist wie das Beispielsskript für die Shell oben,
siehst du, dass du auch mehrere Kästchen für die Ausführungsarten eines Skripts ankreuzen kannst, wenn sie in mehreren Szenarien verwendet werden sollen.
### In den Terminals
Nachdem die anfängliche Dumb-Terminal-Verbindung erfolgreich war, öffnet XPipe eine separate Verbindung im eigentlichen Terminal. Wenn du möchtest, dass das Skript ausgeführt wird, wenn du die Verbindung in einem Terminal öffnest, dann wähle den Terminalmodus.

View file

@ -1,15 +1,50 @@
## Execution types
# Execution types
There are two distinct execution types when XPipe connects to a system.
You can use a script in multiple different scenarios.
### In the background
When enabling a script, the execution types dictate what XPipe will do with the script.
The first connection to a system is made in the background in a dumb terminal session.
## Init scripts
Blocking commands that require user input can freeze the shell process when XPipe starts it up internally first in the background. To avoid this, you should only call these blocking commands in the terminal mode.
When a script is designated as init script, it can be selected in shell environments.
The file browser for example entirely uses the dumb background mode to handle its operations, so if you want your script environment to apply to the file browser session, it should run in the dumb mode.
Furthermore, if a script is enabled, it will automatically be run on init in all compatible shells.
For example, if you create a simple init script like
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
you will have access to these aliases in all compatible shell sessions if the script is enabled.
## Shell scripts
A normal shell script is intended to be called in a shell session in your terminal.
When enabled, the script will be copied to the target system and put into the PATH in all compatible shells.
This allows you to call the script from anywhere in a terminal session.
The script name will be lowercased and spaces will be replaced with underscores, allowing you to easily call the script.
For example, if you create a simple shell script named `apti` like
```
sudo apt install "$1"
```
you can call that on any compatible system with `apti.sh <pkg>` if the script is enabled.
## File scripts
Lastly, you can also run custom script with file inputs from the file browser interface.
When a file script is enabled, it will show up in the file browser to be run with file inputs.
For example, if you create a simple file script like
```
sudo apt install "$@"
```
you can run the script on selected files if the script is enabled.
## Multiple types
As the sample file script is the same as the sample shell script above,
you see that you can also tick multiple boxes for execution types of a script if they should be used in multiple scenarios.
### In the terminals
After the initial dumb terminal connection has succeeded, XPipe will open a separate connection in the actual terminal. If you want the script to be run when you open the connection in a terminal, then choose the terminal mode.

View file

@ -1,15 +1,50 @@
## Tipos de ejecución
# Tipos de ejecución
Hay dos tipos de ejecución distintos cuando XPipe se conecta a un sistema.
Puedes utilizar un script en múltiples escenarios diferentes.
### En segundo plano
Al activar un script, los tipos de ejecución dictan lo que XPipe hará con el script.
La primera conexión a un sistema se realiza en segundo plano en una sesión de terminal tonta.
## Guiones de inicio
Los comandos de bloqueo que requieren la entrada del usuario pueden congelar el proceso shell cuando XPipe lo inicia internamente por primera vez en segundo plano. Para evitarlo, sólo debes llamar a estos comandos de bloqueo en el modo terminal.
Cuando un script se designa como script init, se puede seleccionar en entornos shell.
El explorador de archivos, por ejemplo, utiliza enteramente el modo mudo en segundo plano para manejar sus operaciones, así que si quieres que tu entorno de script se aplique a la sesión del explorador de archivos, debe ejecutarse en el modo mudo.
Además, si un script está activado, se ejecutará automáticamente en init en todos los shells compatibles.
Por ejemplo, si creas un script init sencillo como
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
tendrás acceso a estos alias en todas las sesiones de shell compatibles si el script está activado.
## Scripts de shell
Un script de shell normal está pensado para ser llamado en una sesión de shell en tu terminal.
Cuando está activado, el script se copiará en el sistema de destino y se pondrá en el PATH en todas las shell compatibles.
Esto te permite llamar al script desde cualquier lugar de una sesión de terminal.
El nombre del script se escribirá en minúsculas y los espacios se sustituirán por guiones bajos, lo que te permitirá llamarlo fácilmente.
Por ejemplo, si creas un sencillo script de shell llamado `apti` como
```
sudo apt install "$1"
```
puedes invocarlo en cualquier sistema compatible con `apti.sh <pkg>` si el script está activado.
## Archivo scripts
Por último, también puedes ejecutar scripts personalizados con entradas de archivo desde la interfaz del explorador de archivos.
Cuando un script de archivo esté activado, aparecerá en el explorador de archivos para ejecutarse con entradas de archivo.
Por ejemplo, si creas un script de archivo sencillo como
```
sudo apt install "$@"
```
puedes ejecutar el script en los archivos seleccionados si el script está activado.
## Tipos múltiples
Como el script de archivo de ejemplo es el mismo que el script de shell de ejemplo anterior,
verás que también puedes marcar varias casillas para los tipos de ejecución de un script si deben utilizarse en varios escenarios.
### En los terminales
Después de que la conexión inicial de terminal mudo haya tenido éxito, XPipe abrirá una conexión separada en el terminal real. Si quieres que el script se ejecute al abrir la conexión en un terminal, elige el modo terminal.

View file

@ -1,15 +1,50 @@
## Types d'exécution
# Types d'exécution
Il existe deux types d'exécution distincts lorsque XPipe se connecte à un système.
Tu peux utiliser un script dans plusieurs scénarios différents.
### En arrière-plan
Lors de l'activation d'un script, les types d'exécution dictent ce que XPipe fera avec le script.
La première connexion à un système est effectuée en arrière-plan dans une session de terminal muet.
## Init scripts
Les commandes de blocage qui nécessitent une entrée de la part de l'utilisateur peuvent geler le processus de l'interpréteur de commandes lorsque XPipe le démarre d'abord en interne en arrière-plan. Pour éviter cela, tu ne dois appeler ces commandes bloquantes qu'en mode terminal.
Lorsqu'un script est désigné comme script init, il peut être sélectionné dans les environnements shell.
Le navigateur de fichiers, par exemple, utilise entièrement le mode d'arrière-plan muet pour gérer ses opérations, donc si tu veux que l'environnement de ton script s'applique à la session du navigateur de fichiers, il doit s'exécuter en mode muet.
De plus, si un script est activé, il sera automatiquement exécuté lors de l'init dans tous les shells compatibles.
Par exemple, si tu crées un script init simple comme
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
tu auras accès à ces alias dans toutes les sessions shell compatibles si le script est activé.
## Scripts shell
Un script shell normal est destiné à être appelé dans une session shell dans ton terminal.
Lorsqu'il est activé, le script sera copié sur le système cible et placé dans le chemin d'accès (PATH) de tous les shells compatibles.
Cela te permet d'appeler le script depuis n'importe quel endroit d'une session de terminal.
Le nom du script sera en minuscules et les espaces seront remplacés par des traits de soulignement, ce qui te permettra d'appeler facilement le script.
Par exemple, si tu crées un script shell simple nommé `apti` comme suit
```
sudo apt install "$1"
```
vous pouvez l'appeler sur n'importe quel système compatible avec `apti.sh <pkg>` si le script est activé.
## Fichier scripts
Enfin, tu peux aussi exécuter des scripts personnalisés avec des entrées de fichiers à partir de l'interface du navigateur de fichiers.
Lorsqu'un script de fichier est activé, il s'affiche dans le navigateur de fichiers pour être exécuté avec des entrées de fichier.
Par exemple, si tu crées un script de fichier simple comme
```
sudo apt install "$@"
```
tu peux exécuter le script sur les fichiers sélectionnés si le script est activé.
## Plusieurs types
Comme l'exemple de script de fichier est le même que l'exemple de script shell ci-dessus,
tu vois que tu peux aussi cocher plusieurs cases pour les types d'exécution d'un script s'ils doivent être utilisés dans plusieurs scénarios.
### Dans les terminaux
Une fois que la connexion initiale au terminal muet a réussi, XPipe ouvre une connexion séparée dans le terminal réel. Si tu veux que le script soit exécuté lorsque tu ouvres la connexion dans un terminal, choisis le mode terminal.

View file

@ -1,15 +1,50 @@
## Tipi di esecuzione
# Tipi di esecuzione
Esistono due tipi di esecuzione distinti quando XPipe si connette a un sistema.
Puoi utilizzare uno script in diversi scenari.
### In background
Quando abiliti uno script, i tipi di esecuzione stabiliscono cosa XPipe farà con lo script.
La prima connessione a un sistema avviene in background in una sessione di terminale muta.
## Script di avvio
I comandi di blocco che richiedono l'input dell'utente possono bloccare il processo di shell quando XPipe lo avvia internamente in background. Per evitare questo problema, dovresti chiamare questi comandi di blocco solo in modalità terminale.
Quando uno script è designato come script di avvio, può essere selezionato negli ambienti shell.
Il navigatore di file, ad esempio, utilizza esclusivamente la modalità di sfondo muta per gestire le sue operazioni, quindi se vuoi che il tuo ambiente di script si applichi alla sessione del navigatore di file, deve essere eseguito in modalità muta.
Inoltre, se uno script è abilitato, verrà eseguito automaticamente all'avvio in tutte le shell compatibili.
Ad esempio, se crei un semplice script di avvio come
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
avrai accesso a questi alias in tutte le sessioni di shell compatibili se lo script è abilitato.
## Script di shell
Un normale script di shell è destinato a essere richiamato in una sessione di shell nel tuo terminale.
Se abilitato, lo script verrà copiato sul sistema di destinazione e inserito nel PATH di tutte le shell compatibili.
Questo ti permette di richiamare lo script da qualsiasi punto di una sessione di terminale.
Il nome dello script sarà minuscolo e gli spazi saranno sostituiti da trattini bassi, consentendoti di richiamare facilmente lo script.
Ad esempio, se crei un semplice script di shell chiamato `apti` come
```
sudo apt install "$1"
```
puoi richiamarlo su qualsiasi sistema compatibile con `apti.sh <pkg>` se lo script è abilitato.
## File script
Infine, puoi anche eseguire script personalizzati con input da file dall'interfaccia del browser dei file.
Quando uno script di file è abilitato, viene visualizzato nel browser dei file per essere eseguito con input di file.
Ad esempio, se crei un semplice script di file come
```
sudo apt install "$@"
```
puoi eseguire lo script sui file selezionati se lo script è abilitato.
## Tipi multipli
Poiché lo script di esempio per i file è identico allo script di esempio per la shell di cui sopra,
puoi anche spuntare più caselle per i tipi di esecuzione di uno script se questi devono essere utilizzati in più scenari.
### Nei terminali
Dopo che la connessione iniziale del terminale muto è riuscita, XPipe aprirà una connessione separata nel terminale vero e proprio. Se vuoi che lo script venga eseguito quando apri la connessione in un terminale, scegli la modalità terminale.

View file

@ -1,15 +1,50 @@
## 実行タイプ
# 実行タイプ
XPipeがシステムに接続する際、2種類の実行タイプがある。
スクリプトは複数の異なるシナリオで使用できる。
### バックグラウンド
スクリプトを有効にする場合、実行タイプによってXPipeがスクリプトで何を行うかが決まる。
システムへの最初の接続は、ダム端末セッションでバックグラウンドで行われる。
## スクリプトの初期化
ユーザー入力を必要とするブロックコマンドは、XPipeがバックグラウンドで最初にシェルプロセスを内部的に起動する際に、シェルプロセスをフリーズさせる可能性がある。これを避けるため、これらのブロックコマンドはターミナルモードでのみ呼び出すべきである。
スクリプトをinitスクリプトとして指定すると、シェル環境で選択できるようになる。
例えばファイルブラウザは完全にダムバックグラウンドモードを使用して操作を処理するため、スクリプト環境をファイルブラウザセッションに適用したい場合は、ダムモードで実行する必要がある。
さらに、スクリプトが有効になっていれば、互換性のあるすべてのシェルで、init時に自動的に実行される。
例えば、次のような単純なinitスクリプトを作成した場合
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
スクリプトが有効になっていれば、互換性のあるすべてのシェル・セッションでこれらのエイリアスにアクセスできる。
## シェルスクリプト
通常のシェルスクリプトは、ターミナル上のシェルセッションで呼び出され ることを想定している。
有効にすると、スクリプトはターゲットシステムにコピーされ、 すべての互換シェルでPATHに入れられる。
これにより、ターミナル・セッションのどこからでもスクリプトを呼び出すことができる。
スクリプト名は小文字になり、スペースはアンダースコアに置き換えられるので、簡単にスクリプトを呼び出すことができる。
例えば、次のような`apti`という単純なシェルスクリプトを作成した場合、次のようになる。
```
sudo apt install "$1"
```
スクリプトが有効になっていれば、互換性のあるシステム上で`apti.sh <pkg>`を使ってそれを呼び出すことができる。
## ファイルスクリプト
最後に、ファイルブラウザのインターフェイスからファイル入力を使ってカスタムスクリプトを実行することもできる。
ファイルスクリプトが有効になると、ファイルブラウザに表示され、ファイル入力で実行できるようになる。
例えば、次のような簡単なファイルスクリプトを作成した場合
```
sudo apt install "$@"
```
スクリプトが有効になっていれば、選択したファイルに対してスクリプトを実行できる。
## 複数のタイプ
ファイルスクリプトのサンプルは、上のシェルスクリプトのサンプルと同じである、
スクリプトを複数のシナリオで使用する場合は、スクリプトの実行タイプに複数のチェックボックスを付けることもできる。
### ターミナルでは
最初のダムターミナル接続が成功すると、XPipeは実際のターミナルで別の接続を開く。ターミナルで接続を開いたときにスクリプトを実行させたい場合は、ターミナルモードを選択する。

View file

@ -1,15 +1,50 @@
## Uitvoeringstypes
# Uitvoeringstypen
Er zijn twee verschillende uitvoeringstypen wanneer XPipe verbinding maakt met een systeem.
Je kunt een script in meerdere verschillende scenario's gebruiken.
### Op de achtergrond
Wanneer je een script inschakelt, bepalen de uitvoeringstypen wat XPipe met het script zal doen.
De eerste verbinding met een systeem wordt op de achtergrond gemaakt in een domme terminal sessie.
## Init scripts
Blokkerende commando's die gebruikersinvoer vereisen kunnen het shell proces bevriezen wanneer XPipe het eerst intern op de achtergrond opstart. Om dit te voorkomen, moet je deze blokkerende commando's alleen in de terminalmodus aanroepen.
Als een script is aangewezen als init-script, kan het worden geselecteerd in shell-omgevingen.
De bestandsbrowser bijvoorbeeld gebruikt volledig de domme achtergrondmodus om zijn bewerkingen af te handelen, dus als je wilt dat je scriptomgeving van toepassing is op de bestandsbrowsersessie, moet deze in de domme modus draaien.
Bovendien, als een script is ingeschakeld, zal het automatisch worden uitgevoerd op init in alle compatibele shells.
Als je bijvoorbeeld een eenvoudig init-script maakt als
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
je hebt toegang tot deze aliassen in alle compatibele shell sessies als het script is ingeschakeld.
## Shell scripts
Een normaal shellscript is bedoeld om aangeroepen te worden in een shellsessie in je terminal.
Als dit is ingeschakeld, wordt het script gekopieerd naar het doelsysteem en in het PATH van alle compatibele shells gezet.
Hierdoor kun je het script overal vandaan in een terminalsessie aanroepen.
De scriptnaam wordt met kleine letters geschreven en spaties worden vervangen door underscores, zodat je het script gemakkelijk kunt aanroepen.
Als je bijvoorbeeld een eenvoudig shellscript maakt met de naam `apti` zoals
```
sudo apt install "$1"
```
kun je dat op elk compatibel systeem aanroepen met `apti.sh <pkg>` als het script is ingeschakeld.
## Bestandsscripts
Tot slot kun je ook aangepaste scripts uitvoeren met bestandsinvoer vanuit de bestandsbrowserinterface.
Als een bestandsscript is ingeschakeld, verschijnt het in de bestandsbrowser om te worden uitgevoerd met bestandsinvoer.
Als je bijvoorbeeld een eenvoudig bestandsscript maakt zoals
```
sudo apt install "$@"
```
kun je het script uitvoeren op geselecteerde bestanden als het script is ingeschakeld.
## Meerdere types
Aangezien het voorbeeldbestandsscript hetzelfde is als het voorbeeldshell-script hierboven,
zie je dat je ook meerdere vakjes kunt aanvinken voor uitvoeringstypen van een script als ze in meerdere scenario's moeten worden gebruikt.
### In de terminals
Nadat de initiële domme terminalverbinding is gelukt, opent XPipe een aparte verbinding in de echte terminal. Als je wilt dat het script wordt uitgevoerd wanneer je de verbinding in een terminal opent, kies dan de terminalmodus.

View file

@ -1,15 +1,50 @@
## Tipos de execução
# Tipos de execução
Existem dois tipos de execução distintos quando o XPipe se liga a um sistema.
Podes utilizar um script em vários cenários diferentes.
### Em segundo plano
Ao ativar um script, os tipos de execução ditam o que o XPipe fará com o script.
A primeira conexão com um sistema é feita em segundo plano em uma sessão de terminal burro.
## Scripts de inicialização
Os comandos de bloqueio que requerem a entrada do usuário podem congelar o processo do shell quando o XPipe o inicia internamente primeiro em segundo plano. Para evitar isso, só deves chamar estes comandos de bloqueio no modo terminal.
Quando um script é designado como script de inicialização, ele pode ser selecionado em ambientes shell.
O navegador de ficheiros, por exemplo, utiliza inteiramente o modo de fundo burro para tratar das suas operações, por isso, se quiseres que o teu ambiente de script se aplique à sessão do navegador de ficheiros, deve ser executado no modo burro.
Além disso, se um script é habilitado, ele será automaticamente executado no init em todos os shells compatíveis.
Por exemplo, se criares um script de inicialização simples como
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
terás acesso a estes aliases em todas as sessões de shell compatíveis se o script estiver ativado.
## Scripts de shell
Um script de shell normal destina-se a ser chamado numa sessão de shell no teu terminal.
Quando ativado, o script será copiado para o sistema alvo e colocado no PATH em todas as shells compatíveis.
Isto permite-te chamar o script a partir de qualquer lugar numa sessão de terminal.
O nome do script será escrito em minúsculas e os espaços serão substituídos por sublinhados, permitindo-te chamar facilmente o script.
Por exemplo, se criares um script de shell simples chamado `apti` como
```
sudo apt install "$1"
```
podes chamar isso em qualquer sistema compatível com `apti.sh <pkg>` se o script estiver ativado.
## Scripts de ficheiros
Por último, também podes executar scripts personalizados com entradas de ficheiros a partir da interface do navegador de ficheiros.
Quando um script de arquivo estiver habilitado, ele aparecerá no navegador de arquivos para ser executado com entradas de arquivo.
Por exemplo, se criares um script de arquivo simples como
```
sudo apt install "$@"
```
podes executar o script em ficheiros seleccionados se o script estiver ativado.
## Vários tipos
Como o script de arquivo de exemplo é o mesmo que o script de shell de exemplo acima,
vês que também podes assinalar várias caixas para os tipos de execução de um script, se estes tiverem de ser usados em vários cenários.
### Nos terminais
Depois que a conexão inicial do terminal burro for bem-sucedida, o XPipe abrirá uma conexão separada no terminal real. Se quiseres que o script seja executado quando abrires a ligação num terminal, então escolhe o modo terminal.

View file

@ -1,15 +1,50 @@
## Типы исполнения
# Типы исполнения
Есть два разных типа исполнения, когда XPipe подключается к системе.
Ты можешь использовать скрипт в нескольких различных сценариях.
### В фоновом режиме
При включении скрипта типы выполнения определяют, что XPipe будет делать со скриптом.
Первое подключение к системе происходит в фоновом режиме в тупой терминальной сессии.
## Начальные скрипты
Блокирующие команды, требующие пользовательского ввода, могут заморозить процесс оболочки, когда XPipe запускает его сначала внутри системы в фоновом режиме. Чтобы этого избежать, вызывай эти блокирующие команды только в терминальном режиме.
Когда скрипт обозначен как init script, он может быть выбран в среде оболочки.
Например, файловый браузер полностью использует немой фоновый режим для обработки своих операций, поэтому, если ты хочешь, чтобы окружение твоего скрипта применялось к сессии файлового браузера, он должен запускаться в немом режиме.
Более того, если скрипт включен, он будет автоматически запускаться при init во всех совместимых оболочках.
Например, если ты создашь простой init-скрипт типа
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
ты будешь иметь доступ к этим псевдонимам во всех совместимых сессиях оболочки, если скрипт включен.
## Скрипты оболочки
Обычный shell-скрипт предназначен для вызова в shell-сессии в твоем терминале.
При включении скрипта он будет скопирован в целевую систему и помещен в PATH во всех совместимых оболочках.
Это позволит тебе вызывать скрипт из любого места терминальной сессии.
Имя скрипта будет написано в нижнем регистре, а пробелы будут заменены на подчеркивания, что позволит тебе легко вызывать скрипт.
Например, если ты создашь простой shell-скрипт с именем `apti`, например
```
sudo apt install "$1"
```
ты сможешь вызвать его на любой совместимой системе с помощью `apti.sh <pkg>`, если скрипт включен.
## Скрипты файлов
Наконец, ты также можешь запускать пользовательские скрипты с файловыми входами из интерфейса файлового браузера.
Когда файловый скрипт включен, он будет отображаться в браузере файлов, чтобы его можно было запустить с файловыми входами.
Например, если ты создашь простой файловый скрипт типа
```
sudo apt install "$@"
```
ты сможешь запускать скрипт на выбранных файлах, если он включен.
## Несколько типов
Поскольку пример файлового скрипта такой же, как и пример shell-скрипта выше,
ты видишь, что также можешь поставить несколько галочек напротив типов выполнения скрипта, если он должен использоваться в нескольких сценариях.
### В терминалах
После того как первоначальное подключение к тупому терминалу прошло успешно, XPipe откроет отдельное соединение в реальном терминале. Если ты хочешь, чтобы скрипт запускался при открытии соединения в терминале, то выбирай терминальный режим.

View file

@ -1,15 +1,50 @@
## Yürütme türleri
# Yürütme türleri
XPipe bir sisteme bağlandığında iki farklı yürütme türü vardır.
Bir komut dosyasını birden fazla farklı senaryoda kullanabilirsiniz.
### Arka planda
Bir komut dosyası etkinleştirilirken, yürütme türleri XPipe'ın komut dosyasıyla ne yapacağını belirler.
Bir sisteme ilk bağlantı arka planda bir aptal terminal oturumunda yapılır.
## Başlangıç betikleri
Kullanıcı girişi gerektiren engelleme komutları, XPipe arka planda ilk olarak dahili olarak başlatıldığında kabuk sürecini dondurabilir. Bunu önlemek için, bu engelleme komutlarını yalnızca terminal modunda çağırmalısınız.
Bir komut dosyası init komut dosyası olarak belirlendiğinde, kabuk ortamlarında seçilebilir.
Örneğin dosya tarayıcısı, işlemlerini gerçekleştirmek için tamamen dilsiz arka plan modunu kullanır; bu nedenle, kod ortamınızın dosya tarayıcısı oturumuna uygulanmasını istiyorsanız, dilsiz modda çalışması gerekir.
Ayrıca, bir betik etkinleştirilirse, tüm uyumlu kabuklarda otomatik olarak init'te çalıştırılacaktır.
Örneğin, aşağıdaki gibi basit bir init betiği oluşturursanız
```
alias ll="ls -l"
alias la="ls -A"
alias l="ls -CF"
```
betik etkinleştirilmişse, tüm uyumlu kabuk oturumlarında bu takma adlara erişebileceksiniz.
## Kabuk betikleri
Normal bir kabuk betiği, terminalinizdeki bir kabuk oturumunda çağrılmak üzere tasarlanmıştır.
Etkinleştirildiğinde, betik hedef sisteme kopyalanır ve tüm uyumlu kabuklarda PATH'e yerleştirilir.
Bu, betiği bir terminal oturumunun herhangi bir yerinden çağırmanıza olanak tanır.
Betik adı küçük harflerle yazılır ve boşluklar alt çizgi ile değiştirilir, böylece betiği kolayca çağırabilirsiniz.
Örneğin, `apti` adında aşağıdaki gibi basit bir kabuk betiği oluşturursanız
```
sudo apt install "$1"
```
betik etkinleştirilmişse bunu uyumlu herhangi bir sistemde `apti.sh <pkg>` ile çağırabilirsiniz.
## Dosya komut dosyaları
Son olarak, dosya tarayıcı arayüzünden dosya girdileriyle özel komut dosyası da çalıştırabilirsiniz.
Bir dosya komut dosyası etkinleştirildiğinde, dosya girdileriyle çalıştırılmak üzere dosya tarayıcısında görünecektir.
Örneğin, aşağıdaki gibi basit bir dosya komut dosyası oluşturursanız
```
sudo apt install "$@"
```
komut dosyası etkinleştirilmişse komut dosyasını seçilen dosyalar üzerinde çalıştırabilirsiniz.
## Çoklu tipler
Örnek dosya betiği yukarıdaki örnek kabuk betiği ile aynıdır,
birden fazla senaryoda kullanılmaları gerekiyorsa, bir komut dosyasının yürütme türleri için birden fazla kutuyu da işaretleyebileceğinizi görürsünüz.
### Terminallerde
İlk dumb terminal bağlantısı başarılı olduktan sonra, XPipe gerçek terminalde ayrı bir bağlantı açacaktır. Bağlantıyı bir terminalde açtığınızda komut dosyasının çalıştırılmasını istiyorsanız, terminal modunu seçin.

View file

@ -1,15 +1,50 @@
## 执行类型
# 执行类型
XPipe 连接到系统时有两种不同的执行类型
您可以在多种不同情况下使用脚本
### 在后台
启用脚本时,执行类型决定了 XPipe 将如何处理脚本。
与系统的首次连接是在后台的哑终端会话中进行的。
## 初始脚本
XPipe 首先在后台内部启动 shell 进程时,需要用户输入的阻塞命令会冻结 shell 进程。为避免出现这种情况,只能在终端模式下调用这些阻塞命令
脚本被指定为初始脚本时,它可以在 shell 环境中被选择
例如,文件浏览器完全使用哑模式后台处理其操作,因此如果您希望脚本环境适用于文件浏览器会话,则应在哑模式下运行。
此外,如果脚本被启用,它将在所有兼容的 shell 中自动运行 init 脚本。
例如,如果创建一个简单的启动脚本,如
```
别名 ll="ls -l"
alias la="ls -A"
别名 l="ls -CF"
```
如果脚本已启用,您就可以在所有兼容的 shell 会话中访问这些别名。
##hell 脚本
普通 shell 脚本用于在终端的 shell 会话中调用。
启用后,脚本将被复制到目标系统,并放入所有兼容 shell 的 PATH 中。
这样就可以在终端会话的任何地方调用脚本。
脚本名称将小写,空格将用下划线代替,以便于调用脚本。
例如,如果创建一个名为 `apti` 的简单 shell 脚本,如
```
sudo apt install "$1"
```
如果脚本已启用,你就可以在任何兼容系统上使用 `apti.sh <pkg>` 调用该脚本。
## 文件脚本
最后,你还可以通过文件浏览器界面的文件输入运行自定义脚本。
启用文件脚本后,它将显示在文件浏览器中,可通过文件输入运行。
例如,如果你创建了一个简单的文件脚本,如
```
sudo apt install "$@"
```
这样的简单文件脚本,如果脚本已启用,你就可以在选定的文件上运行该脚本。
## 多种类型
由于示例文件脚本与上述示例 shell 脚本相同、
你可以看到,如果脚本应在多种情况下使用,你也可以为脚本的执行类型勾选多个复选框。
### 在终端中
初始哑终端连接成功后XPipe 将在实际终端中打开一个单独的连接。如果您希望在终端打开连接时运行脚本,那么请选择终端模式。

View file

@ -166,6 +166,7 @@ startContainer=Start container
stopContainer=Stop container
#custom
inspectContainer=Inspicér container
inspectContext=Inspicér kontekst
k8sClusterNameDescription=Navnet på den kontekst, klyngen befinder sig i.
#custom
pod=Pod

View file

@ -155,6 +155,7 @@ shells=Verfügbare Shells
startContainer=Container starten
stopContainer=Container anhalten
inspectContainer=Container inspizieren
inspectContext=Kontext inspizieren
k8sClusterNameDescription=Der Name des Kontexts, in dem sich der Cluster befindet.
pod=Pod
podName=Pod-Name

View file

@ -152,6 +152,7 @@ shells=Conchas disponibles
startContainer=Contenedor de inicio
stopContainer=Contenedor de parada
inspectContainer=Inspeccionar contenedor
inspectContext=Inspeccionar contexto
k8sClusterNameDescription=El nombre del contexto en el que se encuentra el clúster.
pod=Pod
podName=Nombre del pod

View file

@ -152,6 +152,7 @@ shells=Coquilles disponibles
startContainer=Conteneur de départ
stopContainer=Arrêter le conteneur
inspectContainer=Inspecter le conteneur
inspectContext=Inspecter le contexte
k8sClusterNameDescription=Le nom du contexte dans lequel se trouve le cluster.
pod=Cosse
podName=Nom du pod

View file

@ -152,6 +152,7 @@ shells=Gusci disponibili
startContainer=Contenitore iniziale
stopContainer=Contenitore di arresto
inspectContainer=Ispezionare il contenitore
inspectContext=Ispezionare il contesto
k8sClusterNameDescription=Il nome del contesto in cui si trova il cluster.
pod=Pod
podName=Nome del pod

View file

@ -152,6 +152,7 @@ shells=利用可能なシェル
startContainer=スタートコンテナ
stopContainer=停止コンテナ
inspectContainer=コンテナを検査する
inspectContext=コンテキストを検査する
k8sClusterNameDescription=クラスタが存在するコンテキストの名前。
pod=ポッド
podName=ポッド名

View file

@ -152,6 +152,7 @@ shells=Beschikbare schelpen
startContainer=Start container
stopContainer=Stopcontainer
inspectContainer=Container inspecteren
inspectContext=Context inspecteren
k8sClusterNameDescription=De naam van de context waarin het cluster zich bevindt.
pod=Pod
podName=Pod naam

View file

@ -152,6 +152,7 @@ shells=Conchas disponíveis
startContainer=Iniciar contentor
stopContainer=Pára o contentor
inspectContainer=Inspecciona o contentor
inspectContext=Inspecionar contexto
k8sClusterNameDescription=O nome do contexto em que o cluster se encontra.
pod=Pod
podName=Nome do pod

View file

@ -152,6 +152,7 @@ shells=Доступные оболочки
startContainer=Стартовый контейнер
stopContainer=Контейнер для остановки
inspectContainer=Осмотрите контейнер
inspectContext=Осмотрите контекст
k8sClusterNameDescription=Название контекста, в котором находится кластер.
pod=Под
podName=Название капсулы

View file

@ -152,6 +152,7 @@ shells=Mevcut kabuklar
startContainer=Konteyneri başlat
stopContainer=Konteyneri durdur
inspectContainer=Konteyneri inceleyin
inspectContext=Bağlamı inceleyin
k8sClusterNameDescription=Kümenin içinde bulunduğu bağlamın adı.
pod=Pod
podName=Bölme adı

View file

@ -152,6 +152,7 @@ shells=可用外壳
startContainer=启动容器
stopContainer=停止容器
inspectContainer=检查容器
inspectContext=检查上下文
k8sClusterNameDescription=群组所处上下文的名称。
pod=花苞
podName=舱名