mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
feat: discover local ssh server (#921)
This commit is contained in:
4
.github/workflows/analysis.yml
vendored
4
.github/workflows/analysis.yml
vendored
@@ -32,8 +32,10 @@ jobs:
|
||||
path: |
|
||||
${{ env.PUB_CACHE }}
|
||||
~/.pub-cache
|
||||
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
|
||||
.dart_tool/package_config.json
|
||||
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/pubspec.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}-
|
||||
${{ runner.os }}-pub-
|
||||
|
||||
- name: Install dependencies
|
||||
|
||||
408
lib/core/service/ssh_discovery.dart
Normal file
408
lib/core/service/ssh_discovery.dart
Normal file
@@ -0,0 +1,408 @@
|
||||
import 'dart:async';
|
||||
import 'dart:collection';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fl_lib/fl_lib.dart';
|
||||
import 'package:server_box/data/model/server/discovery_result.dart';
|
||||
|
||||
class SshDiscoveryService {
|
||||
static const _sshPort = 22;
|
||||
|
||||
static Future<SshDiscoveryReport> discover([SshDiscoveryConfig config = const SshDiscoveryConfig()]) async {
|
||||
final t0 = DateTime.now();
|
||||
final candidates = <InternetAddress>{};
|
||||
|
||||
// 1) Get neighbors from ARP/NDP tables
|
||||
candidates.addAll(await _neighborsIPv4());
|
||||
candidates.addAll(await _neighborsIPv6());
|
||||
|
||||
// 2) Enumerate small subnets from local interfaces (IPv4 only)
|
||||
final cidrs = await _localIPv4Cidrs();
|
||||
for (final c in cidrs) {
|
||||
if (c.prefix >= 24 && c.prefix <= 30) {
|
||||
candidates.addAll(c.enumerateHosts(limit: config.hostEnumerationLimit));
|
||||
}
|
||||
}
|
||||
|
||||
// 3) Optional: mDNS/Bonjour SSH services
|
||||
if (config.enableMdns) {
|
||||
candidates.addAll(await _mdnsSshCandidates());
|
||||
}
|
||||
|
||||
// Filter out unwanted addresses: loopback, link-local, 0.0.0.0, broadcast, multicast
|
||||
candidates.removeWhere(
|
||||
(a) => a.isLoopback || a.isLinkLocal || a.address == '0.0.0.0' || _isBroadcastOrMulticast(a),
|
||||
);
|
||||
|
||||
// 4) Concurrent SSH port scanning
|
||||
final scanner = _Scanner(
|
||||
timeout: Duration(milliseconds: config.timeoutMs),
|
||||
maxConcurrency: config.maxConcurrency,
|
||||
);
|
||||
|
||||
final results = await scanner.scan(candidates.toList(growable: false));
|
||||
results.sort((a, b) => a.addr.address.compareTo(b.addr.address));
|
||||
|
||||
final discoveryResults = results
|
||||
.map((r) => SshDiscoveryResult(ip: r.addr.address, port: _sshPort, banner: r.banner?.trim()))
|
||||
.toList();
|
||||
|
||||
return SshDiscoveryReport(
|
||||
generatedAt: DateTime.now().toIso8601String(),
|
||||
durationMs: DateTime.now().difference(t0).inMilliseconds,
|
||||
count: discoveryResults.length,
|
||||
items: discoveryResults,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<String?> _run(String exe, List<String> args, {Duration? timeout}) async {
|
||||
try {
|
||||
final p = await Process.start(exe, args, runInShell: false);
|
||||
final out = await p.stdout
|
||||
.transform(utf8.decoder)
|
||||
.join()
|
||||
.timeout(
|
||||
timeout ?? const Duration(seconds: 5),
|
||||
onTimeout: () {
|
||||
p.kill();
|
||||
return '';
|
||||
},
|
||||
);
|
||||
final code = await p.exitCode;
|
||||
if (code == 0) return out;
|
||||
// Some tools return non-zero but still have useful output
|
||||
if (out.trim().isNotEmpty) return out;
|
||||
return null;
|
||||
} catch (_) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static bool get _isLinux => Platform.isLinux;
|
||||
static bool get _isMac => Platform.isMacOS;
|
||||
|
||||
static Future<Set<InternetAddress>> _neighborsIPv4() async {
|
||||
final set = <InternetAddress>{};
|
||||
if (_isLinux) {
|
||||
final s = await _run('ip', ['neigh']);
|
||||
if (s != null) {
|
||||
for (final line in const LineSplitter().convert(s)) {
|
||||
final tok = line.split(RegExp(r'\s+'));
|
||||
if (tok.isNotEmpty) {
|
||||
final ip = tok[0];
|
||||
if (InternetAddress.tryParse(ip)?.type == InternetAddressType.IPv4) {
|
||||
set.add(InternetAddress(ip));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (_isMac) {
|
||||
final s = await _run('/usr/sbin/arp', ['-an']);
|
||||
if (s != null) {
|
||||
int matchCount = 0;
|
||||
for (final line in const LineSplitter().convert(s)) {
|
||||
final m = RegExp(r'\((\d+\.\d+\.\d+\.\d+)\)').firstMatch(line);
|
||||
if (m != null) {
|
||||
set.add(InternetAddress(m.group(1)!));
|
||||
matchCount++;
|
||||
}
|
||||
}
|
||||
if (matchCount == 0) {
|
||||
lprint(
|
||||
'[ssh_discovery] Warning: No ARP entries parsed on macOS. Output may be unexpected or localized. Output sample: ${s.length > 100 ? '${s.substring(0, 100)}...' : s}',
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
||||
static Future<Set<InternetAddress>> _neighborsIPv6() async {
|
||||
final set = <InternetAddress>{};
|
||||
if (_isLinux) {
|
||||
final s = await _run('ip', ['-6', 'neigh']);
|
||||
if (s != null) {
|
||||
for (final line in const LineSplitter().convert(s)) {
|
||||
final ip = line.split(RegExp(r'\s+')).firstOrNull;
|
||||
if (ip != null && InternetAddress.tryParse(ip)?.type == InternetAddressType.IPv6) {
|
||||
set.add(InternetAddress(ip));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (_isMac) {
|
||||
final s = await _run('/usr/sbin/ndp', ['-a']);
|
||||
if (s != null) {
|
||||
for (final line in const LineSplitter().convert(s)) {
|
||||
final ip = line.trim().split(RegExp(r'\s+')).firstOrNull;
|
||||
if (ip != null && InternetAddress.tryParse(ip)?.type == InternetAddressType.IPv6) {
|
||||
set.add(InternetAddress(ip));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
||||
static Future<List<_Cidr>> _localIPv4Cidrs() async {
|
||||
final res = <_Cidr>[];
|
||||
if (_isLinux) {
|
||||
final s = await _run('ip', ['-o', '-4', 'addr', 'show', 'scope', 'global']);
|
||||
if (s != null) {
|
||||
for (final line in const LineSplitter().convert(s)) {
|
||||
final m = RegExp(r'inet\s+(\d+\.\d+\.\d+\.\d+)\/(\d+)').firstMatch(line);
|
||||
if (m != null) {
|
||||
final ip = InternetAddress(m.group(1)!);
|
||||
final prefix = int.parse(m.group(2)!);
|
||||
final mask = _prefixToMask(prefix);
|
||||
final net = _networkAddress(ip, mask);
|
||||
final brd = _broadcastAddress(ip, mask);
|
||||
res.add(_Cidr(ip, prefix, mask, net, brd));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (_isMac) {
|
||||
final s = await _run('/sbin/ifconfig', []);
|
||||
if (s != null) {
|
||||
for (final raw in const LineSplitter().convert(s)) {
|
||||
final line = raw.trimRight();
|
||||
final ifMatch = RegExp(r'^([a-z0-9]+):').firstMatch(line);
|
||||
if (ifMatch != null) {
|
||||
continue;
|
||||
}
|
||||
if (line.contains('inet ') && !line.contains('127.0.0.1')) {
|
||||
try {
|
||||
final ipm = RegExp(
|
||||
r'inet\s+(\d+\.\d+\.\d+\.\d+)\s+netmask\s+0x([0-9a-fA-F]+)(?:\s+broadcast\s+(\d+\.\d+\.\d+\.\d+))?',
|
||||
).firstMatch(line);
|
||||
if (ipm == null) {
|
||||
// Log unexpected format but continue processing other lines
|
||||
lprint('[ssh_discovery] Warning: Unexpected ifconfig line format: $line');
|
||||
continue;
|
||||
}
|
||||
final ip = InternetAddress(ipm.group(1)!);
|
||||
final hexMask = int.parse(ipm.group(2)!, radix: 16);
|
||||
final dotted =
|
||||
'${(hexMask >> 24) & 0xff}.${(hexMask >> 16) & 0xff}.${(hexMask >> 8) & 0xff}.${hexMask & 0xff}';
|
||||
final mask = InternetAddress(dotted);
|
||||
final prefix = _maskToPrefix(mask.address);
|
||||
final net = _networkAddress(ip, mask);
|
||||
final brd = InternetAddress(ipm.group(3) ?? _broadcastAddress(ip, mask).address);
|
||||
res.add(_Cidr(ip, prefix, mask, net, brd));
|
||||
} catch (e) {
|
||||
lprint('[ssh_discovery] Error parsing ifconfig output: $e, line: $line');
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
static bool _isBroadcastOrMulticast(InternetAddress a) {
|
||||
// IPv4 broadcast: ends with .255 or is 255.255.255.255
|
||||
if (a.type == InternetAddressType.IPv4) {
|
||||
if (a.address == '255.255.255.255') return true;
|
||||
if (a.address.split('.').last == '255') return true;
|
||||
// Multicast: 224.0.0.0 - 239.255.255.255
|
||||
final firstOctet = int.tryParse(a.address.split('.').first) ?? 0;
|
||||
if (firstOctet >= 224 && firstOctet <= 239) return true;
|
||||
} else if (a.type == InternetAddressType.IPv6) {
|
||||
// IPv6 multicast: starts with ff
|
||||
if (a.address.toLowerCase().startsWith('ff')) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static Future<Set<InternetAddress>> _mdnsSshCandidates() async {
|
||||
final set = <InternetAddress>{};
|
||||
if (_isMac) {
|
||||
try {
|
||||
final proc = await Process.start('/usr/bin/dns-sd', ['-B', '_ssh._tcp']);
|
||||
final lines = <String>[];
|
||||
final subscription = proc.stdout
|
||||
.transform(utf8.decoder)
|
||||
.transform(const LineSplitter())
|
||||
.listen(lines.add);
|
||||
await Future<void>.delayed(const Duration(seconds: 2));
|
||||
proc.kill();
|
||||
await subscription.cancel();
|
||||
|
||||
for (final l in lines) {
|
||||
final m = RegExp(r'Add\s+\d+\s+(\S+)\.\s+_ssh\._tcp\.').firstMatch(l);
|
||||
if (m != null) {
|
||||
final name = m.group(1)!;
|
||||
final det = await _run('/usr/bin/dns-sd', [
|
||||
'-L',
|
||||
name,
|
||||
'_ssh._tcp',
|
||||
'local.',
|
||||
], timeout: const Duration(seconds: 3));
|
||||
if (det != null) {
|
||||
for (final ip in RegExp(
|
||||
r'Address\s*=\s*([0-9a-fA-F:\.]+)',
|
||||
).allMatches(det).map((e) => e.group(1)!)) {
|
||||
final parsed = InternetAddress.tryParse(ip);
|
||||
if (parsed != null) set.add(parsed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (_) {}
|
||||
} else if (_isLinux) {
|
||||
final s = await _run('/usr/bin/avahi-browse', ['-rat', '_ssh._tcp']);
|
||||
if (s != null) {
|
||||
for (final ip in RegExp(
|
||||
r'address = \[(.*?)\]',
|
||||
).allMatches(s).map((m) => m.group(1)!).where((e) => e.isNotEmpty)) {
|
||||
final parsed = InternetAddress.tryParse(ip);
|
||||
if (parsed != null) set.add(parsed);
|
||||
}
|
||||
}
|
||||
}
|
||||
return set;
|
||||
}
|
||||
}
|
||||
|
||||
class _Cidr {
|
||||
final InternetAddress ip;
|
||||
final int prefix;
|
||||
final InternetAddress netmask;
|
||||
final InternetAddress network;
|
||||
final InternetAddress broadcast;
|
||||
|
||||
_Cidr(this.ip, this.prefix, this.netmask, this.network, this.broadcast);
|
||||
|
||||
Iterable<InternetAddress> enumerateHosts({int? limit}) sync* {
|
||||
final n = _ipv4ToInt(network.address);
|
||||
final b = _ipv4ToInt(broadcast.address);
|
||||
int emitted = 0;
|
||||
for (int v = n + 1; v <= b - 1; v++) {
|
||||
if (limit != null && emitted >= limit) break;
|
||||
emitted++;
|
||||
yield InternetAddress(_intToIPv4(v));
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() => '${network.address}/$prefix';
|
||||
}
|
||||
|
||||
class _ScanResult {
|
||||
final InternetAddress addr;
|
||||
final String? banner;
|
||||
_ScanResult(this.addr, this.banner);
|
||||
}
|
||||
|
||||
class _Scanner {
|
||||
final Duration timeout;
|
||||
final int maxConcurrency;
|
||||
_Scanner({required this.timeout, required this.maxConcurrency});
|
||||
|
||||
Future<List<_ScanResult>> scan(List<InternetAddress> addrs) async {
|
||||
final sem = _Semaphore(maxConcurrency);
|
||||
final futures = <Future<_ScanResult?>>[];
|
||||
for (final a in addrs) {
|
||||
futures.add(_guarded(sem, () => _probeSsh(a)));
|
||||
}
|
||||
final out = await Future.wait(futures);
|
||||
return out.whereType<_ScanResult>().toList();
|
||||
}
|
||||
|
||||
Future<_ScanResult?> _probeSsh(InternetAddress ip) async {
|
||||
Socket? socket;
|
||||
StreamSubscription? sub;
|
||||
try {
|
||||
socket = await Socket.connect(ip, SshDiscoveryService._sshPort, timeout: timeout);
|
||||
socket.timeout(timeout);
|
||||
final c = Completer<String?>();
|
||||
sub = socket.listen(
|
||||
(data) {
|
||||
final s = utf8.decode(data, allowMalformed: true);
|
||||
final line = s.split('\n').firstWhere((_) => true, orElse: () => s);
|
||||
if (!c.isCompleted) {
|
||||
c.complete(line.trim());
|
||||
sub?.cancel();
|
||||
}
|
||||
},
|
||||
onDone: () {
|
||||
if (!c.isCompleted) c.complete(null);
|
||||
},
|
||||
onError: (_) {
|
||||
if (!c.isCompleted) c.complete(null);
|
||||
},
|
||||
);
|
||||
final banner = await c.future.timeout(timeout, onTimeout: () => null);
|
||||
return _ScanResult(ip, banner);
|
||||
} catch (_) {
|
||||
return null;
|
||||
} finally {
|
||||
sub?.cancel();
|
||||
socket?.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class _Semaphore {
|
||||
int _permits;
|
||||
final Queue<Completer<void>> _q = Queue();
|
||||
_Semaphore(this._permits);
|
||||
|
||||
Future<T> withPermit<T>(Future<T> Function() fn) async {
|
||||
if (_permits > 0) {
|
||||
_permits--;
|
||||
try {
|
||||
return await fn();
|
||||
} finally {
|
||||
_permits++;
|
||||
if (_q.isNotEmpty) _q.removeFirst().complete();
|
||||
}
|
||||
} else {
|
||||
final c = Completer<void>();
|
||||
_q.add(c);
|
||||
await c.future;
|
||||
return withPermit(fn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<T> _guarded<T>(_Semaphore sem, Future<T> Function() fn) => sem.withPermit(fn);
|
||||
|
||||
// IPv4 utilities
|
||||
|
||||
int _ipv4ToInt(String ip) {
|
||||
final p = ip.split('.').map(int.parse).toList();
|
||||
return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
|
||||
}
|
||||
|
||||
String _intToIPv4(int v) => '${(v >> 24) & 0xff}.${(v >> 16) & 0xff}.${(v >> 8) & 0xff}.${v & 0xff}';
|
||||
|
||||
InternetAddress _prefixToMask(int prefix) {
|
||||
final mask = prefix == 0 ? 0 : 0xffffffff << (32 - prefix);
|
||||
return InternetAddress(_intToIPv4(mask & 0xffffffff));
|
||||
}
|
||||
|
||||
int _maskToPrefix(String mask) {
|
||||
final v = _ipv4ToInt(mask);
|
||||
int c = 0;
|
||||
for (int i = 31; i >= 0; i--) {
|
||||
if ((v & (1 << i)) != 0) {
|
||||
c++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
InternetAddress _networkAddress(InternetAddress ip, InternetAddress mask) {
|
||||
final v = _ipv4ToInt(ip.address) & _ipv4ToInt(mask.address);
|
||||
return InternetAddress(_intToIPv4(v));
|
||||
}
|
||||
|
||||
InternetAddress _broadcastAddress(InternetAddress ip, InternetAddress mask) {
|
||||
final n = _ipv4ToInt(ip.address) & _ipv4ToInt(mask.address);
|
||||
final b = n | (~_ipv4ToInt(mask.address) & 0xffffffff);
|
||||
return InternetAddress(_intToIPv4(b));
|
||||
}
|
||||
49
lib/data/model/server/discovery_result.dart
Normal file
49
lib/data/model/server/discovery_result.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'discovery_result.freezed.dart';
|
||||
part 'discovery_result.g.dart';
|
||||
|
||||
@freezed
|
||||
abstract class SshDiscoveryResult with _$SshDiscoveryResult {
|
||||
const factory SshDiscoveryResult({
|
||||
required String ip,
|
||||
required int port,
|
||||
String? banner,
|
||||
@Default(false) bool isSelected,
|
||||
}) = _SshDiscoveryResult;
|
||||
|
||||
factory SshDiscoveryResult.fromJson(Map<String, dynamic> json) => _$SshDiscoveryResultFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class SshDiscoveryReport with _$SshDiscoveryReport {
|
||||
const factory SshDiscoveryReport({
|
||||
required String generatedAt,
|
||||
required int durationMs,
|
||||
required int count,
|
||||
required List<SshDiscoveryResult> items,
|
||||
}) = _SshDiscoveryReport;
|
||||
|
||||
factory SshDiscoveryReport.fromJson(Map<String, dynamic> json) => _$SshDiscoveryReportFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class SshDiscoveryConfig with _$SshDiscoveryConfig {
|
||||
const factory SshDiscoveryConfig({
|
||||
@Default(700) int timeoutMs,
|
||||
@Default(128) int maxConcurrency,
|
||||
@Default(false) bool enableMdns,
|
||||
@Default(4096) int hostEnumerationLimit,
|
||||
}) = _SshDiscoveryConfig;
|
||||
}
|
||||
|
||||
extension SshDiscoveryConfigX on SshDiscoveryConfig {
|
||||
List<String> toArgs() {
|
||||
final args = <String>[];
|
||||
args.add('--timeout-ms=$timeoutMs');
|
||||
args.add('--max-concurrency=$maxConcurrency');
|
||||
args.add('--host-enumeration-limit=$hostEnumerationLimit');
|
||||
if (enableMdns) args.add('--enable-mdns');
|
||||
return args;
|
||||
}
|
||||
}
|
||||
830
lib/data/model/server/discovery_result.freezed.dart
Normal file
830
lib/data/model/server/discovery_result.freezed.dart
Normal file
@@ -0,0 +1,830 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||
|
||||
part of 'discovery_result.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// dart format off
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
/// @nodoc
|
||||
mixin _$SshDiscoveryResult {
|
||||
|
||||
String get ip; int get port; String? get banner; bool get isSelected;
|
||||
/// Create a copy of SshDiscoveryResult
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$SshDiscoveryResultCopyWith<SshDiscoveryResult> get copyWith => _$SshDiscoveryResultCopyWithImpl<SshDiscoveryResult>(this as SshDiscoveryResult, _$identity);
|
||||
|
||||
/// Serializes this SshDiscoveryResult to a JSON map.
|
||||
Map<String, dynamic> toJson();
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is SshDiscoveryResult&&(identical(other.ip, ip) || other.ip == ip)&&(identical(other.port, port) || other.port == port)&&(identical(other.banner, banner) || other.banner == banner)&&(identical(other.isSelected, isSelected) || other.isSelected == isSelected));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,ip,port,banner,isSelected);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryResult(ip: $ip, port: $port, banner: $banner, isSelected: $isSelected)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $SshDiscoveryResultCopyWith<$Res> {
|
||||
factory $SshDiscoveryResultCopyWith(SshDiscoveryResult value, $Res Function(SshDiscoveryResult) _then) = _$SshDiscoveryResultCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
String ip, int port, String? banner, bool isSelected
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$SshDiscoveryResultCopyWithImpl<$Res>
|
||||
implements $SshDiscoveryResultCopyWith<$Res> {
|
||||
_$SshDiscoveryResultCopyWithImpl(this._self, this._then);
|
||||
|
||||
final SshDiscoveryResult _self;
|
||||
final $Res Function(SshDiscoveryResult) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryResult
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') @override $Res call({Object? ip = null,Object? port = null,Object? banner = freezed,Object? isSelected = null,}) {
|
||||
return _then(_self.copyWith(
|
||||
ip: null == ip ? _self.ip : ip // ignore: cast_nullable_to_non_nullable
|
||||
as String,port: null == port ? _self.port : port // ignore: cast_nullable_to_non_nullable
|
||||
as int,banner: freezed == banner ? _self.banner : banner // ignore: cast_nullable_to_non_nullable
|
||||
as String?,isSelected: null == isSelected ? _self.isSelected : isSelected // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [SshDiscoveryResult].
|
||||
extension SshDiscoveryResultPatterns on SshDiscoveryResult {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _SshDiscoveryResult value)? $default,{required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _SshDiscoveryResult value) $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult():
|
||||
return $default(_that);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _SshDiscoveryResult value)? $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String ip, int port, String? banner, bool isSelected)? $default,{required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult() when $default != null:
|
||||
return $default(_that.ip,_that.port,_that.banner,_that.isSelected);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String ip, int port, String? banner, bool isSelected) $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult():
|
||||
return $default(_that.ip,_that.port,_that.banner,_that.isSelected);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String ip, int port, String? banner, bool isSelected)? $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryResult() when $default != null:
|
||||
return $default(_that.ip,_that.port,_that.banner,_that.isSelected);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
|
||||
class _SshDiscoveryResult implements SshDiscoveryResult {
|
||||
const _SshDiscoveryResult({required this.ip, required this.port, this.banner, this.isSelected = false});
|
||||
factory _SshDiscoveryResult.fromJson(Map<String, dynamic> json) => _$SshDiscoveryResultFromJson(json);
|
||||
|
||||
@override final String ip;
|
||||
@override final int port;
|
||||
@override final String? banner;
|
||||
@override@JsonKey() final bool isSelected;
|
||||
|
||||
/// Create a copy of SshDiscoveryResult
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
_$SshDiscoveryResultCopyWith<_SshDiscoveryResult> get copyWith => __$SshDiscoveryResultCopyWithImpl<_SshDiscoveryResult>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$SshDiscoveryResultToJson(this, );
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _SshDiscoveryResult&&(identical(other.ip, ip) || other.ip == ip)&&(identical(other.port, port) || other.port == port)&&(identical(other.banner, banner) || other.banner == banner)&&(identical(other.isSelected, isSelected) || other.isSelected == isSelected));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,ip,port,banner,isSelected);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryResult(ip: $ip, port: $port, banner: $banner, isSelected: $isSelected)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class _$SshDiscoveryResultCopyWith<$Res> implements $SshDiscoveryResultCopyWith<$Res> {
|
||||
factory _$SshDiscoveryResultCopyWith(_SshDiscoveryResult value, $Res Function(_SshDiscoveryResult) _then) = __$SshDiscoveryResultCopyWithImpl;
|
||||
@override @useResult
|
||||
$Res call({
|
||||
String ip, int port, String? banner, bool isSelected
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class __$SshDiscoveryResultCopyWithImpl<$Res>
|
||||
implements _$SshDiscoveryResultCopyWith<$Res> {
|
||||
__$SshDiscoveryResultCopyWithImpl(this._self, this._then);
|
||||
|
||||
final _SshDiscoveryResult _self;
|
||||
final $Res Function(_SshDiscoveryResult) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryResult
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @pragma('vm:prefer-inline') $Res call({Object? ip = null,Object? port = null,Object? banner = freezed,Object? isSelected = null,}) {
|
||||
return _then(_SshDiscoveryResult(
|
||||
ip: null == ip ? _self.ip : ip // ignore: cast_nullable_to_non_nullable
|
||||
as String,port: null == port ? _self.port : port // ignore: cast_nullable_to_non_nullable
|
||||
as int,banner: freezed == banner ? _self.banner : banner // ignore: cast_nullable_to_non_nullable
|
||||
as String?,isSelected: null == isSelected ? _self.isSelected : isSelected // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// @nodoc
|
||||
mixin _$SshDiscoveryReport {
|
||||
|
||||
String get generatedAt; int get durationMs; int get count; List<SshDiscoveryResult> get items;
|
||||
/// Create a copy of SshDiscoveryReport
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$SshDiscoveryReportCopyWith<SshDiscoveryReport> get copyWith => _$SshDiscoveryReportCopyWithImpl<SshDiscoveryReport>(this as SshDiscoveryReport, _$identity);
|
||||
|
||||
/// Serializes this SshDiscoveryReport to a JSON map.
|
||||
Map<String, dynamic> toJson();
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is SshDiscoveryReport&&(identical(other.generatedAt, generatedAt) || other.generatedAt == generatedAt)&&(identical(other.durationMs, durationMs) || other.durationMs == durationMs)&&(identical(other.count, count) || other.count == count)&&const DeepCollectionEquality().equals(other.items, items));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,generatedAt,durationMs,count,const DeepCollectionEquality().hash(items));
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryReport(generatedAt: $generatedAt, durationMs: $durationMs, count: $count, items: $items)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $SshDiscoveryReportCopyWith<$Res> {
|
||||
factory $SshDiscoveryReportCopyWith(SshDiscoveryReport value, $Res Function(SshDiscoveryReport) _then) = _$SshDiscoveryReportCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
String generatedAt, int durationMs, int count, List<SshDiscoveryResult> items
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$SshDiscoveryReportCopyWithImpl<$Res>
|
||||
implements $SshDiscoveryReportCopyWith<$Res> {
|
||||
_$SshDiscoveryReportCopyWithImpl(this._self, this._then);
|
||||
|
||||
final SshDiscoveryReport _self;
|
||||
final $Res Function(SshDiscoveryReport) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryReport
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') @override $Res call({Object? generatedAt = null,Object? durationMs = null,Object? count = null,Object? items = null,}) {
|
||||
return _then(_self.copyWith(
|
||||
generatedAt: null == generatedAt ? _self.generatedAt : generatedAt // ignore: cast_nullable_to_non_nullable
|
||||
as String,durationMs: null == durationMs ? _self.durationMs : durationMs // ignore: cast_nullable_to_non_nullable
|
||||
as int,count: null == count ? _self.count : count // ignore: cast_nullable_to_non_nullable
|
||||
as int,items: null == items ? _self.items : items // ignore: cast_nullable_to_non_nullable
|
||||
as List<SshDiscoveryResult>,
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [SshDiscoveryReport].
|
||||
extension SshDiscoveryReportPatterns on SshDiscoveryReport {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _SshDiscoveryReport value)? $default,{required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _SshDiscoveryReport value) $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport():
|
||||
return $default(_that);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _SshDiscoveryReport value)? $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String generatedAt, int durationMs, int count, List<SshDiscoveryResult> items)? $default,{required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport() when $default != null:
|
||||
return $default(_that.generatedAt,_that.durationMs,_that.count,_that.items);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String generatedAt, int durationMs, int count, List<SshDiscoveryResult> items) $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport():
|
||||
return $default(_that.generatedAt,_that.durationMs,_that.count,_that.items);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String generatedAt, int durationMs, int count, List<SshDiscoveryResult> items)? $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryReport() when $default != null:
|
||||
return $default(_that.generatedAt,_that.durationMs,_that.count,_that.items);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
|
||||
class _SshDiscoveryReport implements SshDiscoveryReport {
|
||||
const _SshDiscoveryReport({required this.generatedAt, required this.durationMs, required this.count, required final List<SshDiscoveryResult> items}): _items = items;
|
||||
factory _SshDiscoveryReport.fromJson(Map<String, dynamic> json) => _$SshDiscoveryReportFromJson(json);
|
||||
|
||||
@override final String generatedAt;
|
||||
@override final int durationMs;
|
||||
@override final int count;
|
||||
final List<SshDiscoveryResult> _items;
|
||||
@override List<SshDiscoveryResult> get items {
|
||||
if (_items is EqualUnmodifiableListView) return _items;
|
||||
// ignore: implicit_dynamic_type
|
||||
return EqualUnmodifiableListView(_items);
|
||||
}
|
||||
|
||||
|
||||
/// Create a copy of SshDiscoveryReport
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
_$SshDiscoveryReportCopyWith<_SshDiscoveryReport> get copyWith => __$SshDiscoveryReportCopyWithImpl<_SshDiscoveryReport>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$SshDiscoveryReportToJson(this, );
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _SshDiscoveryReport&&(identical(other.generatedAt, generatedAt) || other.generatedAt == generatedAt)&&(identical(other.durationMs, durationMs) || other.durationMs == durationMs)&&(identical(other.count, count) || other.count == count)&&const DeepCollectionEquality().equals(other._items, _items));
|
||||
}
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,generatedAt,durationMs,count,const DeepCollectionEquality().hash(_items));
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryReport(generatedAt: $generatedAt, durationMs: $durationMs, count: $count, items: $items)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class _$SshDiscoveryReportCopyWith<$Res> implements $SshDiscoveryReportCopyWith<$Res> {
|
||||
factory _$SshDiscoveryReportCopyWith(_SshDiscoveryReport value, $Res Function(_SshDiscoveryReport) _then) = __$SshDiscoveryReportCopyWithImpl;
|
||||
@override @useResult
|
||||
$Res call({
|
||||
String generatedAt, int durationMs, int count, List<SshDiscoveryResult> items
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class __$SshDiscoveryReportCopyWithImpl<$Res>
|
||||
implements _$SshDiscoveryReportCopyWith<$Res> {
|
||||
__$SshDiscoveryReportCopyWithImpl(this._self, this._then);
|
||||
|
||||
final _SshDiscoveryReport _self;
|
||||
final $Res Function(_SshDiscoveryReport) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryReport
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @pragma('vm:prefer-inline') $Res call({Object? generatedAt = null,Object? durationMs = null,Object? count = null,Object? items = null,}) {
|
||||
return _then(_SshDiscoveryReport(
|
||||
generatedAt: null == generatedAt ? _self.generatedAt : generatedAt // ignore: cast_nullable_to_non_nullable
|
||||
as String,durationMs: null == durationMs ? _self.durationMs : durationMs // ignore: cast_nullable_to_non_nullable
|
||||
as int,count: null == count ? _self.count : count // ignore: cast_nullable_to_non_nullable
|
||||
as int,items: null == items ? _self._items : items // ignore: cast_nullable_to_non_nullable
|
||||
as List<SshDiscoveryResult>,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$SshDiscoveryConfig {
|
||||
|
||||
int get timeoutMs; int get maxConcurrency; bool get enableMdns; int get hostEnumerationLimit;
|
||||
/// Create a copy of SshDiscoveryConfig
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$SshDiscoveryConfigCopyWith<SshDiscoveryConfig> get copyWith => _$SshDiscoveryConfigCopyWithImpl<SshDiscoveryConfig>(this as SshDiscoveryConfig, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is SshDiscoveryConfig&&(identical(other.timeoutMs, timeoutMs) || other.timeoutMs == timeoutMs)&&(identical(other.maxConcurrency, maxConcurrency) || other.maxConcurrency == maxConcurrency)&&(identical(other.enableMdns, enableMdns) || other.enableMdns == enableMdns)&&(identical(other.hostEnumerationLimit, hostEnumerationLimit) || other.hostEnumerationLimit == hostEnumerationLimit));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,timeoutMs,maxConcurrency,enableMdns,hostEnumerationLimit);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryConfig(timeoutMs: $timeoutMs, maxConcurrency: $maxConcurrency, enableMdns: $enableMdns, hostEnumerationLimit: $hostEnumerationLimit)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $SshDiscoveryConfigCopyWith<$Res> {
|
||||
factory $SshDiscoveryConfigCopyWith(SshDiscoveryConfig value, $Res Function(SshDiscoveryConfig) _then) = _$SshDiscoveryConfigCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
int timeoutMs, int maxConcurrency, bool enableMdns, int hostEnumerationLimit
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$SshDiscoveryConfigCopyWithImpl<$Res>
|
||||
implements $SshDiscoveryConfigCopyWith<$Res> {
|
||||
_$SshDiscoveryConfigCopyWithImpl(this._self, this._then);
|
||||
|
||||
final SshDiscoveryConfig _self;
|
||||
final $Res Function(SshDiscoveryConfig) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryConfig
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') @override $Res call({Object? timeoutMs = null,Object? maxConcurrency = null,Object? enableMdns = null,Object? hostEnumerationLimit = null,}) {
|
||||
return _then(_self.copyWith(
|
||||
timeoutMs: null == timeoutMs ? _self.timeoutMs : timeoutMs // ignore: cast_nullable_to_non_nullable
|
||||
as int,maxConcurrency: null == maxConcurrency ? _self.maxConcurrency : maxConcurrency // ignore: cast_nullable_to_non_nullable
|
||||
as int,enableMdns: null == enableMdns ? _self.enableMdns : enableMdns // ignore: cast_nullable_to_non_nullable
|
||||
as bool,hostEnumerationLimit: null == hostEnumerationLimit ? _self.hostEnumerationLimit : hostEnumerationLimit // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [SshDiscoveryConfig].
|
||||
extension SshDiscoveryConfigPatterns on SshDiscoveryConfig {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _SshDiscoveryConfig value)? $default,{required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _SshDiscoveryConfig value) $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig():
|
||||
return $default(_that);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _SshDiscoveryConfig value)? $default,){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig() when $default != null:
|
||||
return $default(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( int timeoutMs, int maxConcurrency, bool enableMdns, int hostEnumerationLimit)? $default,{required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig() when $default != null:
|
||||
return $default(_that.timeoutMs,_that.maxConcurrency,_that.enableMdns,_that.hostEnumerationLimit);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( int timeoutMs, int maxConcurrency, bool enableMdns, int hostEnumerationLimit) $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig():
|
||||
return $default(_that.timeoutMs,_that.maxConcurrency,_that.enableMdns,_that.hostEnumerationLimit);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( int timeoutMs, int maxConcurrency, bool enableMdns, int hostEnumerationLimit)? $default,) {final _that = this;
|
||||
switch (_that) {
|
||||
case _SshDiscoveryConfig() when $default != null:
|
||||
return $default(_that.timeoutMs,_that.maxConcurrency,_that.enableMdns,_that.hostEnumerationLimit);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class _SshDiscoveryConfig implements SshDiscoveryConfig {
|
||||
const _SshDiscoveryConfig({this.timeoutMs = 700, this.maxConcurrency = 128, this.enableMdns = false, this.hostEnumerationLimit = 4096});
|
||||
|
||||
|
||||
@override@JsonKey() final int timeoutMs;
|
||||
@override@JsonKey() final int maxConcurrency;
|
||||
@override@JsonKey() final bool enableMdns;
|
||||
@override@JsonKey() final int hostEnumerationLimit;
|
||||
|
||||
/// Create a copy of SshDiscoveryConfig
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
_$SshDiscoveryConfigCopyWith<_SshDiscoveryConfig> get copyWith => __$SshDiscoveryConfigCopyWithImpl<_SshDiscoveryConfig>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _SshDiscoveryConfig&&(identical(other.timeoutMs, timeoutMs) || other.timeoutMs == timeoutMs)&&(identical(other.maxConcurrency, maxConcurrency) || other.maxConcurrency == maxConcurrency)&&(identical(other.enableMdns, enableMdns) || other.enableMdns == enableMdns)&&(identical(other.hostEnumerationLimit, hostEnumerationLimit) || other.hostEnumerationLimit == hostEnumerationLimit));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,timeoutMs,maxConcurrency,enableMdns,hostEnumerationLimit);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SshDiscoveryConfig(timeoutMs: $timeoutMs, maxConcurrency: $maxConcurrency, enableMdns: $enableMdns, hostEnumerationLimit: $hostEnumerationLimit)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class _$SshDiscoveryConfigCopyWith<$Res> implements $SshDiscoveryConfigCopyWith<$Res> {
|
||||
factory _$SshDiscoveryConfigCopyWith(_SshDiscoveryConfig value, $Res Function(_SshDiscoveryConfig) _then) = __$SshDiscoveryConfigCopyWithImpl;
|
||||
@override @useResult
|
||||
$Res call({
|
||||
int timeoutMs, int maxConcurrency, bool enableMdns, int hostEnumerationLimit
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class __$SshDiscoveryConfigCopyWithImpl<$Res>
|
||||
implements _$SshDiscoveryConfigCopyWith<$Res> {
|
||||
__$SshDiscoveryConfigCopyWithImpl(this._self, this._then);
|
||||
|
||||
final _SshDiscoveryConfig _self;
|
||||
final $Res Function(_SshDiscoveryConfig) _then;
|
||||
|
||||
/// Create a copy of SshDiscoveryConfig
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @pragma('vm:prefer-inline') $Res call({Object? timeoutMs = null,Object? maxConcurrency = null,Object? enableMdns = null,Object? hostEnumerationLimit = null,}) {
|
||||
return _then(_SshDiscoveryConfig(
|
||||
timeoutMs: null == timeoutMs ? _self.timeoutMs : timeoutMs // ignore: cast_nullable_to_non_nullable
|
||||
as int,maxConcurrency: null == maxConcurrency ? _self.maxConcurrency : maxConcurrency // ignore: cast_nullable_to_non_nullable
|
||||
as int,enableMdns: null == enableMdns ? _self.enableMdns : enableMdns // ignore: cast_nullable_to_non_nullable
|
||||
as bool,hostEnumerationLimit: null == hostEnumerationLimit ? _self.hostEnumerationLimit : hostEnumerationLimit // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// dart format on
|
||||
41
lib/data/model/server/discovery_result.g.dart
Normal file
41
lib/data/model/server/discovery_result.g.dart
Normal file
@@ -0,0 +1,41 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'discovery_result.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_SshDiscoveryResult _$SshDiscoveryResultFromJson(Map<String, dynamic> json) =>
|
||||
_SshDiscoveryResult(
|
||||
ip: json['ip'] as String,
|
||||
port: (json['port'] as num).toInt(),
|
||||
banner: json['banner'] as String?,
|
||||
isSelected: json['isSelected'] as bool? ?? false,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$SshDiscoveryResultToJson(_SshDiscoveryResult instance) =>
|
||||
<String, dynamic>{
|
||||
'ip': instance.ip,
|
||||
'port': instance.port,
|
||||
'banner': instance.banner,
|
||||
'isSelected': instance.isSelected,
|
||||
};
|
||||
|
||||
_SshDiscoveryReport _$SshDiscoveryReportFromJson(Map<String, dynamic> json) =>
|
||||
_SshDiscoveryReport(
|
||||
generatedAt: json['generatedAt'] as String,
|
||||
durationMs: (json['durationMs'] as num).toInt(),
|
||||
count: (json['count'] as num).toInt(),
|
||||
items: (json['items'] as List<dynamic>)
|
||||
.map((e) => SshDiscoveryResult.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$SshDiscoveryReportToJson(_SshDiscoveryReport instance) =>
|
||||
<String, dynamic>{
|
||||
'generatedAt': instance.generatedAt,
|
||||
'durationMs': instance.durationMs,
|
||||
'count': instance.count,
|
||||
'items': instance.items,
|
||||
};
|
||||
@@ -6,7 +6,7 @@ part of 'single.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$serverNotifierHash() => r'524647748cc3810c17e5c1cd29e360f3936f5014';
|
||||
String _$serverNotifierHash() => r'd9724fbe6d132f2e2ea4dfa5af73aeab168e1c57';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
@@ -29,8 +29,7 @@ class _SystemHash {
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _$ServerNotifier
|
||||
extends BuildlessAutoDisposeNotifier<ServerState> {
|
||||
abstract class _$ServerNotifier extends BuildlessNotifier<ServerState> {
|
||||
late final String serverId;
|
||||
|
||||
ServerState build(String serverId);
|
||||
@@ -74,7 +73,7 @@ class ServerNotifierFamily extends Family<ServerState> {
|
||||
|
||||
/// See also [ServerNotifier].
|
||||
class ServerNotifierProvider
|
||||
extends AutoDisposeNotifierProviderImpl<ServerNotifier, ServerState> {
|
||||
extends NotifierProviderImpl<ServerNotifier, ServerState> {
|
||||
/// See also [ServerNotifier].
|
||||
ServerNotifierProvider(String serverId)
|
||||
: this._internal(
|
||||
@@ -124,8 +123,7 @@ class ServerNotifierProvider
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeNotifierProviderElement<ServerNotifier, ServerState>
|
||||
createElement() {
|
||||
NotifierProviderElement<ServerNotifier, ServerState> createElement() {
|
||||
return _ServerNotifierProviderElement(this);
|
||||
}
|
||||
|
||||
@@ -145,13 +143,13 @@ class ServerNotifierProvider
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin ServerNotifierRef on AutoDisposeNotifierProviderRef<ServerState> {
|
||||
mixin ServerNotifierRef on NotifierProviderRef<ServerState> {
|
||||
/// The parameter `serverId` of this provider.
|
||||
String get serverId;
|
||||
}
|
||||
|
||||
class _ServerNotifierProviderElement
|
||||
extends AutoDisposeNotifierProviderElement<ServerNotifier, ServerState>
|
||||
extends NotifierProviderElement<ServerNotifier, ServerState>
|
||||
with ServerNotifierRef {
|
||||
_ServerNotifierProviderElement(super.provider);
|
||||
|
||||
|
||||
@@ -155,6 +155,12 @@ abstract class AppLocalizations {
|
||||
/// **'Already in last directory.'**
|
||||
String get alreadyLastDir;
|
||||
|
||||
/// No description provided for @atLeastOneTab.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'At least one tab must be selected'**
|
||||
String get atLeastOneTab;
|
||||
|
||||
/// No description provided for @authFailTip.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -185,6 +191,12 @@ abstract class AppLocalizations {
|
||||
/// **'Automatic home widget update'**
|
||||
String get autoUpdateHomeWidget;
|
||||
|
||||
/// No description provided for @availableTabs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Available Tabs'**
|
||||
String get availableTabs;
|
||||
|
||||
/// No description provided for @backupEncrypted.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -257,6 +269,36 @@ abstract class AppLocalizations {
|
||||
/// **'This switch only means the program will try to run in the background. Whether it can run in the background depends on whether the permission is enabled or not. For AOSP-based Android ROMs, please disable \"Battery Optimization\" in this app. For MIUI / HyperOS, please change the power saving policy to \"Unlimited\".'**
|
||||
String get bgRunTip;
|
||||
|
||||
/// No description provided for @clearAllStatsContent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to clear all server connection statistics? This action cannot be undone.'**
|
||||
String get clearAllStatsContent;
|
||||
|
||||
/// No description provided for @clearAllStatsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear All Statistics'**
|
||||
String get clearAllStatsTitle;
|
||||
|
||||
/// No description provided for @clearServerStatsContent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to clear connection statistics for server \"{serverName}\"? This action cannot be undone.'**
|
||||
String clearServerStatsContent(String serverName);
|
||||
|
||||
/// No description provided for @clearServerStatsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear {serverName} Statistics'**
|
||||
String clearServerStatsTitle(String serverName);
|
||||
|
||||
/// No description provided for @clearThisServerStats.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear This Server Statistics'**
|
||||
String get clearThisServerStats;
|
||||
|
||||
/// No description provided for @closeAfterSave.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -281,6 +323,24 @@ abstract class AppLocalizations {
|
||||
/// **'Connection'**
|
||||
String get conn;
|
||||
|
||||
/// No description provided for @connectionDetails.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connection Details'**
|
||||
String get connectionDetails;
|
||||
|
||||
/// No description provided for @connectionStats.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connection Statistics'**
|
||||
String get connectionStats;
|
||||
|
||||
/// No description provided for @connectionStatsDesc.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View server connection success rate and history'**
|
||||
String get connectionStatsDesc;
|
||||
|
||||
/// No description provided for @container.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -371,6 +431,30 @@ abstract class AppLocalizations {
|
||||
/// **'Disconnected'**
|
||||
String get disconnected;
|
||||
|
||||
/// No description provided for @discoverSshServers.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discover SSH Servers'**
|
||||
String get discoverSshServers;
|
||||
|
||||
/// No description provided for @discoveryFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discovery failed'**
|
||||
String get discoveryFailed;
|
||||
|
||||
/// No description provided for @discoverySettings.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discovery Settings'**
|
||||
String get discoverySettings;
|
||||
|
||||
/// No description provided for @discoverySummary.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discovery Summary'**
|
||||
String get discoverySummary;
|
||||
|
||||
/// No description provided for @disk.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -452,12 +536,6 @@ abstract class AppLocalizations {
|
||||
/// **'Edit virtual keys'**
|
||||
String get editVirtKeys;
|
||||
|
||||
/// No description provided for @editor.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Editor'**
|
||||
String get editor;
|
||||
|
||||
/// No description provided for @editorHighlightTip.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -470,6 +548,18 @@ abstract class AppLocalizations {
|
||||
/// **'Emulator'**
|
||||
String get emulator;
|
||||
|
||||
/// No description provided for @enableMdns.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enable mDNS'**
|
||||
String get enableMdns;
|
||||
|
||||
/// No description provided for @enableMdnsDesc.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use mDNS/Bonjour to discover SSH services'**
|
||||
String get enableMdnsDesc;
|
||||
|
||||
/// No description provided for @encode.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -524,18 +614,18 @@ abstract class AppLocalizations {
|
||||
/// **'File \'{file}\' too large {size}, max {sizeMax}'**
|
||||
String fileTooLarge(Object file, Object size, Object sizeMax);
|
||||
|
||||
/// No description provided for @finishedAt.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Finished at'**
|
||||
String get finishedAt;
|
||||
|
||||
/// No description provided for @followSystem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Follow system'**
|
||||
String get followSystem;
|
||||
|
||||
/// No description provided for @font.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Font'**
|
||||
String get font;
|
||||
|
||||
/// No description provided for @fontSize.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -596,6 +686,18 @@ abstract class AppLocalizations {
|
||||
/// **'Code highlighting'**
|
||||
String get highlight;
|
||||
|
||||
/// No description provided for @homeTabs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Home Tabs'**
|
||||
String get homeTabs;
|
||||
|
||||
/// No description provided for @homeTabsCustomizeDesc.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Customize which tabs appear on the home page and their order'**
|
||||
String get homeTabsCustomizeDesc;
|
||||
|
||||
/// No description provided for @homeWidgetUrlConfig.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -632,12 +734,6 @@ abstract class AppLocalizations {
|
||||
/// **'Images list'**
|
||||
String get imagesList;
|
||||
|
||||
/// No description provided for @init.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Initialize'**
|
||||
String get init;
|
||||
|
||||
/// No description provided for @inner.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -692,6 +788,18 @@ abstract class AppLocalizations {
|
||||
/// **'Key Auth'**
|
||||
String get keyAuth;
|
||||
|
||||
/// No description provided for @lastFailure.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Last Failure'**
|
||||
String get lastFailure;
|
||||
|
||||
/// No description provided for @lastSuccess.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Last Success'**
|
||||
String get lastSuccess;
|
||||
|
||||
/// No description provided for @letterCache.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -704,12 +812,6 @@ abstract class AppLocalizations {
|
||||
/// **'Recommended to disable, but after disabling, it will be impossible to input CJK characters.'**
|
||||
String get letterCacheTip;
|
||||
|
||||
/// No description provided for @license.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'License'**
|
||||
String get license;
|
||||
|
||||
/// No description provided for @location.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -728,18 +830,18 @@ abstract class AppLocalizations {
|
||||
/// **'Made with ❤️ by {myGithub}'**
|
||||
String madeWithLove(Object myGithub);
|
||||
|
||||
/// No description provided for @manual.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Manual'**
|
||||
String get manual;
|
||||
|
||||
/// No description provided for @max.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'max'**
|
||||
String get max;
|
||||
|
||||
/// No description provided for @maxConcurrency.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Max Concurrency'**
|
||||
String get maxConcurrency;
|
||||
|
||||
/// No description provided for @maxRetryCount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -812,6 +914,12 @@ abstract class AppLocalizations {
|
||||
/// **'New container'**
|
||||
String get newContainer;
|
||||
|
||||
/// No description provided for @noConnectionStatsData.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No connection statistics data'**
|
||||
String get noConnectionStatsData;
|
||||
|
||||
/// No description provided for @noLineChart.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -938,12 +1046,6 @@ abstract class AppLocalizations {
|
||||
/// **'Prioritize displaying disk capacity'**
|
||||
String get preferDiskAmount;
|
||||
|
||||
/// No description provided for @preview.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Preview'**
|
||||
String get preview;
|
||||
|
||||
/// No description provided for @privateKey.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -998,6 +1100,12 @@ abstract class AppLocalizations {
|
||||
/// **'Reboot'**
|
||||
String get reboot;
|
||||
|
||||
/// No description provided for @recentConnections.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Recent Connections'**
|
||||
String get recentConnections;
|
||||
|
||||
/// No description provided for @rememberPwdInMem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1118,6 +1226,18 @@ abstract class AppLocalizations {
|
||||
/// **'Server order'**
|
||||
String get serverOrder;
|
||||
|
||||
/// No description provided for @serverTabRequired.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server tab cannot be removed'**
|
||||
String get serverTabRequired;
|
||||
|
||||
/// No description provided for @servers.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'servers'**
|
||||
String get servers;
|
||||
|
||||
/// No description provided for @sftpDlPrepare.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1358,12 +1478,6 @@ abstract class AppLocalizations {
|
||||
/// **'Switch to {val}'**
|
||||
String switchTo(Object val);
|
||||
|
||||
/// No description provided for @sync.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sync'**
|
||||
String get sync;
|
||||
|
||||
/// No description provided for @syncTip.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1382,6 +1496,12 @@ abstract class AppLocalizations {
|
||||
/// **'Tags'**
|
||||
String get tag;
|
||||
|
||||
/// No description provided for @tapToStartDiscovery.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap the search button to discover SSH servers on your network'**
|
||||
String get tapToStartDiscovery;
|
||||
|
||||
/// No description provided for @temperature.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1442,6 +1562,12 @@ abstract class AppLocalizations {
|
||||
/// **'Total'**
|
||||
String get total;
|
||||
|
||||
/// No description provided for @totalAttempts.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Total'**
|
||||
String get totalAttempts;
|
||||
|
||||
/// No description provided for @traffic.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1490,12 +1616,6 @@ abstract class AppLocalizations {
|
||||
/// **'Server status update interval'**
|
||||
String get updateServerStatusInterval;
|
||||
|
||||
/// No description provided for @upload.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Upload'**
|
||||
String get upload;
|
||||
|
||||
/// No description provided for @upsideDown.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1544,6 +1664,12 @@ abstract class AppLocalizations {
|
||||
/// **'View'**
|
||||
String get view;
|
||||
|
||||
/// No description provided for @viewDetails.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View Details'**
|
||||
String get viewDetails;
|
||||
|
||||
/// No description provided for @viewErr.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1621,126 +1747,6 @@ abstract class AppLocalizations {
|
||||
/// In en, this message translates to:
|
||||
/// **'After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content.'**
|
||||
String get writeScriptTip;
|
||||
|
||||
/// No description provided for @connectionStats.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connection Statistics'**
|
||||
String get connectionStats;
|
||||
|
||||
/// No description provided for @connectionStatsDesc.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View server connection success rate and history'**
|
||||
String get connectionStatsDesc;
|
||||
|
||||
/// No description provided for @noConnectionStatsData.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No connection statistics data'**
|
||||
String get noConnectionStatsData;
|
||||
|
||||
/// No description provided for @totalAttempts.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Total'**
|
||||
String get totalAttempts;
|
||||
|
||||
/// No description provided for @lastSuccess.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Last Success'**
|
||||
String get lastSuccess;
|
||||
|
||||
/// No description provided for @lastFailure.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Last Failure'**
|
||||
String get lastFailure;
|
||||
|
||||
/// No description provided for @recentConnections.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Recent Connections'**
|
||||
String get recentConnections;
|
||||
|
||||
/// No description provided for @viewDetails.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View Details'**
|
||||
String get viewDetails;
|
||||
|
||||
/// No description provided for @connectionDetails.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Connection Details'**
|
||||
String get connectionDetails;
|
||||
|
||||
/// No description provided for @clearThisServerStats.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear This Server Statistics'**
|
||||
String get clearThisServerStats;
|
||||
|
||||
/// No description provided for @clearAllStatsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear All Statistics'**
|
||||
String get clearAllStatsTitle;
|
||||
|
||||
/// No description provided for @clearAllStatsContent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to clear all server connection statistics? This action cannot be undone.'**
|
||||
String get clearAllStatsContent;
|
||||
|
||||
/// No description provided for @clearServerStatsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear {serverName} Statistics'**
|
||||
String clearServerStatsTitle(String serverName);
|
||||
|
||||
/// No description provided for @clearServerStatsContent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to clear connection statistics for server \"{serverName}\"? This action cannot be undone.'**
|
||||
String clearServerStatsContent(String serverName);
|
||||
|
||||
/// No description provided for @homeTabs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Home Tabs'**
|
||||
String get homeTabs;
|
||||
|
||||
/// No description provided for @homeTabsCustomizeDesc.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Customize which tabs appear on the home page and their order'**
|
||||
String get homeTabsCustomizeDesc;
|
||||
|
||||
/// No description provided for @reset.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reset'**
|
||||
String get reset;
|
||||
|
||||
/// No description provided for @availableTabs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Available Tabs'**
|
||||
String get availableTabs;
|
||||
|
||||
/// No description provided for @atLeastOneTab.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'At least one tab must be selected'**
|
||||
String get atLeastOneTab;
|
||||
|
||||
/// No description provided for @serverTabRequired.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server tab cannot be removed'**
|
||||
String get serverTabRequired;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -28,6 +28,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Bereits im letzten Verzeichnis.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Mindestens ein Tab muss ausgewählt sein';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Authentifizierung fehlgeschlagen, bitte überprüfen Sie, ob das Passwort/Schlüssel/Host/Benutzer usw. falsch sind.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'Home-Widget automatisch aktualisieren';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Verfügbare Tabs';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Backup ist verschlüsselt';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Dieser Schalter bedeutet nur, dass die App versuchen wird, im Hintergrund zu laufen. Ob sie im Hintergrund laufen kann, hängt davon ab, ob die Berechtigungen aktiviert sind oder nicht. Bei nativem Android deaktivieren Sie bitte \"Batterieoptimierung\" in dieser App, und bei miui ändern Sie bitte die Energiesparrichtlinie auf \"Unbegrenzt\".';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Sind Sie sicher, dass Sie alle Server-Verbindungsstatistiken löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Alle Statistiken löschen';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Sind Sie sicher, dass Sie die Verbindungsstatistiken für Server \"$serverName\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverName Statistiken löschen';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Statistiken dieses Servers löschen';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Speichern und schließen';
|
||||
|
||||
@@ -98,6 +124,16 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Verbindung';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Verbindungsdetails';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Verbindungsstatistiken';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Server-Verbindungserfolgsrate und Verlauf anzeigen';
|
||||
|
||||
@override
|
||||
String get container => 'Container';
|
||||
|
||||
@@ -147,6 +183,18 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Disconnected';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'SSH-Server entdecken';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Entdeckung fehlgeschlagen';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Entdeckungseinstellungen';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Entdeckungs-Zusammenfassung';
|
||||
|
||||
@override
|
||||
String get disk => 'Festplatte';
|
||||
|
||||
@@ -199,9 +247,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Virtuelle Tasten bearbeiten';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'Die Leistung der aktuellen Codehervorhebung ist schlechter und kann zur Verbesserung optional ausgeschaltet werden.';
|
||||
@@ -209,6 +254,13 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulator';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'mDNS aktivieren';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'mDNS/Bonjour verwenden, um SSH-Dienste zu entdecken';
|
||||
|
||||
@override
|
||||
String get encode => 'Encode';
|
||||
|
||||
@@ -241,10 +293,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'System verfolgen';
|
||||
String get finishedAt => 'Beendet um';
|
||||
|
||||
@override
|
||||
String get font => 'Schriftarten';
|
||||
String get followSystem => 'System verfolgen';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Schriftgröße';
|
||||
@@ -277,6 +329,13 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Code highlight';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home-Tabs';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Home-Widget-Link konfigurieren';
|
||||
|
||||
@@ -297,9 +356,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Images';
|
||||
|
||||
@override
|
||||
String get init => 'Initialisieren';
|
||||
|
||||
@override
|
||||
String get inner => 'Eingebaut';
|
||||
|
||||
@@ -329,6 +385,12 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Schlüsselauthentifzierung';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Letzter Fehler';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Letzter Erfolg';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Buchstaben-Caching';
|
||||
|
||||
@@ -336,9 +398,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Empfohlen, zu deaktivieren, aber nach dem Deaktivieren können keine CJK-Zeichen eingegeben werden.';
|
||||
|
||||
@override
|
||||
String get license => 'Lizenzen';
|
||||
|
||||
@override
|
||||
String get location => 'Standort';
|
||||
|
||||
@@ -351,10 +410,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Handbuch';
|
||||
String get max => 'max';
|
||||
|
||||
@override
|
||||
String get max => 'max';
|
||||
String get maxConcurrency => 'Maximale Gleichzeitigkeit';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Anzahl an Verbindungsversuchen';
|
||||
@@ -395,6 +454,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Neuer Container';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Keine Verbindungsstatistikdaten';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Verwenden Sie keine Liniendiagramme';
|
||||
|
||||
@@ -465,9 +527,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Festplattenkapazität vorrangig anzeigen';
|
||||
|
||||
@override
|
||||
String get preview => 'Vorschau';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Private Key';
|
||||
|
||||
@@ -498,6 +557,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Neustart';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Kürzliche Verbindungen';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Passwort im Speicher behalten';
|
||||
|
||||
@@ -559,6 +621,12 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Server-Bestellung';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server-Tab kann nicht entfernt werden';
|
||||
|
||||
@override
|
||||
String get servers => 'Server';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Verbindung vorbereiten...';
|
||||
|
||||
@@ -709,9 +777,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
return 'Wechseln zu $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sync';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Damit einige Änderungen wirksam werden, kann ein Neustart erforderlich sein.';
|
||||
@@ -722,6 +787,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Tags';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Tippen Sie auf die Suche-Schaltfläche, um SSH-Server in Ihrem Netzwerk zu entdecken';
|
||||
|
||||
@override
|
||||
String get temperature => 'Temperatur';
|
||||
|
||||
@@ -754,6 +823,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Gesamt';
|
||||
|
||||
@override
|
||||
String get traffic => 'Durchflussmenge';
|
||||
|
||||
@@ -780,9 +852,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Aktualisierungsintervall des Serverstatus';
|
||||
|
||||
@override
|
||||
String get upload => 'Hochladen';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Upside Down';
|
||||
|
||||
@@ -808,6 +877,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Ansicht';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Details anzeigen';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Fehler anzeigen';
|
||||
|
||||
@@ -851,71 +923,4 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Nach der Verbindung mit dem Server wird ein Skript in `~/.config/server_box` \n | `/tmp/server_box` geschrieben, um den Systemstatus zu überwachen. Sie können den Skriptinhalt überprüfen.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Verbindungsstatistiken';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Server-Verbindungserfolgsrate und Verlauf anzeigen';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Keine Verbindungsstatistikdaten';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Gesamt';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Letzter Erfolg';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Letzter Fehler';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Kürzliche Verbindungen';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Details anzeigen';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Verbindungsdetails';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Statistiken dieses Servers löschen';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Alle Statistiken löschen';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Sind Sie sicher, dass Sie alle Server-Verbindungsstatistiken löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverName Statistiken löschen';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Sind Sie sicher, dass Sie die Verbindungsstatistiken für Server \"$serverName\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home-Tabs';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge';
|
||||
|
||||
@override
|
||||
String get reset => 'Zurücksetzen';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Verfügbare Tabs';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Mindestens ein Tab muss ausgewählt sein';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server-Tab kann nicht entfernt werden';
|
||||
}
|
||||
|
||||
@@ -28,6 +28,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Already in last directory.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'At least one tab must be selected';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Authentication failed, please check whether credentials are correct';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'Automatic home widget update';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Available Tabs';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Backup is encrypted';
|
||||
|
||||
@@ -84,6 +90,26 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'This switch only means the program will try to run in the background. Whether it can run in the background depends on whether the permission is enabled or not. For AOSP-based Android ROMs, please disable \"Battery Optimization\" in this app. For MIUI / HyperOS, please change the power saving policy to \"Unlimited\".';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Are you sure you want to clear all server connection statistics? This action cannot be undone.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Clear All Statistics';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Are you sure you want to clear connection statistics for server \"$serverName\"? This action cannot be undone.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Clear $serverName Statistics';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Clear This Server Statistics';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Save and close';
|
||||
|
||||
@@ -97,6 +123,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Connection';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Connection Details';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Connection Statistics';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'View server connection success rate and history';
|
||||
|
||||
@override
|
||||
String get container => 'Container';
|
||||
|
||||
@@ -146,6 +182,18 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Disconnected';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Discover SSH Servers';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Discovery failed';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Discovery Settings';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Discovery Summary';
|
||||
|
||||
@override
|
||||
String get disk => 'Disk';
|
||||
|
||||
@@ -198,9 +246,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Edit virtual keys';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'The current code highlighting performance is not ideal and can be optionally turned off to improve.';
|
||||
@@ -208,6 +253,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulator';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Enable mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => 'Use mDNS/Bonjour to discover SSH services';
|
||||
|
||||
@override
|
||||
String get encode => 'Encode';
|
||||
|
||||
@@ -240,10 +291,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Follow system';
|
||||
String get finishedAt => 'Finished at';
|
||||
|
||||
@override
|
||||
String get font => 'Font';
|
||||
String get followSystem => 'Follow system';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Font size';
|
||||
@@ -276,6 +327,13 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Code highlighting';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home Tabs';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Customize which tabs appear on the home page and their order';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Config home widget url';
|
||||
|
||||
@@ -296,9 +354,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Images list';
|
||||
|
||||
@override
|
||||
String get init => 'Initialize';
|
||||
|
||||
@override
|
||||
String get inner => 'Inner';
|
||||
|
||||
@@ -328,6 +383,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Key Auth';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Last Failure';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Last Success';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Letter caching';
|
||||
|
||||
@@ -335,9 +396,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Recommended to disable, but after disabling, it will be impossible to input CJK characters.';
|
||||
|
||||
@override
|
||||
String get license => 'License';
|
||||
|
||||
@override
|
||||
String get location => 'Location';
|
||||
|
||||
@@ -350,10 +408,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manual';
|
||||
String get max => 'max';
|
||||
|
||||
@override
|
||||
String get max => 'max';
|
||||
String get maxConcurrency => 'Max Concurrency';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Number of server reconnections';
|
||||
@@ -393,6 +451,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'New container';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'No connection statistics data';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Do not use line charts';
|
||||
|
||||
@@ -463,9 +524,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Prioritize displaying disk capacity';
|
||||
|
||||
@override
|
||||
String get preview => 'Preview';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Private Key';
|
||||
|
||||
@@ -496,6 +554,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Reboot';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Recent Connections';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Remember password in memory';
|
||||
|
||||
@@ -556,6 +617,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Server order';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
|
||||
@override
|
||||
String get servers => 'servers';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Preparing to connect...';
|
||||
|
||||
@@ -702,9 +769,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
return 'Switch to $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sync';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'A restart may be required for some changes to take effect.';
|
||||
@@ -715,6 +779,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Tags';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Tap the search button to discover SSH servers on your network';
|
||||
|
||||
@override
|
||||
String get temperature => 'Temperature';
|
||||
|
||||
@@ -747,6 +815,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get traffic => 'Traffic';
|
||||
|
||||
@@ -772,9 +843,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => 'Server status update interval';
|
||||
|
||||
@override
|
||||
String get upload => 'Upload';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Upside Down';
|
||||
|
||||
@@ -800,6 +868,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'View';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'View Details';
|
||||
|
||||
@override
|
||||
String get viewErr => 'See error';
|
||||
|
||||
@@ -843,71 +914,4 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Connection Statistics';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'View server connection success rate and history';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'No connection statistics data';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Last Success';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Last Failure';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Recent Connections';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'View Details';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Connection Details';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Clear This Server Statistics';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Clear All Statistics';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Are you sure you want to clear all server connection statistics? This action cannot be undone.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Clear $serverName Statistics';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Are you sure you want to clear connection statistics for server \"$serverName\"? This action cannot be undone.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home Tabs';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Customize which tabs appear on the home page and their order';
|
||||
|
||||
@override
|
||||
String get reset => 'Reset';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Available Tabs';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'At least one tab must be selected';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Ya estás en el directorio superior';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Al menos una pestaña debe estar seleccionada';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'La autenticación ha fallado, por favor verifica si la contraseña/llave/host/usuario, etc., son incorrectos.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get autoUpdateHomeWidget =>
|
||||
'Actualizar automáticamente el widget del escritorio';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Pestañas disponibles';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'El respaldo está encriptado';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Este interruptor solo indica que la aplicación intentará correr en segundo plano, si puede hacerlo o no depende de si tiene el permiso correspondiente. En Android puro, por favor desactiva la “optimización de batería” para esta app, en MIUI por favor cambia la estrategia de ahorro de energía a “Sin restricciones”.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'¿Estás seguro de que quieres limpiar todas las estadísticas de conexión del servidor? Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Limpiar todas las estadísticas';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '¿Estás seguro de que quieres limpiar las estadísticas de conexión del servidor \"$serverName\"? Esta acción no se puede deshacer.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Limpiar estadísticas de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Limpiar estadísticas de este servidor';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Guardar y cerrar';
|
||||
|
||||
@@ -98,6 +124,16 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Conectar';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detalles de conexión';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Estadísticas de conexión';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Ver la tasa de éxito de conexión del servidor e historial';
|
||||
|
||||
@override
|
||||
String get container => 'Contenedor';
|
||||
|
||||
@@ -147,6 +183,18 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Desconectado';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Descubrir servidores SSH';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Falló el descubrimiento';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Configuración de descubrimiento';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Resumen del descubrimiento';
|
||||
|
||||
@override
|
||||
String get disk => 'Disco';
|
||||
|
||||
@@ -199,9 +247,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Editar teclas virtuales';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'El rendimiento del resaltado de código es bastante pobre actualmente, puedes elegir desactivarlo para mejorar.';
|
||||
@@ -209,6 +254,12 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulador';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Habilitar mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => 'Usar mDNS/Bonjour para descubrir servicios SSH';
|
||||
|
||||
@override
|
||||
String get encode => 'Codificar';
|
||||
|
||||
@@ -241,10 +292,10 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Seguir al sistema';
|
||||
String get finishedAt => 'Terminado en';
|
||||
|
||||
@override
|
||||
String get font => 'Fuente';
|
||||
String get followSystem => 'Seguir al sistema';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Tamaño de fuente';
|
||||
@@ -277,6 +328,13 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Resaltar código';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Pestañas de inicio';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personaliza qué pestañas aparecen en la página de inicio y su orden';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Configuración de URL del widget de inicio';
|
||||
|
||||
@@ -297,9 +355,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Lista de imágenes';
|
||||
|
||||
@override
|
||||
String get init => 'Inicializar';
|
||||
|
||||
@override
|
||||
String get inner => 'Interno';
|
||||
|
||||
@@ -329,6 +384,12 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Autenticación con llave';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Último fallo';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Último éxito';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Caché de letras';
|
||||
|
||||
@@ -336,9 +397,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Recomendado desactivar, pero después de desactivarlo, no se podrán ingresar caracteres CJK.';
|
||||
|
||||
@override
|
||||
String get license => 'Licencia de código abierto';
|
||||
|
||||
@override
|
||||
String get location => 'Ubicación';
|
||||
|
||||
@@ -351,10 +409,10 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manual';
|
||||
String get max => 'Máximo';
|
||||
|
||||
@override
|
||||
String get max => 'Máximo';
|
||||
String get maxConcurrency => 'Concurrencia máxima';
|
||||
|
||||
@override
|
||||
String get maxRetryCount =>
|
||||
@@ -395,6 +453,10 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Crear contenedor nuevo';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData =>
|
||||
'No hay datos de estadísticas de conexión';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'No utilice gráficos de líneas';
|
||||
|
||||
@@ -467,9 +529,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get preferDiskAmount =>
|
||||
'Priorizar la visualización de la capacidad del disco';
|
||||
|
||||
@override
|
||||
String get preview => 'Vista previa';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Llave privada';
|
||||
|
||||
@@ -500,6 +559,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Reiniciar';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Conexiones recientes';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Recordar contraseña en la memoria';
|
||||
|
||||
@@ -562,6 +624,13 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Orden del servidor';
|
||||
|
||||
@override
|
||||
String get serverTabRequired =>
|
||||
'La pestaña del servidor no se puede eliminar';
|
||||
|
||||
@override
|
||||
String get servers => 'servidores';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Preparando para conectar al servidor...';
|
||||
|
||||
@@ -710,9 +779,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
return 'Cambiar a $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sincronizar';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Puede que necesites reiniciar para que algunos cambios tengan efecto.';
|
||||
@@ -723,6 +789,10 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Etiqueta';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Toca el botón de búsqueda para descubrir servidores SSH en tu red';
|
||||
|
||||
@override
|
||||
String get temperature => 'Temperatura';
|
||||
|
||||
@@ -755,6 +825,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get traffic => 'Tráfico';
|
||||
|
||||
@@ -781,9 +854,6 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Intervalo de actualización del estado del servidor';
|
||||
|
||||
@override
|
||||
String get upload => 'Subir';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Invertir arriba por abajo';
|
||||
|
||||
@@ -809,6 +879,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Vista';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Ver detalles';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Ver error';
|
||||
|
||||
@@ -852,72 +925,4 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Después de conectarse al servidor, se escribirá un script en `~/.config/server_box` \n | `/tmp/server_box` para monitorear el estado del sistema. Puedes revisar el contenido del script.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Estadísticas de conexión';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Ver la tasa de éxito de conexión del servidor e historial';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData =>
|
||||
'No hay datos de estadísticas de conexión';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Último éxito';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Último fallo';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Conexiones recientes';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Ver detalles';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detalles de conexión';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Limpiar estadísticas de este servidor';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Limpiar todas las estadísticas';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'¿Estás seguro de que quieres limpiar todas las estadísticas de conexión del servidor? Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Limpiar estadísticas de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '¿Estás seguro de que quieres limpiar las estadísticas de conexión del servidor \"$serverName\"? Esta acción no se puede deshacer.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Pestañas de inicio';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personaliza qué pestañas aparecen en la página de inicio y su orden';
|
||||
|
||||
@override
|
||||
String get reset => 'Restablecer';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Pestañas disponibles';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Al menos una pestaña debe estar seleccionada';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Déjà dans le dernier répertoire.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Au moins un onglet doit être sélectionné';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Échec de l\'authentification. Veuillez vérifier si le mot de passe/clé/hôte/utilisateur, etc., est incorrect.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get autoUpdateHomeWidget =>
|
||||
'Mise à jour automatique du widget d\'accueil';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Onglets disponibles';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'La sauvegarde est chiffrée';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Cette option signifie seulement que le programme essaiera de s\'exécuter en arrière-plan, que cela soit possible dépend de l\'autorisation activée ou non. Pour Android natif, veuillez désactiver l\'« Optimisation de la batterie » dans cette application, et pour MIUI, veuillez changer la politique d\'économie d\'énergie en « Illimité ».';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Êtes-vous sûr de vouloir effacer toutes les statistiques de connexion des serveurs ? Cette action ne peut pas être annulée.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Effacer toutes les statistiques';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Êtes-vous sûr de vouloir effacer les statistiques de connexion du serveur \"$serverName\" ? Cette action ne peut pas être annulée.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Effacer les statistiques de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Effacer les statistiques de ce serveur';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Enregistrer et fermer';
|
||||
|
||||
@@ -98,6 +124,16 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Connexion';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Détails de connexion';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Statistiques de connexion';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Voir le taux de réussite de connexion du serveur et l\'historique';
|
||||
|
||||
@override
|
||||
String get container => 'Conteneur';
|
||||
|
||||
@@ -147,6 +183,18 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Déconnecté';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Découvrir les serveurs SSH';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Échec de la découverte';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Paramètres de découverte';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Résumé de la découverte';
|
||||
|
||||
@override
|
||||
String get disk => 'Disque';
|
||||
|
||||
@@ -199,9 +247,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Modifier les touches virtuelles';
|
||||
|
||||
@override
|
||||
String get editor => 'Éditeur';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'La performance actuelle de mise en surbrillance du code est pire et peut être désactivée en option pour s\'améliorer.';
|
||||
@@ -209,6 +254,13 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Émulateur';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Activer mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'Utiliser mDNS/Bonjour pour découvrir les services SSH';
|
||||
|
||||
@override
|
||||
String get encode => 'Encoder';
|
||||
|
||||
@@ -241,10 +293,10 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Suivre le système';
|
||||
String get finishedAt => 'Terminé à';
|
||||
|
||||
@override
|
||||
String get font => 'Police';
|
||||
String get followSystem => 'Suivre le système';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Taille de la police';
|
||||
@@ -277,6 +329,13 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Mise en surbrillance du code';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Onglets d\'accueil';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personnalisez les onglets qui apparaissent sur la page d\'accueil et leur ordre';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Configurer l\'URL du widget d\'accueil';
|
||||
|
||||
@@ -297,9 +356,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Liste des images';
|
||||
|
||||
@override
|
||||
String get init => 'Initialiser';
|
||||
|
||||
@override
|
||||
String get inner => 'Interne';
|
||||
|
||||
@@ -329,6 +385,12 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Authentification par clé';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Dernier échec';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Dernier succès';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Mise en cache des lettres';
|
||||
|
||||
@@ -336,9 +398,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Recommandé de désactiver, mais après désactivation, il sera impossible de saisir des caractères CJK.';
|
||||
|
||||
@override
|
||||
String get license => 'Licence';
|
||||
|
||||
@override
|
||||
String get location => 'Emplacement';
|
||||
|
||||
@@ -351,10 +410,10 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manuel';
|
||||
String get max => 'max';
|
||||
|
||||
@override
|
||||
String get max => 'max';
|
||||
String get maxConcurrency => 'Concurrence maximale';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Nombre de reconnexions au serveur';
|
||||
@@ -394,6 +453,10 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Nouveau conteneur';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData =>
|
||||
'Aucune donnée de statistiques de connexion';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Ne pas utiliser de graphiques linéaires';
|
||||
|
||||
@@ -468,9 +531,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get preferDiskAmount =>
|
||||
'Prioriser l’affichage de la capacité du disque';
|
||||
|
||||
@override
|
||||
String get preview => 'Aperçu';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Clé privée';
|
||||
|
||||
@@ -501,6 +561,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Redémarrer';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Connexions récentes';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Mémoriser le mot de passe en mémoire';
|
||||
|
||||
@@ -563,6 +626,12 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Ordre du serveur';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'L\'onglet serveur ne peut pas être supprimé';
|
||||
|
||||
@override
|
||||
String get servers => 'serveurs';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Préparation de la connexion...';
|
||||
|
||||
@@ -713,9 +782,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
return 'Passer à $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sync';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Un redémarrage peut être nécessaire pour que certains changements prennent effet.';
|
||||
@@ -726,6 +792,10 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Étiquettes';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Appuyez sur le bouton de recherche pour découvrir les serveurs SSH sur votre réseau';
|
||||
|
||||
@override
|
||||
String get temperature => 'Température';
|
||||
|
||||
@@ -758,6 +828,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get traffic => 'Trafic';
|
||||
|
||||
@@ -784,9 +857,6 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Intervalle de mise à jour de l\'état du serveur';
|
||||
|
||||
@override
|
||||
String get upload => 'Télécharger';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'À l\'envers';
|
||||
|
||||
@@ -812,6 +882,9 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Vue';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Voir les détails';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Voir erreur';
|
||||
|
||||
@@ -855,72 +928,4 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Après la connexion au serveur, un script sera écrit dans `~/.config/server_box` \n | `/tmp/server_box` pour surveiller l\'état du système. Vous pouvez examiner le contenu du script.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Statistiques de connexion';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Voir le taux de réussite de connexion du serveur et l\'historique';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData =>
|
||||
'Aucune donnée de statistiques de connexion';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Dernier succès';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Dernier échec';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Connexions récentes';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Voir les détails';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Détails de connexion';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Effacer les statistiques de ce serveur';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Effacer toutes les statistiques';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Êtes-vous sûr de vouloir effacer toutes les statistiques de connexion des serveurs ? Cette action ne peut pas être annulée.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Effacer les statistiques de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Êtes-vous sûr de vouloir effacer les statistiques de connexion du serveur \"$serverName\" ? Cette action ne peut pas être annulée.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Onglets d\'accueil';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personnalisez les onglets qui apparaissent sur la page d\'accueil et leur ordre';
|
||||
|
||||
@override
|
||||
String get reset => 'Réinitialiser';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Onglets disponibles';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Au moins un onglet doit être sélectionné';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -28,6 +28,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Sudah di direktori terakhir.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Setidaknya satu tab harus dipilih';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Otentikasi gagal, silakan periksa apakah kata sandi/kunci/host/pengguna, dll, salah.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'Widget Rumah Pembaruan Otomatis';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Tab Tersedia';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Cadangan telah dienkripsi';
|
||||
|
||||
@@ -84,6 +90,26 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Sakelar ini hanya berarti aplikasi akan mencoba berjalan di latar belakang, apakah aplikasi dapat berjalan di latar belakang tergantung pada apakah izin diaktifkan atau tidak. Untuk Android asli, nonaktifkan \"Pengoptimalan Baterai\" di aplikasi ini, dan untuk miui, ubah kebijakan penghematan daya ke \"Tidak Terbatas\".';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Apakah Anda yakin ingin menghapus semua statistik koneksi server? Tindakan ini tidak dapat dibatalkan.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Hapus Semua Statistik';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Apakah Anda yakin ingin menghapus statistik koneksi untuk server \"$serverName\"? Tindakan ini tidak dapat dibatalkan.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Hapus Statistik $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Hapus Statistik Server Ini';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Simpan dan tutup';
|
||||
|
||||
@@ -97,6 +123,16 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Koneksi';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detail Koneksi';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Statistik Koneksi';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Lihat tingkat keberhasilan koneksi server dan riwayat';
|
||||
|
||||
@override
|
||||
String get container => 'Wadah';
|
||||
|
||||
@@ -146,6 +182,18 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Terputus';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Temukan Server SSH';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Penemuan gagal';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Pengaturan Penemuan';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Ringkasan Penemuan';
|
||||
|
||||
@override
|
||||
String get disk => 'Disk';
|
||||
|
||||
@@ -198,9 +246,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Edit kunci virtual';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'Performa penyorotan kode saat ini lebih buruk, dan dapat dimatikan secara opsional untuk perbaikan.';
|
||||
@@ -208,6 +253,13 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulator';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Aktifkan mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'Gunakan mDNS/Bonjour untuk menemukan layanan SSH';
|
||||
|
||||
@override
|
||||
String get encode => 'Menyandi';
|
||||
|
||||
@@ -240,10 +292,10 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Ikuti sistem';
|
||||
String get finishedAt => 'Selesai pada';
|
||||
|
||||
@override
|
||||
String get font => 'Font';
|
||||
String get followSystem => 'Ikuti sistem';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Ukuran huruf';
|
||||
@@ -276,6 +328,13 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Sorotan kode';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Tab Beranda';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Sesuaikan tab mana yang muncul di halaman beranda dan urutannya';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Konfigurasi URL Widget Rumah';
|
||||
|
||||
@@ -296,9 +355,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Daftar gambar';
|
||||
|
||||
@override
|
||||
String get init => 'Menginisialisasi';
|
||||
|
||||
@override
|
||||
String get inner => 'Batin';
|
||||
|
||||
@@ -328,6 +384,12 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Auth kunci';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Gagal Terakhir';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Sukses Terakhir';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Caching huruf';
|
||||
|
||||
@@ -335,9 +397,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Direkomendasikan untuk menonaktifkan, tetapi setelah dinonaktifkan, tidak mungkin untuk memasukkan karakter CJK.';
|
||||
|
||||
@override
|
||||
String get license => 'Lisensi';
|
||||
|
||||
@override
|
||||
String get location => 'Lokasi';
|
||||
|
||||
@@ -350,10 +409,10 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manual';
|
||||
String get max => 'Max';
|
||||
|
||||
@override
|
||||
String get max => 'Max';
|
||||
String get maxConcurrency => 'Konkurensi Maksimum';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Jumlah penyambungan kembali server';
|
||||
@@ -393,6 +452,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Wadah baru';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Tidak ada data statistik koneksi';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Jangan gunakan grafik garis';
|
||||
|
||||
@@ -463,9 +525,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Prioritaskan tampilan kapasitas disk';
|
||||
|
||||
@override
|
||||
String get preview => 'Pratinjau';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Kunci Pribadi';
|
||||
|
||||
@@ -496,6 +555,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Reboot';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Koneksi Terkini';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Ingat kata sandi di dalam memori';
|
||||
|
||||
@@ -557,6 +619,12 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Pesanan server';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Tab server tidak dapat dihapus';
|
||||
|
||||
@override
|
||||
String get servers => 'server';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Bersiap untuk terhubung ...';
|
||||
|
||||
@@ -703,9 +771,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
return 'Beralih ke $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sinkronisasi';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Pengaktifan ulang mungkin diperlukan agar beberapa perubahan dapat diterapkan.';
|
||||
@@ -716,6 +781,10 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Tag';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Tekan tombol pencarian untuk menemukan server SSH di jaringan Anda';
|
||||
|
||||
@override
|
||||
String get temperature => 'Suhu';
|
||||
|
||||
@@ -748,6 +817,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get traffic => 'Lalu lintas';
|
||||
|
||||
@@ -773,9 +845,6 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => 'Interval Pembaruan Status Server';
|
||||
|
||||
@override
|
||||
String get upload => 'Mengunggah';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Terbalik';
|
||||
|
||||
@@ -801,6 +870,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Tampilan';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Lihat Detail';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Lihat kesalahan';
|
||||
|
||||
@@ -843,71 +915,4 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Setelah terhubung ke server, sebuah skrip akan ditulis ke `~/.config/server_box` \n | `/tmp/server_box` untuk memantau status sistem. Anda dapat meninjau konten skrip tersebut.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Statistik Koneksi';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Lihat tingkat keberhasilan koneksi server dan riwayat';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Tidak ada data statistik koneksi';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Sukses Terakhir';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Gagal Terakhir';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Koneksi Terkini';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Lihat Detail';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detail Koneksi';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Hapus Statistik Server Ini';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Hapus Semua Statistik';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Apakah Anda yakin ingin menghapus semua statistik koneksi server? Tindakan ini tidak dapat dibatalkan.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Hapus Statistik $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Apakah Anda yakin ingin menghapus statistik koneksi untuk server \"$serverName\"? Tindakan ini tidak dapat dibatalkan.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Tab Beranda';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Sesuaikan tab mana yang muncul di halaman beranda dan urutannya';
|
||||
|
||||
@override
|
||||
String get reset => 'Reset';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Tab Tersedia';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Setidaknya satu tab harus dipilih';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'すでに最上位のディレクトリです';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '少なくとも1つのタブを選択する必要があります';
|
||||
|
||||
@override
|
||||
String get authFailTip => '認証に失敗しました。パスワード/鍵/ホスト/ユーザーなどが間違っていないか確認してください。';
|
||||
|
||||
@@ -42,6 +45,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'ホームウィジェットを自動更新';
|
||||
|
||||
@override
|
||||
String get availableTabs => '利用可能なタブ';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'バックアップは暗号化されています';
|
||||
|
||||
@@ -80,6 +86,25 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'このスイッチはプログラムがバックグラウンドで実行を試みることを意味しますが、実際にバックグラウンドで実行できるかどうかは、権限が有効になっているかに依存します。AOSPベースのAndroid ROMでは、このアプリの「バッテリー最適化」をオフにしてください。MIUIでは、省エネモードを「無制限」に変更してください。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => 'すべてのサーバー接続統計を削除してもよろしいですか?この操作は元に戻せません。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'すべての統計をクリア';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'サーバー\"$serverName\"の接続統計を削除してもよろしいですか?この操作は元に戻せません。';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverNameの統計をクリア';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'このサーバーの統計をクリア';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => '保存して閉じる';
|
||||
|
||||
@@ -92,6 +117,15 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get conn => '接続';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '接続の詳細';
|
||||
|
||||
@override
|
||||
String get connectionStats => '接続統計';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => 'サーバー接続成功率と履歴を表示';
|
||||
|
||||
@override
|
||||
String get container => 'コンテナ';
|
||||
|
||||
@@ -139,6 +173,18 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => '接続が切断されました';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'SSHサーバーの発見';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => '発見に失敗';
|
||||
|
||||
@override
|
||||
String get discoverySettings => '発見設定';
|
||||
|
||||
@override
|
||||
String get discoverySummary => '発見の概要';
|
||||
|
||||
@override
|
||||
String get disk => 'ディスク';
|
||||
|
||||
@@ -191,9 +237,6 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => '仮想キーを編集';
|
||||
|
||||
@override
|
||||
String get editor => 'エディター';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'現在のコードハイライトのパフォーマンスはかなり悪いため、改善するために無効にすることを選択できます。';
|
||||
@@ -201,6 +244,12 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'エミュレーター';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'mDNSを有効化';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => 'mDNS/BonjourでSSHサービスを発見';
|
||||
|
||||
@override
|
||||
String get encode => 'エンコード';
|
||||
|
||||
@@ -233,10 +282,10 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'システムに従う';
|
||||
String get finishedAt => '完了時刻';
|
||||
|
||||
@override
|
||||
String get font => 'フォント';
|
||||
String get followSystem => 'システムに従う';
|
||||
|
||||
@override
|
||||
String get fontSize => 'フォントサイズ';
|
||||
@@ -269,6 +318,12 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'コードハイライト';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'ホームタブ';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => 'ホームページに表示するタブとその順序をカスタマイズします';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'ホームウィジェットURL設定';
|
||||
|
||||
@@ -289,9 +344,6 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'イメージリスト';
|
||||
|
||||
@override
|
||||
String get init => '初期化する';
|
||||
|
||||
@override
|
||||
String get inner => '内蔵';
|
||||
|
||||
@@ -320,15 +372,18 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'キー認証';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最後の失敗';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最後の成功';
|
||||
|
||||
@override
|
||||
String get letterCache => '文字キャッシング';
|
||||
|
||||
@override
|
||||
String get letterCacheTip => '無効にすることを推奨しますが、無効にした後はCJK文字を入力することができなくなります。';
|
||||
|
||||
@override
|
||||
String get license => 'オープンソースライセンス';
|
||||
|
||||
@override
|
||||
String get location => '場所';
|
||||
|
||||
@@ -341,10 +396,10 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'マニュアル';
|
||||
String get max => '最大';
|
||||
|
||||
@override
|
||||
String get max => '最大';
|
||||
String get maxConcurrency => '最大同時実行数';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'サーバーの再接続試行回数';
|
||||
@@ -384,6 +439,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => '新しいコンテナを作成';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '接続統計データがありません';
|
||||
|
||||
@override
|
||||
String get noLineChart => '折れ線グラフを使用しない';
|
||||
|
||||
@@ -449,9 +507,6 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'ディスク容量を優先的に表示';
|
||||
|
||||
@override
|
||||
String get preview => 'プレビュー';
|
||||
|
||||
@override
|
||||
String get privateKey => '秘密鍵';
|
||||
|
||||
@@ -481,6 +536,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => '再起動';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近の接続';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'メモリにパスワードを記憶する';
|
||||
|
||||
@@ -541,6 +599,12 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'サーバー順序';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'サーバータブは削除できません';
|
||||
|
||||
@override
|
||||
String get servers => 'サーバー';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'サーバーへの接続を準備中...';
|
||||
|
||||
@@ -681,9 +745,6 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
return '$valに切り替える';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => '同期する';
|
||||
|
||||
@override
|
||||
String get syncTip => '再起動が必要な場合があります。一部の変更はその後に有効になります。';
|
||||
|
||||
@@ -693,6 +754,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'タグ';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery => '検索ボタンをタップしてネットワーク上のSSHサーバーを発見';
|
||||
|
||||
@override
|
||||
String get temperature => '温度';
|
||||
|
||||
@@ -725,6 +789,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get total => '合計';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '総計';
|
||||
|
||||
@override
|
||||
String get traffic => 'トラフィック';
|
||||
|
||||
@@ -750,9 +817,6 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => 'サーバー状態の更新間隔';
|
||||
|
||||
@override
|
||||
String get upload => 'アップロード';
|
||||
|
||||
@override
|
||||
String get upsideDown => '上下逆転';
|
||||
|
||||
@@ -777,6 +841,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'ビュー';
|
||||
|
||||
@override
|
||||
String get viewDetails => '詳細を表示';
|
||||
|
||||
@override
|
||||
String get viewErr => 'エラーを表示';
|
||||
|
||||
@@ -818,68 +885,4 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。';
|
||||
|
||||
@override
|
||||
String get connectionStats => '接続統計';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => 'サーバー接続成功率と履歴を表示';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '接続統計データがありません';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '総計';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最後の成功';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最後の失敗';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近の接続';
|
||||
|
||||
@override
|
||||
String get viewDetails => '詳細を表示';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '接続の詳細';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'このサーバーの統計をクリア';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'すべての統計をクリア';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => 'すべてのサーバー接続統計を削除してもよろしいですか?この操作は元に戻せません。';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverNameの統計をクリア';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'サーバー\"$serverName\"の接続統計を削除してもよろしいですか?この操作は元に戻せません。';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'ホームタブ';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => 'ホームページに表示するタブとその順序をカスタマイズします';
|
||||
|
||||
@override
|
||||
String get reset => 'リセット';
|
||||
|
||||
@override
|
||||
String get availableTabs => '利用可能なタブ';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '少なくとも1つのタブを選択する必要があります';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'サーバータブは削除できません';
|
||||
}
|
||||
|
||||
@@ -28,6 +28,10 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Al in de laatst gebruikte map.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab =>
|
||||
'Er moet minimaal één tabblad worden geselecteerd';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Authenticatie mislukt, controleer of het wachtwoord/sleutel/host/gebruiker, enz., incorrect zijn.';
|
||||
@@ -45,6 +49,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'Automatische update van home-widget';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Beschikbare tabbladen';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Back-up is versleuteld';
|
||||
|
||||
@@ -84,6 +91,26 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Deze schakelaar betekent alleen dat het programma zal proberen op de achtergrond uit te voeren, of het in de achtergrond kan worden uitgevoerd, hangt af van of de toestemming is ingeschakeld of niet. Voor native Android, schakel \"Batterijoptimalisatie\" uit in deze app, en voor miui, wijzig de energiebesparingsbeleid naar \"Onbeperkt\".';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Weet u zeker dat u alle serververbindingsstatistieken wilt wissen? Deze actie kan niet ongedaan worden gemaakt.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Alle statistieken wissen';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Weet u zeker dat u de verbindingsstatistieken voor server \"$serverName\" wilt wissen? Deze actie kan niet ongedaan worden gemaakt.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Statistieken van $serverName wissen';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Statistieken van deze server wissen';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Opslaan en sluiten';
|
||||
|
||||
@@ -97,6 +124,16 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Verbinding';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Verbindingsdetails';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Verbindingsstatistieken';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Bekijk server verbindingssucces ratio en geschiedenis';
|
||||
|
||||
@override
|
||||
String get container => 'Container';
|
||||
|
||||
@@ -146,6 +183,18 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Verbroken';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'SSH-servers ontdekken';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Ontdekking mislukt';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Ontdekkingsinstellingen';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Ontdekkingssamenvatting';
|
||||
|
||||
@override
|
||||
String get disk => 'Schijf';
|
||||
|
||||
@@ -198,9 +247,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Virtuele toetsen bewerken';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'De huidige codehighlighting-prestaties zijn slechter en kunnen optioneel worden uitgeschakeld om te verbeteren.';
|
||||
@@ -208,6 +254,13 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulator';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'mDNS inschakelen';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'Gebruik mDNS/Bonjour om SSH-services te ontdekken';
|
||||
|
||||
@override
|
||||
String get encode => 'Coderen';
|
||||
|
||||
@@ -240,10 +293,10 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Volg systeem';
|
||||
String get finishedAt => 'Voltooid om';
|
||||
|
||||
@override
|
||||
String get font => 'Lettertype';
|
||||
String get followSystem => 'Volg systeem';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Lettergrootte';
|
||||
@@ -276,6 +329,13 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Code-highlight';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home-tabbladen';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Home-widget-url configureren';
|
||||
|
||||
@@ -296,9 +356,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Lijst met afbeeldingen';
|
||||
|
||||
@override
|
||||
String get init => 'Initialiseren';
|
||||
|
||||
@override
|
||||
String get inner => 'Intern';
|
||||
|
||||
@@ -328,6 +385,12 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Sleutelauthenticatie';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Laatst gefaald';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Laatst succesvol';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Lettercaching';
|
||||
|
||||
@@ -335,9 +398,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Aanbevolen om uit te schakelen, maar na het uitschakelen is het niet mogelijk om CJK-tekens in te voeren.';
|
||||
|
||||
@override
|
||||
String get license => 'Licentie';
|
||||
|
||||
@override
|
||||
String get location => 'Locatie';
|
||||
|
||||
@@ -350,10 +410,10 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Handleiding';
|
||||
String get max => 'max';
|
||||
|
||||
@override
|
||||
String get max => 'max';
|
||||
String get maxConcurrency => 'Maximale gelijktijdigheid';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Aantal serverherverbindingen';
|
||||
@@ -393,6 +453,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Nieuwe container';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Geen verbindingsstatistiekgegevens';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'lijndiagrammen gebruiken';
|
||||
|
||||
@@ -464,9 +527,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
String get preferDiskAmount =>
|
||||
'Geef de schijfcapaciteit prioriteit bij weergave';
|
||||
|
||||
@override
|
||||
String get preview => 'Voorbeeld';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Privésleutel';
|
||||
|
||||
@@ -497,6 +557,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Herstart';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Recente verbindingen';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Wachtwoord onthouden in geheugen';
|
||||
|
||||
@@ -558,6 +621,12 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Servervolgorde';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Servertabblad kan niet worden verwijderd';
|
||||
|
||||
@override
|
||||
String get servers => 'servers';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Voorbereiden om verbinding te maken...';
|
||||
|
||||
@@ -707,9 +776,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
return 'Overschakelen naar $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sync';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Een herstart kan nodig zijn voor sommige wijzigingen om van kracht te worden.';
|
||||
@@ -720,6 +786,10 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Labels';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Tik op de zoekknop om SSH-servers op uw netwerk te ontdekken';
|
||||
|
||||
@override
|
||||
String get temperature => 'Temperatuur';
|
||||
|
||||
@@ -752,6 +822,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Totaal';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Totaal';
|
||||
|
||||
@override
|
||||
String get traffic => 'Verkeer';
|
||||
|
||||
@@ -778,9 +851,6 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Interne server status bijwerking interval';
|
||||
|
||||
@override
|
||||
String get upload => 'Upload';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Ondersteboven';
|
||||
|
||||
@@ -806,6 +876,9 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Weergave';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Details bekijken';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Zie foutmelding';
|
||||
|
||||
@@ -849,72 +922,4 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Na het verbinden met de server wordt een script geschreven naar `~/.config/server_box` \n | `/tmp/server_box` om de systeemstatus te monitoren. U kunt de inhoud van het script controleren.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Verbindingsstatistieken';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Bekijk server verbindingssucces ratio en geschiedenis';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Geen verbindingsstatistiekgegevens';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Totaal';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Laatst succesvol';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Laatst gefaald';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Recente verbindingen';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Details bekijken';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Verbindingsdetails';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Statistieken van deze server wissen';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Alle statistieken wissen';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Weet u zeker dat u alle serververbindingsstatistieken wilt wissen? Deze actie kan niet ongedaan worden gemaakt.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Statistieken van $serverName wissen';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Weet u zeker dat u de verbindingsstatistieken voor server \"$serverName\" wilt wissen? Deze actie kan niet ongedaan worden gemaakt.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Home-tabbladen';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde';
|
||||
|
||||
@override
|
||||
String get reset => 'Resetten';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Beschikbare tabbladen';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab =>
|
||||
'Er moet minimaal één tabblad worden geselecteerd';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Já é o diretório mais alto';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Pelo menos uma aba deve ser selecionada';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Autenticação falhou, por favor verifique se a senha/chave/host/usuário, etc., estão incorretos.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String get autoUpdateHomeWidget =>
|
||||
'Atualização automática do widget da tela inicial';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Abas disponíveis';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Backup está criptografado';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Este interruptor indica que o programa tentará rodar em segundo plano, mas a capacidade de fazer isso depende das permissões concedidas. No Android nativo, desative a \'Otimização de bateria\' para este app, no MIUI, altere a estratégia de economia de energia para \'Sem restrições\'.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Tem certeza de que deseja limpar todas as estatísticas de conexão do servidor? Esta ação não pode ser desfeita.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Limpar todas as estatísticas';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Tem certeza de que deseja limpar as estatísticas de conexão para o servidor \"$serverName\"? Esta ação não pode ser desfeita.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Limpar estatísticas de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Limpar estatísticas deste servidor';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Salvar e fechar';
|
||||
|
||||
@@ -97,6 +123,16 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Conectar';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detalhes da conexão';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Estatísticas de conexão';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Ver taxa de sucesso de conexão do servidor e histórico';
|
||||
|
||||
@override
|
||||
String get container => 'Contêiner';
|
||||
|
||||
@@ -146,6 +182,18 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Desconectado';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Descobrir servidores SSH';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Descoberta falhou';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Configurações de descoberta';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Resumo da descoberta';
|
||||
|
||||
@override
|
||||
String get disk => 'Disco';
|
||||
|
||||
@@ -198,9 +246,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Editar teclas virtuais';
|
||||
|
||||
@override
|
||||
String get editor => 'Editor';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'O desempenho do destaque de código atualmente é ruim, pode optar por desativá-lo para melhorar.';
|
||||
@@ -208,6 +253,12 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emulador';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Ativar mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => 'Usar mDNS/Bonjour para descobrir serviços SSH';
|
||||
|
||||
@override
|
||||
String get encode => 'Codificar';
|
||||
|
||||
@@ -240,10 +291,10 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Seguir sistema';
|
||||
String get finishedAt => 'Terminado em';
|
||||
|
||||
@override
|
||||
String get font => 'Fonte';
|
||||
String get followSystem => 'Seguir sistema';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Tamanho da fonte';
|
||||
@@ -276,6 +327,13 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Destaque de código';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Abas iniciais';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personalize quais abas aparecem na página inicial e sua ordem';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig =>
|
||||
'Configuração de URL do widget da tela inicial';
|
||||
@@ -297,9 +355,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Lista de imagens';
|
||||
|
||||
@override
|
||||
String get init => 'Inicializar';
|
||||
|
||||
@override
|
||||
String get inner => 'Interno';
|
||||
|
||||
@@ -328,6 +383,12 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Autenticação por chave';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Última falha';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Último sucesso';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Cache de letras';
|
||||
|
||||
@@ -335,9 +396,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Recomendado desativar, mas após desativar, será impossível inserir caracteres CJK.';
|
||||
|
||||
@override
|
||||
String get license => 'Licença de código aberto';
|
||||
|
||||
@override
|
||||
String get location => 'Localização';
|
||||
|
||||
@@ -350,10 +408,10 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manual';
|
||||
String get max => 'Máximo';
|
||||
|
||||
@override
|
||||
String get max => 'Máximo';
|
||||
String get maxConcurrency => 'Concorrência máxima';
|
||||
|
||||
@override
|
||||
String get maxRetryCount =>
|
||||
@@ -394,6 +452,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Novo contêiner';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Não há dados de estatísticas de conexão';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Não usar gráficos de linha';
|
||||
|
||||
@@ -464,9 +525,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Priorizar a exibição da capacidade do disco';
|
||||
|
||||
@override
|
||||
String get preview => 'Pré-visualização';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Chave privada';
|
||||
|
||||
@@ -497,6 +555,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Reiniciar';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Conexões recentes';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Lembrar senha na memória';
|
||||
|
||||
@@ -558,6 +619,12 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Ordem do servidor';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'A aba do servidor não pode ser removida';
|
||||
|
||||
@override
|
||||
String get servers => 'servidores';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Preparando para conectar ao servidor...';
|
||||
|
||||
@@ -705,9 +772,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
return 'Mudar para $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Sincronizar';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Pode ser necessário reiniciar para algumas mudanças surtirem efeito.';
|
||||
@@ -718,6 +782,10 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Tag';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Toque no botão de pesquisa para descobrir servidores SSH na sua rede';
|
||||
|
||||
@override
|
||||
String get temperature => 'Temperatura';
|
||||
|
||||
@@ -750,6 +818,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get traffic => 'Tráfego';
|
||||
|
||||
@@ -776,9 +847,6 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Intervalo de atualização do estado do servidor';
|
||||
|
||||
@override
|
||||
String get upload => 'Upload';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Inverter verticalmente';
|
||||
|
||||
@@ -804,6 +872,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Visualização';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Ver detalhes';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Ver erro';
|
||||
|
||||
@@ -846,71 +917,4 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Após conectar ao servidor, um script será escrito em `~/.config/server_box` \n | `/tmp/server_box` para monitorar o status do sistema. Você pode revisar o conteúdo do script.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Estatísticas de conexão';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Ver taxa de sucesso de conexão do servidor e histórico';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Não há dados de estatísticas de conexão';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Total';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Último sucesso';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Última falha';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Conexões recentes';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Ver detalhes';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Detalhes da conexão';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Limpar estatísticas deste servidor';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Limpar todas as estatísticas';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Tem certeza de que deseja limpar todas as estatísticas de conexão do servidor? Esta ação não pode ser desfeita.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Limpar estatísticas de $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Tem certeza de que deseja limpar as estatísticas de conexão para o servidor \"$serverName\"? Esta ação não pode ser desfeita.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Abas iniciais';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Personalize quais abas aparecem na página inicial e sua ordem';
|
||||
|
||||
@override
|
||||
String get reset => 'Redefinir';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Abas disponíveis';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Pelo menos uma aba deve ser selecionada';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Уже в корневом каталоге';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Должна быть выбрана хотя бы одна вкладка';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Аутентификация не удалась, пожалуйста, проверьте, правильны ли пароль/ключ/хост/пользователь и т.д.';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String get autoUpdateHomeWidget =>
|
||||
'Автоматическое обновление виджета на главном экране';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Доступные вкладки';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Резервная копия зашифрована';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Этот переключатель означает, что программа будет пытаться работать в фоновом режиме, но фактическое выполнение зависит от того, включено ли разрешение. Для нативного Android отключите «Оптимизацию батареи» для этого приложения, для MIUI измените контроль активности на «Нет ограничений».';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Вы уверены, что хотите очистить всю статистику соединений сервера? Это действие не может быть отменено.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Очистить всю статистику';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Вы уверены, что хотите очистить статистику соединений для сервера \"$serverName\"? Это действие не может быть отменено.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Очистить статистику $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Очистить статистику этого сервера';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Сохранить и закрыть';
|
||||
|
||||
@@ -97,6 +123,16 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Подключение';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Детали соединения';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Статистика соединений';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Просмотр коэффициента успешности подключения к серверу и истории';
|
||||
|
||||
@override
|
||||
String get container => 'Контейнер';
|
||||
|
||||
@@ -146,6 +182,18 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Отключено';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Обнаружить SSH серверы';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Обнаружение не удалось';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Настройки обнаружения';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Сводка обнаружения';
|
||||
|
||||
@override
|
||||
String get disk => 'Диск';
|
||||
|
||||
@@ -198,9 +246,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Редактировать виртуальные клавиши';
|
||||
|
||||
@override
|
||||
String get editor => 'Редактор';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'Текущая производительность подсветки кода неудовлетворительна, можно отключить для улучшения.';
|
||||
@@ -208,6 +253,13 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Эмулятор';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Включить mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'Использовать mDNS/Bonjour для обнаружения SSH служб';
|
||||
|
||||
@override
|
||||
String get encode => 'Кодировать';
|
||||
|
||||
@@ -240,10 +292,10 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Следовать за системой';
|
||||
String get finishedAt => 'Завершено в';
|
||||
|
||||
@override
|
||||
String get font => 'Шрифт';
|
||||
String get followSystem => 'Следовать за системой';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Размер шрифта';
|
||||
@@ -276,6 +328,13 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Подсветка кода';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Вкладки дома';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Настройте, какие вкладки появляются на главной странице и их порядок';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Конфигурация URL виджета домашнего экрана';
|
||||
|
||||
@@ -296,9 +355,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Список образов';
|
||||
|
||||
@override
|
||||
String get init => 'Инициализировать';
|
||||
|
||||
@override
|
||||
String get inner => 'Встроенный';
|
||||
|
||||
@@ -328,6 +384,12 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Аутентификация по ключу';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Последний сбой';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Последний успех';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Кэширование букв';
|
||||
|
||||
@@ -335,9 +397,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Рекомендуется отключить, но после отключения будет невозможно вводить символы CJK.';
|
||||
|
||||
@override
|
||||
String get license => 'Лицензия';
|
||||
|
||||
@override
|
||||
String get location => 'Местоположение';
|
||||
|
||||
@@ -350,10 +409,10 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Вручную';
|
||||
String get max => 'максимум';
|
||||
|
||||
@override
|
||||
String get max => 'максимум';
|
||||
String get maxConcurrency => 'Максимальная параллельность';
|
||||
|
||||
@override
|
||||
String get maxRetryCount =>
|
||||
@@ -395,6 +454,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Создать контейнер';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Нет данных статистики соединений';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Не использовать линейные графики';
|
||||
|
||||
@@ -465,9 +527,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Приоритетное отображение объёма диска';
|
||||
|
||||
@override
|
||||
String get preview => 'Предпросмотр';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Приватный ключ';
|
||||
|
||||
@@ -498,6 +557,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Перезагрузка';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Недавние соединения';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Запомнить пароль в памяти';
|
||||
|
||||
@@ -560,6 +622,12 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Порядок серверов';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Вкладку сервера нельзя удалить';
|
||||
|
||||
@override
|
||||
String get servers => 'серверов';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Подготовка подключения...';
|
||||
|
||||
@@ -707,9 +775,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
return 'Переключиться на $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Синхронизировать';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Возможно, потребуется перезагрузка, чтобы некоторые изменения вступили в силу.';
|
||||
@@ -720,6 +785,10 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Теги';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Нажмите кнопку поиска, чтобы обнаружить SSH серверы в вашей сети';
|
||||
|
||||
@override
|
||||
String get temperature => 'Температура';
|
||||
|
||||
@@ -752,6 +821,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Всего';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Общее';
|
||||
|
||||
@override
|
||||
String get traffic => 'Трафик';
|
||||
|
||||
@@ -778,9 +850,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String get updateServerStatusInterval =>
|
||||
'Интервал обновления статуса сервера';
|
||||
|
||||
@override
|
||||
String get upload => 'Загрузить';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Перевернуть';
|
||||
|
||||
@@ -806,6 +875,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Вид';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Просмотр деталей';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Просмотр ошибок';
|
||||
|
||||
@@ -848,71 +920,4 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Статистика соединений';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Просмотр коэффициента успешности подключения к серверу и истории';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Нет данных статистики соединений';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Общее';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Последний успех';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Последний сбой';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Недавние соединения';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Просмотр деталей';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Детали соединения';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Очистить статистику этого сервера';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Очистить всю статистику';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Вы уверены, что хотите очистить всю статистику соединений сервера? Это действие не может быть отменено.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Очистить статистику $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Вы уверены, что хотите очистить статистику соединений для сервера \"$serverName\"? Это действие не может быть отменено.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Вкладки дома';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Настройте, какие вкладки появляются на главной странице и их порядок';
|
||||
|
||||
@override
|
||||
String get reset => 'Сброс';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Доступные вкладки';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Должна быть выбрана хотя бы одна вкладка';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Zaten son dizindesiniz.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'En az bir sekme seçilmelidir';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Kimlik doğrulama başarısız oldu, lütfen kimlik bilgilerinin doğru olup olmadığını kontrol edin';
|
||||
@@ -44,6 +47,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => 'Ana ekran bileşenini otomatik güncelle';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Mevcut Sekmeler';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Yedekleme şifrelenmiş';
|
||||
|
||||
@@ -83,6 +89,26 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Bu anahtar yalnızca programın arka planda çalışmayı deneyeceği anlamına gelir. Arka planda çalışıp çalışamayacağı, iznin etkinleştirilip etkinleştirilmediğine bağlıdır. AOSP tabanlı Android ROM\'lar için lütfen bu uygulamada \"Pil Optimizasyonu\"nu devre dışı bırakın. MIUI / HyperOS için lütfen güç tasarrufu politikasını \"Sınırsız\" olarak değiştirin.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Tüm sunucu bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Tüm İstatistikleri Temizle';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '\"$serverName\" sunucusu için bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverName İstatistiklerini Temizle';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Bu Sunucu İstatistiklerini Temizle';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Kaydet ve kapat';
|
||||
|
||||
@@ -96,6 +122,16 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'Bağlantı';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Bağlantı Detayları';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Bağlantı İstatistikleri';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Sunucu bağlantı başarı oranını ve geçmişi görüntüle';
|
||||
|
||||
@override
|
||||
String get container => 'Konteyner';
|
||||
|
||||
@@ -145,6 +181,18 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Bağlantı kesildi';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'SSH Sunucularını Keşfet';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Keşif başarısız';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Keşif Ayarları';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Keşif Özeti';
|
||||
|
||||
@override
|
||||
String get disk => 'Disk';
|
||||
|
||||
@@ -197,9 +245,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Sanal tuşları düzenle';
|
||||
|
||||
@override
|
||||
String get editor => 'Düzenleyici';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'Mevcut kod vurgulama performansı ideal değil ve isteğe bağlı olarak kapatılabilir.';
|
||||
@@ -207,6 +252,13 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Emülatör';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'mDNS\'yi Etkinleştir';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'SSH hizmetlerini keşfetmek için mDNS/Bonjour kullan';
|
||||
|
||||
@override
|
||||
String get encode => 'Kodla';
|
||||
|
||||
@@ -239,10 +291,10 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Sistemi takip et';
|
||||
String get finishedAt => 'Tamamlandı:';
|
||||
|
||||
@override
|
||||
String get font => 'Yazı tipi';
|
||||
String get followSystem => 'Sistemi takip et';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Yazı tipi boyutu';
|
||||
@@ -275,6 +327,13 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Kod vurgulama';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Ana Sayfa Sekmeleri';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => 'Ana ekran bileşeni URL\'sini yapılandır';
|
||||
|
||||
@@ -295,9 +354,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Görüntü listesi';
|
||||
|
||||
@override
|
||||
String get init => 'Başlat';
|
||||
|
||||
@override
|
||||
String get inner => 'İç';
|
||||
|
||||
@@ -327,6 +383,12 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Anahtar Kimlik Doğrulama';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Son Başarısızlık';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Son Başarı';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Harf önbelleği';
|
||||
|
||||
@@ -334,9 +396,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Devre dışı bırakılması önerilir, ancak devre dışı bırakıldığında CJK karakterlerini girmek mümkün olmayacaktır.';
|
||||
|
||||
@override
|
||||
String get license => 'Lisans';
|
||||
|
||||
@override
|
||||
String get location => 'Konum';
|
||||
|
||||
@@ -349,10 +408,10 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Manuel';
|
||||
String get max => 'maks';
|
||||
|
||||
@override
|
||||
String get max => 'maks';
|
||||
String get maxConcurrency => 'Maksimum Eşzamanlılık';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => 'Sunucu yeniden bağlantı sayısı';
|
||||
@@ -392,6 +451,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Yeni konteyner';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Bağlantı istatistik verisi yok';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Çizgi grafikleri kullanma';
|
||||
|
||||
@@ -462,9 +524,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Disk kapasitesini öncelikli olarak göster';
|
||||
|
||||
@override
|
||||
String get preview => 'Önizleme';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Özel Anahtar';
|
||||
|
||||
@@ -495,6 +554,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Yeniden başlat';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Son Bağlantılar';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Şifreyi bellekte hatırla';
|
||||
|
||||
@@ -556,6 +618,12 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Sunucu sırası';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Sunucu sekmesi kaldırılamaz';
|
||||
|
||||
@override
|
||||
String get servers => 'sunucu';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Bağlantı hazırlanıyor...';
|
||||
|
||||
@@ -703,9 +771,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
return '$val\'a geç';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Senkronize et';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Bazı değişikliklerin etkili olması için yeniden başlatma gerekebilir.';
|
||||
@@ -716,6 +781,10 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Etiketler';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Ağınızdaki SSH sunucularını keşfetmek için arama düğmesine dokunun';
|
||||
|
||||
@override
|
||||
String get temperature => 'Sıcaklık';
|
||||
|
||||
@@ -748,6 +817,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Toplam';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Toplam';
|
||||
|
||||
@override
|
||||
String get traffic => 'Trafik';
|
||||
|
||||
@@ -773,9 +845,6 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => 'Sunucu durumu güncelleme aralığı';
|
||||
|
||||
@override
|
||||
String get upload => 'Yükle';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Başaşağı';
|
||||
|
||||
@@ -801,6 +870,9 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Görünüm';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Detayları Görüntüle';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Hatayı gör';
|
||||
|
||||
@@ -843,71 +915,4 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Sunucuya bağlandıktan sonra, sistem durumunu izlemek için `~/.config/server_box` \n | `/tmp/server_box` dizinine bir betik yazılacak. Betik içeriğini inceleyebilirsiniz.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Bağlantı İstatistikleri';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Sunucu bağlantı başarı oranını ve geçmişi görüntüle';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Bağlantı istatistik verisi yok';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Toplam';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Son Başarı';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Son Başarısızlık';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Son Bağlantılar';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Detayları Görüntüle';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Bağlantı Detayları';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Bu Sunucu İstatistiklerini Temizle';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Tüm İstatistikleri Temizle';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Tüm sunucu bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '$serverName İstatistiklerini Temizle';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '\"$serverName\" sunucusu için bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Ana Sayfa Sekmeleri';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin';
|
||||
|
||||
@override
|
||||
String get reset => 'Sıfırla';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Mevcut Sekmeler';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'En az bir sekme seçilmelidir';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => 'Вже в останньому каталозі.';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Потрібно вибрати принаймні одну вкладку';
|
||||
|
||||
@override
|
||||
String get authFailTip =>
|
||||
'Авторизація не вдалася, будь ласка, перевірте правильність облікових даних';
|
||||
@@ -45,6 +48,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
String get autoUpdateHomeWidget =>
|
||||
'Автоматичне оновлення віджетів на головному екрані';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Доступні вкладки';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => 'Резервна копія зашифрована';
|
||||
|
||||
@@ -85,6 +91,26 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'Цей перемикач лише вказує на те, що програма намагатиметься працювати у фоновому режимі. Чи може вона працювати у фоновому режимі, залежить від прав доступу. Для AOSP-орієнтованих Android ROM, будь ласка, вимкніть \"Оптимізацію акумулятора\" в цьому додатку. Для MIUI / HyperOS, будь ласка, змініть політику економії енергії на \"Нескінченна\".';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Ви впевнені, що хочете очистити всю статистику з\'єднань сервера? Цю дію не можна скасувати.';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Очистити всю статистику';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Ви впевнені, що хочете очистити статистику з\'єднань для сервера \"$serverName\"? Цю дію не можна скасувати.';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Очистити статистику $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Очистити статистику цього сервера';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => 'Зберегти та закрити';
|
||||
|
||||
@@ -98,6 +124,16 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get conn => 'З\'єднання';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Деталі з\'єднання';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Статистика з\'єднань';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Переглянути коефіцієнт успішності підключення до сервера та історію';
|
||||
|
||||
@override
|
||||
String get container => 'Контейнер';
|
||||
|
||||
@@ -147,6 +183,18 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => 'Відключено';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => 'Виявити SSH сервери';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => 'Виявлення не вдалось';
|
||||
|
||||
@override
|
||||
String get discoverySettings => 'Налаштування виявлення';
|
||||
|
||||
@override
|
||||
String get discoverySummary => 'Підсумок виявлення';
|
||||
|
||||
@override
|
||||
String get disk => 'Диск';
|
||||
|
||||
@@ -199,9 +247,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => 'Редагувати віртуальні клавіші';
|
||||
|
||||
@override
|
||||
String get editor => 'Редактор';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip =>
|
||||
'Поточна підсвітка коду не ідеальна і може бути вимкнена для покращення.';
|
||||
@@ -209,6 +254,13 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get emulator => 'Емулятор';
|
||||
|
||||
@override
|
||||
String get enableMdns => 'Увімкнути mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc =>
|
||||
'Використовувати mDNS/Bonjour для виявлення SSH сервісів';
|
||||
|
||||
@override
|
||||
String get encode => 'Кодувати';
|
||||
|
||||
@@ -241,10 +293,10 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => 'Слідувати системі';
|
||||
String get finishedAt => 'Завершено о';
|
||||
|
||||
@override
|
||||
String get font => 'Шрифт';
|
||||
String get followSystem => 'Слідувати системі';
|
||||
|
||||
@override
|
||||
String get fontSize => 'Розмір шрифту';
|
||||
@@ -277,6 +329,13 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => 'Підсвітка коду';
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Домашні вкладки';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig =>
|
||||
'Налаштувати URL віджета на головному екрані';
|
||||
@@ -298,9 +357,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => 'Список зображень';
|
||||
|
||||
@override
|
||||
String get init => 'Ініціалізувати';
|
||||
|
||||
@override
|
||||
String get inner => 'Внутрішній';
|
||||
|
||||
@@ -330,6 +386,12 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => 'Аутентифікація ключем';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Остання помилка';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Останній успіх';
|
||||
|
||||
@override
|
||||
String get letterCache => 'Кешування букв';
|
||||
|
||||
@@ -337,9 +399,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
String get letterCacheTip =>
|
||||
'Рекомендується відключити, але після вимкнення стане неможливим введення CJK (китайських, японських, корейських) символів.';
|
||||
|
||||
@override
|
||||
String get license => 'Ліцензія';
|
||||
|
||||
@override
|
||||
String get location => 'Місцезнаходження';
|
||||
|
||||
@@ -352,10 +411,10 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => 'Посібник';
|
||||
String get max => 'макс.';
|
||||
|
||||
@override
|
||||
String get max => 'макс.';
|
||||
String get maxConcurrency => 'Максимальна паралельність';
|
||||
|
||||
@override
|
||||
String get maxRetryCount =>
|
||||
@@ -397,6 +456,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => 'Новий контейнер';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Немає даних статистики з\'єднань';
|
||||
|
||||
@override
|
||||
String get noLineChart => 'Не використовувати лінійні діаграми';
|
||||
|
||||
@@ -467,9 +529,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => 'Пріоритетно показувати ємність диска';
|
||||
|
||||
@override
|
||||
String get preview => 'Попередній перегляд';
|
||||
|
||||
@override
|
||||
String get privateKey => 'Приватний ключ';
|
||||
|
||||
@@ -500,6 +559,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => 'Перезавантажити';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Останні з\'єднання';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => 'Запам\'ятати пароль у пам\'яті';
|
||||
|
||||
@@ -561,6 +623,12 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => 'Порядок сервера';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Вкладку сервера не можна видалити';
|
||||
|
||||
@override
|
||||
String get servers => 'серверів';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => 'Підготовка до підключення...';
|
||||
|
||||
@@ -708,9 +776,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
return 'Переключитися на $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => 'Синхронізація';
|
||||
|
||||
@override
|
||||
String get syncTip =>
|
||||
'Може знадобитися перезапуск, щоб деякі зміни набрали чинності.';
|
||||
@@ -721,6 +786,10 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get tag => 'Теги';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery =>
|
||||
'Натисніть кнопку пошуку, щоб виявити SSH сервери у вашій мережі';
|
||||
|
||||
@override
|
||||
String get temperature => 'Температура';
|
||||
|
||||
@@ -753,6 +822,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get total => 'Всього';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Загальна кількість';
|
||||
|
||||
@override
|
||||
String get traffic => 'Трафік';
|
||||
|
||||
@@ -778,9 +850,6 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => 'Інтервал оновлення статусу сервера';
|
||||
|
||||
@override
|
||||
String get upload => 'Завантаження';
|
||||
|
||||
@override
|
||||
String get upsideDown => 'Доверху дном';
|
||||
|
||||
@@ -806,6 +875,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get view => 'Переглянути';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Переглянути деталі';
|
||||
|
||||
@override
|
||||
String get viewErr => 'Переглянути помилку';
|
||||
|
||||
@@ -849,71 +921,4 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта.';
|
||||
|
||||
@override
|
||||
String get connectionStats => 'Статистика з\'єднань';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc =>
|
||||
'Переглянути коефіцієнт успішності підключення до сервера та історію';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => 'Немає даних статистики з\'єднань';
|
||||
|
||||
@override
|
||||
String get totalAttempts => 'Загальна кількість';
|
||||
|
||||
@override
|
||||
String get lastSuccess => 'Останній успіх';
|
||||
|
||||
@override
|
||||
String get lastFailure => 'Остання помилка';
|
||||
|
||||
@override
|
||||
String get recentConnections => 'Останні з\'єднання';
|
||||
|
||||
@override
|
||||
String get viewDetails => 'Переглянути деталі';
|
||||
|
||||
@override
|
||||
String get connectionDetails => 'Деталі з\'єднання';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => 'Очистити статистику цього сервера';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => 'Очистити всю статистику';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent =>
|
||||
'Ви впевнені, що хочете очистити всю статистику з\'єднань сервера? Цю дію не можна скасувати.';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return 'Очистити статистику $serverName';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return 'Ви впевнені, що хочете очистити статистику з\'єднань для сервера \"$serverName\"? Цю дію не можна скасувати.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => 'Домашні вкладки';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc =>
|
||||
'Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок';
|
||||
|
||||
@override
|
||||
String get reset => 'Скинути';
|
||||
|
||||
@override
|
||||
String get availableTabs => 'Доступні вкладки';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => 'Потрібно вибрати принаймні одну вкладку';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => 'Server tab cannot be removed';
|
||||
}
|
||||
|
||||
@@ -26,6 +26,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get alreadyLastDir => '已是顶级目录';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '至少需要选择一个标签';
|
||||
|
||||
@override
|
||||
String get authFailTip => '认证失败,请检查连接信息是否正确';
|
||||
|
||||
@@ -41,6 +44,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => '自动更新桌面小部件';
|
||||
|
||||
@override
|
||||
String get availableTabs => '可用标签';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => '备份已加密';
|
||||
|
||||
@@ -78,6 +84,25 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
String get bgRunTip =>
|
||||
'此开关只代表程序会尝试在后台运行,具体能否后台运行取决于是否开启了权限。原生 Android 请关闭本 App 的“电池优化”,MIUI / HyperOS 请将省电策略改为“无限制”。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => '确定要清空所有服务器的连接统计数据吗?此操作无法撤销。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => '清空所有统计';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '确定要清空服务器 \"$serverName\" 的连接统计数据吗?此操作无法撤销。';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '清空 $serverName 统计';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => '清空此服务器统计';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => '保存后关闭';
|
||||
|
||||
@@ -90,6 +115,15 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get conn => '连接';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '连接详情';
|
||||
|
||||
@override
|
||||
String get connectionStats => '连接统计';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => '查看服务器连接成功率和历史记录';
|
||||
|
||||
@override
|
||||
String get container => '容器';
|
||||
|
||||
@@ -137,6 +171,18 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get disconnected => '已断开连接';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => '发现SSH服务器';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => '发现失败';
|
||||
|
||||
@override
|
||||
String get discoverySettings => '发现设置';
|
||||
|
||||
@override
|
||||
String get discoverySummary => '发现摘要';
|
||||
|
||||
@override
|
||||
String get disk => '磁盘';
|
||||
|
||||
@@ -188,15 +234,18 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get editVirtKeys => '编辑虚拟按键';
|
||||
|
||||
@override
|
||||
String get editor => '编辑器';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip => '代码高亮功能可能影响性能,可选择关闭。';
|
||||
|
||||
@override
|
||||
String get emulator => '模拟器';
|
||||
|
||||
@override
|
||||
String get enableMdns => '启用mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => '使用mDNS/Bonjour发现SSH服务';
|
||||
|
||||
@override
|
||||
String get encode => '编码';
|
||||
|
||||
@@ -228,10 +277,10 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => '跟随系统';
|
||||
String get finishedAt => '完成于';
|
||||
|
||||
@override
|
||||
String get font => '字体';
|
||||
String get followSystem => '跟随系统';
|
||||
|
||||
@override
|
||||
String get fontSize => '字体大小';
|
||||
@@ -263,6 +312,12 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get highlight => '代码高亮';
|
||||
|
||||
@override
|
||||
String get homeTabs => '主页标签';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => '自定义主页上显示的标签及其顺序';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => '桌面部件链接配置';
|
||||
|
||||
@@ -283,9 +338,6 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get imagesList => '镜像列表';
|
||||
|
||||
@override
|
||||
String get init => '初始化';
|
||||
|
||||
@override
|
||||
String get inner => '内置';
|
||||
|
||||
@@ -314,15 +366,18 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get keyAuth => '密钥认证';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最后失败';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最后成功';
|
||||
|
||||
@override
|
||||
String get letterCache => '输入法字符缓存';
|
||||
|
||||
@override
|
||||
String get letterCacheTip => '推荐关闭,但是关闭后无法输入 CJK 等文字';
|
||||
|
||||
@override
|
||||
String get license => '证书';
|
||||
|
||||
@override
|
||||
String get location => '位置';
|
||||
|
||||
@@ -335,10 +390,10 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => '手动';
|
||||
String get max => '最大';
|
||||
|
||||
@override
|
||||
String get max => '最大';
|
||||
String get maxConcurrency => '最大并发数';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => '服务器尝试重连次数';
|
||||
@@ -378,6 +433,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get newContainer => '新建容器';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '暂无连接统计数据';
|
||||
|
||||
@override
|
||||
String get noLineChart => '不使用折线图';
|
||||
|
||||
@@ -443,9 +501,6 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get preferDiskAmount => '优先显示硬盘容量';
|
||||
|
||||
@override
|
||||
String get preview => '预览';
|
||||
|
||||
@override
|
||||
String get privateKey => '私钥';
|
||||
|
||||
@@ -473,6 +528,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get reboot => '重启';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近连接记录';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => '在内存中记住密码';
|
||||
|
||||
@@ -533,6 +591,12 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get serverOrder => '服务器顺序';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => '服务器标签不能被移除';
|
||||
|
||||
@override
|
||||
String get servers => '服务器';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => '准备连接至服务器...';
|
||||
|
||||
@@ -671,9 +735,6 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
return '切换到 $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => '同步';
|
||||
|
||||
@override
|
||||
String get syncTip => '可能需要重新启动,某些更改才能生效。';
|
||||
|
||||
@@ -683,6 +744,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get tag => '标签';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery => '点击搜索按钮发现网络中的SSH服务器';
|
||||
|
||||
@override
|
||||
String get temperature => '温度';
|
||||
|
||||
@@ -713,6 +777,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get total => '总共';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '总次数';
|
||||
|
||||
@override
|
||||
String get traffic => '流量';
|
||||
|
||||
@@ -737,9 +804,6 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get updateServerStatusInterval => '服务器状态刷新间隔';
|
||||
|
||||
@override
|
||||
String get upload => '上传';
|
||||
|
||||
@override
|
||||
String get upsideDown => '上下交换';
|
||||
|
||||
@@ -764,6 +828,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get view => '视图';
|
||||
|
||||
@override
|
||||
String get viewDetails => '查看详情';
|
||||
|
||||
@override
|
||||
String get viewErr => '查看错误';
|
||||
|
||||
@@ -803,70 +870,6 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。';
|
||||
|
||||
@override
|
||||
String get connectionStats => '连接统计';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => '查看服务器连接成功率和历史记录';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '暂无连接统计数据';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '总次数';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最后成功';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最后失败';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近连接记录';
|
||||
|
||||
@override
|
||||
String get viewDetails => '查看详情';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '连接详情';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => '清空此服务器统计';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => '清空所有统计';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => '确定要清空所有服务器的连接统计数据吗?此操作无法撤销。';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '清空 $serverName 统计';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '确定要清空服务器 \"$serverName\" 的连接统计数据吗?此操作无法撤销。';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => '主页标签';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => '自定义主页上显示的标签及其顺序';
|
||||
|
||||
@override
|
||||
String get reset => '重置';
|
||||
|
||||
@override
|
||||
String get availableTabs => '可用标签';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '至少需要选择一个标签';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => '服务器标签不能被移除';
|
||||
}
|
||||
|
||||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||||
@@ -891,6 +894,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get alreadyLastDir => '已是頂層目錄';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '至少需要選擇一個標籤';
|
||||
|
||||
@override
|
||||
String get authFailTip => '認證失敗,請檢查連線資訊是否正確';
|
||||
|
||||
@@ -906,6 +912,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get autoUpdateHomeWidget => '自動更新桌面小工具';
|
||||
|
||||
@override
|
||||
String get availableTabs => '可用標籤';
|
||||
|
||||
@override
|
||||
String get backupEncrypted => '備份已加密';
|
||||
|
||||
@@ -943,6 +952,25 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
String get bgRunTip =>
|
||||
'此開關僅代表程式會嘗試於背景執行,能否成功取決於系統權限。在原生 Android 上,請關閉本應用的「電池最佳化」;在 MIUI / HyperOS 上,請將省電策略調整為「無限制」。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => '確定要清空所有伺服器的連線統計資料嗎?此操作無法撤銷。';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => '清空所有統計';
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '確定要清空伺服器 \"$serverName\" 的連線統計資料嗎?此操作無法撤銷。';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '清空 $serverName 統計';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => '清空此伺服器統計';
|
||||
|
||||
@override
|
||||
String get closeAfterSave => '儲存後關閉';
|
||||
|
||||
@@ -955,6 +983,15 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get conn => '連線';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '連線詳情';
|
||||
|
||||
@override
|
||||
String get connectionStats => '連線統計';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => '檢視伺服器連線成功率和歷史記錄';
|
||||
|
||||
@override
|
||||
String get container => '容器';
|
||||
|
||||
@@ -1002,6 +1039,18 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get disconnected => '已中斷連線';
|
||||
|
||||
@override
|
||||
String get discoverSshServers => '發現SSH服務器';
|
||||
|
||||
@override
|
||||
String get discoveryFailed => '發現失敗';
|
||||
|
||||
@override
|
||||
String get discoverySettings => '發現設定';
|
||||
|
||||
@override
|
||||
String get discoverySummary => '發現摘要';
|
||||
|
||||
@override
|
||||
String get disk => '磁碟';
|
||||
|
||||
@@ -1053,15 +1102,18 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get editVirtKeys => '編輯虛擬按鍵';
|
||||
|
||||
@override
|
||||
String get editor => '編輯器';
|
||||
|
||||
@override
|
||||
String get editorHighlightTip => '程式碼高亮功能可能影響效能,可選擇性關閉。';
|
||||
|
||||
@override
|
||||
String get emulator => '模擬器';
|
||||
|
||||
@override
|
||||
String get enableMdns => '啟用mDNS';
|
||||
|
||||
@override
|
||||
String get enableMdnsDesc => '使用mDNS/Bonjour發現SSH服務';
|
||||
|
||||
@override
|
||||
String get encode => '編碼';
|
||||
|
||||
@@ -1093,10 +1145,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
}
|
||||
|
||||
@override
|
||||
String get followSystem => '跟隨系統';
|
||||
String get finishedAt => '完成於';
|
||||
|
||||
@override
|
||||
String get font => '字型';
|
||||
String get followSystem => '跟隨系統';
|
||||
|
||||
@override
|
||||
String get fontSize => '字型大小';
|
||||
@@ -1128,6 +1180,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get highlight => '程式碼標記';
|
||||
|
||||
@override
|
||||
String get homeTabs => '主頁標籤';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => '自訂主頁上顯示的標籤及其順序';
|
||||
|
||||
@override
|
||||
String get homeWidgetUrlConfig => '桌面小工具連結配置';
|
||||
|
||||
@@ -1148,9 +1206,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get imagesList => '映像檔列表';
|
||||
|
||||
@override
|
||||
String get init => '初始化';
|
||||
|
||||
@override
|
||||
String get inner => '內建';
|
||||
|
||||
@@ -1179,15 +1234,18 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get keyAuth => '金鑰認證';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最後失敗';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最後成功';
|
||||
|
||||
@override
|
||||
String get letterCache => '輸入法字符快取';
|
||||
|
||||
@override
|
||||
String get letterCacheTip => '建議關閉,但關閉後將無法輸入 CJK 等文字。';
|
||||
|
||||
@override
|
||||
String get license => '憑證';
|
||||
|
||||
@override
|
||||
String get location => '位置';
|
||||
|
||||
@@ -1200,10 +1258,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
}
|
||||
|
||||
@override
|
||||
String get manual => '手動';
|
||||
String get max => '最大';
|
||||
|
||||
@override
|
||||
String get max => '最大';
|
||||
String get maxConcurrency => '最大並發數';
|
||||
|
||||
@override
|
||||
String get maxRetryCount => '伺服器嘗試重連次數';
|
||||
@@ -1243,6 +1301,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get newContainer => '新建容器';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '暫無連線統計資料';
|
||||
|
||||
@override
|
||||
String get noLineChart => '不使用折線圖';
|
||||
|
||||
@@ -1308,9 +1369,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get preferDiskAmount => '優先顯示硬碟容量';
|
||||
|
||||
@override
|
||||
String get preview => '預覽';
|
||||
|
||||
@override
|
||||
String get privateKey => '私鑰';
|
||||
|
||||
@@ -1338,6 +1396,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get reboot => '重開';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近連線記錄';
|
||||
|
||||
@override
|
||||
String get rememberPwdInMem => '在記憶體中記住密碼';
|
||||
|
||||
@@ -1398,6 +1459,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get serverOrder => '伺服器順序';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => '服務器標籤不能被移除';
|
||||
|
||||
@override
|
||||
String get servers => '服務器';
|
||||
|
||||
@override
|
||||
String get sftpDlPrepare => '準備連線至伺服器...';
|
||||
|
||||
@@ -1536,9 +1603,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
return '切換到 $val';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sync => '同步';
|
||||
|
||||
@override
|
||||
String get syncTip => '可能需要重新啟動,某些更改才能生效。';
|
||||
|
||||
@@ -1548,6 +1612,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get tag => '標籤';
|
||||
|
||||
@override
|
||||
String get tapToStartDiscovery => '點擊搜尋按鈕發現網路中的SSH服務器';
|
||||
|
||||
@override
|
||||
String get temperature => '溫度';
|
||||
|
||||
@@ -1578,6 +1645,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get total => '總共';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '總次數';
|
||||
|
||||
@override
|
||||
String get traffic => '流量';
|
||||
|
||||
@@ -1602,9 +1672,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get updateServerStatusInterval => '伺服器狀態更新間隔';
|
||||
|
||||
@override
|
||||
String get upload => '上傳';
|
||||
|
||||
@override
|
||||
String get upsideDown => '上下交換';
|
||||
|
||||
@@ -1629,6 +1696,9 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get view => '檢視';
|
||||
|
||||
@override
|
||||
String get viewDetails => '檢視詳情';
|
||||
|
||||
@override
|
||||
String get viewErr => '查看錯誤';
|
||||
|
||||
@@ -1668,68 +1738,4 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||||
@override
|
||||
String get writeScriptTip =>
|
||||
'連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。';
|
||||
|
||||
@override
|
||||
String get connectionStats => '連線統計';
|
||||
|
||||
@override
|
||||
String get connectionStatsDesc => '檢視伺服器連線成功率和歷史記錄';
|
||||
|
||||
@override
|
||||
String get noConnectionStatsData => '暫無連線統計資料';
|
||||
|
||||
@override
|
||||
String get totalAttempts => '總次數';
|
||||
|
||||
@override
|
||||
String get lastSuccess => '最後成功';
|
||||
|
||||
@override
|
||||
String get lastFailure => '最後失敗';
|
||||
|
||||
@override
|
||||
String get recentConnections => '最近連線記錄';
|
||||
|
||||
@override
|
||||
String get viewDetails => '檢視詳情';
|
||||
|
||||
@override
|
||||
String get connectionDetails => '連線詳情';
|
||||
|
||||
@override
|
||||
String get clearThisServerStats => '清空此伺服器統計';
|
||||
|
||||
@override
|
||||
String get clearAllStatsTitle => '清空所有統計';
|
||||
|
||||
@override
|
||||
String get clearAllStatsContent => '確定要清空所有伺服器的連線統計資料嗎?此操作無法撤銷。';
|
||||
|
||||
@override
|
||||
String clearServerStatsTitle(String serverName) {
|
||||
return '清空 $serverName 統計';
|
||||
}
|
||||
|
||||
@override
|
||||
String clearServerStatsContent(String serverName) {
|
||||
return '確定要清空伺服器 \"$serverName\" 的連線統計資料嗎?此操作無法撤銷。';
|
||||
}
|
||||
|
||||
@override
|
||||
String get homeTabs => '主頁標籤';
|
||||
|
||||
@override
|
||||
String get homeTabsCustomizeDesc => '自訂主頁上顯示的標籤及其順序';
|
||||
|
||||
@override
|
||||
String get reset => '重置';
|
||||
|
||||
@override
|
||||
String get availableTabs => '可用標籤';
|
||||
|
||||
@override
|
||||
String get atLeastOneTab => '至少需要選擇一個標籤';
|
||||
|
||||
@override
|
||||
String get serverTabRequired => '服務器標籤不能被移除';
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ final class _IntroPage extends StatelessWidget {
|
||||
padding: _introListPad,
|
||||
children: [
|
||||
SizedBox(height: padTop),
|
||||
IntroPage.title(text: l10n.init, big: true),
|
||||
IntroPage.title(text: libL10n.init, big: true),
|
||||
SizedBox(height: padTop),
|
||||
// Prompt to set backup password after migration or on first launch
|
||||
ListTile(
|
||||
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "de",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Vielen Dank an die folgenden Personen, die daran teilgenommen haben.\n",
|
||||
"acceptBeta": "Akzeptieren Sie Testversion-Updates",
|
||||
"addSystemPrivateKeyTip": "Derzeit haben Sie keinen privaten Schlüssel, fügen Sie den Schlüssel hinzu, der mit dem System geliefert wird (~/.ssh/id_rsa)?",
|
||||
"added2List": "Zur Aufgabenliste hinzugefügt",
|
||||
"addr": "Adresse",
|
||||
"alreadyLastDir": "Bereits im letzten Verzeichnis.",
|
||||
"atLeastOneTab": "Mindestens ein Tab muss ausgewählt sein",
|
||||
"authFailTip": "Authentifizierung fehlgeschlagen, bitte überprüfen Sie, ob das Passwort/Schlüssel/Host/Benutzer usw. falsch sind.",
|
||||
"autoBackupConflict": "Es kann nur eine automatische Sicherung gleichzeitig aktiviert werden.",
|
||||
"autoConnect": "Automatisch verbinden",
|
||||
"autoRun": "Automatischer Start",
|
||||
"autoUpdateHomeWidget": "Home-Widget automatisch aktualisieren",
|
||||
"availableTabs": "Verfügbare Tabs",
|
||||
"backupEncrypted": "Backup ist verschlüsselt",
|
||||
"backupNotEncrypted": "Backup ist nicht verschlüsselt",
|
||||
"backupPassword": "Backup-Passwort",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Batterie",
|
||||
"bgRun": "Hintergrundaktualisierung",
|
||||
"bgRunTip": "Dieser Schalter bedeutet nur, dass die App versuchen wird, im Hintergrund zu laufen. Ob sie im Hintergrund laufen kann, hängt davon ab, ob die Berechtigungen aktiviert sind oder nicht. Bei nativem Android deaktivieren Sie bitte \"Batterieoptimierung\" in dieser App, und bei miui ändern Sie bitte die Energiesparrichtlinie auf \"Unbegrenzt\".",
|
||||
"clearAllStatsContent": "Sind Sie sicher, dass Sie alle Server-Verbindungsstatistiken löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"clearAllStatsTitle": "Alle Statistiken löschen",
|
||||
"clearServerStatsContent": "Sind Sie sicher, dass Sie die Verbindungsstatistiken für Server \"{serverName}\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"clearServerStatsTitle": "{serverName} Statistiken löschen",
|
||||
"clearThisServerStats": "Statistiken dieses Servers löschen",
|
||||
"closeAfterSave": "Speichern und schließen",
|
||||
"cmd": "Command",
|
||||
"collapseUITip": "Ob lange Listen in der Benutzeroberfläche standardmäßig eingeklappt werden sollen oder nicht",
|
||||
"conn": "Verbindung",
|
||||
"connectionDetails": "Verbindungsdetails",
|
||||
"connectionStats": "Verbindungsstatistiken",
|
||||
"connectionStatsDesc": "Server-Verbindungserfolgsrate und Verlauf anzeigen",
|
||||
"container": "Container",
|
||||
"containerTrySudoTip": "Zum Beispiel: In der App ist der Benutzer auf aaa eingestellt, aber Docker ist unter dem Root-Benutzer installiert. In diesem Fall müssen Sie diese Option aktivieren",
|
||||
"convert": "Konvertieren",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Befehl zum Öffnen des Terminal-Emulators beim Starten von SSH-Sitzungen.",
|
||||
"dirEmpty": "Stelle sicher, dass der Ordner leer ist.",
|
||||
"disconnected": "Disconnected",
|
||||
"discoverSshServers": "SSH-Server entdecken",
|
||||
"discoveryFailed": "Entdeckung fehlgeschlagen",
|
||||
"discoverySettings": "Entdeckungseinstellungen",
|
||||
"discoverySummary": "Entdeckungs-Zusammenfassung",
|
||||
"disk": "Festplatte",
|
||||
"diskHealth": "Festplattengesundheit",
|
||||
"diskIgnorePath": "Pfad für Datenträger ignorieren",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Doppelspaltiger Modus",
|
||||
"doubleColumnTip": "Diese Option aktiviert nur die Funktion, ob sie tatsächlich aktiviert werden kann, hängt auch von der Breite des Geräts ab",
|
||||
"editVirtKeys": "Virtuelle Tasten bearbeiten",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "Die Leistung der aktuellen Codehervorhebung ist schlechter und kann zur Verbesserung optional ausgeschaltet werden.",
|
||||
"emulator": "Emulator",
|
||||
"enableMdns": "mDNS aktivieren",
|
||||
"enableMdnsDesc": "mDNS/Bonjour verwenden, um SSH-Dienste zu entdecken",
|
||||
"encode": "Encode",
|
||||
"envVars": "Umgebungsvariable",
|
||||
"experimentalFeature": "Experimentelles Feature",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Vordergrund-Dienst",
|
||||
"fgServiceTip": "Nach dem Einschalten kann es bei einigen Gerätemodellen zu Abstürzen kommen. Das Ausschalten kann bei einigen Modellen dazu führen, dass SSH-Verbindungen im Hintergrund nicht aufrechterhalten werden können. Bitte erlauben Sie ServerBox in den Systemeinstellungen Benachrichtigungsrechte, Hintergrundausführung und Selbstaktivierung.",
|
||||
"fileTooLarge": "Datei '{file}' ist zu groß {size}, max {sizeMax}",
|
||||
"finishedAt": "Beendet um",
|
||||
"followSystem": "System verfolgen",
|
||||
"font": "Schriftarten",
|
||||
"fontSize": "Schriftgröße",
|
||||
"force": "freiwillig",
|
||||
"fullScreen": "Vollbildmodus",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Pfad öffnen",
|
||||
"hideTitleBar": "Titelleiste ausblenden",
|
||||
"highlight": "Code highlight",
|
||||
"homeTabs": "Home-Tabs",
|
||||
"homeTabsCustomizeDesc": "Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge",
|
||||
"homeWidgetUrlConfig": "Home-Widget-Link konfigurieren",
|
||||
"host": "Host",
|
||||
"httpFailedWithCode": "Anfrage fehlgeschlagen, Statuscode: {code}",
|
||||
"ignoreCert": "Zertifikat ignorieren",
|
||||
"image": "Image",
|
||||
"imagesList": "Images",
|
||||
"init": "Initialisieren",
|
||||
"inner": "Eingebaut",
|
||||
"install": "install",
|
||||
"installDockerWithUrl": "Bitte installiere docker zuerst. https://docs.docker.com/engine/install",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Den letzten Serverstatus beibehalten",
|
||||
"keepStatusWhenErrTip": "Nur im Fehlerfall während der Ausführung des Skripts",
|
||||
"keyAuth": "Schlüsselauthentifzierung",
|
||||
"lastFailure": "Letzter Fehler",
|
||||
"lastSuccess": "Letzter Erfolg",
|
||||
"letterCache": "Buchstaben-Caching",
|
||||
"letterCacheTip": "Empfohlen, zu deaktivieren, aber nach dem Deaktivieren können keine CJK-Zeichen eingegeben werden.",
|
||||
"license": "Lizenzen",
|
||||
"location": "Standort",
|
||||
"loss": "loss",
|
||||
"madeWithLove": "Erstellt mit ❤️ von {myGithub}",
|
||||
"manual": "Handbuch",
|
||||
"max": "max",
|
||||
"maxConcurrency": "Maximale Gleichzeitigkeit",
|
||||
"maxRetryCount": "Anzahl an Verbindungsversuchen",
|
||||
"maxRetryCountEqual0": "Unbegrenzte Verbindungsversuche zum Server",
|
||||
"min": "min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Netzwerk",
|
||||
"netViewType": "Netzwerkansicht Typ",
|
||||
"newContainer": "Neuer Container",
|
||||
"noConnectionStatsData": "Keine Verbindungsstatistikdaten",
|
||||
"noLineChart": "Verwenden Sie keine Liniendiagramme",
|
||||
"noLineChartForCpu": "Verwenden Sie keine Liniendiagramme für CPU",
|
||||
"noPrivateKeyTip": "Der private Schlüssel existiert nicht, möglicherweise wurde er gelöscht oder es liegt ein Konfigurationsfehler vor.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Einfügetyp",
|
||||
"port": "Port",
|
||||
"preferDiskAmount": "Festplattenkapazität vorrangig anzeigen",
|
||||
"preview": "Vorschau",
|
||||
"privateKey": "Private Key",
|
||||
"process": "Prozess",
|
||||
"prune": "Beschneiden",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Diese Funktion befindet sich derzeit in der Testphase und wurde nur auf PVE 8+ getestet. Bitte verwenden Sie sie mit Vorsicht.",
|
||||
"read": "Lesen",
|
||||
"reboot": "Neustart",
|
||||
"recentConnections": "Kürzliche Verbindungen",
|
||||
"rememberPwdInMem": "Passwort im Speicher behalten",
|
||||
"rememberPwdInMemTip": "Für Container, Aufhängen usw.",
|
||||
"rememberWindowSize": "Fenstergröße merken",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Reihenfolge der Widgets auf der Detailseite",
|
||||
"serverFuncBtns": "Server-Funktionsschaltflächen",
|
||||
"serverOrder": "Server-Bestellung",
|
||||
"serverTabRequired": "Server-Tab kann nicht entfernt werden",
|
||||
"servers": "Server",
|
||||
"sftpDlPrepare": "Verbindung vorbereiten...",
|
||||
"sftpEditorTip": "Wenn leer, verwenden Sie den im App integrierten Dateieditor. Wenn ein Wert vorhanden ist, wird der Editor des Remote-Servers verwendet, z.B. `vim` (es wird empfohlen, automatisch gemäß `EDITOR` zu ermitteln).",
|
||||
"sftpRmrDirSummary": "Verwenden Sie \"rm -r\", um das Verzeichnis in SFTP zu löschen.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspend",
|
||||
"suspendTip": "Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.",
|
||||
"switchTo": "Wechseln zu {val}",
|
||||
"sync": "Sync",
|
||||
"syncTip": "Damit einige Änderungen wirksam werden, kann ein Neustart erforderlich sein.",
|
||||
"system": "Systeme",
|
||||
"tag": "Tags",
|
||||
"tapToStartDiscovery": "Tippen Sie auf die Suche-Schaltfläche, um SSH-Server in Ihrem Netzwerk zu entdecken",
|
||||
"temperature": "Temperatur",
|
||||
"termFontSizeTip": "Diese Einstellung beeinflusst die Größe des Terminals (Breite und Höhe). Sie können die Terminalseite zoomen, um die Schriftgröße der aktuellen Sitzung anzupassen.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Zeit",
|
||||
"times": "x",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Gesamt",
|
||||
"traffic": "Durchflussmenge",
|
||||
"trySudo": "Versuche es mit sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Update",
|
||||
"updateIntervalEqual0": "Wenn du den Wert 0 einstellst, wird nicht automatisch aktualisiert.\nDer CPU-Status kann nicht berechnet werden.",
|
||||
"updateServerStatusInterval": "Aktualisierungsintervall des Serverstatus",
|
||||
"upload": "Hochladen",
|
||||
"upsideDown": "Upside Down",
|
||||
"uptime": "Betriebszeit",
|
||||
"useCdn": "Verwenden von CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Standardmäßige Verwendung von Podman",
|
||||
"used": "Gebraucht",
|
||||
"view": "Ansicht",
|
||||
"viewDetails": "Details anzeigen",
|
||||
"viewErr": "Fehler anzeigen",
|
||||
"virtKeyHelpClipboard": "In die Zwischenablage kopieren, wenn das ausgewählte Terminal nicht leer ist, andernfalls den Inhalt der Zwischenablage in das Terminal einfügen.",
|
||||
"virtKeyHelpIME": "Tastatur ein-/ausschalten",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Nach der Konfiguration von WOL (Wake-on-LAN) wird jedes Mal, wenn der Server verbunden wird, eine WOL-Anfrage gesendet.",
|
||||
"write": "Schreiben",
|
||||
"writeScriptFailTip": "Das Schreiben des Skripts ist fehlgeschlagen, möglicherweise aufgrund fehlender Berechtigungen oder das Verzeichnis existiert nicht.",
|
||||
"writeScriptTip": "Nach der Verbindung mit dem Server wird ein Skript in `~/.config/server_box` \n | `/tmp/server_box` geschrieben, um den Systemstatus zu überwachen. Sie können den Skriptinhalt überprüfen.",
|
||||
"connectionStats": "Verbindungsstatistiken",
|
||||
"connectionStatsDesc": "Server-Verbindungserfolgsrate und Verlauf anzeigen",
|
||||
"noConnectionStatsData": "Keine Verbindungsstatistikdaten",
|
||||
"totalAttempts": "Gesamt",
|
||||
"lastSuccess": "Letzter Erfolg",
|
||||
"lastFailure": "Letzter Fehler",
|
||||
"recentConnections": "Kürzliche Verbindungen",
|
||||
"viewDetails": "Details anzeigen",
|
||||
"connectionDetails": "Verbindungsdetails",
|
||||
"clearThisServerStats": "Statistiken dieses Servers löschen",
|
||||
"clearAllStatsTitle": "Alle Statistiken löschen",
|
||||
"clearAllStatsContent": "Sind Sie sicher, dass Sie alle Server-Verbindungsstatistiken löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"clearServerStatsTitle": "{serverName} Statistiken löschen",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Sind Sie sicher, dass Sie die Verbindungsstatistiken für Server \"{serverName}\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Home-Tabs",
|
||||
"homeTabsCustomizeDesc": "Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge",
|
||||
"reset": "Zurücksetzen",
|
||||
"availableTabs": "Verfügbare Tabs",
|
||||
"atLeastOneTab": "Mindestens ein Tab muss ausgewählt sein",
|
||||
"serverTabRequired": "Server-Tab kann nicht entfernt werden"
|
||||
"writeScriptTip": "Nach der Verbindung mit dem Server wird ein Skript in `~/.config/server_box` \n | `/tmp/server_box` geschrieben, um den Systemstatus zu überwachen. Sie können den Skriptinhalt überprüfen."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "en",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Thanks to the following people who participated in.",
|
||||
"acceptBeta": "Accept beta version updates",
|
||||
"addSystemPrivateKeyTip": "Currently private keys don't exist, do you want to add the one that comes with the system (~/.ssh/id_rsa)?",
|
||||
"added2List": "Added to task list",
|
||||
"addr": "Address",
|
||||
"alreadyLastDir": "Already in last directory.",
|
||||
"atLeastOneTab": "At least one tab must be selected",
|
||||
"authFailTip": "Authentication failed, please check whether credentials are correct",
|
||||
"autoBackupConflict": "Only one automatic backup can be turned on at the same time.",
|
||||
"autoConnect": "Auto connect",
|
||||
"autoRun": "Auto run",
|
||||
"autoUpdateHomeWidget": "Automatic home widget update",
|
||||
"availableTabs": "Available Tabs",
|
||||
"backupEncrypted": "Backup is encrypted",
|
||||
"backupNotEncrypted": "Backup is not encrypted",
|
||||
"backupPassword": "Backup password",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Battery",
|
||||
"bgRun": "Run in background",
|
||||
"bgRunTip": "This switch only means the program will try to run in the background. Whether it can run in the background depends on whether the permission is enabled or not. For AOSP-based Android ROMs, please disable \"Battery Optimization\" in this app. For MIUI / HyperOS, please change the power saving policy to \"Unlimited\".",
|
||||
"clearAllStatsContent": "Are you sure you want to clear all server connection statistics? This action cannot be undone.",
|
||||
"clearAllStatsTitle": "Clear All Statistics",
|
||||
"clearServerStatsContent": "Are you sure you want to clear connection statistics for server \"{serverName}\"? This action cannot be undone.",
|
||||
"clearServerStatsTitle": "Clear {serverName} Statistics",
|
||||
"clearThisServerStats": "Clear This Server Statistics",
|
||||
"closeAfterSave": "Save and close",
|
||||
"cmd": "Command",
|
||||
"collapseUITip": "Whether to collapse long lists present in the UI by default",
|
||||
"conn": "Connection",
|
||||
"connectionDetails": "Connection Details",
|
||||
"connectionStats": "Connection Statistics",
|
||||
"connectionStatsDesc": "View server connection success rate and history",
|
||||
"container": "Container",
|
||||
"containerTrySudoTip": "For example: In the app, the user is set to aaa, but Docker is installed under the root user. In this case, you need to enable this option.",
|
||||
"convert": "Convert",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Command used to open the terminal emulator when launching SSH sessions.",
|
||||
"dirEmpty": "Make sure the folder is empty.",
|
||||
"disconnected": "Disconnected",
|
||||
"discoverSshServers": "Discover SSH Servers",
|
||||
"discoveryFailed": "Discovery failed",
|
||||
"discoverySettings": "Discovery Settings",
|
||||
"discoverySummary": "Discovery Summary",
|
||||
"disk": "Disk",
|
||||
"diskHealth": "Disk Health",
|
||||
"diskIgnorePath": "Ignore path for disk",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Double column mode",
|
||||
"doubleColumnTip": "This option only enables the feature, whether it can actually be enabled depends on the width of the device",
|
||||
"editVirtKeys": "Edit virtual keys",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "The current code highlighting performance is not ideal and can be optionally turned off to improve.",
|
||||
"emulator": "Emulator",
|
||||
"enableMdns": "Enable mDNS",
|
||||
"enableMdnsDesc": "Use mDNS/Bonjour to discover SSH services",
|
||||
"encode": "Encode",
|
||||
"envVars": "Environment variable",
|
||||
"experimentalFeature": "Experimental feature",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Foreground Service",
|
||||
"fgServiceTip": "After enabling, some device models may crash. Disabling it may cause some models to be unable to maintain SSH connections in the background. Please allow ServerBox notification permissions, background running, and self-wake-up in system settings.",
|
||||
"fileTooLarge": "File '{file}' too large {size}, max {sizeMax}",
|
||||
"finishedAt": "Finished at",
|
||||
"followSystem": "Follow system",
|
||||
"font": "Font",
|
||||
"fontSize": "Font size",
|
||||
"force": "Force",
|
||||
"fullScreen": "Full screen mode",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Go to",
|
||||
"hideTitleBar": "Hide title bar",
|
||||
"highlight": "Code highlighting",
|
||||
"homeTabs": "Home Tabs",
|
||||
"homeTabsCustomizeDesc": "Customize which tabs appear on the home page and their order",
|
||||
"homeWidgetUrlConfig": "Config home widget url",
|
||||
"host": "Host",
|
||||
"httpFailedWithCode": "request failed, status code: {code}",
|
||||
"ignoreCert": "Ignore certificate",
|
||||
"image": "Image",
|
||||
"imagesList": "Images list",
|
||||
"init": "Initialize",
|
||||
"inner": "Inner",
|
||||
"install": "install",
|
||||
"installDockerWithUrl": "Please https://docs.docker.com/engine/install docker first.",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Preserve the last server state",
|
||||
"keepStatusWhenErrTip": "Only in the event of an error during script execution",
|
||||
"keyAuth": "Key Auth",
|
||||
"lastFailure": "Last Failure",
|
||||
"lastSuccess": "Last Success",
|
||||
"letterCache": "Letter caching",
|
||||
"letterCacheTip": "Recommended to disable, but after disabling, it will be impossible to input CJK characters.",
|
||||
"license": "License",
|
||||
"location": "Location",
|
||||
"loss": "loss",
|
||||
"madeWithLove": "Made with ❤️ by {myGithub}",
|
||||
"manual": "Manual",
|
||||
"max": "max",
|
||||
"maxConcurrency": "Max Concurrency",
|
||||
"maxRetryCount": "Number of server reconnections",
|
||||
"maxRetryCountEqual0": "Will retry again and again.",
|
||||
"min": "min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Network",
|
||||
"netViewType": "Network view type",
|
||||
"newContainer": "New container",
|
||||
"noConnectionStatsData": "No connection statistics data",
|
||||
"noLineChart": "Do not use line charts",
|
||||
"noLineChartForCpu": "Do not use line charts for CPU",
|
||||
"noPrivateKeyTip": "The private key does not exist, it may have been deleted or there is a configuration error.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Insertion Type",
|
||||
"port": "Port",
|
||||
"preferDiskAmount": "Prioritize displaying disk capacity",
|
||||
"preview": "Preview",
|
||||
"privateKey": "Private Key",
|
||||
"process": "Process",
|
||||
"prune": "Prune",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "This feature is currently in the testing phase and has only been tested on PVE 8+. Please use it with caution.",
|
||||
"read": "Read",
|
||||
"reboot": "Reboot",
|
||||
"recentConnections": "Recent Connections",
|
||||
"rememberPwdInMem": "Remember password in memory",
|
||||
"rememberPwdInMemTip": "Used for containers, suspending, etc.",
|
||||
"rememberWindowSize": "Remember window size",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Detail page widget order",
|
||||
"serverFuncBtns": "Server function buttons",
|
||||
"serverOrder": "Server order",
|
||||
"serverTabRequired": "Server tab cannot be removed",
|
||||
"servers": "servers",
|
||||
"sftpDlPrepare": "Preparing to connect...",
|
||||
"sftpEditorTip": "If empty, use the built-in file editor of the app. If a value is present, use the remote server’s editor, e.g., `vim` (recommended to automatically detect according to `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Use `rm -r` to delete a folder in SFTP.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspend",
|
||||
"suspendTip": "The suspend function requires root permission and systemd support.",
|
||||
"switchTo": "Switch to {val}",
|
||||
"sync": "Sync",
|
||||
"syncTip": "A restart may be required for some changes to take effect.",
|
||||
"system": "System",
|
||||
"tag": "Tags",
|
||||
"tapToStartDiscovery": "Tap the search button to discover SSH servers on your network",
|
||||
"temperature": "Temperature",
|
||||
"termFontSizeTip": "This setting will affect the terminal size (width and height). You can zoom in on the terminal page to adjust the font size of the current session.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Time",
|
||||
"times": "Times",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Total",
|
||||
"traffic": "Traffic",
|
||||
"trySudo": "Try using sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Update",
|
||||
"updateIntervalEqual0": "You set to 0, will not update automatically.\nCan't calculate CPU status.",
|
||||
"updateServerStatusInterval": "Server status update interval",
|
||||
"upload": "Upload",
|
||||
"upsideDown": "Upside Down",
|
||||
"uptime": "Uptime",
|
||||
"useCdn": "Using CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Use Podman by default",
|
||||
"used": "Used",
|
||||
"view": "View",
|
||||
"viewDetails": "View Details",
|
||||
"viewErr": "See error",
|
||||
"virtKeyHelpClipboard": "Copy to the clipboard if the selected terminal is not empty, otherwise paste the content of the clipboard to the terminal.",
|
||||
"virtKeyHelpIME": "Turn on/off the keyboard",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "After configuring WOL (Wake-on-LAN), a WOL request is sent each time the server is connected.",
|
||||
"write": "Write",
|
||||
"writeScriptFailTip": "Writing to the script failed, possibly due to lack of permissions or the directory does not exist.",
|
||||
"writeScriptTip": "After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content.",
|
||||
"connectionStats": "Connection Statistics",
|
||||
"connectionStatsDesc": "View server connection success rate and history",
|
||||
"noConnectionStatsData": "No connection statistics data",
|
||||
"totalAttempts": "Total",
|
||||
"lastSuccess": "Last Success",
|
||||
"lastFailure": "Last Failure",
|
||||
"recentConnections": "Recent Connections",
|
||||
"viewDetails": "View Details",
|
||||
"connectionDetails": "Connection Details",
|
||||
"clearThisServerStats": "Clear This Server Statistics",
|
||||
"clearAllStatsTitle": "Clear All Statistics",
|
||||
"clearAllStatsContent": "Are you sure you want to clear all server connection statistics? This action cannot be undone.",
|
||||
"clearServerStatsTitle": "Clear {serverName} Statistics",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Are you sure you want to clear connection statistics for server \"{serverName}\"? This action cannot be undone.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Home Tabs",
|
||||
"homeTabsCustomizeDesc": "Customize which tabs appear on the home page and their order",
|
||||
"reset": "Reset",
|
||||
"availableTabs": "Available Tabs",
|
||||
"atLeastOneTab": "At least one tab must be selected",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "es",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Gracias a los siguientes participantes.",
|
||||
"acceptBeta": "Aceptar actualizaciones de la versión de prueba",
|
||||
"addSystemPrivateKeyTip": "Actualmente no hay ninguna llave privada, ¿quieres agregar la que viene por defecto en el sistema (~/.ssh/id_rsa)?",
|
||||
"added2List": "Añadido a la lista de tareas",
|
||||
"addr": "Dirección",
|
||||
"alreadyLastDir": "Ya estás en el directorio superior",
|
||||
"atLeastOneTab": "Al menos una pestaña debe estar seleccionada",
|
||||
"authFailTip": "La autenticación ha fallado, por favor verifica si la contraseña/llave/host/usuario, etc., son incorrectos.",
|
||||
"autoBackupConflict": "Solo se puede activar una copia de seguridad automática a la vez",
|
||||
"autoConnect": "Conexión automática",
|
||||
"autoRun": "Ejecución automática",
|
||||
"autoUpdateHomeWidget": "Actualizar automáticamente el widget del escritorio",
|
||||
"availableTabs": "Pestañas disponibles",
|
||||
"backupEncrypted": "El respaldo está encriptado",
|
||||
"backupNotEncrypted": "El respaldo no está encriptado",
|
||||
"backupPassword": "Contraseña de respaldo",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Batería",
|
||||
"bgRun": "Ejecución en segundo plano",
|
||||
"bgRunTip": "Este interruptor solo indica que la aplicación intentará correr en segundo plano, si puede hacerlo o no depende de si tiene el permiso correspondiente. En Android puro, por favor desactiva la “optimización de batería” para esta app, en MIUI por favor cambia la estrategia de ahorro de energía a “Sin restricciones”.",
|
||||
"clearAllStatsContent": "¿Estás seguro de que quieres limpiar todas las estadísticas de conexión del servidor? Esta acción no se puede deshacer.",
|
||||
"clearAllStatsTitle": "Limpiar todas las estadísticas",
|
||||
"clearServerStatsContent": "¿Estás seguro de que quieres limpiar las estadísticas de conexión del servidor \"{serverName}\"? Esta acción no se puede deshacer.",
|
||||
"clearServerStatsTitle": "Limpiar estadísticas de {serverName}",
|
||||
"clearThisServerStats": "Limpiar estadísticas de este servidor",
|
||||
"closeAfterSave": "Guardar y cerrar",
|
||||
"cmd": "Comando",
|
||||
"collapseUITip": "¿Colapsar por defecto las listas largas en la UI?",
|
||||
"conn": "Conectar",
|
||||
"connectionDetails": "Detalles de conexión",
|
||||
"connectionStats": "Estadísticas de conexión",
|
||||
"connectionStatsDesc": "Ver la tasa de éxito de conexión del servidor e historial",
|
||||
"container": "Contenedor",
|
||||
"containerTrySudoTip": "Por ejemplo: si configuras el usuario dentro de la app como aaa, pero Docker está instalado bajo el usuario root, entonces necesitarás habilitar esta opción",
|
||||
"convert": "Convertir",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Comando utilizado para abrir el emulador de terminal al iniciar sesiones SSH.",
|
||||
"dirEmpty": "Asegúrate de que el directorio esté vacío",
|
||||
"disconnected": "Desconectado",
|
||||
"discoverSshServers": "Descubrir servidores SSH",
|
||||
"discoveryFailed": "Falló el descubrimiento",
|
||||
"discoverySettings": "Configuración de descubrimiento",
|
||||
"discoverySummary": "Resumen del descubrimiento",
|
||||
"disk": "Disco",
|
||||
"diskHealth": "Salud del disco",
|
||||
"diskIgnorePath": "Rutas de disco ignoradas",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Modo de doble columna",
|
||||
"doubleColumnTip": "Esta opción solo habilita la función, si se puede activar o no depende del ancho del dispositivo",
|
||||
"editVirtKeys": "Editar teclas virtuales",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "El rendimiento del resaltado de código es bastante pobre actualmente, puedes elegir desactivarlo para mejorar.",
|
||||
"emulator": "Emulador",
|
||||
"enableMdns": "Habilitar mDNS",
|
||||
"enableMdnsDesc": "Usar mDNS/Bonjour para descubrir servicios SSH",
|
||||
"encode": "Codificar",
|
||||
"envVars": "Variable de entorno",
|
||||
"experimentalFeature": "Función experimental",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Servicio en primer plano",
|
||||
"fgServiceTip": "Después de activarlo, algunos modelos de dispositivos pueden bloquearse. Desactivarlo puede hacer que algunos modelos no puedan mantener las conexiones SSH en segundo plano. Por favor, permita los permisos de notificación de ServerBox, la ejecución en segundo plano y el auto-despertar en la configuración del sistema.",
|
||||
"fileTooLarge": "El archivo '{file}' es demasiado grande '{size}', supera el {sizeMax}",
|
||||
"finishedAt": "Terminado en",
|
||||
"followSystem": "Seguir al sistema",
|
||||
"font": "Fuente",
|
||||
"fontSize": "Tamaño de fuente",
|
||||
"force": "Forzar",
|
||||
"fullScreen": "Modo pantalla completa",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Ir a",
|
||||
"hideTitleBar": "Ocultar barra de título",
|
||||
"highlight": "Resaltar código",
|
||||
"homeTabs": "Pestañas de inicio",
|
||||
"homeTabsCustomizeDesc": "Personaliza qué pestañas aparecen en la página de inicio y su orden",
|
||||
"homeWidgetUrlConfig": "Configuración de URL del widget de inicio",
|
||||
"host": "Anfitrión",
|
||||
"httpFailedWithCode": "Fallo en la solicitud, código de estado: {code}",
|
||||
"ignoreCert": "Ignorar certificado",
|
||||
"image": "Imagen",
|
||||
"imagesList": "Lista de imágenes",
|
||||
"init": "Inicializar",
|
||||
"inner": "Interno",
|
||||
"install": "Instalar",
|
||||
"installDockerWithUrl": "Por favor instala Docker primero desde https://docs.docker.com/engine/install",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Mantener el estado anterior del servidor",
|
||||
"keepStatusWhenErrTip": "Solo aplica cuando hay errores al ejecutar scripts",
|
||||
"keyAuth": "Autenticación con llave",
|
||||
"lastFailure": "Último fallo",
|
||||
"lastSuccess": "Último éxito",
|
||||
"letterCache": "Caché de letras",
|
||||
"letterCacheTip": "Recomendado desactivar, pero después de desactivarlo, no se podrán ingresar caracteres CJK.",
|
||||
"license": "Licencia de código abierto",
|
||||
"location": "Ubicación",
|
||||
"loss": "Tasa de pérdida",
|
||||
"madeWithLove": "Hecho con ❤️ por {myGithub}",
|
||||
"manual": "Manual",
|
||||
"max": "Máximo",
|
||||
"maxConcurrency": "Concurrencia máxima",
|
||||
"maxRetryCount": "Número máximo de reintentos de conexión al servidor",
|
||||
"maxRetryCountEqual0": "Reintentará infinitamente",
|
||||
"min": "Mínimo",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Red",
|
||||
"netViewType": "Tipo de vista de red",
|
||||
"newContainer": "Crear contenedor nuevo",
|
||||
"noConnectionStatsData": "No hay datos de estadísticas de conexión",
|
||||
"noLineChart": "No utilice gráficos de líneas",
|
||||
"noLineChartForCpu": "No utilice gráficos lineales para la CPU",
|
||||
"noPrivateKeyTip": "La clave privada no existe, puede haber sido eliminada o hay un error de configuración.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Tipo de inserción",
|
||||
"port": "Puerto",
|
||||
"preferDiskAmount": "Priorizar la visualización de la capacidad del disco",
|
||||
"preview": "Vista previa",
|
||||
"privateKey": "Llave privada",
|
||||
"process": "Proceso",
|
||||
"prune": "Podar",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Esta función está actualmente en fase de prueba y solo se ha probado en PVE 8+. Úsela con precaución.",
|
||||
"read": "Leer",
|
||||
"reboot": "Reiniciar",
|
||||
"recentConnections": "Conexiones recientes",
|
||||
"rememberPwdInMem": "Recordar contraseña en la memoria",
|
||||
"rememberPwdInMemTip": "Utilizado para contenedores, suspensión, etc.",
|
||||
"rememberWindowSize": "Recordar el tamaño de la ventana",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Orden de los componentes en la página de detalles del servidor",
|
||||
"serverFuncBtns": "Botones de función del servidor",
|
||||
"serverOrder": "Orden del servidor",
|
||||
"serverTabRequired": "La pestaña del servidor no se puede eliminar",
|
||||
"servers": "servidores",
|
||||
"sftpDlPrepare": "Preparando para conectar al servidor...",
|
||||
"sftpEditorTip": "Si está vacío, use el editor de archivos incorporado de la aplicación. Si hay un valor, use el editor del servidor remoto, por ejemplo, `vim` (se recomienda detectar automáticamente según `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Usar `rm -r` en SFTP para eliminar directorios",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspender",
|
||||
"suspendTip": "La función de suspender necesita permisos de root y soporte de systemd.",
|
||||
"switchTo": "Cambiar a {val}",
|
||||
"sync": "Sincronizar",
|
||||
"syncTip": "Puede que necesites reiniciar para que algunos cambios tengan efecto.",
|
||||
"system": "Sistema",
|
||||
"tag": "Etiqueta",
|
||||
"tapToStartDiscovery": "Toca el botón de búsqueda para descubrir servidores SSH en tu red",
|
||||
"temperature": "Temperatura",
|
||||
"termFontSizeTip": "Este ajuste afectará el tamaño del terminal (ancho y alto). Puedes hacer zoom en la página del terminal para ajustar el tamaño de fuente de la sesión actual.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Tiempo",
|
||||
"times": "Veces",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Total",
|
||||
"traffic": "Tráfico",
|
||||
"trySudo": "Intentar con sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Actualizar",
|
||||
"updateIntervalEqual0": "Si configuras esto a 0, el estado del servidor no se refrescará automáticamente.\nY no se podrá calcular el uso de CPU.",
|
||||
"updateServerStatusInterval": "Intervalo de actualización del estado del servidor",
|
||||
"upload": "Subir",
|
||||
"upsideDown": "Invertir arriba por abajo",
|
||||
"uptime": "Tiempo de actividad",
|
||||
"useCdn": "Usando CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Usar Podman por defecto",
|
||||
"used": "Usado",
|
||||
"view": "Vista",
|
||||
"viewDetails": "Ver detalles",
|
||||
"viewErr": "Ver error",
|
||||
"virtKeyHelpClipboard": "Si el terminal tiene caracteres seleccionados, entonces copiará los caracteres seleccionados al portapapeles, de lo contrario, pegará el contenido del portapapeles al terminal.",
|
||||
"virtKeyHelpIME": "Encender/apagar el teclado",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Después de configurar WOL (Wake-on-LAN), se envía una solicitud de WOL cada vez que se conecta el servidor.",
|
||||
"write": "Escribir",
|
||||
"writeScriptFailTip": "La escritura en el script falló, posiblemente por falta de permisos o porque el directorio no existe.",
|
||||
"writeScriptTip": "Después de conectarse al servidor, se escribirá un script en `~/.config/server_box` \n | `/tmp/server_box` para monitorear el estado del sistema. Puedes revisar el contenido del script.",
|
||||
"connectionStats": "Estadísticas de conexión",
|
||||
"connectionStatsDesc": "Ver la tasa de éxito de conexión del servidor e historial",
|
||||
"noConnectionStatsData": "No hay datos de estadísticas de conexión",
|
||||
"totalAttempts": "Total",
|
||||
"lastSuccess": "Último éxito",
|
||||
"lastFailure": "Último fallo",
|
||||
"recentConnections": "Conexiones recientes",
|
||||
"viewDetails": "Ver detalles",
|
||||
"connectionDetails": "Detalles de conexión",
|
||||
"clearThisServerStats": "Limpiar estadísticas de este servidor",
|
||||
"clearAllStatsTitle": "Limpiar todas las estadísticas",
|
||||
"clearAllStatsContent": "¿Estás seguro de que quieres limpiar todas las estadísticas de conexión del servidor? Esta acción no se puede deshacer.",
|
||||
"clearServerStatsTitle": "Limpiar estadísticas de {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "¿Estás seguro de que quieres limpiar las estadísticas de conexión del servidor \"{serverName}\"? Esta acción no se puede deshacer.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Pestañas de inicio",
|
||||
"homeTabsCustomizeDesc": "Personaliza qué pestañas aparecen en la página de inicio y su orden",
|
||||
"reset": "Restablecer",
|
||||
"availableTabs": "Pestañas disponibles",
|
||||
"atLeastOneTab": "Al menos una pestaña debe estar seleccionada",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Después de conectarse al servidor, se escribirá un script en `~/.config/server_box` \n | `/tmp/server_box` para monitorear el estado del sistema. Puedes revisar el contenido del script."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "fr",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Merci aux personnes suivantes qui ont participé.",
|
||||
"acceptBeta": "Accepter les mises à jour de la version de test",
|
||||
"addSystemPrivateKeyTip": "Actuellement, vous n'avez aucune clé privée. Souhaitez-vous ajouter celle qui vient avec le système (~/.ssh/id_rsa) ?",
|
||||
"added2List": "Ajouté à la liste des tâches",
|
||||
"addr": "Adresse",
|
||||
"alreadyLastDir": "Déjà dans le dernier répertoire.",
|
||||
"atLeastOneTab": "Au moins un onglet doit être sélectionné",
|
||||
"authFailTip": "Échec de l'authentification. Veuillez vérifier si le mot de passe/clé/hôte/utilisateur, etc., est incorrect.",
|
||||
"autoBackupConflict": "Un seul sauvegarde automatique peut être activé en même temps.",
|
||||
"autoConnect": "Connexion automatique",
|
||||
"autoRun": "Exécution automatique",
|
||||
"autoUpdateHomeWidget": "Mise à jour automatique du widget d'accueil",
|
||||
"availableTabs": "Onglets disponibles",
|
||||
"backupEncrypted": "La sauvegarde est chiffrée",
|
||||
"backupNotEncrypted": "La sauvegarde n'est pas chiffrée",
|
||||
"backupPassword": "Mot de passe de sauvegarde",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Batterie",
|
||||
"bgRun": "Exécution en arrière-plan",
|
||||
"bgRunTip": "Cette option signifie seulement que le programme essaiera de s'exécuter en arrière-plan, que cela soit possible dépend de l'autorisation activée ou non. Pour Android natif, veuillez désactiver l'« Optimisation de la batterie » dans cette application, et pour MIUI, veuillez changer la politique d'économie d'énergie en « Illimité ».",
|
||||
"clearAllStatsContent": "Êtes-vous sûr de vouloir effacer toutes les statistiques de connexion des serveurs ? Cette action ne peut pas être annulée.",
|
||||
"clearAllStatsTitle": "Effacer toutes les statistiques",
|
||||
"clearServerStatsContent": "Êtes-vous sûr de vouloir effacer les statistiques de connexion du serveur \"{serverName}\" ? Cette action ne peut pas être annulée.",
|
||||
"clearServerStatsTitle": "Effacer les statistiques de {serverName}",
|
||||
"clearThisServerStats": "Effacer les statistiques de ce serveur",
|
||||
"closeAfterSave": "Enregistrer et fermer",
|
||||
"cmd": "Commande",
|
||||
"collapseUITip": "Indique si les longues listes présentées dans l'interface utilisateur doivent être réduites par défaut.",
|
||||
"conn": "Connexion",
|
||||
"connectionDetails": "Détails de connexion",
|
||||
"connectionStats": "Statistiques de connexion",
|
||||
"connectionStatsDesc": "Voir le taux de réussite de connexion du serveur et l'historique",
|
||||
"container": "Conteneur",
|
||||
"containerTrySudoTip": "Par exemple : Dans l'application, l'utilisateur est défini comme aaa, mais Docker est installé sous l'utilisateur root. Dans ce cas, vous devez activer cette option.",
|
||||
"convert": "Convertir",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Commande utilisée pour ouvrir l’émulateur de terminal lors du lancement de sessions SSH.",
|
||||
"dirEmpty": "Assurez-vous que le répertoire est vide.",
|
||||
"disconnected": "Déconnecté",
|
||||
"discoverSshServers": "Découvrir les serveurs SSH",
|
||||
"discoveryFailed": "Échec de la découverte",
|
||||
"discoverySettings": "Paramètres de découverte",
|
||||
"discoverySummary": "Résumé de la découverte",
|
||||
"disk": "Disque",
|
||||
"diskHealth": "Santé du disque",
|
||||
"diskIgnorePath": "Chemin à ignorer pour le disque",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Mode double colonne",
|
||||
"doubleColumnTip": "Cette option n'active que la fonctionnalité, qu'elle puisse être activée dépend de la largeur de l'appareil.",
|
||||
"editVirtKeys": "Modifier les touches virtuelles",
|
||||
"editor": "Éditeur",
|
||||
"editorHighlightTip": "La performance actuelle de mise en surbrillance du code est pire et peut être désactivée en option pour s'améliorer.",
|
||||
"emulator": "Émulateur",
|
||||
"enableMdns": "Activer mDNS",
|
||||
"enableMdnsDesc": "Utiliser mDNS/Bonjour pour découvrir les services SSH",
|
||||
"encode": "Encoder",
|
||||
"envVars": "Variable d’environnement",
|
||||
"experimentalFeature": "Fonctionnalité expérimentale",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Service de premier plan",
|
||||
"fgServiceTip": "Après l'activation, certains modèles d'appareils peuvent planter. La désactivation peut empêcher certains modèles de maintenir les connexions SSH en arrière-plan. Veuillez autoriser les permissions de notification ServerBox, l'exécution en arrière-plan et l'auto-réveil dans les paramètres système.",
|
||||
"fileTooLarge": "Fichier '{file}' trop volumineux {size}, max {sizeMax}",
|
||||
"finishedAt": "Terminé à",
|
||||
"followSystem": "Suivre le système",
|
||||
"font": "Police",
|
||||
"fontSize": "Taille de la police",
|
||||
"force": "Forcer",
|
||||
"fullScreen": "Mode plein écran",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Aller à",
|
||||
"hideTitleBar": "Masquer la barre de titre",
|
||||
"highlight": "Mise en surbrillance du code",
|
||||
"homeTabs": "Onglets d'accueil",
|
||||
"homeTabsCustomizeDesc": "Personnalisez les onglets qui apparaissent sur la page d'accueil et leur ordre",
|
||||
"homeWidgetUrlConfig": "Configurer l'URL du widget d'accueil",
|
||||
"host": "Hôte",
|
||||
"httpFailedWithCode": "Échec de la requête, code d'état : {code}",
|
||||
"ignoreCert": "Ignorer le certificat",
|
||||
"image": "Image",
|
||||
"imagesList": "Liste des images",
|
||||
"init": "Initialiser",
|
||||
"inner": "Interne",
|
||||
"install": "Installer",
|
||||
"installDockerWithUrl": "Veuillez d'abord installer docker depuis https://docs.docker.com/engine/install.",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Conserver l'état du dernier serveur",
|
||||
"keepStatusWhenErrTip": "Uniquement en cas d'erreur lors de l'exécution du script",
|
||||
"keyAuth": "Authentification par clé",
|
||||
"lastFailure": "Dernier échec",
|
||||
"lastSuccess": "Dernier succès",
|
||||
"letterCache": "Mise en cache des lettres",
|
||||
"letterCacheTip": "Recommandé de désactiver, mais après désactivation, il sera impossible de saisir des caractères CJK.",
|
||||
"license": "Licence",
|
||||
"location": "Emplacement",
|
||||
"loss": "Perte",
|
||||
"madeWithLove": "Fabriqué avec ❤️ par {myGithub}",
|
||||
"manual": "Manuel",
|
||||
"max": "max",
|
||||
"maxConcurrency": "Concurrence maximale",
|
||||
"maxRetryCount": "Nombre de reconnexions au serveur",
|
||||
"maxRetryCountEqual0": "Il va réessayer encore et encore.",
|
||||
"min": "min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Réseau",
|
||||
"netViewType": "Type de vue réseau",
|
||||
"newContainer": "Nouveau conteneur",
|
||||
"noConnectionStatsData": "Aucune donnée de statistiques de connexion",
|
||||
"noLineChart": "Ne pas utiliser de graphiques linéaires",
|
||||
"noLineChartForCpu": "Ne pas utiliser de graphiques linéaires pour l'unité centrale",
|
||||
"noPrivateKeyTip": "La clé privée n'existe pas, elle a peut-être été supprimée ou il y a une erreur de configuration.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Type d'insertion",
|
||||
"port": "Port",
|
||||
"preferDiskAmount": "Prioriser l’affichage de la capacité du disque",
|
||||
"preview": "Aperçu",
|
||||
"privateKey": "Clé privée",
|
||||
"process": "Processus",
|
||||
"prune": "Élaguer",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Cette fonctionnalité est actuellement en phase de test et n'a été testée que sur PVE 8+. Veuillez l'utiliser avec prudence.",
|
||||
"read": "Lire",
|
||||
"reboot": "Redémarrer",
|
||||
"recentConnections": "Connexions récentes",
|
||||
"rememberPwdInMem": "Mémoriser le mot de passe en mémoire",
|
||||
"rememberPwdInMemTip": "Utilisé pour les conteneurs, la suspension, etc.",
|
||||
"rememberWindowSize": "Se souvenir de la taille de la fenêtre",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Ordre des widgets de la page de détails du serveur",
|
||||
"serverFuncBtns": "Boutons de fonction du serveur",
|
||||
"serverOrder": "Ordre du serveur",
|
||||
"serverTabRequired": "L'onglet serveur ne peut pas être supprimé",
|
||||
"servers": "serveurs",
|
||||
"sftpDlPrepare": "Préparation de la connexion...",
|
||||
"sftpEditorTip": "Si vide, utilisez l’éditeur de fichiers intégré de l’application. Si une valeur est présente, utilisez l’éditeur du serveur distant, par exemple `vim` (il est recommandé de détecter automatiquement selon `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Utilisez `rm -r` pour supprimer un dossier en SFTP.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspendre",
|
||||
"suspendTip": "La fonction de suspension nécessite des privilèges root et le support de systemd.",
|
||||
"switchTo": "Passer à {val}",
|
||||
"sync": "Sync",
|
||||
"syncTip": "Un redémarrage peut être nécessaire pour que certains changements prennent effet.",
|
||||
"system": "Système",
|
||||
"tag": "Étiquettes",
|
||||
"tapToStartDiscovery": "Appuyez sur le bouton de recherche pour découvrir les serveurs SSH sur votre réseau",
|
||||
"temperature": "Température",
|
||||
"termFontSizeTip": "Ce paramètre affectera la taille du terminal (largeur et hauteur). Vous pouvez zoomer sur la page du terminal pour ajuster la taille de la police de la session en cours.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Temps",
|
||||
"times": "Fois",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Total",
|
||||
"traffic": "Trafic",
|
||||
"trySudo": "Essayer d'utiliser sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Mettre à jour",
|
||||
"updateIntervalEqual0": "Vous avez défini à 0, la mise à jour ne se fera pas automatiquement.\nImpossible de calculer l'état du CPU.",
|
||||
"updateServerStatusInterval": "Intervalle de mise à jour de l'état du serveur",
|
||||
"upload": "Télécharger",
|
||||
"upsideDown": "À l'envers",
|
||||
"uptime": "Temps d'activité",
|
||||
"useCdn": "Utiliser CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Par défaut avec Podman",
|
||||
"used": "Utilisé",
|
||||
"view": "Vue",
|
||||
"viewDetails": "Voir les détails",
|
||||
"viewErr": "Voir erreur",
|
||||
"virtKeyHelpClipboard": "Copiez dans le presse-papiers si le terminal sélectionné n'est pas vide, sinon collez le contenu du presse-papiers dans le terminal.",
|
||||
"virtKeyHelpIME": "Activer/désactiver le clavier",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Après avoir configuré le WOL (Wake-on-LAN), une requête WOL est envoyée chaque fois que le serveur est connecté.",
|
||||
"write": "Écrire",
|
||||
"writeScriptFailTip": "Échec de l'écriture dans le script, probablement en raison d'un manque de permissions ou que le répertoire n'existe pas.",
|
||||
"writeScriptTip": "Après la connexion au serveur, un script sera écrit dans `~/.config/server_box` \n | `/tmp/server_box` pour surveiller l'état du système. Vous pouvez examiner le contenu du script.",
|
||||
"connectionStats": "Statistiques de connexion",
|
||||
"connectionStatsDesc": "Voir le taux de réussite de connexion du serveur et l'historique",
|
||||
"noConnectionStatsData": "Aucune donnée de statistiques de connexion",
|
||||
"totalAttempts": "Total",
|
||||
"lastSuccess": "Dernier succès",
|
||||
"lastFailure": "Dernier échec",
|
||||
"recentConnections": "Connexions récentes",
|
||||
"viewDetails": "Voir les détails",
|
||||
"connectionDetails": "Détails de connexion",
|
||||
"clearThisServerStats": "Effacer les statistiques de ce serveur",
|
||||
"clearAllStatsTitle": "Effacer toutes les statistiques",
|
||||
"clearAllStatsContent": "Êtes-vous sûr de vouloir effacer toutes les statistiques de connexion des serveurs ? Cette action ne peut pas être annulée.",
|
||||
"clearServerStatsTitle": "Effacer les statistiques de {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Êtes-vous sûr de vouloir effacer les statistiques de connexion du serveur \"{serverName}\" ? Cette action ne peut pas être annulée.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Onglets d'accueil",
|
||||
"homeTabsCustomizeDesc": "Personnalisez les onglets qui apparaissent sur la page d'accueil et leur ordre",
|
||||
"reset": "Réinitialiser",
|
||||
"availableTabs": "Onglets disponibles",
|
||||
"atLeastOneTab": "Au moins un onglet doit être sélectionné",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Après la connexion au serveur, un script sera écrit dans `~/.config/server_box` \n | `/tmp/server_box` pour surveiller l'état du système. Vous pouvez examiner le contenu du script."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "id",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Terima kasih kepada orang -orang berikut yang berpartisipasi.",
|
||||
"acceptBeta": "Terima pembaruan versi uji coba",
|
||||
"addSystemPrivateKeyTip": "Saat ini tidak memiliki kunci privat, apakah Anda menambahkan kunci yang disertakan dengan sistem (~/.ssh/id_rsa)?",
|
||||
"added2List": "Ditambahkan ke Daftar Tugas",
|
||||
"addr": "Alamat",
|
||||
"alreadyLastDir": "Sudah di direktori terakhir.",
|
||||
"atLeastOneTab": "Setidaknya satu tab harus dipilih",
|
||||
"authFailTip": "Otentikasi gagal, silakan periksa apakah kata sandi/kunci/host/pengguna, dll, salah.",
|
||||
"autoBackupConflict": "Hanya satu pencadangan otomatis yang dapat diaktifkan pada saat yang bersamaan.",
|
||||
"autoConnect": "Hubungkan otomatis",
|
||||
"autoRun": "Berjalan Otomatis",
|
||||
"autoUpdateHomeWidget": "Widget Rumah Pembaruan Otomatis",
|
||||
"availableTabs": "Tab Tersedia",
|
||||
"backupEncrypted": "Cadangan telah dienkripsi",
|
||||
"backupNotEncrypted": "Cadangan tidak dienkripsi",
|
||||
"backupPassword": "Kata sandi cadangan",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Baterai",
|
||||
"bgRun": "Jalankan di Backgroud",
|
||||
"bgRunTip": "Sakelar ini hanya berarti aplikasi akan mencoba berjalan di latar belakang, apakah aplikasi dapat berjalan di latar belakang tergantung pada apakah izin diaktifkan atau tidak. Untuk Android asli, nonaktifkan \"Pengoptimalan Baterai\" di aplikasi ini, dan untuk miui, ubah kebijakan penghematan daya ke \"Tidak Terbatas\".",
|
||||
"clearAllStatsContent": "Apakah Anda yakin ingin menghapus semua statistik koneksi server? Tindakan ini tidak dapat dibatalkan.",
|
||||
"clearAllStatsTitle": "Hapus Semua Statistik",
|
||||
"clearServerStatsContent": "Apakah Anda yakin ingin menghapus statistik koneksi untuk server \"{serverName}\"? Tindakan ini tidak dapat dibatalkan.",
|
||||
"clearServerStatsTitle": "Hapus Statistik {serverName}",
|
||||
"clearThisServerStats": "Hapus Statistik Server Ini",
|
||||
"closeAfterSave": "Simpan dan tutup",
|
||||
"cmd": "Memerintah",
|
||||
"collapseUITip": "Apakah akan menciutkan daftar panjang yang ada di UI secara default atau tidak",
|
||||
"conn": "Koneksi",
|
||||
"connectionDetails": "Detail Koneksi",
|
||||
"connectionStats": "Statistik Koneksi",
|
||||
"connectionStatsDesc": "Lihat tingkat keberhasilan koneksi server dan riwayat",
|
||||
"container": "Wadah",
|
||||
"containerTrySudoTip": "Contohnya: Di dalam aplikasi, pengguna diatur sebagai aaa, tetapi Docker diinstal di bawah pengguna root. Dalam kasus ini, Anda perlu mengaktifkan opsi ini.",
|
||||
"convert": "Mengubah",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Perintah yang digunakan untuk membuka emulator terminal saat memulai sesi SSH.",
|
||||
"dirEmpty": "Pastikan dir kosong.",
|
||||
"disconnected": "Terputus",
|
||||
"discoverSshServers": "Temukan Server SSH",
|
||||
"discoveryFailed": "Penemuan gagal",
|
||||
"discoverySettings": "Pengaturan Penemuan",
|
||||
"discoverySummary": "Ringkasan Penemuan",
|
||||
"disk": "Disk",
|
||||
"diskHealth": "Kesehatan disk",
|
||||
"diskIgnorePath": "Abaikan jalan untuk disk",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Mode kolom ganda",
|
||||
"doubleColumnTip": "Opsi ini hanya mengaktifkan fitur, apakah itu benar-benar dapat diaktifkan tergantung pada lebar perangkat",
|
||||
"editVirtKeys": "Edit kunci virtual",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "Performa penyorotan kode saat ini lebih buruk, dan dapat dimatikan secara opsional untuk perbaikan.",
|
||||
"emulator": "Emulator",
|
||||
"enableMdns": "Aktifkan mDNS",
|
||||
"enableMdnsDesc": "Gunakan mDNS/Bonjour untuk menemukan layanan SSH",
|
||||
"encode": "Menyandi",
|
||||
"envVars": "Variabel lingkungan",
|
||||
"experimentalFeature": "Fitur eksperimental",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Layanan Latar Depan",
|
||||
"fgServiceTip": "Setelah diaktifkan, beberapa model perangkat mungkin crash. Menonaktifkannya dapat menyebabkan beberapa model tidak dapat mempertahankan koneksi SSH di latar belakang. Harap izinkan perizinan notifikasi ServerBox, menjalankan di latar belakang, dan bangun mandiri di pengaturan sistem.",
|
||||
"fileTooLarge": "File '{file}' terlalu besar {size}, max {sizeMax}",
|
||||
"finishedAt": "Selesai pada",
|
||||
"followSystem": "Ikuti sistem",
|
||||
"font": "Font",
|
||||
"fontSize": "Ukuran huruf",
|
||||
"force": "sukarela",
|
||||
"fullScreen": "Mode Layar Penuh",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Pergi ke",
|
||||
"hideTitleBar": "Sembunyikan bilah judul",
|
||||
"highlight": "Sorotan kode",
|
||||
"homeTabs": "Tab Beranda",
|
||||
"homeTabsCustomizeDesc": "Sesuaikan tab mana yang muncul di halaman beranda dan urutannya",
|
||||
"homeWidgetUrlConfig": "Konfigurasi URL Widget Rumah",
|
||||
"host": "Host",
|
||||
"httpFailedWithCode": "Permintaan gagal, kode status: {code}",
|
||||
"ignoreCert": "Abaikan sertifikat",
|
||||
"image": "Gambar",
|
||||
"imagesList": "Daftar gambar",
|
||||
"init": "Menginisialisasi",
|
||||
"inner": "Batin",
|
||||
"install": "Install",
|
||||
"installDockerWithUrl": "Silakan https://docs.docker.com/engine/install Docker pertama.",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Menyimpan status server terakhir",
|
||||
"keepStatusWhenErrTip": "Hanya ketika terjadi kesalahan saat menjalankan skrip",
|
||||
"keyAuth": "Auth kunci",
|
||||
"lastFailure": "Gagal Terakhir",
|
||||
"lastSuccess": "Sukses Terakhir",
|
||||
"letterCache": "Caching huruf",
|
||||
"letterCacheTip": "Direkomendasikan untuk menonaktifkan, tetapi setelah dinonaktifkan, tidak mungkin untuk memasukkan karakter CJK.",
|
||||
"license": "Lisensi",
|
||||
"location": "Lokasi",
|
||||
"loss": "kehilangan",
|
||||
"madeWithLove": "Dibuat dengan ❤️ oleh {myGithub}",
|
||||
"manual": "Manual",
|
||||
"max": "Max",
|
||||
"maxConcurrency": "Konkurensi Maksimum",
|
||||
"maxRetryCount": "Jumlah penyambungan kembali server",
|
||||
"maxRetryCountEqual0": "Akan mencoba lagi lagi dan lagi.",
|
||||
"min": "Min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Jaringan",
|
||||
"netViewType": "Jenis tampilan bersih",
|
||||
"newContainer": "Wadah baru",
|
||||
"noConnectionStatsData": "Tidak ada data statistik koneksi",
|
||||
"noLineChart": "Jangan gunakan grafik garis",
|
||||
"noLineChartForCpu": "Jangan gunakan diagram garis untuk CPU",
|
||||
"noPrivateKeyTip": "Kunci privat tidak ada, mungkin telah dihapus atau ada kesalahan konfigurasi.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Jenis Penyisipan",
|
||||
"port": "Port",
|
||||
"preferDiskAmount": "Prioritaskan tampilan kapasitas disk",
|
||||
"preview": "Pratinjau",
|
||||
"privateKey": "Kunci Pribadi",
|
||||
"process": "Proses",
|
||||
"prune": "Pangkas",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Fitur ini saat ini sedang dalam tahap pengujian dan hanya diuji pada PVE 8+. Gunakan dengan hati-hati.",
|
||||
"read": "Baca",
|
||||
"reboot": "Reboot",
|
||||
"recentConnections": "Koneksi Terkini",
|
||||
"rememberPwdInMem": "Ingat kata sandi di dalam memori",
|
||||
"rememberPwdInMemTip": "Digunakan untuk kontainer, menangguhkan, dll.",
|
||||
"rememberWindowSize": "Ingat ukuran jendela",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Detail pesanan widget halaman",
|
||||
"serverFuncBtns": "Tombol fungsi server",
|
||||
"serverOrder": "Pesanan server",
|
||||
"serverTabRequired": "Tab server tidak dapat dihapus",
|
||||
"servers": "server",
|
||||
"sftpDlPrepare": "Bersiap untuk terhubung ...",
|
||||
"sftpEditorTip": "Jika kosong, gunakan editor file bawaan aplikasi. Jika ada nilai, gunakan editor server jarak jauh, misalnya `vim` (disarankan untuk mendeteksi secara otomatis sesuai `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Gunakan `rm -r` untuk menghapus dir di SFTP",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspend",
|
||||
"suspendTip": "Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.",
|
||||
"switchTo": "Beralih ke {val}",
|
||||
"sync": "Sinkronisasi",
|
||||
"syncTip": "Pengaktifan ulang mungkin diperlukan agar beberapa perubahan dapat diterapkan.",
|
||||
"system": "Sistem",
|
||||
"tag": "Tag",
|
||||
"tapToStartDiscovery": "Tekan tombol pencarian untuk menemukan server SSH di jaringan Anda",
|
||||
"temperature": "Suhu",
|
||||
"termFontSizeTip": "Pengaturan ini akan memengaruhi ukuran terminal (lebar dan tinggi). Anda dapat melakukan zoom pada halaman terminal untuk menyesuaikan ukuran font sesi saat ini.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Waktu",
|
||||
"times": "Waktu",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Total",
|
||||
"traffic": "Lalu lintas",
|
||||
"trySudo": "Cobalah menggunakan sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Memperbarui",
|
||||
"updateIntervalEqual0": "Anda mengatur ke 0, tidak akan memperbarui secara otomatis.\nTidak dapat menghitung status CPU.",
|
||||
"updateServerStatusInterval": "Interval Pembaruan Status Server",
|
||||
"upload": "Mengunggah",
|
||||
"upsideDown": "Terbalik",
|
||||
"uptime": "Uptime",
|
||||
"useCdn": "Menggunakan CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Menggunakan Podman sebagai bawaan",
|
||||
"used": "Digunakan",
|
||||
"view": "Tampilan",
|
||||
"viewDetails": "Lihat Detail",
|
||||
"viewErr": "Lihat kesalahan",
|
||||
"virtKeyHelpClipboard": "Salin ke clipboard jika terminal yang dipilih tidak kosong, jika tidak, tempel isi clipboard ke terminal.",
|
||||
"virtKeyHelpIME": "Menyalakan/mematikan keyboard",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Setelah mengonfigurasi WOL (Wake-on-LAN), permintaan WOL dikirim setiap kali server terhubung.",
|
||||
"write": "Tulis",
|
||||
"writeScriptFailTip": "Penulisan ke skrip gagal, mungkin karena tidak ada izin atau direktori tidak ada.",
|
||||
"writeScriptTip": "Setelah terhubung ke server, sebuah skrip akan ditulis ke `~/.config/server_box` \n | `/tmp/server_box` untuk memantau status sistem. Anda dapat meninjau konten skrip tersebut.",
|
||||
"connectionStats": "Statistik Koneksi",
|
||||
"connectionStatsDesc": "Lihat tingkat keberhasilan koneksi server dan riwayat",
|
||||
"noConnectionStatsData": "Tidak ada data statistik koneksi",
|
||||
"totalAttempts": "Total",
|
||||
"lastSuccess": "Sukses Terakhir",
|
||||
"lastFailure": "Gagal Terakhir",
|
||||
"recentConnections": "Koneksi Terkini",
|
||||
"viewDetails": "Lihat Detail",
|
||||
"connectionDetails": "Detail Koneksi",
|
||||
"clearThisServerStats": "Hapus Statistik Server Ini",
|
||||
"clearAllStatsTitle": "Hapus Semua Statistik",
|
||||
"clearAllStatsContent": "Apakah Anda yakin ingin menghapus semua statistik koneksi server? Tindakan ini tidak dapat dibatalkan.",
|
||||
"clearServerStatsTitle": "Hapus Statistik {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Apakah Anda yakin ingin menghapus statistik koneksi untuk server \"{serverName}\"? Tindakan ini tidak dapat dibatalkan.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Tab Beranda",
|
||||
"homeTabsCustomizeDesc": "Sesuaikan tab mana yang muncul di halaman beranda dan urutannya",
|
||||
"reset": "Reset",
|
||||
"availableTabs": "Tab Tersedia",
|
||||
"atLeastOneTab": "Setidaknya satu tab harus dipilih",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Setelah terhubung ke server, sebuah skrip akan ditulis ke `~/.config/server_box` \n | `/tmp/server_box` untuk memantau status sistem. Anda dapat meninjau konten skrip tersebut."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "ja",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "以下の参加者に感謝します。",
|
||||
"acceptBeta": "テストバージョンの更新を受け入れる",
|
||||
"addSystemPrivateKeyTip": "現在秘密鍵がありません。システムのデフォルト(~/.ssh/id_rsa)を追加しますか?",
|
||||
"added2List": "タスクリストに追加されました",
|
||||
"addr": "アドレス",
|
||||
"alreadyLastDir": "すでに最上位のディレクトリです",
|
||||
"atLeastOneTab": "少なくとも1つのタブを選択する必要があります",
|
||||
"authFailTip": "認証に失敗しました。パスワード/鍵/ホスト/ユーザーなどが間違っていないか確認してください。",
|
||||
"autoBackupConflict": "自動バックアップは一度に一つしか開始できません",
|
||||
"autoConnect": "自動接続",
|
||||
"autoRun": "自動実行",
|
||||
"autoUpdateHomeWidget": "ホームウィジェットを自動更新",
|
||||
"availableTabs": "利用可能なタブ",
|
||||
"backupEncrypted": "バックアップは暗号化されています",
|
||||
"backupNotEncrypted": "バックアップは暗号化されていません",
|
||||
"backupPassword": "バックアップパスワード",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "バッテリー",
|
||||
"bgRun": "バックグラウンド実行",
|
||||
"bgRunTip": "このスイッチはプログラムがバックグラウンドで実行を試みることを意味しますが、実際にバックグラウンドで実行できるかどうかは、権限が有効になっているかに依存します。AOSPベースのAndroid ROMでは、このアプリの「バッテリー最適化」をオフにしてください。MIUIでは、省エネモードを「無制限」に変更してください。",
|
||||
"clearAllStatsContent": "すべてのサーバー接続統計を削除してもよろしいですか?この操作は元に戻せません。",
|
||||
"clearAllStatsTitle": "すべての統計をクリア",
|
||||
"clearServerStatsContent": "サーバー\"{serverName}\"の接続統計を削除してもよろしいですか?この操作は元に戻せません。",
|
||||
"clearServerStatsTitle": "{serverName}の統計をクリア",
|
||||
"clearThisServerStats": "このサーバーの統計をクリア",
|
||||
"closeAfterSave": "保存して閉じる",
|
||||
"cmd": "コマンド",
|
||||
"collapseUITip": "UIの長いリストをデフォルトで折りたたむかどうか",
|
||||
"conn": "接続",
|
||||
"connectionDetails": "接続の詳細",
|
||||
"connectionStats": "接続統計",
|
||||
"connectionStatsDesc": "サーバー接続成功率と履歴を表示",
|
||||
"container": "コンテナ",
|
||||
"containerTrySudoTip": "例:アプリ内でユーザーをaaaに設定しているが、Dockerがrootユーザーでインストールされている場合、このオプションを有効にする必要があります",
|
||||
"convert": "変換",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "SSHセッションを起動する際に使用されるターミナルエミュレーターを開くコマンド。",
|
||||
"dirEmpty": "フォルダーが空であることを確認してください",
|
||||
"disconnected": "接続が切断されました",
|
||||
"discoverSshServers": "SSHサーバーの発見",
|
||||
"discoveryFailed": "発見に失敗",
|
||||
"discoverySettings": "発見設定",
|
||||
"discoverySummary": "発見の概要",
|
||||
"disk": "ディスク",
|
||||
"diskHealth": "ディスクの健康状態",
|
||||
"diskIgnorePath": "無視されたディスクパス",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "ダブルカラムモード",
|
||||
"doubleColumnTip": "このオプションは機能を有効にするだけで、実際に有効にできるかどうかはデバイスの幅に依存します",
|
||||
"editVirtKeys": "仮想キーを編集",
|
||||
"editor": "エディター",
|
||||
"editorHighlightTip": "現在のコードハイライトのパフォーマンスはかなり悪いため、改善するために無効にすることを選択できます。",
|
||||
"emulator": "エミュレーター",
|
||||
"enableMdns": "mDNSを有効化",
|
||||
"enableMdnsDesc": "mDNS/BonjourでSSHサービスを発見",
|
||||
"encode": "エンコード",
|
||||
"envVars": "環境変数",
|
||||
"experimentalFeature": "実験的な機能",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "フォアグラウンドサービス",
|
||||
"fgServiceTip": "有効にすると、一部の機種でクラッシュする可能性があります。無効にすると、一部の機種でバックグラウンドでのSSH接続を維持できなくなる可能性があります。システム設定でServerBoxの通知権限、バックグラウンド実行、自己起動を許可してください。",
|
||||
"fileTooLarge": "ファイル '{file}' は大きすぎます '{size}'、{sizeMax} を超えています",
|
||||
"finishedAt": "完了時刻",
|
||||
"followSystem": "システムに従う",
|
||||
"font": "フォント",
|
||||
"fontSize": "フォントサイズ",
|
||||
"force": "強制",
|
||||
"fullScreen": "フルスクリーンモード",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "移動",
|
||||
"hideTitleBar": "タイトルバーを非表示にする",
|
||||
"highlight": "コードハイライト",
|
||||
"homeTabs": "ホームタブ",
|
||||
"homeTabsCustomizeDesc": "ホームページに表示するタブとその順序をカスタマイズします",
|
||||
"homeWidgetUrlConfig": "ホームウィジェットURL設定",
|
||||
"host": "ホスト",
|
||||
"httpFailedWithCode": "リクエスト失敗、ステータスコード: {code}",
|
||||
"ignoreCert": "証明書を無視する",
|
||||
"image": "イメージ",
|
||||
"imagesList": "イメージリスト",
|
||||
"init": "初期化する",
|
||||
"inner": "内蔵",
|
||||
"install": "インストール",
|
||||
"installDockerWithUrl": "最初に https://docs.docker.com/engine/install dockerをインストールしてください",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "エラー時に前回のサーバーステータスを保持",
|
||||
"keepStatusWhenErrTip": "スクリプトの実行エラーに限ります",
|
||||
"keyAuth": "キー認証",
|
||||
"lastFailure": "最後の失敗",
|
||||
"lastSuccess": "最後の成功",
|
||||
"letterCache": "文字キャッシング",
|
||||
"letterCacheTip": "無効にすることを推奨しますが、無効にした後はCJK文字を入力することができなくなります。",
|
||||
"license": "オープンソースライセンス",
|
||||
"location": "場所",
|
||||
"loss": "パケットロス",
|
||||
"madeWithLove": "{myGithub}によって❤️で作成済み",
|
||||
"manual": "マニュアル",
|
||||
"max": "最大",
|
||||
"maxConcurrency": "最大同時実行数",
|
||||
"maxRetryCount": "サーバーの再接続試行回数",
|
||||
"maxRetryCountEqual0": "無限に再試行します",
|
||||
"min": "最小",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "ネットワーク",
|
||||
"netViewType": "ネットワークビュータイプ",
|
||||
"newContainer": "新しいコンテナを作成",
|
||||
"noConnectionStatsData": "接続統計データがありません",
|
||||
"noLineChart": "折れ線グラフを使用しない",
|
||||
"noLineChartForCpu": "CPUに折れ線グラフを使わない",
|
||||
"noPrivateKeyTip": "秘密鍵が存在しません。削除されたか、設定ミスがある可能性があります。",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "挿入タイプ",
|
||||
"port": "ポート",
|
||||
"preferDiskAmount": "ディスク容量を優先的に表示",
|
||||
"preview": "プレビュー",
|
||||
"privateKey": "秘密鍵",
|
||||
"process": "プロセス",
|
||||
"prune": "剪定する",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。",
|
||||
"read": "読み取り",
|
||||
"reboot": "再起動",
|
||||
"recentConnections": "最近の接続",
|
||||
"rememberPwdInMem": "メモリにパスワードを記憶する",
|
||||
"rememberPwdInMemTip": "コンテナ、一時停止などに使用されます。",
|
||||
"rememberWindowSize": "ウィンドウサイズを記憶する",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "詳細ページのウィジェット順序",
|
||||
"serverFuncBtns": "サーバー機能ボタン",
|
||||
"serverOrder": "サーバー順序",
|
||||
"serverTabRequired": "サーバータブは削除できません",
|
||||
"servers": "サーバー",
|
||||
"sftpDlPrepare": "サーバーへの接続を準備中...",
|
||||
"sftpEditorTip": "空の場合は、アプリ内蔵のファイルエディタを使用します。値がある場合は、リモートサーバーのエディタ(例:`vim`)を使用します(`EDITOR` に従って自動検出することをお勧めします)。",
|
||||
"sftpRmrDirSummary": "SFTPで`rm -r`を使用してフォルダーを削除",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "中断",
|
||||
"suspendTip": "suspend機能はroot権限とsystemdのサポートが必要です。",
|
||||
"switchTo": "{val}に切り替える",
|
||||
"sync": "同期する",
|
||||
"syncTip": "再起動が必要な場合があります。一部の変更はその後に有効になります。",
|
||||
"system": "システム",
|
||||
"tag": "タグ",
|
||||
"tapToStartDiscovery": "検索ボタンをタップしてネットワーク上のSSHサーバーを発見",
|
||||
"temperature": "温度",
|
||||
"termFontSizeTip": "この設定は端末のサイズ(幅と高さ)に影響します。現在のセッションのフォントサイズを調整するために、端末ページを拡大縮小できます。",
|
||||
"terminal": "ターミナル",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "時間",
|
||||
"times": "回",
|
||||
"total": "合計",
|
||||
"totalAttempts": "総計",
|
||||
"traffic": "トラフィック",
|
||||
"trySudo": "sudoを試みる",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "更新",
|
||||
"updateIntervalEqual0": "0に設定すると、サーバーの状態は自動的に更新されず、CPU使用率も計算できません。",
|
||||
"updateServerStatusInterval": "サーバー状態の更新間隔",
|
||||
"upload": "アップロード",
|
||||
"upsideDown": "上下逆転",
|
||||
"uptime": "稼働時間",
|
||||
"useCdn": "CDNの使用",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "デフォルトでPodmanを使用",
|
||||
"used": "使用済み",
|
||||
"view": "ビュー",
|
||||
"viewDetails": "詳細を表示",
|
||||
"viewErr": "エラーを表示",
|
||||
"virtKeyHelpClipboard": "端末に選択された文字がある場合は、選択された文字をクリップボードにコピーします。そうでない場合は、クリップボードの内容を端末に貼り付けます。",
|
||||
"virtKeyHelpIME": "キーボードのオン/オフ",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "WOL(Wake-on-LAN)を設定した後、サーバーに接続するたびにWOLリクエストが送信されます。",
|
||||
"write": "書き込み",
|
||||
"writeScriptFailTip": "スクリプトの書き込みに失敗しました。権限がないかディレクトリが存在しない可能性があります。",
|
||||
"writeScriptTip": "サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。",
|
||||
"connectionStats": "接続統計",
|
||||
"connectionStatsDesc": "サーバー接続成功率と履歴を表示",
|
||||
"noConnectionStatsData": "接続統計データがありません",
|
||||
"totalAttempts": "総計",
|
||||
"lastSuccess": "最後の成功",
|
||||
"lastFailure": "最後の失敗",
|
||||
"recentConnections": "最近の接続",
|
||||
"viewDetails": "詳細を表示",
|
||||
"connectionDetails": "接続の詳細",
|
||||
"clearThisServerStats": "このサーバーの統計をクリア",
|
||||
"clearAllStatsTitle": "すべての統計をクリア",
|
||||
"clearAllStatsContent": "すべてのサーバー接続統計を削除してもよろしいですか?この操作は元に戻せません。",
|
||||
"clearServerStatsTitle": "{serverName}の統計をクリア",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "サーバー\"{serverName}\"の接続統計を削除してもよろしいですか?この操作は元に戻せません。",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "ホームタブ",
|
||||
"homeTabsCustomizeDesc": "ホームページに表示するタブとその順序をカスタマイズします",
|
||||
"reset": "リセット",
|
||||
"availableTabs": "利用可能なタブ",
|
||||
"atLeastOneTab": "少なくとも1つのタブを選択する必要があります",
|
||||
"serverTabRequired": "サーバータブは削除できません"
|
||||
"writeScriptTip": "サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。"
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "nl",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Met dank aan de volgende mensen die hebben deelgenomen aan.",
|
||||
"acceptBeta": "Accepteer testversie-updates",
|
||||
"addSystemPrivateKeyTip": "Er is momenteel geen privésleutel, wilt u degene toevoegen die bij het systeem wordt geleverd (~/.ssh/id_rsa)?",
|
||||
"added2List": "Toegevoegd aan takenlijst",
|
||||
"addr": "Adres",
|
||||
"alreadyLastDir": "Al in de laatst gebruikte map.",
|
||||
"atLeastOneTab": "Er moet minimaal één tabblad worden geselecteerd",
|
||||
"authFailTip": "Authenticatie mislukt, controleer of het wachtwoord/sleutel/host/gebruiker, enz., incorrect zijn.",
|
||||
"autoBackupConflict": "Er kan slechts één automatische back-up tegelijk worden ingeschakeld.",
|
||||
"autoConnect": "Automatisch verbinden",
|
||||
"autoRun": "Automatisch uitvoeren",
|
||||
"autoUpdateHomeWidget": "Automatische update van home-widget",
|
||||
"availableTabs": "Beschikbare tabbladen",
|
||||
"backupEncrypted": "Back-up is versleuteld",
|
||||
"backupNotEncrypted": "Back-up is niet versleuteld",
|
||||
"backupPassword": "Back-up wachtwoord",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Batterij",
|
||||
"bgRun": "Uitvoeren op de achtergrond",
|
||||
"bgRunTip": "Deze schakelaar betekent alleen dat het programma zal proberen op de achtergrond uit te voeren, of het in de achtergrond kan worden uitgevoerd, hangt af van of de toestemming is ingeschakeld of niet. Voor native Android, schakel \"Batterijoptimalisatie\" uit in deze app, en voor miui, wijzig de energiebesparingsbeleid naar \"Onbeperkt\".",
|
||||
"clearAllStatsContent": "Weet u zeker dat u alle serververbindingsstatistieken wilt wissen? Deze actie kan niet ongedaan worden gemaakt.",
|
||||
"clearAllStatsTitle": "Alle statistieken wissen",
|
||||
"clearServerStatsContent": "Weet u zeker dat u de verbindingsstatistieken voor server \"{serverName}\" wilt wissen? Deze actie kan niet ongedaan worden gemaakt.",
|
||||
"clearServerStatsTitle": "Statistieken van {serverName} wissen",
|
||||
"clearThisServerStats": "Statistieken van deze server wissen",
|
||||
"closeAfterSave": "Opslaan en sluiten",
|
||||
"cmd": "Opdracht",
|
||||
"collapseUITip": "Of lange lijsten in de UI standaard moeten worden ingeklapt",
|
||||
"conn": "Verbinding",
|
||||
"connectionDetails": "Verbindingsdetails",
|
||||
"connectionStats": "Verbindingsstatistieken",
|
||||
"connectionStatsDesc": "Bekijk server verbindingssucces ratio en geschiedenis",
|
||||
"container": "Container",
|
||||
"containerTrySudoTip": "Bijvoorbeeld: in de app is de gebruiker ingesteld op aaa, maar Docker is geïnstalleerd onder de rootgebruiker. In dit geval moet u deze optie inschakelen.",
|
||||
"convert": "Converteren",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Opdracht die wordt gebruikt om de terminalemulator te openen bij het starten van SSH-sessies.",
|
||||
"dirEmpty": "Zorg ervoor dat de map leeg is.",
|
||||
"disconnected": "Verbroken",
|
||||
"discoverSshServers": "SSH-servers ontdekken",
|
||||
"discoveryFailed": "Ontdekking mislukt",
|
||||
"discoverySettings": "Ontdekkingsinstellingen",
|
||||
"discoverySummary": "Ontdekkingssamenvatting",
|
||||
"disk": "Schijf",
|
||||
"diskHealth": "Schijfgezondheid",
|
||||
"diskIgnorePath": "Pad negeren voor schijf",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Dubbele kolommodus",
|
||||
"doubleColumnTip": "Deze optie schakelt alleen de functie in, of deze daadwerkelijk kan worden ingeschakeld, hangt af van de breedte van het apparaat",
|
||||
"editVirtKeys": "Virtuele toetsen bewerken",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "De huidige codehighlighting-prestaties zijn slechter en kunnen optioneel worden uitgeschakeld om te verbeteren.",
|
||||
"emulator": "Emulator",
|
||||
"enableMdns": "mDNS inschakelen",
|
||||
"enableMdnsDesc": "Gebruik mDNS/Bonjour om SSH-services te ontdekken",
|
||||
"encode": "Coderen",
|
||||
"envVars": "Omgevingsvariabele",
|
||||
"experimentalFeature": "Experimentele functie",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Voorgrondservice",
|
||||
"fgServiceTip": "Na het inschakelen kunnen sommige apparaatmodellen crashen. Uitschakelen kan ertoe leiden dat sommige modellen SSH-verbindingen niet op de achtergrond kunnen behouden. Sta ServerBox notificatierechten, achtergronduitvoering en zelf-ontwaken toe in systeeminstellingen.",
|
||||
"fileTooLarge": "Bestand '{file}' te groot {size}, max {sizeMax}",
|
||||
"finishedAt": "Voltooid om",
|
||||
"followSystem": "Volg systeem",
|
||||
"font": "Lettertype",
|
||||
"fontSize": "Lettergrootte",
|
||||
"force": "Forceer",
|
||||
"fullScreen": "Volledig schermmodus",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Ga naar",
|
||||
"hideTitleBar": "Titelbalk verbergen",
|
||||
"highlight": "Code-highlight",
|
||||
"homeTabs": "Home-tabbladen",
|
||||
"homeTabsCustomizeDesc": "Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde",
|
||||
"homeWidgetUrlConfig": "Home-widget-url configureren",
|
||||
"host": "Host",
|
||||
"httpFailedWithCode": "verzoek mislukt, statuscode: {code}",
|
||||
"ignoreCert": "Certificaat negeren",
|
||||
"image": "Afbeelding",
|
||||
"imagesList": "Lijst met afbeeldingen",
|
||||
"init": "Initialiseren",
|
||||
"inner": "Intern",
|
||||
"install": "Installeren",
|
||||
"installDockerWithUrl": "Installeer eerst docker via https://docs.docker.com/engine/install.",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Behoud de laatste serverstatus",
|
||||
"keepStatusWhenErrTip": "Alleen in geval van een fout tijdens de scriptuitvoering",
|
||||
"keyAuth": "Sleutelauthenticatie",
|
||||
"lastFailure": "Laatst gefaald",
|
||||
"lastSuccess": "Laatst succesvol",
|
||||
"letterCache": "Lettercaching",
|
||||
"letterCacheTip": "Aanbevolen om uit te schakelen, maar na het uitschakelen is het niet mogelijk om CJK-tekens in te voeren.",
|
||||
"license": "Licentie",
|
||||
"location": "Locatie",
|
||||
"loss": "verlies",
|
||||
"madeWithLove": "Gemaakt met ❤️ door {myGithub}",
|
||||
"manual": "Handleiding",
|
||||
"max": "max",
|
||||
"maxConcurrency": "Maximale gelijktijdigheid",
|
||||
"maxRetryCount": "Aantal serverherverbindingen",
|
||||
"maxRetryCountEqual0": "Zal opnieuw blijven proberen.",
|
||||
"min": "min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Netwerk",
|
||||
"netViewType": "Netweergavetype",
|
||||
"newContainer": "Nieuwe container",
|
||||
"noConnectionStatsData": "Geen verbindingsstatistiekgegevens",
|
||||
"noLineChart": "lijndiagrammen gebruiken",
|
||||
"noLineChartForCpu": "Gebruik geen lijndiagrammen voor CPU",
|
||||
"noPrivateKeyTip": "De privésleutel bestaat niet, deze is mogelijk verwijderd of er is een configuratiefout.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Invoegingstype",
|
||||
"port": "Poort",
|
||||
"preferDiskAmount": "Geef de schijfcapaciteit prioriteit bij weergave",
|
||||
"preview": "Voorbeeld",
|
||||
"privateKey": "Privésleutel",
|
||||
"process": "Proces",
|
||||
"prune": "Snoeien",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Deze functie bevindt zich momenteel in de testfase en is alleen getest op PVE 8+. Gebruik het met voorzichtigheid.",
|
||||
"read": "Lezen",
|
||||
"reboot": "Herstart",
|
||||
"recentConnections": "Recente verbindingen",
|
||||
"rememberPwdInMem": "Wachtwoord onthouden in geheugen",
|
||||
"rememberPwdInMemTip": "Gebruikt voor containers, opschorting, enz.",
|
||||
"rememberWindowSize": "Venstergrootte onthouden",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Volgorde van widget op detailpagina",
|
||||
"serverFuncBtns": "Server functieknoppen",
|
||||
"serverOrder": "Servervolgorde",
|
||||
"serverTabRequired": "Servertabblad kan niet worden verwijderd",
|
||||
"servers": "servers",
|
||||
"sftpDlPrepare": "Voorbereiden om verbinding te maken...",
|
||||
"sftpEditorTip": "Indien leeg, gebruik de ingebouwde bestandseditor van de app. Indien een waarde aanwezig is, gebruik de editor van de externe server, bijvoorbeeld `vim` (aanbevolen om automatisch te detecteren volgens `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Gebruik `rm -r` om een map te verwijderen in SFTP.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Ophangen",
|
||||
"suspendTip": "De opschortfunctie vereist rootrechten en systemd-ondersteuning.",
|
||||
"switchTo": "Overschakelen naar {val}",
|
||||
"sync": "Sync",
|
||||
"syncTip": "Een herstart kan nodig zijn voor sommige wijzigingen om van kracht te worden.",
|
||||
"system": "Systeem",
|
||||
"tag": "Labels",
|
||||
"tapToStartDiscovery": "Tik op de zoekknop om SSH-servers op uw netwerk te ontdekken",
|
||||
"temperature": "Temperatuur",
|
||||
"termFontSizeTip": "Deze instelling heeft invloed op de terminalgrootte (breedte en hoogte). U kunt inzoomen op de terminalpagina om de lettergrootte van de huidige sessie aan te passen.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Tijd",
|
||||
"times": "Keer",
|
||||
"total": "Totaal",
|
||||
"totalAttempts": "Totaal",
|
||||
"traffic": "Verkeer",
|
||||
"trySudo": "Probeer sudo te gebruiken",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Bijwerken",
|
||||
"updateIntervalEqual0": "Het staat op 0, het zal niet automatisch bijwerken\nCPU status kan niet berekend worden.",
|
||||
"updateServerStatusInterval": "Interne server status bijwerking interval",
|
||||
"upload": "Upload",
|
||||
"upsideDown": "Ondersteboven",
|
||||
"uptime": "Uptime",
|
||||
"useCdn": "Gebruikt CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Valt terug op Podman",
|
||||
"used": "Gebruikt",
|
||||
"view": "Weergave",
|
||||
"viewDetails": "Details bekijken",
|
||||
"viewErr": "Zie foutmelding",
|
||||
"virtKeyHelpClipboard": "Kopiëren naar het klembord als de geselecteerde terminal niet leeg is, anders de inhoud van het klembord plakken in de terminal.",
|
||||
"virtKeyHelpIME": "Toetsenbord aan/uit zetten",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Na het configureren van WOL (Wake-on-LAN), wordt elke keer dat de server wordt verbonden een WOL-verzoek verzonden.",
|
||||
"write": "Schrijven",
|
||||
"writeScriptFailTip": "Het schrijven naar het script is mislukt, mogelijk door gebrek aan rechten of omdat de map niet bestaat.",
|
||||
"writeScriptTip": "Na het verbinden met de server wordt een script geschreven naar `~/.config/server_box` \n | `/tmp/server_box` om de systeemstatus te monitoren. U kunt de inhoud van het script controleren.",
|
||||
"connectionStats": "Verbindingsstatistieken",
|
||||
"connectionStatsDesc": "Bekijk server verbindingssucces ratio en geschiedenis",
|
||||
"noConnectionStatsData": "Geen verbindingsstatistiekgegevens",
|
||||
"totalAttempts": "Totaal",
|
||||
"lastSuccess": "Laatst succesvol",
|
||||
"lastFailure": "Laatst gefaald",
|
||||
"recentConnections": "Recente verbindingen",
|
||||
"viewDetails": "Details bekijken",
|
||||
"connectionDetails": "Verbindingsdetails",
|
||||
"clearThisServerStats": "Statistieken van deze server wissen",
|
||||
"clearAllStatsTitle": "Alle statistieken wissen",
|
||||
"clearAllStatsContent": "Weet u zeker dat u alle serververbindingsstatistieken wilt wissen? Deze actie kan niet ongedaan worden gemaakt.",
|
||||
"clearServerStatsTitle": "Statistieken van {serverName} wissen",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Weet u zeker dat u de verbindingsstatistieken voor server \"{serverName}\" wilt wissen? Deze actie kan niet ongedaan worden gemaakt.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Home-tabbladen",
|
||||
"homeTabsCustomizeDesc": "Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde",
|
||||
"reset": "Resetten",
|
||||
"availableTabs": "Beschikbare tabbladen",
|
||||
"atLeastOneTab": "Er moet minimaal één tabblad worden geselecteerd",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Na het verbinden met de server wordt een script geschreven naar `~/.config/server_box` \n | `/tmp/server_box` om de systeemstatus te monitoren. U kunt de inhoud van het script controleren."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "pt",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Agradecimentos a todos os participantes.",
|
||||
"acceptBeta": "Aceitar atualizações da versão de teste",
|
||||
"addSystemPrivateKeyTip": "Atualmente, não há nenhuma chave privada. Gostaria de adicionar a chave do sistema (~/.ssh/id_rsa)?",
|
||||
"added2List": "Adicionado à lista de tarefas",
|
||||
"addr": "Endereço",
|
||||
"alreadyLastDir": "Já é o diretório mais alto",
|
||||
"atLeastOneTab": "Pelo menos uma aba deve ser selecionada",
|
||||
"authFailTip": "Autenticação falhou, por favor verifique se a senha/chave/host/usuário, etc., estão incorretos.",
|
||||
"autoBackupConflict": "Apenas um backup automático pode ser ativado por vez",
|
||||
"autoConnect": "Conexão automática",
|
||||
"autoRun": "Execução automática",
|
||||
"autoUpdateHomeWidget": "Atualização automática do widget da tela inicial",
|
||||
"availableTabs": "Abas disponíveis",
|
||||
"backupEncrypted": "Backup está criptografado",
|
||||
"backupNotEncrypted": "Backup não está criptografado",
|
||||
"backupPassword": "Senha de backup",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Bateria",
|
||||
"bgRun": "Execução em segundo plano",
|
||||
"bgRunTip": "Este interruptor indica que o programa tentará rodar em segundo plano, mas a capacidade de fazer isso depende das permissões concedidas. No Android nativo, desative a 'Otimização de bateria' para este app, no MIUI, altere a estratégia de economia de energia para 'Sem restrições'.",
|
||||
"clearAllStatsContent": "Tem certeza de que deseja limpar todas as estatísticas de conexão do servidor? Esta ação não pode ser desfeita.",
|
||||
"clearAllStatsTitle": "Limpar todas as estatísticas",
|
||||
"clearServerStatsContent": "Tem certeza de que deseja limpar as estatísticas de conexão para o servidor \"{serverName}\"? Esta ação não pode ser desfeita.",
|
||||
"clearServerStatsTitle": "Limpar estatísticas de {serverName}",
|
||||
"clearThisServerStats": "Limpar estatísticas deste servidor",
|
||||
"closeAfterSave": "Salvar e fechar",
|
||||
"cmd": "Comando",
|
||||
"collapseUITip": "Deve colapsar listas longas na UI por padrão?",
|
||||
"conn": "Conectar",
|
||||
"connectionDetails": "Detalhes da conexão",
|
||||
"connectionStats": "Estatísticas de conexão",
|
||||
"connectionStatsDesc": "Ver taxa de sucesso de conexão do servidor e histórico",
|
||||
"container": "Contêiner",
|
||||
"containerTrySudoTip": "Por exemplo: se o usuário for definido como aaa dentro do app, mas o Docker estiver instalado sob o usuário root, esta opção precisará ser ativada",
|
||||
"convert": "Converter",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Comando usado para abrir o emulador de terminal ao iniciar sessões SSH.",
|
||||
"dirEmpty": "Certifique-se de que a pasta está vazia",
|
||||
"disconnected": "Desconectado",
|
||||
"discoverSshServers": "Descobrir servidores SSH",
|
||||
"discoveryFailed": "Descoberta falhou",
|
||||
"discoverySettings": "Configurações de descoberta",
|
||||
"discoverySummary": "Resumo da descoberta",
|
||||
"disk": "Disco",
|
||||
"diskHealth": "Saúde do disco",
|
||||
"diskIgnorePath": "Caminhos de disco ignorados",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Modo de coluna dupla",
|
||||
"doubleColumnTip": "Esta opção apenas ativa a funcionalidade, se ela será ativada depende também da largura do dispositivo",
|
||||
"editVirtKeys": "Editar teclas virtuais",
|
||||
"editor": "Editor",
|
||||
"editorHighlightTip": "O desempenho do destaque de código atualmente é ruim, pode optar por desativá-lo para melhorar.",
|
||||
"emulator": "Emulador",
|
||||
"enableMdns": "Ativar mDNS",
|
||||
"enableMdnsDesc": "Usar mDNS/Bonjour para descobrir serviços SSH",
|
||||
"encode": "Codificar",
|
||||
"envVars": "Variável de ambiente",
|
||||
"experimentalFeature": "Recurso experimental",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Serviço em primeiro plano",
|
||||
"fgServiceTip": "Após ativar, alguns modelos de dispositivos podem travar. Desativar pode fazer com que alguns modelos não consigam manter conexões SSH em segundo plano. Por favor, permita as permissões de notificação do ServerBox, execução em segundo plano e auto-despertar nas configurações do sistema.",
|
||||
"fileTooLarge": "Arquivo '{file}' muito grande '{size}', excedendo {sizeMax}",
|
||||
"finishedAt": "Terminado em",
|
||||
"followSystem": "Seguir sistema",
|
||||
"font": "Fonte",
|
||||
"fontSize": "Tamanho da fonte",
|
||||
"force": "Forçar",
|
||||
"fullScreen": "Modo tela cheia",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Ir para",
|
||||
"hideTitleBar": "Ocultar barra de título",
|
||||
"highlight": "Destaque de código",
|
||||
"homeTabs": "Abas iniciais",
|
||||
"homeTabsCustomizeDesc": "Personalize quais abas aparecem na página inicial e sua ordem",
|
||||
"homeWidgetUrlConfig": "Configuração de URL do widget da tela inicial",
|
||||
"host": "Host",
|
||||
"httpFailedWithCode": "Falha na solicitação, código de status: {code}",
|
||||
"ignoreCert": "Ignorar certificado",
|
||||
"image": "Imagem",
|
||||
"imagesList": "Lista de imagens",
|
||||
"init": "Inicializar",
|
||||
"inner": "Interno",
|
||||
"install": "Instalar",
|
||||
"installDockerWithUrl": "Por favor, instale o Docker primeiro em https://docs.docker.com/engine/install",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Manter o status anterior do servidor",
|
||||
"keepStatusWhenErrTip": "Limitado a erros de execução de scripts",
|
||||
"keyAuth": "Autenticação por chave",
|
||||
"lastFailure": "Última falha",
|
||||
"lastSuccess": "Último sucesso",
|
||||
"letterCache": "Cache de letras",
|
||||
"letterCacheTip": "Recomendado desativar, mas após desativar, será impossível inserir caracteres CJK.",
|
||||
"license": "Licença de código aberto",
|
||||
"location": "Localização",
|
||||
"loss": "Taxa de perda",
|
||||
"madeWithLove": "Feito com ❤️ por {myGithub}",
|
||||
"manual": "Manual",
|
||||
"max": "Máximo",
|
||||
"maxConcurrency": "Concorrência máxima",
|
||||
"maxRetryCount": "Número de tentativas de reconexão com o servidor",
|
||||
"maxRetryCountEqual0": "Irá tentar indefinidamente",
|
||||
"min": "Mínimo",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Rede",
|
||||
"netViewType": "Tipo de visualização de rede",
|
||||
"newContainer": "Novo contêiner",
|
||||
"noConnectionStatsData": "Não há dados de estatísticas de conexão",
|
||||
"noLineChart": "Não usar gráficos de linha",
|
||||
"noLineChartForCpu": "Não utilizar gráficos de linhas para a CPU",
|
||||
"noPrivateKeyTip": "A chave privada não existe, pode ter sido deletada ou há um erro de configuração.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Tipo de Inserção",
|
||||
"port": "Porta",
|
||||
"preferDiskAmount": "Priorizar a exibição da capacidade do disco",
|
||||
"preview": "Pré-visualização",
|
||||
"privateKey": "Chave privada",
|
||||
"process": "Processo",
|
||||
"prune": "Podar",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Esta funcionalidade está atualmente em fase de teste e foi testada apenas no PVE 8+. Por favor, use com cautela.",
|
||||
"read": "Leitura",
|
||||
"reboot": "Reiniciar",
|
||||
"recentConnections": "Conexões recentes",
|
||||
"rememberPwdInMem": "Lembrar senha na memória",
|
||||
"rememberPwdInMemTip": "Usado para contêineres, suspensão, etc.",
|
||||
"rememberWindowSize": "Lembrar o tamanho da janela",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Ordem dos componentes na página de detalhes do servidor",
|
||||
"serverFuncBtns": "Botões de função do servidor",
|
||||
"serverOrder": "Ordem do servidor",
|
||||
"serverTabRequired": "A aba do servidor não pode ser removida",
|
||||
"servers": "servidores",
|
||||
"sftpDlPrepare": "Preparando para conectar ao servidor...",
|
||||
"sftpEditorTip": "Se vazio, use o editor de arquivos integrado do aplicativo. Se houver um valor, use o editor do servidor remoto, por exemplo, `vim` (recomendado detectar automaticamente de acordo com `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Usar `rm -r` em SFTP para excluir pastas",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Suspender",
|
||||
"suspendTip": "A função de suspensão requer permissões de root e suporte do systemd.",
|
||||
"switchTo": "Mudar para {val}",
|
||||
"sync": "Sincronizar",
|
||||
"syncTip": "Pode ser necessário reiniciar para algumas mudanças surtirem efeito.",
|
||||
"system": "Sistema",
|
||||
"tag": "Tag",
|
||||
"tapToStartDiscovery": "Toque no botão de pesquisa para descobrir servidores SSH na sua rede",
|
||||
"temperature": "Temperatura",
|
||||
"termFontSizeTip": "Esta configuração afetará o tamanho do terminal (largura e altura). Você pode dar zoom na página do terminal para ajustar o tamanho da fonte da sessão atual.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Tempo",
|
||||
"times": "Vezes",
|
||||
"total": "Total",
|
||||
"totalAttempts": "Total",
|
||||
"traffic": "Tráfego",
|
||||
"trySudo": "Tentar usar sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Atualizar",
|
||||
"updateIntervalEqual0": "Se definido como 0, o estado do servidor não será atualizado automaticamente.\nE o uso da CPU não poderá ser calculado.",
|
||||
"updateServerStatusInterval": "Intervalo de atualização do estado do servidor",
|
||||
"upload": "Upload",
|
||||
"upsideDown": "Inverter verticalmente",
|
||||
"uptime": "Tempo de atividade",
|
||||
"useCdn": "Utilizando CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Usar Podman por padrão",
|
||||
"used": "Usado",
|
||||
"view": "Visualização",
|
||||
"viewDetails": "Ver detalhes",
|
||||
"viewErr": "Ver erro",
|
||||
"virtKeyHelpClipboard": "Se houver texto selecionado no terminal, copia para a área de transferência, caso contrário, cola o conteúdo da área de transferência no terminal.",
|
||||
"virtKeyHelpIME": "Ligar/desligar o teclado",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Após configurar o WOL (Wake-on-LAN), um pedido de WOL é enviado cada vez que o servidor é conectado.",
|
||||
"write": "Escrita",
|
||||
"writeScriptFailTip": "Falha ao escrever no script, possivelmente devido à falta de permissões ou o diretório não existe.",
|
||||
"writeScriptTip": "Após conectar ao servidor, um script será escrito em `~/.config/server_box` \n | `/tmp/server_box` para monitorar o status do sistema. Você pode revisar o conteúdo do script.",
|
||||
"connectionStats": "Estatísticas de conexão",
|
||||
"connectionStatsDesc": "Ver taxa de sucesso de conexão do servidor e histórico",
|
||||
"noConnectionStatsData": "Não há dados de estatísticas de conexão",
|
||||
"totalAttempts": "Total",
|
||||
"lastSuccess": "Último sucesso",
|
||||
"lastFailure": "Última falha",
|
||||
"recentConnections": "Conexões recentes",
|
||||
"viewDetails": "Ver detalhes",
|
||||
"connectionDetails": "Detalhes da conexão",
|
||||
"clearThisServerStats": "Limpar estatísticas deste servidor",
|
||||
"clearAllStatsTitle": "Limpar todas as estatísticas",
|
||||
"clearAllStatsContent": "Tem certeza de que deseja limpar todas as estatísticas de conexão do servidor? Esta ação não pode ser desfeita.",
|
||||
"clearServerStatsTitle": "Limpar estatísticas de {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Tem certeza de que deseja limpar as estatísticas de conexão para o servidor \"{serverName}\"? Esta ação não pode ser desfeita.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Abas iniciais",
|
||||
"homeTabsCustomizeDesc": "Personalize quais abas aparecem na página inicial e sua ordem",
|
||||
"reset": "Redefinir",
|
||||
"availableTabs": "Abas disponíveis",
|
||||
"atLeastOneTab": "Pelo menos uma aba deve ser selecionada",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Após conectar ao servidor, um script será escrito em `~/.config/server_box` \n | `/tmp/server_box` para monitorar o status do sistema. Você pode revisar o conteúdo do script."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "ru",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Благодарности всем участникам.",
|
||||
"acceptBeta": "Принять обновления тестовой версии",
|
||||
"addSystemPrivateKeyTip": "В данный момент приватные ключи отсутствуют. Добавить системный приватный ключ (~/.ssh/id_rsa)?",
|
||||
"added2List": "Добавлено в список задач",
|
||||
"addr": "Адрес",
|
||||
"alreadyLastDir": "Уже в корневом каталоге",
|
||||
"atLeastOneTab": "Должна быть выбрана хотя бы одна вкладка",
|
||||
"authFailTip": "Аутентификация не удалась, пожалуйста, проверьте, правильны ли пароль/ключ/хост/пользователь и т.д.",
|
||||
"autoBackupConflict": "Может быть включено только одно автоматическое резервное копирование",
|
||||
"autoConnect": "Автоматическое подключение",
|
||||
"autoRun": "Автозапуск",
|
||||
"autoUpdateHomeWidget": "Автоматическое обновление виджета на главном экране",
|
||||
"availableTabs": "Доступные вкладки",
|
||||
"backupEncrypted": "Резервная копия зашифрована",
|
||||
"backupNotEncrypted": "Резервная копия не зашифрована",
|
||||
"backupPassword": "Пароль резервной копии",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Батарея",
|
||||
"bgRun": "Работа в фоновом режиме",
|
||||
"bgRunTip": "Этот переключатель означает, что программа будет пытаться работать в фоновом режиме, но фактическое выполнение зависит от того, включено ли разрешение. Для нативного Android отключите «Оптимизацию батареи» для этого приложения, для MIUI измените контроль активности на «Нет ограничений».",
|
||||
"clearAllStatsContent": "Вы уверены, что хотите очистить всю статистику соединений сервера? Это действие не может быть отменено.",
|
||||
"clearAllStatsTitle": "Очистить всю статистику",
|
||||
"clearServerStatsContent": "Вы уверены, что хотите очистить статистику соединений для сервера \"{serverName}\"? Это действие не может быть отменено.",
|
||||
"clearServerStatsTitle": "Очистить статистику {serverName}",
|
||||
"clearThisServerStats": "Очистить статистику этого сервера",
|
||||
"closeAfterSave": "Сохранить и закрыть",
|
||||
"cmd": "Команда",
|
||||
"collapseUITip": "Свернуть длинные списки в UI по умолчанию",
|
||||
"conn": "Подключение",
|
||||
"connectionDetails": "Детали соединения",
|
||||
"connectionStats": "Статистика соединений",
|
||||
"connectionStatsDesc": "Просмотр коэффициента успешности подключения к серверу и истории",
|
||||
"container": "Контейнер",
|
||||
"containerTrySudoTip": "Например: если пользователь в приложении установлен как aaa, но Docker установлен под пользователем root, тогда нужно включить эту опцию",
|
||||
"convert": "Конвертировать",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Команда для открытия эмулятора терминала при запуске SSH-сеансов.",
|
||||
"dirEmpty": "Пожалуйста, убедитесь, что папка пуста",
|
||||
"disconnected": "Отключено",
|
||||
"discoverSshServers": "Обнаружить SSH серверы",
|
||||
"discoveryFailed": "Обнаружение не удалось",
|
||||
"discoverySettings": "Настройки обнаружения",
|
||||
"discoverySummary": "Сводка обнаружения",
|
||||
"disk": "Диск",
|
||||
"diskHealth": "Состояние диска",
|
||||
"diskIgnorePath": "Игнорировать путь к диску",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Режим двойной колонки",
|
||||
"doubleColumnTip": "Эта опция лишь включает функцию; фактическое применение зависит от ширины устройства",
|
||||
"editVirtKeys": "Редактировать виртуальные клавиши",
|
||||
"editor": "Редактор",
|
||||
"editorHighlightTip": "Текущая производительность подсветки кода неудовлетворительна, можно отключить для улучшения.",
|
||||
"emulator": "Эмулятор",
|
||||
"enableMdns": "Включить mDNS",
|
||||
"enableMdnsDesc": "Использовать mDNS/Bonjour для обнаружения SSH служб",
|
||||
"encode": "Кодировать",
|
||||
"envVars": "Переменная окружения",
|
||||
"experimentalFeature": "Экспериментальная функция",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Сервис переднего плана",
|
||||
"fgServiceTip": "После включения некоторые модели устройств могут вылетать. Отключение может привести к тому, что некоторые модели не смогут поддерживать SSH-соединения в фоновом режиме. Пожалуйста, разрешите ServerBox права на уведомления, фоновую работу и самопробуждение в системных настройках.",
|
||||
"fileTooLarge": "Файл '{file}' слишком большой '{size}', превышает {sizeMax}",
|
||||
"finishedAt": "Завершено в",
|
||||
"followSystem": "Следовать за системой",
|
||||
"font": "Шрифт",
|
||||
"fontSize": "Размер шрифта",
|
||||
"force": "Принудительно",
|
||||
"fullScreen": "Полноэкранный режим",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Перейти к",
|
||||
"hideTitleBar": "Скрыть заголовок",
|
||||
"highlight": "Подсветка кода",
|
||||
"homeTabs": "Вкладки дома",
|
||||
"homeTabsCustomizeDesc": "Настройте, какие вкладки появляются на главной странице и их порядок",
|
||||
"homeWidgetUrlConfig": "Конфигурация URL виджета домашнего экрана",
|
||||
"host": "Хост",
|
||||
"httpFailedWithCode": "ошибка запроса, код: {code}",
|
||||
"ignoreCert": "Игнорировать сертификат",
|
||||
"image": "Образ",
|
||||
"imagesList": "Список образов",
|
||||
"init": "Инициализировать",
|
||||
"inner": "Встроенный",
|
||||
"install": "установить",
|
||||
"installDockerWithUrl": "Пожалуйста, сначала установите Docker по адресу https://docs.docker.com/engine/install",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Сохранять статус сервера при ошибке",
|
||||
"keepStatusWhenErrTip": "Применимо только в случае ошибки выполнения скрипта",
|
||||
"keyAuth": "Аутентификация по ключу",
|
||||
"lastFailure": "Последний сбой",
|
||||
"lastSuccess": "Последний успех",
|
||||
"letterCache": "Кэширование букв",
|
||||
"letterCacheTip": "Рекомендуется отключить, но после отключения будет невозможно вводить символы CJK.",
|
||||
"license": "Лицензия",
|
||||
"location": "Местоположение",
|
||||
"loss": "Потери пакетов",
|
||||
"madeWithLove": "Создано с ❤️ by {myGithub}",
|
||||
"manual": "Вручную",
|
||||
"max": "максимум",
|
||||
"maxConcurrency": "Максимальная параллельность",
|
||||
"maxRetryCount": "Максимальное количество попыток переподключения к серверу",
|
||||
"maxRetryCountEqual0": "Будет бесконечно пытаться переподключиться",
|
||||
"min": "минимум",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Сеть",
|
||||
"netViewType": "Тип визуализации сети",
|
||||
"newContainer": "Создать контейнер",
|
||||
"noConnectionStatsData": "Нет данных статистики соединений",
|
||||
"noLineChart": "Не использовать линейные графики",
|
||||
"noLineChartForCpu": "Не используйте линейные графики для ЦП",
|
||||
"noPrivateKeyTip": "Приватный ключ не существует, возможно, он был удален или есть ошибка в настройках.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Тип вставки",
|
||||
"port": "Порт",
|
||||
"preferDiskAmount": "Приоритетное отображение объёма диска",
|
||||
"preview": "Предпросмотр",
|
||||
"privateKey": "Приватный ключ",
|
||||
"process": "Процесс",
|
||||
"prune": "Обрезать",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.",
|
||||
"read": "Чтение",
|
||||
"reboot": "Перезагрузка",
|
||||
"recentConnections": "Недавние соединения",
|
||||
"rememberPwdInMem": "Запомнить пароль в памяти",
|
||||
"rememberPwdInMemTip": "Используется для контейнеров, приостановки и т. д.",
|
||||
"rememberWindowSize": "Запомнить размер окна",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Порядок элементов на странице деталей сервера",
|
||||
"serverFuncBtns": "Кнопки функций сервера",
|
||||
"serverOrder": "Порядок серверов",
|
||||
"serverTabRequired": "Вкладку сервера нельзя удалить",
|
||||
"servers": "серверов",
|
||||
"sftpDlPrepare": "Подготовка подключения...",
|
||||
"sftpEditorTip": "Если пусто, используйте встроенный редактор файлов приложения. Если значение указано, используйте редактор удаленного сервера, например, `vim` (рекомендуется автоматически определять согласно `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Использовать `rm -r` в SFTP для удаления папок",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Приостановить",
|
||||
"suspendTip": "Функция приостановки требует прав root и поддержки systemd.",
|
||||
"switchTo": "Переключиться на {val}",
|
||||
"sync": "Синхронизировать",
|
||||
"syncTip": "Возможно, потребуется перезагрузка, чтобы некоторые изменения вступили в силу.",
|
||||
"system": "Система",
|
||||
"tag": "Теги",
|
||||
"tapToStartDiscovery": "Нажмите кнопку поиска, чтобы обнаружить SSH серверы в вашей сети",
|
||||
"temperature": "Температура",
|
||||
"termFontSizeTip": "Эта настройка повлияет на размер терминала (ширина и высота). Вы можете масштабировать страницу терминала, чтобы调整 размер шрифта текущей сессии.",
|
||||
"terminal": "Терминал",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Время",
|
||||
"times": "Раз",
|
||||
"total": "Всего",
|
||||
"totalAttempts": "Общее",
|
||||
"traffic": "Трафик",
|
||||
"trySudo": "Попробовать использовать sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Обновление",
|
||||
"updateIntervalEqual0": "Если установлено 0, статус сервера не будет автоматически обновляться.\nТакже не будет рассчитано использование ЦП.",
|
||||
"updateServerStatusInterval": "Интервал обновления статуса сервера",
|
||||
"upload": "Загрузить",
|
||||
"upsideDown": "Перевернуть",
|
||||
"uptime": "Время работы",
|
||||
"useCdn": "Использование CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Использовать Podman по умолчанию",
|
||||
"used": "Использовано",
|
||||
"view": "Вид",
|
||||
"viewDetails": "Просмотр деталей",
|
||||
"viewErr": "Просмотр ошибок",
|
||||
"virtKeyHelpClipboard": "Если в терминале выделен текст, то он копируется в буфер обмена, в противном случае содержимое буфера вставляется в терминал.",
|
||||
"virtKeyHelpIME": "Включить/выключить клавиатуру",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "После настройки WOL (Wake-on-LAN) при каждом подключении к серверу отправляется запрос WOL.",
|
||||
"write": "Запись",
|
||||
"writeScriptFailTip": "Запись скрипта не удалась, возможно, из-за отсутствия прав или потому что, директории не существует.",
|
||||
"writeScriptTip": "После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта.",
|
||||
"connectionStats": "Статистика соединений",
|
||||
"connectionStatsDesc": "Просмотр коэффициента успешности подключения к серверу и истории",
|
||||
"noConnectionStatsData": "Нет данных статистики соединений",
|
||||
"totalAttempts": "Общее",
|
||||
"lastSuccess": "Последний успех",
|
||||
"lastFailure": "Последний сбой",
|
||||
"recentConnections": "Недавние соединения",
|
||||
"viewDetails": "Просмотр деталей",
|
||||
"connectionDetails": "Детали соединения",
|
||||
"clearThisServerStats": "Очистить статистику этого сервера",
|
||||
"clearAllStatsTitle": "Очистить всю статистику",
|
||||
"clearAllStatsContent": "Вы уверены, что хотите очистить всю статистику соединений сервера? Это действие не может быть отменено.",
|
||||
"clearServerStatsTitle": "Очистить статистику {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Вы уверены, что хотите очистить статистику соединений для сервера \"{serverName}\"? Это действие не может быть отменено.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Вкладки дома",
|
||||
"homeTabsCustomizeDesc": "Настройте, какие вкладки появляются на главной странице и их порядок",
|
||||
"reset": "Сброс",
|
||||
"availableTabs": "Доступные вкладки",
|
||||
"atLeastOneTab": "Должна быть выбрана хотя бы одна вкладка",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "tr",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Aşağıdaki katılımcılara teşekkürler.",
|
||||
"acceptBeta": "Beta sürüm güncellemelerini kabul et",
|
||||
"addSystemPrivateKeyTip": "Şu anda özel anahtarlar mevcut değil, sistemle birlikte gelen anahtarı (~/.ssh/id_rsa) eklemek ister misiniz?",
|
||||
"added2List": "Görev listesine eklendi",
|
||||
"addr": "Adres",
|
||||
"alreadyLastDir": "Zaten son dizindesiniz.",
|
||||
"atLeastOneTab": "En az bir sekme seçilmelidir",
|
||||
"authFailTip": "Kimlik doğrulama başarısız oldu, lütfen kimlik bilgilerinin doğru olup olmadığını kontrol edin",
|
||||
"autoBackupConflict": "Aynı anda yalnızca bir otomatik yedekleme açık olabilir.",
|
||||
"autoConnect": "Otomatik bağlan",
|
||||
"autoRun": "Otomatik çalıştır",
|
||||
"autoUpdateHomeWidget": "Ana ekran bileşenini otomatik güncelle",
|
||||
"availableTabs": "Mevcut Sekmeler",
|
||||
"backupEncrypted": "Yedekleme şifrelenmiş",
|
||||
"backupNotEncrypted": "Yedekleme şifreli değil",
|
||||
"backupPassword": "Yedekleme parolası",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Pil",
|
||||
"bgRun": "Arka planda çalıştır",
|
||||
"bgRunTip": "Bu anahtar yalnızca programın arka planda çalışmayı deneyeceği anlamına gelir. Arka planda çalışıp çalışamayacağı, iznin etkinleştirilip etkinleştirilmediğine bağlıdır. AOSP tabanlı Android ROM'lar için lütfen bu uygulamada \"Pil Optimizasyonu\"nu devre dışı bırakın. MIUI / HyperOS için lütfen güç tasarrufu politikasını \"Sınırsız\" olarak değiştirin.",
|
||||
"clearAllStatsContent": "Tüm sunucu bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
|
||||
"clearAllStatsTitle": "Tüm İstatistikleri Temizle",
|
||||
"clearServerStatsContent": "\"{serverName}\" sunucusu için bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
|
||||
"clearServerStatsTitle": "{serverName} İstatistiklerini Temizle",
|
||||
"clearThisServerStats": "Bu Sunucu İstatistiklerini Temizle",
|
||||
"closeAfterSave": "Kaydet ve kapat",
|
||||
"cmd": "Komut",
|
||||
"collapseUITip": "Arayüzde uzun listelerin varsayılan olarak daraltılıp daraltılmayacağı",
|
||||
"conn": "Bağlantı",
|
||||
"connectionDetails": "Bağlantı Detayları",
|
||||
"connectionStats": "Bağlantı İstatistikleri",
|
||||
"connectionStatsDesc": "Sunucu bağlantı başarı oranını ve geçmişi görüntüle",
|
||||
"container": "Konteyner",
|
||||
"containerTrySudoTip": "Örneğin: Uygulamada kullanıcı aaa olarak ayarlanmış, ancak Docker root kullanıcısı altında kurulmuş. Bu durumda bu seçeneği etkinleştirmeniz gerekir.",
|
||||
"convert": "Dönüştür",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "SSH oturumları başlatılırken terminal öykünücüsünü açmak için kullanılan komut.",
|
||||
"dirEmpty": "Klasörün boş olduğundan emin olun.",
|
||||
"disconnected": "Bağlantı kesildi",
|
||||
"discoverSshServers": "SSH Sunucularını Keşfet",
|
||||
"discoveryFailed": "Keşif başarısız",
|
||||
"discoverySettings": "Keşif Ayarları",
|
||||
"discoverySummary": "Keşif Özeti",
|
||||
"disk": "Disk",
|
||||
"diskHealth": "Disk sağlığı",
|
||||
"diskIgnorePath": "Disk için yok sayılan yol",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Çift sütun modu",
|
||||
"doubleColumnTip": "Bu seçenek yalnızca özelliği etkinleştirir, gerçekten etkinleşip etkinleşmeyeceği cihazın genişliğine bağlıdır",
|
||||
"editVirtKeys": "Sanal tuşları düzenle",
|
||||
"editor": "Düzenleyici",
|
||||
"editorHighlightTip": "Mevcut kod vurgulama performansı ideal değil ve isteğe bağlı olarak kapatılabilir.",
|
||||
"emulator": "Emülatör",
|
||||
"enableMdns": "mDNS'yi Etkinleştir",
|
||||
"enableMdnsDesc": "SSH hizmetlerini keşfetmek için mDNS/Bonjour kullan",
|
||||
"encode": "Kodla",
|
||||
"envVars": "Ortam değişkeni",
|
||||
"experimentalFeature": "Deneysel özellik",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Ön Plan Servisi",
|
||||
"fgServiceTip": "Etkinleştirildikten sonra bazı cihaz modellerinde çökme olabilir. Devre dışı bırakmak, bazı modellerde SSH bağlantılarının arka planda sürdürülememesine neden olabilir. Lütfen sistem ayarlarında ServerBox bildirim izinlerini, arka planda çalışmayı ve otomatik uyanmayı etkinleştirin.",
|
||||
"fileTooLarge": "'{file}' dosyası çok büyük {size}, maksimum {sizeMax}",
|
||||
"finishedAt": "Tamamlandı:",
|
||||
"followSystem": "Sistemi takip et",
|
||||
"font": "Yazı tipi",
|
||||
"fontSize": "Yazı tipi boyutu",
|
||||
"force": "Zorla",
|
||||
"fullScreen": "Tam ekran modu",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Git",
|
||||
"hideTitleBar": "Başlık çubuğunu gizle",
|
||||
"highlight": "Kod vurgulama",
|
||||
"homeTabs": "Ana Sayfa Sekmeleri",
|
||||
"homeTabsCustomizeDesc": "Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin",
|
||||
"homeWidgetUrlConfig": "Ana ekran bileşeni URL'sini yapılandır",
|
||||
"host": "Ana bilgisayar",
|
||||
"httpFailedWithCode": "İstek başarısız oldu, durum kodu: {code}",
|
||||
"ignoreCert": "Sertifikayı yok say",
|
||||
"image": "Görüntü",
|
||||
"imagesList": "Görüntü listesi",
|
||||
"init": "Başlat",
|
||||
"inner": "İç",
|
||||
"install": "Kur",
|
||||
"installDockerWithUrl": "Lütfen önce https://docs.docker.com/engine/install adresinden Docker'ı kurun.",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Son sunucu durumunu koru",
|
||||
"keepStatusWhenErrTip": "Yalnızca betik yürütülmesi sırasında bir hata olduğunda",
|
||||
"keyAuth": "Anahtar Kimlik Doğrulama",
|
||||
"lastFailure": "Son Başarısızlık",
|
||||
"lastSuccess": "Son Başarı",
|
||||
"letterCache": "Harf önbelleği",
|
||||
"letterCacheTip": "Devre dışı bırakılması önerilir, ancak devre dışı bırakıldığında CJK karakterlerini girmek mümkün olmayacaktır.",
|
||||
"license": "Lisans",
|
||||
"location": "Konum",
|
||||
"loss": "Kayıp",
|
||||
"madeWithLove": "{myGithub} tarafından ❤️ ile yapıldı",
|
||||
"manual": "Manuel",
|
||||
"max": "maks",
|
||||
"maxConcurrency": "Maksimum Eşzamanlılık",
|
||||
"maxRetryCount": "Sunucu yeniden bağlantı sayısı",
|
||||
"maxRetryCountEqual0": "Tekrar tekrar deneyecek.",
|
||||
"min": "min",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Ağ",
|
||||
"netViewType": "Ağ görüntüleme türü",
|
||||
"newContainer": "Yeni konteyner",
|
||||
"noConnectionStatsData": "Bağlantı istatistik verisi yok",
|
||||
"noLineChart": "Çizgi grafikleri kullanma",
|
||||
"noLineChartForCpu": "CPU için çizgi grafikleri kullanma",
|
||||
"noPrivateKeyTip": "Özel anahtar mevcut değil, silinmiş olabilir veya yapılandırma hatası vardır.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Eklenti Türü",
|
||||
"port": "Port",
|
||||
"preferDiskAmount": "Disk kapasitesini öncelikli olarak göster",
|
||||
"preview": "Önizleme",
|
||||
"privateKey": "Özel Anahtar",
|
||||
"process": "İşlem",
|
||||
"prune": "Budamak",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Bu özellik şu anda test aşamasında ve yalnızca PVE 8+ üzerinde test edildi. Lütfen dikkatli kullanın.",
|
||||
"read": "Oku",
|
||||
"reboot": "Yeniden başlat",
|
||||
"recentConnections": "Son Bağlantılar",
|
||||
"rememberPwdInMem": "Şifreyi bellekte hatırla",
|
||||
"rememberPwdInMemTip": "Konteynerler, askıya alma vb. için kullanılır.",
|
||||
"rememberWindowSize": "Pencere boyutunu hatırla",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Ayrıntı sayfası bileşen sırası",
|
||||
"serverFuncBtns": "Sunucu işlev düğmeleri",
|
||||
"serverOrder": "Sunucu sırası",
|
||||
"serverTabRequired": "Sunucu sekmesi kaldırılamaz",
|
||||
"servers": "sunucu",
|
||||
"sftpDlPrepare": "Bağlantı hazırlanıyor...",
|
||||
"sftpEditorTip": "Boşsa, uygulamanın yerleşik dosya düzenleyicisi kullanılır. Bir değer varsa, uzak sunucunun düzenleyicisi kullanılır, örn. `vim` (otomatik olarak `EDITOR`'a göre algılanması önerilir).",
|
||||
"sftpRmrDirSummary": "SFTP'de bir klasörü silmek için `rm -r` kullan.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Askıya al",
|
||||
"suspendTip": "Askıya alma işlevi, root izni ve systemd desteği gerektirir.",
|
||||
"switchTo": "{val}'a geç",
|
||||
"sync": "Senkronize et",
|
||||
"syncTip": "Bazı değişikliklerin etkili olması için yeniden başlatma gerekebilir.",
|
||||
"system": "Sistem",
|
||||
"tag": "Etiketler",
|
||||
"tapToStartDiscovery": "Ağınızdaki SSH sunucularını keşfetmek için arama düğmesine dokunun",
|
||||
"temperature": "Sıcaklık",
|
||||
"termFontSizeTip": "Bu ayar terminal boyutunu (genişlik ve yükseklik) etkiler. Terminal sayfasında yakınlaştırarak mevcut oturumun yazı tipi boyutunu ayarlayabilirsiniz.",
|
||||
"terminal": "Terminal",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Zaman",
|
||||
"times": "Kez",
|
||||
"total": "Toplam",
|
||||
"totalAttempts": "Toplam",
|
||||
"traffic": "Trafik",
|
||||
"trySudo": "Sudo ile dene",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Güncelle",
|
||||
"updateIntervalEqual0": "0 olarak ayarladınız, otomatik güncelleme yapılmayacak.\nCPU durumu hesaplanamaz.",
|
||||
"updateServerStatusInterval": "Sunucu durumu güncelleme aralığı",
|
||||
"upload": "Yükle",
|
||||
"upsideDown": "Başaşağı",
|
||||
"uptime": "Çalışma süresi",
|
||||
"useCdn": "CDN kullan",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Varsayılan olarak Podman kullan",
|
||||
"used": "Kullanılan",
|
||||
"view": "Görünüm",
|
||||
"viewDetails": "Detayları Görüntüle",
|
||||
"viewErr": "Hatayı gör",
|
||||
"virtKeyHelpClipboard": "Seçili terminal boş değilse panoya kopyala, aksi takdirde panodaki içeriği terminale yapıştır.",
|
||||
"virtKeyHelpIME": "Klavyeyi aç/kapat",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "WOL (Wake-on-LAN) yapılandırıldıktan sonra, sunucuya her bağlanıldığında bir WOL isteği gönderilir.",
|
||||
"write": "Yaz",
|
||||
"writeScriptFailTip": "Betik yazma başarısız oldu, muhtemelen izin eksikliği veya dizin mevcut değil.",
|
||||
"writeScriptTip": "Sunucuya bağlandıktan sonra, sistem durumunu izlemek için `~/.config/server_box` \n | `/tmp/server_box` dizinine bir betik yazılacak. Betik içeriğini inceleyebilirsiniz.",
|
||||
"connectionStats": "Bağlantı İstatistikleri",
|
||||
"connectionStatsDesc": "Sunucu bağlantı başarı oranını ve geçmişi görüntüle",
|
||||
"noConnectionStatsData": "Bağlantı istatistik verisi yok",
|
||||
"totalAttempts": "Toplam",
|
||||
"lastSuccess": "Son Başarı",
|
||||
"lastFailure": "Son Başarısızlık",
|
||||
"recentConnections": "Son Bağlantılar",
|
||||
"viewDetails": "Detayları Görüntüle",
|
||||
"connectionDetails": "Bağlantı Detayları",
|
||||
"clearThisServerStats": "Bu Sunucu İstatistiklerini Temizle",
|
||||
"clearAllStatsTitle": "Tüm İstatistikleri Temizle",
|
||||
"clearAllStatsContent": "Tüm sunucu bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
|
||||
"clearServerStatsTitle": "{serverName} İstatistiklerini Temizle",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "\"{serverName}\" sunucusu için bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Ana Sayfa Sekmeleri",
|
||||
"homeTabsCustomizeDesc": "Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin",
|
||||
"reset": "Sıfırla",
|
||||
"availableTabs": "Mevcut Sekmeler",
|
||||
"atLeastOneTab": "En az bir sekme seçilmelidir",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Sunucuya bağlandıktan sonra, sistem durumunu izlemek için `~/.config/server_box` \n | `/tmp/server_box` dizinine bir betik yazılacak. Betik içeriğini inceleyebilirsiniz."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "uk",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "Дякуємо наступним особам, які взяли участь.",
|
||||
"acceptBeta": "Прийняти оновлення бета-версії",
|
||||
"addSystemPrivateKeyTip": "Наразі приватних ключів нема, хочете додати той, що йде з системою (~/.ssh/id_rsa)?",
|
||||
"added2List": "Додано до списку завдань",
|
||||
"addr": "Адреса",
|
||||
"alreadyLastDir": "Вже в останньому каталозі.",
|
||||
"atLeastOneTab": "Потрібно вибрати принаймні одну вкладку",
|
||||
"authFailTip": "Авторизація не вдалася, будь ласка, перевірте правильність облікових даних",
|
||||
"autoBackupConflict": "Тільки одне автоматичне резервне копіювання може бути активне одночасно.",
|
||||
"autoConnect": "Авто підключення",
|
||||
"autoRun": "Авто запуск",
|
||||
"autoUpdateHomeWidget": "Автоматичне оновлення віджетів на головному екрані",
|
||||
"availableTabs": "Доступні вкладки",
|
||||
"backupEncrypted": "Резервна копія зашифрована",
|
||||
"backupNotEncrypted": "Резервна копія не зашифрована",
|
||||
"backupPassword": "Пароль резервного копіювання",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "Акумулятор",
|
||||
"bgRun": "Запуск у фоновому режимі",
|
||||
"bgRunTip": "Цей перемикач лише вказує на те, що програма намагатиметься працювати у фоновому режимі. Чи може вона працювати у фоновому режимі, залежить від прав доступу. Для AOSP-орієнтованих Android ROM, будь ласка, вимкніть \"Оптимізацію акумулятора\" в цьому додатку. Для MIUI / HyperOS, будь ласка, змініть політику економії енергії на \"Нескінченна\".",
|
||||
"clearAllStatsContent": "Ви впевнені, що хочете очистити всю статистику з'єднань сервера? Цю дію не можна скасувати.",
|
||||
"clearAllStatsTitle": "Очистити всю статистику",
|
||||
"clearServerStatsContent": "Ви впевнені, що хочете очистити статистику з'єднань для сервера \"{serverName}\"? Цю дію не можна скасувати.",
|
||||
"clearServerStatsTitle": "Очистити статистику {serverName}",
|
||||
"clearThisServerStats": "Очистити статистику цього сервера",
|
||||
"closeAfterSave": "Зберегти та закрити",
|
||||
"cmd": "Команда",
|
||||
"collapseUITip": "Сховати довгі списки, що є у UI за замовчуванням",
|
||||
"conn": "З'єднання",
|
||||
"connectionDetails": "Деталі з'єднання",
|
||||
"connectionStats": "Статистика з'єднань",
|
||||
"connectionStatsDesc": "Переглянути коефіцієнт успішності підключення до сервера та історію",
|
||||
"container": "Контейнер",
|
||||
"containerTrySudoTip": "Наприклад: У застосунку користувач це aaa, але Docker встановлений під користувачем root. У цьому випадку вам потрібно активувати цю опцію.",
|
||||
"convert": "Конвертувати",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "Команда для відкриття емулятора термінала під час запуску SSH-сеансів.",
|
||||
"dirEmpty": "Переконайтеся, що директорія пуста.",
|
||||
"disconnected": "Відключено",
|
||||
"discoverSshServers": "Виявити SSH сервери",
|
||||
"discoveryFailed": "Виявлення не вдалось",
|
||||
"discoverySettings": "Налаштування виявлення",
|
||||
"discoverySummary": "Підсумок виявлення",
|
||||
"disk": "Диск",
|
||||
"diskHealth": "Стан диска",
|
||||
"diskIgnorePath": "Ігнорувати шлях для диска",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "Режим подвійної колонки",
|
||||
"doubleColumnTip": "Ця опція лише активує функцію, чи можна її насправді включити, залежить від ширини пристрою",
|
||||
"editVirtKeys": "Редагувати віртуальні клавіші",
|
||||
"editor": "Редактор",
|
||||
"editorHighlightTip": "Поточна підсвітка коду не ідеальна і може бути вимкнена для покращення.",
|
||||
"emulator": "Емулятор",
|
||||
"enableMdns": "Увімкнути mDNS",
|
||||
"enableMdnsDesc": "Використовувати mDNS/Bonjour для виявлення SSH сервісів",
|
||||
"encode": "Кодувати",
|
||||
"envVars": "Змінні середовища",
|
||||
"experimentalFeature": "Експериментальна функція",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "Служба переднього плану",
|
||||
"fgServiceTip": "Після увімкнення деякі моделі пристроїв можуть вилітати. Вимкнення може призвести до того, що деякі моделі не зможуть підтримувати SSH-з'єднання у фоновому режимі. Будь ласка, дозвольте ServerBox права на сповіщення, фонову роботу та самопробудження в системних налаштуваннях.",
|
||||
"fileTooLarge": "Файл '{file}' занадто великий ({size}), макс {sizeMax}",
|
||||
"finishedAt": "Завершено о",
|
||||
"followSystem": "Слідувати системі",
|
||||
"font": "Шрифт",
|
||||
"fontSize": "Розмір шрифту",
|
||||
"force": "Примусово",
|
||||
"fullScreen": "Повноекранний режим",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "Перейти до",
|
||||
"hideTitleBar": "Сховати заголовок",
|
||||
"highlight": "Підсвітка коду",
|
||||
"homeTabs": "Домашні вкладки",
|
||||
"homeTabsCustomizeDesc": "Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок",
|
||||
"homeWidgetUrlConfig": "Налаштувати URL віджета на головному екрані",
|
||||
"host": "Хост",
|
||||
"httpFailedWithCode": "Запит не вдався, код статусу: {code}",
|
||||
"ignoreCert": "Ігнорувати сертифікат",
|
||||
"image": "Зображення",
|
||||
"imagesList": "Список зображень",
|
||||
"init": "Ініціалізувати",
|
||||
"inner": "Внутрішній",
|
||||
"install": "Встановити",
|
||||
"installDockerWithUrl": "Будь ласка, спочатку встановіть Docker. (https://docs.docker.com/engine/install)",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "Зберегати останній стан сервера",
|
||||
"keepStatusWhenErrTip": "Тільки в разі виникнення помилки під час виконання скрипту",
|
||||
"keyAuth": "Аутентифікація ключем",
|
||||
"lastFailure": "Остання помилка",
|
||||
"lastSuccess": "Останній успіх",
|
||||
"letterCache": "Кешування букв",
|
||||
"letterCacheTip": "Рекомендується відключити, але після вимкнення стане неможливим введення CJK (китайських, японських, корейських) символів.",
|
||||
"license": "Ліцензія",
|
||||
"location": "Місцезнаходження",
|
||||
"loss": "втрата пакетів",
|
||||
"madeWithLove": "Зроблено з ❤️ від {myGithub}",
|
||||
"manual": "Посібник",
|
||||
"max": "макс.",
|
||||
"maxConcurrency": "Максимальна паралельність",
|
||||
"maxRetryCount": "Кількість повторних спроб підключення до сервера",
|
||||
"maxRetryCountEqual0": "Знову і знову буде намагатися повторно підключитися.",
|
||||
"min": "мін.",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "Мережа",
|
||||
"netViewType": "Тип перегляду мережі",
|
||||
"newContainer": "Новий контейнер",
|
||||
"noConnectionStatsData": "Немає даних статистики з'єднань",
|
||||
"noLineChart": "Не використовувати лінійні діаграми",
|
||||
"noLineChartForCpu": "Не використовувати лінійні діаграми для ЦП",
|
||||
"noPrivateKeyTip": "Приватного ключа немає, можливо, він був видалений або сталася помилка конфігурації.",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "Тип вставки",
|
||||
"port": "Порт",
|
||||
"preferDiskAmount": "Пріоритетно показувати ємність диска",
|
||||
"preview": "Попередній перегляд",
|
||||
"privateKey": "Приватний ключ",
|
||||
"process": "Процес",
|
||||
"prune": "Обрізати",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "Ця функція наразі перебуває на стадії тестування та випробувалася лише на PVE 8+. Будь ласка, використовуйте її з обережністю.",
|
||||
"read": "Читати",
|
||||
"reboot": "Перезавантажити",
|
||||
"recentConnections": "Останні з'єднання",
|
||||
"rememberPwdInMem": "Запам'ятати пароль у пам'яті",
|
||||
"rememberPwdInMemTip": "Використовується для контейнерів, призупинення тощо.",
|
||||
"rememberWindowSize": "Запам'ятати розмір вікна",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "Порядок віджетів на сторінці деталі",
|
||||
"serverFuncBtns": "Кнопки функцій сервера",
|
||||
"serverOrder": "Порядок сервера",
|
||||
"serverTabRequired": "Вкладку сервера не можна видалити",
|
||||
"servers": "серверів",
|
||||
"sftpDlPrepare": "Підготовка до підключення...",
|
||||
"sftpEditorTip": "Якщо порожньо, використовуйте вбудований редактор файлів програми. Якщо є значення, використовуйте редактор віддаленого сервера, наприклад, `vim` (рекомендується автоматично визначити відповідно до `EDITOR`).",
|
||||
"sftpRmrDirSummary": "Використовуйте `rm -r`, щоб видалити папку в SFTP.",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "Призупинити",
|
||||
"suspendTip": "Функція призупинення потребує адміністративних прав та підтримки systemd.",
|
||||
"switchTo": "Переключитися на {val}",
|
||||
"sync": "Синхронізація",
|
||||
"syncTip": "Може знадобитися перезапуск, щоб деякі зміни набрали чинності.",
|
||||
"system": "Система",
|
||||
"tag": "Теги",
|
||||
"tapToStartDiscovery": "Натисніть кнопку пошуку, щоб виявити SSH сервери у вашій мережі",
|
||||
"temperature": "Температура",
|
||||
"termFontSizeTip": "Це налаштування вплине на розмір терміналу (ширину та висоту). Ви можете масштабувати на сторінці терміналу, щоб налаштувати розмір шрифту поточної сесії.",
|
||||
"terminal": "Термінал",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "Час",
|
||||
"times": "Рази",
|
||||
"total": "Всього",
|
||||
"totalAttempts": "Загальна кількість",
|
||||
"traffic": "Трафік",
|
||||
"trySudo": "Спробуйте використовувати sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "Оновити",
|
||||
"updateIntervalEqual0": "Ви встановили 0, автоматичне оновлення не відбудеться.\nНе можна розрахувати статус ЦП.",
|
||||
"updateServerStatusInterval": "Інтервал оновлення статусу сервера",
|
||||
"upload": "Завантаження",
|
||||
"upsideDown": "Доверху дном",
|
||||
"uptime": "Час роботи",
|
||||
"useCdn": "Використання CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "Використовувати Podman за замовчуванням",
|
||||
"used": "Використано",
|
||||
"view": "Переглянути",
|
||||
"viewDetails": "Переглянути деталі",
|
||||
"viewErr": "Переглянути помилку",
|
||||
"virtKeyHelpClipboard": "Копіювати в буфер обміну, якщо вибраний термінал не порожній, в іншому випадку вставити вміст буфера обміну в термінал.",
|
||||
"virtKeyHelpIME": "Увімкнути/вимкнути клавіатуру",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "Після налаштування WOL (Wake-on-LAN), при кожному підключенні до сервера відправляється запит WOL.",
|
||||
"write": "Записати",
|
||||
"writeScriptFailTip": "Запис у скрипт не вдався, можливо, через брак дозволів або каталог не існує.",
|
||||
"writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта.",
|
||||
"connectionStats": "Статистика з'єднань",
|
||||
"connectionStatsDesc": "Переглянути коефіцієнт успішності підключення до сервера та історію",
|
||||
"noConnectionStatsData": "Немає даних статистики з'єднань",
|
||||
"totalAttempts": "Загальна кількість",
|
||||
"lastSuccess": "Останній успіх",
|
||||
"lastFailure": "Остання помилка",
|
||||
"recentConnections": "Останні з'єднання",
|
||||
"viewDetails": "Переглянути деталі",
|
||||
"connectionDetails": "Деталі з'єднання",
|
||||
"clearThisServerStats": "Очистити статистику цього сервера",
|
||||
"clearAllStatsTitle": "Очистити всю статистику",
|
||||
"clearAllStatsContent": "Ви впевнені, що хочете очистити всю статистику з'єднань сервера? Цю дію не можна скасувати.",
|
||||
"clearServerStatsTitle": "Очистити статистику {serverName}",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "Ви впевнені, що хочете очистити статистику з'єднань для сервера \"{serverName}\"? Цю дію не можна скасувати.",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "Домашні вкладки",
|
||||
"homeTabsCustomizeDesc": "Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок",
|
||||
"reset": "Скинути",
|
||||
"availableTabs": "Доступні вкладки",
|
||||
"atLeastOneTab": "Потрібно вибрати принаймні одну вкладку",
|
||||
"serverTabRequired": "Server tab cannot be removed"
|
||||
"writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта."
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "zh",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "感谢以下参与的各位。",
|
||||
"acceptBeta": "接受测试版更新推送",
|
||||
"addSystemPrivateKeyTip": "检测到暂无私钥,是否添加系统默认的私钥(~/.ssh/id_rsa)?",
|
||||
"added2List": "已添加至任务列表",
|
||||
"addr": "地址",
|
||||
"alreadyLastDir": "已是顶级目录",
|
||||
"atLeastOneTab": "至少需要选择一个标签",
|
||||
"authFailTip": "认证失败,请检查连接信息是否正确",
|
||||
"autoBackupConflict": "仅可启用一个自动备份任务",
|
||||
"autoConnect": "自动连接",
|
||||
"autoRun": "自动运行",
|
||||
"autoUpdateHomeWidget": "自动更新桌面小部件",
|
||||
"availableTabs": "可用标签",
|
||||
"backupEncrypted": "备份已加密",
|
||||
"backupNotEncrypted": "备份未加密",
|
||||
"backupPassword": "备份密码",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "电池",
|
||||
"bgRun": "后台运行",
|
||||
"bgRunTip": "此开关只代表程序会尝试在后台运行,具体能否后台运行取决于是否开启了权限。原生 Android 请关闭本 App 的“电池优化”,MIUI / HyperOS 请将省电策略改为“无限制”。",
|
||||
"clearAllStatsContent": "确定要清空所有服务器的连接统计数据吗?此操作无法撤销。",
|
||||
"clearAllStatsTitle": "清空所有统计",
|
||||
"clearServerStatsContent": "确定要清空服务器 \"{serverName}\" 的连接统计数据吗?此操作无法撤销。",
|
||||
"clearServerStatsTitle": "清空 {serverName} 统计",
|
||||
"clearThisServerStats": "清空此服务器统计",
|
||||
"closeAfterSave": "保存后关闭",
|
||||
"cmd": "命令",
|
||||
"collapseUITip": "是否默认折叠 UI 中的长列表",
|
||||
"conn": "连接",
|
||||
"connectionDetails": "连接详情",
|
||||
"connectionStats": "连接统计",
|
||||
"connectionStatsDesc": "查看服务器连接成功率和历史记录",
|
||||
"container": "容器",
|
||||
"containerTrySudoTip": "例如:在应用内将用户设置为 aaa,但是 Docker 安装在root用户下,这时就需要启用此选项",
|
||||
"convert": "转换",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "启动 SSH 连接所用的终端模拟器命令",
|
||||
"dirEmpty": "请确保目录为空",
|
||||
"disconnected": "已断开连接",
|
||||
"discoverSshServers": "发现SSH服务器",
|
||||
"discoveryFailed": "发现失败",
|
||||
"discoverySettings": "发现设置",
|
||||
"discoverySummary": "发现摘要",
|
||||
"disk": "磁盘",
|
||||
"diskHealth": "磁盘健康",
|
||||
"diskIgnorePath": "忽略的磁盘路径",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "双列模式",
|
||||
"doubleColumnTip": "此选项仅用于启用该功能,是否生效取决于设备宽度",
|
||||
"editVirtKeys": "编辑虚拟按键",
|
||||
"editor": "编辑器",
|
||||
"editorHighlightTip": "代码高亮功能可能影响性能,可选择关闭。",
|
||||
"emulator": "模拟器",
|
||||
"enableMdns": "启用mDNS",
|
||||
"enableMdnsDesc": "使用mDNS/Bonjour发现SSH服务",
|
||||
"encode": "编码",
|
||||
"envVars": "环境变量",
|
||||
"experimentalFeature": "实验性功能",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "前台服务",
|
||||
"fgServiceTip": "开启后,可能会导致部分机型闪退。关闭可能导致部分机型无法后台保持 SSH 连接。请在系统设置内允许 ServerBox 通知权限、后台运行、自我唤醒。",
|
||||
"fileTooLarge": "文件 '{file}' 过大 '{size}',超过了 {sizeMax}",
|
||||
"finishedAt": "完成于",
|
||||
"followSystem": "跟随系统",
|
||||
"font": "字体",
|
||||
"fontSize": "字体大小",
|
||||
"force": "强制",
|
||||
"fullScreen": "全屏模式",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "前往",
|
||||
"hideTitleBar": "隐藏标题栏",
|
||||
"highlight": "代码高亮",
|
||||
"homeTabs": "主页标签",
|
||||
"homeTabsCustomizeDesc": "自定义主页上显示的标签及其顺序",
|
||||
"homeWidgetUrlConfig": "桌面部件链接配置",
|
||||
"host": "主机",
|
||||
"httpFailedWithCode": "请求失败,状态码: {code}",
|
||||
"ignoreCert": "忽略证书",
|
||||
"image": "镜像",
|
||||
"imagesList": "镜像列表",
|
||||
"init": "初始化",
|
||||
"inner": "内置",
|
||||
"install": "安装",
|
||||
"installDockerWithUrl": "请先前往 https://docs.docker.com/engine/install 安装 Docker",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "保留上次的服务器状态",
|
||||
"keepStatusWhenErrTip": "仅限于执行脚本出错",
|
||||
"keyAuth": "密钥认证",
|
||||
"lastFailure": "最后失败",
|
||||
"lastSuccess": "最后成功",
|
||||
"letterCache": "输入法字符缓存",
|
||||
"letterCacheTip": "推荐关闭,但是关闭后无法输入 CJK 等文字",
|
||||
"license": "证书",
|
||||
"location": "位置",
|
||||
"loss": "丢包率",
|
||||
"madeWithLove": "用❤️制作 by {myGithub}",
|
||||
"manual": "手动",
|
||||
"max": "最大",
|
||||
"maxConcurrency": "最大并发数",
|
||||
"maxRetryCount": "服务器尝试重连次数",
|
||||
"maxRetryCountEqual0": "将无限次重试",
|
||||
"min": "最小",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "网络",
|
||||
"netViewType": "网络视图类型",
|
||||
"newContainer": "新建容器",
|
||||
"noConnectionStatsData": "暂无连接统计数据",
|
||||
"noLineChart": "不使用折线图",
|
||||
"noLineChartForCpu": "CPU 不使用折线图",
|
||||
"noPrivateKeyTip": "私钥不存在,可能已被删除/配置错误",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "插入类型",
|
||||
"port": "端口",
|
||||
"preferDiskAmount": "优先显示硬盘容量",
|
||||
"preview": "预览",
|
||||
"privateKey": "私钥",
|
||||
"process": "进程",
|
||||
"prune": "修剪",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "当前该功能处于测试阶段,仅在 PVE 8+ 上测试过,请谨慎使用",
|
||||
"read": "读",
|
||||
"reboot": "重启",
|
||||
"recentConnections": "最近连接记录",
|
||||
"rememberPwdInMem": "在内存中记住密码",
|
||||
"rememberPwdInMemTip": "用于容器、挂起等",
|
||||
"rememberWindowSize": "记住窗口大小",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "详情页部件顺序",
|
||||
"serverFuncBtns": "服务器功能按钮",
|
||||
"serverOrder": "服务器顺序",
|
||||
"serverTabRequired": "服务器标签不能被移除",
|
||||
"servers": "服务器",
|
||||
"sftpDlPrepare": "准备连接至服务器...",
|
||||
"sftpEditorTip": "如果为空, 使用App内置的文件编辑器. 如果有值, 这是用远程服务器的编辑器, 例如 `vim` (建议根据 `EDITOR` 自动获取).",
|
||||
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 来删除文件夹",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "挂起",
|
||||
"suspendTip": "suspend 功能需要 root 权限及 systemd 支持。",
|
||||
"switchTo": "切换到 {val}",
|
||||
"sync": "同步",
|
||||
"syncTip": "可能需要重新启动,某些更改才能生效。",
|
||||
"system": "系统",
|
||||
"tag": "标签",
|
||||
"tapToStartDiscovery": "点击搜索按钮发现网络中的SSH服务器",
|
||||
"temperature": "温度",
|
||||
"termFontSizeTip": "此设置会影响终端大小(宽和高)。可以在终端页面缩放来调整当前会话的字体大小",
|
||||
"terminal": "终端",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "时间",
|
||||
"times": "次",
|
||||
"total": "总共",
|
||||
"totalAttempts": "总次数",
|
||||
"traffic": "流量",
|
||||
"trySudo": "尝试使用 sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "更新",
|
||||
"updateIntervalEqual0": "设置为 0 将不自动刷新服务器状态。\n且无法计算 CPU 使用率。",
|
||||
"updateServerStatusInterval": "服务器状态刷新间隔",
|
||||
"upload": "上传",
|
||||
"upsideDown": "上下交换",
|
||||
"uptime": "启动时长",
|
||||
"useCdn": "使用 CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "默认使用 Podman",
|
||||
"used": "已用",
|
||||
"view": "视图",
|
||||
"viewDetails": "查看详情",
|
||||
"viewErr": "查看错误",
|
||||
"virtKeyHelpClipboard": "如果终端有选中字符,则复制选中字符至剪切板,否则粘贴剪切板内容至终端。",
|
||||
"virtKeyHelpIME": "打开/关闭键盘",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "配置 WOL 后,每次连接服务器时将自动发送唤醒请求",
|
||||
"write": "写",
|
||||
"writeScriptFailTip": "写入脚本失败,可能是没有权限/目录不存在等",
|
||||
"writeScriptTip": "在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。",
|
||||
"connectionStats": "连接统计",
|
||||
"connectionStatsDesc": "查看服务器连接成功率和历史记录",
|
||||
"noConnectionStatsData": "暂无连接统计数据",
|
||||
"totalAttempts": "总次数",
|
||||
"lastSuccess": "最后成功",
|
||||
"lastFailure": "最后失败",
|
||||
"recentConnections": "最近连接记录",
|
||||
"viewDetails": "查看详情",
|
||||
"connectionDetails": "连接详情",
|
||||
"clearThisServerStats": "清空此服务器统计",
|
||||
"clearAllStatsTitle": "清空所有统计",
|
||||
"clearAllStatsContent": "确定要清空所有服务器的连接统计数据吗?此操作无法撤销。",
|
||||
"clearServerStatsTitle": "清空 {serverName} 统计",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "确定要清空服务器 \"{serverName}\" 的连接统计数据吗?此操作无法撤销。",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "主页标签",
|
||||
"homeTabsCustomizeDesc": "自定义主页上显示的标签及其顺序",
|
||||
"reset": "重置",
|
||||
"availableTabs": "可用标签",
|
||||
"atLeastOneTab": "至少需要选择一个标签",
|
||||
"serverTabRequired": "服务器标签不能被移除"
|
||||
"writeScriptTip": "在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。"
|
||||
}
|
||||
@@ -1,16 +1,32 @@
|
||||
{
|
||||
"@@locale": "zh_TW",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aboutThanks": "感謝以下參與的各位。",
|
||||
"acceptBeta": "接受測試版更新推送",
|
||||
"addSystemPrivateKeyTip": "偵測到尚無私鑰,是否要加入系統預設的私鑰(~/.ssh/id_rsa)?",
|
||||
"added2List": "已新增至任務清單",
|
||||
"addr": "位址",
|
||||
"alreadyLastDir": "已是頂層目錄",
|
||||
"atLeastOneTab": "至少需要選擇一個標籤",
|
||||
"authFailTip": "認證失敗,請檢查連線資訊是否正確",
|
||||
"autoBackupConflict": "僅能啟用一項自動備份任務",
|
||||
"autoConnect": "自動連線",
|
||||
"autoRun": "自動執行",
|
||||
"autoUpdateHomeWidget": "自動更新桌面小工具",
|
||||
"availableTabs": "可用標籤",
|
||||
"backupEncrypted": "備份已加密",
|
||||
"backupNotEncrypted": "備份未加密",
|
||||
"backupPassword": "備份密碼",
|
||||
@@ -23,10 +39,18 @@
|
||||
"battery": "電池",
|
||||
"bgRun": "背景執行",
|
||||
"bgRunTip": "此開關僅代表程式會嘗試於背景執行,能否成功取決於系統權限。在原生 Android 上,請關閉本應用的「電池最佳化」;在 MIUI / HyperOS 上,請將省電策略調整為「無限制」。",
|
||||
"clearAllStatsContent": "確定要清空所有伺服器的連線統計資料嗎?此操作無法撤銷。",
|
||||
"clearAllStatsTitle": "清空所有統計",
|
||||
"clearServerStatsContent": "確定要清空伺服器 \"{serverName}\" 的連線統計資料嗎?此操作無法撤銷。",
|
||||
"clearServerStatsTitle": "清空 {serverName} 統計",
|
||||
"clearThisServerStats": "清空此伺服器統計",
|
||||
"closeAfterSave": "儲存後關閉",
|
||||
"cmd": "指令",
|
||||
"collapseUITip": "是否預設折疊 UI 中存在的長列表",
|
||||
"conn": "連線",
|
||||
"connectionDetails": "連線詳情",
|
||||
"connectionStats": "連線統計",
|
||||
"connectionStatsDesc": "檢視伺服器連線成功率和歷史記錄",
|
||||
"container": "容器",
|
||||
"containerTrySudoTip": "例如:App 內設定使用者為 aaa,但是 Docker 安裝在 root 使用者,這時就需要開啟此選項",
|
||||
"convert": "轉換",
|
||||
@@ -42,6 +66,10 @@
|
||||
"desktopTerminalTip": "啟動 SSH 連線時用於打開終端機模擬器的指令。",
|
||||
"dirEmpty": "請確保目錄為空",
|
||||
"disconnected": "已中斷連線",
|
||||
"discoverSshServers": "發現SSH服務器",
|
||||
"discoveryFailed": "發現失敗",
|
||||
"discoverySettings": "發現設定",
|
||||
"discoverySummary": "發現摘要",
|
||||
"disk": "磁碟",
|
||||
"diskHealth": "磁碟健康",
|
||||
"diskIgnorePath": "忽略的磁碟路徑",
|
||||
@@ -55,9 +83,10 @@
|
||||
"doubleColumnMode": "雙列模式",
|
||||
"doubleColumnTip": "此選項僅用於啟用此功能,是否生效取決於裝置寬度",
|
||||
"editVirtKeys": "編輯虛擬按鍵",
|
||||
"editor": "編輯器",
|
||||
"editorHighlightTip": "程式碼高亮功能可能影響效能,可選擇性關閉。",
|
||||
"emulator": "模擬器",
|
||||
"enableMdns": "啟用mDNS",
|
||||
"enableMdnsDesc": "使用mDNS/Bonjour發現SSH服務",
|
||||
"encode": "編碼",
|
||||
"envVars": "環境變數",
|
||||
"experimentalFeature": "實驗性功能",
|
||||
@@ -67,8 +96,8 @@
|
||||
"fgService": "前台服務",
|
||||
"fgServiceTip": "開啟後,可能會導致部分機型閃退。關閉可能導致部分機型無法背景保持 SSH 連線。請在系統設定內允許 ServerBox 通知權限、背景執行、自我喚醒。",
|
||||
"fileTooLarge": "檔案 '{file}' 過大 '{size}',超過了 {sizeMax}",
|
||||
"finishedAt": "完成於",
|
||||
"followSystem": "跟隨系統",
|
||||
"font": "字型",
|
||||
"fontSize": "字型大小",
|
||||
"force": "強制",
|
||||
"fullScreen": "全螢幕模式",
|
||||
@@ -79,13 +108,14 @@
|
||||
"goto": "前往",
|
||||
"hideTitleBar": "隱藏標題欄",
|
||||
"highlight": "程式碼標記",
|
||||
"homeTabs": "主頁標籤",
|
||||
"homeTabsCustomizeDesc": "自訂主頁上顯示的標籤及其順序",
|
||||
"homeWidgetUrlConfig": "桌面小工具連結配置",
|
||||
"host": "主機",
|
||||
"httpFailedWithCode": "請求失敗,狀態碼:{code}",
|
||||
"ignoreCert": "忽略憑證",
|
||||
"image": "映像檔",
|
||||
"imagesList": "映像檔列表",
|
||||
"init": "初始化",
|
||||
"inner": "內建",
|
||||
"install": "安裝",
|
||||
"installDockerWithUrl": "請先前往 https://docs.docker.com/engine/install 安裝 Docker",
|
||||
@@ -95,14 +125,15 @@
|
||||
"keepStatusWhenErr": "保留上次的伺服器狀態",
|
||||
"keepStatusWhenErrTip": "僅在執行腳本出錯時",
|
||||
"keyAuth": "金鑰認證",
|
||||
"lastFailure": "最後失敗",
|
||||
"lastSuccess": "最後成功",
|
||||
"letterCache": "輸入法字符快取",
|
||||
"letterCacheTip": "建議關閉,但關閉後將無法輸入 CJK 等文字。",
|
||||
"license": "憑證",
|
||||
"location": "位置",
|
||||
"loss": "逾時",
|
||||
"madeWithLove": "用❤️製作 by {myGithub}",
|
||||
"manual": "手動",
|
||||
"max": "最大",
|
||||
"maxConcurrency": "最大並發數",
|
||||
"maxRetryCount": "伺服器嘗試重連次數",
|
||||
"maxRetryCountEqual0": "將無限次重試",
|
||||
"min": "最小",
|
||||
@@ -115,6 +146,7 @@
|
||||
"net": "網路",
|
||||
"netViewType": "網路檢視類型",
|
||||
"newContainer": "新建容器",
|
||||
"noConnectionStatsData": "暫無連線統計資料",
|
||||
"noLineChart": "不使用折線圖",
|
||||
"noLineChartForCpu": "CPU 不使用折線圖",
|
||||
"noPrivateKeyTip": "私鑰不存在,可能已被刪除/配置錯誤。",
|
||||
@@ -136,7 +168,6 @@
|
||||
"plugInType": "插入類型",
|
||||
"port": "埠",
|
||||
"preferDiskAmount": "優先顯示硬碟容量",
|
||||
"preview": "預覽",
|
||||
"privateKey": "私鑰",
|
||||
"process": "處理程序",
|
||||
"prune": "修剪",
|
||||
@@ -146,6 +177,7 @@
|
||||
"pveVersionLow": "此功能目前處於測試階段,僅在 PVE 8+ 上進行過測試。請謹慎使用。",
|
||||
"read": "讀取",
|
||||
"reboot": "重開",
|
||||
"recentConnections": "最近連線記錄",
|
||||
"rememberPwdInMem": "在記憶體中記住密碼",
|
||||
"rememberPwdInMemTip": "用於容器、暫停等",
|
||||
"rememberWindowSize": "記住視窗大小",
|
||||
@@ -166,6 +198,8 @@
|
||||
"serverDetailOrder": "詳情頁部件順序",
|
||||
"serverFuncBtns": "伺服器功能按鈕",
|
||||
"serverOrder": "伺服器順序",
|
||||
"serverTabRequired": "服務器標籤不能被移除",
|
||||
"servers": "服務器",
|
||||
"sftpDlPrepare": "準備連線至伺服器...",
|
||||
"sftpEditorTip": "如果為空, 使用App內建的檔案編輯器。如果有值, 則使用遠端伺服器的編輯器, 例如 `vim`(建議根據 `EDITOR` 自動獲取)。",
|
||||
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 來刪除檔案夾",
|
||||
@@ -206,10 +240,10 @@
|
||||
"suspend": "當機",
|
||||
"suspendTip": "suspend 功能需要 root 權限及 systemd 支援。",
|
||||
"switchTo": "切換到 {val}",
|
||||
"sync": "同步",
|
||||
"syncTip": "可能需要重新啟動,某些更改才能生效。",
|
||||
"system": "系統",
|
||||
"tag": "標籤",
|
||||
"tapToStartDiscovery": "點擊搜尋按鈕發現網路中的SSH服務器",
|
||||
"temperature": "溫度",
|
||||
"termFontSizeTip": "此設定將影響終端機大小(寬度和高度)。您可以在終端機頁面縮放,來調整目前會話的字型大小。",
|
||||
"terminal": "终端機",
|
||||
@@ -220,6 +254,7 @@
|
||||
"time": "時間",
|
||||
"times": "次",
|
||||
"total": "總共",
|
||||
"totalAttempts": "總次數",
|
||||
"traffic": "流量",
|
||||
"trySudo": "嘗試使用 sudo",
|
||||
"ttl": "TTL",
|
||||
@@ -228,7 +263,6 @@
|
||||
"update": "更新",
|
||||
"updateIntervalEqual0": "設定為 0 將不自動刷新伺服器狀態,\n也無法計算 CPU 使用率。",
|
||||
"updateServerStatusInterval": "伺服器狀態更新間隔",
|
||||
"upload": "上傳",
|
||||
"upsideDown": "上下交換",
|
||||
"uptime": "運作時間",
|
||||
"useCdn": "使用 CDN",
|
||||
@@ -237,6 +271,7 @@
|
||||
"usePodmanByDefault": "預設使用 Podman",
|
||||
"used": "已使用",
|
||||
"view": "檢視",
|
||||
"viewDetails": "檢視詳情",
|
||||
"viewErr": "查看錯誤",
|
||||
"virtKeyHelpClipboard": "如果終端機有選中字元,則復製選中字元至剪貼簿,否則貼上剪貼簿內容至終端機。",
|
||||
"virtKeyHelpIME": "打開/關閉鍵盤",
|
||||
@@ -249,39 +284,5 @@
|
||||
"wolTip": "設定 WOL 後,每次連線伺服器時將自動發送喚醒請求",
|
||||
"write": "寫入",
|
||||
"writeScriptFailTip": "寫入腳本失敗,可能是沒有權限/目錄不存在等。",
|
||||
"writeScriptTip": "連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。",
|
||||
"connectionStats": "連線統計",
|
||||
"connectionStatsDesc": "檢視伺服器連線成功率和歷史記錄",
|
||||
"noConnectionStatsData": "暫無連線統計資料",
|
||||
"totalAttempts": "總次數",
|
||||
"lastSuccess": "最後成功",
|
||||
"lastFailure": "最後失敗",
|
||||
"recentConnections": "最近連線記錄",
|
||||
"viewDetails": "檢視詳情",
|
||||
"connectionDetails": "連線詳情",
|
||||
"clearThisServerStats": "清空此伺服器統計",
|
||||
"clearAllStatsTitle": "清空所有統計",
|
||||
"clearAllStatsContent": "確定要清空所有伺服器的連線統計資料嗎?此操作無法撤銷。",
|
||||
"clearServerStatsTitle": "清空 {serverName} 統計",
|
||||
"@clearServerStatsTitle": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clearServerStatsContent": "確定要清空伺服器 \"{serverName}\" 的連線統計資料嗎?此操作無法撤銷。",
|
||||
"@clearServerStatsContent": {
|
||||
"placeholders": {
|
||||
"serverName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeTabs": "主頁標籤",
|
||||
"homeTabsCustomizeDesc": "自訂主頁上顯示的標籤及其順序",
|
||||
"reset": "重置",
|
||||
"availableTabs": "可用標籤",
|
||||
"atLeastOneTab": "至少需要選擇一個標籤",
|
||||
"serverTabRequired": "服務器標籤不能被移除"
|
||||
"writeScriptTip": "連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。"
|
||||
}
|
||||
@@ -240,7 +240,7 @@ final class _BackupPageState extends ConsumerState<BackupPage> with AutomaticKee
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(l10n.manual),
|
||||
title: Text(libL10n.manual),
|
||||
trailing: webdavLoading.listenVal((loading) {
|
||||
if (loading) return SizedLoading.small;
|
||||
|
||||
@@ -301,7 +301,7 @@ final class _BackupPageState extends ConsumerState<BackupPage> with AutomaticKee
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(l10n.manual),
|
||||
title: Text(libL10n.manual),
|
||||
trailing: gistLoading.listenVal((loading) {
|
||||
if (loading) return SizedLoading.small;
|
||||
|
||||
@@ -450,7 +450,7 @@ extension on _BackupPageState {
|
||||
await Webdav.shared.upload(relativePath: bakName);
|
||||
Loggers.app.info('Upload webdav backup success');
|
||||
} catch (e, s) {
|
||||
context.showErrDialog(e, s, l10n.upload);
|
||||
context.showErrDialog(e, s, libL10n.upload);
|
||||
Loggers.app.warning('Upload webdav backup failed', e, s);
|
||||
} finally {
|
||||
webdavLoading.value = false;
|
||||
@@ -489,7 +489,7 @@ extension on _BackupPageState {
|
||||
await GistRs.shared.upload(relativePath: bakName);
|
||||
Loggers.app.info('Upload gist backup success');
|
||||
} catch (e, s) {
|
||||
context.showErrDialog(e, s, l10n.upload);
|
||||
context.showErrDialog(e, s, libL10n.upload);
|
||||
Loggers.app.warning('Upload gist backup failed', e, s);
|
||||
} finally {
|
||||
gistLoading.value = false;
|
||||
|
||||
@@ -77,7 +77,7 @@ extension on _ContainerPageState {
|
||||
|
||||
Future<void> _showAddCmdPreview(String cmd) async {
|
||||
await context.showRoundDialog(
|
||||
title: l10n.preview,
|
||||
title: libL10n.preview,
|
||||
child: Text(cmd),
|
||||
actions: [
|
||||
TextButton(onPressed: () => context.pop(), child: Text(libL10n.cancel)),
|
||||
|
||||
218
lib/view/page/server/discovery/discovery.dart
Normal file
218
lib/view/page/server/discovery/discovery.dart
Normal file
@@ -0,0 +1,218 @@
|
||||
import 'package:fl_lib/fl_lib.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:icons_plus/icons_plus.dart';
|
||||
import 'package:server_box/core/extension/context/locale.dart';
|
||||
import 'package:server_box/core/service/ssh_discovery.dart';
|
||||
import 'package:server_box/data/model/server/discovery_result.dart';
|
||||
|
||||
part 'widget.dart';
|
||||
|
||||
class SshDiscoveryPage extends ConsumerStatefulWidget {
|
||||
const SshDiscoveryPage({super.key});
|
||||
|
||||
static const route = AppRouteNoArg<List<SshDiscoveryResult>>(
|
||||
page: SshDiscoveryPage.new,
|
||||
path: '/servers/discovery',
|
||||
);
|
||||
|
||||
@override
|
||||
ConsumerState<SshDiscoveryPage> createState() => _SshDiscoveryPageState();
|
||||
}
|
||||
|
||||
class _SshDiscoveryPageState extends ConsumerState<SshDiscoveryPage> {
|
||||
final _config = ValueNotifier(const SshDiscoveryConfig());
|
||||
final _discoveryResults = ValueNotifier<List<SshDiscoveryResult>>([]);
|
||||
final _isDiscovering = ValueNotifier(false);
|
||||
final _discoveryReport = ValueNotifier<SshDiscoveryReport?>(null);
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_config.dispose();
|
||||
_discoveryResults.dispose();
|
||||
_isDiscovering.dispose();
|
||||
_discoveryReport.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CustomAppBar(
|
||||
title: Text(l10n.discoverSshServers),
|
||||
actions: [IconButton(icon: const Icon(Icons.settings), onPressed: _showSettings)],
|
||||
),
|
||||
body: _buildBody(),
|
||||
floatingActionButton: _isDiscovering.listenVal((discovering) {
|
||||
if (discovering) return UIs.placeholder;
|
||||
return _buildFAB();
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildBody() {
|
||||
return Column(
|
||||
children: [
|
||||
_buildSummary(),
|
||||
Expanded(child: _buildResultsList()),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSummary() {
|
||||
return _discoveryReport.listenVal((report) {
|
||||
if (report == null) {
|
||||
return UIs.placeholder;
|
||||
}
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(l10n.discoverySummary, style: const TextStyle(fontWeight: FontWeight.bold)),
|
||||
UIs.height7,
|
||||
Text('${libL10n.found}: ${report.count} ${l10n.servers}'),
|
||||
Text('${libL10n.duration}: ${report.durationMs}ms'),
|
||||
Text(
|
||||
'${l10n.finishedAt}: ${DateTime.parse(report.generatedAt).toLocal().toString().substring(0, 16)}',
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildResultsList() {
|
||||
return _discoveryResults.listenVal((results) {
|
||||
if (results.isEmpty) {
|
||||
return _isDiscovering.listenVal((discovering) {
|
||||
if (discovering) {
|
||||
return const Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [CircularProgressIndicator(), UIs.height13, Text('Discovering SSH servers...')],
|
||||
),
|
||||
);
|
||||
}
|
||||
return Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(BoxIcons.bx_search, size: 64, color: UIs.textGrey.color),
|
||||
UIs.height13,
|
||||
Text(l10n.tapToStartDiscovery, style: UIs.textGrey),
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
return ListView.builder(
|
||||
itemCount: results.length,
|
||||
itemBuilder: (context, index) {
|
||||
final result = results[index];
|
||||
return _buildResultTile(result, index);
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildResultTile(SshDiscoveryResult result, int index) {
|
||||
return ListTile(
|
||||
leading: Icon(
|
||||
result.isSelected ? Icons.check_circle : Icons.circle_outlined,
|
||||
color: result.isSelected ? Colors.green : null,
|
||||
),
|
||||
title: Text(result.ip),
|
||||
subtitle: result.banner != null
|
||||
? Text(result.banner!, style: const TextStyle(fontSize: 12))
|
||||
: Text('Port ${result.port}', style: UIs.textGrey),
|
||||
trailing: const Icon(BoxIcons.bx_server),
|
||||
onTap: () {
|
||||
final updated = result.copyWith(isSelected: !result.isSelected);
|
||||
final newResults = List<SshDiscoveryResult>.from(_discoveryResults.value);
|
||||
newResults[index] = updated;
|
||||
_discoveryResults.value = newResults;
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildFAB() {
|
||||
return _discoveryResults.listenVal((results) {
|
||||
final selectedResults = results.where((r) => r.isSelected).toList();
|
||||
return AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 400),
|
||||
switchInCurve: Curves.easeInOut,
|
||||
switchOutCurve: Curves.easeInOut,
|
||||
transitionBuilder: (child, animation) {
|
||||
return SlideTransition(
|
||||
position: Tween<Offset>(
|
||||
begin: const Offset(0, 0.3),
|
||||
end: Offset.zero,
|
||||
).animate(CurvedAnimation(parent: animation, curve: Curves.easeInOutBack)),
|
||||
child: FadeTransition(opacity: animation, child: child),
|
||||
);
|
||||
},
|
||||
layoutBuilder: (currentChild, previousChildren) {
|
||||
return Stack(
|
||||
alignment: Alignment.centerRight,
|
||||
children: <Widget>[...previousChildren, if (currentChild != null) currentChild],
|
||||
);
|
||||
},
|
||||
child: selectedResults.isNotEmpty
|
||||
? FloatingActionButton.extended(
|
||||
key: const ValueKey('import'),
|
||||
heroTag: 'import_fab',
|
||||
onPressed: () => _importSelected(),
|
||||
icon: const Icon(Icons.add),
|
||||
label: Text('${libL10n.import} (${selectedResults.length})'),
|
||||
)
|
||||
: FloatingActionButton.extended(
|
||||
key: const ValueKey('discovery'),
|
||||
heroTag: 'discovery_fab',
|
||||
onPressed: _startDiscovery,
|
||||
icon: const Icon(BoxIcons.bx_search),
|
||||
label: Text(libL10n.search),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _startDiscovery() async {
|
||||
_isDiscovering.value = true;
|
||||
_discoveryResults.value = [];
|
||||
_discoveryReport.value = null;
|
||||
|
||||
try {
|
||||
final report = await SshDiscoveryService.discover(_config.value);
|
||||
_discoveryReport.value = report;
|
||||
_discoveryResults.value = report.items;
|
||||
} catch (e) {
|
||||
if (mounted) {
|
||||
context.showSnackBar('${l10n.discoveryFailed}: $e');
|
||||
}
|
||||
} finally {
|
||||
_isDiscovering.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
void _showSettings() {
|
||||
context.showRoundDialog(
|
||||
child: _DiscoverySettingsDialog(config: _config.value, onChanged: (config) => _config.value = config),
|
||||
actions: Btnx.oks,
|
||||
);
|
||||
}
|
||||
|
||||
void _importSelected() {
|
||||
final selected = _discoveryResults.value.where((r) => r.isSelected).toList();
|
||||
if (selected.isEmpty) return;
|
||||
|
||||
context.pop(selected);
|
||||
}
|
||||
}
|
||||
78
lib/view/page/server/discovery/widget.dart
Normal file
78
lib/view/page/server/discovery/widget.dart
Normal file
@@ -0,0 +1,78 @@
|
||||
part of 'discovery.dart';
|
||||
|
||||
class _DiscoverySettingsDialog extends StatefulWidget {
|
||||
final SshDiscoveryConfig config;
|
||||
final ValueChanged<SshDiscoveryConfig> onChanged;
|
||||
|
||||
const _DiscoverySettingsDialog({
|
||||
required this.config,
|
||||
required this.onChanged,
|
||||
});
|
||||
|
||||
@override
|
||||
State<_DiscoverySettingsDialog> createState() => _DiscoverySettingsDialogState();
|
||||
}
|
||||
|
||||
class _DiscoverySettingsDialogState extends State<_DiscoverySettingsDialog> {
|
||||
late final _timeoutController = TextEditingController(text: widget.config.timeoutMs.toString());
|
||||
late final _concurrencyController = TextEditingController(text: widget.config.maxConcurrency.toString());
|
||||
late bool _enableMdns = widget.config.enableMdns;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_timeoutController.dispose();
|
||||
_concurrencyController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
l10n.discoverySettings,
|
||||
style: const TextStyle(fontSize: 18),
|
||||
),
|
||||
UIs.height13,
|
||||
Input(
|
||||
controller: _timeoutController,
|
||||
type: TextInputType.number,
|
||||
label: '${libL10n.timeout} (ms)',
|
||||
onChanged: (v) {
|
||||
final t = int.tryParse(v) ?? 700;
|
||||
if (t > 0) {
|
||||
widget.onChanged(widget.config.copyWith(timeoutMs: t));
|
||||
}
|
||||
},
|
||||
hint: '700',
|
||||
),
|
||||
UIs.height7,
|
||||
Input(
|
||||
controller: _concurrencyController,
|
||||
type: TextInputType.number,
|
||||
label: l10n.maxConcurrency,
|
||||
hint: '128',
|
||||
onChanged: (v) {
|
||||
final c = int.tryParse(v) ?? 128;
|
||||
if (c > 0) {
|
||||
widget.onChanged(widget.config.copyWith(maxConcurrency: c));
|
||||
}
|
||||
},
|
||||
),
|
||||
UIs.height7,
|
||||
SwitchListTile(
|
||||
title: Text(l10n.enableMdns),
|
||||
subtitle: Text(l10n.enableMdnsDesc),
|
||||
value: _enableMdns,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
_enableMdns = value;
|
||||
});
|
||||
widget.onChanged(widget.config.copyWith(enableMdns: value));
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,100 @@
|
||||
part of 'edit.dart';
|
||||
|
||||
extension _Actions on _ServerEditPageState {
|
||||
Future<void> _onTapSSHDiscovery() async {
|
||||
try {
|
||||
final result = await SshDiscoveryPage.route.go(context);
|
||||
|
||||
if (result != null && result.isNotEmpty) {
|
||||
await _processDiscoveredServers(result);
|
||||
}
|
||||
} catch (e, s) {
|
||||
context.showErrDialog(e, s);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _processDiscoveredServers(List<SshDiscoveryResult> discoveredServers) async {
|
||||
if (discoveredServers.length == 1) {
|
||||
// Single server - populate the current form
|
||||
final server = discoveredServers.first;
|
||||
_ipController.text = server.ip;
|
||||
_portController.text = server.port.toString();
|
||||
if (_nameController.text.isEmpty) {
|
||||
_nameController.text = server.ip;
|
||||
}
|
||||
context.showSnackBar('${libL10n.found} 1 ${l10n.server}');
|
||||
} else {
|
||||
// Multiple servers - show import dialog
|
||||
final shouldImport = await context.showRoundDialog<bool>(
|
||||
title: libL10n.import,
|
||||
child: Text(libL10n.askContinue('${libL10n.found} ${discoveredServers.length} ${l10n.servers}')),
|
||||
actions: Btnx.cancelOk,
|
||||
);
|
||||
|
||||
if (shouldImport == true) {
|
||||
// Prompt user to configure default values before importing
|
||||
final defaultUsername = 'root';
|
||||
final defaultKeyId = _keyIdx.value?.toString() ?? '';
|
||||
final usernameController = TextEditingController(text: defaultUsername);
|
||||
final keyIdController = TextEditingController(text: defaultKeyId);
|
||||
|
||||
final shouldProceed = await context.showRoundDialog<bool>(
|
||||
title: libL10n.import,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text('${libL10n.found} ${discoveredServers.length} ${l10n.servers}.'),
|
||||
const SizedBox(height: 8),
|
||||
Text(libL10n.setting),
|
||||
const SizedBox(height: 8),
|
||||
TextField(
|
||||
controller: usernameController,
|
||||
decoration: InputDecoration(labelText: libL10n.user),
|
||||
),
|
||||
TextField(
|
||||
controller: keyIdController,
|
||||
decoration: InputDecoration(labelText: l10n.privateKey),
|
||||
),
|
||||
],
|
||||
),
|
||||
actions: Btnx.cancelOk,
|
||||
);
|
||||
|
||||
if (shouldProceed == true) {
|
||||
final username = usernameController.text.isNotEmpty ? usernameController.text : defaultUsername;
|
||||
final keyId = keyIdController.text.isNotEmpty ? keyIdController.text : null;
|
||||
final servers = discoveredServers.map((result) => Spi(
|
||||
name: result.ip,
|
||||
ip: result.ip,
|
||||
port: result.port,
|
||||
user: username,
|
||||
keyId: keyId,
|
||||
pwd: _passwordController.text.isEmpty ? null : _passwordController.text,
|
||||
)).toList();
|
||||
|
||||
await _batchImportServers(servers);
|
||||
}
|
||||
|
||||
usernameController.dispose();
|
||||
keyIdController.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _batchImportServers(List<Spi> servers) async {
|
||||
final store = Stores.server;
|
||||
int imported = 0;
|
||||
for (final server in servers) {
|
||||
try {
|
||||
store.put(server);
|
||||
imported++;
|
||||
} catch (e) {
|
||||
dprint('Failed to import server ${server.name}: $e');
|
||||
}
|
||||
}
|
||||
context.showSnackBar('${libL10n.success}: $imported ${l10n.servers}');
|
||||
if (mounted) Navigator.of(context).pop(true);
|
||||
}
|
||||
void _onTapSSHImport() async {
|
||||
try {
|
||||
final servers = await SSHConfig.parseConfig();
|
||||
|
||||
@@ -13,6 +13,7 @@ import 'package:server_box/core/utils/server_dedup.dart';
|
||||
import 'package:server_box/core/utils/ssh_config.dart';
|
||||
import 'package:server_box/data/model/app/scripts/cmd_types.dart';
|
||||
import 'package:server_box/data/model/server/custom.dart';
|
||||
import 'package:server_box/data/model/server/discovery_result.dart';
|
||||
import 'package:server_box/data/model/server/server_private_info.dart';
|
||||
import 'package:server_box/data/model/server/system.dart';
|
||||
import 'package:server_box/data/model/server/wol_cfg.dart';
|
||||
@@ -21,6 +22,7 @@ import 'package:server_box/data/provider/server/all.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/data/store/server.dart';
|
||||
import 'package:server_box/view/page/private_key/edit.dart';
|
||||
import 'package:server_box/view/page/server/discovery/discovery.dart';
|
||||
|
||||
part 'actions.dart';
|
||||
part 'widget.dart';
|
||||
@@ -30,17 +32,13 @@ class ServerEditPage extends ConsumerStatefulWidget {
|
||||
|
||||
const ServerEditPage({super.key, this.args});
|
||||
|
||||
static const route = AppRoute<bool, SpiRequiredArgs>(
|
||||
page: ServerEditPage.new,
|
||||
path: '/servers/edit',
|
||||
);
|
||||
static const route = AppRoute<bool, SpiRequiredArgs>(page: ServerEditPage.new, path: '/servers/edit');
|
||||
|
||||
@override
|
||||
ConsumerState<ServerEditPage> createState() => _ServerEditPageState();
|
||||
}
|
||||
|
||||
class _ServerEditPageState extends ConsumerState<ServerEditPage>
|
||||
with AfterLayoutMixin {
|
||||
class _ServerEditPageState extends ConsumerState<ServerEditPage> with AfterLayoutMixin {
|
||||
late final spi = widget.args?.spi;
|
||||
final _nameController = TextEditingController();
|
||||
final _ipController = TextEditingController();
|
||||
@@ -137,11 +135,12 @@ class _ServerEditPageState extends ConsumerState<ServerEditPage>
|
||||
_buildWriteScriptTip(),
|
||||
if (isMobile) _buildQrScan(),
|
||||
if (isDesktop) _buildSSHImport(),
|
||||
_buildSSHDiscovery(),
|
||||
];
|
||||
final children = [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: topItems.joinWith(UIs.width13).toList(),
|
||||
SizedBox(
|
||||
height: 50,
|
||||
child: ListView(scrollDirection: Axis.horizontal, children: topItems.joinWith(UIs.width13).toList()),
|
||||
),
|
||||
Input(
|
||||
autoFocus: true,
|
||||
@@ -186,10 +185,7 @@ class _ServerEditPageState extends ConsumerState<ServerEditPage>
|
||||
hint: 'root',
|
||||
suggestion: false,
|
||||
),
|
||||
TagTile(
|
||||
tags: _tags,
|
||||
allTags: ref.watch(serversNotifierProvider).tags,
|
||||
).cardx,
|
||||
TagTile(tags: _tags, allTags: ref.watch(serversNotifierProvider).tags).cardx,
|
||||
ListTile(
|
||||
title: Text(l10n.autoConnect),
|
||||
trailing: _autoConnect.listenVal(
|
||||
|
||||
@@ -439,6 +439,16 @@ extension _Widgets on _ServerEditPageState {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSSHDiscovery() {
|
||||
return Btn.tile(
|
||||
text: l10n.discoverSshServers,
|
||||
icon: const Icon(BoxIcons.bx_search, color: Colors.grey),
|
||||
onTap: _onTapSSHDiscovery,
|
||||
textStyle: UIs.textGrey,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDelBtn() {
|
||||
return IconButton(
|
||||
onPressed: () {
|
||||
|
||||
@@ -36,7 +36,7 @@ final class _AppAboutPageState extends State<_AppAboutPage> with AutomaticKeepAl
|
||||
),
|
||||
Btn.elevated(
|
||||
icon: const Icon(MingCute.question_fill),
|
||||
text: l10n.license,
|
||||
text: libL10n.license,
|
||||
onTap: () => showLicensePage(context: context),
|
||||
),
|
||||
].joinWith(UIs.width13),
|
||||
|
||||
@@ -72,7 +72,7 @@ extension _App on _AppSettingsPageState {
|
||||
title: libL10n.setting,
|
||||
items: List.generate(10, (idx) => idx == 1 ? null : idx),
|
||||
initial: _setting.serverStatusUpdateInterval.fetch(),
|
||||
display: (p0) => p0 == 0 ? l10n.manual : '$p0 ${l10n.second}',
|
||||
display: (p0) => p0 == 0 ? libL10n.manual : '$p0 ${l10n.second}',
|
||||
);
|
||||
if (val != null) {
|
||||
_setting.serverStatusUpdateInterval.put(val);
|
||||
|
||||
@@ -42,7 +42,7 @@ extension _SFTP on _AppSettingsPageState {
|
||||
return _setting.sftpEditor.listenable().listenVal((val) {
|
||||
return ListTile(
|
||||
leading: const Icon(MingCute.edit_fill),
|
||||
title: TipText(l10n.editor, l10n.sftpEditorTip),
|
||||
title: TipText(libL10n.editor, l10n.sftpEditorTip),
|
||||
trailing: Text(val.isEmpty ? l10n.inner : val, style: UIs.text15),
|
||||
onTap: () async {
|
||||
final ctrl = TextEditingController(text: val);
|
||||
@@ -57,7 +57,7 @@ extension _SFTP on _AppSettingsPageState {
|
||||
child: Input(
|
||||
controller: ctrl,
|
||||
autoFocus: true,
|
||||
label: l10n.editor,
|
||||
label: libL10n.editor,
|
||||
hint: '\$EDITOR / vim / nano ...',
|
||||
icon: Icons.edit,
|
||||
suggestion: false,
|
||||
|
||||
@@ -38,14 +38,14 @@ extension _SSH on _AppSettingsPageState {
|
||||
Widget _buildFont() {
|
||||
return ListTile(
|
||||
leading: const Icon(MingCute.font_fill),
|
||||
title: Text(l10n.font),
|
||||
title: Text(libL10n.font),
|
||||
trailing: _setting.fontPath.listenable().listenVal((val) {
|
||||
final fontName = val.getFileName();
|
||||
return Text(fontName ?? libL10n.empty, style: UIs.text15);
|
||||
}),
|
||||
onTap: () {
|
||||
context.showRoundDialog(
|
||||
title: l10n.font,
|
||||
title: libL10n.font,
|
||||
actions: [
|
||||
TextButton(onPressed: () async => await _pickFontFile(), child: Text(libL10n.file)),
|
||||
TextButton(
|
||||
|
||||
@@ -123,7 +123,7 @@ final class _AppSettingsPageState extends ConsumerState<AppSettingsPage> {
|
||||
[const CenterGreyTitle('App'), _buildApp()],
|
||||
[CenterGreyTitle(l10n.server), _buildServer()],
|
||||
[const CenterGreyTitle('SSH'), _buildSSH(), const CenterGreyTitle('SFTP'), _buildSFTP()],
|
||||
[CenterGreyTitle(l10n.container), _buildContainer(), CenterGreyTitle(l10n.editor), _buildEditor()],
|
||||
[CenterGreyTitle(l10n.container), _buildContainer(), CenterGreyTitle(libL10n.editor), _buildEditor()],
|
||||
|
||||
/// Fullscreen Mode is designed for old mobile phone which can be
|
||||
/// used as a status screen.
|
||||
|
||||
@@ -259,7 +259,7 @@ extension _Actions on _LocalFilePageState {
|
||||
),
|
||||
Btn.tile(
|
||||
icon: const Icon(Icons.upload),
|
||||
text: l10n.upload,
|
||||
text: libL10n.upload,
|
||||
onTap: () => _onTapUpload(file, fileName),
|
||||
),
|
||||
Btn.tile(
|
||||
|
||||
@@ -497,8 +497,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "v1.0.346"
|
||||
resolved-ref: f277b7a4259e45889320ef6d80ab320662558784
|
||||
ref: "v1.0.349"
|
||||
resolved-ref: "77971814f0d7624c9473d4f6ed796c0166d0828b"
|
||||
url: "https://github.com/lppcg/fl_lib"
|
||||
source: git
|
||||
version: "0.0.1"
|
||||
|
||||
@@ -63,7 +63,7 @@ dependencies:
|
||||
fl_lib:
|
||||
git:
|
||||
url: https://github.com/lppcg/fl_lib
|
||||
ref: v1.0.346
|
||||
ref: v1.0.349
|
||||
flutter_gbk2utf8: ^1.0.1
|
||||
get_it: ^8.2.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user